/* Sweet's Flowers order page: one calm list going down, styled from the Hero kit (kit.css).
   Bodoni headings with one italic word, hairline dividers, ink + controls, prices set in Bodoni and lined up. */

/* Page heading */
.page-head{padding:36px 0 28px}
.page-head h1{font-size:56px;line-height:.95}
.page-head .lead{margin-top:16px;max-width:36ch}
.ph-note{margin-top:14px;font-size:14px;color:var(--muted);max-width:44ch}

/* Category bar: sticky under the header, text links with a pink underline on the one in view */
.jump-bar{position:sticky;top:64px;z-index:15;background:var(--stone);border-block:1px solid var(--line)}
.jump{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none}
.jump::-webkit-scrollbar{display:none}
.jump a{flex:none;text-decoration:none;font-weight:500;font-size:15px;color:var(--muted);padding:15px 0 13px;border-bottom:2px solid transparent}
.jump a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}

/* The list */
.menu{background:var(--paper);padding:24px 0 56px}
#mcount{margin:0;font-size:14px;color:var(--muted)}
#menu{display:grid;gap:56px;margin-top:28px}
.mcat{scroll-margin-top:130px}
.mfig{margin:0 0 22px}
.mph{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.mcat h2{font-size:36px;line-height:1.05}
.mnote{color:var(--muted);font-size:15px;margin-top:10px;max-width:40ch}
.mlist{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
.mlist li{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.mi{flex:1;min-width:0}
.mi b{display:block;font-weight:600;font-size:17px;line-height:1.3}
.sz{display:block;font-size:13px;color:var(--muted);margin-top:2px;letter-spacing:.02em}
.idesc{display:block;font-size:14.5px;line-height:1.5;color:var(--muted);margin-top:4px}
.mlist .p{font:400 20px/1 var(--display);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;min-width:48px;text-align:right}
.mlist .p.ask{font:500 14px/1 var(--body);color:var(--muted);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.m-foot{margin-top:40px;display:grid;gap:8px;font-size:14.5px;color:var(--muted);max-width:60ch}

/* The + control: a small round ink outline, filled on hover */
.o-ctl{display:inline-flex;align-items:center;gap:6px;flex:none}
.o-add{width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);font:400 24px/1 var(--body);cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.o-add:hover{background:var(--ink);color:var(--paper)}
.o-q{position:relative;width:34px;height:34px;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);font:400 18px/1 var(--body);cursor:pointer;display:grid;place-items:center}
.o-q::after{content:"";position:absolute;inset:-5px}
.o-n{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}

/* Custom cake band */
.m-custom{background:var(--pink);padding:48px 0}
.m-custom h2{font-size:38px;line-height:1.05}
.m-custom p{margin-top:12px;max-width:46ch}
.m-custom .nw{white-space:nowrap}

/* Floating order bar */
.o-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));width:min(520px,calc(100% - 24px));z-index:60}
.o-bar[hidden]{display:none}
.o-bar>button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);padding:8px 8px 8px 22px;font:600 15px/1.25 var(--body);text-align:left;cursor:pointer;box-shadow:0 18px 40px -18px rgba(43,34,32,.6)}
.o-bar small{display:block;opacity:.8;font-weight:400;font-size:13px;font-variant-numeric:tabular-nums}
.o-bar-b{background:var(--paper);color:var(--ink);border-radius:999px;padding:11px 18px;white-space:nowrap}
body.o-has{padding-bottom:96px}

/* Order sheet */
.o-scrim{position:fixed;inset:0;background:rgba(43,34,32,.45);z-index:80}
.o-sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);max-height:90vh;background:var(--paper);color:var(--ink);border-radius:20px 20px 0 0;z-index:81;display:flex;flex-direction:column;font-family:var(--body);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:700px){.o-sheet{bottom:auto;top:50%;transform:translate(-50%,-50%);border-radius:20px}}
.o-head{display:flex;align-items:center;gap:8px;padding:18px 20px 10px}
.o-head h3{flex:1;font-size:28px}
.o-x,.o-back{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:22px;line-height:1;cursor:pointer;flex:none}
.o-body{overflow-y:auto;padding:4px 20px 14px;display:grid;gap:14px}
.o-lines{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.o-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.o-ln{font-weight:600;grid-column:1 / -1}
.o-ln small{display:block;font-weight:400;font-size:13px;color:var(--muted)}
.o-lp{font:400 18px/1 var(--display);font-variant-numeric:lining-nums tabular-nums;text-align:right}
.o-lp.o-tbc{font:500 13.5px/1.2 var(--body);color:var(--muted)}
.o-tot{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:17px}
.o-tot b{font:400 20px/1.2 var(--display);text-align:right}
.o-sum{margin:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:15px}
.o-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.o-two .o-f{align-content:end}
.o-f{display:grid;gap:6px;font-weight:600;font-size:14.5px;align-content:start}
.o-f small{font-weight:400;color:var(--muted)}
.o-f select,.o-f textarea,.o-f input{font:400 16px/1.4 var(--body);color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px;width:100%;min-height:48px;-webkit-appearance:none;appearance:none}
.o-f select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232B2220' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:34px}
.o-f [aria-invalid="true"]{border-color:#9A2F2F}
.o-link{justify-self:start;border:0;background:none;padding:6px 0;color:var(--ink);font:600 14.5px/1.3 var(--body);text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.o-err{margin:0;color:#9A2F2F;font-size:14px;font-weight:600}
.o-err:empty{display:none}
.o-small{margin:0;font-size:13.5px;line-height:1.5;color:var(--muted)}
.o-empty{color:var(--muted)}
.o-foot{padding:12px 20px 16px;border-top:1px solid var(--line)}
.o-pay{width:100%;min-height:52px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);font:600 16px/1 var(--body);cursor:pointer}
.o-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.o-paywith{margin:8px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.o-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(440px,calc(100% - 32px));background:var(--ink);color:var(--paper);padding:13px 16px;border-radius:14px;font:500 14.5px/1.45 var(--body);z-index:90;text-align:center}
.mlist li.o-just{background:color-mix(in srgb,var(--pink) 45%,transparent)}
@media (prefers-reduced-motion:no-preference){.o-sheet{animation:o-up .22s ease-out}@keyframes o-up{from{opacity:.5;translate:0 24px}}}

/* What she would get: the order card */
.o-ticket{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;font-size:14.5px;line-height:1.5;display:grid;gap:8px}
.o-tk-row{display:flex;justify-content:space-between;gap:12px;margin:0}
.o-tk-row span:last-child,.o-tk-row b:last-child{text-align:right}
.o-tk-lines{list-style:none;margin:0;padding:8px 0;border-block:1px solid var(--line);display:grid;gap:4px}
.o-tk-lines li{display:flex;justify-content:space-between;gap:12px}
.o-tk-note{margin:0;color:var(--muted)}

/* Desktop: a wider page head, then each cake type as a spread: photo or heading on the left, the list on the right */
@media (min-width:900px){
  .page-head{padding:72px 0 48px}
  .page-head .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:64px;align-items:end}
  .page-head h1{font-size:112px;grid-row:1 / span 2}
  .page-head .lead{margin:0;font-size:19px}
  .ph-note{grid-column:2}
  .jump-bar{top:76px}
  .jump{gap:36px}
  .menu{padding:40px 0 88px}
  #menu{gap:88px;margin-top:40px}
  .mcat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px;align-items:start;scroll-margin-top:150px}
  .mcat .mfig{grid-column:1;grid-row:1 / span 2;margin:0;position:sticky;top:150px}
  .mcat .mhead,.mcat .mlist{grid-column:2}
  .mcat .mlist{margin-top:22px}
  .mcat:not(.has-ph) .mhead{grid-column:1;grid-row:1;position:sticky;top:150px}
  .mcat:not(.has-ph) .mlist{grid-row:1;margin-top:0}
  .mcat h2{font-size:48px}
  .mph{aspect-ratio:4/5}
  .m-foot{margin-left:calc((100% - 72px) * 5 / 12 + 72px)}
  .m-custom{padding:72px 0}
  .m-custom .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px;align-items:end}
  .m-custom h2{font-size:56px}
  .m-custom p{margin:0;font-size:19px}
}
