/* Cart, checkout, accounts, and the add-to-cart controls on dish cards.
   Loaded on every public page because the header's cart link is on all of
   them. site.css styles bare `label`, `input`, `header` and `form .button`,
   so several rules here exist only to undo those inside the new markup. */

/* site.css gives every bare <form> a cream background and 45px of padding,
   meant for the big order forms. None of the forms below want either. */
.dish-cart-form,.cm-cart-form,.seo-cart-form,.shop-form,.cart-line-actions form,.account-signout{background:none;color:inherit;padding:0}
#preorder,#preorder-dishes{scroll-margin-top:110px}

/* ---------- header cart link ---------- */
.header-cart{position:relative;display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:13px;white-space:nowrap}
.header-cart svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header-cart b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--hf-gold,#c6922e);color:#111;font:700 11px/20px "DM Sans",sans-serif;text-align:center}
.header-cart:hover,.header-cart:focus-visible{color:var(--hf-gold,#c6922e)}
@media(max-width:1180px){.header-cart span{display:none}}
@media(max-width:850px){
  /* The nav collapses behind the toggle here; the cart stays in the bar. */
  .site-header{gap:14px}
  .header-cart{order:2;margin-left:auto;padding:10px 4px}
  .site-header .nav-toggle{order:3;margin-left:0}
}

/* ---------- add to cart on the homepage dish cards ---------- */
.fresh-menu .dish-cart-form{display:flex;align-items:stretch;margin:0;background:var(--hf-gold);box-shadow:0 -5px 22px rgba(0,0,0,.18)}
.fresh-menu .dish-qty{flex:0 0 92px;justify-content:center;gap:4px;padding:9px 0 9px 14px;color:#111;font-size:9px;letter-spacing:.12em}
.fresh-menu .dish-qty input{padding:8px 4px;border:1px solid #111;background:#fff;font:700 16px "DM Sans",sans-serif;text-align:center}
.fresh-menu .dish-cart-button{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px;padding:16px 20px;border:0;background:transparent;color:#111;font:700 14px "DM Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.fresh-menu .dish-cart-button:hover,.fresh-menu .dish-cart-button:focus-visible{background:#e0b24c;outline:3px solid #111;outline-offset:-4px}
.fresh-menu .dish-cart-button strong{font:700 25px "Cormorant Garamond",serif;letter-spacing:0}
.fresh-menu .single-dish .dish-cart-form,.fresh-menu .single-dish .expired-order-label{grid-column:2;grid-row:2}
.dish-not-open .dish-image img{filter:saturate(.75)}
.preorder-menu{padding-top:0}
@media(max-width:850px){
  .fresh-menu .single-dish .dish-cart-form,.fresh-menu .single-dish .expired-order-label{grid-column:1;grid-row:3}
}

/* ---------- add to cart on /catering-menu/ (dark page) ---------- */
.cm-cart-form{display:flex;align-items:flex-end;gap:10px;margin:0}
.cm-cart-form .cm-qty{flex:0 0 96px;color:#d8cfbf}
.cm-cart-form input{padding:12px 8px;font:600 16px "DM Sans",sans-serif;text-align:center}
.cm-cart-form .button{flex:1;width:auto;margin-top:0;padding:15px 12px;gap:0}
.cm-desc{margin:0 0 14px;color:#bcb4a7;font-size:13px;line-height:1.65}
.cm-cart-link{margin:34px 0 0;text-align:center}
.cm-notes{max-width:760px;margin:26px auto 0;color:#bcb4a7;font-size:13px;line-height:1.7;text-align:center}
.cm-notes strong{color:#fff}
.catering-menu.cm-standalone{max-width:1180px;margin:0 auto;padding:10px 5vw 50px}

/* ---------- add to cart on a dish page ---------- */
.seo-cart-form{display:flex;align-items:flex-end;gap:12px;margin-top:22px;max-width:420px}
.seo-cart-form label{flex:0 0 110px}
.seo-cart-form input{font-size:16px;text-align:center}
.seo-cart-form .button{flex:1;width:auto;margin-top:0}
.seo-cart-link{display:inline-block;margin-top:14px;color:#8a6420;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ---------- shared page shell ---------- */
.shop-page{max-width:980px;margin:0 auto}
.shop-narrow{max-width:520px}
.shop-head{margin-bottom:28px;text-align:center}
.shop-head h1{margin:10px 0 12px;font:600 clamp(36px,5vw,56px)/1.02 "Cormorant Garamond",serif}
.shop-head h1 em{color:#b8860f;font-weight:500}
.shop-head-note{max-width:560px;margin:0 auto;color:#5f594f;font-size:15px;line-height:1.7}
.shop-head-note a,.shop-switch a,.shop-form-links a,.shop-secondary-link{color:#8a6420;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.shop-card,.shop-form.shop-card{padding:22px;border:1px solid #e7e0d5;border-radius:14px;background:#fff}
.shop-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:16px 0 4px;padding-top:14px;border-top:2px solid #191713;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.shop-total strong{font:700 28px "Cormorant Garamond",serif;letter-spacing:0;color:#191713}
.shop-switch{margin:20px 0 0;text-align:center;color:#5f594f;font-size:14px}
.shop-on-light.button.secondary{background:#fff;color:#191713;border-color:#191713}
.shop-on-light.button.secondary:hover{background:#191713;color:#fff}

/* ---------- forms ---------- */
.shop-form h2{margin:26px 0 12px;font:600 24px "Cormorant Garamond",serif}
.shop-form h2:first-of-type{margin-top:0}
.shop-form .form-grid.single{grid-template-columns:1fr}
.shop-form .wide{grid-column:1/-1}
.shop-form input,.shop-form textarea{font-size:16px;border-radius:8px}
.shop-form .form-error{margin:0 0 14px;padding:12px 14px;border-radius:8px;background:#fbeeee;font-size:13px}
.shop-form .errorlist{margin:0;padding:0;list-style:none;font-size:12px;letter-spacing:0;text-transform:none;font-weight:500}
.shop-form-note{margin:-4px 0 14px;color:#5f594f;font-size:14px;line-height:1.65}
.shop-form-foot{display:block;margin-top:10px;color:#7a7469;font-size:12px;text-align:center}
.shop-form-links{margin:14px 0 0;text-align:center;font-size:13px}
.shop-help{color:#7a7469;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none}
.shop-form .privacy-note,.shop-form .allergen-note{margin:16px 0 0;color:#5f594f;font-size:12.5px;line-height:1.65}
.shop-choice{margin:0;padding:0;border:0;min-width:0}
.shop-choice legend{margin-bottom:8px;padding:0;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase}
.shop-choice label{flex-direction:row;align-items:center;gap:10px;margin-bottom:8px;padding:13px 14px;border:1px solid #d7cebe;border-radius:8px;font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;cursor:pointer}
.shop-choice label:has(input:checked){border-color:#b8860f;background:#fbf6ea}
.shop-choice input{width:auto;padding:0;accent-color:#b8860f}
.shop-link-button{padding:8px 2px;border:0;background:none;color:#8a6420;font:600 13px "DM Sans",sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.shop-link-button.danger{color:#a62b2b}

/* ---------- cart ---------- */
.cart-lines{margin:0;padding:0;list-style:none;border-top:1px solid #ece5da}
.cart-line{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:14px;padding:18px 0;border-bottom:1px solid #ece5da}
.cart-line.has-problem{background:#fdf5f4;margin:0 -12px;padding:18px 12px}
.cart-thumb{display:block;width:84px;height:84px;border-radius:10px;overflow:hidden;background:#f1ece3}
.cart-thumb img{width:100%;height:100%;object-fit:cover}
.cart-thumb .seo-placeholder{font-size:20px}
.cart-line-body h2{margin:0 0 3px;font:600 22px/1.15 "Cormorant Garamond",serif}
.cart-line-meta{margin:0;color:#b8860f;font-size:13px;font-weight:600}
.cart-line-when{margin:4px 0 0;color:#6f6960;font-size:13px;line-height:1.5}
.cart-problem{margin:8px 0 0;color:#a62b2b;font-size:13px;font-weight:600}
.cart-line-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 16px;margin-top:10px}
.cart-line-actions form{display:flex;align-items:flex-end;gap:10px;margin:0}
.cart-qty-form label{width:88px}
.cart-qty-form input{padding:9px 6px;font-size:16px;text-align:center;border-radius:8px}
.cart-line-total{font:700 22px "Cormorant Garamond",serif;white-space:nowrap}
.cart-foot{max-width:420px;margin:22px 0 0 auto}
.cart-foot small{display:block;color:#7a7469;font-size:12px;line-height:1.6}
.cart-foot .button{width:100%;margin-top:18px}
.cart-foot .shop-secondary-link{display:block;margin-top:14px;text-align:center;font-size:13px}
.seo-empty .button{margin-top:10px}

/* ---------- checkout ---------- */
.checkout-grid{display:grid;grid-template-columns:1fr;gap:26px}
.shop-summary{padding:20px;border-radius:14px;background:#faf6ee;border:1px solid #ece5da}
.shop-summary ul,.order-lines{margin:12px 0 0;padding:0;list-style:none}
.shop-summary li,.order-lines li{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #ece5da;font-size:14px}
.shop-summary li b,.order-lines li b{display:block;font-weight:600}
.shop-summary li small,.order-lines li small{display:block;margin-top:2px;color:#7a7469;font-size:12px}
.shop-summary li strong,.order-lines li strong{white-space:nowrap}
.shop-summary>small{color:#7a7469;font-size:12px;line-height:1.6}
.order-lines{margin-top:0}
.order-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:14px 0 0;font-size:13.5px}
.order-facts dt{color:#7a7469}
.order-facts dd{margin:0;font-weight:600}
@media(min-width:860px){
  .checkout-grid{grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:start}
  .checkout-grid .shop-summary{order:2;position:sticky;top:104px}
}

/* ---------- account ---------- */
.account-grid{display:grid;grid-template-columns:1fr;gap:30px}
.account-grid h2{margin:0 0 14px;font:600 28px "Cormorant Garamond",serif}
.account-order{margin-bottom:14px}
.account-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.account-order-head h3{margin:0;font:600 17px/1.25 "DM Sans",sans-serif}
.account-order-head h3 small{display:block;margin-top:3px;color:#7a7469;font-size:12px;font-weight:400}
.order-status{padding:5px 10px;border-radius:999px;background:#f1ece3;color:#4f4a43;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.order-status.new{background:#fdf1d6;color:#8a6206}
.order-status.confirmed{background:#e3f0fa;color:#1f5f8a}
.order-status.ready,.order-status.collected{background:#e2f3e8;color:#1f7a45}
.account-signout{margin:18px 0 0;text-align:center}
@media(min-width:860px){.account-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:start}}

@media(max-width:560px){
  .cart-line{grid-template-columns:64px minmax(0,1fr)}
  .cart-thumb{width:64px;height:64px}
  .cart-line-total{grid-column:2;justify-self:end}
  .cart-foot{max-width:none}
  .shop-card,.shop-form.shop-card{padding:18px 16px}
}

/* A label is display:flex, which would otherwise beat the hidden attribute. */
.shop-form [hidden]{display:none!important}
