/* ==========================================================
   MistyHaze: WordPress + WooCommerce layer (loads after style.css)
   ========================================================== */
.skip-link{ position:absolute; left:-999px; top:8px; background:var(--gold); color:var(--ink); padding:8px 14px; z-index:300; }
.skip-link:focus{ left:8px; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
a{ text-decoration-color:var(--gold-dim); }

/* age gate: hidden unless the <head> script finds no cookie (so crawlers always see the page) */
#ageGate{ display:none; }
html.age-needed #ageGate{ display:flex; }
html.age-needed body{ overflow:hidden; }
a.btn{ text-decoration:none; }
.btn-xl{ font-size:1.05rem; padding:1.15em 3em; letter-spacing:.1em; box-shadow:0 14px 40px -12px rgba(201,162,75,.6); }

/* hero: one big action + two range cards */
.hero-copy h1{ font-size:clamp(2.3rem,5vw,4rem); }
.hero-pick{ display:flex; flex-direction:column; gap:16px; }
.pick-label{ font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--parchment-dim); }
.pick-card{
  display:flex; align-items:center; gap:20px; padding:14px 22px 14px 14px; text-decoration:none;
  border:1px solid var(--hairline); border-radius:var(--radius-m);
  background:rgba(23,20,15,.82); backdrop-filter:blur(6px);
  transition:border-color .3s, transform .3s;
}
.pick-card:hover{ border-color:var(--gold); transform:translateY(-3px); }
.pick-card img{ width:116px; height:116px; object-fit:cover; border-radius:var(--radius-s); flex-shrink:0; }
.pick-body{ display:flex; flex-direction:column; gap:4px; }
.pick-body strong{ font-family:var(--font-display); font-size:1.3rem; font-weight:600; letter-spacing:.03em; }
.pick-go{ color:var(--gold-bright); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }

.more{ text-align:center; margin-top:34px; }
.contact-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.line-card{ display:block; text-decoration:none; }
.line-card p{ min-height:3.2em; }

/* stockist list (crawlable text version of the map) */
.stock-list{ max-width:640px; margin:30px auto 0; color:var(--parchment-dim); font-size:.88rem; }
.stock-list summary{ cursor:pointer; color:var(--gold-bright); text-align:center; padding:8px; }
.stock-list h3{ font-size:.95rem; margin:22px 0 8px; color:var(--parchment); }
.stock-list ul{ margin:0; padding-left:18px; }

/* FAQ with native <details> */
.faq-q{ list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; font-weight:500; font-size:1rem; color:var(--parchment); }
.faq-q::-webkit-details-marker{ display:none; }
.faq-q .plus{ font-family:var(--font-display); font-size:1.2rem; color:var(--gold); transition:transform .3s; flex-shrink:0; }
details[open] > .faq-q .plus{ transform:rotate(45deg); }
.faq-item{ border-bottom:1px solid var(--hairline); }
.faq-a p{ padding-bottom:22px; color:var(--parchment-dim); max-width:64ch; font-size:.92rem; }

/* retailer contact block */
.altar{
  border:1px solid var(--gold-dim); border-radius:var(--radius-m); padding:56px 40px; text-align:center;
  background:radial-gradient(60% 90% at 50% 0%, rgba(201,162,75,.12), transparent 70%), linear-gradient(180deg, var(--panel), var(--ink-2));
}
.altar h2{ font-size:clamp(1.8rem,3.6vw,2.5rem); margin-top:10px; }
.altar .lede{ margin:16px auto 30px; }

/* footer extras */
.foot-bottom{ border-top:1px solid var(--hairline); padding-top:24px; display:flex; flex-direction:column; gap:10px; }
.foot-warning{ font-size:.78rem; font-weight:600; color:var(--gold-bright); letter-spacing:.03em; }
.foot-legal a{ color:var(--parchment-dim); }

/* nicotine warning box */
.mh-warning{ border:1px solid var(--gold-dim); border-radius:var(--radius-s); padding:10px 14px; font-size:.78rem; color:var(--gold-bright); background:rgba(201,162,75,.06); margin:14px 0; }

/* sticky checkout bar */
.checkout-bar{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:90;
  background:var(--gold); color:var(--ink); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.85rem;
  padding:15px 30px; border-radius:40px; text-decoration:none; box-shadow:0 14px 40px -8px rgba(0,0,0,.8); white-space:nowrap;
}
.checkout-bar:hover{ background:var(--gold-bright); }

/* generic pages */
.page-wrap{ padding-block:56px 90px; max-width:820px; }
.page-wrap h1{ font-size:clamp(2rem,4vw,2.8rem); margin-bottom:24px; }
.entry h2{ font-size:1.25rem; margin:30px 0 10px; }
.entry p, .entry li{ color:var(--parchment-dim); }

/* ---------- shop archive ---------- */
.shop-wrap{ padding-block:40px 110px; }
.shop-wrap .woocommerce-products-header__title, .shop-wrap h1.page-title{ font-size:clamp(2rem,4vw,3rem); margin-bottom:10px; }
.term-description, .woocommerce-products-header p{ color:var(--parchment-dim); max-width:70ch; margin-bottom:6px; }
.range-tabs{ display:flex; gap:10px; flex-wrap:wrap; padding-block:22px; }
.range-tab{
  padding:11px 22px; border:1px solid var(--hairline); border-radius:40px; background:var(--panel);
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:var(--parchment-dim); text-decoration:none;
}
.range-tab:hover, .range-tab.active{ border-color:var(--gold); color:var(--gold-bright); background:var(--panel-2); }

ul.products{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:22px; }
ul.products::before, ul.products::after{ display:none; }
.mh-card{
  position:relative; border:1px solid var(--hairline); border-radius:var(--radius-m); background:var(--panel);
  display:flex; flex-direction:column; overflow:hidden; transition:border-color .3s, transform .3s; margin:0; width:auto; float:none;
}
.mh-card:hover{ border-color:var(--gold-dim); transform:translateY(-4px); }
.mh-card-media{ display:block; background:#000; aspect-ratio:1/1; overflow:hidden; }
.mh-card-media img{ width:100%; height:100%; object-fit:contain; transition:transform .5s ease; }
.mh-card:hover .mh-card-media img{ transform:scale(1.05); }
.card-badge{ position:absolute; top:12px; left:12px; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; background:var(--gold); color:var(--ink); padding:4px 9px; border-radius:2px; font-weight:700; }
.mh-card-body{ padding:16px 18px 8px; display:flex; flex-direction:column; gap:8px; flex:1; }
.card-line{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dim); }
.mh-card h3{ font-size:1.1rem; }
.mh-card h3 a{ text-decoration:none; }
.note-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.chip{ font-size:.66rem; letter-spacing:.04em; padding:3px 8px; border:1px solid var(--hairline); border-radius:20px; color:var(--parchment-dim); }
.price{ font-family:var(--font-display); font-size:1.1rem; color:var(--gold-bright); margin-top:auto; padding-top:4px; }
.price .woocommerce-Price-amount{ color:inherit; }
.mh-buy{ padding:6px 18px 18px; display:flex; flex-direction:column; gap:12px; }
fieldset.strength-row{ border:0; padding:0; margin:0; display:flex; gap:6px; flex-wrap:wrap; }
fieldset.strength-row legend{ font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--parchment-dim); padding:0; margin-bottom:8px; }
.strength-pill{ position:relative; cursor:pointer; }
.strength-pill input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.strength-pill span{ display:inline-block; font-size:.8rem; padding:9px 14px; border:1px solid var(--hairline); border-radius:20px; color:var(--parchment-dim); min-width:52px; text-align:center; transition:border-color .2s, background .2s; }
.strength-pill:hover span{ border-color:var(--gold-dim); }
.strength-pill input:checked + span{ border-color:var(--gold); background:rgba(201,162,75,.14); color:var(--gold-bright); }
.strength-pill input:focus-visible + span{ outline:2px solid var(--gold-bright); outline-offset:2px; }
.mh-card > .btn{ margin:0 18px 18px; width:auto; }

/* ---------- WooCommerce chrome ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  list-style:none; margin:0 0 22px; padding:14px 18px; border:1px solid var(--gold-dim); border-radius:var(--radius-s);
  background:var(--panel); color:var(--parchment); display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap;
}
.woocommerce-error{ border-color:var(--ember-bright); display:block; }
.woocommerce-message .button, .woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit, .woocommerce .button.alt{
  display:inline-flex; align-items:center; justify-content:center; background:var(--gold); color:var(--ink); border:1px solid var(--gold);
  padding:.9em 1.7em; border-radius:var(--radius-s); font-weight:600; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; cursor:pointer;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button.alt:hover{ background:var(--gold-bright); color:var(--ink); }
.woocommerce form .form-row label, .woocommerce-checkout label{ color:var(--parchment-dim); font-size:.84rem; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select, .select2-container--default .select2-selection--single{
  background:var(--ink-2); border:1px solid var(--hairline); color:var(--parchment); padding:.85em 1em; border-radius:var(--radius-s); font-family:var(--font-body); font-size:.95rem; width:100%;
}
.select2-container--default .select2-selection--single{ height:auto; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ color:var(--parchment); padding:0; line-height:1.4; }
.select2-dropdown{ background:var(--ink-2); color:var(--parchment); border-color:var(--hairline); }
.woocommerce input.input-text:focus, .woocommerce select:focus{ border-color:var(--gold); outline:none; }
.woocommerce table.shop_table{ width:100%; border:1px solid var(--hairline); border-collapse:collapse; background:var(--panel); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td{ padding:14px 16px; border-bottom:1px solid var(--hairline); text-align:left; vertical-align:middle; }
.woocommerce table.shop_table img{ width:64px; }
.woocommerce table.cart .product-quantity input{ width:70px; }
.woocommerce #payment{ background:var(--panel); border:1px solid var(--hairline); border-radius:var(--radius-m); padding:18px; }
.woocommerce #payment ul.payment_methods{ list-style:none; padding:0; margin:0 0 16px; }
.woocommerce #payment div.payment_box{ background:var(--panel-2); padding:14px; margin-top:10px; border-radius:var(--radius-s); color:var(--parchment-dim); }
.woocommerce #place_order{ width:100%; font-size:1rem; padding:1.2em; }
.woocommerce-checkout h3{ font-size:1.2rem; margin:0 0 16px; }
.woocommerce-checkout #customer_details{ margin-bottom:30px; }
.woocommerce form .form-row{ margin-bottom:14px; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{ width:100%; float:none; }
.woocommerce a{ color:var(--gold-bright); }
.woocommerce a.button, .woocommerce a.button:hover{ color:var(--ink); }
.woocommerce-breadcrumb{ display:none; }

/* single product */
.single-product div.product{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.single-product div.product .woocommerce-product-gallery{ width:100%; float:none; }
.single-product div.product .woocommerce-product-gallery img{ width:100%; border-radius:var(--radius-m); }
.single-product div.product .summary{ width:100%; float:none; display:flex; flex-direction:column; gap:14px; }
.single-product .product_title{ font-size:clamp(1.8rem,3.4vw,2.6rem); }
.single-product .summary .price{ font-size:1.5rem; margin:0; }
.single-product .woocommerce-product-details__short-description{ font-family:var(--font-accent); font-style:italic; font-size:1.2rem; color:var(--parchment-dim); }
.single-product table.variations td, .single-product table.variations th{ display:block; padding:0 0 8px; text-align:left; border:0; }
.single-product table.variations select{ max-width:260px; }
.single-product .quantity input{ width:80px; }
.single-product .single_add_to_cart_button{ margin-top:6px; }
.single-product .product_meta{ font-size:.8rem; color:var(--parchment-dim); }
.single-product .woocommerce-variation-price .price{ font-size:1.3rem; }
.reset_variations{ font-size:.75rem; margin-left:10px; }
.single-product .onsale{ display:none; }

/* mobile off-canvas nav */
.mobile-nav{ visibility:hidden; }
.mobile-nav.show{ visibility:visible; }
.mobile-nav a.navlink{ color:var(--parchment); font-family:var(--font-display); font-size:1.5rem; padding:16px 0; border-bottom:1px solid var(--hairline); text-decoration:none; }
.mobile-nav-close{ position:absolute; top:22px; right:24px; background:none; border:none; color:var(--parchment); font-size:1.8rem; cursor:pointer; }

/* ---------- responsive ---------- */
@media (max-width:960px){
  .hero-inner{ grid-template-columns:1fr; padding-block:40px 30px; min-height:auto; }
  .story{ grid-template-columns:1fr; gap:40px; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .lines-grid{ grid-template-columns:1fr; }
  .single-product div.product{ grid-template-columns:1fr; gap:26px; }
}
@media (max-width:720px){
  nav.links{ display:none; }
  .menu-toggle{ display:flex; }
  .hero-bg video{ display:none; }
  .hero-mobile-poster{ display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.35; }
  .section{ padding-block:64px; }
  .foot-grid{ grid-template-columns:1fr; gap:30px; }
  .btn-xl{ width:100%; padding-inline:1em; }
  .pick-card img{ width:88px; height:88px; }
  .altar{ padding:40px 22px; }
  ul.products{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .mh-card-body{ padding:12px 12px 6px; }
  .mh-buy{ padding:6px 12px 14px; }
  .mh-card > .btn{ margin:0 12px 14px; }
  .note-chips{ display:none; }
  .strength-pill span{ padding:8px 10px; min-width:44px; font-size:.75rem; }
}
@media (max-width:420px){ .nav-shop{ display:none; } }

/* logo has a built-in black background, so size by height */
.brand img{ height:50px; width:auto; }
.gate-mark{ width:150px; height:auto; margin-bottom:14px; }
.foot-brand img{ height:64px; width:auto; }

/* beat WooCommerce's own float/width grid */
.woocommerce ul.products, .woocommerce-page ul.products, ul.products[class*="columns-"]{
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)) !important; gap:22px !important; margin:0 !important; padding:0 !important;
}
.woocommerce ul.products li.product.mh-card, .woocommerce-page ul.products li.product.mh-card{
  width:auto !important; float:none !important; margin:0 !important; padding:0 !important; clear:none !important;
}
@media (max-width:720px){
  .woocommerce ul.products, .woocommerce-page ul.products, ul.products[class*="columns-"]{ grid-template-columns:repeat(2,1fr) !important; gap:12px !important; }
}
.woocommerce ul.products::before, .woocommerce ul.products::after, .woocommerce-page ul.products::before, .woocommerce-page ul.products::after{ display:none !important; content:none !important; }
.mh-card{ scroll-margin-top:96px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-page form .form-row input.input-text{ background:var(--ink-2) !important; color:var(--parchment) !important; border:1px solid var(--hairline) !important; }
.woocommerce form .form-row input.input-text:focus{ border-color:var(--gold) !important; }
.woocommerce form .form-row .required{ color:var(--ember-bright); }
.woocommerce-checkout #order_review_heading{ margin-top:10px; }

/* ---------- store-locator version ---------- */
.shop-wrap h1{ font-size:clamp(2rem,4vw,3rem); margin-bottom:10px; }
.strengths{ font-size:.78rem; letter-spacing:.06em; color:var(--parchment-dim); margin-top:auto; }
.mh-card > .btn{ margin-top:6px; }
.stock-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:28px 36px; margin-top:44px; }
.stock-prov h3{ font-size:1rem; color:var(--gold-bright); border-bottom:1px solid var(--hairline); padding-bottom:8px; margin-bottom:12px; }
.stock-prov ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.stock-prov li{ display:flex; flex-direction:column; gap:2px; font-size:.86rem; }
.stock-prov li span{ color:var(--parchment-dim); }
.stock-prov li a{ color:var(--gold); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; }
.flavour{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.flavour-media{ background:#000; border-radius:var(--radius-m); aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.flavour-media img{ width:100%; height:100%; object-fit:contain; }
.flavour-info{ display:flex; flex-direction:column; gap:16px; }
.flavour-info h1{ margin:0; }
.flavour-taste{ font-family:var(--font-accent); font-style:italic; font-size:1.25rem; color:var(--parchment-dim); }
.flavour-taste p{ margin:0; }
@media (max-width:960px){ .flavour{ grid-template-columns:1fr; gap:26px; } }

.crumbs{ font-size:.78rem; color:var(--parchment-dim); margin-bottom:22px; }
.crumbs a{ color:var(--gold); }
.h1-sub{ display:block; font-size:.4em; font-family:var(--font-body,inherit); letter-spacing:.14em; text-transform:uppercase; color:var(--parchment-dim); margin-top:6px; }
.buy-row{ display:flex; flex-wrap:wrap; gap:12px; margin:0; }
.more-flavours{ margin-top:10px; align-items:center; }
.more-flavours a.chip{ text-decoration:none; }
