/* Third Wheel — Sunday Brunch order form.
   ALL rules scoped under .twn-brunch so the plugin can't bleed into / be
   restyled by the theme (the form is injected into a normal WP page via
   shortcode, so it shares the document with theme CSS).

   BRAND KIT (matches the brunch emails): self-hosted Bicyclette type, Muted
   Verdant ground (#f3f1df), warm-white cards (#fbf9f0), Bark ink (#493525),
   tan rules (#e8ddcb), Ginger CTAs (#c4582f) + deep-Ginger accents (#a8481f),
   Hugo-green "go" buttons (#507f62). Banner art intentionally NOT used here yet.
   Bicyclette degrades to Helvetica where the webfont can't load. */

@font-face{font-family:'Bicyclette';font-style:normal;font-weight:300;font-display:swap;
  src:url('fonts/Bicyclette-Light.woff2') format('woff2'),url('fonts/Bicyclette-Light.woff') format('woff');}
@font-face{font-family:'Bicyclette';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/Bicyclette-Regular.woff2') format('woff2'),url('fonts/Bicyclette-Regular.woff') format('woff');}
@font-face{font-family:'Bicyclette';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/Bicyclette-Bold.woff2') format('woff2'),url('fonts/Bicyclette-Bold.woff') format('woff');}

.twn-brunch{
  --tb-ginger:#c4582f;        /* primary CTA / brand warm */
  --tb-ginger-deep:#a8481f;   /* accent text: price, handles, kicker */
  --tb-green:#507f62;         /* Hugo — "go" buttons */
  --tb-green-soft:#5f9476;
  --tb-ground:#f3f1df;        /* Muted Verdant page column */
  --tb-card:#fbf9f0;          /* warm-white cards */
  --tb-ink:#493525;           /* Bark */
  --tb-ink-soft:#9b8c77;      /* muted labels */
  --tb-line:#e8ddcb;          /* tan rules/borders */
  --tb-amber-bg:#f6ecd6;--tb-amber-bd:#e6d3a4;--tb-amber-tx:#7a5d12; /* "heads up" notes */
  --tb-radius:14px;
  --tb-shadow:0 6px 20px rgba(73,53,43,.08);

  background:var(--tb-ground);
  color:var(--tb-ink);
  font-family:'Bicyclette','Helvetica Neue',Arial,system-ui,sans-serif;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  max-width:560px;
  margin:0 auto;
  padding:0 16px 120px; /* room for the sticky cart bar */
}
.twn-brunch *{box-sizing:border-box}
.twn-brunch .tb-display{font-weight:700;letter-spacing:0}

.twn-brunch .tb-loading{text-align:center;padding:48px 16px;color:var(--tb-ink-soft);font-size:15px}

.twn-brunch .tb-hero{text-align:center;padding:26px 16px 10px}
.twn-brunch .tb-kicker{text-transform:uppercase;letter-spacing:2.5px;font-size:11px;color:var(--tb-ginger-deep);font-weight:700}
.twn-brunch .tb-hero h1{font-size:30px;margin:6px 0 2px;color:var(--tb-ink)}
.twn-brunch .tb-hero p{margin:2px 0;color:var(--tb-ink-soft);font-size:14px}

.twn-brunch .tb-status{display:inline-flex;align-items:center;gap:7px;margin-top:10px;
  background:var(--tb-card);border:1px solid var(--tb-line);border-radius:999px;
  padding:6px 14px;font-size:13px;box-shadow:var(--tb-shadow)}
.twn-brunch .tb-dot{width:9px;height:9px;border-radius:50%;background:var(--tb-green)}
.twn-brunch .tb-wait{color:var(--tb-ink-soft)}
.twn-brunch .tb-status.tb-closed .tb-dot{background:#b9b1a8}
.twn-brunch .tb-status.tb-closed #tbStatusText{color:var(--tb-ink-soft)}

.twn-brunch .tb-pending-note{background:var(--tb-amber-bg);border:1px solid var(--tb-amber-bd);border-radius:var(--tb-radius);
  padding:12px 14px;margin:16px 0;font-size:13.5px;color:var(--tb-amber-tx)}
.twn-brunch .tb-pending-note b{color:#5d4708}

.twn-brunch .tb-section{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--tb-ink-soft);
  font-weight:700;margin:24px 4px 10px;border-bottom:1px solid var(--tb-line);padding-bottom:6px}

.twn-brunch .tb-card{background:var(--tb-card);border:1px solid var(--tb-line);border-radius:var(--tb-radius);
  margin:12px 0;box-shadow:var(--tb-shadow);overflow:hidden}
.twn-brunch .tb-card.tb-sold-out{opacity:.55}
.twn-brunch .tb-card-head{display:flex;justify-content:space-between;align-items:flex-start;
  gap:12px;padding:14px 16px;cursor:pointer}
.twn-brunch .tb-card-head:hover{background:#f8f3e9}
.twn-brunch .tb-item-name{font-size:17px;margin:0 0 3px;font-weight:700}
.twn-brunch .tb-item-desc{font-size:13px;color:var(--tb-ink-soft);margin:0}
.twn-brunch .tb-price-col{text-align:right;flex-shrink:0}
.twn-brunch .tb-price{font-weight:700;color:var(--tb-ginger-deep)}
.twn-brunch .tb-add-hint{display:block;font-size:11px;color:var(--tb-ink-soft);margin-top:4px}
.twn-brunch .tb-so-badge{display:inline-block;background:#ece4d5;color:#9b8c77;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;padding:2px 7px;border-radius:6px;margin-left:6px}

.twn-brunch .tb-panel{display:none;border-top:1px dashed var(--tb-line);padding:14px 16px;background:#faf6ec}
.twn-brunch .tb-panel.tb-open{display:block}
.twn-brunch .tb-grp-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--tb-ink-soft);margin:2px 0 8px;font-weight:700}
.twn-brunch .tb-grp+.tb-grp{margin-top:14px}
.twn-brunch .tb-opt{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14.5px}
.twn-brunch .tb-opt input{width:18px;height:18px;accent-color:var(--tb-ginger)}
.twn-brunch .tb-opt.tb-disabled{opacity:.5}
.twn-brunch .tb-opt .tb-opt-price{color:var(--tb-ginger-deep);font-weight:700;font-size:13.5px}
.twn-brunch .tb-opt .tb-opt-so{font-size:11px;color:var(--tb-ink-soft);margin-left:auto}

.twn-brunch .tb-panel-foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:12px}
.twn-brunch .tb-qty{display:flex;align-items:center;gap:0;border:1px solid var(--tb-line);border-radius:10px;overflow:hidden}
.twn-brunch .tb-qty button{width:38px;height:38px;border:0;background:var(--tb-card);font-size:18px;cursor:pointer;color:var(--tb-ginger-deep)}
.twn-brunch .tb-qty span{width:34px;text-align:center;font-weight:700}
.twn-brunch .tb-btn{border:0;border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer;font-size:14.5px;font-family:inherit}
.twn-brunch .tb-btn-primary{background:var(--tb-green);color:#fbf9f0}
.twn-brunch .tb-btn-primary:hover{background:var(--tb-green-soft)}

.twn-brunch .tb-closed-card{text-align:center;padding:30px 22px}
.twn-brunch .tb-closed-card h2{font-size:24px;margin:0 0 10px;color:var(--tb-ink)}
.twn-brunch .tb-closed-card p{color:var(--tb-ink-soft);margin:4px 0;font-size:14.5px}

/* sticky cart bar — fixed to viewport; still a DOM child of .twn-brunch */
.twn-brunch .tb-cart-bar{position:fixed;left:0;right:0;bottom:0;background:var(--tb-card);border-top:1px solid var(--tb-line);
  box-shadow:0 -6px 20px rgba(73,53,43,.10);padding:12px 16px;z-index:30;
  /* safe-area: evaluates to +0 unless the viewport is viewport-fit=cover — free
     insurance so the button clears the iPhone home indicator if that changes */
  padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.twn-brunch .tb-cart-inner{max-width:560px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.twn-brunch .tb-cart-summary{font-size:13px;color:var(--tb-ink-soft)}
.twn-brunch .tb-cart-summary b{color:var(--tb-ink);font-size:16px}
.twn-brunch .tb-cart-bar button:disabled{opacity:.4;cursor:not-allowed}

/* review sheet */
.twn-brunch .tb-scrim{position:fixed;inset:0;background:rgba(73,53,43,.5);display:none;z-index:40;align-items:flex-end;justify-content:center}
.twn-brunch .tb-scrim.tb-open{display:flex}
.twn-brunch .tb-sheet{background:var(--tb-ground);width:100%;max-width:560px;max-height:92vh;overflow:auto;
  overscroll-behavior:contain; /* don't scroll-chain to the page behind the sheet */
  border-radius:18px 18px 0 0;padding:20px 18px calc(28px + env(safe-area-inset-bottom,0px))}
.twn-brunch .tb-sheet h2{margin:2px 0 4px;font-size:22px}
.twn-brunch .tb-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--tb-line)}
.twn-brunch .tb-line .tb-mods{font-size:12.5px;color:var(--tb-ink-soft);margin-top:3px}
.twn-brunch .tb-line .tb-mods .tb-hold{color:var(--tb-ginger-deep)}
.twn-brunch .tb-line .tb-mods .tb-add{color:var(--tb-green)}
.twn-brunch .tb-line-remove{background:none;border:0;color:var(--tb-ink-soft);font-size:12px;cursor:pointer;text-decoration:underline;padding:0;margin-top:6px;font-family:inherit}
.twn-brunch .tb-totals{margin:14px 0;font-size:15px}
.twn-brunch .tb-grand{display:flex;justify-content:space-between;font-size:20px;font-weight:700;margin-top:6px}
.twn-brunch .tb-grand b{color:var(--tb-ginger-deep)}
.twn-brunch .tb-tip-note{font-size:13px;color:var(--tb-amber-tx);background:var(--tb-amber-bg);border:1px solid var(--tb-amber-bd);border-radius:10px;padding:9px 12px;margin:10px 0}

.twn-brunch .tb-pay-box{background:var(--tb-card);border:1px solid var(--tb-line);border-radius:var(--tb-radius);padding:14px 16px;margin:12px 0}
.twn-brunch .tb-pay-box h3{margin:0 0 8px;font-size:15px}
.twn-brunch .tb-handle{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--tb-line);font-size:14px}
.twn-brunch .tb-handle:last-child{border-bottom:0}
.twn-brunch .tb-handle .tb-h{font-weight:700}
.twn-brunch .tb-handle .tb-v{color:var(--tb-ginger-deep);font-weight:700}
.twn-brunch a.tb-v{text-decoration:underline;text-underline-offset:2px}
.twn-brunch a.tb-v:hover{color:var(--tb-ginger)}

.twn-brunch .tb-fld{display:block;margin:10px 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--tb-ink-soft);font-weight:700}
.twn-brunch .tb-opt-label{text-transform:none;color:var(--tb-ink-soft);font-weight:400}
.twn-brunch .tb-allergy-note{font-size:12px;letter-spacing:.3px;color:var(--tb-ink-soft);text-transform:none;margin:3px 0 0}
/* 16px minimum on focusable fields: iOS Safari auto-zooms the page when a
   focused input's font-size is under 16px — a lurch we never want mid-order. */
.twn-brunch .tb-txt{width:100%;padding:10px 12px;border:1px solid var(--tb-line);border-radius:10px;font-size:16px;background:var(--tb-card);font-family:inherit;color:var(--tb-ink)}
.twn-brunch .tb-txt:focus{outline:none;border-color:var(--tb-ginger);box-shadow:0 0 0 3px rgba(196,88,47,.12)}
.twn-brunch .tb-readout{background:#f4efe2;color:var(--tb-ink);font-weight:600;display:flex;align-items:center}
.twn-brunch .tb-allergy-wrap{margin-top:6px}
.twn-brunch .tb-row2{display:flex;gap:10px}
.twn-brunch .tb-row2>div{flex:1}
.twn-brunch .tb-place-final{width:100%;margin-top:16px;padding:15px;font-size:16px}
.twn-brunch .tb-fineprint{font-size:11.5px;color:var(--tb-ink-soft);text-align:center;margin-top:10px}
.twn-brunch .tb-placeholder-note{text-align:left;margin-top:8px}
.twn-brunch .tb-close-x{float:right;background:none;border:0;font-size:24px;line-height:1;color:var(--tb-ink-soft);cursor:pointer}

/* honeypot — kept in the layout but pushed far off-screen (display:none can be
   detected/skipped by some bots; off-screen + tab-skipped is the safer trick) */
.twn-brunch .tb-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.twn-brunch .tb-turnstile-wrap{margin:14px 0 4px;min-height:0}
.twn-brunch .tb-form-msg{background:#fae8e0;border:1px solid #e0a48a;color:#9c3a1a;
  border-radius:10px;padding:10px 12px;margin:12px 0 4px;font-size:13.5px}
.twn-brunch .tb-confirm-head{color:var(--tb-green);font-size:22px;margin:2px 0 8px}

/* ---- Front-page header CTA (injected into the header on the home page) ----
   Desktop: a pill absolutely centered in the header's empty middle.
   Mobile (<=1024px): the desktop pill hides; a full-width banner shows under the header. */
.twn-brunch.tb-hdr-cta{font-family:'Bicyclette','Helvetica Neue',Arial,sans-serif;max-width:none;margin:0;padding:0;background:transparent}
.home header.wp-block-template-part{position:relative}
.twn-brunch .tb-hdr-desktop{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5}
.twn-brunch .tb-hdr-mobile{display:none}
.twn-brunch .tb-hdr-btn{display:inline-flex;align-items:center;gap:11px;text-decoration:none;white-space:nowrap}
.twn-brunch .tb-hdr-open{background:var(--tb-ginger);color:#fff;border-radius:999px;padding:9px 26px;box-shadow:0 4px 14px rgba(168,72,31,.35)}
.twn-brunch a.tb-hdr-open:hover{background:var(--tb-ginger-deep)}
.twn-brunch .tb-hdr-closed{background:transparent;border:1.5px solid #cdbfa0;color:var(--tb-ink-soft);border-radius:999px;padding:8px 24px}
.twn-brunch .tb-hdr-lines{display:flex;flex-direction:column;line-height:1.12;text-align:center}
.twn-brunch .tb-hdr-l1{font-size:10.5px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;opacity:.85}
.twn-brunch .tb-hdr-l2{font-size:18px;font-weight:700;letter-spacing:.4px}
.twn-brunch .tb-hdr-closed .tb-hdr-l1{color:var(--tb-ginger-deep);opacity:1}
.twn-brunch .tb-hdr-closed .tb-hdr-l2{color:var(--tb-ink-soft);font-size:16px}
/* paused (mid-service hold) — bigger amber pill, full message can wrap */
.twn-brunch .tb-hdr-btn.tb-hdr-paused{background:#f6ecd6;border:1.5px solid #e6d3a4;border-radius:18px;padding:9px 24px;max-width:460px;white-space:normal}
.twn-brunch .tb-hdr-btn.tb-hdr-paused .tb-hdr-l1{color:#a8481f;opacity:1}
.twn-brunch .tb-hdr-btn.tb-hdr-paused .tb-hdr-l2{color:#7a5d12;font-size:14px;letter-spacing:.2px;line-height:1.28}
.twn-brunch .tb-hdr-dot{width:10px;height:10px;border-radius:50%;background:#7ce0a0;flex:none;animation:tb-pulse 1.6s infinite}
@keyframes tb-pulse{0%{box-shadow:0 0 0 0 rgba(124,224,160,.75)}70%{box-shadow:0 0 0 9px rgba(124,224,160,0)}100%{box-shadow:0 0 0 0 rgba(124,224,160,0)}}
@media (max-width:1024px){
  .twn-brunch .tb-hdr-desktop{display:none}
  .twn-brunch .tb-hdr-mobile{display:block}
  .twn-brunch .tb-hdr-banner{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-decoration:none;padding:11px 16px;font-family:inherit}
  .twn-brunch a.tb-hdr-banner.tb-hdr-open{background:var(--tb-ginger);color:#fff}
  .twn-brunch .tb-hdr-banner.tb-hdr-closed{background:var(--tb-card);color:var(--tb-ink);border-bottom:1px solid var(--tb-line)}
  .twn-brunch .tb-hdr-banner.tb-hdr-paused{background:#f6ecd6;color:#7a5d12;border-bottom:1px solid #e6d3a4}
  .twn-brunch .tb-hdr-banner.tb-hdr-paused .tb-hdr-bk{color:#a8481f}
  .twn-brunch .tb-hdr-banner.tb-hdr-paused .tb-hdr-bsub{color:#7a5d12}
  .twn-brunch .tb-hdr-blbl{font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:14px}
  .twn-brunch .tb-hdr-bcta{background:#fff;color:var(--tb-ginger-deep);padding:5px 13px;border-radius:999px;font-weight:700;font-size:13px}
  .twn-brunch .tb-hdr-bk{font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--tb-ginger-deep);font-size:12px}
  .twn-brunch .tb-hdr-bsub{color:var(--tb-ink-soft);font-size:13px}
}

.twn-brunch [hidden]{display:none !important}
