/* Ruth's Big Apples, shared site styles.
   Lines up to 'SECONDARY PAGES' are the approved homepage (version 15) styles, moved here verbatim
   on 2026-09-28 so every page uses one stylesheet. Change them here, never per page. */
  /* Single light theme on purpose: Ruth's site is white by design, so it paints every color explicitly. */
  :root{
    color-scheme: light;
    --white:#FFFFFF;
    --soft:#F6F5F3;        /* alternate band, used sparingly */
    --ink:#121212;         /* Ruth's black */
    --ink-2:#34312F;
    --muted:#6B6663;
    --line:#E7E4E1;
    --red:#FF0800;         /* Ruth's candy apple red, big type and accents */
    --red-ink:#C80700;     /* same hue, readable at small sizes on white */
    --green:#72A232;       /* bright apple-leaf green (Derrick 2026-09-27: #5E7E2E not bright enough) */
    --green-press:#5E8A28; /* hover, and green text on the pale tint */
    --green-ink:#4A6849;   /* chalk sage from Ruth's signs (#6D8A6C), kept for the top strip Derrick likes */
    --green-tint:#EEF3EC;
    --chalk-green:#9DBE9A; /* green on the chalkboard and on black */
    --chalk:#1B1D1B;
    --tbd-bg:#FFF3B0;
    --tbd-line:#C9A400;
    --cond:'Barlow Condensed', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
    --sans:'Barlow', 'Helvetica Neue', Arial, system-ui, sans-serif;
    --script:'Pinyon Script', 'Snell Roundhand', 'Apple Chancery', cursive;
    --shadow:0 1px 2px rgba(18,18,18,.06), 0 8px 24px rgba(18,18,18,.07);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  html,body{overflow-x:clip}
  @media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
  body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
  img{max-width:100%;display:block}
  [hidden]{display:none!important}
  a{color:inherit}
  h1,h2,h3,h4{margin:0;font-weight:600;text-wrap:balance}
  p{margin:0}
  .wrap{width:min(1200px, calc(100% - 32px));margin-inline:auto}
  :focus-visible{outline:2px solid var(--red-ink);outline-offset:3px}

  /* type scale: 13 / 15 / 17 / 20 / 26 / 40 / 56 / 76 */
  .eyebrow{font-family:var(--cond);font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red-ink)}
  .h-sec{font-family:var(--cond);font-weight:700;font-size:clamp(34px,4.4vw,48px);line-height:1.02;text-transform:uppercase;letter-spacing:.005em}
  .h-sec .script{font-family:var(--script);font-weight:400;text-transform:none;color:var(--red);font-size:1.18em;letter-spacing:0}
  .lede{font-size:18px;color:var(--ink-2);max-width:58ch}
  .center{text-align:center}
  .center .lede{margin-inline:auto}

  .pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--cond);font-size:19px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:13px 30px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}
  .pill svg{width:20px;height:20px}
  .pill-green{background:var(--green);color:var(--white);font-weight:700}
  .pill-green:hover{background:var(--green-press);transform:translateY(-1px)}
  .pill-ink{background:var(--ink);color:var(--white)}
  .pill-ink:hover{background:var(--red-ink)}
  .pill-line{background:transparent;color:var(--ink);border-color:var(--ink)}
  .pill-line:hover{background:var(--ink);color:var(--white)}
  .pill-white{background:var(--white);color:var(--ink)}
  .pill-white:hover{background:var(--green-tint)}

  /* ---------- notes for Ruth (preview-only layer) ---------- */
  .tbd{border-radius:2px}
  body.notes .tbd{text-decoration:underline dotted var(--tbd-line);text-decoration-thickness:2px;text-underline-offset:4px}
  .ruth-note{display:none;font-family:var(--sans);font-size:15px;line-height:1.5;color:#5E5130;background:#FDFAF0;border-left:2px solid #D9C27A;padding:10px 14px;margin-top:20px;max-width:72ch;text-align:left}
  .ruth-note b{font-weight:600}
  body.notes .ruth-note{display:block}
  .center .ruth-note{margin-inline:auto}

  .preview-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--ink);color:#EDEAE7;font-size:14px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  .preview-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .preview-bar b{font-weight:600;color:var(--white)}
  .switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;background:none;border:0;color:inherit;font:inherit;padding:4px 0}
  .switch .track{width:38px;height:22px;border-radius:22px;background:#4A4643;position:relative;transition:background .15s}
  .switch .track::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--white);transition:transform .15s}
  .switch[aria-pressed="true"] .track{background:var(--tbd-line)}
  .switch[aria-pressed="true"] .track::after{transform:translateX(16px)}

  /* ---------- utility bar, header, seasonal strip ---------- */
  .util{background:var(--ink);color:var(--white);font-size:15px}
  .util .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:9px}
  .util .call{font-family:var(--cond);font-size:18px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
  .util .call b{font-weight:600;color:var(--white)}
  .util nav{display:flex;gap:26px}
  .util nav a{text-decoration:none;color:#E9E6E3}
  .util nav a:hover{color:var(--chalk-green)}
  header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:var(--white);box-shadow:0 1px 0 var(--line)}
  .hdr{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px}
  .mark{text-decoration:none;line-height:1;flex:none}
  .mark .script{display:block;font-family:var(--script);color:var(--red-ink);font-size:46px;line-height:.9;white-space:nowrap}
  .mark .sub{display:block;font-family:var(--cond);font-size:13px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);margin-top:4px;padding-left:6px}
  .nav{display:flex;gap:30px;font-family:var(--cond);font-size:19px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
  .nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
  .nav a:hover{border-color:var(--green)}
  .icons{display:flex;align-items:center;gap:14px}
  .cart{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600}
  .cart svg{width:26px;height:26px}
  .cart .n{min-width:22px;height:22px;border-radius:11px;background:var(--red-ink);color:var(--white);font-size:13px;display:inline-grid;place-items:center;padding:0 6px}
  .menu-btn{display:none;background:none;border:0;padding:6px;cursor:pointer;color:var(--ink)}
  .menu-btn svg{width:26px;height:26px}
  .drawer{display:none;border-top:1px solid var(--line);padding:6px 0 14px}
  .drawer a{display:block;padding:12px 0;text-decoration:none;font-family:var(--cond);font-size:20px;font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--line)}
  .drawer.open{display:block}
  .strip{background:var(--green-tint);color:var(--green-ink);text-align:center;font-family:var(--cond);font-size:17px;font-weight:600;letter-spacing:.04em;padding:7px 16px;border-bottom:1px solid #DCE6D9}
  .strip a{margin-left:10px;text-underline-offset:3px}

  /* ---------- hero ---------- */
  .hero{padding-block:clamp(36px,5vw,72px)}
  .hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,64px);align-items:center}
  .hero .by{display:block;margin-bottom:14px;font-family:var(--cond);font-weight:600;font-size:clamp(18px,1.7vw,22px);letter-spacing:.16em;text-transform:uppercase;color:var(--red-ink);line-height:1.2}
  .hero h1{font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(54px,7.4vw,96px);line-height:.92;letter-spacing:-.005em;margin-top:10px}
  .hero h1 .red{color:var(--red);display:block}
  .hero .lede{margin:24px 0 32px;font-size:19px;max-width:42ch}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
  .hero-media{position:relative;aspect-ratio:4/5;max-width:100%;background:var(--soft);overflow:hidden;border-radius:6px}
  .hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}

  /* ---------- occasion tiles ---------- */
  .tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .tile{position:relative;display:block;aspect-ratio:1.12;max-width:100%;overflow:hidden;border-radius:6px;text-decoration:none;color:var(--white);background:var(--ink)}
  .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
  .tile:hover img{transform:scale(1.04)}
  .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.72) 100%)}
  .tile .txt{position:absolute;left:24px;right:24px;bottom:22px;z-index:2}
  .tile h3{font-family:var(--cond);font-weight:700;font-size:34px;line-height:1;text-transform:uppercase}
  .tile p{font-size:17px;margin-top:6px;color:#F1EEEA}
  .tile.red{background:var(--red-ink)}
  .tile.red::after,.tile.black::after{background:none}
  .tile .deco{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:70px}
  .tile .deco svg{width:46%;color:var(--white);opacity:.95}
  .tile.black .deco svg{color:var(--red)}
  .tile .deco .script{font-family:var(--script);font-size:64px;color:var(--white);line-height:1}

  /* ---------- sections ---------- */
  .sec{padding-block:clamp(56px,7vw,96px)}

  /* photo banner: the photo is the section background at every width; text sits over the festival bokeh above the apples */
  .banner{position:relative;background:var(--ink);color:var(--white)}
  .banner img{display:block;width:100%;height:auto}
  .banner-txt{position:absolute;inset:0 0 auto 0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;
    padding:clamp(28px,2.6vw,44px) 16px clamp(64px,6vw,110px);
    background:linear-gradient(to bottom, rgba(18,18,18,.74) 0%, rgba(18,18,18,.5) 55%, rgba(18,18,18,0) 100%)}
  .banner .eyebrow{color:#DCE8D6}
  .banner-h{font-family:var(--cond);font-weight:700;font-size:clamp(34px,4.4vw,56px);line-height:1;text-transform:uppercase;letter-spacing:.005em;text-wrap:balance}
  .banner .pill{margin-top:6px}
  /* narrower screens: taller box, crop only the sides, centred so the tablecloth name stays whole */
  @media (max-width: 1099px){
    .banner img{aspect-ratio:1.45;object-fit:cover;object-position:62% 100%}
    .banner-txt{gap:8px;padding:20px 16px 56px}
  }
  @media (max-width: 599px){
    .banner .eyebrow{display:none}
    .banner-h{font-size:28px}
    .banner .pill{margin-top:2px;font-size:15px;padding:9px 20px}
  }
  .sec-head{margin-bottom:40px}
  .sec-head .eyebrow{display:block;margin-bottom:10px}
  .sec-head .lede{margin-top:14px}
  .soft{background:var(--soft)}

  /* ---------- product cards ---------- */
  .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
  .card{background:var(--white);border-radius:6px;box-shadow:var(--shadow);padding:18px 18px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .card .media{position:relative;width:100%;aspect-ratio:1;max-width:100%;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:var(--white)}
  .card .media svg.art{width:74%;height:auto}
  .card .media img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .card .badge{position:absolute;top:10px;left:10px;z-index:2;background:var(--green);color:var(--white);font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:999px}
  .card h3{font-family:var(--sans);font-weight:500;font-size:20px;line-height:1.3;margin-top:18px}
  .card p{font-size:15px;color:var(--muted);margin-top:4px;flex:1}
  .card .price{font-family:var(--sans);font-weight:500;font-size:20px;line-height:1;margin-top:12px;color:var(--ink-2);letter-spacing:.01em}
  .card .price small{font-family:var(--sans);font-weight:500;font-size:14px;color:var(--muted);margin-left:4px}
  .card .add{margin-top:16px;width:100%;max-width:230px;font-size:18px;padding:11px 18px}
  .card .add.done{background:var(--ink);color:var(--white)}
  .card.cta{background:var(--ink);color:var(--white);justify-content:center;gap:14px;padding:32px 24px}
  .card.cta .script{font-family:var(--script);color:var(--red);font-size:52px;line-height:1}
  .card.cta p{color:#D5D0CB;flex:none;margin:0;max-width:26ch}

  .also{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:48px}
  .also-head{margin:clamp(56px,7vw,80px) 0 28px}
  .also-head + .also{margin-top:0}
  .h-sub{font-size:clamp(28px,3.2vw,36px)}
  .row-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center;background:var(--white);border-radius:6px;box-shadow:var(--shadow);padding:16px 22px 16px 16px}
  .row-card .media{position:relative;aspect-ratio:1;max-width:100%;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:var(--white)}
  .row-card .media svg.art{width:92%;height:auto}
  .row-card .media img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .row-card h3{font-family:var(--sans);font-weight:500;font-size:21px;line-height:1.25}
  .row-card p{font-size:15px;color:var(--muted);margin-top:4px}
  .row-card .foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px}
  .row-card .price{font-family:var(--sans);font-weight:500;font-size:19px;line-height:1;color:var(--ink-2)}
  .row-card .add{font-size:17px;padding:9px 20px}

  /* ---------- how many / how to get them ---------- */
  .panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .panel{border-radius:6px;padding:clamp(28px,4vw,44px);text-align:center}
  .panel.g{background:var(--green-tint)}
  .panel.k{background:var(--soft)}
  .panel h3{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase;letter-spacing:.02em}
  .panel.g h3{color:var(--green-press)}
  .qty{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:26px}
  .qty button{width:74px;height:74px;border-radius:50%;border:3px solid var(--green);background:transparent;color:var(--green-press);font-family:var(--cond);font-weight:700;font-size:30px;cursor:pointer;transition:background .15s,color .15s}
  .qty button:hover,.qty button[aria-pressed="true"]{background:var(--green);color:var(--white)}
  .qty-out{margin-top:22px;font-size:18px;min-height:3.2em;color:var(--ink-2)}
  .qty-out b{font-weight:600;color:var(--ink)}
  .ways{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px;text-align:left}
  .way{background:var(--white);border-radius:6px;padding:22px}
  .way svg{width:34px;height:34px;color:var(--red-ink)}
  .way h4{font-family:var(--cond);font-weight:700;font-size:24px;text-transform:uppercase;margin-top:8px}
  .way p{font-size:16px;color:var(--ink-2);margin-top:6px}

  /* ---------- group orders ---------- */
  .groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .group{border-top:4px solid var(--ink);padding-top:22px;scroll-margin-top:120px}
  .group.r{border-color:var(--red)}
  .group.g{border-color:var(--green)}
  .group h3{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase;line-height:1.05}
  .group p{font-size:17px;color:var(--ink-2);margin-top:10px}
  .group ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px;font-size:16px}
  .group li{display:flex;gap:10px;align-items:baseline}
  .group li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;transform:translateY(-2px)}
  .group .ask{margin-top:18px;font-size:17px;padding:10px 22px}
  form.card-form{margin-top:48px;background:var(--white);border-radius:6px;box-shadow:var(--shadow);padding:clamp(22px,3.4vw,40px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;scroll-margin-top:120px}
  form.card-form .span2{grid-column:span 2}
  form.card-form .full{grid-column:1 / -1}
  form.card-form h3{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase}
  .field label{display:block;font-family:var(--cond);font-size:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
  .field input,.field textarea,.field select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--white);border:1px solid #CFCBC7;border-radius:4px;padding:12px 14px}
  .field textarea{min-height:100px;resize:vertical}
  .field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink)}
  .form-msg{font-size:16px;color:var(--ink-2)}

  /* ---------- find us ---------- */
  .find-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,48px);align-items:center}
  .find-grid .sec-head{margin-bottom:0}
  .board{background:var(--chalk);color:var(--chalk-green);padding:clamp(24px,3.2vw,36px);border:10px solid #6B4A2B;border-radius:4px;box-shadow:inset 0 0 60px rgba(0,0,0,.45)}
  .board h3{font-family:var(--script);font-weight:400;font-size:clamp(26px,3.2vw,46px);line-height:1.2;color:inherit;margin-bottom:14px}
  .board .market-note{font-size:17px;line-height:1.5;max-width:30ch}
  .board .market-phone{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-family:var(--cond);font-weight:600;font-size:26px;letter-spacing:.04em;color:var(--chalk-green);text-decoration:none;white-space:nowrap}
  .board .market-phone:hover{text-decoration:underline;text-underline-offset:4px}
  .board ul{list-style:none;margin:0;padding:0}
  .board li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;padding:13px 0;border-top:1px dashed rgba(241,239,234,.28);font-size:17px}
  .board li:first-child{border-top:0}
  .board .when{color:var(--chalk-green);font-family:var(--cond);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:18px}
  .board .where b{display:block;font-weight:500}
  .board .where span{color:inherit;font-size:15px}
  .board .note{margin-top:16px;font-size:15px;color:inherit}

  /* ---------- meet ruth ---------- */
  .ruth-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,80px);align-items:center}
  .ruth-photo{margin:0}
  .ruth-photo .frame{aspect-ratio:4/5;max-width:100%;overflow:hidden;background:var(--soft);border-radius:6px}
  .ruth-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
  .ruth-photo figcaption{font-size:15px;color:var(--muted);margin-top:10px}
  /* phones: square frame, zoomed so Ruth, her visitor and the tablecloth name fill it instead of the barn wall */
  @media (max-width: 900px){
    .ruth-photo .frame{aspect-ratio:1/1}
    .ruth-photo img{object-position:50% 70%;transform:scale(1.2);transform-origin:50% 60%}
  }
  .ruth-copy p{font-size:18px;color:var(--ink-2);margin-top:16px;max-width:54ch}
  /* img/ruth-at-her-festival-table.jpg: Ruth's real photo with a Gemini fall-festival background (2026-10-11),
     cut 4:5 from the 1696x2528 source at y=340..2460 (sky trimmed), resized to 1200x1500. Shown whole, no zoom. */
  .ruth-photo .frame.ruth-portrait,.hero-media.ruth-portrait{position:relative;aspect-ratio:4/5;width:100%;max-width:460px;margin-inline:auto;overflow:hidden;border-radius:6px}
  .ruth-photo .ruth-portrait img,.hero-media.ruth-portrait img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transform:none}
  @media (max-width: 900px){ .ruth-photo .frame.ruth-portrait,.hero-media.ruth-portrait{max-width:420px} }
  .ruth-photo:has(.ruth-portrait) figcaption,.hero-fig:has(.ruth-portrait) figcaption{text-align:center}

  /* ---------- real photos from Ruth's Facebook (2026-09-28) ---------- */
  /* inside every apple: the sliced photo proves the caramel-then-chocolate line under the menu */
  .inside{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;margin-top:clamp(56px,7vw,80px);background:var(--white);border-radius:6px;box-shadow:var(--shadow);overflow:hidden}
  .inside .ph{aspect-ratio:6/5;max-width:100%;overflow:hidden;background:var(--soft)}
  .inside .ph img{width:100%;height:100%;object-fit:cover;object-position:62% 45%}
  .inside .txt{padding:clamp(28px,4.4vw,56px)}
  .inside .txt .eyebrow{display:block;margin-bottom:10px}
  .inside .txt p{font-size:18px;color:var(--ink-2);margin-top:14px;max-width:44ch}
  /* through the year: three season cards; on phones a swipe row with the next card peeking */
  .seasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .season{margin:0;background:var(--white);border-radius:6px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
  .season .ph{aspect-ratio:5/4;max-width:100%;overflow:hidden;background:var(--soft)}
  .season .ph img{width:100%;height:100%;object-fit:cover}
  .season figcaption{padding:20px 22px 24px}
  .season h3{font-family:var(--cond);font-weight:700;font-size:28px;line-height:1.05;text-transform:uppercase}
  .season p{font-size:16px;color:var(--ink-2);margin-top:8px}
  .swipe-hint{display:none}
  @media (max-width: 900px){
    .inside{grid-template-columns:minmax(0,1fr)}
    .inside .ph{aspect-ratio:4/3}
    .inside .txt{padding:24px 22px 28px}
    .seasons{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin-inline:-16px;padding:6px 16px 22px;scrollbar-width:none;overscroll-behavior-x:contain}
    .seasons::-webkit-scrollbar{display:none}
    .season{flex:0 0 80%;scroll-snap-align:start}
    .swipe-hint{display:block;text-align:center;font-family:var(--cond);font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  }

  /* ---------- reviews (real Facebook posts, no star ratings: none were given) ---------- */
  .rev-head{margin-top:clamp(64px,8vw,104px)}
  .rev-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:36px auto 0;max-width:960px}
  .rev{position:relative;background:var(--white);border-radius:6px;box-shadow:var(--shadow);padding:40px 30px 28px;text-align:left;border-top:4px solid var(--red)}
  .rev::before{content:"\201C";position:absolute;top:22px;right:24px;font-family:var(--script);font-size:84px;line-height:1;color:var(--red);opacity:.9}
  .rev q{display:block;font-size:19px;line-height:1.55;margin:0 0 20px;quotes:"\201C" "\201D";padding-right:40px}
  .rev .who{font-family:var(--cond);font-size:17px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
  .rev .src{display:block;font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);margin-top:2px}

  /* ---------- faq ---------- */
  .faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px)}
  details{border-bottom:1px solid var(--line)}
  details:first-child{border-top:1px solid var(--line)}
  summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:500;font-size:19px}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";font-size:28px;font-weight:400;color:var(--green);line-height:1;transition:transform .2s}
  details[open] summary::after{transform:rotate(45deg)}
  details .ans{padding:0 0 20px;color:var(--ink-2);max-width:62ch}

  /* ---------- signup + footer ---------- */
  .signup{background:var(--ink);color:var(--white);text-align:center}
  .signup .script{font-family:var(--script);color:var(--red);font-size:clamp(52px,6vw,72px);line-height:1}
  .signup p{color:#D5D0CB;margin:12px auto 26px;max-width:46ch}
  .signup form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;max-width:540px;margin-inline:auto}
  .signup input{flex:1 1 240px;font:inherit;font-size:16px;padding:13px 20px;background:transparent;border:1px solid #5A5653;color:var(--white);border-radius:999px}
  .signup input::placeholder{color:#8E8883}
  footer{background:var(--white);border-top:1px solid var(--line);padding-block:56px 32px}
  .footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
  .footer-grid h4{font-family:var(--cond);font-size:18px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}
  .footer-grid a,.footer-grid p{display:block;font-size:16px;color:var(--muted);text-decoration:none;margin-bottom:8px}
  .footer-grid a:hover{color:var(--ink)}
  .footer-brand .script{font-size:40px}
  .footer-brand p{margin-top:14px;max-width:34ch}
  .foot-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:14px;color:var(--muted)}

  /* ---------- responsive ---------- */
  @media (max-width: 1080px){
    .nav{gap:20px;font-size:17px}
    .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  }
  @media (max-width: 900px){
    .util nav{display:none}
    .util .wrap{justify-content:center}
    .nav{display:none}
    .menu-btn{display:block}
    .mark .script{font-size:36px}
    .mark .sub{font-size:11px;letter-spacing:.24em}
    .hero-grid,.find-grid,.ruth-grid,.faq-grid,.panels{grid-template-columns:minmax(0,1fr)}
    .hero-media{aspect-ratio:4/3.3;order:-1}
    .tiles,.groups,.rev-grid,.also{grid-template-columns:minmax(0,1fr)}
    .tile{aspect-ratio:16/10}
    .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    form.card-form{grid-template-columns:repeat(2,minmax(0,1fr))}
    form.card-form .span2{grid-column:1 / -1}
    .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .footer-brand,.footer-contact{grid-column:1 / -1}
    .footer-brand .script{font-size:36px}
  }
  @media (max-width: 520px){
    .strip{font-size:15px}
    .mark .script{font-size:31px}
    .card{padding:10px 10px 16px}
    .card h3{font-size:17px;margin-top:10px}
    .card p{font-size:14px}
    .card .price{font-size:18px;margin-top:10px}
    .card .add{font-size:15px;padding:9px 10px;gap:6px}
    .card .add svg{width:16px;height:16px}
    .row-card{grid-template-columns:96px minmax(0,1fr);gap:14px;padding:12px}
    .qty button{width:58px;height:58px;font-size:24px}
    .ways{grid-template-columns:minmax(0,1fr)}
    form.card-form{grid-template-columns:minmax(0,1fr)}
    .board li{grid-template-columns:78px minmax(0,1fr)}
    footer{padding-block:32px 24px}
    .footer-grid{gap:24px}
    .footer-grid h4{margin-bottom:8px}
    .footer-grid a:not(.mark){display:flex;align-items:center;min-height:44px;line-height:1.35;margin-bottom:0;padding-block:8px}
    .footer-brand .script{font-size:clamp(28px,8.2vw,36px)}
    .footer-brand p{margin-top:10px;margin-bottom:0}
    .footer-contact{border-top:1px solid var(--line);padding-top:20px}
    .footer-details{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px}
    .footer-details p{margin-bottom:0}
    .footer-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;margin-top:12px}
    .foot-bottom{margin-top:24px;padding-top:16px}
  }

/* =====================================================================
   SECONDARY PAGES (product and service pages, page-template.html + page.js), 2026-09-28
   Reuse the homepage classes above wherever one exists. Only what the homepage never
   needed is defined here.
   ===================================================================== */
:root{--red-tint:#FFF4F3}
.nav a[aria-current="page"]{border-color:var(--red)}
.util nav a[aria-current="page"]{color:var(--white)}
.drawer a[aria-current="page"]{color:var(--red-ink)}

/* breadcrumbs */
.crumbs{padding-top:22px;font-family:var(--cond);font-size:15px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.crumbs li{display:flex;align-items:center;gap:10px}
.crumbs li + li::before{content:"\203A";color:#B3ADA8;font-size:18px;line-height:1}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs span[aria-current]{color:var(--ink)}

/* headings: the search term is the text, the script word is decoration */
.pg-h1{font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(46px,5.2vw,70px);line-height:.95;letter-spacing:-.005em;margin-top:8px}
.pg-h1 .script,.pg-hero h1 .script{font-family:var(--script);font-weight:400;text-transform:none;color:var(--red);font-size:1.1em;letter-spacing:0;line-height:.8}
.pg-h3{font-family:var(--cond);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase;margin-top:32px}
.pg-panel-h{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase;letter-spacing:.02em}
.panel.g .pg-panel-h{color:var(--green-press)}
.panel.left{text-align:left}
.dots{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:9px;font-size:17px;color:var(--ink-2)}
.dots li{display:flex;gap:10px;align-items:baseline}
.dots .bow{width:19px;height:11px;flex:none;color:var(--red);transform:translateY(1px)}
.more-link,.pg-arrow{display:inline-block;margin-top:16px;font-weight:500;color:var(--ink);text-underline-offset:4px;text-decoration-color:var(--green)}
.pg-arrow{margin-top:10px;font-size:16px}

/* product: gallery + buy box */
.prod{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-areas:"gal info" "ins info";grid-template-rows:auto 1fr;gap:28px clamp(28px,5vw,64px);align-items:start;padding-block:22px clamp(56px,7vw,96px)}
.gallery{grid-area:gal;margin:0}
.prod-info{grid-area:info}
.gallery .main{position:relative;aspect-ratio:1;max-width:100%;overflow:hidden;border-radius:6px;background:var(--soft)}
.track{display:flex;height:100%;overflow-x:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;height:100%;scroll-snap-align:start;overflow:hidden}
.slide img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
@media (hover: hover) and (pointer: fine){
  .gallery .main{cursor:zoom-in}
  .gallery .main.zoom .slide img{transform:scale(1.9)}
}
.gal-dots{display:none;justify-content:center;gap:8px;margin-top:12px}
.gal-dots span{width:7px;height:7px;border-radius:50%;background:#D6D1CC;transition:background .2s,transform .2s}
.gal-dots span.on{background:var(--red);transform:scale(1.2)}
/* the sliced apple: proof of the caramel layer, fills the left column under the gallery */
.inside-sm{grid-area:ins;margin:0;background:var(--white);border-radius:6px;box-shadow:var(--shadow);overflow:hidden}
.inside-sm .ph{aspect-ratio:16/10;max-width:100%;overflow:hidden;background:var(--soft)}
.inside-sm .ph img{width:100%;height:100%;object-fit:cover}
.inside-sm .txt{display:block;padding:22px 24px 24px}
.inside-sm .eyebrow{display:block}
.pg-inside-h{font-family:var(--cond);font-weight:700;font-size:30px;line-height:1.05;text-transform:uppercase;margin-top:8px}
.inside-sm .txt p{font-size:17px;color:var(--ink-2);margin-top:10px;max-width:52ch}
.inside-sm .txt p.cap{font-size:14px;color:var(--muted)}
.thumbs{display:flex;gap:12px;margin-top:14px}
.thumbs button{flex:0 0 96px;max-width:28%;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:5px;overflow:hidden;background:var(--soft);cursor:pointer;transition:border-color .15s}
.thumbs button:hover{border-color:var(--line)}
.thumbs button[aria-pressed="true"]{border-color:var(--ink)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{font-size:15px;color:var(--muted);margin-top:12px;max-width:60ch}
.prod-info .eyebrow{display:block}
.prod-price{font-size:26px;font-weight:500;line-height:1;margin-top:18px;color:var(--ink-2)}
.prod-price small{font-size:15px;color:var(--muted);margin-left:6px}
.prod-desc{margin-top:18px;display:grid;gap:12px}
.prod-desc p{font-size:18px;color:var(--ink-2);max-width:50ch}
.allergy{margin-top:18px;font-size:15px;line-height:1.55;color:var(--muted);max-width:52ch}
.allergy b{font-weight:600;color:var(--ink-2)}
.buy{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:26px}
.stepper{display:inline-flex;align-items:center;height:52px;border:2px solid var(--ink);border-radius:999px}
.stepper button{width:46px;height:100%;background:none;border:0;border-radius:999px;font-size:22px;color:var(--ink);cursor:pointer}
.stepper button:hover{background:var(--soft)}
.stepper output{min-width:28px;text-align:center;font-weight:600;font-size:18px;font-variant-numeric:tabular-nums}
.buy .add{flex:1 1 200px;max-width:320px;padding-block:13px}
.buy .add.done{background:var(--ink);color:var(--white)}
.get{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.get .way{background:var(--soft);padding:18px}
.get .way svg{width:30px;height:30px}
.get .way h3{font-family:var(--cond);font-weight:700;font-size:21px;text-transform:uppercase;margin-top:6px}
.get .way p{font-size:15px;margin-top:4px}

/* swipe rows: a grid on desktop, a scroll-snap row with the next card peeking on phones */
.swipe{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.swipe.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.swipe .season p{margin-top:0;font-size:15px}
.swipe .season figcaption{padding:16px 18px 20px}

/* group-order nudge */
.nudge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 40px;align-items:center;background:var(--ink);color:var(--white);border-radius:6px;padding:clamp(28px,4vw,48px)}
.nudge .script{display:block;font-family:var(--script);color:var(--red);font-size:clamp(46px,5vw,60px);line-height:1}
.nudge p{color:#D5D0CB;margin-top:10px;max-width:50ch}
.nudge .links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px}
.nudge .links a{font-family:var(--cond);font-size:18px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--white);text-underline-offset:5px;text-decoration-color:var(--green)}

/* service: hero caption, steps, terms */
.pg-hero{padding-top:clamp(20px,3vw,40px)}
.hero-fig{margin:0}
.hero-fig figcaption{font-size:15px;color:var(--muted);margin-top:10px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.steps li{border-top:1px solid var(--line);padding-top:22px}
.steps .n{display:inline-grid;place-items:center;width:52px;height:52px;border:2px solid var(--red);border-radius:50%;font-family:var(--cond);font-weight:700;font-size:28px;color:var(--red-ink)}
.steps h3{font-family:var(--cond);font-weight:700;font-size:28px;text-transform:uppercase;line-height:1.05;margin-top:16px}
.steps p{font-size:17px;color:var(--ink-2);margin-top:8px;max-width:36ch}
.terms{margin:18px 0 0;display:grid}
.terms div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;padding:13px 0;border-top:1px solid #E1DDD9}
.terms dt{font-family:var(--cond);font-size:17px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.terms dd{margin:0;font-size:17px;color:var(--ink-2)}
.also .row-card .media{display:block}

@media (max-width: 900px){
  .prod{grid-template-columns:minmax(0,1fr);padding-top:16px}
  .gallery{position:static}
  .hero-fig{order:-1}
  .swipe,.swipe.four{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin-inline:-16px;padding:6px 16px 22px;scrollbar-width:none;overscroll-behavior-x:contain}
  .swipe::-webkit-scrollbar{display:none}
  .swipe > *{flex:0 0 78%;scroll-snap-align:start}
  .nudge{grid-template-columns:minmax(0,1fr)}
  .nudge .pill{justify-self:start}
  .steps{grid-template-columns:minmax(0,1fr);gap:0}
  .steps li{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:18px;padding-block:20px}
  .steps .n{grid-row:span 2;width:44px;height:44px;font-size:24px}
  .steps h3{margin-top:4px;font-size:24px}
  .steps p{margin-top:4px}
}
@media (max-width: 520px){
  .crumbs{font-size:14px;padding-top:16px}
  .get{grid-template-columns:minmax(0,1fr)}
  .buy .add{max-width:none}
  .terms div{grid-template-columns:minmax(0,1fr);gap:2px}
  .swipe .card{padding:12px 12px 18px}
}

/* ---------- second review, 2026-09-28: toast, phone buy bar, quieter chrome, crops, fade-in ---------- */
/* add-to-cart note (in Wix: the Stores mini cart) */
.toast{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;align-items:center;gap:14px;max-width:min(420px,calc(100% - 32px));background:var(--ink);color:var(--white);border-radius:8px;padding:14px 18px;box-shadow:0 12px 32px rgba(18,18,18,.28);font-size:15px;line-height:1.35;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.toast.show{opacity:1;transform:none;pointer-events:auto}
.toast .bow{width:30px;height:17px;flex:none;color:var(--red)}
.toast b{display:block;font-family:var(--cond);font-size:17px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.toast a{margin-left:auto;white-space:nowrap;color:var(--chalk-green);font-weight:500;text-underline-offset:3px}
.cart .n.bump{animation:bump .35s ease}
@keyframes bump{40%{transform:scale(1.35)}}
/* phones: sticky price + Add to cart once the buy box has scrolled away */
.buybar{display:none}
@media (max-width: 900px){
  .buybar{display:flex;align-items:center;justify-content:space-between;gap:14px;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--white);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(18,18,18,.08);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));transform:translateY(110%);transition:transform .25s ease}
  .buybar.show{transform:none}
  .bb-txt{min-width:0;line-height:1.25}
  .bb-txt b{display:block;font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bb-txt span{font-size:15px;color:var(--muted)}
  .buybar .add{flex:none;font-size:16px;padding:10px 20px}
  .pg-product footer{padding-bottom:calc(32px + 76px)}
  .toast{left:16px;right:16px;bottom:16px;max-width:none}
  body.has-buybar .toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  .pg-strip{display:none}
  .prod{grid-template-columns:minmax(0,1fr);grid-template-areas:"gal" "info" "ins";grid-template-rows:auto}
  .track{overflow-x:auto}
  .thumbs{display:none}
  .gal-dots{display:flex}
}
/* related flavors: crop in on the toppings so three similar shots read as three different apples */
.related .card .media img.photo{transform:scale(1.8);transform-origin:50% 80%}
/* fade-in, set by motion.js only on content below the first screen */
.rv{opacity:0;transform:translateY(16px)}
.rv.rv-in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none}}

/* =====================================================================
   REAL SITE ADDITIONS (projects/ruths-big-apples/site, 2026-10-06). Everything above this line is
   the v2 prototype's site.css, copied verbatim. Only the order page is new.
   ===================================================================== */
.cart-page .sec-head{margin-bottom:28px}
.cart-lines{list-style:none;margin:0;padding:0;display:grid;gap:16px;max-width:760px}
.cart-line .stepper{height:44px}
.cart-line .stepper button{width:40px;font-size:20px}
.cart-remove{background:none;border:0;padding:6px 2px;font:inherit;font-size:15px;color:var(--muted);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.cart-remove:hover{color:var(--red-ink)}
.cart-foot{max-width:760px;margin-top:28px;border-top:1px solid var(--line);padding-top:22px}
.cart-note{font-size:16px;color:var(--ink-2)}
.cart-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.cart-actions button[disabled]{opacity:.6;cursor:wait}
.cart-empty a{color:var(--red-ink)}

/* Homepage hero on phones: the photo fills the top of the hero behind the text (Derrick 2026-10-07).
   The whole apple shows above the headline, then fades into the dark hero so the white text never
   sits on the apple (2026-10-07: text over the bow read as out of alignment). Desktop unchanged
   unless hero-bg is on. !important beats the inline object-position on the img. */
@media (max-width: 900px){
  .hero:not(.pg-hero){position:relative;isolation:isolate;overflow:hidden;padding-block:0;background:var(--ink)}
  .hero:not(.pg-hero) .hero-grid{display:block;padding-top:min(87vw,590px);padding-bottom:40px}
  .hero:not(.pg-hero) .hero-grid > div{text-align:center}   /* centered under the centered apple */
  .hero:not(.pg-hero) .hero-actions{justify-content:center}
  .hero:not(.pg-hero) .hero-media{position:absolute;top:0;left:0;right:0;bottom:auto;height:min(100vw,640px);z-index:-1;aspect-ratio:auto;border-radius:0;background:var(--ink)}
  .hero:not(.pg-hero) .hero-media img{object-position:50% 70%!important}
  .hero:not(.pg-hero) .hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,18,18,0) 50%,rgba(18,18,18,.7) 76%,var(--ink) 100%)}
  .hero:not(.pg-hero) .by{color:var(--white);opacity:.9}
  .hero:not(.pg-hero) h1{color:var(--white)}
  .hero:not(.pg-hero) .lede{color:rgba(255,255,255,.92);margin:18px auto 26px}
  .hero:not(.pg-hero) .pill-line{color:var(--white);border-color:var(--white)}
  .hero:not(.pg-hero) .pill-line:hover{background:var(--white);color:var(--ink)}
}

/* Desktop nav: keep each label on one line (2026-10-07, gift pages renamed). */
.nav a{white-space:nowrap}

/* Homepage hero on desktop, "photo behind" (Derrick chose it 2026-10-07 over the v2 photo beside;
   class hero-bg is on the homepage hero in src/pages/home.mjs; remove it to go back). The square photo sits on the right 55%
   so the apple clears the text, and fades into white under the headline. Phones use the rule above. */
@media (min-width: 901px){
  .hero.hero-bg{position:relative;isolation:isolate;overflow:hidden;padding-block:0}
  .hero.hero-bg .hero-grid{display:flex;align-items:center;min-height:clamp(540px,44.5vw,640px)}
  .hero.hero-bg .hero-grid > div:first-child{max-width:620px;padding-block:56px}
  .hero.hero-bg .hero-media{position:absolute;top:0;bottom:0;left:45%;right:0;z-index:-1;aspect-ratio:auto;border-radius:0}
  .hero.hero-bg .hero-media img{object-position:50% 60%!important}
  .hero.hero-bg .hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.75) 14%,rgba(255,255,255,0) 34%)}
}

/* Group tiles on phones: square instead of the v2 16:10, so the portrait party photo shows the
   whole apple (Derrick 2026-10-07: "the party apple card is cut off"). */
@media (max-width: 900px){ .tile{aspect-ratio:1} }
/* Phones: the hero's dark band ends flush, so give the first tile room below it (Derrick 2026-10-07). */
@media (max-width: 900px){ .hero:not(.pg-hero) + section{padding-top:18px} }

/* Plain info pages (src/render/info.mjs): Menu, FAQ, Contact, Policies. 2026-10-07. */
.info-head{padding-top:24px;padding-bottom:0}
.info-head .pg-h1{margin-top:10px}
.info-head .lede{max-width:62ch}
.prose{max-width:760px}
.prose h2{font-family:var(--cond);font-weight:700;text-transform:uppercase;font-size:clamp(24px,2.6vw,30px);line-height:1.1;margin-top:36px}
.prose h2:first-child{margin-top:0}
.prose p,.prose ul{margin-top:12px;font-size:17px;color:var(--ink-2)}
.prose a,.contact-list a{color:var(--red-ink)}
.contact-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px;font-size:18px}
.contact-list b{display:block;font-family:var(--cond);font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* Ordering and owner controls. */
.owner-wrap{max-width:1000px}.owner-wrap h2{margin:32px 0 12px;font:600 30px var(--cond)}
.owner-help{max-width:75ch;margin-bottom:20px}.owner-setup{margin:24px 0}.owner-setup summary{font-weight:600;padding:14px 0;cursor:pointer}
.owner-card{padding:20px;border:1px solid var(--line);border-radius:8px;margin:12px 0;background:#fff}.owner-card p{margin:10px 0}.owner-card h3{font:600 24px var(--cond)}
.product-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}.product-choices label{display:flex;gap:8px;align-items:center}
.card-form fieldset{min-width:0;padding:16px;border:1px solid var(--line);border-radius:8px}.pickup-window{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.pickup-window .full{grid-column:1/-1}
.checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.checkout-fields .full{grid-column:1/-1}.checkout-fields input,.checkout-fields select{width:100%;padding:12px;border:1px solid var(--line);font:inherit}.checkout-fields label{display:block;margin-bottom:6px}
.add:disabled{opacity:.6;cursor:not-allowed}.checkout-terms{margin:16px 0}.checkout-terms label{display:flex;align-items:flex-start;gap:10px}.checkout-terms input{margin-top:4px;flex:none}
@media(max-width:600px){.pickup-window,.checkout-fields{grid-template-columns:1fr}.owner-wrap .cart-actions{gap:10px}.owner-wrap .pill{max-width:100%;white-space:normal}.card-form fieldset{padding:12px}}

.single-review{grid-template-columns:minmax(0,1fr);max-width:720px}

.event-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:10px;margin-top:16px}.event-product{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:8px;min-height:76px}.event-product img{width:64px;height:64px;object-fit:cover;border-radius:6px}.event-product>span{flex:1;min-width:0}.event-product b,.event-product small,.event-product span span{display:block}.event-product small{color:var(--muted);margin-top:4px}.event-product input{width:26px;height:26px;flex-shrink:0;accent-color:var(--green)}.event-product:has(input:disabled){background:var(--soft)}

#productChoices summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}#productChoices .cart-actions{margin-top:12px}
/* Private owner workspace, scoped to avoid changing the storefront. */
.owner-dashboard{background:#f6f5f1;color:#242421}.owner-dashboard main{margin:0}.kitchen-app{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh;max-width:none}.kitchen-sidebar{background:#252522;color:#fff;padding:40px 24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.kitchen-brand{text-decoration:none;color:white;display:block;margin-bottom:48px}.kitchen-brand .script{font-size:34px;line-height:1.1;display:block}.kitchen-brand small{display:block;letter-spacing:.22em;color:#c3c3b8;font-size:10px;margin-top:14px}.kitchen-sidebar nav{display:grid;gap:8px}.kitchen-sidebar nav button{text-align:left;color:#deded6;border:0;border-radius:8px;padding:14px 16px;font:500 14px var(--sans);background:transparent;cursor:pointer}.kitchen-sidebar nav button.active{background:#fff;color:#292924;box-shadow:inset 3px 0 #ce2528}.kitchen-sidebar nav button:hover{background:#45453f;color:#fff}.kitchen-sidebar .view-store{margin-top:auto;color:#e1e1d7;font-size:13px;padding-top:30px}.kitchen-sidebar>p{color:#a8a89d;font-size:11px;margin-top:16px}.kitchen-main{padding:28px 48px 20px;max-width:1400px;width:100%;margin:auto}.kitchen-top{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid #dfdfd5;color:#77796c;font-size:11px;letter-spacing:.12em}.kitchen-dot:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#638446;margin-right:8px}.kitchen-message{font-size:14px;color:#46612b;margin:16px 0;min-height:20px}.kitchen-welcome{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;min-height:330px;background:#fff;border:1px solid #e8e7df;border-radius:16px;overflow:hidden}.kitchen-welcome>div{padding:40px}.kitchen-eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#847a65;display:block;margin-bottom:12px}.kitchen-welcome h1{font:600 clamp(48px,5vw,74px)/.98 var(--cond);margin:0 0 22px;color:#262623}.kitchen-welcome h1 .script{color:#b1282b;font-size:1.1em}.kitchen-welcome p{font-size:15px;line-height:1.6;color:#737368;max-width:350px;margin-bottom:24px}.kitchen-welcome img{width:100%;height:360px;object-fit:cover}.kitchen-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 32px}.kitchen-stats button{padding:22px;text-align:left;border:1px solid #e2e2d7;border-radius:12px;background:#fff;cursor:pointer;min-width:0}.kitchen-stats span,.kitchen-stats small{display:block;color:#77796e;font-size:12px}.kitchen-stats b{font:600 34px var(--cond);display:block;margin:12px 0 8px}.kitchen-stats small{font-size:11px;line-height:1.4}.kitchen-app h2{font:600 36px/1.1 var(--cond);margin:0 0 12px}.kitchen-app h3{font:600 24px var(--cond)}.kitchen-next{padding:12px 0 28px}.kitchen-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.kitchen-quick button{padding:24px;text-align:left;background:#eeeeE6;border:1px solid #dfdfd3;border-radius:10px;cursor:pointer}.kitchen-quick b{font:600 22px var(--cond);display:block;margin-bottom:8px}.kitchen-quick span{font:400 13px/1.6 var(--sans);color:#747569}.kitchen-heading{padding:12px 0 24px}.kitchen-heading h2{font-size:44px}.kitchen-heading p{color:#737569;max-width:660px;line-height:1.6;font-size:15px}.availability-key{display:flex;gap:20px;flex-wrap:wrap;padding:16px 0 24px;font-size:12px;color:#75766b}.mode-dot{display:inline-block;height:8px;width:8px;border-radius:50%;background:#ba8e4d;margin-right:5px}.mode-dot.off{background:#94958a}.mode-dot.anytime{background:#6a8b4a}.availability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:22px}.availability-card{background:white;border:1px solid #e4e3da;border-radius:12px;overflow:hidden}.availability-photo{position:relative;aspect-ratio:1.2;background:#fff}.availability-photo img{width:100%;height:100%;object-fit:cover}.availability-price{position:absolute;right:12px;bottom:12px;background:#fff;padding:6px 10px;border-radius:6px;font-size:13px;box-shadow:0 2px 12px #0000000a}.availability-details{padding:18px}.availability-details h3{margin:0 0 16px;font-size:24px}.availability-details label{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#7c7d70;display:block;margin-bottom:7px}.availability-details select{width:100%;min-height:44px;background:#f6f6f1;border:1px solid #dcdcd1;border-radius:7px;padding:9px;font:500 13px var(--sans);color:#42483a}.availability-caption{font-size:11px;line-height:1.6;color:#7d7e72;margin-top:10px;min-height:35px}.kitchen-note{color:#737569;font-size:12px;line-height:1.7;margin:24px 0}.kitchen-note summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.kitchen-status-card{border-radius:12px;background:#eef1e7;border:1px solid #dce2cd;padding:24px;margin-bottom:22px}.kitchen-status-card p{font-size:16px;line-height:1.6;margin-bottom:16px}.kitchen-app .owner-card{border-color:#e4e3d8;border-radius:12px;padding:24px}.kitchen-setup{padding:22px 24px;background:white;border:1px solid #e4e3d8;border-radius:12px;margin:24px 0}.kitchen-setup>summary{font:600 25px var(--cond);cursor:pointer;min-height:44px}.kitchen-setup .card-form{margin-top:24px}.kitchen-empty{border:1px dashed #d4d5c8;background:#fff;border-radius:12px;padding:48px 30px;text-align:center}.kitchen-empty h3{margin-bottom:10px}.kitchen-empty p{font-size:14px;color:#7d7f71}.kitchen-attention{margin-top:28px;padding:24px;border-top:1px solid #dedfd2}.order-badge{display:inline-block;padding:5px 10px;font-size:11px;background:#edf2e4;color:#587235;border-radius:5px;margin-bottom:12px}.order-badge.request{background:#f4edde;color:#947039}.kitchen-footer{border-top:1px solid #ddded2;padding:24px 0 4px;margin-top:40px;color:#939587;font-size:10px;display:flex;justify-content:space-between;gap:16px}.owner-dashboard [hidden]{display:none!important}.kitchen-app button:focus-visible,.kitchen-app select:focus-visible{outline:3px solid #a0be79;outline-offset:3px}
@media(max-width:1100px){.kitchen-main{padding:24px}.kitchen-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.kitchen-quick{grid-template-columns:1fr}.kitchen-welcome>div{padding:28px}.kitchen-welcome img{height:340px}}
@media(max-width:700px){.kitchen-app{display:block}.kitchen-sidebar{position:relative;height:auto;padding:22px 20px}.kitchen-brand{margin-bottom:20px}.kitchen-brand .script{font-size:30px}.kitchen-brand small{margin-top:8px}.kitchen-sidebar nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.kitchen-sidebar nav button{white-space:nowrap;padding:12px;font-size:12px}.kitchen-sidebar .view-store{display:block;font-size:11px;padding-top:16px;margin:0}.kitchen-sidebar>p{display:none}.kitchen-main{padding:20px 16px}.kitchen-welcome{grid-template-columns:1fr}.kitchen-welcome>div{padding:28px 24px}.kitchen-welcome img{height:220px;object-position:50% 60%}.kitchen-welcome h1{font-size:54px}.kitchen-stats{gap:10px}.kitchen-stats button{padding:16px}.kitchen-stats b{font-size:30px}.kitchen-heading h2{font-size:38px}.availability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.availability-details{padding:12px}.availability-details h3{font-size:21px;min-height:48px}.availability-details select{font-size:11px;padding:6px}.availability-photo{aspect-ratio:1}.availability-price{right:7px;bottom:7px;padding:5px 7px;font-size:12px}.kitchen-footer{display:block}.kitchen-footer span{display:block;margin-top:8px}.kitchen-setup{padding:18px}.kitchen-status-card{padding:20px}}
@media(prefers-reduced-motion:no-preference){.kitchen-app button,.availability-card{transition:background .15s,box-shadow .15s}.availability-card:hover{box-shadow:0 8px 24px #2525220a}}

.kitchen-pause{font:500 11px var(--sans);padding:8px 12px;border:1px solid #d9dace;border-radius:6px;background:#fff;color:#676b5c;cursor:pointer;min-height:44px}

.kitchen-brand .script,.kitchen-welcome h1 .script{font-family:var(--script);font-weight:400}.kitchen-sidebar nav button.active:hover{background:#fff;color:#292924}.kitchen-sidebar nav button:hover:not(.active){background:#45453f;color:#fff}
@media(max-width:360px){.availability-grid{grid-template-columns:1fr}.availability-photo{aspect-ratio:1.5}.availability-details h3{min-height:0}.availability-details select{font-size:14px}.kitchen-stats b{font-size:26px}}

.apple-slide{display:flex!important;align-items:center;gap:10px;position:relative;padding:12px 0;margin:0!important;border-bottom:1px solid #eeeee8;cursor:pointer;font:500 13px var(--sans)!important;color:#333!important}.apple-slide>span:first-child{flex:1}.apple-slide input{position:absolute;right:0;width:48px;height:28px;opacity:0;cursor:pointer;margin:0}.slide-track{width:48px;height:28px;border-radius:18px;background:#b8bab1;flex:none;pointer-events:none;transition:background .15s}.slide-track:before{content:'';display:block;width:22px;height:22px;border-radius:50%;background:white;margin:3px;box-shadow:0 1px 3px #0002;transition:transform .15s}.apple-slide input:checked+.slide-track{background:#729e2c}.apple-slide input:checked+.slide-track:before{transform:translateX(20px)}.apple-slide input:focus-visible+.slide-track{outline:3px solid #252522;outline-offset:3px}.apple-slide input:disabled+.slide-track{opacity:.4}
/* Festival-first owner tasks */
.kitchen-heading h1{font:600 44px/1.1 var(--cond);margin:0 0 12px}.festival-empty{display:grid;grid-template-columns:1.25fr 1fr;background:#fff;border:1px solid #e4e3da;border-radius:16px;overflow:hidden}.festival-empty>div{padding:36px}.festival-empty h2{font-size:38px}.festival-empty p{color:#737368;line-height:1.6;margin:20px 0}.festival-empty img{width:100%;height:320px;object-fit:cover}.festival-card{padding:30px;background:#fff;border:1px solid #e4e3da;border-radius:16px}.festival-card-top,.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.festival-card-top h2{margin-bottom:0}.festival-master{flex:none;min-width:195px}.festival-facts{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin:24px 0;padding:24px;background:#f5f5ef;border-radius:10px}.festival-facts b{font-size:13px;color:#53584a}.festival-facts p{font-size:14px;line-height:1.6;margin:8px 0 16px}.festival-menu{border-top:1px solid #e5e5db;margin-top:28px;padding-top:24px}.festival-menu>p{font-size:14px;color:#6b7064}.festival-apples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.festival-apple{position:relative;display:flex;align-items:center;gap:12px;border:1px solid #e3e4da;border-radius:10px;background:#fff;padding:10px;cursor:pointer;min-width:0}.festival-apple img{width:62px;height:68px;object-fit:cover;border-radius:6px;flex:none}.festival-apple-name{flex:1;min-width:0}.festival-apple b{display:block;font-size:14px;line-height:1.35;font-weight:600}.festival-apple small{display:block;margin-top:4px;color:#787a70;font-size:12px}.festival-apple input{position:absolute;right:10px;width:48px;height:28px;opacity:0;cursor:pointer}.festival-apple input:checked+.slide-track{background:#729e2c}.festival-apple input:checked+.slide-track:before{transform:translateX(20px)}.festival-apple input:focus-visible+.slide-track{outline:3px solid #252522;outline-offset:3px}.festival-apple input:disabled+.slide-track{opacity:.4}.festival-review{padding:22px;background:#f2f5ed;border-radius:10px}.festival-review p{font-size:14px;line-height:1.7}.festival-editor>.editor-heading h2{font-size:30px}.festival-editor .card-form{box-shadow:none;padding:0;border:0;margin-top:24px}.festival-editor .field small{display:block;color:#74796d;font-size:12px;margin-top:6px}.selling-requests{margin-top:26px;padding:24px;border:1px solid #dfdfd3;border-radius:12px;background:#eeeee6}.selling-requests p{font-size:14px;line-height:1.6;color:#6b7064}.kitchen-sidebar nav button span{float:right}.festival-card .cart-actions{flex-wrap:wrap}.festival-editor fieldset{min-width:0}.festival-editor .pickup-window{display:grid;grid-template-columns:1fr 1fr;gap:16px}.festival-editor details>summary{cursor:pointer;font-size:14px;font-weight:600}.festival-editor .full{grid-column:1/-1}
@media(min-width:1250px){.festival-apples{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.festival-empty{grid-template-columns:1fr}.festival-empty>div{padding:24px}.festival-empty img{height:200px}.festival-card{padding:20px}.festival-card-top{align-items:flex-start;flex-direction:column}.festival-facts{grid-template-columns:1fr;gap:8px;padding:18px}.festival-apples{grid-template-columns:1fr}.festival-apple img{width:54px;height:58px}.festival-master{width:100%}.editor-heading{flex-wrap:wrap}.festival-editor .pickup-window{grid-template-columns:1fr}.festival-card .cart-actions .pill{font-size:13px;padding:12px 16px}}
