/* ============ Tokens (from LA BEAUTÉ Brand Guidelines · 04) ============ */
:root{
  --lb-encre:#15120F; --lb-blanc:#FFFFFF; --lb-ivoire:#F5F0E8; --lb-sable:#DDD0C0;
  --lb-champagne:#C8B08A; --lb-champagne-text:#7A6240; --lb-muted:#5E554B;
  --lb-wine:#8E2F2F; --lb-olive:#4B5A3A;

  --f-display-lat:"Taillevere","Bodoni Moda","Didot",serif;
  --f-display-ar:"OYMandisa","Amiri",serif;
  --f-body-ar:"IBM Plex Sans Arabic",system-ui,sans-serif;
  --f-label:"Montserrat",system-ui,sans-serif;

  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;
  --r-btn:2px; --r-card:12px; --r-img:24px;
  --shadow:0 18px 40px rgba(21,18,15,.08);
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:180ms; --t-mid:320ms; --t-slow:600ms;
  --header-h:80px; --max:1200px; --gutter:64px;
}
@media (max-width:1023px){ :root{ --gutter:32px; } }
@media (max-width:767px){ :root{ --gutter:20px; --header-h:64px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--lb-blanc); color:var(--lb-encre);
  font-family:var(--f-body-ar); font-size:17px; line-height:1.75; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,select{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--lb-encre); outline-offset:3px; }
.on-dark :focus-visible{ outline-color:var(--lb-champagne); }
::selection{ background:var(--lb-sable); color:var(--lb-encre); }

.container{ width:100%; max-width:calc(var(--max) + 2*var(--gutter)); margin-inline:auto; padding-inline:var(--gutter); }
.skip-link{ position:absolute; inset-inline-start:16px; top:-60px; z-index:1000; background:var(--lb-encre); color:var(--lb-blanc); padding:12px 20px; border-radius:var(--r-btn); transition:top var(--t-fast) var(--ease); }
.skip-link:focus{ top:16px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ============ Type ============ */
.label{ font-family:var(--f-label); font-size:12px; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--lb-champagne-text); direction:ltr; unicode-bidi:isolate; display:inline-block; }
.display, h1, h2, h3{ font-family:var(--f-display-ar); font-weight:400; margin:0; letter-spacing:0; }
h1{ font-size:clamp(40px, 5.2vw, 64px); line-height:1.35; text-wrap:balance; }
h2{ font-size:clamp(32px, 3.8vw, 48px); line-height:1.4; text-wrap:balance; }
h3{ font-size:clamp(24px, 2.4vw, 30px); line-height:1.45; }
.lead{ font-size:clamp(17px,1.4vw,20px); line-height:1.85; color:var(--lb-muted); max-width:56ch; }
.latin{ font-family:var(--f-display-lat); direction:ltr; unicode-bidi:isolate; }
.tagline{ font-family:var(--f-display-ar); font-size:clamp(20px,1.8vw,24px); color:var(--lb-champagne-text); }
html[lang="en"] .tagline{ letter-spacing:.06em; }
.rule{ width:56px; height:1px; background:var(--lb-champagne); border:0; margin:0; }
.eyebrow{ display:flex; align-items:center; gap:var(--s-3); margin-bottom:var(--s-5); }
.eyebrow::before{ content:""; width:7px; height:7px; background:var(--lb-champagne); transform:rotate(45deg); flex:none; }
.eyebrow::after{ content:""; width:40px; height:1px; background:var(--lb-champagne); }

/* ============ Buttons (04.5) ============ */
.btn{
  --bh:56px; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:var(--bh); padding:16px 34px; border-radius:var(--r-btn); border:1px solid var(--lb-encre);
  font-family:var(--f-body-ar); font-size:17px; font-weight:500; line-height:1; cursor:pointer;
  transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
  touch-action:manipulation; white-space:nowrap;
}
.btn svg{ width:20px; height:20px; flex:none; }
.btn-primary{ background:var(--lb-encre); color:var(--lb-blanc); }
.btn-primary:hover{ background:#2b2520; }
.btn-secondary{ background:transparent; color:var(--lb-encre); }
.btn-secondary:hover{ background:var(--lb-ivoire); }
.btn:active{ transform:translateY(1px); }
.btn-sm{ --bh:48px; padding:12px 24px; font-size:16px; }
.link{
  display:inline-flex; align-items:center; gap:8px; font-weight:500; padding-block:6px;
  background:linear-gradient(var(--lb-champagne),var(--lb-champagne)) no-repeat 100% 100% / 100% 1px;
  transition:background-size var(--t-mid) var(--ease), color var(--t-fast) var(--ease);
}
.link:hover{ background-size:0 1px; background-position:0 100%; color:var(--lb-champagne-text); }
.link svg{ width:16px; height:16px; transition:transform var(--t-fast) var(--ease); }
.link:hover svg{ transform:translateX(-4px); }

/* ============ Header (04.8) ============ */
.site-header{
  /* At the top the header is transparent and sits over the hero, so both share one background. */
  position:sticky; top:0; z-index:40; height:var(--header-h); background:rgba(245,240,232,0);
  border-bottom:1px solid transparent;
  transition:background-color var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease);
}
.site-header.scrolled, .site-header.menu-open{
  background:rgba(245,240,232,.94); border-bottom-color:var(--lb-sable);
  backdrop-filter:saturate(140%) blur(12px); -webkit-backdrop-filter:saturate(140%) blur(12px);
}
.site-header.menu-open{ background:var(--lb-ivoire); }
/* Pull the hero up under the header so the ivoire + light glow run behind it */
.hs{ margin-top:calc(-1 * var(--header-h)); }
.header-inner{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); }
.brand{ display:inline-flex; align-items:center; gap:12px; direction:ltr; min-height:44px; }
.brand .hlogo{ height:52px; width:auto; display:block; }
.brand .mono{ height:42px; width:auto; }
.brand .words{ display:flex; flex-direction:column; align-items:center; gap:5px; }
.brand .word{ height:15px; width:auto; }
.brand .clinic{ height:5px; width:auto; }
.nav{ display:flex; gap:var(--s-6); }
.nav a{ position:relative; padding:10px 2px; font-size:16px; color:var(--lb-encre); transition:color var(--t-fast) var(--ease); }
.nav a::after{ content:""; position:absolute; inset-inline:0; bottom:4px; height:1px; background:var(--lb-encre); transform:scaleX(0); transform-origin:right; transition:transform var(--t-mid) var(--ease); }
.nav a:hover::after, .nav a[aria-current="page"]::after{ transform:scaleX(1); }
.header-cta{ display:flex; align-items:center; gap:var(--s-3); }
.menu-btn{ display:none; width:48px; height:48px; border:0; background:transparent; cursor:pointer; align-items:center; justify-content:center; border-radius:var(--r-btn); }
.menu-btn span{ display:block; width:22px; height:1px; background:var(--lb-encre); position:relative; transition:background var(--t-fast); }
.menu-btn span::before,.menu-btn span::after{ content:""; position:absolute; inset-inline:0; height:1px; background:var(--lb-encre); transition:transform var(--t-mid) var(--ease); }
.menu-btn span::before{ top:-7px; } .menu-btn span::after{ top:7px; }
.menu-btn[aria-expanded="true"] span{ background:transparent; }
.menu-btn[aria-expanded="true"] span::before{ transform:translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span::after{ transform:translateY(-7px) rotate(-45deg); }
.mobile-nav{ display:none; }
@media (max-width:1023px){
  .nav{ display:none; }
  .menu-btn{ display:inline-flex; }
  .header-cta .btn{ display:none; }
  .mobile-nav{
    display:block; position:fixed; inset:var(--header-h) 0 0 0; z-index:39; background:var(--lb-ivoire);
    padding:var(--s-6) var(--gutter); opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity var(--t-mid) var(--ease), transform var(--t-mid) var(--ease), visibility 0s linear var(--t-mid);
  }
  .mobile-nav.open{ opacity:1; visibility:visible; transform:none; transition:opacity var(--t-mid) var(--ease), transform var(--t-mid) var(--ease); }
  .mobile-nav ul{ list-style:none; margin:0 0 var(--s-7); padding:0; }
  .mobile-nav li a{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid var(--lb-sable); font-family:var(--f-display-ar); font-size:28px; }
  .mobile-nav li a .label{ font-size:11px; }
  .mobile-nav .btn{ width:100%; }
}
@media (max-width:767px){ .brand .hlogo{ height:40px; } }

/* ============ Announcement bar ============ */
.topbar{ background:var(--lb-ivoire); border-bottom:1px solid rgba(221,208,192,.6); font-size:14px; }
.topbar[hidden]{ display:none; }
.topbar .container{ position:relative; display:flex; align-items:center; justify-content:center; min-height:44px; }
.topbar p{ margin:0; padding:8px 40px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 14px; text-align:center; }
.topbar .latin{ font-size:12px; letter-spacing:.3em; color:var(--lb-champagne-text); }
.topbar .dot{ width:4px; height:4px; border-radius:50%; background:var(--lb-champagne); }
.topbar a{ font-weight:500; border-bottom:1px solid var(--lb-champagne); padding-bottom:1px; transition:border-color var(--t-fast) var(--ease); }
.topbar a:hover{ border-color:var(--lb-encre); }
.topbar-close{ position:absolute; inset-inline-end:calc(var(--gutter) - 14px); top:50%; transform:translateY(-50%); width:40px; height:40px; display:grid; place-items:center; border:0; background:none; cursor:pointer; border-radius:50%; transition:background var(--t-fast) var(--ease); }
.topbar-close:hover{ background:var(--lb-sable); }
.topbar-close svg{ width:14px; height:14px; }
@media (max-width:767px){ .topbar .latin,.topbar .dot{ display:none; } .topbar p{ font-size:13px; padding-inline:8px 40px; } }

/* ============ Hero slider (04.9) — arch & rings ============ */
.hs{ --hs-dur:7s; position:relative; overflow:hidden; background:var(--lb-ivoire); }
.hs::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(55% 75% at 28% 50%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 70%); }
.hs-inner{ position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:var(--s-8); align-items:center; min-height:clamp(calc(640px + var(--header-h)), calc(100dvh - 44px), calc(880px + var(--header-h))); padding-block:calc(var(--s-8) + var(--header-h)) calc(var(--s-10) + var(--s-6)); }
.hs-vtext{ position:absolute; left:24px; top:50%; margin:0; transform:translateY(-50%) rotate(180deg); writing-mode:vertical-rl; font-family:var(--f-label); font-size:11px; font-weight:500; letter-spacing:.42em; text-transform:uppercase; color:var(--lb-champagne-text); direction:ltr; display:flex; align-items:center; gap:16px; }
.hs-vtext::before{ content:""; width:1px; height:56px; background:var(--lb-champagne); }
@media (max-width:1359px){ .hs-vtext{ display:none; } }

.hs-copy{ position:relative; z-index:5; display:flex; flex-direction:column; gap:var(--s-7); }
.hs-count{ display:flex; align-items:baseline; gap:12px; font-family:var(--f-display-lat); direction:ltr; justify-content:flex-end; color:var(--lb-muted); }
.hs-count .hs-cur{ font-size:44px; line-height:1; color:var(--lb-encre); }
.hs-count .sep{ width:48px; height:1px; background:var(--lb-champagne); align-self:center; }
.hs-count .tot{ font-size:16px; letter-spacing:.08em; }
.hs-slides{ display:grid; }
.hs-slide{ grid-area:1 / 1; visibility:hidden; transition:visibility 0s linear 520ms; }
.hs-slide.is-active{ visibility:visible; transition-delay:0s; }
.hs-slide > *{ opacity:0; transform:translateY(16px); transition:opacity 480ms var(--ease), transform 720ms var(--ease); }
.hs-slide.is-active > *{ opacity:1; transform:none; }
.hs-slide.is-active > :nth-child(2){ transition-delay:90ms; }
.hs-slide.is-active > :nth-child(3){ transition-delay:180ms; }
.hs-slide.is-active > :nth-child(4){ transition-delay:260ms; }
.hs-slide.is-active > :nth-child(5){ transition-delay:340ms; }
.hs-kicker{ display:flex; align-items:center; gap:var(--s-3); margin-bottom:var(--s-5); }
.hs-kicker::before{ content:""; width:7px; height:7px; background:var(--lb-champagne); transform:rotate(45deg); flex:none; }
.hs-kicker::after{ content:""; width:40px; height:1px; background:var(--lb-champagne); }
.hs-title{ font-family:var(--f-display-ar); font-weight:400; font-size:clamp(40px, 4.4vw, 66px); line-height:1.3; margin:0 0 var(--s-5); max-width:14ch; text-wrap:balance; }
.hs-slide .lead{ margin:0 0 var(--s-7); max-width:44ch; }
.hs-actions{ display:flex; flex-wrap:wrap; gap:var(--s-3); }

.hs-nav{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); flex-wrap:wrap; padding-top:var(--s-5); border-top:1px solid var(--lb-sable); }
.hs-thumbs{ display:flex; gap:var(--s-3); margin:0; padding:0; list-style:none; }
.hs-thumb{ position:relative; display:block; width:60px; height:76px; padding:0; border:0; background:var(--lb-sable); cursor:pointer; border-radius:999px 999px 8px 8px; overflow:hidden; opacity:.5; filter:grayscale(.4); transition:opacity var(--t-mid) var(--ease), filter var(--t-mid) var(--ease), transform var(--t-mid) var(--ease); }
.hs-thumb img{ width:100%; height:100%; object-fit:cover; }
.hs-thumb:hover{ opacity:.85; filter:none; }
.hs-thumb.is-active{ opacity:1; filter:none; transform:translateY(-4px); }
.hs-thumb .bar{ position:absolute; inset:auto 6px 6px 6px; height:2px; border-radius:2px; background:rgba(255,255,255,.55); overflow:hidden; }
.hs-thumb .fill{ position:absolute; inset:0; background:var(--lb-encre); transform:scaleX(0); transform-origin:right center; }
.hs-thumb.is-done .fill{ transform:scaleX(1); background:var(--lb-champagne); }
.hs-thumb.is-active .fill{ animation:hsfill var(--hs-dur) linear forwards; }
.hs.is-paused .hs-thumb.is-active .fill{ animation-play-state:paused; }
@keyframes hsfill{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.hs-btns{ display:flex; gap:var(--s-2); }
.round-btn{ width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--lb-sable); border-radius:50%; background:var(--lb-blanc); color:var(--lb-encre); cursor:pointer; transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), opacity var(--t-fast); }
.round-btn:hover{ border-color:var(--lb-encre); background:var(--lb-encre); color:var(--lb-blanc); }
.round-btn:disabled{ opacity:.35; cursor:default; background:var(--lb-blanc); color:var(--lb-encre); border-color:var(--lb-sable); }
.round-btn svg{ width:18px; height:18px; }
.hs-pause .i-play{ display:none; }
.hs-pause[aria-pressed="true"] .i-play{ display:block; }
.hs-pause[aria-pressed="true"] .i-pause{ display:none; }
.hs-pause span{ display:grid; place-items:center; }

.hs-visual{ position:relative; display:grid; place-items:center; min-height:600px; touch-action:pan-y; }
.hs-rings{ position:absolute; left:50%; top:50%; width:min(660px, 128%); aspect-ratio:1; transform:translate(-50%,-50%); color:var(--lb-champagne); pointer-events:none; }
.hs-rings .spin{ transform-origin:50% 50%; transform-box:fill-box; animation:spin 120s linear infinite; }
.hs-arch-wrap{ position:relative; width:min(420px, 80%); aspect-ratio:3 / 4; }
.hs-arch-wrap::before{ content:""; position:absolute; inset:-16px; border:1px solid var(--lb-champagne); border-radius:999px 999px 30px 30px; }
.hs-arch{ position:absolute; inset:0; border-radius:999px 999px 20px 20px; overflow:hidden; background:var(--lb-sable); box-shadow:0 30px 70px rgba(21,18,15,.14); isolation:isolate; }
.hs-img{ position:absolute; inset:0; margin:0; z-index:1; clip-path:inset(100% 0 0 0); transition:clip-path 1.2s var(--ease); }
.hs-img.is-active{ z-index:3; clip-path:inset(0 0 0 0); }
.hs-img.was-active{ z-index:2; clip-path:inset(0 0 0 0); transition:none; }
.hs-img img{ width:100%; height:100%; object-fit:cover; transform:scale(1.12); }
.hs-img.is-active img{ transform:scale(1); transition:transform calc(var(--hs-dur) + 2s) var(--ease); }
.hs-img.was-active img{ transform:scale(1); transition:none; }
.hs-float{ position:absolute; z-index:6; display:flex; align-items:center; gap:12px; padding:10px 18px 10px 10px; background:rgba(255,255,255,.84); border:1px solid rgba(255,255,255,.9); border-radius:999px; box-shadow:var(--shadow); backdrop-filter:blur(12px) saturate(120%); -webkit-backdrop-filter:blur(12px) saturate(120%); animation:float 6s ease-in-out infinite alternate; }
.hs-float .ic{ flex:none; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--lb-encre); color:var(--lb-champagne); }
.hs-float .ic svg{ width:20px; height:20px; }
.hs-float .ic svg.mono{ width:auto; height:22px; }
.hs-float .t1{ display:block; font-family:var(--f-label); font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--lb-champagne-text); direction:ltr; text-align:right; }
.hs-float .t2{ display:block; font-size:15px; font-weight:500; line-height:1.4; white-space:nowrap; }
.hs-float.f1{ left:-14%; top:16%; }
.hs-float.f2{ right:-12%; bottom:10%; animation-delay:-3s; }
@keyframes float{ from{ transform:translateY(0); } to{ transform:translateY(-12px); } }
.hs-seal{ position:absolute; z-index:6; right:-6%; top:-2%; width:108px; height:108px; border-radius:50%; background:var(--lb-blanc); display:grid; place-items:center; color:var(--lb-encre); box-shadow:var(--shadow); }
.hs-seal svg.mono, .seal svg.mono{ height:42px; width:auto; }
.hs-seal .ring, .seal .ring{ position:absolute; inset:6px; width:calc(100% - 12px); height:calc(100% - 12px); animation:spin 40s linear infinite; }
.hs-seal .ring text, .seal .ring text{ font-family:var(--f-label); font-size:8.4px; letter-spacing:.32em; fill:var(--lb-champagne-text); }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .hs-pause{ display:none; } }
@media (max-width:1023px){
  .hs-inner{ grid-template-columns:1fr; gap:var(--s-6); min-height:0; padding-block:calc(var(--s-6) + var(--header-h)) calc(var(--s-9) + var(--s-6)); }
  .hs-visual{ order:-1; min-height:0; padding-block:var(--s-6); }
  .hs-arch-wrap{ width:min(340px, 64%); }
  .hs-rings{ width:min(540px, 118%); }
  .hs-count{ display:none; }
  .hs-title{ max-width:18ch; }
  .hs-float.f1{ left:-18%; } .hs-float.f2{ right:-18%; }
}
@media (max-width:767px){
  .hs-arch-wrap{ width:min(250px, 62%); }
  .hs-float{ padding:7px 12px 7px 7px; gap:8px; }
  .hs-float .ic{ width:32px; height:32px; } .hs-float .ic svg{ width:15px; height:15px; } .hs-float .ic svg.mono{ height:16px; }
  .hs-float .t2{ font-size:12.5px; } .hs-float .t1{ font-size:8.5px; letter-spacing:.16em; }
  .hs-float.f1{ left:-24%; top:10%; } .hs-float.f2{ right:-24%; bottom:6%; }
  .hs-seal{ width:80px; height:80px; right:-10%; top:-4%; } .hs-seal svg.mono{ height:30px; }
  .hs-title{ font-size:clamp(34px, 9.4vw, 44px); }
  .hs-slide .lead{ margin-bottom:var(--s-6); }
  .hs-actions .btn{ flex:1 1 100%; }
  .hs-thumb{ width:46px; height:60px; }
  .hs-thumbs{ gap:8px; }
  .hs-nav{ justify-content:center; }
  .round-btn{ width:44px; height:44px; }
}
.chip{ display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:4px 14px; border-radius:999px; font-size:13px; font-weight:500; }
.chip-dark{ background:var(--lb-encre); color:var(--lb-blanc); }
.chip-sable{ background:var(--lb-sable); color:var(--lb-encre); }
.chip-champ{ background:var(--lb-champagne); color:var(--lb-encre); }

/* ============ Feature bar (overlaps hero) ============ */
.features{ position:relative; z-index:6; margin-top:calc(-1 * (var(--s-9) + var(--s-2))); }
.features ul{ list-style:none; margin:0; padding:var(--s-6) var(--s-3); display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); box-shadow:0 24px 60px rgba(21,18,15,.08); }
.features li{ display:flex; gap:var(--s-4); align-items:flex-start; padding-inline:var(--s-5); }
.features li + li{ border-inline-start:1px solid var(--lb-sable); }
.features .ic{ flex:none; width:52px; height:64px; display:grid; place-items:center; border-radius:999px 999px 8px 8px; background:var(--lb-ivoire); color:var(--lb-champagne-text); transition:background var(--t-mid) var(--ease), color var(--t-mid) var(--ease); }
.features li:hover .ic{ background:var(--lb-encre); color:var(--lb-champagne); }
.features .ic svg{ width:26px; height:26px; }
.features h3{ font-family:var(--f-body-ar); font-size:17px; font-weight:500; line-height:1.5; margin:4px 0 2px; }
.features p{ margin:0; font-size:14px; line-height:1.65; color:var(--lb-muted); }
@media (max-width:1023px){ .features ul{ grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:var(--s-6); } .features li:nth-child(3){ border-inline-start:0; } }
@media (max-width:560px){ .features ul{ grid-template-columns:1fr; padding:var(--s-5); row-gap:var(--s-5); } .features li{ padding:0; } .features li + li{ border-inline-start:0; border-top:1px solid var(--lb-sable); padding-top:var(--s-5); } }

/* ============ Sections ============ */
.section{ padding-block:var(--s-10); }
.section.ivoire{ background:var(--lb-ivoire); }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:var(--s-6); margin-bottom:var(--s-8); flex-wrap:wrap; }
.section-head .lead{ margin:0; max-width:44ch; }
@media (max-width:767px){ .section{ padding-block:var(--s-9); } .section-head{ margin-bottom:var(--s-7); } }

/* About / positioning */
.about-grid{ display:grid; grid-template-columns:5fr 7fr; gap:var(--s-9); align-items:start; }
.about-visual{ position:sticky; top:calc(var(--header-h) + 32px); padding-bottom:14%; }
.av-arch{ width:84%; aspect-ratio:3 / 4; border-radius:999px 999px 20px 20px; overflow:hidden; background:var(--lb-sable); position:relative; }
.av-arch::after{ content:""; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.55); border-radius:999px 999px 12px 12px; pointer-events:none; }
.av-arch img, .av-circle img{ width:100%; height:100%; object-fit:cover; }
.av-circle{ position:absolute; left:0; bottom:0; width:46%; aspect-ratio:1; border-radius:50%; overflow:hidden; border:10px solid var(--lb-ivoire); background:var(--lb-sable); box-shadow:var(--shadow); }
.seal{ position:absolute; z-index:3; left:6%; top:8%; width:112px; height:112px; border-radius:50%; background:var(--lb-encre); color:var(--lb-champagne); display:grid; place-items:center; }
.seal .ring text{ fill:var(--lb-sable) !important; }
.about-copy h2{ margin-bottom:var(--s-5); }
.about-copy > p{ color:var(--lb-muted); max-width:60ch; margin:0 0 var(--s-4); }
.not-list{ display:flex; flex-wrap:wrap; gap:var(--s-2); margin:var(--s-6) 0 var(--s-8); padding:0; list-style:none; }
.not-list li{ padding:8px 16px; border:1px solid var(--lb-sable); border-radius:999px; font-size:14px; color:var(--lb-muted); }
@media (max-width:1023px){ .about-grid{ grid-template-columns:1fr; gap:var(--s-7); } .about-visual{ position:relative; top:auto; max-width:520px; width:100%; margin-inline:auto; } }

/* Behind the scenes (Instagram photos) */
.bts-title{ display:flex; align-items:center; gap:var(--s-3); font-family:var(--f-display-ar); font-size:24px; margin:var(--s-2) 0 var(--s-4); }
.bts-title::before{ content:""; width:7px; height:7px; background:var(--lb-champagne); transform:rotate(45deg); }
.bts{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--s-4); margin:0 0 var(--s-6); }
.bts figure{ margin:0; }
.bts .ph{ aspect-ratio:4 / 4.6; border-radius:999px 999px 12px 12px; overflow:hidden; background:var(--lb-sable); }
.bts img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.bts figure:hover img{ transform:scale(1.04); }
.bts figcaption{ margin-top:var(--s-3); font-size:14px; line-height:1.6; color:var(--lb-muted); }

/* Language switch */
.lang-btn{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid var(--lb-sable); border-radius:999px; font-size:14px; font-weight:500; color:var(--lb-encre); transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.lang-btn:hover{ border-color:var(--lb-encre); background:var(--lb-blanc); }
.lang-btn svg{ width:18px; height:18px; }
.lang-btn .code{ font-family:var(--f-label); font-size:12px; letter-spacing:.14em; }
.mobile-nav .lang-btn{ margin-top:var(--s-4); width:100%; justify-content:center; min-height:52px; }

/* Arabic: Latin-style labels become Arabic labels (no tracking, which would break letter joining) */
html[lang="ar"] .label, html[lang="ar"] .hs-float .t1, html[lang="ar"] .site-footer h3, html[lang="ar"] .pk-num small,
html[lang="ar"] .std-visual .badge, html[lang="ar"] .footer-bottom .fb-note{
  font-family:var(--f-body-ar); letter-spacing:0; text-transform:none; direction:rtl; unicode-bidi:normal;
}
html[lang="ar"] .label{ font-size:14px; font-weight:500; }
html[lang="ar"] .svc .body .label{ font-size:13px; }
html[lang="ar"] .hs-float .t1{ font-size:12px; text-align:right; }
html[lang="ar"] .site-footer h3{ font-size:15px; }
html[lang="ar"] .pk-num small{ font-size:12px; }
html[lang="ar"] .std-visual .badge{ font-size:14px; }
html[lang="ar"] .hs-seal .ring text, html[lang="ar"] .seal .ring text{ font-family:var(--f-body-ar); font-size:11px; font-weight:500; letter-spacing:0; direction:ltr; }
html[lang="ar"] .seal .ring text{ font-size:10.5px; }
html[lang="ar"] .only-en{ display:none !important; }

/* English: Latin type, left-to-right mirrors of the few physical properties */
html[lang="en"]{ --f-display-ar:var(--f-display-lat); --f-body-ar:"Montserrat", system-ui, sans-serif; }
html[lang="en"] body{ font-size:16px; line-height:1.7; }
html[lang="en"] h1, html[lang="en"] h2, html[lang="en"] .hs-title{ letter-spacing:-.005em; line-height:1.15; }
html[lang="en"] .hs-title{ max-width:16ch; }
html[lang="en"] .promise blockquote, html[lang="en"] .testimonial blockquote{ line-height:1.35; }
html[lang="en"] .faq-q, html[lang="en"] .faq-item h3{ font-size:18px; }
html[lang="en"] .hs::before{ background:radial-gradient(55% 75% at 72% 50%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 70%); }
html[lang="en"] .hs-vtext{ left:auto; right:24px; transform:translateY(-50%); }
html[lang="en"] .hs-count{ justify-content:flex-start; }
html[lang="en"] .hs-thumb .fill{ transform-origin:left center; }
html[lang="en"] .nav a::after{ transform-origin:left; }
html[lang="en"] .link:hover svg{ transform:translateX(4px); }
html[lang="en"] .field select{ background-position:right 16px center; padding-left:16px; padding-right:40px; }
html[lang="en"] .field input[dir="ltr"]{ text-align:left; }
html[lang="en"] .hs-float.f1{ left:auto; right:-14%; } html[lang="en"] .hs-float.f2{ right:auto; left:-12%; }
html[lang="en"] .hs-float{ padding:10px 10px 10px 18px; }
html[lang="en"] .hs-float .t1{ text-align:left; }
html[lang="en"] .hs-seal{ right:auto; left:-6%; }
html[lang="en"] .std-col.c-a::before{ border-radius:24px 220px 220px 24px; background:linear-gradient(to right, rgba(245,240,232,0) 0%, var(--lb-ivoire) 55%); }
html[lang="en"] .std-col.c-b::before{ border-radius:220px 24px 24px 220px; background:linear-gradient(to left, rgba(245,240,232,0) 0%, var(--lb-ivoire) 55%); }
html[lang="en"] .c-a .std-item{ text-align:right; } html[lang="en"] .c-b .std-item{ text-align:left; }
html[lang="en"] .pk-num{ text-align:right; }
html[lang="en"] .pk-body > svg.mono{ left:auto; right:-40px; }
html[lang="en"] .av-circle{ left:auto; right:0; } html[lang="en"] .seal{ left:auto; right:6%; }
html[lang="en"] .svc .num{ right:auto; left:14px; }
html[lang="en"] .only-ar{ display:none !important; }
@media (max-width:1100px){ html[lang="en"] .c-b .std-item{ text-align:left; } html[lang="en"] .c-a .std-item{ flex-direction:row-reverse; text-align:left; } }
@media (max-width:767px){ html[lang="en"] .hs-float.f1{ right:-24%; } html[lang="en"] .hs-float.f2{ left:-24%; } html[lang="en"] .hs-seal{ left:-10%; } }

/* Services carousel (04.7) */
.svc-head-nav{ display:flex; gap:var(--s-2); }
.svc-track{ display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--s-5)) / 3); gap:var(--s-5); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-x:contain; scrollbar-width:none; padding:8px 2px 28px; margin:-8px -2px 0; }
.svc-track::-webkit-scrollbar{ display:none; }
.svc{ position:relative; scroll-snap-align:start; display:flex; flex-direction:column; padding:14px; background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); transition:transform var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease); }
.svc:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--lb-champagne); }
.svc .media{ position:relative; aspect-ratio:4 / 4.6; overflow:hidden; border-radius:999px 999px 10px 10px; background:var(--lb-sable); }
.svc .media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.svc:hover .media img{ transform:scale(1.05); }
.svc .media.ph{ display:grid; place-items:center; background:var(--lb-ivoire); }
.svc .media.ph::before{ content:""; position:absolute; inset:14px; border:1px solid var(--lb-sable); border-radius:999px 999px 6px 6px; }
.svc .media.ph .big{ font-family:var(--f-display-lat); font-size:clamp(72px, 7vw, 104px); line-height:1; color:var(--lb-champagne); direction:ltr; }
.svc .media.ph svg.mono{ position:absolute; bottom:18%; height:30px; width:auto; color:var(--lb-champagne-text); opacity:.55; }
.svc .num{ position:absolute; z-index:2; bottom:14px; right:14px; min-width:44px; height:44px; padding:0 10px; display:grid; place-items:center; border-radius:999px; background:rgba(255,255,255,.88); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font-family:var(--f-display-lat); font-size:15px; direction:ltr; }
.svc .body{ padding:var(--s-5) var(--s-3) var(--s-3); display:flex; flex-direction:column; gap:6px; flex:1; }
.svc .body .label{ font-size:11px; }
.svc h3{ font-size:26px; }
.svc p{ margin:0 0 var(--s-4); color:var(--lb-muted); font-size:16px; }
.svc .link{ margin-top:auto; align-self:flex-start; }
.svc .stretched::after{ content:""; position:absolute; inset:0; border-radius:var(--r-card); }
.svc-soon{ background:var(--lb-ivoire); border-style:dashed; border-color:var(--lb-champagne); }
.svc-soon .media.ph{ background:var(--lb-blanc); }
@media (max-width:1023px){ .svc-track{ grid-auto-columns:calc((100% - var(--s-5)) / 2); } }
@media (max-width:640px){ .svc-track{ grid-auto-columns:84%; } }

/* Ornament (section divider) */
.ornament{ display:flex; align-items:center; justify-content:center; gap:14px; color:var(--lb-champagne); margin-top:var(--s-4); }
.ornament::before, .ornament::after{ content:""; width:88px; height:1px; background:linear-gradient(to left, var(--lb-champagne), rgba(200,176,138,0)); }
.ornament::after{ background:linear-gradient(to right, var(--lb-champagne), rgba(200,176,138,0)); }
.ornament svg.mono{ height:26px; width:auto; }
.center-head{ text-align:center; max-width:720px; margin:0 auto var(--s-8); }
.center-head .eyebrow{ justify-content:center; }
.center-head .lead{ margin:var(--s-4) auto 0; }

/* Standards — icons around a central arch */
.std{ position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:var(--s-6); }
.std-col{ position:relative; list-style:none; margin:0; padding:var(--s-8) var(--s-6); display:grid; gap:var(--s-7); }
.std-col::before{ content:""; position:absolute; inset:0; z-index:-1; }
.std-col.c-a::before{ border-radius:220px 24px 24px 220px; background:linear-gradient(to left, rgba(245,240,232,0) 0%, var(--lb-ivoire) 55%); }
.std-col.c-b::before{ border-radius:24px 220px 220px 24px; background:linear-gradient(to right, rgba(245,240,232,0) 0%, var(--lb-ivoire) 55%); }
.std-col.c-a{ margin-inline-end:calc(-1 * var(--s-9)); padding-inline-end:var(--s-9); }
.std-col.c-b{ margin-inline-start:calc(-1 * var(--s-9)); padding-inline-start:var(--s-9); }
.std-item{ display:flex; align-items:center; gap:var(--s-5); }
.std-item .txt{ flex:1; }
.std-item h3{ font-size:clamp(22px, 2vw, 27px); margin-bottom:4px; }
.std-item p{ margin:0; font-size:15.5px; line-height:1.7; color:var(--lb-muted); max-width:30ch; }
.c-a .std-item{ flex-direction:row; text-align:right; }
.c-b .std-item{ flex-direction:row-reverse; text-align:left; }
.c-b .std-item p{ margin-inline-start:auto; }
.std-ic{ position:relative; flex:none; width:96px; height:96px; display:grid; place-items:center; }
.std-ic::before{ content:""; position:absolute; inset:0; border-radius:50%; border:1px dashed var(--lb-champagne); transition:transform 1.2s var(--ease); }
.std-ic span{ width:80px; height:80px; border-radius:50%; display:grid; place-items:center; background:var(--lb-encre); color:var(--lb-champagne); transition:background var(--t-mid) var(--ease), color var(--t-mid) var(--ease); }
.std-ic svg{ width:32px; height:32px; }
.std-item:hover .std-ic::before{ transform:rotate(180deg); }
.std-item:hover .std-ic span{ background:var(--lb-champagne); color:var(--lb-encre); }
.std-visual{ position:relative; z-index:2; width:clamp(240px, 22vw, 320px); aspect-ratio:3 / 4.4; }
.std-visual::before{ content:""; position:absolute; inset:-14px; border:1px solid var(--lb-champagne); border-radius:999px 999px 26px 26px; }
.std-visual .frame{ position:absolute; inset:0; border-radius:999px 999px 18px 18px; overflow:hidden; background:var(--lb-sable); box-shadow:0 30px 70px rgba(21,18,15,.16); }
.std-visual img{ width:100%; height:100%; object-fit:cover; }
.std-visual .badge{ position:absolute; z-index:2; bottom:-22px; left:50%; transform:translateX(-50%); white-space:nowrap; display:inline-flex; align-items:center; gap:10px; padding:10px 20px; border-radius:999px; background:var(--lb-encre); color:var(--lb-ivoire); font-family:var(--f-label); font-size:10.5px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; direction:ltr; }
.std-visual .badge::before{ content:""; width:6px; height:6px; background:var(--lb-champagne); transform:rotate(45deg); }
@media (max-width:1100px){
  .std{ grid-template-columns:1fr 1fr; gap:var(--s-5); }
  .std-visual{ grid-column:1 / -1; grid-row:1; justify-self:center; margin-bottom:var(--s-7); }
  .std-col.c-a, .std-col.c-b{ margin:0; padding:var(--s-6) var(--s-5); }
  .std-col.c-a::before, .std-col.c-b::before{ border-radius:var(--r-img); background:var(--lb-ivoire); }
  .c-b .std-item{ flex-direction:row; text-align:right; } .c-b .std-item p{ margin-inline-start:0; }
}
@media (max-width:700px){
  .std{ grid-template-columns:1fr; }
  .std-ic{ width:76px; height:76px; } .std-ic span{ width:62px; height:62px; } .std-ic svg{ width:26px; height:26px; }
}

/* Packages (no prices, per guide 02.5) */
.pk{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); background:var(--lb-ivoire); }
.pk-media{ position:relative; min-height:100%; background:var(--lb-sable); }
.pk-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.pk-media .quote{ position:absolute; z-index:2; right:var(--s-6); bottom:var(--s-6); left:var(--s-6); max-width:360px; padding:var(--s-5); border-radius:var(--r-card); background:rgba(245,240,232,.78); border:1px solid rgba(255,255,255,.7); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); font-family:var(--f-display-ar); font-size:22px; line-height:1.6; }
.pk-body{ position:relative; overflow:hidden; padding-block:var(--s-10); padding-inline-start:var(--s-8); padding-inline-end:max(var(--gutter), calc((100vw - var(--max)) / 2)); }
.pk-body > svg.mono{ position:absolute; left:-40px; bottom:-60px; height:420px; width:auto; color:var(--lb-sable); opacity:.55; pointer-events:none; }
.pk-body h2{ margin-bottom:var(--s-7); }
.pk-cards{ position:relative; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--s-5); }
.pk-card{ display:flex; flex-direction:column; padding:var(--s-6); background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); transition:transform var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease); }
.pk-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--lb-champagne); }
.pk-card.featured{ border-color:var(--lb-encre); }
.pk-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--s-4); }
.pk-top h3{ font-size:clamp(26px, 2.4vw, 32px); }
.pk-num{ text-align:left; direction:ltr; }
.pk-num b{ display:block; font-family:var(--f-display-lat); font-weight:400; font-size:56px; line-height:1; color:var(--lb-champagne-text); }
.pk-num small{ font-family:var(--f-label); font-size:10px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--lb-muted); }
.pk-card .ornament{ margin:var(--s-5) 0; }
.pk-card .ornament::before, .pk-card .ornament::after{ flex:1; width:auto; }
.pk-card .ornament svg.mono{ height:20px; }
.pk-list{ list-style:none; margin:0 0 var(--s-6); padding:0; display:grid; gap:var(--s-3); }
.pk-list li{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-3); font-size:16px; color:var(--lb-muted); }
.pk-list li:first-child{ color:var(--lb-encre); font-weight:500; }
.pk-list .ck{ flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--lb-sable); color:var(--lb-encre); }
.pk-card.featured .pk-list .ck{ background:var(--lb-encre); color:var(--lb-champagne); }
.pk-list .ck svg{ width:13px; height:13px; }
.pk-card .btn{ margin-top:auto; width:100%; }
.pk-note{ display:flex; align-items:center; gap:10px; margin:var(--s-5) 0 0; font-size:14px; color:var(--lb-muted); }
.pk-note svg{ width:18px; height:18px; color:var(--lb-champagne-text); flex:none; }
@media (max-width:1100px){ .pk{ grid-template-columns:1fr; } .pk-media{ aspect-ratio:16 / 10; } .pk-body{ padding:var(--s-9) var(--gutter); } }
@media (max-width:700px){ .pk-cards{ grid-template-columns:1fr; } .pk-media{ aspect-ratio:4 / 3.4; } .pk-media .quote{ font-size:18px; right:var(--s-4); left:var(--s-4); bottom:var(--s-4); } }

/* Promise */
.promise{ text-align:center; }
.promise .mono-lg{ height:72px; width:auto; color:var(--lb-champagne); margin:0 auto var(--s-6); }
.promise blockquote{ margin:0 auto; max-width:22ch; font-family:var(--f-display-ar); font-size:clamp(32px,4.4vw,56px); line-height:1.5; text-wrap:balance; }
.promise .promise-lines{ display:flex; justify-content:center; flex-wrap:wrap; gap:var(--s-3) var(--s-7); margin:var(--s-8) 0 0; padding:0; list-style:none; }
.promise .promise-lines li{ display:flex; align-items:center; gap:var(--s-3); font-size:18px; }
.promise .promise-lines li::before{ content:""; width:24px; height:1px; background:var(--lb-champagne); }

/* Testimonial */
.testimonial{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-8); align-items:center; padding:var(--s-8); background:var(--lb-blanc); border-radius:var(--r-card); border:1px solid var(--lb-sable); }
.testimonial .q-mark{ font-family:var(--f-display-lat); font-size:160px; line-height:.75; height:80px; color:var(--lb-champagne); }
.testimonial blockquote{ margin:0; font-family:var(--f-display-ar); font-size:clamp(26px,3vw,38px); line-height:1.6; }
.testimonial figcaption{ margin-top:var(--s-4); display:flex; gap:var(--s-3); align-items:center; color:var(--lb-muted); font-size:15px; }
@media (max-width:767px){ .testimonial{ grid-template-columns:1fr; gap:var(--s-4); padding:var(--s-6) var(--s-5); } .testimonial .q-mark{ font-size:96px; } }

/* FAQ (04.10) */
.faq-grid{ display:grid; grid-template-columns:5fr 7fr; gap:var(--s-9); }
.faq-list{ border-top:1px solid var(--lb-sable); }
.faq-item{ border-bottom:1px solid var(--lb-sable); }
.faq-item h3{ font-family:var(--f-body-ar); font-size:20px; font-weight:500; }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:var(--s-4); padding:var(--s-5) 0; min-height:64px; background:none; border:0; cursor:pointer; text-align:start; font-size:20px; font-weight:500; }
.faq-q .pm{ position:relative; width:18px; height:18px; flex:none; }
.faq-q .pm::before,.faq-q .pm::after{ content:""; position:absolute; top:50%; inset-inline:0; height:1px; background:var(--lb-encre); transition:transform var(--t-mid) var(--ease); }
.faq-q .pm::after{ transform:rotate(90deg); }
.faq-q[aria-expanded="true"] .pm::after{ transform:rotate(0); }
.faq-a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--t-mid) var(--ease); }
.faq-a > div{ overflow:hidden; min-height:0; }
.faq-a p{ margin:0; padding:0 0 var(--s-5); color:var(--lb-muted); max-width:60ch; }
.faq-item.open .faq-a, .faq-item:has(.faq-q[aria-expanded="true"]) .faq-a{ grid-template-rows:1fr; }
@media (max-width:1023px){ .faq-grid{ grid-template-columns:1fr; gap:var(--s-6); } }

/* Booking (04.6) */
.book{ display:grid; grid-template-columns:1fr 1fr; border-radius:var(--r-img); overflow:hidden; background:var(--lb-ivoire); }
.book-media{ position:relative; min-height:100%; background:var(--lb-sable); }
.book-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.book-form{ padding:var(--s-8); }
.book-form h2{ margin-bottom:var(--s-3); }
.book-form > p{ color:var(--lb-muted); margin:0 0 var(--s-6); }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:var(--s-5); }
.field label{ font-size:15px; font-weight:500; }
.field label .req{ color:var(--lb-champagne-text); }
.field input,.field select{
  height:52px; padding:0 16px; border:1px solid #A89A88; border-radius:var(--r-btn); background:var(--lb-blanc);
  font-size:17px; transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease); width:100%;
}
.field select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2315120F' stroke-width='1.3'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:left 16px center; padding-left:40px; cursor:pointer; }
.field input:focus,.field select:focus{ outline:none; border-color:var(--lb-encre); box-shadow:0 0 0 1px var(--lb-encre); }
.field input[aria-invalid="true"]{ border-color:var(--lb-wine); box-shadow:0 0 0 1px var(--lb-wine); }
.field .hint{ font-size:14px; color:var(--lb-muted); }
.field .err{ display:none; align-items:center; gap:6px; font-size:14px; color:var(--lb-wine); }
.field .err svg{ width:16px; height:16px; flex:none; }
.field input[aria-invalid="true"] ~ .err{ display:flex; }
.field input[dir="ltr"]{ text-align:right; }
.book-form .btn{ width:100%; margin-top:var(--s-2); }
.book-form .fine{ font-size:13px; color:var(--lb-muted); margin:var(--s-4) 0 0; text-align:center; }
@media (max-width:1023px){ .book{ grid-template-columns:1fr; } .book-media{ aspect-ratio:16/10; } }
@media (max-width:767px){ .book-form{ padding:var(--s-6) var(--s-5); } }

/* Instagram */
.ig-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:var(--s-5); margin-bottom:var(--s-6); flex-wrap:wrap; }
.ig-handle{ font-family:var(--f-display-lat); font-size:clamp(28px,3.4vw,44px); direction:ltr; }
.ig-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:var(--s-3); }
.ig-grid .play{ position:absolute; z-index:2; top:12px; inset-inline-end:12px; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.85); color:var(--lb-encre); }
.ig-grid .play svg{ width:14px; height:14px; }
.ig-grid a{ position:relative; display:block; aspect-ratio:3 / 4; border-radius:999px 999px 12px 12px; overflow:hidden; background:var(--lb-sable); }
.ig-grid img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.ig-grid a::after{ content:""; position:absolute; inset:0; background:rgba(21,18,15,0); transition:background var(--t-mid) var(--ease); }
.ig-grid a:hover img{ transform:scale(1.05); }
.ig-grid a:hover::after{ background:rgba(21,18,15,.18); }
.ig-grid .ig-brand{ display:grid; place-items:center; background:var(--lb-encre); color:var(--lb-champagne); }
.ig-grid .ig-brand svg{ height:46%; width:auto; }
@media (max-width:900px){ .ig-grid{ grid-template-columns:repeat(3,1fr); } }

/* Footer (04.8) — the one dark section */
.site-footer{ background:var(--lb-encre); color:var(--lb-ivoire); border-top:2px solid var(--lb-champagne); padding-block:var(--s-9) var(--s-6); }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:var(--s-7); padding-bottom:var(--s-8); border-bottom:1px solid rgba(221,208,192,.18); }
.footer-brand .logo-stack{ height:96px; width:auto; color:var(--lb-blanc); margin-bottom:var(--s-5); }
.footer-brand .tagline{ color:var(--lb-champagne); font-size:20px; }
.footer-brand p{ color:#CFC6BA; margin:var(--s-3) 0 0; font-size:15px; max-width:32ch; }
.site-footer h3{ font-family:var(--f-label); font-size:11px; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--lb-champagne); margin-bottom:var(--s-4); }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.site-footer ul a, .site-footer address{ color:#E6DFD4; font-style:normal; font-size:15px; transition:color var(--t-fast); display:inline-flex; align-items:center; gap:8px; min-height:32px; }
.site-footer ul a:hover{ color:var(--lb-champagne); }
.site-footer ul a svg{ width:18px; height:18px; }
.footer-bottom{ display:flex; justify-content:space-between; gap:var(--s-4); padding-top:var(--s-5); font-size:13px; color:#A79E92; flex-wrap:wrap; }
.footer-bottom .latin{ letter-spacing:.2em; font-family:var(--f-label); font-size:11px; }
@media (max-width:1023px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-top{ grid-template-columns:1fr; } }

.footer-mark{ color:rgba(200,176,138,.16); padding-top:var(--s-8); }
.footer-mark svg{ display:block; width:100%; height:auto; }

/* Mobile WhatsApp bar */
.wa-bar{ display:none; }
@media (max-width:767px){
  .wa-bar{
    display:flex; position:fixed; inset-inline:0; bottom:0; z-index:30; padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96); border-top:1px solid var(--lb-sable); transform:translateY(110%); transition:transform var(--t-mid) var(--ease);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  }
  .wa-bar.show{ transform:none; }
  .wa-bar .btn{ width:100%; }
  body{ padding-bottom:80px; }
}

/* ============ Motion (04.10) ============ */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease); transition-delay:var(--d,0ms); }
.reveal.in{ opacity:1; transform:none; }
.mask{ overflow:hidden; clip-path:inset(100% 0 0 0); transition:clip-path 1.1s var(--ease); transition-delay:var(--d,0ms); }
.mask.in{ clip-path:inset(0 0 0 0); }
.mask img{ transform:scale(1.08); transition:transform 1.6s var(--ease); }
.mask.in img{ transform:scale(1); }
.no-js .reveal,.no-js .mask{ opacity:1; transform:none; clip-path:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition-duration:1ms !important; transition-delay:0ms !important; }
  .reveal{ transform:none; }
  .mask{ clip-path:none; } .mask img{ transform:none; }
}

/* ==========================================================
   Inner pages
   ========================================================== */
.site-footer .f-hours{ display:inline-flex; align-items:center; gap:8px; min-height:32px; color:#E6DFD4; font-size:15px; }
.site-footer .f-hours svg{ width:18px; height:18px; }

/* Page hero: shares the header background, like the home slider */
.phero{ position:relative; overflow:hidden; background:var(--lb-ivoire); margin-top:calc(-1 * var(--header-h)); }
.phero::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(55% 80% at 25% 50%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 70%); }
html[lang="en"] .phero::before{ background:radial-gradient(55% 80% at 75% 50%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 70%); }
.phero-inner{ position:relative; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:var(--s-8); align-items:center; padding-block:calc(var(--header-h) + var(--s-8)) var(--s-9); min-height:clamp(420px, 56vh, 560px); }
.phero.no-media .phero-inner{ grid-template-columns:1fr; text-align:center; justify-items:center; }
.phero.no-media .crumbs, .phero.no-media .eyebrow{ justify-content:center; }
.phero h1{ font-size:clamp(40px, 5vw, 68px); line-height:1.25; margin-bottom:var(--s-5); max-width:16ch; }
.phero .lead{ margin:0 0 var(--s-6); max-width:52ch; }
.phero.no-media .lead{ margin-inline:auto; }
.phero .hs-actions{ margin-top:var(--s-2); }
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 var(--s-5); padding:0; list-style:none; font-size:14px; color:var(--lb-muted); }
.crumbs li{ display:flex; align-items:center; gap:8px; }
.crumbs li + li::before{ content:""; width:5px; height:5px; border-top:1px solid currentColor; border-left:1px solid currentColor; transform:rotate(-45deg); opacity:.6; }
html[lang="en"] .crumbs li + li::before{ transform:rotate(135deg); }
.crumbs a{ color:var(--lb-champagne-text); border-bottom:1px solid transparent; transition:border-color var(--t-fast) var(--ease); }
.crumbs a:hover{ border-color:currentColor; }
.phero-media{ position:relative; display:grid; place-items:center; }
.phero-media .hs-rings{ width:min(460px, 150%); }
.phero-arch{ position:relative; width:min(300px, 100%); aspect-ratio:3 / 4; }
.phero-arch::before{ content:""; position:absolute; inset:-14px; border:1px solid var(--lb-champagne); border-radius:999px 999px 28px 28px; }
.phero-arch .frame{ position:absolute; inset:0; border-radius:999px 999px 18px 18px; overflow:hidden; background:var(--lb-sable); box-shadow:0 30px 70px rgba(21,18,15,.14); }
.phero-arch img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){
  .phero-inner{ grid-template-columns:1fr; gap:var(--s-6); padding-block:calc(var(--header-h) + var(--s-6)) var(--s-8); min-height:0; }
  .phero-media{ order:-1; }
  .phero-arch{ width:min(220px, 60%); }
}

/* Generic blocks */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--s-9); align-items:center; }
.split.top{ align-items:start; }
.split .arch-img{ aspect-ratio:4 / 5; border-radius:999px 999px 20px 20px; overflow:hidden; background:var(--lb-sable); }
.split .arch-img img{ width:100%; height:100%; object-fit:cover; }
.prose p{ color:var(--lb-muted); margin:0 0 var(--s-4); max-width:62ch; }
.prose h2{ margin-bottom:var(--s-5); }
.prose h3{ margin:var(--s-6) 0 var(--s-3); font-size:26px; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:var(--s-7); } .split .arch-img{ max-width:420px; } }

.check-list{ list-style:none; margin:var(--s-5) 0 0; padding:0; display:grid; gap:var(--s-3); }
.check-list li{ display:flex; align-items:flex-start; gap:var(--s-3); padding:var(--s-4) var(--s-5); background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); }
.check-list .ck{ flex:none; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--lb-encre); color:var(--lb-champagne); margin-top:2px; }
.check-list .ck svg{ width:13px; height:13px; }
.check-list b{ display:block; font-weight:500; color:var(--lb-encre); }
.check-list span.t{ color:var(--lb-muted); font-size:15px; }

/* Numbered cards (problem / shift / ambition, session steps) */
.cards3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-5); }
.cards4{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--s-5); }
.ncard{ position:relative; padding:var(--s-6); background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); transition:transform var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease); }
.section.ivoire .ncard{ background:var(--lb-blanc); }
.ncard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--lb-champagne); }
.ncard .n{ display:block; font-family:var(--f-display-lat); font-size:48px; line-height:1; color:var(--lb-champagne); margin-bottom:var(--s-5); direction:ltr; text-align:start; }
.ncard h3{ font-size:26px; margin-bottom:var(--s-2); }
.ncard p{ margin:0; color:var(--lb-muted); font-size:16px; }
@media (max-width:1023px){ .cards3, .cards4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:620px){ .cards3, .cards4{ grid-template-columns:1fr; } }

/* Values */
.values{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); border-top:1px solid var(--lb-encre); }
.values li{ list-style:none; padding:var(--s-6) var(--s-4) 0; }
.values li + li{ border-inline-start:1px solid var(--lb-sable); }
.values h3{ font-size:30px; margin-bottom:var(--s-2); }
.values p{ margin:0; font-size:15px; color:var(--lb-muted); }
.values{ margin:0; padding:0; }
@media (max-width:1023px){ .values{ grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:var(--s-6); } .values li:nth-child(odd){ border-inline-start:0; } }

/* Services grid (services page) */
.svc-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-5); }
@media (max-width:1023px){ .svc-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:620px){ .svc-grid{ grid-template-columns:1fr; } }

/* Tag list (treatments included) */
.tags{ display:flex; flex-wrap:wrap; gap:var(--s-2); margin:var(--s-5) 0 0; padding:0; list-style:none; }
.tags li{ padding:10px 18px; border-radius:999px; background:var(--lb-blanc); border:1px solid var(--lb-sable); font-size:15px; }

/* Note box */
.note{ display:flex; gap:var(--s-3); align-items:flex-start; padding:var(--s-5); border-radius:var(--r-card); background:var(--lb-ivoire); border:1px solid var(--lb-sable); color:var(--lb-muted); font-size:15px; margin-top:var(--s-6); }
.note svg{ flex:none; width:22px; height:22px; color:var(--lb-champagne-text); margin-top:2px; }

/* CTA band */
.cta-band{ position:relative; overflow:hidden; display:grid; grid-template-columns:1fr auto; gap:var(--s-6); align-items:center; padding:var(--s-8); border-radius:var(--r-img); background:var(--lb-ivoire); border:1px solid var(--lb-sable); }
.cta-band > svg.mono{ position:absolute; inset-inline-end:8%; top:50%; transform:translateY(-50%); height:220px; width:auto; color:var(--lb-sable); opacity:.6; pointer-events:none; }
.cta-band h2{ margin-bottom:var(--s-2); }
.cta-band p{ margin:0; color:var(--lb-muted); }
.cta-band .hs-actions{ position:relative; }
@media (max-width:900px){ .cta-band{ grid-template-columns:1fr; padding:var(--s-6) var(--s-5); } .cta-band .btn{ flex:1 1 100%; } }

/* Contact */
.contact-cards{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--s-4); }
.ccard{ display:flex; flex-direction:column; gap:var(--s-2); padding:var(--s-6) var(--s-5); background:var(--lb-blanc); border:1px solid var(--lb-sable); border-radius:var(--r-card); transition:transform var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease); }
a.ccard:hover{ transform:translateY(-4px); border-color:var(--lb-champagne); box-shadow:var(--shadow); }
.ccard .ic{ width:52px; height:64px; display:grid; place-items:center; border-radius:999px 999px 8px 8px; background:var(--lb-ivoire); color:var(--lb-champagne-text); margin-bottom:var(--s-3); }
.ccard .ic svg{ width:24px; height:24px; }
.ccard h3{ font-family:var(--f-body-ar); font-size:15px; font-weight:500; color:var(--lb-muted); }
.ccard .v{ font-size:20px; font-weight:500; color:var(--lb-encre); }
.ccard .v[dir="ltr"]{ text-align:start; unicode-bidi:isolate; }
@media (max-width:1023px){ .contact-cards{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:520px){ .contact-cards{ grid-template-columns:1fr; } }
.map{ position:relative; border-radius:var(--r-img); overflow:hidden; border:1px solid var(--lb-sable); aspect-ratio:21 / 8; background:var(--lb-ivoire); }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.85) sepia(.15) contrast(.95); }
@media (max-width:767px){ .map{ aspect-ratio:4 / 3; } }

/* FAQ page groups */
.faq-groups{ display:grid; gap:var(--s-8); }
.faq-group{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:var(--s-7); }
.faq-group h2{ font-size:clamp(28px, 3vw, 38px); }
@media (max-width:900px){ .faq-group{ grid-template-columns:1fr; gap:var(--s-4); } }

/* 404 */
.notfound .big404{ font-family:var(--f-display-lat); font-size:clamp(96px, 16vw, 200px); line-height:1; color:var(--lb-champagne); }
