/* Page isolée : aucune règle ne modifie les autres pages. */
.sur-mesure { --sm-line:rgba(10,10,10,.22); --sm-muted:#585851; }
.sur-mesure figure { margin:0; }
.sur-mesure img { display:block; max-width:100%; }
.sur-mesure h1,.sur-mesure h2,.sur-mesure h3,.sur-mesure p { margin-top:0; }
.sur-mesure h1,.sur-mesure h2 { font-family:var(--font-display); font-weight:400; letter-spacing:-.055em; }
.sur-mesure h2 { font-size:clamp(2.5rem,4.6vw,5rem); line-height:1.02; margin-bottom:1.6rem; }
.sur-mesure p { line-height:1.55; }
.sur-mesure a:focus-visible,.sur-mesure button:focus-visible,.sur-mesure input:focus-visible,.sur-mesure textarea:focus-visible,.sur-mesure summary:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.sm-header { min-height:88px; padding:18px 3.5vw; display:flex; gap:2rem; align-items:center; justify-content:space-between; border-bottom:1px solid var(--sm-line); }
.sm-header nav { display:flex; gap:2rem; font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; }
.sm-header nav a,.sm-header-cta { padding:10px 0; }
.sm-header-cta { font-size:.84rem; border-bottom:1px solid currentColor; }
.sm-header-cta span { margin-left:2rem; }
.sm-kicker { font-family:var(--font-mono); font-size:.61rem; letter-spacing:.08em; line-height:1.6; text-transform:uppercase; }
.sm-hero { display:grid; grid-template-columns:44% 56%; min-height:650px; }
.sm-hero-copy { padding:4.5rem 3.5vw 3.5rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.sm-hero h1 { font-size:clamp(3rem,5.7vw,6.3rem); line-height:.97; margin:2.2rem 0 1.8rem; }
.sm-hero h1 span { color:var(--blue); }
.sm-intro { font-size:1.02rem; max-width:34ch; margin-bottom:2rem; }
.sm-button { display:inline-flex; align-items:center; justify-content:space-between; gap:2.7rem; padding:1rem 1.25rem; min-height:50px; background:var(--blue); border:1px solid var(--blue); color:var(--paper-bright); font-size:.88rem; cursor:pointer; transition:background .18s ease; border-radius:0; }
.sm-button:hover { background:var(--blue-deep); }
.sm-note { margin:1rem 0 0; color:var(--sm-muted); font-family:var(--font-mono); font-size:.59rem; }
.sm-hero-image { position:relative; background:#e0d8c9; min-width:0; display:flex; flex-direction:column; }
.sm-hero-image>img { width:100%; height:100%; min-height:600px; flex:1; object-fit:cover; object-position:50% 48%; }
.sur-mesure figcaption { display:flex; justify-content:space-between; gap:1rem; padding-top:12px; font-family:var(--font-mono); font-size:.59rem; letter-spacing:.035em; line-height:1.4; }
.sm-hero-image figcaption { position:absolute; bottom:18px; left:22px; right:22px; padding:7px 9px; background:rgba(242,240,233,.94); font-size:.54rem; }
.sm-strip { padding:1.2rem 3.5vw; border-top:1px solid var(--sm-line); border-bottom:1px solid var(--sm-line); display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:.63rem; text-transform:uppercase; letter-spacing:.04em; }
.sm-section { padding:6.5rem 5vw; }
.sm-section-head { display:grid; grid-template-columns:1fr 1.35fr; column-gap:5vw; margin-bottom:3.5rem; }
.sm-section-head>div { display:grid; grid-template-columns:1fr 1fr; gap:3vw; align-items:end; }
.sm-section-head>div p { font-size:1rem; margin-bottom:1.7rem; max-width:34ch; }
.sm-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.6rem 2rem; }
.sm-gallery img { width:100%; height:auto; }
.sm-small { font-size:.75rem; line-height:1.6; color:var(--sm-muted); }
.sm-examples>.sm-small { margin:1.6rem 0 0; }
.sm-object { padding:6.5rem 3.5vw; display:grid; grid-template-columns:.9fr 1.1fr; gap:6vw; background:#e9e6dc; }
.sm-object-copy { padding-left:1.5vw; }
.sm-object-copy>p:not(.sm-kicker) { max-width:36ch; font-size:1rem; }
.sm-specs { margin:2.5rem 0; border-top:1px solid var(--sm-line); }
.sm-specs>div { display:grid; grid-template-columns:1fr 1.8fr; padding:1rem 0; gap:1rem; border-bottom:1px solid var(--sm-line); }
.sm-specs dt { font-family:var(--font-mono); font-size:.62rem; padding-top:3px; }
.sm-specs dd { margin:0; font-size:.85rem; line-height:1.5; }
.sm-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; font-size:.84rem; border-bottom:1px solid currentColor; padding:10px 0; }
.sm-materials { padding-top:1.7rem; }
.sm-detail-main img { width:100%; height:auto; }
.sm-detail-pair { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
.sm-detail-pair img { width:100%; height:auto; }
.sm-materials>.sm-small { margin-top:1.5rem; }
.sm-process .sm-section-head { margin-bottom:3rem; }
.sm-steps { padding:0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); list-style:none; gap:3rem; }
.sm-steps li { padding-top:1.1rem; border-top:1px solid var(--sm-line); }
.sm-number { font-family:var(--font-mono); color:var(--blue); font-size:.75rem; }
.sm-steps h3 { font-weight:400; font-size:1.65rem; letter-spacing:-.035em; margin:2rem 0 1rem; line-height:1.15; }
.sm-steps p { max-width:34ch; font-size:.95rem; }
.sm-process-note { border-top:1px solid var(--sm-line); padding-top:1.5rem; margin-top:2.5rem; font-size:.8rem; color:var(--sm-muted); }
.sm-project { display:grid; grid-template-columns:.9fr 1.1fr; gap:7vw; border-top:1px solid var(--sm-line); }
.sm-project-intro>p { max-width:33ch; }
.sm-project-intro>.sm-small { margin:2.4rem 0; }
.sm-contact { align-self:center; border-left:2px solid var(--blue); padding-left:2.2rem; }
.sm-contact-lead { font-size:clamp(1.5rem,2.4vw,2.1rem); letter-spacing:-.03em; line-height:1.2; margin:0 0 1.2rem; }
.sm-contact>p:not(.sm-contact-lead):not(.sm-small) { max-width:44ch; }
.sm-contact-mail { display:inline-block; margin:1.6rem 0 2rem; font-size:clamp(1.15rem,2vw,1.6rem); color:var(--blue); text-decoration:underline; text-underline-offset:.3em; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.sm-contact-mail:hover { text-decoration-thickness:2px; }
.sm-contact-mail:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.sm-gift { background:var(--blue); color:var(--paper-bright); display:grid; grid-template-columns:1fr 1fr; padding:5vw; gap:7vw; align-items:center; }
.sm-gift>figure img { width:100%; height:auto; }
.sm-gift figcaption { color:#d1d9df; }
.sm-gift>div { padding:2rem 0; }
.sm-gift h2 { font-size:clamp(2.6rem,4.6vw,5rem); }
.sm-gift h2 span { color:#c5d1dc; }
.sm-gift>div>p:not(.sm-kicker) { max-width:36ch; font-size:.95rem; }
.sm-button-light { background:var(--paper); color:var(--blue); border-color:var(--paper); margin-top:1rem; }
.sm-button-light:hover { background:#e5e1d5; }
.sm-gift a:focus-visible { outline-color:var(--paper); }
.sm-faq { display:grid; grid-template-columns:.9fr 1.1fr; gap:7vw; }
.sm-faq>div>.sm-small { max-width:30ch; }
.sm-questions details { border-top:1px solid var(--sm-line); }
.sm-questions details:last-child { border-bottom:1px solid var(--sm-line); }
.sm-questions summary { padding:1.35rem 2rem 1.35rem 0; list-style:none; cursor:pointer; font-size:.95rem; position:relative; }
.sm-questions summary::-webkit-details-marker { display:none; }
.sm-questions summary::after { content:"+"; position:absolute; right:0; font-size:1.25rem; top:1.05rem; }
.sm-questions details[open] summary::after { content:"−"; }
.sm-questions details p { font-size:.88rem; line-height:1.65; max-width:54ch; padding-right:1rem; padding-bottom:1rem; }
.sm-closing { border-top:1px solid var(--sm-line); padding:4.5rem 5vw; display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.sm-closing p { font-size:clamp(2rem,4vw,4rem); letter-spacing:-.045em; line-height:1.05; margin:0; }
.sm-footer { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:2.5rem 3.5vw; background:var(--ink); color:var(--paper); }
.sm-footer .wordmark-mark { filter:invert(1); }
.sm-footer p,.sm-footer nav,.sm-footer>a:last-child { font-family:var(--font-mono); font-size:.6rem; line-height:1.7; margin:0; }
.sm-footer nav { display:flex; gap:1.2rem; }
.sm-footer a:focus-visible { outline-color:var(--paper); }
.sm-mobile-cta { display:none; }
@media (min-width:1600px) { .sm-hero { min-height:800px; } }
@media (max-width:1100px) {
  .sm-section-head>div { display:block; }
  .sm-section-head>div p { max-width:40ch; }
  .sm-header nav { gap:1rem; }
  .sm-footer nav { flex-direction:column; gap:.4rem; }
  .sm-hero { min-height:580px; }
  .sm-hero-image>img { min-height:580px; }
}
@media (max-width:760px) {
  .sm-header { min-height:70px; padding:14px 5vw; }
  .sm-header .wordmark { font-size:.9rem; }
  .sm-header .wordmark-mark { width:29px; height:29px; }
  .sm-header nav { display:none; }
  .sm-header-cta { font-size:.73rem; }
  .sm-header-cta span { margin-left:.7rem; }
  .sm-hero { display:flex; flex-direction:column; min-height:0; }
  .sm-hero-image { order:0; height:clamp(240px,76vw,430px); }
  .sm-hero-image>img { min-height:0; width:100%; height:100%; object-fit:cover; }
  .sm-hero-image figcaption { bottom:10px; left:14px; right:14px; font-size:.48rem; }
  .sm-hero-copy { order:1; padding:1.5rem 5vw 2.4rem; }
  .sm-hero h1 { font-size:clamp(2.8rem,12vw,4.7rem); margin:1rem 0 1.2rem; }
  .sm-hero h1 br:nth-child(2) { display:none; }
  .sm-intro { max-width:38ch; font-size:.95rem; margin-bottom:1.4rem; }
  .sm-kicker { font-size:.57rem; }
  .sm-note { font-size:.55rem; }
  .sm-strip { padding:1rem 5vw; gap:.75rem; font-size:.5rem; }
  .sm-strip span { max-width:14ch; line-height:1.6; }
  .sm-section { padding:3.5rem 5vw; }
  .sm-section-head { display:block; margin-bottom:2rem; }
  .sm-section-head>.sm-kicker { margin-bottom:1.8rem; }
  .sm-section-head>div p { font-size:.93rem; }
  .sm-gallery { gap:1.6rem 1rem; }
  .sm-gallery figure:nth-child(even) { padding-top:1.6rem; }
  .sm-gallery img { height:auto; }
  .sur-mesure figcaption { font-size:.49rem; gap:.3rem; flex-wrap:wrap; }
  .sm-object { display:block; padding:3.5rem 5vw; }
  .sm-object-copy { padding:0; }
  .sm-object-copy h2 { font-size:3.3rem; }
  .sm-materials { padding-top:2.5rem; }
  .sm-steps { display:block; }
  .sm-steps li { position:relative; padding:1.5rem 0 1.5rem 3rem; }
  .sm-number { position:absolute; top:1.7rem; left:0; }
  .sm-steps h3 { font-size:1.5rem; margin:0 0 .8rem; }
  .sm-steps p { max-width:none; margin:0; }
  .sm-process-note { margin-top:0; }
  .sm-project,.sm-faq { display:block; }
  .sm-project-intro>p { max-width:38ch; }
  .sm-project-intro>.sm-small { margin:1.5rem 0; }
  .sm-contact { margin-top:2.5rem; padding-left:1.2rem; }
  .sm-gift { display:flex; flex-direction:column; padding:3.5rem 5vw; gap:2rem; align-items:stretch; }
  .sm-gift>div { padding:0; }
  .sm-gift h2 { font-size:3.2rem; }
  .sm-faq .sm-questions { margin-top:2rem; }
  .sm-closing { padding:3rem 5vw; align-items:flex-start; flex-direction:column; }
  .sm-footer { display:grid; grid-template-columns:1fr 1fr; padding:2.5rem 5vw 6rem; gap:2rem 1rem; }
  .sm-footer nav { gap:.6rem; }
  .sm-mobile-cta { display:flex; position:fixed; z-index:90; bottom:0; left:0; right:0; justify-content:space-between; align-items:center; padding:1rem 5vw calc(1rem + env(safe-area-inset-bottom)); min-height:56px; font-size:.9rem; background:var(--blue); color:var(--paper-bright); box-shadow:0 -1px 0 rgba(255,255,255,.2); }
  .sm-mobile-cta[hidden] { display:none; }
  .sm-mobile-cta:focus-visible { outline-offset:-5px; outline-color:var(--paper); }
  .sm-project { scroll-margin-top:20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .sur-mesure * { animation:none!important; transition:none!important; } }
@media print { .sm-header,.sm-mobile-cta { display:none; } .sm-hero-image>img { min-height:0; } .sur-mesure details p { display:block; } .sm-section { padding:2rem 0; } .sm-gift { color:var(--ink); background:var(--paper); } }

