:root{
  --leaf:#3B2466; --leaf-2:#52348A; --sprout:#4A9BDB; --blind:#3E5FB0; --blind-soft:#E6E2F1;
  --mist:#CFC9DC; --oak:#EFEAF5; --paper:#FBFAF7; --card:#FFFFFF; --ink:#1F1830; --muted:#5E5870;
  --line:#E2DDEA; --bloom:#7A5CC4; --err:#B3261E;
  --display:"Reem Kufi", "Segoe UI", Tahoma, sans-serif;
  --body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --leaf:#B9A3EC; --leaf-2:#CDBBF5; --sprout:#6FB4E8; --blind:#8AA6E6; --blind-soft:#252038;
    --mist:#3C3650; --oak:#1E1A2A; --paper:#131119; --card:#1C1926; --ink:#EEEAF6; --muted:#A8A1BA; --line:#2E2940; --err:#FF8A80;
  }
}
:root[data-theme="dark"]{
  --leaf:#B9A3EC; --leaf-2:#CDBBF5; --sprout:#6FB4E8; --blind:#8AA6E6; --blind-soft:#252038;
  --mist:#3C3650; --oak:#1E1A2A; --paper:#131119; --card:#1C1926; --ink:#EEEAF6; --muted:#A8A1BA; --line:#2E2940; --err:#FF8A80;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .herring{--hb-bg:#16263D;--hb-a:#2F5E9E;--hb-b:#3E7FC0}}
:root[data-theme="dark"] .herring{--hb-bg:#16263D;--hb-a:#2F5E9E;--hb-b:#3E7FC0}
/* --header-h is kept in sync with the real sticky header height by js/app.js */
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + var(--header-h,68px) + 16px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.65}
@media (min-width:1100px){body{font-size:19px}.hero p.lead{font-size:19.5px}.space p,.hosp-item p,.faq p{font-size:18.5px}}
img{max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;margin:0}
.wrap{width:min(1160px,100% - 40px);margin-inline:auto}
:focus-visible{outline:3px solid var(--blind);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* herringbone (from the armchair fabric) */
.herring{
  --hb-bg:#D6E6F8; --hb-a:#2F6FC4; --hb-b:#5FA8E6;
  background-color:var(--hb-bg);
  background-image:
    linear-gradient(135deg, transparent 0 40%, var(--hb-a) 40% 60%, transparent 60%),
    linear-gradient(45deg, transparent 0 40%, var(--hb-b) 40% 60%, transparent 60%);
  background-size:28px 18px, 28px 18px;
  background-position:0 0, 14px 0;
}

/* nav */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark{width:46px;height:47px;border-radius:6px;display:block;object-fit:cover}
.brand b{font-family:var(--display);font-size:20px;font-weight:600;display:block;line-height:1}
.brand small{color:var(--muted);font-size:16px;font-family:var(--display)}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;color:var(--muted);font-weight:500;font-size:16.5px}
.nav ul a:hover{color:var(--ink)}
.skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--leaf);color:var(--paper);padding:10px 16px;border-radius:0 0 10px 0;font-weight:600}
.skip:focus{left:0}
.nav-actions{display:flex;align-items:center;gap:8px}
.b-short{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:600 16px var(--body);padding:12px 22px;min-height:44px;border-radius:999px;text-decoration:none;transition:transform .15s, background .15s}
.btn-primary{background:var(--leaf);color:var(--paper)}
.btn-primary:hover{background:var(--leaf-2)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:1.5px solid var(--line);border-radius:12px;padding:0;color:var(--ink);cursor:pointer}
.menu-toggle:hover{border-color:var(--ink)}
/* mobile: one 60px row (brand, Book, menu button). The links open as a dropdown with 48px rows. */
@media (max-width:880px){
  .nav .wrap{height:60px;gap:10px}
  .brand{flex:1 1 auto;min-width:0;gap:10px}
  .brand > span{min-width:0}
  .brand b{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand small{font-size:15px}
  .mark{width:40px;height:41px}
  .b-long{display:none}
  .b-short{display:inline}
  .nav .btn-primary{padding:0 18px}
  .menu-toggle{display:inline-flex}
  .nav ul{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:6px 20px 12px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 24px rgba(0,0,0,.1)}
  .nav.open ul{display:flex}
  .nav ul li + li{border-top:1px solid var(--line)}
  .nav ul a{display:flex;align-items:center;min-height:48px;font-size:17px}
}
@media (max-width:340px){
  .nav .wrap{gap:8px}
  .brand{gap:8px}
  .mark{width:36px;height:37px;flex:none}
  .brand b{font-size:16px}
  .brand small{font-size:14px}
  .nav .btn-primary{padding:0 14px}
}

/* hero */
.hero{padding:64px 0 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:end}
.hero h1{font-size:clamp(40px,6vw,74px);letter-spacing:-.01em}
.hero .ar{font-family:var(--display);font-size:clamp(26px,3.4vw,40px);color:var(--leaf);margin:0 0 14px;direction:rtl;text-align:left}
.hero p.lead{font-size:19px;color:var(--muted);max-width:36em;margin:22px 0 30px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-panel{position:relative;height:440px;border-radius:220px 220px 0 0;overflow:hidden}
.hero-panel .green{position:absolute;inset:auto 0 0 0;height:58%;background:
  radial-gradient(circle,#F4F1FA 0 7px,transparent 8px) 28px 28px/56px 56px,
  conic-gradient(from 45deg,#3E5FB0 0 25%,#F4F1FA 0 50%,#6B4FB0 0 75%,#4A9BDB 0) 0 0/56px 56px,
  #3B2466;}
.hero-panel .green::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(59,36,102,.5) 2px,transparent 2px) 0 0/56px 56px,
  linear-gradient(rgba(59,36,102,.5) 2px,transparent 2px) 0 0/56px 56px}
.blooms span{position:absolute;width:16px;height:16px;border-radius:50% 0;background:var(--bloom);z-index:2;transform:rotate(45deg);box-shadow:0 0 0 3px #F4F1FA inset}
.hero-panel .blinds{position:absolute;inset:0 0 58% 0;background:repeating-linear-gradient(var(--blind) 0 22px,var(--blind-soft) 22px 40px)}
.hours{position:absolute;left:18px;bottom:18px;z-index:3;background:var(--card);color:var(--ink);border-radius:14px;padding:12px 16px;font-size:16px;line-height:1.4}
.hours b{font-family:var(--display);font-size:17px;display:block}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr}.hero-panel{height:300px}}

.strip{margin-top:56px;border-block:1px solid var(--line);padding:22px 0}
.strip .wrap{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:space-between;color:var(--muted);font-size:16.5px}
.strip strong{color:var(--ink);font-weight:600}

section.block{padding:96px 0}
.head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.head h2{font-size:clamp(30px,4vw,46px);max-width:14em}
.head p{color:var(--muted);max-width:30em;margin:0}

/* spaces */
.spaces{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.space{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:10px}
.space.big{grid-column:span 7;background:var(--leaf);color:var(--paper);border:0}
.space.big p,.space.big li{color:color-mix(in srgb,var(--paper) 82%,transparent)}
.space.mid{grid-column:span 5}
.space.third{grid-column:span 4}
.space h3{font-size:26px}
.space p{margin:0;color:var(--muted)}
.space ul{margin:4px 0 0;padding-left:18px;color:var(--muted);font-size:16.5px}
.price{margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.price b{font-family:var(--display);font-size:28px;font-weight:600}
.price small{font-size:16px;opacity:.75}
.space .pick{background:var(--blind-soft);color:var(--blind);border:0}
.space.big .pick{background:var(--paper);color:var(--leaf)}
.space.wide{grid-column:span 12;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 40px}
.space.wide > div:first-child{flex:1 1 380px}
.space.wide .price{margin-top:0;padding-top:0}
.hero-text{display:grid;grid-template-columns:clamp(46px,7vw,92px) 1fr;gap:clamp(16px,3vw,34px);align-items:start}
.tile-strip{width:100%;height:auto;display:block;position:sticky;top:90px}
.hero .tag{font-family:var(--display);font-size:clamp(20px,2.4vw,26px);color:var(--leaf);margin:18px 0 0;line-height:1.35}
.hero p.lead{margin:0 0 16px;font-size:18.5px}
.hero .actions{margin-top:28px}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.space .ph{display:block;margin:-26px -26px 10px;width:calc(100% + 52px);max-width:none;height:220px;object-fit:cover;border-radius:18px 18px 0 0}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:230px;gap:14px}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:16px;display:block}
.gallery .g-tall{grid-row:span 2}
.gallery .g-wide{grid-column:span 3}
@media (max-width:620px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.gallery .g-wide{grid-column:span 2}}
.quote-row{display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,48px);text-align:left}
.end-strip{width:clamp(46px,7vw,80px);height:auto;flex:none}
.quote{padding:40px 0 90px;text-align:center}
.quote .q-ar{font-family:var(--display);font-size:clamp(32px,5vw,54px);color:var(--leaf-2);margin:0;direction:rtl;line-height:1.3}
.quote .q-en{font-family:var(--display);font-size:clamp(20px,2.6vw,28px);color:var(--leaf);margin:6px 0 0}
@media (max-width:880px){.space.big,.space.mid,.space.third,.space.wide{grid-column:span 12}}

/* hospitality */
.hosp{background:var(--oak)}
.hosp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ink)}
.hosp-item{padding:26px 22px 8px 0}
.hosp-item h3{font-size:22px;margin-bottom:8px}
.hosp-item p{margin:0;color:var(--muted);font-size:16.5px}
@media (max-width:880px){.hosp-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.hosp-grid{grid-template-columns:1fr}}

/* amenities */
.amen{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
.amen div{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:baseline}
.amen div::before{content:"";flex:none;width:10px;height:10px;border-radius:50% 0;background:var(--sprout);transform:rotate(45deg)}
@media (max-width:880px){.amen{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.amen{grid-template-columns:1fr}}

/* booking */
.booking{background:var(--card);border:1px solid var(--line);border-radius:24px;display:grid;grid-template-columns:1.5fr 1fr;overflow:hidden}
.bk-main{padding:34px}
.bk-side{padding:34px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
.bk-side.herring{position:relative}
.bk-side .receipt{background:var(--card);border-radius:16px;padding:22px;border:1px solid var(--line)}
.steps{display:flex;gap:8px;margin:0 0 26px;padding:0;list-style:none;flex-wrap:wrap}
.steps li{font-size:16px;font-weight:600;padding:6px 14px;border-radius:999px;background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.steps li.on{background:var(--leaf);color:var(--paper);border-color:var(--leaf)}
.steps li.done{color:var(--leaf);border-color:var(--leaf)}
.panel h3:focus{outline:none}
.panel{display:none}
.panel.on{display:block;animation:in .25s ease}
@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel h3{font-size:24px;margin-bottom:6px}
.panel > p{color:var(--muted);margin:0 0 20px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opt{text-align:left;background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;font:inherit;color:inherit}
.opt b{display:block;font-family:var(--display);font-size:18px;font-weight:600}
.opt small{color:var(--muted);font-size:16px}
.opt[aria-pressed="true"]{border-color:var(--leaf);box-shadow:0 0 0 2px var(--leaf) inset;background:color-mix(in srgb,var(--sprout) 14%,var(--paper))}
@media (max-width:620px){.opts{grid-template-columns:1fr}}
label.f,.f.lbl{display:block;font-weight:600;font-size:16px;margin:0 0 6px}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--err)}
.field{margin-bottom:18px}
input,select,textarea{width:100%;font:16px var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}
input:focus,select:focus,textarea:focus{border-color:var(--leaf);outline:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:620px){.row2{grid-template-columns:1fr}}
.dur{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1.5px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:8px 16px;min-height:44px;font:500 16px var(--body);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--leaf);color:var(--paper);border-color:var(--leaf)}
.chip:disabled{text-decoration:line-through;opacity:.4;cursor:not-allowed}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.legend{font-size:16px;color:var(--muted);margin-top:8px}
.checks label{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}
.checks input{width:18px;height:18px;margin-top:4px;accent-color:var(--leaf)}
.checks span small{display:block;color:var(--muted);font-size:16px}
.nav-btns{display:flex;justify-content:space-between;margin-top:26px;gap:10px}
.err{color:var(--err);font-size:16px;min-height:20px;margin-top:8px}
.field .err{min-height:0;margin-top:6px}
.submit-err{min-height:0}
.submit-err:not(:empty){margin-top:14px;padding:12px 14px;border:1px solid var(--err);border-radius:12px;background:color-mix(in srgb,var(--err) 8%,var(--card))}
.submit-err a{font-weight:600}
.retry{margin-top:8px}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.receipt h4{font-family:var(--display);font-size:20px;margin:0 0 12px;font-weight:600}
.receipt dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:16.5px}
.receipt dt{color:var(--muted)}
.receipt dd{margin:0;text-align:right;font-weight:500}
.total{display:flex;justify-content:space-between;align-items:baseline;border-top:1.5px dashed var(--line);margin-top:14px;padding-top:14px}
.total b{font-family:var(--display);font-size:30px}
.note{font-size:16px;color:var(--muted);margin:0}
.note-card{background:var(--card);padding:10px 14px;border-radius:10px}
.confirm{text-align:center;padding:10px 0}
.confirm .ref{display:inline-block;font-family:var(--display);font-size:28px;letter-spacing:.04em;background:var(--blind-soft);color:var(--blind);border-radius:12px;padding:8px 18px;margin:10px 0 16px}
.done-lead,.done-note{color:var(--muted);max-width:44ch;margin:0 auto 16px}
.done-sum{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;text-align:left;max-width:400px;margin:0 auto 16px;font-size:16.5px}
.done-sum dt{color:var(--muted)}
.done-sum dd{margin:0;font-weight:500}
.wa-follow{margin-top:22px;padding-top:18px;border-top:1px dashed var(--line)}
.wa-follow p{color:var(--muted);max-width:44ch;margin:0 auto 12px}
.mybk{margin-top:10px}
.mybk h4{font-family:var(--display);font-size:17px;margin:0 0 8px;background:var(--card);display:inline-block;padding:4px 10px;border-radius:8px}
.mybk ul{list-style:none;margin:0 0 8px;padding:0;font-size:16px}
.mybk li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.mybk li button{background:none;border:0;color:var(--err);cursor:pointer;font:500 16px var(--body);min-height:44px;padding:0 8px}
/* larger touch area for inline links without changing the layout */
.tap{display:inline-block;padding:11px 0;margin:-11px 0}
@media (max-width:880px){.booking{grid-template-columns:1fr}.bk-side{border-left:0;border-top:1px solid var(--line)}}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{cursor:pointer;font-family:var(--display);font-size:20px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px}
.faq summary::after{content:"+";color:var(--leaf);font-size:24px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--muted);margin:10px 0 0;max-width:62ch}
.two{display:grid;grid-template-columns:1fr 1.3fr;gap:60px}
@media (max-width:880px){.two{grid-template-columns:1fr;gap:30px}}

/* visit */
.visit{background:var(--leaf);color:var(--paper);border-radius:28px;padding:56px;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.visit h2{font-size:clamp(30px,4vw,44px)}
.visit p{color:color-mix(in srgb,var(--paper) 80%,transparent)}
.visit dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 20px}
.visit dt{opacity:.7}
.visit dd{margin:0}
.visit .btn-primary{background:var(--paper);color:var(--leaf)}
@media (max-width:880px){.visit{grid-template-columns:1fr;padding:34px}}
footer{padding:40px 0 50px;color:var(--muted);font-size:16px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
