/* ===========================================================
   THE QUEEN BEAN — Coffee & Social House · VERSION 2
   An editorial, Victorian-modern showcase.
   Brand: 1908 house · berry + hot-pink + gold + navy + cream
   =========================================================== */

:root{
  --berry:#8e2a5f;
  --berry-deep:#6b1f48;
  --berry-ink:#4a153234;       /* unused alpha helper */
  --pink:#e0156f;
  --pink-soft:#ef5ea0;
  --navy:#262a52;
  --navy-deep:#15172e;
  --plum:#3a1430;
  --sage:#5d6a52;
  --sage-light:#8a9579;
  --cream:#f7f1e6;
  --cream-deep:#efe5d1;
  --paper:#fdfaf3;
  --wood:#b06a3a;
  --ink:#2a2330;
  --gold:#c79a4b;
  --gold-light:#e3c585;

  --maxw:1240px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow-lift:0 30px 60px -22px rgba(40,10,30,.5);

  --f-display:'Fraunces',serif;
  --f-script:'Pinyon Script',cursive;
  --f-body:'Work Sans',sans-serif;
  --f-stencil:'Big Shoulders Display',sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.72;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;line-height:1.04}
.script{font-family:var(--f-script);font-weight:400}

/* film-grain veil */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9998;
  opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}

/* ---------- selection ---------- */
::selection{background:var(--pink);color:#fff}

/* ===========================================================
   HELPERS
   =========================================================== */
.wrap{max-width:var(--maxw);margin:0 auto;width:100%;position:relative;z-index:3}
section{position:relative;overflow:clip}
.pad{padding:130px 40px}
.pad-sm{padding:90px 40px}

.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-stencil);font-weight:600;
  font-size:.92rem;letter-spacing:.34em;text-transform:uppercase;
  color:#c7135f;margin-bottom:18px;   /* AA-contrast deep pink on light bg (was --pink, failed 4.5:1) */
}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor;opacity:.8}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:2px;background:currentColor;opacity:.8}

.h-xl{font-size:clamp(2.6rem,6.4vw,5.4rem);letter-spacing:-.02em}
.h-lg{font-size:clamp(2.1rem,4.6vw,3.6rem);letter-spacing:-.015em}
.h-md{font-size:clamp(1.7rem,3.2vw,2.5rem);letter-spacing:-.01em}
.scriptword{
  font-family:var(--f-script);font-weight:400;color:var(--pink);
  font-size:1.35em;line-height:.7;display:inline-block;vertical-align:baseline;
}
.lede{font-size:1.12rem;font-weight:300;max-width:54ch}

.tone-cream{background:var(--cream)}
.tone-paper{background:var(--paper)}
.tone-navy{background:var(--navy);color:var(--cream)}
.tone-berry{background:var(--berry);color:var(--cream)}
.tone-plum{background:var(--plum);color:var(--cream)}
.on-dark .eyebrow,.on-dark h1,.on-dark h2,.on-dark h3{color:var(--cream)}
.on-dark .eyebrow{color:var(--gold)}

/* ===========================================================
   BUTTONS
   =========================================================== */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-stencil);font-weight:600;
  font-size:1rem;letter-spacing:.16em;text-transform:uppercase;
  padding:15px 34px;border-radius:40px;cursor:pointer;border:none;
  transition:transform .3s var(--ease),background .3s,color .3s,box-shadow .3s;
  position:relative;
}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--pink);color:#fff;box-shadow:0 14px 26px -10px rgba(224,21,111,.7)}
.btn-primary:hover{transform:translateY(-3px);background:var(--berry);box-shadow:0 20px 34px -12px rgba(224,21,111,.8)}
.btn-cream{background:var(--cream);color:var(--berry)}
.btn-cream:hover{transform:translateY(-3px);background:#fff}
.btn-ghost{background:transparent;color:var(--cream);border:1.6px solid rgba(247,241,230,.6)}
.btn-ghost:hover{background:var(--cream);color:var(--navy);transform:translateY(-3px);border-color:var(--cream)}
.btn-outline{background:transparent;color:var(--berry);border:1.6px solid var(--berry)}
.btn-outline:hover{background:var(--berry);color:var(--cream);transform:translateY(-3px)}

.linkmore{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-stencil);font-weight:600;
  font-size:.95rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pink);
  transition:gap .25s,color .25s;
}
.linkmore::after{content:"\2192";transition:transform .25s}
.linkmore:hover{gap:15px;color:var(--berry)}
.linkmore:hover::after{transform:translateX(3px)}
.linkmore.gold{color:var(--gold)}
.linkmore.gold:hover{color:var(--cream)}

/* ===========================================================
   HEADER / NAV
   =========================================================== */
/* Centered "masthead" — round logo on top, nav row beneath (like the original). */
header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;flex-direction:column;align-items:center;
  padding:18px 40px 14px;
  background:rgba(21,23,46,0);
  transition:background .45s var(--ease),padding .45s var(--ease),box-shadow .45s;
}
header.scrolled{
  background:rgba(21,23,46,.94);backdrop-filter:blur(12px);
  padding:9px 40px 9px;box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.brand{display:block;line-height:0;text-decoration:none}
.brand img{
  width:84px;height:84px;border-radius:50%;
  border:2px solid rgba(247,241,230,.6);
  box-shadow:0 6px 20px rgba(0,0,0,.45);
  transition:width .45s var(--ease),height .45s var(--ease);
}
header.scrolled .brand img{width:50px;height:50px}
.brand-txt{display:none}            /* masthead is logo-only */
nav{display:flex;gap:24px;align-items:center;margin-top:13px;transition:margin .45s var(--ease)}
header.scrolled nav{margin-top:8px}
nav a:not(.nav-cta){
  font-family:var(--f-stencil);font-weight:500;
  color:var(--cream);font-size:.92rem;letter-spacing:.18em;text-transform:uppercase;
  position:relative;padding:4px 0;
}
nav a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:-1px;width:0;height:2px;
  background:var(--pink);transition:width .3s var(--ease);
}
nav a:not(.nav-cta):hover::after,nav a.active::after{width:100%}
.nav-rule{width:30px;height:1px;background:var(--pink);position:relative;flex-shrink:0}
.nav-rule::before{
  content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;
  border:1px solid var(--pink);transform:translate(-50%,-50%) rotate(45deg);background:var(--navy-deep);
}
.nav-cta{
  font-family:var(--f-stencil);font-weight:600;font-size:.92rem;letter-spacing:.14em;text-transform:uppercase;
  background:var(--pink);color:#fff;padding:9px 20px;border-radius:30px;transition:background .3s,transform .3s;
}
.nav-cta:hover{background:var(--cream);color:var(--berry);transform:translateY(-2px)}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;z-index:1100;position:absolute;right:24px;top:24px}
.burger span{width:26px;height:2px;background:var(--cream);display:block;transition:.3s}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ===========================================================
   SHAPE DIVIDERS  (placed bottom of a section; fill = next section)
   =========================================================== */
.divider{
  position:absolute;left:0;width:100%;line-height:0;z-index:4;pointer-events:none;
}
.divider.bottom{bottom:-1px}
.divider.top{top:-1px}
.divider.up{bottom:100%;top:auto;margin-bottom:-1px}   /* sits ABOVE the element, over the preceding section */
.divider svg{display:block;width:100%;height:auto}
.divider.tall svg{height:110px}

/* ===========================================================
   ORNAMENTS  (absolute decorative SVGs, currentColor-tinted)
   =========================================================== */
.orn{
  position:absolute;pointer-events:none;z-index:1;
  background-repeat:no-repeat;background-position:center;background-size:contain;
  width:240px;height:240px;opacity:.2;
}
.orn.big{width:380px;height:380px}
.orn.sm{width:150px;height:150px}
.orn.faint{opacity:.1}
.orn.bold{opacity:.32}

.orn-sprig{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 30 C 90 50 130 110 150 200'/%3E%3Cpath d='M50 50 C 80 56 100 50 116 36'/%3E%3Cpath d='M70 78 C 100 88 126 84 146 64'/%3E%3Cpath d='M92 110 C 124 122 152 116 174 92'/%3E%3Cpath d='M112 144 C 144 154 174 148 196 124'/%3E%3Cpath d='M128 178 C 158 188 184 184 206 162'/%3E%3C/g%3E%3Cg fill='%23e0156f'%3E%3Cellipse cx='116' cy='36' rx='10' ry='5' transform='rotate(-30 116 36)'/%3E%3Cellipse cx='146' cy='64' rx='11' ry='5.5' transform='rotate(-28 146 64)'/%3E%3Cellipse cx='174' cy='92' rx='12' ry='6' transform='rotate(-26 174 92)'/%3E%3Cellipse cx='196' cy='124' rx='12' ry='6' transform='rotate(-24 196 124)'/%3E%3Cellipse cx='206' cy='162' rx='11' ry='5.5' transform='rotate(-22 206 162)'/%3E%3Ccircle cx='30' cy='30' r='5'/%3E%3C/g%3E%3C/svg%3E")}
.orn-fan{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M0 240 A240 240 0 0 1 240 0'/%3E%3Cpath d='M0 200 A200 200 0 0 1 200 0'/%3E%3Cpath d='M0 160 A160 160 0 0 1 160 0'/%3E%3Cpath d='M0 120 A120 120 0 0 1 120 0'/%3E%3Cpath d='M0 80 A80 80 0 0 1 80 0'/%3E%3Cpath d='M0 40 A40 40 0 0 1 40 0'/%3E%3Cline x1='0' y1='240' x2='240' y2='0'/%3E%3Cline x1='0' y1='240' x2='120' y2='0'/%3E%3Cline x1='0' y1='240' x2='240' y2='120'/%3E%3C/g%3E%3Ccircle cx='0' cy='240' r='6' fill='%23e0156f'/%3E%3C/svg%3E")}
.orn-beans{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='%23c79a4b'%3E%3Cellipse cx='40' cy='60' rx='14' ry='9' transform='rotate(-30 40 60)'/%3E%3Cellipse cx='100' cy='40' rx='14' ry='9' transform='rotate(20 100 40)'/%3E%3Cellipse cx='170' cy='80' rx='14' ry='9' transform='rotate(-15 170 80)'/%3E%3Cellipse cx='60' cy='130' rx='14' ry='9' transform='rotate(45 60 130)'/%3E%3Cellipse cx='140' cy='150' rx='14' ry='9' transform='rotate(-10 140 150)'/%3E%3Cellipse cx='200' cy='180' rx='14' ry='9' transform='rotate(30 200 180)'/%3E%3Cellipse cx='30' cy='200' rx='14' ry='9' transform='rotate(-25 30 200)'/%3E%3Cellipse cx='110' cy='210' rx='14' ry='9' transform='rotate(15 110 210)'/%3E%3C/g%3E%3Cg fill='none' stroke='%238e2a5f' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M30 60 Q 40 56 50 60' transform='rotate(-30 40 60)'/%3E%3Cpath d='M90 40 Q 100 36 110 40' transform='rotate(20 100 40)'/%3E%3Cpath d='M160 80 Q 170 76 180 80' transform='rotate(-15 170 80)'/%3E%3C/g%3E%3C/svg%3E")}
.orn-steam{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23e0156f' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 220 C 60 180 0 140 30 100 C 60 60 0 30 30 0'/%3E%3Cpath d='M90 220 C 120 180 60 140 90 100 C 120 60 60 30 90 0'/%3E%3Cpath d='M150 220 C 180 180 120 140 150 100 C 180 60 120 30 150 0'/%3E%3Cpath d='M210 220 C 240 180 180 140 210 100 C 240 60 180 30 210 0'/%3E%3C/g%3E%3C/svg%3E")}
.orn-lattice{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='%23c79a4b'%3E%3Ccircle cx='30' cy='30' r='3'/%3E%3Ccircle cx='90' cy='30' r='3'/%3E%3Ccircle cx='150' cy='30' r='3'/%3E%3Ccircle cx='210' cy='30' r='3'/%3E%3Ccircle cx='60' cy='60' r='3'/%3E%3Ccircle cx='120' cy='60' r='3'/%3E%3Ccircle cx='180' cy='60' r='3'/%3E%3Ccircle cx='30' cy='90' r='3'/%3E%3Ccircle cx='90' cy='90' r='3'/%3E%3Ccircle cx='150' cy='90' r='3'/%3E%3Ccircle cx='210' cy='90' r='3'/%3E%3Ccircle cx='60' cy='120' r='3'/%3E%3Ccircle cx='120' cy='120' r='3'/%3E%3Ccircle cx='180' cy='120' r='3'/%3E%3Ccircle cx='90' cy='150' r='3'/%3E%3Ccircle cx='150' cy='150' r='3'/%3E%3C/g%3E%3C/svg%3E")}
.orn-music{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='%23e0156f'%3E%3Cellipse cx='40' cy='90' rx='14' ry='10' transform='rotate(-15 40 90)'/%3E%3Crect x='52' y='30' width='3' height='62' transform='rotate(-15 52 30)'/%3E%3Cellipse cx='160' cy='160' rx='14' ry='10' transform='rotate(-15 160 160)'/%3E%3Crect x='172' y='100' width='3' height='62' transform='rotate(-15 172 100)'/%3E%3C/g%3E%3Cg fill='%23c79a4b'%3E%3Ccircle cx='200' cy='40' r='4'/%3E%3Ccircle cx='40' cy='200' r='4'/%3E%3Ccircle cx='100' cy='180' r='3'/%3E%3C/g%3E%3C/svg%3E")}

/* repeating texture panels */
.bg-pat{position:absolute;inset:0;pointer-events:none;z-index:0;background-repeat:repeat;opacity:.08}
.bg-pat.faint{opacity:.05}.bg-pat.soft{opacity:.08}.bg-pat.med{opacity:.13}.bg-pat.bold{opacity:.19}
.bg-pat.light{filter:invert(1)}
.bg-pat.damask{background-size:80px 80px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M40 8 C 52 14 56 26 50 38 C 56 30 64 28 72 32 C 64 36 60 44 60 52 C 52 46 44 46 40 52 C 36 46 28 46 20 52 C 20 44 16 36 8 32 C 16 28 24 30 30 38 C 24 26 28 14 40 8 Z'/%3E%3Ccircle cx='40' cy='40' r='2.5'/%3E%3C/g%3E%3C/svg%3E")}
.bg-pat.filigree{background-size:120px 120px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M0 60 C 20 40 40 80 60 60 C 80 40 100 80 120 60'/%3E%3Cpath d='M60 0 C 40 20 80 40 60 60 C 40 80 80 100 60 120'/%3E%3Cpath d='M15 15 Q 30 30 15 45 Q 30 60 45 45 Q 60 30 45 15 Q 30 0 15 15 Z'/%3E%3Cpath d='M105 105 Q 90 90 105 75 Q 90 60 75 75 Q 60 90 75 105 Q 90 120 105 105 Z'/%3E%3C/g%3E%3C/svg%3E")}
.bg-pat.deco{background-size:60px 60px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='.9'%3E%3Cpath d='M30 0 L 60 30 L 30 60 L 0 30 Z'/%3E%3Cpath d='M30 12 L 48 30 L 30 48 L 12 30 Z'/%3E%3C/g%3E%3C/svg%3E")}
.bg-pat.quatre{background-size:100px 100px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M50 0 C 50 20 70 30 100 30 C 80 30 70 50 70 50 C 70 70 80 80 100 80 C 80 80 70 100 50 100 C 50 80 30 70 0 70 C 20 70 30 50 30 50 C 30 30 20 20 0 20 C 20 20 30 0 50 0 Z'/%3E%3Ccircle cx='50' cy='50' r='8'/%3E%3C/g%3E%3C/svg%3E")}
/* Coffee-bean field — scattered beans (the coffee-house signature) */
.bg-pat.beans{background-size:90px 90px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='%23c79a4b'%3E%3Cellipse cx='20' cy='22' rx='7' ry='4.5' transform='rotate(-30 20 22)'/%3E%3Cellipse cx='65' cy='35' rx='7' ry='4.5' transform='rotate(15 65 35)'/%3E%3Cellipse cx='40' cy='60' rx='7' ry='4.5' transform='rotate(-20 40 60)'/%3E%3Cellipse cx='78' cy='75' rx='7' ry='4.5' transform='rotate(40 78 75)'/%3E%3C/g%3E%3Cg fill='none' stroke='%238e2a5f' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M15 22 Q 20 19 25 22' transform='rotate(-30 20 22)'/%3E%3Cpath d='M60 35 Q 65 32 70 35' transform='rotate(15 65 35)'/%3E%3Cpath d='M35 60 Q 40 57 45 60' transform='rotate(-20 40 60)'/%3E%3Cpath d='M73 75 Q 78 72 83 75' transform='rotate(40 78 75)'/%3E%3C/g%3E%3C/svg%3E")}
/* Vintage herringbone — woven chevrons */
.bg-pat.herringbone{background-size:40px 40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M0 10 L 10 0 L 20 10 L 30 0 L 40 10'/%3E%3Cpath d='M0 30 L 10 20 L 20 30 L 30 20 L 40 30'/%3E%3C/g%3E%3C/svg%3E")}
/* Scalloped fish-scale arcs — Victorian roofline motif */
.bg-pat.scale{background-size:60px 30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='30' viewBox='0 0 60 30'%3E%3Cg fill='none' stroke='%23c79a4b' stroke-width='1'%3E%3Cpath d='M0 30 A 15 15 0 0 1 30 30 A 15 15 0 0 1 60 30'/%3E%3Cpath d='M-30 15 A 15 15 0 0 1 0 15 A 15 15 0 0 1 30 15 A 15 15 0 0 1 60 15 A 15 15 0 0 1 90 15'/%3E%3C/g%3E%3C/svg%3E")}

/* corner seal stamp */
.stamp{
  position:absolute;width:118px;height:118px;display:grid;place-items:center;
  font-family:var(--f-display);font-style:italic;font-weight:500;
  color:var(--berry);background:var(--paper);border:2px solid var(--berry);
  border-radius:50%;font-size:.78rem;text-align:center;line-height:1.15;
  transform:rotate(-12deg);box-shadow:0 14px 30px rgba(0,0,0,.2);z-index:6;
}
.stamp::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1px dashed currentColor;opacity:.45}
.stamp.pink{background:var(--pink);color:#fff;border-color:#fff}
.stamp.gold{background:var(--gold);color:var(--berry-deep);border-color:var(--cream)}
.stamp.dark{background:var(--berry-deep);color:var(--cream);border-color:var(--gold)}

/* flourish rule */
.flourish{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold)}
.flourish::before,.flourish::after{content:"";height:1px;width:70px;background:currentColor;opacity:.6}
.flourish .di{width:8px;height:8px;border:1.4px solid currentColor;transform:rotate(45deg)}
.flourish .di::after{content:"";position:absolute}

/* ===========================================================
   EFFECTS — reveal, steam, float, marquee
   =========================================================== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .marquee-row,.float,.dish-ring,.steam i,.day-photo img,.space img,.hero-scroll::after,.hero-scroll{animation:none!important}
  .float{transform:none!important}
  *{scroll-behavior:auto!important}
}
/* pause the decorative marquee on hover/focus (WCAG 2.2.2) */
.marquee:hover .marquee-row,.marquee:focus-within .marquee-row{animation-play-state:paused}

@keyframes floaty{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-18px) rotate(var(--r,0deg))}}
.float{animation:floaty 6s ease-in-out infinite}
.float.slow{animation-duration:8.5s}
.float.fast{animation-duration:4.8s}

/* steam plume rising off a cup */
.steam{position:absolute;pointer-events:none;display:flex;gap:9px;z-index:5}
.steam i{
  display:block;width:8px;height:54px;border-radius:50%;
  background:linear-gradient(to top,rgba(255,255,255,0),rgba(255,255,255,.55));
  filter:blur(4px);opacity:0;animation:rise 3.6s ease-in infinite;
}
.steam i:nth-child(2){animation-delay:.8s;height:64px}
.steam i:nth-child(3){animation-delay:1.6s}
@keyframes rise{
  0%{opacity:0;transform:translateY(10px) scaleX(1)}
  30%{opacity:.7}
  100%{opacity:0;transform:translateY(-58px) scaleX(1.8)}
}

@keyframes spin-slow{to{transform:rotate(360deg)}}

/* ===========================================================
   MARQUEE TICKER
   =========================================================== */
.marquee{background:var(--berry-deep);overflow:hidden;border-top:1px solid rgba(199,154,75,.3);border-bottom:1px solid rgba(199,154,75,.3)}
.marquee-row{display:flex;white-space:nowrap;will-change:transform}
.marquee-row.a{animation:track 34s linear infinite}
.marquee-row.b{animation:track-rev 30s linear infinite}
.marquee-row span{
  display:inline-flex;align-items:center;gap:26px;padding:16px 0;
  font-family:var(--f-stencil);font-weight:500;
  color:var(--cream);font-size:1.05rem;letter-spacing:.28em;text-transform:uppercase;
}
.marquee-row span::after{content:"\2042";color:var(--pink);margin:0 26px;font-size:1.2rem}
@keyframes track{to{transform:translateX(-50%)}}
@keyframes track-rev{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ===========================================================
   HERO
   =========================================================== */
.hero{
  min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:160px 40px 150px;position:relative;
  background:
    linear-gradient(180deg,rgba(21,23,46,.86) 0%,rgba(58,20,48,.72) 55%,rgba(107,31,72,.8) 100%),
    url('../img/house-hero.jpg');
  background-size:cover;background-position:center 32%;
}
.hero-vignette{position:absolute;inset:0;box-shadow:inset 0 0 220px 40px rgba(0,0,0,.55);pointer-events:none;z-index:1}
.hero-inner{max-width:960px;position:relative;z-index:3;display:flex;flex-direction:column;align-items:center}
.hero-est{
  font-family:var(--f-stencil);font-weight:500;color:var(--cream);
  font-size:.92rem;letter-spacing:.4em;text-transform:uppercase;
  display:inline-flex;gap:18px;align-items:center;margin-bottom:30px;
}
.hero-est::before,.hero-est::after{content:"";width:58px;height:1px;background:var(--gold)}
.hero h1{color:var(--cream);font-size:clamp(3rem,9vw,7rem);font-weight:400;letter-spacing:-.02em}
.hero h1 .script{display:block;color:var(--pink);font-size:1.55em;line-height:.78;margin:-.04em 0}
.hero h1 .amp{font-style:italic;font-weight:300;opacity:.85}
.hero p{color:var(--cream-deep);font-size:1.18rem;font-weight:300;max-width:46ch;margin:30px auto 38px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
.hero-float{position:absolute;z-index:2;filter:drop-shadow(0 30px 36px rgba(0,0,0,.55))}
.hero-float.waffle{width:min(30vw,330px);left:-2%;bottom:8%;--r:-6deg}
.hero-float.cup{width:min(15vw,170px);right:3%;top:20%;--r:8deg}
.hero-float.latte{width:min(15vw,160px);right:8%;bottom:12%;--r:-5deg}
.hero-scroll{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;
  font-family:var(--f-stencil);letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream);font-size:.7rem;opacity:.8;display:flex;flex-direction:column;align-items:center;gap:8px;
}
.hero-scroll::after{content:"";width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:scrolldrop 1.8s ease-in-out infinite}
@keyframes scrolldrop{0%{transform:scaleY(.3);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(.3);transform-origin:bottom}}

/* ===========================================================
   INTRO / THE HOUSE  (split editorial)
   =========================================================== */
.house{background:var(--cream)}
.house-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.house-figure{position:relative}
.house-figure .frame{
  border-radius:200px 200px 14px 14px;overflow:hidden;
  box-shadow:var(--shadow-lift);border:6px solid var(--paper);position:relative;z-index:2;
}
.house-figure .frame img{width:100%;height:560px;object-fit:cover}
.house-figure .arch-line{
  position:absolute;inset:-22px;border:2px solid var(--gold);opacity:.5;
  border-radius:215px 215px 22px 22px;z-index:1;
}
.house-figure .sign-cut{
  position:absolute;right:-40px;bottom:-30px;width:230px;z-index:3;
  filter:drop-shadow(0 22px 26px rgba(0,0,0,.4));transform:rotate(4deg);
}
.house-copy p{font-size:1.08rem;margin-bottom:18px;color:var(--ink)}
.house-copy .pull{
  font-family:var(--f-display);font-style:italic;font-size:1.5rem;line-height:1.4;
  color:var(--berry);border-left:4px solid var(--pink);padding-left:22px;margin:26px 0;display:block;
}
.house-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.house-stat{text-align:center;padding:20px 12px;background:var(--paper);border:1px solid var(--cream-deep);border-radius:10px;position:relative}
.house-stat .n{font-family:var(--f-stencil);font-weight:700;font-size:2.6rem;color:var(--berry);line-height:.9}
.house-stat .l{font-family:var(--f-stencil);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-top:8px}

/* ===========================================================
   SIGNATURE DISH — lifesize hero food
   =========================================================== */
.dish{background:var(--plum);color:var(--cream);text-align:center}
.dish::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 60%,rgba(224,21,111,.28),transparent 58%);z-index:0}
.dish-eyebrow{color:var(--gold)}
.dish h2{color:var(--cream);position:relative;z-index:3}
.dish-stage{position:relative;margin:18px auto 0;max-width:1000px;z-index:3}
.dish-img{
  width:min(94vw,920px);margin:0 auto;position:relative;z-index:3;
  filter:drop-shadow(0 50px 60px rgba(0,0,0,.6));
}
.dish-halo{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-46%);
  width:min(82vw,760px);aspect-ratio:1;border-radius:50%;z-index:1;
  background:radial-gradient(circle,rgba(227,197,133,.34),transparent 62%);
}
.dish-ring{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-46%);
  width:min(86vw,720px);aspect-ratio:1;border:1.5px dashed rgba(199,154,75,.5);border-radius:50%;
  z-index:2;animation:spin-slow 60s linear infinite;
}
.tag{
  position:absolute;z-index:4;background:var(--paper);color:var(--berry-deep);
  padding:12px 18px;border-radius:12px;text-align:left;box-shadow:0 16px 30px rgba(0,0,0,.4);
  max-width:210px;
}
.tag b{font-family:var(--f-display);font-style:italic;display:block;font-size:1.02rem;color:var(--berry)}
.tag span{font-size:.82rem;color:var(--ink);font-weight:300;line-height:1.45}
.tag::before{content:"";position:absolute;width:11px;height:11px;background:var(--pink);border-radius:50%;box-shadow:0 0 0 4px rgba(224,21,111,.25)}
.tag.t1{left:-1%;top:24%}.tag.t1::before{right:-22px;top:18px}
.tag.t2{right:-1%;top:42%}.tag.t2::before{left:-22px;top:18px}
.tag.t3{left:6%;bottom:14%}.tag.t3::before{right:-22px;top:18px}
.dish-price{
  display:inline-flex;align-items:baseline;gap:10px;margin-top:30px;position:relative;z-index:3;
  font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.3rem;
}
.dish-price b{font-family:var(--f-stencil);font-style:normal;font-size:2.2rem;color:var(--cream)}

/* ===========================================================
   DAY TIMELINE — morning / midday / evening
   =========================================================== */
.day{position:relative}
.day-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;position:relative;z-index:3}
.day.flip .day-inner{direction:rtl}
.day.flip .day-inner>*{direction:ltr}
.day-photo{position:relative;display:flex;justify-content:center;align-items:center;min-height:460px}
.day-photo img.food{max-width:112%;filter:drop-shadow(0 40px 44px rgba(0,0,0,.34));transition:transform .8s var(--ease)}
.day-photo:hover img.food{transform:translateY(-10px) rotate(-2deg)}
.day-photo .timechip{
  position:absolute;font-family:var(--f-stencil);font-weight:700;
  font-size:clamp(7rem,16vw,13rem);line-height:.8;color:var(--gold);opacity:.16;z-index:0;
  top:-20px;left:-10px;
}
.day.flip .day-photo .timechip{left:auto;right:-10px}
.day-tag{
  display:inline-flex;align-items:center;gap:12px;font-family:var(--f-stencil);font-weight:600;
  font-size:.92rem;letter-spacing:.3em;text-transform:uppercase;color:var(--pink);margin-bottom:16px;
}
.day-tag::before{content:"";width:30px;height:2px;background:currentColor}
.day h2{font-size:clamp(2rem,4vw,3rem);color:var(--berry)}
.day p{margin-top:16px;font-weight:300;max-width:46ch}
.day-list{list-style:none;margin-top:22px;display:grid;gap:12px;max-width:48ch}
.day-list li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;font-size:.98rem}
.day-list li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);margin-top:7px}
.day-list strong{font-family:var(--f-display);font-style:italic;color:var(--berry);font-weight:500}
.day .day-cta{margin-top:28px;display:inline-flex}

.day.morning{background:linear-gradient(180deg,#fdf6ea,#f7ecd6)}
.day.midday{background:var(--cream)}
.day.evening{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--cream)}
.day.evening h2{color:var(--cream)}
.day.evening .day-tag{color:var(--pink-soft)}
.day.evening p{color:var(--cream-deep)}
.day.evening .day-list strong{color:var(--gold-light)}
.day.evening .day-photo .timechip{color:var(--pink);opacity:.2}

/* ===========================================================
   MENU BOARD — drinks
   =========================================================== */
.board{background:var(--berry-deep);color:var(--cream);position:relative}
.board::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 10%,rgba(224,21,111,.22),transparent 45%),radial-gradient(circle at 10% 90%,rgba(199,154,75,.18),transparent 45%);z-index:0}
.board .eyebrow{color:var(--gold)}
.board h2{color:var(--cream)}
.board-head{text-align:center;max-width:60ch;margin:0 auto 56px;position:relative;z-index:3}
.board-head p{color:var(--cream-deep);font-weight:300;margin-top:12px}
.board-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;position:relative;z-index:3;align-items:start}
.menu-card{
  background:rgba(247,241,230,.05);border:1px solid rgba(247,241,230,.16);
  border-radius:16px;padding:34px 36px;backdrop-filter:blur(2px);
}
.menu-card h3{font-family:var(--f-display);color:var(--gold-light);font-size:1.5rem;margin-bottom:6px}
.menu-card .sub{font-family:var(--f-stencil);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);margin-bottom:22px}
.mrow{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px dashed rgba(247,241,230,.16)}
.mrow:last-child{border-bottom:none}
.mrow .nm{font-family:var(--f-display);font-size:1.12rem;color:var(--cream);white-space:nowrap}
.mrow .dot{flex:1;border-bottom:2px dotted rgba(247,241,230,.28);transform:translateY(-4px)}
.mrow .pr{font-family:var(--f-stencil);font-weight:600;color:var(--gold-light);letter-spacing:.04em}
.mrow .ds{flex-basis:100%;font-size:.84rem;color:var(--cream-deep);font-weight:300;opacity:.85;margin-top:-4px}
.board-feature{position:relative;display:flex;flex-direction:column;gap:24px}
.feature-cup{position:relative;background:rgba(0,0,0,.22);border:1px solid rgba(247,241,230,.14);border-radius:16px;padding:28px;text-align:center}
.feature-cup img{width:160px;margin:0 auto;filter:drop-shadow(0 22px 26px rgba(0,0,0,.5))}
.feature-cup h4{font-family:var(--f-display);font-style:italic;color:var(--cream);font-size:1.35rem;margin-top:10px}
.feature-cup p{font-size:.86rem;color:var(--cream-deep);font-weight:300}
.feature-cup .price{font-family:var(--f-stencil);color:var(--gold-light);font-weight:600;letter-spacing:.06em;margin-top:8px;display:block}

/* ===========================================================
   COLLAGE GALLERY — overlapping editorial food
   =========================================================== */
.gallery{background:var(--paper)}
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:54px}
.gallery-head p{color:var(--ink);font-weight:300;max-width:48ch;margin-top:8px}
.collage{display:grid;grid-template-columns:repeat(12,1fr);gap:22px;position:relative;z-index:3}
.plate{
  position:relative;background:var(--cream);border-radius:16px;padding:22px;
  border:1px solid var(--cream-deep);box-shadow:0 22px 40px -20px rgba(40,10,30,.4);
  display:flex;flex-direction:column;justify-content:flex-end;align-items:center;
  transition:transform .5s var(--ease),box-shadow .5s;overflow:visible;
}
.plate:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:0 34px 54px -22px rgba(40,10,30,.5);z-index:5}
.plate img{width:100%;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(0,0,0,.22))}
.plate figcaption{margin-top:14px;text-align:center}
.plate .ttl{font-family:var(--f-display);font-style:italic;color:var(--berry);font-size:1.16rem;display:block}
.plate .pr{font-family:var(--f-stencil);font-weight:600;color:var(--pink);font-size:.92rem;letter-spacing:.06em}
.plate .ds{font-size:.82rem;color:var(--sage);font-weight:400}
.plate.big{grid-column:span 6;grid-row:span 2}
.plate.big img{height:360px}
.plate.tall{grid-column:span 3;grid-row:span 2}
.plate.tall img{height:320px}
.plate.wide{grid-column:span 6}
.plate.wide img{height:200px}
.plate.sm{grid-column:span 3}
.plate.sm img{height:170px}
.plate .price-seal{
  position:absolute;top:-16px;right:-12px;width:64px;height:64px;border-radius:50%;
  background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-stencil);font-weight:700;line-height:1;transform:rotate(-10deg);
  box-shadow:0 10px 20px rgba(224,21,111,.45);z-index:4;
}
.plate .price-seal .ps-d{font-size:1.18rem;letter-spacing:-.01em}
.plate .price-seal sup{font-size:.62rem;font-weight:700;margin-left:1px;top:-.55em}

/* ===========================================================
   SPACES STRIP — interiors / patio horizontal
   =========================================================== */
.spaces{background:var(--cream);text-align:center}
.spaces-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:50px}
.space{position:relative;border-radius:14px;overflow:hidden;height:300px;box-shadow:var(--shadow-lift)}
.space img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.space:hover img{transform:scale(1.08)}
.space::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(21,23,46,.78))}
.space .lbl{position:absolute;left:0;right:0;bottom:18px;z-index:2;color:var(--cream);font-family:var(--f-display);font-style:italic;font-size:1.18rem}
.space .lbl small{display:block;font-family:var(--f-stencil);font-style:normal;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);margin-top:2px}
.space.tall{grid-row:span 2;height:auto}

/* ===========================================================
   EVENTS / STAGE
   =========================================================== */
.stage{background:var(--navy-deep);color:var(--cream);position:relative}
.stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(224,21,111,.2),transparent 50%);z-index:0}
.stage .eyebrow{color:var(--pink-soft)}
.stage h2{color:var(--cream)}
.stage-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:46px;position:relative;z-index:3}
.stage-head p{color:var(--cream-deep);font-weight:300;max-width:46ch;margin-top:8px}
.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;z-index:3}
.event{
  background:rgba(247,241,230,.045);border:1px solid rgba(247,241,230,.14);
  border-left:3px solid var(--gold);border-radius:12px;padding:26px 24px;
  transition:transform .3s var(--ease),border-color .3s,background .3s;
}
.event:hover{transform:translateY(-6px);border-color:var(--pink);background:rgba(247,241,230,.08)}
.event .when{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.event .when .d{font-family:var(--f-stencil);font-weight:700;font-size:2.6rem;line-height:.8;color:var(--pink-soft)}
.event .when .m{font-family:var(--f-stencil);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.event h3{color:var(--cream);font-size:1.22rem;margin-bottom:4px}
.event .t{font-family:var(--f-stencil);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light)}
/* cancelled events */
.event.cancelled{opacity:.72}
.event.cancelled h3{text-decoration:line-through;text-decoration-color:var(--pink-soft)}
.event.cancelled .t{color:var(--pink-soft)}
.ev-cancel{display:inline-block;font-family:var(--f-stencil);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#fff;background:#c0264a;border-radius:4px;padding:3px 9px;margin-bottom:10px}
.cev.cancelled{background:rgba(192,38,74,.18);border-left-color:#e8536c}
.cev.cancelled .cev-title{text-decoration:line-through;opacity:.85}
.cev-cancel{display:inline-block;margin-top:3px;font-family:var(--f-stencil);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#fff;background:#c0264a;border-radius:4px;padding:1px 6px}
.stage-cta{text-align:center;margin-top:44px;position:relative;z-index:3}

/* bunting divider for events */
.bunting{position:absolute;top:0;left:0;width:100%;height:34px;z-index:5;display:flex;pointer-events:none}
.bunting i{flex:1;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:24px solid var(--pink)}
.bunting i:nth-child(even){border-top-color:var(--gold)}

/* ===========================================================
   SUBSCRIBE — coupon ticket
   =========================================================== */
.subscribe{background:var(--berry);color:var(--cream);position:relative}
.ticket{
  max-width:920px;margin:0 auto;position:relative;z-index:3;
  background:var(--paper);color:var(--ink);border-radius:20px;
  display:grid;grid-template-columns:1fr 1.2fr;overflow:hidden;
  box-shadow:0 40px 70px -24px rgba(0,0,0,.5);
}
.ticket-stub{
  background:var(--berry-deep);color:var(--cream);padding:42px 34px;position:relative;
  display:flex;flex-direction:column;justify-content:center;
}
.ticket-stub::after{
  content:"";position:absolute;right:-13px;top:0;bottom:0;width:26px;
  background:radial-gradient(circle at center,transparent 0 8px,var(--paper) 8px) ;
  background-size:26px 26px;background-position:right center;background-repeat:repeat-y;
}
.ticket-stub .pct{font-family:var(--f-stencil);font-weight:800;font-size:4.2rem;line-height:.85;color:var(--gold-light)}
.ticket-stub .pct small{display:block;font-size:1rem;letter-spacing:.2em;color:var(--pink-soft);margin-top:8px}
.ticket-stub p{font-size:.86rem;color:var(--cream-deep);font-weight:300;margin-top:14px}
.ticket-form{padding:42px 40px}
.ticket-form h3{font-size:1.9rem;color:var(--berry);margin-bottom:6px}
.ticket-form .h3-sub{color:var(--sage);font-weight:300;margin-bottom:22px}
.field{position:relative;margin-bottom:16px}
.input,.select,.textarea{
  width:100%;font-family:var(--f-body);font-size:1rem;color:var(--ink);
  padding:15px 18px;border:1.6px solid var(--cream-deep);border-radius:12px;background:#fff;
  transition:border-color .25s,box-shadow .25s;
}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px rgba(224,21,111,.12)}
.subscribe-inline{display:flex;gap:12px;flex-wrap:wrap}
.subscribe-inline .input{flex:1;min-width:200px}
.form-note{font-size:.78rem;color:var(--sage);margin-top:12px}
.form-ok{display:none;background:rgba(93,106,82,.12);border:1px solid var(--sage);color:var(--sage);padding:14px 18px;border-radius:12px;font-weight:500;margin-top:6px}
.form-ok.show{display:block}

/* ===========================================================
   REVIEWS
   =========================================================== */
.reviews{background:var(--paper)}
.reviews-head{text-align:center;margin-bottom:50px}
.stars{color:var(--gold);font-size:1.4rem;letter-spacing:.12em;margin-top:12px}
.stars small{display:block;font-family:var(--f-stencil);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-top:6px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review{background:var(--cream);border:1px solid var(--cream-deep);border-radius:16px;padding:36px 32px;position:relative}
.review::before{content:"\201C";font-family:var(--f-display);font-size:5.5rem;color:var(--pink);opacity:.2;position:absolute;top:24px;left:24px;line-height:0;height:0}
.review p{font-style:italic;font-weight:300;margin-top:22px;color:var(--ink)}
.review cite{display:block;margin-top:18px;font-style:normal;font-family:var(--f-display);color:var(--berry);font-weight:500}
.review .src{display:block;font-family:var(--f-stencil);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-top:2px}

/* ===========================================================
   VISIT
   =========================================================== */
.visit{background:var(--navy);color:var(--cream);position:relative}
.visit .eyebrow{color:var(--pink-soft)}
.visit h2{color:var(--cream)}
.visit-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;position:relative;z-index:3;margin-top:36px}
.visit iframe{width:100%;height:420px;border:0;border-radius:16px;box-shadow:var(--shadow-lift)}
.vblock{margin-bottom:28px}
.vblock h3{font-family:var(--f-stencil);color:var(--pink-soft);font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:12px}
.vrow{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed rgba(247,241,230,.14);color:var(--cream-deep)}
.vrow:last-child{border-bottom:none}
.vrow .d{color:var(--cream)}
.vblock a{color:var(--gold-light);display:block}
.vblock a:hover{color:var(--cream)}

/* ===========================================================
   FOOTER
   =========================================================== */
footer{background:var(--navy-deep);color:var(--cream-deep);padding:70px 40px 34px;text-align:center;position:relative}
.ft-logo{width:84px;height:84px;border-radius:50%;margin:0 auto 16px;border:2px solid rgba(247,241,230,.4);box-shadow:0 10px 26px rgba(0,0,0,.45)}
.ft-name{font-family:var(--f-script);font-size:2.6rem;color:var(--cream);line-height:1}
.ft-sub{font-family:var(--f-stencil);font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--pink-soft);margin-top:4px}
.ft-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;max-width:1000px;margin:46px auto 0;text-align:left}
.ft-col h4{font-family:var(--f-stencil);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--pink-soft);font-weight:600;margin-bottom:14px}
.ft-col a,.ft-col p{display:block;color:var(--cream-deep);font-size:.9rem;font-weight:300;line-height:1.9}
.ft-col a:hover{color:var(--gold-light)}
.ft-line{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#8983a0}

/* ===========================================================
   SUBPAGE BANNER (inquiry)
   =========================================================== */
.banner{
  position:relative;min-height:62vh;display:flex;align-items:flex-end;padding:180px 40px 80px;color:var(--cream);
  background:linear-gradient(180deg,rgba(21,23,46,.82),rgba(58,20,48,.78)),url('../img/patio-night.png');
  background-size:cover;background-position:center;
}
.crumbs{display:flex;gap:10px;font-family:var(--f-stencil);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-deep);margin-bottom:16px;position:relative;z-index:3}
.crumbs a{opacity:.7}.crumbs a:hover{opacity:1;color:var(--pink-soft)}
.crumbs span{opacity:.4}
.banner h1{font-size:clamp(2.6rem,7vw,5rem);color:var(--cream);position:relative;z-index:3}
.banner h1 .script{color:var(--pink);font-size:1.3em}
.banner p{color:var(--cream-deep);font-weight:300;max-width:54ch;margin-top:18px;font-size:1.12rem;position:relative;z-index:3}

/* inquiry page */
.inq{background:var(--cream)}
.inq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.inq-aside .type{
  display:flex;gap:18px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--cream-deep);
}
.inq-aside .type:last-child{border-bottom:none}
.inq-aside .type .ic{
  flex-shrink:0;width:56px;height:56px;border-radius:14px;display:grid;place-items:center;
  background:var(--berry);color:var(--cream);
}
.inq-aside .type .ic svg{width:28px;height:28px}
.inq-aside .type h4{font-family:var(--f-display);color:var(--berry);font-size:1.22rem;margin-bottom:4px}
.inq-aside .type p{font-size:.92rem;font-weight:300;color:var(--ink)}
.form-card{
  background:var(--paper);border:1px solid var(--cream-deep);border-radius:20px;padding:44px 46px;
  box-shadow:var(--shadow-lift);position:relative;z-index:3;
}
.form-card h2{color:var(--berry);font-size:2rem;margin-bottom:6px}
.form-card .sub{color:var(--sage);font-weight:300;margin-bottom:28px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid .full{grid-column:1/-1}
.label{display:block;font-family:var(--f-stencil);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--berry);font-weight:600;margin-bottom:7px}
.req{color:var(--pink)}
.textarea{min-height:130px;resize:vertical}
.form-actions{display:flex;align-items:center;gap:20px;margin-top:24px;flex-wrap:wrap}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media(max-width:1000px){
  .house-grid,.board-grid,.visit-grid,.inq-grid,.day-inner,.ticket{grid-template-columns:1fr}
  .day.flip .day-inner{direction:ltr}
  .house-figure .frame img{height:440px}
  .reviews-grid,.event-grid,.spaces-rail{grid-template-columns:repeat(2,1fr)}
  .collage{grid-template-columns:repeat(6,1fr)}
  .plate.big,.plate.wide{grid-column:span 6}
  .plate.tall,.plate.sm{grid-column:span 3}
  .plate.big img{height:300px}
  .ticket-stub::after{display:none}
  .ticket-stub{border-radius:20px 20px 0 0}
}
@media(max-width:760px){
  .pad{padding:90px 22px}.pad-sm{padding:70px 22px}
  header{padding:14px 22px 12px}header.scrolled{padding:9px 22px}
  .brand img{width:62px;height:62px}
  header.scrolled .brand img{width:46px;height:46px}
  nav{
    position:fixed;inset:0 0 0 auto;width:78%;max-width:340px;height:100vh;margin-top:0;
    background:var(--navy-deep);flex-direction:column;justify-content:center;gap:34px;
    transform:translateX(100%);transition:transform .4s var(--ease);box-shadow:-30px 0 60px rgba(0,0,0,.5);
  }
  header.scrolled nav{margin-top:0}
  nav.open{transform:none}
  nav a:not(.nav-cta){font-size:1.1rem}
  .nav-rule{width:1px;height:24px}
  .nav-rule::before{background:var(--navy-deep)}
  .burger{display:flex;top:22px}
  .hero-float.cup,.hero-float.latte{display:none}
  .hero-float.waffle{width:42vw;bottom:3%;left:-6%;opacity:.92}
  .form-grid{grid-template-columns:1fr}
  .reviews-grid,.event-grid,.spaces-rail,.collage{grid-template-columns:1fr}
  .plate.big,.plate.wide,.plate.tall,.plate.sm{grid-column:span 1}
  .plate.big img,.plate.tall img{height:300px}
  .house-stats{grid-template-columns:repeat(3,1fr)}
  .tag{display:none}
  .ft-cols{grid-template-columns:1fr 1fr;text-align:center}
  .form-card{padding:30px 26px}
}
@media(max-width:440px){.ft-cols{grid-template-columns:1fr}.house-stats{grid-template-columns:1fr}}

/* ===========================================================
   STORY PAGE
   =========================================================== */
.s-intro{background:var(--cream)}
.s-intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.s-prose p{font-size:1.08rem;margin-bottom:18px;color:var(--ink)}
.s-prose p:first-of-type::first-letter{font-family:var(--f-display);font-size:4.8rem;float:left;line-height:.74;color:var(--berry);padding:8px 14px 0 0;font-weight:600}
.s-prose strong{color:var(--berry);font-weight:600}
.s-figure{position:relative}
.s-figure img{border-radius:16px;box-shadow:var(--shadow-lift);width:100%;height:540px;object-fit:cover;border:6px solid var(--paper)}
.s-figure::after{content:"";position:absolute;inset:22px -22px -22px 22px;border:2px solid var(--gold);border-radius:16px;z-index:-1}

.timeline{background:var(--berry-deep);color:var(--cream)}
.timeline::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 8%,rgba(224,21,111,.2),transparent 45%),radial-gradient(circle at 82% 92%,rgba(199,154,75,.16),transparent 50%);z-index:0}
.timeline .eyebrow{color:var(--gold-light)}
.timeline h2{color:var(--cream)}
.tl{position:relative;max-width:880px;margin:44px auto 0;padding-left:38px;z-index:3}
.tl::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--pink),var(--gold) 55%,rgba(255,255,255,.1))}
.tl-item{position:relative;padding-bottom:46px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-33px;top:8px;width:15px;height:15px;background:var(--pink);border:3px solid var(--berry-deep);border-radius:50%;box-shadow:0 0 0 2px var(--gold)}
.tl-year{font-family:var(--f-stencil);font-weight:700;letter-spacing:.08em;color:var(--gold-light);font-size:1.05rem;text-transform:uppercase;margin-bottom:4px}
.tl-item h3{color:var(--cream);font-size:1.5rem;margin-bottom:8px}
.tl-item p{color:var(--cream-deep);font-weight:300;max-width:62ch}
.tl-source{display:inline-flex;margin-top:10px;font-family:var(--f-stencil);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light)}
.tl-source:hover{color:var(--pink-soft)}

.people{background:var(--navy);color:var(--cream)}
.people .eyebrow{color:var(--pink-soft)}
.people h2{color:var(--cream)}
.bios{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:44px}
.bio{background:rgba(247,241,230,.05);border:1px solid rgba(247,241,230,.12);border-radius:16px;padding:38px 34px;position:relative}
.bio::before{content:"";position:absolute;left:34px;top:-1px;width:54px;height:4px;background:var(--pink);border-radius:0 0 4px 4px}
.bio .role{font-family:var(--f-stencil);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);font-weight:600;display:block;margin-top:14px}
.bio h3{color:var(--cream);font-size:1.7rem;margin-top:6px}
.bio p{color:var(--cream-deep);font-weight:300;margin-top:16px}
.bio em{font-family:var(--f-display);font-style:italic;color:var(--pink-soft)}
.bio ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.bio li{font-family:var(--f-stencil);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(247,241,230,.2);color:var(--cream-deep);padding:6px 12px;border-radius:18px}

.bigquote{background:var(--berry);color:var(--cream);text-align:center}
.bigquote blockquote{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,4vw,3rem);line-height:1.25;max-width:22ch;margin:0 auto;position:relative;z-index:3}
.bigquote cite{display:block;margin-top:26px;font-family:var(--f-stencil);font-style:normal;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-light);font-size:.84rem;position:relative;z-index:3}
.bigquote .qcup{position:absolute;width:200px;opacity:.4;filter:drop-shadow(0 22px 26px rgba(0,0,0,.4));z-index:1}
.bigquote .qcup.l{left:5%;top:-30px;transform:rotate(12deg)}
.bigquote .qcup.r{right:5%;bottom:-40px;transform:rotate(-10deg)}

.vision{background:var(--cream)}
.vision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
.vcard{background:var(--paper);border:1px solid var(--cream-deep);border-radius:16px;padding:34px 30px;transition:transform .4s var(--ease),box-shadow .4s}
.vcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.vcard .vic{width:52px;height:52px;border-radius:14px;background:var(--berry);color:var(--cream);display:grid;place-items:center;margin-bottom:18px}
.vcard .vic svg{width:26px;height:26px}
.vcard h3{color:var(--berry);font-size:1.3rem;margin-bottom:8px}
.vcard p{font-weight:300}

.sources{background:var(--navy-deep);color:var(--cream-deep)}
.sources h4{font-family:var(--f-stencil);letter-spacing:.22em;text-transform:uppercase;color:var(--pink-soft);font-size:.78rem;margin-bottom:14px}
.sources p{font-weight:300;max-width:66ch;margin-bottom:16px}
.sources ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.sources li{font-size:.9rem;line-height:1.5}
.sources a{color:var(--gold-light)}
.sources a:hover{color:var(--pink-soft)}

.nextp{background:var(--paper);text-align:center}
.nextp h2{color:var(--berry);margin-bottom:10px}
.nextp p{font-weight:300;max-width:50ch;margin:0 auto 28px}
.nextp .btn{margin:6px}

/* ===========================================================
   MENU PAGE
   =========================================================== */
.menu-sub{background:var(--berry);position:sticky;top:0;z-index:60;padding:12px 20px;box-shadow:0 6px 20px rgba(0,0,0,.22)}
.menu-sub-inner{max-width:var(--maxw);margin:0 auto;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.menu-sub-inner::-webkit-scrollbar{display:none}
.menu-sub a{flex-shrink:0;font-family:var(--f-stencil);font-weight:500;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cream);padding:8px 16px;border-radius:30px;transition:background .25s,color .25s}
.menu-sub a:hover{background:rgba(255,255,255,.14)}
.menu-sub a.on{background:var(--pink);color:#fff}
.mn{padding:92px 40px;position:relative;overflow:clip;background:var(--paper)}
.mn.alt{background:var(--cream)}
.mn.dark{background:var(--berry-deep);color:var(--cream)}
.mn.dark .eyebrow{color:var(--gold-light)}
.mn-hero{max-width:var(--maxw);margin:0 auto 44px;display:grid;grid-template-columns:1.2fr 300px;gap:40px;align-items:end;position:relative;z-index:3}
.mn-hero.center{grid-template-columns:1fr;text-align:center}
.mn-hero h2{color:var(--berry);font-size:clamp(2rem,4vw,3rem)}
.mn.dark .mn-hero h2{color:var(--cream)}
.mn-hero .sub{font-family:var(--f-stencil);font-size:.84rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-top:10px}
.mn.dark .mn-hero .sub{color:var(--gold-light)}
.mn-hero .cap{margin-top:14px;font-weight:300;max-width:50ch}
.mn.dark .mn-hero .cap{color:var(--cream-deep)}
.mn-hero-img{position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:220px}
.mn-hero-img img{max-height:250px;filter:drop-shadow(0 28px 30px rgba(0,0,0,.34));transform:rotate(-4deg);transition:transform .6s var(--ease)}
.mn-hero-img:hover img{transform:rotate(-1deg) translateY(-6px)}
.mn-hero-img::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(199,154,75,.3),transparent 64%);top:6px;z-index:-1}
.mn.dark .mn-hero-img::before{background:radial-gradient(circle,rgba(224,21,111,.32),transparent 64%)}
.mn-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 56px;max-width:var(--maxw);margin:0 auto;position:relative;z-index:3}
.mn-grid.single{grid-template-columns:1fr;max-width:760px}
.mn-item{padding:18px 0;border-bottom:1px dashed var(--cream-deep)}
.mn.dark .mn-item{border-bottom-color:rgba(247,241,230,.18)}
.mn-item .nr{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.mn-item .nm{font-family:var(--f-display);font-size:1.18rem;color:var(--berry);font-weight:500}
.mn.dark .mn-item .nm{color:var(--gold-light)}
.mn-item .pr{font-family:var(--f-stencil);font-weight:600;color:var(--berry-deep);white-space:nowrap;letter-spacing:.03em}
.mn.dark .mn-item .pr{color:var(--cream)}
.mn-item .ds{font-size:.92rem;font-weight:300;margin-top:6px}
.mn.dark .mn-item .ds{color:var(--cream-deep)}
.mn-item .add{font-size:.8rem;font-style:italic;color:var(--sage);margin-top:4px}
.mn-item .add b{color:var(--wood)}
.mn-tag{font-family:var(--f-stencil);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);margin-left:8px}
.mn-item.feat{display:grid;grid-template-columns:118px 1fr;gap:18px;align-items:center;background:#fff;border:1px solid var(--cream-deep);border-radius:14px;padding:16px;box-shadow:0 16px 26px -16px rgba(40,10,30,.4)}
.mn.dark .mn-item.feat{background:rgba(247,241,230,.06);border-color:rgba(247,241,230,.14)}
.mn-item.feat img{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(0,0,0,.24));transform:rotate(-4deg);transition:transform .35s}
.mn-item.feat:hover img{transform:rotate(-1deg) translateY(-3px)}
.sizes{display:grid;grid-template-columns:1fr auto auto auto;gap:4px 22px;max-width:760px;margin:0 auto;padding:24px 30px;background:#fff;border:1px solid var(--cream-deep);border-radius:14px;position:relative;z-index:3}
.sizes .hh{font-family:var(--f-stencil);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);padding-bottom:8px;border-bottom:1px solid var(--cream-deep)}
.sizes .dk{font-family:var(--f-display);font-size:1.05rem;color:var(--berry);padding:11px 0;border-bottom:1px dashed var(--cream-deep)}
.sizes .cl{text-align:right;font-family:var(--f-stencil);font-weight:600;color:var(--ink);padding:11px 0;border-bottom:1px dashed var(--cream-deep)}
.sizes .dk.last,.sizes .cl.last{border-bottom:none}
.mn-note{text-align:center;margin-top:16px;font-size:.86rem;color:var(--sage);position:relative;z-index:3}
.mn-strip{background:var(--plum);color:var(--cream);text-align:center;padding:70px 40px;position:relative;overflow:clip}
.mn-strip h3{color:var(--cream);font-size:clamp(1.6rem,3.4vw,2.4rem)}
.mn-strip p{color:var(--cream-deep);font-weight:300;max-width:54ch;margin:12px auto 0}

/* ===========================================================
   EVENTS PAGE
   =========================================================== */
.series{background:var(--cream)}
.series-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:46px}
.scard{background:var(--paper);border:1px solid var(--cream-deep);border-radius:14px;padding:26px 24px;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.scard:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:var(--shadow-lift)}
.scard .sw{font-family:var(--f-stencil);letter-spacing:.14em;text-transform:uppercase;color:var(--pink);font-size:.74rem;font-weight:600;margin-bottom:10px}
.scard h3{color:var(--berry);font-size:1.24rem;margin-bottom:6px}
.scard p{font-weight:300;font-size:.92rem}

.calendar{background:var(--navy-deep);color:var(--cream)}
.calendar::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(224,21,111,.18),transparent 50%);z-index:0}
.calendar .eyebrow{color:var(--pink-soft)}
.calendar h2{color:var(--cream)}
.cal{background:rgba(247,241,230,.04);border:1px solid rgba(247,241,230,.1);border-radius:16px;padding:26px;margin-top:30px;position:relative;z-index:3}
.cal-bar{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(247,241,230,.12)}
.cal-month{font-family:var(--f-display);font-size:2rem;color:var(--cream)}
.cal-month .yr{font-family:var(--f-stencil);font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cream-deep);margin-left:12px}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--f-stencil);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-deep)}
.cal-legend span{display:inline-flex;align-items:center;gap:8px}
.lg{width:9px;height:9px;border-radius:50%}
.lg.today{background:var(--pink)}.lg.event{background:var(--gold)}.lg.private{background:rgba(255,255,255,.4)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{font-family:var(--f-stencil);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);text-align:center;padding:6px 0 10px;font-weight:600}
.cell{position:relative;min-height:130px;padding:32px 8px 8px;background:rgba(255,255,255,.035);border:1px solid rgba(247,241,230,.08);border-radius:8px;font-size:.74rem;line-height:1.32;transition:background .25s}
.cell.empty{background:transparent;border-color:transparent;min-height:0}
.cell.today{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink)}
.cell.has:hover{background:rgba(255,255,255,.1)}
.cnum{position:absolute;top:7px;right:8px;font-family:var(--f-stencil);font-weight:600;color:var(--cream-deep)}
.cell.today .cnum{background:var(--pink);color:#fff;border-radius:6px;padding:1px 6px}
.cev{display:block;padding:5px 7px;margin-bottom:4px;background:rgba(199,154,75,.12);border-left:2px solid var(--gold);border-radius:3px;color:var(--cream)}
.cev .ct{display:block;font-family:var(--f-stencil);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:var(--pink-soft);font-weight:600}
.cev.holiday{background:rgba(224,21,111,.16);border-left-color:var(--pink);font-style:italic}
.cev.private{background:rgba(38,42,82,.5);border-left-color:var(--cream-deep);color:var(--cream-deep)}
.cev.private .ct,.cev.holiday .ct{color:var(--gold-light)}
.cal-agenda{display:none}
.cal-day{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start;padding:14px;background:rgba(255,255,255,.04);border-radius:8px;border-left:3px solid transparent;margin-bottom:6px}
.cal-day.today{border-left-color:var(--pink);background:rgba(224,21,111,.08)}
.cal-day .dw{font-family:var(--f-stencil);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);font-weight:600}
.cal-day .dn{font-family:var(--f-display);font-style:italic;font-size:1.7rem;color:var(--pink-soft);line-height:1}

.bookings{background:var(--cream)}
.bookings-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.bookings-figure{text-align:center}
.bookings-figure .padimg{display:inline-block;padding:26px;background:var(--cream-deep);border-radius:18px;box-shadow:var(--shadow-lift)}
.bookings-figure img{max-width:360px;filter:drop-shadow(0 18px 22px rgba(0,0,0,.3));transform:rotate(-4deg)}
.bookings h2{color:var(--berry)}
.bookings p{font-weight:300;margin-top:16px}

/* ===========================================================
   VISIT PAGE
   =========================================================== */
.visit-main{background:var(--paper)}
.visit-grid2{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:10px}
.vb{margin-bottom:34px}
.vb h3{font-family:var(--f-display);color:var(--berry);font-size:1.5rem;margin-bottom:12px}
.vb h3 .scriptword{color:var(--pink)}
.hrow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--cream-deep);font-size:.96rem}
.hrow span:first-child{font-weight:500}
.hrow span:last-child{font-family:var(--f-display);font-style:italic;color:var(--berry)}
.hrow.now{background:rgba(224,21,111,.06);padding:10px 12px;margin:6px -12px;border-radius:8px;border:1px solid rgba(224,21,111,.25)}
.hrow.now span:first-child{color:var(--pink);font-weight:700}
.hrow.now span:first-child::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#4ade80;margin-right:8px;animation:pulse-dot 2.2s infinite}
@keyframes pulse-dot{0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}70%{box-shadow:0 0 0 10px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.vinfo p{font-weight:300;margin-bottom:10px}
.vinfo a{color:var(--berry);font-weight:600;border-bottom:1px solid var(--cream-deep)}
.vinfo a:hover{color:var(--pink);border-color:var(--pink)}
.mapwrap{position:sticky;top:110px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lift);border:1px solid var(--cream-deep)}
.mapwrap iframe{display:block;width:100%;height:520px;border:0}
.map-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;background:var(--berry);color:var(--cream);flex-wrap:wrap}
.map-cta strong{font-family:var(--f-display);font-style:italic}
.gtk{background:var(--cream);text-align:center}
.gtk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.gcard{background:var(--paper);border:1px solid var(--cream-deep);border-radius:16px;padding:28px 22px}
.gcard .gic{width:52px;height:52px;border-radius:50%;background:var(--berry);color:var(--cream);display:grid;place-items:center;margin:0 auto 14px}
.gcard .gic svg{width:24px;height:24px}
.gcard h4{color:var(--berry);font-size:1.1rem;margin-bottom:6px}
.gcard p{font-weight:300;font-size:.9rem}
.park{background:var(--navy);color:var(--cream);text-align:center}
.park .eyebrow{color:var(--pink-soft)}
.park h2{color:var(--cream)}
.park>.wrap>p{color:var(--cream-deep);font-weight:300;max-width:54ch;margin:16px auto 0}
.park ul{list-style:none;margin:30px auto 0;max-width:560px;text-align:left}
.park li{display:grid;grid-template-columns:36px 1fr;gap:16px;padding:14px 0;border-bottom:1px dashed rgba(255,255,255,.12);color:var(--cream-deep);font-weight:300}
.park li:last-child{border-bottom:none}
.park li strong{display:block;color:var(--cream);font-family:var(--f-display);font-style:italic;margin-bottom:2px}
.park li .m{width:36px;height:36px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;font-family:var(--f-stencil);font-weight:700}
.contact{background:var(--cream);text-align:center}
.contact h2{color:var(--berry);margin-bottom:12px}
.contact p{font-weight:300;max-width:54ch;margin:0 auto 28px}
.contact .btn{margin:6px}

/* ===========================================================
   PAGE RESPONSIVE
   =========================================================== */
@media(max-width:1000px){
  .s-intro-grid,.bios,.mn-hero,.visit-grid2,.bookings-grid{grid-template-columns:1fr}
  .mn-hero{gap:18px;text-align:center}
  .mn-hero.center{text-align:center}
  .mn-hero-img{order:-1;min-height:180px}
  .mn-hero-img img{max-height:190px}
  .vision-grid,.gtk-grid{grid-template-columns:repeat(2,1fr)}
  .series-grid{grid-template-columns:1fr 1fr}
  .s-figure img{height:440px}
  .mapwrap{position:static}
  .sources ul{grid-template-columns:1fr}
}
@media(max-width:760px){
  .mn{padding:70px 22px}
  .menu-sub{padding:10px 14px}
  .mn-grid{grid-template-columns:1fr;gap:6px}
  .sizes{grid-template-columns:1fr auto;padding:18px 20px}
  .sizes .hh:nth-child(2),.sizes .hh:nth-child(3),.sizes .hh:nth-child(4){display:none}
  .sizes .cl{text-align:left}
  .cal{padding:16px}
  .cal-grid,.cal-dow{display:none}
  .cal-agenda{display:block}
  .series-grid,.vision-grid,.gtk-grid{grid-template-columns:1fr}
  .tl{padding-left:30px}
  .bigquote .qcup{display:none}
  .s-figure::after{display:none}
}

/* ===========================================================
   FLYER LIGHTBOX + calendar flyer chips (backend-driven)
   =========================================================== */
.cev.flyer{cursor:pointer}
.cev .flyerchip{display:inline-flex;align-items:center;gap:4px;margin-top:3px;font-family:var(--f-stencil);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-deep);background:var(--gold-light);border-radius:4px;padding:1px 6px;font-weight:700}
.lightbox{position:fixed;inset:0;z-index:4000;display:none;align-items:center;justify-content:center;padding:30px;background:rgba(12,8,18,.86);backdrop-filter:blur(4px)}
.lightbox.open{display:flex}
.lightbox img{max-width:min(92vw,820px);max-height:90vh;border-radius:14px;box-shadow:0 40px 80px rgba(0,0,0,.6);border:6px solid var(--paper)}
.lightbox .lb-close{position:absolute;top:22px;right:26px;width:46px;height:46px;border-radius:50%;background:var(--paper);color:var(--berry);border:none;font-size:1.5rem;cursor:pointer;display:grid;place-items:center;font-family:var(--f-display)}
.lightbox .lb-close:hover{background:var(--pink);color:#fff}

/* small admin-flag note for empty states on public pages */
.empty-note{text-align:center;color:var(--sage);font-style:italic;padding:30px;font-weight:300}

/* ===========================================================
   CUSTOM SCROLLBAR  (brand: berry thumb · cream track · pink hover)
   =========================================================== */
/* Firefox */
html{scrollbar-width:thin;scrollbar-color:var(--berry) var(--cream-deep)}
/* WebKit / Chromium / Safari / Edge */
::-webkit-scrollbar{width:14px;height:14px}
::-webkit-scrollbar-track{background:var(--cream-deep);box-shadow:inset 1px 0 0 rgba(107,31,72,.1)}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--berry),var(--berry-deep));
  border:3px solid var(--cream-deep);border-radius:20px;
  background-clip:padding-box;
}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--pink),var(--berry))}
::-webkit-scrollbar-thumb:active{background:var(--pink)}
::-webkit-scrollbar-corner{background:var(--cream-deep)}

/* ===========================================================
   CLICK-TO-LOAD MAP FACADE (CIPA: no Google call until opt-in)
   =========================================================== */
.map-facade{
  position:relative;width:100%;height:420px;border-radius:16px;overflow:hidden;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:26px;
  background:
    repeating-linear-gradient(0deg,rgba(93,106,82,.10) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,rgba(93,106,82,.10) 0 1px,transparent 1px 40px),
    linear-gradient(135deg,#eef1e9,#e2e9d8);
  color:var(--berry-deep);transition:filter .25s}
.map-facade:hover{filter:brightness(.985)}
.map-facade:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.map-facade .mf-pin{width:50px;height:50px;color:var(--pink);filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}
.map-facade strong{font-family:var(--f-display);font-size:1.16rem;color:var(--berry)}
.map-facade .mf-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-stencil);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;background:var(--pink);color:#fff;padding:11px 22px;border-radius:30px}
.map-facade:hover .mf-btn{background:var(--berry)}
.map-facade small{font-size:.74rem;color:var(--sage);max-width:36ch;line-height:1.5}
.map-facade small a{color:var(--berry);text-decoration:underline}
.visit .map-facade{box-shadow:var(--shadow-lift)}
.mapwrap .map-facade{height:520px;border-radius:0}

/* ===========================================================
   ACCESSIBILITY (ADA / WCAG 2.1 AA)
   =========================================================== */
/* Skip-to-content link (WCAG 2.4.1) */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--berry);color:#fff;padding:14px 22px;border-radius:0 0 10px 0;
  font-family:var(--f-stencil);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  font-size:.85rem;text-decoration:none;
}
.skip-link:focus{left:0}
main{display:block}
main:focus{outline:none}

/* Visible keyboard focus on all interactive elements (WCAG 2.4.7) */
a:focus-visible,button:focus-visible,.btn:focus-visible,.linkmore:focus-visible,
[role="button"]:focus-visible,summary:focus-visible{
  outline:3px solid #c7135f;outline-offset:3px;border-radius:4px;
}
/* dark/cream outline where a pink ring would blend into a pink element */
.btn-primary:focus-visible,.nav-cta:focus-visible{outline-color:var(--navy-deep)}
/* on dark sections, use a light ring */
.tone-navy a:focus-visible,.stage a:focus-visible,.board a:focus-visible,.visit a:focus-visible,
.calendar a:focus-visible,.timeline a:focus-visible,.people a:focus-visible,.bigquote a:focus-visible,
.sources a:focus-visible,.subscribe a:focus-visible,footer a:focus-visible{outline-color:var(--gold-light)}
nav a:focus-visible{outline-color:var(--gold-light)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c7135f;outline-offset:1px}
