:root {
    --green:#245c3b;
    --green-dark:#17442b;
    --green-soft:#eaf4ed;
    --cream:#f7f4ed;
    --ink:#1f2d25;
    --muted:#607067;
    --line:#d9e0da;
    --danger:#9f2018;
    --warning:#9a5a00;
    --white:#fff;
}

* { box-sizing:border-box; }
body { margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.45; }
button,input,select,textarea { font:inherit; }

.public-header { position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(25,55,37,.07); }
.public-header-inner { max-width:1440px;margin:auto;padding:10px 22px;display:flex;align-items:center;gap:12px; }
.public-header-inner img { object-fit:contain; }
.public-header-inner strong { display:block;font-size:1.15rem;color:var(--green-dark); }
.public-header-inner span { display:block;color:var(--muted);font-size:.82rem; }

.public-main { max-width:1440px;margin:0 auto;padding:24px 22px 50px; }
.public-intro { display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:20px; }
.public-intro h1 { margin:3px 0 4px;font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.1;color:var(--green-dark); }
.public-intro p { margin:0;color:var(--muted); }
.eyebrow { color:var(--green);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em; }
.public-notice { max-width:390px;padding:12px 15px;border:1px solid #d3b46c;background:#fff7da;border-radius:6px; }
.public-notice strong,.public-notice span { display:block; }
.public-notice span { margin-top:3px;font-size:.84rem;color:#6d5319; }

.public-message { max-width:860px;margin:20px auto;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 18px rgba(28,58,40,.08); }
.public-message h1 { margin:0 0 8px;color:var(--green-dark); }
.public-message p:last-child,.public-message ul:last-child { margin-bottom:0; }
.public-message.success { border-left:6px solid var(--green); }
.public-message.error { border-left:6px solid var(--danger);background:#fff8f7; }

.public-order-layout { display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:20px;align-items:start; }
.public-catalog-column { min-width:0; }
.public-controls { position:sticky;top:69px;z-index:35;display:grid;grid-template-columns:2fr 1fr;gap:10px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 3px 12px rgba(28,58,40,.06); }
.public-controls label,.checkout-card>label { display:block;font-size:.78rem;font-weight:700;color:var(--muted); }
.public-controls label span { display:block;margin-bottom:4px; }
input,select,textarea { width:100%;border:1px solid #b7c4bb;border-radius:5px;background:#fff;color:var(--ink);padding:9px 10px; }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(36,92,59,.15);border-color:var(--green); }

.public-catalog { margin-top:12px;display:block; }
.catalog-group { margin-bottom:18px; }
.catalog-group[hidden],.catalog-group-header[hidden] { display:none!important; }
.catalog-group-header { display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:9px 12px;border:1px solid #bdcec1;border-bottom:0;border-radius:7px 7px 0 0;background:var(--green-soft); }
.catalog-group-header span { display:block;color:var(--muted);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.055em; }
.catalog-group-header h2 { margin:1px 0 0;color:var(--green-dark);font-size:1.05rem; }
.catalog-group-header>strong { color:var(--muted);font-size:.72rem;white-space:nowrap; }
.catalog-group-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.catalog-group-header:not([hidden]) + .catalog-group-grid { padding-top:10px; }
.product-card { position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:125px;padding:13px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 2px 8px rgba(28,58,40,.045); }
.product-card[hidden] { display:none!important; }
.product-card.is-eol { border:2px solid #cf8c24;background:#fffbf2; }
.product-number { color:var(--muted);font-size:.7rem;font-family:Consolas,monospace; }
.product-card h2 { margin:3px 0 5px;font-size:1rem;line-height:1.25; }
.product-heading { display:flex;align-items:flex-start;gap:8px; }
.product-heading h2 { flex:1;min-width:0; }
.product-info { position:relative;flex:0 0 auto;margin-top:1px; }
.product-info summary { display:grid;place-items:center;width:25px;height:25px;border:1px solid #8eaa96;border-radius:50%;background:var(--green-soft);color:var(--green-dark);font-family:Georgia,serif;font-size:.95rem;font-weight:800;font-style:italic;line-height:1;cursor:pointer;list-style:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent; }
.product-info summary::-webkit-details-marker { display:none; }
.product-info[open] summary { background:var(--green);border-color:var(--green);color:#fff; }
.product-info-popover { position:absolute;z-index:80;top:32px;right:0;width:min(360px,calc(100vw - 52px));max-height:420px;overflow:auto;padding:13px 14px;border:1px solid #9eb0a3;border-radius:7px;background:#fff;box-shadow:0 12px 30px rgba(25,55,37,.22); }
.product-info-title { display:block;margin-bottom:8px;color:var(--green-dark);font-size:.88rem; }
.product-info dl { margin:0; }
.product-info dl>div { display:grid;grid-template-columns:115px minmax(0,1fr);gap:9px;padding:6px 0;border-top:1px solid #edf0ed; }
.product-info dt { color:var(--muted);font-size:.7rem;font-weight:700; }
.product-info dd { margin:0;color:var(--ink);font-size:.76rem;line-height:1.4;overflow-wrap:anywhere; }
.product-card.is-info-open { z-index:60; }
.product-meta { display:flex;gap:5px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:.72rem; }
.product-meta strong { padding:2px 5px;border-radius:3px;background:#fff0cc;color:#8a5200;text-transform:uppercase;font-size:.62rem;letter-spacing:.035em; }
.product-price { margin-top:8px;color:var(--green-dark);font-size:.88rem;font-weight:800; }
.product-price small { margin-left:5px;color:var(--muted);font-size:.63rem;font-weight:400; }
.product-linked { margin-top:8px;padding:7px 8px;border-left:3px solid #d3b46c;background:#fff9e8;color:var(--muted);font-size:.68rem; }
.product-linked>span { display:block;margin-bottom:3px;font-weight:700; }
.product-linked>div { display:flex;justify-content:space-between;gap:8px; }
.product-linked strong { color:#694e10;font-weight:700; }
.product-linked div span { white-space:nowrap;font-variant-numeric:tabular-nums; }
.quantity-control { display:grid;grid-template-columns:30px 64px 30px;align-items:center; }
.quantity-control input { height:34px;padding:4px;text-align:center;border-radius:0; }
.quantity-control button { height:34px;border:1px solid #9eb0a3;background:var(--green-soft);color:var(--green-dark);font-size:1.15rem;font-weight:800;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent; }
.quantity-control button:first-child { border-radius:5px 0 0 5px;border-right:0; }
.quantity-control button:last-child { border-radius:0 5px 5px 0;border-left:0; }
.quantity-control button:hover { background:#d7eadc; }
.catalog-empty { grid-column:1/-1;padding:30px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #b7c4bb;border-radius:7px; }

.public-checkout { position:sticky;top:69px;display:grid;gap:11px; }
.checkout-card { padding:15px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 3px 12px rgba(28,58,40,.06); }
.checkout-card h2 { margin:0 0 12px;font-size:1rem;color:var(--green-dark); }
.checkout-card>label { margin-top:10px; }
.checkout-card>label input,.checkout-card>label select,.checkout-card>label textarea { margin-top:4px;font-weight:400;color:var(--ink); }
.cart-items { max-height:190px;overflow:auto;font-size:.82rem; }
.cart-items p { margin:0;color:var(--muted); }
.cart-line { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:6px 0;border-bottom:1px solid #edf0ed; }
.cart-line span { color:var(--muted);font-size:.74rem; }
.cart-line strong { font-size:.8rem; }
.cart-line.is-linked { padding-left:8px;background:#fff9e8;color:#694e10; }
.cart-line.is-linked span { color:#806a35; }
.cart-total { display:flex;justify-content:space-between;gap:12px;padding-top:8px;font-size:.78rem;color:var(--muted); }
.cart-total strong { color:var(--ink);font-variant-numeric:tabular-nums; }
.grand-total { margin-top:7px;border-top:2px solid var(--line);font-size:.9rem;font-weight:800;color:var(--ink); }
.delivery-choice { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.delivery-choice label { display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:5px;cursor:pointer;font-size:.86rem;font-weight:700; }
.delivery-choice input,.privacy-check input { width:auto;margin:0; }
.delivery-note,.public-extra-notice { margin-top:10px;padding:9px 10px;border:1px solid #d3b46c;border-radius:5px;background:#fff7da;color:#6d5319;font-size:.78rem; }
.delivery-note.is-error { border-color:#d9a09a;background:#fff1ef;color:var(--danger); }
.delivery-note[hidden],.delivery-only[hidden],.delivery-fee-row[hidden],#pickup-time-row[hidden],#delivery-time-row[hidden],.delivery-start-note[hidden] { display:none!important; }
.cutoff-note,.final-disclaimer,.delivery-start-note { margin:10px 0 0;color:var(--muted);font-size:.72rem; }
.delivery-start-note { padding:7px 8px;border-left:3px solid var(--green);background:var(--green-soft);color:var(--green-dark); }
.address-row { display:grid;grid-template-columns:105px 1fr;gap:8px; }
.privacy-check { display:flex!important;align-items:flex-start;gap:8px;color:var(--ink)!important;font-weight:400!important;line-height:1.35; }
.privacy-check input { margin-top:2px!important; }
.privacy-check strong { color:var(--danger);font-size:.7rem;white-space:nowrap; }
.privacy-link { display:inline-block;margin-top:7px;color:var(--green);font-size:.76rem; }
.submit-order { width:100%;padding:13px 16px;border:0;border-radius:6px;background:var(--green);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 4px 12px rgba(25,74,45,.2); }
.submit-order:hover { background:var(--green-dark); }
.submit-order:disabled { opacity:.6;cursor:wait; }
.website-field { position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important; }
.public-footer { padding:22px;text-align:center;color:var(--muted);font-size:.76rem;border-top:1px solid var(--line);background:#fff; }

@media (max-width:1050px) {
    .public-order-layout { grid-template-columns:1fr; }
    .public-checkout { position:static;grid-template-columns:repeat(2,minmax(0,1fr)); }
    .public-checkout .checkout-card:first-child,.submit-order,.final-disclaimer,.public-extra-notice { grid-column:1/-1; }
}

@media (max-width:720px) {
    .public-main { padding:17px 12px 38px; }
    .public-header-inner { padding:8px 12px; }
    .public-header-inner img { width:40px;height:40px; }
    .public-intro { display:block; }
    .public-notice { margin-top:14px;max-width:none; }
    .public-controls { top:57px;grid-template-columns:1fr; }
    .catalog-group-grid { grid-template-columns:1fr; }
    .public-checkout { grid-template-columns:1fr; }
    .public-checkout .checkout-card:first-child,.submit-order,.final-disclaimer,.public-extra-notice { grid-column:auto; }
}

@media (max-width:420px) {
    .product-card { grid-template-columns:1fr; }
    .quantity-control { justify-content:start; }
}
