/*
Theme Name: Lume — Fine Art Prints
Theme URI: https://lauraignatowicz.com
Author: Laura Ignatowicz
Description: Warm gallery / slow-living WooCommerce theme. Lato titles, Cormorant Garamond italic body, silky translucent blush sections (editable gradient), borderless aligned product grid with infinite scroll, espresso footer.
Version: 2.31.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lume
WC requires at least: 7.0
WC tested up to: 8.8
*/

/* ==========================================================================
   DESIGN TOKENS
   ========================================================================== */
:root {
  --ivory:     #f5f2ee;
  --parchment: #efe8df;
  --sand:      #e8e3dc;

  --blush-soft: #f1ddd4;
  --blush:      #d9b0a2;
  --blush-deep: #9d6e62;

  /* Silky translucent gradient — overridden live from the Customizer.
     Translucent by default so the page shows through. */
  --silk: radial-gradient(120% 115% at 72% 26%, rgba(239,217,205,0.62) 0%, rgba(239,217,205,0.34) 46%, rgba(243,231,221,0.20) 100%);

  --charcoal:  #3a3530;
  --espresso:  #393631;
  --warm-grey: #7a6f65;
  --muted:     #9a9088;

  --line:      #ded6cb;
  --line-soft: #e6dfd5;

  /* Type — Lato for titles & labels; Cormorant Garamond italic for body. Thin. */
  --display: 'Lato', 'Helvetica Neue', sans-serif;   /* titles + UI labels */
  --body:    'Cormorant Garamond', 'Georgia', serif; /* smaller / reading text */

  --container: 1280px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --section-y: clamp(4.5rem, 10vw, 9rem);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --transition: 0.6s var(--ease);
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background-color: var(--ivory); color: var(--charcoal);
  font-family: var(--body); font-weight: 300; font-style: italic;
  font-size: 1.075rem; line-height: 1.7; letter-spacing: 0.005em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body::before {
  content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  opacity: 0.045; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--charcoal); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--blush-deep); }
::selection { background: var(--blush-soft); color: var(--charcoal); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; top: 1rem; left: 1rem; z-index: 10000; width: auto; height: auto; clip: auto; background: var(--charcoal); color: var(--ivory); padding: 0.75rem 1.25rem; letter-spacing: 0.1em; font-family: var(--display); font-style: normal; }

/* ==========================================================================
   TYPOGRAPHY  (titles = Lato thin; small text = Cormorant italic thin)
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--display); font-style: normal; font-weight: 300;
  color: var(--charcoal); line-height: 1.18; letter-spacing: 0.005em; margin: 0 0 0.6em;
}
h1 { font-size: calc(clamp(2.4rem, 6vw, 4.4rem) * var(--title-scale, 1)); }
h2 { font-size: calc(clamp(1.9rem, 4.2vw, 3rem) * var(--title-scale, 1)); }
h3 { font-size: calc(clamp(1.4rem, 2.6vw, 1.85rem) * var(--sub-scale, 1)); }
p { margin: 0 0 1.4em; color: var(--charcoal); }

/* Sans labels (eyebrows / microcopy) — Lato, not italic */
.overline {
  font-family: var(--display); font-style: normal; font-weight: 400;
  font-size: 0.72rem; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--blush-deep); display: inline-block; margin-bottom: 1.4rem;
}
.lead { font-family: var(--body); font-style: italic; font-size: 1.3rem; color: var(--warm-grey); font-weight: 300; line-height: 1.55; }

/* ==========================================================================
   LAYOUT
   ========================================================================== */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: 820px; }
.section { padding-block: var(--section-y); }
.section--parchment { background: var(--parchment); }
.section--sand { background: var(--sand); }
.section--blush { background: var(--silk); }
.divider { width: 64px; height: 1px; background: var(--blush); border: 0; margin: 2rem 0; }
.divider--center { margin-inline: auto; }

/* Translucent silky panel — more see-through */
.glass {
  background: var(--silk);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
  backdrop-filter: blur(14px) saturate(1.05);
  border: 1px solid rgba(255,255,255,0.4);
  box-shadow: 0 30px 70px -50px rgba(58,53,48,0.4);
}

/* ==========================================================================
   BUTTONS (Lato labels; charcoal)
   ========================================================================== */
.btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
  display: inline-block; font-family: var(--display); font-style: normal; font-weight: 300;
  font-size: 0.76rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ivory);
  background: var(--espresso); border: 1px solid var(--espresso); border-radius: 0;
  padding: 1.05rem 2.4rem; cursor: pointer; line-height: 1;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.btn:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background: var(--blush-deep); border-color: var(--blush-deep); color: var(--ivory);
}
.btn--ghost { background: transparent; color: var(--charcoal); border-color: var(--line); }
.btn--ghost:hover { background: transparent; color: var(--blush-deep); border-color: var(--blush); }

/* ==========================================================================
   HEADER / NAVIGATION  (Lato labels)
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 100; background: color-mix(in srgb, var(--ivory) 88%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: border-color var(--transition), background var(--transition); }
.site-header.is-scrolled { border-bottom-color: var(--line-soft); background: color-mix(in srgb, var(--ivory) 96%, transparent); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; padding-block: 1.05rem; gap: 1rem; }
.site-brand { font-family: var(--display); font-style: normal; font-size: 1.5rem; font-weight: 300; letter-spacing: 0.12em; text-transform: uppercase; color: var(--charcoal); }
.site-brand span { color: var(--blush-deep); }
.site-brand small { display: block; font-family: var(--display); font-size: 0.58rem; font-weight: 400; letter-spacing: 0.3em; text-transform: uppercase; color: var(--muted); margin-top: 0.4rem; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.75rem); list-style: none; margin: 0; padding: 0; }
.primary-nav a { font-family: var(--display); font-style: normal; position: relative; font-size: 0.78rem; font-weight: 300; letter-spacing: 0.16em; text-transform: uppercase; color: var(--warm-grey); padding-block: 0.3rem; }
.primary-nav a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--blush); transition: width var(--transition); }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color: var(--charcoal); }
.primary-nav a:hover::after, .primary-nav .current-menu-item > a::after { width: 100%; }
.header-cart { font-family: var(--display); font-style: normal; position: relative; font-size: 0.78rem; font-weight: 300; letter-spacing: 0.16em; text-transform: uppercase; color: var(--warm-grey); }
.header-cart .count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.4em; height: 1.4em; margin-left: 0.4rem; padding: 0 0.35em; font-size: 0.6rem; color: var(--ivory); background: var(--blush-deep); border-radius: 999px; }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 0.5rem; }
.nav-toggle span { display: block; width: 24px; height: 1px; background: var(--charcoal); margin: 5px 0; transition: transform var(--transition), opacity var(--transition); }

/* ==========================================================================
   HERO — three selectable styles
   ========================================================================== */
.hero { position: relative; overflow: hidden; }
.hero--split { display: grid; grid-template-columns: 1fr 1fr; min-height: 80vh; background: var(--parchment); }
.hero--split .hero__text { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 6vw, 6rem); max-width: 640px; margin-left: auto; }
.hero--split .hero__image { background-size: cover; background-position: center; background-color: var(--sand); }
.hero--split .hero__image-full { display: none; }
.hero--centered { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 78vh; background: var(--silk); }
.hero--centered .hero__inner { max-width: 880px; padding-inline: var(--gutter); }
.hero--centered h1 { font-size: clamp(2.6rem, 7vw, 5.2rem); }
.hero--centered .hero__actions { justify-content: center; }
.hero--glass { display: flex; align-items: center; min-height: 84vh; }
.hero--glass .hero__media { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: var(--sand); }
.hero--glass .hero__panel { position: relative; z-index: 2; max-width: 520px; margin: 0 auto 0 clamp(1.5rem, 6vw, 6rem); padding: clamp(2rem, 4vw, 3.2rem); }
.hero__inner, .hero__text, .hero__panel { position: relative; z-index: 2; }
.hero h1 { margin-bottom: 0.35em; }
.hero .lead { margin-bottom: 2.2rem; max-width: 42ch; }
.hero--centered .lead { margin-inline: auto; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

/* ==========================================================================
   HOME — EDITORIAL / VALUES
   ========================================================================== */
.section-head { max-width: 620px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-head.center { margin-inline: auto; text-align: center; }
.editorial { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: clamp(2rem, 6vw, 5.5rem); }
.editorial__media { aspect-ratio: 4 / 5; background: var(--sand); overflow: hidden; }
.editorial__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.editorial__media:hover img { transform: scale(1.04); }
.editorial--reverse .editorial__media { order: 2; }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }
.value-card { padding-top: 1.6rem; border-top: 1px solid var(--blush); }
.value-card h3 { font-size: 1.5rem; font-weight: 300; margin-bottom: 0.5rem; }
.value-card p { color: var(--warm-grey); margin: 0; font-size: 1.1rem; }

/* ==========================================================================
   WOOCOMMERCE — ALIGNED, BORDERLESS GALLERY GRID
   ========================================================================== */
.woocommerce-page .container--shop { padding-top: clamp(1.75rem, 4vw, 3rem); padding-bottom: var(--section-y); }
.woocommerce ul.products, .woocommerce-page ul.products { list-style: none; margin: 0 !important; padding: 0; display: grid !important; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 3vw, 2.75rem); }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important; display: flex; flex-direction: column; text-align: left; }
.woocommerce ul.products li.product.first, .woocommerce ul.products li.product.last { clear: none !important; margin: 0 !important; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 4 / 5; object-fit: contain; margin: 0; background: transparent; padding: 0; border: 0; transition: transform var(--transition), opacity var(--transition); }
.woocommerce ul.products li.product:hover a img { transform: translateY(-3px); opacity: 0.92; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--display); font-style: normal; font-size: 1.15rem; font-weight: 300; letter-spacing: 0.01em; color: var(--charcoal); padding: 1.1rem 0 0.2rem; line-height: 1.3; }
.woocommerce ul.products li.product .price { display: block; font-family: var(--body); font-style: italic; font-weight: 400; font-size: 1.1rem; color: var(--warm-grey); margin-bottom: 0; }
.woocommerce ul.products li.product .price del { color: var(--muted); opacity: 0.7; margin-right: 0.4rem; }
.woocommerce ul.products li.product .price ins { color: var(--blush-deep); text-decoration: none; }
.woocommerce ul.products li.product .onsale { background: var(--blush-deep); color: var(--ivory); font-family: var(--display); border-radius: 0; font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; padding: 0.4em 0.8em; min-height: auto; min-width: auto; line-height: 1; top: 1rem; right: 1rem; margin: 0; }
.woocommerce .woocommerce-result-count { font-family: var(--display); font-style: normal; color: var(--muted); font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; }
.woocommerce .woocommerce-ordering select { font-family: var(--display); font-size: 0.8rem; color: var(--charcoal); background: transparent; border: 1px solid var(--line); border-radius: 0; padding: 0.6rem 1rem; }
.woocommerce nav.woocommerce-pagination ul, .woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { color: var(--warm-grey); background: transparent; font-size: 0.95rem; padding: 0.6em 0.9em; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: transparent; color: var(--blush-deep); border-bottom: 1px solid var(--blush); }

.lume-shop-section { padding-block: clamp(2.5rem, 5vw, 4rem); }
.lume-shop-section:first-of-type { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.lume-shop-section + .lume-shop-section { border-top: 1px solid var(--line); }
.shop-cat-head { margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.shop-cat-head h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin: 0; }
.shop-cat-head .lead { margin-top: 0.6rem; max-width: 60ch; }
.lume-scroll-sentinel { height: 1px; width: 100%; }
.lume-loading { text-align: center; padding: 2rem 0; color: var(--muted); font-family: var(--display); font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; }

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100%; float: none; margin: 0; }
.woocommerce div.product div.images img { background: transparent; padding: 0; border: 0; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery { margin: 0 !important; }
.woocommerce div.product .woocommerce-product-gallery__wrapper, .woocommerce div.product .woocommerce-product-gallery figure, .woocommerce div.product .woocommerce-product-gallery__image { margin: 0; }
.woocommerce div.product .product_title { font-family: var(--display); font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 0.3em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--charcoal); font-family: var(--body); font-style: italic; font-size: 1.7rem; font-weight: 400; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--warm-grey); }
.woocommerce div.product form.cart { margin-top: 1.8rem; }
.woocommerce .quantity .qty { border: 1px solid var(--line); background: transparent; border-radius: 0; padding: 0.7rem; color: var(--charcoal); font-family: var(--display); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding-left: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: var(--display); font-style: normal; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.76rem; color: var(--warm-grey); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--blush-deep); }
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: clamp(3.5rem, 7vw, 6rem); padding-top: clamp(2.5rem, 5vw, 3.5rem); border-top: 1px solid var(--line); clear: both; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-family: var(--display); font-size: clamp(1.4rem, 2.6vw, 1.85rem); font-weight: 300; margin-bottom: clamp(1.75rem, 4vw, 2.5rem); }
.woocommerce .related.products ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; padding-top: 0.85rem; }
.woocommerce .related.products ul.products li.product .price { font-size: 1rem; }

/* ==========================================================================
   CART & CHECKOUT
   ========================================================================== */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: 0; background: transparent; }
.woocommerce table.shop_table th { font-family: var(--display); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.72rem; color: var(--charcoal); font-weight: 400; }
.woocommerce table.shop_table td { color: var(--warm-grey); border-top-color: var(--line-soft); }
.woocommerce-cart table.cart img { width: 84px; background: var(--parchment); padding: 0.4rem; border: 1px solid var(--line-soft); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review { background: var(--parchment); padding: clamp(1.5rem, 3vw, 2.5rem); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce-checkout input, .woocommerce-checkout textarea, .woocommerce-checkout select { border: 1px solid var(--line); background: var(--ivory); border-radius: 0; padding: 0.85rem 1rem; color: var(--charcoal); font-family: var(--body); font-style: italic; }
.woocommerce .coupon input { border-radius: 0 !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top: 2px solid var(--blush); background: var(--parchment); border-radius: 0; color: var(--charcoal); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--blush-deep); }

/* ==========================================================================
   FAQ ACCORDION
   ========================================================================== */
.faq-list { max-width: 780px; margin-inline: auto; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; background: none; border: 0; cursor: pointer; text-align: left; padding: 1.6rem 0; font-family: var(--display); font-style: normal; font-size: clamp(1.15rem, 2.4vw, 1.5rem); font-weight: 300; color: var(--charcoal); }
.faq-q .icon { flex: none; width: 22px; height: 22px; position: relative; }
.faq-q .icon::before, .faq-q .icon::after { content: ""; position: absolute; background: var(--blush-deep); transition: transform var(--transition), opacity var(--transition); }
.faq-q .icon::before { top: 50%; left: 0; right: 0; height: 1px; transform: translateY(-50%); }
.faq-q .icon::after { left: 50%; top: 0; bottom: 0; width: 1px; transform: translateX(-50%); }
.faq-item.is-open .faq-q .icon::after { transform: translateX(-50%) scaleY(0); opacity: 0; }
.faq-a { overflow: hidden; max-height: 0; transition: max-height 0.7s var(--ease); }
.faq-a__inner { padding: 0 0 1.8rem; color: var(--warm-grey); max-width: 64ch; font-size: 1.1rem; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.contact-detail { margin-bottom: 1.8rem; }
.contact-detail .label { font-family: var(--display); font-style: normal; font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--blush-deep); display: block; margin-bottom: 0.4rem; }
.contact-detail a, .contact-detail p { color: var(--charcoal); margin: 0; }
.lume-form .field { margin-bottom: 1.4rem; }
.lume-form label { font-family: var(--display); font-style: normal; display: block; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--warm-grey); margin-bottom: 0.6rem; }
.lume-form input, .lume-form textarea { width: 100%; border: 1px solid var(--line); background: var(--ivory); border-radius: 0; padding: 0.95rem 1.1rem; font-family: var(--body); font-style: italic; font-size: 1.05rem; color: var(--charcoal); transition: border-color var(--transition); }
.lume-form input:focus, .lume-form textarea:focus { outline: none; border-color: var(--blush); }
.lume-form textarea { min-height: 160px; resize: vertical; }

/* ==========================================================================
   NEWSLETTER — silky translucent, slimmer
   ========================================================================== */
.newsletter { background: var(--silk); padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.newsletter__inner { max-width: 900px; margin-inline: auto; text-align: center; }
.newsletter .nl-eyebrow { font-family: var(--display); font-style: normal; font-weight: 400; font-size: 0.72rem; letter-spacing: 0.34em; text-transform: uppercase; color: var(--blush-deep); display: block; margin-bottom: clamp(1rem, 2vw, 1.6rem); }
.newsletter .nl-statement { font-family: var(--display); font-style: normal; font-weight: 300; text-transform: uppercase; font-size: clamp(1.4rem, 3.6vw, 2.6rem); line-height: 1.34; letter-spacing: 0.02em; color: var(--charcoal); margin: 0 auto clamp(1.75rem, 4vw, 2.6rem); max-width: 20ch; }
.newsletter .nl-statement em { font-family: var(--body); font-style: italic; text-transform: none; font-weight: 400; }
.newsletter form { display: flex; align-items: flex-end; gap: 1.5rem; max-width: 640px; margin: 0 auto; border-bottom: 1px solid var(--charcoal); padding-bottom: 0.8rem; }
.newsletter input[type="email"] { flex: 1; border: 0; background: transparent; padding: 0.4rem 0; font-family: var(--body); font-style: italic; font-size: 1.1rem; color: var(--charcoal); }
.newsletter input[type="email"]::placeholder { color: var(--warm-grey); opacity: 0.85; }
.newsletter input[type="email"]:focus { outline: none; }
.newsletter .nl-submit { flex: none; background: transparent; border: 0; cursor: pointer; font-family: var(--display); font-style: normal; font-weight: 300; font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--charcoal); padding: 0.4rem 0; transition: color var(--transition); }
.newsletter .nl-submit:hover { color: var(--blush-deep); }
.newsletter .nl-note { font-family: var(--body); font-style: italic; font-size: 1rem; color: var(--warm-grey); margin-top: 1.2rem; }

/* ==========================================================================
   PAGE / POST CONTENT
   ========================================================================== */
.entry-content { max-width: 720px; }
.entry-content > * + * { margin-top: 1.2rem; }
.entry-content img { margin-block: 2rem; }
.page-hero { background: var(--parchment); padding-block: clamp(2.5rem, 6vw, 4.5rem); text-align: center; }
.page-hero .overline { margin-bottom: 1rem; }

/* ==========================================================================
   FOOTER — espresso, four columns
   ========================================================================== */
.site-footer { background: var(--espresso); color: #cfc5b6; padding-top: clamp(2.75rem, 5vw, 4.25rem); }
.site-footer__grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(2rem, 4vw, 3rem); }
.footer-brand { font-family: var(--display); font-style: normal; font-weight: 300; font-size: clamp(1.2rem, 2.2vw, 1.6rem); letter-spacing: 0.22em; text-transform: uppercase; color: #efe7da; margin-bottom: 1.6rem; line-height: 1.4; }
.footer-tagline { font-family: var(--body); font-style: italic; font-size: 1.15rem; line-height: 1.65; color: #b3a899; max-width: 30ch; margin: 0; }
.site-footer h4 { font-family: var(--display); font-style: normal; font-size: 0.7rem; letter-spacing: 0.26em; text-transform: uppercase; color: #d8cec0; margin: 0 0 1.6rem; font-weight: 400; }
.site-footer .footer-links { list-style: none; margin: 0; padding: 0; }
.site-footer .footer-links li { margin-bottom: 0.9rem; }
.site-footer .footer-links a { font-family: var(--body); font-style: italic; font-size: 1.2rem; color: #cfc5b6; }
.site-footer .footer-links a:hover { color: var(--blush); }
.footer-divider { border: 0; border-top: 1px solid rgba(245,242,238,0.14); margin: 0; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; padding-block: 1.4rem 1.8rem; }
.footer-copyright { font-family: var(--display); font-style: normal; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: #8f8678; margin: 0; }
.footer-social { display: inline-flex; align-items: center; gap: 0.6rem; color: #cfc5b6; }
.footer-social:hover { color: var(--blush); }
.footer-social svg { width: 18px; height: 18px; flex: none; }
.footer-social .handle { font-family: var(--body); font-style: italic; font-size: 1.1rem; }

/* ==========================================================================
   SCROLL REVEAL
   ========================================================================== */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* ==========================================================================
   RESPONSIVE  (debugged phone layout)
   ========================================================================== */
@media (max-width: 1024px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__grid .footer-col--brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  /* Header must NOT use backdrop-filter on mobile — it creates a containing
     block that traps the fixed nav overlay inside the header instead of the
     viewport (which let page content show through the open menu). */
  .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--ivory); }
  .nav-toggle { display: block; z-index: 220; position: relative; }
  .primary-nav { position: fixed; inset: 0; background: var(--ivory); display: flex; align-items: flex-start; justify-content: center; padding: 5.5rem 1.5rem 3rem; overflow-y: auto; transform: translateX(100%); transition: transform var(--transition); z-index: 200; }
  .primary-nav.is-open { transform: none; }
  .primary-nav ul { flex-direction: column; align-items: center; gap: 1.5rem; width: 100%; margin: auto 0; }
  .primary-nav > ul > li { width: 100%; text-align: center; }
  .primary-nav a { font-size: 1.05rem; }
  .nav-toggle.is-active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle.is-active span:nth-child(2) { opacity: 0; }
  .nav-toggle.is-active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  /* Shop dropdown inside the mobile overlay: clean, centred accordion */
  .primary-nav .menu-item-has-children > a { background-position: right 36% center; }
  .primary-nav .sub-menu { position: static; transform: none; opacity: 1; visibility: visible; min-width: 0; width: 100%; background: transparent; border: 0; box-shadow: none; max-height: 0; overflow: hidden; padding: 0; transition: max-height var(--transition); }
  .primary-nav .menu-item-has-children.is-open > .sub-menu { max-height: 400px; padding: 0.5rem 0 0.2rem; }
  .primary-nav .sub-menu li { text-align: center; }
  .primary-nav .sub-menu a { font-size: 0.82rem; padding: 0.55rem 0; }
  .primary-nav .menu-item-has-children:hover > .sub-menu,
  .primary-nav .menu-item-has-children:focus-within > .sub-menu { transform: none !important; }

  .editorial, .contact-grid, .woocommerce div.product { grid-template-columns: 1fr; }
  .editorial--reverse .editorial__media { order: 0; }
  .value-grid { grid-template-columns: 1fr; }

  /* Hero — stack cleanly */
  .hero--split { grid-template-columns: 1fr; min-height: 0; }
  .hero--split .hero__text { order: 2; padding: clamp(2.5rem, 8vw, 3.5rem) var(--gutter); max-width: none; margin: 0; }
  .hero--split .hero__image { order: 1; min-height: 0; background-color: var(--sand); background-image: none !important; background-repeat: no-repeat; }
  .hero--split .hero__image-full { display: block; width: 100%; height: auto; }
  .lume-marquee { padding-top: 0; }
  .hero--centered { min-height: 60vh; }
  .hero--glass { min-height: 74vh; }
  .hero--glass .hero__panel { margin: 0 var(--gutter); max-width: none; }
}
@media (max-width: 600px) {
  body { font-size: 1.05rem; }
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: 1fr; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .site-footer__grid .footer-col--brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 1rem; }

  /* Newsletter — stack input + button, keep underline on the field */
  .newsletter form { flex-direction: column; align-items: stretch; gap: 0.9rem; border-bottom: 0; padding-bottom: 0; max-width: 420px; }
  .newsletter input[type="email"] { border-bottom: 1px solid var(--charcoal); padding-bottom: 0.6rem; text-align: center; }
  .newsletter .nl-submit { align-self: center; letter-spacing: 0.2em; }
  .newsletter .nl-statement { max-width: 100%; }
}

/* ==========================================================================
   v1.6 — grid fix, shop header, circle cursor, newsletter name fields
   ========================================================================== */

/* FIX: WooCommerce adds clearfix ::before/::after to ul.products, which were
   being counted as grid items — leaving an empty first cell and pushing the
   3rd product onto a new row. Remove them so 3 products fill the top row. */
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }

/* Translucent shop header (optional background image behind a silky scrim) */
.shop-hero { position: relative; overflow: hidden; text-align: center; padding-block: clamp(2.5rem, 6vw, 4.5rem); background: var(--silk); }
.shop-hero.has-image { background-size: cover; background-position: center; }
.shop-hero.has-image::before { content: ""; position: absolute; inset: 0; background: var(--silk); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.shop-hero__inner { position: relative; z-index: 2; }
.shop-hero .overline { margin-bottom: 1rem; }

/* Newsletter — first / last name row above the email row */
.newsletter form { display: block; border-bottom: 0; padding-bottom: 0; max-width: 640px; margin: 0 auto; }
.newsletter .nl-fields { display: flex; gap: 1.5rem; margin-bottom: 1.1rem; }
.newsletter .nl-fields input { flex: 1; min-width: 0; border: 0; border-bottom: 1px solid var(--charcoal); background: transparent; padding: 0.5rem 0; font-family: var(--body); font-style: italic; font-size: 1.05rem; color: var(--charcoal); }
.newsletter .nl-fields input::placeholder { color: var(--warm-grey); opacity: 0.85; }
.newsletter .nl-fields input:focus { outline: none; border-bottom-color: var(--blush-deep); }
.newsletter .nl-row { display: flex; align-items: flex-end; gap: 1.5rem; border-bottom: 1px solid var(--charcoal); padding-bottom: 0.8rem; }

/* Circle cursor */
#lume-cursor { position: fixed; top: 0; left: 0; width: 26px; height: 26px; border: 1px solid var(--charcoal); border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; z-index: 100000; opacity: 0; mix-blend-mode: multiply; transition: width .25s var(--ease), height .25s var(--ease), background-color .25s var(--ease), border-color .25s var(--ease), opacity .3s; }
#lume-cursor.is-active { opacity: 1; }
#lume-cursor.is-hover { width: 46px; height: 46px; background-color: rgba(157,110,98,0.12); border-color: var(--blush-deep); }
@media (pointer: fine) {
  html.lume-cursor-on, html.lume-cursor-on a, html.lume-cursor-on button, html.lume-cursor-on .btn, html.lume-cursor-on .nl-submit, html.lume-cursor-on .faq-q { cursor: none; }
  html.lume-cursor-on input, html.lume-cursor-on textarea, html.lume-cursor-on select { cursor: auto; }
}
@media (max-width: 860px) { #lume-cursor { display: none !important; } }
@media (prefers-reduced-motion: reduce) { #lume-cursor { display: none !important; } }

@media (max-width: 600px) {
  .newsletter .nl-fields { flex-direction: column; gap: 0.9rem; }
  .newsletter .nl-fields input { text-align: center; }
  .newsletter .nl-row { flex-direction: column; align-items: stretch; gap: 0.9rem; border-bottom: 0; }
  .newsletter .nl-row input[type="email"] { border-bottom: 1px solid var(--charcoal); text-align: center; padding-bottom: 0.6rem; }
  .newsletter .nl-row .nl-submit { align-self: center; }
}

/* ==========================================================================
   v1.7 — shop header category links + scroll offset
   ========================================================================== */
.shop-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.8rem; margin-top: clamp(1.25rem, 3vw, 2rem); }
.shop-cats a { font-family: var(--display); font-style: normal; font-size: 0.74rem; font-weight: 300; letter-spacing: 0.2em; text-transform: uppercase; color: var(--warm-grey); position: relative; padding-bottom: 0.3rem; }
.shop-cats a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--blush); transition: width var(--transition); }
.shop-cats a:hover { color: var(--charcoal); }
.shop-cats a:hover::after { width: 100%; }
/* Offset jump-links so the sticky header doesn't cover the heading */
.lume-shop-section { scroll-margin-top: 110px; }

/* ==========================================================================
   v1.8 — product tabs/meta, image protection
   ========================================================================== */
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: 0.72rem; letter-spacing: 0.12em; }
.woocommerce div.product .woocommerce-tabs .panel > h2,
.woocommerce div.product .woocommerce-tabs .panel h2:first-child,
.woocommerce div.product #reviews h2,
.woocommerce div.product #reviews #comments > h2 { font-size: 1.05rem !important; font-weight: 300; letter-spacing: 0.01em; margin-bottom: 1.2rem; }
.woocommerce div.product .woocommerce-Tabs-panel table.shop_attributes,
.woocommerce div.product .woocommerce-Tabs-panel p { font-size: 1rem; }

/* Hide product tags on the single product page */
.woocommerce div.product .product_meta .tagged_as { display: none !important; }

/* Image protection (deterrent) — applied when body has .lume-protect.
   Stops drag-to-save, iOS long-press save, and image text selection.
   Honest limit: it discourages casual saving but cannot stop screenshots. */
body.lume-protect img {
  -webkit-user-drag: none; -khtml-user-drag: none; -moz-user-drag: none; -o-user-drag: none;
  user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none;
  -webkit-touch-callout: none;
}

/* ==========================================================================
   v1.9 — centred hero text, Shop dropdown, cleaner product UI, related below
   ========================================================================== */

/* Hero text centred for every hero style */
.hero__text, .hero__panel, .hero__inner { text-align: center; }
.hero .lead { margin-inline: auto; }
.hero__actions { justify-content: center; }
.hero--split .hero__text { margin-inline: auto; align-items: center; }
.hero--glass .hero__panel { align-items: center; }

/* ---- Navigation dropdown (Shop → categories) ---- */
.primary-nav .menu-item-has-children { position: relative; }
.primary-nav .menu-item-has-children > a {
  padding-right: 1.1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237a6f65' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right center; background-size: 8px;
}
.primary-nav .sub-menu {
  display: block;
  list-style: none; margin: 0; padding: 0.5rem 0; position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%) translateY(10px); min-width: 210px; background: var(--ivory);
  border: 1px solid var(--line-soft); box-shadow: 0 26px 54px -36px rgba(58,53,48,0.55);
  opacity: 0; visibility: hidden; transition: opacity var(--transition), transform var(--transition); z-index: 120;
}
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.primary-nav .sub-menu li { display: block; margin: 0; }
.primary-nav .sub-menu a { display: block; padding: 0.7rem 1.5rem; font-family: var(--display); font-style: normal; font-size: 0.72rem; font-weight: 300; letter-spacing: 0.16em; text-transform: uppercase; color: var(--warm-grey); white-space: nowrap; background-image: none; padding-right: 1.5rem; }
.primary-nav .sub-menu a::after { display: none; }
.primary-nav .sub-menu a:hover { color: var(--charcoal); background: var(--parchment); }

/* ---- Cleaner variation (size) selector & add-to-cart ---- */
.woocommerce div.product form.cart .variations { width: 100%; border: 0; margin: 0 0 1.2rem; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { border: 0; padding: 0.45rem 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations th.label { text-align: left; padding-right: 1.2rem; font-family: var(--display); font-style: normal; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--warm-grey); }
.woocommerce div.product form.cart .variations select {
  width: 100%; -webkit-appearance: none; -moz-appearance: none; appearance: none;
  border: 1px solid var(--line); background-color: var(--ivory); border-radius: 0;
  padding: 0.95rem 2.8rem 0.95rem 1.1rem; font-family: var(--body); font-style: italic; font-size: 1.05rem; color: var(--charcoal); cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237a6f65' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1.1rem center; background-size: 11px;
  transition: border-color var(--transition);
}
.woocommerce div.product form.cart .variations select:focus { outline: none; border-color: var(--blush); }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 0.5rem; font-family: var(--display); font-size: 0.64rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.woocommerce div.product form.cart .single_variation .price { font-family: var(--body); font-style: italic; color: var(--charcoal); margin-bottom: 1rem; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) { display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; }

/* ---- Single product: images + summary side by side; tabs & related FULL WIDTH below ---- */
.woocommerce div.product > div.images { grid-column: 1; }
.woocommerce div.product > div.summary { grid-column: 2; }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells,
.woocommerce div.product > .up-sells { grid-column: 1 / -1; }

/* Related products centred below */
.woocommerce .related.products, .woocommerce .upsells.products { text-align: center; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { text-align: center; }
.woocommerce .related.products ul.products, .woocommerce .upsells.products ul.products { text-align: left; }

@media (max-width: 860px) {
  /* Dropdown becomes a tap-to-open accordion inside the mobile menu */
  .primary-nav .sub-menu {
    position: static; transform: none; opacity: 1; visibility: visible; min-width: 0;
    background: transparent; border: 0; box-shadow: none; max-height: 0; overflow: hidden; padding: 0;
    transition: max-height var(--transition);
  }
  .primary-nav .menu-item-has-children.is-open > .sub-menu { max-height: 320px; padding: 0.4rem 0 0.6rem; }
  .primary-nav .sub-menu a { text-align: center; }
  .woocommerce div.product > div.images, .woocommerce div.product > div.summary { grid-column: 1; }
}

/* ==========================================================================
   v2.0 — page header images, hide SKU, on-brand disabled add-to-cart
   ========================================================================== */

/* Page headers can carry a featured-image background behind a silky scrim */
.page-hero { position: relative; overflow: hidden; }
.page-hero.has-image { background-size: cover; background-repeat: no-repeat; }
.page-hero.has-image::before { content: ""; position: absolute; inset: 0; background: var(--silk); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.page-hero__inner { position: relative; z-index: 2; }

/* Hide SKU on the single product page */
.woocommerce div.product .product_meta .sku_wrapper { display: none !important; }

/* Add-to-cart: on-brand colour before a size is chosen (instead of default purple) */
.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,
.woocommerce div.product form.cart button.disabled,
.woocommerce div.product form.cart .button.disabled {
  background: var(--muted) !important;
  border-color: var(--muted) !important;
  color: var(--ivory) !important;
  opacity: 1;
  cursor: not-allowed;
}
.woocommerce div.product form.cart .single_add_to_cart_button.disabled:hover,
.woocommerce div.product form.cart .single_add_to_cart_button.wc-variation-selection-needed:hover {
  background: var(--muted) !important;
  border-color: var(--muted) !important;
}

/* ==========================================================================
   v2.2 — collection tiles
   ========================================================================== */
.collection-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.collection-card { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--sand); }
.collection-card__media { position: absolute; inset: 0; }
.collection-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.collection-card:hover .collection-card__media img { transform: scale(1.05); }
.collection-card__overlay { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4rem; text-align: center; padding: 2rem; background: linear-gradient(to bottom, rgba(58,53,48,0.12), rgba(58,53,48,0.5)); transition: background var(--transition); }
.collection-card:hover .collection-card__overlay { background: linear-gradient(to bottom, rgba(58,53,48,0.2), rgba(58,53,48,0.58)); }
.collection-card__title { color: var(--ivory); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; margin: 0; }
.collection-card__cta { background: transparent; border-color: rgba(245,242,238,0.85); color: var(--ivory); }
.collection-card:hover .collection-card__cta { background: var(--ivory); color: var(--charcoal); border-color: var(--ivory); }
@media (max-width: 600px) { .collection-grid { grid-template-columns: 1fr; } .collection-card { aspect-ratio: 4 / 3; } }

/* ==========================================================================
   v2.3 — left-aligned split hero, moving banner
   ========================================================================== */

/* Split hero: text aligned left, with balanced padding on both sides */
.hero--split .hero__text { text-align: left; align-items: flex-start; margin-inline: 0; max-width: none; padding-inline: clamp(2rem, 6vw, 6rem); }
.hero--split .hero__text .lead { margin-inline: 0; }
.hero--split .hero__actions { justify-content: flex-start; }

/* Moving banner (marquee) */
.lume-marquee { overflow: hidden; padding: 0.8rem 0; white-space: nowrap; }
.lume-marquee__track { display: inline-flex; will-change: transform; animation: lume-marq var(--marq-speed, 30s) linear infinite; }
.lume-marquee__group { display: inline-flex; flex: none; }
.lume-marquee__group span { display: inline-block; font-family: var(--display); font-style: normal; font-size: 0.74rem; font-weight: 300; letter-spacing: 0.24em; text-transform: uppercase; }
.lume-marquee__sep { margin: 0 1.7rem; }
@keyframes lume-marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.lume-marquee:hover .lume-marquee__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .lume-marquee { text-align: center; }
  .lume-marquee__track { animation: none; }
  .lume-marquee__group + .lume-marquee__group { display: none; }
}

/* ==========================================================================
   v2.4 — clean (non-translucent) headers, smoother frosted newsletter
   ========================================================================== */

/* Headers: no translucent silk overlay (newsletter is the only translucent area) */
.shop-hero { background: var(--parchment); }
.shop-hero.has-image::before,
.page-hero.has-image::before { content: none !important; display: none !important; }
/* Light legibility aid for any header that does use an image (no overlay panel) */
.shop-hero.has-image .overline, .shop-hero.has-image h1,
.page-hero.has-image .overline, .page-hero.has-image h1 { text-shadow: 0 1px 22px rgba(245,242,238,0.6); }

/* Newsletter — smooth gradient band + genuine frosted-glass card */
.newsletter { position: relative; overflow: hidden; background: linear-gradient(165deg, var(--blush-soft) 0%, var(--ivory) 58%, var(--sand) 100%); padding-block: clamp(3rem, 6vw, 5.5rem); }
.newsletter::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 130% at 78% 4%, rgba(255,255,255,0.65), rgba(255,255,255,0) 62%); pointer-events: none; }
.newsletter__inner {
  position: relative; z-index: 1; max-width: 760px; margin-inline: auto; text-align: center;
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3rem);
  background: rgba(255,255,255,0.30);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  backdrop-filter: blur(18px) saturate(1.15);
  border: 1px solid rgba(255,255,255,0.55);
  border-radius: 3px;
  box-shadow: 0 40px 90px -60px rgba(58,53,48,0.45), inset 0 1px 0 rgba(255,255,255,0.5);
}

/* ==========================================================================
   v2.5 — tidy single-product size selector (label stacked above the box)
   ========================================================================== */
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { display: block; width: 100%; text-align: left; padding: 0; border: 0; }
.woocommerce div.product form.cart .variations tr { margin-bottom: 1.1rem; }
.woocommerce div.product form.cart .variations th.label { margin: 0 0 0.55rem; }
.woocommerce div.product form.cart .single_variation_wrap { margin-top: 0.4rem; }
.woocommerce div.product form.cart .single_variation .price { display: block; margin-bottom: 1rem; }

/* ==========================================================================
   v2.6 — checkout/cart primary buttons in espresso (classic + block)
   ========================================================================== */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.button.alt,
.wc-block-cart__submit-button,
.wc-block-components-button.contained,
.wp-block-woocommerce-checkout-actions-block .wc-block-components-button {
  background: var(--espresso) !important;
  border-color: var(--espresso) !important;
  color: var(--ivory) !important;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button.contained:hover {
  background: var(--blush-deep) !important;
  border-color: var(--blush-deep) !important;
}

/* ==========================================================================
   v2.7 — UK postcard cross-sell on the cart
   ========================================================================== */
.lume-crosssell { margin-top: 2.5rem; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid var(--line); background: var(--parchment); }
.lume-crosssell > h2 { font-family: var(--display); font-style: normal; font-weight: 300; font-size: clamp(1.1rem, 2.2vw, 1.4rem); margin: 0 0 1.3rem; text-align: center; }
.lume-crosssell__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem; }
.lume-crosssell__item { text-align: center; }
.lume-crosssell__media { display: block; }
.lume-crosssell__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: contain; background: var(--ivory); margin: 0; }
.lume-crosssell__title { display: block; font-family: var(--display); font-style: normal; font-weight: 300; font-size: 0.95rem; margin: 0.7rem 0 0.2rem; color: var(--charcoal); }
.lume-crosssell__price { font-family: var(--body); font-style: italic; color: var(--warm-grey); margin-bottom: 0.85rem; }
.lume-crosssell__add { font-size: 0.7rem; padding: 0.7rem 1.7rem; }

/* ==========================================================================
   v2.8 — UK postcard popup (modal)
   ========================================================================== */
.lume-modal { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.lume-modal[hidden] { display: none; }
.lume-modal__overlay { position: absolute; inset: 0; background: rgba(57,54,49,0.5); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.lume-modal__card { position: relative; z-index: 1; background: var(--ivory); max-width: 360px; width: 100%; padding: clamp(1.75rem, 4vw, 2.5rem); text-align: center; box-shadow: 0 40px 90px -40px rgba(58,53,48,0.55); animation: lume-modal-in .4s var(--ease, ease); }
@keyframes lume-modal-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.lume-modal__close { position: absolute; top: 0.6rem; right: 0.85rem; background: none; border: 0; font-size: 1.6rem; line-height: 1; color: var(--warm-grey); cursor: pointer; padding: 0.2rem 0.4rem; }
.lume-modal__close:hover { color: var(--charcoal); }
.lume-modal__eyebrow { font-family: var(--display); font-style: normal; font-weight: 300; font-size: 0.66rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--blush-deep); margin: 0 0 0.5rem; }
.lume-modal__card h3 { font-family: var(--display); font-style: normal; font-weight: 300; font-size: 1.2rem; line-height: 1.3; margin: 0 0 1.2rem; color: var(--charcoal); }
.lume-modal__media { margin: 0 0 1rem; }
.lume-modal__media img { display: block; width: auto; max-width: 66%; max-height: 200px; height: auto; margin: 0 auto; padding: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 26px -16px rgba(58,53,48,0.45); }
.lume-modal__name { font-family: var(--display); font-style: normal; font-weight: 300; font-size: 0.95rem; margin: 0 0 0.2rem; color: var(--charcoal); }
.lume-modal__price { font-family: var(--body); font-style: italic; color: var(--warm-grey); margin: 0 0 1.4rem; }
.lume-modal__actions { display: flex; flex-direction: column; gap: 0.7rem; }
.lume-modal__actions .btn { width: 100%; }

/* ==========================================================================
   v2.9 — Newsletter popup (shares .lume-modal base)
   ========================================================================== */
.lume-modal--news .lume-modal__card { max-width: 400px; }
.lume-modal__text { font-family: var(--body); font-style: italic; color: var(--warm-grey); font-size: 1.02rem; line-height: 1.55; margin: 0 0 1.4rem; }
.lume-modal__form { display: flex; flex-direction: column; gap: 0.6rem; }
.lume-modal__form input { width: 100%; padding: 0.85rem 1rem; border: 1px solid var(--line); background: var(--ivory); font-family: var(--display); font-weight: 300; font-size: 0.85rem; color: var(--charcoal); border-radius: 0; }
.lume-modal__form input::placeholder { color: var(--muted); }
.lume-modal__form input:focus { outline: none; border-color: var(--blush-deep); }
.lume-modal__form .btn { width: 100%; margin-top: 0.2rem; }

/* ==========================================================================
   v2.10 — Newsletter home section (warm espresso band, palette tokens)
   ========================================================================== */
.lume-news__band { background: var(--espresso); padding: clamp(48px, 8vw, 88px) 24px; }
.lume-news__card { max-width: 480px; margin: 0 auto; text-align: center; background: none; border: 0; padding: 0; }
.lume-news__over { display: block; font-family: var(--display); font-style: normal; font-weight: 300; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--blush); margin: 0 0 16px; }
.lume-news__h { font-family: var(--body); font-style: italic; font-weight: 400; font-size: clamp(26px, 4vw, 32px); line-height: 1.18; letter-spacing: 0; text-transform: none; color: var(--ivory); margin: 0 0 14px; max-width: none; }
.lume-news__h em { font-style: italic; font-family: var(--body); }
.lume-news__sub { font-family: var(--body); font-style: italic; font-size: 1.05rem; line-height: 1.5; color: rgba(245,242,238,0.72); margin: 0 0 26px; }
.lume-news form { max-width: none; margin: 0; border: 0; padding: 0; display: block; }
.lume-news__names { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.lume-news input { width: 100%; box-sizing: border-box; font-family: var(--display); font-style: normal; font-weight: 300; font-size: 13px; padding: 13px 15px; background: rgba(245,242,238,0.06); border: 1px solid rgba(245,242,238,0.22); color: var(--ivory); border-radius: 0; }
.lume-news input::placeholder { color: rgba(245,242,238,0.5); opacity: 1; }
.lume-news input:focus { outline: none; border-color: var(--blush); }
.lume-news__email { margin-bottom: 14px; }
.lume-news__btn { width: 100%; font-family: var(--display); font-style: normal; font-weight: 300; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; padding: 15px 26px; border: none; cursor: pointer; background: var(--blush); color: var(--charcoal); transition: background var(--transition), color var(--transition); }
.lume-news__btn:hover { background: var(--blush-deep); color: var(--ivory); }
.lume-news__hint { font-family: var(--body); font-style: italic; color: rgba(245,242,238,0.72); font-size: .95rem; margin-top: 14px; }
@media (max-width: 520px) { .lume-news__names { grid-template-columns: 1fr; } }

/* ==========================================================================
   PRODUCT GALLERY — prev/next navigation arrows (v2.11.0)
   ========================================================================== */
.woocommerce div.product .woocommerce-product-gallery { position: relative; }

.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav {
  margin: 0; padding: 0; list-style: none;
}
.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a {
  display: flex; align-items: center; justify-content: center;
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 2.9rem; height: 2.9rem; margin: 0;
  background: rgba(247, 244, 239, 0.86);
  border: 1px solid var(--line-soft); border-radius: 50%;
  color: var(--charcoal); font-size: 0; line-height: 0;
  opacity: 1; cursor: pointer; overflow: hidden;
  box-shadow: 0 2px 12px rgba(58, 53, 48, 0.12);
  transition: opacity var(--transition), background var(--transition), border-color var(--transition);
}
.woocommerce div.product .woocommerce-product-gallery:hover .flex-direction-nav a { opacity: 1; }
.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a:hover {
  background: var(--ivory); border-color: var(--blush);
}
.woocommerce div.product .woocommerce-product-gallery .flex-prev { left: 0.9rem; }
.woocommerce div.product .woocommerce-product-gallery .flex-next { right: 0.9rem; }

.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a::before {
  content: ""; display: block; width: 0.6rem; height: 0.6rem;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
}
.woocommerce div.product .woocommerce-product-gallery .flex-prev::before { transform: rotate(135deg); margin-left: 0.22rem; }
.woocommerce div.product .woocommerce-product-gallery .flex-next::before { transform: rotate(-45deg); margin-right: 0.22rem; }

/* hide a disabled arrow (e.g. single-image products) */
.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a.flex-disabled { display: none !important; }

/* touch devices have no hover — keep arrows visible there */
@media (hover: none) {
  .woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a { opacity: 1; }
}


/* Single product — collection eyebrow above the title */
.woocommerce div.product .lume-collection-eyebrow {
	font-family: var(--display);
	font-weight: 400;
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--blush-deep);
	margin: 0 0 0.5rem;
	line-height: 1.4;
}
.woocommerce div.product .lume-collection-eyebrow a { color: inherit; text-decoration: none; }
.woocommerce div.product .lume-collection-eyebrow a:hover { color: var(--charcoal); }

/* Single product — soft white mat around the image (previews the print border).
   Applied to the inner image link, NOT the slide, so the gallery slider stays
   aligned (styling the slide itself made images bleed when switching). */
.woocommerce div.product .woocommerce-product-gallery__image a {
	display: block;
	background: #fff;
	padding: clamp(10px, 2vw, 22px);
	border: 1px solid var(--line);
}

/* Collection tile pages (the choosers) — trim the big top gap below the header */
.section--collections { padding-top: clamp(1.75rem, 4vw, 3rem); }

/* Postcard popup — one or more matching postcards, side by side */
.lume-modal__card--postcards.is-multi { max-width: 660px; }
.lume-modal__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.4rem; margin: 0 0 1.3rem; }
.lume-modal__item { flex: 0 1 190px; display: flex; flex-direction: column; }
.lume-modal__item .lume-modal__media { margin: 0 0 0.7rem; }
.lume-modal__item .lume-modal__media img { max-width: 100%; max-height: 150px; }
.lume-modal__item .lume-modal__name { margin: 0 0 0.15rem; }
.lume-modal__item .lume-modal__price { margin: 0 0 0.9rem; }
.lume-modal__item .lume-modal__add { margin-top: auto; width: 100%; }

/* ==========================================================================
   PRODUCT GALLERY — dot indicators (minimal layout, no thumbnail row)
   ========================================================================== */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs { display: none; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-paging {
	margin: 1rem 0 0; padding: 0; list-style: none;
	display: flex; justify-content: center; gap: 0.55rem;
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-paging li { margin: 0; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-paging li a {
	display: block; width: 8px; height: 8px; border-radius: 50%;
	background: var(--line); text-indent: -9999px; overflow: hidden;
	cursor: pointer; box-shadow: none;
	transition: background var(--transition);
}
.woocommerce div.product .woocommerce-product-gallery .flex-control-paging li a.flex-active,
.woocommerce div.product .woocommerce-product-gallery .flex-control-paging li a:hover {
	background: var(--blush-deep);
}

/* ---- Portfolio ---- */
.portfolio-content { max-width: 1100px; margin: 0 auto; }
.portfolio-content > h1, .portfolio-content > h2, .portfolio-content > h3 { text-align: center; font-weight: 300; letter-spacing: 0.05em; margin: clamp(3.5rem, 8vw, 6rem) 0 clamp(1.4rem, 3vw, 2.2rem); }
.portfolio-content > *:first-child { margin-top: 0; }
.portfolio-content .portfolio-intro { text-align: center; max-width: 620px; margin: 0 auto clamp(2rem, 5vw, 3.5rem); color: var(--warm-grey); line-height: 1.7; }
.portfolio-content figure { margin: 0 0 clamp(1rem, 2.5vw, 1.8rem); }
.portfolio-content img { display: block; width: 100%; height: auto; }
