/* ===== Font: Vazirmatn (self-hosted, variable weight, OFL) ===== */
@font-face{font-family:'Vazirmatn';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/vazirmatn.woff2') format('woff2-variations'),url('../fonts/vazirmatn.woff2') format('woff2')}

/* ===== Design tokens — warm ivory, deep plum, champagne gold ===== */
:root{
  --bg:#faf6f2;--surface:#fff;--surface-2:#f7f1ec;--surface-3:#f0e7e0;
  --ink:#21161a;--ink-2:#43353a;--muted:#86787c;
  --line:#efe5df;--line-2:#e2d5cd;
  --accent:#8c2f4f;--accent-2:#b04a6d;--accent-ink:#6e2340;--accent-soft:#f7e9ee;
  --gold:#c9a15b;--gold-2:#e6c88d;--gold-soft:#f7efdf;
  --ok:#15803d;--ok-soft:#e9f6ee;--danger:#c62828;--danger-soft:#fdeded;--warn:#a15c07;--warn-soft:#fff6e6;
  --r-xs:.625rem;--r-sm:.875rem;--r:1.125rem;--r-lg:1.5rem;--r-xl:2rem;--pill:999px;
  --gutter:clamp(1rem,3.2vw,2rem);
  --gap:clamp(.75rem,1.6vw,1.25rem);
  --fs-xs:clamp(.6875rem,.66rem + .12vw,.75rem);
  --fs-sm:clamp(.75rem,.72rem + .15vw,.8125rem);
  --fs-md:clamp(.8125rem,.78rem + .2vw,.9375rem);
  --fs-lg:clamp(.9375rem,.88rem + .3vw,1.125rem);
  --fs-xl:clamp(1.125rem,1rem + .6vw,1.5rem);
  --fs-2xl:clamp(1.625rem,1.1rem + 2.2vw,2.875rem);
  --shadow-sm:0 1px 2px rgba(60,30,40,.05);
  --shadow:0 2px 4px rgba(60,30,40,.04),0 10px 28px rgba(60,30,40,.07);
  --shadow-lg:0 18px 44px rgba(40,15,25,.2);
  --shadow-accent:0 8px 20px rgba(140,47,79,.3);
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6.5rem}
body{margin:0;font-family:'Vazirmatn',Tahoma,system-ui,sans-serif;font-size:var(--fs-md);line-height:1.75;background:var(--bg);color:var(--ink);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,b,strong,th{font-weight:600}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3{line-height:1.45}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.shell{width:100%;max-width:76rem;margin-inline:auto;padding-inline:var(--gutter)}
.main-content{flex:1;padding-block:clamp(.75rem,2vw,1.5rem) clamp(2rem,5vw,3.5rem)}
.link{color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:3px}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:40;padding-top:calc(env(safe-area-inset-top) + clamp(.5rem,1.2vw,.875rem));pointer-events:none}
.site-header .shell{pointer-events:auto}
.header-inner{position:relative;display:flex;align-items:center;gap:clamp(.5rem,1.5vw,1rem);padding:.5rem;padding-inline-start:.625rem;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border:1px solid rgba(255,255,255,.9);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:.625rem;flex-shrink:0}
.brand-mark{width:2.5rem;height:2.5rem;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--accent-2),var(--accent));color:var(--gold-2);display:grid;place-items:center;box-shadow:var(--shadow-accent)}
.brand-mark .ic{width:1.3rem;height:1.3rem}
.brand-text b{display:block;font-size:var(--fs-lg);font-weight:700;line-height:1.2;white-space:nowrap}
.brand-text small{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.3;white-space:nowrap}
.top-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:.125rem;min-width:0}
.nav-link{padding:.4375rem .75rem;border-radius:var(--pill);font-weight:500;font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;transition:background .2s,color .2s}
.nav-link:hover{background:var(--surface-2)}
.nav-link.on{background:var(--accent-soft);color:var(--accent-ink)}
.header-actions{display:flex;align-items:center;gap:.375rem;flex-shrink:0;margin-inline-start:auto}
.menu-toggle{display:none;width:2.75rem;height:2.75rem;border:0;border-radius:var(--r-sm);background:var(--surface-2);place-items:center;color:var(--ink)}

/* ===== Buttons ===== */
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.5rem;min-height:2.875rem;padding-inline:1.375rem;border:1px solid transparent;border-radius:var(--pill);font-weight:600;font-size:var(--fs-md);white-space:nowrap;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s var(--ease)}
.btn:active{transform:scale(.98)}
.btn .ic{width:1.1rem;height:1.1rem}
.btn.small{min-height:2.625rem;padding-inline:1rem;font-size:var(--fs-sm)}
.btn.primary{background:linear-gradient(135deg,var(--accent-2),var(--accent));color:#fff;box-shadow:var(--shadow-accent)}
.btn.primary:hover{background:linear-gradient(135deg,var(--accent),var(--accent-ink))}
.btn.secondary{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
.btn.secondary:hover{background:var(--surface-2)}
.btn.ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.16)}
.btn.big{width:100%;min-height:3.25rem;font-size:var(--fs-lg)}
.btn.danger-ghost{background:transparent;border-color:#f3c9c9;color:var(--danger)}
.btn.danger-ghost:hover{background:var(--danger-soft)}
.btn[disabled]{opacity:.6;pointer-events:none}
.text-link{display:inline-flex;align-items:center;gap:.375rem;padding:.4375rem .875rem;border-radius:var(--pill);background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-weight:500;font-size:var(--fs-sm);white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.text-link:hover{color:var(--accent-ink);border-color:var(--accent-soft);background:var(--accent-soft)}
.text-link .ic{width:1rem;height:1rem}
.muted{display:block;color:var(--muted);font-size:var(--fs-xs);margin-top:.75rem;text-align:center;line-height:1.8}

/* ===== Hero ===== */
.hero{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,3vw,2.5rem);padding:clamp(1.5rem,4.5vw,3.5rem);border-radius:var(--r-xl);background:linear-gradient(135deg,#2a1520 0%,#1f1418 55%,#3b1a2a 100%);color:#fff;margin-top:clamp(.5rem,1.5vw,1rem)}
.hero::before,.hero::after{content:'';position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.hero::before{width:34rem;height:34rem;inset-inline-end:-12rem;top:-16rem;background:radial-gradient(circle,rgba(201,161,91,.38),transparent 65%)}
.hero::after{width:24rem;height:24rem;inset-inline-start:-8rem;bottom:-14rem;background:radial-gradient(circle,rgba(176,74,109,.45),transparent 65%)}
.hero-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .75rem;border-radius:var(--pill);background:rgba(255,255,255,.08);border:1px solid rgba(230,200,141,.3);font-size:var(--fs-xs);font-weight:500;color:var(--gold-2);margin-bottom:1rem}
.hero-badge .ic{width:1rem;height:1rem}
.hero h1{font-size:var(--fs-2xl);font-weight:800;margin:0 0 .75rem;line-height:1.35;letter-spacing:-.01em}
.hero h1 em{display:block;font-style:normal;font-weight:600;font-size:.62em;margin-top:.25rem;background:linear-gradient(90deg,var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{margin:0;color:rgba(255,255,255,.72);font-size:var(--fs-md);max-width:34rem;line-height:1.95}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem;margin-top:clamp(1.125rem,2.5vw,1.75rem)}
.hero-stats{list-style:none;margin:clamp(1.25rem,3vw,2rem) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:clamp(.75rem,2.5vw,2rem)}
.hero-stats li{display:flex;flex-direction:column;padding-inline-start:.875rem;border-inline-start:2px solid rgba(201,161,91,.5)}
.hero-stats b{font-size:var(--fs-xl);font-weight:700;color:#fff;line-height:1.3}
.hero-stats span{font-size:var(--fs-xs);color:rgba(255,255,255,.6)}
.hero-art{position:relative;justify-self:center;width:min(100%,24rem);aspect-ratio:1}
.hero-art .frame{position:absolute;overflow:hidden;background:rgba(255,255,255,.06);border:5px solid rgba(255,255,255,.1);box-shadow:0 20px 50px rgba(0,0,0,.35);display:grid;place-items:center;color:rgba(230,200,141,.45)}
.hero-art .frame img{width:100%;height:100%;object-fit:cover}
.hero-art .frame .ic{width:34%;height:34%;stroke-width:1.1}
.hero-art .f1{inset:4% 4% 18% 20%;border-radius:12rem 12rem var(--r-lg) var(--r-lg)}
.hero-art .f2{width:42%;height:42%;inset-inline-end:0;bottom:0;border-radius:var(--r-lg)}
.hero-art .f3{width:30%;height:30%;inset-inline-start:0;top:8%;border-radius:50%}
.hero-art .blank{background:linear-gradient(135deg,rgba(176,74,109,.35),rgba(201,161,91,.15))}
.hero-art .float-tag{position:absolute;inset-inline-start:-4%;bottom:8%;display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem .5rem .75rem;border-radius:var(--r-sm);background:#fff;color:var(--ink);box-shadow:var(--shadow-lg);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.hero-art .float-tag span{width:1.75rem;height:1.75rem;border-radius:var(--r-xs);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.hero-art .float-tag .ic{width:1rem;height:1rem}

/* ===== Availability check bar ===== */
.check-bar{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.75rem;margin:calc(clamp(1rem,2.5vw,1.75rem) * -1) clamp(.75rem,3vw,2.5rem) 0;padding:clamp(.875rem,2vw,1.25rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.check-title{display:flex;align-items:center;gap:.75rem;align-self:center}
.check-title b,.check-title small{display:block}
.check-title small{color:var(--muted);font-size:var(--fs-xs);line-height:1.6}
.check-bar label{display:flex;flex-direction:column;gap:.25rem;font-size:var(--fs-xs);font-weight:600;color:var(--ink-2)}
.check-bar select,.check-bar input{height:2.875rem;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-sm);padding-inline:.875rem;font-size:1rem;outline:none}
.check-bar select:focus,.check-bar input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px var(--accent-soft)}

/* ===== Blocks / headings ===== */
.block{margin-top:clamp(2rem,5vw,3.5rem)}
.block-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:clamp(.875rem,2vw,1.25rem)}
.block-head h2{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xl);font-weight:700;margin:.375rem 0 0}
.eyebrow{display:inline-flex;align-items:center;gap:.375rem;padding:.1875rem .75rem;border-radius:var(--pill);background:var(--gold-soft);font-size:var(--fs-xs);color:#8a6420;font-weight:600}
.page-head{margin:clamp(1rem,2.5vw,1.75rem) 0 clamp(1rem,2.5vw,1.5rem);max-width:46rem}
.page-head h1{font-size:var(--fs-2xl);font-weight:800;margin:.5rem 0 .25rem;line-height:1.35}
.page-head p{margin:0;color:var(--muted);font-size:var(--fs-md);line-height:1.95}
.count-badge{display:inline-grid;place-items:center;min-width:1.75rem;height:1.625rem;padding-inline:.5rem;border-radius:var(--pill);background:var(--surface-3);color:var(--ink-2);font-size:var(--fs-xs);font-weight:600}
.crumbs{display:flex;align-items:center;gap:.375rem;margin:clamp(.75rem,2vw,1.25rem) 0 .75rem;font-size:var(--fs-sm);color:var(--muted)}
.crumbs a:hover{color:var(--accent)}
.crumbs .ic{width:.9rem;height:.9rem}
.soft-icon{width:2.875rem;height:2.875rem;flex-shrink:0;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.soft-icon .ic{width:1.35rem;height:1.35rem}
.card,.summary-card,.form-card,.status-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.125rem,2.6vw,1.75rem);box-shadow:var(--shadow-sm)}
.card-title{font-size:var(--fs-lg);font-weight:700;margin:0 0 .75rem}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap);align-items:start;margin-top:var(--gap)}
.two-col>div{display:flex;flex-direction:column;gap:var(--gap)}
.prose{margin:0;color:var(--ink-2);line-height:2}
.chip-bar{display:flex;gap:.5rem;overflow-x:auto;padding-block:.25rem .875rem;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scrollbar-width:none}
.chip-bar::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;display:inline-flex;align-items:center;gap:.375rem;height:2.5rem;padding-inline:1.125rem;border-radius:var(--pill);background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-weight:500;font-size:var(--fs-sm);white-space:nowrap;box-shadow:var(--shadow-sm);transition:background .2s,border-color .2s,color .2s}
.chip small{color:var(--muted);font-size:var(--fs-xs)}
.chip:hover{border-color:var(--line-2)}
.chip.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}
.chip.active small{color:rgba(255,255,255,.75)}

/* ===== Halls ===== */
.hall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:var(--gap)}
.hall-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .25s,transform .25s var(--ease)}
.hall-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.hall-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft))}
.hall-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.hall-card:hover .hall-media img{transform:scale(1.04)}
.ph{width:100%;height:100%;display:grid;place-items:center;color:rgba(140,47,79,.28)}
.ph .ic{width:30%;height:30%;stroke-width:1.1}
.cap-badge{position:absolute;bottom:.75rem;inset-inline-start:.75rem;display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:var(--pill);background:rgba(255,255,255,.94);color:var(--ink);font-size:var(--fs-xs);font-weight:600;box-shadow:var(--shadow-sm)}
.cap-badge .ic{width:.95rem;height:.95rem;color:var(--accent)}
.hall-body{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.125rem 1.125rem}
.hall-body h3{margin:0;font-size:var(--fs-lg);font-weight:700}
.hall-body p{margin:0;color:var(--muted);font-size:var(--fs-sm);line-height:1.8}
.mini-feats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.375rem}
.mini-feats li{display:inline-flex;align-items:center;gap:.25rem;padding:.1875rem .625rem;border-radius:var(--pill);background:var(--surface-2);font-size:var(--fs-xs);color:var(--ink-2)}
.mini-feats .ic{width:.85rem;height:.85rem;color:var(--accent)}
.hall-foot{margin-top:auto;padding-top:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.price{font-size:var(--fs-lg);font-weight:700;white-space:nowrap}
.price small{font-size:var(--fs-xs);font-weight:500;color:var(--muted);margin-inline:.25rem}
.hall-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1rem,3vw,2rem);align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(.75rem,1.6vw,1rem);box-shadow:var(--shadow-sm)}
.hall-hero-media{aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft))}
.hall-hero-media img{width:100%;height:100%;object-fit:cover}
.hall-hero-info{padding:clamp(.25rem,2vw,1rem)}
.hall-hero-info h1{font-size:var(--fs-2xl);font-weight:800;margin:.5rem 0 .25rem}
.lead{margin:0 0 1rem;color:var(--muted);font-size:var(--fs-lg);line-height:1.9}
.spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}
.spec-grid div{display:grid;grid-template-columns:auto 1fr;column-gap:.625rem;align-items:center;padding:.75rem .875rem;border-radius:var(--r);background:var(--surface-2)}
.spec-grid .ic{grid-row:span 2;width:1.4rem;height:1.4rem;color:var(--accent)}
.spec-grid small{color:var(--muted);font-size:var(--fs-xs)}
.spec-grid b{font-size:var(--fs-sm)}
.feat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:.5rem}
.feat-list li{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);padding:.5rem .75rem;border-radius:var(--r-sm);background:var(--surface-2)}
.feat-list .ic{width:1rem;height:1rem;color:var(--ok);stroke-width:2.4}

/* ===== Events ===== */
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:var(--gap)}
.event-card{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color .2s,box-shadow .25s,transform .25s var(--ease)}
.event-card:hover{border-color:var(--accent-soft);box-shadow:var(--shadow);transform:translateY(-3px)}
.event-card h3{margin:.25rem 0 0;font-size:var(--fs-lg);font-weight:700}
.event-card p{margin:0;color:var(--muted);font-size:var(--fs-sm);line-height:1.85}

/* ===== Packages ===== */
.package-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:var(--gap);align-items:stretch}
.package{position:relative;display:flex;flex-direction:column;gap:.375rem;padding:clamp(1.25rem,2.5vw,1.75rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm)}
.package.featured{background:linear-gradient(180deg,#2a1520,#1f1418);color:#fff;border-color:transparent;box-shadow:var(--shadow-lg)}
.ribbon{position:absolute;top:1rem;inset-inline-end:1rem;display:inline-flex;align-items:center;gap:.25rem;padding:.1875rem .625rem;border-radius:var(--pill);background:linear-gradient(90deg,var(--gold-2),var(--gold));color:#3b2508;font-size:var(--fs-xs);font-weight:700}
.ribbon .ic{width:.9rem;height:.9rem}
.package h3{margin:0;font-size:var(--fs-xl);font-weight:700}
.pk-tag{margin:0;color:var(--muted);font-size:var(--fs-sm)}
.featured .pk-tag,.featured .pk-min{color:rgba(255,255,255,.62)}
.pk-price{display:flex;align-items:baseline;gap:.375rem;margin-top:.5rem}
.pk-price b{font-size:var(--fs-2xl);font-weight:800;color:var(--accent)}
.featured .pk-price b{color:var(--gold-2)}
.pk-price span{font-size:var(--fs-xs);color:var(--muted)}
.featured .pk-price span{color:rgba(255,255,255,.6)}
.pk-min{font-size:var(--fs-xs);color:var(--muted)}
.package ul{list-style:none;margin:.75rem 0 1.25rem;padding:.875rem 0 0;border-top:1px dashed var(--line-2);display:flex;flex-direction:column;gap:.5rem;flex:1}
.featured ul{border-color:rgba(255,255,255,.15)}
.package li{display:flex;gap:.5rem;font-size:var(--fs-sm);line-height:1.8}
.package li .ic{width:1rem;height:1rem;margin-top:.3rem;color:var(--ok);stroke-width:2.4}
.featured li .ic{color:var(--gold-2)}
.featured .btn.primary{background:linear-gradient(90deg,var(--gold-2),var(--gold));color:#3b2508;box-shadow:none}
.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:var(--gap)}
.service{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.875rem;padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.service h3{margin:0;font-size:var(--fs-md)}
.service p{margin:0;font-size:var(--fs-xs);color:var(--muted)}
.service strong{white-space:nowrap;font-size:var(--fs-sm)}
.service strong small{color:var(--muted);font-weight:500}

/* ===== Amenities ===== */
.amenity-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:var(--gap)}
.amenity-list li{display:grid;grid-template-columns:auto 1fr;column-gap:.875rem;align-items:center;padding:1rem 1.125rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.amenity-list .ic{grid-row:span 2;width:2.75rem;height:2.75rem;padding:.625rem;border-radius:var(--r-sm);background:var(--gold-soft);color:#8a6420}
.amenity-list b{font-size:var(--fs-md)}
.amenity-list span{font-size:var(--fs-xs);color:var(--muted)}

/* ===== Gallery ===== */
.gallery-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}
.gallery-strip.small{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.75rem}
.g-item{position:relative;display:block;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--surface-3)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.g-item:hover img{transform:scale(1.05)}
.g-item span{position:absolute;inset-inline:0;bottom:0;padding:1.5rem .75rem .5rem;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:var(--fs-xs);font-weight:500}
.lightbox{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:var(--gutter);background:rgba(15,8,11,.92)}
.lightbox img{max-width:100%;max-height:80vh;border-radius:var(--r);object-fit:contain}
.lightbox p{margin:0;color:rgba(255,255,255,.8);font-size:var(--fs-sm)}
.lightbox button{position:absolute;top:1rem;inset-inline-end:1rem;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center}

/* ===== Reviews / FAQ / CTA ===== */
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:var(--gap)}
.review{margin:0;display:flex;flex-direction:column;gap:.625rem;padding:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.stars{display:flex;gap:.125rem;color:var(--gold)}
.stars .ic{width:1rem;height:1rem;fill:currentColor;stroke-width:1}
.review blockquote{margin:0;color:var(--ink-2);font-size:var(--fs-sm);line-height:2;flex:1}
.review figcaption b{display:block;font-size:var(--fs-sm)}
.review figcaption span{font-size:var(--fs-xs);color:var(--muted)}
.faq-list{display:flex;flex-direction:column;gap:.5rem;max-width:52rem}
.faq-list details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.125rem;font-weight:600;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .ic{width:1.1rem;height:1.1rem;color:var(--accent);transition:transform .25s var(--ease)}
.faq-list details[open] summary .ic{transform:rotate(45deg)}
.faq-list details p{margin:0;padding:0 1.125rem 1rem;color:var(--ink-2);font-size:var(--fs-sm);line-height:2}
.cta-band{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem;margin-top:clamp(2rem,5vw,3.5rem);padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--r-xl);background:linear-gradient(120deg,var(--accent-ink),var(--accent) 60%,var(--accent-2));color:#fff}
.cta-band::after{content:'';position:absolute;width:20rem;height:20rem;inset-inline-start:-6rem;top:-10rem;border-radius:50%;background:radial-gradient(circle,rgba(230,200,141,.35),transparent 65%);pointer-events:none}
.cta-band h2{margin:0 0 .25rem;font-size:var(--fs-xl);font-weight:700}
.cta-band p{margin:0;color:rgba(255,255,255,.8);font-size:var(--fs-sm);max-width:36rem}
.cta-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.5rem}
.cta-band .btn.primary{background:#fff;color:var(--accent-ink);box-shadow:none}

/* ===== Calendar ===== */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}
.cal-head h3{margin:0;font-size:var(--fs-lg);font-weight:700}
.cal-nav{width:2.5rem;height:2.5rem;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);transition:background .2s}
.cal-nav:hover{background:var(--accent-soft);color:var(--accent)}
.cal-legend{display:flex;flex-wrap:wrap;gap:.875rem;margin-bottom:.75rem;font-size:var(--fs-xs);color:var(--muted)}
.cal-legend span{display:inline-flex;align-items:center;gap:.375rem}
.cal-legend i{width:.75rem;height:.75rem;border-radius:.25rem}
i.free{background:var(--ok-soft);border:1px solid #bfe3cc}
i.pending{background:var(--warn-soft);border:1px solid #f4d7a6}
i.booked{background:var(--accent-soft);border:1px solid #e7c3d0}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3125rem}
.cal-wd{text-align:center;font-size:var(--fs-xs);color:var(--muted);font-weight:600;padding:.25rem 0}
.cal-cell{min-height:5.25rem;display:flex;flex-direction:column;gap:.25rem;padding:.375rem;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid transparent}
.cal-cell.pad{background:transparent}
.cal-cell.past{opacity:.45}
.cal-cell.today{border-color:var(--accent)}
.cal-cell.picked{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}
.cal-cell.fri .cal-day{color:var(--accent)}
.cal-day{font-size:var(--fs-sm);font-weight:700}
.cal-shifts{display:flex;flex-direction:column;gap:.1875rem}
.sh{display:block;text-align:center;padding:.0625rem .25rem;border-radius:.4375rem;font-size:.6875rem;font-weight:600;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh.free{background:var(--ok-soft);color:var(--ok);border:1px solid #cfead9;transition:background .15s,color .15s}
a.sh.free:hover{background:var(--ok);color:#fff}
.sh.free.soon{background:transparent;color:var(--muted);border:1px dashed var(--line-2)}
.sh.pending{background:var(--warn-soft);color:var(--warn)}
.sh.booked{background:var(--accent-soft);color:var(--accent-ink);text-decoration:line-through;text-decoration-thickness:1px}
.cal-note{margin:.875rem 0 0;font-size:var(--fs-xs);color:var(--muted);line-height:1.9}

/* ===== Menu ===== */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:var(--gap)}
.menu-item{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.875rem;align-items:center;padding:.5rem;padding-inline-end:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.mi-thumb{aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));display:grid;place-items:center;color:#d6c6bc}
.mi-thumb img{width:100%;height:100%;object-fit:cover}
.mi-thumb .ic{width:40%;height:40%;stroke-width:1.3}
.mi-body h3{margin:0;font-size:var(--fs-md)}
.mi-body p{margin:0 0 .25rem;font-size:var(--fs-xs);color:var(--muted);line-height:1.7}
.mi-body .price{font-size:var(--fs-sm)}

/* ===== Forms / reserve ===== */
.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) min(100%,24rem);gap:clamp(.875rem,2.2vw,1.5rem);align-items:start}
.form-stack{display:flex;flex-direction:column;gap:var(--gap)}
.summary-card{position:sticky;top:6.5rem}
.card-head{display:flex;align-items:center;gap:.875rem;margin-bottom:1.25rem}
.card-head .card-title{margin:0}
.card-head p{margin:0;color:var(--muted);font-size:var(--fs-sm)}
.stack-form{display:flex;flex-direction:column;gap:1.125rem}
.stack-form.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.field{display:flex;flex-direction:column;gap:.4375rem;min-width:0}
.field.full{grid-column:1/-1}
.field-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}
.form-card input:not([type=radio]):not([type=checkbox]),.form-card textarea,.form-card select,.summary-card input{width:100%;min-height:3rem;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-sm);padding:.6875rem 1rem;font-size:1rem;outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus,.summary-card input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--accent-soft)}
.form-card textarea{resize:vertical;min-height:6rem;line-height:1.8}
::placeholder{color:#b3a6a0}
.has-error input,.has-error select,.has-error textarea{border-color:#efb4b4!important}
.error{color:var(--danger);font-size:var(--fs-xs);line-height:1.8}
.hint{color:var(--muted);font-size:var(--fs-xs)}
.field>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.625rem}
.field>div>div{display:contents}
.field>div label{display:flex;align-items:center;gap:.625rem;border:1.5px solid var(--line);background:var(--surface-2);border-radius:var(--r-sm);padding:.8125rem 1rem;cursor:pointer;font-weight:500;font-size:var(--fs-sm);transition:.2s}
.field>div label:hover{border-color:var(--line-2)}
.field input[type=radio],.field input[type=checkbox]{accent-color:var(--accent);width:1.1rem;height:1.1rem;margin:0;flex-shrink:0}
.field>div label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.6875rem 0;border-bottom:1px dashed var(--line-2);font-size:var(--fs-sm)}
.summary-row span{color:var(--muted)}
.summary-row span small{display:block;font-size:.6875rem}
.summary-row strong{font-weight:600;white-space:nowrap}
.summary-row.discount strong{color:var(--ok)}
.summary-total{display:flex;justify-content:space-between;align-items:center;margin:1rem 0 .25rem;padding:.875rem 1rem;border-radius:var(--r);background:var(--surface-2);font-size:var(--fs-md);font-weight:600}
.summary-total strong{font-size:var(--fs-xl);font-weight:800;color:var(--accent-ink)}
.summary-total small{font-size:var(--fs-xs);color:var(--muted);font-weight:500}
.warn-note{display:block;margin-top:.5rem;padding:.5rem .75rem;border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn);font-size:var(--fs-xs)}
.discount-field{margin:1rem 0}
.discount-row{display:flex;gap:.5rem}
.discount-row input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.04em}
.discount-row input::placeholder{text-transform:none;letter-spacing:0}
.discount-row .btn{min-height:3rem;flex-shrink:0}
.discount-msg{font-size:var(--fs-xs)}
.discount-msg:empty{display:none}
.discount-msg.ok{color:var(--ok);font-weight:600}
.discount-msg.error{color:var(--danger)}
.alert{margin-bottom:1rem;padding:.875rem 1rem;border-radius:var(--r);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm)}
.narrow-wrap{max-width:34rem;margin-inline:auto;display:flex;flex-direction:column;gap:var(--gap)}
.narrow-wrap .page-head{margin-bottom:0}
.mine-list{display:flex;flex-direction:column}
.mine-list a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.mine-list a:last-child{border-bottom:0}
.mine-list b,.mine-list small{display:block}
.mine-list small{color:var(--muted);font-size:var(--fs-xs)}
.status{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.status-pending{background:var(--warn-soft);color:var(--warn)}
.status-approved{background:#e6f0ff;color:#1d4ed8}
.status-booked,.status-done{background:var(--ok-soft);color:var(--ok)}
.status-rejected,.status-cancelled{background:var(--danger-soft);color:var(--danger)}

/* ===== Reservation tracking ===== */
.order-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,#fff 40%,var(--accent-soft));border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.125rem,3vw,2rem);margin:clamp(.75rem,2vw,1.25rem) 0 clamp(.875rem,2.2vw,1.5rem)}
.order-hero-main{display:flex;align-items:center;gap:1rem}
.done-mark{width:3.25rem;height:3.25rem;flex-shrink:0;border-radius:var(--r);background:var(--ok);color:#fff;display:grid;place-items:center;box-shadow:0 8px 20px rgba(21,128,61,.28)}
.done-mark.bad{background:var(--danger);box-shadow:none}
.done-mark .ic{width:1.6rem;height:1.6rem;stroke-width:2.4}
.order-hero h1{font-size:var(--fs-xl);font-weight:700;margin:.375rem 0 .125rem}
.order-hero h1 span{color:var(--accent-ink);letter-spacing:.06em}
.order-hero p{margin:0;color:var(--muted);font-size:var(--fs-sm)}
.live-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--pill);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);font-weight:600;box-shadow:var(--shadow-sm)}
.live-badge i{width:.5rem;height:.5rem;border-radius:50%;background:var(--ok);animation:pulse 1.6s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(21,128,61,.45)}100%{box-shadow:0 0 0 .5rem rgba(21,128,61,0)}}
.timeline{position:relative;display:flex;flex-direction:column;gap:.375rem}
.timeline::before{content:'';position:absolute;inset-inline-start:1.75rem;top:1.5rem;bottom:1.5rem;width:2px;background:var(--line)}
.timeline-step{display:grid;grid-template-columns:2.5rem 1fr;gap:.875rem;align-items:center;padding:.625rem;border-radius:var(--r);position:relative}
.timeline-step>span{width:2.5rem;height:2.5rem;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface);border:1.5px solid var(--line-2);color:var(--muted);font-size:var(--fs-sm);font-weight:600;z-index:1}
.timeline-step strong,.timeline-step small{display:block}
.timeline-step small{font-size:var(--fs-xs);color:var(--muted)}
.timeline-step.done>span{background:var(--ok-soft);border-color:#bfe3cc;color:var(--ok)}
.timeline-step.current{background:var(--accent-soft)}
.timeline-step.current>span{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}
.timeline-step.current strong{color:var(--accent-ink)}
.cancelled-note{margin-top:.875rem;padding:.875rem 1rem;border-radius:var(--r);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm)}
.staff-note{display:flex;gap:.75rem;margin-top:.875rem;padding:1rem;border-radius:var(--r);background:var(--gold-soft);color:#6b4b14}
.staff-note .ic{width:1.3rem;height:1.3rem;margin-top:.2rem}
.staff-note p{margin:.125rem 0 0;font-size:var(--fs-sm);line-height:1.9}
.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}
.detail-list div{padding:.75rem .875rem;border-radius:var(--r);background:var(--surface-2)}
.detail-list .full{grid-column:1/-1}
.detail-list small,.detail-list b{display:block}
.detail-list small{font-size:var(--fs-xs);color:var(--muted)}
.detail-list b{font-size:var(--fs-sm);font-weight:500;line-height:1.9}
.summary-card .btn.big{margin-top:.75rem}
.cancel-form{margin:0}

/* ===== Contact ===== */
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.875rem}
.contact-list li{display:flex;align-items:center;gap:.875rem}
.contact-list small{display:block;color:var(--muted);font-size:var(--fs-xs)}
.contact-list a:not(.link),.contact-list b{font-weight:600;font-size:var(--fs-md)}
.contact-list .link{display:inline-block;margin-inline-start:.5rem;font-size:var(--fs-xs)}
.social-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.map-card{padding:0;overflow:hidden;min-height:20rem;display:flex}
.map-card iframe{flex:1;border:0;min-height:20rem;width:100%}
.map-ph{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:var(--muted);background:linear-gradient(135deg,var(--surface-2),var(--gold-soft))}
.map-ph .ic{width:3rem;height:3rem;color:var(--accent);stroke-width:1.4}
.map-ph p{margin:0;font-size:var(--fs-sm)}

/* ===== Empty state ===== */
.empty-state{grid-column:1/-1;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(2.25rem,6vw,4rem) 1.25rem}
.empty-icon{width:4rem;height:4rem;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin:0 auto 1rem}
.empty-icon .ic{width:1.75rem;height:1.75rem}
.empty-state h3{margin:0 0 .25rem;font-size:var(--fs-xl)}
.empty-state p{color:var(--muted);margin:0;font-size:var(--fs-sm)}

/* ===== Toasts ===== */
.messages-stack{position:fixed;z-index:60;top:calc(env(safe-area-inset-top) + 5.5rem);inset-inline:var(--gutter);display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}
.messages-stack:empty{display:none}
.toast{pointer-events:auto;max-width:30rem;padding:.6875rem 1.25rem;border-radius:var(--pill);background:var(--ink);color:#fff;font-size:var(--fs-sm);font-weight:500;box-shadow:var(--shadow-lg);animation:toast-in .25s var(--ease);transition:opacity .25s,transform .25s}
.toast.error,.toast.warning{background:var(--danger)}
.toast.out{opacity:0;transform:translateY(-.5rem)}
@keyframes toast-in{from{opacity:0;transform:translateY(-.5rem) scale(.96)}}

/* ===== Footer ===== */
.site-footer{padding-block:0 clamp(.875rem,2vw,1.5rem);color:rgba(255,255,255,.62);font-size:var(--fs-sm)}
.footer-card{position:relative;overflow:hidden;background:var(--ink);border-radius:var(--r-xl);padding:clamp(1.5rem,3.5vw,2.5rem)}
.footer-card::before{content:'';position:absolute;width:24rem;height:24rem;inset-inline-start:-8rem;top:-14rem;border-radius:50%;background:radial-gradient(circle,rgba(201,161,91,.25),transparent 65%);pointer-events:none}
.footer-top{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.75rem}
.footer-brand{display:flex;align-items:center;gap:.625rem;font-size:var(--fs-xl);font-weight:700;color:#fff}
.footer-brand .brand-mark{width:2.375rem;height:2.375rem}
.footer-about{max-width:24rem}
.footer-about p{margin:.625rem 0 .875rem;line-height:1.9}
.footer-chip{display:flex;align-items:center;gap:.5rem;width:fit-content;margin-top:.375rem;padding:.4375rem .875rem;border-radius:var(--pill);background:rgba(255,255,255,.07);font-size:var(--fs-xs);color:rgba(255,255,255,.85)}
.footer-chip .ic{width:1rem;height:1rem;color:var(--gold)}
.footer-cols{display:flex;gap:clamp(2rem,6vw,4rem)}
.footer-cols div{display:flex;flex-direction:column;gap:.5rem}
.footer-cols b{color:#fff;margin-bottom:.25rem}
.footer-cols a:hover{color:#fff}
.footer-social{display:flex;gap:.5rem}
.footer-social a{width:2.75rem;height:2.75rem;border-radius:var(--r-sm);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;transition:background .2s}
.footer-social a:hover{background:var(--accent)}
.footer-bottom{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.75rem;padding-top:1.125rem;border-top:1px solid rgba(255,255,255,.1);font-size:var(--fs-xs)}
.footer-links{display:flex;gap:.5rem}
.footer-links a{color:rgba(255,255,255,.85);font-weight:500;padding:.3125rem .75rem;border-radius:var(--pill);background:rgba(255,255,255,.06)}
.footer-links a:hover{background:rgba(255,255,255,.14)}

/* ===== Mobile quick-contact bar ===== */
.quick-bar{display:none}

/* ===== Responsive ===== */
@media (max-width:68rem){
  .menu-toggle{display:grid}
  .top-nav{position:absolute;top:calc(100% + .5rem);inset-inline:0;flex-direction:column;align-items:stretch;gap:.125rem;padding:.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-.5rem);transition:opacity .2s,transform .2s var(--ease),visibility .2s}
  .top-nav.open{opacity:1;visibility:visible;transform:none}
  .nav-link{padding:.75rem 1rem;font-size:var(--fs-md)}
}
@media (max-width:56rem){
  .checkout-layout,.two-col,.hall-hero{grid-template-columns:minmax(0,1fr)}
  .summary-card{position:static}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero-art{display:none}
  .check-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-inline:0;margin-top:var(--gap)}
  .check-title{grid-column:1/-1}
  .check-bar .btn{grid-column:1/-1}
  .hall-hero-media{aspect-ratio:16/10}
}
@media (max-width:40rem){
  html{scroll-padding-top:5rem}
  .brand-text small{display:none}
  .header-actions .btn span{display:none}
  .header-actions .btn{width:2.75rem;padding:0}
  .hero{border-radius:var(--r-lg)}
  .hero-actions .btn{flex:1}
  .stack-form.grid-2,.detail-list,.spec-grid{grid-template-columns:minmax(0,1fr)}
  .gallery-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .cal-grid{gap:.1875rem}
  .cal-cell{min-height:4.5rem;padding:.25rem .1875rem}
  .cal-wd{font-size:.625rem}
  .sh{font-size:.5625rem;padding:0 .125rem}
  .card,.summary-card,.form-card,.status-card,.order-hero,.footer-card,.empty-state,.package,.hall-card,.cta-band{border-radius:var(--r-lg)}
  .footer-top,.footer-bottom{flex-direction:column;align-items:flex-start}
  .quick-bar{position:fixed;z-index:50;inset-inline:.625rem;bottom:calc(env(safe-area-inset-bottom) + .625rem);display:flex;gap:.375rem;padding:.375rem;border-radius:var(--pill);background:rgba(33,22,26,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-lg)}
  .quick-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;min-height:2.75rem;border-radius:var(--pill);color:#fff;font-size:var(--fs-sm);font-weight:600;background:rgba(255,255,255,.08)}
  .quick-bar a.go{flex:1.6;background:linear-gradient(135deg,var(--accent-2),var(--accent))}
  .quick-bar .ic{width:1.1rem;height:1.1rem}
  .site-footer{padding-bottom:calc(env(safe-area-inset-bottom) + 5rem)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ==========================================================
   Cafe-Museum Arak / Cafe Khorshid — public visual identity
   Staging redesign layer; existing form components retained.
   ========================================================== */
:root{
  --bg:#f6f4ec;
  --surface:#fffef9;
  --surface-2:#edf5f1;
  --surface-3:#dcebe4;
  --ink:#183a36;
  --ink-2:#38534d;
  --muted:#6f8179;
  --line:#dce7df;
  --line-2:#bfd4ca;
  --accent:#0e766e;
  --accent-2:#15978a;
  --accent-ink:#075b55;
  --accent-soft:#dff3ed;
  --gold:#c28b35;
  --gold-2:#efd59a;
  --gold-soft:#f8efd9;
  --shadow-sm:0 2px 8px rgba(24,58,54,.045);
  --shadow:0 5px 16px rgba(24,58,54,.055),0 16px 38px rgba(24,58,54,.07);
  --shadow-lg:0 22px 55px rgba(9,45,41,.2);
  --shadow-accent:0 8px 22px rgba(14,118,110,.23);
}
:focus-visible{outline-color:var(--gold)}
.brand-mark{
  background:linear-gradient(145deg,#15978a,#075b55);
  color:#f7dca0;
  box-shadow:0 7px 18px rgba(14,118,110,.2);
}
.brand-symbol{font-size:1.55rem;font-weight:900;line-height:1}
.brand-text small{color:#668078}
.nav-link.on{background:var(--accent-soft);color:var(--accent-ink)}
.btn.primary{
  background:linear-gradient(135deg,#15978a,#0e766e);
  box-shadow:var(--shadow-accent);
}
.btn.primary:hover{background:linear-gradient(135deg,#0e766e,#075b55)}
.text-link:hover{color:var(--accent-ink);border-color:var(--accent-soft);background:var(--accent-soft)}
.eyebrow{background:var(--gold-soft);color:#86601e}
.soft-icon{background:var(--accent-soft);color:var(--accent)}
.site-footer .brand-mark{background:linear-gradient(145deg,#15978a,#075b55)}
.quick-bar .go{background:linear-gradient(135deg,#15978a,#0e766e)}

/* Museum homepage */
.museum-hero{
  position:relative;isolation:isolate;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  align-items:center;gap:clamp(1.5rem,4vw,4rem);
  min-height:500px;margin-top:.6rem;padding:clamp(1.5rem,4.5vw,4.25rem);
  border-radius:2rem;color:#f9f7ed;
  background:linear-gradient(125deg,#123d38 0%,#0b625b 55%,#0d766c 100%);
  box-shadow:0 20px 60px rgba(11,67,60,.16);
}
.museum-hero:before{
  content:"";position:absolute;z-index:-1;inset:0;opacity:.22;
  background-image:radial-gradient(rgba(239,213,154,.65) .7px,transparent .7px);
  background-size:17px 17px;mask-image:linear-gradient(90deg,transparent,#000);
}
.museum-hero:after{
  content:"";position:absolute;z-index:-1;width:27rem;height:27rem;
  border:1px solid rgba(239,213,154,.23);border-radius:50%;
  inset-inline-start:-10rem;bottom:-18rem;
  box-shadow:0 0 0 32px rgba(239,213,154,.035),0 0 0 64px rgba(239,213,154,.025);
}
.museum-hero-content{position:relative;z-index:2}
.museum-kicker{display:inline-flex;align-items:center;gap:.6rem;color:#f0d59c;font-size:var(--fs-sm);font-weight:600}
.kicker-dot{width:.55rem;height:.55rem;border-radius:50%;background:#e6a04c;box-shadow:0 0 0 5px rgba(230,160,76,.13)}
.museum-hero h1{margin:1rem 0 .5rem;font-size:clamp(2.6rem,5vw,4.9rem);line-height:1.2;font-weight:850;letter-spacing:-.045em}
.museum-hero-lead{max-width:38rem;margin:.75rem 0;color:#f0d59c;font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:1.9;font-weight:600}
.museum-hero-copy{max-width:40rem;color:rgba(255,255,245,.76);line-height:2.15;font-size:var(--fs-md)}
.museum-hero-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}
.museum-hero .btn.primary{background:#e7b25f;color:#163c36;box-shadow:0 7px 22px rgba(0,0,0,.12)}
.museum-hero .btn.primary:hover{background:#f1cb83}
.museum-outline{display:inline-flex;align-items:center;justify-content:center;min-height:2.875rem;padding-inline:1.2rem;border:1px solid rgba(255,255,255,.34);border-radius:var(--pill);color:#fff;font-weight:600}
.museum-outline:hover{background:rgba(255,255,255,.08)}
.museum-hero-meta{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.16)}
.museum-hero-meta span{display:flex;flex-direction:column;gap:.12rem}
.museum-hero-meta b{color:#f3dca8;font-size:var(--fs-sm)}
.museum-hero-meta small{color:rgba(255,255,255,.62);font-size:var(--fs-xs)}
.museum-hero-art{position:relative;justify-self:center;width:min(100%,370px);aspect-ratio: .88;min-height:320px}
.arch{position:absolute;overflow:hidden}
.arch-back{width:76%;height:83%;top:3%;inset-inline-start:12%;border:1px solid rgba(243,220,168,.4);border-radius:48% 48% 0 0;background:linear-gradient(160deg,rgba(239,213,154,.12),rgba(255,255,255,.015))}
.arch-front{width:61%;height:70%;top:15%;inset-inline-start:20%;border:1px solid rgba(243,220,168,.7);border-bottom:0;border-radius:50% 50% 0 0;background:linear-gradient(180deg,rgba(239,213,154,.17),rgba(239,213,154,.035));box-shadow:inset 0 0 0 10px rgba(239,213,154,.035)}
.arch-window{position:absolute;top:14%;left:24%;right:24%;height:60%;border:2px solid #e6c783;border-bottom:0;border-radius:50% 50% 0 0;display:flex;justify-content:space-evenly;align-items:stretch;padding:0 8%}
.arch-window span{width:1px;background:rgba(239,213,154,.6)}
.arch-base{position:absolute;bottom:0;left:-18%;right:-18%;height:13%;border-top:2px solid #e6c783;background:repeating-linear-gradient(90deg,transparent 0 24px,rgba(239,213,154,.14) 24px 25px)}
.art-sun{position:absolute;top:0;inset-inline-end:0;width:5rem;height:5rem;border-radius:50%;background:linear-gradient(135deg,#f1cf86,#d99a48);box-shadow:0 0 55px rgba(226,173,90,.18)}
.art-stamp{position:absolute;bottom:8%;inset-inline-end:-2%;width:8.5rem;height:8.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;border:1px solid rgba(239,213,154,.72);border-radius:50%;background:#f5e6bd;color:#15534b;transform:rotate(-9deg);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.art-stamp span{font-size:.78rem}
.art-stamp b{font-size:2rem;line-height:1.25}
.art-stamp small{font-size:.6rem}
.art-line{position:absolute;border:1px solid rgba(239,213,154,.35);border-radius:50%;width:105%;height:24%;left:-2%;transform:rotate(-25deg)}
.art-line-one{bottom:17%}.art-line-two{bottom:5%;width:90%;left:5%}

.section-surface{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:1rem;margin-top:1.5rem;padding:clamp(1.25rem,3vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-sm)}
.museum-intro-mark{font-family:Georgia,serif;font-size:5rem;line-height:.9;color:var(--gold);opacity:.85}
.museum-intro h2{margin:.55rem 0;font-size:var(--fs-xl)}
.museum-intro p{max-width:60rem;margin:0;color:var(--ink-2);line-height:2.15}
.section-subtitle{margin:.35rem 0 0;color:var(--muted);font-size:var(--fs-sm);font-weight:400}
.section-count{padding:.3rem .8rem;border-radius:var(--pill);background:var(--surface-2);color:var(--accent-ink);font-size:var(--fs-xs);white-space:nowrap}
.museum-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.heritage-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:transform .22s,box-shadow .22s}
.heritage-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.heritage-card-art{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(145deg,#e2eee6,#f6edda)}
.heritage-card-art img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.heritage-card:hover .heritage-card-art img{transform:scale(1.035)}
.heritage-placeholder{font-size:5rem;color:rgba(14,118,110,.28)}
.heritage-category{position:absolute;right:.8rem;bottom:.8rem;padding:.2rem .65rem;border-radius:var(--pill);background:rgba(255,254,249,.94);color:var(--accent-ink);font-size:var(--fs-xs)}
.heritage-card-body{padding:1rem 1.1rem 1.2rem}
.heritage-card h3,.archive-card h3,.personality-card h3,.library-card h3,.space-card h3,.cultural-event-card h3{margin:0 0 .4rem;font-size:var(--fs-lg);line-height:1.6}
.heritage-card p,.archive-card p,.personality-card p,.space-card p,.cultural-event-card p{margin:.3rem 0 0;color:var(--muted);font-size:var(--fs-sm);line-height:1.95}
.heritage-date{color:#a16e24!important;font-size:var(--fs-xs)!important}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.archive-card{display:flex;gap:1rem;padding:1.2rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.archive-icon{display:grid;place-items:center;flex-shrink:0;width:3.25rem;height:3.75rem;border-radius:.5rem .5rem .8rem .4rem;background:linear-gradient(150deg,#f5e7c4,#e5c77f);color:#70501b;font-weight:800;box-shadow:inset -4px 0 rgba(141,98,32,.13)}
.archive-card-content{min-width:0}
.archive-label{display:inline-block;color:var(--accent);font-size:var(--fs-xs);font-weight:700;margin-bottom:.3rem}
.archive-card small{color:var(--muted);font-size:var(--fs-xs)}
.personality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.personality-card{padding:1.25rem;text-align:center;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.personality-avatar{display:grid;place-items:center;overflow:hidden;width:5.25rem;height:5.25rem;margin:0 auto 1rem;border:3px solid #f0e2bd;border-radius:50%;background:linear-gradient(145deg,#dcebe4,#f8efd9);color:var(--accent);font-size:2rem;font-weight:800}
.personality-avatar img{width:100%;height:100%;object-fit:cover}
.personality-card>small{color:var(--gold);font-size:var(--fs-xs)}
.personality-card h3{margin:.25rem 0}
.personality-occupation{display:block;margin-top:.6rem;color:var(--accent-ink);font-size:var(--fs-xs)}
.library-block{padding:clamp(1rem,3vw,2rem);border-radius:var(--r-xl);background:#eaf2eb}
.library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.library-card{overflow:hidden;border:1px solid rgba(14,118,110,.12);border-radius:var(--r-lg);background:var(--surface)}
.book-cover{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:170px;padding:1rem;color:#f9f2d9;background:linear-gradient(145deg,#1a6158,#103e39);isolation:isolate;overflow:hidden}
.book-cover:before{content:"";position:absolute;z-index:-1;inset:.45rem;border:1px solid rgba(239,213,154,.42)}
.book-cover span{font-size:var(--fs-xs);color:#efd59a}
.book-cover b{font-size:var(--fs-md);line-height:1.8}
.book-cover i{position:absolute;width:5rem;height:5rem;border:1px solid rgba(239,213,154,.3);border-radius:50%;left:-1rem;bottom:-2rem}
.library-card-body{padding:1rem}
.library-card-body p{margin:.2rem 0 .6rem;color:var(--muted);font-size:var(--fs-sm)}
.reading-status{display:block;margin-top:.65rem;color:var(--accent-ink);font-size:var(--fs-xs)}
.library-note{margin:.9rem 0 0;color:var(--muted);font-size:var(--fs-xs);line-height:1.9}
.space-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.space-card{position:relative;overflow:hidden;padding:1.25rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.space-number{display:block;margin-bottom:.8rem;color:var(--gold);font-size:1.8rem;font-weight:800;line-height:1}
.space-detail{display:inline-block;margin:.7rem .4rem 0 0;padding:.15rem .5rem;border-radius:var(--pill);background:var(--surface-2);color:var(--accent-ink);font-size:var(--fs-xs)}
.cultural-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.cultural-event-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.cultural-event-card>img,.event-art-placeholder{display:grid;width:100%;height:180px;object-fit:cover}
.event-art-placeholder{place-items:center;background:linear-gradient(130deg,#174b44,#0d766c);color:#f1d69d;font-weight:700;letter-spacing:.04em}
.cultural-event-body{padding:1.1rem}
.cultural-event-body time{display:block;margin-bottom:.35rem;color:#a16e24;font-size:var(--fs-xs)}
.cultural-event-body>small{display:block;margin-top:.55rem;color:var(--muted);font-size:var(--fs-xs)}
.event-registration{display:inline-block;margin-top:.65rem;padding:.2rem .6rem;border-radius:var(--pill);background:var(--gold-soft);color:#805c1d;font-size:var(--fs-xs)}
.cafe-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(1.5rem,4vw,3rem);border:1px solid var(--line);border-radius:var(--r-xl);background:#fffdf6}
.cafe-section-art{position:relative;display:grid;place-items:center;min-height:300px;overflow:hidden;border-radius:var(--r-lg);background:radial-gradient(circle at 50% 38%,#f5d9a0 0,#d6aa62 35%,#a86f37 100%)}
.cafe-cup{position:relative;z-index:2;width:135px;height:108px;margin-top:1rem;border:7px solid #fff8e9;border-top:0;border-radius:0 0 35px 35px;background:linear-gradient(90deg,#f8f0dc,#e5d4b2);box-shadow:0 16px 25px rgba(74,43,16,.2)}
.cafe-cup:before{content:"";position:absolute;top:-9px;left:-8px;right:-8px;height:17px;border:5px solid #fff8e9;border-radius:50%;background:#4c3020}
.cafe-cup:after{content:"";position:absolute;top:15px;right:-36px;width:36px;height:43px;border:7px solid #fff8e9;border-radius:0 22px 22px 0}
.cafe-cup span{position:absolute;top:-48px;left:26px;width:16px;height:35px;border-left:3px solid rgba(255,255,255,.6);border-radius:50%;transform:rotate(12deg)}
.cafe-orbit{position:absolute;border:1px solid rgba(255,250,225,.5);border-radius:50%;transform:rotate(-28deg)}
.cafe-orbit-one{width:120%;height:48%}.cafe-orbit-two{width:105%;height:68%}
.cafe-art-caption{position:absolute;bottom:1rem;left:1rem;color:rgba(255,255,245,.8);font-family:Georgia,serif;font-size:1rem;letter-spacing:.08em}
.cafe-section-content h2{margin:.5rem 0;font-size:var(--fs-2xl)}
.cafe-section-content>p{color:var(--ink-2);line-height:2.15}
.cafe-offerings{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.1rem 0 1.5rem}
.cafe-offerings span{padding:.35rem .75rem;border:1px solid var(--line);border-radius:var(--pill);background:var(--surface-2);color:var(--accent-ink);font-size:var(--fs-xs)}
.cafe-phone{display:inline-block;margin-inline-start:.75rem;color:var(--accent-ink);font-weight:700;font-size:var(--fs-sm)}
.museum-contact-band{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:clamp(2rem,5vw,3.5rem);padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--r-xl);background:linear-gradient(120deg,#123d38,#0e766e);color:#fff}
.museum-contact-band h2{margin:.6rem 0;font-size:var(--fs-xl)}
.museum-contact-band p{max-width:45rem;margin:0;color:rgba(255,255,255,.74);line-height:2}
.museum-contact-band .eyebrow{background:rgba(239,213,154,.14);color:#f0d59c}
.museum-contact-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.museum-light-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding-inline:1rem;border-radius:var(--pill);background:#f0d59c;color:#16453e;font-weight:700;white-space:nowrap}
.museum-band-phone{color:#f0d59c;font-weight:700;white-space:nowrap;direction:ltr}
.museum-footer .footer-card{border-color:var(--line);background:#fffef9}
.museum-footer .footer-brand{display:flex;align-items:center;gap:.65rem}
.museum-footer .footer-about p{max-width:25rem;line-height:2}
.museum-footer .footer-cols a:hover,.museum-footer .footer-links a:hover{color:var(--accent)}
.museum-quick-bar{border-color:var(--line);background:rgba(255,254,249,.96)}

@media(max-width:1050px){
  .museum-hero{grid-template-columns:minmax(0,1fr) minmax(220px,.75fr);gap:1.25rem}
  .museum-card-grid,.personality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .library-grid,.space-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .top-nav{gap:0}
  .nav-link{padding-inline:.48rem}
}
@media(max-width:760px){
  .museum-hero{grid-template-columns:1fr;padding:1.5rem;min-height:0}
  .museum-hero-content{order:1}
  .museum-hero-art{order:0;width:min(72%,260px);min-height:230px;aspect-ratio:.95;margin:.25rem auto 0}
  .museum-hero h1{font-size:clamp(2.4rem,10vw,3.6rem)}
  .museum-hero-meta{gap:1rem}
  .museum-intro{grid-template-columns:1fr;gap:.2rem}
  .museum-intro-mark{font-size:3rem}
  .archive-grid,.cultural-event-grid,.cafe-section{grid-template-columns:1fr}
  .cafe-section-art{min-height:230px;order:0}
  .cafe-section-content{order:1}
  .museum-contact-band{align-items:flex-start;flex-direction:column}
  .museum-contact-actions{width:100%}
  .museum-contact-actions .museum-light-btn{flex:1}
}
@media(max-width:520px){
  .museum-card-grid,.personality-grid,.library-grid,.space-grid{grid-template-columns:1fr}
  .museum-card-grid .heritage-card{display:grid;grid-template-columns:110px minmax(0,1fr)}
  .museum-card-grid .heritage-card-art{height:100%;min-height:140px;aspect-ratio:auto}
  .museum-card-grid .heritage-card-body{padding:.8rem}
  .museum-card-grid .heritage-card h3{font-size:var(--fs-md)}
  .museum-card-grid .heritage-card p{font-size:var(--fs-xs)}
  .archive-card{padding:.85rem;gap:.7rem}
  .archive-icon{width:2.6rem;height:3rem}
  .museum-hero-actions{align-items:stretch}
  .museum-hero-actions .btn{width:100%}
  .cafe-phone{margin:.8rem 0 0;display:block}
  .museum-contact-actions{align-items:stretch;flex-direction:column}
  .museum-contact-actions>*{text-align:center}
}

/* ==========================================================
   Cafe Khorshid — Cafe Museum Menu
   Scoped styles; existing legacy pages remain unaffected.
   ========================================================== */

.cafe-menu-page {
  --cm-teal: #176b64;
  --cm-teal-dark: #104c48;
  --cm-teal-soft: #e6f1ed;
  --cm-orange: #c87935;
  --cm-gold: #d5b16c;
  --cm-cream: #fbf7ed;
  --cm-paper: #fffdf7;
  --cm-ink: #302b23;
  --cm-muted: #777267;
  color: var(--cm-ink);
  padding-bottom: 42px;
}

.cafe-menu-page * {
  box-sizing: border-box;
}

.cafe-menu-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, .7fr);
  align-items: center;
  gap: 28px;
  min-height: 350px;
  padding: clamp(28px, 6vw, 70px);
  overflow: hidden;
  border: 1px solid rgba(213,177,108,.5);
  border-radius: 28px;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(213,177,108,.19), transparent 40%),
    linear-gradient(125deg, #fffdf7 0%, #f3ead6 100%);
}

.cafe-menu-hero-content {
  position: relative;
  z-index: 2;
  max-width: 640px;
}

.cafe-menu-eyebrow,
.cafe-menu-section-label {
  display: inline-block;
  color: var(--cm-teal);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.cafe-menu-kicker {
  margin: 16px 0 6px;
  color: var(--cm-orange);
  font-weight: 700;
}

.cafe-menu-hero h1 {
  margin: 0;
  color: var(--cm-teal-dark);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  line-height: 1.4;
}

.cafe-menu-intro {
  max-width: 580px;
  margin: 16px 0 24px;
  color: #625b4f;
  font-size: 1rem;
  line-height: 2.1;
}

.cafe-menu-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.cafe-menu-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 22px;
  border: 1px solid var(--cm-teal);
  border-radius: 12px;
  background: var(--cm-teal);
  color: white !important;
  font-weight: 800;
  text-decoration: none !important;
  transition: transform .2s ease, background .2s ease;
}

.cafe-menu-button:hover {
  transform: translateY(-2px);
  background: var(--cm-teal-dark);
}

.cafe-menu-text-link {
  color: var(--cm-teal-dark);
  font-weight: 700;
  text-decoration: none;
}

.cafe-menu-hero-art {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 300px);
  aspect-ratio: 1;
  justify-self: center;
}

.cafe-menu-art-ring {
  position: absolute;
  border: 1px solid rgba(23,107,100,.3);
  border-radius: 50%;
}

.cafe-menu-art-ring-one {
  inset: 6%;
}

.cafe-menu-art-ring-two {
  inset: 17%;
  border-color: rgba(200,121,53,.55);
}

.cafe-menu-art-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 56%;
  aspect-ratio: 1;
  border: 2px solid var(--cm-gold);
  border-radius: 50%;
  background: var(--cm-teal);
  box-shadow: 0 12px 40px rgba(16,76,72,.2);
  color: white;
  text-align: center;
}

.cafe-menu-art-star {
  color: #f0d69a;
  font-size: 2rem;
}

.cafe-menu-art-title {
  font-size: 1.5rem;
  font-weight: 900;
}

.cafe-menu-art-subtitle {
  margin-top: 4px;
  color: #e8dfc8;
  font-size: .7rem;
}

.cafe-menu-art-dot {
  position: absolute;
  width: 13px;
  height: 13px;
  border: 3px solid var(--cm-cream);
  border-radius: 50%;
  background: var(--cm-orange);
}

.cafe-menu-art-dot-one {
  top: 14%;
  right: 18%;
}

.cafe-menu-art-dot-two {
  bottom: 16%;
  left: 15%;
  background: var(--cm-teal);
}

.cafe-menu-welcome {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin: 30px 0 46px;
  padding: 28px;
  border-right: 4px solid var(--cm-orange);
  border-radius: 14px;
  background: var(--cm-cream);
}

.cafe-menu-welcome-mark {
  display: grid;
  flex: 0 0 52px;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--cm-teal-soft);
  color: var(--cm-teal);
  font-size: 1.8rem;
}

.cafe-menu-welcome h2,
.cafe-menu-section-heading h2,
.cafe-menu-visit h2 {
  margin: 8px 0;
  color: var(--cm-teal-dark);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 900;
  line-height: 1.6;
}

.cafe-menu-welcome p,
.cafe-menu-section-heading p,
.cafe-menu-visit p {
  margin: 8px 0 0;
  color: var(--cm-muted);
  line-height: 2;
}

.cafe-menu-section {
  scroll-margin-top: 30px;
}

.cafe-menu-section-heading {
  margin-bottom: 26px;
  text-align: center;
}

.cafe-menu-category-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 24px 0 36px;
}

.cafe-menu-category-nav a {
  padding: 10px 17px;
  border: 1px solid #d8e4dd;
  border-radius: 999px;
  background: #fff;
  color: var(--cm-teal-dark);
  font-weight: 700;
  text-decoration: none;
}

.cafe-menu-category-nav a:hover {
  border-color: var(--cm-teal);
  background: var(--cm-teal-soft);
}

.cafe-menu-category {
  margin: 32px 0 42px;
  scroll-margin-top: 24px;
}

.cafe-menu-category-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8e1d4;
}

.cafe-menu-category-symbol {
  display: grid;
  flex: 0 0 46px;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: var(--cm-teal-soft);
  color: var(--cm-teal);
  font-size: 1.5rem;
}

.cafe-menu-category-heading h3 {
  margin: 0;
  color: var(--cm-teal-dark);
  font-size: 1.3rem;
  font-weight: 900;
}

.cafe-menu-category-heading p {
  margin: 4px 0 0;
  color: var(--cm-muted);
  font-size: .85rem;
}

.cafe-menu-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.cafe-menu-item {
  display: flex;
  align-items: stretch;
  gap: 16px;
  min-width: 0;
  padding: 15px;
  border: 1px solid #ece5d9;
  border-radius: 18px;
  background: var(--cm-paper);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.cafe-menu-item:hover {
  transform: translateY(-2px);
  border-color: #a6c9bd;
  box-shadow: 0 10px 26px rgba(23,107,100,.07);
}

.cafe-menu-item-image {
  display: grid;
  flex: 0 0 104px;
  place-items: center;
  width: 104px;
  min-height: 104px;
  overflow: hidden;
  border-radius: 13px;
  background: linear-gradient(145deg, #e8f0e9, #f7ecd8);
}

.cafe-menu-item-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 104px;
  object-fit: cover;
}

.cafe-menu-item-placeholder {
  color: var(--cm-teal);
  font-size: 2.1rem;
}

.cafe-menu-item-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 3px 0;
}

.cafe-menu-item-content h4 {
  margin: 0;
  color: var(--cm-ink);
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1.8;
}

.cafe-menu-item-content p {
  margin: 6px 0 12px;
  color: var(--cm-muted);
  font-size: .9rem;
  line-height: 1.9;
}

.cafe-menu-item-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: auto;
  color: var(--cm-teal);
  font-size: .78rem;
  font-weight: 700;
}

.cafe-menu-item-status span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5a9c78;
}

.cafe-menu-price-note {
  margin: 25px 0;
  padding: 14px 18px;
  border: 1px solid #ead9b5;
  border-radius: 12px;
  background: #fff8e8;
  color: #725a2e;
  font-size: .9rem;
  line-height: 2;
}

.cafe-menu-empty {
  padding: clamp(24px, 5vw, 52px);
  border: 1px dashed #b8cfc4;
  border-radius: 24px;
  background: linear-gradient(145deg, #fbfdf8, #f2f7f0);
  text-align: center;
}

.cafe-menu-empty-symbol {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  border: 1px solid #c7d9ce;
  border-radius: 22px;
  background: white;
  color: var(--cm-teal);
  font-size: 2.4rem;
}

.cafe-menu-empty h3 {
  margin: 12px 0;
  color: var(--cm-teal-dark);
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 900;
}

.cafe-menu-empty > p {
  max-width: 620px;
  margin: 0 auto;
  color: var(--cm-muted);
  line-height: 2.1;
}

.cafe-menu-planned-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  max-width: 850px;
  margin: 28px auto;
  text-align: right;
}

.cafe-menu-planned-categories > div {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px;
  border: 1px solid #e4e8dc;
  border-radius: 12px;
  background: rgba(255,255,255,.8);
}

.cafe-menu-planned-categories span {
  color: var(--cm-orange);
  font-size: .8rem;
  font-weight: 900;
}

.cafe-menu-planned-categories strong {
  color: var(--cm-teal-dark);
  font-size: .9rem;
}

.cafe-menu-visit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 48px;
  padding: clamp(24px, 5vw, 44px);
  border-radius: 22px;
  background: var(--cm-teal-dark);
  color: white;
}

.cafe-menu-visit h2 {
  color: white;
}

.cafe-menu-visit p {
  max-width: 650px;
  color: #dce9df;
}

.cafe-menu-button-light {
  flex-shrink: 0;
  border-color: var(--cm-gold);
  background: var(--cm-gold);
  color: #2f3023 !important;
}

.cafe-menu-button-light:hover {
  background: #e4c98e;
}

@media (max-width: 760px) {
  .cafe-menu-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 28px 22px;
    border-radius: 20px;
  }

  .cafe-menu-hero-art {
    width: min(62%, 220px);
    grid-row: 1;
  }

  .cafe-menu-hero-content {
    grid-row: 2;
  }

  .cafe-menu-hero h1 {
    font-size: 2.1rem;
  }

  .cafe-menu-welcome {
    gap: 13px;
    margin: 22px 0 34px;
    padding: 20px 16px;
  }

  .cafe-menu-items {
    grid-template-columns: minmax(0, 1fr);
  }

  .cafe-menu-planned-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cafe-menu-visit {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 420px) {
  .cafe-menu-item {
    gap: 12px;
    padding: 11px;
  }

  .cafe-menu-item-image {
    flex-basis: 82px;
    width: 82px;
    min-height: 82px;
  }

  .cafe-menu-item-image img {
    min-height: 82px;
  }

  .cafe-menu-hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .cafe-menu-planned-categories {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Cafe menu product pricing */
.cafe-menu-product-price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px;
  margin: 10px 0;
  color: #176b64;
  font-size: 1rem;
  font-weight: 900;
}
.cafe-menu-product-price small {
  font-size: .78rem;
  font-weight: 700;
}
.cafe-menu-price-pending {
  display: inline-block;
  margin: 10px 0;
  color: #8a6c38;
  font-size: .8rem;
}

/* Khorshid homepage slider and animated quick links */
.khorshid-slider {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(340px, 48vw, 620px);
  margin: 24px 0 30px;
  border-radius: 28px;
  background: #183e38;
  color: #fff7e7;
  box-shadow: 0 24px 60px rgba(30, 44, 35, .18);
}
.khorshid-slides,
.khorshid-slide,
.khorshid-slide img,
.khorshid-slider-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.khorshid-slide {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.035);
  transition: opacity .8s ease, transform 5.5s ease, visibility .8s;
}
.khorshid-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}
.khorshid-slide img {
  display: block;
  object-fit: cover;
}
.khorshid-slider-shade {
  z-index: 1;
  background: linear-gradient(270deg, rgba(13, 32, 28, .82), rgba(13, 32, 28, .25) 68%, rgba(13, 32, 28, .12));
  pointer-events: none;
}
.khorshid-slider-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: inherit;
  max-width: 760px;
  padding: clamp(28px, 6vw, 86px);
}
.khorshid-slider-kicker {
  color: #f2d29a;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
}
.khorshid-slider-content h1 {
  margin: 18px 0 12px;
  color: #fff7e7;
  font-size: clamp(2.2rem, 5vw, 4.8rem);
  line-height: 1.35;
  font-weight: 900;
}
.khorshid-slider-content p {
  max-width: 590px;
  margin: 0 0 26px;
  color: rgba(255, 247, 231, .9);
  font-size: clamp(1rem, 2vw, 1.35rem);
  line-height: 2;
}
.khorshid-slider-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 22px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: #e6bc75;
  color: #233d32 !important;
  font-weight: 850;
  text-decoration: none;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.khorshid-slider-cta:hover {
  transform: translateY(-3px);
  background: #f3d49a;
  box-shadow: 0 12px 28px rgba(0,0,0,.2);
}
.khorshid-slider-controls {
  position: absolute;
  z-index: 3;
  inset-inline: 22px;
  bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.khorshid-slider-controls button {
  pointer-events: auto;
  cursor: pointer;
}
.khorshid-slide-prev,
.khorshid-slide-next {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  background: rgba(17,40,34,.55);
  color: white;
  font-size: 1.8rem;
  transition: background .2s ease, transform .2s ease;
}
.khorshid-slide-prev:hover,
.khorshid-slide-next:hover {
  background: #b78c51;
  transform: scale(1.08);
}
.khorshid-slide-dots {
  display: flex;
  align-items: center;
  gap: 9px;
}
.khorshid-slide-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 99px;
  background: rgba(255,255,255,.55);
  transition: width .25s ease, background .25s ease;
}
.khorshid-slide-dots button.is-active {
  width: 27px;
  background: #f2d29a;
}
.khorshid-category-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 48px;
}
.khorshid-category-link {
  position: relative;
  display: flex;
  min-height: 112px;
  align-items: center;
  gap: 12px;
  padding: 20px 17px;
  overflow: hidden;
  border: 1px solid rgba(183,140,81,.28);
  border-radius: 20px;
  background: linear-gradient(145deg, #fffdf8, #f5eddf);
  color: #28483c !important;
  text-decoration: none;
  font-weight: 850;
  line-height: 1.8;
  box-shadow: 0 8px 24px rgba(35,53,42,.06);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.khorshid-category-link::before {
  position: absolute;
  content: "";
  inset-inline-start: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: #b78c51;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .28s ease;
}
.khorshid-category-link:hover {
  transform: translateY(-6px);
  border-color: #c6a36c;
  background: #fffaf0;
  box-shadow: 0 18px 34px rgba(35,53,42,.13);
}
.khorshid-category-link:hover::before { transform: scaleX(1); }
.khorshid-category-icon {
  display: grid;
  flex: 0 0 43px;
  width: 43px;
  height: 43px;
  place-items: center;
  border-radius: 14px;
  background: #e9d8b5;
  color: #385747;
  font-size: 1.35rem;
  transition: transform .28s ease, background .28s ease;
}
.khorshid-category-link:hover .khorshid-category-icon {
  transform: rotate(-7deg) scale(1.09);
  background: #e6bc75;
}
.khorshid-category-arrow {
  margin-inline-start: auto;
  color: #a27a43;
  opacity: .65;
  transition: transform .28s ease, opacity .28s ease;
}
.khorshid-category-link:hover .khorshid-category-arrow {
  opacity: 1;
  transform: translate(-3px, -3px);
}
@media (max-width: 900px) {
  .khorshid-category-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .khorshid-slider { min-height: 430px; margin-top: 12px; border-radius: 20px; }
  .khorshid-slider-content { padding: 30px 23px 82px; }
  .khorshid-slider-shade { background: linear-gradient(0deg, rgba(13,32,28,.9), rgba(13,32,28,.28)); }
  .khorshid-slider-content h1 { font-size: clamp(2rem, 9vw, 3rem); }
  .khorshid-slider-controls { inset-inline: 13px; bottom: 12px; }
  .khorshid-category-links { gap: 10px; margin-bottom: 32px; }
  .khorshid-category-link { min-height: 96px; padding: 13px 10px; gap: 8px; font-size: .86rem; border-radius: 15px; }
  .khorshid-category-icon { flex-basis: 35px; width: 35px; height: 35px; border-radius: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .khorshid-slide,
  .khorshid-category-link,
  .khorshid-category-icon,
  .khorshid-category-arrow { transition: none !important; }
}



/* Cafe Museum: personality profiles */
.personality-card-link {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  border-radius: var(--r-lg);
  outline-offset: 4px;
}
.personality-card-link:focus-visible {
  outline: 2px solid var(--gold);
}
.personality-card-link .personality-card {
  height: 100%;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.personality-card-link:hover .personality-card {
  transform: translateY(-4px);
  border-color: var(--gold);
  box-shadow: 0 12px 30px rgba(30, 35, 25, .09);
}
.person-profile-page {
  width: min(1160px, calc(100% - 2rem));
  margin: 0 auto;
  padding: clamp(1.25rem, 4vw, 3.5rem) 0 4rem;
  color: var(--text);
}
.person-profile-breadcrumb {
  margin-bottom: 1.5rem;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 2;
}
.person-profile-breadcrumb a,
.person-profile-sidebar > a {
  color: var(--gold);
  text-decoration: none;
}
.person-profile-breadcrumb a:hover,
.person-profile-sidebar > a:hover {
  text-decoration: underline;
}
.person-profile-hero {
  display: grid;
  grid-template-columns: minmax(180px, 280px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding: clamp(1.25rem, 4vw, 3rem);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.person-profile-photo {
  overflow: hidden;
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  border-radius: var(--r-lg);
  background: #eaf2eb;
  color: var(--gold);
  font-size: 5rem;
}
.person-profile-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.person-profile-eyebrow {
  color: var(--gold);
  font-size: var(--fs-sm);
}
.person-profile-heading h1 {
  margin: .35rem 0 .8rem;
  font-size: clamp(1.8rem, 4vw, 3.25rem);
  line-height: 1.5;
}
.person-profile-heading p {
  color: var(--muted);
  line-height: 2;
}
.person-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 310px);
  align-items: start;
  gap: clamp(1rem, 3vw, 2rem);
  margin-top: 2rem;
}
.person-profile-main {
  min-width: 0;
}
.person-profile-section,
.person-profile-facts {
  margin-bottom: 1.25rem;
  padding: clamp(1rem, 3vw, 1.75rem);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--surface);
  overflow-wrap: anywhere;
}
.person-profile-section h2,
.person-profile-facts h2 {
  margin: 0 0 1rem;
  font-size: var(--fs-xl);
  line-height: 1.7;
}
.person-profile-section p {
  line-height: 2.15;
}
.person-profile-article {
  padding: 1.25rem 0;
  border-top: 1px solid var(--line);
}
.person-profile-article:first-of-type {
  border-top: 0;
}
.person-profile-article h3 {
  margin: .5rem 0;
  font-size: var(--fs-lg);
  line-height: 1.8;
}
.person-profile-article img {
  display: block;
  width: min(100%, 520px);
  max-height: 360px;
  object-fit: cover;
  border-radius: var(--r-md);
}
.person-profile-article details {
  margin-top: 1rem;
  padding: .8rem 1rem;
  border-radius: var(--r-md);
  background: #eaf2eb;
}
.person-profile-article summary {
  cursor: pointer;
  font-weight: 700;
}
.person-profile-sidebar {
  position: sticky;
  top: 1.5rem;
}
.person-profile-facts dl {
  margin: 0;
}
.person-profile-facts dl > div {
  display: grid;
  grid-template-columns: minmax(75px, .7fr) minmax(0, 1.3fr);
  gap: .75rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--line);
}
.person-profile-facts dl > div:last-child {
  border-bottom: 0;
}
.person-profile-facts dt {
  color: var(--muted);
  font-size: var(--fs-sm);
}
.person-profile-facts dd {
  margin: 0;
  line-height: 1.9;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .person-profile-hero {
    grid-template-columns: minmax(0, 1fr);
  }
  .person-profile-photo {
    width: min(100%, 260px);
    margin-inline: auto;
    aspect-ratio: 1 / 1;
  }
  .person-profile-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .person-profile-sidebar {
    position: static;
  }
}
@media (prefers-reduced-motion: reduce) {
  .personality-card-link .personality-card {
    transition: none;
  }
}

