/* ============================================================
   NOBEL CLEAN — refonte « l'angle tiré au carré »
   Blue-royal #264C9C + linge/porcelaine · Prata + Figtree
   Motif : la ligne de pli. Mobile-first. Calme hôtelier.
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* Bleu Nobel (famille unique) */
  --blue-900:#18356e;
  --blue-800:#1e4185;
  --blue-700:#264c9c;   /* marque, préservé */
  --blue-600:#2f5bb5;
  --blue-500:#4a75c4;
  --blue-100:#e6edfb;

  /* Neutres chauds linge / porcelaine */
  --linen-50:#fdfcf9;
  --linen-100:#fffaf4;
  --linen-200:#f3ede2;
  --linen-300:#e5ded0;
  --porcelain:#ffffff;
  --hairline:#e6e1d6;

  /* Encre chaude */
  --ink:#22262b;
  --body:#464b52;
  --muted:#7a7f88;

  --font-display:"Prata",Georgia,"Times New Roman",serif;
  --font-sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --fs-hero:clamp(2.5rem,6vw,4.4rem);
  --fs-h2:clamp(1.9rem,3.6vw,2.9rem);
  --fs-h3:1.32rem;
  --fs-lead:clamp(1.12rem,1.6vw,1.4rem);
  --fs-body:1.05rem;
  --fs-label:0.76rem;

  --r-pill:999px;
  --r-card:10px;
  --shadow-soft:0 18px 50px -28px rgba(24,53,110,.35);
  --shadow-card:0 2px 0 0 var(--hairline), 0 30px 60px -45px rgba(24,53,110,.4);
  --header-h:64px;
  --gutter:clamp(20px,5vw,64px);
  --sec-gap:clamp(64px,9vw,120px);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.7;
  color:var(--body);
  background:var(--linen-50);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto}
figure{margin:0}
a{color:var(--blue-700)}
h1,h2,h3,h4{color:var(--ink);font-weight:400;line-height:1.14;margin:0 0 .5em;text-wrap:balance}
::selection{background:var(--blue-100);color:var(--blue-900)}
[id]{scroll-margin-top:96px}
a,button,input,select,textarea,[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

.container{max-width:1180px;margin:0 auto;padding:0 var(--gutter)}
.wrap{width:100%}

/* Accessibility */
.skip{position:absolute;left:-999px;top:0;background:var(--blue-700);color:#fff;padding:.6rem 1rem;z-index:200}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;border-radius:4px}

/* ---------- Labels ---------- */
.label{
  font-size:var(--fs-label);
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--blue-700);
  display:inline-flex;align-items:center;gap:.55rem;
}
.label::before{
  content:"";width:18px;height:18px;flex:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19V5h14' fill='none' stroke='%23264c9c' stroke-width='1.6' stroke-linecap='square'/%3E%3C/svg%3E") center/contain no-repeat;
}
.label--light{color:#cdd9ee}
.label--light::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19V5h14' fill='none' stroke='%23cdd9ee' stroke-width='1.6' stroke-linecap='square'/%3E%3C/svg%3E")}

/* ---------- Fold-line (motif) ---------- */
.foldline{
  display:block;height:12px;width:56px;margin:0 0 1.2rem;
  color:var(--blue-700);
}
.foldline svg{width:100%;height:100%;overflow:visible}
.foldline path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square}
.foldline--drawn path{stroke-dasharray:120;stroke-dashoffset:120}
.foldline--center{margin-inline:auto}

/* section separator made of a fold line */
.sec-fold{width:100%;height:1px;background:var(--hairline);position:relative}
.sec-fold::before{content:"";position:absolute;right:0;top:-1px;width:26px;height:2px;background:var(--blue-700)}
.sec-fold::after{content:"";position:absolute;right:24px;top:-1px;width:1px;height:26px;background:var(--blue-700)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-sans);font-weight:600;font-size:.98rem;line-height:1;
  text-decoration:none;cursor:pointer;border:0;color:#fff;
  background:var(--blue-700);border-radius:var(--r-pill);
  padding:0 22px;height:46px;white-space:nowrap;
  transition:background .12s ease,transform .12s ease,box-shadow .12s ease;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover{background:var(--blue-600);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn--pill{height:46px;padding:0 24px;border-radius:var(--r-pill)}
.btn--block{width:100%;padding:0 16px}
.btn--tel{
  background:transparent;color:var(--blue-700);
  box-shadow:inset 0 0 0 1px var(--blue-700);
}
.btn--tel:hover{background:var(--blue-100)}
.btn--ghost-dark{
  background:var(--porcelain);color:var(--blue-900);
}
.btn--ghost-dark:hover{background:var(--blue-100);color:var(--blue-900)}
.btn--light-line{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.btn--light-line:hover{background:rgba(255,255,255,.08)}
.btn .ic{width:18px;height:18px;flex:none}

/* secondary / text link */
.link-arrow{
  display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--blue-700);text-decoration:none;
  border:0;background:none;cursor:pointer;padding:0;font-size:.95rem;
}
.link-arrow .arrow{transition:transform .18s ease;color:inherit}
.link-arrow:hover .arrow{transform:translateX(4px)}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(253,252,249,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hairline);
}
.header-inner{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;line-height:0}
.brand img{height:42px;width:auto;display:block;object-fit:contain}
.main-nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0;align-items:center}
.main-nav a{
  text-decoration:none;font-weight:600;font-size:.93rem;color:var(--ink);
  position:relative;padding:.3rem 0;
}
.main-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--blue-700);transition:right .25s ease;
}
.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{right:0}
.main-nav a[aria-current="page"]{color:var(--blue-700)}
.header-actions{display:flex;align-items:center;gap:.9rem}
.header-tel{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.header-tel .ph{color:var(--blue-700)}

/* Mobile nav */
.nav-toggle{
  display:none;align-items:center;justify-content:center;gap:.5rem;
  background:var(--blue-700);color:#fff;border:0;border-radius:var(--r-pill);
  height:46px;padding:0 18px;font-family:var(--font-sans);font-weight:600;font-size:.92rem;cursor:pointer;
  min-width:88px;min-height:48px;
}
.nav-toggle .hamb,.nav-toggle .hamb::before,.nav-toggle .hamb::after{
  content:"";display:block;width:18px;height:2px;background:#fff;border-radius:2px;position:relative;transition:.2s;
}
.nav-toggle .hamb::before{position:absolute;top:-6px}
.nav-toggle .hamb::after{position:absolute;top:6px}
.mobile-nav{
  position:fixed;inset:0;z-index:150;background:var(--linen-50);
  transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;
  display:flex;flex-direction:column;
}
.mobile-nav.is-open{transform:translateX(0)}
.mobile-nav-head{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid var(--hairline)}
.mobile-nav-close{width:48px;height:48px;border:1px solid var(--hairline);background:var(--porcelain);border-radius:var(--r-pill);font-size:1.3rem;color:var(--ink);cursor:pointer;line-height:1}
.mobile-nav ul{list-style:none;margin:0;padding:calc(var(--gutter)/1) var(--gutter)}
.mobile-nav a.mnav{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;text-decoration:none;font-size:1.28rem;color:var(--ink);border-bottom:1px solid var(--hairline);min-height:56px}
.mobile-nav a.mnav[aria-current="page"]{color:var(--blue-700)}
.mobile-nav .mnav-ctas{display:flex;flex-direction:column;gap:.8rem;padding:1.2rem var(--gutter)}
.mobile-nav-foot{margin-top:auto;padding:1.4rem var(--gutter);border-top:1px solid var(--hairline);font-size:.9rem;color:var(--muted)}

/* ---------- Room card ---------- */
.roomcard{
  position:relative;border:1px solid var(--hairline);border-radius:var(--r-card);
  background:var(--porcelain);overflow:hidden;box-shadow:var(--shadow-soft);
}
.roomcard__media{position:relative;aspect-ratio:4/5;overflow:hidden}
.roomcard--34 .roomcard__media{aspect-ratio:3/4}
.roomcard--wide .roomcard__media{aspect-ratio:16/10}
.roomcard--wide-lg .roomcard__media{aspect-ratio:4/3}
.roomcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.roomcard:hover .roomcard__media img{transform:scale(1.035)}
.roomcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,252,249,.02),rgba(253,252,249,.12));pointer-events:none}
/* folded linen corner (bottom-left) */
.roomcard__fold{position:absolute;left:0;bottom:0;width:0;height:0;border-style:solid;border-width:0 0 30px 30px;border-color:transparent transparent var(--porcelain) transparent;filter:drop-shadow(1px -1px 0 var(--hairline));z-index:2}
.roomcard__label{
  position:absolute;top:14px;left:14px;z-index:3;max-width:calc(100% - 28px);
  font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;line-height:1.3;
  color:#fff;background:rgba(24,53,110,.88);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  padding:.42rem .6rem;border-radius:6px;display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;
}
.roomcard__label em{font-style:normal;color:#cfe0f7}
.roomcard__label .tick{color:#a8d0a0}
.roomcard__cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;padding:.85rem 1rem;border-top:1px solid var(--hairline);font-size:.78rem;color:var(--muted)}
.roomcard__cap b{color:var(--ink);font-weight:600}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--linen-50);overflow:hidden}
.hero__grid{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center;padding-top:clamp(40px,7vw,84px);padding-bottom:clamp(48px,7vw,96px)}
.hero--home .hero__grid{grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){.hero--home .hero__grid{grid-template-columns:minmax(0,1.22fr) minmax(0,.95fr)}}
.hero h1{font-family:var(--font-display);font-size:var(--fs-hero);line-height:1.06;margin:1rem 0 .8rem;color:var(--ink)}
.hero h1 .accent{display:block;color:var(--blue-700)}
.hero p.lead{font-size:var(--fs-lead);color:var(--body);max-width:34rem;margin:0 0 1.8rem}
.hero .hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.hero .tel-note{margin-top:1.1rem;font-size:.92rem;color:var(--muted)}
.hero .tel-note a{color:var(--blue-700);font-weight:600;text-decoration:none}
.hero-base{background:var(--blue-900);color:#dde6f5;padding:clamp(20px,3vw,30px) 0}
.hero-base .container{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.hero-base p{margin:0;font-size:1.02rem}
.hero-base .hb-tick{color:#bcd3f3}
.hero-base .sec-fold{background:rgba(255,255,255,.16)}
.hero-base .sec-fold::before,.hero-base .sec-fold::after{background:#fff}

/* short hero for inner pages */
.hero--inner .hero__inner{max-width:760px;padding-top:clamp(44px,7vw,84px);padding-bottom:clamp(28px,4vw,44px)}
.hero--inner h1{font-size:clamp(2rem,4.6vw,3.3rem)}
.hero--inner p.lead{margin-bottom:.4rem}

/* ---------- Sections ---------- */
.section{padding:var(--sec-gap) 0;scroll-margin-top:80px}
.section--flush{padding-top:0}
.bg-white{background:var(--porcelain)}
.bg-linen{background:var(--linen-100)}
.bg-morning{background:var(--linen-200)}
.sec-head{max-width:720px;margin-bottom:clamp(2rem,4vw,3.2rem)}
.sec-head--center{margin-inline:auto;text-align:center}
.sec-head h2{font-size:var(--fs-h2);line-height:1.12;margin-bottom:.4rem}
.sec-head .lede{font-size:var(--fs-lead);color:var(--body);margin:0}
.sec-head .foldline{margin-bottom:1.1rem}
.sec-head--center .foldline{margin-inline:auto}

/* ---------- Value editorial list ---------- */
.values{list-style:none;margin:0;padding:0}
.values li{border-top:1px solid var(--hairline);padding:clamp(1.1rem,2.4vw,1.7rem) 0;display:grid;grid-template-columns:auto 1fr;gap:1.1rem 1.4rem}
.values li:last-child{border-bottom:1px solid var(--hairline)}
.values .vnum{font-family:var(--font-display);color:var(--blue-700);font-size:1rem;padding-top:.2rem;min-width:1.6rem}
.values h3{font-size:1.35rem;margin:0 0 .2rem}
.values p{margin:.3rem 0 0;max-width:52ch}
.values li.has-grip{position:relative}
.values li .grip{display:none}

/* ---------- Service index (rows) ---------- */
.svc-row{border-top:1px solid var(--hairline);display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;padding:clamp(1.6rem,3vw,2.2rem) 0;align-items:center}
.svc-row:last-of-type{border-bottom:1px solid var(--hairline)}
.svc-row .srv-num{font-family:var(--font-display);color:var(--blue-700);font-size:1rem;padding-top:.25rem}
.svc-row .srv-body h3{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,1.9rem);margin:0 0 .3rem}
.svc-row .srv-body p{margin:.1rem 0 .8rem;max-width:56ch}
.svc-row .roomcard{max-width:460px}
@media(min-width:860px){
  .svc-row{grid-template-columns:64px minmax(0,1fr) 240px;gap:2.2rem}
  .svc-row:nth-child(even) .roomcard{justify-self:end}
}

/* ---------- Process ---------- */
.process{list-style:none;margin:0;padding:0;counter-reset:proc;display:grid;gap:2.4rem}
@media(min-width:860px){
  .process{grid-template-columns:1fr 1fr 1fr;gap:2.4rem}
  .process .pstep{position:relative;padding-left:0}
  .process .pstep:not(:last-child)::after{content:"";position:absolute;top:34px;right:-1.2rem;width:2.4rem;height:1px;background:var(--blue-300,var(--blue-100))}
}
.process .pstep{padding-top:.2rem}
.pstep .pnum{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--blue-100);display:block;margin-bottom:.6rem}
.pstep h3{font-size:1.2rem;margin:0 0 .3rem}
.pstep p{margin:0;font-size:.98rem}

/* ---------- Proof / quotes ---------- */
.quote-block{border-left:2px solid var(--blue-700);padding:0 0 0 1.4rem}
.quote-block blockquote{margin:0;font-size:var(--fs-lead);font-family:var(--font-display);line-height:1.5;color:var(--ink)}
.quote-block figcaption{margin-top:.8rem;font-size:.9rem;color:var(--muted)}
.benefit-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:720px){.benefit-grid{grid-template-columns:1fr 1fr;gap:1.4rem}}
@media(min-width:980px){.benefit-grid{grid-template-columns:repeat(3,1fr)}}
.benefit{background:var(--porcelain);border:1px solid var(--hairline);border-radius:var(--r-card);padding:1.5rem}
.benefit svg{width:34px;height:34px;color:var(--blue-700);margin-bottom:1rem}
.benefit h3{font-size:1.1rem;margin:0 0 .3rem}
.benefit p{margin:0;font-size:.97rem}

/* two-col */
.two-col{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media(min-width:900px){
  .two-col{grid-template-columns:1.05fr .9fr}
  .two-col--flip .col:first-child{order:2}
}

/* checklist */
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;grid-template-columns:1fr}
@media(min-width:640px){.checklist.two{grid-template-columns:1fr 1fr;column-gap:2rem}}
.checklist li{display:flex;gap:.7rem;align-items:flex-start;padding-left:0}
.checklist .ck{flex:none;width:20px;height:20px;margin-top:.15rem;color:var(--blue-700)}
.checklist li .cft{font-weight:600;color:var(--ink)}
.checklist li p{margin:.1rem 0 0}
.checklist--note{font-size:.9rem;color:var(--muted);margin-top:1rem}

/* timeline (gouvernante) */
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline li{position:relative;padding:0 0 1.8rem 2.2rem;border-left:1px solid var(--linen-300)}
.timeline li::before{content:"";position:absolute;left:-5px;top:2px;width:9px;height:9px;background:var(--blue-700);transform:rotate(45deg)}
.timeline .tt{font-weight:600;color:var(--ink);display:block;margin-bottom:.15rem}
.timeline .th{font-family:var(--font-display);color:var(--blue-700)}
.timeline p{margin:.1rem 0 0}

/* ---------- CTA band ---------- */
.cta-band{background:var(--blue-900);color:#dde6f5;position:relative;overflow:hidden}
.cta-band .container{position:relative;z-index:1;display:grid;gap:1.8rem;align-items:center}
@media(min-width:900px){.cta-band .container{grid-template-columns:1fr auto;gap:3rem}}
.cta-band h2{color:#fff;font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 .4rem}
.cta-band p{color:#cdd9ee;margin:0;max-width:46ch}
.cta-band-actions{display:flex;flex-direction:column;gap:.8rem;align-items:stretch}
@media(min-width:560px){.cta-band-actions{flex-direction:row;align-items:center}}
.cta-band .tel-big{display:inline-flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font-weight:600;font-size:1.2rem;justify-content:center}
.cta-band .tel-big:hover{text-decoration:underline}

/* ---------- Footer ---------- */
.site-footer{background:var(--blue-900);color:#c9d6ee;font-size:.94rem}
.footer-top{padding:clamp(3rem,6vw,4.5rem) 0 2rem;display:grid;gap:2.4rem;grid-template-columns:1fr}
@media(min-width:760px){.footer-top{grid-template-columns:1.4fr 1fr 1fr}}
@media(min-width:1000px){.footer-top{grid-template-columns:1.5fr 1fr 1fr 1.2fr}}
.footer-brand .brand img{height:38px;filter:brightness(0) invert(1) opacity(.96)}
.footer-brand p{max-width:30ch;margin:1rem 0 0;color:#b9c8e4}
.footer-col h4{color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;margin:0 0 1rem}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin:0 0 .6rem}
.footer-col a{color:#c9d6ee;text-decoration:none}
.footer-col a:hover{color:#fff;text-decoration:underline}
.footer-col .co{line-height:1.6;margin:0 0 .4rem;color:#c9d6ee}
.footer-col .co a{font-weight:600}
.footer-note{border-top:1px solid rgba(255,255,255,.14);padding:1.4rem 0;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;font-size:.84rem;color:#c7d4ee}
.footer-note a{color:#c9d6ee;text-decoration:none;margin-left:1rem}
.footer-note a:hover{color:#fff;text-decoration:underline}
.footer-legal-links{display:flex;flex-wrap:wrap}

/* ---------- Mobile call bar ---------- */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  display:none;grid-template-columns:auto 1fr;gap:.6rem;align-items:center;
  background:rgba(253,252,249,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-top:1px solid var(--hairline);padding:.6rem var(--gutter);transform:translateY(110%);
  transition:transform .3s ease;
}
.callbar.is-visible{transform:translateY(0)}
.callbar .cb-tel{
  display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--blue-700);
  font-weight:700;font-size:1.05rem;white-space:nowrap;height:52px;padding:0 10px;
}
.callbar .btn{height:52px}

/* ---------- Reveal (sobre, non masquant : le contenu reste toujours lisible) ---------- */
.reveal{opacity:1;transform:translateY(7px);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{transform:none}
/* ligne de pli : toujours dessinée (visible), légère mise en scène au scroll optionnelle */
.foldline--drawn path{stroke-dasharray:0}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{transform:none}
}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:900px){.contact-grid{grid-template-columns:1.15fr .85fr}}
.form{background:var(--porcelain);border:1px solid var(--hairline);border-radius:var(--r-card);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow-soft)}
.form label{font-size:.9rem;font-weight:600;color:var(--ink);display:block;margin:0 0 .35rem}
.form .field{margin-bottom:1.1rem}
.form input,.form select,.form textarea{
  width:100%;font-family:var(--font-sans);font-size:1rem;color:var(--ink);
  border:1px solid var(--linen-300);border-radius:8px;background:var(--linen-50);
  padding:.75rem .9rem;transition:border-color .15s,box-shadow .15s;
}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100)}
.form .row2{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media(min-width:520px){.form .row2{grid-template-columns:1fr 1fr}}
.form .req{color:var(--blue-600)}
.form-foot{font-size:.82rem;color:var(--muted);margin-top:.6rem}
.prototype-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-700);background:var(--blue-100);border:1px dashed var(--blue-500);padding:.3rem .6rem;border-radius:6px}
.coord-list{list-style:none;margin:0 0 1.4rem;padding:0}
.coord-list li{display:flex;gap:.9rem;padding:1rem 0;border-bottom:1px solid var(--hairline)}
.coord-list .c-ic{flex:none;width:22px;height:22px;color:var(--blue-700);margin-top:.1rem}
.coord-list b{color:var(--ink)}
.coord-list a{text-decoration:none;font-weight:600;color:var(--blue-700)}
.coord-list a:hover{text-decoration:underline}

/* utility spacing */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.small{font-size:.9rem;color:var(--muted)}
.confirm-note{font-size:.85rem;color:var(--muted);font-style:italic}

/* placeholder room card (typographic, "à fournir") */
.placeholder-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:2rem;background:var(--linen-100);color:var(--muted);aspect-ratio:4/5;border-radius:var(--r-card)}
.placeholder-card .pc-num{font-family:var(--font-display);color:var(--linen-300);font-size:3rem;line-height:1}
.placeholder-card .pc-txt{font-size:.92rem;color:var(--muted);max-width:18ch}

/* responsive nav switch */
@media(max-width:1000px){
  .main-nav,.header-actions .btn,.header-tel{display:none}
  .nav-toggle{display:inline-flex}
  .callbar{display:grid}
}
@media(min-width:1001px){
  .nav-toggle,.mobile-nav{display:none!important}
}
@media(min-width:1001px){
  /* reserve space so callbar doesn't matter */
  .hero .btn--block{width:auto}
}

/* tap target guarantee */
.nav-toggle,.mobile-nav-close,.callbar .btn,.callbar .cb-tel{min-height:48px}

/* mobile: hero CTA pilule pleine largeur + empilement (spec §5) */
@media(max-width:560px){
  .hero .hero-ctas{flex-direction:column;align-items:stretch;width:100%}
  .hero .hero-ctas .btn{width:100%}
}
