:root {
  --forest: #18392f;
  --forest-dark: #102a22;
  --leaf: #3f775f;
  --sage: #dfe9e1;
  --sage-light: #f0f4ef;
  --paper: #f8f6f0;
  --cream: #eee8db;
  --peach: #e9aa8e;
  --rose: #ba5a64;
  --ink: #173028;
  --muted: #69776f;
  --card: #fffdfa;
  --border: #d9dfd8;
  --bg: var(--paper);
  --pink: var(--rose);
  --pink-dark: #98444f;
  --green: var(--leaf);
  --display: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--bg); font-family: var(--sans); line-height: 1.5; }
body.cart-open { overflow: hidden; }
img { max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
[hidden] { display: none !important; }

.storefront-body { min-width: 0; background: var(--paper); }
.storefront-body h1, .storefront-body h2, .storefront-body h3 { font-family: var(--display); font-weight: 500; letter-spacing: -.035em; }
.page-shell, .container { width: min(100%, 1240px); margin-inline: auto; padding-inline: clamp(1rem, 3vw, 2rem); }
.site-main { min-height: 60vh; }
.store-eyebrow { margin: 0; color: var(--leaf); font-family: var(--sans); font-size: .7rem; font-weight: 780; letter-spacing: .15em; text-transform: uppercase; }
.muted, .hint { color: var(--muted); font-size: .82rem; }
.error { color: #a33f3a; font-weight: 650; }
.demo-note { padding: .7rem .8rem; border: 1px dashed #c9a34f; border-radius: .65rem; background: #fff7dc; color: #74571b; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }

button, .btn-primary, .btn-secondary { min-height: 2.65rem; padding: .62rem 1rem; border: 0; border-radius: .7rem; }
.btn-primary { background: var(--leaf); color: #fff; }
.btn-secondary { border: 1px solid var(--border); background: #fff; color: var(--ink); }
.btn-danger { background: #bd4941; color: #fff; }
.store-btn { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 3rem; padding: .75rem 1.1rem; border: 1px solid transparent; border-radius: 999px; font-size: .82rem; font-weight: 730; transition: transform .18s ease, background .18s ease, color .18s ease; }
.store-btn:hover { transform: translateY(-1px); }
.store-btn-primary { background: var(--forest); color: #fff; box-shadow: 0 8px 22px rgba(24,57,47,.16); }
.store-btn-primary:hover { background: var(--forest-dark); }
.store-btn-secondary { border-color: #bdc9c1; background: transparent; color: var(--forest); }
.store-btn-secondary:hover { background: #edf2ed; }
.text-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--forest); font-size: .82rem; font-weight: 720; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(3px); }

/* Shell */
.announcement-bar { background: var(--forest-dark); color: #dce9df; text-align: center; }
.announcement-bar p { display: flex; justify-content: center; gap: .7rem; margin: 0; padding: .4rem 1rem; font-size: .66rem; letter-spacing: .06em; }
.announcement-divider { color: #799888; }
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid rgba(24,57,47,.12); background: rgba(248,246,240,.94); backdrop-filter: blur(16px); }
.site-header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; width: min(100%, 1380px); min-height: 4.7rem; margin-inline: auto; padding-inline: clamp(1rem, 3vw, 2.5rem); }
.logo { display: inline-flex; align-items: center; gap: .7rem; }
.logo > span:last-child { display: flex; flex-direction: column; line-height: 1; }
.logo strong { font-family: var(--display); font-size: 1.3rem; font-weight: 600; letter-spacing: -.03em; }
.logo small { margin-top: .18rem; color: var(--muted); font-size: .52rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.logo-flower { position: relative; width: 2.1rem; height: 2.1rem; flex: 0 0 auto; }
.logo-flower i { position: absolute; left: 50%; top: 50%; width: .72rem; height: .95rem; border-radius: 60% 60% 48% 48%; background: var(--leaf); transform-origin: 50% 100%; }
.logo-flower i:nth-child(1) { transform: translate(-50%,-95%); }
.logo-flower i:nth-child(2) { transform: translate(-50%,-95%) rotate(90deg); }
.logo-flower i:nth-child(3) { transform: translate(-50%,-95%) rotate(180deg); }
.logo-flower i:nth-child(4) { transform: translate(-50%,-95%) rotate(270deg); }
.logo-flower b { position: absolute; left: 50%; top: 50%; width: .45rem; height: .45rem; border-radius: 50%; background: #f2c7a8; transform: translate(-50%,-50%); }
.desktop-nav { display: flex; justify-content: center; gap: clamp(1rem, 3vw, 2.2rem); }
.desktop-nav a { position: relative; padding: 1.7rem 0; color: #4d5f56; font-size: .76rem; font-weight: 650; }
.desktop-nav a::after { position: absolute; right: 0; bottom: 1.2rem; left: 0; height: 1px; background: var(--forest); content: ""; transform: scaleX(0); transition: transform .2s ease; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current="page"]::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .25rem; }
.header-icon-link, .cart-btn, .account-menu summary { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.6rem; padding: .45rem .65rem; border: 0; border-radius: 999px; background: transparent; color: var(--forest); font-size: .72rem; font-weight: 680; list-style: none; }
.header-icon-link:hover, .cart-btn:hover, .account-menu summary:hover { background: var(--sage); }
.header-icon-link svg, .cart-btn svg, .account-menu svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.account-menu { position: relative; }
.account-menu summary::-webkit-details-marker { display: none; }
.account-popover { position: absolute; top: calc(100% + .7rem); right: 0; display: grid; width: 13rem; overflow: hidden; border: 1px solid var(--border); border-radius: .85rem; background: #fff; box-shadow: 0 16px 42px rgba(17,42,34,.15); }
.account-popover p { display: grid; margin: 0; padding: .9rem 1rem; border-bottom: 1px solid var(--border); }
.account-popover p span { color: var(--muted); font-size: .65rem; }
.account-popover p strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; }
.account-popover a { padding: .65rem 1rem; font-size: .74rem; }
.account-popover a:hover { background: var(--sage-light); }
.badge { display: grid; min-width: 1.25rem; height: 1.25rem; padding: 0 .3rem; place-items: center; border-radius: 999px; background: var(--forest); color: #fff; font-size: .62rem; }
.badge:empty { display: none; }
.bump { animation: bump .3s ease; }
@keyframes bump { 50% { transform: scale(1.35); } }

/* Footer */
.site-footer { margin-top: 5rem; border-top: 1px solid #314e43; background: var(--forest-dark); color: #d4e0da; }
.footer-inner { display: grid; grid-template-columns: 1.45fr .7fr .7fr 1fr; gap: 3rem; width: min(100%, 1240px); margin: auto; padding: 4rem clamp(1rem,3vw,2rem); }
.footer-logo { color: #fff; }
.footer-logo .logo-flower i { background: #a8c3b1; }
.footer-logo small { color: #91a69c; }
.footer-brand > p { max-width: 23rem; color: #9eafa7; font-family: var(--display); font-size: 1.05rem; line-height: 1.5; }
.footer-links { display: grid; align-content: start; gap: .55rem; }
.footer-links strong, .footer-note strong { margin-bottom: .45rem; color: #fff; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-links a { color: #9eafa7; font-size: .75rem; }
.footer-links a:hover { color: #fff; }
.footer-note p { color: #9eafa7; font-size: .75rem; }
.footer-bottom { display: flex; justify-content: space-between; width: min(100%,1240px); margin: auto; padding: 1rem clamp(1rem,3vw,2rem); border-top: 1px solid #29463b; color: #82978d; font-size: .64rem; }

/* Home hero */
.home-hero { display: grid; grid-template-columns: minmax(0,.92fr) minmax(30rem,1.08fr); align-items: center; gap: clamp(2rem,5vw,5rem); min-height: 42rem; padding-top: 3rem; padding-bottom: 4rem; }
.hero-copy h1 { margin: .7rem 0 1.2rem; font-size: clamp(3.6rem,6vw,6.4rem); line-height: .89; }
.hero-copy h1 em { color: var(--leaf); font-weight: 400; }
.hero-lede { max-width: 35rem; color: #506159; font-family: var(--display); font-size: 1.15rem; line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 1.8rem; }
.hero-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 3rem; padding-top: 1.3rem; border-top: 1px solid #ced7d0; }
.hero-proof div { display: grid; }
.hero-proof strong { font-size: .72rem; }
.hero-proof span { color: var(--muted); font-size: .65rem; }
.hero-collage { position: relative; min-height: 36rem; }
.hero-image { position: absolute; overflow: hidden; border-radius: 45% 45% 1rem 1rem; }
.hero-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.hero-image:hover img { transform: scale(1.025); }
.hero-image-main { top: 0; right: 0; width: 72%; height: 34rem; box-shadow: 0 25px 60px rgba(31,62,50,.18); }
.hero-image-main > span { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: grid; padding: .75rem 1rem; border-radius: .7rem; background: rgba(255,253,250,.9); backdrop-filter: blur(10px); }
.hero-image-main small { color: var(--leaf); font-size: .58rem; font-weight: 760; letter-spacing: .11em; text-transform: uppercase; }
.hero-image-main strong { font-family: var(--display); font-size: 1rem; }
.hero-image-small { bottom: 0; left: 0; width: 39%; height: 18rem; border: .65rem solid var(--paper); border-radius: 8rem 8rem 1rem 1rem; box-shadow: 0 15px 40px rgba(31,62,50,.14); }
.hero-bloom-note { position: absolute; top: 2rem; left: 1rem; display: grid; place-items: center; width: 8rem; height: 8rem; border: 1px solid #c4d0c8; border-radius: 50%; background: var(--paper); font-family: var(--display); transform: rotate(-9deg); }
.hero-bloom-note span { align-self: end; font-size: .8rem; }
.hero-bloom-note strong { align-self: start; color: var(--leaf); font-size: 1.2rem; font-style: italic; }
.hero-bloom-note i { position: absolute; right: -.35rem; bottom: .5rem; color: var(--peach); }

/* Home content */
.occasion-section { padding-top: 4rem; padding-bottom: 5rem; }
.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.6rem; }
.section-intro h2 { max-width: 16em; margin: .25rem 0 0; font-size: clamp(2rem,4vw,3.3rem); line-height: 1.05; }
.section-intro > p { max-width: 28rem; color: var(--muted); font-family: var(--display); font-size: 1rem; }
.section-intro.compact { display: block; }
.occasion-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .75rem; }
.occasion-card { position: relative; display: grid; min-height: 12rem; padding: 1rem; overflow: hidden; border: 1px solid rgba(24,57,47,.12); border-radius: .8rem; transition: transform .2s ease; }
.occasion-card:hover { transform: translateY(-3px); }
.occasion-card > span { font-size: .62rem; font-weight: 750; }
.occasion-card strong { align-self: end; font-family: var(--display); font-size: 1.2rem; }
.occasion-card small { font-size: .65rem; opacity: .7; }
.occasion-card i { position: absolute; top: .8rem; right: .8rem; font-style: normal; }
.occasion-1 { background: #eed4d0; }.occasion-2 { background: #e5d6c7; }.occasion-3 { background: #dce5de; }.occasion-4 { background: #ece3cc; }.occasion-5 { background: #d8e6e1; }
.collection-section { padding-top: 4rem; padding-bottom: 5rem; }
.collection-intro { padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.shop-filter { display: grid; grid-template-columns: minmax(14rem,1.5fr) minmax(8rem,.55fr) auto auto; gap: .6rem; margin: 1.5rem 0 1rem; }
.shop-filter input, .shop-filter select, .price-filter summary { width: 100%; min-height: 2.8rem; padding: .6rem .75rem; border: 1px solid #ccd5ce; border-radius: 999px; background: #fffdfa; color: var(--ink); font-size: .75rem; }
.shop-search { position: relative; }
.shop-search svg { position: absolute; top: 50%; left: .9rem; width: 1rem; fill: none; stroke: var(--muted); stroke-width: 1.7; transform: translateY(-50%); }
.shop-search input { padding-left: 2.35rem; }
.price-filter { position: relative; }
.price-filter summary { display: flex; align-items: center; width: 6rem; cursor: pointer; list-style: none; }
.price-filter summary::-webkit-details-marker { display: none; }
.price-filter > div { position: absolute; top: calc(100% + .45rem); right: 0; z-index: 8; display: grid; grid-template-columns: repeat(2,7rem); gap: .5rem; padding: .8rem; border: 1px solid var(--border); border-radius: .7rem; background: #fff; box-shadow: 0 12px 30px rgba(24,57,47,.12); }
.price-filter label { display: grid; gap: .25rem; color: var(--muted); font-size: .65rem; }
.price-filter input { border-radius: .5rem; }
.filter-reset { align-self: center; padding: .5rem; color: var(--muted); font-size: .7rem; }
.quick-occasions { display: flex; gap: .35rem; margin-bottom: 2rem; overflow-x: auto; scrollbar-width: none; }
.quick-occasions::-webkit-scrollbar { display: none; }
.quick-occasions a { flex: 0 0 auto; padding: .42rem .7rem; border-radius: 999px; color: #5f6f66; font-size: .68rem; }
.quick-occasions a:hover, .quick-occasions a[aria-current="page"] { background: var(--forest); color: #fff; }
.collection-count { display: flex; justify-content: space-between; margin-bottom: .7rem; color: var(--muted); font-size: .66rem; }

/* Product cards */
.product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem 1rem; }
.product-grid > .product-card:nth-last-child(2):nth-child(4n + 1) { grid-column: 2; }
.product-card { min-width: 0; }
.product-card-media { position: relative; overflow: hidden; border-radius: .8rem; background: #e8ece6; }
.product-image { display: block; aspect-ratio: 4/4.4; overflow: hidden; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.product-card:hover .product-image img { transform: scale(1.025); }
.product-ribbon { position: absolute; top: .75rem; left: .75rem; padding: .3rem .55rem; border-radius: 999px; background: rgba(255,250,235,.92); color: #89611b; font-size: .63rem; font-weight: 750; }
.wish-btn { position: absolute; top: .7rem; right: .7rem; display: grid; width: 2.5rem; height: 2.5rem; min-height: 0; padding: 0; place-items: center; border: 1px solid rgba(24,57,47,.12); border-radius: 50%; background: rgba(255,253,250,.9); color: var(--forest); box-shadow: 0 5px 18px rgba(24,57,47,.08); }
.wish-btn svg { width: 1rem; fill: transparent; stroke: currentColor; stroke-width: 1.8; }
.wish-btn.saved { background: var(--forest); color: #fff; }
.wish-btn.saved svg { fill: currentColor; }
.product-body { padding: .85rem .15rem 0; }
.product-kicker { display: flex; gap: .35rem; margin: 0 0 .4rem; color: var(--leaf); font-size: .61rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.product-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.product-title-row h3 { margin: 0; font-size: 1.15rem; line-height: 1.2; }
.price { flex: 0 0 auto; font-family: var(--sans); font-size: .82rem; font-weight: 750; }
.desc { min-height: 2.7em; margin: .45rem 0 .8rem; overflow: hidden; color: var(--muted); font-size: .75rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.product-media-actions { position: absolute; right: .65rem; bottom: .65rem; left: .65rem; z-index: 2; pointer-events: none; }
.availability { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .63rem; }
.availability i { width: .42rem; height: .42rem; border-radius: 50%; background: #4c9b72; box-shadow: 0 0 0 3px #e5f1e9; }
.product-media-actions .availability, .product-media-actions .sold-out, .product-media-actions .text-link { min-height: 2.15rem; padding: .45rem .7rem; border: 1px solid rgba(24,57,47,.1); border-radius: 999px; background: rgba(255,253,250,.94); color: var(--forest); box-shadow: 0 5px 16px rgba(24,57,47,.1); backdrop-filter: blur(8px); pointer-events: auto; }
.product-media-actions .availability i { box-shadow: 0 0 0 3px rgba(76,155,114,.13); }
.quick-add { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.15rem; padding: .3rem .3rem .3rem .75rem; border: 0; border-radius: 999px; background: var(--forest); color: #fff; box-shadow: 0 6px 18px rgba(24,57,47,.22); font-size: .68rem; font-weight: 750; pointer-events: auto; }
.quick-add:hover { background: #275649; }
.quick-add b { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 1rem; font-weight: 400; }
.sold-out { color: #a34e4e; font-size: .7rem; font-weight: 650; }
.store-empty { padding: 5rem 1rem; border: 1px dashed #bbc9c0; border-radius: 1rem; text-align: center; }
.empty-flower { display: grid; width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); font-size: 1.3rem; }
.store-empty h3 { margin: .3rem 0; font-size: 1.8rem; }
.store-empty > p:not(.store-eyebrow) { margin: 0 auto 1.2rem; color: var(--muted); font-size: .8rem; }
.promise-band { background: var(--forest); color: #fff; }
.promise-band > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; padding-top: 2.2rem; padding-bottom: 2.2rem; }
.promise-band div > div { display: flex; gap: .8rem; }
.promise-band span { color: #91b09f; font-family: var(--display); font-size: 1.2rem; }
.promise-band p { display: grid; margin: 0; color: #a9bbb1; font-size: .7rem; }
.promise-band strong { color: #fff; font-size: .78rem; }

/* Product detail */
.product-page { padding-top: 1.5rem; }
.breadcrumbs { display: flex; gap: .5rem; margin-bottom: 1.2rem; color: var(--muted); font-size: .65rem; }
.breadcrumbs a:hover { color: var(--forest); }
.product-detail { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(25rem,.8fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.gallery { min-width: 0; }
.main-image-wrap { position: relative; overflow: hidden; border-radius: 12rem 12rem 1rem 1rem; background: #e9ece6; }
.main-image-wrap > img { display: block; width: 100%; aspect-ratio: 1/1.02; object-fit: cover; }
.image-note { position: absolute; right: 1rem; bottom: 1rem; padding: .45rem .65rem; border-radius: 999px; background: rgba(255,253,250,.9); color: var(--forest); font-size: .62rem; font-weight: 680; }
.thumbs { display: flex; gap: .6rem; margin-top: .75rem; }
.thumbs button { width: 4.2rem; height: 4.2rem; min-height: 0; padding: .2rem; border: 1px solid transparent; border-radius: .6rem; background: transparent; }
.thumbs button.active { border-color: var(--forest); }
.thumbs img { width: 100%; height: 100%; object-fit: cover; border-radius: .4rem; }
.detail-info { position: sticky; top: 6.5rem; padding-top: 1rem; }
.detail-topline { display: flex; align-items: center; justify-content: space-between; }
.detail-topline .wish-btn { position: static; }
.detail-info h1 { margin: .5rem 0 .65rem; font-size: clamp(2.6rem,4.5vw,4.5rem); line-height: .98; }
.detail-rating { display: flex; align-items: center; gap: .55rem; font-size: .68rem; }
.stars { color: #c58a48; letter-spacing: .05em; }
.detail-rating a { color: var(--muted); text-decoration: underline; text-underline-offset: .2rem; }
.price.big { display: block; margin: 1.2rem 0 .9rem; font-family: var(--display); font-size: 1.7rem; font-weight: 500; }
.detail-description { color: #52635a; font-family: var(--display); font-size: 1.05rem; line-height: 1.55; }
.detail-tags { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 1.4rem 0; border-block: 1px solid var(--border); }
.detail-tags span { display: grid; padding: .8rem .5rem; border-right: 1px solid var(--border); }
.detail-tags span:last-child { border-right: 0; }
.detail-tags small { color: var(--muted); font-size: .58rem; letter-spacing: .07em; text-transform: uppercase; }
.detail-tags strong { font-size: .72rem; }
.purchase-panel { display: grid; gap: .9rem; padding: 1rem; border-radius: .8rem; background: #e9f0ea; }
.purchase-panel > div { display: grid; }
.purchase-panel small { margin-top: .2rem; color: var(--muted); font-size: .65rem; }
.purchase-panel .store-btn { border-radius: .65rem; }
.purchase-panel.sold { background: #f1e8e5; }
.detail-assurances { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; margin: 1.2rem 0; }
.detail-assurances div { display: grid; grid-template-columns: auto 1fr; gap: .45rem; align-items: start; }
.detail-assurances div > span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); font-size: .7rem; }
.detail-assurances p { display: grid; margin: 0; color: var(--muted); font-size: .58rem; }
.detail-assurances strong { color: var(--ink); font-size: .65rem; }
.care-details { border-top: 1px solid var(--border); }
.care-details summary { display: flex; justify-content: space-between; padding: .9rem 0; cursor: pointer; font-size: .75rem; font-weight: 720; list-style: none; }
.care-details summary::-webkit-details-marker { display: none; }
.care-details p { margin: 0 0 1rem; color: var(--muted); font-size: .75rem; }
.reviews-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: 3rem; margin-top: 6rem; padding: 4rem 0; border-top: 1px solid var(--border); }
.reviews-intro h2 { margin: .4rem 0; font-size: 2.4rem; line-height: 1.05; }
.reviews-intro > p:last-child { color: var(--muted); font-size: .8rem; }
#reviews-content { grid-column: 2; grid-row: 1; }
.reviews-layout { display: grid; gap: 1rem; }
.review-form, .review-login-card { padding: 1.2rem; border: 1px solid var(--border); border-radius: .9rem; background: #fff; }
.review-form h3, .review-login-card h3 { margin: .25rem 0 .8rem; font-size: 1.4rem; }
.review-form label { display: block; margin: .7rem 0 .3rem; font-size: .7rem; font-weight: 700; }
.review-form select, .review-form textarea { width: 100%; padding: .65rem; border: 1px solid #cbd5cd; border-radius: .6rem; background: #fff; }
.review-form .store-btn { margin-top: .8rem; border-radius: .6rem; }
.review-login-card > span { color: var(--rose); font-size: 1.4rem; }
.review-login-card p { color: var(--muted); font-size: .76rem; }
.review-feed { display: grid; gap: .75rem; }
.review-card { padding: 1rem; border: 1px solid var(--border); border-radius: .8rem; background: rgba(255,255,255,.65); }
.review-card-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .65rem; }
.review-avatar { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); font-family: var(--display); }
.review-card-head > div:nth-child(2) { display: grid; }
.review-card-head strong { font-size: .72rem; }
.review-card-head span { color: var(--muted); font-size: .6rem; }
.review-card > p { margin: .8rem 0 0; font-family: var(--display); font-size: .95rem; }
.review-empty { padding: 2rem; text-align: center; }
.review-empty > span { color: var(--peach); }
.review-empty h3 { margin: .4rem 0; }
.review-empty p { color: var(--muted); font-size: .75rem; }
.related-section { padding: 4rem 0 1rem; border-top: 1px solid var(--border); }
.related-section .collection-count { display: none; }
.related-section .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }

/* Cart drawer */
#cart-overlay { position: fixed; inset: 0; z-index: 40; background: rgba(16,42,34,.48); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
#cart-drawer { position: fixed; top: 0; right: 0; z-index: 50; display: flex; flex-direction: column; width: min(30rem,94vw); height: 100dvh; background: #fffdfa; box-shadow: -18px 0 48px rgba(16,42,34,.16); transform: translateX(100%); transition: transform .28s ease; }
body.cart-open #cart-overlay { opacity: 1; pointer-events: auto; }
body.cart-open #cart-drawer { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 1.3rem; border-bottom: 1px solid var(--border); }
.drawer-head h2 { margin: .15rem 0 0; font-size: 1.55rem; }
.drawer-close { width: 2.2rem; height: 2.2rem; min-height: 0; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: transparent; color: var(--forest); font-size: 1.3rem; }
#cart-drawer-body { display: flex; flex: 1; flex-direction: column; gap: 1rem; padding: 1rem 1.3rem 1.3rem; overflow-y: auto; }
.free-ship { padding: .8rem; border-radius: .7rem; background: #f2eee3; }
.free-ship-copy { display: flex; align-items: center; gap: .6rem; }
.free-ship-copy > span { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #fff; color: var(--leaf); font-size: .7rem; }
.free-ship-copy p { display: grid; margin: 0; font-size: .7rem; }
.free-ship-copy small { color: var(--muted); font-size: .61rem; }
.free-ship-track { height: .28rem; margin-top: .65rem; overflow: hidden; border-radius: 999px; background: #d6dcd6; }
.free-ship-fill { height: 100%; border-radius: inherit; background: var(--leaf); }
.drawer-items { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.drawer-item { display: grid; grid-template-columns: 5rem 1fr auto; gap: .75rem; padding-bottom: .8rem; border-bottom: 1px solid var(--border); }
.drawer-item-image img { width: 5rem; height: 6rem; object-fit: cover; border-radius: .55rem; }
.drawer-item-info { min-width: 0; }
.drawer-item-info .product-kicker { margin-bottom: .25rem; }
.drawer-item-name { display: block; overflow: hidden; font-family: var(--display); font-size: .95rem; text-overflow: ellipsis; white-space: nowrap; }
.drawer-unit-price { color: var(--muted); font-size: .62rem; }
.stepper { display: inline-flex; align-items: center; margin-top: .55rem; overflow: hidden; border: 1px solid #cbd5cd; border-radius: 999px; }
.step-btn { width: 1.8rem; height: 1.8rem; min-height: 0; padding: 0; border: 0; background: transparent; color: var(--forest); }
.step-btn:hover { background: var(--sage); }
.step-btn:disabled { opacity: .35; }
.step-qty { min-width: 1.5rem; text-align: center; font-size: .7rem; font-weight: 720; }
.drawer-item-side { display: flex; flex-direction: column; align-items: end; justify-content: space-between; }
.drawer-remove { width: 1.7rem; height: 1.7rem; min-height: 0; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: 1rem; }
.drawer-line { font-size: .72rem; font-weight: 750; }
.drawer-section-title h3 { margin: .2rem 0 .5rem; font-size: 1rem; }
.upsell-card { display: grid; grid-template-columns: 3.2rem 1fr auto; align-items: center; gap: .6rem; margin-bottom: .45rem; padding: .45rem; border: 1px solid var(--border); border-radius: .65rem; }
.upsell-card img { width: 3.2rem; height: 3.2rem; object-fit: cover; border-radius: .45rem; }
.upsell-info { display: grid; min-width: 0; }
.upsell-info a { overflow: hidden; font-family: var(--display); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.upsell-info span { color: var(--muted); font-size: .62rem; }
.upsell-add { display: grid; width: 1.9rem; height: 1.9rem; min-height: 0; padding: 0; place-items: center; border: 0; border-radius: 50%; background: var(--forest); color: #fff; }
.drawer-summary { margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--border); }
.sum-row { display: flex; justify-content: space-between; margin: .35rem 0; font-size: .72rem; }
.sum-total { margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--border); font-family: var(--display); font-size: 1.05rem; }
.free { color: var(--leaf); font-style: normal; }
.drawer-checkout { width: 100%; margin-top: .8rem; border-radius: .65rem; }
.drawer-viewcart { display: block; margin-top: .65rem; color: var(--muted); text-align: center; font-size: .68rem; text-decoration: underline; }
.drawer-empty { margin: auto 0; padding: 2rem 1rem; text-align: center; }
.drawer-empty h3 { margin: .4rem 0; font-size: 1.5rem; }
.drawer-empty > p:not(.store-eyebrow) { color: var(--muted); font-size: .75rem; }

/* Simple pages and full cart */
.simple-page-head { padding-top: 4rem; padding-bottom: 2.5rem; }
.simple-page-head h1 { margin: .3rem 0 .5rem; font-size: clamp(3rem,5vw,5rem); line-height: .95; }
.simple-page-head > p:last-child { color: var(--muted); font-family: var(--display); font-size: 1rem; }
.cart-page { padding-bottom: 3rem; }
.cart-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(20rem,.55fr); align-items: start; gap: 2rem; }
.cart-line-list { display: grid; }
.cart-line { display: grid; grid-template-columns: 7rem 1fr auto auto; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--border); }
.cart-line > a img { width: 7rem; height: 8rem; object-fit: cover; border-radius: .65rem; }
.cart-line-copy { min-width: 0; }
.cart-line-copy h3 { margin: .2rem 0; font-size: 1.15rem; }
.cart-line-copy > p:not(.product-kicker) { overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.cart-line-copy > span { color: var(--muted); font-size: .65rem; }
.cart-quantity { display: grid; gap: .25rem; color: var(--muted); font-size: .6rem; text-transform: uppercase; }
.cart-quantity input { width: 4rem; padding: .45rem; border: 1px solid #c9d3cc; border-radius: .5rem; background: #fff; }
.cart-line-total { min-width: 5rem; text-align: right; font-size: .82rem; }
.cart-continue { margin-top: 1rem; }
.cart-summary-card { position: sticky; top: 6.5rem; padding: 1.2rem; border: 1px solid var(--border); border-radius: .9rem; background: #fff; box-shadow: 0 14px 35px rgba(24,57,47,.07); }
.cart-summary-card h2 { margin: .2rem 0 1rem; font-size: 1.6rem; }
.cart-summary-rows p { display: flex; justify-content: space-between; margin: .5rem 0; font-size: .72rem; }
.cart-summary-rows i { color: var(--leaf); font-style: normal; }
.cart-summary-rows .grand-total { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--border); font-family: var(--display); font-size: 1.05rem; }
.summary-progress { margin: 1rem 0; padding: .7rem; border-radius: .6rem; background: var(--sage-light); }
.summary-progress p { margin: 0; font-size: .67rem; }
.cart-summary-card .store-btn { width: 100%; margin-top: .8rem; border-radius: .65rem; }
.summary-assurance { display: flex; justify-content: center; gap: .35rem; color: var(--muted); text-align: center; font-size: .61rem; }
.summary-assurance span { color: var(--leaf); }
.cart-page-empty { margin-bottom: 4rem; }

/* Checkout */
.checkout-head { display: grid; grid-template-columns: 8rem 1fr auto; align-items: end; gap: 2rem; padding-top: 3rem; padding-bottom: 2rem; }
.checkout-head h1 { margin: .3rem 0; font-size: clamp(2.8rem,5vw,4.6rem); line-height: .95; }
.checkout-head div > p:last-child { color: var(--muted); font-family: var(--display); }
.checkout-head ol { display: flex; gap: 1.5rem; margin: 0; padding: 0 0 .5rem; list-style: none; counter-reset: checkout; }
.checkout-head li { position: relative; color: #919c96; font-size: .66rem; font-weight: 700; }
.checkout-head li::before { display: block; width: .55rem; height: .55rem; margin: auto auto .35rem; border: 1px solid #aebbb3; border-radius: 50%; content: ""; }
.checkout-head li.done, .checkout-head li.current { color: var(--forest); }
.checkout-head li.done::before, .checkout-head li.current::before { border-color: var(--leaf); background: var(--leaf); }
.checkout-alert { display: flex; gap: .7rem; margin-bottom: 1rem; }
.checkout-alert > span { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f7d9d5; color: #9e3f39; }
.checkout-alert p { display: grid; margin: 0; color: #99423b; font-size: .75rem; }
.checkout-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(20rem,.55fr); align-items: start; gap: 2rem; padding-bottom: 4rem; }
.checkout-form { display: grid; gap: 1rem; }
.checkout-panel { overflow: hidden; border: 1px solid var(--border); border-radius: .9rem; background: #fff; }
.checkout-panel-head { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--border); background: #fbfcf8; }
.checkout-panel-head > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); font-size: .66rem; font-weight: 780; }
.checkout-panel-head h2 { margin: .1rem 0 0; font-size: 1.35rem; }
.checkout-panel-body { display: grid; gap: 1rem; padding: 1.2rem; }
.store-field { display: grid; gap: .35rem; min-width: 0; }
.store-field label { font-size: .7rem; font-weight: 720; }
.store-field input, .store-field textarea, .store-field select, .store-auth-form input { width: 100%; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid #c7d2ca; border-radius: .6rem; background: #fff; color: var(--ink); }
.store-field textarea { resize: vertical; }
.store-field small { color: var(--muted); font-size: .62rem; }
.store-field input:focus, .store-field textarea:focus, .store-field select:focus, .store-auth-form input:focus { border-color: var(--leaf); outline: 3px solid rgba(63,119,95,.12); }
.gift-toggle { display: flex; align-items: center; gap: .8rem; cursor: pointer; }
.gift-toggle > input { position: absolute; opacity: 0; }
.gift-toggle > span { width: 2.5rem; height: 1.45rem; flex: 0 0 auto; padding: .15rem; border-radius: 999px; background: #cbd4ce; transition: background .2s ease; }
.gift-toggle i { display: block; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.gift-toggle input:checked + span { background: var(--leaf); }
.gift-toggle input:checked + span i { transform: translateX(1rem); }
.gift-toggle p { display: grid; margin: 0; }
.gift-toggle strong { font-size: .75rem; }
.gift-toggle small { color: var(--muted); font-size: .65rem; }
.gift-fields { display: grid; gap: .9rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.check { display: flex; align-items: center; gap: .5rem; font-size: .7rem; }
.pay-grid { display: grid; grid-template-columns: 10rem 1fr; align-items: center; gap: 1rem; padding: 1rem; border-radius: .75rem; background: #f0f4ef; }
.pay-qr { display: grid; place-items: center; }
.pay-qr svg { width: 9rem; height: 9rem; padding: .45rem; background: #fff; }
.pay-qr small { margin-top: .35rem; color: var(--muted); font-size: .58rem; }
.pay-info { display: grid; }
.pay-info p { margin: 0; color: var(--muted); font-size: .65rem; }
.pay-info > strong { font-family: var(--display); font-size: 1.8rem; }
.pay-info > span { font-size: .72rem; font-weight: 720; }
.pay-info > small { margin-top: .7rem; color: var(--muted); font-size: .62rem; }
.upi-open { display: none; margin-top: .7rem; }
.payment-reference { margin-top: .4rem; }
.payment-methods { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin-bottom: .85rem; }
.payment-methods label { position: relative; cursor: pointer; }
.payment-methods input { position: absolute; opacity: 0; pointer-events: none; }
.payment-methods label > span { display: grid; padding: .75rem .85rem; border: 1px solid var(--border); border-radius: .7rem; background: #fff; transition: border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.payment-methods input:checked + span { border-color: var(--leaf); background: #eef5f0; box-shadow: 0 0 0 2px rgba(63,119,95,.1); }
.payment-methods strong { font-size: .78rem; }
.payment-methods small { margin-top: .1rem; color: var(--muted); font-size: .62rem; }
.bank-transfer-card { padding: 1rem; border: 1px solid var(--border); border-radius: .75rem; background: #f5f7f3; }
.bank-transfer-amount { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); }
.bank-transfer-amount span { color: var(--muted); font-size: .68rem; }
.bank-transfer-amount strong { font-family: var(--display); font-size: 1.35rem; }
.bank-transfer-card dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem 1rem; margin: .8rem 0 0; }
.bank-transfer-card dl div { min-width: 0; }
.bank-transfer-card dt { color: var(--muted); font-size: .58rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.bank-transfer-card dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: .73rem; font-weight: 720; }
.payment-proof-fields { margin-top: .9rem; }
.payment-proof-fields label span { color: var(--muted); font-weight: 500; }
.payment-proof-or { display: flex; align-items: center; gap: .65rem; margin: .65rem 0; color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.payment-proof-or::before,.payment-proof-or::after { height: 1px; flex: 1; background: var(--border); content: ""; }
.payment-upload input[type="file"] { padding: .55rem; background: #fff; }
.payment-upload input[type="file"]::file-selector-button { margin-right: .7rem; padding: .5rem .7rem; border: 0; border-radius: .45rem; background: var(--forest); color: #fff; cursor: pointer; font-weight: 700; }
.payment-proof-note { margin: .75rem 0 0; padding: .65rem .75rem; border-radius: .55rem; background: #fff8e8; color: #765d27; font-size: .65rem; }
.checkout-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; }
.checkout-submit p { display: flex; gap: .35rem; color: var(--muted); font-size: .65rem; }
.checkout-submit p span { color: var(--leaf); }
.checkout-summary { position: sticky; top: 6.5rem; overflow: hidden; border: 1px solid var(--border); border-radius: .9rem; background: #fff; box-shadow: 0 14px 35px rgba(24,57,47,.07); }
.checkout-summary-head { position: relative; padding: 1rem 1.1rem; border-bottom: 1px solid var(--border); }
.checkout-summary-head h2 { margin: .2rem 0 0; font-size: 1.45rem; }
.checkout-summary-head a { position: absolute; top: 1rem; right: 1rem; color: var(--muted); font-size: .65rem; text-decoration: underline; }
.checkout-summary ul { display: grid; gap: .8rem; margin: 0; padding: 1rem; list-style: none; }
.checkout-summary li { position: relative; display: grid; grid-template-columns: 3.5rem 1fr auto; align-items: center; gap: .6rem; }
.checkout-summary li img { width: 3.5rem; height: 3.8rem; object-fit: cover; border-radius: .45rem; }
.summary-qty { position: absolute; top: -.25rem; left: 3rem; display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border-radius: 50%; background: var(--forest); color: #fff; font-size: .58rem; }
.checkout-summary li div { display: grid; min-width: 0; }
.checkout-summary li strong { overflow: hidden; font-family: var(--display); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.checkout-summary li small { color: var(--muted); font-size: .58rem; }
.checkout-summary li > b { font-size: .68rem; }
.checkout-totals { padding: .9rem 1rem; border-top: 1px solid var(--border); }
.checkout-totals p { display: flex; justify-content: space-between; margin: .35rem 0; font-size: .7rem; }
.checkout-totals i { color: var(--leaf); font-style: normal; }
.checkout-totals p:last-child { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--border); font-family: var(--display); font-size: 1rem; }
.checkout-promise { display: flex; gap: .6rem; padding: .8rem 1rem; background: var(--sage-light); }
.checkout-promise > span { color: var(--peach); }
.checkout-promise p { display: grid; margin: 0; color: var(--muted); font-size: .6rem; }
.checkout-promise strong { color: var(--ink); font-size: .68rem; }

/* Confirmation and account */
.confirmation-page { max-width: 48rem; padding-top: 5rem; padding-bottom: 3rem; text-align: center; }
.confirmation-mark { position: relative; display: grid; width: 5rem; height: 5rem; margin: 0 auto 1.5rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); font-size: 1.5rem; }
.confirmation-mark i { position: absolute; width: .35rem; height: .35rem; border-radius: 50%; background: var(--peach); }
.confirmation-mark i:nth-child(2) { top: -.8rem; }.confirmation-mark i:nth-child(3) { right: -.9rem; bottom: .4rem; }.confirmation-mark i:nth-child(4) { left: -.7rem; bottom: 1rem; }
.confirmation-page h1 { margin: .5rem 0 1rem; font-size: clamp(3.2rem,7vw,5.8rem); line-height: .9; }
.confirmation-lede { max-width: 35rem; margin: auto; color: var(--muted); font-family: var(--display); font-size: 1.05rem; }
.confirmation-card { margin: 2rem auto; overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: #fff; text-align: left; box-shadow: 0 16px 40px rgba(24,57,47,.07); }
.confirmation-card-head { display: grid; grid-template-columns: repeat(2,1fr); padding: 1rem 1.2rem; border-bottom: 1px solid var(--border); background: #fbfcf8; }
.confirmation-card-head div { display: grid; }
.confirmation-card-head div:last-child { text-align: right; }
.confirmation-card-head span, .confirmation-items span, .confirmation-details span { color: var(--muted); font-size: .6rem; letter-spacing: .07em; text-transform: uppercase; }
.confirmation-items { display: grid; padding: 1rem 1.2rem; }
.confirmation-items strong { font-family: var(--display); }
.confirmation-status { display: flex; gap: .7rem; margin: 0 1.2rem; padding: .8rem; border-radius: .7rem; background: #fff4dd; }
.status-pulse { width: .55rem; height: .55rem; flex: 0 0 auto; margin-top: .25rem; border-radius: 50%; background: #d49a35; box-shadow: 0 0 0 4px rgba(212,154,53,.13); }
.confirmation-status p { display: grid; margin: 0; color: #80632b; font-size: .65rem; }
.confirmation-status strong { color: #59441b; font-size: .72rem; }
.confirmation-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding: 1.1rem 1.2rem; }
.confirmation-details div { display: grid; }
.confirmation-details strong { overflow-wrap: anywhere; font-size: .7rem; }
.confirmation-actions { display: flex; align-items: center; justify-content: center; gap: 1.4rem; }
.account-page { padding-top: 4rem; padding-bottom: 3rem; }
.account-head { padding: 0 0 2.5rem; }
.customer-order-list { display: grid; gap: 1rem; }
.customer-order-card { overflow: hidden; border: 1px solid var(--border); border-radius: .9rem; background: #fff; box-shadow: 0 10px 28px rgba(24,57,47,.04); }
.customer-order-card > header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.2rem; border-bottom: 1px solid var(--border); }
.customer-order-number { display: flex; align-items: center; gap: .7rem; }
.customer-order-number > span { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .65rem; background: var(--sage); color: var(--leaf); font-size: .7rem; font-weight: 800; }
.customer-order-number > div { display: grid; }
.customer-order-number strong { font-size: .7rem; }
.customer-order-total { display: grid; text-align: right; }
.customer-order-total span, .customer-order-main > div > span, .customer-order-details span { color: var(--muted); font-size: .58rem; letter-spacing: .07em; text-transform: uppercase; }
.customer-order-total strong { font-family: var(--display); font-size: 1rem; }
.customer-order-main { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; }
.customer-order-main > div:first-child { display: grid; }
.customer-order-main > div:first-child strong { font-family: var(--display); font-size: .9rem; }
.customer-payment { display: inline-flex; align-items: center; gap: .35rem; font-size: .65rem; font-weight: 720; }
.customer-payment i { width: .45rem; height: .45rem; border-radius: 50%; background: #999; }
.customer-payment.paid { color: var(--leaf); }.customer-payment.paid i { background: #4a9b71; }
.customer-payment.pending { color: #91641a; }.customer-payment.pending i { background: #d39a35; }
.timeline { display: flex; margin: .5rem 1.2rem 1.2rem; padding: 1rem 0 0; border-top: 1px solid var(--border); list-style: none; }
.timeline li { position: relative; flex: 1; color: #99a39d; text-align: center; font-size: .58rem; }
.timeline li::before { position: absolute; top: .38rem; left: -50%; width: 100%; height: 1px; background: #d7ddd8; content: ""; }
.timeline li:first-child::before { display: none; }
.timeline-dot { position: relative; z-index: 1; display: block; width: .75rem; height: .75rem; margin: 0 auto .45rem; border: 2px solid #fff; border-radius: 50%; background: #cbd3ce; box-shadow: 0 0 0 1px #cbd3ce; }
.timeline li.done, .timeline li.current { color: var(--leaf); }
.timeline li.done::before, .timeline li.current::before { background: var(--leaf); }
.timeline li.done .timeline-dot, .timeline li.current .timeline-dot { background: var(--leaf); box-shadow: 0 0 0 1px var(--leaf); }
.timeline li.current .timeline-dot { box-shadow: 0 0 0 4px #dfece4; }
.customer-order-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding: .9rem 1.2rem; background: #f8faf7; }
.customer-order-details div { display: grid; }
.customer-order-details strong { font-size: .68rem; }
.cancelled-order-state { display: flex; gap: .6rem; margin: 0 1.2rem 1rem; padding: .75rem; border-radius: .65rem; background: #fbebe8; }
.cancelled-order-state > span { color: #b0443d; }
.cancelled-order-state p { display: grid; margin: 0; color: #8c5b56; font-size: .62rem; }
.cancelled-order-state strong { color: #9c3f38; font-size: .7rem; }
.saved-collection-note { display: flex; gap: .7rem; margin-bottom: 1.5rem; padding: .8rem 1rem; border-radius: .7rem; background: var(--sage); }
.saved-collection-note > span { color: var(--rose); }
.saved-collection-note p { display: grid; margin: 0; color: var(--muted); font-size: .65rem; }
.saved-collection-note strong { color: var(--ink); font-size: .72rem; }
.account-empty { margin-bottom: 4rem; }

/* Store login */
.store-login { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(22rem,.9fr); min-height: 42rem; padding-top: 3rem; padding-bottom: 3rem; }
.store-login-visual { position: relative; min-height: 38rem; overflow: hidden; border-radius: 12rem 1rem 1rem 1rem; }
.store-login-visual img { width: 100%; height: 100%; object-fit: cover; }
.store-login-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 30%,rgba(16,42,34,.82)); content: ""; }
.store-login-visual > div { position: absolute; right: 2.5rem; bottom: 2.5rem; left: 2.5rem; z-index: 1; color: #fff; }
.store-login-visual .store-eyebrow { color: #b6d0c0; }
.store-login-visual h1 { margin: .4rem 0 .8rem; font-size: clamp(2.5rem,5vw,4.5rem); line-height: .93; }
.store-login-visual div > p:last-child { max-width: 34rem; color: #cedbd3; font-family: var(--display); }
.store-login-panel { display: grid; place-items: center; padding: clamp(1.5rem,5vw,4rem); }
.store-auth-card { width: min(100%,23rem); }
.auth-flower { display: grid; width: 3rem; height: 3rem; margin-bottom: 1rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--leaf); }
.store-auth-card h2 { margin: .3rem 0 .6rem; font-size: 2.2rem; line-height: 1; }
.store-auth-card > p:not(.store-eyebrow) { color: var(--muted); font-size: .78rem; }
.store-auth-form { display: grid; gap: .55rem; margin-top: 1.4rem; }
.store-auth-form label { font-size: .7rem; font-weight: 720; }
.phone-input { display: flex; align-items: center; overflow: hidden; border: 1px solid #c7d2ca; border-radius: .6rem; background: #fff; }
.phone-input span { padding-left: .8rem; color: var(--muted); }
.store-auth-form .phone-input input { border: 0; outline: 0; }
.store-auth-form .store-btn { width: 100%; margin-top: .6rem; border-radius: .6rem; }
.auth-benefits { display: flex; justify-content: space-between; gap: .5rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .58rem; }
.code-sent { display: flex; align-items: center; gap: .5rem; padding: .65rem; border-radius: .6rem; background: var(--sage-light); }
.code-sent span { color: var(--leaf); }
.code-sent p { margin: 0; font-size: .68rem; }
.code-input { text-align: center; font-size: 1.25rem !important; letter-spacing: .4em; }
.auth-resend { min-height: 2rem; border: 0; background: transparent; color: var(--leaf); font-size: .68rem; text-decoration: underline; }

/* Generic compatibility for admin base */
.auth-card, .confirm-card, .admin-add, .admin-card, .order-card, .stat-card, .pay-queue-row { border: 1px solid var(--border); background: var(--card); }
.container { padding-top: 2rem; padding-bottom: 2rem; }
.chip-link { display: inline-block; border: 1px solid var(--border); border-radius: 999px; }
.pay-badge { display: inline-block; padding: .18rem .5rem; border-radius: 999px; font-size: .7rem; font-weight: 700; }
.pay-badge.paid { background: #e5f2e9; color: var(--green); }.pay-badge.unpaid { background: #fff5dc; color: #8a631d; }.pay-badge.cancelled { background: #fbe7e4; color: #a53d36; }

@media (max-width: 1200px) {
  .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .product-grid > .product-card:nth-last-child(2):nth-child(4n + 1) { grid-column: auto; }
}

@media (max-width: 980px) {
  .home-hero { grid-template-columns: minmax(0,.9fr) minmax(24rem,1.1fr); }
  .occasion-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .product-grid, .related-section .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shop-filter { grid-template-columns: minmax(13rem,1.4fr) minmax(8rem,.6fr); }
  .price-filter, .filter-reset { display: none; }
  .product-detail { gap: 2.5rem; }
  .reviews-section { grid-template-columns: 1fr; gap: 1rem; }
  #reviews-content { grid-column: 1; grid-row: 2; }
  .cart-layout, .checkout-layout { grid-template-columns: minmax(0,1.15fr) minmax(18rem,.65fr); }
  .footer-inner { grid-template-columns: 1.4fr repeat(2,.7fr); }
  .footer-note { display: none; }
}

@media (max-width: 780px) {
  .announcement-bar p span:first-child, .announcement-divider { display: none; }
  .site-header-inner { grid-template-columns: auto 1fr; min-height: 4.1rem; }
  .desktop-nav { display: none; }
  .header-actions { grid-column: 2; }
  .header-icon-link span, .account-menu summary span, .cart-label { display: none; }
  .optional-action { display: none; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .footer-brand { grid-column: 1/-1; }
  .home-hero { grid-template-columns: minmax(0,1fr); padding-top: 2.5rem; }
  .hero-copy { max-width: 40rem; }
  .hero-collage { min-height: 31rem; }
  .hero-image-main { height: 29rem; }
  .occasion-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .occasion-card:last-child { grid-column: 1/-1; min-height: 8rem; }
  .section-intro { align-items: start; flex-direction: column; gap: .5rem; }
  .shop-filter { grid-template-columns: minmax(0,1fr); }
  .shop-filter > input[name="color"] { display: none; }
  .product-detail { grid-template-columns: minmax(0,1fr); }
  .detail-info { position: static; }
  .main-image-wrap { border-radius: 8rem 8rem 1rem 1rem; }
  .cart-layout, .checkout-layout { grid-template-columns: minmax(0,1fr); }
  .cart-summary-card, .checkout-summary { position: static; }
  .checkout-summary { order: -1; }
  .checkout-head { grid-template-columns: 1fr auto; }
  .checkout-head > a { grid-column: 1/-1; }
  .checkout-head ol { grid-column: 2; grid-row: 2; }
  .checkout-head > div { grid-column: 1; }
  .confirmation-details, .customer-order-details { grid-template-columns: minmax(0,1fr); }
  .store-login { grid-template-columns: minmax(0,1fr); }
  .store-login-visual { min-height: 24rem; border-radius: 8rem 1rem 1rem 1rem; }
}

@media (max-width: 560px) {
  .page-shell { padding-inline: 1rem; }
  .logo strong { font-size: 1.1rem; }
  .logo small { display: none; }
  .logo-flower { width: 1.85rem; height: 1.85rem; }
  .hero-copy h1 { font-size: clamp(3.1rem,15vw,4.6rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .hero-proof { gap: .5rem; }
  .hero-proof span { display: none; }
  .hero-collage { min-height: 25rem; }
  .hero-image-main { width: 82%; height: 24rem; }
  .hero-image-small { width: 43%; height: 12rem; }
  .hero-bloom-note { top: .5rem; left: 0; width: 6.5rem; height: 6.5rem; }
  .occasion-section, .collection-section { padding-top: 3rem; padding-bottom: 3rem; }
  .occasion-card { min-height: 9rem; }
  .shop-filter { grid-template-columns: minmax(0,1fr); }
  .shop-filter select { display: none; }
  .product-grid, .related-section .product-grid { grid-template-columns: minmax(0,1fr); gap: 2.2rem; }
  .product-image { aspect-ratio: 4/4.15; }
  .collection-count span:last-child { display: none; }
  .promise-band > div { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .footer-inner { grid-template-columns: 1fr 1fr; padding-block: 3rem; }
  .footer-bottom span:last-child { display: none; }
  .detail-info h1 { font-size: 3rem; }
  .detail-tags { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .detail-tags span:nth-child(2) { border-right: 0; }
  .detail-tags span:last-child { display: none; }
  .detail-assurances { grid-template-columns: minmax(0,1fr); }
  .review-card-head { grid-template-columns: auto 1fr; }
  .review-card-head > .stars { grid-column: 2; }
  .simple-page-head { padding-top: 3rem; }
  .cart-line { grid-template-columns: 5.5rem 1fr auto; align-items: start; }
  .cart-line > a img { width: 5.5rem; height: 6.5rem; }
  .cart-quantity { grid-column: 2; }
  .cart-line-total { grid-column: 3; grid-row: 1; }
  .cart-line-copy > p:not(.product-kicker) { display: none; }
  .checkout-head { display: block; }
  .checkout-head ol { display: none; }
  .checkout-panel-body .grid2 { grid-template-columns: minmax(0,1fr); }
  .pay-grid { grid-template-columns: minmax(0,1fr); text-align: center; }
  .bank-transfer-card dl { grid-template-columns: minmax(0,1fr); }
  .pay-qr svg { width: 8rem; height: 8rem; }
  .upi-open { display: inline-flex; justify-self: center; }
  .checkout-submit { align-items: stretch; flex-direction: column; }
  .checkout-submit .store-btn { width: 100%; }
  .confirmation-page { padding-top: 4rem; }
  .confirmation-page h1 { font-size: 3.5rem; }
  .confirmation-actions { flex-direction: column; }
  .customer-order-main { align-items: flex-start; flex-direction: column; }
  .timeline-label { font-size: .5rem; }
  .store-login { padding: 1rem; }
  .store-login-visual { min-height: 21rem; border-radius: 6rem .8rem .8rem .8rem; }
  .store-login-visual > div { right: 1.3rem; bottom: 1.3rem; left: 1.3rem; }
  .store-login-panel { padding: 2rem .3rem; }
  .auth-benefits { flex-direction: column; }
}
