/* Layout concept: a Paris townhouse visit. Ivory reading rooms and warm-anthracite salons alternate;
   authentic S-Class and V-Class photographs are hung like gallery prints with a brass passe-partout. */
:root{
  --ivory:#F3EDE2; --paper:#FAF7F0; --ink:#17140F; --salon:#1C1915; --salon-2:#27231E;
  --stone:#655D52; --line:rgba(23,20,15,.13); --line-d:rgba(239,231,216,.16);
  --gold:#7E6236; --gold-hi:#C9AC72; --on-dark:#F1EADC; --on-dark-2:rgba(241,234,220,.72);
  --f-disp:'Cormorant Garamond','Markazi Text','Noto Naskh Arabic',serif;
  --f-text:'DM Sans','IBM Plex Sans Arabic','Noto Sans Arabic',sans-serif;
  --wrap:1240px; --g:clamp(16px,4.2vw,56px); --hd:72px;
  --ease:cubic-bezier(.22,.7,.12,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:132px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink)}
.page{font-variant-numeric:lining-nums;font-family:var(--f-text);font-size:17.5px;line-height:1.95;background:var(--ivory);color:var(--ink);overflow-x:clip}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
p{margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:16px;top:-60px;z-index:60;background:var(--ink);color:var(--ivory);padding:10px 16px}
.skip:focus{top:12px}
h1,h2,h3{font-family:var(--f-disp);font-weight:600;font-variant-numeric:lining-nums;text-wrap:balance;margin:0;letter-spacing:0}
h4{margin:0;font-weight:600}
.wrapx,.ch__in,.hd__row,.overture,.foot__in,.foot__legal,.rail__in{
  padding-left:max(var(--g),env(safe-area-inset-left,0px));padding-right:max(var(--g),env(safe-area-inset-right,0px))}

/* ---------- header */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--ivory) 88%,transparent);
  -webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid var(--line)}
.hd__row{max-width:calc(var(--wrap) + 2*var(--g));margin:0 auto;height:var(--hd);display:flex;align-items:center;gap:22px}
.hd__mark{font-family:'Cormorant Garamond',serif;font-size:17px;letter-spacing:.17em;text-transform:uppercase;text-decoration:none;white-space:nowrap;direction:ltr}
.hd__nav{flex:1}
.hd__nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;justify-content:center}
.hd__nav a{white-space:nowrap;text-decoration:none;font-size:15px;color:var(--stone);transition:color .2s}
.hd__nav a:hover{color:var(--ink)}
.hd__mob{display:none}
.hd__lang{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;direction:ltr}
.hd__lang a{font-family:'DM Sans',sans-serif;font-size:11.5px;letter-spacing:.08em;text-decoration:none;padding:5px 11px;border-radius:999px;color:var(--stone)}
.hd__lang a[aria-current]{background:var(--ink);color:var(--ivory);font-family:var(--f-text);letter-spacing:0}
.hd__burger{display:none;width:44px;height:44px;border:0;background:none;padding:12px 10px;cursor:pointer}
.hd__burger span:not(.vh){display:block;height:1.5px;background:var(--ink);margin:6px 0;transition:transform .3s var(--ease)}
.rail{max-height:0;overflow:hidden;border-top:1px solid transparent;transition:max-height .45s var(--ease),border-color .3s}
.hd.is-rail .rail{max-height:48px;border-top-color:var(--line)}
.rail__in{max-width:calc(var(--wrap) + 2*var(--g));margin:0 auto;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;height:46px;align-items:center}
.rail__in::-webkit-scrollbar{display:none}
.rail a{flex:none;text-decoration:none;font-size:13.5px;color:var(--stone);padding:6px 12px;border-radius:999px;transition:background .25s,color .25s;white-space:nowrap}
.rail a.is-on{background:var(--ink);color:var(--ivory)}

/* ---------- buttons */
.btn{--bg:var(--ink);--fg:var(--ivory);--ic:var(--gold-hi);position:relative;display:inline-flex;align-items:center;gap:12px;
  min-height:54px;padding:14px 28px;font:600 16px/1.3 var(--f-text);text-decoration:none;background:var(--bg);color:var(--fg);
  border:1px solid var(--bg);border-radius:2px;overflow:hidden;isolation:isolate;transition:color .35s var(--ease),border-color .35s}
.btn .i{width:20px;height:20px;fill:var(--ic);flex:none;transition:transform .35s var(--ease)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--sweep,#000);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.btn:hover::after{transform:scaleX(1)}
.btn:hover .i{transform:translateX(-3px)}
.btn--primary{--sweep:#000}
.btn--secondary{--bg:transparent;--fg:var(--ink);--ic:var(--gold);--sweep:var(--ink);border-color:var(--ink)}
.btn--secondary:hover{--fg:var(--ivory);color:var(--ivory)}
.btn--secondary:hover .i{fill:var(--gold-hi)}
.ch--salon .btn--primary{--bg:var(--gold-hi);--fg:var(--ink);--ic:var(--ink);--sweep:var(--on-dark)}
.ch--salon .btn--secondary{--fg:var(--on-dark);--ic:var(--gold-hi);--sweep:var(--on-dark);border-color:rgba(241,234,220,.55)}
.ch--salon .btn--secondary:hover{color:var(--ink)}
.ch--salon .btn--secondary:hover .i{fill:var(--ink)}
.btn--hd{flex:none;white-space:nowrap;min-height:42px;padding:9px 18px;font-size:14px}
.btn--dock{min-height:46px;padding:10px 20px;font-size:15px}
.ctas{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:36px}
.ctas-center .ctas{justify-content:center}
.textlink a{color:var(--gold);text-underline-offset:5px}

/* ---------- photographs */
.ph{margin:0;position:relative;overflow:hidden;background:var(--salon-2)}
.ph img{width:100%;height:100%;object-fit:cover}
.ph::after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,248,232,.5);pointer-events:none}
.ph--tall{aspect-ratio:4/5}
.ph--band{height:clamp(300px,42vw,620px)}
.ph--band::after{inset:0;border:0;background:linear-gradient(180deg,rgba(28,25,21,.15),rgba(28,25,21,.15) 55%,var(--salon))}

/* ---------- hero */
.hero{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);grid-template-areas:"text media";min-height:min(86vh,860px);background:var(--ivory)}
.hero__media{grid-area:media;position:relative}
.ph--hero{position:absolute;inset:0}
.ph--hero::after{inset:16px}
.hero__text{grid-area:text;align-self:center;padding-block:56px 64px;padding-inline-start:max(var(--g),env(safe-area-inset-right,0px));padding-inline-end:clamp(28px,4vw,72px);
  max-width:calc(var(--wrap)*.5);margin-inline-start:auto;width:100%}
.hero h1{font-size:clamp(36px,4.5vw,66px);line-height:1.18;margin-bottom:26px}
.hero__lede{font-size:clamp(17.5px,1.3vw,20px);line-height:1.9;color:var(--stone);max-width:36em}
.hero__act{margin-top:34px;display:grid;gap:14px;justify-items:start}
.hero__reassure{font-size:14.5px;line-height:1.75;color:var(--stone);max-width:30em}
.proof{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.9;color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:2px 0}
.proof .dot{color:var(--gold);padding-inline:9px}
.stars{display:inline-flex;gap:3px;margin-inline-end:12px;vertical-align:-2px}
.stars svg{width:14px;height:14px;fill:var(--gold)}
.ch--salon .stars svg,.foot .stars svg{fill:var(--gold-hi)}

/* ---------- overture */
.overture{background:var(--paper);padding-block:clamp(56px,7vw,104px)}
.overture__in,.toc{max-width:var(--wrap);margin:0 auto}
.overture__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:start}
.overture__p{font-family:var(--f-disp);font-size:clamp(21px,1.8vw,27px);line-height:1.75;font-weight:500;font-variant-numeric:lining-nums}
.sheet{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--ink)}
.sheet li{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line);font-size:16.5px;line-height:1.7}
.i{width:22px;height:22px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.btn .i{stroke:none}
.sheet .i{margin-top:4px}
.toc{margin-top:clamp(48px,6vw,88px);padding-top:28px;border-top:1px solid var(--line)}
.toc__label{font-family:var(--f-disp);font-size:24px;margin-bottom:18px}
.toc__list{list-style:none;margin:0;padding:0;columns:3;column-gap:48px}
.toc__list li{break-inside:avoid}
.toc__list a{display:block;padding:9px 0;text-decoration:none;color:var(--stone);border-bottom:1px solid var(--line);font-size:15.5px;transition:color .2s,padding .3s var(--ease)}
.toc__list a:hover{color:var(--ink);padding-inline-start:8px}

/* ---------- chapters */
.ch{padding-block:clamp(76px,9vw,148px);position:relative}
.ch--ivory{background:var(--ivory)}
.ch--paper{background:var(--paper)}
.ch--salon{background:var(--salon);color:var(--on-dark)}
.ch__in{max-width:calc(var(--wrap) + 2*var(--g));margin:0 auto}
.ch__head{max-width:820px;margin-bottom:clamp(36px,4vw,56px)}
.ch__head--wide{max-width:900px}
.ch__head--center{margin-inline:auto;text-align:center}
.ch h2{font-size:clamp(30px,3.2vw,50px);line-height:1.28}
.ch__head h2+.lede{margin-top:22px}
.lede{font-size:clamp(17.5px,1.3vw,20px);line-height:1.9;color:var(--stone)}
.ch--salon .lede,.ch--salon p,.ch--salon li,.ch--salon td{color:var(--on-dark-2)}
.ch--salon h2,.ch--salon h3,.ch--salon th,.ch--salon strong{color:var(--on-dark)}
.ch--salon a:not(.btn){color:var(--gold-hi)}
.ch__body>p,.sub>p,.aside__body>p{max-width:70ch}
.ch__body>*+*,.sub>*+*{margin-top:22px}
.ch__body p a,.sub p a,.lede a,.qa__a a{color:var(--gold);text-underline-offset:4px;text-decoration-thickness:1px}
.sub{padding-top:clamp(40px,4.5vw,64px)}
.sub h3{font-size:clamp(23px,2vw,30px);line-height:1.35;margin-bottom:6px}
.subgrid{display:grid;gap:clamp(28px,3vw,56px);padding-top:clamp(40px,4.5vw,64px)}
.subgrid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.subgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.subgrid .sub{padding-top:22px;border-top:1px solid var(--line)}
.ch--salon .subgrid .sub{border-top-color:var(--line-d)}
.subgrid .sub h3{font-size:clamp(21px,1.6vw,25px)}
.subgrid .sub p{font-size:16.5px;line-height:1.9}
.sub--plate{margin-top:clamp(40px,4.5vw,64px);padding:clamp(28px,4vw,56px);background:var(--salon);color:var(--on-dark-2);position:relative}
.sub--plate::before{content:"";position:absolute;inset:12px;border:1px solid rgba(201,172,114,.35);pointer-events:none}
.sub--plate h3{color:var(--on-dark)}
.sub--plate p{color:var(--on-dark-2)}
.sub--plate a:not(.btn){color:var(--gold-hi)}
.sub--plate .btn--secondary{--fg:var(--on-dark);--ic:var(--gold-hi);--sweep:var(--on-dark);border-color:rgba(241,234,220,.55);position:relative}
.sub--plate .btn--secondary:hover{color:var(--ink)}

/* aside-head: heading column + body column */
.aside{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,104px);align-items:start}
.aside__head{position:sticky;top:150px;margin-bottom:0}
.aside__body>*:first-child{margin-top:0}

/* split: text + sticky photograph */
.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:start}
.split__media{position:sticky;top:140px}

/* gulf signature */
.gulf{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.gulf .ch__head{margin-bottom:0}
.gulf .ch__head h2{font-size:clamp(34px,3.8vw,58px)}
.gulf__media .ph{aspect-ratio:4/4.4}

/* ---------- lists */
.leads,.list{list-style:none;margin:0;padding:0;max-width:74ch}
.leads li,.list li{padding:16px 0;border-top:1px solid var(--line);line-height:1.85}
.ch--salon .leads li,.ch--salon .list li{border-top-color:var(--line-d)}
.leads strong{display:block;font-family:var(--f-disp);font-size:21px;font-weight:600;line-height:1.5;margin-bottom:2px;font-variant-numeric:lining-nums}
.services{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.services li{padding:22px 0 22px 24px;border-bottom:1px solid var(--line);font-size:16.5px;line-height:1.75;position:relative}
.services li::before{content:"";display:block;width:22px;height:1px;background:var(--gold);margin-bottom:14px}

/* steps */
.journey,.day12,.booking{list-style:none;margin:0;padding:0;counter-reset:st}
.journey li,.day12 li,.booking li{counter-increment:st}
.step__n::before{content:counter(st)}
.day12 .step__n::before{content:none}
.journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:28px;position:relative;padding-top:8px}
.journey li{position:relative;padding-top:58px}
.journey li::before{content:"";position:absolute;top:21px;inset-inline:0;height:1px;background:var(--gold);opacity:.55;transform-origin:right}
.journey li:last-child::before{inset-inline-end:auto;width:22px}
.step__n{font-variant-numeric:lining-nums;position:absolute;top:0;inset-inline-start:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--ivory);
  border:1px solid var(--gold);font-family:'Cormorant Garamond',serif;font-size:21px;color:var(--gold);z-index:1}
.ch--paper .step__n{background:var(--paper)}
.step__t strong{display:block;font-family:var(--f-disp);font-size:21px;font-weight:600;line-height:1.45;margin-bottom:6px}
.step__t span{display:block;font-size:15.5px;line-height:1.8;color:var(--stone)}
.day12 li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;position:relative;padding:0 0 22px}
.day12 .step__n{position:relative;width:12px;height:12px;border:0;background:var(--gold);font-size:0;margin-top:12px}
.day12 li::before{content:"";position:absolute;inset-inline-start:5.5px;top:24px;bottom:0;width:1px;background:var(--line)}
.day12 li:last-child::before{display:none}
.day12 .step__t strong{display:inline;font-family:'Cormorant Garamond','Markazi Text',serif;font-size:22px;margin-inline-end:10px}
.day12 .step__t span{display:inline;font-size:16.5px;color:var(--stone)}
.booking{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);border-top:1px solid var(--ink);padding-top:30px}
.booking li{position:relative}
.booking .step__n{position:static;display:block;width:auto;height:auto;border:0;background:none;font-size:68px;line-height:1;margin-bottom:16px;text-align:start}
.booking .step__t strong{font-size:23px}

/* ---------- tables */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.t{width:100%;border-collapse:collapse;font-size:16px;line-height:1.75}
.t th,.t td{text-align:start;vertical-align:top;padding:16px 0 16px 28px;border-bottom:1px solid var(--line)}
.t thead th{font-size:13.5px;font-weight:500;color:var(--gold);padding-block:10px;border-bottom:1px solid var(--ink)}
.t tbody th{font-weight:600}
.t td{color:var(--stone)}
.t a{color:inherit}
.ch--salon .t th,.ch--salon .t td{border-bottom-color:var(--line-d)}
.ch--salon .t thead th{color:var(--gold-hi);border-bottom-color:rgba(241,234,220,.4)}
.t--ledger tbody th{width:30%}

/* compare */
.t--compare thead th:nth-child(3),.t--compare td:nth-child(3){color:var(--on-dark)}
.t--compare thead th:nth-child(3){color:var(--gold-hi);font-size:15px}
.t--compare td:nth-child(2){color:rgba(241,234,220,.48)}
.t--compare td:nth-child(3){background:rgba(201,172,114,.07);padding-inline-start:24px;padding-inline-end:24px}
.t--compare thead th:nth-child(3){padding-inline:24px;border-bottom-color:var(--gold-hi)}
.t--compare tbody th{width:20%}

/* needs: tiles */
.t--needs thead{display:none}
.t--needs tbody{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.t--needs tr{display:flex;flex-direction:column;padding:26px 0 26px 26px;border-top:1px solid var(--ink)}
.t--needs th,.t--needs td{padding:0;border:0}
.t--needs th{font-family:var(--f-disp);font-size:22px;line-height:1.4;margin-bottom:10px}
.t--needs th a{text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease)}
.t--needs th a:hover{background-size:100% 1px}
.t--needs td{font-size:15.5px;line-height:1.8}

/* offer: a written proposal sheet */
.tw--offer{background:#fff;border:1px solid var(--line);padding:clamp(22px,3.5vw,44px);box-shadow:0 30px 60px -40px rgba(23,20,15,.35);position:relative;max-width:900px}
.tw--offer::before{content:"";position:absolute;inset-inline:clamp(22px,3.5vw,44px);top:0;height:3px;background:var(--gold)}
.t--offer tbody th{width:34%}

/* durations (10h / 12h) */
.t--durations2 thead{display:none}
.t--durations2 tbody{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.t--durations2 tr{display:flex;flex-direction:column;gap:8px;padding:24px;background:var(--paper);border:1px solid var(--line)}
.t--durations2 th,.t--durations2 td{padding:0;border:0}
.t--durations2 th{font-family:var(--f-disp);font-size:21px;line-height:1.4}
.t--durations2 td:nth-child(2){font-family:'Cormorant Garamond','Markazi Text',serif;font-size:21px;color:var(--gold);font-variant-numeric:lining-nums}

/* day timeline */
.t--day thead{display:none}
.t--day tbody{display:block;position:relative;border-inline-start:1px solid var(--gold);padding-inline-start:0}
.t--day tr{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:18px;padding:14px 0 14px;position:relative}
.t--day tr::before{content:"";position:absolute;inset-inline-start:-5px;top:24px;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.t--day th,.t--day td{padding:0;border:0}
.t--day th{padding-inline-start:26px;font-family:'Cormorant Garamond','Markazi Text',serif;font-size:22px;font-weight:600;font-variant-numeric:lining-nums}
.t--day td:nth-child(2){color:var(--ink)}

/* long stays */
.t--stays thead{display:none}
.t--stays tbody{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.t--stays tr{display:flex;flex-direction:column;gap:14px;padding:28px 22px 26px;background:var(--salon)}
.t--stays th,.t--stays td{padding:0;border:0}
.t--stays th{font-family:var(--f-disp);font-size:clamp(28px,2.6vw,40px);line-height:1.15;color:var(--on-dark)}
.t--stays td{font-size:15px;line-height:1.75}
.t--stays td:last-child{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-d);color:var(--gold-hi);font-size:14px}

/* prices */
.t--prices thead th{font-size:14px}
.t--prices td{font-variant-numeric:tabular-nums lining-nums;color:var(--ink);white-space:nowrap}
.t--prices tbody th{width:38%}
.t--prices tbody tr:first-child td{color:var(--gold);white-space:normal}

/* ---------- quotes */
.quote{margin:clamp(40px,5vw,64px) 0 0;position:relative;max-width:860px;padding-inline-start:clamp(0px,5vw,72px)}
.quote__mark{position:absolute;inset-inline-start:-6px;top:-34px;font-family:'Cormorant Garamond',serif;font-size:140px;line-height:1;color:var(--gold);opacity:.5}
.quote .stars{display:flex;margin-bottom:14px}
.quote blockquote{margin:0}
.quote blockquote p{font-family:var(--f-disp);font-size:clamp(21px,1.75vw,26px);line-height:1.75;font-weight:500;color:var(--ink);font-variant-numeric:lining-nums}
.quote figcaption{margin-top:16px;font-size:14px;color:var(--stone)}
.ch--salon .quote blockquote p{color:var(--on-dark)}
.ch--salon .quote figcaption{color:var(--on-dark-2)}
.ch--salon .quote__mark{color:var(--gold-hi)}
.reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:8px}
.quote--review{margin:0;max-width:none;padding:clamp(28px,3.5vw,48px);background:var(--paper);border:1px solid var(--line)}
.quote--review .quote__mark{inset-inline-start:auto;inset-inline-end:24px;top:-8px}
.quote--review blockquote p{font-size:clamp(18px,1.4vw,21px);line-height:1.85}
.ch--reviews .ch__head .stars{justify-content:center;display:flex;margin:0 0 18px}
.ch--reviews .ch__head .stars svg{width:18px;height:18px}
.ch--reviews .ch__body,.ch--reviews .ch__in>p{max-width:70ch;margin-inline:auto}
.ctas-center{display:flex;justify-content:center}

/* ---------- preview message */
.preview{max-width:440px;margin-top:36px;background:#fff;border:1px solid var(--line);padding:22px 26px;position:relative;box-shadow:0 24px 50px -36px rgba(23,20,15,.4)}
.preview::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--gold)}
.preview__label{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--gold);margin-bottom:10px}
.preview__label .i{fill:var(--gold);stroke:none;width:18px;height:18px}
.preview__msg{font-size:15px;line-height:1.95}

/* ---------- FAQ */
.faq{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:clamp(28px,5vw,88px);align-items:start}
.faq__nav{position:sticky;top:150px}
.faq__nav ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.faq__nav a{display:block;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:15px;color:var(--stone)}
.faq__nav a:hover,.faq__nav a.is-on{color:var(--ink)}
.faq__group+.faq__group{margin-top:clamp(40px,4vw,64px)}
.faq__group h3{font-size:clamp(23px,2vw,30px);padding-bottom:14px;border-bottom:1px solid var(--ink)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;cursor:pointer;min-height:56px}
.qa summary::-webkit-details-marker{display:none}
.qa h4{font-size:17.5px;line-height:1.7;font-family:var(--f-text);font-weight:600}
.qa .i--chev{width:20px;height:20px;stroke:var(--gold);fill:none;stroke-width:1.5;transition:transform .35s var(--ease)}
.qa[open] .i--chev{transform:rotate(180deg)}
.qa__a{padding:0 0 22px;color:var(--stone);font-size:16.5px;line-height:1.95;max-width:70ch}
.qa summary:hover h4{color:var(--gold)}
.closing{margin-top:clamp(56px,6vw,96px);padding:clamp(32px,5vw,72px);background:var(--salon);color:var(--on-dark-2);text-align:center;position:relative}
.closing::before{content:"";position:absolute;inset:14px;border:1px solid rgba(201,172,114,.3);pointer-events:none}
.closing .ctas{justify-content:center;margin-top:0}
.closing .btn--primary{--bg:var(--gold-hi);--fg:var(--ink);--ic:var(--ink);--sweep:var(--on-dark)}
.closing p{margin-top:22px;font-size:15.5px}
.closing a:not(.btn){color:var(--gold-hi)}

/* ---------- footer + dock */
.foot{background:var(--salon);color:var(--on-dark-2);font-size:14.5px;line-height:1.85;padding-block:72px 32px}
.foot a{color:var(--on-dark-2);text-decoration:none}
.foot a:hover{color:var(--gold-hi)}
.foot__in,.foot__legal{max-width:calc(var(--wrap) + 2*var(--g));margin:0 auto}
.foot__in{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.foot__mark{font-family:'Cormorant Garamond',serif;letter-spacing:.2em;text-transform:uppercase;font-size:20px;color:var(--gold-hi);direction:ltr;text-align:right}
.foot__addr{direction:ltr;text-align:right;margin:10px 0 14px}
.foot__brand p+p{margin-top:10px}
.foot__h{color:var(--on-dark);font-weight:600;margin-bottom:10px}
.foot ul{list-style:none;margin:0;padding:0}
.foot__contact{margin-top:14px}
.foot__contact a{direction:ltr;unicode-bidi:isolate}
.foot__legal{margin-top:48px;padding-top:24px;border-top:1px solid var(--line-d);font-size:13px;display:grid;gap:8px}
.foot__links{display:flex;flex-wrap:wrap;gap:6px 22px}
.dock{position:fixed;z-index:30;inset-inline-end:max(24px,env(safe-area-inset-left,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:18px;
  padding:10px 10px 10px 10px;padding-inline-start:20px;background:var(--salon);color:var(--on-dark);border:1px solid rgba(201,172,114,.45);
  box-shadow:0 24px 48px -24px rgba(0,0,0,.6);transform:translateY(140%);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.dock.is-on{transform:none;opacity:1}
.dock__t{display:grid;font-size:12.5px;line-height:1.5;color:var(--on-dark-2)}
.dock__t strong{font-family:var(--f-disp);font-size:18px;color:var(--on-dark);font-weight:600;font-variant-numeric:lining-nums}
.dock .btn{--bg:var(--gold-hi);--fg:var(--ink);--ic:var(--ink);--sweep:var(--on-dark)}

/* ---------- motion */
@media (prefers-reduced-motion: no-preference){
  .ph--hero img{animation:unveil 1.4s var(--ease) both}
  .hero h1{animation:rise 1s .25s var(--ease) both}
  .hero__lede,.hero__act,.proof{animation:rise 1s .45s var(--ease) both}
  @keyframes unveil{from{clip-path:inset(0 0 0 100%);transform:scale(1.06)}to{clip-path:inset(0);transform:scale(1)}}
  @keyframes rise{from{opacity:0;transform:translateY(16px)}}
  @supports (animation-timeline: view()){
    .ph:not(.ph--hero):not(.ph--band) img{animation:settle linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
    .ph--band img{animation:drift linear both;animation-timeline:view();animation-range:cover}
    .journey li::before{animation:draw linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
    @keyframes settle{from{transform:scale(1.09)}to{transform:scale(1)}}
    @keyframes drift{from{transform:translateY(-7%) scale(1.16)}to{transform:translateY(7%) scale(1.16)}}
    @keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  }
  .qa::details-content{transition:height .45s var(--ease),content-visibility .45s allow-discrete;height:0;overflow:clip}
  .qa[open]::details-content{height:auto}
  .page{interpolate-size:allow-keywords}
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* ---------- responsive */
@media (max-width:1180px){
  .hd__nav ul{gap:18px}
  .t--stays tbody{grid-template-columns:repeat(3,minmax(0,1fr))}
  .t--needs tbody{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1300px){
  :root{--hd:64px}
  .hd__row{gap:12px}
  .hd__nav{position:absolute;top:100%;inset-inline:0;background:var(--ivory);border-bottom:1px solid var(--line);padding:8px max(var(--g),env(safe-area-inset-right,0px)) 24px;display:none}
  .hd.is-menu .hd__nav{display:block}
  .hd__nav ul{flex-direction:column;gap:0}
  .hd__nav a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:17px;color:var(--ink)}
  .hd__mob{display:grid;gap:4px;padding-top:14px}
  .hd__mob a{border:0;font-size:15px;color:var(--stone);direction:ltr;text-align:right}
  .hd__burger{display:block;order:-1}
  .hd__mark{flex:1;font-size:15px;letter-spacing:.16em;text-align:right}
  .hd__lang{display:none}
  .hd.is-menu .hd__lang{display:flex}
  .btn--hd span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .btn--hd{width:44px;min-height:44px;padding:0;justify-content:center}
}
@media (max-width:1023px){
  .hero{grid-template-columns:1fr;grid-template-areas:"media" "text";min-height:0}
  .hero__media{height:clamp(250px,36svh,440px)}
  .ph--hero img{object-position:50% 30%}
  .hero__text{max-width:none;padding-block:30px 44px;padding-inline:max(var(--g),env(safe-area-inset-right,0px)) max(var(--g),env(safe-area-inset-left,0px))}
  .overture__in,.aside,.split,.gulf,.faq{grid-template-columns:1fr}
  .aside__head,.split__media,.faq__nav{position:static}
  .split__media{order:-1;max-width:560px}
  .faq__nav{display:none}
  .gulf{align-items:start}
  .toc__list{columns:2}
  .subgrid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__in{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .page{font-size:17px;line-height:1.9}
  .hero h1{font-size:clamp(31px,8.4vw,40px);margin-bottom:16px}
  .hero__lede{font-size:17px}
  .hero__act{margin-top:24px}
  .ph--hero::after,.ph::after{inset:8px}
  .ph--band{height:clamp(260px,72vw,420px)}
  .ch{padding-block:64px}
  .toc__list{columns:1}
  .subgrid--2,.subgrid--3,.services,.reviews,.booking,.t--durations2 tbody,.t--needs tbody{grid-template-columns:1fr}
  .services li{padding-inline-start:0}
  .t--stays tbody{grid-template-columns:1fr 1fr}
  .t--stays tr:last-child{grid-column:1/-1}
  .journey{grid-template-columns:1fr;gap:0}
  .journey li{padding:0 0 26px;padding-inline-start:62px;min-height:60px}
  .journey li::before{top:44px;bottom:0;inset-inline-start:21.5px;inset-inline-end:auto;width:1px;height:auto;transform-origin:top}
  .journey li:last-child::before{display:none}
  .t--day tr{grid-template-columns:1fr;gap:2px}
  .t--day td:nth-child(2),.t--day td:nth-child(3){padding-inline-start:26px}
  /* stacked tables */
  .t--ledger thead,.t--offer thead,.t--compare thead,.t--prices thead,.t--vehicles thead,.t--seats thead{display:none}
  .t--ledger tr,.t--offer tr,.t--compare tr,.t--prices tr,.t--vehicles tr,.t--seats tr{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
  .ch--salon .t--compare tr{border-bottom-color:var(--line-d)}
  .t--ledger th,.t--ledger td,.t--offer th,.t--offer td,.t--compare th,.t--compare td,.t--prices th,.t--prices td,.t--vehicles th,.t--vehicles td,.t--seats th,.t--seats td{display:block;width:auto;padding:2px 0;border:0;white-space:normal;background:none}
  .t--compare td,.t--prices td,.t--vehicles td,.t--seats td{padding-top:6px}
  .t--compare td::before,.t--prices td::before,.t--vehicles td::before,.t--seats td::before{content:attr(data-label);display:block;font-size:12.5px;color:var(--gold)}
  .ch--salon .t--compare td::before{color:var(--gold-hi)}
  .t--compare td:nth-child(3){padding-inline:0}
  .t--prices td{display:flex;justify-content:space-between;gap:16px}
  .t--prices td::before{display:inline;font-size:14px;color:var(--stone)}
  .t--prices tbody tr:first-child td{display:flex}
  .tw--offer{padding:20px}
  .quote{padding-inline-start:0}
  .quote__mark{font-size:96px;top:-26px}
  .foot__in{grid-template-columns:1fr}
  .dock{inset-inline:0;bottom:0;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border-inline:0;border-bottom:0}
  .dock__t span{display:none}
  .dock .btn{flex:1;justify-content:center}
  .dock__t strong{font-size:16px}
}

/* =====================================================================================
   V7.2 : interactive layer. Five motion families:
   1 editorial reveal (titles), 2 photographic depth (photos), 3 refined interaction (selectors, buttons),
   4 guided journey (timelines), 5 quiet luxury (salons, testimonials: slower, softer).
   Everything below is progressive: without JS or with reduced motion the page is complete and static.
   ===================================================================================== */
:root{--slow:.9s;--mid:.55s}

/* hero: gold signature + layered photo */
.sig{display:flex;align-items:center;gap:10px;margin-bottom:22px;height:10px}
.sig::before{content:"";height:1px;width:72px;background:var(--gold);transform-origin:right}
.sig::after{content:"";width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}
.v72 .hero h1{font-size:clamp(36px,4.4vw,64px);line-height:1.2}
.hero__media[data-depth]{overflow:hidden}
.hero__media[data-depth] .ph--hero picture{display:block;height:100%}
.hero__media[data-depth] .ph--hero img{transform:translate3d(var(--mx,0px),var(--my,0px),0) scale(1.045);transition:transform 1.1s var(--ease)}
.ph__cap{position:absolute;inset-inline-start:22px;bottom:20px;z-index:2;font-size:12.5px;line-height:1.4;color:#FBF7EF;
  padding:5px 10px;background:rgba(23,20,15,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.01em}
.ph--hero .ph__cap{inset-inline-start:28px;bottom:28px}

/* explorer (Gulf families) */
.explorer{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"list stage";gap:clamp(28px,5vw,80px);align-items:start;margin-bottom:clamp(24px,3vw,40px)}
.explorer__list{grid-area:list;min-width:0}
.explorer__stage{grid-area:stage;position:sticky;top:150px;aspect-ratio:4/4.6;overflow:hidden;background:var(--salon)}
.stage__f{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity var(--slow) var(--ease),transform 1.4s var(--ease)}
.stage__f.is-on{opacity:1;transform:none}
.stage__f .ph{position:absolute;inset:0}
.stage__f--plate{display:grid;place-items:center;background:radial-gradient(120% 90% at 30% 20%,#2C2721,var(--salon));color:var(--gold-hi)}
.stage__f--plate::after{content:"";position:absolute;inset:16px;border:1px solid rgba(201,172,114,.35)}
.star8{width:46%;max-width:280px;color:var(--gold-hi);opacity:.85}
.plate__ic .i{width:min(34vw,170px);height:auto;stroke:var(--gold-hi);stroke-width:.6}
.explorer .t--needs tbody{display:block;border-top:1px solid var(--ink)}
.explorer .t--needs tr{position:relative;display:block;padding:20px 22px 20px 0;padding-inline-start:22px;border-top:0;border-bottom:1px solid var(--line);cursor:pointer;transition:background var(--mid) var(--ease)}
.explorer .t--needs tr::before{content:"";position:absolute;inset-block:14px;inset-inline-start:0;width:2px;background:var(--gold);transform:scaleY(0);transition:transform var(--mid) var(--ease)}
.explorer .t--needs tr.is-active{background:var(--paper)}
.explorer .t--needs tr.is-active::before{transform:scaleY(1)}
.explorer .t--needs th{display:block;font-size:22px;margin-bottom:4px}
.explorer .t--needs td{display:block;color:var(--stone)}
.explorer .t--needs tr:not(.is-active) td{color:color-mix(in srgb,var(--stone) 80%,var(--ivory))}

/* stay selector */
.stay .t--stays tr{cursor:pointer;position:relative;transition:background var(--slow) var(--ease),transform var(--mid) var(--ease),opacity var(--mid)}
.stay .t--stays tr:hover{background:var(--salon-2)}
.stay .t--stays tr.is-active{background:#2E2923;box-shadow:inset 0 2px 0 var(--gold-hi)}
.stay.has-pick .t--stays tr:not(.is-active){opacity:.62}
.stay .t--stays tr:focus-visible{outline:2px solid var(--gold-hi);outline-offset:-2px}
.stay .t--stays tr::after{content:"";position:absolute;top:22px;inset-inline-end:20px;width:14px;height:14px;border-radius:50%;border:1px solid rgba(201,172,114,.6);transition:background var(--mid)}
.stay .t--stays tr.is-active::after{background:var(--gold-hi);box-shadow:0 0 0 4px rgba(201,172,114,.18)}
.stay__pick:empty{display:none}
.stay__pick{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-disp);font-size:20px;color:var(--gold-hi);padding:6px 16px;border:1px solid rgba(201,172,114,.5);border-radius:999px}

/* airport journey */
.journey--air{position:relative}
.journey__track{position:absolute;top:29px;inset-inline:22px;height:1px;background:var(--line);pointer-events:none}
.journey__fill{position:absolute;inset-block:0;inset-inline-start:0;width:calc(var(--p,0)*100%);background:var(--gold);transition:width .8s var(--ease)}
.journey--air li::before{display:none}
.journey--air li{padding-top:76px}
.journey--air .step__n{top:8px;transition:background var(--mid),color var(--mid),transform var(--mid) var(--ease)}
.journey--air .step__ic{position:absolute;top:10px;inset-inline-start:60px}
.journey--air .step__ic .i{width:24px;height:24px;stroke:var(--stone);transition:stroke var(--mid)}
.journey--air li.is-on .step__n{background:var(--gold);color:var(--ivory);transform:scale(1.06)}
.journey--air li.is-on .step__ic .i{stroke:var(--gold)}

/* fleet */
.fleet__stage{position:relative;aspect-ratio:4/5}
.fleet__stage .stage__f .ph{position:absolute;inset:0;aspect-ratio:auto}
.t--vehicles tbody tr{cursor:pointer;transition:background var(--mid)}
.t--vehicles tbody tr.is-active{background:var(--ivory)}
.t--vehicles tbody tr.is-active th{color:var(--gold)}

/* curated Paris */
.curated{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto auto;gap:clamp(16px,2vw,28px)}
.cur{padding:clamp(28px,3.5vw,52px);background:var(--paper);border:1px solid var(--line);position:relative}
.cur--0{grid-row:span 2;background:var(--salon);color:var(--on-dark-2);border:0}
.cur--0::after{content:"";position:absolute;inset:14px;border:1px solid rgba(201,172,114,.3);pointer-events:none}
.cur--0 h3{color:var(--on-dark)}
.cur--0 .place{color:var(--gold-hi);border-bottom-color:rgba(201,172,114,.5)}
.cur h3{font-size:clamp(25px,2.3vw,34px);line-height:1.3;margin-bottom:16px}
.cur p{font-size:16.5px;line-height:1.95}
.cur p+p{margin-top:14px}
.cur a{color:var(--gold)}
.cur--0 a{color:var(--gold-hi)}
.place{color:var(--ink);font-weight:600;border-bottom:1px solid rgba(126,98,54,.45);padding-bottom:1px}

/* trust collection */
.trust__seal .stars{display:flex;justify-content:center;gap:8px;margin:0 0 20px}
.trust__seal .stars svg{width:26px;height:26px}
.trust{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.5vw,36px);align-items:start;margin-top:8px}
.quote--trust{grid-column:span 6;margin:0;max-width:none;padding:clamp(26px,3.5vw,52px);background:var(--paper);border:1px solid var(--line);
  transition:background var(--slow) var(--ease),box-shadow var(--slow) var(--ease)}
.trust.is-js .quote--trust{grid-column:span 4;cursor:pointer}
.trust.is-js .quote--trust.is-lead{grid-column:span 8;cursor:default;background:#fff;box-shadow:0 40px 80px -60px rgba(23,20,15,.45)}
.trust.is-js .quote--trust:not(.is-lead) blockquote p{font-size:16px;line-height:1.85}
.quote--trust.is-lead blockquote p{font-size:clamp(20px,1.7vw,25px);line-height:1.8}
.quote--trust .quote__mark{inset-inline-start:auto;inset-inline-end:24px;top:-8px}
.trust__ctrl{grid-column:1/-1;display:flex;justify-content:center;gap:10px;margin-top:4px}
.trust__ctrl button{font:500 14px/1 var(--f-text);padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--stone);cursor:pointer;min-height:44px;transition:background var(--mid),color var(--mid)}
.trust__ctrl button[aria-pressed="true"]{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
::view-transition-group(*){animation-duration:.7s;animation-timing-function:cubic-bezier(.22,.7,.12,1)}

/* navigation */
.rail{position:relative}
.rail__progress{position:absolute;inset-inline:0;bottom:-1px;height:2px;pointer-events:none}
.rail__progress span{display:block;height:100%;background:var(--gold);transform:scaleX(var(--read,0));transform-origin:right;transition:transform .2s linear}
.dock__nav{position:relative;display:none}
.dock__nav summary{list-style:none;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(201,172,114,.45);cursor:pointer}
.dock__nav summary::-webkit-details-marker{display:none}
.dock__nav summary .i{stroke:var(--gold-hi)}
.dock__nav ul{position:absolute;bottom:calc(100% + 12px);inset-inline-start:0;min-width:250px;list-style:none;margin:0;padding:8px 0;background:var(--salon);border:1px solid rgba(201,172,114,.45);box-shadow:0 24px 48px -24px rgba(0,0,0,.7)}
.dock__nav a{display:block;padding:11px 18px;color:var(--on-dark);text-decoration:none;font-size:15px}
.dock__nav a:hover{color:var(--gold-hi)}

/* FAQ */
.faq__nav a{position:relative;padding-inline-start:14px;transition:color var(--mid),padding var(--mid) var(--ease)}
.faq__nav a::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:6px;height:1px;background:var(--line);transition:width var(--mid) var(--ease),background var(--mid)}
.faq__nav a.is-on{padding-inline-start:26px;color:var(--ink)}
.faq__nav a.is-on::before{width:18px;background:var(--gold)}
.faq__back{display:inline-grid;place-items:center;width:40px;height:40px;margin-top:14px;border:1px solid var(--line);border-radius:50%;color:var(--gold)}
.faq__back .i{transform:rotate(180deg);stroke:var(--gold);fill:none;width:18px;height:18px;stroke-width:1.5}
.qa summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* motion: editorial reveal and photographic depth (JS adds the pre/in states only below the fold) */
@media (prefers-reduced-motion: no-preference){
  .sig::before{animation:sig .9s .05s var(--ease) both}
  @keyframes sig{from{transform:scaleX(0)}}
  .v72 .hero h1{animation:ink .9s .1s var(--ease) both}
  @keyframes ink{from{clip-path:inset(0 0 0 100%);opacity:.2}to{clip-path:inset(0 0 0 0);opacity:1}}
  .v72 .ph--hero img{animation:none}
  .v72 .hero__media .ph--hero{animation:unveil72 1.1s var(--ease) both}
  @keyframes unveil72{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
  @supports (animation-timeline: view()){
    .hero__media[data-depth] picture{animation:heroDepth linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes heroDepth{to{transform:translateY(8%)}}
  }
  .js .rv-pre{clip-path:inset(0 0 100% 0)}
  .js .rv-pre.rv-in{clip-path:inset(0);transition:clip-path 1.2s var(--ease)}
  .js .hd-pre{opacity:0;transform:translateY(18px)}
  .js .hd-pre.rv-in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .ch--salon .hd-pre.rv-in{transition-duration:1.1s}
  @media (hover:hover) and (pointer:fine){
    .ph:not(.ph--hero):not(.ph--band) img{transition:scale 1.4s var(--ease)}
    .ph:not(.ph--hero):not(.ph--band):hover img{scale:1.035}
  }
}
@media (prefers-reduced-motion: reduce){.stage__f{transition:none}.hero__media[data-depth] .ph--hero img{transform:none}}

@media (max-width:1023px){
  .explorer{grid-template-columns:1fr;grid-template-areas:"stage" "list"}
  .explorer__stage{position:relative;top:auto;aspect-ratio:16/11}
  .curated{grid-template-columns:1fr}
  .cur--0{grid-row:auto}
  .trust.is-js .quote--trust,.trust.is-js .quote--trust.is-lead{grid-column:1/-1}
  .faq__nav{display:block;position:sticky;top:calc(64px + env(safe-area-inset-top,0px));z-index:5;background:var(--paper);margin-inline:calc(-1*var(--g));padding:10px var(--g);border-bottom:1px solid var(--line)}
  .faq__nav ul{display:flex;gap:8px;overflow-x:auto;border-top:0;scrollbar-width:none}
  .faq__nav ul::-webkit-scrollbar{display:none}
  .faq__nav li{flex:none}
  .faq__nav a{padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;white-space:nowrap}
  .faq__nav a::before{display:none}
  .faq__nav a.is-on{padding:7px 14px;background:var(--ink);color:var(--ivory);border-color:var(--ink)}
}
@media (max-width:760px){
  .dock__nav{display:block}
  .journey__track{top:22px;bottom:26px;inset-inline:auto;inset-inline-start:21.5px;width:1px;height:auto}
  .journey__fill{width:100%;height:calc(var(--p,0)*100%)}
  .journey--air li{padding-top:0}
  .journey--air .step__n{top:0}
  .journey--air .step__ic{position:static;display:block;margin-bottom:6px}
  .trust{grid-template-columns:1fr}
  .quote--trust{grid-column:1/-1}
  .ph__cap{inset-inline-start:14px;bottom:14px;font-size:12px}
}
.faq>*{min-width:0}
@media (max-width:1023px){.faq__nav{max-width:calc(100% + 2*var(--g))}}
.stay .t--stays tr::after{top:auto;bottom:26px}
.stay .t--stays td:last-child{padding-inline-end:28px}
.curated{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto}
.cur--0{grid-row:auto}
@media (max-width:1023px){.curated{grid-template-columns:1fr}}
/* hero lighting: warm light on the facade and a brass hairline between photograph and text */
.hero__media[data-depth]::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(90% 60% at 70% 0%,rgba(255,236,200,.16),transparent 60%),linear-gradient(270deg,rgba(23,20,15,.0) 70%,rgba(23,20,15,.18))}
.hero__media[data-depth]::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:1px;z-index:2;background:linear-gradient(var(--gold),rgba(126,98,54,0))}
@media (max-width:1023px){.hero__media[data-depth]::after{display:none}}


/* staging: theme photographs and fonts */
@media (max-width:760px){.ph--band img{object-position:60% 50%}}
.ph--tall img[src*="collectionneur"]{object-position:47% 50%}


/* consent banner: same font stacks as the frozen page (theme.css is not loaded here) */
.ppe-consent{--font-sans:'DM Sans','IBM Plex Sans Arabic','Noto Naskh Arabic',sans-serif;--font-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif}
/* staging QA: the hero text and first CTA are visible from the first paint (no delayed fade) */
.v72 .hero__lede,.v72 .hero__act,.v72 .proof{animation:none}
/* staging QA, mobile LCP: the hero photograph and title are painted at once on phones (desktop keeps the unveil) */
@media (max-width:760px){.v72 .hero__media .ph--hero,.v72 .hero h1{animation:none}}
/* ===== V7.2b explorer: eight choices, one stage (same frame, same caption, same crossfade) ===== */
.explorer__stage{container-type:size;isolation:isolate}
.stage__f,.stage__f.is-on{transform:none}
.stage__f{transition:opacity .55s var(--ease)}
.stage__f--photo .ph img{transform:scale(1.025);transition:transform 1.1s var(--ease)}
.stage__f--photo.is-on .ph img{transform:none}
.stage__f .ph::after{display:none}
.stage__f::after{content:"";position:absolute;inset:14px;border:1px solid rgba(241,234,220,.32);pointer-events:none;z-index:3}
.stage__f--photo::before{content:"";position:absolute;inset:auto 0 0 0;height:36%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(23,20,15,0),rgba(23,20,15,.6))}
.stage__f[data-f="1"] .ph img{object-position:38% 50%}
.stage__cap{position:absolute;z-index:4;bottom:30px;inset-inline-start:30px;font:600 13.5px/1.2 'IBM Plex Sans Arabic','DM Sans',sans-serif;color:var(--on-dark);padding:8px 14px;background:rgba(23,20,15,.66);border:1px solid rgba(201,172,114,.45)}
.stage__f--comp{background:radial-gradient(120% 80% at 75% 8%,#2F2A22 0%,var(--salon) 64%);color:var(--on-dark);overflow:hidden}
/* conciergerie en arabe: the conversation and the three documents, written in Arabic */
.comp__glyph{position:absolute;z-index:0;inset-inline-end:-3cqi;bottom:-27cqb;font:400 78cqb/1 'Markazi Text',serif;color:transparent;-webkit-text-stroke:1px rgba(201,172,114,.42);pointer-events:none;user-select:none}
.chat{position:absolute;z-index:2;inset-inline:11cqi;top:47%;transform:translateY(-50%);display:grid;gap:3.2cqb;padding:5cqi 5cqi 5.5cqi;background:var(--paper);color:var(--ink);box-shadow:0 2.5cqb 6cqb rgba(0,0,0,.38)}
.chat__bar{display:flex;align-items:center;gap:2.4cqi;padding-bottom:3cqb;border-bottom:1px solid var(--line)}
.chat__seal{display:grid;place-items:center;width:7cqi;aspect-ratio:1;border-radius:50%;background:var(--ink);color:var(--gold-hi);font:500 4.4cqi/1 'Markazi Text',serif;flex:none}
.chat__title{font:600 3cqi/1.3 'IBM Plex Sans Arabic',sans-serif}
.chat__msg{justify-self:end;max-width:84%;display:grid;gap:.6cqb;padding:3cqi 3.6cqi 2.2cqi;background:#EFE7D6;border-radius:3px;font:400 2.75cqi/1.75 'IBM Plex Sans Arabic',sans-serif}
.chat__ticks{justify-self:end;width:4.2cqi;line-height:0}
.chat__ticks svg{width:100%;height:auto;fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.chat__docs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.6cqi;justify-self:start;width:88%}
.doc{position:relative;display:grid;align-content:start;gap:1.6cqb;aspect-ratio:3/3.6;padding:3cqi 2.6cqi;background:#FFFDF8;border:1px solid var(--line);box-shadow:0 .8cqb 2cqb rgba(23,20,15,.08)}
.doc--1{transform:translateY(-1.2cqb)}
.doc__seal{display:grid;place-items:center;width:4.6cqi;aspect-ratio:1;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:500 3cqi/1 'Markazi Text',serif}
.doc__t{font:600 2.9cqi/1.25 'Markazi Text','IBM Plex Sans Arabic',serif;color:var(--ink)}
.doc__lines{height:7cqb;background:repeating-linear-gradient(180deg,var(--line) 0 1px,transparent 1px 1.6cqb)}
/* séjour halal: the day, its halal table, its prayer time and its family pace, framed by an arch */
.comp--halal{background:radial-gradient(90% 70% at 50% 26%,#352E24 0%,var(--salon) 70%)}
.arch{position:absolute;z-index:0;left:50%;top:7cqb;width:66cqi;height:86cqb;transform:translateX(-50%);overflow:visible}
.arch__fill{fill:url(#archLight)}
.arch__line{fill:none;stroke:var(--gold-hi);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.7}
.arch__line--in{opacity:.3}
.menu{position:absolute;z-index:2;left:50%;top:30cqb;transform:translateX(-50%);width:52cqi;display:grid;gap:2cqb;padding:5cqi 5cqi 4cqi;background:var(--paper);color:var(--ink);box-shadow:0 2.5cqb 6cqb rgba(0,0,0,.38);text-align:center}
.menu::before{content:"";position:absolute;inset:6px;border:1px solid rgba(126,98,54,.32);pointer-events:none}
.menu__kicker{font:500 2.4cqi/1.2 'IBM Plex Sans Arabic',sans-serif;color:var(--gold)}
.menu__row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3cqi;align-items:baseline;text-align:start;padding-block:1.6cqb;border-top:1px solid var(--line)}
.menu__time{font:500 3.6cqi/1 'Cormorant Garamond',serif;color:var(--gold);font-variant-numeric:lining-nums;direction:ltr;min-width:7cqi}
.menu__txt{font:500 3.1cqi/1.35 'Markazi Text','IBM Plex Sans Arabic',serif}
.menu__marks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2cqi;padding-top:2.4cqb;border-top:1px solid var(--ink)}
.mark{display:grid;justify-items:center;gap:1cqb;font:500 2.2cqi/1.3 'IBM Plex Sans Arabic',sans-serif;color:var(--stone)}
.mark svg{width:5.6cqi;height:5.6cqi;fill:none;stroke:var(--gold);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
/* narrow layouts: the stage stays in view while the eight choices scroll beneath it */
@media (max-width:1023px){
  .explorer__stage{position:sticky;top:calc(110px + env(safe-area-inset-top,0px));z-index:2;aspect-ratio:4/3;max-height:42svh;width:100%;box-shadow:0 10px 24px -18px rgba(23,20,15,.6)}
  .stage__f::after{inset:9px}
  .stage__cap{bottom:16px;inset-inline-start:18px;font-size:12.5px;padding:6px 11px}
}
@container (max-height:380px){
  .comp__glyph{font-size:120cqb;bottom:-62cqb}
  .chat{inset-inline:7cqi;top:9cqb;transform:none;gap:2.4cqb;padding:3.4cqi 4cqi}
  .chat__bar{padding-bottom:2cqb}
  .chat__title{font-size:3.4cqi}
  .chat__msg{font-size:3.2cqi;max-width:94%;padding:2.2cqi 3cqi 1.4cqi}
  .chat__msg>span:first-child{display:none}
  .chat__docs{width:100%}
  .doc{aspect-ratio:auto;padding:2cqi 2.4cqi;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2cqi}
  .doc--1{transform:none}
  .doc__lines{display:none}
  .doc__seal{width:5.4cqi;font-size:3.4cqi}
  .doc__t{font-size:3.3cqi}
  .arch{top:4cqb;height:104cqb;width:62cqi}
  .menu{top:8cqb;width:76cqi;gap:1cqb;padding:3cqi 5cqi}
  .menu::before{inset:4px}
  .menu__kicker{font-size:3cqi}
  .menu__time{font-size:4.4cqi}
  .menu__txt{font-size:3.7cqi}
  .menu__row{padding-block:1.2cqb}
  .menu__marks{display:none}
}
@media (prefers-reduced-motion: reduce){.stage__f,.stage__f--photo .ph img{transition:none}.stage__f--photo .ph img{transform:none}}
/* ===== V7.2b first mobile screen: title, then the main CTA, above the consent banner ===== */
@media (max-width:760px){
  .v72 .hero__media{height:clamp(170px,28svh,340px)}
  .v72 .ph--hero img{object-position:50% 50%}
  .v72 .hero__text{display:flex;flex-direction:column;padding-block:22px 40px}
  .v72 .hero__act{display:contents}
  .v72 .hero h1{order:1;margin-bottom:16px}
  .v72 .hero__act .btn{order:2;justify-content:center}
  .v72 .hero__lede{order:3;margin-top:20px}
  .v72 .hero__reassure{order:4;margin-top:12px}
  .v72 .proof{order:5}
}
@media (max-width:380px){.v72 .hero__text{padding-top:18px}.v72 .hero h1{margin-bottom:12px}}
/* V7.2b mobile header: menu button and WhatsApp button never shrink, the wordmark adapts (360 px and narrower phones) */
@media (max-width:1023px){.v72 .hd__burger,.v72 .btn--hd{flex:none}.v72 .hd__mark{min-width:0;overflow:hidden}}
@media (max-width:400px){.v72 .hd__row{gap:12px}.v72 .hd__mark{font-size:13.5px;letter-spacing:.1em}}
@media (max-width:350px){.v72 .hd__mark{font-size:12px;letter-spacing:.06em}}
@media (max-width:480px){.v72 .hd__mark{font-size:clamp(9px,calc((100vw - 198px)/14.6),15px);letter-spacing:.08em}}
/* 8.2.0 : statut de l'adresse dans le footer */
.foot__addr-l{font-size:12.5px;opacity:.72;margin:10px 0 0}
.foot__addr-l+.foot__addr{margin-top:2px}
.foot__note{font-size:13px;opacity:.8}
