/*
Theme Name: FULLOAT
Theme URI: https://www.fulloat.store
Author: Fulloat
Description: Streetwear e-commerce theme for FULLOAT. Oversized fits. Bold prints. Built different.
Version: 5.5.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: fulloat
WC requires at least: 8.0
WC tested up to: 9.9
*/

/* =========================================================================
   FULLOAT — clean rebuild. Cream theme, monospace, flame accent.
   ====================================================================== */
:root{
	--ink:#0e0e0e;
	--ink-2:#171717;
	--flame:#ff4d1c;
	--ash:#8a8580;
	--cream-bg:#f7f3e9;
	--cream-2:#efe9db;
	--ink-text:#141414;
	--ink-soft:#6a645b;
	--line:rgba(255,255,255,.12);
	--line-warm:#e3dbc9;
	--display:'Space Mono','Courier New',monospace;
	--body:'Space Mono','Courier New',monospace;
	--wrap:1280px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; max-width:100%; overflow-x:hidden; }
body{
	background:var(--cream-bg);
	color:var(--ink-text);
	font-family:var(--body);
	line-height:1.55;
	letter-spacing:-.01em;
	-webkit-font-smoothing:antialiased;
}
body.nav-open{ overflow:hidden; }
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--display); font-weight:700; text-transform:uppercase; line-height:1.05; margin:0; letter-spacing:-.02em; }
:focus-visible{ outline:3px solid var(--flame); outline-offset:2px; }

.wrap,.container{ max-width:var(--wrap); margin:0 auto; padding:0 32px; }
.empty-note{ color:var(--ink-soft); font-size:15px; padding:20px 0; }

.screen-reader-text,.skip-link{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ position:fixed; left:10px; top:10px; width:auto; height:auto; z-index:9999; background:var(--flame); color:#fff; padding:12px 20px; }

/* =========================================================================
   BUTTONS
   ====================================================================== */
.btn,.btn-primary{
	display:inline-flex; align-items:center; gap:12px;
	background:var(--flame); color:#fff;
	font-family:var(--display); font-weight:700; font-size:15px;
	letter-spacing:.06em; text-transform:uppercase; padding:16px 34px;
	border:none; cursor:pointer; transition:background .2s,color .2s,transform .15s;
}
.btn:hover,.btn-primary:hover{ background:var(--ink-text); color:#fff; transform:translateY(-2px); }
.btn svg,.btn-primary svg{ width:18px; height:18px; }
.link-arrow{
	font-family:var(--display); font-weight:700; font-size:14px;
	letter-spacing:.06em; text-transform:uppercase; color:var(--flame);
	display:inline-flex; gap:9px; align-items:center;
	border-bottom:2px solid transparent; padding-bottom:3px; transition:border-color .2s;
}
.link-arrow:hover{ border-color:var(--flame); }

/* =========================================================================
   ANNOUNCE BAR
   ====================================================================== */
.announce{
	position:relative; z-index:60; margin:0;
	background:var(--flame); color:#fff; text-align:center;
	font-family:var(--display); font-size:12px; font-weight:700;
	letter-spacing:.1em; padding:9px 14px; text-transform:uppercase;
}
.announce p{ margin:0; }

/* =========================================================================
   HEADER
   ====================================================================== */
.hdr{
	position:sticky; top:0; z-index:50;
	background:rgba(14,14,14,.94);
	backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid rgba(0,0,0,.08);
}
.hdr-in{ display:flex; align-items:center; justify-content:space-between; height:72px; position:relative; overflow:hidden; }
.logo{ display:inline-flex; align-items:center; line-height:0; }
.logo img,.fulloat-logo-img{ height:26px; width:auto; display:block; }

.nav{ display:flex; gap:32px; margin-left:auto; margin-right:32px; }
.nav .nav-list{ display:flex; gap:32px; list-style:none; margin:0; padding:0; }
.nav .nav-list li a{
	font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
	color:#d8d5cf; padding:6px 0; transition:color .2s;
}
.nav .nav-list li a:hover,.nav .current-menu-item>a{ color:var(--flame); }
.nav .sub-menu{ list-style:none; margin:0; padding:0; }

.icons{ display:flex; align-items:center; gap:18px; }
.icons a{ display:inline-flex; color:#fff; }
.icons svg{ width:21px; height:21px; }
.icons a:hover{ color:var(--flame); }
.cart-dot{ position:relative; }
.cart-dot .cart-count{
	position:absolute; top:-7px; right:-9px;
	min-width:17px; height:17px; padding:0 4px; border-radius:9px;
	background:var(--flame); color:#fff; font-family:var(--body);
	font-size:10px; font-weight:700; line-height:17px; text-align:center;
}
.cart-dot .cart-count.is-empty{ background:var(--ash); }

.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; padding:0; background:none; border:none; cursor:pointer; }
.nav-toggle span{ display:block; width:22px; height:2px; background:#fff; transition:transform .25s,opacity .2s; }
.nav-toggle.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2){ opacity:0; }
.nav-toggle.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.nav-close{ display:none; }

/* =========================================================================
   MARQUEE (header strip + generic)
   ====================================================================== */
.marquee{ background:var(--flame); color:var(--ink); overflow:hidden; white-space:nowrap; border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); padding:12px 0; max-width:100vw; }
.marquee-header{ position:relative; z-index:40; padding:11px 0; }
.marquee-track{ display:inline-flex; gap:40px; animation:fulloat-scroll 22s linear infinite; will-change:transform; }
.marquee-track span{ font-family:var(--display); font-weight:700; font-size:16px; letter-spacing:.02em; text-transform:uppercase; display:inline-flex; align-items:center; gap:40px; }
.marquee-track span::after{ content:"\2726"; color:var(--ink); }
@keyframes fulloat-scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.marquee:hover .marquee-track{ animation-play-state:paused; }

/* =========================================================================
   HERO (homepage)
   ====================================================================== */
.hero{ position:relative; min-height:86vh; display:flex; align-items:flex-end; overflow:hidden; border-bottom:1px solid var(--line-warm); }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; opacity:.62; }
.hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,14,14,.55) 0%,rgba(14,14,14,.2) 40%,rgba(14,14,14,.92) 100%); }
.hero-in{ position:relative; z-index:1; width:100%; padding-bottom:60px; }
.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--flame); margin-bottom:20px; }
.eyebrow::before{ content:""; width:34px; height:2px; background:var(--flame); }
.hero h1{ font-weight:700; font-size:clamp(56px,13vw,180px); line-height:.9; letter-spacing:-.04em; text-transform:uppercase; color:#fff; }
.hero h1 em{ font-style:italic; color:var(--flame); }
.hero-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-top:28px; flex-wrap:wrap; }
.hero-sub{ font-size:17px; color:#d8d5cf; max-width:340px; }

/* =========================================================================
   HOMEPAGE SECTIONS
   ====================================================================== */
.sec{ padding-top:90px; padding-bottom:90px; }
.sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:44px; flex-wrap:wrap; }
.sec-head h2{ font-size:clamp(34px,6vw,62px); line-height:.92; text-transform:uppercase; color:var(--ink-text); }
.sec-head .n{ font-size:13px; color:var(--ink-soft); font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }

.drop-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:22px; }
.drop-grid .card{ position:relative; display:block; grid-column:span 3; overflow:hidden; }
.drop-grid .card.big{ grid-column:span 6; grid-row:span 2; }
.card-img{ position:relative; aspect-ratio:3/4; background:var(--cream-2); overflow:hidden; }
.drop-grid .card.big .card-img{ aspect-ratio:auto; height:100%; min-height:460px; }
.card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.card:hover .card-img img{ transform:scale(1.05); }
.card-tag{ position:absolute; top:14px; left:14px; z-index:2; background:var(--flame); color:#fff; font-family:var(--display); font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:6px 11px; }
.card-tag.dark{ background:var(--ink); }
.card-meta{ padding:16px 4px 0; }
.card-meta h3{ font-family:var(--display); font-weight:700; font-size:16px; line-height:1.1; text-transform:uppercase; color:var(--ink-text); margin:0; }
.drop-grid .card.big .card-meta h3{ font-size:24px; }
.card-price{ margin-top:7px; font-size:14px; font-weight:700; color:var(--ink-text); }
.card-price del,.card-price s{ color:#9a9488; font-weight:400; margin-right:8px; }
.card-price ins,.card-price b{ color:var(--flame); text-decoration:none; font-weight:700; }
.card-atc{ position:absolute; left:14px; right:14px; bottom:14px; z-index:2; background:var(--ink); color:#fff; border:none; text-align:center; font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; padding:14px; opacity:0; transform:translateY(10px); transition:.25s; cursor:pointer; }
.card-img:hover .card-atc{ opacity:1; transform:translateY(0); }
.card-atc:hover{ background:var(--flame); }

.editorial{ background:var(--cream-2); color:var(--ink-text); padding:100px 0; }
.ed-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.ed-tag{ font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--flame); margin-bottom:22px; }
.ed-grid h2{ font-size:clamp(32px,5vw,56px); line-height:.96; text-transform:uppercase; margin-bottom:24px; color:var(--ink-text); }
.ed-grid p{ font-size:17px; line-height:1.75; color:#3a3733; margin:0 0 16px; max-width:520px; }
.ed-grid p strong{ color:var(--ink-text); }
.ed-stats{ display:flex; gap:40px; margin-top:34px; flex-wrap:wrap; }
.ed-stat b{ display:block; font-family:var(--display); font-weight:700; font-size:40px; line-height:1; color:var(--ink-text); }
.ed-stat span{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.ed-visual{ aspect-ratio:4/5; overflow:hidden; background:var(--ink); }
.ed-visual img{ width:100%; height:100%; object-fit:cover; }

.vibes{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.vibe{ position:relative; aspect-ratio:4/5; overflow:hidden; display:flex; align-items:flex-end; border:1px solid var(--line-warm); }
.vibe img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85; transition:.6s; }
.vibe:hover img{ opacity:.65; transform:scale(1.05); }
.vibe::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(14,14,14,.9)); }
.vibe-txt{ position:relative; z-index:1; padding:26px; }
.vibe-txt h3{ font-family:var(--display); font-weight:700; font-size:28px; text-transform:uppercase; line-height:.9; color:#fff; }
.vibe-txt span{ font-size:13px; color:var(--flame); font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-top:10px; display:inline-block; }

.usp{ border-top:1px solid var(--line-warm); background:var(--cream-2); }
.usp-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.usp-item{ padding:38px 26px; border-right:1px solid var(--line-warm); }
.usp-item:last-child{ border-right:none; }
.usp-item .ic{ color:var(--flame); font-size:24px; margin-bottom:12px; font-family:var(--display); font-weight:700; }
.usp-item h4{ font-family:var(--display); font-weight:700; font-size:15px; text-transform:uppercase; margin:0 0 6px; color:var(--ink-text); }
.usp-item p{ font-size:13px; color:var(--ink-soft); margin:0; }

.section-cta{ margin-top:44px; text-align:center; }

/* =========================================================================
   SHOP PAGE
   ====================================================================== */
.shop-hero{ padding:64px 0 36px; border-bottom:1px solid var(--line-warm); }
.shop-hero-eyebrow{ font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--flame); margin-bottom:14px; display:inline-flex; align-items:center; gap:10px; }
.shop-hero-eyebrow::before{ content:""; width:30px; height:2px; background:var(--flame); }
.shop-hero-title,.shop-title{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(40px,8vw,100px); line-height:.9; letter-spacing:-.03em; color:var(--ink-text); }
.shop-hero-desc{ margin-top:18px; max-width:560px; color:var(--ink-soft); font-size:15px; line-height:1.7; }
.shop-page{ padding:44px 0 90px; }
.shop-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-bottom:24px; margin-bottom:34px; border-bottom:1px solid var(--line-warm); }
.shop-count,.woocommerce-result-count{ margin:0; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.shop-sort select,.woocommerce-ordering select{ background:#fff; color:var(--ink-text); border:1px solid var(--line-warm); padding:12px 16px; font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.shop-grid,.products-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px 22px; }
.shop-card{ position:relative; display:flex; flex-direction:column; }
.shop-card .card-hit{ display:block; position:relative; }
.shop-card .card-meta h3{ font-size:16px; }
.shop-atc{ display:block; text-align:center; margin-top:14px; background:#fff; color:var(--ink-text); border:1px solid var(--line-warm); font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; padding:14px; cursor:pointer; transition:background .2s,border-color .2s,color .2s; }
.shop-atc:hover{ background:var(--flame); border-color:var(--flame); color:#fff; }
.shop-atc.is-disabled{ opacity:.4; cursor:default; pointer-events:none; }
.shop-empty{ text-align:center; padding:80px 0; }
.shop-empty h2{ font-family:var(--display); font-weight:700; font-size:40px; text-transform:uppercase; color:var(--ink-text); margin:0 0 14px; }
.shop-empty p{ color:var(--ink-soft); margin:0 0 28px; }

.woocommerce-pagination{ margin-top:50px; text-align:center; }
.woocommerce-pagination ul{ display:inline-flex; gap:8px; list-style:none; padding:0; margin:0; }
.woocommerce-pagination ul li a,.woocommerce-pagination ul li span{ min-width:44px; padding:12px; border:1px solid var(--line-warm); color:var(--ink-text); font-family:var(--display); font-weight:700; font-size:13px; text-align:center; display:block; }
.woocommerce-pagination ul li span.current{ background:var(--flame); border-color:var(--flame); color:#fff; }
.woocommerce-pagination ul li a:hover{ border-color:var(--flame); color:var(--flame); }

/* =========================================================================
   SINGLE PRODUCT
   ====================================================================== */
.single-product{ padding:30px 0 40px; }
.breadcrumb-bar{ font-size:12px; letter-spacing:.04em; color:var(--ink-soft); margin-bottom:30px; text-transform:uppercase; }
.breadcrumb-bar a{ color:var(--ink-soft); }
.breadcrumb-bar a:hover{ color:var(--flame); }
.product-layout{ display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:start; }

.product-image{ position:relative; }
.product-image .woocommerce-product-gallery__image{ background:var(--cream-2); }
.product-image img{ width:100%; }
.flex-control-thumbs{ display:flex; gap:10px; flex-wrap:wrap; list-style:none; padding:0; margin:12px 0 0; }
.flex-control-thumbs li{ width:80px; cursor:pointer; }
.flex-control-thumbs img{ opacity:.5; transition:opacity .2s; border:1px solid var(--line-warm); }
.flex-control-thumbs img.flex-active,.flex-control-thumbs img:hover{ opacity:1; border-color:var(--flame); }
.woocommerce-product-gallery__trigger{ top:14px !important; right:14px !important; }

.off-badge{ position:absolute; top:16px; right:16px; z-index:5; background:var(--flame); color:#fff; font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; padding:7px 12px; }

@media(min-width:861px){ .product-info{ position:sticky; top:100px; } }
.product-eyebrow{ font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--flame); margin-bottom:16px; }
.product-title{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(30px,4.4vw,54px); line-height:.95; letter-spacing:-.03em; color:var(--ink-text); margin:0 0 16px; }
.single-product .price,.product-info .price{ font-size:24px; font-weight:700; color:var(--ink-text); margin:0 0 20px; display:block; }
.single-product .price del,.single-product .price s{ color:#9a9488; font-weight:400; margin-right:10px; }
.single-product .price ins{ color:var(--flame); text-decoration:none; }
.product-description{ color:#3a3733; font-size:16px; line-height:1.75; margin-bottom:24px; max-width:520px; }

/* PREPAID DROP */
.prepaid-strip{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; border:1px dashed var(--flame); padding:12px 14px; margin:0 0 22px; font-size:13px; }
.prepaid-badge{ background:var(--flame); color:#fff; font-family:var(--display); font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px; flex:0 0 auto; }
.prepaid-text{ color:#3a3733; }
.prepaid-text s{ color:#9a9488; margin:0 4px 0 6px; }
.prepaid-text b{ color:var(--flame); }

/* Size swatches */
.woocommerce div.product form.cart .variations{ border:none; margin-bottom:20px; }
.woocommerce div.product form.cart .variations tr{ display:block; margin-bottom:14px; }
.woocommerce div.product form.cart .variations th.label{ display:block; padding:0 0 10px; width:auto; text-align:left; color:var(--ink-text); font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; }
.woocommerce div.product form.cart .variations td{ display:block; padding:0; }
.variations .label label .chosen-value{ color:var(--flame); margin-left:4px; }
.size-guide-link{ float:right; font-family:var(--body); font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--flame); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.size-guide-link:hover{ color:var(--ink-text); }

.variations select{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); }
.size-swatches{ display:flex; flex-wrap:wrap; gap:10px; }
.swatch{ min-width:54px; height:54px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:var(--ink-text); border:1.5px solid #d8d0be; font-family:var(--display); font-weight:700; font-size:15px; text-transform:uppercase; cursor:pointer; transition:background .15s,border-color .15s,color .15s; }
.swatch:hover{ border-color:var(--ink-text); }
.swatch.is-active{ background:var(--ink-text); color:#fff; border-color:var(--ink-text); box-shadow:0 0 0 2px rgba(20,20,20,.15); }
.swatch.is-disabled{ opacity:.35; cursor:not-allowed; text-decoration:line-through; }

.size-prompt{ display:none; margin-top:10px; font-size:13px; font-weight:700; color:var(--flame); }
.size-prompt.show{ display:block; }
@keyframes swatch-pulse{ 0%,100%{ transform:scale(1);} 30%{ transform:scale(1.06);} }
.size-swatches.pulse .swatch{ animation:swatch-pulse .4s ease; border-color:var(--flame); }

/* Quantity + Add to cart */
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce-variation-add-to-cart{ display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; }
.woocommerce .quantity .qty,.quantity input.qty{ width:78px; min-height:56px; background:#fff; color:var(--ink-text); border:1px solid var(--line-warm); text-align:center; font-family:var(--body); font-size:16px; font-weight:700; }
.single_add_to_cart_button,
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button.wc-variation-selection-needed{
	flex:1; min-width:200px; background:var(--flame) !important; color:#fff !important; opacity:1 !important;
	border:none; padding:17px 40px; font-family:var(--display); font-weight:700; font-size:15px;
	letter-spacing:.06em; text-transform:uppercase; cursor:pointer !important; pointer-events:auto !important; transition:background .2s;
}
.single_add_to_cart_button:hover,.woocommerce div.product form.cart .button:hover{ background:var(--ink-text) !important; color:#fff !important; }

.buy-now-button{ display:block; width:100%; margin-top:12px; background:var(--ink-text); color:#fff; border:none; padding:17px 40px; font-family:var(--display); font-weight:700; font-size:15px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .2s; }
.buy-now-button:hover{ background:var(--flame); }

/* Stats */
.product-stats{ display:flex; border:1px solid var(--line-warm); margin:24px 0; }
.pstat{ flex:1; padding:18px 16px; border-right:1px solid var(--line-warm); }
.pstat:last-child{ border-right:none; }
.pstat b{ display:block; font-family:var(--display); font-weight:700; font-size:20px; color:var(--ink-text); line-height:1; text-transform:uppercase; }
.pstat span{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:5px; display:block; }

/* Assurance grid */
.assurance-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; margin:24px 0; padding:22px 0; border-top:1px solid var(--line-warm); border-bottom:1px solid var(--line-warm); }
.assurance{ display:flex; align-items:center; gap:11px; font-size:13px; color:#3a3733; }
.assurance svg{ width:22px; height:22px; color:var(--flame); flex:0 0 auto; }

.product_meta{ font-size:12px; color:var(--ink-soft); line-height:1.9; margin-top:20px; }
.product_meta > span{ display:block; }
.product_meta a{ color:var(--ink-soft); }
.product_meta a:hover{ color:var(--flame); }

/* Tabs */
.woocommerce-tabs{ margin-top:70px; }
.woocommerce div.product .woocommerce-tabs ul.tabs{ display:flex; gap:34px; flex-wrap:wrap; padding:0; margin:0 0 30px; border-bottom:1px solid var(--line-warm); list-style:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background:transparent !important; border:none !important; border-radius:0 !important; margin:0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ content:none !important; display:none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ padding:14px 0 !important; font-family:var(--display); font-weight:700; font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft) !important; background:transparent !important; border-bottom:2px solid transparent !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--ink-text) !important; border-bottom-color:var(--flame) !important; }
.woocommerce-tabs .panel{ color:#3a3733; line-height:1.8; max-width:820px; font-size:16px; }
.woocommerce-tabs .panel h2{ display:none; }
.woocommerce-tabs .panel h3,.woocommerce-tabs .panel strong,.woocommerce-tabs .panel b{ color:var(--ink-text); }
.woocommerce-tabs .panel h3{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:20px; margin:26px 0 12px; }
.woocommerce-tabs .panel ul,.woocommerce-tabs .panel ol{ padding-left:20px; }
.woocommerce-tabs .panel li{ margin-bottom:8px; }

/* Reviews */
.woocommerce #reviews h2,.woocommerce #reviews h3,.woocommerce #reviews #reply-title{ color:var(--ink-text); }
.woocommerce #reviews .comment-notes,.woocommerce #reviews .woocommerce-noreviews{ color:var(--ink-soft); }
.woocommerce #reviews p.stars a{ color:var(--flame) !important; }
.woocommerce #review_form input[type="text"],
.woocommerce #review_form input[type="email"],
.woocommerce #review_form textarea{ background:#fff !important; color:var(--ink-text) !important; border:1px solid var(--line-warm) !important; padding:12px 14px !important; font-family:var(--body) !important; font-size:15px !important; width:100%; max-width:520px; }
.woocommerce #review_form textarea{ min-height:120px; max-width:100%; }
.woocommerce #review_form label{ color:#3a3733 !important; }
.woocommerce #review_form .form-submit input{ background:var(--ink-text) !important; color:#fff !important; border:none !important; padding:14px 34px !important; font-family:var(--display) !important; font-weight:700 !important; letter-spacing:.06em !important; text-transform:uppercase !important; cursor:pointer; }
.woocommerce #review_form .form-submit input:hover{ background:var(--flame) !important; }

/* Related band */
.related-band{ background:var(--cream-2); border-top:1px solid var(--line-warm); margin-top:80px; padding:80px 0; }
.related-band .related > h2,.woocommerce .related > h2{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(28px,4vw,48px); color:var(--ink-text); margin:0 0 32px; }
.related-band ul.products,.woocommerce .related ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:26px 22px; list-style:none; padding:0; margin:0; }
.related-band ul.products li.product,.woocommerce .related ul.products li.product{ float:none !important; width:auto !important; margin:0 !important; position:relative; text-align:left; }
.related-band ul.products li.product a img{ width:100%; aspect-ratio:3/4; object-fit:cover; background:var(--cream-bg); margin:0 0 14px; }
.related-band ul.products li.product .woocommerce-loop-product__title{ font-family:var(--display); font-weight:700; font-size:15px; text-transform:uppercase; color:var(--ink-text); margin:0 0 6px; padding:0; }
.related-band ul.products li.product .price{ color:var(--ink-text); font-weight:700; font-size:14px; }
.related-band ul.products li.product .price del{ color:#9a9488; font-weight:400; }
.related-band ul.products li.product .price ins{ color:var(--flame); text-decoration:none; }
.related-band ul.products li.product .button{ display:none !important; }
.related-band ul.products li.product .onsale{ position:absolute; top:12px; left:12px; background:var(--flame); color:#fff; border-radius:0; font-family:var(--display); font-weight:700; font-size:10px; letter-spacing:.1em; padding:6px 10px; min-height:0; min-width:0; margin:0; }

/* Size guide modal */
.size-guide-overlay{ position:fixed; inset:0; z-index:200; background:rgba(20,20,20,.6); display:flex; align-items:center; justify-content:center; padding:20px; }
.size-guide-overlay[hidden]{ display:none; }
.size-guide-box{ background:var(--cream-bg); color:var(--ink-text); max-width:460px; width:100%; padding:34px 32px 30px; position:relative; border:1px solid var(--line-warm); box-shadow:0 24px 60px rgba(0,0,0,.3); }
.size-guide-close{ position:absolute; top:14px; right:16px; background:none; border:none; font-size:28px; line-height:1; color:var(--ink-text); cursor:pointer; }
.size-guide-close:hover{ color:var(--flame); }
.size-guide-box h3{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:26px; margin:0 0 10px; color:var(--ink-text); }
.size-guide-note{ font-size:13px; color:var(--ink-soft); margin:0 0 20px; line-height:1.6; }
.size-guide-table{ width:100%; border-collapse:collapse; margin-bottom:16px; }
.size-guide-table th{ background:var(--ink-text); color:#fff; font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:11px 10px; text-align:center; }
.size-guide-table td{ padding:11px 10px; text-align:center; font-size:14px; font-weight:700; border-bottom:1px solid var(--line-warm); color:var(--ink-text); }
.size-guide-table tbody tr:nth-child(even){ background:var(--cream-2); }
.size-guide-tip{ font-size:12px; color:var(--ink-soft); margin:14px 0 0; font-style:italic; }

/* =========================================================================
   CART / CHECKOUT / GENERIC PAGES
   ====================================================================== */
.page-content{ padding:50px 0 80px; }
.page-title{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:40px; color:var(--ink-text); margin:0 0 30px; }
.page-content .entry-content{ color:#3a3733; }
.page-content a{ color:var(--flame); }
table.shop_table{ width:100%; border-collapse:collapse; margin-bottom:30px; color:var(--ink-text); }
table.shop_table th{ text-align:left; text-transform:uppercase; font-family:var(--display); font-size:12px; letter-spacing:.06em; padding:15px 10px; border-bottom:2px solid var(--ink-text); color:var(--ink-text); }
table.shop_table td{ padding:16px 10px; border-bottom:1px solid var(--line-warm); vertical-align:middle; font-size:14px; color:#3a3733; }
.product-thumbnail img{ width:72px; height:auto; }
.product-remove a{ color:var(--flame) !important; font-size:18px; font-weight:700; }
.cart_totals{ background:var(--ink-text); color:#fff; padding:30px; max-width:420px; margin-left:auto; }
.cart_totals h2{ font-family:var(--display); font-size:20px; margin:0 0 20px; color:#fff; text-transform:uppercase; }
.cart_totals table{ width:100%; }
.cart_totals table th,.cart_totals table td{ padding:12px 0; border-bottom:1px solid #333; color:#fff; font-size:14px; }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.button,input[type="submit"],.checkout-button{ background:var(--ink-text) !important; color:#fff !important; border:none; padding:14px 30px; font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .2s; }
.woocommerce a.button:hover,.woocommerce button.button:hover,.button:hover,.checkout-button:hover{ background:var(--flame) !important; }
.woocommerce-checkout form .form-row{ margin-bottom:16px; }
.woocommerce-checkout label,.woocommerce form .form-row label{ font-family:var(--body); font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; margin-bottom:6px; display:block; color:var(--ink-text); }
.woocommerce-checkout input.input-text,.woocommerce-checkout select,.woocommerce-checkout textarea,.select2-container .select2-selection{ width:100%; padding:13px; background:#fff; color:var(--ink-text); border:1px solid var(--line-warm); font-family:var(--body); font-size:15px; }
.woocommerce form .form-row .required{ color:var(--flame); }
#order_review{ background:var(--ink-text); color:#fff; padding:30px; }
#order_review table th,#order_review table td{ color:#fff; border-bottom:1px solid #333; }
#order_review a{ color:var(--flame); }

/* WooCommerce notices */
.wc-notices{ padding-top:20px; }
.wc-notices:empty{ display:none; }
.woocommerce-message,.woocommerce-info,.woocommerce-error{ list-style:none; margin:0 0 20px; padding:16px 20px; font-size:14px; border-left:4px solid var(--flame); background:var(--cream-2); color:var(--ink-text); display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.woocommerce-error{ border-left-color:#c0392b; background:#fbe6e2; color:#7a1f12; }
.woocommerce-message::before,.woocommerce-info::before{ position:static !important; margin:0 !important; color:var(--flame) !important; font-size:18px; flex:0 0 auto; }
.woocommerce-message .button{ margin-left:auto !important; float:none !important; flex:0 0 auto; }

/* =========================================================================
   ABOUT / CONTACT / 404
   ====================================================================== */
.about-page,.contact-page,.policy-page{ background:var(--cream-bg); color:var(--ink-text); padding:90px 0; }
.about-page h1,.contact-page h1,.policy-page h1{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(34px,5vw,48px); color:var(--flame); margin:0 0 10px; }
.about-content p{ font-size:17px; line-height:1.85; max-width:700px; margin:0 0 20px; color:#3a3733; }

.policy-updated{ color:var(--ink-soft); font-size:13px; margin:0 0 40px; text-transform:uppercase; letter-spacing:.06em; }
.policy-content{ max-width:760px; }
.policy-content h2{ font-family:var(--display); font-weight:700; font-size:20px; text-transform:uppercase; color:var(--ink-text); margin:38px 0 12px; }
.policy-content h2:first-child{ margin-top:0; }
.policy-content p{ font-size:16px; line-height:1.8; color:#3a3733; margin:0 0 14px; }
.policy-content ul,.policy-content ol{ margin:0 0 18px; padding-left:22px; color:#3a3733; font-size:16px; line-height:1.8; }
.policy-content li{ margin-bottom:8px; }
.policy-content a{ color:var(--flame); text-decoration:underline; }
.policy-content a:hover{ color:var(--ink-text); }
.contact-sub{ font-size:16px; color:#3a3733; margin:0 0 40px; }
.contact-details{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.contact-block{ background:var(--cream-2); padding:26px; border-left:3px solid var(--flame); }
.contact-block h3{ color:var(--flame); font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; margin:0 0 8px; }
.contact-block p{ color:#3a3733; font-size:15px; margin:0; word-break:break-word; }
.contact-block a:hover{ color:var(--flame); }
.contact-form-area{ margin-top:44px; max-width:600px; }
.error-page{ text-align:center; padding:110px 20px; }
.error-page h1{ font-family:var(--display); font-size:92px; margin:0 0 10px; color:var(--flame); }
.error-page p{ color:var(--ink-soft); margin-bottom:30px; }

/* =========================================================================
   FOOTER (stays dark)
   ====================================================================== */
.ft{ background:var(--ink); color:#fff; border-top:1px solid var(--line); padding:80px 0 34px; }
.ft-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--line); }
.ft h3{ font-family:var(--display); font-weight:700; font-size:30px; text-transform:uppercase; color:#fff; line-height:0; }
.ft h3 span{ color:var(--flame); }
.ft-logo img,.ft-logo .fulloat-logo-img{ height:34px; width:auto; display:block; }
.ft-brand p{ color:var(--ash); font-size:14px; margin-top:14px; max-width:260px; }
.ft h4{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--flame); margin-bottom:18px; }
.ft ul{ list-style:none; margin:0; padding:0; }
.ft ul li{ margin-bottom:11px; }
.ft ul li a{ color:#bbb7b1; font-size:14px; transition:color .2s; }
.ft ul li a:hover{ color:#fff; }
.ft-news p{ color:var(--ash); font-size:14px; margin-bottom:14px; }
.ft-news .box{ display:flex; border:1px solid var(--line); }
.ft-news input{ flex:1; background:transparent; border:none; padding:13px 15px; color:#fff; font-family:var(--body); font-size:14px; outline:none; min-width:0; }
.ft-news button{ background:var(--flame); border:none; color:#fff; padding:0 20px; font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.ft-bot{ padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.ft-bot p{ color:var(--ash); font-size:12.5px; margin:0; }

/* =========================================================================
   MOBILE
   ====================================================================== */
.nav-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:99; }
.nav-overlay[hidden]{ display:none; }

@media(max-width:1024px){
	.drop-grid .card{ grid-column:span 6; }
	.drop-grid .card.big{ grid-column:span 12; grid-row:auto; }
	.drop-grid .card.big .card-img{ min-height:auto; aspect-ratio:3/4; }
	.shop-grid,.products-grid,.related-band ul.products,.woocommerce .related ul.products{ grid-template-columns:repeat(3,1fr); }
	.ed-grid{ grid-template-columns:1fr; gap:40px; }
	.ed-visual{ aspect-ratio:16/10; }
	.vibes{ grid-template-columns:1fr; }
	.usp-grid{ grid-template-columns:1fr 1fr; }
	.usp-item:nth-child(2){ border-right:none; }
	.product-layout{ gap:40px; }
	.ft-grid{ grid-template-columns:1fr 1fr; }
}

@media(max-width:860px){
	/* Hamburger + centered logo */
	.nav-toggle{ display:flex; order:-1; }
	.hdr-in{ position:relative; }
	.logo{ position:absolute; left:50%; transform:translateX(-50%); margin:0; }
	.icons{ margin-left:auto; }
	.icons .icon-search{ display:none; }

	/* Drawer */
	.nav{ position:fixed; top:0; left:0; bottom:0; height:100%; width:86%; max-width:360px; margin:0; padding:80px 28px 40px; background:var(--ink); display:flex; flex-direction:column; gap:0; transform:translateX(-100%); transition:transform .3s ease; overflow-y:auto; z-index:100; -webkit-overflow-scrolling:touch; }
	.nav.is-open{ transform:translateX(0); }
	.nav-close{ display:block; position:absolute; top:18px; right:22px; width:40px; height:40px; background:none; border:none; font-size:34px; line-height:1; color:#fff; cursor:pointer; z-index:2; }
	.nav-close:hover{ color:var(--flame); }
	.nav .nav-list{ display:flex; flex-direction:column; gap:0; width:100%; }
	.nav .nav-list li{ border-bottom:1px solid var(--line); width:100%; }
	.nav .nav-list li a{ display:block; padding:16px 0; font-family:var(--display); font-weight:700; font-size:17px; letter-spacing:.02em; text-transform:uppercase; color:#fff; }
	.nav .nav-list li a:hover{ color:var(--flame); }
	.nav .sub-menu{ padding:0 0 8px 14px; }
	.nav .sub-menu li a{ font-size:14px; padding:11px 0; color:#bbb7b1; }

	.product-layout{ grid-template-columns:1fr; gap:24px; }
	.product-info{ position:static; }
	.product-image img,.product-image .woocommerce-product-gallery__image img{ width:100%; height:auto; object-fit:cover; }
	.product-title{ font-size:28px; }
	.woocommerce-tabs ul.tabs{ gap:20px; overflow-x:auto; flex-wrap:nowrap; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a{ white-space:nowrap; }
}

@media(max-width:640px){
	.wrap,.container{ padding:0 16px; }
	.announce{ font-size:10px; letter-spacing:.06em; padding:8px 10px; }
	.marquee-header{ padding:9px 0; }
	.marquee-track span{ font-size:13px; gap:28px; }
	.drop-grid .card{ grid-column:span 12; }
	.shop-grid,.products-grid,.related-band ul.products,.woocommerce .related ul.products{ grid-template-columns:repeat(2,1fr); gap:16px 14px; }
	.usp-grid{ grid-template-columns:1fr; }
	.usp-item{ border-right:none; border-bottom:1px solid var(--line-warm); }
	.ft-grid{ grid-template-columns:1fr; }
	.hero{ min-height:78vh; }
	.hero h1{ font-size:52px; }
	.sec{ padding-top:60px; padding-bottom:60px; }
	.editorial{ padding:68px 0; }
	.shop-toolbar{ flex-direction:column; align-items:stretch; }
	.shop-sort select{ width:100%; }
	.product-title{ font-size:24px; }
	.product-stats{ flex-direction:row; }
	.pstat b{ font-size:15px; }
	.pstat span{ font-size:10px; }
	.assurance-grid{ gap:12px 14px; }
	.assurance{ font-size:12px; gap:8px; }
	.assurance svg{ width:18px; height:18px; }
	.swatch{ min-width:48px; height:48px; font-size:14px; }
	.single_add_to_cart_button{ min-width:0; width:100%; }
	.prepaid-strip{ font-size:12px; gap:8px; padding:10px 12px; }
	.contact-details{ grid-template-columns:1fr; }
	.cart_totals{ margin-left:0; max-width:100%; }
	.woocommerce-message .button{ margin-left:0 !important; width:100%; text-align:center; }
}

@media(prefers-reduced-motion:reduce){
	.marquee-track{ animation:none; }
	*{ transition-duration:.01ms !important; }
}

/* =========================================================================
   v4.5 GALLERY WIDTH + REMOVE ZOOM ICON + HARD MOBILE NAV OVERRIDE
   ====================================================================== */

/* --- FIX: product gallery fills its column (WooCommerce shrinks it to ~48%) --- */
.woocommerce div.product .woocommerce-product-gallery,
.single-product .product-image .woocommerce-product-gallery{
	width:100% !important;
	float:none !important;
	margin:0 !important;
}
.woocommerce-product-gallery__wrapper{ width:100% !important; margin:0 !important; }
.woocommerce div.product div.images{ width:100% !important; float:none !important; margin:0 !important; }
.product-image img{ width:100% !important; }

/* --- REMOVE the zoom / magnifier trigger on the product image --- */
.woocommerce-product-gallery__trigger{ display:none !important; }

/* --- HARD MOBILE NAV OVERRIDE (max specificity, can't be beaten) --- */
@media (max-width: 860px){
	header.hdr nav#primary-nav.nav{
		position:fixed !important;
		top:0 !important;
		left:0 !important;
		right:auto !important;
		bottom:0 !important;
		height:100vh !important;
		width:86% !important;
		max-width:360px !important;
		margin:0 !important;
		padding:80px 28px 40px !important;
		background:#0e0e0e !important;
		display:flex !important;
		flex-direction:column !important;
		transform:translateX(-100%) !important;
		transition:transform .3s ease !important;
		overflow-y:auto !important;
		z-index:100 !important;
	}
	header.hdr nav#primary-nav.nav.is-open{
		transform:translateX(0) !important;
	}
	header.hdr nav#primary-nav .nav-list{
		flex-direction:column !important;
		width:100% !important;
		gap:0 !important;
	}
	header.hdr nav#primary-nav .nav-close{ display:block !important; }
}

/* =========================================================================
   v4.6 ADMIN-BAR SPACE FIX + NAV CLICKABILITY + TIGHTER BUY AREA
   ====================================================================== */

/* --- Blank space at top on mobile = WordPress admin bar (only shows when
   logged in). Neutralize the gap it leaves. Regular visitors never see it. --- */
@media(max-width:782px){
	html{ margin-top:0 !important; }
	#wpadminbar{ position:fixed !important; }
}
/* If admin bar pushes content, this removes the phantom gap for logged-in admins */
body.admin-bar .hdr{ top:0; }

/* --- NAV CLICKABILITY ---
   Ensure the drawer and its links sit above the overlay and receive taps. --- */
@media(max-width:860px){
	header.hdr nav#primary-nav.nav{ z-index:120 !important; pointer-events:auto !important; }
	header.hdr nav#primary-nav .nav-list,
	header.hdr nav#primary-nav .nav-list li,
	header.hdr nav#primary-nav .nav-list li a{
		pointer-events:auto !important;
		position:relative;
		z-index:1;
	}
	.nav-overlay{ z-index:110 !important; }
	/* overlay must sit BELOW the drawer so drawer links stay tappable */
	header.hdr nav#primary-nav.nav.is-open{ z-index:120 !important; }
}

/* --- TIGHTER BUY AREA (match reference: no big empty gaps) --- */
/* Remove the large default gap WooCommerce leaves between variations and cart */
.woocommerce div.product form.cart{ margin:0 0 14px !important; }
.woocommerce div.product form.cart .variations{ margin-bottom:16px !important; }
.woocommerce div.product form.cart .variations tr{ margin-bottom:10px !important; }

/* The empty gap under swatches was the hidden single-variation description /
   reset link taking space. Collapse it. */
.woocommerce div.product form.cart .single_variation_wrap{ margin-top:0 !important; }
.woocommerce-variation{ margin:0 !important; min-height:0 !important; }
.woocommerce-variation:empty{ display:none !important; }
.reset_variations{ margin:6px 0 0 !important; display:inline-block; }
.reset_variations:empty{ display:none !important; }

/* Quantity + Add to cart tighter */
.woocommerce div.product form.cart .quantity{ margin:0; }
.single_add_to_cart_button{ margin:0 !important; }
.buy-now-button{ margin-top:10px !important; }
.product-stats{ margin:18px 0 !important; }
.assurance-grid{ margin:18px 0 !important; }

/* Reduce the gap the price -> prepaid -> size stack creates */
.single-product .price,.product-info .price{ margin-bottom:16px !important; }
.prepaid-strip{ margin-bottom:18px !important; }

/* =========================================================================
   v4.7 REAL NAV-CLICK FIX + BLANK SPACE + EMPTY BOX
   ====================================================================== */

/* --- THE ACTUAL NAV BUG ---
   The drawer lives inside <header> (position:sticky; z-index:50). That header
   creates a stacking context, so the drawer's high z-index only applies
   INSIDE the header. The .nav-overlay is a SIBLING of the header at a higher
   root z-index, so it sat on top of the drawer and ate every tap.
   Fix: when the menu is open, lift the whole header above the overlay, and
   keep the overlay below the header. --- */
@media(max-width:860px){
	/* When nav is open, raise the header's stacking context above the overlay */
	body.nav-open .hdr{ z-index:130 !important; }

	/* Overlay sits BELOW the header/drawer, not above */
	.nav-overlay{ z-index:90 !important; }

	/* Drawer above everything, links fully tappable */
	header.hdr nav#primary-nav.nav{ z-index:140 !important; }
	header.hdr nav#primary-nav .nav-list li a{
		pointer-events:auto !important;
		display:block !important;
		position:relative;
		z-index:2;
	}
}

/* --- BLANK SPACE at very top ---
   This is the WordPress admin bar area (only for logged-in users) OR a gap
   above the sticky header. Force the body/header flush to the top. --- */
.hdr{ margin-top:0 !important; }
body:not(.admin-bar) .hdr{ top:0 !important; }
/* Remove any inherited top gap */
#main{ margin-top:0 !important; }
.announce + .hdr,.marquee-header{ margin-top:0 !important; }

/* --- EMPTY WHITE BOX beside product info (image 1) ---
   The product-layout is a 2-col grid; when the info column is short, the
   image column's leftover creates a big void. Align items to start and let
   the grid collapse naturally. Also the single_variation_wrap reserves an
   empty block — collapse it. --- */
.product-layout{ align-items:start !important; }
.single_variation_wrap{ min-height:0 !important; }
.single_variation{ margin:0 !important; }
.single_variation:empty{ display:none !important; }
/* WooCommerce sometimes injects an empty <div> after the form — hide empties */
.product-info > div:empty,
.summary > div:empty{ display:none !important; }

/* =========================================================================
   v4.8 DEFINITIVE NAV FIX + EMPTY GALLERY BOX + TOP GAP
   ====================================================================== */

/* --- THE REAL NAV BUG ---
   The drawer lives INSIDE header.hdr, which has position:sticky + z-index:50,
   creating a stacking context. That TRAPS the drawer below z-index 50 in the
   global stack — so the .nav-overlay (z-index 110, outside the header) always
   covers it and eats taps. Fix: raise the header's stacking context above the
   overlay WHEN the menu is open, so the drawer's links become tappable. --- */
@media(max-width:860px){
	/* When nav is open, lift the whole header context above the overlay */
	body.nav-open header.hdr{ z-index:130 !important; }

	/* Drawer above overlay within that lifted context */
	header.hdr nav#primary-nav.nav{ z-index:1 !important; }

	/* Overlay stays below the header context */
	.nav-overlay{ z-index:120 !important; }

	/* Guarantee links are tappable */
	header.hdr nav#primary-nav .nav-list li a{
		pointer-events:auto !important;
		position:relative; z-index:2;
		display:block;
	}
}

/* --- EMPTY WHITE BOX under the product image (desktop) ---
   WooCommerce's gallery reserves space for a second slide row / thumbnails
   even when there's one image. Collapse the empty wrapper. --- */
.woocommerce-product-gallery{ overflow:hidden; }
.woocommerce-product-gallery .flex-viewport{ height:auto !important; }
.woocommerce-product-gallery__wrapper{ height:auto !important; }
/* if there are no real thumbnails, hide the empty thumb strip */
.flex-control-thumbs:empty{ display:none !important; }
/* The stray empty box is the gallery reserving a fixed aspect area — let it
   size to the image only */
.product-image .woocommerce-product-gallery,
.product-image .woocommerce-product-gallery__wrapper,
.product-image .flex-viewport{ min-height:0 !important; }

/* --- TOP GAP (logged-in admin bar) — belt & suspenders --- */
html{ margin-top:0 !important; }
@media screen and (max-width:782px){
	html{ margin-top:0 !important; }
	* html body{ margin-top:0 !important; }
}

/* =========================================================================
   v4.9 WHITE-SPACE KILL + NO LIGHTBOX + PRODUCT LAYOUT LIKE REFERENCE
   ====================================================================== */

/* --- WHITE SPACE: the empty WooCommerce notices wrapper. Kill any padding
   when there's no visible notice text. --- */
.wc-notices{ padding:0 !important; }
.wc-notices:empty{ display:none !important; }
.woocommerce-notices-wrapper:empty{ display:none !important; margin:0 !important; padding:0 !important; }
.wc-notices .woocommerce-notices-wrapper:empty{ display:none !important; }
/* Give the wrapper top padding ONLY when it actually contains a notice */
.wc-notices:has(.woocommerce-message),
.wc-notices:has(.woocommerce-info),
.wc-notices:has(.woocommerce-error){ padding-top:20px !important; }

/* --- NO IMAGE LIGHTBOX: block the click-to-open behaviour entirely --- */
.woocommerce-product-gallery__image a{ pointer-events:none !important; cursor:default !important; }
.woocommerce-product-gallery__trigger{ display:none !important; }
.pswp{ display:none !important; }  /* PhotoSwipe lightbox container */

/* =========================================================================
   PRODUCT LAYOUT — match the reference (image 5): tight, aligned, no gaps
   ====================================================================== */

/* Remove the large empty gap that appeared between size swatches and quantity.
   It was WooCommerce's hidden single-variation slot reserving space. */
.woocommerce div.product .single_variation_wrap{ margin:0 !important; }
.woocommerce div.product .woocommerce-variation{ display:none !important; }
.woocommerce div.product .woocommerce-variation.woocommerce-variation-price,
.woocommerce div.product .woocommerce-variation.woocommerce-variation-availability{ display:block !important; margin:0 0 12px !important; }
.woocommerce-variation:empty{ display:none !important; }

/* Tighten the whole buy stack spacing */
.product-info > *{ margin-bottom:0; }
.product-eyebrow{ margin-bottom:12px; }
.product-title{ margin:0 0 14px; }
.single-product .price,.product-info .price{ margin:0 0 16px !important; }
.prepaid-strip{ margin:0 0 18px !important; }
.woocommerce div.product form.cart{ margin:0 0 16px !important; }
.woocommerce div.product form.cart .variations{ margin:0 0 16px !important; }
.woocommerce div.product form.cart .variations tr{ margin-bottom:0 !important; }

/* Quantity + Add to Cart on ONE ROW (like reference) */
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce-variation-add-to-cart{
	display:flex !important; gap:12px !important; align-items:stretch !important; flex-wrap:nowrap !important;
}
.woocommerce .quantity{ flex:0 0 auto; margin:0 !important; }
.woocommerce .quantity .qty,.quantity input.qty{ width:70px; min-height:54px; }
.single_add_to_cart_button{ flex:1 1 auto !important; margin:0 !important; min-width:0 !important; }

/* Buy It Now directly under, tight */
.buy-now-button{ margin-top:12px !important; }

/* Stats + assurances tighter */
.product-stats{ margin:20px 0 0 !important; }
.assurance-grid{ margin:20px 0 !important; }
.product_meta{ margin-top:16px !important; }

/* Kill the empty gallery box under the image once and for all */
.woocommerce div.product div.images .woocommerce-product-gallery{ margin-bottom:0 !important; }
.flex-control-nav.flex-control-thumbs:empty,
.flex-control-thumbs:empty{ display:none !important; margin:0 !important; }
.woocommerce-product-gallery{ margin:0 !important; }

/* =========================================================================
   NAV OVERLAY — ensure it never shows as a visible strip when closed
   ====================================================================== */
.nav-overlay[hidden]{ display:none !important; }
.nav-overlay{ pointer-events:auto; }

/* =========================================================================
   v5.0 CART BUBBLE (hide when empty) + WIDER INFO COLUMN + WHITE SPACE
   ====================================================================== */

/* --- Cart bubble: hide entirely when empty (no "0", no stale number) --- */
.cart-dot .cart-count.is-empty,
.cart-dot .cart-count:empty{ display:none !important; }

/* --- WIDER buy/info column so the title doesn't wrap to 4 lines --- */
.product-layout{
	grid-template-columns:1fr 1.15fr !important;  /* info column wider than image */
	gap:48px !important;
	align-items:start !important;
}
/* Cap the image so it doesn't get too tall, give info room */
.product-image{ max-width:560px; }
.product-info{ max-width:none; }
.product-title{ font-size:clamp(30px,3.4vw,46px) !important; line-height:1 !important; }

@media(max-width:1024px){
	.product-layout{ grid-template-columns:1fr 1.05fr !important; gap:36px !important; }
}
@media(max-width:860px){
	.product-layout{ grid-template-columns:1fr !important; gap:24px !important; }
	.product-image{ max-width:100%; }
}

/* --- WHITE SPACE above header: nuke any top gap from empty notice wrapper --- */
.wc-notices,
.wc-notices .woocommerce-notices-wrapper,
.woocommerce-notices-wrapper{ margin:0 !important; padding:0 !important; }
.wc-notices:empty,
.woocommerce-notices-wrapper:empty{ display:none !important; }
body > .wc-notices:first-child:empty{ display:none !important; }
/* Absolute top reset */
body{ margin:0 !important; padding:0 !important; }
.announce:first-child,.hdr:first-child{ margin-top:0 !important; }

/* =========================================================================
   v5.0b DEFINITIVE TOP-GAP KILL
   Collapse ANY empty element that renders before the header/announce,
   regardless of source (wp_body_open hooks, empty notice wrappers, etc.).
   ====================================================================== */
body > *:empty:not(.nav-overlay):not(script):not(style){ display:none !important; }
body > .skip-link{ position:absolute !important; left:-9999px !important; height:0 !important; }
/* Ensure the first VISIBLE element (announce or header) touches the top */
.announce{ margin-top:0 !important; }
.hdr{ margin-top:0 !important; }
/* Remove any inherited gap on main */
#main{ margin-top:0 !important; padding-top:0 !important; }
/* WooCommerce sometimes injects an empty wrapper right after body — kill it */
body > .woocommerce-notices-wrapper{ display:none !important; }

/* =========================================================================
   v5.1 HOMEPAGE REDESIGN — compact hero + stats + reviews + whatsapp
   ====================================================================== */

/* --- COMPACT HERO (~half screen instead of full) --- */
.hero-compact{ min-height:52vh; }
.hero-compact .hero-in{ padding-bottom:48px; padding-top:48px; }
.hero-compact h1{ font-size:clamp(48px,8vw,110px); line-height:.92; margin-bottom:16px; }
.hero-compact h1 em{ font-style:italic; color:var(--flame); }
.hero-compact .hero-sub{ max-width:440px; margin-bottom:26px; font-size:16px; }
.hero-btns{ display:flex; gap:14px; flex-wrap:wrap; }
.btn-ghost{
	display:inline-flex; align-items:center; gap:10px;
	background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.5);
	font-family:var(--display); font-weight:700; font-size:14px; letter-spacing:.06em;
	text-transform:uppercase; padding:15px 30px; transition:background .2s,color .2s,border-color .2s;
}
.btn-ghost:hover{ background:#fff; color:var(--ink); border-color:#fff; }

@media(max-width:640px){
	.hero-compact{ min-height:auto; }
	.hero-compact .hero-in{ padding:40px 0; }
	.hero-compact h1{ font-size:44px; }
	.hero-btns{ flex-direction:column; }
	.hero-btns .btn,.hero-btns .btn-ghost{ width:100%; justify-content:center; }
}

/* Tighten section padding site-wide so page isn't so tall */
.sec{ padding-top:70px; padding-bottom:70px; }
.editorial{ padding:80px 0; }

/* --- STATS BAND --- */
.stats-band{ background:var(--ink); color:#fff; padding:56px 0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; }
.stats-band .stat b{ display:block; font-family:var(--display); font-weight:700; font-size:44px; line-height:1; color:#fff; }
.stats-band .stat span{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ash); margin-top:8px; display:block; }
@media(max-width:640px){
	.stats-grid{ grid-template-columns:1fr 1fr; gap:32px 20px; }
	.stats-band .stat b{ font-size:36px; }
}

/* --- REVIEWS --- */
.reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.review{ background:var(--cream-2); border:1px solid var(--line-warm); padding:28px; }
.review-stars{ color:var(--flame); font-size:16px; letter-spacing:2px; margin-bottom:14px; }
.review p{ font-size:15px; line-height:1.7; color:#3a3733; margin:0 0 18px; }
.review-by{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
@media(max-width:860px){ .reviews-grid{ grid-template-columns:1fr; } }

/* --- CART DRAWER --- */
.cart-drawer-overlay{
	position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:998;
	opacity:0; transition:opacity .3s;
}
.cart-drawer-overlay.is-open{ opacity:1; }
.cart-drawer{
	position:fixed; top:0; right:0; bottom:0; width:420px; max-width:92vw;
	background:#fff; z-index:999; display:flex; flex-direction:column;
	transform:translateX(100%); transition:transform .3s ease; box-shadow:-8px 0 30px rgba(0,0,0,.15);
}
.cart-drawer.is-open{ transform:translateX(0); }
.cart-drawer-head{
	display:flex; align-items:center; justify-content:space-between;
	padding:20px 24px; border-bottom:1px solid #ece8e2; flex:0 0 auto;
}
.cart-drawer-head h2{
	font-family:var(--display); font-weight:800; font-size:20px; text-transform:uppercase; margin:0;
	display:flex; align-items:center; gap:10px;
}
.cart-drawer-count{
	background:var(--flame); color:#fff; font-size:12px; font-weight:700;
	border-radius:99px; min-width:22px; height:22px; display:inline-flex;
	align-items:center; justify-content:center; padding:0 6px;
}
.cart-drawer-close{
	background:none; border:none; font-size:26px; line-height:1; cursor:pointer; color:var(--ink);
	width:32px; height:32px; display:flex; align-items:center; justify-content:center;
}
.cart-drawer-body{ flex:1 1 auto; overflow-y:auto; padding:20px 24px; }

.cart-drawer-item{
	display:flex; gap:12px; padding:16px 0; border-bottom:1px solid #f1ede7;
	transition:opacity .2s;
}
.cart-drawer-item.is-updating{ opacity:.4; pointer-events:none; }
.cd-item-img img{ width:64px; height:80px; object-fit:cover; display:block; background:#f4f1ec; }
.cd-item-meta{ flex:1 1 auto; min-width:0; }
.cd-item-name{
	font-size:14px; font-weight:700; color:var(--ink); text-decoration:none;
	display:block; margin-bottom:4px;
}
.cd-item-variant{ font-size:12px; color:var(--ink-soft); margin-bottom:10px; }
.cd-item-qty{ display:inline-flex; align-items:center; gap:10px; border:1px solid #e3ded5; padding:4px 10px; }
.cd-qty-btn{ background:none; border:none; font-size:16px; cursor:pointer; color:var(--ink); width:18px; }
.cd-qty-val{ font-size:13px; font-weight:700; min-width:14px; text-align:center; }
.cd-item-right{ display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; }
.cd-item-price{ font-size:14px; font-weight:700; color:var(--ink); white-space:nowrap; }
.cd-item-remove{ background:none; border:none; cursor:pointer; color:var(--ink-soft); padding:4px; }
.cd-item-remove:hover{ color:var(--flame); }

.cart-drawer-coupon{ margin-top:14px; }
.cd-coupon-toggle{
	background:none; border:none; cursor:pointer; font-size:13px; font-weight:700;
	text-transform:uppercase; letter-spacing:.04em; color:var(--ink); padding:12px 0;
	display:flex; align-items:center; justify-content:space-between; width:100%;
	border-top:1px solid #f1ede7;
}
.cd-coupon-form{ display:flex; gap:8px; margin-bottom:12px; }
.cd-coupon-input{
	flex:1 1 auto; border:1px solid #e3ded5; padding:10px 12px; font-size:13px; font-family:var(--body);
}
.cd-coupon-apply{ flex:0 0 auto; padding:10px 16px !important; font-size:12px !important; }
.cd-coupon-applied{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.cd-coupon-chip{
	display:inline-flex; align-items:center; gap:6px; background:#f4f1ec; padding:6px 10px;
	font-size:12px; font-weight:700; letter-spacing:.04em;
}
.cd-coupon-remove{ background:none; border:none; cursor:pointer; font-size:15px; line-height:1; color:var(--ink-soft); }

.cart-drawer-total{
	display:flex; align-items:center; justify-content:space-between; padding-top:16px;
	border-top:1px solid #ece8e2; font-size:15px; font-weight:700;
}
.cart-drawer-note{ font-size:12px; color:var(--ink-soft); margin:8px 0 18px; }
.cart-drawer-checkout{ width:100%; text-align:center; display:block; }

.cart-drawer-empty{
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	text-align:center; height:100%; gap:16px; padding:40px 10px;
}
.cart-drawer-empty h3{
	font-family:var(--display); font-weight:800; font-size:20px; text-transform:uppercase; margin:0;
}
.cart-drawer-empty p{ font-size:14px; color:var(--ink-soft); margin:0; }
.cart-drawer-empty p a{ color:var(--flame); font-weight:700; text-decoration:underline; }
.cart-drawer-continue{ padding:14px 28px !important; }

@media(max-width:480px){ .cart-drawer{ width:100%; max-width:100%; } }

/* --- PROMO BANNER (Customizer → Homepage Promo Banner) --- */
.promo-banner{
	background:var(--ink); background-size:cover; background-position:center; position:relative;
	padding:80px 0; margin:0;
}
.promo-banner::before{
	content:""; position:absolute; inset:0; background:rgba(0,0,0,.38);
}
.promo-banner-inner{
	position:relative; z-index:1; text-align:center; max-width:640px; margin:0 auto;
	display:flex; flex-direction:column; align-items:center; gap:14px;
}
.promo-banner-inner h2{
	font-family:var(--display); font-weight:700; font-size:clamp(28px,4.5vw,48px);
	text-transform:uppercase; color:#fff; margin:0; line-height:1.05;
}
.promo-banner-inner p{ color:var(--ash); font-size:16px; margin:0; }
.promo-banner-inner .btn{ margin-top:8px; }
@media(max-width:640px){ .promo-banner{ padding:56px 0; } }

/* --- WHATSAPP CTA --- */
.whatsapp-cta{ background:var(--ink); color:#fff; padding:64px 0; }
.whatsapp-inner{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.whatsapp-inner h2{ font-family:var(--display); font-weight:700; font-size:clamp(26px,3.5vw,40px); text-transform:uppercase; color:#fff; margin:0 0 10px; line-height:1; }
.whatsapp-inner p{ color:var(--ash); font-size:15px; margin:0; max-width:460px; }
.whatsapp-btn{ background:#25D366 !important; flex:0 0 auto; }
.whatsapp-btn:hover{ background:#fff !important; color:var(--ink) !important; }
@media(max-width:640px){
	.whatsapp-inner{ flex-direction:column; align-items:flex-start; }
	.whatsapp-btn{ width:100%; justify-content:center; }
}

/* =========================================================================
   v5.2 MOBILE HOMEPAGE — compact 2-column product grid (like reference)
   ====================================================================== */
@media(max-width:640px){
	/* New Arrivals: 2 across, no giant "big" card on mobile */
	.drop-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px 12px !important; }
	.drop-grid .card,
	.drop-grid .card.big{ grid-column:auto !important; grid-row:auto !important; }
	.drop-grid .card.big .card-img,
	.drop-grid .card .card-img{ aspect-ratio:3/4 !important; min-height:0 !important; height:auto !important; }
	.drop-grid .card.big .card-meta h3,
	.drop-grid .card .card-meta h3{ font-size:13px !important; }
	.card-price{ font-size:13px !important; }
	.card-tag{ font-size:9px !important; padding:4px 8px !important; }

	/* Section headings smaller on mobile */
	.sec-head h2{ font-size:30px !important; }
	.sec{ padding-top:44px !important; padding-bottom:44px !important; }

	/* Shop by Vibe: keep single but shorter */
	.vibe{ aspect-ratio:16/10 !important; }

	/* Editorial band tighter */
	.editorial{ padding:52px 0 !important; }
	.ed-grid h2{ font-size:28px !important; }

	/* Reviews single column tighter */
	.review{ padding:22px !important; }
}

/* Also tablet: 2-3 across instead of the big-card layout */
@media(max-width:860px) and (min-width:641px){
	.drop-grid{ grid-template-columns:repeat(3,1fr) !important; gap:18px !important; }
	.drop-grid .card,
	.drop-grid .card.big{ grid-column:auto !important; grid-row:auto !important; }
	.drop-grid .card.big .card-img{ aspect-ratio:3/4 !important; min-height:0 !important; }
}

/* =========================================================================
   v5.3 FLOATING WHATSAPP CHAT BUTTON
   ====================================================================== */
.wa-float{
	position:fixed;
	right:20px; bottom:20px;
	z-index:300;
	width:56px; height:56px;
	background:#25D366; color:#fff;
	border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	box-shadow:0 6px 20px rgba(0,0,0,.25);
	transition:transform .2s, box-shadow .2s;
}
.wa-float:hover{ transform:scale(1.08); box-shadow:0 8px 26px rgba(0,0,0,.32); color:#fff; }
.wa-float svg{ display:block; }
/* gentle pulse ring to draw attention */
.wa-float::before{
	content:""; position:absolute; inset:0; border-radius:50%;
	background:#25D366; opacity:.5; z-index:-1;
	animation:wa-pulse 2.2s ease-out infinite;
}
@keyframes wa-pulse{
	0%{ transform:scale(1); opacity:.5; }
	70%{ transform:scale(1.6); opacity:0; }
	100%{ opacity:0; }
}
@media(max-width:640px){
	.wa-float{ width:52px; height:52px; right:16px; bottom:16px; }
	.wa-float svg{ width:26px; height:26px; }
}
@media(prefers-reduced-motion:reduce){
	.wa-float::before{ animation:none; }
}

/* =========================================================================
   v5.4 SPLIT HERO (match Shopify site: text left, product card right)
   ====================================================================== */
.hero-split{ background:var(--cream-bg); padding:70px 0; overflow:hidden; }
.hero-split-inner{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }

/* Left text */
.hero-split-text{ max-width:520px; }
.hero-est{
	display:inline-block; border:1.5px solid #d8b24a; color:#8a6d1f;
	font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.14em;
	text-transform:uppercase; padding:7px 14px; margin-bottom:28px;
}
.hero-split-text h1{
	font-family:var(--display); font-weight:700; text-transform:uppercase;
	font-size:clamp(40px,5.4vw,76px); line-height:.94; letter-spacing:-.03em;
	color:var(--ink-text); margin:0 0 24px;
}
.hero-split-text .hero-sub{
	font-size:18px; color:var(--ink-soft); line-height:1.6; margin:0 0 32px; max-width:400px;
}
.hero-split-text .hero-btns{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-split-text .btn{ background:var(--flame); color:#fff; }
.hero-split-text .btn:hover{ background:var(--ink-text); }
.hero-split-text .btn-ghost{
	background:transparent; color:var(--ink-text); border:1.5px solid var(--ink-text);
}
.hero-split-text .btn-ghost:hover{ background:var(--ink-text); color:#fff; }

/* Right media card */
.hero-split-media{ position:relative; }
.hero-media-frame{ position:relative; overflow:hidden; background:var(--cream-2); }
.hero-media-frame img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; display:block; }
.hero-price-tag{
	position:absolute; left:16px; bottom:16px;
	background:var(--ink-text); color:#fff;
	font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:.04em;
	padding:9px 16px;
}
.hero-price-tag::first-letter{ color:var(--flame); }
.hero-approved{
	position:absolute; top:-24px; right:-24px; z-index:3;
	width:118px; height:118px; border-radius:50%;
	background:var(--ink); color:#e8c14a; border:3px solid #e8c14a;
	display:flex; align-items:center; justify-content:center; text-align:center;
	font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.06em;
	text-transform:uppercase; line-height:1.3;
	transform:rotate(-8deg);
}

@media(max-width:860px){
	.hero-split{ padding:44px 0; }
	.hero-split-inner{ grid-template-columns:1fr; gap:32px; }
	.hero-split-text{ max-width:100%; }
	.hero-split-text h1{ font-size:clamp(38px,10vw,60px); }
	.hero-approved{ width:96px; height:96px; font-size:10px; top:-16px; right:-8px; }
}
@media(max-width:640px){
	.hero-split{ padding:32px 0; }
	.hero-split-text h1{ font-size:40px; }
	.hero-split-text .hero-sub{ font-size:16px; }
	.hero-split-text .hero-btns{ flex-wrap:wrap; }
	.hero-split-text .btn,.hero-split-text .btn-ghost{ flex:1; justify-content:center; text-align:center; }
	.hero-approved{ width:84px; height:84px; font-size:9px; }
}
