:root {
 --fl-bg:#23121c;
 --fl-panel:#381e2b;
 --fl-ink:#f5e8d4;
 --fl-muted:#d1b6be;
 --fl-accent:#dfbc76;
 --fl-soft:#b8878f;
 --fl-line:#f5e8d430;
 --fl-card:#381e2b;
 --fl-display:Georgia,"Times New Roman",serif;
 --fl-button-ink:#23121c;
 --fl-radius:3px;
 --fl-weight:400;
 --bg:var(--fl-bg);
 --background:var(--fl-bg);
 --paper:var(--fl-bg);
 --cream:var(--fl-bg);
 --panel:var(--fl-panel);
 --surface:var(--fl-panel);
 --surface-2:var(--fl-panel);
 --bg-card:var(--fl-panel);
 --text:var(--fl-ink);
 --ink:var(--fl-ink);
 --fg:var(--fl-ink);
 --heading:var(--fl-ink);
 --text-primary:var(--fl-ink);
 --muted:var(--fl-muted);
 --text-muted:var(--fl-muted);
 --text-secondary:var(--fl-muted);
 --accent:var(--fl-accent);
 --gold:var(--fl-accent);
 --primary:var(--fl-accent);
 --mint:var(--fl-accent);
 --line:var(--fl-line);
 --border:var(--fl-line);
}
/* Botanical storefront foundations. Each domain adds its own composition below. */
html:has(body.floral-site) { background:var(--fl-bg); }
body.floral-site { margin:0; background:var(--fl-bg); color:var(--fl-ink); font-family:Arial,Helvetica,sans-serif; line-height:1.6; }
body.floral-site::before { display:none; }
body.floral-site *,body.floral-site *::before,body.floral-site *::after { box-sizing:border-box; }
body.floral-site :is(main,section,article,aside,form,nav,div) { min-width:0; }
body.floral-site :is(h1,h2,h3,h4) { color:var(--fl-ink); font-family:var(--fl-display); letter-spacing:-.035em; line-height:1.14; text-wrap:pretty; }
body.floral-site h1 { font-size:clamp(2rem,4.3vw,4.8rem); }
body.floral-site h2 { font-size:clamp(1.6rem,2.7vw,2.8rem); }
body.floral-site :is(.card-title,.pack-card h2,.image-card h2,.hp-new-card h2,.hp-gallery-card h2,.image-info h2) { font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.5; letter-spacing:0; }
body.floral-site :is(.shell,.container) { max-width:1400px; }
body.floral-site :is(.site-header,.topbar) { color:var(--fl-ink); background:var(--fl-bg); border-color:var(--fl-line); box-shadow:none; backdrop-filter:none; }
body.floral-site :is(.brand,.brand-name,.wordmark,.logo-text) { color:var(--fl-ink); }
body.floral-site :is(.brand em,.brand-name em,.logo-text span) { color:var(--fl-accent); }
body.floral-site :is(.header-nav,.site-nav,.mega-nav) a { color:var(--fl-ink); font-size:.78rem; letter-spacing:.025em; }
body.floral-site :is(.header-nav,.site-nav,.mega-nav) a:hover { color:var(--fl-accent); }
body.floral-site :is(.brand-dot,.brand-mark) { background:transparent url('/assets/floral/mark.svg') center/contain no-repeat; box-shadow:none; width:38px; height:38px; min-width:38px; border:0; border-radius:0; }
body.floral-site :is(.brand-dot,.brand-mark)::before,body.floral-site :is(.brand-dot,.brand-mark)::after,body.floral-site .brand-mark>i { display:none; }
body.floral-site :is(.ai-notice,.ai-disclosure,.ai-sitewide,.ai-banner,.ai-provenance,.ai-disclosure-banner) { background:var(--fl-panel); color:var(--fl-muted); border-color:var(--fl-line); box-shadow:none; }
body.floral-site :is(.ai-notice,.ai-disclosure,.ai-sitewide,.ai-banner,.ai-provenance,.ai-disclosure-banner) :is(strong,small) { color:var(--fl-ink); }
body.floral-site :is(.eyebrow,.kicker,.section-kicker,.microcopy,.lede,.hero-lead,.detail-note,.detail-copy>p,.detail-side>p) { color:var(--fl-muted); }
body.floral-site :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--fl-accent); outline-offset:4px; }
body.floral-site :is(button,input,select,textarea) { font:inherit; }
body.floral-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { min-width:0; max-width:100%; min-height:44px; background:var(--fl-bg); color:var(--fl-ink); border:1px solid var(--fl-line); border-radius:var(--fl-radius); padding:12px 15px; box-shadow:none; }
body.floral-site input::placeholder,body.floral-site textarea::placeholder { color:var(--fl-muted); opacity:1; }
body.floral-site :is(.btn,.button,.btn-primary,.btn-ghost,.btn-gold,.card-download,.download-btn,.pager-step,.pager-list a,.pager-current,.tier-list button,.purchase button,.purchase a.btn,.catalog-search button,.header-search button,.nav-search button,.search button) { min-height:44px; border-radius:var(--fl-radius); box-shadow:none; text-shadow:none; font-family:Arial,Helvetica,sans-serif; font-size:.86rem; letter-spacing:.02em; font-weight:600; }
body.floral-site :is(.btn-primary,.btn-gold,.button:not(.button-ghost),.tier-list button,.purchase .btn,.catalog-search button,.header-search button,.search button) { color:var(--fl-button-ink); background:var(--fl-accent); border:1px solid var(--fl-accent); }
body.floral-site :is(.btn-ghost,.button-ghost) { background:transparent; color:var(--fl-ink); border:1px solid var(--fl-line); }
body.floral-site :is(.btn,.button,.card-download) { transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease; }
body.floral-site :is(.btn,.button,.card-download):hover { transform:translateY(-2px); }
body.floral-site :is(.band,.band-alt,.band-top,.section,.section-alt,.hp-new,.hp-gallery,.hp-collections,.hp-categories) { background:transparent; }
body.floral-site :is(.band,.section) { padding-block:clamp(40px,5vw,76px); }
body.floral-site :is(.band-head,.section-head) { align-items:baseline; gap:20px; margin-bottom:30px; }
body.floral-site :is(.band-more,.band-head>a,.section-head>a,.card-download) { color:var(--fl-accent); }
body.floral-site :is(.card,.image-card,.pack-card,.hp-new-card,.hp-gallery-card,.faq-card,.hub,.collection-strip a,.collection-card,.edition-card) { background:var(--fl-card); color:var(--fl-ink); border-color:var(--fl-line); border-radius:var(--fl-radius); box-shadow:none; }
body.floral-site :is(.card-body,.card-info,.image-info,.pack-card-body) { padding:18px; }
body.floral-site :is(.card-body,.card-info,.image-info,.pack-card-body) :is(h2,h3) { margin:0 0 10px; }
body.floral-site :is(.card img,.card-media img,.grid img,.hp-gallery-grid img,.detail-frame img,.pack-image img) { height:auto; aspect-ratio:auto; object-fit:contain; }
body.floral-site .card-media { aspect-ratio:auto; min-height:0; background:var(--fl-panel); }
body.floral-site :is(.card:hover img,.card:hover,.image-card:hover) { transform:none; }
body.floral-site :is(.tag-chips a,.tag-index a,.detail-tags a,.tags a,.tag-chip,.tag) { color:var(--fl-ink); background:var(--fl-panel); border:1px solid var(--fl-line); line-height:1.5; font-size:.75rem; text-transform:none; letter-spacing:0; overflow-wrap:anywhere; }
body.floral-site :is(.card-badge,.card-price,.price-badge,.ai-badge) { background:var(--fl-bg); color:var(--fl-ink); border:1px solid var(--fl-line); text-shadow:none; }
body.floral-site :is(.price,.collection-price,.purchase-amount) { color:var(--fl-accent); }
body.floral-site :is(.detail-copy h1,.detail-side h1,.detail-info h1,.asset-info h1,.image-details h1,.pack-summary h1,.pack-sidebar h1,.product-info h1) { font-size:clamp(1.65rem,2.5vw,2.7rem); line-height:1.16; letter-spacing:-.025em; margin:12px 0 20px; max-width:28ch; }
body.floral-site :is(.detail-copy,.detail-side,.detail-info,.pack-summary,.pack-sidebar) { align-self:start; }
body.floral-site :is(.detail,.detail-layout) { gap:clamp(24px,4vw,64px); }
body.floral-site :is(.detail-image,.detail-frame,.purchase,.tier-list>div,.tier-option,.source-card,.empty-state,.paypal-modal,.paypal-modal-card,.paypal-dialog,.checkout-card,.receipt,.pack-buy,.pack-purchase,.specs,.specs>div,.prose blockquote,.faq-list article) { background:var(--fl-card); color:var(--fl-ink); border-color:var(--fl-line); border-radius:var(--fl-radius); box-shadow:none; }
body.floral-site :is(.paypal-modal,.paypal-dialog,dialog) { max-width:min(92vw,560px); background:var(--fl-card); color:var(--fl-ink); border:1px solid var(--fl-line); }
body.floral-site :is(.prose,.legal-page,.faq-copy) { line-height:1.8; }
body.floral-site :is(.prose,.legal-page,.faq-copy) :is(p,li,td,dd) { color:var(--fl-ink); }
body.floral-site :is(.prose,.faq-copy) a { color:var(--fl-accent); text-underline-offset:3px; }
body.floral-site :is(.listing-hero,.collection-hero,.categories-hero,.programme-hero,.journal-hero,.community-hero) { background:var(--fl-panel); color:var(--fl-ink); padding-block:clamp(36px,5vw,72px); }
body.floral-site :is(.listing-hero,.collection-hero,.categories-hero,.programme-hero,.journal-hero,.community-hero) h1 { font-size:clamp(2rem,4.5vw,4.5rem); line-height:1.1; margin-block:12px 24px; }
body.floral-site :is(.site-footer,body>footer) { position:relative; background:var(--fl-panel); color:var(--fl-ink); border-top:1px solid var(--fl-line); padding-top:80px; }
body.floral-site :is(.site-footer,body>footer)::before { content:""; display:block; position:relative; grid-column:1/-1; width:min(520px,80%); height:88px; margin:0 auto 40px; background:url('/assets/floral/divider.svg') center/contain no-repeat; pointer-events:none; }
body.floral-site :is(.site-footer,body>footer) :is(p,a,small,.footer-bottom,.footer-base) { color:var(--fl-muted); }
body.floral-site :is(.site-footer,body>footer) :is(h4,strong,.footer-cols span) { color:var(--fl-ink); }
body.floral-site .sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
body.floral-site .ai-pattern-badge { background:var(--fl-panel); color:var(--fl-accent); border:1px solid var(--fl-line); text-shadow:none; box-shadow:none; }
body.floral-site :is(.topbar .brand small,.text-link,.archive-head a,.collection-head a) { color:var(--fl-accent); }
body.floral-site :is(.card-download,.download-btn)::before { content:""; display:inline-block; width:16px; height:16px; margin-right:8px; vertical-align:-3px; background:currentColor; mask:url('/assets/floral/download.svg') center/contain no-repeat; }
body.floral-site .site-footer a[href="/license/"]::before { content:""; display:inline-block; width:17px; height:17px; margin-right:8px; vertical-align:-3px; background:currentColor; mask:url('/assets/floral/license.svg') center/contain no-repeat; }
body.floral-site :is(.archive-hero,.editorial-page,.prose,.narrow) { overflow-wrap:break-word; }
body.floral-site :is(.faq-grid,.faq-list,.spelling-grid,.question-list,.toc,.faq-index,.article-toc,.legal-page) a { color:var(--fl-accent); }
body.floral-site .faq-index-card { background:var(--fl-card); color:var(--fl-ink); border:1px solid var(--fl-line); box-shadow:none; }
body.floral-site .listing-hero>p { color:var(--fl-muted); }
body.floral-site :is(.skip-link,.skip) { background:var(--fl-accent); color:var(--fl-button-ink); }

/* A real image occupies its own column; text never depends on photo contrast. */
body.floral-site .catalog-hero { position:relative; display:grid; grid-template-columns:1fr 1.04fr; grid-template-rows:auto; height:auto; min-height:520px; max-width:1400px; width:calc(100% - 64px); margin:32px auto 0; padding:0; overflow:hidden; isolation:isolate; background:var(--fl-panel); color:var(--fl-ink); border:1px solid var(--fl-line); border-radius:var(--fl-radius); }
body.floral-site .catalog-hero__slides { position:relative; inset:auto; grid-column:2; grid-row:1; width:100%; height:100%; min-height:520px; z-index:0; }
body.floral-site .catalog-hero__slide { position:absolute; inset:0; width:100%; height:100%; display:block; clip-path:none; opacity:1; transform:none; pointer-events:auto; transition:none; }
body.floral-site .catalog-hero__slide[hidden] { display:none; pointer-events:none; }
body.floral-site .catalog-hero__slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:none; animation:none; filter:none; }
body.floral-site .catalog-hero__shade { display:none; }
body.floral-site .catalog-hero__copy { position:relative; grid-column:1; grid-row:1; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; align-self:stretch; width:100%; height:auto; padding:64px clamp(24px,4.3vw,64px) 72px; z-index:1; background:transparent; overflow:hidden; }
body.floral-site .catalog-hero__copy::after { content:""; position:absolute; width:230px; height:305px; right:-24px; bottom:-50px; background:url('/assets/floral/study.svg') center/contain no-repeat; opacity:.22; z-index:-1; pointer-events:none; transform-origin:50% 100%; animation:floral-appear 1.2s ease both; }
body.floral-site .catalog-hero__copy h1 { font-family:var(--fl-display); font-size:clamp(2.35rem,4.25vw,4.6rem); font-weight:var(--fl-weight,400); line-height:1.04; max-width:16ch; letter-spacing:-.04em; color:var(--fl-ink); margin:12px 0 18px; text-transform:none; }
body.floral-site .catalog-hero__copy .eyebrow { color:var(--fl-muted); line-height:1.7; letter-spacing:.12em; font-size:.64rem; margin:0; }
body.floral-site .catalog-hero__copy .floral-edition { display:flex; align-items:center; gap:12px; color:var(--fl-accent); font:600 .68rem/1.5 Arial,sans-serif; letter-spacing:.15em; text-transform:uppercase; margin:0 0 24px; }
body.floral-site .floral-edition::before { content:""; display:block; flex:0 0 35px; height:35px; background:url('/assets/floral/mark.svg') center/contain no-repeat; }
body.floral-site .catalog-hero__copy>p:not(.eyebrow):not(.floral-edition) { display:block; color:var(--fl-muted); font-size:1rem; line-height:1.7; max-width:44ch; margin:0 0 22px; }
body.floral-site .catalog-hero .hero-search { display:flex; align-items:stretch; width:100%; max-width:510px; margin:0; gap:0; border:1px solid var(--fl-accent); border-radius:var(--fl-radius); background:var(--fl-bg); padding:4px; box-shadow:none; }
body.floral-site .catalog-hero .hero-search input { flex:1 1 0; width:0; min-width:0; min-height:52px; padding:12px 14px; border:0; background:transparent; color:var(--fl-ink); border-radius:var(--fl-radius); font-family:Arial,sans-serif; font-size:.9rem; }
body.floral-site .catalog-hero .hero-search button { position:relative; flex:0 0 auto; width:auto; min-width:52px; min-height:52px; border:0; border-radius:var(--fl-radius); color:var(--fl-button-ink); background:var(--fl-accent); padding:12px 19px; font:600 .78rem Arial,sans-serif; letter-spacing:.02em; }
body.floral-site .catalog-hero .hero-search button>span { display:none; }
body.floral-site .catalog-hero__links { display:flex; flex-wrap:wrap; gap:16px 24px; margin-top:18px; font-size:.8rem; }
body.floral-site .catalog-hero__links a { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--fl-ink); text-decoration:none; border-bottom:1px solid var(--fl-line); }
body.floral-site .catalog-hero__links a::after { content:""; width:16px; height:16px; background:currentColor; mask:url('/assets/floral/arrow.svg') center/contain no-repeat; }
body.floral-site .catalog-hero__controls { position:absolute; inset:auto 18px 18px auto; display:flex; align-items:center; gap:4px; z-index:3; padding:3px; background:var(--fl-bg); border:1px solid var(--fl-line); border-radius:99px; }
body.floral-site .catalog-hero__controls>button { width:44px; height:44px; min-width:44px; background:transparent; color:var(--fl-ink); border:0; border-radius:50%; font-size:1.15rem; }
body.floral-site .catalog-hero__controls>button:hover { background:var(--fl-panel); }
body.floral-site .catalog-hero__controls [data-hero-dots] { display:flex; gap:0; }
body.floral-site .catalog-hero__controls [data-hero-dot] { display:grid; place-items:center; width:24px; height:44px; min-width:24px; padding:0; border:0; background:transparent; transform:none; cursor:pointer; }
body.floral-site .catalog-hero__controls [data-hero-dot]::after { content:""; width:5px; height:5px; border:1px solid var(--fl-muted); border-radius:50%; }
body.floral-site .catalog-hero__controls [aria-current=true]::after { background:var(--fl-accent); border-color:var(--fl-accent); width:8px; height:8px; }
body.floral-site .catalog-hero__caption { display:block; position:absolute; inset:auto 18px 86px 18px; max-width:50ch; width:fit-content; padding:8px 12px; background:rgb(0 0 0 / .65); color:white; font:400 .72rem/1.5 Arial,sans-serif; letter-spacing:0; border-radius:3px; }
body.floral-site .catalog-hero__empty { display:grid; height:100%; min-height:320px; padding:30px; text-align:center; background:var(--fl-panel) url('/assets/floral/study.svg') center/contain no-repeat; color:var(--fl-ink); }
.floral-menu { display:none; width:48px; min-width:48px; height:48px; padding:12px; background:transparent; color:var(--fl-ink); border:1px solid var(--fl-line); border-radius:var(--fl-radius); cursor:pointer; }
.floral-menu::before { content:""; display:block; width:22px; height:22px; background:currentColor; mask:url('/assets/floral/menu.svg') center/contain no-repeat; }
.floral-menu[aria-expanded=true]::before { mask:none; height:2px; transform:rotate(-45deg); }
@keyframes floral-appear { from { opacity:0; transform:translateY(16px); } to { opacity:.22; transform:none; } }
@keyframes floral-sway { from { transform:rotate(-5deg); } to { transform:rotate(0); } }
@keyframes floral-light { from { opacity:0; filter:brightness(1.6); } to { opacity:.22; filter:none; } }
@keyframes floral-trace { from { clip-path:inset(100% 0 0 0); } to { clip-path:inset(0); } }

@media(min-width:1101px) {
 body.floral-site .detail { grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr); }
}
@media(max-width:1100px) {
 body.floral-site .catalog-hero { width:calc(100% - 40px); grid-template-columns:1fr 1fr; min-height:490px; }
 body.floral-site .catalog-hero__slides { min-height:490px; }
 body.floral-site .catalog-hero__copy { padding:36px 28px 48px; }
 body.floral-site .catalog-hero__copy h1 { font-size:clamp(2.1rem,4.5vw,3.6rem); }
 body.floral-site .catalog-hero__controls [data-hero-dots] { display:none; }
 body.floral-site .header-inner { flex-wrap:wrap; }
 body.floral-site .floral-menu { display:block; margin-left:auto; }
 html.floral-js body.floral-site [data-floral-navigation] { display:none; }
 html.floral-js body.floral-site .floral-nav-open [data-floral-navigation] { display:flex; flex-wrap:wrap; position:static; width:100%; max-width:none; flex-basis:100%; padding:12px 0; gap:6px; }
 body.floral-site [data-floral-navigation] a { min-height:44px; padding:12px; }
 html:not(.floral-js) body.floral-site :is([data-floral-navigation],.site-nav,.topbar nav,.mega-nav) { display:flex; flex-wrap:wrap; position:static; width:100%; max-width:none; gap:8px; padding:12px; }
 html:not(.floral-js) body.floral-site :is(.floral-menu,.nav-toggle,.topbar .menu) { display:none; }
}
@media(max-width:700px) {
 body.floral-site .catalog-hero { display:flex; flex-direction:column; width:calc(100% - 28px); margin:20px auto 0; height:auto; min-height:0; }
 body.floral-site .catalog-hero__copy { order:0; padding:30px 24px 32px; width:100%; height:auto; min-height:0; }
 body.floral-site .catalog-hero__slides { order:1; width:100%; height:300px; min-height:300px; flex:0 0 300px; }
 body.floral-site .catalog-hero__copy h1 { font-size:clamp(2rem,8.6vw,3rem); max-width:18ch; }
 body.floral-site .catalog-hero__copy>p:not(.eyebrow):not(.floral-edition) { font-size:.9rem; margin-bottom:18px; }
 body.floral-site .catalog-hero__copy .floral-edition { margin-bottom:16px; font-size:.6rem; letter-spacing:.11em; }
 body.floral-site .catalog-hero__copy .eyebrow { font-size:.58rem; }
 body.floral-site .catalog-hero__links { gap:16px; margin-top:10px; }
 body.floral-site .catalog-hero .hero-search input { min-height:48px; padding:10px; font-size:16px; }
 body.floral-site .catalog-hero .hero-search button { min-height:48px; padding:10px 14px; }
 body.floral-site .catalog-hero__caption { font-size:.66rem; inset:auto 12px 77px 12px; }
 body.floral-site .catalog-hero__controls { right:12px; bottom:12px; }
 body.floral-site :is(.detail,.detail-layout) { display:grid; grid-template-columns:minmax(0,1fr); gap:26px; }
 body.floral-site :is(.detail-copy,.detail-side,.detail-info,.pack-sidebar,.pack-summary) { position:static; padding:20px; }
 body.floral-site :is(.detail-copy h1,.detail-side h1,.detail-info h1,.pack-sidebar h1,.pack-summary h1) { font-size:1.9rem; max-width:none; }
 body.floral-site .detail-image { align-self:start; }
 body.floral-site :is(.detail-image img,.detail-frame img) { max-height:62vh; object-fit:contain; width:100%; height:auto; }
 body.floral-site .image-stage figure { height:auto; min-height:0; }
 body.floral-site .image-stage figure img { max-height:62vh; width:auto; height:auto; }
 body.floral-site :is(.site-header,.topbar) { min-height:76px; height:auto; }
 body.floral-site :is(.ai-disclosure,.ai-notice) { padding-inline:14px; flex-wrap:wrap; gap:4px 10px; font-size:.62rem; }
 body.floral-site :is(.nav-toggle,.topbar .menu) { min-width:44px; min-height:44px; color:var(--fl-ink); }
 body.floral-site .topbar .menu { background:var(--fl-panel); border:1px solid var(--fl-line); }
 body.floral-site .nav-toggle span { background:var(--fl-ink); }
 body.floral-site :is(.band,.section) { padding-block:38px; }
 body.floral-site .catalog-search { margin-inline:16px; }
}
@media(prefers-reduced-motion:reduce) {
 body.floral-site *,body.floral-site *::before,body.floral-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 body.floral-site .catalog-hero__copy::after { opacity:.22; }
}

body.floral-site .catalog-hero { border:1px solid var(--fl-accent); border-radius:0; padding:10px; background:#2c1721; }
body.floral-site .catalog-hero__copy { border:1px solid #dfbc764d; margin:5px; width:calc(100% - 10px); }
body.floral-site .catalog-hero__copy h1 { font-variant:small-caps; letter-spacing:-.01em; }
body.floral-site .catalog-hero__copy::after { width:300px; height:400px; animation:floral-trace 1.2s ease both; }
body.floral-site .catalog-hero__slides { border:1px solid #dfbc764d; }
body.floral-site .card { border:1px solid #dfbc764d; border-radius:0; }
body.floral-site .card-body { border-top:1px solid #dfbc764d; }
body.floral-site .mega-nav a,body.floral-site .brand-chip { color:var(--fl-accent); }
body.floral-site .band-head h2 { font-variant:small-caps; }
body.floral-site .tag-chips a { border-radius:0; }
