/* FLOWERS LOVE design tokens: editorial typography, warm paper, wine accent. */
:root { --bg:#f8f5f0; --paper:#fffdf9; --ink:#272522; --muted:#645d56; --line:#dcd4cb; --accent:#723d46; --accent-soft:#efe2df; --shadow-soft:0 16px 40px #30251f0a; --radius:12px; color-scheme:light; }
[hidden] { display:none!important; }
body { font-family:'Montserrat',Arial,sans-serif; font-size:16px; line-height:1.5; }
h1,h2,.brand,.service-strip strong,.product-name,.modal-content h2 { font-family:'Cormorant',Georgia,serif; }
button,input,textarea,select { font-family:inherit; }
button,a,input,select,textarea { touch-action:manipulation; }
button { cursor:pointer; }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
button:disabled { opacity:.48; cursor:not-allowed; }
.ui-icon { display:block; width:22px; height:22px; flex-shrink:0; }
.skip-link { position:fixed; top:-100px; left:16px; padding:12px 18px; background:var(--ink); color:white; z-index:100; }
.skip-link:focus { top:12px; }
.site-header { height:88px; padding:0 max(24px,4vw); background:var(--bg); backdrop-filter:none; box-shadow:none; }
.brand { font-size:29px; font-weight:600; letter-spacing:.035em; line-height:1; }
.brand span { font:500 9px/1.5 'Montserrat',sans-serif; letter-spacing:.25em; margin-top:5px; }
.desktop-nav { font-size:13px; gap:24px; }
.header-actions { gap:6px; }
.icon-btn,.menu-btn { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.menu-btn { display:none; }
.icon-btn:hover,.menu-btn:hover { background:var(--accent-soft); opacity:1; transform:none; }
.orders-btn { padding:10px 12px; min-height:44px; font-size:12px; border-radius:8px; }
.contact-btn { min-height:44px; font-size:12px; border-radius:8px; background:var(--accent); padding:12px 18px; }
.cart-btn b,.favorites-count { min-width:17px; height:17px; top:0; right:1px; font:500 10px/17px 'Montserrat',sans-serif; background:var(--accent); }
.primary-btn { background:var(--accent); border-radius:8px; min-height:52px; padding:15px 24px; font-size:14px; font-weight:500; box-shadow:none; gap:28px; }
.primary-btn:hover,.contact-btn:hover { background:#5c2c35; box-shadow:none; transform:none; }
.primary-btn:active,.add-btn:active { filter:brightness(.92); }
.hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px 56px; min-height:0; padding:44px max(24px,6vw) 0; background:var(--bg); overflow:visible; align-items:center; }
.hero::before,.hero::after { display:none; }
.hero-copy { padding:0 0 28px; max-width:590px; }
.hero-copy .eyebrow { font-size:10px; letter-spacing:.20em; color:var(--muted); margin-bottom:24px; }
.hero-copy h1 { font-size:clamp(64px,6.6vw,108px); line-height:.96; letter-spacing:-.045em; font-weight:500; }
h1 em { color:var(--accent); -webkit-text-stroke:0; font-style:italic; }
.hero-text { font-size:14px; max-width:380px; line-height:1.8; color:var(--muted); margin:24px 0 14px; }
.hero-location { font-size:11px; color:var(--muted); margin:0 0 24px; letter-spacing:.03em; }
.hero-image { margin:0; width:100%; min-height:0; height:auto; aspect-ratio:1; align-self:center; border-radius:120px 12px 12px 12px; background:#e7ddcf; box-shadow:none; overflow:hidden; position:relative; transition:none; }
.hero-image img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-image::before,.hero-image::after { display:none; }
.hero-image:hover { transform:none; box-shadow:none; }
.hero-image-caption { position:absolute; bottom:22px; left:24px; right:24px; text-align:center; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#fff; text-shadow:0 1px 6px #000; background:#30251f85; padding:10px; border-radius:4px; }
.hero-features { grid-column:1/-1; position:static; display:grid; grid-template-columns:repeat(4,1fr); padding:24px 0; background:transparent; border-top:1px solid var(--line); border-bottom:1px solid var(--line); backdrop-filter:none; font-size:12px; color:var(--muted); }
.hero-features div { padding:0 24px; min-height:36px; }
.hero-features div:first-child { padding-left:0; }
.categories { display:flex; flex-wrap:wrap; justify-content:center; padding:36px 5vw 0; gap:8px; background:var(--bg); }
.categories .category-filter-btn { display:inline-flex!important; justify-content:center; align-items:center; gap:4px; min-height:44px; padding:10px 20px; border:1px solid var(--line); background:transparent; border-radius:24px; font-size:12px; box-shadow:none; transform:none; color:var(--muted); }
.categories .category-filter-btn[hidden] { display:none!important; }
.categories button br { display:none; }
.categories button::before,.categories button::after { display:none; }
.categories .category-filter-btn:hover { border-color:var(--accent); color:var(--accent); transform:none; box-shadow:none; }
.categories .category-filter-btn.is-active { color:var(--paper); background:var(--accent); border-color:var(--accent); }
.categories .categories-more { display:none!important; }
.catalog-section { padding:64px max(24px,6vw) 80px; }
.section-heading { margin-bottom:28px; align-items:center; }
h2 { font-size:clamp(36px,4vw,64px); font-weight:500; letter-spacing:-.025em; }
.eyebrow { font-size:10px; color:var(--muted); letter-spacing:.2em; }
.section-heading .eyebrow { margin-bottom:12px; }
.section-heading > a { font-size:12px; color:var(--accent); border-color:var(--accent); }
.product-grid { gap:36px 22px; }
.product-card { overflow:visible; border-radius:12px; }
.product-card::before { display:none; }
.product-photo { border-radius:12px; box-shadow:none; background:#ede8e2; aspect-ratio:4/5; }
.product-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.product-card:hover .product-photo { transform:none; box-shadow:0 0 0 1px #723d4633; }
.product-info { padding:16px 0 0; }
.product-name { font-size:25px; line-height:1.12; color:var(--ink); min-height:2.24em; }
.product-price { font-size:15px; font-weight:500; margin:8px 0 14px; }
.add-btn { min-height:44px; font-size:12px; border-radius:8px; color:var(--accent); border-color:#c4b0ad; background:transparent; }
.add-btn:hover { background:var(--accent); color:white; border-color:var(--accent); transform:none; }
.product-favorite { width:44px; height:44px; top:10px; right:10px; display:flex; align-items:center; justify-content:center; background:var(--paper); border:0; box-shadow:0 2px 12px #30251f12; }
.product-favorite.is-active svg { fill:var(--accent); stroke:var(--accent); }
.client-budget { max-width:460px; margin-bottom:30px; }
.client-budget-head,.client-budget-head strong { font-size:12px; }
.custom-banner { margin:0 max(24px,6vw) 64px; grid-template-columns:1.15fr .85fr; min-height:0; border-radius:16px; background:#eee5db; }
.custom-banner > div:first-child { padding:52px; }
.custom-banner > div:first-child::after { display:none; }
.custom-banner h2 { font-size:clamp(36px,4vw,58px); }
.custom-banner p:not(.eyebrow) { font-size:14px; }
.custom-image { display:flex; align-items:center; justify-content:center; min-height:0; border-left:1px solid #d9cabc; background:transparent; padding:32px; }
.custom-image::before,.custom-image::after { display:none; }
.custom-image span { font-family:'Cormorant',Georgia,serif; font-size:clamp(32px,4.5vw,70px); line-height:1.1; text-align:center; color:var(--accent); }
.custom-image em { font-weight:400; }
.service-strip { padding:38px max(24px,6vw); background:var(--paper); }
.service-strip strong { font-size:27px; }
.service-strip span { font-size:12px; color:var(--muted); letter-spacing:0; }
.service-strip em { color:var(--accent); }
.contacts-section { background:var(--bg); padding:64px max(24px,6vw); }
.contact-links a { border-radius:8px; font-size:14px; border-color:#c4b0ad; color:var(--accent); }
.contact-links a:hover { background:var(--accent); color:white; }
.shop-address p { font-size:14px; color:var(--muted); }
footer { padding:28px max(24px,6vw); background:#302b27; font-size:10px; }
footer span:first-child { font-family:'Cormorant',serif; font-size:24px; }
.modal-content h2 { font-size:38px; line-height:1.05; }
.modal-description { font-size:14px; line-height:1.6; }
.modal-meta span:last-child { font-size:12px; color:var(--muted); }
.modal-favorite-btn,.product-reviews-link { min-height:36px; padding:6px 0; }
.checkout-fields input,.checkout-fields textarea,.checkout-fields select { background:var(--paper); border-color:#c6bbb0; }
.my-order-status,.search-result small { color:var(--muted); }
@media(max-width:1200px) { .desktop-nav { gap:16px; } .orders-btn { display:none; } .hero { gap:28px; padding:36px 5vw 0; } }
@media(min-width:901px) { .mobile-catalog-link { display:none; } }
@media(max-width:1000px) { .desktop-nav { display:none; } .menu-btn { display:inline-flex; } .site-header { height:78px; } }
@media(max-width:900px) { .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .custom-banner > div:first-child { padding:32px; } }
@media(max-width:700px) {
 .site-header { height:72px; padding:0 16px; } .brand { font-size:23px; } .brand span { font-size:8px; letter-spacing:.12em; }
 .header-actions { gap:0; } .icon-btn,.menu-btn { width:40px; height:44px; } .contact-btn,.orders-btn { display:none; }
 .hero { display:flex; flex-direction:column; padding:28px 20px 0; gap:24px; min-height:0; }
 .hero-copy { padding:0; width:100%; max-width:none; text-align:left; }
 .hero-copy .eyebrow { font-size:9px; margin-bottom:18px; }
 .hero-copy h1 { font-size:clamp(52px,12vw,76px); line-height:.94; max-width:400px; }
 .hero-copy h1 br:nth-child(2) { display:none; }
 .hero-text { margin:20px 0 12px; font-size:13px; max-width:100%; }
 .hero-location { font-size:11px; margin-bottom:20px; }
 .hero-copy .primary-btn { width:100%; justify-content:space-between; }
 .hero-image { display:block; position:relative; inset:auto; order:1; width:100%; height:auto; min-height:0; margin:0; aspect-ratio:1.12; border-radius:70px 12px 12px 12px; opacity:1; z-index:auto; }
 .hero-image-caption { bottom:14px; left:14px; right:14px; font-size:9px; }
 .hero-features { order:2; width:100%; grid-template-columns:repeat(2,1fr); gap:16px 0; padding:20px 0; font-size:11px; }
 .hero-features div { border:0; min-height:30px; padding:0 12px!important; } .hero-features div:nth-child(odd) { padding-left:0!important; }
 .categories { padding:24px 20px 0; justify-content:flex-start; gap:8px; }
 .categories .category-filter-btn { padding:10px 14px; font-size:11px; min-height:44px; }
 .catalog-section { padding:36px 20px 48px; }
 .section-heading { margin-bottom:22px; } .section-heading h2 { font-size:40px; } .section-heading .eyebrow { font-size:9px; }
 .product-grid { gap:28px 12px; }
 .product-name { font-size:22px; } .product-price { font-size:14px; }
 .add-btn { font-size:11px; padding:10px 6px; }
 .product-favorite { width:36px; height:36px; top:6px; right:6px; } .product-favorite::after { content:'';position:absolute;inset:-4px; }
 .product-favorite svg { width:19px; height:19px; }
 .mobile-catalog-link { color:var(--accent); font-size:13px; margin-top:28px; min-height:44px; }
 .custom-banner { margin:0 20px 40px; display:block; } .custom-banner > div:first-child { padding:32px 24px; } .custom-image { display:none; }
 .custom-banner h2 { font-size:38px; } .custom-banner p:not(.eyebrow) { font-size:13px; }
 .service-strip { padding:24px 20px; grid-template-columns:repeat(2,1fr); gap:20px 12px; } .service-strip div { padding:0; border:0; text-align:left; } .service-strip strong { font-size:26px; } .service-strip span { font-size:11px; }
 .contacts-section { padding:40px 20px; } .contacts-section h2 { font-size:40px; } .contacts-section > p { font-size:14px; }
 .contact-links a { font-size:12px; padding:12px 10px; }
 .modal-content h2 { font-size:30px; } .modal-description { font-size:13px; line-height:1.45; }
 .modal-content { gap:7px; } .modal-favorite-btn,.product-reviews-link { min-height:28px; padding:3px 0; }
 .modal-add { font-size:13px; min-height:44px; }
 .checkout-fields input,.checkout-fields select,.checkout-fields textarea { font-size:16px; }
}
@media(max-width:360px) { .brand { font-size:20px; } .header-actions .icon-btn,.header-actions .menu-btn { width:34px; } .product-name { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

/* Mobile hero: flowers behind readable text, no separate photo block. */
@media (max-width:700px) {
 .hero { padding-top:0; gap:0; }
 .hero-copy { position:relative; isolation:isolate; width:calc(100% + 40px); max-width:none; margin:0 -20px; padding:38px 20px 32px; background:linear-gradient(90deg,rgba(248,245,240,.96),rgba(248,245,240,.80)),url('assets/boombastic/hero-editorial.png') center right / cover no-repeat; animation:none; }
 .hero-copy h1 { font-size:clamp(50px,12vw,76px); line-height:.98; }
 .hero-copy h1 br:nth-child(2) { display:initial; }
 .hero-copy .eyebrow { color:#645d56; }
 .hero-copy .hero-text { color:#514941; font-size:14px; }
 .hero-copy .hero-location { color:#645d56; }
 .hero-image { display:none; }
 .hero-features { margin-top:0; }
}

/* FLOWERS LOVE refinements. Natural image proportions remove empty framing. */
.hero-features div { text-align:center; display:block; align-content:center; padding:0 12px!important; }
.hero-features div:first-child { padding:0 12px!important; }
.product-photo { position:relative; aspect-ratio:4/5; height:auto; min-height:0; border:0; background:transparent; overflow:hidden; }
.product-photo img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.product-card { min-width:0; }
.product-name { height:2.24em; overflow:hidden; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
@media(min-width:701px) { .custom-image em { font-weight:600; } }
@media(max-width:700px) { .hero-features div:nth-child(odd) { padding:0 12px!important; } }
