/* Self-hosted fonts: no third-party connection, no render-blocking
   request to fonts.googleapis.com. unicode-range keeps the browser from
   downloading subsets the page never uses. */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-400-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-400-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-700-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-700-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-800-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;
  src:url(/assets/fonts/plus-jakarta-sans-800-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}


/* =============================================================================
   VIP Spa Majan — light, clean, commercial.
   White base, charcoal text, gold brand accent, WhatsApp green for booking.
   Card-led layout with prices visible at every step.
   ========================================================================== */

@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fonts/ibm-plex-sans-arabic-400.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC,U+FEFF;}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/ibm-plex-sans-arabic-600.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC,U+FEFF;}
:root{
  /* spacing scale (1.5x) — use these instead of one-off clamps */
  --s1:6px; --s2:10px; --s3:15px; --s4:22px; --s5:33px;
  --s6:50px; --s7:75px; --s8:112px;
  /* layered shadows read as real depth rather than one flat blur */
  --sh-1:0 1px 2px rgba(36,26,32,.05);
  --sh-2:0 1px 2px rgba(36,26,32,.05), 0 4px 10px rgba(36,26,32,.05);
  --sh-3:0 2px 4px rgba(36,26,32,.05), 0 10px 24px rgba(36,26,32,.07),
         0 22px 48px rgba(36,26,32,.05);
  --sh-brand:0 8px 26px rgba(125,43,67,.16);

  --white:#ffffff;
  --paper:#fdf8f8;     /* soft blush-white band */
  --paper-2:#f7ecee;   /* deeper blush band */
  --line:#ecdfe2;
  --line-2:#f4eaec;

  --ink:#241a20;       /* headings — plum-black, 16.9:1 on white */
  --body:#5c4f55;      /* body copy — 7.8:1 on white */
  --mute:#6b5c63;      /* meta — 6.3:1 on white, 6.0:1 on paper */

  /* Deep wine is the brand colour. Chosen partly because it sits opposite the
     WhatsApp green on the wheel, so the booking button never blends in. */
  --brand:#7d2b43;      /* wine for TEXT — 9.1:1 on white, 8.1:1 on tint */
  --brand-fill:#9a3c56; /* icons, borders, fills (non-text) */
  --brand-2:#b85e77;    /* decorative only */
  --brand-soft:#fbeef2; /* wine tint fill */

  --wa:#0f7a3f;        /* white text 5.4:1 */
  --wa-2:#0c6b36;
  --wa-soft:#e8f6ee;

  --dark:#2a1a20;      /* deep wine-black sections/footer */
  --dark-2:#3a262e;

  --r:14px;
  --r-sm:10px;
  --r-pill:100px;
  --max:1200px;
  --gut:clamp(18px,4vw,40px);
  --bar:66px;
  --sh:0 1px 2px rgba(36,26,32,.05), 0 8px 24px rgba(36,26,32,.06);
  --sh-lg:0 2px 4px rgba(36,26,32,.05), 0 18px 46px rgba(36,26,32,.11);
  --ease:cubic-bezier(.22,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{
  margin:0;background:var(--white);color:var(--body);
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16.5px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
@media (max-width:900px){body{padding-bottom:var(--bar)}}

img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
svg{width:1em;height:1em;flex:none;fill:currentColor}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
::selection{background:var(--brand-soft);color:var(--ink)}

h1,h2,h3,h4{color:var(--ink);margin:0 0 .5em;line-height:1.16;
  letter-spacing:-.022em;font-weight:700;text-wrap:balance}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem);letter-spacing:-.03em;line-height:1.08}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem);letter-spacing:-.028em}
h3{font-size:clamp(1.12rem,1.7vw,1.32rem)}
h4{font-size:1rem}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
strong{color:var(--ink);font-weight:700}

.wrap{width:min(100% - var(--gut)*2,var(--max));margin-inline:auto;position:relative}
.narrow{max-width:780px}
.section{padding:clamp(52px,6.5vw,92px) 0}
.section--sm{padding-block:clamp(38px,4.5vw,60px)}
.paper{background:var(--paper)}
.paper-2{background:var(--paper-2)}
.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- section head --------------------------------------------------------- */
.head{max-width:660px;margin-bottom:clamp(28px,3.6vw,46px)}
.head.center{margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--brand-soft);
  color:var(--brand);font-size:.72rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:6px 14px;border-radius:var(--r-pill);margin:0 0 16px}
.head p.lead{font-size:1.06rem;color:var(--body);margin-top:4px}
.center .lead{margin-inline:auto}

/* --- buttons -------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:14px 24px;border-radius:var(--r-pill);border:1.5px solid transparent;
  font-size:.94rem;font-weight:700;letter-spacing:-.01em;cursor:pointer;text-align:center;
  white-space:nowrap;
  transition:background .25s var(--ease),color .25s var(--ease),
             border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.btn svg{width:18px;height:18px}
.btn:hover{transform:translateY(-2px)}
.btn--wa{background:var(--wa);color:#fff;border-color:var(--wa);box-shadow:0 6px 18px rgba(15,122,63,.20)}
.btn--wa:hover{background:var(--wa-2);border-color:var(--wa-2);box-shadow:0 10px 26px rgba(15,122,63,.26)}
.btn--ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--ink:hover{background:#3a2a31;border-color:#3a2a31}
.btn--brand{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn--brand:hover{background:#6b2438;border-color:#6b2438}
.btn--line{background:#fff;border-color:var(--line);color:var(--ink)}
.btn--line:hover{border-color:var(--ink);box-shadow:var(--sh-2)}
.on-dark .btn--line{background:transparent;border-color:rgba(255,255,255,.28);color:#fff}
.on-dark .btn--line:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn--sm{min-height:44px;padding:10px 18px;font-size:.86rem}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:11px;margin-top:26px}
.center .btn-row,.btn-row.center{justify-content:center}
@media (max-width:520px){.btn-row .btn{flex:1 1 100%}}

/* --- announcement + header ------------------------------------------------ */
.announce{background:var(--brand);color:#fff;text-align:center;font-size:.82rem;
  padding:10px 16px;font-weight:400}
.announce strong{color:#f7d9e2;font-weight:700}
.announce a{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){.announce{font-size:.74rem}.announce-tel{display:none}}

.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line-2)}
.header-in{display:flex;align-items:center;gap:20px;min-height:76px}
.brand{display:flex;align-items:center;flex:none;padding:8px 0}
.brand img{width:118px;height:54px;object-fit:contain}
.nav{margin-left:auto;display:flex;align-items:center;gap:28px;min-width:0}
.nav > a{font-size:.92rem;font-weight:400;color:var(--body);padding:8px 0;position:relative;
  transition:color .22s var(--ease)}
.nav > a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--brand-fill);border-radius:2px;transform:scaleX(0);transition:transform .28s var(--ease)}
.nav > a:hover{color:var(--ink)}
.nav > a:hover::after,.nav > a[aria-current="page"]::after{transform:scaleX(1)}
.nav > a[aria-current="page"]{color:var(--ink);font-weight:700}
.header-cta{display:flex;gap:9px;margin-left:6px;flex:none}
.nav-toggle{margin-left:auto;display:none;width:48px;height:48px;border-radius:12px;
  border:1px solid var(--line);background:#fff;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:5px}
.nav-toggle i{width:19px;height:2px;background:var(--ink);border-radius:2px;display:block}
@media (max-width:1040px){
  .nav{position:fixed;inset:0;height:100dvh;background:#fff;flex-direction:column;
    align-items:stretch;justify-content:flex-start;gap:0;padding:92px var(--gut) 40px;
    z-index:80;overflow-y:auto;transform:translateX(101%);transition:transform .4s var(--ease)}
  .nav[data-open="true"]{transform:none}
  .nav > a{font-size:1.16rem;font-weight:700;color:var(--ink);padding:16px 0;
    border-bottom:1px solid var(--line-2)}
  .nav > a::after{display:none}
  .nav .header-cta{flex-direction:column;margin:26px 0 0;gap:11px}
  .nav .header-cta .btn{width:100%}
  .nav-toggle{display:inline-flex}
  .nav-close{position:absolute;top:22px;right:var(--gut);width:44px;height:44px;
    border-radius:12px;border:1px solid var(--line);background:#fff;font-size:1.5rem;
    line-height:1;color:var(--ink);cursor:pointer}
}
@media (min-width:1041px){.nav-close{display:none}}
@media (max-width:1180px) and (min-width:1041px){
  .nav{gap:18px}.header-cta .btn span{display:none}
  .header-cta .btn{padding:10px 14px;min-width:44px}
}

/* --- hero ----------------------------------------------------------------- */
.hero{padding:clamp(28px,4vw,56px) 0 clamp(40px,5vw,64px);background:
  radial-gradient(70% 100% at 86% 4%,#f6dde4,transparent 60%),
  radial-gradient(50% 70% at 6% 92%,#fbeef2,transparent 66%),
  var(--paper)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4.4vw,64px);align-items:center}
@media (max-width:940px){.hero-grid{grid-template-columns:1fr;gap:30px}}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:.79rem;font-weight:700;
  padding:7px 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;color:var(--body)}
.pill svg{width:14px;height:14px}
.pill--open{background:var(--wa-soft);border-color:#bfe3cf;color:var(--wa-2)}
.pill--open i{width:8px;height:8px;border-radius:50%;background:var(--wa);flex:none;
  box-shadow:0 0 0 3px rgba(15,122,63,.18)}
.hero h1{margin-bottom:16px}
.hero h1 span{color:var(--brand)}
.hero-sub{font-size:1.09rem;color:var(--body);max-width:52ch}
.hero-from{display:flex;align-items:baseline;gap:9px;margin-top:20px;flex-wrap:wrap}
.hero-from b{font-size:1.9rem;color:var(--ink);font-weight:800;letter-spacing:-.03em}
.hero-from span{font-size:.92rem;color:var(--mute)}
.hero-from em{font-style:normal;background:var(--wa-soft);color:var(--wa-2);font-weight:700;
  font-size:.8rem;padding:4px 10px;border-radius:var(--r-pill)}
.hero-dir{margin:16px 0 0}
.hero-dir a{display:inline-flex;align-items:center;gap:8px;min-height:34px;
  font-size:.92rem;font-weight:700;color:var(--body);
  border-bottom:1px solid var(--line);transition:color .25s var(--ease),border-color .25s var(--ease)}
.hero-dir a:hover{color:var(--brand);border-color:var(--brand)}
.hero-dir svg{width:15px;height:15px;color:var(--brand)}
.hero-media{position:relative}
.hero-media img{width:100%;aspect-ratio:4/3.3;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh-lg)}
.hero-card{position:absolute;left:-14px;bottom:-16px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:14px 18px;box-shadow:var(--sh-lg);display:flex;align-items:center;gap:12px}
.hero-card .av{width:38px;height:38px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  display:grid;place-items:center}
.hero-card b{display:block;color:var(--ink);font-size:.92rem;font-weight:700;line-height:1.3}
.hero-card small{color:var(--mute);font-size:.78rem}
@media (max-width:560px){.hero-card{left:8px;bottom:-14px;padding:11px 14px}}

/* Mobile hero: keep the primary CTA above the fold on a 375x812 screen. */
@media (max-width:620px){
  .hero{padding-top:18px}
  .hero-badges{gap:6px;margin-bottom:14px}
  .pill{font-size:.72rem;padding:5px 11px;gap:6px}
  .hero h1{font-size:clamp(1.85rem,8.2vw,2.3rem)}
  .hero-sub{font-size:.97rem;line-height:1.6}
  .hero-from{margin-top:14px;gap:7px}
  .hero-from b{font-size:1.5rem}
  .hero .btn-row{margin-top:18px}
  .hero-dir{margin-top:12px}
  .hero-media{margin-top:22px}
}

/* --- trust bar ------------------------------------------------------------ */
.trust{border-block:1px solid var(--line);background:var(--paper-2)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid > div{display:flex;align-items:center;gap:12px;padding:22px 18px;min-height:86px;
  border-left:1px solid var(--line-2)}
.trust-grid > div:first-child{border-left:0}
.trust .ic{width:40px;height:40px;border-radius:11px;background:#fff;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--brand-fill);flex:none}
.trust .ic svg{width:18px;height:18px}
.trust b{display:block;color:var(--ink);font-size:.94rem;font-weight:700;line-height:1.3}

.trust-grid > div > span:last-child{min-width:0}
.trust small{color:var(--mute);font-size:.8rem}
@media (max-width:900px){.trust-grid{grid-template-columns:1fr 1fr}
  .trust-grid > div:nth-child(3){border-left:0}
  .trust-grid > div:nth-child(n+3){border-top:1px solid var(--line-2)}}
/* Stay 2x2 on phones -- stacking four full-width rows cost ~350px of scroll
   for four short facts. Icon sits above the text so the labels do not wrap. */
@media (max-width:480px){
  .trust-grid > div{flex-direction:column;align-items:flex-start;gap:9px;
    padding:15px 12px;min-height:0}
  .trust .ic{width:34px;height:34px;border-radius:9px}
  .trust .ic svg{width:16px;height:16px}
  .trust b{font-size:.88rem}
  .trust small{font-size:.76rem;line-height:1.4}
}

/* --- service cards -------------------------------------------------------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px)}
@media (max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease)}
.card:hover{box-shadow:var(--sh-lg);transform:translateY(-4px);border-color:var(--line-2)}
.card-media{position:relative;overflow:hidden;background:var(--paper-2)}
.card-media img{width:100%;aspect-ratio:16/11;object-fit:cover;transition:transform .8s var(--ease)}
.card:hover .card-media img{transform:scale(1.05)}
.badge{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.96);color:var(--ink);
  font-size:.72rem;font-weight:700;padding:6px 12px;border-radius:var(--r-pill);
  box-shadow:0 2px 8px rgba(0,0,0,.12)}
.badge--brand{background:var(--brand);color:#fff}
.card-in{padding:20px;display:flex;flex-direction:column;flex:1;gap:9px}
.card h3{margin:0}
.card h3 a:hover{color:var(--brand)}
.card p{font-size:.93rem;color:var(--body);margin:0}
.price{display:flex;align-items:baseline;gap:8px;margin-top:2px}
.price b{font-size:1.44rem;color:var(--ink);font-weight:800;letter-spacing:-.03em}
.price span{font-size:.83rem;color:var(--mute)}
.card-actions{margin-top:auto;padding-top:14px;display:grid;grid-template-columns:1fr auto;gap:9px}
.card-actions .btn{min-width:0}

/* --- offers --------------------------------------------------------------- */
.offer{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;position:relative;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.offer:hover{box-shadow:var(--sh-lg);transform:translateY(-4px)}
.offer-media{position:relative}
.offer-media img{width:100%;aspect-ratio:16/9;object-fit:cover}
.offer-save{position:absolute;top:12px;right:12px;background:var(--wa);color:#fff;
  font-size:.78rem;font-weight:800;padding:7px 13px;border-radius:var(--r-pill);
  box-shadow:0 4px 12px rgba(15,122,63,.26)}
.offer-in{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.offer h3{margin:0}
.offer p{font-size:.93rem;margin:0}
.offer .btn-row{margin-top:auto;padding-top:6px;gap:9px}

/* --- numbered why grid ---------------------------------------------------- */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,28px)}
@media (max-width:900px){.why{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.why{grid-template-columns:1fr}}
.why > div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.why > div:hover{border-color:var(--brand-fill);box-shadow:var(--sh-2)}
.paper .why > div{background:#fff}
.why .n{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;
  background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:.92rem;margin-bottom:14px}
.why .n svg{width:18px;height:18px}
.why h3{font-size:1.08rem;margin-bottom:7px}
.why p{font-size:.93rem;margin:0}

/* --- price list table ----------------------------------------------------- */
.pricelist{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-2)}
.pricelist table{width:100%;border-collapse:collapse}
.pricelist caption{text-align:left;padding:20px 22px 0;color:var(--mute);font-size:.86rem}
.pricelist th{text-align:left;font-size:.74rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--mute);padding:16px 22px;border-bottom:1px solid var(--line);
  background:var(--paper)}
.pricelist th:last-child,.pricelist td:last-child{text-align:right}
.pricelist td{padding:15px 22px;border-bottom:1px solid var(--line-2);font-size:.97rem;vertical-align:middle}
.pricelist tr:last-child td{border-bottom:0}
.pricelist tbody tr:hover{background:var(--paper)}
.pricelist .nm{color:var(--ink);font-weight:700}
.pricelist .nm a{display:inline-flex;align-items:center;min-height:26px}
.pricelist .nm a:hover{color:var(--brand)}
.pricelist .amt{color:var(--ink);font-weight:800;white-space:nowrap;font-size:1.04rem}
.pricelist .dur{color:var(--mute);font-size:.88rem;white-space:nowrap}
@media (max-width:640px){
  .pricelist th:nth-child(2),.pricelist td:nth-child(2){display:none}
  .pricelist th,.pricelist td{padding-inline:16px}
}
.pricelist-note{margin-top:14px;font-size:.89rem;color:var(--mute)}

/* --- near-me chips -------------------------------------------------------- */
.areas{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.area{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-pill);padding:9px 16px;font-size:.9rem}
.area b{color:var(--ink);font-weight:700}
.area span{color:var(--mute);font-size:.82rem}

/* --- split ---------------------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.6vw,66px);align-items:center}
@media (max-width:940px){.split{grid-template-columns:1fr;gap:32px}}
.split--rev .split-media{order:2}
@media (max-width:940px){.split--rev .split-media{order:0}}
.split-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh-lg)}
.ticks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:13px}
.ticks li{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;font-size:.98rem}
.ticks .tk{width:24px;height:24px;border-radius:50%;background:var(--wa-soft);color:var(--wa-2);
  display:grid;place-items:center;margin-top:2px}
.ticks .tk svg{width:13px;height:13px}
.ticks b{color:var(--ink);font-weight:700}

/* --- gallery -------------------------------------------------------------- */
/* --- reviews -------------------------------------------------------------- */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}
@media (max-width:900px){.revs{grid-template-columns:1fr}}
.rev{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;margin:0}
.rev .stars{color:#8a5a2a;font-size:.95rem;letter-spacing:.1em;display:block;margin-bottom:12px}
.rev p{font-size:.99rem;color:var(--body);margin-bottom:16px}
.rev cite{font-style:normal;display:flex;align-items:center;gap:11px}
.rev .av{width:38px;height:38px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  display:grid;place-items:center;font-weight:700;font-size:.9rem;flex:none}
.rev b{display:block;color:var(--ink);font-size:.92rem;font-weight:700}
.rev small{color:var(--mute);font-size:.8rem}
.rev-head{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.rev-score{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-pill);padding:9px 18px;box-shadow:var(--sh-2)}
.rev-score b{font-size:1.5rem;color:var(--ink);font-weight:800;letter-spacing:-.03em}
.rev-score .stars{color:#8a5a2a;font-size:.85rem;margin:0}
.rev-score small{color:var(--mute);font-size:.82rem}

/* --- arabic --------------------------------------------------------------- */
.arabic-in{direction:rtl;text-align:right;max-width:900px;margin-inline:auto}
.arabic-in h2,.arabic-in p,.arabic-in li,.arabic-in .eyebrow,.arabic-in a,.arabic-in .btn span{
  font-family:'IBM Plex Sans Arabic','Noto Naskh Arabic',system-ui,sans-serif}
/* Arabic needs more leading and a slightly larger body size than Latin to
   read comfortably; the measure is capped so lines stay scannable. */
.arabic-in{max-width:62ch}
.arabic-in h2{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.6;font-weight:600;letter-spacing:0}
.arabic-in p{font-size:1.06rem;line-height:2.05;letter-spacing:0}
.arabic-in .lead{font-size:1.12rem;line-height:2}
.arabic-in .eyebrow{letter-spacing:.02em;font-weight:600}
.arabic-in .btn{font-size:.95rem;letter-spacing:0;font-weight:600}
.ar-list{list-style:none;margin:0 0 22px;padding:0;display:grid;
  grid-template-columns:1fr 1fr;gap:8px 14px}
@media (max-width:620px){.ar-list{grid-template-columns:1fr}}
.ar-list li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:9px 14px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:.98rem;color:var(--ink)}
.ar-list b{font-weight:600;color:var(--brand);white-space:nowrap;font-size:.95rem}
.ar-note{font-size:.95rem !important;color:var(--mute) !important;line-height:1.9 !important}
.arabic-in h2{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.5}
.arabic-in p{font-size:1.02rem;line-height:2}
.arabic-list{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:9px}
.arabic-list li{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:8px 16px;font-size:.92rem;color:var(--ink)}
.arabic-in .btn-row{justify-content:flex-start}

/* --- location ------------------------------------------------------------- */
.loc{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,4vw,56px);align-items:start}
@media (max-width:940px){.loc{grid-template-columns:1fr}}
.nap{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:2px}
.nap li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:14px 0;
  border-bottom:1px solid var(--line-2)}
.nap li:last-child{border-bottom:0}
.nap .ic{width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand);
  display:grid;place-items:center;flex:none}
.nap .ic svg{width:17px;height:17px}
.nap b{display:block;font-size:.78rem;color:var(--mute);font-weight:700;letter-spacing:.04em;margin-bottom:2px}
.nap span{color:var(--ink);font-size:1rem}
.nap a{color:var(--ink);font-size:1rem;display:flex;align-items:center;min-height:32px}
.nap a:hover{color:var(--brand)}
.map-shell{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper-2);box-shadow:var(--sh-2)}
.map-shell iframe{display:block;width:100%;height:clamp(340px,42vw,470px);border:0}
.map-facade{width:100%;height:clamp(340px,42vw,470px);border:0;background:var(--paper-2);cursor:pointer;
  display:grid;place-content:center;justify-items:center;gap:13px;text-align:center;padding:28px;
  font-family:inherit;color:var(--body);transition:background .3s var(--ease)}
.map-facade:hover{background:var(--paper)}
.map-facade .pin{width:54px;height:54px;border-radius:50%;background:#fff;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--brand);box-shadow:var(--sh-2)}
.map-facade .pin svg{width:22px;height:22px}
.map-facade b{color:var(--ink);font-size:1.16rem;font-weight:700}
.map-facade span{font-size:.92rem;max-width:36ch}
.map-facade em{font-style:normal;font-size:.88rem;font-weight:700;color:var(--brand)}

/* --- FAQ ------------------------------------------------------------------ */
.faq{max-width:860px;margin-inline:auto;display:grid;gap:10px;align-items:start}
@media (min-width:900px){
  .faq{max-width:1080px;grid-template-columns:1fr 1fr;gap:10px 16px}
}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.faq details[open]{border-color:var(--brand-fill);box-shadow:var(--sh-2)}
.faq summary{list-style:none;cursor:pointer;padding:19px 56px 19px 22px;position:relative;
  font-weight:700;color:var(--ink);font-size:1.01rem;line-height:1.45}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:20px;top:50%;width:11px;height:11px;
  margin-top:-6px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq .a{padding:0 22px 20px;font-size:.97rem}
.faq .a p{margin:0}
.faq .a a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* --- dark CTA band -------------------------------------------------------- */
.on-dark{background:var(--dark);color:#c9d0d8}
.on-dark h1,.on-dark h2,.on-dark h3{color:#fff}
.on-dark strong{color:#fff}
.on-dark .eyebrow{background:rgba(255,255,255,.1);color:#f7d9e2}
.on-dark .lead{color:#c9d0d8}
.cta{position:relative;overflow:hidden}
.cta-bg{position:absolute;inset:0}
.cta-bg img{width:100%;height:100%;object-fit:cover}
.cta-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,31,36,.93),rgba(26,31,36,.88))}
.cta .wrap{z-index:2}

/* --- page hero (inner) ---------------------------------------------------- */
.phero{background:var(--paper);border-bottom:1px solid var(--line-2);
  padding:clamp(20px,2.6vw,30px) 0 clamp(38px,4.6vw,60px)}
.phero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4vw,56px);align-items:center}
@media (max-width:940px){.phero-grid{grid-template-columns:1fr;gap:26px}}
.phero-media img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh-lg)}
.phero h1{margin-bottom:14px}
.phero p.lead{font-size:1.06rem;max-width:54ch}
.crumbs{font-size:.84rem;color:var(--mute);padding-bottom:18px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--line)}
.crumbs a:hover{color:var(--brand)}

/* --- service page price panel --------------------------------------------- */
.buy{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;
  box-shadow:var(--sh-lg);position:sticky;top:100px}
@media (max-width:940px){.buy{position:static}}
.buy .kicker{font-size:.78rem;color:var(--mute);font-weight:700}
.buy .amt{display:flex;align-items:baseline;gap:9px;margin:8px 0 4px}
.buy .amt b{font-size:2.5rem;color:var(--ink);font-weight:800;letter-spacing:-.035em;line-height:1}
.buy .amt span{color:var(--mute);font-size:.92rem}
.buy .save{display:inline-flex;align-items:center;gap:7px;background:var(--wa-soft);color:var(--wa-2);
  font-size:.85rem;font-weight:700;padding:7px 13px;border-radius:var(--r-pill);margin-top:10px}
.buy .btn-row{margin-top:18px}
.buy-facts{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2);display:grid;gap:12px}
.buy-facts div{display:grid;grid-template-columns:auto 1fr;gap:11px;font-size:.92rem}
.buy-facts svg{width:16px;height:16px;color:var(--brand);margin-top:4px}
.buy-facts b{display:block;color:var(--ink);font-weight:700}

/* --- prose ---------------------------------------------------------------- */
.prose{max-width:72ch}
.prose h2{margin-top:1.6em}
.prose h3{margin-top:1.3em}
.prose ul{padding-left:20px;margin:0 0 1.1em}
.prose li{margin-bottom:.5em}
.prose a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* --- footer --------------------------------------------------------------- */
.site-footer{background:var(--dark);color:#a8b2bd;padding:clamp(48px,5.5vw,72px) 0 0;font-size:.94rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:clamp(24px,3.4vw,44px)}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.site-footer h4{color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.06em;margin:0 0 16px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.site-footer ul a{display:inline-flex;align-items:center;min-height:30px}
.site-footer a:hover{color:#fff}
.site-footer .brand img{width:132px;height:60px}
.foot-about{max-width:34ch;margin-top:14px;line-height:1.75}
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{width:40px;height:40px;border:1px solid rgba(255,255,255,.16);border-radius:11px;
  display:grid;place-items:center;color:#fff;transition:.25s var(--ease)}
.socials a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.socials svg{width:17px;height:17px}
.foot-bottom{margin-top:clamp(34px,4vw,50px);border-top:1px solid rgba(255,255,255,.12);
  padding:20px 0 24px;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:.85rem}
.foot-bottom nav{display:flex;flex-wrap:wrap;gap:20px}
.foot-bottom nav a{display:inline-flex;align-items:center;min-height:26px}

/* --- sticky mobile bar ---------------------------------------------------- */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:75;display:none;
  grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line);
  box-shadow:0 -4px 20px rgba(36,26,32,.1);padding-bottom:env(safe-area-inset-bottom)}
@media (max-width:900px){.sticky{display:grid}}
.sticky a{min-height:var(--bar);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:4px;color:var(--ink);font-size:.74rem;font-weight:700;
  border-left:1px solid var(--line-2)}
.sticky a:first-child{border-left:0}
.sticky svg{width:20px;height:20px;color:var(--brand-fill)}
.sticky .wa{background:var(--wa);color:#fff}
.sticky .wa svg{color:#fff}

/* --- reveal (self-disarming, see head script) ----------------------------- */
html.js [data-rv]{opacity:0;transform:translateY(18px)}
html.js [data-rv].in{opacity:1;transform:none;
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js [data-rv][data-rv-d="1"].in{transition-delay:.08s}
html.js [data-rv][data-rv-d="2"].in{transition-delay:.16s}
html.js [data-rv][data-rv-d="3"].in{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;
    scroll-behavior:auto!important}
  html.js [data-rv]{opacity:1;transform:none}
  .btn:hover,.card:hover,.offer:hover{transform:none}
  .card:hover .card-media img,.gal a:hover img{transform:none}
}

/* =========================================================================
   Gallery slider — one row, native scroll-snap
   ====================================================================== */
.slider{position:relative;margin-top:clamp(24px,3vw,38px)}
.slider-track{
  display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:4px var(--gut) 18px;
  scrollbar-width:thin;scrollbar-color:var(--brand-2) transparent;
  -webkit-overflow-scrolling:touch;
}
.slider-track::-webkit-scrollbar{height:6px}
.slider-track::-webkit-scrollbar-track{background:var(--paper-2);border-radius:100px}
.slider-track::-webkit-scrollbar-thumb{background:var(--brand-2);border-radius:100px}
.slider-track:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:var(--r)}
.shot{
  flex:0 0 300px;scroll-snap-align:center;border-radius:var(--r);overflow:hidden;
  display:block;background:var(--paper-2);position:relative;
}
.shot img{width:100%;height:222px;object-fit:cover;display:block;transition:transform .6s ease}
.shot:hover img{transform:scale(1.05)}
.shot::after{content:"";position:absolute;inset:0;border-radius:var(--r);
  border:1px solid rgba(36,26,32,.08);pointer-events:none}
@media (max-width:1000px){.shot{flex-basis:40vw}.shot img{height:190px}}
@media (max-width:640px){.shot{flex-basis:74vw}.shot img{height:200px}}

/* arrows: enhancement only, revealed by site.js on pointer devices */
.slider-nav{
  position:absolute;top:calc(50% - 9px);transform:translateY(-50%);z-index:2;
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--brand);cursor:pointer;display:grid;place-items:center;
  box-shadow:0 4px 16px rgba(36,26,32,.14);transition:background .2s,border-color .2s,opacity .2s;
}
.slider-nav svg{width:22px;height:22px}
.slider-nav:hover{background:var(--brand-soft);border-color:var(--brand-fill)}
.slider-nav[disabled]{opacity:.35;cursor:default}
.slider-prev{left:max(8px,calc(var(--gut) - 23px))}
.slider-next{right:max(8px,calc(var(--gut) - 23px))}
@media (hover:none){.slider-nav{display:none}}
.slider--static .slider-nav{display:none}

/* =========================================================================
   Footer — compact on small screens
   ====================================================================== */
@media (max-width:700px){
  .site-footer{padding-top:30px;font-size:.88rem}
  /* Two link columns side by side rather than four stacked blocks, and the
     brand and contact blocks span the full width above and below them. */
  .foot-grid{grid-template-columns:1fr 1fr;gap:20px 16px}
  .foot-grid > :first-child{grid-column:1 / -1}
  .foot-grid > :last-child{grid-column:1 / -1}
  .foot-about{max-width:none;margin-top:8px;font-size:.85rem;line-height:1.6}
  .site-footer .brand{padding:0}
  .site-footer .brand img{width:96px;height:44px}
  .site-footer h4{margin-bottom:6px;font-size:.75rem}
  .site-footer ul{gap:0}
  .site-footer ul a{min-height:29px}
  .socials{margin-top:12px;gap:9px}
  .socials a{width:36px;height:36px}
  /* contact block reads as two tidy lines instead of a four-row list */
  .foot-grid > :last-child ul{grid-template-columns:1fr 1fr;gap:0 14px}
  .foot-bottom{margin-top:18px;padding-block:14px 16px;gap:6px 14px;font-size:.76rem}
  .foot-bottom nav{gap:12px}
  .foot-bottom nav a{min-height:24px}
}
@media (max-width:420px){
  .foot-grid{gap:18px 12px}
  .foot-grid > :last-child ul{grid-template-columns:1fr}
}

/* =========================================================================
   Reviews as a one-row slider (same mechanics as the gallery)
   ====================================================================== */
.rev-slider .slider-track{align-items:stretch;padding-bottom:20px;
  justify-content:safe center}
#gallery .slider-track{justify-content:safe center}
.rev-slider .rev{
  flex:0 0 360px;scroll-snap-align:center;margin:0;
  display:flex;flex-direction:column;
}
@media (max-width:1000px){.rev-slider .rev{flex-basis:66vw}}
@media (max-width:640px){.rev-slider .rev{flex-basis:84vw}}
.rev-slider .rev p{flex:1}

/* =========================================================================
   Map — the real embed, lazily loaded
   ====================================================================== */
.map-frame{
  width:100%;height:clamp(300px,42vw,460px);border:0;display:block;
  border-radius:var(--r);background:var(--paper-2);
}
.map-shell{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--sh-2);background:var(--paper-2)}
.map-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}

/* =========================================================================
   Footer — collapsible link groups on small screens
   ====================================================================== */
.foot-acc > summary{display:none}
@media (max-width:700px){
  .foot-grid{grid-template-columns:1fr;gap:0}
  .foot-grid > :first-child{grid-column:auto;padding-bottom:16px}
  .foot-grid > :last-child{grid-column:auto}
  .foot-acc{border-top:1px solid rgba(255,255,255,.13)}
  .foot-acc > summary{
    display:flex;align-items:center;justify-content:space-between;
    list-style:none;cursor:pointer;padding:13px 0;
    color:#fff;font-size:.86rem;font-weight:700;letter-spacing:.01em;
  }
  .foot-acc > summary::-webkit-details-marker{display:none}
  .foot-acc > summary::after{
    content:"";width:9px;height:9px;border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);
    transition:transform .25s;opacity:.7;
  }
  .foot-acc[open] > summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
  .foot-acc h4{display:none}
  .foot-acc ul{padding-bottom:10px}
  .site-footer ul a{min-height:32px;font-size:.9rem}
  /* Contact: make it a compact two-column block rather than four full rows,
     and turn the address + hours into small print. */
  .foot-last{border-top:1px solid rgba(255,255,255,.13);padding-top:12px;margin-top:0}
  .foot-last h4{margin-bottom:6px}
  .foot-last ul{grid-template-columns:1fr 1fr;gap:0 12px}
  .foot-last li:nth-child(3),.foot-last li:nth-child(4){grid-column:1 / -1;font-size:.82rem;
    color:#b9a7ae;line-height:1.5}
  .foot-last li:nth-child(3) a{min-height:26px}
  .foot-about{margin-top:6px;font-size:.83rem;line-height:1.55}
  .socials{margin-top:10px;gap:8px}
  .socials a{width:34px;height:34px}
  .site-footer{padding-top:24px}
  .foot-bottom{margin-top:14px;padding-block:12px 14px;font-size:.74rem;gap:5px 12px}
}

/* =========================================================================
   Service page: step-by-step, pre-booking notes, comparison links
   ====================================================================== */
.steps{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,24px);counter-reset:st}
@media (max-width:1000px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.steps{grid-template-columns:1fr}}
.steps li{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:22px 20px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.step-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
  background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:.86rem}
.steps b{display:block;color:var(--ink);font-size:1rem;font-weight:700;
  letter-spacing:-.01em;margin-bottom:5px;line-height:1.3}
.steps p{margin:0;font-size:.92rem;color:var(--body)}

.ticklist{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:9px}
.ticklist li{position:relative;padding-left:26px;font-size:.97rem;color:var(--body)}
.ticklist li::before{content:"";position:absolute;left:6px;top:9px;width:7px;height:7px;
  border-radius:50%;background:var(--brand-fill)}
.fineprint{font-size:.87rem;color:var(--mute);border-left:3px solid var(--line);
  padding-left:14px;line-height:1.65}

.compare{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.compare a{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.compare li{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  transition:border-color .2s,box-shadow .2s}
.compare li:hover{border-color:var(--brand-fill);box-shadow:var(--sh-2)}
.compare b{color:var(--ink);font-weight:700;font-size:1rem}
.compare span{color:var(--mute);font-size:.9rem}
.compare em{font-style:normal;font-weight:800;color:var(--brand);white-space:nowrap}

/* =========================================================================
   Explore grid + gallery area notes (internal linking blocks)
   ====================================================================== */
.explore{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.8vw,18px)}
@media (max-width:900px){.explore{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.explore{grid-template-columns:1fr}}
.explore li{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .2s,box-shadow .2s,transform .2s}
.explore li:hover{border-color:var(--brand-fill);box-shadow:var(--sh-2);transform:translateY(-2px)}
.explore a{display:block;padding:20px 22px}
.explore b{display:block;color:var(--ink);font-size:1.02rem;font-weight:700;
  letter-spacing:-.01em;margin-bottom:6px}
.explore b::after{content:" →";color:var(--brand);font-weight:700}
.explore span{color:var(--body);font-size:.92rem;line-height:1.6}

.areas{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.4vw,28px)}
@media (max-width:820px){.areas{grid-template-columns:1fr}}
.areas article{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.areas h3{font-size:1.12rem;margin-bottom:8px}
.areas p{font-size:.96rem;color:var(--body);margin-bottom:14px}
.arrow-link{display:inline-flex;align-items:center;gap:7px;min-height:26px;
  color:var(--brand);font-weight:700;font-size:.92rem}
.arrow-link::after{content:"→";transition:transform .2s}
.arrow-link:hover::after{transform:translateX(4px)}

/* =========================================================================
   Treatment chooser + driving routes
   ====================================================================== */
.chooser{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.chooser li{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(16px,3vw,40px);
  align-items:center;padding:18px 0;border-bottom:1px solid var(--line);transition:background .2s}
.chooser li:hover{background:var(--paper)}
@media (max-width:760px){.chooser li{grid-template-columns:1fr;gap:10px;padding:16px 0}}
.ch-q{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.ch-q p{margin:0;font-size:1.02rem;color:var(--ink);font-weight:600;letter-spacing:-.01em}
.ch-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--brand-soft);color:var(--brand);flex:none;margin-top:1px}
.ch-mark svg{width:14px;height:14px}
.ch-a{display:flex;align-items:baseline;gap:10px 14px;flex-wrap:wrap;padding-left:38px}
@media (max-width:760px){.ch-a{padding-left:38px}}
.ch-a b{color:var(--brand);font-weight:800;font-size:1.02rem}
.ch-a a:hover b{text-decoration:underline;text-underline-offset:3px}
.ch-a p{margin:0;font-size:.92rem;color:var(--mute);flex:1 1 100%}
.ch-price{font-weight:800;color:var(--ink);font-size:.92rem;white-space:nowrap}

.routes{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.6vw,18px)}
@media (max-width:820px){.routes{grid-template-columns:1fr}}
.routes li{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.routes b{display:block;color:var(--ink);font-size:1.02rem;font-weight:700;margin-bottom:5px}
.routes p{margin:0;font-size:.93rem;color:var(--body);line-height:1.6}
.route-time{flex:none;background:var(--brand-soft);color:var(--brand);font-weight:800;
  font-size:.82rem;padding:5px 12px;border-radius:var(--r-pill);white-space:nowrap}

/* =========================================================================
   Craft pass — depth, rhythm and interaction detail
   ====================================================================== */
.card,.why > div,.explore li,.routes li,.steps li,.areas article,.compare li{
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}
.card:hover,.why > div:hover,.explore li:hover,.areas article:hover{
  transform:translateY(-3px);box-shadow:var(--sh-3);border-color:var(--brand-fill)}

/* section rhythm: alternating bands get a hairline seam rather than a hard edge */
.section.paper{position:relative}
.section.paper::before,.section.paper::after{content:"";position:absolute;left:0;right:0;
  height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.section.paper::before{top:0}
.section.paper::after{bottom:0}

/* the eyebrow reads as a label, not a stray line */
.eyebrow{background:var(--brand-soft);color:var(--brand);border-radius:var(--r-pill);
  padding:6px 14px;display:inline-block;font-size:.72rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--s3)}

/* primary buttons get brand-tinted depth so they sit above the page */
.btn--wa{box-shadow:0 6px 18px rgba(15,122,63,.20)}
.btn--wa:hover{box-shadow:0 10px 28px rgba(15,122,63,.28);transform:translateY(-2px)}
.btn--ink:hover,.btn--brand:hover{box-shadow:var(--sh-brand);transform:translateY(-2px)}
.btn--line:hover{transform:translateY(-2px)}

/* images share one treatment so the page reads as art-directed */
.card-media img,.why-media img,.split-media img,.shot img,.areas img{
  filter:saturate(1.02) contrast(1.02)}

/* focus visibility that matches the brand rather than the browser default */
:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:4px}
.menu-note{margin:var(--s5) auto 0;max-width:70ch;text-align:center;font-size:.95rem;
  color:var(--mute);line-height:1.7}
.menu-note a{color:var(--brand);font-weight:700;border-bottom:1px solid var(--line-2)}
.menu-note a:hover{border-color:var(--brand)}
.stars--lg{font-size:1.5rem;letter-spacing:.1em;line-height:1}
.rev-score{align-items:center}

/* =========================================================================
   Imagery on the inner pages — breaking up long text runs
   ====================================================================== */
.buy-media{border-radius:var(--r);overflow:hidden;margin:-6px -6px 18px;aspect-ratio:16/10}
.buy-media img{width:100%;height:100%;object-fit:cover}

.steps-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(20px,3vw,40px);align-items:start}
@media (max-width:1000px){.steps-wrap{grid-template-columns:1fr}}
.steps-media{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-2);position:sticky;top:96px}
@media (max-width:1000px){.steps-media{position:static}}
.steps-media img{width:100%;aspect-ratio:4/3.4;object-fit:cover;display:block}
.steps--stack{grid-template-columns:1fr;gap:12px}
.steps--stack li{padding:18px 20px}

.std-split{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(20px,3vw,44px);align-items:start}
@media (max-width:1000px){.std-split{grid-template-columns:1fr}}
.std-media{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-2);position:sticky;top:96px}
@media (max-width:1000px){.std-media{position:static}}
.std-media img{width:100%;aspect-ratio:4/4.2;object-fit:cover;display:block}
@media (max-width:1000px){.std-media img{aspect-ratio:16/9}}
.why--stack{grid-template-columns:1fr 1fr}
@media (max-width:700px){.why--stack{grid-template-columns:1fr}}
.ar-h3{font-size:clamp(1.15rem,2vw,1.4rem);font-weight:600;margin:26px 0 12px;color:var(--ink)}
.ar-offer{background:var(--brand-soft);border-radius:var(--r-sm);padding:12px 18px;
  display:inline-block;color:var(--brand);font-size:1.02rem}
.ar-phone{font-size:1.3rem;font-weight:600;margin-bottom:6px}
.ar-phone a{color:var(--brand);direction:ltr;display:inline-block}
.ar-phone a:hover{text-decoration:underline;text-underline-offset:4px}
.ar-facts{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ar-facts li{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:7px 15px;font-size:.9rem;color:var(--ink);font-weight:600}
