/* Legal surfaces share the warm palette and blurred backdrop of language selection. */
.legal-open{overflow:hidden}
#legal-modal{width:min(920px,calc(100% - 32px));height:min(88dvh,980px);max-height:calc(100dvh - 32px);padding:0;border:1px solid #dec3a54d;border-radius:24px;background:#35271ff7;color:#fff9f4;overflow:hidden;box-shadow:0 30px 100px #0008}
#legal-modal[open]{display:flex;flex-direction:column}
#legal-modal::backdrop{background:linear-gradient(180deg,#352215ed,#51351f99 20%,#51351f99 80%,#352215ed);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}
.legal-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 28px 12px;flex-shrink:0}
.legal-close{border:0;background:transparent;color:inherit;font-size:32px;line-height:1;width:44px;height:44px;cursor:pointer}
.legal-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;padding:12px 28px 20px;border-bottom:1px solid #ffffff30;flex-shrink:0;font-size:14px}
.legal-actions a,.legal-actions button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:8px 0;text-decoration:underline;text-underline-offset:4px}
.legal-scroll{overflow-y:auto;overscroll-behavior:contain;padding:28px 40px 48px;scroll-behavior:auto}
.legal-document{font:16px/1.75 Arial,Helvetica,sans-serif;overflow-wrap:anywhere}
.legal-document h1{font-size:clamp(26px,4vw,38px);line-height:1.2;letter-spacing:-.02em;margin:24px 0}
.legal-document h2{font-size:22px;line-height:1.35;margin:38px 0 16px;padding:0}
.legal-document p{margin:0 0 20px;color:inherit}
.legal-document a,.legal-toc a,.legal-notice a,.contact-note a,.footer-legal a{ text-decoration:underline;text-underline-offset:3px }
.legal-toc{display:grid;gap:9px;font:14px/1.5 Arial,Helvetica,sans-serif;padding:0 0 20px;border-bottom:1px solid #ffffff30}
.legal-page{margin:0;background:#352215;color:#fff9f4;font:16px/1.7 Arial,Helvetica,sans-serif}
.legal-page header,.legal-page main{max-width:860px;margin:auto;padding:24px}
.legal-page a{color:inherit}
.legal-page .legal-actions{padding-left:0;padding-right:0;margin-bottom:24px}
.legal-page *{box-sizing:border-box}
.legal-page a:focus-visible,.legal-page button:focus-visible,#legal-modal :focus-visible{outline:2px solid #e3c3ff;outline-offset:4px}
.hero-copy h1{font-size:clamp(42px,4.1vw,74px)}
.hero-copy>p.legal-notice{display:block;font-size:14px;line-height:1.6;margin:18px 0 24px;max-width:530px;pointer-events:auto}
.hero-copy{top:19%}
.hero-copy>p.hero-description-desktop{margin-bottom:16px}
.hero-ai-label{position:absolute;bottom:18px;left:6%;font-size:12px;color:#fff;z-index:3;background:#352215b3;padding:6px 10px;border-radius:8px}
.ai-note,.screen-note{font-size:13px;line-height:1.5;color:#f0e7de}
.screen-note{padding:9px 7px 6px;text-align:center;position:relative;z-index:2}
.ai-label{display:block;font-size:13px;margin-bottom:10px}
.recipe-card{position:relative}
.download{height:auto;min-height:640px}
.download .contact-note{font-size:14px;max-width:620px}
.site-footer>p{max-width:900px;line-height:1.7}
.footer-legal{flex-wrap:wrap;justify-content:center;row-gap:16px}
@media(max-width:700px){
 #legal-modal{width:calc(100% - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:18px}
 .legal-modal-header{padding:12px 16px 4px}
 .legal-actions{padding:8px 18px 12px;gap:6px 18px;font-size:13px}
 .legal-scroll{padding:18px 22px 32px}
 .legal-document{font-size:16px;line-height:1.7}
 .legal-document h2{font-size:21px}
 .hero{height:auto;min-height:0;max-height:none;padding:92px 20px 60px;display:flex;flex-direction:column;align-items:center;gap:30px}
 .hero .hero-copy{position:relative;inset:auto;max-width:100%;width:100%;pointer-events:auto}
 .hero-copy h1{font-size:clamp(34px,8.8vw,46px)}
 .hero-copy .hero-category{display:block;font-size:10px;line-height:1.5}
 .hero-copy>p.hero-description-mobile{max-width:440px;font-size:16px;line-height:1.55}
 .hero-copy>p.legal-notice{font-size:14px;line-height:1.55;margin:16px auto 22px;max-width:440px}
 .hero-copy .button{position:static;transform:none;font-size:18px;padding:16px 26px;min-height:0}
 .hero .phone{position:relative;inset:auto;width:220px;flex-shrink:0;margin:10px 0 20px}
 .hero-ai-label{bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap}
 .hero-ingredients{opacity:.6}
 .hero .phone{z-index:2}
 .plan-meal-label{font-size:10px;letter-spacing:.04em}
}
@media print{
 @page{margin:18mm}
 html,body,.legal-page{background:white!important;color:black!important;overflow:visible!important}
 body.legal-page>header,.legal-actions,.legal-modal-header,.legal-toc{display:none!important}
 html.legal-open body> :not(#legal-modal){display:none!important}
 #legal-modal[open]{display:block!important;position:static!important;width:auto!important;height:auto!important;max-height:none!important;max-width:none!important;margin:0!important;padding:0!important;background:white!important;color:black!important;border:0!important;box-shadow:none!important;overflow:visible!important}
 #legal-modal::backdrop{display:none}
 .legal-scroll{overflow:visible!important;padding:0!important;height:auto!important}
 .legal-document{color:black!important;font-size:11pt;line-height:1.5}
 .legal-document h1{font-size:22pt}.legal-document h2{font-size:15pt;break-after:avoid}
 .legal-document p{orphans:3;widows:3}
 .legal-document a{color:black!important;text-decoration:underline}
}

/* Store destinations will be supplied after publication in the stores. */
.store-status>.store-placeholder{display:flex;align-items:center;gap:12px;background:#fff;color:#241b16;border:2px solid #fff;border-radius:16px;padding:18px 26px;min-width:200px;text-align:left;box-shadow:0 8px 28px #0003;opacity:1;cursor:default;text-decoration:none}
.store-status>.store-placeholder small{display:block;color:#51463f;font-size:12px;margin-top:6px}
.store-status>.store-placeholder .store-icon{width:30px;height:34px;flex-shrink:0}
.store-status>.store-placeholder>span{font-size:20px;font-weight:600}
.store-status>.store-placeholder:focus-visible{outline:3px solid #cfafff;outline-offset:5px}
@media(max-width:520px){.store-status{flex-wrap:wrap;justify-content:center;width:100%;gap:14px}.store-status>.store-placeholder{width:min(100%,300px);min-height:80px;justify-content:center}}
/* Clean legal presentation: no decorative frames or separator lines. */
#legal-modal{border:0;box-shadow:none}
.legal-actions,.legal-toc{border:0}
#legal-modal .legal-document h1:focus,
#legal-modal .legal-document h2:focus,
#legal-modal .legal-scroll:focus{outline:none}

.legal-actions-bottom{padding:20px 0 0;margin-top:16px;border:0}

/* Only the privacy document title is reduced by 20 percent. */
.legal-document[data-document="privacy"] h1{font-size:clamp(20.8px,3.2vw,30.4px)}
@media print{.legal-document[data-document="privacy"] h1{font-size:17.6pt}}

/* Subtle hero disclaimer; health link stays on its own line. */
.hero-copy>p.legal-notice{font-size:12px;line-height:1.5;opacity:.6}

/* AI label is included in the selected recipe eyebrow. */
.recipe-plate{position:relative}

/* Legal dialog floats directly over the shared blurred backdrop. */
#legal-modal{background:transparent;border:0;border-radius:0;box-shadow:none}

/* Smaller caption beneath the hero phone only. */
.hero .phone .screen-note{font-size:6.5px;opacity:.7}

/* Match the caption beneath the recipe phone to the hero phone. */
.plan-device .screen-note{font-size:6.5px;opacity:.7}

/* Quieter axis labels and illustration disclaimer below the progress chart. */
.progress-chart .chart-axis,.progress-chart>figcaption{opacity:.7}

/* Subtle, concise pantry demo caption. */
.pantry-demo .demo-note{opacity:.7;font-weight:400}

/* No focus rectangles on the website or standalone legal pages. */
*:focus,*:focus-visible{outline:none!important}
*{-webkit-tap-highlight-color:transparent}
/* Keyboard location remains visible without a surrounding frame. */
a:focus-visible,button:focus-visible{ text-decoration:underline;text-underline-offset:4px }

/* Allergy notice is separate from the main planning description. */
.plan-copy>p.allergy-notice{font-size:12px;line-height:1.5;font-weight:400;opacity:.7;margin:14px 0 0}

.hero-ai-label{opacity:.7}

.membership .membership-note{opacity:.7}

/* Fully opaque store buttons, centered as one column on mobile. */
.download .store-status{opacity:1}
@media(max-width:700px){
 .download .store-status{display:flex;flex-direction:column;align-items:stretch;justify-content:center;flex-wrap:nowrap;width:min(100%,300px);margin:16px auto 0;gap:14px}
 .download .store-status>.store-placeholder{width:100%;min-width:0;justify-content:center;background:#fff;opacity:1}
 .download{min-height:0}
}

.time-nowrap{white-space:nowrap}
