@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

:root {
    --olive: #263A2A;
    --moss: #556B3E;
    --ivory: #F5F0E6;
    --gold: #C9A24A;
    --charcoal: #1B1B18;
    --white: #fffdf8;
    --line: rgba(38,58,42,.14);
    --shadow: 0 18px 50px rgba(27,27,24,.10);
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'Inter', Arial, sans-serif;
    --radius: 12px;
    --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--ivory); color:var(--charcoal); font-family:var(--sans); line-height:1.7; }
a { color:inherit; }
img { max-width:100%; display:block; }
.container { width:min(var(--container), calc(100% - 40px)); margin-inline:auto; }

.site-header { position:sticky; top:0; z-index:50; background:rgba(38,58,42,.97); color:var(--ivory); border-bottom:1px solid rgba(201,162,74,.22); backdrop-filter:blur(12px); }
.nav-wrap { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; min-width:max-content; }
.brand-mark { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:var(--serif); font-weight:700; font-size:.82rem; letter-spacing:.08em; }
.brand-copy { display:flex; flex-direction:column; line-height:1.15; }
.brand-copy strong { font-family:var(--serif); font-size:1rem; letter-spacing:.10em; }
.brand-copy small { margin-top:4px; color:#ded6c5; font-size:.68rem; font-style:italic; }
.site-nav { display:flex; align-items:center; gap:5px; }
.site-nav a { padding:11px 10px; text-decoration:none; text-transform:uppercase; font-size:.72rem; font-weight:600; letter-spacing:.08em; color:#f8f2e6; border-bottom:2px solid transparent; transition:.2s ease; }
.site-nav a:hover, .site-nav a.active { color:var(--gold); border-bottom-color:var(--gold); }
.site-nav .nav-order { margin-left:8px; padding:12px 17px; background:var(--gold); color:var(--olive); border:1px solid var(--gold); border-radius:999px; }
.site-nav .nav-order:hover { background:#d7b766; color:var(--olive); border-color:#d7b766; }
.site-nav .language { color:var(--gold); }
.menu-toggle { display:none; border:1px solid rgba(245,240,230,.3); background:transparent; color:var(--ivory); padding:9px 13px; border-radius:999px; }

.hero { position:relative; overflow:hidden; min-height:640px; display:flex; align-items:center; background:linear-gradient(120deg, var(--olive) 0%, #314934 58%, var(--moss) 100%); color:var(--ivory); }
.hero::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 78% 35%, rgba(201,162,74,.18), transparent 28%), radial-gradient(circle at 15% 90%, rgba(245,240,230,.07), transparent 30%); pointer-events:none; }
.hero-inner { position:relative; padding:100px 0; max-width:860px; }
.eyebrow { margin:0 0 16px; color:var(--gold); text-transform:uppercase; letter-spacing:.22em; font-size:.72rem; font-weight:700; }
.hero h1, .page-title { margin:0; font-family:var(--serif); font-weight:600; line-height:1.08; letter-spacing:-.02em; }
.hero h1 { font-size:clamp(3rem, 7vw, 6.6rem); max-width:900px; }
.hero .lead { max-width:680px; margin:24px 0 0; color:#eee8dc; font-size:1.06rem; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px; border-radius:999px; text-decoration:none; font-weight:700; letter-spacing:.04em; transition:transform .2s ease, background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button.primary { background:var(--gold); color:var(--olive); }
.button.secondary { border:1px solid rgba(245,240,230,.55); color:var(--ivory); }

.section { padding:88px 0; }
.section.alt { background:var(--white); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.section-heading h2 { margin:0; font-family:var(--serif); font-size:clamp(2rem,4vw,3.2rem); color:var(--olive); line-height:1.15; }
.section-heading p { max-width:520px; margin:0; color:#67675d; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card-grid.four { grid-template-columns:repeat(4,1fr); }
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px; box-shadow:0 8px 24px rgba(27,27,24,.04); }
.card:hover { box-shadow:var(--shadow); transform:translateY(-2px); transition:.2s ease; }
.card .number { color:var(--gold); font-family:var(--serif); font-size:1.25rem; }
.card h3 { margin:10px 0 8px; font-family:var(--serif); color:var(--olive); font-size:1.45rem; }
.card p { margin:0; color:#64645c; }
.gold-line { width:52px; height:2px; margin:18px 0; background:var(--gold); }

.page-hero { padding:78px 0 58px; background:linear-gradient(180deg, #eee8db, var(--ivory)); border-bottom:1px solid var(--line); }
.page-hero .page-title { font-size:clamp(2.7rem,6vw,5rem); color:var(--olive); }
.page-hero .intro { max-width:720px; margin:18px 0 0; color:#626259; font-size:1.03rem; }
.page-content { padding:72px 0 96px; }
.notice { border-left:3px solid var(--gold); background:var(--white); padding:18px 22px; border-radius:0 var(--radius) var(--radius) 0; }
.plan-badge { display:inline-block; padding:6px 11px; border:1px solid rgba(201,162,74,.45); border-radius:999px; color:var(--moss); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }

.site-footer { background:var(--olive); color:var(--ivory); border-top:1px solid rgba(201,162,74,.3); }
.footer-main { display:grid; grid-template-columns:1.35fr 1fr 1fr 1.15fr; gap:46px; padding:64px 0 48px; }
.footer-brand-link { display:inline-flex; align-items:center; gap:13px; color:var(--ivory); text-decoration:none; }
.footer-mark { width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:var(--serif); font-size:.78rem; letter-spacing:.08em; }
.footer-brand-link strong { display:block; font-family:var(--serif); font-size:1rem; letter-spacing:.11em; }
.footer-brand-link small { display:block; margin-top:4px; color:#d7d0c2; font-size:.7rem; font-style:italic; }
.footer-intro { max-width:310px; margin:20px 0 0; color:#cfc8ba; font-size:.9rem; line-height:1.7; }
.footer-column h3 { margin:4px 0 18px; color:var(--gold); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; }
.footer-links { display:flex; flex-direction:column; gap:10px; }
.footer-links a, .footer-contact a, .footer-socials a { text-decoration:none; color:#f3ecdf; font-size:.88rem; }
.footer-links a:hover, .footer-contact a:hover, .footer-socials a:hover { color:var(--gold); }
.footer-contact { display:flex; flex-direction:column; gap:9px; }
.footer-address { margin:0 0 16px; color:#cfc8ba; font-size:.84rem; line-height:1.65; }
.footer-socials { display:flex; flex-wrap:wrap; gap:8px 14px; }
.footer-service-bar { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; border-top:1px solid rgba(245,240,230,.12); border-bottom:1px solid rgba(245,240,230,.12); color:#d7d0c2; font-size:.78rem; }
.footer-service-bar > div { display:flex; flex-direction:column; gap:2px; }
.footer-service-label { color:var(--gold); text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; font-weight:700; }
.footer-order-link { color:var(--gold); text-decoration:none; font-weight:700; white-space:nowrap; }
.footer-bottom { background:rgba(16,25,18,.28); }
.footer-bottom-inner { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#aaa99e; font-size:.72rem; }
.footer-legal { display:flex; gap:18px; }
.footer-legal a { color:#d7d0c2; text-decoration:none; }
.footer-legal a:hover { color:var(--gold); }
.footer-handle { color:var(--gold); }


@media (max-width:1050px) {
    .site-nav a { padding-inline:7px; font-size:.68rem; }
    .card-grid.four { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:820px) {
    .nav-wrap { min-height:72px; }
    .menu-toggle { display:block; }
    .site-nav { position:absolute; top:72px; left:0; right:0; display:none; padding:12px 20px 20px; background:var(--olive); border-bottom:1px solid rgba(201,162,74,.25); flex-direction:column; align-items:stretch; }
    .site-nav.open { display:flex; }
    .site-nav a { border:0; padding:12px 10px; }
    .site-nav .nav-order { margin:6px 0 0; text-align:center; }
    .hero { min-height:560px; }
    .card-grid, .card-grid.four { grid-template-columns:1fr; }
    .section { padding:68px 0; }
    .footer-main { grid-template-columns:1fr 1fr; gap:34px 28px; }
    .footer-service-bar { align-items:flex-start; flex-direction:column; gap:12px; }
    .footer-bottom-inner { flex-wrap:wrap; padding:14px 0; }
}
@media (max-width:520px) {
    .container { width:min(var(--container), calc(100% - 28px)); }
    .brand-copy strong { font-size:.85rem; }
    .brand-copy small { font-size:.6rem; }
    .hero-inner { padding:80px 0; }
    .hero h1 { font-size:clamp(2.7rem, 14vw, 4rem); }
    .page-hero { padding:62px 0 45px; }
}

/* Phase 3 — Home page */
.eyebrow-dark { color: var(--moss); }
.dark-text { color: var(--olive) !important; }

/* Premium split hero: text left + complete 1:1 image right. */
.home-hero { position:relative; overflow:hidden; background:linear-gradient(120deg,#183c24 0%,var(--olive) 58%,#365339 100%); color:var(--ivory); }
.home-hero-track { position:relative; min-height:610px; }
.home-hero-slide { position:absolute; inset:0; display:flex; align-items:center; opacity:0; visibility:hidden; transition:opacity .65s ease, visibility .65s ease; }
.home-hero-slide.is-active { opacity:1; visibility:visible; z-index:2; }
.home-hero-slide::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 8% 30%,rgba(201,162,74,.11),transparent 28%),radial-gradient(circle at 92% 72%,rgba(245,240,230,.05),transparent 25%); }
.home-hero-content { position:relative; z-index:4; width:100%; max-width:1240px; padding:38px 0 72px; display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,.8fr); gap:48px; align-items:center; }
.home-hero-copy-column { min-width:0; max-width:650px; }
.home-hero-copy-column .eyebrow { display:inline-flex; align-items:center; min-height:48px; margin:0 0 18px; padding:0 28px; border:1px solid rgba(201,162,74,.72); border-radius:999px; background:rgba(38,58,42,.34); color:#d7c46f; text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; font-weight:700; }
.home-hero-title { max-width:640px; margin:0; display:flex; flex-direction:column; align-items:flex-start; font-family:var(--serif); font-weight:600; line-height:.92; letter-spacing:-.035em; }
.home-hero-title span { display:block; }
.hero-title-small { font-size:clamp(1.05rem,1.7vw,1.55rem); line-height:1.15; letter-spacing:.08em; text-transform:uppercase; color:#b7bd78; margin-bottom:8px; }
.hero-title-medium { font-size:clamp(3rem,5vw,5.2rem); color:var(--ivory); }
.hero-title-large { font-size:clamp(4.2rem,7.3vw,7.5rem); color:#b7bd78; }
.home-hero-content .hero-copy { max-width:610px; margin:24px 0 0; font-size:1.02rem; line-height:1.65; color:#eee9df; }
.home-hero-content .actions { margin-top:24px; }
.home-hero-image-column { min-width:0; display:flex; justify-content:flex-end; }
.home-hero-image-card { width:min(100%,500px); aspect-ratio:1/1; overflow:hidden; border-radius:30px; border:1px solid rgba(201,162,74,.72); background:#1d3525; box-shadow:0 22px 55px rgba(7,18,10,.26); }
.home-hero-media { display:block; width:100%; height:100%; }
.home-hero-media img { display:block; width:100%; height:100%; object-fit:contain; background:#1d3525; }
.home-hero-image-card--fallback { background:radial-gradient(circle at 70% 35%,rgba(201,162,74,.28),transparent 25%),linear-gradient(135deg,#203b28,#51653a); }
.home-hero-controls { position:absolute; z-index:8; inset:0; pointer-events:none; }
.hero-arrow, .hero-pause { min-width:42px; height:42px; border:1px solid rgba(245,240,230,.35); border-radius:999px; background:rgba(19,30,22,.22); color:var(--ivory); cursor:pointer; transition:.2s ease; pointer-events:auto; }
.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); width:42px; font-size:1.1rem; }
.home-hero-controls > .hero-arrow:first-child { left:max(18px,calc((100% - 1240px)/2 - 56px)); }
.home-hero-controls > .hero-arrow[data-hero-next] { right:max(18px,calc((100% - 1240px)/2 - 56px)); }
.hero-pause { position:absolute; left:calc(50% + 78px); bottom:16px; padding:0 13px; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; }
.hero-arrow:hover, .hero-pause:hover { border-color:var(--gold); color:var(--gold); background:rgba(19,30,22,.42); }
.hero-slider-center { position:absolute; left:50%; bottom:22px; transform:translateX(-50%); min-width:130px; display:flex; flex-direction:column; align-items:center; gap:9px; pointer-events:auto; }
.hero-dots { display:flex; gap:7px; justify-content:center; }
.hero-dot { width:22px; height:3px; padding:0; border:0; border-radius:99px; background:rgba(245,240,230,.35); cursor:pointer; transition:.25s ease; }
.hero-dot.is-active { background:var(--gold); width:44px; }
.hero-progress { width:100%; max-width:120px; height:1px; overflow:hidden; background:rgba(245,240,230,.18); }
.hero-progress span { display:block; width:100%; height:100%; transform-origin:left center; background:var(--gold); }
@keyframes heroProgress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.home-hero-slide[aria-hidden="true"] .home-hero-content { pointer-events:none; }

.split-feature { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:end; }
.split-feature h2 { margin:0; color:var(--olive); font-family:var(--serif); font-size:clamp(2.4rem,4.8vw,4.5rem); line-height:1.1; letter-spacing:-.025em; }
.split-feature p:not(.eyebrow) { margin:0 0 22px; color:#626259; font-size:1.04rem; }
.text-link { display:inline-flex; gap:10px; align-items:center; color:var(--olive); text-decoration:none; font-weight:700; border-bottom:1px solid rgba(201,162,74,.65); padding-bottom:4px; }
.text-link span { color:var(--gold); transition:transform .2s ease; }
.text-link:hover span { transform:translateX(4px); }
.home-catering { background:#eee9de; }
.home-option-grid .feature-card { min-height:240px; display:flex; flex-direction:column; }
.home-option-grid .feature-card p { margin-top:auto; }
.section-cta { margin-top:30px; display:flex; justify-content:center; }
.home-plans { background:var(--white); }
.plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.plan-card { min-height:390px; padding:34px; border:1px solid var(--line); background:var(--ivory); border-radius:var(--radius); overflow:hidden; }
.plan-card-top { display:flex; justify-content:space-between; margin-bottom:22px; }
.plan-card h3 { margin:18px 0 8px; font-family:var(--serif); color:var(--olive); font-size:2rem; }
.plan-card p { color:#64645c; max-width:580px; }
.plan-card .plan-image { width:calc(100% + 68px); height:180px; margin:-34px -34px 26px; object-fit:cover; }
.plan-card.is-empty { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; background:linear-gradient(145deg,#f5f0e6,#e7e1d4); }
.empty-plan-icon { width:52px; height:52px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:var(--serif); font-size:1.7rem; }
.home-gallery { background:var(--ivory); }
.home-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-tile { display:block; aspect-ratio:1/1; overflow:hidden; background:#d9d2c4; }
.gallery-tile img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.gallery-tile:hover img { transform:scale(1.045); }
.gallery-empty { min-height:270px; border:1px solid var(--line); background:var(--white); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.gallery-empty span { font-family:var(--serif); font-size:2.4rem; color:var(--gold); letter-spacing:.1em; }
.gallery-empty p { margin:8px 0 0; color:#77766e; }
.home-why { background:var(--olive); color:var(--ivory); }
.why-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:start; }
.home-why h2 { margin:0; font-family:var(--serif); font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.08; font-weight:600; }
.why-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(245,240,230,.18); }
.why-list div { min-height:145px; padding:24px 18px 20px 0; border-bottom:1px solid rgba(245,240,230,.18); }
.why-list div:nth-child(odd) { border-right:1px solid rgba(245,240,230,.18); padding-right:30px; }
.why-list div:nth-child(even) { padding-left:30px; }
.why-list span { color:var(--gold); font-family:var(--serif); }
.why-list h3 { margin:16px 0 0; font-family:var(--serif); font-size:1.45rem; font-weight:500; }
.home-final-cta { background:var(--moss); color:var(--ivory); padding:100px 0; text-align:center; }
.final-cta-inner { max-width:850px; }
.final-cta-inner .eyebrow { margin-bottom:14px; }
.final-cta-inner h2 { margin:0; font-family:var(--serif); font-size:clamp(2.5rem,5vw,4.8rem); line-height:1.08; }
.final-cta-inner .actions { justify-content:center; }
.final-cta-inner .button.secondary { background:transparent; }

@media (max-width:820px) {
    .home-hero-track { min-height:780px; }
    .home-hero-content { grid-template-columns:1fr; gap:28px; padding:44px 0 78px; }
    .home-hero-copy-column { max-width:760px; }
    .home-hero-image-column { justify-content:flex-start; }
    .home-hero-image-card { width:min(100%,520px); }
    .home-hero-controls > .hero-arrow:first-child { left:14px; }
    .home-hero-controls > .hero-arrow[data-hero-next] { right:14px; }
    .hero-pause { left:auto; right:16px; bottom:14px; min-width:42px; padding:0 10px; }
    .hero-pause [data-hero-pause-label] { display:none; }
    .split-feature, .why-layout, .plan-grid { grid-template-columns:1fr; gap:40px; }
    .home-gallery-grid { grid-template-columns:repeat(2,1fr); }
    .why-list { margin-top:8px; }
}
@media (max-width:520px) {
    .home-hero-track { min-height:760px; }
    .home-hero-content { gap:24px; padding:38px 0 76px; }
    .home-hero-copy-column .eyebrow { min-height:44px; padding:0 20px; font-size:.68rem; }
    .home-hero-image-card { width:100%; border-radius:22px; }
    .hero-title-small { font-size:.86rem; margin-bottom:6px; }
    .hero-title-medium { font-size:clamp(2.45rem,11vw,3.5rem); }
    .hero-title-large { font-size:clamp(3.5rem,16vw,5rem); }
    .home-hero-content .hero-copy { font-size:.95rem; margin-top:20px; }
    .home-gallery-grid { grid-template-columns:1fr 1fr; gap:8px; }
    .footer-main { grid-template-columns:1fr; gap:28px; padding:48px 0 34px; }
    .footer-bottom-inner { display:grid; gap:8px; }
    .footer-legal { gap:14px; }
    .why-list { grid-template-columns:1fr; }
    .why-list div:nth-child(odd), .why-list div:nth-child(even) { border-right:0; padding-left:0; padding-right:0; }
    .plan-card { padding:26px; }
    .plan-card .plan-image { width:calc(100% + 52px); margin:-26px -26px 22px; }
}

/* Phase 3 — About page */
.about-hero {
    position:relative;
    overflow:hidden;
    padding:120px 0 105px;
    background:linear-gradient(120deg, var(--olive) 0%, #304733 58%, var(--moss) 100%);
    color:var(--ivory);
}
.about-hero::after {
    content:"";
    position:absolute;
    width:460px;
    height:460px;
    right:-120px;
    top:-180px;
    border:1px solid rgba(201,162,74,.25);
    border-radius:50%;
    box-shadow:0 0 0 70px rgba(201,162,74,.035), 0 0 0 140px rgba(201,162,74,.025);
}
.about-hero-inner { position:relative; z-index:2; max-width:920px; }
.about-hero h1 { margin:0; max-width:900px; font-family:var(--serif); font-size:clamp(3.2rem,7vw,6.4rem); line-height:1.04; font-weight:600; letter-spacing:-.035em; }
.about-hero-intro { max-width:720px; margin:28px 0 0; color:#eee8dc; font-size:1.08rem; line-height:1.85; }
.about-story { background:var(--ivory); }
.about-story-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:start; }
.about-story h2 { margin:0; max-width:620px; font-family:var(--serif); color:var(--olive); font-size:clamp(2.5rem,4.8vw,4.5rem); line-height:1.08; letter-spacing:-.025em; }
.about-copy { max-width:650px; padding-top:38px; }
.about-copy p { margin:0 0 24px; color:#626259; font-size:1.02rem; line-height:1.85; }
.about-copy strong { color:var(--olive); font-family:var(--serif); font-size:1.3rem; }
.about-philosophy { background:var(--white); }
.about-philosophy-heading { margin-bottom:38px; }
.about-philosophy-heading h2 { max-width:820px; }
.about-value-card { min-height:260px; display:flex; flex-direction:column; }
.about-value-card p { margin-top:auto; }
.about-essence { background:var(--olive); color:var(--ivory); text-align:center; padding:110px 0; }
.about-essence-inner { max-width:900px; }
.about-essence h2 { margin:0; font-family:var(--serif); font-size:clamp(3rem,7vw,6.5rem); line-height:1.02; font-weight:600; letter-spacing:-.035em; }
.about-essence p:last-child { max-width:650px; margin:28px auto 0; color:#ddd7ca; font-size:1.03rem; line-height:1.8; }
.about-cta { background:var(--moss); color:var(--ivory); padding:78px 0; }
.about-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.about-cta h2 { margin:0; max-width:780px; font-family:var(--serif); font-size:clamp(2.3rem,4.5vw,4rem); line-height:1.08; }
.about-cta p:not(.eyebrow) { max-width:650px; margin:18px 0 0; color:#e4ded2; }
.dark-button { border-color:rgba(245,240,230,.7) !important; }
@media (max-width:820px) {
    .about-hero { padding:90px 0 80px; }
    .about-story-grid { grid-template-columns:1fr; gap:25px; }
    .about-copy { padding-top:0; }
    .about-cta-inner { flex-direction:column; align-items:flex-start; gap:28px; }
}

/* Phase 3 — Catering page */
.catering-hero {
    position:relative;
    overflow:hidden;
    padding:118px 0 105px;
    background:linear-gradient(120deg, var(--olive) 0%, #304733 58%, var(--moss) 100%);
    color:var(--ivory);
}
.catering-hero::after {
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    right:-160px;
    top:-230px;
    border:1px solid rgba(201,162,74,.23);
    border-radius:50%;
    box-shadow:0 0 0 78px rgba(201,162,74,.035), 0 0 0 156px rgba(201,162,74,.025);
}
.catering-hero-inner { position:relative; z-index:2; max-width:1040px; }
.catering-hero h1 { margin:0; max-width:980px; font-family:var(--serif); font-size:clamp(3.1rem,6.8vw,6.2rem); line-height:1.03; font-weight:600; letter-spacing:-.035em; }
.catering-hero-intro { max-width:720px; margin:28px 0 0; color:#eee8dc; font-size:1.06rem; line-height:1.85; }
.catering-options { background:var(--ivory); padding:94px 0 105px; }
.split-heading { display:grid; grid-template-columns:1fr .8fr; gap:90px; align-items:end; margin-bottom:46px; }
.split-heading h2, .process-heading h2 { margin:0; max-width:820px; font-family:var(--serif); color:var(--olive); font-size:clamp(2.5rem,4.5vw,4.25rem); line-height:1.08; letter-spacing:-.025em; }
.split-heading > p { margin:0 0 4px; color:#626259; font-size:1rem; line-height:1.8; }
.catering-option-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.catering-option-card { min-height:390px; padding:30px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 8px 24px rgba(27,27,24,.035); display:flex; flex-direction:column; transition:.2s ease; }
.catering-option-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.catering-option-top { display:flex; justify-content:space-between; align-items:center; }
.catering-option-top .number { color:var(--gold); font-family:var(--serif); font-size:1.15rem; }
.option-mark { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(201,162,74,.6); border-radius:50%; color:var(--gold); font-size:1.2rem; }
.catering-option-card h3 { margin:42px 0 13px; color:var(--olive); font-family:var(--serif); font-size:1.7rem; line-height:1.12; }
.option-summary { margin:0; color:#5f5f58; line-height:1.7; }
.option-divider { width:48px; height:1px; background:var(--gold); margin:28px 0 18px; }
.option-detail { margin:0; color:#77766e; font-size:.88rem; line-height:1.65; margin-top:auto; }
.catering-plans-highlight { background:var(--olive); color:var(--ivory); padding:78px 0; }
.plans-highlight-inner { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.plans-highlight-inner h2 { margin:0; max-width:720px; font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.8rem); line-height:1.08; }
.plan-pills { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(245,240,230,.18); }
.plan-pills span { padding:22px 16px; border-bottom:1px solid rgba(245,240,230,.18); color:#eee8dc; font-family:var(--serif); letter-spacing:.08em; }
.plan-pills span:nth-child(odd) { border-right:1px solid rgba(245,240,230,.18); }
.catering-process { background:var(--white); padding:96px 0 105px; }
.process-heading { margin-bottom:44px; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.process-grid > div { min-height:220px; padding:28px; border-top:1px solid var(--line); }
.process-grid span { color:var(--gold); font-family:var(--serif); }
.process-grid h3 { margin:28px 0 10px; color:var(--olive); font-family:var(--serif); font-size:1.55rem; }
.process-grid p { margin:0; color:#6b6b64; line-height:1.7; }
.catering-cta { margin-top:65px; padding:42px 46px; background:var(--moss); color:var(--ivory); border-radius:var(--radius); display:flex; justify-content:space-between; align-items:center; gap:35px; }
.catering-cta h2 { margin:0; font-family:var(--serif); font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.08; }
.catering-cta .eyebrow { margin-bottom:12px; }
.catering-cta .button.primary { flex:none; }
@media (max-width:1050px) {
    .catering-option-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:820px) {
    .catering-hero { padding:90px 0 80px; }
    .split-heading, .plans-highlight-inner { grid-template-columns:1fr; gap:30px; }
    .catering-options, .catering-process { padding:72px 0 80px; }
    .process-grid { grid-template-columns:1fr; }
    .catering-cta { flex-direction:column; align-items:flex-start; }
}
@media (max-width:520px) {
    .catering-hero h1 { font-size:clamp(2.8rem,14vw,4.2rem); }
    .catering-option-grid { grid-template-columns:1fr; }
    .catering-option-card { min-height:340px; }
    .plan-pills { grid-template-columns:1fr; }
    .plan-pills span:nth-child(odd) { border-right:0; }
    .catering-cta { padding:30px 26px; }
}

/* Catering card sharing / PDF actions */
.catering-card-actions { margin-top:auto; padding-top:22px; display:flex; flex-wrap:wrap; gap:8px; }
.card-action { appearance:none; border:1px solid var(--line); background:var(--ivory); color:var(--olive); border-radius:999px; padding:9px 12px; font:600 .72rem/1 var(--sans); text-decoration:none; cursor:pointer; transition:.18s ease; }
.card-action:hover { transform:translateY(-1px); border-color:var(--gold); }
.card-action-primary { background:var(--gold); border-color:var(--gold); color:var(--olive-dark); }
@media (max-width: 700px) { .catering-card-actions { flex-direction:column; } .card-action { text-align:center; width:100%; } }

/* Meal Box Plans */
.meal-plan-group{margin:0 0 4rem}
.meal-plan-group .section-heading{margin-bottom:1.5rem}
.meal-plan-card{overflow:hidden;display:flex;flex-direction:column}
.meal-plan-image{aspect-ratio:16/9;overflow:hidden;background:#263a2a}
.meal-plan-image img{width:100%;height:100%;object-fit:cover;display:block}
.meal-plan-body{padding:1.5rem}
.plan-meta{font-size:.9rem;opacity:.75}
.plan-detail{margin:1.1rem 0}
.plan-detail strong{display:block;margin-bottom:.45rem;color:#263a2a}
.plan-days{display:flex;flex-wrap:wrap;gap:.45rem}
.plan-days span{border:1px solid #c9a24a;border-radius:999px;padding:.35rem .65rem;font-size:.82rem}
.plan-terms{margin-top:1rem}
.plan-terms summary{cursor:pointer;font-weight:700}
.plan-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1.35rem}
.plan-actions .button{width:100%;min-height:42px;padding:.7rem .9rem;text-align:center;border-radius:10px;font-size:.78rem;letter-spacing:.02em;box-sizing:border-box}
.plan-actions .button-secondary{border:1px solid rgba(39,64,43,.28);background:var(--ivory);color:var(--olive);box-shadow:none}
.plan-actions .button-secondary:hover{border-color:var(--gold);background:#fffaf0;color:var(--olive-dark);transform:translateY(-1px)}
.plan-actions .button-primary{grid-column:1/-1;background:var(--gold);border:1px solid var(--gold);color:var(--olive-dark);font-weight:800}
.empty-plan{padding:2rem;text-align:center}
@media (max-width:700px){.plan-actions{grid-template-columns:1fr}.plan-actions .button-primary{grid-column:auto}}

/* Meal Box Plans — responsive card layout */
.meal-plans-page .card-grid {
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    align-items: start;
}
.meal-plans-page .meal-plan-card {
    width: 100%;
}
.meal-plans-page .meal-plan-add-form {
    display: grid;
    grid-template-columns: 1.25fr 1fr .65fr;
    gap: 12px;
    margin-top: 18px;
    align-items: end;
}
.meal-plans-page .meal-plan-add-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 600;
    color: var(--olive);
}
.meal-plans-page .meal-plan-add-form input,
.meal-plans-page .meal-plan-add-form select {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    color: var(--charcoal);
    font: inherit;
}
.meal-plans-page .meal-plan-add-form .button {
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 10px;
    font-size: .8rem;
}
.meal-plans-page .meal-plan-add-form .button-primary {
    background: var(--gold);
    border: 1px solid var(--gold);
    color: var(--olive-dark);
}
.meal-plans-page .meal-plan-add-form .button-primary:hover {
    background: #d2ae58;
    border-color: #d2ae58;
}
.page-hero .button-secondary {
    border: 1px solid var(--gold);
    background: var(--gold);
    color: var(--olive);
}
@media (max-width: 820px) {
    .meal-plans-page .card-grid { grid-template-columns: 1fr; }
    .meal-plans-page .meal-plan-add-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .meal-plans-page .card-grid { grid-template-columns: 1fr; }
    .meal-plans-page .meal-plan-add-form { grid-template-columns: 1fr; }
}

/* Meal Box Plan checkout / success */
.checkout-layout{display:grid;grid-template-columns:1fr;gap:20px;max-width:980px;margin:0 auto}
.checkout-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 8px 24px rgba(27,27,24,.04)}
.panel-kicker{color:var(--moss);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin-bottom:18px}
.checkout-item{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
.checkout-item div{display:flex;flex-direction:column;gap:4px}.checkout-item span{color:#6b6a61;font-size:.88rem}.checkout-item>strong{white-space:nowrap;color:var(--olive)}
.checkout-total{display:flex;justify-content:space-between;align-items:center;padding-top:20px;margin-top:4px}.checkout-total span{font-size:1rem;color:#6b6a61}.checkout-total strong{font-family:var(--serif);font-size:1.8rem;color:var(--olive)}
.checkout-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.checkout-form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--olive);font-size:.86rem}.checkout-form-grid label.full{grid-column:1/-1}.checkout-form-grid input,.checkout-form-grid select,.checkout-form-grid textarea{width:100%;border:1px solid #d3cec2;background:#fffdf8;color:var(--charcoal);border-radius:9px;padding:12px 13px;font:inherit;font-weight:400;min-height:46px}.checkout-form-grid textarea{resize:vertical}.checkout-form-grid input:focus,.checkout-form-grid select:focus,.checkout-form-grid textarea:focus{outline:2px solid rgba(201,162,74,.3);border-color:var(--gold)}
.checkout-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.checkout-actions .button{border:0;min-height:48px;border-radius:10px}.button.secondary-light{background:var(--moss);border:1px solid var(--moss);color:var(--ivory)}.button.secondary-light:hover{background:var(--olive);color:var(--ivory)}
.checkout-error{background:#f7e1dd;border:1px solid #d7aaa2;color:#6d3027;padding:14px 16px;border-radius:9px}
.success-card{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow);max-width:900px;margin:0 auto}.success-card-head{display:flex;align-items:center;gap:18px}.success-mark{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--olive);color:var(--gold);font-weight:800;font-size:1.25rem}.success-card h2{margin:0;color:var(--olive);font-family:var(--serif);font-size:1.8rem}.success-message{font-size:1.02rem;color:#5e5e57;margin:22px 0}.order-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.order-summary-grid div{background:#f6f1e7;border:1px solid var(--line);padding:15px;border-radius:9px;display:flex;flex-direction:column;gap:5px}.order-summary-grid span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#77746b}.order-summary-grid strong{color:var(--olive)}.success-items{border-top:1px solid var(--line);padding-top:18px}.success-items h3{font-family:var(--serif);color:var(--olive)}.success-item{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.success-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
@media(max-width:700px){.checkout-form-grid{grid-template-columns:1fr}.checkout-form-grid label.full{grid-column:auto}.order-summary-grid{grid-template-columns:1fr}.checkout-item{align-items:flex-start;flex-direction:column}.success-card{padding:24px}.success-item{flex-direction:column;gap:4px}}

/* Meal Box Plan monthly selection and savings */
.monthly-options { margin: 14px 0; padding: 14px; border: 1px solid rgba(80,70,40,.16); border-radius: 12px; background: rgba(248,244,233,.55); }
.monthly-options[hidden] { display:none; }
.monthly-price-preview, .cart-price-breakdown { display:grid; gap:8px; margin-top:12px; }
.monthly-price-preview > div, .cart-price-breakdown > div { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(80,70,40,.10); }
.monthly-price-preview > div:last-child, .cart-price-breakdown > div:last-child { border-bottom:0; }
.monthly-price-preview .monthly-saving, .cart-price-breakdown .cart-saving, .cart-savings-total { font-weight:700; }
.cart-item-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.cart-item-head h3 { margin:.45rem 0 0; }
.cart-line-total { font-size:1.05rem; margin-top:14px; }
.checkout-discount-note { display:block; margin-top:4px; opacity:.82; }
@media (max-width:700px) {
  .cart-item-head { flex-direction:column; gap:8px; }
  .monthly-price-preview > div, .cart-price-breakdown > div { align-items:flex-start; flex-direction:column; gap:2px; }
}


/* Meal Box Plans — compact card content */
.meal-plans-page .meal-plan-body { padding: 1.25rem; }
.meal-plans-page .plan-detail { margin: .8rem 0; }
.meal-plans-page .plan-detail strong { margin-bottom: .35rem; }
.plan-meals-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; }
.plan-meal-row { display:flex; flex-direction:column; gap:2px; padding:5px 0; }
.plan-meal-row strong { margin:0; font-size:.82rem; color:var(--olive); }
.plan-meal-row span { color:#6b6a61; font-size:.84rem; line-height:1.35; }
@media (max-width:700px) { .plan-meals-grid { grid-template-columns:1fr; } }

/* Meal Box Plans — premium cards + compact Weekly / Monthly selector */
.meal-plans-page .meal-plan-card {
    border:1px solid rgba(39,64,43,.14);
    box-shadow:0 12px 28px rgba(27,27,24,.07);
}
.meal-plans-page .meal-plan-card:nth-child(3n+1) { background:linear-gradient(180deg,#f1f3e9 0%,#fbfaf4 72%); border-color:rgba(93,111,77,.30); }
.meal-plans-page .meal-plan-card:nth-child(3n+2) { background:linear-gradient(180deg,#fbf1d9 0%,#fffdf7 72%); border-color:rgba(201,162,74,.38); }
.meal-plans-page .meal-plan-card:nth-child(3n) { background:linear-gradient(180deg,#eef3ec 0%,#fbfcf8 72%); border-color:rgba(55,91,61,.30); }
.meal-plans-page .meal-plan-body { padding:1.5rem; }
.meal-plans-page .plan-detail { margin:.8rem 0; }
.meal-plans-page .plan-detail strong { margin-bottom:.35rem; }

.meal-plans-page .plan-detail:nth-of-type(1) { margin-top:1rem; }
.meal-plans-page .plan-detail:nth-of-type(1) p {
    margin:0;
    padding:.85rem 1rem;
    border-radius:10px;
    background:var(--olive);
    color:var(--ivory);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
    font-family:var(--serif);
    font-size:1.15rem;
    font-weight:800;
    letter-spacing:.01em;
}
.meal-plans-page .meal-plan-card:nth-child(3n+2) .plan-detail:nth-of-type(1) p { background:var(--gold); color:var(--olive-dark); }
.meal-plans-page .plan-detail:nth-of-type(1) strong { display:block; margin-bottom:.4rem; }

/* Meal Box Plan purchase controls — elegant single-column layout */
.meal-plans-page .meal-plan-add-form { display:grid; grid-template-columns:1fr; gap:12px; margin-top:18px; }
.meal-plans-page .plan-frequency-picker,
.meal-plans-page .monthly-options { grid-column:1; }
.plan-frequency-picker { margin-top:1.35rem; padding-top:1.15rem; border-top:1px solid var(--line); }
.form-section-label { display:block; margin-bottom:.65rem; font-weight:700; color:var(--olive); font-size:.9rem; }
.frequency-options { display:grid; grid-template-columns:1fr; gap:8px; }
.frequency-option { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:64px; gap:3px; padding:11px 13px; border:1px solid rgba(39,64,43,.18); border-radius:10px; background:rgba(255,253,248,.82); cursor:pointer; transition:.18s ease; box-sizing:border-box; }
.frequency-option input { position:absolute; opacity:0; pointer-events:none; }
.frequency-option:hover { border-color:var(--gold); transform:translateY(-1px); }
.frequency-option.is-active { border-color:var(--gold); background:#fbf5e6; box-shadow:0 0 0 1px rgba(201,162,74,.18); }
.frequency-option-title { font-weight:700; color:var(--olive-dark); font-size:.92rem; }
.frequency-option-sub { font-size:.74rem; color:#6b6a61; line-height:1.35; }
.frequency-option-sub strong { color:var(--olive); }
.monthly-choice .frequency-option-title:before { content:'★ '; color:var(--gold); }
.monthly-options { margin-top:12px; padding:14px; border:1px solid rgba(201,162,74,.45); border-radius:10px; background:rgba(255,250,240,.88); }
.monthly-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.monthly-panel-head > div > strong { color:var(--olive-dark); }
.monthly-discount-badge { flex:0 0 auto; padding:5px 9px; border-radius:999px; background:var(--gold); color:var(--olive-dark); font-size:.7rem; font-weight:900; letter-spacing:.04em; }
.monthly-schedule-options { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.monthly-schedule-option { position:relative; cursor:pointer; }
.monthly-schedule-option input { position:absolute; opacity:0; pointer-events:none; }
.monthly-schedule-option span { display:block; padding:8px 12px; border:1px solid #d9c58f; border-radius:999px; background:#fffdf8; color:var(--olive); font-size:.78rem; font-weight:700; }
.monthly-schedule-option input:checked + span { background:var(--olive); border-color:var(--olive); color:var(--ivory); }
.monthly-price-preview { display:grid; grid-template-columns:1fr; gap:0; margin-top:13px; padding-top:12px; border-top:1px solid rgba(201,162,74,.25); }
.monthly-price-preview > div { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:.78rem; padding:8px 0; border-bottom:1px solid rgba(80,70,40,.10); min-width:0; }
.monthly-price-preview span { color:#6b6a61; min-width:0; }
.monthly-price-preview strong { color:var(--olive); white-space:nowrap; flex:0 0 auto; }
.monthly-price-preview .monthly-net-row { grid-column:1/-1; padding-top:8px; font-size:.9rem; }
.monthly-price-preview .monthly-net-row strong { font-size:1.05rem; color:var(--olive-dark); }
.monthly-price-preview .monthly-saving { grid-column:1/-1; padding:8px 10px; border-radius:7px; background:rgba(201,162,74,.12); }
.monthly-price-preview .monthly-saving span, .monthly-price-preview .monthly-saving strong { color:var(--olive-dark); font-weight:800; }

/* Meal Box Plans final responsive breakpoints: keep three plans visible on desktop/tablet landscape. */
@media (min-width:901px) {
    .meal-plans-page .card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px) and (min-width:701px) {
    .meal-plans-page .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .meal-plans-page .card-grid { grid-template-columns:1fr; }
    .meal-plans-page .meal-plan-add-form { grid-template-columns:1fr; }
    .frequency-options { grid-template-columns:1fr; }
    .monthly-panel-head { flex-direction:column; gap:8px; }
    .monthly-price-preview { grid-template-columns:1fr; }
    .monthly-price-preview .monthly-net-row, .monthly-price-preview .monthly-saving { grid-column:auto; }
}
@media (max-width:520px) {
    .meal-plans-page .meal-plan-add-form { grid-template-columns:1fr; }
    .frequency-options { grid-template-columns:1fr; }
}

/* Meal Box Plan actions — one elegant row per action */
.meal-plans-page .plan-actions { grid-template-columns:1fr; gap:8px; margin-top:12px; }
.meal-plans-page .plan-actions .button { grid-column:auto; min-height:40px; padding:.62rem .8rem; font-size:.75rem; }
.meal-plans-page .plan-actions .button-primary { grid-column:auto; }
.meal-plans-page .meal-plan-add-form > label { width:100%; }
.meal-plans-page .meal-plan-add-form > .button-primary { width:100%; justify-self:stretch; }

/* Meal Box Plans — final vertical purchase block refinement */
.meal-plans-page .meal-plan-add-form {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:18px;
}
.meal-plans-page .meal-plan-add-form > * { width:100%; box-sizing:border-box; }
.meal-plans-page .plan-frequency-picker { margin-top:1.1rem; padding-top:1rem; }
.meal-plans-page .frequency-options { display:flex; flex-direction:column; gap:8px; }
.meal-plans-page .frequency-option {
  width:100%;
  min-height:58px;
  padding:10px 12px;
}
.meal-plans-page .frequency-option-title { font-size:.9rem; line-height:1.25; }
.meal-plans-page .frequency-option-sub { font-size:.72rem; line-height:1.3; }
.meal-plans-page .monthly-options { margin-top:8px; padding:12px; }
.meal-plans-page .monthly-schedule-options { gap:6px; }
.meal-plans-page .monthly-schedule-option span { padding:7px 10px; font-size:.74rem; }
.meal-plans-page .monthly-price-preview { margin-top:10px; padding-top:10px; gap:0; }
.meal-plans-page .meal-plan-add-form > label {
  display:flex;
  flex-direction:column;
  gap:5px;
  margin:0;
  font-size:.78rem;
  font-weight:700;
  color:var(--olive-dark);
}
.meal-plans-page .meal-plan-add-form > label input,
.meal-plans-page .meal-plan-add-form > label select {
  width:100%;
  min-height:42px;
  box-sizing:border-box;
}
.meal-plans-page .meal-plan-add-form > .button-primary {
  width:100%;
  min-height:42px;
  margin-top:2px;
}
.meal-plans-page .plan-actions {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:8px;
}
.meal-plans-page .plan-actions .button { width:100%; min-height:38px; padding:.55rem .75rem; font-size:.72rem; }

@media (min-width:701px) {
  .meal-plans-page .meal-plan-body { padding:1.35rem; }
}


/* Meal Box Plans — final elegant responsive polish */
.meal-plans-page .card-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    align-items:start;
}
.meal-plans-page .meal-plan-card {
    min-width:0;
    overflow:hidden;
}
.meal-plans-page .meal-plan-body { padding:1.2rem; }
.meal-plans-page .meal-plan-body h3 {
    font-size:1.22rem;
    line-height:1.35;
    margin:.65rem 0 .55rem;
}
.meal-plans-page .meal-plan-body > p {
    font-size:.84rem;
    line-height:1.55;
}
.meal-plans-page .plan-detail { margin:.68rem 0; }
.meal-plans-page .plan-detail > strong,
.meal-plans-page .form-section-label {
    font-size:.78rem;
}
.meal-plans-page .plan-detail:nth-of-type(1) p {
    font-size:.92rem;
    padding:.7rem .8rem;
    margin:0;
}
.meal-plans-page .plan-days { gap:.3rem; }
.meal-plans-page .plan-days span {
    padding:.27rem .48rem;
    font-size:.66rem;
}
.meal-plans-page .plan-meals-grid { gap:5px 12px; }
.meal-plans-page .plan-meal-row { padding:3px 0; }
.meal-plans-page .plan-meal-row strong { font-size:.68rem; }
.meal-plans-page .plan-meal-row span { font-size:.69rem; line-height:1.3; }
.meal-plans-page .plan-terms { margin-top:.65rem; }
.meal-plans-page .plan-terms summary { font-size:.75rem; }
.meal-plans-page .plan-terms p,
.meal-plans-page .field-help { font-size:.7rem; line-height:1.45; }

.meal-plans-page .plan-frequency-picker {
    margin-top:1rem;
    padding-top:.85rem;
}
.meal-plans-page .frequency-options {
    display:flex;
    flex-direction:column;
    gap:6px;
}
.meal-plans-page .frequency-option {
    width:100%;
    min-height:52px;
    padding:8px 10px;
    border-radius:9px;
}
.meal-plans-page .frequency-option-title { font-size:.78rem; }
.meal-plans-page .frequency-option-sub { font-size:.66rem; }

.meal-plans-page .monthly-options {
    width:100%;
    margin:7px 0 2px;
    padding:10px;
    border-radius:9px;
    overflow:hidden;
}
.meal-plans-page .monthly-panel-head { gap:8px; }
.meal-plans-page .monthly-panel-head > div > strong { font-size:.75rem; }
.meal-plans-page .monthly-panel-head .field-help { font-size:.67rem; }
.meal-plans-page .monthly-discount-badge { padding:4px 7px; font-size:.61rem; }
.meal-plans-page .monthly-schedule-options { gap:5px; }
.meal-plans-page .monthly-schedule-option span { padding:6px 8px; font-size:.65rem; }
.meal-plans-page .monthly-price-preview {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:0;
    width:100%;
    overflow:hidden;
}
.meal-plans-page .monthly-price-preview > div {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    width:100%;
    min-width:0;
    padding:7px 0;
    font-size:.68rem;
}
.meal-plans-page .monthly-price-preview span { min-width:0; }
.meal-plans-page .monthly-price-preview strong {
    min-width:0;
    max-width:100%;
    font-size:.72rem;
    white-space:nowrap;
}
.meal-plans-page .monthly-price-preview .monthly-net-row strong { font-size:.82rem; }
.meal-plans-page .monthly-price-preview .monthly-saving {
    grid-template-columns:minmax(0,1fr) auto;
    padding:7px 8px;
    margin-top:3px;
}

.meal-plans-page .meal-plan-add-form {
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:14px;
}
.meal-plans-page .meal-plan-add-form > label {
    gap:4px;
    font-size:.7rem;
}
.meal-plans-page .meal-plan-add-form > label input,
.meal-plans-page .meal-plan-add-form > label select {
    min-height:40px;
    padding:8px 10px;
    font-size:.78rem;
    border-radius:8px;
}
.meal-plans-page .meal-plan-add-form > .button-primary {
    min-height:40px;
    font-size:.72rem;
    border-radius:9px;
}
.meal-plans-page .plan-actions {
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-top:6px;
}
.meal-plans-page .plan-actions .button {
    min-height:36px;
    padding:.45rem .65rem;
    font-size:.66rem;
    border-radius:8px;
}
.meal-plans-page .section-heading h2 {
    font-size:clamp(2rem,3.2vw,2.7rem);
}

@media (max-width:1000px) and (min-width:701px) {
    .meal-plans-page .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
}
@media (max-width:700px) {
    .meal-plans-page .card-grid { grid-template-columns:1fr; gap:16px; }
    .meal-plans-page .meal-plan-body { padding:1.15rem; }
    .meal-plans-page .section-heading { margin-bottom:20px; }
    .meal-plans-page .section-heading h2 { font-size:2rem; }
    .meal-plans-page .monthly-price-preview > div { grid-template-columns:minmax(0,1fr) auto; }
}
@media (max-width:430px) {
    .meal-plans-page .meal-plan-body { padding:1rem; }
    .meal-plans-page .plan-meals-grid { grid-template-columns:1fr; }
    .meal-plans-page .monthly-price-preview > div { grid-template-columns:1fr; gap:2px; }
    .meal-plans-page .monthly-price-preview strong { white-space:normal; }
}

/* Customer information pages */
.legal-layout { display:grid; grid-template-columns:220px minmax(0,760px); gap:60px; align-items:start; justify-content:center; }
.legal-nav { position:sticky; top:105px; display:flex; flex-direction:column; gap:10px; padding:22px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 8px 24px rgba(27,27,24,.04); }
.legal-nav strong { color:var(--olive); font-family:var(--serif); font-size:1.15rem; margin-bottom:4px; }
.legal-nav a { color:#66665e; text-decoration:none; padding:5px 0; }
.legal-nav a:hover { color:var(--gold); }
.legal-content { min-width:0; }
.legal-content section { margin:0 0 34px; }
.legal-content h2 { margin:0 0 10px; color:var(--olive); font-family:var(--serif); font-size:1.65rem; line-height:1.25; }
.legal-content p { margin:0; color:#626259; line-height:1.85; }
.faq-list { max-width:900px; }
.faq-item { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; }
.faq-item summary { cursor:pointer; list-style:none; padding:22px 26px; color:var(--olive); font-family:var(--serif); font-size:1.18rem; font-weight:600; display:flex; justify-content:space-between; gap:20px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; color:var(--gold); font-family:var(--sans); font-size:1.35rem; font-weight:500; }
.faq-item[open] summary::after { content:'−'; }
.faq-item > div { padding:0 26px 22px; border-top:1px solid var(--line); }
.faq-item p { margin:16px 0 0; color:#626259; }
.how-section { background:var(--ivory); }
.how-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.how-step { min-height:310px; padding:28px 22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); }
.how-step > span { color:var(--gold); font-family:var(--serif); font-size:1.5rem; }
.how-step h2 { margin:34px 0 12px; color:var(--olive); font-family:var(--serif); font-size:1.5rem; line-height:1.2; }
.how-step p { margin:0; color:#626259; font-size:.93rem; line-height:1.75; }
.how-cta { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.how-cta h2 { margin:0; color:var(--olive); font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.1; }
.how-cta p:not(.eyebrow) { color:#626259; max-width:650px; }
.dark-button { color:var(--olive) !important; border-color:rgba(38,58,42,.35) !important; }
.cookie-content { max-width:900px; }
.cookie-card { padding:28px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:14px; }
.cookie-card h2 { margin-bottom:8px; }
.download-section { background:var(--ivory); }
.download-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; }
.download-card { min-height:390px; padding:32px; border:1px solid var(--line); border-radius:var(--radius); display:flex; flex-direction:column; box-shadow:0 10px 30px rgba(27,27,24,.05); }
.download-card-green { background:#e6eee5; }
.download-card-gold { background:#f7edcf; }
.download-card-ivory { background:#fffdf8; }
.download-kicker { color:var(--moss); font-size:.7rem; text-transform:uppercase; letter-spacing:.18em; font-weight:700; }
.download-card h2 { margin:20px 0 12px; color:var(--olive); font-family:var(--serif); font-size:2rem; line-height:1.15; }
.download-card p { margin:0; color:#626259; line-height:1.75; }
.download-meta { display:flex; flex-direction:column; gap:6px; margin-top:auto; padding:18px 0; border-top:1px solid var(--line); color:#68685f; font-size:.84rem; }
.download-meta strong { color:var(--olive); }
.app-download-disabled { border:0; background:#d6d1c5; color:#706d64; cursor:not-allowed; width:100%; }
.download-info-button { background:var(--olive); color:var(--ivory); width:100%; }
.download-note { margin-top:22px; padding:28px 32px; background:var(--olive); color:var(--ivory); border-radius:var(--radius); }
.download-note h2 { margin:0 0 8px; font-family:var(--serif); }
.download-note p { margin:0; color:#e5dfd2; }

@media (max-width:900px) {
    .legal-layout { grid-template-columns:1fr; gap:28px; }
    .legal-nav { position:static; flex-direction:row; flex-wrap:wrap; align-items:center; }
    .legal-nav strong { width:100%; }
    .how-grid { grid-template-columns:repeat(2,1fr); }
    .download-grid { grid-template-columns:1fr; }
}
@media (max-width:820px) {
    .how-cta { flex-direction:column; align-items:flex-start; }
}
@media (max-width:520px) {
    .faq-item summary { padding:18px 18px; font-size:1.05rem; }
    .faq-item > div { padding:0 18px 18px; }
    .how-grid { grid-template-columns:1fr; }
    .how-step { min-height:0; }
    .download-card { min-height:340px; padding:26px; }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-slide { transition:none; }
    .button, .hero-arrow, .hero-pause { transition:none; }
    .hero-progress span { animation:none !important; }
}

/* Official CDM branding assets */
.brand-logo{display:block;width:180px;height:auto;max-height:58px;object-fit:contain;object-position:left center}
@media(max-width:700px){.brand-logo{width:150px;max-height:50px}}

/* Final polish — global brand lockup + Contact + Gallery */
.brand-mark-image {
    width:58px;
    height:58px;
    flex:0 0 58px;
    object-fit:contain;
}
.brand-copy strong { white-space:nowrap; }
.footer-logo {
    width:68px;
    height:68px;
    flex:0 0 68px;
    object-fit:contain;
}
.footer-brand-link { align-items:center; }

.contact-hero .intro { max-width:760px; }
.contact-page { padding-top:68px; }
.contact-grid {
    display:grid;
    grid-template-columns:1.15fr .9fr 1.05fr;
    gap:20px;
}
.contact-card, .contact-info-panel {
    background:var(--white);
    border:1px solid var(--line);
    border-radius:16px;
    padding:30px;
    box-shadow:0 10px 30px rgba(27,27,24,.045);
}
.contact-card { min-height:245px; display:flex; flex-direction:column; align-items:flex-start; }
.contact-card-primary { background:linear-gradient(145deg,#263A2A,#314934); color:var(--ivory); border-color:rgba(201,162,74,.28); }
.contact-card-primary h2, .contact-card-primary p { color:var(--ivory); }
.contact-card h2, .contact-info-panel h2 { margin:8px 0 10px; font-family:var(--serif); color:var(--olive); font-size:1.65rem; line-height:1.2; }
.contact-card p, .contact-info-panel p { margin:0; color:#64645c; }
.contact-card-primary p { color:#e9e2d4; }
.contact-kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.16em; font-size:.67rem; font-weight:700; }
.contact-card .button { margin-top:auto; }
.contact-list { display:flex; flex-direction:column; gap:9px; margin-top:8px; }
.contact-list a, .contact-email { color:var(--olive); text-decoration:none; font-weight:700; font-size:1.02rem; }
.contact-list a:hover, .contact-email:hover, .text-link:hover { color:var(--gold); }
.contact-lower-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:20px; margin-top:20px; }
.contact-info-panel { min-height:190px; }
.contact-info-panel h2 { margin-top:9px; }
.contact-note { margin-top:12px !important; font-size:.86rem; color:#77766e !important; }
.text-link { display:inline-block; margin-top:18px; color:var(--olive); font-weight:700; text-decoration:none; }
.contact-cta {
    margin-top:20px;
    padding:30px 34px;
    border:1px solid rgba(201,162,74,.32);
    border-radius:16px;
    background:linear-gradient(100deg,#eee8db,var(--white));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.contact-cta h2 { margin:8px 0 0; max-width:720px; font-family:var(--serif); color:var(--olive); font-size:clamp(1.6rem,3vw,2.35rem); line-height:1.2; }

.gallery-hero .intro { max-width:760px; }
.gallery-page { padding-top:64px; }
.gallery-masonry { columns:3 280px; column-gap:18px; }
.gallery-item { break-inside:avoid; margin:0 0 18px; position:relative; overflow:hidden; border-radius:14px; background:#ddd6c8; border:1px solid var(--line); }
.gallery-item img { width:100%; height:auto; display:block; transition:transform .45s ease; }
.gallery-item:hover img { transform:scale(1.025); }
.gallery-item figcaption { position:absolute; left:0; right:0; bottom:0; padding:34px 18px 16px; color:#fffdf8; font-size:.82rem; background:linear-gradient(transparent,rgba(18,27,20,.82)); }
.gallery-item-featured img { min-height:340px; object-fit:cover; }
.gallery-empty-state {
    min-height:480px;
    padding:72px 28px;
    border:1px solid var(--line);
    border-radius:18px;
    background:linear-gradient(145deg,#fffdf8,#eee8db);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    box-shadow:0 14px 42px rgba(27,27,24,.05);
}
.gallery-empty-mark { margin-bottom:18px; }
.gallery-empty-mark img { opacity:.96; }
.gallery-empty-state h2 { margin:9px 0 12px; color:var(--olive); font-family:var(--serif); font-size:clamp(2rem,4vw,3.2rem); line-height:1.12; }
.gallery-empty-state p { max-width:650px; margin:0; color:#69685f; }
.dark-button { border-color:rgba(38,58,42,.35) !important; color:var(--olive) !important; }
.dark-button:hover { border-color:var(--gold) !important; color:var(--olive) !important; }

@media (max-width:1100px) {
    .nav-wrap { gap:18px; }
    .brand-mark-image { width:52px; height:52px; flex-basis:52px; }
    .brand-copy strong { font-size:.88rem; }
    .brand-copy small { font-size:.62rem; }
    .site-nav { gap:1px; }
    .site-nav a { padding-inline:6px; }
    .contact-grid { grid-template-columns:1fr 1fr; }
    .contact-card-primary { grid-column:1 / -1; min-height:215px; }
}
@media (max-width:820px) {
    .brand-mark-image { width:50px; height:50px; flex-basis:50px; }
    .brand-copy strong { font-size:.82rem; letter-spacing:.07em; }
    .brand-copy small { font-size:.59rem; }
    .contact-grid, .contact-lower-grid { grid-template-columns:1fr; }
    .contact-card-primary { grid-column:auto; }
    .contact-cta { flex-direction:column; align-items:flex-start; }
    .footer-logo { width:60px; height:60px; flex-basis:60px; }
}
@media (max-width:520px) {
    .brand-mark-image { width:46px; height:46px; flex-basis:46px; }
    .brand-copy strong { font-size:.72rem; }
    .brand-copy small { font-size:.55rem; }
    .contact-card, .contact-info-panel { padding:24px; }
    .contact-cta { padding:26px 24px; }
    .gallery-empty-state { min-height:420px; padding:54px 20px; }
}

/* Contact form */
.contact-form-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:34px;margin-top:24px;padding:34px;background:#fffdf8;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(27,27,24,.04)}
.contact-form-intro h2{margin:8px 0 10px;font-family:var(--serif);color:var(--olive);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15}.contact-form-intro p{color:#66665e;max-width:430px}.contact-form{display:flex;flex-direction:column;gap:16px}.contact-form label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--olive);font-size:.84rem}.contact-form input,.contact-form textarea{width:100%;padding:12px 13px;border:1px solid #d3cec2;border-radius:8px;background:#fff;font:inherit;color:var(--charcoal)}.contact-form textarea{resize:vertical;min-height:150px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid rgba(201,162,74,.35);border-color:var(--gold)}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden}.contact-submit-button{border:0;cursor:pointer;align-self:flex-start}.form-note{margin:0;color:#888;font-size:.76rem}.cf-turnstile{min-height:65px}
 .message-preview{max-width:560px;white-space:normal;word-break:break-word;margin-bottom:8px}
.contact-message-detail-row td{padding:0 18px 18px;background:rgba(241,236,224,.45)}
.contact-message-detail{padding:20px 22px;border:1px solid rgba(36,61,43,.12);border-radius:12px;background:#fffdf8}
.contact-message-detail-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.contact-message-detail-head h3{margin:2px 0 4px}
.contact-message-body{padding:18px;background:#f7f2e8;border-radius:10px;line-height:1.7;white-space:normal;word-break:break-word}
@media(max-width:760px){.contact-message-detail-head{align-items:flex-start;flex-direction:column}.contact-messages-table{min-width:760px}}
@media(max-width:820px){.contact-form-layout{grid-template-columns:1fr}.form-row-2{grid-template-columns:1fr}}

/* Final hero navigation positioning: keep arrows outside the image card. */
@media (min-width: 901px) {
  .home-hero-controls.container {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
  }
  .home-hero-controls > .hero-arrow:first-child {
    left: clamp(16px, 2vw, 32px);
  }
  .home-hero-controls > .hero-arrow[data-hero-next] {
    right: clamp(16px, 2vw, 32px);
  }
}

/* On smaller screens keep controls clear of the square image and content. */
@media (max-width: 900px) {
  .home-hero-controls.container {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
  }
}

/* Premium Android app download page */
.app-download-hero { position:relative; overflow:hidden; background:linear-gradient(120deg,#183b24 0%,var(--olive) 56%,#36543b 100%); color:var(--ivory); }
.app-download-hero::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 84% 28%,rgba(201,162,74,.18),transparent 27%),radial-gradient(circle at 12% 90%,rgba(245,240,230,.06),transparent 30%); }
.app-download-hero-inner { position:relative; z-index:1; min-height:610px; padding:76px 0 82px; display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,520px); gap:76px; align-items:center; }
.app-download-copy { max-width:680px; }
.app-download-copy h1 { margin:0; max-width:680px; font-family:var(--serif); font-size:clamp(3.2rem,6.3vw,6.2rem); line-height:.97; letter-spacing:-.035em; font-weight:600; color:var(--ivory); }
.app-download-lead { max-width:620px; margin:25px 0 0; color:#eee8dc; font-size:1.04rem; line-height:1.75; }
.app-badges { display:flex; flex-wrap:wrap; gap:9px; margin-top:25px; }
.app-badges span { padding:7px 11px; border:1px solid rgba(201,162,74,.52); border-radius:999px; color:#e2d4a6; font-size:.65rem; font-weight:700; letter-spacing:.12em; }
.app-download-trust { display:inline-flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:48px; padding:12px 16px; border-left:2px solid rgba(201,162,74,.65); color:#d9d2c3; font-size:.78rem; line-height:1.2; }
.app-download-count-number { color:var(--gold); font-family:var(--serif); font-size:1.65rem; line-height:1; }
.app-download-count-label { color:#d9d2c3; font-size:.74rem; letter-spacing:.02em; }
.app-download-card { width:100%; max-width:520px; justify-self:end; padding:30px; border:1px solid rgba(201,162,74,.35); border-radius:28px; background:#fffdf8; color:var(--charcoal); box-shadow:0 28px 70px rgba(7,18,10,.25); }
.app-download-form { display:flex; flex-direction:column; align-items:center; }
.app-icon-button { width:100%; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; font:inherit; }
.app-icon-frame { display:grid; place-items:center; width:min(280px,72vw); aspect-ratio:1; margin:0 auto; padding:18px; border-radius:30px; background:linear-gradient(145deg,#fffefa,#f1ebdf); box-shadow:0 15px 34px rgba(27,27,24,.10); transition:transform .22s ease,box-shadow .22s ease; }
.app-icon-button:hover .app-icon-frame { transform:translateY(-4px) scale(1.012); box-shadow:0 22px 42px rgba(27,27,24,.16); }
.app-icon-frame img { width:100%; height:100%; object-fit:contain; border-radius:22px; }
.app-download-prompt { display:block; margin-top:17px; color:var(--olive); font-weight:700; font-size:.84rem; }
.app-download-button { min-width:190px; margin-top:4px; border:0; cursor:pointer; }
.app-release-placeholder { display:flex; flex-direction:column; align-items:center; text-align:center; }
.app-release-placeholder .app-icon-frame { margin-bottom:20px; }
.app-status-badge { display:inline-flex; padding:7px 12px; border-radius:999px; background:#edf1e9; color:var(--moss); text-transform:uppercase; letter-spacing:.11em; font-size:.61rem; font-weight:700; }
.app-release-placeholder p { max-width:340px; margin:15px 0 0; color:#696960; font-size:.82rem; }
.app-release-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:25px; padding-top:19px; border-top:1px solid var(--line); color:#77776f; font-size:.68rem; }
.app-install-section { background:var(--ivory); }
.app-install-heading { display:block; margin-bottom:32px; }
.app-install-heading h2 { max-width:650px; }
.app-install-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.app-install-step { min-height:210px; padding:29px; background:#fffdf8; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 10px 30px rgba(27,27,24,.05); }
.app-install-step > span { color:var(--gold); font-family:var(--serif); font-size:1rem; }
.app-install-step h3 { margin:25px 0 8px; color:var(--olive); font-family:var(--serif); font-size:1.45rem; }
.app-install-step p { margin:0; color:#66665e; font-size:.9rem; line-height:1.7; }
.app-support-section { background:var(--olive); color:var(--ivory); border-top:1px solid rgba(201,162,74,.28); }
.app-support-inner { min-height:290px; padding:72px 0; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.app-support-inner h2 { margin:0; font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.1; color:var(--ivory); }
.app-support-inner p:not(.eyebrow) { margin:13px 0 0; color:#d6d0c3; }
.app-support-inner .button { white-space:normal; overflow-wrap:anywhere; word-break:break-word; text-align:center; max-width:100%; }
@media (max-width:900px) {
    .app-download-hero-inner { grid-template-columns:1fr; gap:48px; padding-top:62px; }
    .app-download-card { justify-self:stretch; max-width:620px; }
    .app-download-copy { max-width:720px; }
    .app-install-grid { grid-template-columns:1fr; }
    .app-support-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width:520px) {
    .app-download-hero-inner { padding:52px 0 62px; }
    .app-download-copy h1 { font-size:clamp(2.8rem,13vw,4rem); }
    .app-download-card { padding:20px; border-radius:22px; }
    .app-support-inner { padding:58px 0; }
    .app-support-inner .button { white-space:normal; overflow-wrap:anywhere; word-break:break-word; text-align:center; max-width:100%; }
}

/* App installation visual help */
.app-install-visuals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.app-install-visual-card{background:#fffdf8;border:1px solid rgba(38,58,42,.14);border-radius:14px;padding:14px;box-shadow:0 8px 24px rgba(31,55,38,.05)}.app-install-visual-image{background:#f1ece1;border-radius:10px;overflow:hidden;display:flex;justify-content:center}.app-install-visual-image img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}.app-install-visual-card h3{margin:14px 4px 7px}.app-install-visual-card p{margin:0 4px 4px;line-height:1.6}@media(max-width:900px){.app-install-visuals{grid-template-columns:1fr 1fr}}@media(max-width:600px){.app-install-visuals{grid-template-columns:1fr}}

/* App release notes / update history */
.app-release-notes-section{padding-top:72px;padding-bottom:72px}
.app-release-notes-heading{margin-bottom:28px}
.app-current-release-note{border:1px solid rgba(31,61,31,.16);border-radius:18px;padding:26px 30px;background:#fff;box-shadow:0 10px 30px rgba(31,61,31,.06)}
.app-current-release-note>div{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.app-release-version{font-family:inherit;font-weight:700;font-size:1.1rem;letter-spacing:.04em}
.app-release-current{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;padding:5px 9px;border-radius:999px;background:#e8f2eb;color:#1f3d1f}
.app-current-release-note p,.app-history-row p{margin:0;line-height:1.65}
.app-update-history{margin-top:34px}
.app-update-history h3{margin:0 0 16px;font-size:1.35rem}
.app-history-row{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:18px 0;border-top:1px solid rgba(31,61,31,.12)}
.app-history-row strong{font-size:1rem}
@media (max-width:700px){.app-release-notes-section{padding-top:54px;padding-bottom:54px}.app-current-release-note{padding:22px}.app-history-row{grid-template-columns:1fr;gap:6px}}


/* App minimum requirements */
.app-requirements-section { background:var(--ivory); padding-top:0; }
.app-requirements-heading { margin-bottom:28px; }
.app-requirements-heading h2 { max-width:760px; }
.app-requirements-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.app-requirement-card {
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:24px 26px;
    background:#fffdf8;
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:0 10px 30px rgba(27,27,24,.05);
}
.app-requirement-icon {
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(212,175,55,.14);
    border:1px solid rgba(212,175,55,.45);
    color:var(--gold);
    font-weight:800;
}
.app-requirement-card h3 {
    margin:2px 0 6px;
    color:var(--olive);
    font-family:var(--serif);
    font-size:1.22rem;
    line-height:1.3;
}
.app-requirement-card p {
    margin:0;
    color:#77776f;
    font-size:.88rem;
    line-height:1.6;
}
@media (max-width:900px) {
    .app-requirements-grid { grid-template-columns:1fr; }
}
@media (max-width:520px) {
    .app-requirement-card { padding:20px; }
    .app-requirement-card h3 { font-size:1.08rem; }
}
