/* Highway New Time · hnt.css · the one shared stylesheet (REDESIGN_SPEC v2, direction 05 majlis-navy).
   Hand-off document: DESIGN_SYSTEM.md. Page-only styles go in the template's own <style>.
   Do not add colours, weights or motion here. */

/* ---------- fallback faces: metric-matched local fonts, so the swap to the web fonts does not move the page ---------- */
@font-face{font-family:"HNT Serif Fallback";src:local("Georgia");size-adjust:91.5%;ascent-override:114%;descent-override:37%;line-gap-override:0%}
@font-face{font-family:"HNT Arabic Fallback";src:local("Geeza Pro"),local("Segoe UI"),local("Noto Naskh Arabic");size-adjust:112%}

/* ---------- tokens: spec section 2, the only set ---------- */
:root{
  --navy:#0f1b2d;
  --navy-2:#0a1220;
  --sand:#e6dcc6;
  --sand-70:rgba(230,220,198,.72);
  --line:rgba(230,220,198,.16);
  --brass:#a3803f;
  --en:'Source Serif 4','HNT Serif Fallback',Georgia,serif;
  --ar:'Tajawal','HNT Arabic Fallback','IBM Plex Sans Arabic',system-ui,sans-serif;
  --zh:'Noto Serif SC','Songti SC','Noto Serif CJK SC','Source Han Serif SC',STSong,SimSun,serif;
  --section:clamp(96px,8.5vw,120px);
  --block:clamp(56px,6vw,80px);
  --pad:clamp(20px,4vw,56px);
  --gutter:24px;
  --measure:592px;
  --measure-wide:797px;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1320px;
}

/* ---------- type scale: 13 / 15 / 17 / 21 / 24 / 38 / 76 / 120, in rem, re-set per script wherever lang changes ---------- */
:root,[lang|="en"]{
  --t-13:.8125rem;--t-15:.9375rem;--t-17:1.0625rem;
  --t-21:clamp(1.125rem,.75rem + .75vw,1.3125rem);
  --t-24:clamp(1.25rem,.8rem + .9vw,1.5rem);
  --t-38:clamp(1.75rem,1rem + 1.6vw,2.375rem);
  --t-76:clamp(2.5rem,.5rem + 4.75vw,4.75rem);
  --t-120:clamp(3.375rem,.5rem + 7.8vw,7.5rem);
  --lh:1.6;--lh-head:1.15;--lh-display:1.08;--lh-ui:1.35;
}
[lang|="ar"]{
  --t-13:.9375rem;--t-15:1rem;--t-17:1.125rem;
  --t-21:clamp(1.1875rem,.75rem + .85vw,1.375rem);
  --t-24:clamp(1.3125rem,.8rem + 1vw,1.5625rem);
  --t-38:clamp(1.75rem,1rem + 1.6vw,2.375rem);
  --t-76:clamp(2.5rem,.5rem + 4.75vw,4.75rem);
  --t-120:clamp(3.5rem,.5rem + 7.8vw,7.5rem);
  --lh:1.8;--lh-head:1.4;--lh-display:1.2;--lh-ui:1.6;
}
[lang|="zh"]{
  --t-13:.8125rem;--t-15:.90625rem;--t-17:1.03125rem;
  --t-21:clamp(1.09375rem,.7rem + .75vw,1.25rem);
  --t-24:clamp(1.1875rem,.75rem + .85vw,1.4375rem);
  --t-38:clamp(1.625rem,.9rem + 1.5vw,2.1875rem);
  --t-76:clamp(2.25rem,.5rem + 4.2vw,4.25rem);
  --t-120:clamp(2.75rem,.5rem + 5.9vw,5.75rem);
  --lh:1.85;--lh-head:1.35;--lh-display:1.2;--lh-ui:1.5;
}

/* ---------- reset and base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{background:var(--navy);color:var(--sand);color-scheme:dark;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--en);font-size:var(--t-17);line-height:var(--lh);font-weight:400;font-optical-sizing:auto;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{background:none;border:0;border-radius:0;cursor:pointer}
h1,h2,h3,h4{font-weight:300;line-height:var(--lh-head);text-wrap:balance}
strong,b{font-weight:400}
p,li,dd,figcaption{text-wrap:pretty}
ul[class],ol[class]{list-style:none}
::selection{background:var(--sand);color:var(--navy)}
:focus-visible{outline:2px solid var(--sand);outline-offset:4px}

/* ---------- scripts: family follows lang at any depth; Arabic and Chinese never italic, Arabic never tracked ---------- */
:lang(en){font-family:var(--en)}
:lang(ar){font-family:var(--ar);letter-spacing:0!important;font-style:normal!important}
:lang(zh){font-family:var(--zh);font-style:normal!important}
:where(:lang(en),:lang(zh))>[lang|="ar"]{font-size:1.1em}
:where(p,div,section,article,aside,main,header,footer,ul,ol,li,dl,blockquote,figure)[lang]{line-height:var(--lh)}
:where(section[lang],article[lang],aside[lang],main[lang]){font-size:var(--t-17)}
:lang(zh) :is(h1,.page-title,.contact h2,.ttl h2,.ttl h3){word-break:keep-all;line-break:strict;overflow-wrap:anywhere}
bdi,.ltr{direction:ltr;unicode-bidi:isolate}
.tnum{font-variant-numeric:tabular-nums}
.nb{white-space:nowrap}
.ln{display:inline-block}
.legal{font-variant-caps:all-small-caps;font-size:1.15em;letter-spacing:.04em}
[dir="rtl"] .arw{display:inline-block;transform:scaleX(-1)}

/* ---------- layout: 1320 wrap, 12 columns, one section rhythm, one block rhythm inside a section ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
main>section,.section{padding-block:var(--section)}
main>section:has(+.divider){padding-block-end:calc(var(--section)/2)}
.divider+section{padding-block-start:calc(var(--section)/2)}
main>section>:where(*)+:where(.route-list,.who,.promises,.day,.steps,.faq,.form,.contact,.article,.hotel-grid,.table-scroll,.page-head,.grid){margin-top:var(--block)}
main>section>.head+*{margin-top:0}

/* ---------- utilities: screen-reader text, skip link, hide, per-language visibility ---------- */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:absolute;inset-inline-start:var(--pad);top:-80px;z-index:30;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--sand);color:var(--navy);font-size:var(--t-15)}
.skip:focus{top:12px}
.hide{display:none!important}
html:not([lang|="en"]) .only-en,html:not([lang|="ar"]) .only-ar,html:not([lang|="zh"]) .only-zh,
html[lang|="en"] .not-en,html[lang|="ar"] .not-ar,html[lang|="zh"] .not-zh{display:none!important}

/* ---------- photos: one grade for every image, plus the navy multiply veil (the only blend on the site) ---------- */
.ph{position:relative;overflow:hidden;background:var(--navy-2)}
.ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.2) saturate(.75) contrast(1.03) brightness(.95)}
.ph::after{content:"";position:absolute;inset:0;background:var(--navy);mix-blend-mode:multiply;opacity:.12;pointer-events:none}
.ph-45{aspect-ratio:4/5}
.ph-32{aspect-ratio:3/2}
.ph-empty{display:flex;align-items:center;justify-content:center;padding:16px;border:1px solid var(--line);font-size:var(--t-13);color:var(--sand-70);text-align:center}
figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 16px;margin-top:12px;font-size:var(--t-13);line-height:1.5;color:var(--sand-70)}
figcaption>[lang]{font-size:var(--t-13)}
figcaption>*+*{flex:1 1 auto;text-align:end}
figcaption>*+[dir]{text-align:start}

/* ---------- nav: brand, primary links, language switch, WhatsApp number; menu button under 1200px ---------- */
.nav{position:relative;display:flex;align-items:center;gap:12px;min-height:72px}
.nav::after{content:"";position:absolute;inset-inline:var(--pad);bottom:0;height:1px;background:var(--line)}
.brand{display:flex;flex-direction:column;justify-content:center;min-height:44px;margin-inline-end:auto;padding-block:12px;font-size:var(--t-13);letter-spacing:.08em;text-transform:uppercase;line-height:1.2;white-space:nowrap}
.brand small{display:block;margin-top:4px;font-size:var(--t-13);letter-spacing:.02em;text-transform:none;font-style:italic;color:var(--sand-70)}
.nav-links{order:1;display:none;font-size:var(--t-15)}
.nav-links a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line);white-space:nowrap}
.nav-links .wa-row{gap:.4em;font-variant-numeric:tabular-nums}
.nav.open .nav-links{display:flex;flex-direction:column;position:absolute;inset-inline:0;top:100%;z-index:20;min-height:calc(100vh - 72px);max-height:calc(100vh - 72px);overflow-y:auto;overscroll-behavior:contain;padding:8px var(--pad) 24px;background:var(--navy)}
@supports (height:100dvh){
  .nav.open .nav-links{min-height:calc(100dvh - 72px);max-height:calc(100dvh - 72px)}
}
.lang-quick{order:2;display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;padding:0 8px;font-size:var(--t-15);line-height:1;color:var(--sand)}
.nav .wa .pre{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.nav .wa{order:3;display:inline-flex;align-items:center;gap:.4em;min-height:44px;font-size:var(--t-15);font-variant-numeric:tabular-nums;white-space:nowrap;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:transparent;transition:text-decoration-color .3s var(--ease)}
.nav-btn{order:4;display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;margin-inline-end:-12px;color:var(--sand)}
.nav-btn svg{width:24px;height:24px}
.nav-btn .x,.nav.open .nav-btn .bars{display:none}
.nav.open .nav-btn .x{display:block}
.lang-switch{display:flex;gap:4px;margin-top:12px;margin-inline-start:-12px}
.lang-switch button{min-width:44px;min-height:44px;padding:0 8px;font-size:var(--t-15);line-height:1;color:var(--sand-70);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px;text-decoration-color:transparent;transition:color .3s var(--ease),text-decoration-color .3s var(--ease)}
.lang-switch button[lang|="ar"],.lang-quick[lang|="ar"]{font-size:1rem;padding-top:3px}
.lang-switch [data-lang="zh"]{font-family:system-ui,'PingFang SC','Microsoft YaHei',sans-serif}
.lang-switch [aria-current="true"],
html[lang|="en"] .lang-switch [data-lang="en"],html[lang|="ar"] .lang-switch [data-lang="ar"],html[lang|="zh"] .lang-switch [data-lang="zh"]{color:var(--sand);text-decoration-color:var(--brass)}
body.en-only .lang-switch,body.en-only .lang-quick,
html[data-langs="en"] .lang-switch,html[data-langs="en"] .lang-quick{display:none}
@media (max-width:480px){
  html:not([data-langs="en"]) body:not(.en-only) .nav>.wa{display:none}
}
@media (max-width:389px){
  .nav{gap:8px}
  .brand small{display:none}
}
@media (max-width:359px){
  .brand{white-space:normal}
}
@media (min-width:600px) and (max-width:1199px),(min-width:1440px){
  .nav .wa .pre{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none}
}
@media (hover:hover){
  .nav .wa:hover{text-decoration-color:var(--sand)}
  .lang-switch button:hover,.lang-quick:hover{color:var(--sand)}
}
@media (min-width:1200px){
  .nav{gap:24px}
  .nav-btn,.lang-quick,.nav-links .wa-row{display:none}
  .nav-links,.nav.open .nav-links{display:flex;flex-direction:row;align-items:center;gap:20px;position:static;min-height:0;max-height:none;overflow:visible;padding:0;background:none}
  .nav-links a{min-height:44px;margin-inline:-8px;padding-inline:8px;border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:transparent;transition:text-decoration-color .3s var(--ease)}
  .nav-links a[aria-current="page"]{text-decoration-color:var(--sand-70)}
  .lang-switch{margin-top:0;margin-inline-start:0}
}
@media (min-width:1320px){
  .nav{gap:32px}
  .nav-links,.nav.open .nav-links{gap:28px}
}
@media (min-width:1200px) and (hover:hover){
  .nav-links a:hover{text-decoration-color:var(--sand)}
}

/* ---------- hero: current-language title and lead, the other script as .sub on its own edge, 4:5 figure ---------- */
.hero{padding-block:clamp(48px,6vw,88px) var(--section)}
.hero .grid{align-items:start}
.hero-text,.hero-fig{grid-column:1/-1}
.hero-fig .ph{aspect-ratio:3/2}
.eyebrow{margin-bottom:24px;font-size:var(--t-15);color:var(--sand-70);text-wrap:balance}
.hero h1{margin-bottom:24px;font-size:var(--t-120);font-weight:300;line-height:var(--lh-display);text-wrap:initial}
.hero .lead{max-width:36ch;font-size:var(--t-21);font-weight:300;line-height:calc(var(--lh) - .1)}
.hero .sub{margin-block-start:32px;font-size:var(--t-21);font-weight:300;line-height:calc(var(--lh) - .1);color:var(--sand-70)}
html[lang|="ar"] .hero .sub{margin-block-start:24px}
.hero .cta{margin-top:40px}
.hero .note{margin-top:16px;font-size:var(--t-15);color:var(--sand-70);font-variant-numeric:tabular-nums}
@media (max-width:900px){
  /* phone order: eyebrow, title, CTA, photograph, then lead and the other script.
     The CTA and the photograph both sit on the first screen; the DOM order stays eyebrow, title, lead, sub, CTA, figure. */
  .hero-text{display:contents}
  .hero-text>*{grid-column:1/-1;order:1}
  .hero-text>.eyebrow,.hero-text>h1,.hero-text>.cta{order:-1}
  .hero-text>.cta{justify-self:start;margin-top:8px}
  .hero-fig{order:0;margin-top:32px}
  .hero-text>.lead{margin-top:32px}
}
@media (min-width:901px){
  .hero-text{grid-column:1/span 6}
  .hero-fig{grid-column:8/span 5}
  .hero-fig .ph{aspect-ratio:4/5}
  .hero .sub{max-width:48ch;margin-inline:0 auto}
  .eyebrow{margin-bottom:32px}
}
@media (min-width:901px) and (max-height:820px){
  .hero{padding-block-start:40px}
  .hero h1{font-size:calc(var(--t-120)*.84)}
  .hero .cta{margin-top:32px}
  .eyebrow{margin-bottom:24px}
}

/* ---------- buttons: .cta is the one brass border (primary), .more the sand border (secondary); one language per button ---------- */
.cta,.more{display:inline-flex;align-items:center;justify-content:center;gap:.4em;max-width:100%;text-align:center;white-space:nowrap;line-height:var(--lh-ui);transition:background-color .35s var(--ease),color .35s var(--ease)}
.cta{min-height:52px;padding:12px 20px;border:1px solid var(--brass);color:var(--sand);font-size:var(--t-17)}
.more{min-height:48px;margin-top:24px;padding:12px 24px;border:1px solid var(--sand-70);color:var(--sand);font-size:var(--t-15)}
@media (max-width:359px){
  .cta,.more{white-space:normal}
}
@media (max-width:480px){
  .hero .cta,.contact .cta,.form .cta{display:flex;width:100%;justify-self:stretch}
}
@media (min-width:481px){
  .cta{padding-inline:32px}
}
@media (hover:hover){
  .cta:hover{background:var(--brass);color:var(--navy)}
  .more:hover{background:var(--sand);color:var(--navy)}
}

/* ---------- divider: one single-stroke khatam between sections, hairline, never filled ---------- */
.divider{display:flex;align-items:center;gap:24px;padding-block:0;color:var(--sand-70)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.divider svg{flex:none;width:40px;height:40px}

/* ---------- section head: number · the other script · current language (use on an h2) ---------- */
.head{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:baseline;margin-bottom:clamp(40px,5vw,64px);font-size:var(--t-15);font-weight:400;line-height:1.5;color:var(--sand-70);text-wrap:initial}
.head>*{justify-self:start}
.head .n{font-variant-numeric:tabular-nums}
.head>[lang|="ar"]{font-size:var(--t-15)}
.head>:last-child{grid-column:1/-1}
html[lang|="ar"] .head>[data-t]{color:var(--sand)}
@media (min-width:901px){
  .head{grid-template-columns:auto auto 1fr}
  .head>:last-child{grid-column:auto}
}

/* ---------- page head: inner-page title block (eyebrow, h1 at the 76 step, intro at the 24 step) ---------- */
.page-head{padding-block:clamp(48px,6vw,88px) clamp(40px,5vw,64px)}
.page-title{max-width:20ch;font-size:var(--t-76);font-weight:300;line-height:var(--lh-head);text-wrap:balance}
.intro{max-width:44ch;font-size:var(--t-24);font-weight:300;line-height:calc(var(--lh) - .1)}
.page-title+.intro{margin-top:24px}

/* ---------- route: 3:2 photo, title in two scripts, meta line, description, .more ---------- */
.route{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);padding-block:clamp(40px,4vw,56px);border-top:1px solid var(--line)}
.route:last-of-type{border-bottom:1px solid var(--line)}
.route:has(+.route-list){border-bottom:0}
.route+.route-list{margin-top:0}
.route figure,.route .body{grid-column:1/-1}
.route .body{margin-top:24px}
.route .ph{aspect-ratio:3/2}
.ttl h2,.ttl h3{font-size:var(--t-38);font-weight:300;line-height:var(--lh-head)}
.ttl>span{display:block;margin-top:8px;font-size:var(--t-24);font-weight:400;line-height:1.4;color:var(--sand-70);text-align:left;text-align:-webkit-match-parent;text-align:match-parent}
.ttl>span[lang|="en"]{font-weight:300}
.meta{margin-top:16px;max-width:30rem;font-size:var(--t-15);color:var(--sand-70);font-variant-numeric:tabular-nums}
.desc{margin-top:16px;max-width:30rem}
@media (min-width:901px){
  .route figure{grid-column:1/span 5}
  .route .body{grid-column:7/span 6;align-self:center;margin-top:0}
}

/* ---------- route-list: compact rows, name / days / price wording (.t .d .p); a row may be a link ---------- */
.route-list .row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:4px;align-items:baseline;min-height:56px;padding-block:16px;border-top:1px solid var(--line)}
.route-list li:last-child .row{border-bottom:1px solid var(--line)}
.route-list .t,.route-list .d,.route-list .p{grid-column:1/-1}
.route-list a.row .t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:var(--sand-70);transition:text-decoration-color .3s var(--ease)}
.route-list .d,.route-list .p{font-size:var(--t-15);color:var(--sand-70);font-variant-numeric:tabular-nums}
.route-list .d{white-space:nowrap}
@media (hover:hover){
  .route-list a.row:hover .t{text-decoration-color:var(--sand)}
}
@media (min-width:901px){
  .route-list .t{grid-column:1/span 4}
  .route-list .d{grid-column:5/span 1}
  .route-list .p{grid-column:6/span 7;text-align:end;text-wrap:balance}
}

/* ---------- promises: the commitments table, two scripts per row, set in the serif (no monospace) ---------- */
.promises li{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:8px 16px;padding-block:16px;border-top:1px solid var(--line);line-height:calc(var(--lh) - .1)}
.promises li:last-child{border-bottom:1px solid var(--line)}
.promises li>*{text-wrap:balance}
.promises .n{padding-top:.25em;font-size:var(--t-13);color:var(--sand-70);font-variant-numeric:tabular-nums}
.promises .alt{grid-column:2;font-size:var(--t-17);line-height:calc(var(--lh) - .1);color:var(--sand-70)}
@media (min-width:1025px){
  /* the current language owns the start edge, the other script ends on the container edge; both keep a 36ch measure */
  .promises li{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);column-gap:var(--gutter)}
  .promises li>:nth-child(2){max-width:36ch}
  .promises .alt{grid-column:auto;justify-self:end;width:100%;max-width:36ch}
}

/* ---------- day: one sample day from an itinerary, as a definition list ---------- */
.day{max-width:var(--measure);padding-top:16px;border-top:1px solid var(--line);font-size:var(--t-15);line-height:var(--lh);color:var(--sand-70)}
.day h3,.day .day-h{font-size:var(--t-15);font-weight:400;line-height:var(--lh);color:var(--sand-70);text-wrap:initial}
.day dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 24px;margin-top:12px}
.day dt{color:var(--sand)}

/* ---------- who + licence: intro paragraph and the licence block; the number is the brass ---------- */
.who{max-width:var(--measure-wide)}
.who>p{margin-bottom:40px;font-size:var(--t-24);font-weight:300;line-height:calc(var(--lh) - .1)}
.licence{font-size:var(--t-15);line-height:1.7}
.licence .no{display:block;margin-bottom:8px;font-size:var(--t-24);font-weight:300;line-height:var(--lh-head);color:var(--brass);font-variant-numeric:tabular-nums}
.licence .name{display:block;color:var(--sand)}
.licence .addr{display:block;color:var(--sand-70)}
.licence .addr>*{display:block;width:fit-content;max-width:100%;text-align:left;text-align:-webkit-match-parent;text-align:match-parent;text-wrap:balance}
@media (min-width:600px){
  .licence .no{font-size:var(--t-38)}
}

/* ---------- steps: how to book, numbered, three or four across; number, title and text share rows across the columns ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));column-gap:var(--gutter)}
.steps li{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start;padding-block:24px 32px;border-top:1px solid var(--line)}
.steps .n{display:block;font-size:var(--t-15);color:var(--sand-70);font-variant-numeric:tabular-nums}
.steps h3{margin-top:16px;font-size:var(--t-24);font-weight:300;line-height:var(--lh-head)}
.steps p{margin-top:12px;max-width:40ch;color:var(--sand-70)}

/* ---------- faq: details/summary, hairline rows, plus and minus as the only marker ---------- */
.faq{max-width:var(--measure-wide);border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding-block:16px;font-size:var(--t-21);font-weight:300;line-height:var(--lh-ui);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";content:"+" / "";flex:none;width:24px;font-family:var(--en);font-size:1.5rem;font-weight:300;line-height:1;text-align:center;color:var(--sand-70)}
.faq details[open] summary::after{content:"\2212";content:"\2212" / ""}
.faq .a{max-width:var(--measure);padding-block:0 32px;color:var(--sand-70)}

/* ---------- form: label above, underline field, sand text, errors said in words ---------- */
.form{display:grid;gap:32px;max-width:var(--measure)}
.fld{position:relative;display:flex;flex-direction:column}
.fld label{font-size:var(--t-15);color:var(--sand-70)}
.fld .opt{margin-inline-start:.4em;color:var(--sand-70)}
.fld input,.fld select,.fld textarea{width:100%;min-height:48px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--sand-70);border-radius:0;font-size:var(--t-17);line-height:1.4;color:var(--sand);-webkit-appearance:none;appearance:none;transition:border-color .3s var(--ease)}
.fld select{padding-inline-end:32px}
[dir="rtl"] .fld input[dir="ltr"]{text-align:right}
.fld select option{background:var(--navy);color:var(--sand)}
.fld:has(>select)::after{content:"";position:absolute;inset-inline-end:4px;bottom:20px;width:8px;height:8px;border-right:1px solid var(--sand);border-bottom:1px solid var(--sand);transform:rotate(45deg);pointer-events:none}
.fld textarea{min-height:112px;resize:none;field-sizing:content}
.fld ::placeholder{color:var(--sand-70);opacity:1}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-bottom-color:var(--sand)}
.fld .err{display:none;margin-top:8px;font-size:var(--t-15);line-height:1.5;color:var(--sand)}
.fld.is-invalid .err{display:block}
.fld.is-invalid input,.fld.is-invalid select,.fld.is-invalid textarea{border-bottom:2px solid var(--sand)}
.form .cta{justify-self:start}
.form .note{font-size:var(--t-13);color:var(--sand-70)}
.form .ok{padding-block:16px;border-block:1px solid var(--line);font-size:var(--t-21);font-weight:300}
.form .ok:empty{margin-top:-32px;padding:0;border:0}
@media (hover:hover){
  .fld input:hover,.fld select:hover,.fld textarea:hover{border-bottom-color:var(--sand)}
}

/* ---------- contact: closing block, large line in one script, body and CTA beside it ---------- */
.contact .grid{align-items:end}
.contact h2,.contact .body{grid-column:1/-1}
.contact h2{font-size:var(--t-76);font-weight:300;line-height:var(--lh-head)}
.contact .body{margin-top:40px}
.contact .body p{font-size:var(--t-17);color:var(--sand-70)}
html[lang|="ar"] .contact .body p[lang|="en"]{font-size:var(--t-15)}
.contact .cta{margin-top:24px;font-variant-numeric:tabular-nums}
.contact .mail{display:block;width:fit-content;min-height:44px;margin-top:8px;font-size:var(--t-15);line-height:44px;white-space:nowrap;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:var(--sand-70);transition:text-decoration-color .3s var(--ease)}
@media (hover:hover){
  .contact .mail:hover{text-decoration-color:var(--sand)}
}
@media (min-width:901px){
  .contact h2{grid-column:1/span 7}
  .contact .body{grid-column:9/span 4;margin-top:0}
}

/* ---------- article: long-form text, one measure (6 columns, under 68ch) ---------- */
.article{max-width:var(--measure)}
.article a,.c-p a,.c-ul a,.c-ol a,.faq .a a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--sand-70);transition:text-decoration-color .3s var(--ease)}
.c-h2{margin-block:clamp(48px,5vw,72px) 24px;font-size:var(--t-38);font-weight:300;line-height:var(--lh-head)}
.c-h3{margin-block:40px 12px;font-size:var(--t-24);font-weight:400;line-height:var(--lh-ui)}
.article>:first-child{margin-top:0}
.c-p{max-width:var(--measure);margin-top:16px}
.c-ul,.c-ol{max-width:var(--measure);margin-top:16px;padding-inline-start:1.5em}
.c-ul li{position:relative}
.c-ul li::before{content:"";position:absolute;inset-inline-start:-1.5em;top:.8em;width:.75em;height:1px;background:var(--sand-70)}
ol.c-ol{list-style:decimal}
.c-ol li::marker{color:var(--sand-70);font-variant-numeric:tabular-nums}
.c-ul li+li,.c-ol li+li{margin-top:8px}
.c-fig{margin-block:40px}
.c-fig>img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--navy-2);filter:sepia(.2) saturate(.75) contrast(1.03) brightness(.95)}
.c-fig .ph{aspect-ratio:3/2}
.c-note{max-width:var(--measure);margin-top:24px;padding-block:4px;padding-inline-start:24px;border-inline-start:1px solid var(--sand-70);font-size:var(--t-15);color:var(--sand-70)}
@media (hover:hover){
  .article a:hover,.c-p a:hover,.c-ul a:hover,.c-ol a:hover,.faq .a a:hover{text-decoration-color:var(--sand)}
}

/* ---------- hotel-card: 3:2 photo, name, grade as words ("5-star"), city ---------- */
.hotel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:56px var(--gutter)}
.hotel-card .ph{aspect-ratio:3/2}
.hotel-card h3{margin-top:16px;font-size:var(--t-24);font-weight:300;line-height:var(--lh-ui)}
.hotel-card .grade{margin-top:8px;font-size:var(--t-15);color:var(--sand-70)}

/* ---------- table: hairline rows inside a horizontal scroll container; .table-stack re-flows a short table on a phone ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:var(--t-15);line-height:1.5;font-variant-numeric:tabular-nums}
.table-scroll>.table{min-width:640px}
.table caption{max-width:calc(100vw - 2*var(--pad));padding-bottom:16px;font-size:var(--t-15);color:var(--sand-70);text-align:start;caption-side:top}
.table th,.table td{padding-block:16px;padding-inline:0 24px;text-align:start;vertical-align:top;border-bottom:1px solid var(--line)}
.table th:last-child,.table td:last-child{padding-inline-end:0}
.table thead th{font-weight:400;color:var(--sand-70);border-bottom-color:var(--sand-70)}
.table tbody th{font-weight:400;color:var(--sand)}
.table .num{text-align:end}
@media (max-width:640px){
  .table-scroll>.table-stack{min-width:0}
  .table-stack,.table-stack tbody,.table-stack caption{display:block}
  .table-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .table-stack tr{display:grid;gap:4px;padding-block:16px;border-bottom:1px solid var(--line)}
  .table-stack tbody tr:first-child{border-top:1px solid var(--sand-70)}
  .table-stack th,.table-stack td{padding:0;border:0}
  .table-stack tbody th{font-size:var(--t-17);margin-bottom:4px}
  .table-stack td{display:flex;justify-content:space-between;gap:16px;text-align:end}
  .table-stack td::before{content:attr(data-label);color:var(--sand-70);text-align:start}
}

/* ---------- footer: three-column legal block, site links, credits, one Arabic line ---------- */
.footer{position:relative;padding-block:40px 56px;font-size:var(--t-13);line-height:1.7;color:var(--sand-70)}
.footer::before{content:"";position:absolute;inset-inline:var(--pad);top:0;height:1px;background:var(--line)}
.footer .grid>div{grid-column:1/-1;margin-bottom:16px}
.footer .grid p,.footer .grid a{font-size:var(--t-13);line-height:24px}
.footer strong{font-weight:400;color:var(--sand)}
.footer a{color:var(--sand)}
.footer .grid a{display:block;width:fit-content;white-space:nowrap}
.footer-links{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:var(--t-15)}
.footer-links a{display:block;min-height:44px;margin-inline:-8px;padding-inline:8px;line-height:44px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:transparent;transition:text-decoration-color .3s var(--ease)}
.footer-ar{margin-top:16px;font-size:var(--t-13);line-height:1.8}
@media (pointer:coarse){
  .footer .grid a{display:flex;align-items:center;min-height:44px}
}
@media (hover:hover){
  .footer .grid a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
  .footer-links a:hover{text-decoration-color:var(--sand)}
}
@media (min-width:901px){
  .footer .grid>div{grid-column:span 4}
}

/* ---------- reveal: opacity only, on scroll, 700ms; hidden state applies only when JS has marked html.js ---------- */
.js .reveal{opacity:0;transition:opacity .7s var(--ease)}
.js .reveal.in{opacity:1}

/* ---------- reduced motion: no smooth scroll, no reveal, no transitions ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transition:none}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* ---------- print: navy ink on paper, chrome removed, photos ungraded ---------- */
@media print{
  :root{--sand:var(--navy);--sand-70:var(--navy);--line:var(--navy);--brass:var(--navy)}
  html{background:none;color-scheme:light}
  body{overflow:visible}
  .skip,.nav-links,.nav-btn,.lang-switch,.lang-quick,.footer-links,.divider,.form{display:none!important}
  .js .reveal{opacity:1}
  .ph{background:none}
  .ph img,.c-fig>img{filter:none}
  .ph::after{display:none}
  main>section,.section,main>section:has(+.divider),.divider+section{padding-block:32px}
  .route,.promises li,.steps li,.hotel-card,.faq details,.table tr{break-inside:avoid}
  .faq details>.a{display:block}
  .table-scroll{overflow:visible}
}
