/* Public UX refinements: clear next steps and compact mobile layouts. */
.event-form .formula-preference legend small { margin-left: 8px; font: 400 .85rem/1.4 var(--sans, sans-serif); color: #596054; }
.formula-preference-options { display: grid; grid-template-columns: 1fr; gap: 10px; }
.event-form .formula-preference-option { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 14px; min-height: 72px; padding: 14px 16px; border: 1px solid #c9c4b7; border-radius: 10px; background: #fffdf8; cursor: pointer; letter-spacing: normal; text-align: left; }
.event-form .formula-preference-option input { appearance: auto; width: 20px; height: 20px; min-height: 0; margin: 0; padding: 0; accent-color: #375337; }
.event-form .formula-preference-option strong { display: block; font-size: .95rem; line-height: 1.4; }
.event-form .formula-preference-option span small { display: block; margin-top: 3px; font-size: .85rem; line-height: 1.4; font-weight: 400; color: #596054; }
.event-form .formula-preference-option:has(input:checked) { border-color: #375337; background: #eef3ea; box-shadow: inset 0 0 0 1px #375337; }
.event-form .formula-preference-option:focus-within { outline: 2px solid #986013; outline-offset: 3px; }
.event-form .formula-preference .form-help { margin: 14px 0 0; }
:root { --button-surface: #edb75f; --button-surface-hover: #e4a644; }
body:not(.admin-body):not(.app-body) :where(.button.primary, .order-nav-cta, .mobile-order-cta, .order-cta .button) { box-shadow: none; }
body:not(.admin-body):not(.app-body) .section { padding-block: clamp(48px, 6vw, 88px); }
body:not(.admin-body):not(.app-body) :is(.section-head, .menu-intro, .booking-formulas, .story, .location, .order-cta, .reviews, .usp-section, .form-section, .intro, .events) h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
body:not(.admin-body):not(.app-body) .page-hero h1 { font-size: clamp(3rem, 6.5vw, 6rem); line-height: 1; text-wrap: balance; }
body:not(.admin-body):not(.app-body) .menu-hero.page-hero { height: auto; min-height: 360px; padding-top: 170px; padding-bottom: 40px; }
body:not(.admin-body):not(.app-body) .full-menu.section { padding-top: 40px; }
.full-menu { background: #faf7f0; }
.full-menu .menu-intro { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 32px; margin-bottom: 0; padding-bottom: 24px; }
.full-menu .menu-intro h2 { max-width: none; }
.full-menu .menu-grid { gap: 40px 28px; margin-top: 32px; align-items: stretch; }
.full-menu .menu-item { position: relative; gap: 12px; width: auto; min-width: 0; }
.full-menu .menu-item:last-child { grid-column: auto; width: auto; }
.full-menu .menu-item > div.menu-item-media { height: auto !important; min-height: 0; aspect-ratio: 4 / 3 !important; border-radius: 14px; box-shadow: none; background: #eae3d6; }
.full-menu .menu-item-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.full-menu .menu-item > .menu-item-head { margin: 4px 0 0 !important; }
.full-menu .menu-item-head h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.15; }
.full-menu .menu-item-head strong { background: #f2e8d5; color: #42321b; box-shadow: none; }
.full-menu .menu-item > p { margin: 0; line-height: 1.6; color: #515a51; }
.full-menu .menu-item .pizza-order-link { align-self: start; margin-top: auto; padding: 8px 14px; border: 1px solid #cdb994; border-radius: 8px; text-decoration: none; gap: 10px; color: #4f3519; background: transparent; }
.full-menu .pizza-order-link > span { position: static; width: auto; height: auto; background: none; color: inherit; display: inline; }
.full-menu .pizza-order-link:hover { background: #f2e8d5; }
.full-menu .pizza-order-link:focus-visible, .hero .actions .ghost:focus-visible { outline: 3px solid #986013; outline-offset: 4px; }
.full-menu .menu-item > .pizza-taste-label { position: static; width: fit-content; height: auto; margin: 0; padding: 3px 9px; color: #763310; background: #fce6ce; }
/* Monthly pizza follows the same image and card proportions as the menu. */
.full-menu .menu-item > .month-pizza-description { height: auto !important; min-height: 0; aspect-ratio: auto !important; background: transparent; border: 0; padding: 0; margin: 0; max-width: none; overflow: visible; }
.full-menu .month-pizza-description p { font-size: .9rem; line-height: 1.6; }
.full-menu .month-pizza-description small { font-size: .7rem; }
.hero .actions .button.ghost { border: 1px solid rgba(255, 255, 255, .8); border-radius: 12px; background: rgba(15, 23, 16, .55); box-shadow: none; color: #fff; padding: 0 25px; min-height: 54px; text-decoration: none; }
.hero .actions .button.ghost:hover { border-color: #fff; background: #fff; color: #172018; }
.hero .hero-trust { opacity: .9; }
.booking-formula-grid article, .live-availability, .full-menu .menu-item { box-shadow: none; }
@media (max-width: 600px) {
  .full-menu .menu-item { grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto auto auto; gap: 8px 14px; padding: 14px; }
  .full-menu .menu-item > div.menu-item-media { grid-row: 1 / 3; align-self: start; aspect-ratio: 1 !important; height: auto !important; }
  .full-menu .menu-item > .month-pizza-description { grid-column: 2; grid-row: 2; }
  .full-menu .menu-item > p { display: block; overflow: visible; -webkit-line-clamp: unset; }
  .full-menu .menu-item > .pizza-taste-label { grid-row: 3; }
  .full-menu .menu-item > .pizza-order-link { grid-row: 4; margin-top: 0; font-size: .85rem; padding-inline: 10px; }
  .hero .actions { gap: 12px; }
}
.hero-availability { max-width: 580px; padding: 12px 16px; margin: 18px 0; border-left: 3px solid #efbd69; border-radius: 4px; background: rgba(15, 23, 16, .8); color: #fff; font-size: .95rem; line-height: 1.5; }
.hero-note { display: none; }
.booking-minimum { font-weight: 700; }
body:not(.admin-body):not(.app-body) .page-hero.event-hero { height: auto; min-height: 640px; padding-top: 210px; padding-bottom: 70px; }
.booking-formulas { background: #f4efe4; }
.booking-formulas h2 { max-width: 850px; }
.booking-formula-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 30px 0 20px; }
.booking-formula-grid article { padding: 28px; border: 1px solid #d6c8b3; border-radius: 16px; background: #fffdfa; }
.booking-formula-grid h3 { font: 600 1.65rem/1.2 var(--serif); margin: 0 0 14px; }
.booking-formula-grid strong { display: block; font-size: 1.3rem; margin-top: 20px; }
.booking-formula-grid small { display: block; font-size: .9rem; color: #545d53; line-height: 1.6; }
.booking-travel { max-width: 850px; margin-bottom: 24px; }
.booking-faq { margin-top: 40px; max-width: 850px; }
.booking-faq h3 { font: 600 1.65rem var(--serif); }
.booking-faq details { border-bottom: 1px solid #c9c0b2; }
.booking-faq summary { padding: 18px 0; cursor: pointer; font-weight: 700; }
.booking-faq details p { margin: 0 0 20px; }
.event-form .form-help a { text-decoration: underline; }
.full-menu .pizza-order-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 12px; font-weight: 700; color: #713a08; text-decoration: underline; text-underline-offset: 4px; }
.pizza-taste-label { display: inline-block; width: fit-content; margin: 6px 0; padding: 3px 9px; border-radius: 20px; color: #763310; background: #fce6ce; font-size: .8rem; font-weight: 700; }
.menu-order-dock { display: none; }
.menu-carousel[data-manual] .pizza-track > article { scroll-snap-align: start; }
body.home:not(.admin-body):not(.app-body) .section { padding-block: clamp(42px, 5vw, 76px); }
body.home .usp-section .usp-grid { gap: 20px; }
.ticker-track { animation-play-state: paused; }
#aanvraag, #locatie, #menu { scroll-margin-top: 100px; }
@media (max-width: 600px) {
  .booking-formula-grid { grid-template-columns: 1fr; gap: 16px; }
  .booking-formula-grid article { padding: 22px; }
  body:not(.admin-body):not(.app-body) .booking-formulas { padding-block: 40px; }
  body:not(.admin-body):not(.app-body) .page-hero.event-hero { min-height: 540px; padding-top: 150px; padding-bottom: 40px; }
  .booking-formulas h2 { font-size: 2rem; }
  .booking-formulas .button, .event-hero .button { max-width: 100%; white-space: normal; text-align: center; line-height: 1.4; }
  body:not(.admin-body):not(.app-body) .menu-hero.page-hero { height: auto; min-height: 290px; padding-top: 120px; padding-bottom: 28px; }
  .menu-hero .container { position: relative; bottom: auto; }
  body:not(.admin-body):not(.app-body) .full-menu.section { padding-top: 28px; }
  .full-menu .menu-intro { margin-bottom: 22px; }
  .full-menu .menu-intro h2 { font-size: 1.7rem; }
  .full-menu .menu-item .pizza-order-link, .full-menu .menu-item > .pizza-taste-label { grid-column: 2; }
  .full-menu .menu-item > p, .full-menu .menu-item .month-pizza-description p { font-size: .9rem; line-height: 1.5; }
  .menu-order-dock { display: flex; position: fixed; bottom: max(12px, env(safe-area-inset-bottom)); left: 20px; right: 20px; z-index: 60; justify-content: center; box-shadow: 0 4px 22px #17201830; }
  body.page-template-page-menu { padding-bottom: 0; }
  .menu-open .menu-order-dock { display: none; }
  body.home:not(.admin-body):not(.app-body) .hero { min-height: 740px; height: auto; max-height: none; }
  body.home .hero-content { padding-top: 140px; padding-bottom: 35px; }
  body.home .hero h1 { font-size: clamp(2.5rem, 11vw, 3.2rem); }
  body.home .hero-availability { font-size: .875rem; padding: 10px 12px; }
  body.home .order-cta figure { max-height: 240px; overflow: hidden; }
  body.home .story-image { height: 300px; }
  body.home .usp-section .usp { padding-block: 18px; }
  .footer-bottom a { margin: 0; }
}
.full-menu .menu-item > .menu-allergens { font-size: .85rem; line-height: 1.5; color: #596054; margin: 0; }
@media (max-width: 600px) {
  .full-menu .menu-item > .menu-allergens { grid-column: 2; grid-row: 4; }
  .full-menu .menu-item > .pizza-order-link { grid-row: 5; }
}

/* Compact, readable public sections; full review text remains available. */
body.home .review-track { align-items: flex-start; }
body.home .review-card { min-height: 0; height: auto; padding: 24px; }
body.home .review-card blockquote { flex: none; margin: 16px 0 20px; font-size: 1.1rem; line-height: 1.5; }
body.home .review-card footer { margin-top: 0; padding: 0; }
body.home .review-card footer span { font-size: .85rem; color: #51594e; }
body.home .order-cta .order-cta-grid { grid-template-columns: 1fr; padding-block: 32px; }
body.home .order-cta figure, body.home .order-cta-copy > p:not(.eyebrow) { display: none; }
body.home .order-cta .order-cta-copy { max-width: 850px; margin-inline: auto; width: 100%; text-align: center; }
body.home .order-cta-copy > .eyebrow { display: flex; justify-content: flex-start; text-align: left; }
body.home .order-cta .button { margin-inline: auto; }
body.home .order-cta .live-availability-status { justify-content: center; }
body.home .order-cta .live-availability { text-align: center; align-items: center; margin-inline: auto; }
body.home .order-cta .live-availability { margin-block: 16px; padding: 16px 20px; }
body.home .usp-section .usp { padding-block: 12px; }
body:not(.admin-body):not(.app-body) :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #986013; outline-offset: 4px; }
body:not(.admin-body):not(.app-body) :is(.footer-links a, .social-links a) { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 600px) {
  body.home:not(.admin-body):not(.app-body) .section { padding-block: 32px; }
  body.home:not(.admin-body):not(.app-body) .hero { min-height: 0; }
  body.home .hero .hero-content { padding-top: 125px; padding-bottom: 32px; }
  body.home .story .story-image { height: 220px; }
  body.home .review-card { padding: 20px; flex-basis: 86%; }
  body.home .review-card blockquote { font-size: 1rem; }
  body.home .reviews .review-cta { margin-top: 24px; }
  body:not(.admin-body):not(.app-body) :is(input, select, textarea) { font-size: 16px; }
}

/* Full-width ordering photos, including existing ordering plugin releases. */
body .napo-order-app { --button-surface: #edb75f; --button-surface-hover: #e4a644; }
body .napo-order-app[data-step='1'] .order-product { display: flex; flex-direction: column; border: 1px solid #dedbd3; box-shadow: none; background: #fffdfa; }
body .napo-order-app[data-step='1'] .order-product > img { display: block; width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; background: #eee9df; flex: none; }
body .napo-order-app[data-step='1'] .order-product > div { display: flex; flex-direction: column; flex: 1; padding: 18px; }
body .napo-order-app[data-step='1'] .order-product h2 { font-size: 1.2rem; line-height: 1.25; gap: 12px; margin-bottom: 10px; }
body .napo-order-app[data-step='1'] .order-product p { display: block; overflow: visible; -webkit-line-clamp: unset; font-size: .9rem; line-height: 1.55; margin: 8px 0 14px; }
body .napo-order-app[data-step='1'] .product-allergens { margin: 12px 0; font-size: .8rem; }
body .napo-order-app[data-step='1'] .allergen-list { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #596054; }
body .napo-order-app[data-step='1'] .allergen-list span { display: inline-flex; align-items: center; gap: 4px; background: transparent; font-size: .8rem; }
body .napo-order-app[data-step='1'] .qty { margin-top: auto; padding-top: 10px; border-top: 1px solid #eee7db; }
body .napo-order-app[data-step='1'] .qty button { min-width: 44px; min-height: 44px; }
body .napo-order-app[data-step='1'] .order-product .month-pizza-description { background: #f3ebdb; box-shadow: none; padding: 10px; }
body .napo-order-app[data-step='1'] .order-product .month-pizza-description p { display: block; -webkit-line-clamp: unset; overflow: visible; font-size: .9rem; }
@media (max-width: 640px) {
  body .napo-order-app[data-step='1'] .order-product { display: flex; flex-direction: column; padding: 0; min-height: 0; }
  body .napo-order-app[data-step='1'] .order-product > img { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 4 / 3; object-fit: cover; border: 0; border-radius: 0; align-self: stretch; }
  body .napo-order-app[data-step='1'] .order-product > div { display: flex; flex-direction: column; padding: 16px; }
  body .napo-order-app[data-step='1'] .order-product h2 { font-size: 1.1rem; line-height: 1.3; margin: 0 0 8px; gap: 12px; }
  body .napo-order-app[data-step='1'] .order-product p { font-size: .9rem; line-height: 1.5; min-height: 0; margin: 0 0 12px; }
  body .napo-order-app[data-step='1'] .product-allergens { margin: 0 0 14px; gap: 6px; font-size: .8rem; }
  body .napo-order-app[data-step='1'] .allergen-list { gap: 6px 12px; }
  body .napo-order-app[data-step='1'] .allergen-list span { font-size: .8rem; }
  body .napo-order-app[data-step='1'] .order-product .qty { width: 100%; margin-top: auto; padding-top: 12px; border-top: 1px solid #eee7db; justify-content: space-between; gap: 12px; }
  body .napo-order-app[data-step='1'] .order-product .pizza-extra-action { width: 100%; margin: 6px 0 0; padding: 8px 0; min-height: 44px; font-size: .85rem; line-height: 1.4; }
  body .napo-order-app[data-step='1'] .order-product .month-pizza-description { padding: 10px 12px; margin: 0 0 12px; }
  body .napo-order-app[data-step='1'] .order-product .month-pizza-description p { font-size: .9rem; }
}

/* Continuous carousels retain their arrows and an optional pause control. */
[data-carousel] [data-track].continuous-active { scroll-behavior: auto !important; scroll-snap-type: none !important; }
[data-carousel] [data-track] { touch-action: pan-y pinch-zoom; }
