/* Dr. Kadi — evergreen & porcelain, editorial serif with a quiet brass accent. */
:root {
  /* Surfaces */
  --bg:#fbfaf6; --surface:#ffffff; --sand:#f4f0e7; --mist:#ecf1ed;
  /* Lines */
  --line:#e5e1d7; --line-strong:#cdd7d1;
  /* Text */
  --ink:#10261f; --text:#2c3c36; --muted:#5d6c66;
  /* Brand */
  --primary:#134236; --primary-hover:#1d5747; --primary-deep:#0c2f27; --primary-tint:#e5eee9;
  --accent:#b8925a; --accent-ink:#86663a; --accent-soft:#ead7ad; --accent-tint:#f6eedd;
  /* On dark */
  --on-dark:#f4f1ea; --on-dark-muted:#b9c8c1; --on-dark-subtle:#8fa59b; --on-dark-line:#ffffff24;
  /* Supporting */
  --sage-ink:#4d6a5e; --line-warm:#d9d1c1; --line-hover:#a9b9b1; --accent-soft-hover:#f2e2bf; --success:#4f9a76; --paper-warm:#fbf8f1;
  /* Type */
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Plus Jakarta Sans','IBM Plex Sans Arabic',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* Shape & depth */
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-pill:999px;
  --shadow-sm:0 1px 2px #10261f0d,0 2px 8px #10261f0a;
  --shadow-md:0 2px 6px #10261f0a,0 12px 32px #10261f12;
  --shadow-lg:0 4px 12px #10261f0f,0 30px 70px #10261f1f;
  --ease:cubic-bezier(.2,.7,.2,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:104px; }
body { margin:0; background:var(--bg); color:var(--text); font:400 16px/1.7 var(--sans); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
body.dialog-open { overflow:hidden; }
::selection { background:var(--accent-soft); color:var(--ink); }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button,a,summary,select { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button,summary,select { cursor:pointer; }
button { color:inherit; }
img { max-width:100%; display:block; }
picture { display:contents; }
svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
h1,h2,h3,p { margin:0; }
h1,h2 { font-family:var(--serif); font-weight:400; color:var(--ink); font-optical-sizing:auto; }
h3 { font-family:var(--sans); font-weight:600; color:var(--ink); letter-spacing:-.015em; }
h2 { font-size:clamp(34px,3.6vw,50px); line-height:1.12; letter-spacing:-.012em; }
p { color:var(--muted); }
[hidden] { display:none!important; }
.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; }
:where(a,button,summary,input,select):focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:6px; }
.container { width:min(1200px,calc(100% - 128px)); margin-inline:auto; }
.serif-word { font-family:var(--serif); font-style:italic; font-weight:300; color:var(--accent-ink); letter-spacing:-.02em; }
.muted-heading { font-style:italic; font-weight:300; color:var(--sage-ink); }
.eyebrow { font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--primary); display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.eyebrow::before { content:''; width:22px; height:1px; background:var(--accent); flex-shrink:0; }

/* Top line & header */
.topline { background:var(--primary-deep); color:var(--on-dark-muted); font-size:12.5px; letter-spacing:.01em; }
.topline .container { min-height:38px; display:flex; align-items:center; justify-content:space-between; }
.topline :is(span,a) { display:flex; align-items:center; gap:8px; }
.topline a { min-height:38px; color:var(--on-dark); font-weight:500; }
.topline a:hover { color:var(--accent-soft); }
.topline svg { width:14px; height:14px; }
.header { background:#fbfaf6e6; position:sticky; top:0; z-index:30; border-bottom:1px solid transparent; backdrop-filter:saturate(1.4) blur(18px); -webkit-backdrop-filter:saturate(1.4) blur(18px); transition:border-color .3s,box-shadow .3s; }
.header.scrolled { border-color:var(--line); box-shadow:0 6px 24px #10261f0a; }
.nav-wrap { height:84px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:12px; flex-shrink:0; color:var(--primary); }
.brand-symbol { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:var(--primary); color:var(--accent-soft); }
.brand-symbol svg { width:26px; height:26px; stroke-width:1.4; }
.brand-type { font:500 26px/1 var(--serif); letter-spacing:-.02em; color:var(--ink); }
.brand-type>span { display:block; font:600 9.5px var(--sans); letter-spacing:.2em; margin-top:6px; color:var(--muted); }
.desktop-nav { display:flex; gap:34px; font-size:14.5px; font-weight:500; color:var(--text); }
.desktop-nav a { position:relative; padding:12px 0; min-height:44px; transition:color .2s; }
.desktop-nav a:hover { color:var(--primary); }
.desktop-nav a::after { content:''; height:1.5px; background:var(--accent); position:absolute; left:50%; right:50%; bottom:8px; transition:left .25s var(--ease),right .25s var(--ease); }
.desktop-nav a:hover::after { left:0; right:0; }

.lang-switch { display:flex; gap:2px; }
.lang-switch a { min-height:38px; padding:0 12px; border-radius:var(--r-pill); font-size:12px; font-weight:600; letter-spacing:.06em; color:var(--on-dark-muted); display:flex; align-items:center; }
.lang-switch a:hover { color:#fff; }
.lang-switch a[aria-current] { background:#ffffff1a; color:#fff; }

/* Buttons & links */
.button { min-height:54px; padding:14px 26px; display:inline-flex; justify-content:center; align-items:center; gap:12px; border:1px solid transparent; border-radius:var(--r-pill); font-size:15px; font-weight:600; letter-spacing:-.005em; transition:background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease),border-color .25s; }
.button:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }
.button:active { transform:none; }
.button svg { width:18px; height:18px; transition:transform .25s var(--ease); }
.button:hover svg:last-child { transform:translate(2px,-2px); }
.button-dark { background:var(--primary); color:#fff; }
.button-dark:hover { background:var(--primary-hover); }
.button-light { background:var(--accent-soft); color:var(--primary-deep); }
.button-light:hover { background:var(--accent-soft-hover); }
.button-outline { background:transparent; border-color:var(--line-strong); color:var(--ink); }
.button-outline:hover { background:var(--surface); border-color:var(--primary); }
.nav-cta { min-height:46px; padding:11px 20px; font-size:14px; white-space:nowrap; flex-shrink:0; }
.text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14.5px; font-weight:600; color:var(--primary); transition:color .2s; }
.text-link:hover { color:var(--accent-ink); }
.text-link svg { width:17px; height:17px; transition:transform .25s var(--ease); }
.text-link:hover svg:last-child { transform:translate(2px,-2px); }
.menu-toggle { display:none; }

/* Hero */
.hero { padding-block:48px 80px; display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:72px; }
.status-dot { width:7px; height:7px; background:var(--success); border-radius:50%; box-shadow:0 0 0 4px #4f9a7626; flex-shrink:0; }
.hero h1 { font-size:clamp(60px,6.6vw,96px); line-height:1.04; font-weight:350; letter-spacing:-.025em; margin:0; font-variation-settings:'opsz' 144; }
.h1-kicker { display:flex; align-items:center; gap:12px; font:600 12px/1.4 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:28px; font-variation-settings:normal; }
.hero h1 .serif-word { position:relative; display:inline-block; font-weight:300; }
.hero h1 .serif-word svg { position:absolute; left:2%; bottom:-14px; width:96%; height:22px; stroke:var(--accent); stroke-width:2; opacity:.75; }
.hero-description { font-size:18.5px; line-height:1.75; margin-top:34px; max-width:450px; color:var(--text); }
.hero-actions { display:flex; align-items:center; gap:28px; margin:34px 0 22px; flex-wrap:wrap; }
.hero-reassurance { display:flex; flex-wrap:wrap; gap:8px 22px; font-size:13.5px; color:var(--muted); }
.hero-reassurance span { display:flex; align-items:center; gap:7px; }
.hero-reassurance svg { width:16px; height:16px; stroke:var(--accent-ink); stroke-width:2; }
.hero-bottom { display:flex; align-items:center; gap:14px; border-top:1px solid var(--line); margin-top:34px; padding-top:22px; max-width:450px; }
.hero-language-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--primary-tint); color:var(--primary); }
.hero-bottom strong { display:block; font-size:14px; font-weight:600; color:var(--ink); }
.hero-bottom div>span { display:block; font-size:13px; color:var(--muted); }
.hero-bottom>a { margin-left:auto; width:44px; height:44px; border:1px solid var(--line-strong); border-radius:50%; display:grid; place-items:center; color:var(--primary); transition:background .2s,color .2s; }
.hero-bottom>a:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.hero-bottom>a svg { width:17px; }
.hero-visual { position:relative; min-width:0; }
.hero-visual::before { content:''; position:absolute; inset:28px -22px -22px 28px; border:1px solid var(--accent); opacity:.45; border-radius:var(--r-pill) var(--r-pill) var(--r-lg) var(--r-lg); pointer-events:none; }
.hero-photo { border-radius:var(--r-pill) var(--r-pill) var(--r-lg) var(--r-lg); position:relative; overflow:hidden; height:600px; background:var(--primary-tint); box-shadow:var(--shadow-lg); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:66% 45%; }
.photo-shade { position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#0c2f27e0); }
.photo-caption { position:absolute; bottom:32px; left:32px; color:#fff; }
.photo-caption>span { font-size:11px; font-weight:600; letter-spacing:.2em; color:var(--accent-soft); }
.photo-caption .caption-name { font:400 34px/1.15 var(--serif); color:#fff; margin:6px 0 4px; letter-spacing:-.02em; }
.photo-caption p { color:var(--on-dark); font-size:14.5px; }
.round-seal { position:absolute; top:36px; left:-30px; background:var(--accent-tint); color:var(--primary); border:6px solid var(--bg); width:112px; height:112px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px; transform:rotate(-10deg); box-shadow:var(--shadow-md); }
.round-seal svg { width:26px; height:26px; stroke-width:1.3; color:var(--accent-ink); }
.round-seal span { font-size:8px; line-height:1.5; letter-spacing:.14em; font-weight:700; text-align:center; }
.photo-note { position:absolute; left:-34px; bottom:150px; background:#ffffffeb; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border:1px solid #fff; border-radius:var(--r-md); display:flex; align-items:center; gap:13px; padding:14px 20px 14px 14px; box-shadow:var(--shadow-lg); font-size:14px; font-weight:600; color:var(--ink); }
.note-icon { width:42px; height:42px; border-radius:50%; background:var(--accent-tint); color:var(--accent-ink); display:grid; place-items:center; flex-shrink:0; }
.note-icon svg { width:20px; height:20px; }
.photo-note small { display:block; font-size:12px; color:var(--muted); font-weight:400; margin-top:2px; }

/* Value strip */
.care-strip { border-block:1px solid var(--line); background:var(--surface); }
.care-strip .container { display:flex; justify-content:space-between; align-items:center; min-height:92px; gap:16px; }
.care-strip span { display:flex; align-items:center; gap:12px; font-size:15px; font-weight:500; color:var(--ink); }
.care-strip svg { width:24px; height:24px; stroke-width:1.4; color:var(--accent-ink); }
.care-strip i { height:24px; width:1px; background:var(--line); }

/* Sections */
.section { padding-block:112px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px; }
.section-heading>p { font-size:16.5px; line-height:1.75; padding-bottom:6px; max-width:320px; }

/* Treatments */
.treatment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.treatment { padding:28px 26px 22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); display:flex; flex-direction:column; min-height:340px; box-shadow:var(--shadow-sm); transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s; }
.treatment:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--line-strong); }
.treatment.featured { background:var(--primary); border-color:var(--primary); color:#fff; }
.treatment.featured h3 { color:#fff; }
.treatment-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:34px; }
.treatment-icon { height:52px; width:52px; display:grid; place-items:center; background:var(--primary-tint); color:var(--primary); border-radius:var(--r-md); }
.treatment-icon svg { width:26px; height:26px; stroke-width:1.4; }
.featured .treatment-icon { background:#ffffff14; color:var(--accent-soft); }
.treatment-number { font:italic 300 18px var(--serif); color:var(--accent-ink); }
.featured .treatment-number { color:var(--accent-soft); }
.treatment-kicker { font-size:10.5px; font-weight:600; letter-spacing:.14em; color:var(--muted); }
.featured .treatment-kicker { color:var(--on-dark-muted); }
.treatment h3 { font-size:21px; line-height:1.3; margin:10px 0 12px; }
.treatment p { font-size:15px; line-height:1.7; }
.featured p { color:var(--on-dark-muted); }
.card-bottom { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:24px; border-top:1px solid var(--line); gap:8px; font-size:13.5px; font-weight:600; color:var(--primary); }
.featured .card-bottom { border-color:var(--on-dark-line); color:#fff; }
.card-bottom svg { width:34px; height:34px; padding:8px; border:1px solid var(--line-strong); border-radius:50%; transition:background .25s,color .25s,border-color .25s; }
.treatment:hover .card-bottom svg { background:var(--primary); border-color:var(--primary); color:#fff; }
.featured .card-bottom svg, .treatment.featured:hover .card-bottom svg { background:var(--accent-soft); border-color:var(--accent-soft); color:var(--primary-deep); }
.section-note { font-size:13.5px; margin-top:24px; }

/* About */
.about-section { background:var(--sand); padding-block:112px; }
.about-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:96px; align-items:center; }
.about-image { position:relative; overflow:hidden; border-radius:var(--r-lg) var(--r-lg) 140px var(--r-lg); box-shadow:var(--shadow-lg); }
.about-image img { width:100%; height:560px; object-fit:cover; object-position:center 40%; }
.image-label { position:absolute; left:20px; bottom:20px; color:var(--ink); background:#ffffffe6; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-radius:var(--r-pill); padding:10px 18px 10px 14px; display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:500; }
.image-label svg { width:18px; color:var(--accent-ink); }
.about-copy h2 { margin-bottom:28px; }
.about-copy>p { font-size:17px; line-height:1.8; margin-top:16px; color:var(--text); }
.about-details { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:34px; }
.about-details>div { display:flex; gap:14px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); }
.about-details svg { width:24px; height:24px; color:var(--accent-ink); margin-top:2px; }
.about-details strong,.about-details small { display:block; font-size:15px; font-weight:600; color:var(--ink); }
.about-details small { font-size:14px; color:var(--muted); font-weight:400; margin-top:4px; line-height:1.55; }
.about-signature { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line-warm); margin-top:34px; padding-top:22px; }
.about-signature>span { font:italic 300 30px var(--serif); letter-spacing:-.02em; color:var(--primary); }
.circle-link { height:46px; width:46px; display:grid; place-items:center; border:1px solid var(--line-warm); border-radius:50%; color:var(--primary); transition:background .2s,color .2s,border-color .2s; }
.circle-link:hover { background:var(--primary); border-color:var(--primary); color:#fff; }
.circle-link svg { width:20px; }

/* Gallery */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.gallery-card { min-width:0; }
.gallery-card.is-collapsed { display:none; }
.gallery-image { display:block; position:relative; width:100%; aspect-ratio:1; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow .3s var(--ease); }
.gallery-image:hover { box-shadow:var(--shadow-lg); }
.gallery-image img { width:100%; height:100%; object-fit:contain; transition:transform .6s var(--ease); }
.gallery-image.fill img { object-fit:cover; }
.gallery-image:hover img { transform:scale(1.03); }
.gallery-badge { position:absolute; top:14px; left:14px; background:#ffffffeb; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-radius:var(--r-pill); padding:5px 11px 5px 9px; font-size:11.5px; font-weight:500; display:flex; align-items:center; gap:6px; color:var(--ink); }
.gallery-badge svg { width:14px; height:14px; }
.expand { position:absolute; right:14px; bottom:14px; width:42px; height:42px; border-radius:50%; background:var(--primary); color:#fff; display:grid; place-items:center; box-shadow:var(--shadow-md); transition:transform .3s var(--ease),background .2s; }
.gallery-image:hover .expand { transform:scale(1.08); background:var(--primary-hover); }
.expand svg { width:18px; }
.gallery-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; font-size:12.5px; color:var(--muted); margin-top:22px; }
.gallery-meta>span { letter-spacing:.14em; font-size:10.5px; font-weight:600; color:var(--accent-ink); }
.gallery-card h3 { font:400 26px/1.25 var(--serif); letter-spacing:-.015em; margin:8px 0 10px; }
.gallery-card p { font-size:15.5px; line-height:1.7; }
.gallery-card>.text-link { margin-top:8px; }
.gallery-more-card { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; padding:44px; border-radius:var(--r-lg); background:var(--primary); color:#fff; grid-column:span 2; align-self:start; aspect-ratio:2.04/1; position:relative; overflow:hidden; transition:background .3s; }
.gallery-more-card::after { content:''; position:absolute; width:420px; height:420px; right:-140px; top:-160px; border-radius:50%; border:1px solid #ffffff14; box-shadow:0 0 0 60px #ffffff05; pointer-events:none; }
.gallery-more-card:hover { background:var(--primary-hover); }
.gallery-more-card .eyebrow { color:var(--accent-soft); margin:20px 0 6px; }
.gallery-more-card strong { font:400 32px/1.2 var(--serif); letter-spacing:-.02em; max-width:440px; }
.gallery-more-card .text-link { color:var(--accent-soft); margin-top:12px; }
.gallery-more-icon { width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:#ffffff14; color:var(--accent-soft); }
.gallery-more-icon svg { width:26px; height:26px; }
.gallery-actions { display:flex; justify-content:center; }
.gallery-actions .button { margin-top:40px; }
.gallery-foot { display:flex; align-items:center; justify-content:space-between; gap:36px; border-top:1px solid var(--line); margin-top:44px; padding-top:24px; }
.gallery-foot>p { font-size:13.5px; max-width:640px; }
.gallery-foot .text-link { flex-shrink:0; }

/* Journey */
.journey-section { background:var(--primary); color:#fff; padding:104px 0; position:relative; overflow:hidden; }
.journey-section::after { content:''; position:absolute; width:640px; height:640px; border:1px solid #ffffff12; border-radius:50%; right:-220px; top:-240px; box-shadow:0 0 0 70px #ffffff05,0 0 0 140px #ffffff03; pointer-events:none; }
.journey-section .eyebrow { color:var(--accent-soft); }
.journey-section h2 { color:#fff; }
.journey-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:56px; margin-top:56px; }
.journey-grid>div { border-top:1px solid var(--on-dark-line); padding-top:28px; position:relative; }
.step { font:italic 300 40px/1 var(--serif); color:var(--accent-soft); }
.journey-grid h3 { color:#fff; font-size:22px; margin:22px 0 10px; }
.journey-grid p { color:var(--on-dark-muted); font-size:16px; line-height:1.75; }

/* International patients */
.intl-section { background:var(--surface); border-block:1px solid var(--line); padding-block:112px; }
.intl-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:88px; align-items:start; }
.intl-copy>p { font-size:17px; line-height:1.8; margin-top:24px; color:var(--text); }
.intl-langs { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.intl-langs span { padding:8px 16px; border:1px solid var(--line-strong); border-radius:var(--r-pill); font-size:14px; font-weight:500; color:var(--ink); }
.intl-list { list-style:none; margin:0; padding:0; display:grid; gap:14px; counter-reset:intl; }
.intl-list li { display:flex; gap:18px; padding:22px 24px; background:var(--bg); border:1px solid var(--line); border-radius:var(--r-md); transition:border-color .2s,box-shadow .2s; }
.intl-list li:hover { border-color:var(--line-strong); box-shadow:var(--shadow-sm); }
.intl-icon { width:46px; height:46px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background:var(--accent-tint); color:var(--accent-ink); }
.intl-icon svg { width:22px; height:22px; }
.intl-list h3 { font-size:17px; margin-bottom:4px; }
.intl-list p { font-size:15px; line-height:1.65; }

/* Booking */
.booking-section { background:var(--mist); padding-block:112px; }
.booking-grid { display:grid; grid-template-columns:1fr 1fr; gap:88px; align-items:center; }
.booking-copy h2 { font-size:clamp(40px,4.4vw,60px); line-height:1.08; letter-spacing:-.03em; }
.booking-copy>p { font-size:17.5px; line-height:1.75; margin-top:26px; color:var(--text); }
.booking-phone { display:flex; gap:16px; align-items:center; margin-top:36px; min-height:54px; font:400 30px/1.1 var(--serif); letter-spacing:-.01em; color:var(--ink); transition:color .2s; }
.booking-phone:hover { color:var(--primary-hover); }
.booking-phone>svg { width:54px; height:54px; background:var(--primary); color:var(--accent-soft); padding:15px; border-radius:50%; }
.booking-phone small { display:block; font:600 10.5px var(--sans); letter-spacing:.16em; color:var(--muted); margin-bottom:6px; }
.booking-language { display:flex; align-items:center; gap:10px; font-size:14.5px; margin-top:24px; color:var(--muted); }
.booking-language svg { width:19px; color:var(--accent-ink); }
.booking-form { background:var(--surface); padding:40px; border:1px solid var(--line); border-radius:28px; box-shadow:var(--shadow-lg); }
.form-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.form-heading h3 { font:400 30px/1.2 var(--serif); letter-spacing:-.02em; }
.form-heading>span { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--primary); background:var(--primary-tint); padding:6px 12px; border-radius:var(--r-pill); }
.form-heading svg { width:15px; height:15px; }
.booking-form>p { font-size:15px; margin:10px 0 18px; }
.booking-form label { font-size:14px; font-weight:600; color:var(--ink); display:block; margin:20px 0 9px; }
.booking-form label small { font-size:12.5px; color:var(--muted); font-weight:400; }
.booking-form :is(input:not([type=hidden]),select) { width:100%; min-height:54px; border:1px solid var(--line-strong); background:var(--bg); border-radius:var(--r-sm); padding:12px 14px; color:var(--ink); font-size:16px; min-width:0; transition:border-color .2s,box-shadow .2s,background .2s; }
.booking-form :is(input:not([type=hidden]),select):hover { border-color:var(--line-hover); }
.booking-form :is(input:not([type=hidden]),select):is(:focus,:focus-within) { outline:none; border-color:var(--primary); background:#fff; box-shadow:0 0 0 3px var(--accent-soft); }
.form-row { display:grid; grid-template-columns:1.1fr 1fr; gap:14px; }
.form-row>div { min-width:0; }
.form-row label { min-height:48px; display:flex; flex-direction:column; justify-content:flex-end; }
.booking-form button[type=submit] { margin-top:24px; width:100%; gap:12px; min-height:58px; font-size:16px; }
.booking-form .form-note { display:flex; gap:9px; font-size:12.5px; line-height:1.7; margin:16px 0 0; }
.form-note svg { width:17px; height:17px; margin-top:2px; color:var(--accent-ink); }
.message-preview { margin-top:22px; border-block:1px solid var(--line); }
.message-preview summary { font-size:14px; min-height:50px; padding:12px 0; color:var(--primary); font-weight:600; }
.message-preview p { white-space:pre-wrap; font-size:15px; padding:14px 16px; margin-bottom:16px; background:var(--bg); border-radius:var(--r-sm); color:var(--text); }

/* Contact */
.contact-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:80px; align-items:center; }
.address-row { display:flex; gap:14px; margin:32px 0 12px; font-style:normal; }
.address-row>svg { margin-top:2px; width:24px; color:var(--accent-ink); }
.address-title { font-size:19px; font-weight:600; color:var(--ink); letter-spacing:-.015em; }
.address-row p { font-size:16px; margin:10px 0; color:var(--text); }
.address-row small { font-size:13.5px; line-height:1.7; color:var(--muted); display:block; max-width:380px; }
.address-confirm { font-size:14px; margin-top:6px; }
.contact-socials { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.contact-socials a { font-size:14px; font-weight:500; min-height:44px; display:flex; align-items:center; gap:9px; padding:0 18px 0 14px; border:1px solid var(--line-strong); border-radius:var(--r-pill); color:var(--ink); transition:background .2s,border-color .2s; }
.contact-socials a:hover { background:var(--surface); border-color:var(--primary); }
.contact-socials svg { width:19px; height:19px; color:var(--primary); }
.map-wrap { min-height:460px; border-radius:var(--r-lg); overflow:hidden; position:relative; background:var(--sand); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.map-intro { padding:44px 25px 130px; text-align:center; display:flex; align-items:center; flex-direction:column; background:radial-gradient(circle at 50% 30%,var(--paper-warm) 0 22%,transparent 22.3% 33%,#e2dccd66 33.3% 33.8%,transparent 34.1% 46%,#e2dccd44 46.3% 46.7%,transparent 47%); }
.map-pin { width:64px; height:64px; display:grid; place-items:center; background:var(--primary); color:var(--accent-soft); border:6px solid var(--paper-warm); border-radius:50%; margin:0 0 20px; box-shadow:var(--shadow-md); }
.map-pin svg { width:24px; height:24px; }
.map-intro .eyebrow { margin-bottom:8px; font-size:10.5px; }
.map-intro .eyebrow::before { display:none; }
.map-intro h3 { font:400 32px/1.2 var(--serif); letter-spacing:-.02em; }
.map-intro p { font-size:15px; margin:4px 0 20px; }
.map-intro .button { min-height:48px; font-size:14px; }
.map-intro small { display:block; color:var(--muted); font-size:12px; margin-top:14px; }
.map-wrap iframe { position:absolute; inset:0; border:0; width:100%; height:100%; }
.map-label { position:absolute; z-index:2; left:18px; right:18px; bottom:18px; background:#fffffff5; padding:14px 18px 14px 14px; display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-md); font-size:14.5px; font-weight:600; color:var(--ink); transition:box-shadow .2s; }
.map-label:hover { box-shadow:var(--shadow-lg); }
.map-label small { display:block; color:var(--muted); font-size:12.5px; font-weight:400; }
.map-label>svg { margin-left:auto; width:18px; color:var(--primary); }
.map-status:not(:empty) { position:absolute; z-index:2; top:15px; left:15px; right:15px; padding:10px 14px; background:#fff; border-radius:var(--r-sm); font-size:13px; box-shadow:var(--shadow-sm); }

/* FAQ */
.faq-section { padding-bottom:112px; display:grid; grid-template-columns:1fr 1.25fr; gap:80px; }
.faq-section>div>p { font-size:16.5px; line-height:1.8; margin-top:22px; }
.faq-section>div>p>a { display:inline-flex; align-items:center; min-height:44px; color:var(--primary); font-weight:600; margin-top:6px; text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:6px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; font-size:17px; font-weight:600; color:var(--ink); transition:color .2s; }
summary:hover { color:var(--primary-hover); }
summary::-webkit-details-marker { display:none; }
summary svg { width:30px; height:30px; padding:7px; border:1px solid var(--line-strong); border-radius:50%; transition:transform .3s var(--ease),background .2s,color .2s; }
details[open] summary svg { transform:rotate(45deg); background:var(--primary); color:#fff; border-color:var(--primary); }
.faq-list details p { font-size:16px; line-height:1.8; padding:0 48px 26px 0; }

/* Footer */
footer { background:var(--primary-deep); color:var(--on-dark); padding:72px 0 28px; }
footer .brand-type { color:#fff; }
footer .brand-type>span { color:var(--on-dark-muted); }
footer .brand-symbol { background:#ffffff12; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-bottom:44px; }
.footer-main>p { font:300 30px/1.3 var(--serif); color:#fff; letter-spacing:-.02em; }
.footer-main>p>span { color:var(--accent-soft); font-style:italic; }
.footer-main .text-link { font-size:15px; color:#fff; }
.footer-main .text-link:hover { color:var(--accent-soft); }
.footer-nap { display:grid; grid-template-columns:1.4fr 1fr auto; gap:24px 40px; align-items:start; border-top:1px solid var(--on-dark-line); padding-block:28px; font-size:14px; color:var(--on-dark-muted); }
.footer-nap strong { display:block; color:#fff; font-weight:600; margin-bottom:4px; }
.footer-nap>div:nth-child(2) { display:flex; flex-direction:column; gap:4px; }
.footer-nap a { color:#fff; min-height:32px; display:inline-flex; align-items:center; }
.footer-nap a:hover { color:var(--accent-soft); }
.footer-langs { display:flex; gap:16px; }
.footer-langs a[aria-current] { color:var(--accent-soft); }
.footer-bottom { border-top:1px solid var(--on-dark-line); padding-top:18px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; color:var(--on-dark-muted); }
.privacy-trigger { min-height:44px; border:0; background:none; font-size:13px; color:inherit; padding:6px 0; text-decoration:underline; text-underline-offset:4px; }
.privacy-trigger:hover { color:#fff; }
.medical-note { font-size:12.5px; color:var(--on-dark-subtle); margin-top:10px; }

/* Floating contact */
.floating-contact { position:fixed; right:16px; bottom:24px; z-index:40; display:flex; flex-direction:column; align-items:center; gap:10px; }
.floating-contact>a { display:flex; justify-content:center; align-items:center; gap:4px; width:48px; min-height:48px; background:var(--surface); color:var(--primary); border:1px solid var(--line); border-radius:50%; box-shadow:var(--shadow-md); position:relative; transition:background .2s,transform .2s var(--ease); }
.floating-contact>a:hover { background:var(--primary-tint); transform:translateY(-2px); }
.floating-contact svg { width:20px; height:20px; }
.floating-contact :is(.float-phone,.float-whatsapp) { flex-direction:column; width:60px; min-height:64px; border-radius:var(--r-md); }
.float-label { font-size:10.5px; font-weight:600; line-height:1.2; }
.floating-contact .float-whatsapp { background:var(--primary); color:#fff; border-color:var(--primary); }
.floating-contact .float-whatsapp:hover { background:var(--primary-hover); }
.float-tooltip { position:absolute; right:60px; white-space:nowrap; background:var(--primary-deep); color:#fff; font-size:12px; padding:6px 12px; border-radius:var(--r-pill); opacity:0; pointer-events:none; transition:opacity .2s; }
.floating-contact a:is(:hover,:focus-visible) .float-tooltip { opacity:1; }
.skip-link { position:fixed; top:-80px; left:20px; z-index:100; background:var(--primary); color:#fff; padding:14px 18px; border-radius:var(--r-sm); }
.skip-link:focus { top:10px; }

/* Dialogs */
dialog { border:0; box-shadow:0 40px 120px #0006; border-radius:var(--r-lg); color:var(--text); padding:0; max-height:90dvh; }
dialog::backdrop { background:#08201bd9; backdrop-filter:blur(6px); }
.gallery-dialog { width:min(960px,calc(100% - 40px)); background:var(--bg); overflow:hidden; }
.gallery-dialog[open] { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; }
.dialog-media { min-width:0; background:#fff; }
.dialog-media>img { width:100%; height:520px; max-height:68dvh; object-fit:contain; }
.gallery-controls { display:flex; align-items:center; justify-content:center; gap:24px; padding:12px; border-top:1px solid var(--line); }
.gallery-controls button { width:44px; height:44px; display:grid; place-items:center; background:var(--bg); border:1px solid var(--line-strong); border-radius:50%; color:var(--primary); transition:background .2s,color .2s; }
.gallery-controls button:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
#previous-photo svg { transform:rotate(180deg); }
#gallery-position { font-size:13.5px; min-width:44px; text-align:center; font-variant-numeric:tabular-nums; color:var(--muted); }
.dialog-copy { padding:48px 36px 36px; }
.dialog-copy .eyebrow { font-size:10.5px; }
.dialog-copy h3 { font:400 32px/1.2 var(--serif); letter-spacing:-.02em; }
.dialog-copy p { margin:18px 0; font-size:16px; }
.dialog-close { position:absolute; right:12px; top:12px; width:44px; height:44px; background:#fff; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; z-index:2; box-shadow:var(--shadow-sm); transition:transform .2s; }
.dialog-close:hover { transform:rotate(90deg); }
.dialog-close svg { width:18px; height:18px; }
.privacy-dialog { padding:48px 40px 32px; width:min(660px,calc(100% - 32px)); background:var(--bg); }
.privacy-dialog h2 { font-size:34px; margin-bottom:18px; }
.privacy-dialog p { font-size:16px; margin:14px 0; }

/* Motion — content stays readable if animation or JavaScript is unavailable. */
.reveal.visible { animation:enter .7s var(--ease) both; }
@keyframes enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

@media(max-width:1150px) {
  .container { width:calc(100% - 96px); }
  .hero { gap:48px; } .hero-photo { height:560px; }
  .desktop-nav { gap:22px; font-size:14px; } .nav-wrap { gap:18px; }
  .treatment-grid { grid-template-columns:repeat(2,1fr); } .treatment { min-height:320px; } .treatment p { font-size:16px; }
  .about-grid,.booking-grid { gap:56px; }
  .about-details { grid-template-columns:1fr; }
  .gallery-grid { gap:22px; grid-template-columns:repeat(2,1fr); } .gallery-more-card { grid-column:1/-1; aspect-ratio:auto; min-height:280px; }
  .section-heading>p { max-width:260px; }
  .booking-form { padding:30px; } .form-heading>span { display:none; }
  .contact-grid,.faq-section { gap:48px; }
  .intl-grid { gap:56px; }
}
@media(max-width:900px) {
  .desktop-nav { display:none; } .nav-cta { margin-left:auto; }
  .menu-toggle { display:flex; flex-direction:column; gap:6px; width:46px; height:46px; flex-shrink:0; align-items:center; justify-content:center; border:1px solid var(--line-strong); border-radius:50%; background:var(--surface); }
  .menu-toggle span { width:18px; height:1.5px; background:var(--ink); transition:transform .25s var(--ease); }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.75px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.75px) rotate(-45deg); }
  .mobile-menu:not([hidden]) { display:flex; flex-direction:column; padding:8px 48px 22px; border-top:1px solid var(--line); background:var(--bg); box-shadow:0 24px 30px #10261f0f; max-height:calc(100dvh - 84px); overflow:auto; }
  .mobile-menu a { padding:14px 4px; font:400 24px var(--serif); color:var(--ink); min-height:52px; border-bottom:1px solid var(--line); }
  .mobile-menu a:last-child { border-bottom:0; }
  .hero { grid-template-columns:1fr 1fr; gap:32px; } .hero h1 { font-size:58px; }
  .hero-photo { height:520px; }
  .hero-visual::before { inset:20px -12px -14px 20px; }
  .photo-note { left:-14px; padding:12px; font-size:12.5px; bottom:130px; }
  .photo-note small { font-size:11px; } .photo-note .note-icon { width:34px; height:34px; }
  .photo-caption { left:24px; bottom:24px; } .photo-caption .caption-name { font-size:28px; }
  .round-seal { width:90px; height:90px; left:-18px; border-width:5px; } .round-seal span { font-size:7px; }
  .care-strip .container { display:grid; grid-template-columns:1fr 1fr; gap:20px 30px; padding-block:26px; }
  .care-strip i { display:none; }
  .section { padding-block:88px; } .section-heading { align-items:start; }
  .section-heading>p { font-size:15.5px; max-width:220px; }
  .about-section,.booking-section { padding-block:88px; }
  .about-grid { gap:36px; } .about-image img { height:520px; }
  .gallery-meta { display:flex; }
  .gallery-foot { align-items:start; flex-direction:column; gap:12px; }
  .journey-section { padding:88px 0; }
  .journey-grid { gap:32px; } .journey-grid h3 { font-size:20px; }
  .booking-grid { gap:36px; }
  .booking-phone { font-size:25px; } .form-row { grid-template-columns:1fr; gap:0; }
  .form-row label { min-height:0; display:block; }
  .contact-grid { grid-template-columns:1fr; }
  .intl-grid { grid-template-columns:1fr; gap:40px; } .intl-section { padding-block:88px; }
  .footer-nap { grid-template-columns:1fr 1fr; } .footer-langs { grid-column:1/-1; }
  .faq-section { gap:36px; }
  .footer-main { flex-wrap:wrap; } .footer-main .text-link { width:100%; }
}
@media(max-width:700px) {
  html { scroll-padding-top:84px; }
  .container { width:calc(100% - 40px); }
  .topline .container { min-height:44px; } .topline { font-size:12px; } .topline a { min-height:44px; } .lang-switch a { min-height:44px; padding:0 11px; }
  .topline .container>span:first-child { display:none; }
  .nav-wrap { height:72px; gap:10px; }
  .brand { gap:10px; } .brand-symbol { width:38px; height:38px; border-radius:11px; } .brand-symbol svg { width:22px; height:22px; }
  .brand-type { font-size:23px; } .brand-type>span { font-size:7.5px; letter-spacing:.16em; margin-top:5px; }
  .nav-cta { font-size:13px; padding:10px 16px; min-height:44px; gap:8px; } .nav-cta svg { width:15px; }
  .mobile-menu:not([hidden]) { padding-inline:20px; max-height:calc(100dvh - 72px); }
  .hero { padding-block:28px 56px; grid-template-columns:1fr; gap:40px; }
  .hero h1 { font-size:clamp(50px,13.5vw,72px); line-height:1.02; }
  .h1-kicker { font-size:10.5px; letter-spacing:.12em; margin-bottom:20px; }
  .hero h1 .serif-word svg { bottom:-11px; height:16px; }
  .hero-description { font-size:16.5px; margin-top:28px; line-height:1.7; }
  .hero-actions { margin:26px 0 18px; gap:20px; flex-wrap:nowrap; }
  .hero-actions .button { font-size:14.5px; padding:13px 20px; min-height:52px; }
  .hero-actions .text-link { font-size:14px; }
  .hero-reassurance { font-size:12.5px; gap:6px 16px; }
  .hero-bottom { display:none; }
  .hero-visual { margin-left:12px; margin-right:6px; }
  .hero-visual::before { inset:16px -8px -10px 16px; }
  .hero-photo { height:440px; max-height:118vw; }
  .hero-photo img { object-position:66% 45%; }
  .round-seal { left:-14px; top:18px; width:84px; height:84px; }
  .photo-caption { left:22px; bottom:22px; } .photo-caption .caption-name { font-size:28px; } .photo-caption>span { font-size:10px; }
  .photo-caption p { font-size:13.5px; }
  .photo-note { display:none; }
  .care-strip .container { gap:18px 12px; padding-block:24px; }
  .care-strip span { font-size:13.5px; gap:10px; } .care-strip svg { width:22px; height:22px; }
  .section { padding-block:72px; }
  .eyebrow { font-size:11px; letter-spacing:.13em; margin-bottom:16px; }
  h2 { font-size:36px; line-height:1.12; }
  .section-heading { display:block; margin-bottom:32px; }
  .section-heading>p { margin-top:18px; max-width:none; font-size:16px; }
  .section-heading>.text-link { margin-top:12px; }
  .treatment-grid { grid-template-columns:1fr; gap:14px; }
  .treatment { padding:24px; min-height:0; }
  .treatment-top { margin-bottom:22px; } .treatment-icon { width:48px; height:48px; }
  .treatment h3 { font-size:22px; }
  .treatment p { font-size:16px; }
  .section-note { font-size:13px; line-height:1.7; }
  .about-section { padding-block:72px; }
  .about-grid { grid-template-columns:1fr; gap:36px; }
  .about-image { order:2; border-bottom-right-radius:100px; }
  .about-image img { height:400px; }
  .about-copy>p { font-size:16.5px; }
  .about-details { gap:12px; } .about-details>div { padding:18px; }
  .about-signature>span { font-size:26px; }
  .gallery-grid { grid-template-columns:1fr; gap:40px; }
  .gallery-card h3 { font-size:25px; }
  .gallery-card p { font-size:16px; }
  .gallery-meta { margin-top:18px; }
  .gallery-more-card { padding:32px 28px; min-height:0; } .gallery-more-card strong { font-size:27px; }
  .gallery-foot { margin-top:32px; padding-top:22px; } .gallery-foot>p { font-size:13px; }
  .journey-section { padding:72px 0; }
  .journey-section .section-heading>.button { margin-top:26px; }
  .journey-grid { grid-template-columns:1fr; gap:28px; margin-top:40px; }
  .journey-grid>div { padding:24px 0 0 64px; }
  .step { position:absolute; left:0; top:24px; font-size:34px; }
  .journey-grid h3 { font-size:21px; margin:0 0 8px; }
  .journey-grid p { font-size:16px; }
  .booking-section { padding-block:72px; } .booking-grid { grid-template-columns:1fr; gap:40px; }
  .booking-copy h2 { font-size:44px; }
  .booking-copy>p { font-size:16.5px; margin-top:20px; }
  .booking-phone { font-size:25px; margin-top:28px; } .booking-phone>svg { width:50px; height:50px; padding:14px; }
  .booking-language { margin-top:18px; font-size:14px; }
  .booking-form { padding:28px 22px; border-radius:var(--r-lg); }
  .form-heading h3 { font-size:27px; }
  .booking-form>p { font-size:15px; }
  .booking-form button[type=submit] { font-size:15px; gap:10px; }
  .contact-grid { gap:40px; }
  .intl-section { padding-block:72px; } .intl-list li { padding:18px; gap:14px; } .intl-icon { width:42px; height:42px; }
  .footer-nap { grid-template-columns:1fr; gap:18px; }
  .address-row { gap:12px; } .address-title { font-size:18px; }
  .address-row small { font-size:13px; }
  .map-wrap { min-height:440px; } .map-intro { padding:36px 20px 120px; }
  .map-label { left:12px; right:12px; bottom:12px; padding:12px; gap:10px; font-size:14px; }
  .map-label small { font-size:12px; } .map-label .note-icon { width:38px; height:38px; }
  .faq-section { grid-template-columns:1fr; gap:28px; padding-bottom:72px; }
  summary { font-size:16.5px; padding:20px 0; } .faq-list details p { font-size:16px; padding-right:8px; }
  footer { padding:56px 0 116px; }
  .footer-main { display:grid; grid-template-columns:1fr; gap:24px; padding-bottom:32px; }
  .footer-main>p { font-size:28px; }
  .footer-bottom { flex-wrap:wrap; gap:6px 18px; font-size:12px; }
  .medical-note { font-size:12px; line-height:1.7; }
  .floating-contact { flex-direction:row; justify-content:center; right:50%; transform:translateX(50%); bottom:max(10px,env(safe-area-inset-bottom)); background:#ffffffef; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); padding:6px; border:1px solid var(--line); border-radius:var(--r-pill); box-shadow:var(--shadow-lg); gap:4px; width:max-content; max-width:calc(100% - 16px); }
  .floating-contact>a { width:44px; min-height:44px; border:0; box-shadow:none; background:transparent; border-radius:var(--r-pill); }
  .floating-contact>a:hover { transform:none; }
  .floating-contact :is(.float-phone,.float-whatsapp) { flex-direction:row; gap:7px; width:auto; min-height:46px; padding:0 14px; border-radius:var(--r-pill); }
  .floating-contact .float-phone { background:var(--primary-tint); }
  .floating-contact .float-whatsapp { min-width:118px; }
  .float-label { font-size:13px; } .float-tooltip { display:none; }
  .gallery-dialog { width:calc(100% - 24px); max-height:92dvh; }
  .gallery-dialog[open] { grid-template-columns:1fr; overflow:auto; }
  .dialog-media>img { height:340px; max-height:42dvh; }
  .gallery-controls { padding:10px; }
  .dialog-copy { padding:24px 22px; } .dialog-copy h3 { font-size:27px; }
  .dialog-copy p { margin:14px 0; }
  .privacy-dialog { padding:48px 24px 26px; } .privacy-dialog h2 { font-size:30px; }
}
@media(max-width:370px) {
  .container { width:calc(100% - 32px); } .nav-wrap { gap:8px; }
  .brand-type { font-size:21px; }
  .nav-cta { display:none; } .menu-toggle { margin-left:auto; }
  .hero-actions { gap:14px; } .hero-actions .button { padding:12px 16px; font-size:13.5px; }
  .hero-actions .text-link { font-size:13px; }
  .booking-copy h2 { font-size:38px; }
  .booking-form { padding:24px 18px; }
  .floating-contact { gap:2px; padding:5px; } .floating-contact .float-whatsapp { min-width:108px; padding-inline:10px; }
}
/* Section footer under the treatment cards */
.section-foot { display:flex; align-items:center; justify-content:space-between; gap:16px 32px; flex-wrap:wrap; margin-top:28px; }
.section-foot .section-note { margin:0; max-width:680px; }

/* Footer: treatment links */
.footer-treatments { display:flex; flex-wrap:wrap; align-items:center; gap:4px 22px; border-top:1px solid var(--on-dark-line); padding-block:20px; font-size:14px; }
.footer-treatments strong { color:#fff; font-weight:600; margin-inline-end:6px; }
.footer-treatments a { color:var(--on-dark-muted); min-height:36px; display:inline-flex; align-items:center; }
.footer-treatments a:hover { color:var(--accent-soft); }

/* ---------- Treatment pages ---------- */
.breadcrumb { padding-top:26px; }
.breadcrumb ol { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; font-size:13.5px; color:var(--muted); }
.breadcrumb li + li::before { content:'/'; margin-inline-end:6px; color:var(--line-strong); }
.breadcrumb a { color:var(--primary); font-weight:500; }
.breadcrumb a:hover { color:var(--accent-ink); }
.tp-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; padding-block:28px 72px; }
.tp-hero--index { grid-template-columns:minmax(0,1fr); padding-bottom:8px; }
.tp-hero--index .tp-hero-copy { max-width:820px; }
.tp-hero h1 { font-size:clamp(40px,4.6vw,64px); line-height:1.08; letter-spacing:-.025em; }
.tp-lead { font-size:17.5px; line-height:1.8; color:var(--text); margin-top:20px; max-width:620px; }
.tp-hero .hero-actions { margin-top:30px; }
.tp-hero-side { display:grid; gap:16px; min-width:0; }
.tp-media { margin:0; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-lg); }
.tp-media img { width:100%; height:100%; object-fit:contain; }
.tp-media--fill img { object-fit:cover; }
.tp-media--icon { display:grid; place-content:center; justify-items:center; gap:18px; background:radial-gradient(circle at 30% 20%,var(--primary-hover),var(--primary) 55%,var(--primary-deep)); color:var(--accent-soft); border:0; position:relative; }
.tp-media--icon::after { content:''; position:absolute; inset:18px; border:1px solid #ffffff1f; border-radius:calc(var(--r-lg) - 8px); pointer-events:none; }
.tp-media--icon svg { width:92px; height:92px; stroke-width:1; }
.tp-media--icon span { font:300 italic 28px var(--serif); color:#fff; }
.tp-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0; }
.tp-facts div { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:14px 16px; }
.tp-facts dt { font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); }
.tp-facts dd { margin:4px 0 0; font-size:14px; line-height:1.5; font-weight:500; color:var(--ink); }
.tp-article { min-width:0; }
.tp-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:64px; align-items:start; padding-bottom:48px; }
.tp-block { padding-block:36px; border-top:1px solid var(--line); }
.tp-block:first-child { border-top:0; padding-top:8px; }
.tp-block h2 { font-size:clamp(28px,2.6vw,36px); margin-bottom:16px; }
.tp-block p { font-size:16.5px; line-height:1.8; color:var(--text); margin-bottom:12px; }
.tp-list { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:10px; }
.tp-list li { position:relative; padding-inline-start:30px; font-size:16px; line-height:1.7; color:var(--text); }
.tp-list li::before { content:''; position:absolute; inset-inline-start:4px; top:.55em; width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px var(--accent-tint); }
.tp-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); }
.tp-table-wrap table { width:100%; min-width:520px; border-collapse:collapse; font-size:15px; }
.tp-table-wrap :is(th,td) { padding:14px 16px; text-align:start; border-bottom:1px solid var(--line); vertical-align:top; }
.tp-table-wrap thead th { background:var(--primary); color:#fff; font-weight:600; font-size:13.5px; }
.tp-table-wrap tbody th { font-weight:600; color:var(--ink); background:var(--bg); }
.tp-table-wrap td { color:var(--text); }
.tp-table-wrap tr:last-child :is(th,td) { border-bottom:0; }
.tp-list + p { margin-top:18px; }
.tp-note { font-size:13.5px!important; color:var(--muted)!important; margin-top:10px; }
.tp-steps { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:12px; }
.tp-step { display:flex; gap:18px; padding:20px 22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); }
.tp-step-num { font:italic 300 30px/1 var(--serif); color:var(--accent-ink); min-width:42px; }
.tp-step h3 { font-size:17px; margin-bottom:4px; }
.tp-step p { font-size:15px; margin:0; line-height:1.7; }
.tp-alert { display:flex; gap:18px; margin-block:12px; padding:24px; background:var(--accent-tint); border:1px solid var(--accent-soft); border-radius:var(--r-md); }
.tp-alert + .tp-block { border-top:0; }
.tp-alert h2 { font-size:24px; }
.tp-alert p { margin:0; }
.tp-alert-icon { width:44px; height:44px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background:var(--accent-soft); color:var(--primary-deep); }
.tp-abroad { display:flex; gap:18px; }
.tp-abroad .text-link { margin-top:4px; }
.tp-aside { position:sticky; top:104px; display:grid; gap:16px; }
.tp-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; box-shadow:var(--shadow-sm); }
.tp-card-title { font:400 22px/1.25 var(--serif); color:var(--ink); margin-bottom:12px; }
.tp-toc ol { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.tp-toc a { display:block; padding:8px 12px; border-radius:var(--r-sm); font-size:14.5px; color:var(--text); transition:background .2s,color .2s; }
.tp-toc a:hover { background:var(--primary-tint); color:var(--primary); }
.tp-contact p { font-size:14.5px; }
.tp-contact .button { width:100%; margin-top:16px; }
.tp-contact .booking-phone { font-size:22px; margin-top:16px; min-height:44px; }
.tp-contact .booking-phone>svg { width:44px; height:44px; padding:12px; }
.tp-langs { display:flex; align-items:center; gap:8px; margin-top:12px; font-size:13px!important; color:var(--muted); }
.tp-langs svg { width:16px; height:16px; color:var(--accent-ink); }
.tp-faq { border-top:1px solid var(--line); padding-top:72px; padding-bottom:72px; }
.tp-related { padding-bottom:88px; }
.tp-related h2 { margin-bottom:28px; }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.related-card { display:flex; flex-direction:column; gap:10px; padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); transition:transform .3s var(--ease),box-shadow .3s var(--ease); }
.related-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.related-card h3 { font-size:19px; margin-top:6px; }
.related-card p { font-size:15px; line-height:1.65; }
.related-card .text-link { margin-top:auto; }
.tp-band { background:var(--primary); color:#fff; padding:72px 0; position:relative; overflow:hidden; }
.tp-band::after { content:''; position:absolute; width:520px; height:520px; inset-inline-end:-180px; top:-220px; border-radius:50%; border:1px solid #ffffff12; box-shadow:0 0 0 70px #ffffff05; pointer-events:none; }
.tp-band .container { display:flex; align-items:center; justify-content:space-between; gap:24px 40px; flex-wrap:wrap; position:relative; z-index:1; }
.tp-band h2 { color:#fff; font-size:clamp(30px,3vw,42px); }
.tp-band p { color:var(--on-dark-muted); margin-top:10px; max-width:540px; }
.tp-band .hero-actions { margin:0; }
.tp-band .text-link { color:#fff; }
.tp-band .text-link:hover { color:var(--accent-soft); }
.tp-disclaimer { font-size:13px; color:var(--muted); padding-block:28px; }
.tp-index { padding-top:40px; }
.treatment-title { font:600 21px/1.3 var(--sans); letter-spacing:-.015em; margin:10px 0 12px; color:var(--ink); }
.featured .treatment-title { color:#fff; }
.tp-general { display:flex; align-items:center; gap:20px; margin-top:28px; padding:24px 28px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); }
.tp-general h2 { font:600 18px var(--sans); letter-spacing:-.01em; margin-bottom:4px; }
.tp-general p { font-size:15px; }
.tp-general .button { flex-shrink:0; margin-inline-start:auto; }
html:lang(ar) .tp-media--icon span,html:lang(ar) .tp-step-num { font-style:normal; }
@media(max-width:1150px) {
  .tp-hero { gap:40px; } .tp-layout { grid-template-columns:minmax(0,1fr) 280px; gap:40px; }
}
@media(max-width:900px) {
  .tp-hero { grid-template-columns:minmax(0,1fr); gap:32px; } .tp-layout { grid-template-columns:minmax(0,1fr); gap:8px; }
  .tp-aside { position:static; } .tp-toc { display:none; }
  .related-grid { grid-template-columns:1fr 1fr; } .related-grid>:last-child { grid-column:1/-1; }
}
@media(max-width:700px) {
  .tp-hero { padding-block:16px 48px; } .tp-hero h1 { font-size:clamp(34px,9vw,44px); } .tp-lead { font-size:16.5px; }
  .tp-hero .hero-actions { flex-wrap:wrap; gap:12px; } .tp-hero .hero-actions .button { flex:1 1 220px; }
  .tp-facts { grid-template-columns:1fr; } .tp-block { padding-block:28px; } .tp-step { padding:16px; gap:14px; }
  .tp-alert { padding:20px; flex-direction:column; } .tp-abroad { flex-direction:column; }
  .related-grid { grid-template-columns:1fr; } .related-grid>:last-child { grid-column:auto; }
  .tp-faq { padding-block:56px; } .tp-related { padding-bottom:64px; } .tp-band { padding:56px 0; }
  .tp-general { flex-direction:column; align-items:flex-start; padding:22px; } .tp-general .button { margin-inline-start:0; }
  .section-foot { flex-direction:column; align-items:flex-start; }
}

/* 404 page */
.not-found { min-height:100dvh; display:grid; place-items:center; text-align:center; padding:40px 20px; }
.not-found .brand { justify-content:center; }
.not-found h1 { font-size:clamp(44px,8vw,80px); margin:18px 0 12px; }
.not-found p { max-width:460px; margin:0 auto; }
.not-found nav { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:32px; }

/* Arabic / RTL */
:lang(ar) { --serif:'IBM Plex Sans Arabic',system-ui,sans-serif; --sans:'IBM Plex Sans Arabic','Plus Jakarta Sans',system-ui,sans-serif; }
html:lang(ar) body { line-height:1.85; }
html:lang(ar) * { letter-spacing:0!important; }
html:lang(ar) :is(h1,h2,.serif-word,.muted-heading,.step,.treatment-number,.about-signature>span,.footer-main>p>span) { font-style:normal; }
html:lang(ar) h1,html:lang(ar) h2 { font-weight:600; line-height:1.3; }
html:lang(ar) .hero h1 { font-weight:600; line-height:1.25; font-size:clamp(48px,5.4vw,80px); }
html:lang(ar) .serif-word,html:lang(ar) .muted-heading { font-weight:500; }
html:lang(ar) .eyebrow,html:lang(ar) .h1-kicker { font-size:13px; }
[dir=rtl] .eyebrow::before { order:0; }
[dir=rtl] .round-seal { left:auto; right:-30px; transform:rotate(10deg); }
[dir=rtl] .photo-note { left:auto; right:-34px; }
[dir=rtl] .hero-visual::before { inset:28px 28px -22px -22px; }
[dir=rtl] .photo-caption { left:auto; right:32px; }
[dir=rtl] .hero-bottom>a,[dir=rtl] .map-label>svg { margin-left:0; margin-right:auto; }
[dir=rtl] .image-label { left:auto; right:20px; }
[dir=rtl] .about-image { border-radius:var(--r-lg) var(--r-lg) var(--r-lg) 140px; }
[dir=rtl] .gallery-badge { left:auto; right:14px; }
[dir=rtl] .expand { right:auto; left:14px; }
[dir=rtl] .skip-link { left:auto; right:20px; }
[dir=rtl] :is(.button,.text-link,.card-bottom,.topline a,.hero-bottom>a,.map-label,.gallery-controls) svg { transform:scaleX(-1); }
[dir=rtl] .button:hover svg:last-child,[dir=rtl] .text-link:hover svg:last-child { transform:scaleX(-1) translate(2px,-2px); }
[dir=rtl] #previous-photo svg { transform:none; }
[dir=rtl] #next-photo svg { transform:scaleX(-1); }
[dir=rtl] .faq-list details p { padding:0 0 26px 48px; }
[dir=rtl] .floating-contact { right:auto; left:16px; }
[dir=rtl] .float-tooltip { right:auto; left:60px; }
[dir=rtl] .dialog-close { right:auto; left:12px; }
[dir=rtl] .h1-kicker,[dir=rtl] .topline a,[dir=rtl] .booking-phone { direction:rtl; }
@media(max-width:900px) {
  [dir=rtl] .round-seal { right:-18px; } [dir=rtl] .photo-note { right:-14px; }
  [dir=rtl] .photo-caption { right:24px; }
}
@media(max-width:700px) {
  [dir=rtl] .hero-visual { margin-left:6px; margin-right:12px; }
  [dir=rtl] .hero-visual::before { inset:16px 16px -10px -8px; }
  [dir=rtl] .round-seal { right:-14px; }
  [dir=rtl] .photo-caption { right:22px; }
  [dir=rtl] .about-image { border-bottom-left-radius:100px; }
  [dir=rtl] .journey-grid>div { padding:24px 64px 0 0; } [dir=rtl] .step { left:auto; right:0; }
  [dir=rtl] .floating-contact { left:50%; right:auto; transform:translateX(-50%); }
  [dir=rtl] .faq-list details p { padding-left:8px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
