:root { --paper:#faf7ef; --ink:#1b1b12; --gold:#916a24; --soft-gold:#f3e7cd; --muted:#625b50; --ease-out:cubic-bezier(.23,1,.32,1); }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); }
.opening { position:relative; width:100%; aspect-ratio:1.5; overflow:hidden; }
.hero-photo { object-fit:cover; }
.brand { display:block; mix-blend-mode:multiply; }
.brand img { width:auto; height:100%; max-width:100%; object-fit:contain; }
.department-photo { object-fit:cover; border-start-start-radius:75%; border-end-end-radius:20%; }
@font-face { font-family:'DM Sans'; src:url('fonts/dm-sans.woff2') format('woff2'),url('fonts/dm-sans.ttf') format('truetype'); font-weight:100 1000; font-display:swap; }
@font-face { font-family:'Noto Sans Arabic'; src:url('fonts/noto-sans-arabic.woff2') format('woff2'),url('fonts/noto-sans-arabic.ttf') format('truetype'); font-weight:100 900; font-display:swap; }
html { scroll-padding-top:24px; scrollbar-color:var(--gold) var(--paper); }
body { font-family:'DM Sans','Noto Sans Arabic',sans-serif; font-size:16px; line-height:1.6; }
::selection { background:#e5cf99; color:var(--ink); }
a { color:inherit; text-decoration:none; text-underline-offset:5px; }
p,h1,h2,h3 { margin:0; }
h1,h2,h3 { font-family:'DM Sans','Noto Sans Arabic',sans-serif; font-weight:400; line-height:1.08; letter-spacing:-.03em; text-wrap:balance; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
input,textarea { caret-color:var(--gold); }
button { cursor:pointer; }
:focus-visible { outline:3px solid #73541b; outline-offset:5px; }
img { display:block; max-width:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; inset-block-start:12px; inset-inline-start:12px; padding:12px 20px; background:var(--ink); color:var(--paper); z-index:100; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.icon { width:24px; height:24px; flex:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; border:0; border-radius:999px; padding:14px 22px; font-size:15px; line-height:1.25; transition:transform 140ms var(--ease-out),background-color 180ms ease; }
.button:active,.circle-button:active { transform:scale(.97); }
.button-gold { background:var(--gold); color:#fff; }
.button-outline { border:1px solid var(--gold); background:transparent; }
.arrow { width:21px; height:21px; transition:transform 180ms var(--ease-out); }
.circle-button { display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--soft-gold); transition:transform 140ms var(--ease-out),background-color 180ms ease; }
.site-header::before { content:''; position:absolute; inset:0 auto auto 0; width:60%; height:5.25vw; background:linear-gradient(90deg,#fffbf2ed 80%,#fffbf200); } /* taste-skill-ignore: neutral contrast scrim over the approved photograph. */
.welcome::before { content:''; position:absolute; inset:5.25vw auto auto 0; width:45%; height:28vw; background:linear-gradient(90deg,#fff9efb8 65%,#fff9ef00); } /* taste-skill-ignore: neutral contrast scrim over the approved photograph. */
.site-header nav a,.r-language { display:flex; align-items:center; gap:12px; font-size:clamp(12px,.98vw,16px); white-space:nowrap; }
.site-header nav .icon { width:14px; height:14px; }
.r-nav-book,.r-booking-submit { font-size:clamp(13px,1.02vw,17px); padding:10px 12px; }
.r-nav-book { gap:8px; padding-inline:8px; }
.r-nav-book span { white-space:nowrap; }
.r-nav-book .icon { width:22px; height:22px; }
.r-nav-book .arrow { width:18px; height:18px; }
button:focus-visible,a:focus-visible { transition:none; }
button:focus-visible:active,a:focus-visible:active { transform:none; }
@media (min-width:1051px) and (max-width:1279px) { .r-nav-book .arrow { display:none; } }
.menu-toggle { display:none; }
.r-headline { font-size:clamp(50px,5.92vw,96px); line-height:.92; }
.r-hero-description { font-size:clamp(16px,1.36vw,22px); line-height:1.36; color:var(--muted); }
.r-arabic-headline { font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(22px,2.4vw,38px); line-height:1.2; text-align:start; }
.r-arabic-description { font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(10px,1.04vw,17px); line-height:1.5; color:var(--muted); text-align:start; }
.r-booking-strip { background:#fffbf2; border-radius:16px; box-shadow:0 12px 30px #49371912; } /* taste-skill-ignore: floating booking strip retained from the approved opening. */
.r-booking-heading { font-size:clamp(20px,1.82vw,30px); letter-spacing:-.025em; }
.r-booking-subtitle { font-size:clamp(12px,1.04vw,17px); line-height:1.2; color:var(--muted); }
.field-inline { display:flex; align-items:center; gap:16px; border:1px solid #d7cec0; border-radius:12px; background:#fffcf6; padding:8px 16px; }
.field-inline>span { display:flex; flex:1; flex-direction:column; min-width:0; }
.field-label { font-size:11px; line-height:1.2; }
.field-inline select,.field-inline input { border:0; width:100%; min-width:0; background:transparent; font-size:14px; line-height:1.4; color:var(--muted); padding:2px 0; }
.field-inline .icon { width:26px; height:26px; }
.r-departments-kicker { font-size:clamp(9px,.72vw,12px); letter-spacing:.34em; color:#8e6825; line-height:1; }
.r-departments-headline { font-size:clamp(30px,2.72vw,45px); line-height:1.06; }
.r-departments-description { font-size:clamp(14px,1.16vw,19px); line-height:1.25; color:var(--muted); }
.r-departments-arabic-headline { font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(18px,1.68vw,28px); line-height:1.3; }
.r-departments-arabic-description { font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(11px,.91vw,15px); line-height:1.5; color:var(--muted); }
.r-departments-link { font-size:clamp(12px,1vw,16px); padding:8px 18px; justify-content:space-between; }
.department-entry h3 { font-size:clamp(18px,1.64vw,27px); line-height:1.1; background:var(--paper); }
.department-entry h3 span { display:block; font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(12px,1.06vw,18px); letter-spacing:0; margin-top:3px; }
.department-entry p { font-family:'DM Sans','Noto Sans Arabic',sans-serif; font-size:clamp(12px,.94vw,16px); line-height:1.35; color:var(--muted); }
.department-entry p span { display:block; font-family:'Noto Sans Arabic',sans-serif; font-size:clamp(10px,.81vw,14px); line-height:1.4; margin-top:9px; }
[lang=ar] h1,[lang=ar] h2,[lang=ar] h3 { font-family:'Noto Sans Arabic',sans-serif; letter-spacing:0; }
html[lang=ar] .r-headline { font-size:clamp(44px,4.4vw,74px); line-height:1.2; }
html[lang=ar] .r-arabic-headline { font-family:'DM Sans',sans-serif; font-size:clamp(22px,2.1vw,34px); }
html[lang=ar] .r-arabic-description { font-family:'DM Sans',sans-serif; }
html[lang=ar] .r-departments-headline { font-size:clamp(30px,2.4vw,40px); line-height:1.25; }
html[lang=ar] .r-departments-arabic-headline { font-family:'DM Sans',sans-serif; font-size:clamp(17px,1.45vw,24px); }
html[lang=ar] .r-departments-arabic-description { font-family:'DM Sans',sans-serif; }
html[lang=ar] .arrow { transform:rotate(180deg); }
.no-js-booking { position:absolute; top:59%; padding:4px 5%; background:var(--paper); font-size:13px; }
@media (hover:hover) and (pointer:fine) {
  .button-gold:hover { background:#8a631f; }
  .button-outline:hover,.circle-button:hover { background:#ead8b1; }
  a:hover .arrow,button:hover .arrow { transform:translateX(3px); }
  html[lang=ar] a:hover .arrow { transform:rotate(180deg) translateX(3px); }
  .site-header nav a:hover { color:#78531b; }
}

/* Restrained clinic typography, replacing the decorative display face. */
h1,h2,h3{font-weight:450;letter-spacing:-.045em}
.r-headline{font-weight:400;line-height:1.02;letter-spacing:-.055em}
.department-entry p{letter-spacing:0}
[lang=ar] h1,[lang=ar] h2,[lang=ar] h3{font-weight:450;letter-spacing:0}

@media(min-width:1051px){.r-booking-heading{font-size:clamp(17px,1.3vw,22px);letter-spacing:-.035em;white-space:nowrap}}

/* Single-language opening: close the space previously occupied by translations. */
@media(min-width:1051px){.r-departments-link{top:84%}.department-entry p{top:86%}}
