:root {
  --wf-ink: #1a1712;
  --wf-ink-2: #262019;
  --wf-paper: #ffffff;
  --wf-surface: #f4f2ee;
  --wf-line: #e4e0d5;
  --wf-muted: #6b6459;
  --wf-gold: #b6873f;
  --wf-gold-soft: #e2cfa0;
  --wf-red: #a23b30;
  --wf-text: #1a1712;
  --wf-radius: 14px;
  --wf-radius-sm: 8px;
  --wf-max: 1200px;
  --wf-shadow: 26, 20, 13;
  --wf-hero-bg-1: #ecdfba;
  --wf-hero-bg-2: #c9aa6d;
  --wf-hero-type: rgba(94, 70, 32, .14);
  --wf-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { max-width: 100%; overflow-x: hidden; }
body { margin: 0; background: var(--wf-paper); color: var(--wf-text); font-family: var(--wf-font); line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
h1, h2, h3 { font-weight: 800; letter-spacing: -.01em; }
.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; }
.wf-container { width: min(var(--wf-max), calc(100% - 32px)); margin: 0 auto; }
.wf-announcement { position: relative; height: 38px; background: var(--wf-ink); color: #fff; overflow: hidden; }
.wf-announcement-line { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 16px; text-align: center; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: 0; transition: opacity .5s ease; }
.wf-announcement-line.is-active { opacity: 1; }
.wf-header { position: sticky; top: 0; z-index: 80; background: var(--wf-ink); color: #fff; border-bottom: 1px solid rgba(255,255,255,.1); }
.wf-header-inner { min-height: 68px; display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; }
.wf-brand { display: flex; align-items: center; }
.wf-brand .custom-logo-link, .wf-footer-brand .custom-logo-link { display: block; }
.wf-brand img.custom-logo { display: block; width: auto; height: 58px; max-height: 58px; }
.wf-footer-brand { display: inline-flex; margin-bottom: 18px; }
.wf-footer-brand img.custom-logo { display: block; width: auto; height: 56px; max-height: 56px; }
.wf-logo-text { display: inline-flex; flex-direction: column; font-weight: 800; letter-spacing: .14em; line-height: 1; }
.wf-logo-text span { font-size: 19px; }
.wf-logo-text small { margin-top: 4px; color: var(--wf-gold); font-size: 10px; letter-spacing: .3em; }
.wf-menu, .wf-mobile-menu, .wf-footer-menu { list-style: none; margin: 0; padding: 0; }
.wf-menu { display: flex; align-items: center; justify-content: center; gap: 18px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.wf-menu a { display: block; padding: 24px 0; color: rgba(255,255,255,.82); transition: color .2s ease; }
.wf-menu a:hover { color: var(--wf-gold); }
.wf-header-tools { display: flex; align-items: center; gap: 14px; font-size: 12px; font-weight: 700; }
.wf-search { position: relative; }
.wf-search input { width: 180px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 9px 14px; background: rgba(255,255,255,.07); color: #fff; }
.wf-search input::placeholder { color: rgba(255,255,255,.6); }
.wf-search-results { position: absolute; right: 0; top: calc(100% + 10px); width: 310px; display: none; overflow: hidden; border-radius: var(--wf-radius); border: 1px solid var(--wf-line); background: #fff; color: var(--wf-text); box-shadow: 0 20px 46px rgba(var(--wf-shadow), .16); }
.wf-search-results.is-active { display: block; }
.wf-search-results a { display: grid; grid-template-columns: 48px 1fr; gap: 10px; padding: 10px; border-bottom: 1px solid var(--wf-line); }
.wf-tool-link, .wf-cart-link { display: inline-flex; align-items: center; color: rgba(255,255,255,.82); transition: color .2s ease; }
.wf-tool-link:hover, .wf-cart-link:hover { color: var(--wf-gold); }
.wf-tool-link svg, .wf-cart-link svg { width: 20px; height: 20px; }
.wf-cart-link span { display: inline-grid; min-width: 18px; height: 18px; place-items: center; margin-left: 4px; border-radius: 999px; background: var(--wf-gold); color: var(--wf-ink); font-weight: 800; font-size: 10px; }
.wf-menu-toggle { display: none; width: 42px; height: 42px; border: 0; background: none; }
.wf-menu-toggle span { display: block; height: 2px; margin: 6px 0; background: #fff; }
body.wf-no-scroll { overflow: hidden; }
.wf-mobile-backdrop { position: fixed; inset: 0; z-index: 95; background: rgba(10, 8, 5, .55); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.wf-mobile-backdrop.is-open { opacity: 1; pointer-events: auto; }
.wf-mobile-panel { position: fixed; top: 0; bottom: 0; left: 0; z-index: 96; display: block; width: min(84vw, 320px); overflow-y: auto; background: var(--wf-ink-2); color: #fff; transform: translateX(-100%); transition: transform .28s ease; box-shadow: 24px 0 44px rgba(0,0,0,.28); }
.wf-mobile-panel.is-open { transform: translateX(0); }
.wf-mobile-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid rgba(255,255,255,.12); }
.wf-mobile-panel-close { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: none; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.wf-mobile-panel .wf-mobile-menu { padding: 10px 20px 24px; }

.wf-btn, .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 44px; padding: 12px 24px; border: 1px solid var(--wf-ink); border-radius: 999px; cursor: pointer; font-size: 12px; font-weight: 700; letter-spacing: .06em; line-height: 1; text-transform: uppercase; transition: transform .18s ease, box-shadow .18s ease; }
.wf-btn-dark, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { background: var(--wf-ink); color: #fff; }
.wf-btn-light { background: #fff; color: var(--wf-ink); }
.wf-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(var(--wf-shadow), .16); }
.woocommerce a.button:focus, .woocommerce button.button:focus, .woocommerce input.button:focus { background: var(--wf-ink); color: #fff; outline: 2px solid var(--wf-gold); outline-offset: 2px; }
.woocommerce a.button.alt:focus, .woocommerce button.button.alt:focus, .woocommerce input.button.alt:focus, .woocommerce .single_add_to_cart_button:focus { background: var(--wf-ink); color: #fff; }

/* Hero slider */
.wf-hero-slider { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--wf-hero-bg-1), var(--wf-hero-bg-2)); }
.wf-hero-track { display: flex; width: 100%; transition: transform .6s cubic-bezier(.4,0,.2,1); }
.wf-hero-slide { position: relative; flex: 0 0 100%; width: 100%; min-height: 560px; display: flex; align-items: center; overflow: hidden; }
.wf-hero-slide-bg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; pointer-events: none; }
.wf-hero-slide-bg { padding: 0 4vw; }
.wf-hero-slide-bg span { font-size: clamp(36px, 7.5vw, 130px); font-weight: 800; letter-spacing: -.02em; text-transform: uppercase; color: var(--wf-hero-type); white-space: nowrap; line-height: 1; max-width: 100%; }
.wf-hero-slide-inner { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding: 64px 0; text-align: center; }
.wf-eyebrow { display: block; margin-bottom: 12px; color: var(--wf-muted); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.wf-review-band .wf-eyebrow { color: var(--wf-gold); }
.wf-hero-slide-name { margin: 0; color: var(--wf-ink); font-size: clamp(28px, 3.6vw, 42px); line-height: 1.04; letter-spacing: -.01em; }
.wf-hero-slide-media { position: relative; display: grid; place-items: center; min-height: 320px; }
.wf-hero-slide-media img { max-height: 340px; width: auto; object-fit: contain; transform: rotate(-22deg); filter: drop-shadow(0 34px 30px rgba(var(--wf-shadow), .32)); animation: wf-float 5s ease-in-out infinite; }
.wf-hero-slide-media img.wf-signature-cutout { max-height: 390px; transform: rotate(0deg); }
@keyframes wf-float { 0%, 100% { transform: rotate(-22deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(-16px); } }
@media (prefers-reduced-motion: reduce) { .wf-hero-slide-media img { animation: none; } }
.wf-hero-nav { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); width: 44px; height: 44px; border: 1px solid rgba(26,23,18,.18); border-radius: 999px; background: rgba(255,255,255,.7); color: var(--wf-ink); font-size: 20px; line-height: 1; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.wf-hero-nav:hover { background: #fff; transform: translateY(-50%) scale(1.05); }
.wf-hero-prev { left: 20px; }
.wf-hero-next { right: 20px; }
.wf-hero-dots { position: absolute; right: 28px; bottom: 22px; z-index: 3; display: flex; gap: 8px; }
.wf-hero-dots button { width: 9px; height: 9px; padding: 0; border: 1px solid rgba(26,23,18,.35); border-radius: 999px; background: transparent; cursor: pointer; transition: background .2s ease, width .2s ease; }
.wf-hero-dots button.is-active { width: 22px; background: var(--wf-ink); border-color: var(--wf-ink); }

.wf-section { padding: 58px 0; }
.wf-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.wf-section-head h2, .wf-feature-inner h2, .wf-newsletter h2 { margin: 0; font-size: clamp(24px, 3vw, 36px); line-height: 1.08; }
.wf-section-head a { color: var(--wf-ink); opacity: .7; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.wf-section-actions { display: flex; align-items: center; gap: 9px; }
.wf-section-actions button { width: 36px; height: 36px; border: 1px solid var(--wf-line); border-radius: 999px; background: #fff; color: var(--wf-ink); font-size: 22px; line-height: 1; cursor: pointer; transition: border-color .2s ease; }
.wf-section-actions button:hover { border-color: var(--wf-gold); }

/* Promo tiles: single ink-to-gold family, no clashing hues */
.wf-promo-tiles { padding: 18px 0 48px; background: #fff; }
.wf-promo-grid { display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 16px; }
.wf-promo-card { min-height: 196px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; border-radius: var(--wf-radius); color: #fff; background: linear-gradient(150deg, var(--wf-ink) 0%, var(--wf-ink-2) 55%, #574524 100%); box-shadow: 0 18px 40px rgba(var(--wf-shadow), .16); }
.wf-promo-card-large { min-height: 260px; background: linear-gradient(155deg, var(--wf-ink) 0%, var(--wf-ink-2) 46%, #7a5f2e 100%); }
.wf-promo-card-red { background: linear-gradient(150deg, var(--wf-ink) 0%, #3a1613 55%, var(--wf-red) 130%); }
.wf-promo-card:after { content: ""; position: absolute; right: 12px; top: 12px; width: 108px; height: 150px; background: url(../images/placeholder-bottle.png) center/contain no-repeat; transform: rotate(25deg); filter: drop-shadow(0 14px 22px rgba(0,0,0,.35)); }
.wf-promo-card span, .wf-promo-card h2, .wf-promo-card h3, .wf-promo-card b { position: relative; z-index: 2; }
.wf-promo-card span { color: var(--wf-gold-soft); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.wf-promo-card h2 { max-width: 560px; margin: 8px 0 16px; font-size: clamp(28px, 3.6vw, 46px); line-height: 1.02; }
.wf-promo-card h3 { max-width: 260px; margin: 7px 0 0; font-size: 21px; line-height: 1.1; }
.wf-promo-card b { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--wf-gold-soft); }

/* Category grid: same ink/gold family, angle-only variation */
.wf-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.wf-feature-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); overflow: hidden; box-shadow: 0 10px 24px rgba(var(--wf-shadow), .06); transition: transform .2s ease, box-shadow .2s ease; }
.wf-feature-card:hover { transform: translateY(-4px); box-shadow: 0 20px 36px rgba(var(--wf-shadow), .12); }
.wf-feature-photo { display: block; aspect-ratio: 4 / 3; background: var(--wf-surface); overflow: hidden; }
.wf-feature-photo img { width: 100%; height: 100%; object-fit: contain; padding: 14px; }
.wf-feature-card b { padding: 14px 16px 2px; font-size: 16px; }
.wf-feature-card p { margin: 0; padding: 0 16px 16px; color: var(--wf-muted); font-size: 13px; }

.wf-latest-band { padding: 58px 0; color: #fff; background: linear-gradient(120deg, #241a10 0%, #3c2c1a 55%, #6b4e28 100%); }
.wf-latest-grid { display: grid; grid-template-columns: minmax(240px, .6fr) 1fr; gap: 36px; align-items: center; }
.wf-latest-intro h2 { margin: 0 0 12px; font-size: clamp(26px, 3.2vw, 38px); }
.wf-latest-intro p { max-width: 320px; margin: 0 0 22px; color: rgba(255,255,255,.78); }
.wf-latest-cards-head { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.wf-latest-cards-head button { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; transition: background .2s ease; }
.wf-latest-cards-head button:hover { background: rgba(255,255,255,.2); }
.wf-latest-cards-wrap { min-width: 0; }
.wf-latest-cards-wrap .wf-slider-viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.wf-latest-cards-wrap .wf-slider-viewport::-webkit-scrollbar { display: none; }
.wf-latest-cards { display: flex; gap: 16px; width: max-content; }
.wf-latest-card { display: flex; flex-direction: column; width: 200px; flex: 0 0 200px; scroll-snap-align: start; padding: 18px; background: #fff; color: var(--wf-text); border-radius: var(--wf-radius); text-align: center; }
.wf-latest-card-media { display: grid; place-items: center; aspect-ratio: 1; margin-bottom: 12px; background: var(--wf-surface); border-radius: var(--wf-radius-sm); overflow: hidden; }
.wf-latest-card-media img { max-width: 76%; max-height: 76%; object-fit: contain; }
.wf-latest-card b { font-size: 15px; margin-bottom: 4px; }
.wf-latest-card p { margin: 0 0 14px; color: var(--wf-muted); font-size: 12px; }
.wf-btn-mini { display: inline-flex; align-items: center; justify-content: center; margin-top: auto; padding: 9px 16px; border-radius: 999px; background: var(--wf-gold); color: var(--wf-ink); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.woocommerce ul.products { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products:before, .woocommerce ul.products:after { content: none; display: none; }
.woocommerce ul.products li.product { width: 100%; float: none; margin: 0; }
/* WooCommerce's own woocommerce-smallscreen.css ships `ul.products[class*="columns-"] li.product { width: 48% }`
   below 768px, and its attribute selector outranks the rule above regardless of source order, shrinking every
   card to half its grid column on mobile. Match its specificity to reassert our grid-filling width. */
.woocommerce ul.products[class*="columns-"] li.product { width: 100%; float: none; margin: 0; }
.wf-slider-viewport { overflow: visible; }
.wf-product-carousel .wf-slider-viewport { overflow-x: auto; scroll-snap-type: x mandatory; padding: 3px 0 6px; scrollbar-width: none; -ms-overflow-style: none; }
.wf-product-carousel .wf-slider-viewport::-webkit-scrollbar { display: none; }
.wf-product-carousel .woocommerce ul.products { display: flex; gap: 12px; width: max-content; }
.wf-product-carousel .woocommerce ul.products li.product { width: 216px; flex: 0 0 216px; scroll-snap-align: start; }
.wf-product-card { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); background: #fff; box-shadow: 0 6px 18px rgba(var(--wf-shadow), .05); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.wf-product-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(var(--wf-shadow), .12); border-color: rgba(var(--wf-shadow), .12); }
.wf-product-media { position: relative; width: 100%; height: 0; flex-shrink: 0; padding-top: 100%; overflow: hidden; background: linear-gradient(180deg, #f8f6f2, #efece4); }
.wf-product-media > a { position: absolute; inset: 0; display: grid; place-items: center; }
.wf-product-media img { width: 100%; height: 100%; object-fit: contain; padding: 20px; transition: transform .32s ease; }
.wf-product-card:hover img { transform: scale(1.045); }

/* Product placeholder art: reuses assets/images/placeholder-bottle.png instead of a hand-drawn block */
.wf-product-art { position: relative; width: 100%; height: 100%; display: grid; place-items: center; background: var(--wf-surface); }
.wf-product-art img { width: 72%; height: 72%; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(var(--wf-shadow), .1)); }

.wf-sale-badge { position: absolute; left: 10px; top: 10px; z-index: 4; padding: 5px 10px; border-radius: 999px; background: var(--wf-red); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.wf-card-actions { position: absolute; right: 9px; top: 9px; z-index: 5; display: flex; flex-direction: column; gap: 8px; opacity: 0; transform: translateX(4px); transition: opacity .18s ease, transform .18s ease; }
.wf-product-card:hover .wf-card-actions, .wf-card-actions:focus-within { opacity: 1; transform: translateX(0); }
.wf-icon-btn { width: 34px; height: 34px; border: 1px solid rgba(26,23,18,.06); border-radius: 999px; background: #fff; color: var(--wf-ink); cursor: pointer; box-shadow: 0 6px 14px rgba(var(--wf-shadow), .1); transition: background .18s ease, color .18s ease, transform .18s ease; }
.wf-icon-btn:hover { transform: translateY(-2px); }
.wf-icon-btn.is-active { background: var(--wf-gold); color: var(--wf-ink); border-color: var(--wf-gold); }
.wf-product-info { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 16px 16px 18px; text-align: left; }
.woocommerce ul.products li.product .wf-product-info .button { display: inline-flex !important; align-items: center; justify-content: center; text-align: center; margin-top: auto; white-space: nowrap; }
.woocommerce-loop-product__title { min-height: 42px; margin: 0 0 6px; font-size: 15px; line-height: 1.35; font-weight: 800; }
.woocommerce-loop-product__title a, a .woocommerce-loop-product__title { color: inherit; }
.wf-product-notes { min-height: 19px; margin: 0 0 8px; color: var(--wf-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.price { display: block; margin: 0 0 12px; color: var(--wf-gold); font-weight: 800; font-size: 14px; }
.price del { margin-left: 4px; color: var(--wf-muted); font-weight: 500; }
.star-rating { color: var(--wf-gold); }

.wf-arch-section { text-align: center; }
.wf-arch-head { margin-bottom: 40px; }
.wf-arch-head .wf-eyebrow { margin-bottom: 6px; }
.wf-arch-head h2 { margin: 0 0 16px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(28px, 3.4vw, 40px); }
.wf-arch-divider { display: inline-block; width: 48px; height: 2px; background: var(--wf-gold); }
.wf-arch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.wf-arch-card { display: flex; flex-direction: column; align-items: center; color: inherit; }
.wf-arch-frame { position: relative; display: flex; align-items: flex-end; justify-content: center; width: 100%; aspect-ratio: 3 / 4; margin-bottom: 18px; border-radius: 50% 50% 6px 6px / 34% 34% 6px 6px; overflow: hidden; background: linear-gradient(160deg, var(--wf-hero-bg-1), var(--wf-surface) 72%); box-shadow: 0 24px 44px rgba(var(--wf-shadow), .14); transition: transform .25s ease, box-shadow .25s ease; }
.wf-arch-card:hover .wf-arch-frame { transform: translateY(-4px); box-shadow: 0 30px 54px rgba(var(--wf-shadow), .2); }
.wf-arch-pedestal { position: absolute; bottom: 14%; width: 46%; height: 14px; border-radius: 999px; background: rgba(var(--wf-shadow), .16); filter: blur(3px); }
.wf-arch-frame img { position: relative; z-index: 2; max-height: 78%; width: auto; object-fit: contain; filter: drop-shadow(0 18px 20px rgba(var(--wf-shadow), .22)); }
.wf-arch-name { font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: 18px; margin-bottom: 4px; }
.wf-arch-type { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--wf-muted); margin-bottom: 8px; }
.wf-arch-price { color: var(--wf-gold); font-weight: 800; }

.wf-feature-banner { position: relative; overflow: hidden; padding: 74px 0; color: #fff; background: linear-gradient(115deg, var(--wf-ink) 0%, var(--wf-ink-2) 48%, #5c481f 100%); }
.wf-feature-media { position: absolute; right: 6%; top: 50%; transform: translateY(-50%); z-index: 1; pointer-events: none; }
.wf-feature-media img { max-height: 280px; width: auto; object-fit: contain; transform: rotate(25deg); filter: drop-shadow(0 26px 30px rgba(0,0,0,.4)); }
.wf-feature-inner { position: relative; z-index: 2; }
.wf-feature-inner { display: grid; justify-items: start; gap: 15px; }
.wf-feature-inner span { color: var(--wf-gold-soft); font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.wf-why { background: var(--wf-surface); }
.wf-benefits { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.wf-benefits div { min-height: 114px; padding: 16px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); background: #fff; }
.wf-benefits span { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 13px; border-radius: 999px; background: linear-gradient(135deg, var(--wf-gold), var(--wf-ink)); }
.wf-benefits svg { width: 20px; height: 20px; color: #fff; }

.wf-review-band { padding: 64px 0; background: var(--wf-ink); color: #fff; }
.wf-review-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 36px; align-items: center; }
.wf-review-grid h2 { margin: 0; max-width: 680px; font-size: clamp(26px, 3.6vw, 44px); line-height: 1.06; }
.wf-review-grid blockquote { margin: 0; padding: 26px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--wf-radius); background: rgba(255,255,255,.05); }
.wf-review-grid strong { color: var(--wf-gold); letter-spacing: .1em; }
.wf-review-grid p { color: rgba(255,255,255,.8); font-size: 17px; }
.wf-review-grid cite { color: rgba(255,255,255,.56); font-style: normal; font-weight: 700; }

.wf-social-gallery { display: grid; grid-template-columns: .75fr 1.25fr; gap: 28px; align-items: center; }
.wf-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.wf-gallery-grid span { display: block; aspect-ratio: 1; border-radius: var(--wf-radius-sm); background: linear-gradient(150deg, var(--wf-ink), var(--wf-ink-2) 55%, var(--wf-gold) 150%); background-size: cover; background-position: center; }
.wf-gallery-grid span:nth-child(2) { background: linear-gradient(160deg, var(--wf-ink-2), #4a3a1e 55%, var(--wf-gold-soft) 150%); }
.wf-gallery-grid span:nth-child(3) { background: linear-gradient(140deg, var(--wf-ink), #5b481f 60%, var(--wf-gold) 150%); }
.wf-gallery-grid span:nth-child(4) { background: linear-gradient(170deg, var(--wf-ink-2), var(--wf-ink) 55%, var(--wf-gold-soft) 150%); }

.wf-newsletter { padding: 52px 0; background: var(--wf-surface); }
.wf-newsletter-inner { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.wf-newsletter p { margin-bottom: 0; color: var(--wf-muted); }
.wf-newsletter form { display: flex; flex-wrap: wrap; gap: 10px; }
.wf-newsletter-result { flex-basis: 100%; }
.wf-newsletter input { min-width: 300px; min-height: 44px; border: 1px solid var(--wf-line); border-radius: 999px; padding: 0 16px; background: #fff; }

.wf-footer { background: var(--wf-ink); color: #fff; }
.wf-footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.25fr; gap: 32px; padding: 56px 0; }
.wf-footer h2 { color: var(--wf-gold); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.wf-footer p, .wf-footer a { color: #d6d2c9; }
.wf-footer-menu li { margin: 8px 0; }
.wf-socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.wf-socials a { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff; transition: background .2s ease, border-color .2s ease; }
.wf-socials a:hover { background: rgba(255,255,255,.1); border-color: var(--wf-gold); }
.wf-socials svg { width: 17px; height: 17px; }
.wf-footer-bottom { display: flex; padding: 18px 16px; border-top: 1px solid rgba(255,255,255,.12); color: #bab6ac; font-size: 12px; }
.wf-footer-bottom a { color: var(--wf-gold); text-decoration: underline; text-underline-offset: 2px; }

.wf-whatsapp, .wf-live-chat { position: fixed; right: 18px; z-index: 90; color: #fff; font-weight: 800; box-shadow: 0 14px 28px rgba(var(--wf-shadow), .28); transition: transform .18s ease; }
.wf-whatsapp:hover, .wf-live-chat:hover { transform: translateY(-2px); }
.wf-whatsapp { bottom: 18px; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 999px; background: #25d366; }
.wf-whatsapp svg { width: 30px; height: 30px; fill: #fff; }
.wf-live-chat { bottom: 84px; padding: 12px 18px; border-radius: 999px; background: var(--wf-ink-2); }

.wf-shop-header { display: flex; align-items: end; justify-content: space-between; margin: 44px 0 32px; }
.wf-shop-header h1 { margin: 0; font-size: clamp(32px, 3.6vw, 48px); }
.wf-shop-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; }
.wf-shop-layout ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.wf-shop-sidebar { position: sticky; top: 90px; align-self: start; max-height: calc(100vh - 110px); overflow-y: auto; padding: 24px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); background: #fff; scrollbar-width: thin; }
.wf-shop-sidebar h2 { margin: 0 0 18px; font-size: 20px; }
.wf-filter-widget { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--wf-line); }
.wf-filter-title, .wf-filter-widget h3 { margin: 0 0 12px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--wf-muted); }
.wf-filter-widget .price_slider_amount .button { width: 100%; margin-top: 4px; }
.woocommerce-result-count { font-size: 13px; color: var(--wf-muted); }
.woocommerce-ordering select { -webkit-appearance: none; appearance: none; min-height: 42px; padding: 0 38px 0 16px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1712' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; background-size: 14px; font-size: 13px; font-family: inherit; color: var(--wf-text); cursor: pointer; }
.wf-filter-categories { list-style: none; margin: 0; padding: 0; }
.wf-filter-categories li { margin: 0 0 2px; padding: 8px 6px; border-radius: var(--wf-radius-sm); font-size: 14px; color: var(--wf-muted); line-height: 1.6; transition: background .15s ease; }
.wf-filter-categories li:hover { background: var(--wf-surface); }
.wf-filter-categories a { display: inline-flex; align-items: center; vertical-align: middle; gap: 10px; color: var(--wf-text); transition: color .15s ease; }
.wf-filter-categories a:hover { color: var(--wf-gold); }
.wf-filter-categories a::before { content: ""; flex: none; width: 16px; height: 16px; border: 1.5px solid var(--wf-line); border-radius: 4px; background: #fff center/10px no-repeat; transition: background-color .15s ease, border-color .15s ease; }
.wf-filter-categories a:hover::before { border-color: var(--wf-gold); }
.wf-filter-categories li.current-cat > a::before { border-color: var(--wf-ink); background-color: var(--wf-ink); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); }
.wf-filter-categories li.current-cat > a { font-weight: 700; }
.woocommerce .widget_price_filter,
.wf-filter-widget.widget_price_filter {
  overflow: hidden;
  padding: 18px 16px 16px;
  border: 1px solid var(--wf-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(var(--wf-shadow), .05);
}
.woocommerce .widget_price_filter .wf-filter-title,
.woocommerce .widget_price_filter h3,
.wf-filter-widget.widget_price_filter .wf-filter-title,
.wf-filter-widget.widget_price_filter h3 {
  margin: 0 0 16px;
  color: var(--wf-ink);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .14em;
}
.widget_price_filter .price_slider_wrapper { padding: 12px 8px 0; }
.widget_price_filter .price_slider { margin-bottom: 18px; }
.widget_price_filter .price_slider_amount { display: grid !important; grid-template-columns: 1fr; gap: 12px; text-align: left !important; }
.widget_price_filter .price_slider_amount .button { width: 100%; min-height: 42px; margin: 0 !important; padding: 8px 16px; border-radius: 10px; font-size: 11px; }
.widget_price_filter .price_label { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 11px 12px; border: 1px solid #efe8dd; border-radius: 10px; background: #fbfaf7; color: var(--wf-ink); font-size: 13px; font-weight: 800; line-height: 1.3; text-align: center; }
.widget_price_filter .price_label span { color: #a1742f; font-weight: 900; }
.widget_price_filter .price_slider_wrapper .ui-slider {
  position: relative;
  height: 6px !important;
  margin: 0 8px 18px;
  border: 0 !important;
  border-radius: 999px !important;
  background: #ece6dc !important;
  box-shadow: inset 0 1px 2px rgba(var(--wf-shadow), .08);
}
.widget_price_filter .price_slider_wrapper .ui-slider-range {
  position: absolute;
  top: 0 !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #9f7935, var(--wf-gold)) !important;
}
.widget_price_filter .price_slider_wrapper .ui-slider-handle {
  position: absolute;
  top: 50% !important;
  width: 22px !important;
  height: 22px !important;
  margin-top: -11px !important;
  margin-left: -11px !important;
  border: 3px solid #fff !important;
  border-radius: 999px !important;
  background: var(--wf-ink) !important;
  box-shadow: 0 5px 14px rgba(var(--wf-shadow), .28) !important;
  cursor: grab;
  outline: none;
}
.widget_price_filter .price_slider_wrapper .ui-slider-handle:active {
  cursor: grabbing;
  transform: scale(.96);
}
.widget_price_filter .price_slider_wrapper .ui-slider-handle:focus-visible {
  box-shadow: 0 0 0 3px rgba(183, 132, 48, .24), 0 5px 14px rgba(var(--wf-shadow), .28) !important;
}
.wf-filter-toggle { display: none; }

.wf-page { padding: 56px 0; }
.wf-page-card { max-width: 900px; margin: 0 auto 22px; }
.wf-content { font-size: 17px; }
.woocommerce-breadcrumb { margin: 20px 0 0; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wf-muted); }
.woocommerce-breadcrumb a { color: var(--wf-muted); }
.woocommerce-breadcrumb a:hover { color: var(--wf-gold); }

/* My Account: WooCommerce ships this page with almost no visual structure of its own,
   so give the nav/content split and its notices, tables and forms the same card language
   used across the rest of the shop. */
/* Scoped to :has(.woocommerce-MyAccount-navigation): the logged-out login/register page reuses
   this same .woocommerce-account body class but has no sidebar nav, just a single .col2-set
   child. Without this guard the grid still applied there, squeezing both forms into the 220px
   nav column meant for logged-in pages and leaving the rest of the page blank. */
.woocommerce-account .wf-content .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: start; }
/* WooCommerce's core CSS puts an explicit float + percentage width on both columns; an explicit
   width on a grid item overrides the track's stretch sizing, so without this reset they shrink
   to their old two-thirds/one-third split instead of filling the grid columns above. */
.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; float: none !important; width: auto !important; }
.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; float: none !important; width: auto !important; }
.woocommerce-account .woocommerce-MyAccount-navigation { padding: 10px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a { display: block; padding: 11px 14px; border-radius: var(--wf-radius-sm); color: var(--wf-text); font-size: 14px; font-weight: 600; transition: background .15s ease, color .15s ease; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover { background: var(--wf-surface); }
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a { background: var(--wf-ink); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--wf-line); }
.woocommerce-account .woocommerce-info, .woocommerce-account .woocommerce-message, .woocommerce-account .woocommerce-error { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 22px; padding: 14px 18px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); background: var(--wf-surface); color: var(--wf-text); font-size: 14px; list-style: none; }
.woocommerce-account .woocommerce-info .button, .woocommerce-account .woocommerce-message .button { float: none; order: 2; margin: 0; }
.woocommerce-account table.shop_table { width: 100%; margin: 0 0 24px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); border-collapse: collapse; overflow: hidden; }
.woocommerce-account table.shop_table th, .woocommerce-account table.shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--wf-line); font-size: 14px; }
.woocommerce-account table.shop_table thead th { background: var(--wf-surface); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wf-muted); }
.woocommerce-account table.shop_table tbody tr:last-child td { border-bottom: 0; }
.woocommerce-account table.shop_table .button { min-height: 36px; padding: 8px 16px; font-size: 11px; }
.woocommerce-account .woocommerce-MyAccount-content form .form-row { margin-bottom: 14px; }
.woocommerce-account .woocommerce-MyAccount-content label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-content input.input-text, .woocommerce-account .woocommerce-MyAccount-content select { width: 100%; padding: 12px 14px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); font-family: inherit; font-size: 14px; }
/* Login and Register now live on separate pages/forms instead of WooCommerce's default
   side-by-side layout; cap their width so a lone form doesn't stretch the full page-card width,
   and center the box itself on the page while keeping its own contents left-aligned. */
/* WooCommerce core sets `.woocommerce form.login, .woocommerce form.register { margin: 2em 0 }`
   at equal-or-higher specificity than a plain class selector, which silently wins the `margin`
   property and blocks auto-centering; matching its exact selector shape (and loading after it)
   is what lets this rule actually win instead of needing !important. */
.woocommerce form.woocommerce-form-login, .woocommerce form.woocommerce-form-register { max-width: 480px; width: 100%; box-sizing: border-box; margin: 2em auto; text-align: left; }
.wf-auth-switch { max-width: 480px; margin: 4px auto 0; font-size: 14px; color: var(--wf-muted); text-align: center; }
.wf-auth-switch a { color: var(--wf-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.wf-single-product .product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: 44px; align-items: start; margin-top: 40px; }
.wf-single-product .product > .woocommerce-tabs,
.wf-single-product .product > .related.products,
.wf-single-product .product > .upsells.products { grid-column: 1 / -1; margin-top: 24px; }
/* Square, centered main-image frame. flexslider positions slides itself with
   inline width/margin math that assumes block/float layout — do not set
   display:flex or aspect-ratio on .woocommerce-product-gallery__wrapper (the
   element flexslider actually manipulates), it breaks that math into a
   runaway layout. The square/overflow-hidden crop belongs on .flex-viewport
   alone, NOT on the outer .woocommerce-product-gallery: .flex-control-nav
   (the thumbnail strip) is also a direct child of the outer element, as a
   sibling of .flex-viewport, not nested inside it — squaring the outer
   element clips the thumbnail row along with it, hiding it entirely. */
.wf-single-product .woocommerce-product-gallery { width: 100% !important; float: none !important; border-radius: var(--wf-radius); background: var(--wf-surface); }
.wf-single-product .woocommerce-product-gallery .flex-viewport { aspect-ratio: 1; overflow: hidden; border-radius: var(--wf-radius); }
.wf-single-product .woocommerce-product-gallery__wrapper { height: 100%; margin: 0; }
.wf-single-product .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
.wf-single-product .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a { height: 100%; }
.wf-single-product .woocommerce-product-gallery img { max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; }
.wf-single-product .flex-control-thumbs { display: flex; flex-wrap: nowrap; gap: 8px; margin: 10px 0 0; padding: 0 0 4px; list-style: none; overflow-x: auto; }
/* WooCommerce's own core rule (.woocommerce div.product div.images .flex-control-thumbs li { width: 25%; }) outranks a plain
   ".flex-control-thumbs li" selector on specificity alone, which is why thumbnails were rendering at a quarter of the gallery
   width instead of this size — match its specificity here so our smaller, single-row size actually applies. */
.wf-single-product .woocommerce div.product div.images .flex-control-thumbs li,
.wf-single-product .flex-control-thumbs li { width: 56px; flex: 0 0 56px; float: none; }
.wf-single-product .flex-control-thumbs img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--wf-surface); border-radius: var(--wf-radius-sm); border: 1px solid var(--wf-line); cursor: pointer; opacity: .7; transition: opacity .2s ease, border-color .2s ease; }
.wf-single-product .flex-control-thumbs img:hover { opacity: 1; }
.wf-single-product .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--wf-gold); }
.wf-single-product .summary { width: 100% !important; float: none !important; clear: none; }
.wf-single-product .summary > h1 { margin-top: 0; }
.wf-single-product .summary .price { display: block; margin: 10px 0 18px; font-size: 26px; }
.wf-single-product .woocommerce-product-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; font-size: 13px; color: var(--wf-muted); }
.wf-single-product .woocommerce-product-details__short-description { margin-bottom: 26px; padding-bottom: 24px; border-bottom: 1px solid var(--wf-line); color: rgba(26,23,18,.78); }
.wf-single-product form.cart { margin-bottom: 0; }
.wf-single-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; }
.wf-single-product form.cart:not(:has(table.variations)) { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; }
.wf-single-product .variations { width: 100%; margin-bottom: 22px; border-collapse: collapse; }
.wf-single-product .variations tr + tr { margin-top: 10px; }
.wf-single-product .variations td, .wf-single-product .variations th { display: block; padding: 0; border: 0; text-align: left; }
.wf-single-product .variations th.label { margin-bottom: 8px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--wf-muted); }
.wf-single-product .variations td.value { margin-bottom: 14px; }
.wf-single-product .variations select { -webkit-appearance: none; appearance: none; min-height: 46px; width: 100%; max-width: 280px; padding: 0 40px 0 16px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1712' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center; background-size: 14px; font-size: 14px; font-family: inherit; color: var(--wf-text); cursor: pointer; transition: border-color .18s ease; }
.wf-single-product .variations select:hover, .wf-single-product .variations select:focus { border-color: var(--wf-ink); outline: none; }
.wf-single-product .woocommerce-variation-price .price { font-size: 22px; }
.wf-single-product .reset_variations { display: inline-block; margin-top: 8px; font-size: 12px; color: var(--wf-muted); text-decoration: underline; }
.wf-single-product .quantity { display: flex; flex: none; align-items: center; border: 1px solid var(--wf-line); border-radius: 999px; overflow: hidden; }
.wf-single-product .quantity input.qty { width: 46px; min-height: 44px; padding: 0; border: 0; text-align: center; background: transparent; -moz-appearance: textfield; }
.wf-single-product .quantity input.qty::-webkit-outer-spin-button,
.wf-single-product .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.wf-qty-btn { width: 38px; height: 44px; border: 0; background: #fff; color: var(--wf-ink); font-size: 16px; line-height: 1; cursor: pointer; }
.wf-qty-btn:hover { background: var(--wf-surface); }
.wf-single-product .single_add_to_cart_button { flex: 1 1 0; min-width: 0; min-height: 48px; margin: 0; padding: 0 20px; text-align: center; white-space: nowrap; }
.wf-buy-now { display: inline-flex; flex: 1 1 0; min-width: 0; align-items: center; justify-content: center; min-height: 48px; margin: 0; padding: 0 20px; border: 1px solid var(--wf-ink); border-radius: 999px; background: #fff; color: var(--wf-ink); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; transition: background .18s ease, opacity .18s ease; }
.wf-buy-now:hover { background: var(--wf-surface); }
.wf-buy-now:disabled, .wf-buy-now.disabled { opacity: .4; cursor: not-allowed; }
.wf-buy-now:disabled:hover, .wf-buy-now.disabled:hover { background: #fff; }
.wf-product-trust { display: flex; flex-direction: column; gap: 10px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--wf-line); list-style: none; }
.wf-product-trust li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--wf-text); }
.wf-product-trust svg { flex: none; width: 18px; height: 18px; color: var(--wf-gold); }
.wf-product-tax-note { margin: 12px 0 0; font-size: 12px; color: var(--wf-muted); }
.wf-product-tax-note a { color: var(--wf-ink); text-decoration: underline; text-underline-offset: 2px; }
.wf-single-product .product_meta { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--wf-line); font-size: 13px; color: var(--wf-muted); }
.wf-single-product .product_meta > span { display: block; margin-bottom: 6px; }
.wf-single-product .product_meta a { color: var(--wf-ink); text-decoration: underline; text-underline-offset: 2px; }
.wf-single-product .related.products h2 { margin: 0 0 20px; font-size: clamp(22px, 2.6vw, 30px); }
.wf-single-product .related.products ul.products { display: flex; flex-wrap: wrap; gap: 18px; }
.wf-single-product .related.products ul.products li.product,
.wf-single-product .related.products .wf-product-card { width: 220px; flex: 0 0 220px; display: block; height: auto; }
.wf-single-product .related.products .wf-product-media { width: 100%; height: 220px; padding-top: 0; }
.wf-single-product .related.products .wf-product-info { display: block; flex: none; padding: 14px 14px 16px; text-align: left; }
.wf-single-product .related.products .wf-product-info .button { margin-top: 12px; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce .single_add_to_cart_button { background: var(--wf-ink) !important; color: #fff !important; border-color: var(--wf-ink) !important; }
.woocommerce .single_add_to_cart_button.disabled, .woocommerce .single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; }
.wf-quick-modal { position: fixed; inset: 0; z-index: 100; display: none; place-items: center; padding: 20px; background: rgba(20,17,12,.6); }
.wf-quick-modal:not([hidden]) { display: grid; }
.wf-quick-dialog { position: relative; width: 100%; max-width: 860px; max-height: 88vh; overflow: auto; border-radius: var(--wf-radius); background: #fff; }
.wf-quick-close { position: absolute; top: 10px; right: 12px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 999px; background: var(--wf-ink); color: #fff; font-size: 22px; }
.wf-quick-product { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 26px; }
.wf-page-center { text-align: center; }

.wf-ask-question-trigger { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 18px; padding: 0; border: 0; background: none; color: var(--wf-ink); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.wf-ask-question-trigger svg { width: 17px; height: 17px; color: var(--wf-gold); }
.wf-question-dialog { position: relative; width: 100%; max-width: 480px; max-height: 88vh; overflow: auto; padding: 28px; border-radius: var(--wf-radius); background: #fff; }
.wf-question-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.wf-question-head h3 { margin: 0; font-size: 22px; }
.wf-question-dialog .wf-quick-close { position: static; width: 34px; height: 34px; flex: none; background: var(--wf-surface); color: var(--wf-ink); font-size: 18px; }
.wf-question-subtitle { margin: 4px 0 22px; color: var(--wf-muted); font-size: 14px; }
.wf-question-form { display: flex; flex-direction: column; }
.wf-question-form label { margin: 14px 0 8px; font-size: 14px; font-weight: 700; }
.wf-question-form label:first-of-type { margin-top: 0; }
.wf-req { color: var(--wf-red); }
.wf-question-form input, .wf-question-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); font-family: inherit; font-size: 14px; color: var(--wf-text); }
.wf-question-form input:focus, .wf-question-form textarea:focus { outline: none; border-color: var(--wf-ink); }
.wf-question-form textarea { resize: vertical; }
.wf-field-hint { margin: 6px 0 0; font-size: 12px; color: var(--wf-muted); }
.wf-question-submit { width: 100%; margin-top: 26px; padding-top: 16px; padding-bottom: 16px; border-radius: 999px; }
.wf-question-terms { margin: 16px 0 0; font-size: 12px; text-align: center; color: var(--wf-muted); }
.wf-question-terms a { color: var(--wf-ink); text-decoration: underline; text-underline-offset: 2px; }
.wf-page-center .wf-track-form { margin: 0 auto; text-align: left; }
.wf-track-form, .wf-wishlist-wrap { max-width: 480px; padding: 28px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); background: #fff; }
.wf-track-form h2 { margin: 0 0 6px; }
.wf-track-form label { display: block; margin: 18px 0 6px; font-weight: 700; font-size: 13px; }
.wf-track-form input, .wf-track-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-sm); font-family: inherit; resize: vertical; }
.wf-track-form .wf-btn { margin-top: 22px; }
.wf-track-result:empty { display: none; }
.wf-contact-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wf-contact-page { display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1fr); gap: 40px; align-items: start; }
.wf-contact-info h2 { margin: 0 0 10px; }
.wf-contact-info p { color: var(--wf-muted); margin-bottom: 24px; }
.wf-contact-details { list-style: none; margin: 0; padding: 0; }
.wf-contact-details li { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; font-weight: 700; }
.wf-contact-details svg { flex-shrink: 0; width: 20px; height: 20px; color: var(--wf-gold); }
.wf-contact-form { max-width: none; }
.wf-track-result:not(:empty) { margin-top: 18px; }
.wf-track-error { display: block; padding: 14px; border-radius: var(--wf-radius-sm); background: var(--wf-surface); }
.wf-track-updated { margin: 8px 0 0; font-size: 12px; color: var(--wf-muted); }

.wf-track-card { max-width: 560px; margin-top: 18px; padding: 24px; border: 1px solid var(--wf-line); border-radius: var(--wf-radius); background: #fff; }
.wf-track-card__title { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 18px; font-weight: 700; color: var(--wf-text); }
.wf-track-card__title svg { width: 24px; height: 24px; color: #2a7a3b; flex-shrink: 0; }
.wf-track-card__title--rejected { color: #a23b30; }
.wf-track-card__meta { margin: 0 0 18px; font-size: 13px; color: var(--wf-muted); }
.wf-track-banner { margin: 0 0 16px; padding: 10px 14px; border-radius: var(--wf-radius-sm); font-size: 13px; font-weight: 600; }
.wf-track-banner--muted { background: var(--wf-surface); color: var(--wf-muted); }
.wf-track-banner--error { background: #fbeae7; color: #a23b30; }
.wf-track-steps { list-style: none; margin: 0; padding: 0; }
.wf-track-steps li { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 0 0 20px 0; }
.wf-track-steps li:last-child { padding-bottom: 0; }
.wf-track-steps li:before { content: ""; position: absolute; left: 11px; top: 24px; bottom: 0; width: 2px; background: var(--wf-line); }
.wf-track-steps li:last-child:before { display: none; }
.wf-track-step-dot { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; background: var(--wf-line); color: var(--wf-muted); }
.wf-track-steps li.is-done .wf-track-step-dot { background: #2a7a3b; color: #fff; }
.wf-track-steps li.is-current .wf-track-step-dot { background: var(--wf-gold); color: #fff; }
.wf-track-steps li.is-rejected .wf-track-step-dot { background: #a23b30; color: #fff; }
.wf-track-step-body strong { display: block; font-size: 14px; color: var(--wf-text); }
.wf-track-step-body span { display: block; margin-top: 2px; font-size: 13px; color: var(--wf-muted); }

button:focus-visible, a:focus-visible, input:focus-visible { outline: 2px solid var(--wf-gold); outline-offset: 3px; }
.wf-menu a { position: relative; }
.wf-menu li.current-menu-item > a, .wf-menu li.current_page_item > a, .wf-menu a.is-current { color: var(--wf-gold); }
.wf-menu li.current-menu-item > a:after, .wf-menu li.current_page_item > a:after, .wf-menu a.is-current:after { content: ""; position: absolute; left: 0; right: 0; bottom: 12px; height: 2px; background: var(--wf-gold); }
@media (prefers-reduced-motion: reduce) { *, *:before, *:after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } .wf-hero-track { transition: none !important; } }
@media (max-width: 1100px) { .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } .wf-menu { gap: 12px; } }
@media (max-width: 980px) {
  .wf-primary-nav { display: none; }
  .wf-menu-toggle { display: block; }
  .wf-header-inner { grid-template-columns: auto 1fr auto; }
  .wf-header-tools .wf-tool-link { display: none; }
  .wf-header-tools .wf-account-link { display: inline-flex; }
  .wf-mobile-menu li { border-bottom: 1px solid rgba(255,255,255,.12); }
  .wf-mobile-menu a { display: block; padding: 14px 0; }
  .wf-single-product .product, .wf-social-gallery, .wf-newsletter-inner, .wf-contact-page { grid-template-columns: 1fr; }
  .wf-hero-slide-inner { padding: 40px 0; }
  .wf-hero-slide-media { min-height: 200px; }
  .wf-hero-slide-media img { max-height: 220px; }
  .wf-hero-slide-media img.wf-signature-cutout { max-height: 250px; }
  .wf-hero-slide { min-height: 0; padding: 24px 0; }
  .wf-hero-nav { width: 38px; height: 38px; font-size: 18px; }
  .wf-promo-grid { grid-template-columns: 1fr; }
  .wf-feature-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wf-product-carousel .woocommerce ul.products li.product { width: 220px; flex-basis: 220px; }
  .wf-latest-grid { grid-template-columns: 1fr; }
  .wf-latest-cards-head { margin-top: 8px; }
  .wf-benefits { grid-template-columns: repeat(3, 1fr); }
  .wf-review-grid { grid-template-columns: 1fr; }
  .wf-shop-layout { grid-template-columns: 1fr; }
  .woocommerce-account .wf-content .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce-MyAccount-content { grid-column: 1; }
  .wf-shop-sidebar { display: none; position: static; }
  .wf-shop-sidebar.is-open { display: block; }
  .wf-filter-toggle { display: inline-flex; padding: 10px 16px; border: 1px solid var(--wf-line); border-radius: 999px; background: #fff; }
  .wf-footer-grid { grid-template-columns: 1fr 1fr; }
  /* Related products used a fixed-width horizontal-wrap layout meant for wide screens; below 980px
     it should match the same responsive card grid as every other product listing. */
  .wf-single-product .related.products ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .wf-single-product .related.products ul.products li.product,
  .wf-single-product .related.products .wf-product-card { width: 100%; flex: none; display: flex; height: 100%; }
  .wf-single-product .related.products .wf-product-media { width: 100%; height: 0; padding-top: 100%; }
  .wf-single-product .related.products .wf-product-info { display: flex; flex: 1; padding: 16px 16px 18px; }
}
@media (max-width: 480px) {
  .wf-single-product .quantity { min-height: 46px; }
  .wf-single-product .quantity input.qty { width: 32px; }
  .wf-qty-btn { width: 32px; }
  .wf-single-product .single_add_to_cart_button, .wf-single-product .wf-buy-now { padding-left: 10px; padding-right: 10px; font-size: 11px; letter-spacing: .03em; }
}

@media (max-width: 640px) {
  .wf-container { width: min(100% - 24px, var(--wf-max)); }
  .wf-header-tools { gap: 8px; }
  .wf-search input { width: 126px; }
  .wf-hero-slide-name { font-size: 26px; }
  .wf-hero-slide-bg span { font-size: 72px; }
  .wf-hero-dots { right: 50%; transform: translateX(50%); bottom: 12px; }
  .wf-hero-prev, .wf-hero-next { display: none; }
  .wf-feature-media { display: none; }
  .wf-promo-card, .wf-promo-card-large { min-height: 196px; }
  .wf-feature-grid, .wf-benefits, .wf-footer-grid { grid-template-columns: 1fr; }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .wf-product-info { padding: 10px 10px 12px; }
  .wf-single-product .related.products ul.products { gap: 12px; }
  .wf-single-product .related.products .wf-product-info { padding: 10px 10px 12px; }
  .woocommerce ul.products li.product .wf-product-info .button { display: flex !important; align-items: center; justify-content: center; width: 100%; border-radius: 10px; padding: 9px 6px !important; font-size: 10px !important; letter-spacing: .02em !important; line-height: 1.3 !important; white-space: normal !important; text-align: center; }
  .woocommerce-loop-product__title { font-size: 13px; min-height: auto; }
  .wf-latest-card { width: 160px; flex-basis: 160px; }
  .wf-product-carousel .woocommerce ul.products li.product { width: 78vw; flex-basis: 78vw; max-width: 310px; }
  .wf-newsletter form { flex-direction: column; }
  .wf-newsletter input { min-width: 0; min-height: 44px; }
  .wf-quick-product { grid-template-columns: 1fr; }
  .wf-arch-grid { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }
  .wf-footer-bottom { flex-direction: column; }
  .wf-gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
