/* Self-hosted Fontsource 5.2.8 subsets; OFL licenses in assets/fonts.
   Local fonts respect the existing self-only CSP and work without Google requests. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('assets/fonts/inter-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('assets/fonts/inter-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/inter-cyrillic-500-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/inter-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/inter-cyrillic-600-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/inter-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('assets/fonts/inter-cyrillic-700-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('assets/fonts/inter-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('assets/fonts/playfair-display-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('assets/fonts/playfair-display-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/playfair-display-cyrillic-500-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/playfair-display-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/playfair-display-cyrillic-600-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/playfair-display-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* v4.5.2 visual adapter for the live API storefront.
   Behaviour, [hidden], .open, scroll containers and form validation stay in style.css/app.js. */
:root {
  --green: #1a4d2e;
  --green-dark: #123822;
  --green-soft: #e6eee8;
  --gold: #c9a24b;
  --milk: #faf8f3;
  --cream: #faf8f3;
  --ink: #1f2b24;
  --text: #1f2b24;
  --muted: #616d65;
  --line: #e2e7e1;
  --shadow: 0 4px 20px rgba(18, 56, 34, .06);
  --page-gutter: max(24px, calc((100% - 1260px) / 2));
}
html { scroll-padding-top: 96px; }
body { font-family: 'Inter', system-ui, sans-serif; font-size: 15px; line-height: 1.6; color: var(--ink); background: #fff; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3, .hero h1, .sectionhead h2, .card h3, .mini-product h3, .gift-card h3,
.holiday-intro h2, .holiday-card h3, .shop-copy h2, .surprise-copy h2,
.modalbox h2, .drawer-head h2, .route-visible h1, .secure-flow-card h1,
.reviews-page-intro h1, .reviews-summary-copy>strong, .mobile-nav-head,
.gift-finder-results h3, .gift-pick h4, .reviews-inline-heading h2, .review-compose-head h3 { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
button:disabled { cursor: not-allowed; }

/* Shell: preserve the original header and off-canvas navigation controls. */
.site-header { position: sticky; top: 0; height: 80px; padding: 0 var(--page-gutter); gap: 18px; border-bottom: 1px solid rgba(26, 77, 46, .1); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); }
.site-header .logo-image { width: 200px; }
.site-header .main-nav { gap: 18px; }
.main-nav a { font-size: 13px; font-weight: 500; text-underline-offset: 7px; }
.main-nav a:hover { text-decoration: underline; }
.head-actions { gap: 6px; flex-shrink: 0; }
.head-actions button, .contact-action { background: #fff; border: 1px solid var(--line); font-size: 13px; padding: 0 10px; }
.head-actions #cartBtn { background: var(--green-soft); color: var(--green); border-color: var(--green-soft); font-weight: 600; }
.head-actions #count { min-width: 20px; border-radius: 50%; background: var(--green); color: #fff; text-align: center; font-size: 11px; line-height: 20px; }
.head-actions button:hover, .contact-action:hover, .mobile-menu-btn:hover { background: var(--green-soft); }
.mobile-menu-btn { background: var(--milk); border-radius: 8px; }
.mobile-nav { background: #fff; border-right: 1px solid var(--line); max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
.mobile-nav-head { background: #fff; }
.mobile-nav>a { font-weight: 500; border-color: var(--line); }

/* Same local hero artwork as the approved prototype; no decorative layer intercepts clicks. */
.hero { min-height: 620px; padding: 80px var(--page-gutter) 90px; background: linear-gradient(100deg, rgba(250,248,243,.98) 0%, rgba(250,248,243,.93) 38%, rgba(250,248,243,.65) 65%, rgba(250,248,243,.35) 100%), url('assets/hero-lilies.jpg') right center / cover no-repeat; }
.hero-copy { max-width: 640px; }
.hero h1 { font-size: clamp(36px, 4.2vw, 56px); line-height: 1.15; font-weight: 400; letter-spacing: -.025em; color: var(--ink); margin: 0 0 20px; }
.hero p { font-size: 17px; color: #526058; margin: 0 0 28px; }
.hero-actions { gap: 12px; }
.hero-actions .cta.secondary { margin-left: 0; }
.hero .hero-note { color: var(--ink); font-size: 13px !important; margin-top: 24px !important; margin-bottom: 14px; }
.hero-trust { gap: 8px; }
.hero-trust span { border-color: var(--line); background: rgba(255,255,255,.85); font-size: 12px; font-weight: 400; padding: 6px 12px; }
.cta, .card-details { border-radius: 8px; font-size: 13px; font-weight: 600; letter-spacing: .01em; min-height: 44px; }
.cta { padding: 13px 24px; }
.cta.secondary { background: #fff; border-color: var(--line); color: var(--ink); }
.cta:hover, .card-details:hover { background: var(--green-dark); color: #fff; filter: none; }
.cta.secondary:hover { color: var(--green); border-color: var(--green); background: var(--green-soft); }

/* Full-width section surfaces with a shared 1340px outer container. */
.catalog-section, .plants-section, .stems-section, .gifts-section, .balloons-section,
.delivery, .trust-section, .faq-section, .reviews-bottom, .video-story {
  padding: 56px var(--page-gutter) 64px;
}
body[data-page="home"] section.carousel-section { padding: 56px var(--page-gutter) 64px; }
.plants-section, .balloons-section, .trust-section, .faq-section { background: var(--milk); }
.catalog-section, .stems-section, .gifts-section, .delivery, .reviews-bottom { background: #fff; }
.sectionhead { gap: 24px; margin-bottom: 24px; }
.sectionhead h2 { font-size: clamp(28px, 3vw, 36px); line-height: 1.2; color: var(--ink); }
.sectionhead p { font-size: 14px; line-height: 1.65; }
.section-link, .link-button { font-size: 13px; line-height: 1.6; white-space: normal; }
.searchrow { flex-wrap: wrap; }
.searchrow input, .searchrow select { border-color: var(--line); font-size: 13px; }
.filters, .subfilters { gap: 8px; margin: 0 0 24px; }
.filters button, .subfilters button { border: 1px solid var(--line); border-radius: 24px; background: #fff; padding: 9px 18px; font-size: 13px; font-weight: 500; }
.filters button:hover, .subfilters button:hover { border-color: var(--green); }
.filters button.active, .subfilters button.active { border-color: var(--green); background: var(--green); color: #fff; }
.grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gift-grid, .balloon-grid { margin-top: 0; }

/* All live card renderers share proportions, type and actions. */
.card, .mini-product, .gift-card { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.card:hover, .mini-product:hover, .gift-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #779780; }
.card .pic, .plants-section .card .pic, .catalog-section .card .pic, .product-carousel .card .pic,
.mini-product .mini-pic, .balloon-grid .mini-product .mini-pic, .gift-photo, .gift-mark { width: 100%; height: auto; aspect-ratio: 4 / 5; flex-shrink: 0; background: #f5f5f3; }
.card .pic img, .mini-product .mini-pic img, .gift-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.gift-photo { height: auto; }
.gift-card>a:first-child { display: block; color: inherit; text-decoration: none; }
.plants-section .card .pic img { object-fit: contain; background: #f5f5f3; }
.card .body, .plants-section .card .body, .mini-product .mini-body { padding: 16px; }
.card .body small, .gift-copy small { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.card h3, .plants-section .card h3, .mini-product h3, .gift-card h3 { font-size: 18px; line-height: 1.3; color: var(--ink); margin: 5px 0 8px; }
.card .body h3, .mini-product .mini-body h3 { min-height: 2.6em; line-height: 1.3; }
.gift-card h3 a { text-decoration: none; }
.card .body .desc { display: -webkit-box; height: auto; min-height: 0; line-height: 1.6; font-size: 12px; margin: 0 0 10px; -webkit-line-clamp: 2; }
.card .body .price, .price, .mini-product strong, .gift-copy p b { color: var(--ink); font-size: 18px; font-weight: 700; }
.card .body .price { margin-top: auto; padding-top: 8px; margin-bottom: 12px; }
.card .heart, .mini-product .heart, .detailpic .heart, .heart { width: 42px !important; height: 42px; top: 12px; right: 12px; color: var(--green) !important; background: rgba(255,255,255,.95) !important; border: 1px solid var(--line); box-shadow: 0 1px 3px #0001; font-size: 24px; line-height: 1; }
.heart.on { background: var(--green) !important; color: #fff !important; border-color: var(--green); }
.pic em { bottom: auto; top: 12px; left: 12px; max-width: calc(100% - 70px); font-size: 10px; border-radius: 4px; }
.card button, .mini-product button, .gift-card button, .gift-card>.card-details { min-height: 44px; font-size: 12px; font-weight: 600; border-radius: 7px; }
.card button:hover, .mini-product button:hover, .gift-card button:hover { background: var(--green-dark); }
.card .buy-actions .quick { display: block; }
.gift-copy { padding: 16px 16px 0; flex: 1; display: flex; flex-direction: column; }
.gift-copy p { font-size: 12px; }
.gift-copy p:last-of-type { margin-top: auto; padding-top: 8px; }
.gift-copy .gift-desc { display: block; line-height: 1.6; margin-bottom: 8px; }
.gift-card button, .gift-card>.card-details { margin: 12px 16px 16px; }
.plant-care { background: var(--milk); color: var(--muted); }
/* Keep API-provided home carousels scrollable and their controls available. */
body[data-page="home"] .product-carousel { grid-template-columns: none; grid-auto-columns: calc((100% - 60px) / 4); gap: 20px; padding-top: 5px; }
.carousel-controls button { width: 44px; height: 44px; border-color: var(--line); }

/* Supporting live content, including holidays, gifts, reviews and maps. */
.holiday-section, .surprise-feature { padding: 48px var(--page-gutter); background: var(--milk); border-color: var(--line); }
.holiday-section::before, .holiday-section::after { opacity: .06; pointer-events: none; }
.holiday-intro h2, .surprise-copy h2 { font-size: 32px; line-height: 1.2; }
.holiday-card, .surprise-steps span, .trust-grid article, .faq-grid details,
.deliverycards article, .delivery-map-card { border-color: var(--line); border-radius: 12px; background: #fff; }
.holiday-card .holiday-label { background: var(--green-soft); color: var(--green); }
.holiday-card .holiday-date { font-family: 'Playfair Display', Georgia, serif; }
.calendar-icon, .feature-icon { color: var(--green); }
.trust-grid { gap: 20px; }
.trust-grid article { padding: 28px 24px; }
.trust-grid b { color: var(--green); }
.faq-grid, .delivery>.sectionhead, .delivery-layout, .reviews-shell { max-width: 1340px; }
.faq-grid { gap: 16px; }
.faq-grid summary { color: var(--green); }
.faq-grid p { color: var(--muted); }
.deliverycards { gap: 16px; }
.delivery-information .deliverycards article { padding: 20px; }
.shop-section { max-width: 1260px; margin: 24px auto 56px; border-radius: 12px; border: 1px solid var(--line); }
.shop-copy { padding: 32px; background: var(--green); }
.shop-copy h2 { font-size: 30px; }
.shop-benefits { padding: 28px; background: var(--milk); }
.shop-map-wrap { background: var(--milk); }
.reviews-shell { border-radius: 12px; box-shadow: none; }
.reviews-summary { padding: 24px; }
.reviews-summary-copy>strong { font-size: 28px; }
.review-card { border-color: var(--line); border-top: 3px solid var(--gold); border-radius: 8px; padding: 24px; }
.review-card p { line-height: 1.65; }
.reviews-page { background: var(--milk); }
.reviews-page-head { padding-inline: var(--page-gutter); }
.reviews-page-main { width: min(1260px, calc(100% - 48px)); }
.reviews-page-intro h1 { font-size: clamp(32px, 4vw, 44px); }
.reviews-page-footer { display: block; background: var(--green); color: #dce6df; }
.reviews-page-footer a { color: #fff; }

/* Cart and checkout: styling only; no changes to visibility, stacking or focus order. */
.drawer { background: #fff; border-left: 1px solid var(--line); box-shadow: -10px 0 40px rgba(18,56,34,.12); }
.drawer-head { padding-top: 24px; border-color: var(--line); }
.drawer-head h2 { font-size: 28px; color: var(--ink); line-height: 1.2; }
.drawer-head small { color: var(--muted); }
.drawer-head #close, .modalbox .x { background: var(--milk); border-radius: 50%; width: 40px; height: 40px; color: var(--green); }
.drawer-total strong { color: var(--ink); }
.cart-thumb { border-radius: 8px; }
.cart-qty button { min-height: 36px; min-width: 36px; border-radius: 6px; background: var(--milk); color: var(--green); }
.addon-choice button, .addon-more { min-height: 40px; }
.addon-choice-copy small { display: block; }
.hint, .payment, .summary, .order-assurance, .checkout-details, .secure-state, .gift-message-box { background: var(--milk); }
.modal { background: rgba(18, 35, 25, .5); }
.modalbox { border-radius: 12px; box-shadow: 0 20px 60px rgba(18,35,25,.2); border: 1px solid var(--line); }
.modalbox h2 { font-size: 30px; line-height: 1.2; margin-right: 32px; }
.checkout-box { width: min(580px, 100%); }
.modal input, .modal select, .modal textarea, .secure-flow-card input, .secure-flow-card select, .secure-flow-card textarea,
.promo input, .review-form input, .review-form select, .review-form textarea { border-color: #bbc8bf; border-radius: 8px; background: #fff; color: var(--ink); }
.modal input:focus-visible, .modal select:focus-visible, .modal textarea:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
.modal input[aria-invalid="true"], .modal select[aria-invalid="true"], .modal textarea[aria-invalid="true"] { border-color: #a84141; background: #fff8f8; }
.checkout-steps button { border-radius: 8px; background: var(--milk); color: var(--muted); }
.checkout-steps button.active { background: var(--green); color: #fff; }
.delivery-choice button.active { background: var(--green-soft); border-color: var(--green); }
.checkout-paybar { background: #fff; }
.secure-flow-page { background: var(--milk); }
.secure-flow-card { border-color: var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.product-page-content .detailpic { height: auto; aspect-ratio: 4 / 5; }
.product-page-content .detailpic img { display: block; }
.route-visible h1 { font-size: clamp(32px, 4vw, 44px); line-height: 1.15; }
.legal { max-width: 860px; margin: 48px auto; padding: 0 24px; line-height: 1.75; }
.legal h1 { font-size: clamp(30px, 4vw, 42px); line-height: 1.2; overflow-wrap: anywhere; }
.legal h2 { margin-top: 32px; }
footer { padding: 56px var(--page-gutter) 32px; background: var(--green); color: #fff; gap: 32px; }
.footer-brand p, .legal-links { color: #dce6df; }
footer a { text-underline-offset: 4px; }
footer a:hover { text-decoration: underline; color: #eedaa8; }
footer :focus-visible { outline-color: #eedaa8; }
.legal-links { border-top: 1px solid #ffffff30; padding-top: 24px; }
.toast { border: 1px solid #ffffff40; border-radius: 12px; max-width: calc(100vw - 32px); box-shadow: var(--shadow); }
.mobile-cart-bar { border-radius: 12px; }

@media (min-width: 1400px) {
  .grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  body[data-page="home"] .product-carousel { grid-auto-columns: calc((100% - 100px) / 6); }
  .site-header .logo-image { width: 220px; }
}
@media (max-width: 1180px) {
  .site-header { padding-inline: 24px; gap: 16px; }
  .site-header .logo-image { width: 200px; }
  .site-header .main-nav { display: none; }
  .mobile-menu-btn { display: grid; }
  .head-actions { margin-left: auto; }
  .grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body[data-page="home"] .product-carousel { grid-auto-columns: calc((100% - 40px) / 3); }
  .hero { min-height: 580px; padding-block: 72px 80px; }
  .sectionhead { align-items: flex-start; flex-wrap: wrap; }
  .holiday-section { grid-template-columns: 1fr; }
  .shop-section { margin-inline: 24px; }
}
@media (max-width: 767px) {
  :root { --page-gutter: 24px; }
  .site-header { height: 72px; padding-inline: 16px; gap: 10px; }
  .site-header .logo-image { width: 170px; }
  .mobile-nav { padding: 20px 20px calc(24px + env(safe-area-inset-bottom)); }
  .hero { min-height: 520px; padding-block: 48px 56px; background-position: 65% center; }
  .hero h1 { font-size: 38px; }
  .hero p { font-size: 16px; }
  .hero-trust { display: flex; }
  .hero-trust span { border-radius: 20px; }
  .catalog-section, .plants-section, .stems-section, .gifts-section, .balloons-section,
  .delivery, .trust-section, .faq-section, .reviews-bottom, .video-story,
  body[data-page="home"] section.carousel-section { padding-block: 40px 48px; }
  .grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  body[data-page="home"] .product-carousel { grid-auto-columns: calc((100% - 16px) / 2); gap: 16px; }
  .sectionhead { gap: 16px; }
  .searchrow { width: 100%; }
  .trust-grid, .deliverycards { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .holiday-cards { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .holiday-card:nth-child(n+2) { display: flex; }
  .holiday-card { min-height: 0; }
  .holiday-intro h2, .surprise-copy h2 { font-size: 28px; }
  .shop-section { margin-bottom: 40px; }
  .shop-copy, .shop-benefits { padding: 24px; }
  .modalbox { max-height: 94dvh; overflow-y: auto; overscroll-behavior: contain; }
  .checkout-box { max-height: 100dvh; }
  footer { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .drawer { width: 100%; }
  .modalbox.checkout-box { width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; padding: 20px 16px; }
  .checkout-box h2 { font-size: 27px; }
  .modal input, .modal select, .modal textarea { font-size: 16px; }
}
@media (max-width: 479px) {
  :root { --page-gutter: 16px; }
  .site-header { padding-inline: 12px; gap: 6px; }
  .site-header .logo-image { width: 122px; }
  .head-actions { gap: 4px; }
  .head-actions button, .contact-action { padding-inline: 8px; }
  .head-actions #cartBtn { padding-inline: 8px; }
  .hero h1 { font-size: 34px; }
  .hero-actions .cta { padding-inline: 16px; }
  .grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { gap: 12px; }
  .card .body, .plants-section .card .body, .mini-product .mini-body { padding: 12px; }
  .card h3, .plants-section .card h3, .mini-product h3, .gift-card h3 { font-size: 16px; }
  .card .body h3, .mini-product .mini-body h3 { min-height: 3.9em; }
  .card .body .price, .price, .mini-product strong, .gift-copy p b { font-size: 16px; }
  .gift-copy { padding: 12px 12px 0; }
  .gift-card button, .gift-card>.card-details { margin: 10px 12px 12px; }
  .card .body .desc { display: -webkit-box; font-size: 12px; }
  .card .body .plant-care { display: grid; min-height: 0; }
  .card .heart, .mini-product .heart { width: 40px !important; height: 40px; top: 8px; right: 8px; }
  .pic em { top: auto; bottom: 8px; left: 8px; max-width: calc(100% - 16px); }
  .shop-section { margin-inline: 16px; }
  .reviews-summary, .reviews-body { padding: 16px; }
  .reviews-summary-copy>strong { font-size: 24px; }
  .modalbox { padding-inline: 16px; }
  .checkout-nav { flex-wrap: wrap; }
  .checkout-paybar .ghost { min-width: 70px; }
  .secure-flow-page { padding-bottom: 24px; }
}
@media (max-width: 359px) {
  .grid, .plants-section .grid, .catalog-section .grid, .stem-grid, .balloon-grid, .gift-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  body[data-page="home"] .product-carousel { grid-auto-columns: 100%; }
  .site-header .logo-image { width: 112px; }
  .site-header { gap: 4px; padding-inline: 8px; }
  .hero h1 { font-size: 32px; }
  .card .body h3, .mini-product .mini-body h3 { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition: none !important; }
  .card:hover, .mini-product:hover, .gift-card:hover { transform: none; }
}

/* Task 4: keep the existing shell and motion while completing links and gifts. */
.head-actions [hidden] { display: none !important; }
.head-actions #favBtn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; text-decoration: none; }
.hero-note a, .hero-trust a { color: inherit; text-decoration: none; }
.hero-note a:hover, .hero-trust a:hover, .hero-note a:focus-visible, .hero-trust a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
#deliveryZoneMap { scroll-margin-top: 96px; }
.gift-card .gift-preview { display: block; width: 100%; padding: 0; margin: 0; border: 0; border-radius: 0; background: #f5f5f3; color: inherit; }
.gift-card .gift-preview:hover { background: #f5f5f3; }
.gift-card .gift-preview:focus-visible { outline-offset: -4px; }
.gift-card .gift-preview .gift-photo, .gift-card .gift-preview .gift-mark { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.gift-card .gift-preview .gift-mark { display: grid; place-items: center; }
.gift-card > .card-details { margin-top: auto; }
.gift-load-status, .catalog-load-status { margin-top: 12px; }
.gift-load-status[hidden], .catalog-load-status[hidden] { display: none; }
.cart-qty button:disabled { opacity: .45; }
.mini-pic > em { position: absolute; z-index: 1; top: 12px; left: 12px; max-width: calc(100% - 70px); background: #fff; padding: 6px 9px; border-radius: 4px; font-size: 10px; line-height: 1.3; }
@media (max-width: 620px) {
  .mini-pic > em { top: auto; bottom: 8px; left: 8px; max-width: calc(100% - 16px); }
}
.addon-retry { margin-top: 10px; }
.addon-detail-photo { display: block; width: 100%; max-height: 320px; height: auto; object-fit: contain; background: var(--milk); border-radius: 12px; margin-bottom: 16px; }
.addon-detail-emoji { display: grid; place-items: center; min-height: 140px; font-size: 64px; background: var(--milk); border-radius: 12px; margin-bottom: 16px; }
.addon-detail .detailbuy { flex-wrap: wrap; gap: 12px; }
.addon-detail-note { flex-basis: 100%; font-size: 14px; }
@media (min-width: 1181px) and (max-width: 1280px) {
  .site-header .main-nav { gap: 12px; }
}
@media (max-width: 560px) {
  .head-actions #favBtn { display: none; }
}
