/* A single menu for browsing the catalogue and planning a cake request. */
.menu-page .menu-hero,
.menu-page .menu-cakes,
.menu-page .menu-information { padding-inline:var(--page-inset); }
.menu-page .menu-hero { display:grid;gap:20px;padding-block:20px 36px; }
.menu-page .menu-intro { min-width:0; }
.menu-page .menu-intro .eyebrow { margin-bottom:16px; }
.menu-page .menu-intro h1 { margin:0;font-family:var(--sans);font-size:var(--type-page-title);font-weight:650;line-height:1.04;letter-spacing:-.045em;text-transform:uppercase; }
.menu-page .menu-hero-copy { max-width:43ch;margin:0;color:var(--muted);font-size:var(--type-copy);line-height:var(--line-copy); }
.menu-page .catalog-list { padding-block:40px var(--section-space); }
.menu-page .catalog-heading { margin-bottom:22px; }
.menu-page .catalog-tools { width:auto;margin-left:auto; }
.menu-page .catalog-note { padding:0 0 20px;border-top:0;margin-bottom:24px; }
.menu-page .catalog-note p { max-width:74ch; }
.menu-page .menu-search { max-width:720px;margin-bottom:24px; }
.menu-page .menu-search>label { display:block;margin-bottom:10px;font-size:14px;font-weight:600;line-height:1.5; }
.menu-page .menu-search-field { display:flex;align-items:center;gap:12px;min-height:52px;padding-left:16px;border:1px solid var(--line);border-radius:2px;background:var(--paper); }
.menu-page .menu-search-field>svg { flex:none;color:var(--muted); }
.menu-page .menu-search-field:focus-within { border-color:var(--clay);outline:2px solid var(--clay);outline-offset:3px; }
.menu-page .menu-search input { width:100%;min-width:0;min-height:52px;padding:12px 14px 12px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font:400 16px/1.5 var(--sans);outline:none; }
.menu-page .menu-search input::placeholder { color:var(--muted);opacity:1; }
.menu-page .menu-search input::-webkit-search-cancel-button { display:none; }
.menu-page .menu-search-clear { display:grid;place-items:center;flex:none;min-width:44px;min-height:44px;margin-right:4px;padding:10px;border:0;background:transparent;color:var(--muted);cursor:pointer; }
.menu-page .menu-search-clear:hover { color:var(--ink);background:var(--cream); }
.menu-page .menu-search-clear:focus-visible { outline-offset:-3px; }
.menu-page .menu-search-meta { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 16px;margin-top:4px; }
.menu-page .menu-search-meta p { margin:8px 0;color:var(--muted);font-size:13px;line-height:1.6; }
.menu-page .menu-search-reset { min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--ink);font:500 13px/1.5 var(--sans);text-decoration:underline;text-underline-offset:4px;cursor:pointer; }
.menu-page .menu-search-reset:hover { color:var(--clay); }
.menu-page .menu-empty { padding:32px 24px;border:1px solid var(--line);background:var(--cream); }
.menu-page .menu-empty h3 { margin:0 0 12px;font:500 clamp(24px,4vw,32px)/1.2 var(--serif);letter-spacing:-.025em; }
.menu-page .menu-empty p { max-width:45ch;margin:0 0 24px;color:var(--muted);font-size:var(--type-copy);line-height:var(--line-copy); }
.menu-page .menu-empty .button { min-height:48px; }
.menu-page .menu-empty-actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px; }
.menu-page .menu-empty-actions .menu-search-reset { text-align:left; }
.menu-page .filters { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px; }
.menu-page .menu-results-summary { margin:0 0 24px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.6;overflow-wrap:anywhere;scroll-margin-top:24px; }
.menu-page .product-grid { gap:24px; }
.menu-page .product-card-copy { padding:24px 24px 18px; }
.menu-page .product-card-copy p { max-width:40ch; }
.menu-page .menu-cakes { scroll-margin-top:24px;display:grid;gap:32px;align-items:center;padding-block:var(--section-space); }
.menu-page .menu-cakes-image { position:relative;min-width:0;margin:0;overflow:hidden;background:var(--sand);aspect-ratio:4 / 3; }
.menu-page .menu-cakes-image img { display:block;width:100%;height:100%;object-fit:cover;filter:var(--photo-grade); }
.menu-page .menu-cakes-image figcaption { position:absolute;left:16px;bottom:16px;max-width:calc(100% - 32px);padding:8px 10px;background:var(--paper);color:var(--muted);font-size:11px;line-height:1.5;letter-spacing:.08em; }
.menu-page .menu-cakes-copy h2,
.menu-page .menu-information h2 { font:500 var(--type-section)/1.12 var(--serif);letter-spacing:-.035em; }
.menu-page .menu-cakes-copy p:not(.eyebrow) { max-width:44ch;margin:24px 0;color:var(--muted);font-size:var(--type-copy);line-height:var(--line-copy); }
.menu-page .menu-cakes-copy p.menu-cakes-timing { padding-left:18px;border-left:2px solid var(--clay);font-size:14px; }
.menu-page .menu-cakes-timing strong { display:block;color:var(--ink); }
.menu-page .menu-cakes-copy .button { width:100%; }
.menu-page .menu-cakes-copy p.menu-cakes-note { margin:16px 0 0;font-size:var(--type-small-copy);line-height:var(--line-small-copy); }
.menu-page .menu-information { display:grid;grid-template-columns:minmax(0,1fr);gap:32px;padding-block:var(--section-space);background:var(--cream); }
.menu-page .menu-information>* { min-width:0; }
.menu-page .menu-questions { min-width:0; }
.menu-page .menu-questions details { border-top:1px solid var(--line); }
.menu-page .menu-questions details:last-child { border-bottom:1px solid var(--line); }
.menu-page .menu-questions summary { list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding-block:18px;font-size:16px;font-weight:600;line-height:1.5;cursor:pointer; }
.menu-page .menu-questions summary::-webkit-details-marker { display:none; }
.menu-page .menu-questions summary svg { flex-shrink:0;transition:transform .18s; }
.menu-page .menu-questions details[open] summary svg { transform:rotate(180deg); }
.menu-page .menu-questions summary:hover,.menu-page .menu-questions details[open] summary { color:var(--clay); }
.menu-page .menu-questions p { margin:0 0 20px;color:var(--muted);font-size:var(--type-copy);line-height:var(--line-copy); }
.menu-page .menu-questions .text-link { margin-bottom:20px; }
@media (min-width:621px) {
  .menu-page .menu-hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--section-gap);align-items:end;padding-block:24px 48px; }
  .menu-page .menu-cakes { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--section-gap); }
  .menu-page .menu-cakes-image { aspect-ratio:1 / 1.15; }
  .menu-page .menu-cakes-copy .button { width:auto; }
}
@media (min-width:851px) {
  .menu-page .catalog-list { padding-top:48px; }
  .menu-page .menu-cakes-image { aspect-ratio:1.18; }
  .menu-page .menu-information { grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:var(--section-gap); }
}
@media (min-width:1101px) {
  .menu-page .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .menu-page .catalog-list { padding-top:32px; }
  .menu-page .catalog-heading { gap:16px; }
  .menu-page .catalog-tools { gap:12px; }
  /* Keep two columns at the usual text size; enlarged text can use one. */
  .menu-page .filters { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,max(45%,7em)),1fr));gap:8px; }
  .menu-page .filter-chip { min-height:48px;padding:11px 12px; }
  .menu-page .filter-chip[data-filter="tutti"] { grid-column:1 / -1; }
  .menu-page .product-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,max(45%,7em)),1fr));gap:16px 12px; }
  .menu-page .product-photo { aspect-ratio:1; }
  .menu-page .product-number { top:10px;left:10px;padding:5px 7px;font-size:10px; }
  .menu-page .product-card-copy { padding:16px 14px 12px; }
  .menu-page .product-card-copy h3 { margin:8px 0 16px;font-size:21px;line-height:1.22; }
  .menu-page .product-category { font-size:11px;letter-spacing:.045em; }
  .menu-page .product-grid .product-card-copy p { display:none; }
  .menu-page .product-detail-link { gap:8px;font-size:13px; }
}
@media (max-width:359px) {
  .menu-page .product-card-copy { padding-inline:11px; }
  .menu-page .product-card-copy h3 { font-size:19px; }
}
@media (prefers-reduced-motion:reduce) {
  .menu-page .menu-questions summary svg { transition:none; }
}
