.family-hero{padding:90px 24px 64px;min-height:0}.family-hero h1{font-size:clamp(38px,5.2vw,72px);line-height:1.12;margin:24px auto}.family-hero .eyebrow{color:var(--gold)}.family-hero .lede{max-width:760px;color:var(--cream);margin:20px auto;line-height:1.7}.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:48px;text-align:left}.family-tile{display:block;background:var(--cream);color:var(--green,#1a3d2e);border-radius:12px;overflow:hidden;text-decoration:none;transition:transform .2s}.family-tile:hover{transform:translateY(-4px)}.family-tile img{display:block;width:100%;height:auto;aspect-ratio:1.35;object-fit:cover}.family-tile>div{padding:26px}.family-tile span{font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.family-tile h2{font-size:28px;line-height:1.2;margin:12px 0}.family-tile p{font-size:16px;line-height:1.6;margin:0 0 20px;color:#51584f}.family-tile b,.family-product b{font-size:14px}.family-section{padding:88px 24px;background:var(--cream)}.family-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.family-product{display:block;background:#fff;border-radius:12px;overflow:hidden;text-decoration:none;color:#1a3d2e;border:1px solid #dedbd0}.family-product img{width:100%;aspect-ratio:1;object-fit:cover;height:auto;display:block}.family-product>div{padding:22px}.family-product h3{font-size:22px;margin:0 0 12px}.family-product p{font-size:16px;color:#565b53;line-height:1.6;margin-bottom:20px}.family-actions{display:flex;gap:24px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:30px}.family-link{color:#1a3d2e;font-weight:700;text-underline-offset:5px}.family-note{text-align:center;font-size:14px;color:#5b6258;margin-top:24px}.family-catering{background:#eae5d7}.family-catering-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}.family-catering-grid>img{width:100%;height:auto;border-radius:12px}.family-catering-copy h3{font-size:30px;margin:24px 0 14px}.family-catering-copy p{line-height:1.8;color:#51584f}.family-catering-copy .family-actions{justify-content:flex-start}.family-cajita h2{font-size:clamp(32px,4vw,52px);line-height:1.15}.family-tile:focus-visible,.family-product:focus-visible,.family-link:focus-visible{outline:3px solid #aa872a;outline-offset:5px}@media(max-width:850px){.family-products{grid-template-columns:repeat(2,minmax(0,1fr))}.family-grid{gap:14px}.family-tile>div{padding:18px}.family-tile h2{font-size:23px}.family-catering-grid{grid-template-columns:1fr}}@media(max-width:600px){.family-hero{padding:60px 18px 44px}.family-grid{grid-template-columns:1fr}.family-tile img{aspect-ratio:1.65}.family-section{padding:60px 18px}.family-products{gap:12px}.family-product>div{padding:14px}.family-product h3{font-size:19px}.family-actions{gap:18px}.family-catering-grid{gap:22px}}@media(prefers-reduced-motion:reduce){.family-tile{transition:none}}
.family-backdrop{position:absolute;inset:0;pointer-events:none}.family-backdrop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.5s ease}.family-backdrop img.is-active{opacity:1}.family-backdrop::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,23,17,.70),rgba(9,23,17,.66) 45%,rgba(9,23,17,.87))}.family-hero>.section-inner{position:relative;z-index:1}.family-pause{display:block;margin:0 0 24px auto;background:#142f25;color:#f5f2ec;border:1px solid #c6a85b;border-radius:4px;padding:10px 14px;cursor:pointer}.family-new{display:inline-block;margin-top:24px;color:#fff0c6;text-underline-offset:5px;font-size:16px;line-height:1.5}.bowl-top{flex-wrap:wrap}.bowl-order{flex-basis:100%;font-size:14px;color:#1a3d2e;text-underline-offset:4px;margin-top:10px}@media(prefers-reduced-motion:reduce){.family-backdrop img{transition:none}}
.nav-links a{white-space:nowrap}

/* ======================================================================================================
   2026-09-15 PREMIUM PASS — mobile first. Brand tokens only (black, deep green, gold, cream); the original
   Cormorant Garamond for display, Josefin Sans for text. Every tap target is at least 44px, every entrance
   animation is transform/opacity only and switched off under prefers-reduced-motion, and nothing is hidden
   at rest unless home-premium.js is running to reveal it (html.js-reveal is only ever added by that script).
   ====================================================================================================== */
:root{--ease-out:cubic-bezier(.22,.61,.36,1)}
.chip-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.chip-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid rgba(26,61,46,.28);border-radius:999px;color:#1a3d2e;text-decoration:none;font-weight:600;font-size:14px;letter-spacing:.3px;transition:background .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out)}
.chip-link:hover{background:#1a3d2e;color:#f5f2ec;border-color:#1a3d2e}
.chip-link:focus-visible{outline:3px solid #aa872a;outline-offset:3px}
.family-actions.is-stacked{flex-direction:column;gap:18px}
.family-actions .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.nav-links a.nav-star{color:var(--gold)}

/* ---------- hero ---------- */
.hero.ahero{position:relative;min-height:min(92svh,860px);display:flex;flex-direction:column;justify-content:flex-end;padding:0;text-align:center;overflow:hidden;background:#0d0d0d}
.hero.ahero::before{content:none}
.ahero-slides{position:absolute;inset:0}
.ahero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s var(--ease-out)}
.ahero-slide.is-active{opacity:1}
.ahero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 0s linear 1.2s}
.ahero-slide.is-active img{transform:scale(1.07);transition:transform 8s ease-out}
.hero.ahero::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(13,13,13,.62) 0%,rgba(13,13,13,.34) 18%,rgba(13,13,13,.7) 42%,rgba(13,13,13,.9) 64%,rgba(13,13,13,.95) 100%)}
/* The copy sits over the busiest part of the photo on a phone: the scrim darkens exactly where the words are,
   and the photo keeps its colour above them. Wider screens have room to let more of the food through. */
@media(min-width:900px){.hero.ahero::after{background:radial-gradient(70% 62% at 50% 56%,rgba(13,13,13,.78) 0%,rgba(13,13,13,.5) 60%,rgba(13,13,13,.28) 100%),linear-gradient(180deg,rgba(13,13,13,.5) 0%,rgba(13,13,13,0) 30%,rgba(13,13,13,.55) 100%)}}
.ahero .eyebrow{text-shadow:0 1px 12px rgba(0,0,0,.7)}
.ahero-inner{position:relative;z-index:2;padding:0 22px 22px;max-width:880px}
.ahero .eyebrow{color:var(--gold);margin-bottom:14px}
.ahero .ahero-title{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;color:#f5f2ec;font-size:clamp(42px,11vw,86px);line-height:1.02;letter-spacing:-.5px;margin:0 0 14px;text-wrap:balance;text-shadow:0 2px 28px rgba(0,0,0,.4)}
.ahero .ahero-line{display:block}
.ahero .ahero-title span{font-style:italic;font-weight:400}
.ahero .ahero-title strong{font-weight:600;color:var(--gold)}
.ahero .ahero-lede{color:rgba(245,242,236,.92);font-size:17px;line-height:1.55;max-width:34ch;margin:0 auto 22px}
.ahero-cta{display:flex;flex-direction:column;align-items:center;gap:12px}
.ahero-cta .btn{width:min(320px,100%);min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px}
.btn.ahero-star{background:rgba(245,242,236,.1);color:#f5f2ec;border:1px solid rgba(198,168,91,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn.ahero-star:hover{background:#f5f2ec;color:#0d0d0d}
.ahero-new{font-size:10px;letter-spacing:1.6px;background:var(--gold);color:#0d0d0d;border-radius:999px;padding:4px 8px;font-weight:700;line-height:1}
.ahero-link{color:#f5f2ec;font-weight:600;font-size:15px;letter-spacing:.4px;text-underline-offset:6px;min-height:44px;display:inline-flex;align-items:center}
.ahero-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:6px 18px 20px}
.ahero-label{font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:rgba(245,242,236,.85);border-left:2px solid var(--gold);padding-left:10px}
.ahero-pause{width:44px;height:44px;border-radius:50%;border:1px solid rgba(245,242,236,.45);background:rgba(13,13,13,.35);color:#f5f2ec;display:grid;place-items:center;cursor:pointer;margin:0;padding:0}
.ahero-pause span{display:block;width:12px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.ahero-pause[aria-pressed="true"] span{width:0;height:0;border-right:0;border-left:11px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.ahero-pause:focus-visible,.ahero-link:focus-visible{outline:3px solid #c6a85b;outline-offset:3px}
/* On a phone the bottom corners belong to the language switch and the chat bubble: the pause control moves to
   the top right, under the menu, and the slide name (decoration there) steps aside. */
@media(max-width:899px){.ahero-foot{position:absolute;top:78px;right:12px;padding:0}.ahero-label{display:none}}
@media(min-width:900px){.hero.ahero{justify-content:center}.ahero-inner{padding:130px 22px 40px}.ahero-cta{flex-direction:row;justify-content:center}.ahero-cta .btn{width:auto;padding:0 30px}}

/* ---------- La Cajita · the star ---------- */
.cajita-star{background:radial-gradient(120% 80% at 80% 0%,#1f4a37 0%,#0d2419 60%,#0a1c14 100%);color:#f5f2ec;padding:68px 18px}
.cajita-star-grid{display:grid;gap:30px;align-items:center;max-width:1180px;margin:0 auto}
.cajita-show-frame{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);background:#0a1c14}
.cajita-show-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .8s var(--ease-out),transform 1.2s var(--ease-out)}
.cajita-show-frame img.is-active{opacity:1;transform:scale(1)}
.cajita-show-cap{position:absolute;left:14px;bottom:14px;z-index:2;background:rgba(10,28,20,.74);color:#f5f2ec;font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:8px 12px;border-left:2px solid var(--gold)}
.cajita-themes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.cajita-themes button{min-height:44px;padding:8px 15px;border-radius:999px;border:1px solid rgba(198,168,91,.45);background:transparent;color:#f5f2ec;font:600 13px/1 'Josefin Sans',sans-serif;letter-spacing:.3px;cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out)}
.cajita-themes button.is-active,.cajita-themes button:hover{background:var(--gold);border-color:var(--gold);color:#0d0d0d}
.cajita-themes button:focus-visible{outline:3px solid #f5f2ec;outline-offset:2px}
.cajita-star-copy{text-align:center}
.cajita-star-copy .eyebrow{color:var(--gold)}
.cajita-star .cajita-star-copy h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:clamp(42px,10vw,70px);line-height:1.02;margin:10px 0 14px;color:#f5f2ec}
.cajita-star-copy h2 em{color:var(--gold);font-style:italic}
.cajita-star-copy>p{color:rgba(245,242,236,.84);font-size:17px;line-height:1.6;max-width:38ch;margin:0 auto 22px}
.cajita-steps-row{list-style:none;display:flex;justify-content:center;gap:10px 18px;margin:0 0 26px;padding:0;flex-wrap:wrap}
.cajita-steps-row li{display:flex;align-items:center;gap:8px;font-size:14px;color:#f5f2ec}
.cajita-steps-row b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold);font-size:12px}
.cajita-star-cta{display:flex;flex-direction:column;align-items:center;gap:10px}
.cajita-star-cta .btn{width:min(320px,100%);min-height:52px;display:inline-flex;align-items:center;justify-content:center}
@media(min-width:900px){.cajita-star{padding:110px 24px}.cajita-star-grid{grid-template-columns:1.15fr .85fr;gap:60px}.cajita-star-copy{text-align:left}.cajita-star-copy>p{margin-left:0}.cajita-steps-row,.cajita-themes{justify-content:flex-start}.cajita-star-cta{flex-direction:row;justify-content:flex-start;gap:22px}.cajita-star-cta .btn{width:auto;padding:0 30px}}

/* ---------- celebrations ---------- */
.celebrate{background:#eae5d7;padding:68px 16px}
.celebrate .section-head h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}
.celebrate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:1180px;margin:0 auto}
.celebrate-card{position:relative;display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/5;color:#f5f2ec;text-decoration:none;background:#0d2419}
.celebrate-card.is-feature{grid-column:span 2;aspect-ratio:16/10}
.celebrate-card img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.celebrate-card::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(8,20,14,.84) 100%)}
.celebrate-card span{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;line-height:1.08;font-weight:600;text-wrap:balance}
.celebrate-card.is-feature span{font-size:clamp(32px,8vw,48px)}
.celebrate-card:focus-visible{outline:3px solid #aa872a;outline-offset:3px}
@media(min-width:900px){.celebrate{padding:100px 24px}.celebrate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.celebrate-card{aspect-ratio:3/4}.celebrate-card.is-feature{aspect-ratio:auto}}

/* ---------- Añejo Fit facts ---------- */
.fit-facts{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:0;margin:4px auto 22px;max-width:640px}
.fit-facts li{font-size:13px;letter-spacing:.4px;padding:9px 14px;border-radius:999px;background:#fff;border:1px solid #dedbd0;color:#1a3d2e}
.fit-facts li:first-child{background:#1a3d2e;color:#f5f2ec;border-color:#1a3d2e}
#menu .family-actions{margin:0 0 34px}

/* ---------- how we serve ---------- */
.serve-grid{display:grid;gap:12px;max-width:1180px;margin:0 auto}
.serve-card{display:grid;grid-template-columns:38% 1fr;background:var(--cream);border-radius:14px;overflow:hidden;text-decoration:none;color:#1a3d2e;border:1px solid #e6e1d3;min-height:136px;transition:box-shadow .25s var(--ease-out)}
.serve-card img{width:100%;height:100%;object-fit:cover;display:block}
.serve-card>div{padding:16px 16px 14px;display:flex;flex-direction:column;justify-content:center}
.serve-card h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-weight:600;line-height:1.08;margin:0 0 6px;color:#1a3d2e;letter-spacing:0}
.serve-card p{font-size:14.5px;line-height:1.45;color:#5a6158;margin:0 0 10px}
.serve-go{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:#8b6b3e}
.serve-go::after{content:' \2192'}
.serve-card:hover{box-shadow:0 14px 30px rgba(26,61,46,.14)}
.serve-card:focus-visible{outline:3px solid #aa872a;outline-offset:3px}
@media(min-width:900px){.serve-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.serve-card{grid-template-columns:1fr;grid-template-rows:auto 1fr}.serve-card img{aspect-ratio:4/3;height:auto}.serve-card>div{padding:22px}}

/* ---------- story ---------- */
.story .story-v2{max-width:640px;text-align:left}
.story-v2 p{font-size:17px;line-height:1.85;font-weight:300;color:rgba(245,242,236,.92)}
.story-v2 .story-lead{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(27px,6.4vw,36px);line-height:1.22;font-weight:500;font-style:italic;color:#f5f2ec}
.story-litany{list-style:none;padding:0;margin:44px 0 0;text-align:center}
.story-litany li{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(23px,5.6vw,31px);line-height:1.32;color:rgba(245,242,236,.8);padding:3px 0}
.story-litany li:first-child{font-family:'Josefin Sans',sans-serif;font-size:15px;line-height:1.6;letter-spacing:.3px;color:rgba(245,242,236,.7);margin-bottom:12px}
.story-litany li strong{color:var(--gold);font-weight:600;font-size:1.28em}
.story-v2 .story-sig{text-align:center}

/* ---------- entrance reveals (only while home-premium.js runs) ---------- */
/* Only what has NOT been revealed is hidden. Written the other way round ("hide X, show .is-in") the hide rule
   can outrank the show rule, and `.story-litany li` did: the closing lines of the story never appeared. */
.js-reveal :is(.serve-card,.celebrate-card,.story-litany li){transition:opacity .6s var(--ease-out),transform .6s var(--ease-out),box-shadow .25s var(--ease-out)}
.js-reveal .serve-card img{transition:transform 1.1s var(--ease-out)}
.js-reveal :is(.serve-card,.celebrate-card,.story-litany li):not(.is-in){opacity:0;transform:translateY(18px)}
.js-reveal .serve-card:not(.is-in) img{transform:scale(1.12)}

/* ---------- La Cajita promo card ---------- */
.cajita-promo{position:fixed;left:0;right:0;bottom:0;z-index:2147483000;display:flex;justify-content:center;padding:0 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}
.cajita-promo-card{pointer-events:auto;position:relative;width:100%;max-width:420px;background:#0d2419;color:#f5f2ec;border-radius:20px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45);border:1px solid rgba(198,168,91,.35);transform:translateY(120%);transition:transform .45s var(--ease-out)}
.cajita-promo.is-open .cajita-promo-card{transform:none}
.cajita-promo-img{display:block;width:100%;height:auto;aspect-ratio:16/10;max-height:30svh;object-fit:cover}
.cajita-promo-body{padding:16px 18px 18px}
.cajita-promo-kicker{font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--gold);font-weight:700}
.cajita-promo-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;line-height:1.06;font-weight:600;margin:6px 0}
.cajita-promo-text{font-size:14.5px;line-height:1.5;color:rgba(245,242,236,.84);margin:0 0 14px}
.cajita-promo-actions{display:flex;gap:10px;align-items:center}
.cajita-promo-actions .btn{flex:1;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;white-space:nowrap;font-size:13px;letter-spacing:1.2px}
.cajita-promo-later{background:none;border:0;color:rgba(245,242,236,.78);font:600 14px 'Josefin Sans',sans-serif;min-height:48px;padding:0 10px;cursor:pointer}
.cajita-promo-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(10,28,20,.72);color:#f5f2ec;font-size:24px;line-height:1;cursor:pointer}
.cajita-promo-close:focus-visible,.cajita-promo-later:focus-visible{outline:3px solid #c6a85b;outline-offset:2px}
@media(min-width:900px){.cajita-promo{left:auto;right:24px;bottom:24px;padding:0}}

@media(prefers-reduced-motion:reduce){
  .ahero-slide,.ahero-slide img,.ahero-slide.is-active img,.cajita-show-frame img,.cajita-promo-card,.chip-link,.cajita-themes button{transition:none}
  .ahero-slide.is-active img{transform:none}
}
