/* 1.6.10 — one spacing scale, a distinct gift builder and clear fulfilment. */
:root {
  --fb-space-xs: 8px;
  --fb-space-sm: 16px;
  --fb-space-md: 24px;
  --fb-space-lg: 32px;
  --fb-space-xl: 48px;
  --fb-section-gap: 24px;
  --fb-page-gutter: 20px;
  --fb-section-pad: clamp(24px, 4.2vw, 56px);
  --fb-section-block: clamp(32px, 4.8vw, 64px);
  --fb-card-gap: 24px;
}

/* Align every major page region and give consecutive sections the same gap. */
body.funbun-wordpress :is(.site-header, .calm-footer),
body.funbun-wordpress :is(.home-page, .shop-page, .utility-page) > section {
  width: calc(100% - var(--fb-page-gutter) * 2) !important;
  max-width: var(--funbun-page-width);
  margin-inline: auto !important;
  box-sizing: border-box;
}
body.funbun-wordpress :is(.home-page, .shop-page, .utility-page) > section {
  margin-top: var(--fb-section-gap) !important;
  margin-bottom: 0 !important;
}
body.funbun-wordpress .site-header { margin-top: 12px; gap: 24px; padding-inline: 32px; }
body.funbun-wordpress .desktop-nav { gap: clamp(14px, 1.4vw, 22px); }
body.funbun-wordpress .desktop-nav a { font-size: 12px; white-space: nowrap; }
body.funbun-wordpress .header-actions { gap: 12px; }
body.funbun-wordpress .desktop-nav .nav-gift-link { color: var(--peach); }
body.funbun-wordpress .mobile-menu .nav-gift-link { color: #99536c; }
body.funbun-wordpress .header-actions .nav-cta { min-width: 116px; padding-inline: 20px; }
body.funbun-wordpress .calm-footer { margin-top: var(--fb-section-gap) !important; padding: var(--fb-section-pad); }
body.funbun-wordpress .footer-main { gap: 32px; }
body.funbun-wordpress .footer-main h3 { margin-bottom: 16px; }
body.funbun-wordpress .footer-main a:not(.brand-logo):not(.footer-button) { margin-block: 8px; }
body.funbun-wordpress .footer-bottom { margin-top: 32px; padding-top: 24px; }
body.funbun-wordpress :is(.home-page, .shop-page, .utility-page) { padding-bottom: 0; }

/* Consistent breathing room inside content sections; split image panels stay flush. */
body.funbun-wordpress :is(.home-products, .journey-section, .calm-trust, .retailer-banner, .faq-section, .calm-final-cta,
 .wordpress-shop-catalog, .shop-hero, .shop-promise, .wordpress-product-shell, .utility-hero, .legal-shell,
 .stockists-directory, .online-stockist, .stockist-application, .party-favor-gallery, .party-favor-enquiry,
 .workshops-options, .workshops-format, .workshops-steps, .workshops-cta,
 .bun-how, .bun-tiers, .bun-club-cta, .gift-builder-hero, .gift-box-step, .checkout-titlebar) {
  padding: var(--fb-section-block) var(--fb-section-pad) !important;
}
body.funbun-wordpress :is(.hero-copy, .workshops-hero-copy, .party-favors-copy, .stockists-hero-copy, .bun-club-copy, .quiet-story .story-copy) {
  padding: var(--fb-section-pad) !important;
}
body.funbun-wordpress .shop-hero { padding: 0 !important; }
body.funbun-wordpress .shop-hero .shop-hero-copy,
body.funbun-wordpress .party-favors-hero { padding: var(--fb-section-block) var(--fb-section-pad) !important; }
body.funbun-wordpress .stockists-hero > div:first-child,
body.funbun-wordpress .quiet-story-note { padding: var(--fb-section-pad) !important; }
body.funbun-wordpress .account-heading { padding: 32px var(--fb-section-pad); }
body.funbun-wordpress :is(.funbun-account-content, .bun-wallet) { padding: 32px; }
body.funbun-wordpress :is(.hero-actions, .hero-proof, .home-products-heading, .journey-heading, .workshops-options > header,
 .workshops-format > header, .bun-how > header, .bun-tiers > header) { gap: 24px; }
body.funbun-wordpress :is(.hero-actions, .hero-proof) { margin-top: 32px; }
body.funbun-wordpress .hero-proof { padding-top: 24px; }
body.funbun-wordpress .home-products-heading { margin-bottom: 32px; }
body.funbun-wordpress .journey-heading { margin-bottom: 48px; padding: 0; }
body.funbun-wordpress .journey-body { gap: 48px; }
body.funbun-wordpress :is(.journey-copy-card, .stockist-cards article, .workshop-options-grid article, .bun-how article, .bun-reward) { padding: 24px; }
body.funbun-wordpress :is(.section-kicker, .eyebrow) { line-height: 1.4; }
body.funbun-wordpress :is(.hero-copy, .workshops-hero-copy, .gift-builder-hero, .bun-club-copy) > :is(h1, div > h1) { margin-top: 16px; margin-bottom: 0; }
body.funbun-wordpress :is(.hero-intro, .workshops-hero-copy > p, .gift-builder-hero p, .bun-club-copy > p) { margin-block: 24px; line-height: 1.7; }
body.funbun-wordpress :is(.home-products-heading, .shop-catalog-heading, .workshops-options > header,
 .workshops-format > header, .workshops-steps > div, .stockists-directory > header) h2 { margin-top: 12px; margin-bottom: 0; line-height: 1.08; }
body.funbun-wordpress :is(.workshop-options-grid, .workshops-format > div, .stockist-cards, .bun-how > div, .bun-reward-grid) { gap: var(--fb-card-gap); margin-top: 32px; }
body.funbun-wordpress .workshop-options-grid article { padding: 32px; }
body.funbun-wordpress .workshop-options-grid h3 { margin-top: 16px; }
body.funbun-wordpress .workshop-options-grid p { margin-block: 16px; }
body.funbun-wordpress .workshop-options-grid .workshop-option-duration { margin-top: auto; padding-top: 16px; }
body.funbun-wordpress .workshop-options-grid .button { margin-top: 8px; }
body.funbun-wordpress .retailer-logo-list { gap: 24px; margin-top: 32px; }
body.funbun-wordpress .retailer-logo-list > a { min-height: 112px; padding: 24px; }
body.funbun-wordpress .faq-list details { padding-block: 24px; }
body.funbun-wordpress .faq-list p { margin-top: 16px; line-height: 1.7; }

/* The search, sort and category controls use the same rhythm on both catalogues. */
body.funbun-wordpress .wordpress-shop-catalog .shop-tools { gap: 16px; margin-top: 32px; }
body.funbun-wordpress .wordpress-shop-catalog .shop-filters { gap: 8px; margin-block: 24px 16px; }
body.funbun-wordpress .wordpress-shop-catalog .shop-filters a { padding: 12px 20px; line-height: 1.3; }
body.funbun-wordpress .wordpress-shop-catalog .checkout-hint { margin: 0 0 24px; line-height: 1.7; }
body.funbun-wordpress :is(.home-product-grid, .wordpress-shop-catalog ul.products, .single-product .related ul.products, .single-product .upsells ul.products) { gap: var(--fb-card-gap) !important; }
body.funbun-wordpress .wordpress-shop-catalog ul.products { margin: 0 !important; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.product.funbun-product-card { padding: 12px !important; min-width: 0; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card > .product-image-link { width: 100%; margin: 0; aspect-ratio: 1; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .product-info { padding: 16px 8px 8px; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .product-category { margin: 0; line-height: 1.4; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .woocommerce-loop-product__title { margin: 8px 0 0; min-height: 2.6em; line-height: 1.3; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .product-info > p { min-height: 3.4em; margin: 12px 0 20px; line-height: 1.7; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .product-bottom { gap: 16px; padding-top: 16px; }
body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) .product-card-actions { gap: 8px; }
body.funbun-wordpress .single-product :is(.related, .upsells) .product-card-actions > .product-cart-button,
body.single-product.funbun-wordpress :is(.related, .upsells) .product-card-actions > .product-cart-button {
  display: flex !important; visibility: visible !important; opacity: 1 !important; order: 0;
  background: var(--orange) !important; color: var(--paper) !important;
}
body.single-product.funbun-wordpress :is(.related, .upsells) .product-card-actions > .funbun-loop-buy-now { order: 1; background: var(--paper) !important; color: var(--orange) !important; }
body.single-product.funbun-wordpress :is(.related, .upsells) .product-card-actions .wlr-product-message { order: 2; }
body.funbun-wordpress .home-product-card { padding: 12px; }
body.funbun-wordpress .home-product-image { margin: 0; }
body.funbun-wordpress .home-product-info { padding: 16px 8px 8px; }
body.funbun-wordpress .home-product-info h3 { margin-block: 8px; }
body.funbun-wordpress .home-product-info p { margin-top: 8px; line-height: 1.7; }
body.funbun-wordpress .home-product-buy { margin-top: 16px; padding-top: 16px; }
body.single-product.funbun-wordpress div.product { column-gap: 48px; row-gap: 32px; }
body.single-product.funbun-wordpress div.product :is(.related, .upsells, .woocommerce-tabs) { margin-top: 0; }
body.single-product.funbun-wordpress div.product form.cart { gap: 12px; }
body.funbun-wordpress.woocommerce-checkout .checkout-page .wordpress-checkout-shell { padding: var(--fb-section-pad) !important; }
body.funbun-wordpress.woocommerce-checkout .checkout-page .wordpress-checkout-shell .woocommerce { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.funbun-wordpress.woocommerce-checkout form.checkout { gap: 24px; }
body.funbun-wordpress.woocommerce-checkout :is(#customer_details .col-1, #customer_details .col-2, #order_review) { padding: 24px !important; }
body.funbun-wordpress.woocommerce-checkout .form-row { margin-bottom: 16px; }
body.funbun-wordpress.woocommerce-checkout .form-row label { margin-bottom: 8px; }
body.funbun-wordpress.woocommerce-checkout .funbun-checkout-discovery { gap: 16px; margin-bottom: 24px; }
body.funbun-wordpress.woocommerce-checkout .funbun-checkout-pairings { padding: 16px !important; }

/* Gift-specific colors and composition; shared catalogue controls stay familiar. */
body.funbun-wordpress .gift-builder-page {
  --gift-accent: #99536c;
  --gift-soft: #f8e3e9;
  --gift-peach: #fbe5d5;
  --gift-lilac: #f0e8f7;
  background: #fcf4f5;
}
body.funbun-wordpress .gift-builder-page .gift-builder-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(250px, .7fr); align-items: center; gap: 48px; background: var(--gift-peach) !important; border-color: #ebccc8; }
body.funbun-wordpress .gift-builder-hero h1 { font-size: clamp(44px, 5.2vw, 70px); }
body.funbun-wordpress .gift-builder-page :is(.gift-builder-hero h1 em, .section-kicker, .product-category) { color: var(--gift-accent); }
body.funbun-wordpress .gift-builder-hero p { max-width: 600px; }
body.funbun-wordpress .gift-builder-page .gift-builder-steps { display: grid; gap: 16px; margin: 0; }
body.funbun-wordpress .gift-builder-page .gift-builder-steps li { padding: 24px; background: rgba(255,255,255,.72); color: var(--gift-accent); border-color: rgba(153,83,108,.2); font-size: 13px; line-height: 1.5; }
body.funbun-wordpress .gift-builder-page .gift-catalog { background: #fff9f4 !important; border-color: #ead5d0; }
body.funbun-wordpress .gift-builder-page .shop-search,
body.funbun-wordpress .gift-builder-page .shop-sort { background: #fff; }
body.funbun-wordpress .gift-builder-page .gift-search { max-width: none; }
.gift-search-submit { border: 0; border-radius: 999px; padding: 8px 12px; background: var(--gift-soft); color: var(--gift-accent); font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
body.funbun-wordpress .gift-builder-page .shop-filters a.active { background: var(--gift-accent); border-color: var(--gift-accent); color: #fff; }
body.funbun-wordpress .gift-builder-page li.funbun-product-card { background: #fff !important; border-color: #ead8dd; }
body.funbun-wordpress .gift-builder-page li.funbun-product-card > .product-image-link { background: var(--gift-lilac); }
body.funbun-wordpress .gift-builder-page li.funbun-product-card .product-card-actions > .button,
body.funbun-wordpress .gift-builder-page .button-primary { background: var(--gift-accent) !important; border-color: var(--gift-accent) !important; color: #fff !important; }
body.funbun-wordpress .gift-builder-page .funbun-gift-box-card { border: 2px solid #d6a2b4; background: var(--gift-soft) !important; }
.gift-product-illustration { display: grid; place-items: center; width: 100%; height: 100%; color: var(--gift-accent, var(--mint-text)); }
.gift-product-illustration svg { width: 48%; height: 48%; }
body.funbun-wordpress .gift-builder-page .gift-box-step { background: var(--gift-lilac) !important; }
body.funbun-wordpress .gift-builder-page .gift-box-card { background: #fff; border-color: #decddb; }

/* Clear, accessible delivery and pickup choices, only for gift orders. */
.funbun-gift-pickup:empty { display: none; }
.funbun-fulfilment { min-width: 0; margin: 0 0 24px; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--cream); }
.funbun-fulfilment legend { float: none; width: auto; padding: 0 8px; color: var(--ink); font-size: 16px; font-weight: 800; line-height: 1.4; }
.funbun-fulfilment-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body.funbun-wordpress .funbun-fulfilment-choice { display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); cursor: pointer; }
.funbun-fulfilment-choice:has(input:checked) { outline: 2px solid var(--mint-text); outline-offset: -2px; }
body.funbun-wordpress .funbun-fulfilment-choice input[type="radio"] { appearance: auto; -webkit-appearance: radio; position: static; width: 18px !important; height: 18px !important; min-height: 0; flex: 0 0 18px; margin: 2px 0 0 !important; opacity: 1; accent-color: var(--mint-text); }
.funbun-fulfilment-choice strong { display: block; color: var(--ink); font-size: 13px; line-height: 1.4; }
.funbun-fulfilment-choice small { display: block; margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.funbun-pickup-location-wrap { margin-top: 16px; }
.funbun-pickup-location-wrap[hidden] { display: none !important; }
.funbun-pickup-location-wrap .form-row { margin-bottom: 0 !important; padding: 0 !important; }
.funbun-checkout-gift-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px; border: 1px solid #e8ccd6; border-radius: 16px; background: #fcf0f4; text-align: left; }
.funbun-checkout-gift-offer strong { display: block; color: var(--ink); font-size: 14px; }
.funbun-checkout-gift-offer div > span { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.6; }
body.funbun-wordpress .funbun-checkout-gift-offer .button { min-height: 44px; margin: 0 !important; padding: 12px 16px !important; border-radius: 999px; background: #99536c !important; color: #fff !important; font-size: 12px; white-space: normal; }
.funbun-gift-box-error { grid-column: 1 / -1; color: #a12642; font-size: 12px; }
.funbun-gift-box-error:empty { display: none; }

/* Expand the established mobile menu at tablet widths before links get crowded. */
@media (min-width: 901px) and (max-width: 1200px) {
  body.funbun-wordpress .site-header { grid-template-columns: 1fr auto; }
  body.funbun-wordpress .desktop-nav { display: none; }
  .site-header .mobile-menu-toggle { width: 44px; height: 44px; display: grid; place-content: center; flex: 0 0 auto; gap: 4px; padding: 0; border: 0; border-radius: 50%; background: rgba(155,190,170,.32); color: var(--ink); cursor: pointer; }
  .mobile-menu-toggle > span { width: 17px; height: 2px; display: block; border-radius: 999px; background: currentColor; }
  .mobile-menu-toggle.open > span:first-child { transform: translateY(6px) rotate(45deg); }
  .mobile-menu-toggle.open > span:nth-child(2) { opacity: 0; }
  .mobile-menu-toggle.open > span:last-child { transform: translateY(-6px) rotate(-45deg); }
  .mobile-menu-backdrop { position: fixed; inset: 0; z-index: 60; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(50,43,86,.34); }
  .mobile-menu { position: absolute; z-index: 71; top: calc(100% + 12px); right: 20px; width: min(390px, calc(100vw - 40px)); max-height: calc(100svh - 150px); overflow-y: auto; padding: 24px; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); box-shadow: 0 20px 48px rgba(50,43,86,.2); }
  .mobile-menu-backdrop.open, .mobile-menu.open { display: block; }
  .mobile-menu-heading { display: grid; gap: 8px; padding-bottom: 16px; }
  .mobile-menu-links { display: grid; }
  .mobile-menu-links a { display: flex; align-items: center; min-height: 52px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 16px; }
  .mobile-menu-shop { display: flex; justify-content: space-between; margin-top: 16px; padding: 16px; border-radius: 999px; }
}
@media (max-width: 900px) {
  body.funbun-wordpress .gift-builder-page .gift-builder-hero { grid-template-columns: 1fr; gap: 32px; }
  body.funbun-wordpress .gift-builder-page .gift-builder-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.funbun-wordpress .site-header { padding-inline: 20px; }
}
@media (max-width: 700px) {
  :root { --fb-page-gutter: 12px; --fb-section-gap: 16px; --fb-section-pad: 24px; --fb-section-block: 32px; --fb-card-gap: 16px; }
  body.funbun-wordpress .site-header { gap: 12px; padding-inline: 16px; }
  body.funbun-wordpress .header-actions { gap: 8px; }
  body.funbun-wordpress .header-actions .nav-cta { min-width: 0; padding-inline: 16px; }
  body.funbun-wordpress .footer-main { gap: 24px; }
  body.funbun-wordpress :is(.home-products-heading, .shop-catalog-heading) { gap: 24px; }
  body.funbun-wordpress .wordpress-shop-catalog .shop-tools { margin-top: 24px; }
  body.funbun-wordpress .wordpress-shop-catalog .shop-filters { margin-top: 16px; }
  body.funbun-wordpress .wordpress-shop-catalog .shop-filters a { padding: 10px 16px; }
  body.funbun-wordpress .wordpress-shop-catalog li.funbun-product-card .product-card-actions { grid-template-columns: 1fr; }
  body.funbun-wordpress .wordpress-shop-catalog li.funbun-product-card .product-card-actions > .button { min-height: 44px; white-space: normal; padding: 10px !important; }
  body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.product.funbun-product-card { padding: 8px !important; }
  body.funbun-wordpress :is(.wordpress-shop-catalog, .related, .upsells) li.funbun-product-card .product-info { padding: 16px 8px 8px; }
  body.funbun-wordpress .workshop-options-grid article { padding: 24px; }
  body.funbun-wordpress .gift-builder-page .gift-builder-steps { grid-template-columns: 1fr; gap: 12px; }
  body.funbun-wordpress .gift-builder-page .gift-builder-steps li { padding: 16px; }
  body.funbun-wordpress .gift-builder-page .shop-catalog-meta { flex-wrap: wrap; justify-content: flex-start; }
  .funbun-fulfilment { padding: 16px; }
  .funbun-fulfilment-options, .funbun-checkout-gift-offer { grid-template-columns: 1fr; }
  body.funbun-wordpress .funbun-checkout-gift-offer .button { width: 100%; }
  body.single-product.funbun-wordpress div.product { column-gap: 24px; row-gap: 24px; }
  body.single-product.funbun-wordpress div.product :is(.related, .upsells, .woocommerce-tabs) { margin-top: 0; }
}
