/* Readable phone layouts; keep desktop sizing and customer pinch zoom intact. */
@media (max-width: 1199.98px) {
    .shop-navbar__collapse-shell { flex-direction: column; align-items: stretch; }
    .shop-navbar__menu .shop-nav-link { font-size: 20px !important; line-height: 1.4; min-height: 56px; white-space: normal; }
    .shop-mobile-nav-search input { font-size: 17px !important; }
    .shop-mobile-nav-language__item { font-size: 16px; min-height: 48px; }
    .shop-mobile-nav-icon, .shop-mobile-nav-close, .shop-mobile-nav-language__toggle { min-width: 44px; min-height: 44px; }
}
@media (max-width: 767.98px) {
    body.shop-body { font-size: 18px; line-height: 1.6; }
    .shop-main { padding-left: 0 !important; padding-right: 0 !important; }
    .shop-main > .container, .shop-main > .container-fluid { padding-left: 16px !important; padding-right: 16px !important; }
    .shop-main p, .shop-main .lead, .seed-calendar-story__content p { font-size: 18px; line-height: 1.65; }
    .shop-promo-bar { font-size: 14px !important; line-height: 1.5; padding: 10px 16px !important; }
    .shop-navbar .navbar-toggler { min-width: 48px; min-height: 48px; }
    .shop-brand img { width: 170px !important; }
    .shop-hero { padding: 40px 20px !important; min-height: 0 !important; }
    .shop-hero .shop-kicker, .shop-kicker { font-size: 14px !important; letter-spacing: .08em !important; }
    .shop-hero .lead { font-size: 20px !important; line-height: 1.6 !important; }
    .shop-hero h1.flower-title { font-size: clamp(36px, 10vw, 46px) !important; line-height: 1.08 !important; }
    .shop-hero__actions, .homepage-image-hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
    .shop-main .btn, .shop-footer .btn { font-size: 17px !important; min-height: 48px; padding: 11px 16px; white-space: normal; }
    .shop-main .form-control, .shop-main .form-select { font-size: 18px !important; min-height: 48px; }
    .shop-main .form-label, .shop-main .form-check-label { font-size: 17px !important; line-height: 1.5; }
    .shop-main .small, .shop-main small { font-size: 16px !important; line-height: 1.5; }
    .shop-main .shop-section-title { font-size: 30px !important; line-height: 1.2; }
    .shop-page-hero { min-height: 0 !important; padding: 30px 16px !important; margin-bottom: 24px; }
    .shop-page-hero__subtitle { font-size: 18px !important; line-height: 1.6; }
    .seed-calendar-story { grid-template-columns: minmax(0,1fr); padding: 0 !important; gap: 24px; }
    .seed-calendar-story__image { width: 100%; min-height: 0 !important; padding: 0 !important; }
    .seed-calendar-story__image img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: contain; }
    .homepage-image-hero__media { padding: 0 !important; }
    .homepage-image-hero__media img { height: auto !important; max-height: none !important; }
    .product-card__image-wrap { height: auto !important; aspect-ratio: 1; }
    .product-card__image-wrap img { width: 100%; height: 100%; object-fit: contain; }
    .product-card h5, .product-card h6, .product-card .card-title { font-size: 21px !important; line-height: 1.35; }
    .product-card__price, .product-price { font-size: 22px !important; }
    .checkout-card__body { padding: 18px; }
    .checkout-section-title { font-size: 21px !important; }
    .checkout-muted, .checkout-auth-note, .option-description, .secure-note, .field-error { font-size: 16px !important; line-height: 1.5 !important; }
    .option-title, .option-price, .summary-row { font-size: 18px !important; line-height: 1.5 !important; }
    .summary-total { font-size: 22px !important; }
    .summary-img { width: 72px !important; height: 72px !important; flex-shrink: 0; object-fit: contain; }
    .option-card { flex-wrap: wrap; gap: 12px; padding: 16px; }
    .option-main { flex: 1 1 180px; }
    .checkout-page .form-check-input { width: 22px; height: 22px; flex-shrink: 0; }
    .shop-cart-table, .shop-cart-table tbody { display: block; width: 100%; }
    .shop-cart-table thead { display: none; }
    .shop-cart-table tr { display: grid; grid-template-columns: minmax(0,1fr); padding: 16px; border-bottom: 1px solid #dfe9df; }
    .shop-cart-table td { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0 !important; border: 0; min-width: 0; font-size: 18px; text-align: left !important; }
    .shop-cart-table td:first-child { display: block; }
    .shop-cart-table td[data-label]::before { content: attr(data-label); font-weight: 600; }
    .shop-cart-table td:last-child { flex-wrap: wrap; }
    .shop-cart-table td:last-child > .mt-2 { margin-top: 0 !important; }
    .shop-cart-table .cart-qty-btn { min-width: 48px; min-height: 48px; }
    .shop-cart-table .cart-product-image { width: 100px !important; height: 100px !important; }
    .cart-page .cart-page-actions { flex-wrap: wrap; }
    .shop-footer p, .shop-footer a { font-size: 16px; line-height: 1.6; }
}
@media (max-width: 767.98px) {
    .shop-mobile-nav-head { grid-template-columns: minmax(0,1fr) auto; }
    .shop-mobile-nav-search { grid-column: 1 / -1; grid-row: 2; }
    .shop-mobile-nav-actions { justify-self: start; }
    .shop-mobile-nav-close { justify-self: end; }
}
@media (max-width: 359.98px) {
    .shop-cart-table .cart-product-image { width: 80px !important; height: 80px !important; }
}

/* Full-width consent and prominent menu links on phones and tablets. */
@media (max-width: 1199.98px) {
    .shop-navbar__menu .shop-nav-link { font-size: 28px !important; line-height: 1.35; min-height: 70px; padding: 16px 4px !important; overflow-wrap: anywhere; }
    #privacy-banner.sp-privacy { left: 0; right: 0; bottom: 0; width: 100%; max-width: none; margin: 0; border-radius: 0; box-sizing: border-box; max-height: 85dvh; overflow-y: auto; }
    #privacy-banner .sp-privacy__inner { padding: 24px max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }
    #privacy-banner .sp-privacy__actions { flex-wrap: wrap; }
    #privacy-banner .sp-privacy__button { min-height: 48px; font-size: 16px; }
}

@media (max-width: 1199.98px) {
    .shop-mobile-nav-close { width: 56px; height: 56px; min-width: 56px; min-height: 56px; flex-shrink: 0; }
    .shop-mobile-nav-close i { font-size: 32px; line-height: 1; }
}

/* Large, finger-friendly navigation tools, with search on its own row. */
@media (max-width: 1199.98px) {
    .shop-mobile-nav-head { grid-template-columns: 60px minmax(0,1fr); gap: 8px 4px; }
    .shop-mobile-nav-language { grid-column: 1; grid-row: 1; position: relative; }
    .shop-mobile-nav-actions { grid-column: 2; grid-row: 1; justify-self: end; gap: 2px; }
    .shop-mobile-nav-search { grid-column: 1 / -1; grid-row: 2; min-height: 48px; }
    .shop-mobile-nav-icon { width: 52px; height: 52px; min-width: 52px; min-height: 52px; flex-shrink: 0; }
    .shop-mobile-nav-language__toggle { width: 60px; height: 60px; min-width: 60px; min-height: 60px; flex-shrink: 0; }
    .shop-mobile-nav-icon i { font-size: 28px; line-height: 1; }
    .shop-mobile-nav-language__toggle i { font-size: 34px; line-height: 1; }
    .shop-mobile-nav-badge { font-size: 12px; height: 21px; min-width: 21px; top: 0; right: 0; }
    .shop-mobile-nav-language__menu { min-width: 260px; left: 0 !important; right: auto !important; transform: none !important; }
    .shop-mobile-nav-language__item { font-size: 22px; min-height: 64px; padding-left: 20px; padding-right: 20px; }
    .shop-mobile-nav-language__code { font-size: 16px; }
}