/* ==========================================================================
   Tender Greens clone — base styles, header, footer, home & menu
   Mobile-first. Desktop enhancements start at 1100px.
   ========================================================================== */

@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-med-84d16dabc5.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-med-84d16dabc5.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-semibold-6b6c566fd2.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-bold-8338255ee3.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-extra-bold-c932537725.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "sharpsans";
    src: url("../fonts/sharpsans-extra-bold-c932537725.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Spezia";
    src: url("../fonts/SpeziaSerifWeb-RegularD.woff2") format("woff2");
    font-weight: 400 500;
    font-style: normal;
    font-display: swap;
}

:root {
    --cream: #faf5e8;
    --cream-deep: #f4eeda;
    --green: #00473d;
    --green-soft: #336a60;
    --accent: #f15b4d;
    --orange: #ef611a;
    --orange-2: #f06b26;
    --yellow: #fad40a;
    --navy: #1c4075;
    --sky: #64c8d2;
    --olive: #a3b544;
    --white: #ffffff;
    --serif: "Spezia", Georgia, "Times New Roman", serif;
    --sans: "sharpsans", "Helvetica Neue", Arial, sans-serif;
    --page-pad: 20px;
    --header-h: 60px;
    --ease: cubic-bezier(.22, .61, .36, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

body {
    margin: 0;
    padding-top: var(--header-h);
    background: var(--cream);
    color: var(--green);
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.53;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

body.is-locked { overflow: hidden; }

h1, h2, h3, h4, h5, p, figure, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

::selection { background: var(--green); color: var(--cream); }

.serif { font-family: var(--serif); }

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 5000;
    padding: 12px 20px;
    background: var(--green);
    color: var(--cream);
}
.skip-link:focus { left: 0; }

/* ---------- Buttons & shared bits --------------------------------------- */

.tg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 20px 40px;
    border: 1px solid var(--green);
    border-radius: 999px;
    background: var(--green);
    color: var(--cream);
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 2.25px;
    text-transform: uppercase;
    text-align: center;
    transition: background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.tg-btn:hover {
    background: var(--cream);
    color: var(--green);
}
.tg-btn--accent {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--cream);
}
.tg-btn--accent:hover {
    background: var(--green);
    border-color: var(--green);
    color: var(--cream);
}
.tg-btn--outline {
    background: transparent;
    color: var(--green);
}
.tg-btn--outline:hover {
    background: var(--green);
    color: var(--cream);
}
.tg-btn--block { width: 100%; }
.tg-btn--sm {
    min-height: 44px;
    padding: 15px 32px;
    font-size: 13px;
    letter-spacing: 2px;
}

.tg-eyebrow {
    display: block;
    margin-bottom: 12px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.tg-rule {
    width: 100%;
    height: 1px;
    border: 0;
    background: rgba(0, 71, 61, .25);
}

/* ---------- Header ------------------------------------------------------ */

.tg-header {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 1000;
    height: var(--header-h);
    background: var(--cream);
    transition: box-shadow .25s var(--ease), height .25s var(--ease);
}
.tg-header.is-scrolled { box-shadow: 0 8px 30px rgba(0, 71, 61, .08); }

.tg-header__inner {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 1440px;
    height: 100%;
    margin: 0 auto;
    padding: 0 var(--page-pad);
}

.tg-header__logo { display: flex; align-items: center; }
.tg-header__logo img { width: 195px; height: auto; }

.tg-nav { display: none; }
.tg-header__actions { display: none; }

.tg-burger {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    width: 46px;
    height: 46px;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
}
.tg-burger span {
    display: block;
    width: 36px;
    height: 3px;
    margin-left: auto;
    border-radius: 3px;
    background: var(--orange);
    transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.tg-burger span:nth-child(2) { width: 36px; }
.tg-burger span:nth-child(3) { width: 36px; }

/* ---------- Drawer ------------------------------------------------------ */

.tg-drawer {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    padding: 0 0 46px;
    background: var(--cream);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .45s var(--ease), visibility .45s var(--ease);
}
.tg-drawer.is-open { transform: translateX(0); visibility: visible; }

.tg-drawer__head {
    display: flex;
    align-items: center;
    height: 60px;
    padding: 0 20px;
    flex: 0 0 auto;
}
.tg-drawer__logo img { width: 195px; }
.tg-drawer__close {
    position: relative;
    width: 40px;
    height: 40px;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
}
.tg-drawer__close span {
    position: absolute;
    left: 4px;
    top: 19px;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background: var(--orange);
    transform: rotate(45deg);
}
.tg-drawer__close span:last-child { transform: rotate(-45deg); }

.tg-drawer__nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 48px 0 0 60px;
}
.tg-drawer__link {
    padding: 12px 0;
    font-size: 14px;
    font-weight: 800;
    line-height: 26px;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.tg-drawer__link.is-active { text-decoration: underline; text-underline-offset: 5px; }
.tg-drawer__link--account { margin-top: 18px; }

.tg-drawer__actions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: min(100%, 306px);
    margin: 38px 0 0 60px;
}
.tg-drawer__actions .tg-btn { width: 100%; padding: 20px 20px; }

.tg-scrim {
    position: fixed;
    inset: 0;
    z-index: 2050;
    background: rgba(0, 71, 61, .55);
    backdrop-filter: blur(1px);
}

/* ---------- Footer ------------------------------------------------------ */

.tg-footer {
    background: var(--green);
    color: var(--cream);
    padding: 110px var(--page-pad) 93px;
}
.tg-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 34px;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    text-align: center;
}
.tg-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    order: 1;
}
.tg-footer__social { order: 2; }
.tg-footer__app { order: 3; }
.tg-footer__meta { order: 4; }
.tg-footer__leaf img { width: 85px; height: auto; }
.tg-footer__nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.tg-footer__nav-link {
    padding: 2px 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 30px;
    letter-spacing: .9px;
}
.tg-footer__nav-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.tg-footer__app { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.tg-footer__app-title {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .9px;
    text-transform: uppercase;
}
.tg-footer__app-copy { font-size: 15px; line-height: 1.5; max-width: 320px; }
.tg-footer__app-copy a { text-decoration: underline; text-underline-offset: 3px; }
.tg-footer__badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 8px;
}
.tg-footer__badges img { width: 148px; height: auto; }

.tg-footer__social { display: flex; justify-content: center; }
.tg-footer__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.tg-socials { display: flex; align-items: center; gap: 12px; }
.tg-social {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--green);
    transition: transform .25s var(--ease), background .25s var(--ease);
}
.tg-social:hover { transform: translateY(-2px); background: var(--white); }
.tg-social svg { width: 18px; height: 18px; fill: currentColor; }

.tg-footer__copyright {
    max-width: 290px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
}
.tg-footer__legal {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .7px;
    text-transform: uppercase;
}
.tg-footer__legal a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Auth modal -------------------------------------------------- */

.tg-auth {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 16px;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s var(--ease), visibility .3s var(--ease);
}
.tg-auth.is-open { opacity: 1; visibility: visible; }
.tg-auth__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 71, 61, .6);
    backdrop-filter: blur(2px);
}
.tg-auth__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 480px);
    margin: auto;
    padding: 42px 26px 30px;
    background: var(--cream);
    border-radius: 8px;
    box-shadow: 0 30px 80px rgba(0, 30, 25, .35);
    text-align: center;
}
.tg-auth__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
}
.tg-auth__close span {
    position: absolute;
    left: 2px;
    top: 15px;
    width: 28px;
    height: 2px;
    background: var(--green);
    transform: rotate(45deg);
}
.tg-auth__close span:last-child { transform: rotate(-45deg); }
.tg-auth__brand img { margin: 0 auto 14px; width: 58px; }
.tg-auth__eyebrow {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--accent);
}
.tg-auth__title {
    margin: 4px 0 8px;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}
.tg-auth__sub {
    max-width: 330px;
    margin: 0 auto 22px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.5;
}
.tg-auth__tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin-bottom: 22px;
    padding: 4px;
    border: 1px solid rgba(0, 71, 61, .22);
    border-radius: 999px;
}
.tg-auth__tab {
    padding: 10px 8px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}
.tg-auth__tab.is-active { background: var(--green); color: var(--cream); }
.tg-auth__form { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.tg-auth__form[hidden] { display: none; }
.tg-auth__error {
    color: #b3261e;
    font-size: 13px;
    font-weight: 600;
}
.tg-auth__fine {
    font-size: 11px;
    line-height: 1.5;
    color: rgba(0, 71, 61, .7);
    text-align: center;
}
.tg-auth__account { display: flex; flex-direction: column; gap: 12px; }
.tg-auth__account[hidden] { display: none; }
.tg-auth__account-hello { font-family: var(--serif); font-size: 18px; }
.tg-auth__account-points {
    font-size: 38px;
    font-weight: 900;
    line-height: 1;
    color: var(--accent);
    text-transform: uppercase;
}
.tg-auth__account-points span { color: var(--orange); }
.tg-auth__signout {
    padding: 8px;
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.tg-field { display: flex; flex-direction: column; gap: 7px; }
.tg-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tg-field__label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}
.tg-input {
    width: 100%;
    min-height: 48px;
    padding: 12px 18px;
    border: 1px solid rgba(0, 71, 61, .55);
    border-radius: 999px;
    background: transparent;
    font-family: var(--serif);
    font-size: 15px;
    outline: none;
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.tg-input:focus {
    border-color: var(--green);
    box-shadow: 0 0 0 3px rgba(0, 71, 61, .12);
}
.tg-input::placeholder { color: rgba(0, 71, 61, .5); }

/* ---------- Home: hero carousel ----------------------------------------- */

.home-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: #d9d4c8;
}
.home-hero__track { position: absolute; inset: 0; }
.home-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .7s var(--ease);
    pointer-events: none;
}
.home-hero__slide.is-active { opacity: 1; pointer-events: auto; }
.home-hero__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-hero__arrow {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--green);
    color: var(--cream);
    transform: translateY(-50%);
    transition: background .25s var(--ease), transform .25s var(--ease);
}
.home-hero__arrow:hover { background: var(--accent); transform: translateY(-50%) scale(1.05); }
.home-hero__arrow--prev { left: 15px; }
.home-hero__arrow--next { right: 15px; }
.home-hero__arrow svg { width: 16px; height: 16px; }

/* ---------- Home: welcome ----------------------------------------------- */

.home-welcome {
    padding: 70px var(--page-pad) 94px;
    text-align: center;
}
.home-welcome h1 {
    max-width: 720px;
    margin: 0 auto;
    color: var(--green);
    font-size: clamp(38px, 11.55vw, 45px);
    font-weight: 900;
    line-height: .96;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.home-welcome h1 span { display: block; color: var(--orange); }
.home-welcome p {
    max-width: 360px;
    margin: 9px auto 0;
    font-family: var(--serif);
    font-size: 16.5px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .2px;
}

/* ---------- Home: video + chef copy ------------------------------------- */

.home-video {
    width: 100%;
    background: #111;
    overflow: hidden;
}
.home-video video {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 1;
    object-fit: cover;
    display: block;
}

.home-chef {
    padding: 147px var(--page-pad) 10px;
    text-align: center;
}
.home-chef p {
    max-width: 350px;
    margin: 0 auto;
    font-family: var(--serif);
    font-size: 16.5px;
    line-height: 1.5;
    letter-spacing: .2px;
}
.home-chef .tg-btn { margin-top: 14px; }

/* ---------- Home: two feature cards ------------------------------------- */

.home-cards {
    padding: 35px 10px 90px;
}
.home-cards__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 44px;
    max-width: 1180px;
    margin: 0 auto;
}
.home-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid var(--green);
    background: var(--cream);
    text-align: center;
    overflow: hidden;
}
.home-card__media { width: 100%; }
.home-card__media img {
    width: 100%;
    aspect-ratio: 2 / 3;
    object-fit: cover;
}
.home-card__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 50px 20px 52px;
}
.home-card h2 {
    font-size: 29px;
    font-weight: 800;
    line-height: .95;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}
.home-card p {
    max-width: 390px;
    margin-top: 19px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
}
.home-card__cta {
    margin-top: 32px;
    color: var(--accent);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 2.2px;
    text-transform: uppercase;
}
.home-card__cta:hover { color: var(--green); }

/* ---------- Home: let's eat --------------------------------------------- */

.home-eat {
    padding: 59px var(--page-pad) 88px;
    text-align: center;
}
.home-eat h2 {
    font-size: 39px;
    font-weight: 800;
    line-height: .95;
    letter-spacing: 1.75px;
    text-transform: uppercase;
}
.home-eat .tg-btn { margin-top: 34px; }

/* ---------- Menu page ---------------------------------------------------- */

.menu-hero {
    padding: 60px var(--page-pad) 0;
    text-align: center;
}
.menu-hero__script {
    width: 300px;
    max-width: 300px;
    margin: 0 auto;
}
.menu-hero__script img { width: 100%; }

.menu-jump {
    padding: 62px 10px 10px;
}
.menu-jump__cats,
.menu-jump__pdfs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    column-gap: 0;
    row-gap: 0;
}
.menu-jump__cats { max-width: 1175px; margin: 0 auto; }
.menu-jump__link {
    display: inline-block;
    padding: 13px 20px;
    font-size: 15px;
    font-weight: 800;
    line-height: 20px;
    letter-spacing: .75px;
    text-transform: uppercase;
    white-space: nowrap;
}
.menu-jump__link:hover { color: var(--accent); }
.menu-jump__pdfs { margin-top: 0; }
.menu-jump__pdf {
    display: inline-block;
    padding: 13px 20px;
    font-size: 15px;
    font-weight: 800;
    line-height: 20px;
    letter-spacing: .75px;
    text-transform: uppercase;
    white-space: nowrap;
}
.menu-jump__pdf:hover { color: var(--accent); }

.menu-banner {
    position: relative;
    height: 150px;
    margin-top: 0;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}
.menu-band {
    position: relative;
    z-index: 2;
    width: 100%;
    min-height: 170px;
    margin: 0 auto;
    padding: 30px 20px;
    background: var(--green);
    color: var(--cream);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.menu-band h2 {
    font-size: 38px;
    font-weight: 800;
    line-height: .95;
    letter-spacing: 1.7px;
    text-transform: uppercase;
}
.menu-band p {
    margin-top: 10px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
}
.menu-category { padding: 36px 0 8px; }
.menu-block {
    width: 100%;
    max-width: 1175px;
    margin: 0 auto;
    padding: 20px 0 62px;
}
.menu-block__title {
    margin: 45px 0 12px;
    color: var(--accent);
    font-size: 29px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 2.2px;
    text-align: center;
    text-transform: uppercase;
}
.menu-block__sub {
    max-width: 690px;
    margin: 0 auto 12px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
    text-align: center;
}
.menu-row { display: block; }
.menu-item__meta { display: flex; flex-direction: column; align-items: center; }
.menu-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 213px;
    padding: 45px 20px;
    text-align: center;
}
.menu-item h4 {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 2.4px;
    text-transform: uppercase;
}
.menu-item__desc {
    margin-top: 8px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
}
.menu-item__cal {
    margin-top: 4px;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
}
.menu-badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 9px;
}
.menu-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    color: var(--cream);
    font-family: var(--serif);
    font-size: 10.5px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 1px;
}
.menu-badge--gf { background: var(--navy); }
.menu-badge--df { background: var(--sky); color: var(--green); }
.menu-badge--nf { background: #e8622d; }
.menu-badge--vg { background: var(--olive); }

.menu-note {
    max-width: 1030px;
    margin: 26px auto 0;
    padding: 0 var(--page-pad);
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
}
.menu-footnotes {
    padding: 30px var(--page-pad) 70px;
    text-align: center;
}
.menu-footnotes p {
    max-width: 900px;
    margin: 0 auto 8px;
    font-family: var(--serif);
    font-size: 13px;
    line-height: 1.5;
}

.menu-goodnews {
    display: grid;
    grid-template-columns: 1fr;
    background: var(--cream);
}
.menu-goodnews__media img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.menu-goodnews__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 44px 24px 58px;
    text-align: center;
}
.menu-goodnews__body h2 {
    font-size: 38px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}
.menu-goodnews__body p {
    max-width: 470px;
    margin: 24px auto 0;
    font-family: var(--serif);
    font-size: 15px;
    line-height: 1.53;
}
.menu-goodnews__body .tg-btn { margin-top: 26px; padding: 15px 30px; font-size: 13px; }

/* ---------- Desktop ------------------------------------------------------ */

@media (min-width: 1100px) {
    :root { --page-pad: 60px; --header-h: 90px; }

    body { font-size: 15px; }

    .tg-header__inner { padding: 0 60px; }
    .tg-header__logo img { width: 244px; }
    .tg-nav {
        display: flex;
        align-items: center;
        flex: 0 0 auto;
        gap: 0;
        margin-left: 28px;
    }
    .tg-nav__link {
        display: inline-block;
        flex: 0 0 auto;
        padding: 10px 10px;
        white-space: nowrap;
        font-size: 14px;
        font-weight: 800;
        line-height: 40px;
        letter-spacing: 2px;
        text-transform: uppercase;
        border-bottom: 2px solid transparent;
    }
    .tg-nav__link:hover { border-bottom-color: var(--green); }
    .tg-nav__link.is-active { border-bottom-color: var(--green); }
    .tg-header__actions {
        display: flex;
        align-items: center;
        flex: 0 0 auto;
        gap: 16px;
        margin-left: auto;
    }
    .tg-header__actions .tg-btn--sm {
        min-height: 52px;
        padding: 18px 34px;
        font-size: 14px;
        letter-spacing: 2px;
        white-space: nowrap;
    }
    .tg-burger { display: none; }

    .tg-footer { padding: 119px 60px 31px; }
    .tg-footer__inner {
        display: grid;
        grid-template-columns: 1.35fr 1.2fr 1fr;
        align-items: start;
        column-gap: 50px;
        row-gap: 18px;
        max-width: 1060px;
        text-align: left;
    }
    .tg-footer__brand {
        grid-column: 1;
        grid-row: 1 / span 2;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 26px;
        order: initial;
    }
    .tg-footer__app { grid-column: 2; grid-row: 1; order: initial; }
    .tg-footer__social { grid-column: 3; grid-row: 1; justify-content: flex-start; order: initial; }
    .tg-footer__meta { grid-column: 3; grid-row: 2; order: initial; }
    .tg-footer__nav { align-items: flex-start; }
    .tg-footer__nav-link { line-height: 30px; }
    .tg-footer__app { align-items: center; margin-top: 2px; }
    .tg-footer__app-copy { max-width: 330px; }
    .tg-footer__meta { align-items: flex-start; gap: 18px; }
    .tg-footer__copyright { max-width: none; font-size: 13px; }
    .tg-footer__legal { align-items: flex-start; font-size: 11px; }

    .tg-auth__dialog { padding: 46px 44px 34px; }

    /* home */
    .home-hero { aspect-ratio: 3 / 2; height: auto; }
    .home-hero__arrow { width: 48px; height: 48px; }
    .home-hero__arrow--prev { left: 42px; }
    .home-hero__arrow--next { right: 42px; }

    .home-welcome { padding: 85px 60px 108px; }
    .home-welcome h1 {
        max-width: 760px;
        font-size: 88.5px;
        line-height: .96;
        letter-spacing: 5.31px;
    }
    .home-welcome p {
        max-width: 550px;
        margin-top: 29px;
        font-size: 22.5px;
        line-height: 1.5;
        letter-spacing: 0;
    }
    .home-video video { aspect-ratio: 3 / 1; }
    .home-chef { padding: 182px 60px 10px; }
    .home-chef p { max-width: 550px; font-size: 22.5px; line-height: 1.5; }
    .home-chef .tg-btn { margin-top: 14px; }

    .home-cards { padding: 53px 60px 88px; }
    .home-cards__inner { grid-template-columns: 1fr 1fr; gap: 20px; }
    .home-card__media { padding: 18px 18px 0; }
    .home-card__media img { aspect-ratio: 2 / 3; }
    .home-card__body { padding: 50px 30px 52px; }
    .home-card h2 { font-size: 29px; }
    .home-card p { margin-top: 19px; font-size: 15px; }
    .home-card__cta { font-size: 20px; }

    .home-eat { padding: 48px 60px 120px; }
    .home-eat h2 { font-size: 39px; }
    .home-eat .tg-btn { margin-top: 36px; }

    /* menu */
    .menu-hero { padding: 40px 60px 0; }
    .menu-hero__script { width: 815px; max-width: 78vw; }
    .menu-jump { padding: 53px 60px 0; }
    .menu-jump__cats { column-gap: 0; max-width: 1175px; }
    .menu-jump__link { padding: 13px 16px; }
    .menu-jump__pdf { padding: 0; }
    .menu-jump__pdfs { margin-top: 0; gap: 14px; }
    .menu-jump__pdf { font-size: 12px; letter-spacing: .9px; }

    .menu-banner { height: 500px; }
    .menu-band {
        width: 1175px;
        max-width: calc(100% - 120px);
        min-height: 230px;
        margin-top: -150px;
        margin-bottom: 0;
        padding: 86px 20px 20px;
        justify-content: flex-start;
    }
    .menu-band h2 { font-size: 70.5px; letter-spacing: 3.17px; }
    .menu-band p { font-size: 15px; }
    .menu-category { padding: 0; }
    .menu-block { padding: 20px 0 240px; }
    .menu-block__title { margin: 88px 0 12px; font-size: 29.25px; letter-spacing: 2.2px; }
    .menu-block__sub { margin-bottom: 8px; }
    .menu-row { display: grid; }
    .menu-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .menu-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .menu-row--1 { grid-template-columns: minmax(0, 1fr); }
    .menu-item--wide {
        display: grid;
        grid-template-columns: 45% 55%;
        align-items: center;
        text-align: left;
    }
    .menu-item--wide h4 { margin-bottom: 0; text-align: center; }
    .menu-item--wide .menu-item__meta {
        align-items: flex-start;
        text-align: left;
    }
    .menu-item {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        min-height: 212px;
        padding: 30px 40px;
    }
    .menu-item:has(.menu-item__desc) { min-height: 273px; }
    .menu-item h4 { margin-bottom: 10px; font-size: 24px; letter-spacing: 2.4px; }
    .menu-item__desc { margin: 0 0 14px; }
    .menu-item__cal { margin: 0 0 14px; }
    .menu-badges { margin: 0 0 14px; }
    .menu-note { margin-top: 34px; }
    .menu-footnotes { padding: 56px 60px 72px; }
    .menu-goodnews { grid-template-columns: 1fr 1fr; align-items: stretch; }
    .menu-goodnews__media img { aspect-ratio: auto; min-height: 460px; }
    .menu-goodnews__body { padding: 170px 60px; }
    .menu-goodnews__body h2 { font-size: 52px; }
    .menu-goodnews__body p { font-size: 15px; }
}

/* Utility: honour the hidden attribute across display rules */
[hidden] { display: none !important; }

/* Tablets / small laptops: compact header with drawer */
@media (min-width: 1100px) and (max-width: 1199px) {
    :root { --header-h: 60px; }
    body { padding-top: 60px; }
    .tg-header { height: 60px; }
    .tg-header__inner { height: 60px; padding: 0 24px; }
    .tg-header__logo img { width: 195px; }
    .tg-nav, .tg-header__actions { display: none; }
    .tg-burger { display: flex; }
    .tg-footer__inner { grid-template-columns: 1.2fr 1fr; }
    .tg-footer__brand { grid-row: auto; }
    .tg-footer__app { grid-column: 2; grid-row: 1; }
    .tg-footer__social { grid-column: 2; grid-row: 2; }
    .tg-footer__meta { grid-column: 1 / -1; grid-row: 3; align-items: flex-start; }
}

/* ==========================================================================
   Accessibility & usability refinements
   ========================================================================== */
html { scrollbar-gutter: stable; }

.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--navy);
    outline-offset: 3px;
}

/* Enlarge small text links/buttons without changing the visual rhythm */
.tg-footer__nav-link,
.home-card__cta,
.menu-jump__pdf,
.blog-filter,
.faq-tabs a,
.faq-side a,
.order-cat,
.gift-card .tg-btn { position: relative; }
.tg-footer__nav-link::after,
.home-card__cta::after,
.menu-jump__pdf::after,
.blog-filter::after,
.faq-tabs a::after,
.faq-side a::after,
.order-cat::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    bottom: -8px;
}

@media (max-width: 359px) {
    .order-products { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

/* Medium laptops: keep the full navigation but tighten the header */
@media (min-width: 1200px) and (max-width: 1399px) {
    .tg-header__logo img { width: clamp(195px, 17vw, 244px); }
    .tg-nav { margin-left: 18px; }
    .tg-nav__link { padding: 10px 7px; font-size: 12px; letter-spacing: 1.2px; }
    .tg-header__actions { gap: 10px; }
    .tg-header__actions .tg-btn--sm {
        min-height: 48px;
        padding: 14px 22px;
        font-size: 12px;
        letter-spacing: 1.2px;
    }
}

.tg-config{max-width:600px;width:calc(100% - 32px);max-height:90vh;overflow:auto;border:1px solid #00473d;border-radius:12px;padding:24px;background:#faf5e8;color:#00473d}.tg-config::backdrop{background:#0008}.tg-config label{display:block;margin:16px 0}.tg-config button{margin:10px}.loc-card{border-radius:10px;overflow:hidden}.home-card{border-radius:10px;overflow:hidden}
@media(max-width:767px){.menu-hero__script{width:210px;margin:auto}}

@media(min-width:1100px){.home-cards{padding-left:0;padding-right:0}.home-cards__inner{max-width:1154px;gap:35px}.home-card__media{padding:0}.home-card__media img{aspect-ratio:2/3}.menu-jump{padding-bottom:26px}}

.tg-consent{position:fixed;z-index:2000;bottom:16px;left:16px;max-width:500px;padding:24px;background:white;color:#222;box-shadow:0 4px 30px #0003;border:1px solid #ddd;font-size:14px}.tg-consent h2{font-size:20px;margin:0 0 12px}.tg-consent>button:not([data-dismiss]){display:block;border:1px solid #1b62dc;border-radius:30px;padding:12px;width:100%;margin-top:10px;color:#1b62dc;font-weight:bold;background:white}.tg-consent [data-accept],.tg-consent [data-reject]{background:#1b62dc!important;color:white!important}.tg-consent [data-dismiss]{float:right;background:none;border:0;font-size:22px}.tg-consent label{display:block}.tg-privacy-choices{border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;margin-top:10px;cursor:pointer}.blog-article__body img{max-width:100%;height:auto}.blog-article__body h2,.blog-article__body h3{margin-top:24px}@media(max-width:600px){.tg-consent{left:0;bottom:0;max-width:none;width:100%;max-height:90vh;overflow:auto}}

@media(min-width:1200px){.tg-header__inner{padding:0 3.2vw}.tg-header__logo{flex-shrink:0}.tg-header__logo img{width:212px}.tg-nav{margin-left:auto}.tg-nav__link{font-size:14px;letter-spacing:1.4px;padding:8px 10px;line-height:26px}.tg-header__actions{gap:24px;margin-left:24px}.tg-header__actions .tg-btn--sm{min-height:42px;padding:12px 38px;letter-spacing:1px}.home-hero__arrow{width:56px;height:56px}.home-hero__arrow--prev{left:20px}.home-hero__arrow--next{right:20px}.tg-footer__inner{max-width:1060px;grid-template-columns:1.1fr 1.6fr 1fr;column-gap:40px}.tg-footer__meta{font-size:11px}.tg-footer__copyright{font-size:11px}.tg-footer__app-copy{max-width:290px}}
@media(min-width:1200px) and (max-width:1350px){.tg-header__inner{padding:0 24px}.tg-nav__link{padding:8px 6px;font-size:12px}.tg-header__actions{gap:12px;margin-left:12px}.tg-header__actions .tg-btn--sm{padding:12px 20px}}
@media(min-width:1351px){.tg-header__inner{padding:0 29px}.tg-header__logo img{width:244px}.tg-nav{margin-left:80px}.tg-nav__link{letter-spacing:2px}.tg-header__actions{margin-left:auto}.tg-header__actions .tg-btn--sm{padding-left:47px;padding-right:47px}}
@media(min-width:1200px) and (max-width:1350px){.tg-nav{margin-left:20px}}
@media(max-width:767px){.menu-hero__script img{width:300px;max-width:calc(100vw - 40px);height:auto}.menu-hero__script{width:auto}}
