
/* ============================================================
   ORGANICABELLE — DESIGN TOKENS
   ============================================================ */
:root{
  --ivory:#FAF5EA; --paper:#F1E7D3; --paper-deep:#E7D9BC;
  --kraft:#B98F52; --kraft-deep:#8A6633;
  --moss:#3C4A30; --moss-deep:#28331F; --moss-soft:#93A67E; --moss-bright:#4F7A3B;
  --wine:#6E2430; --wine-soft:#8B4451;
  --charcoal:#231F19; --ink:#2A2318; --ink-soft:#6E634F;
  --line: rgba(42,35,24,0.14); --card:#FFFDF8;
  --shadow: 0 18px 40px -22px rgba(42,35,24,0.35);
  --radius-lg:22px; --radius-md:14px; --radius-sm:8px; --header-h:84px;
  --wa:#2E5F45;
  --font-display:"Fraunces","Iowan Old Style",serif;
  --font-body:"Manrope",-apple-system,BlinkMacSystemFont,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  color-scheme:light;
}
[data-theme="dark"]{
  --ivory:#1B1712; --paper:#241F19; --paper-deep:#2C261E;
  --kraft:#C6A05E; --kraft-deep:#E3BD7C;
  --moss:#8FA679; --moss-deep:#B7C9A2; --moss-soft:#5C6B49; --moss-bright:#7BAE5C;
  --wine:#C77B85; --wine-soft:#A85662;
  --charcoal:#0F0D0A; --ink:#F3ECDD; --ink-soft:#B9AC93;
  --line: rgba(243,236,221,0.14); --card:#221D17;
  --shadow: 0 24px 50px -20px rgba(0,0,0,0.6);
  color-scheme:dark;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;} }
body{margin:0; background:var(--ivory); color:var(--ink); font-family:var(--font-body); -webkit-font-smoothing:antialiased; transition:background .4s var(--ease), color .4s var(--ease); overflow-x:hidden;}
img,svg{display:block; max-width:100%;}
a{color:inherit;} h1,h2,h3,h4{font-family:var(--font-display); font-weight:560; margin:0; letter-spacing:-0.01em;} p{margin:0;} button{font-family:inherit; cursor:pointer;}
.eyebrow{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--kraft-deep); font-weight:700; display:inline-flex; gap:8px; align-items:center;}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--kraft-deep); display:inline-block;}
.eyebrow.green{color:var(--moss-bright);} .eyebrow.green::before{background:var(--moss-bright);}
.wrap{max-width:1240px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible{ outline:2.5px solid var(--wine); outline-offset:3px; border-radius:4px; }
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.skip-link{position:fixed; top:-60px; left:16px; z-index:999; background:var(--ink); color:var(--ivory); padding:12px 18px; border-radius:8px; transition:top .2s var(--ease);}
.skip-link:focus{top:16px;}
button.btn{border:1px solid transparent; border-radius:100px; padding:14px 26px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;}
a.btn{border:1px solid transparent; border-radius:100px; padding:14px 26px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; text-decoration:none; transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;}
button.btn:active, a.btn:active{transform:scale(.97);}
.btn-primary{background:var(--moss); color:#F5F0E2;} .btn-primary:hover{background:var(--moss-deep);}
[data-theme="dark"] .btn-primary{color:#141109;}
.btn-outline{background:transparent; border-color:var(--ink); color:var(--ink);} .btn-outline:hover{background:var(--ink); color:var(--ivory);}
.btn-whatsapp{background:var(--wa); color:#fff;} .btn-whatsapp:hover{background:#244A36;}
.btn-ghost{background:var(--paper); color:var(--ink); border-color:var(--line);} .btn-ghost:hover{background:var(--paper-deep);}
.btn-sm{padding:10px 18px; font-size:11.5px;} .btn-block{width:100%; justify-content:center;}

/* ============ HEADER ============ */
header.site{position:sticky; top:0; z-index:60; background:color-mix(in srgb, var(--ivory) 88%, transparent); backdrop-filter:blur(14px) saturate(1.2); border-bottom:1px solid var(--line); transition:padding .35s var(--ease), background .4s var(--ease);}
.header-row{height:var(--header-h); display:flex; align-items:center; justify-content:space-between; transition:height .35s var(--ease);}
header.site.compact .header-row{height:60px;}
.logo{font-family:var(--font-display); font-size:22px; letter-spacing:.02em; font-weight:650; display:flex; align-items:center; gap:10px; text-decoration:none;}
.logo .mark{width:26px; height:26px; flex:none;}
nav.primary{display:flex; gap:30px; align-items:center;}
nav.primary a{text-decoration:none; font-size:13px; letter-spacing:.03em; color:var(--ink-soft); font-weight:600; position:relative; padding:4px 0;}
nav.primary a::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--wine); transform:scaleX(0); transition:transform .3s var(--ease); transform-origin:left;}
nav.primary a:hover{color:var(--ink);} nav.primary a:hover::after{transform:scaleX(1);}
.header-actions{display:flex; align-items:center; gap:14px;}
.icon-btn{width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:var(--card); display:flex; align-items:center; justify-content:center; position:relative; transition:background .25s, transform .25s var(--ease), border-color .25s;}
.icon-btn:hover{background:var(--paper); transform:translateY(-1px);}
.icon-btn svg{width:19px; height:19px; stroke:var(--ink); fill:none; stroke-width:1.6;}
.cart-count{position:absolute; top:-5px; right:-5px; min-width:19px; height:19px; padding:0 4px; border-radius:50%; background:var(--wine); color:#fff; font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; transform:scale(0); transition:transform .3s var(--ease);}
.cart-count.show{transform:scale(1);}
.menu-btn{display:none;}
@media (max-width:980px){ nav.primary{display:none;} .menu-btn{display:flex;} a.btn.desktop-order{display:none;} }

/* ============ MOBILE NAV ============ */
.mobile-nav{position:fixed; inset:0; z-index:90; background:var(--charcoal); display:flex; flex-direction:column; padding:26px 26px 40px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease); overflow-y:auto;}
.mobile-nav.open{opacity:1; pointer-events:auto; transform:translateY(0);}
.mobile-nav-top{display:flex; justify-content:space-between; align-items:center;}
.mobile-nav .logo{color:#F5EEDD;}
.mobile-nav .close-btn{background:none; border:1px solid rgba(245,238,221,.25); border-radius:50%; width:42px; height:42px; display:flex; align-items:center; justify-content:center;}
.mobile-nav .close-btn svg{width:18px; height:18px; stroke:#F5EEDD; fill:none; stroke-width:1.8;}
.mobile-nav ul{list-style:none; margin:auto 0; padding:0; display:flex; flex-direction:column; gap:2px;}
.mobile-nav a{text-decoration:none; color:#F5EEDD; font-family:var(--font-display); font-size:clamp(24px,7vw,36px); font-weight:500; padding:9px 0; display:block; border-bottom:1px solid rgba(245,238,221,.1);}
.mobile-nav .btn{margin-top:22px;}

/* ============ HERO ============ */
.hero{position:relative; padding:24px 0 88px; overflow:hidden;}
@media (max-width:960px){ .hero{padding:16px 0 56px;} }
.hero h1{font-size:clamp(36px,5.2vw,66px); line-height:1.03; margin:18px 0 20px;}
.hero h1 em{font-style:italic; color:var(--wine); font-weight:450;}
.hero p.lede{font-size:16.5px; color:var(--ink-soft); max-width:46ch; line-height:1.6; margin-bottom:30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.hero-art{position:relative; display:flex; align-items:center; justify-content:center; min-height:340px;}
.hero-art .asset-img{width:min(380px,78vw); aspect-ratio:1/1; border-radius:28px; overflow:hidden; filter:drop-shadow(0 30px 40px rgba(0,0,0,.16));}
.hero-badge{position:absolute; bottom:2%; left:0; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px 18px; box-shadow:var(--shadow); display:flex; gap:12px; align-items:center; max-width:230px;}
.hero-badge .dot{width:9px; height:9px; border-radius:50%; background:var(--moss); flex:none; margin-top:2px;}
.hero-badge span{font-size:12.5px; color:var(--ink-soft); line-height:1.4;}
.leaf-decor{position:absolute; opacity:.35; pointer-events:none; z-index:0;}
[data-theme="dark"] .leaf-decor{opacity:.22;}
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal-stagger > *{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal-stagger.in > *{opacity:1; transform:none;}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;} .reveal-stagger.in > *:nth-child(2){transition-delay:.15s;} .reveal-stagger.in > *:nth-child(3){transition-delay:.25s;} .reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}

/* ============ ASSET IMAGE (real photo with graceful illustrated fallback) ============ */
.asset-img{position:relative; background:var(--paper-deep); overflow:hidden;}
.asset-img img{width:100%; height:100%; object-fit:cover; display:block;}
.asset-fallback{position:absolute; inset:0; display:none; align-items:center; justify-content:center; background:var(--paper-deep);}
.asset-fallback .soap-art, .asset-fallback svg{width:60%;}

/* ============ BRAND PROMISE STRIP ============ */
.promise-strip{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.promise-chip{display:flex; align-items:center; gap:9px; font-size:12.5px; font-weight:700; letter-spacing:.04em; color:var(--ink-soft); padding:8px 4px;}
.promise-chip svg{width:18px; height:18px; stroke:var(--moss-bright); fill:none; stroke-width:1.6;}

/* ============ SECTION SHELL ============ */
section{padding:96px 0; position:relative;}
@media (max-width:640px){ section{padding:60px 0;} }
.section-head{max-width:640px; margin:0 auto 52px;}
.section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.section-head h2{font-size:clamp(27px,3.8vw,42px); margin:14px 0 12px;}
.section-head p{color:var(--ink-soft); font-size:16px; line-height:1.6;}
.alt-bg{background:var(--paper);}

/* ============ WHY ORGANICABELLE ============ */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;}
@media (max-width:900px){ .feature-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .feature-grid{grid-template-columns:1fr;} }
.feature{background:var(--card); padding:32px 24px; text-align:left;}
.feature .ic{width:32px; height:32px; margin-bottom:16px; stroke:var(--moss-bright); fill:none; stroke-width:1.4;}
.feature h3{font-size:16px; font-weight:650; margin-bottom:8px;}
.feature p{font-size:13.5px; color:var(--ink-soft); line-height:1.55;}

/* ============ COLLECTION ============ */
.product-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; width:100%; transition:transform .45s var(--ease), box-shadow .45s var(--ease);}
.product-card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.product-media{aspect-ratio:1/1; position:relative; overflow:hidden; cursor:pointer;}
.product-media .asset-img{width:100%; height:100%;}
.product-media img, .product-media .asset-fallback .soap-art{transition:transform .6s var(--ease);}
.product-card:hover .product-media img{transform:scale(1.07);}
.product-badge{position:absolute; top:12px; left:12px; background:rgba(255,255,255,.9); border-radius:100px; padding:5px 11px; font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; z-index:2;}
.product-body{padding:22px 22px 24px; display:flex; flex-direction:column; gap:9px; flex:1;}
.product-cat{font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700;}
.product-body h3{font-size:20px; cursor:pointer;}
.product-mood{font-size:12px; color:var(--ink-soft);}
.product-desc{font-size:13.5px; color:var(--ink-soft); line-height:1.55; flex:1;}
.product-foot{display:flex; align-items:baseline; justify-content:space-between; margin-top:6px; gap:8px; flex-wrap:wrap;}
.price{font-family:var(--font-display); font-size:18px; font-weight:600;}
.price-row{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}
.price-current{font-family:var(--font-display); font-size:19px; font-weight:650; color:var(--wine);}
.price-mrp{font-size:12.5px; color:var(--ink-soft); text-decoration:line-through; text-decoration-color:var(--ink-soft);}
.price-off{font-size:10.5px; font-weight:800; letter-spacing:.03em; color:var(--moss-bright); background:color-mix(in srgb, var(--moss-bright) 14%, transparent); padding:3px 7px; border-radius:100px;}
.product-actions{display:flex; gap:8px; width:100%; flex-wrap:nowrap;}
.product-actions .btn{flex:1 1 0; justify-content:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:11px 8px; font-size:10.5px; letter-spacing:.02em;}
@media (max-width:420px){ .product-actions{flex-direction:column;} .product-actions .btn{width:100%;} }

/* ============ FEATURED PRODUCT ============ */
.featured{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:48px; overflow:hidden;}
@media (max-width:900px){ .featured{padding:28px;} }
.featured .asset-img{aspect-ratio:1/1; border-radius:var(--radius-md);}
.featured-copy .price{font-size:24px; margin:16px 0 22px;}
.featured-copy p.desc{color:var(--ink-soft); line-height:1.65; margin:14px 0 24px;}

/* ============ INGREDIENTS ============ */
.ingredient-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; display:flex; flex-direction:column; width:100%;}
.ingredient-card .asset-img{aspect-ratio:16/10;}
.ingredient-card .ing-body{padding:18px 20px 22px;}
.ingredient-card h4{font-size:16px; margin-bottom:6px;}
.ingredient-card p{font-size:13px; color:var(--ink-soft); line-height:1.55;}

/* ============ STORY / WOMEN ARTISANS ============ */
.story-art{aspect-ratio:4/5; border-radius:var(--radius-lg); overflow:hidden;}
.story-copy p{color:var(--ink-soft); line-height:1.75; font-size:16px; margin-bottom:16px;}
.story-stats{display:flex; gap:36px; margin-top:26px; flex-wrap:wrap;}
.stat b{font-family:var(--font-display); font-size:26px; display:block; color:var(--wine);}
.stat span{font-size:11.5px; color:var(--ink-soft); letter-spacing:.04em;}

.women-banner{background:linear-gradient(135deg,var(--moss-deep),var(--moss)); color:#F4EFDF; border-radius:var(--radius-lg); padding:56px 44px; text-align:center;}
[data-theme="dark"] .women-banner{color:#14110A;}
.women-banner h2{font-size:clamp(26px,4vw,40px); max-width:20ch; margin:12px auto 16px;}
.women-banner p{max-width:56ch; margin:0 auto; opacity:.88; line-height:1.65; font-size:15px;}

/* ============ MODEL / LIFESTYLE CAMPAIGN ============ */
.campaign-card{border-radius:var(--radius-md); overflow:hidden; aspect-ratio:3/4; position:relative;}
.campaign-card .asset-img{width:100%; height:100%;}
.campaign-card .cc-label{position:absolute; left:14px; bottom:14px; color:#fff; font-size:12px; font-weight:700; letter-spacing:.04em; text-shadow:0 2px 8px rgba(0,0,0,.5); z-index:2;}
.campaign-card::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.45), transparent 55%); z-index:1;}

/* ============ SKIN EXPERT ============ */
.expert-media{aspect-ratio:4/5; border-radius:var(--radius-lg); overflow:hidden; position:relative; border:1px solid var(--line);}
.play-btn{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.92); border:none; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px rgba(0,0,0,.25); transition:transform .3s var(--ease); z-index:2;}
.play-btn:hover{transform:translate(-50%,-50%) scale(1.08);}
.play-btn svg{width:20px; height:20px; fill:var(--ink); margin-left:3px;}
.expert-copy .cred{font-size:13px; color:var(--wine); font-weight:700; letter-spacing:.03em; margin:6px 0 16px;}
.expert-copy h2{font-size:clamp(24px,3.4vw,36px); margin:8px 0 4px;}
.expert-quote{font-size:16.5px; line-height:1.65; color:var(--ink); font-style:italic; border-left:2px solid var(--kraft); padding-left:18px; margin:18px 0;}
.expert-disclaimer{font-size:12px; color:var(--ink-soft); background:var(--paper); border-radius:var(--radius-sm); padding:14px 16px; line-height:1.55; margin-top:18px;}
.config-note{font-size:11px; color:var(--ink-soft); opacity:.7; margin-top:10px; font-style:italic;}

/* ============ TABS (Reviews / Video Stories) ============ */
.tabs{display:flex; gap:8px; justify-content:center; margin-bottom:36px;}
.tab-btn{background:var(--paper); border:1px solid var(--line); color:var(--ink-soft); border-radius:100px; padding:11px 22px; font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;}
.tab-btn.active{background:var(--moss); color:#F5F0E2; border-color:var(--moss);}
[data-theme="dark"] .tab-btn.active{color:#14110A;}
.tab-panel{display:none;} .tab-panel.active{display:block;}

.review-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; display:flex; flex-direction:column; gap:12px; width:100%;}
.review-stars{color:var(--kraft-deep); font-size:14px; letter-spacing:2px;}
.review-text{font-size:14px; color:var(--ink); line-height:1.6; font-style:italic;}
.review-who{display:flex; align-items:center; gap:10px; margin-top:auto;}
.review-avatar{width:38px; height:38px; border-radius:50%; overflow:hidden; flex:none; background:var(--paper-deep);}
.review-avatar img{width:100%; height:100%; object-fit:cover;}
.review-avatar .initials-avatar{width:100%; height:100%;}
.review-name{font-size:13px; font-weight:700;}
.review-product{font-size:11.5px; color:var(--ink-soft);}
.review-placeholder-tag{font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--wine-soft); font-weight:700;}

.video-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; cursor:pointer; width:100%;}
.video-thumb{aspect-ratio:16/9; position:relative; background:var(--paper-deep); display:flex; align-items:center; justify-content:center;}
.video-thumb .play-btn{width:52px; height:52px;} .video-thumb .play-btn svg{width:16px; height:16px;}
.video-body{padding:16px 18px 20px;}
.video-body h4{font-size:14.5px; margin-bottom:4px;}
.video-body span{font-size:12px; color:var(--ink-soft);}
.video-empty{text-align:center; padding:40px 20px; color:var(--ink-soft); font-size:13.5px; border:1px dashed var(--line); border-radius:var(--radius-md);}

/* ============ MISSION / JOURNEY ============ */
.journey{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:44px; flex-wrap:wrap;}
.journey-node{display:flex; flex-direction:column; align-items:center; gap:10px; flex:1; min-width:100px; text-align:center;}
.journey-ic{width:52px; height:52px; border-radius:50%; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center;}
.journey-ic svg{width:24px; height:24px; stroke:var(--moss-bright); fill:none; stroke-width:1.5;}
.journey-node span{font-size:11.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft); max-width:12ch;}
.journey-arrow{color:var(--kraft-deep); font-size:18px; flex:none;}
@media (max-width:760px){ .journey{flex-direction:column;} .journey-arrow{transform:rotate(90deg);} }
.mission-quote{background:var(--card); border:1px solid var(--line); border-left:3px solid var(--wine); border-radius:var(--radius-md); padding:26px 28px; font-size:16px; line-height:1.65; color:var(--ink); margin-top:36px;}

/* ============ SOCIAL ============ */
.social-card{aspect-ratio:1/1; border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-decoration:none; color:var(--ink); transition:transform .35s var(--ease), background .3s;}
.social-card:hover{transform:translateY(-4px); background:var(--paper-deep);}
.social-card svg{width:26px; height:26px; stroke:var(--ink); fill:none; stroke-width:1.5;}
.social-card span{font-size:12.5px; font-weight:700; letter-spacing:.04em;}

/* ============ FINAL CTA ============ */
.contact-cta{text-align:center; padding:88px 0;}
.contact-cta h2{font-size:clamp(27px,4.2vw,44px); margin:14px 0 18px;}
.contact-cta p{color:var(--ink-soft); max-width:44ch; margin:0 auto 30px; line-height:1.6;}
.contact-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

/* ============ FOOTER ============ */
footer{background:var(--charcoal); color:#EFE7D3; padding:64px 0 28px;}
.footer-video{padding-bottom:48px; border-bottom:1px solid rgba(239,231,211,.14); margin-bottom:0;}
.footer-video h3{color:#F5EEDD; font-size:22px; margin-bottom:10px;}
.footer-video p{color:rgba(239,231,211,.6); font-size:13.5px; line-height:1.6;}
.footer-video .video-thumb{border-radius:var(--radius-md); border:1px solid rgba(239,231,211,.14);}
.footer-grid{padding:48px 0; border-bottom:1px solid rgba(239,231,211,.14);}
footer .logo{color:#F5EEDD;}
.footer-tag{font-size:13px; color:rgba(239,231,211,.6); margin-top:10px; max-width:26ch; line-height:1.5;}
.footer-col h5{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(239,231,211,.5); margin-bottom:16px;}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.footer-col a{text-decoration:none; font-size:13.5px; color:rgba(239,231,211,.85);}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:14px;}
.footer-bottom p{font-size:12px; color:rgba(239,231,211,.5);}
.footer-credit a{color:rgba(239,231,211,.75); text-decoration:underline; text-underline-offset:2px;}
.footer-credit a:hover{color:#fff;}
.footer-social{display:flex; gap:12px;}
.footer-social a{width:36px; height:36px; border-radius:50%; border:1px solid rgba(239,231,211,.2); display:flex; align-items:center; justify-content:center;}
.footer-social svg{width:16px; height:16px; stroke:#EFE7D3; fill:none; stroke-width:1.6;}

/* ============ FLOATING ORDER SOAP BUTTON ============ */
.fab-order{position:fixed; right:24px; bottom:24px; z-index:70; display:flex; align-items:center; gap:10px; background:var(--moss); color:#F5F0E2; border:none; border-radius:100px; padding:15px 22px 15px 16px; box-shadow:0 14px 30px -8px rgba(0,0,0,.4); font-size:12.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; animation:float-order 3.4s ease-in-out infinite;}
[data-theme="dark"] .fab-order{color:#14110A;}
.fab-order svg{width:22px; height:22px;}
@keyframes float-order{0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);}}
@media (max-width:640px){ .fab-order{right:16px; bottom:20px; padding:13px 18px 13px 14px; font-size:11px;} .fab-order .fab-label{display:none;} .fab-order{border-radius:50%; width:56px; height:56px; padding:0; justify-content:center;} }

/* ============ TOAST ============ */
.oa-toast{position:fixed; left:50%; bottom:28px; transform:translate(-50%,20px); z-index:120; background:var(--charcoal); color:#F5EEDD; padding:14px 22px; border-radius:100px; font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:10px; opacity:0; pointer-events:none; transition:opacity .35s var(--ease), transform .35s var(--ease); box-shadow:var(--shadow); max-width:90vw;}
.oa-toast.show{opacity:1; transform:translate(-50%,0); pointer-events:auto;}
.oa-toast svg{width:16px; height:16px; stroke:var(--moss-soft); fill:none; stroke-width:2; flex:none;}

/* ============ OVERLAY / MODALS ============ */
.overlay{position:fixed; inset:0; background:rgba(20,17,12,.55); backdrop-filter:blur(2px); z-index:80; opacity:0; pointer-events:none; transition:opacity .35s var(--ease);}
.overlay.show{opacity:1; pointer-events:auto;}
.product-modal{position:fixed; z-index:95; top:50%; left:50%; transform:translate(-50%,calc(-50% + 24px)); width:min(920px,92vw); max-height:88vh; overflow:auto; background:var(--ivory); border-radius:var(--radius-lg); box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease);}
.product-modal.show{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.modal-close{position:sticky; top:16px; float:right; margin-right:16px; z-index:5; background:var(--card); border:1px solid var(--line); width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
.modal-close svg{width:16px; height:16px; stroke:var(--ink); fill:none; stroke-width:1.8;}
.pd-grid{display:grid; grid-template-columns:1fr 1fr; gap:0;}
@media (max-width:760px){ .pd-grid{grid-template-columns:1fr;} }
.pd-gallery{background:var(--paper); padding:36px; display:flex; flex-direction:column; gap:16px;}
.pd-main-art{aspect-ratio:1/1; border-radius:var(--radius-md); overflow:hidden;}
.pd-thumbs{display:flex; gap:10px; overflow-x:auto; padding-bottom:2px;}
.pd-thumb{width:60px; height:60px; border-radius:10px; overflow:hidden; border:1.5px solid var(--line); flex:none; cursor:pointer;}
.pd-thumb.active{border-color:var(--wine);}
.pd-info{padding:44px 40px 44px 32px;}
@media (max-width:760px){ .pd-info{padding:28px 24px 40px;} }
.pd-info .brand-tag{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); font-weight:700;}
.pd-info h2{font-size:clamp(24px,4vw,32px); margin:8px 0 6px;}
.pd-info .mood{font-size:13px; color:var(--ink-soft); margin-bottom:18px;}
.pd-price{font-family:var(--font-display); font-size:22px; margin-bottom:20px;}
.pd-block{margin-bottom:20px;}
.pd-block h4{font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--kraft-deep); font-weight:700; margin-bottom:8px;}
.pd-block p, .pd-block li{font-size:14px; color:var(--ink-soft); line-height:1.6;}
.pd-block ul{margin:0; padding-left:18px;}
.pd-qty{display:flex; align-items:center; gap:14px; margin:24px 0 18px;}
.qty-control{display:flex; align-items:center; border:1px solid var(--line); border-radius:100px; overflow:hidden;}
.qty-control button{width:38px; height:38px; background:var(--card); border:none; font-size:16px; display:flex; align-items:center; justify-content:center;}
.qty-control span{width:34px; text-align:center; font-weight:700; font-size:14px;}
.pd-actions{display:flex; gap:12px; flex-wrap:wrap;}
.pd-actions .btn{flex:1 1 auto; min-width:150px;}
.pd-reviews{margin-top:8px; border-top:1px solid var(--line); padding-top:20px;}
.pd-reviews h4{font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--kraft-deep); font-weight:700; margin-bottom:12px;}
.pd-review-item{display:flex; gap:10px; padding:12px 0; border-bottom:1px solid var(--line);}
.pd-review-item:last-child{border-bottom:none;}
.pd-review-avatar{width:32px; height:32px; border-radius:50%; overflow:hidden; flex:none; background:var(--paper-deep);}
.pd-review-avatar img{width:100%; height:100%; object-fit:cover;}
.pd-review-avatar .initials-avatar{width:100%; height:100%; font-size:11px;}
.pd-review-body{flex:1;}
.pd-review-top{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:3px;}
.pd-review-name{font-size:12.5px; font-weight:700;}
.pd-review-stars{font-size:11px; color:var(--kraft-deep);}
.pd-review-text{font-size:13px; color:var(--ink-soft); line-height:1.55; font-style:italic;}
.pd-review-social{display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:var(--paper); flex:none;}
.pd-review-social svg{width:11px; height:11px; stroke:var(--ink-soft); fill:none; stroke-width:1.8;}
.pd-reviews-empty{font-size:12.5px; color:var(--ink-soft); font-style:italic;}
.review-social-link{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--paper); margin-left:auto;}
.review-social-link svg{width:12px; height:12px; stroke:var(--ink-soft); fill:none; stroke-width:1.8;}

.cart-drawer{position:fixed; top:0; right:0; bottom:0; width:420px; max-width:100vw; background:var(--ivory); z-index:95; box-shadow:var(--shadow); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .45s var(--ease);}
.cart-drawer.show{transform:translateX(0);}
@media (max-width:640px){ .cart-drawer{width:100vw;} }
.cart-head{display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line);}
.cart-head h3{font-size:20px;}
.cart-body{flex:1; overflow-y:auto; padding:20px 24px;}
.cart-item{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line);}
.cart-item .ci-img{width:56px; height:56px; border-radius:10px; overflow:hidden; flex:none;}
.ci-name{font-size:14.5px; font-weight:650; margin-bottom:2px;}
.ci-cat{font-size:11.5px; color:var(--ink-soft); margin-bottom:8px;}
.ci-row{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.ci-remove{font-size:11.5px; color:var(--wine-soft); background:none; border:none; text-decoration:underline; padding:0;}
.cart-empty{display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; padding:60px 20px;}
.cart-empty .empty-art{width:120px; opacity:.5;}
.cart-empty h4{font-size:19px;}
.cart-empty p{font-size:13.5px; color:var(--ink-soft); max-width:26ch; line-height:1.55;}
.cart-foot{border-top:1px solid var(--line); padding:20px 24px 26px;}
.cart-line{display:flex; justify-content:space-between; font-size:13.5px; color:var(--ink-soft); margin-bottom:8px;}
.cart-total{display:flex; justify-content:space-between; font-family:var(--font-display); font-size:19px; margin:12px 0 18px;}

.confirm-modal{position:fixed; z-index:100; top:50%; left:50%; transform:translate(-50%,-46%); width:min(480px,92vw); background:var(--ivory); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:34px 30px; opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease); max-height:88vh; overflow-y:auto;}
.confirm-modal.show{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.confirm-modal h3{font-size:22px; margin:6px 0 4px;}
.confirm-modal .sub{font-size:12.5px; color:var(--ink-soft); margin-bottom:20px;}
.confirm-list{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:14px 0; margin-bottom:16px; max-height:200px; overflow-y:auto;}
.confirm-row{display:flex; justify-content:space-between; font-size:13.5px; padding:6px 0; color:var(--ink-soft);}
.confirm-row b{color:var(--ink); font-weight:600;}

/* Video modal (YouTube embed) */
.video-modal{position:fixed; z-index:110; top:50%; left:50%; transform:translate(-50%,-46%); width:min(880px,94vw); background:#000; border-radius:var(--radius-md); box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease); overflow:hidden;}
.video-modal.show{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.video-modal .modal-close{position:absolute; top:14px; right:14px; float:none; background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.25);}
.video-modal .modal-close svg{stroke:#fff;}
.video-embed-wrap{aspect-ratio:16/9; width:100%;}
.video-embed-wrap iframe{width:100%; height:100%; border:0; display:block;}

/* ============================================================
   FOREST EXPERIENCE — ambient leaves, forest explorer cards,
   plant modal, and the "from forest to product" journey modal.
   Layered on top of the existing store; never blocks shopping.
   ============================================================ */
.leaf-particles{position:fixed; inset:0; pointer-events:none; z-index:1; overflow:hidden;}
.leaf-particle{position:absolute; top:-40px; opacity:.5; animation:leaf-fall linear infinite; will-change:transform;}
.leaf-particle svg{width:100%; height:100%;}
@keyframes leaf-fall{
  0%{transform:translateY(-6vh) translateX(0) rotate(0deg);}
  50%{transform:translateY(53vh) translateX(24px) rotate(150deg);}
  100%{transform:translateY(112vh) translateX(-14px) rotate(320deg);}
}
@media (prefers-reduced-motion: reduce){ .leaf-particles{display:none;} }

.forest-texture{position:relative;}
.forest-texture::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:
    radial-gradient(circle at 8% 20%, color-mix(in srgb, var(--moss-bright) 10%, transparent) 0, transparent 40%),
    radial-gradient(circle at 92% 75%, color-mix(in srgb, var(--moss-bright) 8%, transparent) 0, transparent 42%);
}
.forest-texture > .wrap{position:relative; z-index:1;}

/* ---- forest explorer (ingredient cards, now clickable) ---- */
.explorer-hint{font-size:12.5px; color:var(--ink-soft); margin-top:-38px; margin-bottom:36px; text-align:center;}
.ingredient-card{cursor:pointer; transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.ingredient-card:hover{transform:translateY(-5px); box-shadow:var(--shadow);}
.ingredient-card .ing-body{position:relative;}
.ing-explore-tag{position:absolute; top:14px; right:16px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--moss-bright); background:color-mix(in srgb, var(--moss-bright) 14%, transparent); padding:4px 9px; border-radius:100px;}

/* ---- plant modal ---- */
.plant-modal{
  position:fixed; z-index:98; top:50%; left:50%; transform:translate(-50%,-46%); width:min(560px,92vw);
  background:var(--ivory); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:0; overflow:hidden;
  opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease); max-height:88vh; overflow-y:auto;
}
.plant-modal.show{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.plant-modal .plant-hero{aspect-ratio:16/9; overflow:hidden;}
.plant-modal-body{padding:30px 30px 32px;}
.plant-modal-body h3{font-size:24px; margin:6px 0 12px;}
.plant-modal-body p{font-size:14.5px; color:var(--ink-soft); line-height:1.65; margin-bottom:14px;}
.plant-modal-body h4{font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--kraft-deep); font-weight:700; margin:18px 0 6px;}
.plant-modal-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:20px;}

/* ---- "discover how it's made" card in product detail / cards ---- */
.discover-card{
  display:flex; align-items:center; gap:14px; background:linear-gradient(120deg, color-mix(in srgb, var(--moss-bright) 12%, var(--paper)), var(--paper));
  border:1px solid var(--line); border-radius:var(--radius-md); padding:16px 18px; margin:22px 0; cursor:pointer;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.discover-card:hover{transform:translateY(-2px); box-shadow:var(--shadow);}
.discover-card .dc-ic{width:38px; height:38px; border-radius:50%; background:var(--card); display:flex; align-items:center; justify-content:center; flex:none;}
.discover-card .dc-ic svg{width:19px; height:19px; stroke:var(--moss-bright); fill:none; stroke-width:1.6;}
.discover-card .dc-copy{flex:1;}
.discover-card .dc-copy b{display:block; font-size:14px; font-weight:700; margin-bottom:2px;}
.discover-card .dc-copy span{font-size:12.5px; color:var(--ink-soft);}
.discover-card .dc-arrow{font-size:18px; color:var(--ink-soft); flex:none;}

/* ---- journey modal (from forest to product) ---- */
.journey-modal{
  position:fixed; z-index:99; top:50%; left:50%; transform:translate(-50%,-46%); width:min(720px,94vw);
  background:var(--ivory); border-radius:var(--radius-lg); box-shadow:var(--shadow); overflow:hidden;
  opacity:0; pointer-events:none; transition:opacity .4s var(--ease), transform .4s var(--ease); max-height:90vh; display:flex; flex-direction:column;
}
.journey-modal.show{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.journey-head{display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--line);}
.journey-head .eyebrow{margin:0;}
.journey-skip{font-size:12px; font-weight:700; color:var(--ink-soft); background:none; border:1px solid var(--line); border-radius:100px; padding:8px 16px;}
.journey-stage{padding:0; overflow-y:auto;}
.journey-scene{aspect-ratio:16/9; max-height:44vh; position:relative; overflow:hidden; background:var(--paper);}
.journey-scene svg{width:100%; height:100%;}
.journey-copy{padding:24px 28px 8px;}
.journey-copy .step-label{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--moss-bright); font-weight:700;}
.journey-copy h3{font-size:22px; margin:8px 0 8px;}
.journey-copy p{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.journey-dots{display:flex; gap:7px; justify-content:center; padding:18px 0 4px;}
.journey-dot{width:7px; height:7px; border-radius:50%; background:var(--line); transition:background .3s, transform .3s;}
.journey-dot.active{background:var(--moss-bright); transform:scale(1.3);}
.journey-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 24px 24px;}
.journey-nav{display:flex; gap:8px;}
.journey-nav button{background:var(--paper); border:1px solid var(--line); border-radius:50%; width:40px; height:40px; display:flex; align-items:center; justify-content:center; font-size:16px;}
.journey-nav button:disabled{opacity:.35; cursor:default;}
@media (max-width:640px){ .journey-copy{padding:18px 20px 4px;} .journey-scene{max-height:32vh;} }

/* ---- related products ---- */
.pd-related{margin-top:8px; border-top:1px solid var(--line); padding-top:20px;}
.pd-related h4{font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--kraft-deep); font-weight:700; margin-bottom:12px;}
.pd-related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.pd-related-item{cursor:pointer; text-align:center;}
.pd-related-item .asset-img{aspect-ratio:1/1; border-radius:10px; margin-bottom:6px;}
.pd-related-item span{font-size:11px; font-weight:700; color:var(--ink-soft);}

/* ---- initials avatar for reviews ---- */
.initials-avatar{display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; color:#fff; font-size:14px;}
.verified-badge{display:inline-flex; align-items:center; gap:3px; font-size:10px; font-weight:800; letter-spacing:.03em; color:var(--moss-bright); text-transform:uppercase;}
.verified-badge svg{width:11px; height:11px; stroke:var(--moss-bright); fill:none; stroke-width:2.4;}

.icon-sun{display:none;} .icon-moon{display:block;}
[data-theme="dark"] .icon-sun{display:block;} [data-theme="dark"] .icon-moon{display:none;}

/* ============ CONTACT FORM ============ */
.contact-info-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; height:100%;}
.contact-info-card h4{font-size:20px; margin-bottom:20px;}
.contact-info-card p{display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--ink-soft); line-height:1.6; margin-bottom:16px;}
.contact-info-card p:last-child{margin-bottom:0;}
.contact-info-card svg{width:18px; height:18px; flex:none; stroke:var(--moss-bright); fill:none; stroke-width:1.6; margin-top:2px;}
.contact-form{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; display:flex; flex-direction:column; gap:18px;}
.cf-field{display:flex; flex-direction:column; gap:7px;}
.cf-field label{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
.cf-field input, .cf-field select, .cf-field textarea{font-family:var(--font-body); font-size:14.5px; padding:12px 14px; border-radius:var(--radius-sm); border:1px solid var(--line); background:var(--ivory); color:var(--ink); resize:vertical; width:100%;}
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus{outline:2px solid var(--moss-bright); outline-offset:1px;}
.cf-note{font-size:12px; color:var(--ink-soft); text-align:center; margin:0;}

/* ============ LEGAL / POLICY PAGES ============ */
.legal-page{padding:56px 0 88px;}
.legal-page h1{font-size:clamp(28px,4vw,40px); margin:14px 0 8px;}
.legal-page .legal-updated{font-size:12.5px; color:var(--ink-soft); margin-bottom:36px;}
.legal-page h2{font-size:19px; margin:36px 0 12px;}
.legal-page h2:first-of-type{margin-top:0;}
.legal-page p, .legal-page li{font-size:15px; color:var(--ink-soft); line-height:1.75; margin-bottom:12px;}
.legal-page ul, .legal-page ol{padding-left:22px; margin:0 0 16px;}
.legal-page a{color:var(--wine); text-decoration:underline;}
.legal-back{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--ink-soft); text-decoration:none; margin-bottom:26px;}
.legal-back:hover{color:var(--ink);}
