
:root{
  --cream:#f5f1e9;
  --ink:#1c1a18;
  --rust:#b44e2f;
  --line:rgba(255,255,255,.75);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.hero{height:78vh;min-height:640px;position:relative;overflow:hidden;color:#fff}
.hero__image{position:absolute;inset:0;height:100%;object-fit:cover;object-position:46% 52%}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.08) 55%,rgba(0,0,0,.1))}
.nav{position:absolute;inset:0 0 auto;z-index:3;padding:28px 38px;display:flex;align-items:center;justify-content:space-between}
.brand img{width:300px;height:auto;object-fit:contain}
.nav__links{display:flex;gap:30px;align-items:center;text-transform:uppercase;font-size:13px;letter-spacing:.11em}
.nav__reserve{border:1px solid #fff;padding:13px 17px}
.nav__toggle{display:none;background:none;border:1px solid #fff;color:#fff;padding:10px 12px;text-transform:uppercase}
.hero__content{position:absolute;z-index:2;left:7%;top:37%;max-width:620px}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(48px,5.5vw,82px);line-height:1.02;margin:0}
.button{display:inline-block;text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:12px;padding:15px 22px}
.button--dark{border:1px solid #fff;color:#fff;margin-top:10px}


.manifesto{padding:110px 20px;background:var(--cream)}
.manifesto__inner{max-width:820px;margin:auto;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:24px;line-height:1.55}
.manifesto p{margin:0 0 20px}
.abigail{display:grid;grid-template-columns:40% 60%;min-height:510px;background:#eee7dd}
.abigail__copy{padding:72px 10vw 60px 7vw;display:flex;flex-direction:column;justify-content:center}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--rust);font-weight:700;font-size:13px}
.abigail h2{font-family:Georgia,'Times New Roman',serif;font-size:56px;line-height:1.03;font-weight:400;margin:10px 0 24px}
.abigail__copy>p:not(.eyebrow){line-height:1.7;max-width:420px}
.text-link{text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700;margin-top:20px}
.abigail__image img{height:100%;object-fit:cover;object-position:center}
.meal-row,.feature-row{display:grid;grid-template-columns:repeat(3,1fr)}
.meal-card,.feature-card{position:relative;overflow:hidden;min-height:360px}
.meal-card img,.feature-card img{height:100%;object-fit:cover}
.meal-card__overlay{position:absolute;inset:auto 0 0;padding:80px 26px 28px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.meal-card h3,.feature-card h3{font-family:Georgia,'Times New Roman',serif;text-transform:uppercase;font-weight:400;letter-spacing:.04em;font-size:28px;margin:0 0 10px}
.meal-card p{margin:0}
.feature-card{min-height:410px;color:#fff}
.feature-card__shade{position:absolute;inset:0;background:rgba(0,0,0,.48)}
.feature-card__copy{position:absolute;inset:0;padding:44px 34px;display:flex;flex-direction:column;justify-content:flex-end}
.feature-card__copy p{line-height:1.6;max-width:280px}
.feature-card__copy a{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;margin-top:18px}
.footer{background:#171615;color:#f4f1eb;display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:46px;padding:60px 6vw}
.footer__logo{width:260px;filter:none}
.footer h4{text-transform:uppercase;letter-spacing:.09em;font-size:13px;margin:0 0 16px}
.footer p{line-height:1.55;color:#d9d5cf}
@media (max-width:900px){
  .nav__links{display:none;position:absolute;top:90px;right:20px;background:#181716;padding:24px;flex-direction:column;align-items:flex-start}
  .nav__links.is-open{display:flex}
  .nav__toggle{display:block}
  .hero{height:72vh;min-height:580px}
  .hero__content{left:28px;right:28px}
  
  
  .abigail{grid-template-columns:1fr}
  .abigail__image{height:440px}
  .meal-row,.feature-row{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .brand img{width:205px}
  .nav{padding:22px 18px}
  .hero__image{object-position:50% 50%}
  .hero__content{top:42%}
  
  .manifesto__inner{font-size:20px}
  .abigail h2{font-size:45px}
  .footer{grid-template-columns:1fr}
}


/* Equal-size bottom feature panels using the user's selected photography. */
.feature-row{display:grid;grid-template-columns:repeat(3,1fr)}
.feature-card{position:relative;min-height:410px;overflow:hidden;background:#171615}
.feature-card img{width:100%;height:100%;object-fit:cover}
#events img{object-position:center center}
#classes img{object-position:center 42%}
#today img{object-position:center top}
.feature-card__shade{display:block;position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.78))}
.feature-card__copy{display:flex;position:absolute;inset:0;padding:44px 34px;flex-direction:column;justify-content:flex-end;color:#fff}
.feature-card__copy p{display:none}
.feature-card__copy h3{margin:0 0 12px}
.feature-card__copy a{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}
@media (max-width:900px){
  .feature-row{grid-template-columns:1fr}
}


/* Version 6 preview tweaks */
.hero img,.hero__image{
  object-fit:cover;
  object-position:36% 50%;
}
.feature-card{height:300px;min-height:300px;}

/* Version 7 corrected hero */
.hero__image,
.hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: none !important;
}


/* ==========================================
   Betty Homepage Version 9 — Hero layout
   ========================================== */

/* Keep the logo and navigation independent so the tall logo
   no longer pushes the menu links downward. */
.nav{
  position:absolute;
  inset:0 0 auto;
  z-index:4;
  height:150px;
  padding:0;
  display:block;
}

.brand{
  position:absolute;
  top:24px;
  left:34px;
  z-index:5;
  display:block;
}

.brand img{
  width:260px;
  max-height:112px;
  object-fit:contain;
  object-position:left top;
}

.nav__links{
  position:absolute;
  top:34px;
  right:38px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:25px;
  font-size:12px;
  letter-spacing:.105em;
  line-height:1;
  white-space:nowrap;
}

.nav__reserve{
  padding:12px 15px;
}

/* A compact lower-left text lockup leaves the diners unobstructed. */
.hero__content{
  left:5.5%;
  top:auto;
  bottom:54px;
  max-width:590px;
  padding:0;
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}

.hero__eyebrow{
  margin:0 0 12px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1;
  text-transform:uppercase;
}

.hero h1{
  max-width:590px;
  font-size:clamp(44px,4.6vw,72px);
  line-height:.98;
}

/* Darken only the far left and bottom edges for text legibility,
   while preserving the warmth and openness of the photograph. */
.hero__shade{
  background:
    linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,0) 42%,rgba(0,0,0,.36) 100%),
    linear-gradient(90deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.08) 38%,rgba(0,0,0,0) 67%);
}

@media (max-width:1180px){
  .brand img{width:225px;max-height:100px}
  .nav__links{gap:18px;font-size:11px}
}

@media (max-width:900px){
  .nav{
    height:110px;
  }

  .brand{
    top:18px;
    left:20px;
  }

  .brand img{
    width:190px;
    max-height:82px;
  }

  .nav__toggle{
    display:block;
    position:absolute;
    top:25px;
    right:20px;
  }

  .nav__links{
    top:76px;
    right:20px;
  }

  .hero__content{
    left:28px;
    right:28px;
    bottom:40px;
  }
}

@media (max-width:560px){
  .brand img{
    width:165px;
    max-height:72px;
  }

  .hero__content{
    bottom:30px;
  }

  .hero h1{
    font-size:clamp(39px,12vw,55px);
  }

  .hero__eyebrow{
    font-size:10px;
  }
}

/* v10 smaller hero headline */
.hero h1{
  font-size:clamp(34px,3.6vw,56px) !important;
  max-width:480px;
}
.hero__content{max-width:500px;}

/* v11 hero typography */
.hero h1{
  font-size:clamp(28px,3vw,46px)!important;
  line-height:1.02;
  letter-spacing:-0.01em;
  max-width:420px;
}
.hero__content{
  max-width:440px;
}
.hero__eyebrow{
  margin-bottom:10px;
}

/* Version 12 — final hero text adjustments */
.hero__eyebrow{
  font-size:13px !important;
  letter-spacing:.19em;
  margin-bottom:11px;
}

.hero__content{
  bottom:76px !important;
  max-width:440px;
}

.hero h1{
  font-size:clamp(28px,3vw,46px) !important;
  line-height:1.08;
  max-width:420px;
}

/* Version 13 — hero typography refinement */
.hero__eyebrow{
  font-size:16px !important;
  letter-spacing:.20em;
  margin-bottom:14px;
}

.hero h1{
  font-size:clamp(24px,2.6vw,40px) !important;
  line-height:1.08;
  max-width:390px;
}

.hero__content{
  max-width:410px;
}


/* v14 polish */
.hero__nav, nav{
  margin-top:-12px !important;
}
.hero__eyebrow{
  margin-bottom:22px !important;
}
.hero h1{
  margin-top:0;
}


/* v15 refinements */
.hero__nav, nav{
  margin-top: 10px !important; /* move nav slightly lower */
}


/* =========================================================
   Full site pages — Version 16
   ========================================================= */
:root{
  --betty-ink:#111;
  --betty-paper:#f5f1e9;
  --betty-rule:rgba(17,17,17,.18);
}
*{box-sizing:border-box}
.inner-page{
  margin:0;
  color:var(--betty-ink);
  background:var(--betty-paper);
}
.inner-page a{color:inherit}
.inner-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:36px;
  padding:28px 4vw 24px;
  position:relative;
  z-index:10;
}
.site-brand img{
  display:block;
  width:min(230px,22vw);
  height:auto;
}
.site-brand--text{
  font-size:42px;
  font-weight:900;
  text-decoration:none;
  letter-spacing:-.06em;
}
.inner-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:11px 23px;
  padding-top:8px;
  max-width:760px;
}
.inner-nav a{
  font-size:12px;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  padding-bottom:7px;
  border-bottom:1px solid transparent;
}
.inner-nav a:hover,.inner-nav a.is-active{border-color:currentColor}
.menu-toggle{
  display:none;
  border:0;
  background:transparent;
  padding:8px 0;
  font:inherit;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.page-hero{
  min-height:70vh;
  display:grid;
  grid-template-columns:minmax(320px,.8fr) minmax(0,1.35fr);
  border-top:1px solid var(--betty-rule);
  border-bottom:1px solid var(--betty-rule);
}
.page-hero__copy{
  padding:9vw 5vw 8vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.page-eyebrow,.section-kicker{
  margin:0 0 24px;
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.page-hero h1{
  margin:0;
  max-width:650px;
  font-size:clamp(48px,6.5vw,104px);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:500;
}
.page-intro{
  max-width:530px;
  margin:36px 0 0;
  font-size:clamp(17px,1.45vw,23px);
  line-height:1.45;
}
.page-hero__image{min-height:540px;overflow:hidden}
.page-hero__image img{width:100%;height:100%;object-fit:cover;display:block}
.content-section{
  max-width:1440px;
  margin:0 auto;
  padding:110px 5vw;
}
.split-section{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(320px,1fr);
  gap:10vw;
}
.content-section h2,.section-heading h2{
  margin:0;
  font-size:clamp(38px,5vw,76px);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
}
.prose{
  font-size:clamp(18px,1.6vw,24px);
  line-height:1.55;
}
.prose p:first-child{margin-top:0}
.text-button,.menu-card a{
  display:inline-block;
  margin-top:18px;
  padding-bottom:5px;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}
.quote-section{
  min-height:54vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8vw;
  text-align:center;
  border-top:1px solid var(--betty-rule);
  border-bottom:1px solid var(--betty-rule);
}
.quote-section p{
  max-width:1000px;
  margin:0;
  font-size:clamp(48px,7vw,112px);
  line-height:.95;
  letter-spacing:-.055em;
}
.quote-section--small p{font-size:clamp(38px,5vw,78px)}
.section-heading{max-width:800px;margin-bottom:64px}
.section-heading>p:last-child{font-size:20px;line-height:1.5}
.menu-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.menu-card{
  background:rgba(255,255,255,.34);
  border:1px solid var(--betty-rule);
}
.menu-card img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.menu-card>div{padding:30px}
.menu-card h3{margin:0 0 16px;font-size:32px;font-weight:500;letter-spacing:-.03em}
.menu-card p{line-height:1.5}
.fine-print{margin-top:34px;font-size:13px;opacity:.7}
.details-band{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--betty-rule);
  border-bottom:1px solid var(--betty-rule);
}
.details-band>div{padding:70px 5vw;border-right:1px solid var(--betty-rule)}
.details-band>div:last-child{border-right:0}
.details-band span{font-size:12px;letter-spacing:.16em}
.details-band h3{font-size:28px;font-weight:500}
.details-band p{line-height:1.5}
.today-panel{
  margin-top:50px;
  padding:clamp(36px,6vw,90px);
  border:1px solid var(--betty-rule);
  background:rgba(255,255,255,.32);
}
.today-panel h3{
  max-width:900px;
  margin:0 0 24px;
  font-size:clamp(42px,6vw,88px);
  line-height:.95;
  letter-spacing:-.05em;
  font-weight:500;
}
.today-panel>p:not(.page-eyebrow){font-size:20px;max-width:680px;line-height:1.5}
.button-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.solid-button,.outline-button{
  display:inline-flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  border:1px solid var(--betty-ink);
  font:inherit;
  text-decoration:none;
  cursor:pointer;
}
.solid-button{background:var(--betty-ink);color:var(--betty-paper)!important}
.outline-button{background:transparent}
.reservation-section{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.55fr);
  gap:8vw;
}
.reservation-section>div>p:not(.section-kicker){max-width:700px;font-size:20px;line-height:1.5}
.info-card{
  border:1px solid var(--betty-rule);
  padding:38px;
  align-self:start;
}
.info-card h3{margin:24px 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.14em}
.info-card h3:first-child{margin-top:0}
.info-card p{line-height:1.5}
.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
  gap:9vw;
}
.contact-grid>div>p:not(.section-kicker){font-size:19px;line-height:1.55}
.contact-placeholder{margin-top:34px}
.contact-form{display:grid;gap:19px}
.contact-form label{
  display:grid;
  gap:8px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;
  border:0;
  border-bottom:1px solid var(--betty-ink);
  background:transparent;
  padding:13px 2px;
  font:inherit;
  border-radius:0;
}
.contact-form textarea{border:1px solid var(--betty-rule);padding:14px;resize:vertical}
.contact-form .solid-button{justify-self:start}
.inner-footer{
  display:grid;
  grid-template-columns:1.4fr .8fr .6fr;
  gap:40px;
  padding:70px 5vw;
  border-top:1px solid var(--betty-rule);
  font-size:14px;
  line-height:1.55;
}
.footer-statement{font-size:clamp(24px,3vw,44px);line-height:1.05;letter-spacing:-.035em;max-width:500px}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{text-decoration:none}

@media (max-width:900px){
  .inner-header{align-items:center}
  .site-brand img{width:190px}
  .menu-toggle{display:block}
  .inner-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:24px 5vw 30px;
    background:var(--betty-paper);
    border-top:1px solid var(--betty-rule);
    border-bottom:1px solid var(--betty-rule);
    justify-content:flex-start;
  }
  .inner-nav.is-open{display:flex}
  .page-hero{grid-template-columns:1fr}
  .page-hero__copy{padding:90px 5vw}
  .page-hero__image{min-height:58vh}
  .split-section,.reservation-section,.contact-grid{grid-template-columns:1fr;gap:55px}
  .menu-cards{grid-template-columns:1fr}
  .menu-card{display:grid;grid-template-columns:.8fr 1fr}
  .details-band{grid-template-columns:1fr}
  .details-band>div{border-right:0;border-bottom:1px solid var(--betty-rule)}
  .details-band>div:last-child{border-bottom:0}
  .inner-footer{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .inner-header{padding:20px 5vw}
  .site-brand img{width:155px}
  .page-hero__copy{padding:68px 5vw}
  .page-hero__image{min-height:52vh}
  .content-section{padding:78px 5vw}
  .menu-card{display:block}
  .inner-footer{grid-template-columns:1fr}
}

/* v17 normalize grid crops */


/* =========================================================
   Version 18 — predictable eight-photo grid
   ========================================================= */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  background: #fff;
}

.photo-grid img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: 50% 50%;
}

@media (max-width: 900px) {
  .photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* v21 footer refinement */
.footer-statement{
  font-size: clamp(17px, 2.1vw, 30px) !important;
  line-height:1.15;
}

/* v23 */
.about-page{background:#f3eee4;}
.about-page main > section{background:#f6f1e8;}
.about-page main > section:nth-of-type(even){background:#eee5d8;}
.about-page .quote-section{background:#e6d8c7;}
.about-page .inner-header,.about-page .inner-footer{background:#f3eee4;}
.about-page::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.018;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0,rgba(0,0,0,.22) 1px,transparent 1px,transparent 3px);mix-blend-mode:multiply;}
.manifesto-close{margin-top:38px!important;}
.manifesto-invite{margin-top:18px!important;}
.manifesto-signoff{margin-top:8px!important;font-size:.88em;font-style:italic;opacity:.82;}

/* v24 — About background locked */
.about-page,
.about-page main,
.about-page main > section,
.about-page main > section:nth-of-type(even),
.about-page .inner-header,
.about-page .inner-footer{
  background:#F1ECE2 !important;
}

/* Keep only the Betty namesake statement as a distinct tonal moment. */
.about-page .quote-section{
  background:#E7DDCF !important;
}

/* Keep the paper effect nearly imperceptible. */
.about-page::before{
  opacity:.012 !important;
}

/* v25 — interior pages use navigation first, no large hero photo */
.inner-page .page-hero{
  grid-template-columns:1fr !important;
  min-height:auto !important;
}
.inner-page .page-hero__copy{
  max-width:1000px;
}


/* v26 — interior header is navigation only */
.inner-page .inner-header{
  justify-content:flex-end !important;
  align-items:center !important;
  min-height:72px;
}
.inner-page .inner-nav{
  margin-left:auto;
  padding-top:0;
}
.inner-page .site-brand{
  display:none !important;
}

/* v27 menu page */
.menu-page{background:#f6f1e8}
.menu-intro h1{max-width:950px;font-size:clamp(48px,6vw,92px);line-height:.96;letter-spacing:-.05em;font-weight:500}
.menu-photo-spread{display:grid;gap:6px;padding:0 6px}
.menu-photo-spread.top{grid-template-columns:1.15fr .85fr 1fr 1.1fr}
.menu-photo-spread.middle{grid-template-columns:1fr 1.35fr .85fr;margin-top:6px}
.menu-photo-spread.bottom{grid-template-columns:1fr 1fr;margin-bottom:6px}
.menu-photo-spread img{width:100%;height:100%;min-height:360px;max-height:620px;object-fit:cover;display:block}
.menu-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.menu-links article{padding:38px 30px;border-top:1px solid rgba(17,17,17,.22);border-bottom:1px solid rgba(17,17,17,.22)}
.menu-links h2{font-size:clamp(36px,4vw,62px);font-weight:500;line-height:1;margin:0 0 16px}
.menu-links article>p:not(.section-kicker){min-height:78px;line-height:1.5}
.menu-links a{display:inline-block;margin-top:18px;padding-bottom:5px;border-bottom:1px solid currentColor;text-decoration:none;text-transform:uppercase;letter-spacing:.06em;font-size:14px}
.menu-note{text-align:center;max-width:820px;font-size:20px;line-height:1.5}
@media(max-width:900px){.menu-links{grid-template-columns:1fr}.menu-photo-spread.top,.menu-photo-spread.middle,.menu-photo-spread.bottom{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.menu-photo-spread.top,.menu-photo-spread.middle,.menu-photo-spread.bottom{grid-template-columns:1fr}}

/* v28 — menu photography is intentionally separate from homepage imagery */
.menu-page .menu-photo-spread img{
  object-fit:cover;
  object-position:center center;
}


/* =========================================================
   v30 — designed menu detail pages with fixed photo slots
   ========================================================= */
.menu-detail-page{
  background:#F1ECE2;
}
.menu-detail-head{
  max-width:820px;
  margin:0 auto;
  padding:64px 5vw 52px;
  text-align:center;
}
.menu-detail-head h1{
  margin:0 0 18px;
  font-size:clamp(42px,5vw,72px);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
}
.menu-detail-head>p:not(.section-kicker){
  max-width:620px;
  margin:0 auto 18px;
  font-size:18px;
  line-height:1.5;
}
.back-to-menus{
  display:inline-block;
  margin-top:10px;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.menu-detail-layout{
  max-width:1560px;
  margin:0 auto;
  padding:0 2.5vw 90px;
  display:grid;
  grid-template-columns:minmax(170px,.48fr) minmax(560px,1.35fr) minmax(170px,.48fr);
  gap:24px;
  align-items:start;
}
.menu-pdf-frame{
  background:#F1ECE2;
  position:sticky;
  top:18px;
}
.menu-pdf-frame iframe{
  display:block;
  width:100%;
  height:82vh;
  min-height:760px;
  border:0;
  background:#fff;
  box-shadow:0 10px 28px rgba(31,24,18,.08);
}
.menu-pdf-fallback{
  text-align:center;
  margin:14px 0 0;
  font-size:13px;
}
.menu-detail-side{
  display:flex;
  flex-direction:column;
}
.detail-photo{
  margin:0;
  width:100%;
}
.detail-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
  object-position:center center;
}

/* Deliberately irregular rhythm, but every position remains a fixed slot. */
.detail-photo--01{width:82%;margin:18px 0 68px auto;}
.detail-photo--02{width:100%;margin:0 0 34px;}
.detail-photo--03{width:72%;margin:30px auto 76px 0;}
.detail-photo--04{width:92%;margin:0 0 42px auto;}
.detail-photo--05{width:68%;margin:44px 0 84px auto;}
.detail-photo--06{width:100%;margin:0;}

.detail-photo--07{width:92%;margin:72px auto 48px 0;}
.detail-photo--08{width:70%;margin:0 0 78px auto;}
.detail-photo--09{width:100%;margin:0 0 36px;}
.detail-photo--10{width:76%;margin:52px auto 86px 0;}
.detail-photo--11{width:94%;margin:0 0 44px auto;}
.detail-photo--12{width:66%;margin:24px auto 0;}

.detail-photo--01 img,.detail-photo--05 img,.detail-photo--08 img,.detail-photo--12 img{aspect-ratio:4/5;}
.detail-photo--02 img,.detail-photo--04 img,.detail-photo--09 img,.detail-photo--11 img{aspect-ratio:1/1;}
.detail-photo--03 img,.detail-photo--06 img,.detail-photo--07 img,.detail-photo--10 img{aspect-ratio:5/4;}

@media(max-width:1100px){
  .menu-detail-layout{
    grid-template-columns:minmax(120px,.35fr) minmax(520px,1.4fr) minmax(120px,.35fr);
    gap:14px;
  }
}
@media(max-width:850px){
  .menu-detail-layout{
    grid-template-columns:1fr;
    padding-left:4vw;
    padding-right:4vw;
  }
  .menu-pdf-frame{position:static;order:1;}
  .menu-detail-side{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
  .menu-detail-side--left{order:2;margin-top:18px;}
  .menu-detail-side--right{order:3;}
  .detail-photo{width:100%!important;margin:0!important;}
  .detail-photo img{aspect-ratio:1/1!important;}
  .menu-pdf-frame iframe{height:76vh;min-height:620px;}
}
@media(max-width:560px){
  .menu-detail-side{grid-template-columns:repeat(2,1fr);}
  .menu-pdf-frame iframe{height:70vh;min-height:520px;}
}

/* v32 — menu detail corrections */
html:has(.menu-detail-page),
.menu-detail-page,
.menu-detail-page main,
.menu-detail-page .menu-detail-head,
.menu-detail-page .menu-detail-layout,
.menu-detail-page .menu-detail-side,
.menu-detail-page .menu-rendered-document,
.menu-detail-page .inner-header,
.menu-detail-page .inner-footer{
  background:#F1ECE2 !important;
}

.menu-rendered-document{
  min-width:0;
}
.rendered-menu-page{
  display:block;
  width:100%;
  height:auto;
  margin:0 0 24px;
  background:#F1ECE2;
  mix-blend-mode:multiply;
  box-shadow:0 10px 28px rgba(31,24,18,.07);
}
.menu-rendered-document .menu-pdf-fallback{
  text-align:center;
  margin:14px 0 0;
  font-size:13px;
}

/* v34 — lock cream background on all menu detail pages */
html{
  background:#F1ECE2;
}
body.menu-detail-page,
body.menu-detail-page main,
body.menu-detail-page .menu-detail-head,
body.menu-detail-page .menu-detail-layout,
body.menu-detail-page .menu-detail-side,
body.menu-detail-page .menu-rendered-document,
body.menu-detail-page .inner-header,
body.menu-detail-page .inner-footer{
  background:#F1ECE2 !important;
}
body.menu-detail-page .rendered-menu-page{
  background:#F1ECE2 !important;
  mix-blend-mode:normal !important;
}

/* v42 — Private Events: Three Spaces */
.event-spaces-section{
  display:block;
  padding-top:72px;
  padding-bottom:76px;
}
.event-spaces-heading{
  max-width:780px;
  margin:0 auto 48px;
  text-align:center;
}
.event-spaces-heading h2{
  margin:8px 0 18px;
}
.event-spaces-heading > p:last-child{
  max-width:690px;
  margin:0 auto;
  line-height:1.65;
}
.event-spaces-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  max-width:1180px;
  margin:0 auto;
}
.event-space{
  padding:30px 28px 32px;
  border-top:1px solid currentColor;
}
.event-space h3{
  margin:0 0 14px;
  font-size:clamp(24px,2.2vw,34px);
  font-weight:500;
}
.event-space p{
  margin:0;
  line-height:1.65;
}
.event-spaces-close{
  max-width:720px;
  margin:44px auto 0;
  text-align:center;
  line-height:1.65;
}
@media(max-width:760px){
  .event-spaces-grid{grid-template-columns:1fr;}
  .event-spaces-heading{margin-bottom:30px;}
  .event-space{padding:24px 4px 26px;}
}

/* v44 — Private Events simplified */
.private-events-page{
  background:#F1ECE2;
}
.event-spaces-section--lead{
  padding-top:88px;
}
.event-spaces-section--lead .event-spaces-heading{
  max-width:850px;
  margin-bottom:58px;
}
.event-spaces-section--lead .event-spaces-heading h1{
  margin:8px 0 22px;
  font-size:clamp(48px,6vw,88px);
  line-height:.96;
  letter-spacing:-.05em;
  font-weight:500;
}
.event-space-number{
  display:block;
  margin-bottom:20px;
  font-size:12px;
  letter-spacing:.16em;
}
.event-spaces-section--lead .event-space h2{
  margin:0 0 16px;
  font-size:clamp(28px,3vw,44px);
  line-height:1.05;
  font-weight:500;
}
.event-planning-section{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:8vw;
  border-top:1px solid rgba(17,17,17,.18);
}
.event-planning-copy h2{
  margin:0 0 26px;
  font-size:clamp(38px,4.4vw,66px);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
}
.event-planning-copy > p:not(.section-kicker){
  font-size:18px;
  line-height:1.65;
  max-width:620px;
}
.event-planning-steps{
  border-top:1px solid rgba(17,17,17,.25);
}
.event-planning-steps > div{
  display:grid;
  grid-template-columns:48px 1fr;
  column-gap:18px;
  padding:25px 0;
  border-bottom:1px solid rgba(17,17,17,.18);
}
.event-planning-steps span{
  grid-row:1 / span 2;
  font-size:12px;
  letter-spacing:.16em;
  padding-top:5px;
}
.event-planning-steps h3{
  margin:0 0 8px;
  font-size:24px;
  font-weight:500;
}
.event-planning-steps p{
  margin:0;
  line-height:1.55;
}
@media(max-width:820px){
  .event-planning-section{
    grid-template-columns:1fr;
    gap:54px;
  }
}


/* v45 — Private Events photos + homepage storefront */
.private-events-gallery{
  max-width:1180px;
  margin:0 auto 84px;
  padding:0 20px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.private-events-gallery img{
  width:100%;
  height:clamp(260px,34vw,470px);
  object-fit:cover;
  display:block;
}
.home-storefront-feature{
  width:100%;
  background:#111;
}
.home-storefront-feature img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
@media(max-width:760px){
  .private-events-gallery{grid-template-columns:1fr;margin-bottom:58px;}
  .private-events-gallery img{height:auto;}
}

/* Abigail bio page */
.abigail-page{background:#F1ECE2;}
.abigail-bio-hero{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:7vw;
  align-items:center;
  padding-top:76px;
}
.abigail-bio-copy h1{
  margin:8px 0 22px;
  font-size:clamp(52px,7vw,102px);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:500;
}
.abigail-bio-deck{
  max-width:480px;
  font-size:21px;
  line-height:1.5;
}
.abigail-bio-photo{margin:0;}
.abigail-bio-photo img{
  display:block;
  width:100%;
  height:auto;
}
.abigail-story{
  max-width:1080px;
  margin:0 auto;
  padding-top:30px;
}
.abigail-story-section{
  max-width:760px;
  margin:0 auto 68px;
}
.abigail-story-section h2{
  margin:0 0 18px;
  font-size:clamp(30px,3vw,46px);
  line-height:1.05;
  font-weight:500;
}
.abigail-story-section p{
  font-size:18px;
  line-height:1.75;
}
.abigail-bio-photo--02{
  max-width:760px;
  margin:10px auto 72px;
}
@media(max-width:800px){
  .abigail-bio-hero{grid-template-columns:1fr;gap:36px;}
  .abigail-story-section p{font-size:17px;}
}

/* Abigail closing statement */
.abigail-story-finale{
  max-width:760px;
  margin:18px auto 10px;
  padding-top:32px;
  border-top:1px solid rgba(17,17,17,.22);
}
.abigail-story-finale p{
  margin:0;
  font-size:clamp(27px,3vw,42px);
  line-height:1.18;
  letter-spacing:-.025em;
}

/* v4-single-meet-abigail */
.abigail__copy .text-link{
  display:inline-block;
  margin-top:22px;
}

/* v9 — direct inquiry anchor */
#inquiry{
  scroll-margin-top:48px;
}
.footer-contact{
  margin-top:10px;
}
.footer-contact a{
  color:inherit;
}

/* v10 */
.manifesto,.why-betty,.home-manifesto{padding-top:clamp(38px,4vw,62px)!important;padding-bottom:clamp(38px,4vw,62px)!important}
.manifesto p,.why-betty p,.home-manifesto p{margin-top:.45em;margin-bottom:.45em}
.hype-page{background:#F1ECE2}.hype-intro{max-width:900px}.hype-intro h1{font-size:clamp(46px,6vw,86px);line-height:.98;font-weight:500;letter-spacing:-.045em;margin:8px 0 22px}.hype-intro>p:last-child{font-size:19px;line-height:1.55;max-width:660px}
.hype-board{columns:3 300px;column-gap:24px}.hype-card{display:inline-block;width:100%;margin:0 0 24px;break-inside:avoid;background:#faf7f0;border:1px solid rgba(20,20,18,.18);padding:22px}.hype-card--media{padding:0}.hype-card img,.hype-card video,.hype-card iframe{display:block;width:100%;height:auto;border:0}.hype-card--embed iframe{min-height:420px}.hype-source{text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin:0 0 16px}.hype-card blockquote{font:24px/1.35 Georgia,serif;margin:0}
.today-public{background:#F1ECE2;min-height:60vh}.today-public__head h1{font-size:clamp(44px,6vw,82px);line-height:1;font-weight:500;letter-spacing:-.045em;margin:8px 0 0}.today-public__content{padding-top:0}.today-message{max-width:850px;font:clamp(28px,4vw,52px)/1.2 Georgia,serif;white-space:pre-wrap}
.today-admin-page{background:#F1ECE2}.today-admin h1{font-size:clamp(44px,6vw,78px);font-weight:500;letter-spacing:-.04em;margin:8px 0 28px}.today-login{max-width:440px;padding:24px;border:1px solid #999}.today-login label{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.today-login input{padding:12px}
.today-admin-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 12px}.today-admin-controls button{padding:10px 14px;background:transparent;border:1px solid #777;cursor:pointer}.today-admin-controls h2{margin:0;font-size:28px;font-weight:500}.today-admin-note{max-width:720px;line-height:1.6}
.year-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:36px}.calendar-month{border-top:1px solid #777;padding-top:14px}.calendar-month h3{font-size:22px;font-weight:500;margin:0 0 12px}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-week span{text-align:center;font-size:10px;opacity:.6;padding:5px 0}.calendar-day{aspect-ratio:1;border:1px solid rgba(20,20,18,.15);background:#faf7f0;cursor:pointer}.calendar-day.has-entry{background:#171714;color:#fff}.today-dialog{width:min(620px,90vw);border:0;padding:28px;background:#faf7f0}.today-dialog::backdrop{background:rgba(0,0,0,.48)}.today-dialog textarea{width:100%;padding:14px;font:17px/1.5 Arial;border:1px solid #888}.today-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media(max-width:900px){.year-calendar{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.year-calendar{grid-template-columns:1fr}.hype-board{columns:1}}

/* v11 footer completion */
body.inner-page, body.bb-page{min-height:100vh;display:flex;flex-direction:column}
body.inner-page main, body.bb-page main{flex:1}

/* v16 — Hype PDF cards */
.hype-pdf{
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:space-between;
  padding:28px;
  background:#faf7f0;
}
.hype-pdf-mark{
  font:500 clamp(42px,6vw,72px)/1 Georgia,serif;
  letter-spacing:-.04em;
}
.hype-pdf a{
  color:inherit;
  font-size:16px;
}

/* v17 — general Hype file support */
.hype-file{
  min-height:200px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:28px;
  background:#faf7f0;
}
.hype-file-mark{
  font:500 clamp(34px,5vw,62px)/1 Georgia,serif;
  letter-spacing:-.04em;
}
.hype-file a{color:inherit;font-size:16px}
.hype-audio audio{width:100%}

/* v18 — Hype admin preview */
.admin-hype-preview-wrap{
  margin-top:42px;
  padding-top:24px;
  border-top:1px solid rgba(20,20,18,.25);
}
.admin-hype-preview-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:20px;
  margin-bottom:18px;
}
.admin-hype-preview-head h3{
  margin:0;
  font:500 28px/1.1 Georgia,serif;
}
.admin-hype-preview-head a{color:inherit}
.admin-hype-preview{
  columns:2 280px;
  padding:0;
}
.hype-local-note{opacity:.75}


/* v23 — reservation page navigation: match right-side placement */
@media (min-width: 901px){
  .reservation-nav-fix{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:flex-end !important;
  }
  .reservation-nav-fix .inner-nav{
    margin-left:auto !important;
    margin-right:0 !important;
    justify-content:flex-end !important;
    text-align:right !important;
  }
}

/* v25 — reservation nav vertical match */
@media (min-width: 901px){
  .reservation-nav-fix .inner-nav{
    transform:translateY(-8px);
  }
}
