/*
 * File: assets/site.css
 * Purpose: Jane's Fresh Bites Warm Editorial Luxury layout, responsive and
 *          keyboard focus presentation for seven informational pages.
 * Related: editorial.py, assets/site.js, site.json, site.tl.json,
 *          scripts/accept_editorial_chrome.cjs,
 *          scripts/test_integrated_site_assets.py.
 * Ivory / forest / champagne; no external fonts or runtime image services.
 * All source imagery is actual Jane's food or owner-provided logo.
 */
:root{--ivory:#F6F2EA;--forest:#233F34;--champagne:#B7A185;--charcoal:#292923;--sage:#D8DDCF;--line:#d8d1c4;--muted:#615f56;--max:1250px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
figure{margin:0}
/* Two 3px rings remain visible on light, champagne and dark-green surfaces:
 * white contrasts with forest, forest contrasts with the pale surfaces.
 * Keep both rings outside the interactive box; avoid color-only state.
 */
:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #233F34}
.skip-link{position:absolute;top:-100px;left:12px;padding:12px 18px;background:#fff;z-index:1000}
.skip-link:focus{top:12px}
.example-banner{font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:8px 14px;background:#ede1ca;color:#31453a;font-weight:700}
.header{background:var(--ivory);min-height:102px;padding:12px max(24px,calc((100% - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #e8e0d4;position:relative;z-index:20}
.header .brand{width:158px;display:block;flex:0 0 auto}
.header-logo{width:158px;height:auto;aspect-ratio:5/4;object-fit:contain;background:var(--forest)}
.navigation{display:flex;align-items:center;gap:25px}
.navigation a,.header-inquiry{font-size:12px;font-weight:600;letter-spacing:.045em;white-space:nowrap}
.navigation a{color:#334d41;transition:color .2s}
.navigation a:hover,.footer a:hover{color:#9b7950}
.header-inquiry{padding:14px 17px;background:var(--forest);color:#fff;text-align:center}
.menu-button{display:none;border:1px solid var(--forest);background:transparent;color:var(--forest);padding:11px 13px;align-items:center;gap:8px}
.wide{width:min(calc(100% - 72px),var(--max));margin:0 auto}
.narrow{width:min(calc(100% - 48px),780px);margin:0 auto;text-align:center}
.kicker{font-size:11px;letter-spacing:.22em;font-weight:700;text-transform:uppercase;color:#826b4b;margin:0 0 23px}
h1,h2,h3{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;letter-spacing:-.038em;font-weight:400}
h1{font-size:clamp(52px,5.8vw,88px);line-height:1.07;margin:0 0 28px}
h2{font-size:clamp(39px,4.3vw,64px);line-height:1.12;margin:0 0 23px}
h3{font-size:clamp(25px,2.4vw,35px);line-height:1.18}
em{font-weight:400;color:#8a7355}
p{line-height:1.75}
.hero-home{padding:55px 0 84px;background:var(--ivory);overflow:hidden}
.hero-shell{width:min(calc(100% - 72px),var(--max));margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);align-items:center;gap:clamp(30px,6vw,94px)}
.hero-content{padding:44px 0}
.hero-content h1{max-width:655px;color:var(--forest)}
.hero-lead{color:#5a5e53;font-size:17px;line-height:1.82;max-width:500px;margin:0}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:29px;margin-top:39px}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:19px;background:var(--forest);color:#fff;padding:16px 24px;font-size:12px;font-weight:700;letter-spacing:.07em}
.button:hover{background:#385f4b}
.button span,.text-link span{font-size:16px}
.text-link{display:inline-flex;align-items:center;gap:14px;color:var(--forest);padding:9px 0;font-size:12px;font-weight:700;border-bottom:1px solid #b2a084}
.text-link:hover{color:#9a764c}
.hero-note{color:#776f61;font-size:12px;margin-top:55px;display:flex;align-items:center;gap:12px}
.fine-line{width:32px;height:1px;background:var(--champagne)}
.hero-visual{position:relative;background:#e5dfd4;min-width:0}
.hero-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 55%}
.hero-visual figcaption,.feature-photo-wrap figcaption,.process figcaption{font-size:11px;letter-spacing:.06em;color:#696355;padding-top:12px}
.hero-visual:before{content:"";position:absolute;top:-17px;right:-16px;bottom:32px;width:38%;border-top:1px solid var(--champagne);border-right:1px solid var(--champagne);pointer-events:none}
.philosophy{padding:117px 24px 122px;background:#f0ece3}
.philosophy h2{color:var(--forest);font-size:clamp(41px,5vw,70px)}
.philosophy p:not(.kicker){font-size:16px;max-width:545px;margin:auto;color:#5b6258}
.collection{width:min(calc(100% - 72px),var(--max));margin:0 auto;padding:120px 0 130px}
.section-heading{text-align:center;max-width:790px;margin:0 auto 53px}
.section-heading h2{color:var(--forest)}
.section-heading p:last-child:not(.kicker){max-width:610px;color:#6c6a60;margin:auto}
.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.collection-card{min-width:0;background:#ede8df}
.collection-card:nth-child(2){background:#e4e9df}
.collection-card:nth-child(3){background:#eee6d6}
.collection-card:nth-child(4){background:#e9e6de}
.card-media{aspect-ratio:4/4.4;overflow:hidden;background:#e7ded0}
.card-image{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.collection-card:hover .card-image{transform:scale(1.025)}
.card-placeholder{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;color:#7b6d5b;background:radial-gradient(circle at center,#fcf9f2,transparent 67%)}
.placeholder-curve{font:italic 90px Georgia,serif;color:#b9ae9c;line-height:1}
.card-placeholder span:last-child{font-size:9px;letter-spacing:.16em;text-align:center}
.card-copy{padding:27px 23px 33px}
.collection-kicker{display:block;font-size:10px;letter-spacing:.16em;color:#6d624e;font-weight:700}
.collection-card h3{font-size:clamp(23px,2.5vw,32px);line-height:1.15;color:var(--forest);margin:14px 0}
.collection-card p{font-size:13px;line-height:1.72;color:#5f6257;margin:0}
.feature{background:var(--forest);color:#f7f1e7;padding:100px 0}
.feature-grid{width:min(calc(100% - 72px),var(--max));margin:auto;display:grid;grid-template-columns:.9fr 1fr;gap:clamp(35px,7vw,105px);align-items:center}
.feature-photo-wrap{max-width:480px}
.feature-photo{width:100%;aspect-ratio:4/5;object-fit:cover}
.feature-photo-wrap figcaption{color:#bac8bb}
.feature-copy{max-width:565px}
.feature-copy .kicker,.final-cta .kicker{color:#d8c3a2}
.feature-copy h2{color:var(--ivory)}
.feature-copy em{color:#d3bb9b}
.feature-copy p:not(.kicker){color:#d0ddd1;max-width:460px}
.feature-copy .text-link{color:var(--ivory);border-color:#c0ae8d;margin-top:20px}
.process{padding:125px 0;background:#f6f2ea}
.process-grid{display:grid;grid-template-columns:1.15fr .8fr .8fr;gap:21px;align-items:start}
.process-grid figure:nth-child(2){padding-top:76px}
.process-grid figure:nth-child(3){padding-top:128px}
.process-photo{height:auto;width:100%;aspect-ratio:3/4;object-fit:cover}
.gallery-section{background:#e9e7df;padding:115px 0 123px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.gallery-image{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.section-tail{text-align:center;margin-top:40px}
.order-steps{padding:114px 0 120px}
.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px;margin-top:65px}
.steps-grid>div{border-top:1px solid var(--champagne);padding-top:25px}
.steps-grid span{font-family:Georgia,serif;color:#9b8160}
.steps-grid h3{margin:17px 0 13px;color:var(--forest)}
.steps-grid p{font-size:14px;color:#66655a}
.final-cta{background:var(--forest);color:var(--ivory);text-align:center;padding:105px 20px 122px}
.final-cta h2{color:var(--ivory)}
.final-cta p:not(.kicker){color:#d9e0d7;max-width:550px;margin:0 auto 30px}
.final-cta .button{background:var(--ivory);color:var(--forest)}
.interior-hero{padding:110px 0 120px;background:#eee9de}
.interior-hero .wide{max-width:920px;text-align:center}
.interior-hero h1{color:var(--forest);font-size:clamp(47px,5.4vw,78px)}
.interior-hero .hero-lead{margin:auto;max-width:690px}
.interior .collection{padding-top:100px;padding-bottom:75px}
.interior .collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.content{width:min(calc(100% - 72px),920px);margin:0 auto;padding:66px 0 105px}
.content-section{padding:33px 0;border-top:1px solid var(--line)}
.content-section h2{font-size:clamp(26px,3vw,40px);color:var(--forest)}
.content-section p{font-size:16px;color:#66655c}
.inquiry-pending{padding:35px 42px 45px;background:#e8e9de;margin-bottom:100px;max-width:920px}
.inquiry-pending h2{font-size:34px;color:var(--forest)}
.inquiry-pending p{color:#615f56}
.gallery-page{padding:90px 0 120px}
.gallery-page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.image-note{font-size:13px;color:#6c695d;padding-top:20px}
.policy-content p{max-width:780px;color:#636258}
.footer{background:#172f27;color:#dce1d7;padding:65px 24px 36px}
.footer-shell{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:35px}
.footer-brand{max-width:340px}
.footer-logo{width:155px;aspect-ratio:5/4;object-fit:contain}
.footer-brand p{font-size:13px;color:#bbcabc}
.footer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:17px;align-content:start}
.footer-nav a{font-size:13px}
.footer-end{grid-column:1/-1;border-top:1px solid #506356;display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:25px;font-size:12px;color:#adbeaf}
.footer-end p{margin:0;max-width:460px}
@media(max-width:1100px){
 .header{padding:13px 28px;gap:14px}.navigation{gap:14px}.navigation a{font-size:11px}
 .header .brand{width:126px}.header-logo{width:126px}
 .collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .card-media{aspect-ratio:4/3.4}
}
@media(max-width:1180px){
 .header{min-height:80px;padding:8px 21px;gap:12px}
 .header .brand{width:108px}.header-logo{width:108px}
 .menu-button{display:flex;margin-left:auto;min-height:44px}
 .navigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ivory);padding:15px 25px 22px;box-shadow:0 14px 30px #12302724;flex-direction:column;gap:0;align-items:stretch}
 .navigation.is-open{display:flex}.navigation a{padding:13px 6px;font-size:13px;min-height:44px}
 .header-inquiry{display:none}
 .hero-shell,.feature-grid{grid-template-columns:1fr}
 .hero-home{padding:25px 0 75px}
 .hero-shell,.feature-grid,.wide,.collection{width:min(calc(100% - 42px),var(--max))}
 .hero-content{padding:35px 0 5px}.hero-note{margin-top:28px}
 .hero-visual{margin:15px 10px 0 0}.hero-photo{max-height:720px;object-position:50% 50%}
 .hero-visual:before{right:-12px;top:-12px}
 .philosophy,.collection,.process,.gallery-section,.order-steps{padding-top:80px;padding-bottom:90px}
 .feature{padding:75px 0}
 .feature-photo-wrap{max-width:100%}.feature-copy{max-width:100%}
 .interior-hero{padding:85px 0 90px}
 .gallery-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .steps-grid{gap:20px}
 .process-grid figure:nth-child(2),.process-grid figure:nth-child(3){padding-top:0}
}
@media(max-width:600px){
 .hero-shell,.feature-grid,.wide,.collection,.content{width:min(calc(100% - 36px),var(--max))}
 h1{font-size:clamp(46px,12vw,68px)}
 h2{font-size:clamp(36px,9vw,50px)}
 .hero-content{padding-top:30px}
 .hero-actions{gap:14px}
 .hero-actions .button{width:100%;justify-content:space-between}
 .hero-actions .text-link{margin:0}
 .hero-photo{aspect-ratio:4/5}
 .philosophy{padding:85px 18px}
 .section-heading{margin-bottom:37px}
 .collection-grid,.interior .collection-grid{grid-template-columns:1fr}
 .card-media{aspect-ratio:4/3.2}
 .card-placeholder{min-height:230px}
 .process-grid{grid-template-columns:1fr 1fr;gap:14px}
 .process-primary{grid-column:1/-1}
 .process-photo{aspect-ratio:3/4}
 .gallery-grid,.gallery-page-grid{grid-template-columns:1fr 1fr;gap:12px}
 .gallery-grid img:first-child{grid-column:1/-1;aspect-ratio:4/3}
 .steps-grid{grid-template-columns:1fr;gap:30px;margin-top:40px}
 .interior .collection{padding-top:66px}
 .content{padding:45px 0 80px}
 .inquiry-pending{padding:24px 20px 30px;margin-bottom:60px}
 .footer-shell{grid-template-columns:1fr}
 .footer-end{display:block}
 .footer-end p+ p{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Prepared form UX. There is no form in the default NO-GO preview. */
.inquiry-section{margin-top:75px;margin-bottom:115px;display:grid;grid-template-columns:.8fr 1.25fr;gap:75px;align-items:start}
.inquiry-intro h2{font-size:clamp(35px,4vw,57px);color:var(--forest)}
.inquiry-intro p:not(.kicker){color:#69665a;font-size:15px}
.inquiry-form{background:#eeebe3;padding:38px 36px 34px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}
.form-grid label{display:flex;flex-direction:column;gap:8px;color:var(--forest);font-size:13px;font-weight:600}
.form-grid input,.form-grid textarea{width:100%;border:1px solid #bdb8ab;border-radius:0;padding:13px 12px;background:#f8f5ec;color:var(--charcoal);font:400 16px/1.45 system-ui,sans-serif;min-height:48px}
.form-grid textarea{resize:vertical}
.form-grid input:focus,.form-grid textarea:focus{outline:2px solid #6b856d;outline-offset:2px}
.form-grid .form-full{grid-column:1/-1}
.consent-label{display:flex;align-items:start;gap:13px;font-size:13px;line-height:1.65;color:#4c5148;margin:25px 0}
.consent-label input{margin-top:4px;width:18px;height:18px;flex:none;accent-color:var(--forest)}
.consent-label a{text-decoration:underline;text-underline-offset:3px}
.bot-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-bottom{display:flex;align-items:start;gap:22px;flex-direction:column;margin-top:23px}
.form-bottom button:disabled{opacity:.6;cursor:wait}
.form-message{font-size:13px;color:#415748;margin:0;min-height:1.5em}
@media(max-width:900px){.inquiry-section{grid-template-columns:1fr;gap:25px}}
@media(max-width:600px){.inquiry-section{margin-top:20px;margin-bottom:85px}.inquiry-form{padding:27px 20px}.form-grid{grid-template-columns:1fr}.form-grid .form-full{grid-column:1}.form-bottom .button{width:100%}}

/* Bilingual Jane storefront: Tagalog default, English at /en/.
 * Delivery scope appears throughout, never implying national fulfillment. */
.local-courier-banner{background:#213d32;color:#fff;text-align:center;padding:11px 20px;font-size:12px;line-height:1.55;letter-spacing:.015em;font-weight:600}
.header-controls{display:flex;align-items:center;gap:12px}
/* Six equally prominent language links live in a dedicated row below the header.
 * The mobile grid keeps all choices visible without squeezing site navigation. */
.language-switch{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:9px 12px;background:var(--ivory);border-bottom:1px solid #e8e0d4}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #b8b4aa;font-size:12px;line-height:1.3;color:var(--forest);font-weight:700;white-space:nowrap}
.language-switch a[aria-current="page"]{background:var(--forest);color:#fff;border-color:var(--forest)}
.language-switch a:not([aria-current]):hover{background:#e4e3d9}
@media(max-width:600px){
 .language-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:9px 12px}
 .language-switch a{min-width:0;padding:9px 4px;font-size:12px}
}
.delivery-notice{background:#e7ecdf;border-left:4px solid var(--forest);padding:28px 30px;margin-top:28px;margin-bottom:12px}
.delivery-notice h2{font-family:inherit;font-size:20px;font-weight:700;letter-spacing:0;line-height:1.4;margin:0 0 7px}
.delivery-notice p{font-size:14px;line-height:1.7;margin:0;max-width:960px}
@media(max-width:1180px){.header-controls .header-inquiry{display:none}.header{gap:14px}.navigation{gap:14px}}
@media(max-width:1180px){.header-controls{margin-left:auto}.menu-button{margin-left:0}.delivery-notice{margin-top:20px}}
@media(max-width:370px){.header{padding:8px 12px;gap:6px}.header .brand,.header-logo{width:83px}.menu-button{padding:9px 7px;gap:3px}.local-courier-banner{padding:9px 12px;font-size:11px}.delivery-notice{padding:21px 18px}.delivery-notice h2{font-size:18px}}

/* Keep the logo and mobile menu independent of the full-width language row. */
@media(max-width:600px){
 .header{padding:8px 12px;gap:6px}
 .header .brand,.header-logo{width:92px}
 .menu-button{padding:9px 7px;gap:3px}
}

/* File: assets/site.css — Jane WhatsApp extension.
 * Related: site.json, editorial.py and site.tl.json.
 * WhatsApp is a user-triggered external HTTPS link; no embedded iframe/SDK.
 */
.whatsapp-action,.hero-whatsapp,.card-whatsapp,.whatsapp-float{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#196b48;color:#fff;font-weight:700;border:1px solid transparent;text-align:center;line-height:1.35;text-decoration:none}
.whatsapp-action:hover,.hero-whatsapp:hover,.card-whatsapp:hover,.whatsapp-float:hover{background:#114b32;color:#fff}
.hero-whatsapp{font-size:12px;min-height:52px;padding:12px 18px}
.card-whatsapp{font-size:12px;min-height:44px;padding:12px 14px;margin-top:21px}
.whatsapp-panel{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:38px;margin-bottom:72px;padding:32px 35px;background:#e7ecdf;border:1px solid #d2dbcf}
.whatsapp-panel h2{font:600 25px/1.3 ui-sans-serif,system-ui,sans-serif;letter-spacing:-.02em;color:var(--forest);margin:0 0 8px}
.whatsapp-panel p{font-size:14px;color:#4a5c4c;margin:0 0 8px;max-width:770px}
.whatsapp-panel small{font-weight:700;color:var(--forest)}
.whatsapp-panel .whatsapp-action{font-size:13px;min-height:50px;padding:14px 20px;flex:none}
.whats-privacy{padding-top:0}
.whatsapp-float{position:fixed;right:16px;bottom:16px;z-index:25;box-shadow:0 4px 18px #16281a52;padding:13px 17px;border-radius:30px;min-height:48px;font-size:13px;max-width:calc(100vw - 32px)}
@media(max-width:800px){.whatsapp-panel{margin-top:25px;margin-bottom:50px;padding:25px 22px}.whatsapp-float{right:12px;bottom:12px;padding:12px 14px}}
@media(max-width:600px){.whatsapp-panel{flex-direction:column;align-items:stretch;gap:18px}.whatsapp-panel .whatsapp-action{width:100%}.hero-whatsapp{min-height:48px}.whatsapp-float{font-size:12px;padding:11px 12px;min-height:44px}}

/* File: assets/site.css – local-only preorder request, not a checkout.
 * Related: editorial.py, assets/order.js, site.json, site.tl.json.
 */
.order-builder{margin-top:28px;margin-bottom:80px;padding:35px;background:#f3f1e9;border:1px solid #deded6}
.order-builder h2{font-size:clamp(24px,3.5vw,38px);line-height:1.25;color:var(--forest);margin:0 0 14px}
.order-builder h3{font-size:20px;margin:27px 0 12px;color:var(--forest)}
.order-builder>p{line-height:1.7}
.order-product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.order-product{display:flex;justify-content:space-between;align-items:center;gap:12px;background:white;border:1px solid #d7d9d0;padding:16px;min-width:0}
.order-product label{min-width:0;font-size:15px;font-weight:700;line-height:1.4}
.order-product label small{display:block;font-size:11px;font-weight:500;opacity:.7;margin-top:4px}
.order-product input{font:600 16px/1.4 system-ui,sans-serif;width:66px;min-width:66px;padding:9px 8px;text-align:center;color:#233f34;border:1px solid #9aaca0;background:#fff}
.order-provisional{font-size:13px;line-height:1.55}
.order-preview{font:500 14px/1.6 ui-sans-serif,system-ui,sans-serif;background:#fff;border:1px solid #d7d9d0;padding:20px;white-space:pre-wrap;overflow-wrap:anywhere;min-height:84px}
.order-actions{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-top:18px}
.order-actions a,.order-actions button{min-height:49px;padding:12px 19px;font-weight:700;font-size:13px}
.order-actions [aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.order-copy{background:#fff;border:1px solid #233f34;color:#233f34}
.order-state{min-height:21px;font-size:13px}
.order-map{background:#e7ecdf;padding:18px 24px;border-left:4px solid #233f34;margin:25px 0}
.order-map p,.order-privacy{font-size:13px;line-height:1.7;margin:0 0 9px}
.order-map a{display:inline-block;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.order-privacy{margin:25px 0 0}
.order-crosslink{margin:24px auto;padding:26px;background:#e7ecdf}
.order-crosslink h2{font-size:23px;margin:0 0 18px}
@media(max-width:720px){.order-product-list{grid-template-columns:1fr}.order-builder{padding:23px 19px;margin-bottom:55px}.order-actions{flex-direction:column}.order-actions a,.order-actions button{width:100%}}

/* Existing first-party photos on all selectable order cards. */
.order-product .order-photo{width:70px;height:70px;object-fit:cover;flex:none}
@media(max-width:390px){.order-product{gap:8px;padding:10px}.order-product .order-photo{width:54px;height:60px}.order-product input{width:56px;min-width:56px}}

.menu-price{display:block;color:#233f34;font-size:19px;margin-top:14px;font-weight:800}
.order-product .order-no-photo{width:70px;height:70px;background:#e7ecdf;display:grid;place-items:center;font-weight:800;font-size:26px;flex:none}
.order-map label{display:block;font-size:13px;font-weight:700;margin:14px 0 8px}
.order-map input{width:100%;min-width:0;padding:12px 14px;background:#fff;border:1px solid #9aaca0;font:14px/1.4 system-ui,sans-serif}
.order-map-state{font-size:12px;line-height:1.6;margin-top:9px;overflow-wrap:anywhere}
@media(max-width:600px){.order-product .order-no-photo{width:60px;height:60px}.order-product label{font-size:13px}}


/* Eight pages plus six locales: compact widescreen spacing keeps all routes
 * accessible without forcing the mobile navigation above 1180px. */
@media(min-width:1181px) and (max-width:1600px){
 .header{gap:10px;padding-left:18px;padding-right:18px}
 .header .brand,.header-logo{width:118px}
 .navigation{gap:10px}
 .navigation a{font-size:11px;letter-spacing:0}
 .header-controls{gap:6px}
}

/* Prominent owner-approved unit prices and always-visible PHP item subtotal.
 * Related: editorial.py, assets/order.js, site.json pricePHP. */
.order-product .order-unit-price{
 display:block;font-size:19px;line-height:1.35;margin-top:9px;
 color:var(--forest);font-weight:800;font-variant-numeric:tabular-nums
}
.order-product label small{margin-top:4px}
.order-running-total{
 display:flex;align-items:center;justify-content:space-between;gap:18px;
 padding:20px 22px;margin:15px 0 12px;background:#e7ecdf;
 border-left:4px solid var(--forest);color:var(--forest)
}
.order-running-total span{font-size:14px;font-weight:700}
.order-running-total output{
 font-size:clamp(23px,4vw,34px);font-weight:800;
 font-variant-numeric:tabular-nums;white-space:nowrap
}
@media(max-width:390px){
 .order-product .order-unit-price{font-size:17px}
 .order-running-total{padding:16px 13px;gap:8px}
 .order-running-total span{font-size:12px}
}

/* File: assets/site.css - Jane delivery address selection.
 * Related: editorial.py, assets/order.js and site.json orderRequest.
 * Keep the address controls visible and touch-friendly at phone widths. */
.order-map h3{margin:0 0 10px;color:var(--forest)}
.order-map input[type="text"]{width:100%;min-width:0;padding:12px 14px;background:#fff;border:1px solid #9aaca0;font:14px/1.5 system-ui,sans-serif}
.order-map-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0 6px}
.order-map-tools button{min-height:44px;padding:10px 16px;background:var(--forest);color:#fff;border:1px solid var(--forest);font-size:13px;font-weight:700}
.order-map-tools button:disabled{opacity:.55;cursor:wait}
.order-map-tools a{min-height:44px;display:inline-flex;align-items:center;padding:10px 8px;font-size:13px}
.order-map .order-save-address{display:flex;align-items:center;gap:10px;line-height:1.55;margin-top:18px;font-weight:500}
.order-save-address input{min-width:20px;min-height:20px;accent-color:var(--forest)}
.order-clear-address{min-height:44px;background:transparent;color:var(--forest);border:1px solid var(--forest);padding:10px 14px;font-size:12px;margin-top:13px}
@media(max-width:600px){
 .order-map{padding:18px 15px}
 .order-map-tools{align-items:stretch;flex-direction:column}
 .order-map-tools button,.order-map-tools a{width:100%;justify-content:center}
}

/* Google address search launches a separate nonce-protected same-origin popup.
 * This does not load Google JavaScript into the static order page. */
#jane-places-search{background:var(--forest);color:#fff}


/* File: assets/site.css — Jane order CTA, chat handoffs and consent layout.
 * Related: editorial.py, assets/order.js, assets/public-ga4.css.
 * Primary hero action remains first, keyboard-accessible and >44px.
 * No external scripts, inline styles or new routing. */
.header-order{display:inline-flex;min-height:48px;align-items:center;padding:12px 20px;
 background:#196b48;border:2px solid #196b48;color:white;font-size:13px;
 font-weight:800;letter-spacing:.025em;white-space:nowrap}
.header-order:hover{background:#114b32;color:white}
.hero-order-request{min-height:62px;padding:18px 28px;background:#196b48;
 font-size:15px;letter-spacing:.03em;box-shadow:0 5px 18px #113b242e}
.hero-order-request:hover{background:#114b32}
.order-review{margin:26px 0 0}
.order-actions .whatsapp-action{flex:1;min-height:56px;background:#196b48;font-size:15px}
.order-actions [aria-disabled="true"]{opacity:.85;cursor:pointer;background:#385e4c}
.order-share{background:#e7ecdf;color:#233f34;border:2px solid #233f34}
.order-share-note{margin:12px 0 0;font-size:12px;line-height:1.65;color:#526556}
.privacy-preferences{min-height:48px;padding:12px 22px;border:2px solid #233f34;
 background:#fff;color:#233f34;font-weight:700;border-radius:5px}
@media(max-width:1180px){.header-order{margin-left:auto}.menu-button{margin-left:0}}
@media(max-width:600px){
 .header-order{display:none} /* Hero Order Request remains prominent on mobile. */
 .hero-order-request{min-height:58px;font-size:15px}
 .hero-actions .hero-whatsapp{width:100%;min-height:48px}
 .order-actions .whatsapp-action{width:100%;min-height:60px;font-size:15px}
 body[data-page="order"] .whatsapp-float{display:none}
 /* Initial analytics consent must never conceal the chat control. */
 body:has(.public-ga4-panel:not([hidden])) .whatsapp-float{display:none}
}


/* File: assets/site.css — owner-provided, outbound direct Messenger CTA.
 * Related: editorial.py and docs/JANES-MESSENGER-DIRECT-20261026.md.
 * No Meta script/embed, no new fixed button and no extra mobile overlay. */
.messenger-action,.hero-messenger{
 display:inline-flex;align-items:center;justify-content:center;gap:9px;
 background:#1461b9;color:#fff;text-align:center;text-decoration:none;
 border:2px solid #1461b9;font:700 13px/1.35 ui-sans-serif,system-ui,sans-serif;
 padding:13px 17px;min-height:48px
}
.messenger-action:hover,.hero-messenger:hover{background:#084587;color:#fff}
.whatsapp-panel-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex:none}
.whatsapp-panel-actions .messenger-action{min-height:50px}
.hero-messenger{font-size:12px;min-height:52px}
.order-actions .order-messenger{min-height:54px}
.footer-nav .footer-messenger{font-weight:700;color:#1461b9}
@media(max-width:750px){
 .whatsapp-panel{flex-direction:column;align-items:stretch}
 .whatsapp-panel-actions{flex-direction:column;align-items:stretch;width:100%}
 .whatsapp-panel-actions .messenger-action,.whatsapp-panel-actions .whatsapp-action{width:100%}
}
@media(max-width:600px){
 .hero-actions .hero-messenger{width:100%;min-height:48px}
 .order-actions .order-messenger{width:100%;min-height:56px}
}


/* File: assets/site.css — verified map-review presentation and opt-in label.
 * Related: editorial.py, assets/order.js and Jane GPS release regressions.
 * Global .order-map input width must NOT stretch small checkboxes across rows.
 * Review is shown only after an explicit geolocation permission grant. */
.order-map .order-save-address,
.order-map .jane-gps-match{display:flex;align-items:flex-start;justify-content:flex-start;
 flex-wrap:nowrap;gap:12px;margin:15px 0;max-width:100%;width:100%;
 padding:14px 15px;border:1px solid #bdcbbb;border-radius:6px;
 background:#f9fbf7;line-height:1.5;font-size:13px;font-weight:500;text-align:left}
.order-map .order-save-address input[type="checkbox"],
.order-map .jane-gps-match input[type="checkbox"]{width:20px;min-width:20px;
 max-width:20px;height:20px;min-height:20px;flex:0 0 20px;
 margin:1px 0 0;padding:0;accent-color:#196b48}
.order-map .order-save-address span,.order-map .jane-gps-match span{
 min-width:0;flex:1;overflow-wrap:break-word}
.jane-gps-review{padding:16px;margin:17px 0;border:2px solid #bb9d56;
 background:#fffdf5;border-radius:7px}
.jane-gps-review[hidden]{display:none}
.jane-gps-review h4{margin:0 0 9px;color:var(--forest);font-size:16px}
.jane-gps-review p{margin:8px 0;overflow-wrap:anywhere}
.jane-gps-review #jane-gps-map-link{display:inline-flex;align-items:center;
 min-height:44px;font-weight:750;overflow-wrap:anywhere}
#jane-gps-accept{min-height:48px;width:100%;padding:12px 14px;
 border:1px solid var(--forest);background:var(--forest);
 color:#fff;font-size:13px;font-weight:750;cursor:pointer}
#jane-gps-accept:disabled{opacity:.5;cursor:not-allowed}
.order-review-heading{display:flex;align-items:center;justify-content:space-between;
 gap:15px;flex-wrap:wrap}
.order-review-heading h3{margin:0}
.order-review-copy{min-height:44px;background:#fff;color:var(--forest);
 border:2px solid var(--forest);border-radius:4px;padding:10px 17px;
 font-size:13px;font-weight:750}
@media(max-width:390px){.order-map .order-save-address,
 .order-map .jane-gps-match{padding:12px 10px}
 .order-review-heading{align-items:flex-start}}


/* File: assets/site.css — required customer name field in checkout.
 * Related: editorial.py, assets/order.js and existing consented localStorage.
 * Maintain touch sizing and readable labels at 320px without new overlays. */
.order-customer{margin:22px 0 28px;padding:18px 20px;background:#f0f4ed;
 border-left:4px solid var(--forest);max-width:100%}
.order-customer label{display:block;font-weight:750;font-size:14px;
 margin:0 0 10px;color:var(--forest)}
.order-customer input{display:block;box-sizing:border-box;width:100%;
 min-height:50px;border:1px solid #9aaca0;padding:12px 14px;
 font:16px/1.4 system-ui,sans-serif;background:#fff;color:#233f34}
.order-customer input:focus-visible{outline:3px solid #196b48;outline-offset:2px}
@media(max-width:390px){.order-customer{padding:16px 12px}}


/* File: assets/site.css — finish the existing eight-page editorial sections.
 * Related: editorial.py, site.json and the five text-only locale overlays.
 * Layout stays static, keyboard friendly, responsive and CSP compliant.
 * Never convert approved product/catalog copy into dynamic HTML. */
.editorial-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:18px;margin-top:32px;margin-bottom:56px}
.editorial-detail{min-width:0;border:1px solid #d4dbd0;
 border-left:4px solid #246e4c;background:#f5f7f0;
 padding:24px 26px}
.editorial-detail h2{font:600 clamp(18px,2vw,23px)/1.35 ui-sans-serif,system-ui,sans-serif;
 letter-spacing:-.018em;color:var(--forest);margin:0 0 12px}
.editorial-detail p{font-size:14px;line-height:1.7;color:#334b40;
 margin:0;overflow-wrap:anywhere}
.homepage-details{margin-top:38px;margin-bottom:60px}
.privacy-details{margin-top:26px}
.order-details{margin-top:35px}
.gallery-next-steps{display:flex;flex-wrap:wrap;align-items:center;gap:14px;
 margin-top:0;margin-bottom:65px}
.gallery-next-steps .button{min-height:48px}
@media(max-width:740px){
 .editorial-details{grid-template-columns:1fr;gap:12px;
   margin-top:22px;margin-bottom:40px}
 .editorial-detail{padding:20px 17px}
 .gallery-next-steps .button{flex:1;min-width:140px;text-align:center}
}

/* File: assets/site.css — narrow-screen translated headings.
 * Related: editorial.py, site.ceb.json and Chrome 400% reflow acceptance.
 * Break a long localized heading only when its word cannot fit the available
 * inline size. Avoid visually hiding or clipping meaningful privacy text.
 */
.interior-hero h1{overflow-wrap:anywhere}


/* File: assets/site.css — complete Privacy Notice reading layout.
 * Purpose: Keep each full paragraph legible and sequential, not an
 * abbreviated two-column product-card grid. No horizontal clipping.
 * Related: site.json, five locale overlays and editorial.py privacy route. */
.privacy-details{grid-template-columns:minmax(0,1fr);max-width:850px}
.privacy-details .editorial-detail{overflow-wrap:anywhere}
