/*
Theme Name: Lumière Haven Blocks
Theme URI: https://lumiere-haven-co.local/
Author: Lumière Haven & Co.
Author URI: https://lumiere-haven-co.local/
Description: Block (Full Site Editing) theme for Lumière Haven & Co. — a warm, romantic luxury storefront for handcrafted candles. Cormorant Garamond + Jost, amber/gold/sage palette, dark immersive hero and charcoal product world. Built to the Lumière Haven & Co Design System.
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lumiere-haven-blocks
*/

/* =========================================================================
   Lumière Haven & Co — storefront theme layer.
   Design tokens are mirrored from the Design System (tokens/*.css +
   website/theme.css). theme.json exposes a curated subset as WordPress
   presets; this file keeps the full token set so the component styles port
   faithfully, and bridges the prototype's classes onto block markup.
   ========================================================================= */

:root {
  /* Palette */
  --amber-900:#4A2E1C; --amber-800:#6E4429; --amber-700:#855438;
  --amber-600:#9C6644; --amber-500:#B07C56; --amber-400:#C49A78;
  --amber-300:#D9BCA0; --amber-200:#EAD7C5; --amber-100:#F4E8DC;
  --gold-700:#B08E63; --gold-600:#C49E72; --gold-500:#D4AF88;
  --gold-400:#DEC09E; --gold-300:#E8D3B9;
  --sage-600:#79896A; --sage-500:#8A9A7B; --sage-300:#BDC8B3; --sage-100:#ECEFE8;
  --burgundy-900:#3A141C; --burgundy-800:#4D1A26; --burgundy-700:#641F2F; --burgundy-600:#7C2A3C;
  --blush-400:#D9A8A2; --blush-300:#E7C9C4; --blush-200:#F1DEDA;
  --glow:#FFF8E7; --ivory:#F5F0E6; --beige:#EDE4D5; --linen:#E4D9C6;
  --stone-300:#CDBFA9; --stone-400:#B3A48C; --stone-500:#8C7E68;
  --charcoal-900:#211F1C; --charcoal-700:#2F2F2F; --charcoal-500:#4A4742; --charcoal-300:#6E6A62;

  /* Semantic */
  --page:var(--ivory);
  --card:#FBF7EF;
  --raised:var(--beige);
  --ink:var(--charcoal-900);
  --body:var(--charcoal-700);
  --muted:var(--stone-500);
  --on-dark:var(--ivory);
  --brand:var(--amber-600);
  --line:rgba(74,46,28,0.12);
  --line-soft:rgba(74,46,28,0.08);
  --line-strong:rgba(74,46,28,0.24);
  --on-dark-line:rgba(245,240,230,0.16);

  --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --radius-xl:24px; --radius-pill:999px;

  --shadow-sm:0 2px 8px rgba(74,46,28,0.07);
  --shadow-md:0 8px 24px rgba(74,46,28,0.10);
  --shadow-lg:0 18px 48px rgba(74,46,28,0.14);
  --shadow-glow:0 0 60px rgba(255,200,120,0.30);

  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --dur:280ms; --dur-slow:520ms;

  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Jost','Helvetica Neue',system-ui,sans-serif;

  --container:1240px;
  --gutter:clamp(1.25rem,4vw,4rem);
}

/* ---------- Base ---------- */
img { display:block; max-width:100%; }
::selection { background:var(--gold-300); color:var(--amber-900); }
*::-webkit-scrollbar { width:10px; height:10px; }
*::-webkit-scrollbar-thumb { background:var(--stone-300); border-radius:999px; }
*::-webkit-scrollbar-track { background:transparent; }

/* ---------- Typography utilities ---------- */
.display { font-family:var(--font-display); font-weight:500; line-height:1.04; letter-spacing:-0.01em; color:var(--ink); }
.display.italic { font-style:italic; }
.serif { font-family:var(--font-display); }
.eyebrow {
  font-family:var(--font-sans); font-weight:500; font-size:0.72rem;
  letter-spacing:0.24em; text-transform:uppercase; color:var(--brand);
  text-align:center;
}
.eyebrow.on-dark { color:var(--gold-500); }
.muted { color:var(--muted); }

.container { max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section { padding-block:clamp(3.5rem,8vw,7rem); }
.rule-gold { width:64px; height:1px; background:var(--gold-500); border:none; margin:0; }
.rule-gold.center { margin-inline:auto; }

/* ---------- Section heads ---------- */
.sec-head { text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; margin-bottom:clamp(2.2rem,4vw,3.4rem); }
.sec-head h2 { font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem); font-weight:500; color:var(--ink); margin:0; line-height:1.05; letter-spacing:-0.01em; }
.sec-head p { max-width:46ch; color:var(--body); margin:0; font-size:1rem; }

/* ---------- Buttons (WordPress block bridge) ----------
   Core buttons are styled amber-pill via theme.json. These variants are
   applied with block classNames / styles in templates. */
.wp-block-button__link {
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease),
             transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease) !important;
}
.wp-block-button__link:active { transform:translateY(0) scale(0.99); }
.wp-block-button:not(.is-style-outline):not(.is-style-gold):not(.is-style-outline-light) .wp-block-button__link:hover {
  box-shadow:var(--shadow-md);
}

/* Gold gradient */
.is-style-gold .wp-block-button__link {
  background:linear-gradient(135deg,var(--gold-400),var(--gold-600)) !important;
  color:var(--amber-900) !important; box-shadow:var(--shadow-sm); border:none !important;
}
.is-style-gold .wp-block-button__link:hover { box-shadow:0 6px 22px rgba(196,158,114,0.45) !important; transform:translateY(-1px); }

/* Outline (light bg) */
.is-style-outline .wp-block-button__link {
  background:transparent !important; color:var(--ink) !important;
  box-shadow:inset 0 0 0 1px var(--line-strong); border:none !important;
}
.is-style-outline .wp-block-button__link:hover { background:var(--ink) !important; color:var(--glow) !important; }

/* Outline (on dark) */
.is-style-outline-light .wp-block-button__link {
  background:transparent !important; color:var(--glow) !important;
  box-shadow:inset 0 0 0 1px rgba(245,240,230,0.45); border:none !important;
}
.is-style-outline-light .wp-block-button__link:hover { background:rgba(245,240,230,0.10) !important; box-shadow:inset 0 0 0 1px rgba(245,240,230,0.85); }

/* Anchor buttons (for wp:html overlay sections — hero, emotional split). */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:0.55em;
  font-family:var(--font-sans); font-weight:500; font-size:0.82rem;
  letter-spacing:0.12em; text-transform:uppercase; text-decoration:none;
  padding:0.95em 1.9em; border:none; border-radius:var(--radius-pill); cursor:pointer;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  white-space:nowrap;
}
.btn:active { transform:translateY(0) scale(0.99); }
.btn-lg { padding:1.15em 2.4em; font-size:0.86rem; }
.btn-gold { background:linear-gradient(135deg,var(--gold-400),var(--gold-600)); color:var(--amber-900); box-shadow:var(--shadow-sm); }
.btn-gold:hover { box-shadow:0 6px 22px rgba(196,158,114,0.45); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--line-strong); }
.btn-outline:hover { background:var(--ink); color:var(--glow); }
.btn-outline-light { background:transparent; color:var(--glow); box-shadow:inset 0 0 0 1px rgba(245,240,230,0.45); }
.btn-outline-light:hover { background:rgba(245,240,230,0.10); box-shadow:inset 0 0 0 1px rgba(245,240,230,0.85); }
.lh-hero-cta, .lh-split-cta { display:flex; gap:0.9rem; flex-wrap:wrap; margin-top:0.4rem; }
.lh-hero-cta { justify-content:center; margin-top:0.6rem; }

.link-underline {
  position:relative; font-family:var(--font-sans); font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase;
  font-weight:500; color:var(--ink); padding-bottom:3px; cursor:pointer; display:inline-block;
}
.link-underline::after {
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:currentColor; transform-origin:left; transition:transform var(--dur) var(--ease);
}
.link-underline:hover::after { transform:scaleX(0.4); }

/* ---------- Icons ---------- */
.ic { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; display:inline-block; vertical-align:middle; }
.ic-sm { width:16px; height:16px; }

/* ===================================================== HEADER ===== */
.lh-topbar { position:sticky; top:0; z-index:60; }
/* On the homepage the header overlays the immersive dark hero (which runs to
   the very top), turning solid once scrolled. */
body.home .lh-topbar { position:fixed; top:0; left:0; right:0; }
.lh-topbar.is-fixed { position:fixed; left:0; right:0; }
.lh-announce {
  background:var(--charcoal-900); color:var(--gold-400);
  text-align:center; font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase;
  padding:0.6rem 1rem; font-weight:400;
}
.lh-header { transition:background var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.lh-header-inner {
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  height:78px; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter);
}
/* Default = solid translucent (used on inner pages and home-after-scroll) */
.lh-header { background:rgba(245,240,230,0.88); backdrop-filter:blur(14px) saturate(1.1); color:var(--ink); box-shadow:0 1px 0 var(--line); }
/* Transparent over the dark hero (home, top of page) until scrolled */
body.home .lh-topbar:not(.is-scrolled) .lh-header { background:transparent; color:var(--glow); box-shadow:none; }
.lh-nav { display:flex; align-items:center; gap:2.2rem; }
.lh-nav a, .lh-nav .wp-block-navigation-item__content {
  font-family:var(--font-sans); font-size:0.8rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  color:inherit; opacity:0.86; transition:opacity var(--dur) var(--ease);
}
.lh-nav a:hover, .lh-nav .current-menu-item .wp-block-navigation-item__content { opacity:1; }
.lh-header-actions { display:flex; align-items:center; gap:0.4rem; }
.lh-icon-btn, .lh-header-actions .wp-block-navigation { color:inherit; }
.lh-icon-btn {
  display:grid; place-items:center; width:42px; height:42px; border-radius:var(--radius-pill);
  background:transparent; border:none; color:inherit; position:relative;
  transition:background var(--dur) var(--ease); cursor:pointer;
}
.lh-icon-btn:hover { background:rgba(140,126,104,0.14); }
body.home .lh-topbar:not(.is-scrolled) .lh-icon-btn:hover { background:rgba(245,240,230,0.12); }
/* Logo */
.lh-logo img, .lh-header .wp-block-site-logo img { height:68px; width:auto; }
/* Mini-cart / account inside header inherit colour */
.lh-header .wp-block-woocommerce-mini-cart__button,
.lh-header .wc-block-mini-cart__button { color:inherit; }
.lh-header .wp-block-woocommerce-customer-account { color:inherit; }
/* The WC block ships its icon with only a viewBox (no width/height); size it here
   so it doesn't collapse to 0×0 when the block stylesheet doesn't size it. */
.lh-header .wp-block-woocommerce-customer-account .wc-block-customer-account__link {
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:var(--radius-pill);
  color:inherit; transition:background var(--dur) var(--ease);
}
.lh-header .wp-block-woocommerce-customer-account .wc-block-customer-account__link:hover {
  background:rgba(140,126,104,0.14);
}
body.home .lh-topbar:not(.is-scrolled) .wp-block-woocommerce-customer-account .wc-block-customer-account__link:hover {
  background:rgba(245,240,230,0.12);
}
.lh-header .wp-block-woocommerce-customer-account .icon { width:22px; height:22px; display:block; }

/* ===================================================== HERO ====== */
.lh-hero { position:relative; overflow:hidden; min-height:min(92vh,820px); display:flex; align-items:center; }
.lh-hero-media { position:absolute; inset:0; z-index:0; }
.lh-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 38%; }
.lh-hero-scrim { position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(130% 110% at 42% 32%, rgba(20,15,11,0.30) 35%, rgba(20,15,11,0.80) 100%),
    linear-gradient(180deg, rgba(20,15,11,0.55) 0%, rgba(20,15,11,0.35) 45%, rgba(20,15,11,0.82) 100%);
}
.lh-hero-inner { position:relative; z-index:2; text-align:center; width:100%; }
.lh-hero-wordmark { height:clamp(56px,9vw,104px); width:auto; margin-inline:auto; filter:drop-shadow(0 4px 30px rgba(0,0,0,0.4)); }
.lh-hero-title {
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(2.6rem,6.5vw,5.4rem); line-height:1.02; color:var(--glow);
  margin:0; text-shadow:0 2px 40px rgba(0,0,0,0.35); letter-spacing:-0.01em;
}
.lh-hero-sub { max-width:42ch; margin:0 auto; font-size:clamp(1rem,1.5vw,1.18rem); line-height:1.6; color:rgba(245,240,230,0.86); }

/* ===================================================== HOME ====== */
.lh-promise { font-family:var(--font-display); font-weight:400; font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.32; color:var(--ink); margin:0; }

/* Feature cards */
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.2rem,2.4vw,2.2rem); }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,2.6vw,2.4rem); }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.6rem,3vw,3rem); }

.feature-card {
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:2rem 1.6rem; display:flex; flex-direction:column; gap:0.7rem; align-items:flex-start;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.feature-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.feature-icon { width:48px; height:48px; border-radius:var(--radius-pill); display:grid; place-items:center; background:var(--amber-100); color:var(--amber-700); margin-bottom:0.3rem; }
.feature-card h3 { font-family:var(--font-display); font-size:1.42rem; font-weight:500; color:var(--ink); margin:0; }
.feature-card p { font-size:0.9rem; color:var(--body); margin:0; line-height:1.55; }

/* Collection / journal image cards */
.media-card { position:relative; overflow:hidden; border-radius:var(--radius-md); display:block; cursor:pointer; }
.media-card img { width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; transition:transform var(--dur-slow) var(--ease); }
.media-card:hover img { transform:scale(1.05); }
.media-card .mc-scrim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,15,11,0) 40%, rgba(20,15,11,0.72) 100%); }
.media-card .mc-body { position:absolute; left:0; right:0; bottom:0; padding:2rem; color:var(--glow); }
.media-card .mc-body h3 { font-family:var(--font-display); font-size:clamp(1.8rem,3vw,2.6rem); margin:0 0 0.4rem; font-weight:500; color:var(--glow); }
.media-card .mc-body p { margin:0 0 1rem; opacity:0.86; max-width:34ch; font-size:0.95rem; }

/* Emotional band split */
.lh-split { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); min-height:560px; }
.lh-split-media { position:relative; min-height:420px; }
.lh-split-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lh-split-body { display:flex; flex-direction:column; justify-content:center; gap:1.4rem; padding:clamp(2.5rem,6vw,5.5rem); }
.lh-split-body h2 { font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.4rem); font-weight:500; line-height:1.08; margin:0; color:var(--glow); }
.lh-split-body p { color:rgba(245,240,230,0.82); font-size:1.08rem; max-width:46ch; margin:0; line-height:1.65; }

/* ===================================================== PRODUCT CARD ===== */
.product-card { display:flex; flex-direction:column; cursor:pointer; }
.product-card .pc-media { position:relative; overflow:hidden; border-radius:var(--radius-md); background:var(--linen); aspect-ratio:4/5; }
.product-card .pc-media img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease); }
.product-card:hover .pc-media img { transform:scale(1.05); }
.pc-badge {
  position:absolute; top:12px; left:12px; z-index:2;
  background:rgba(33,31,28,0.78); color:var(--gold-400); backdrop-filter:blur(4px);
  font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; font-weight:500;
  padding:0.42em 0.85em; border-radius:var(--radius-pill);
}
.pc-info { padding-top:1rem; display:flex; flex-direction:column; gap:0.25rem; }
.pc-collection { font-size:0.64rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); }
.pc-name { font-family:var(--font-display); font-size:1.32rem; font-weight:500; color:var(--ink); line-height:1.15; margin:0; }
.pc-tagline { font-size:0.82rem; color:var(--muted); font-style:italic; font-family:var(--font-display); }
.pc-price { font-size:0.95rem; color:var(--body); margin-top:0.2rem; }
.lh-card-notes { font-size:0.82rem; color:var(--muted); font-style:italic; font-family:var(--font-display); margin:0; }

/* WooCommerce product grid → adopt card styling */
.woocommerce-shop-grid .wc-block-product, .lh-products .wc-block-product { background:transparent; }

/* ===================================================== SCENT ===== */
.scent-notes { display:flex; gap:0.5rem; flex-wrap:wrap; }
.scent-note { font-size:0.8rem; padding:0.5em 1em; border-radius:var(--radius-pill); border:1px solid var(--line-strong); color:var(--brand); }
.on-dark .scent-note, .lh-pdp .scent-note { border-color:rgba(212,175,136,0.4); color:var(--gold-300); }
.scent-meter { display:flex; flex-direction:column; gap:0.1rem; }
.scent-row { display:flex; align-items:center; gap:1rem; margin-bottom:0.7rem; }
.scent-label { width:88px; font-size:0.78rem; letter-spacing:0.06em; color:var(--body); }
.lh-pdp .scent-label, .on-dark .scent-label { color:rgba(245,240,230,0.82); }
.scent-track { flex:1; height:4px; border-radius:999px; background:var(--linen); overflow:hidden; }
.lh-pdp .scent-track, .on-dark .scent-track { background:rgba(245,240,230,0.14); }
.scent-fill { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--gold-500),var(--amber-600)); }

/* ===================================================== SHOP ===== */
.lh-filter-bar { position:sticky; top:0px; z-index:30; background:rgba(245,240,230,0.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.lh-filter-bar .container { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-block:1rem; }
.filter-group { display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; }
.chip { font-family:var(--font-sans); font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:500;
  padding:0.6em 1.2em; border-radius:var(--radius-pill); border:1px solid var(--line-strong);
  background:transparent; color:var(--body); transition:all var(--dur) var(--ease); cursor:pointer; text-decoration:none; }
.chip:hover { border-color:var(--amber-600); color:var(--amber-700); }
.chip.active { background:var(--amber-600); border-color:var(--amber-600); color:var(--glow); }

/* ===================================================== PDP (charcoal) ===== */
.lh-pdp { background:var(--charcoal-900); color:var(--on-dark); }
.lh-pdp .lh-breadcrumb { padding-top:2rem; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(245,240,230,0.6); display:flex; gap:0.6rem; align-items:center; }
.lh-pdp .lh-breadcrumb a { color:inherit; }
.lh-pdp .lh-breadcrumb .current { color:var(--gold-400); }
.lh-pdp h1, .lh-pdp .product_title { color:var(--glow); font-family:var(--font-display); font-weight:500; }
.lh-pdp .price, .lh-pdp .woocommerce-Price-amount { color:var(--gold-400) !important; font-family:var(--font-display); font-size:2rem; }
.lh-pdp-trust { display:flex; gap:1.4rem; flex-wrap:wrap; font-size:0.82rem; color:rgba(245,240,230,0.72); }
.lh-pdp-trust span { display:flex; gap:0.5rem; align-items:center; }
.lh-pdp .lh-accordion { border-top:1px solid var(--on-dark-line); }
.lh-pdp .lh-acc-item { border-bottom:1px solid var(--on-dark-line); }
.lh-pdp .lh-acc-head { width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:none; color:var(--glow); padding:1.1rem 0; font-family:var(--font-display); font-size:1.3rem; text-align:left; cursor:pointer; }
.lh-pdp .lh-acc-body { color:rgba(245,240,230,0.78); margin:0 0 1.2rem; line-height:1.65; max-width:52ch; }
.lh-pdp .lh-acc-body[hidden] { display:none; }
.lh-review {
  /* charcoal PDP world: a hair-warmer panel + soft candle-glow, gold hairline */
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(212,175,136,0.10), transparent 58%),
    #27241F;
  border-top:1px solid rgba(212,175,136,0.18);
  text-align:center;
}
.lh-review .lh-quote { font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2.4rem); font-style:italic; font-weight:400; color:var(--glow); line-height:1.3; margin:0 0 1.4rem; }

/* ===================================================== FOOTER ===== */
.lh-footer { background:var(--charcoal-900); color:var(--on-dark); padding-block:clamp(3rem,6vw,5rem) 2rem; }
.lh-footer a { color:var(--on-dark); opacity:0.72; transition:opacity var(--dur) var(--ease); text-decoration:none; }
.lh-footer a:hover { opacity:1; }
.lh-footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:3rem; }
.lh-footer h4 { font-family:var(--font-sans); font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-400); margin:0 0 1.2rem; font-weight:500; }
.lh-footer ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.7rem; font-size:0.92rem; }
.lh-footer-wordmark { height:40px; width:auto; margin-bottom:1.2rem; }
.lh-footer-tagline { font-family:var(--font-display); font-size:1.7rem; font-style:italic; color:var(--ivory); line-height:1.2; margin:0; }
.lh-footer-news { display:flex; gap:0.5rem; margin-top:1rem; max-width:340px; }
.lh-footer-news input { flex:1; background:rgba(245,240,230,0.06); border:1px solid var(--on-dark-line); color:var(--on-dark); border-radius:var(--radius-pill); padding:0.8rem 1.2rem; font-family:inherit; font-size:0.9rem; }
.lh-footer-news input::placeholder { color:rgba(245,240,230,0.5); }
.lh-footer-news input:focus { outline:none; border-color:var(--gold-500); }
.lh-footer-news .lh-foot-join { background:linear-gradient(135deg,var(--gold-400),var(--gold-600)); color:var(--amber-900); border:none; border-radius:var(--radius-pill); padding:0 1.3rem; font-family:var(--font-sans); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:500; cursor:pointer; transition:box-shadow var(--dur) var(--ease); }
.lh-footer-news .lh-foot-join:hover { box-shadow:0 6px 22px rgba(196,158,114,0.45); }
.lh-footer-news .lh-foot-join:disabled { opacity:0.6; cursor:default; }
.lh-footer-news .lh-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }
.lh-foot-msg { margin:0.7rem 0 0; min-height:1.2em; font-size:0.85rem; color:rgba(245,240,230,0.6); }
.lh-foot-msg.is-ok { color:var(--gold-400); }
.lh-foot-msg.is-error { color:var(--blush-400); }
.lh-footer-social { display:flex; gap:1rem; margin-top:0.5rem; align-items:center; }
.lh-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:3.5rem; padding-top:1.6rem; border-top:1px solid var(--on-dark-line); font-size:0.78rem; opacity:0.6; }
.lh-foot-mark { letter-spacing:0.16em; text-transform:uppercase; margin:0; }
.lh-footer-bottom p { margin:0; }

/* ===================================================== CONTENT PAGES ===== */
.lh-page-head { padding-block: clamp(2.5rem,5vw,4rem); }
.lh-page-title { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.2rem,4.5vw,3.4rem); line-height: 1.05; color: var(--ink); margin: .4rem 0 0; }
.lh-page-body { padding-block: clamp(2.5rem,5vw,4rem); }
.lh-page-body h2 { font-size: clamp(1.6rem,3vw,2.2rem); margin: 2rem 0 .8rem; }
.lh-page-body h3 { font-size: 1.4rem; margin: 1.6rem 0 .6rem; }
.lh-page-body p, .lh-page-body li { font-size: 1.05rem; line-height: 1.75; color: var(--body); }
.lh-page-body ul, .lh-page-body ol { padding-left: 1.2rem; }
.lh-page-body a:not(.wp-block-button__link) { color: var(--amber-700); text-decoration: underline; text-underline-offset: 3px; }
.lh-page-body .wp-block-button__link { text-decoration: none; }
.lh-page-body img { border-radius: var(--radius-md); }

/* ===================================================== SEARCH ===== */
.lh-search .lh-search-list { list-style:none; margin:0; padding:0; }
.lh-search .lh-search-row { padding:1.6rem 0; border-bottom:1px solid var(--line); }
.lh-search .lh-search-row:first-child { padding-top:0.5rem; }
.lh-search .lh-search-title { font-family:var(--font-display); font-weight:500; font-size:1.6rem; line-height:1.2; margin:0 0 .4rem; }
.lh-search .lh-search-title a { color:var(--ink); text-decoration:none; }
.lh-search .lh-search-title a:hover { color:var(--amber-700); }
.lh-search .lh-search-excerpt { color:var(--body); font-size:1rem; line-height:1.6; margin:0; }
.lh-search .lh-search-excerpt a { color:var(--amber-700); }
.lh-search .lh-search-empty { color:var(--muted); font-family:var(--font-display); font-size:1.3rem; font-style:italic; margin:1rem 0 2rem; }
.lh-search .wp-block-query-pagination { margin-top:2.5rem; }
.lh-search .wp-block-query-pagination a, .lh-search .wp-block-query-pagination .current { color:var(--body); }

/* ===================================================== COLLECTIONS ===== */
.lh-coll-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(1.4rem,2.6vw,2.4rem); }
.lh-coll-grid .media-card .mc-body h3 { font-size: clamp(1.8rem,3vw,2.6rem); }
@media (max-width: 760px) { .lh-coll-grid { grid-template-columns: 1fr; } }

/* ===================================================== 404 / EMPTY ===== */
.lh-404 { min-height: 64vh; display: grid; place-items: center; text-align: center; }
.lh-404 .lh-404-title { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.6rem,6vw,4.5rem); color: var(--ink); margin: .4rem 0 1rem; line-height: 1.02; }
.lh-404 p { color: var(--body); max-width: 44ch; margin: 0 auto 1.8rem; }

/* ===================================================== UTIL / MOTION ===== */
.on-dark { color:var(--on-dark); }
@keyframes riseIn { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
.rise { animation:riseIn var(--dur-slow) var(--ease) both; }
.lh-reveal { opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.lh-reveal.is-in { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
  .lh-reveal { opacity:1; transform:none; }
}

/* ---------- Header nav: collapse to the WP overlay hamburger ≤980px ----------
   The 6 nav items + logo + action icons need ~920px to sit inline, so below that
   we use WordPress's own responsive overlay (it ships a working toggle script).
   Raising the collapse point here from WP's 600px default fixes both the
   "no menu at 600–760" gap and the "inline nav overflows at ~768" bug. */
@media (max-width:980px) {
  .lh-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display:flex !important; }
  .lh-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none !important; }
}
@media (min-width:981px) {
  .lh-header .wp-block-navigation__responsive-container-open { display:none !important; }
}
/* Brand-styled mobile overlay (the WP modal that opens on tap).
   WP's view script writes inline styles on open, so these use !important to win
   and to guarantee a full-screen charcoal panel regardless of WP's internals. */
/* The header's backdrop-filter would make it the containing block for the fixed
   overlay (trapping it to header height). Drop it while the menu is open so the
   overlay fills the viewport. WP adds .has-modal-open to <html> on open. */
html.has-modal-open .lh-header { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.lh-header .wp-block-navigation__responsive-container.is-menu-open {
  position:fixed !important; inset:0 !important; box-sizing:border-box !important;
  background:var(--charcoal-900) !important; color:var(--on-dark) !important;
  display:flex !important; flex-direction:column !important; justify-content:flex-start !important;
  padding:5.5rem var(--gutter) 2.5rem !important; z-index:120 !important; overflow-y:auto !important;
}
.lh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  width:100%; align-items:flex-start;
}
.lh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  flex-direction:column !important; align-items:flex-start !important; gap:0.4rem !important;
}
.lh-header .wp-block-navigation__responsive-container.is-menu-open a {
  color:var(--on-dark) !important; font-family:var(--font-display); font-size:1.9rem; padding:0.35rem 0;
}
.lh-header .wp-block-navigation__responsive-container.is-menu-open a:hover { color:var(--gold-400) !important; }
.lh-header .wp-block-navigation__responsive-container-open,
.lh-header .wp-block-navigation__responsive-container-close { color:inherit; }
.lh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  color:var(--on-dark) !important; top:1.6rem; right:var(--gutter);
}

/* ---------- Responsive ---------- */
@media (max-width:1024px) {
  .lh-footer-grid { grid-template-columns:1fr 1fr; gap:2.4rem; }
  .grid-4 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px) {
  .lh-header-search { display:none; }
  .grid-3, .grid-2 { grid-template-columns:1fr; gap:1.6rem; }
  .grid-4 { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .lh-footer-grid { grid-template-columns:1fr; gap:2rem; }
  .lh-header-inner { height:64px; }
  .lh-logo img, .lh-header .wp-block-site-logo img { height:30px; }
  .lh-filter-bar { top:64px; }
}
