/* VORTEX GRAND — Phase A visual foundation. Global values are in theme.json. */
:root {
  --vg-green: #142821;
  --vg-ivory: #F6F2EA;
  --vg-gold: #B29A70;
  --vg-charcoal: #242424;
  --vg-ink: #182721;
  --vg-serif: 'Cormorant Garamond', 'Iowan Old Style', Baskerville, Georgia, serif;
  --vg-sans: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
.wp-site-blocks { overflow: clip; }
a { text-underline-offset: .17em; }
a:hover { color: #8E784D; }
:where(a, button, input, select, textarea, .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):focus-visible {
  outline: 3px solid var(--vg-gold);
  outline-offset: 4px;
}
.wp-block-button__link { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.wp-block-button__link:hover { background: #23443A; color: var(--vg-ivory); }

/* Header */
.vg-site-header { position: relative; z-index: 30; color: var(--vg-ivory); background: var(--vg-charcoal); margin-block-start: 0 !important; }
.vg-header-inner { min-height: 96px; gap: clamp(12px, 2vw, 32px); }
.vg-site-header a { text-decoration: none; color: inherit; }
.vg-site-header .wp-block-site-title { white-space: nowrap; margin: 0; line-height: 1; color: var(--vg-ivory); }
.vg-site-header .wp-block-site-title a { color: var(--vg-ivory); }
.vg-main-nav { font-size: .83rem; letter-spacing: .02em; }
.vg-main-nav .wp-block-navigation-item__content { padding: .5rem .15rem; }
.vg-main-nav .wp-block-navigation-item__content:hover { color: var(--vg-gold); }
.vg-header-actions { gap: 1rem; flex-shrink: 0; }
.vg-header-search.wp-block-search { width: 35px; margin: 0; min-width: 0; }
.vg-header-search .wp-block-search__button { background: transparent; border: 0; padding: .4rem; color: var(--vg-ivory); }
.vg-header-search .wp-block-search__button:hover { background: transparent; color: var(--vg-gold); }
.vg-cart-link { display: inline-flex; gap: .2rem; align-items: start; padding: .35rem; min-width: 40px; min-height: 40px; justify-content: center; }
.vg-cart-count { display: inline-flex; border-radius: 50%; font-size: .66rem; min-width: 17px; height: 17px; align-items: center; justify-content: center; background: var(--vg-gold); color: #191919; font-weight: 700; }
.vg-site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--vg-green); color: var(--vg-ivory); padding: 1.5rem; }
.vg-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: start; }

/* Home hero: no fictitious product images; ready for merchant's licensed photograph */
.vg-hero { position: relative; isolation: isolate; min-height: clamp(540px, 60vw, 710px); display: flex; align-items: center; overflow: hidden; margin-block-start: 0 !important; background: radial-gradient(ellipse at 85% 27%, rgba(178,154,112,.32), transparent 37%), linear-gradient(110deg,#10211b 0%,#142821 50%,#0b1512 100%) !important; }
.vg-hero::after { content: ''; position: absolute; z-index: -1; width: min(65vw, 760px); height: min(65vw, 760px); right: -10%; top: -12%; border: 1px solid rgba(178,154,112,.22); border-radius: 50%; box-shadow: 0 0 0 88px rgba(178,154,112,.025), 0 0 0 180px rgba(178,154,112,.02); transform: rotate(24deg); }
.vg-hero-inner { width: 100%; padding-block: clamp(90px, 10vw, 150px); }
.vg-hero-inner > * { max-width: 700px; margin-left: 0 !important; }
.vg-eyebrow, .vg-section-kicker, .vg-collection-eyebrow { font-size: .76rem !important; letter-spacing: .19em; text-transform: uppercase; font-weight: 600; }
.vg-eyebrow { color: var(--vg-gold); margin-bottom: 1.5rem; }
.vg-hero-title { color: var(--vg-ivory) !important; font-family: var(--vg-serif); font-size: clamp(3.8rem, 8vw, 8rem) !important; line-height: .91; letter-spacing: -.035em; margin: 0 0 2rem !important; }
.vg-hero-description { max-width: 440px !important; color: #e1dfd6; font-size: clamp(1rem, 1.8vw, 1.2rem); margin-bottom: 2.3rem; }
.vg-hero-buttons { gap: 1rem; }
.vg-button-gold .wp-block-button__link { background: var(--vg-gold); color: #12221d; border: 1px solid var(--vg-gold); }
.vg-button-gold .wp-block-button__link:hover { background: #d4bd91; border-color: #d4bd91; }
.vg-button-outline .wp-block-button__link { color: var(--vg-ivory); border: 1px solid var(--vg-gold); background: transparent; }
.vg-button-outline .wp-block-button__link:hover { color: var(--vg-charcoal); background: var(--vg-ivory); }

/* Collections */
.vg-collection-section { padding-block: clamp(66px, 8vw, 112px); }
.vg-section-kicker { color: #977e56; margin-bottom: .7rem; }
.vg-section-heading { font-size: clamp(2.65rem, 4.8vw, 4.7rem); margin-top: 0; margin-bottom: 2rem; }
.vg-collection-grid { gap: clamp(16px, 2vw, 28px); }
.vg-collection-card { min-height: 340px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(28px, 4vw, 50px); margin: 0; position: relative; isolation: isolate; }
.vg-collection-card::after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(178,154,112,.22); pointer-events: none; }
.vg-collection-shaving { background: linear-gradient(130deg, #1c3b30, #0e1c18); color: var(--vg-ivory); }
.vg-collection-oil { background: linear-gradient(130deg, #e2d9c8, #f1eade); color: var(--vg-charcoal); }
.vg-collection-card .vg-collection-eyebrow { color: var(--vg-gold); margin-bottom: 6px; }
.vg-collection-oil .vg-collection-eyebrow { color: #806b45; }
.vg-collection-card h3 { margin: 0 0 12px; font-family: var(--vg-serif); font-size: clamp(2.3rem, 3.7vw, 3.3rem); color: inherit; }
.vg-collection-card p { margin-block: .4rem; }
.vg-collection-card .vg-text-link { margin-top: 1.2rem; font-weight: 600; letter-spacing: .06em; font-size: .8rem; text-transform: uppercase; }
.vg-collection-card a { color: inherit; text-decoration-color: var(--vg-gold); }
.vg-intro-band { padding-block: 76px 92px; margin-block-start: 0 !important; }
.vg-intro-band h2 { font-size: clamp(2.6rem, 5vw, 5.5rem); }
.vg-intro-copy { max-width: 600px; margin-inline: auto; }

/* General content pages */
.vg-content-layout { min-height: 45vh; padding-block: clamp(55px, 7vw, 110px); }
.vg-content-layout > .wp-block-post-title { font-size: clamp(2.8rem, 6vw, 5.2rem); }
.vg-post-teaser { border-bottom: 1px solid #d8d1c3; padding-block: 1.5rem; }
.vg-404 { text-align: center; }

/* Footer */
.vg-footer { padding-block: clamp(60px, 8vw, 104px) 22px; margin-block-start: 0 !important; }
.vg-footer-columns { gap: clamp(32px, 6vw, 110px); }
.vg-footer :is(a, p, h3) { color: var(--vg-ivory); }
.vg-footer a { text-decoration: none; }
.vg-footer a:hover { color: var(--vg-gold); }
.vg-footer h3 { font-family: var(--vg-sans); font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.vg-footer-columns .wp-block-column p { margin-block: 8px; }
.vg-footer .vg-footer-brand { font-family: var(--vg-serif); font-size: 2.45rem; letter-spacing: .09em; line-height: 1.2; }
.vg-footer-description { font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; opacity: .8; }
.vg-footer-signature { font-family: var(--vg-serif); font-size: 1.6rem; color: var(--vg-gold) !important; font-style: italic; }
.vg-footer-bottom { border-top: 1px solid rgba(246,242,234,.23); margin-top: 3.5rem; padding-top: 1rem; gap: 1rem; font-size: .8rem; opacity: .85; }
.vg-footer-bottom p { margin: 0; }

/* WooCommerce Phase A foundation: small, non-invasive visual tokens. Templates stay under plugin control. */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 0; font-family: var(--vg-sans); }
.woocommerce :is(.price, .amount) { color: var(--vg-green); }
.wc-block-components-button:not(.is-link) { border-radius: 0; }

@media (max-width: 1000px) {
  .vg-header-inner { min-height: 78px; }
  .vg-site-header .wp-block-site-title { font-size: 1.45rem; }
  .vg-main-nav { font-size: .78rem; }
  .vg-header-actions { gap: .4rem; }
}
@media (max-width: 781px) {
  .vg-header-inner { min-height: 72px; }
  .vg-hero { min-height: 590px; }
  .vg-hero::after { width: 88vw; height: 88vw; right: -45%; top: 8%; }
  .vg-hero-inner { padding-block: 110px; }
  .vg-hero-title { font-size: clamp(3.8rem, 11vw, 5.8rem) !important; }
  .vg-collection-card { min-height: 290px; }
  .vg-collection-grid { gap: 16px; }
  .vg-footer-columns { flex-wrap: wrap; }
  .vg-footer-columns > .wp-block-column { flex-basis: calc(50% - 16px) !important; }
  .vg-footer-columns > .wp-block-column:first-child { flex-basis: 100% !important; }
}
@media (max-width: 500px) {
  .vg-header-inner { gap: .7rem; }
  .vg-site-header .wp-block-site-title { font-size: 1.1rem; letter-spacing: .045em; }
  .vg-header-search { display: none !important; }
  .vg-main-nav { order: -1; }
  .vg-header-actions { margin-left: auto; }
  .vg-hero { min-height: 570px; }
  .vg-hero-inner { padding-block: 88px; }
  .vg-hero-title { font-size: clamp(3.5rem, 16vw, 5.5rem) !important; }
  .vg-hero-buttons { flex-direction: column; align-items: stretch; }
  .vg-hero-buttons .wp-block-button { width: 100%; }
  .vg-hero-buttons .wp-block-button__link { width: 100%; text-align: center; }
  .vg-section-heading { font-size: 2.7rem; }
  .vg-collection-section { padding-block: 58px; }
  .vg-collection-card { min-height: 265px; }
  .vg-footer-columns > .wp-block-column { flex-basis: 100% !important; }
  .vg-footer-bottom { align-items: start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}


/* PHASE B | Homepage commerce sections and safe merchant imagery. */
.vg-promise-bar { margin-block-start: 0 !important; }
.vg-promise-bar p { color: var(--vg-ivory); margin: 0; padding: .45rem .5rem; font-size: .68rem; text-transform: uppercase; letter-spacing: .15em; }
.vg-main-home { margin-block-start: 0 !important; }
.vg-main-home > * { margin-block-start: 0 !important; }
.vg-main-home .vg-hero { width: 100%; max-width: none; min-height: min(720px, 80vh); background: radial-gradient(ellipse at 78% 37%, rgba(178,154,112,.25), transparent 39%), linear-gradient(116deg,#0c1b16,#142821 57%,#0d1714) !important; }
.vg-hero .wp-block-cover__inner-container { position: relative; width: 100%; z-index: 3; }
.vg-hero .wp-block-cover__image-background { object-fit: cover; object-position: center; }
.vg-hero:has(.wp-block-cover__image-background)::before { content: ''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(9,19,16,.92) 0%,rgba(9,19,16,.78) 36%,rgba(9,19,16,.12) 100%); pointer-events:none; }
.vg-hero::after { z-index: 1; pointer-events: none; }
.vg-hero:has(.wp-block-cover__image-background)::after { display: none; }
.vg-hero .vg-hero-inner { padding-block: 115px; }
.vg-hero .vg-hero-inner h1 { max-width: 790px; }
.vg-home-section { padding-block: clamp(62px, 8vw, 100px); }
.vg-home-section .vg-section-heading { margin-bottom: 1.4rem; }
.vg-category-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(10px,1.4vw,24px); }
.vg-category-tile { position:relative; isolation:isolate; min-height:clamp(240px,25vw,390px); overflow:hidden; display:flex; text-decoration:none; align-items:flex-end; background:linear-gradient(140deg,#25493c,#0c1d18); color:var(--vg-ivory); }
.vg-tile-razors { background:linear-gradient(140deg,#383632,#121c19); }
.vg-tile-oil { background:linear-gradient(140deg,#89775d,#263b2f); }
.vg-tile-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; z-index:-2; }
.vg-tile-scrim { position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,15,12,.82),rgba(5,15,12,.13) 70%); z-index:-1; }
.vg-tile-content { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(20px,3vw,36px); gap:8px; width:100%; }
.vg-tile-label { color:#dbc4a2; font-size:.67rem; letter-spacing:.16em; text-transform:uppercase; font-weight:650; }
.vg-tile-content strong { color:var(--vg-ivory); font-family:var(--vg-serif); font-size:clamp(2rem,3vw,3.2rem); line-height:.98; font-weight:500; }
.vg-tile-action { font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid var(--vg-gold); padding-top:12px; padding-bottom:5px; }
.vg-category-tile:is(:hover,:focus-visible) { color:var(--vg-ivory); }
.vg-category-tile:hover .vg-tile-image { transform:scale(1.045); }
.vg-featured-heading-row { gap:16px; align-items:center; }
.vg-featured-heading-row .vg-section-heading { margin-bottom:0; }
.vg-view-all a { font-weight:650; text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; }
.vg-featured-grid { margin-top:26px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,1.5vw,22px); }
.vg-product-card { min-width:0; display:flex; flex-direction:column; background:#fff; border:1px solid #eee8dd; }
.vg-product-media { aspect-ratio:4 / 4.7; display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,#f8f6f1,#f0ece4); padding:16px; overflow:hidden; }
.vg-product-media img { width:100%; height:100%; object-fit:contain; transition:transform .24s ease; }
.vg-product-media:hover img { transform:scale(1.04); }
.vg-no-product-image { font-size:.8rem; color:#6f706a; text-align:center; }
.vg-product-body { padding:18px; display:flex; flex:1; flex-direction:column; align-items:stretch; gap:11px; }
.vg-product-title { font-family:var(--vg-serif); font-size:clamp(1.35rem,1.7vw,1.7rem); line-height:1.06; color:var(--vg-green); text-decoration:none; min-height:2.2em; }
.vg-product-title:hover { text-decoration:underline; }
.vg-product-price { font-size:.96rem; font-weight:650; color:var(--vg-green); }
.vg-product-price .amount { color:inherit; }
.vg-stock-note { font-size:.78rem; color:#7b5548; }
.vg-product-cta { display:block; margin-top:auto; background:var(--vg-green); color:var(--vg-ivory); text-align:center; padding:12px 8px; text-decoration:none; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.vg-product-cta:hover { background:#2b4b40; color:#fff; }
.vg-empty-products { padding:2.4rem; border:1px dashed #cbbfa9; text-align:center; color:#615e55; }
.vg-oil-section { overflow:hidden; padding:0; }
.vg-oil-layout { display:grid; grid-template-columns:1fr 1fr; min-height:450px; }
.vg-oil-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(40px,6vw,84px) clamp(24px,4.5vw,60px); }
.vg-oil-copy h2 { color:var(--vg-ivory); font-family:var(--vg-serif); font-size:clamp(2.8rem,5vw,5.5rem); line-height:.98; margin:.2rem 0 1rem; }
.vg-oil-copy > p:not(.vg-section-kicker) { max-width:480px; color:#e4e0d5; }
.vg-editorial-button { display:inline-flex; gap:1rem; padding:.85rem 1.35rem; margin-top:1.2rem; border:1px solid var(--vg-gold); color:var(--vg-gold); text-transform:uppercase; font-size:.73rem; font-weight:700; letter-spacing:.1em; text-decoration:none; }
.vg-editorial-button:hover { color:var(--vg-green); background:var(--vg-ivory); }
.vg-oil-art { min-height:360px; display:flex; justify-content:center; align-items:center; overflow:hidden; background:radial-gradient(circle at 50% 40%,#546d5a,#162b23 55%,#0d1d17); }
.vg-oil-image { display:block; width:100%; height:100%; max-height:650px; object-fit:contain; padding:2rem; }
.vg-oil-placeholder { border:1px solid rgba(178,154,112,.3); box-shadow:0 0 0 35px rgba(178,154,112,.03); border-radius:50%; width:220px; height:220px; display:flex; align-items:center; justify-content:center; font-family:var(--vg-serif); font-size:2.3rem; color:var(--vg-gold); font-weight:400; }
.vg-story-block { padding-block:clamp(64px,8vw,115px); text-align:center; }
.vg-story-block .vg-section-heading { max-width:850px; margin-inline:auto; }
.vg-story-description { max-width:660px; margin-inline:auto; }
.vg-story-block .wp-block-buttons { justify-content:center; }
.vg-outline-forest .wp-block-button__link { border:1px solid var(--vg-green); background:transparent; color:var(--vg-green); }
.vg-outline-forest .wp-block-button__link:hover { background:var(--vg-green); color:var(--vg-ivory); }
.vg-assurance-section { padding-block:clamp(42px,6vw,82px); margin-block-start:0 !important; }
.vg-assurance-columns { gap:clamp(18px,3.5vw,64px); }
.vg-assurance-columns > .wp-block-column { border-left:1px solid #d7ccbb; padding-left:clamp(16px,2vw,26px); }
.vg-assurance-columns h3 { font-family:var(--vg-serif); font-size:1.8rem; margin:0 0 .35rem; }
.vg-assurance-columns p { font-size:.88rem; color:#62645f; margin:0; }
/* Product search panel remains functional on touch devices and without JS. */
.vg-search-popover { position:relative; }
.vg-search-popover > summary { display:flex; align-items:center; justify-content:center; min-width:40px; min-height:40px; cursor:pointer; list-style:none; }
.vg-search-popover > summary::-webkit-details-marker { display:none; }
.vg-search-panel { position:absolute; z-index:100; right:-42px; top:calc(100% + 18px); width:min(380px,calc(100vw - 40px)); color:var(--vg-charcoal); background:#fff; box-shadow:0 18px 48px rgba(0,0,0,.2); padding:22px; border-top:3px solid var(--vg-gold); }
.vg-search-panel label { font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; }
.vg-search-input-row { display:flex; margin-top:8px; }
.vg-search-input-row input { min-width:0; flex:1; padding:12px; border:1px solid #d8d2c9; border-radius:0; }
.vg-search-input-row button { border:0; background:var(--vg-green); color:white; padding:8px 12px; cursor:pointer; }
/* Woo catalog page: broad stable hooks, avoid brittle block inner markup. */
.woocommerce ul.products li.product { background:#fff; padding:12px 12px 18px; }
.woocommerce ul.products li.product img { aspect-ratio:1 / 1.15; object-fit:contain; background:#f3f0e9; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:var(--vg-serif); font-size:1.4rem; color:var(--vg-green); }
.woocommerce ul.products li.product .button { background:var(--vg-green); color:var(--vg-ivory); border-radius:0; font-size:.75rem; letter-spacing:.07em; }
@media (max-width:900px) {
  .vg-featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vg-category-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vg-category-tile:last-child { grid-column:span 2; min-height:220px; }
  .vg-oil-layout { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .vg-promise-bar p { font-size:.57rem; letter-spacing:.1em; }
  .vg-home-section { padding-block:55px; }
  .vg-main-home .vg-hero { min-height:540px; }
  .vg-main-home .vg-hero .vg-hero-inner { padding-block:85px 95px; }
  .vg-hero:has(.wp-block-cover__image-background)::before { background:linear-gradient(90deg,rgba(9,19,16,.9),rgba(9,19,16,.55)); }
  .vg-category-tiles { grid-template-columns:1fr 1fr; gap:10px; }
  .vg-category-tile { min-height:210px; }
  .vg-category-tile:last-child { grid-column:span 2; min-height:165px; }
  .vg-tile-content { padding:17px; gap:6px; }
  .vg-tile-content strong { font-size:1.75rem; }
  .vg-tile-label { font-size:.56rem; }
  .vg-tile-action { font-size:.6rem; }
  .vg-featured-grid { gap:10px; }
  .vg-product-media { padding:6px; }
  .vg-product-body { padding:12px; gap:8px; }
  .vg-product-title { font-size:1.2rem; }
  .vg-product-cta { font-size:.63rem; letter-spacing:.04em; padding:11px 6px; }
  .vg-oil-layout { grid-template-columns:1fr; }
  .vg-oil-copy { padding:50px 24px; }
  .vg-oil-art { min-height:280px; }
  .vg-assurance-columns { flex-wrap:wrap; gap:20px; }
  .vg-assurance-columns > .wp-block-column { flex-basis:100% !important; }
  .vg-search-panel { right:-48px; }
}
@media (max-width:360px) {
  .vg-category-tiles { grid-template-columns:1fr; }
  .vg-category-tile,.vg-category-tile:last-child { grid-column:auto; min-height:205px; }
  .vg-product-title { font-size:1.1rem; }
}
@media (prefers-reduced-motion: reduce) { .vg-product-media img,.vg-tile-image { transition:none; } }


/* PHASE C — product, catalogue, cart and checkout foundations.
 * We style OUR wrappers and global elements, rather than WooCommerce private DOM.
 * Commerce interactions remain native WooCommerce components. */
.vg-single-product, .vg-catalog-page { padding-block: clamp(2.5rem, 5vw, 5.5rem) clamp(4rem, 7vw, 7rem); }
.vg-single-product > *, .vg-catalog-page > * { margin-block-start: 0; }
.vg-product-breadcrumbs { margin-bottom: 2.5rem; }
.vg-product-breadcrumbs .woocommerce-breadcrumb, .vg-catalog-intro .woocommerce-breadcrumb { color: #6d6b61; font-size: .79rem; }
.vg-product-breadcrumbs a, .vg-catalog-intro a { color: var(--vg-green); }
.vg-product-columns { gap: clamp(28px, 5vw, 85px); align-items: start; }
.vg-product-gallery-panel { min-width: 0; background: #f3f0e9; padding: clamp(10px, 2vw, 24px); }
.vg-product-gallery-panel img { max-width: 100%; height: auto; }
.vg-product-purchase-panel { min-width:0; display:flex; flex-direction:column; gap: .9rem; padding-block: 8px; }
.vg-product-purchase-panel > * { margin-block: 0; }
.vg-product-overline { color: #806a42; font-size:.73rem; font-weight:650; text-transform:uppercase; letter-spacing:.18em; }
.vg-product-purchase-panel .wp-block-post-title { font-family: var(--vg-serif); color: var(--vg-green); font-size: clamp(2.6rem, 4.6vw, 5rem); line-height:1.02; font-weight:450; }
.vg-product-purchase-panel .wp-block-woocommerce-product-price { font-size:clamp(1.4rem,2vw,1.9rem); font-weight:650; }
.vg-product-purchase-panel .wp-block-post-excerpt { color:#525950; }
.vg-product-purchase-panel .wp-block-woocommerce-product-meta { padding-top: 1.2rem; border-top:1px solid #d8d0c4; font-size:.79rem; color:#6b665d; }
.vg-product-purchase-panel :is(button, input, select, textarea) { min-height:42px; }
.vg-product-purchase-panel :is(button[type=submit], .single_add_to_cart_button) { background:var(--vg-green); color:var(--vg-ivory); font-weight:650; text-transform:uppercase; letter-spacing:.08em; border:1px solid var(--vg-green); border-radius:0; cursor:pointer; padding:.85rem 1.3rem; }
.vg-product-purchase-panel :is(button[type=submit], .single_add_to_cart_button):hover { background:#244638; color:#fff; }
.vg-policy-links { margin-top:1rem; border-top:1px solid #d8d0c4; padding-top:1.15rem; }
.vg-policy-links ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:12px 20px; }
.vg-policy-links li { margin:0; font-size:.79rem; }
.vg-policy-links a { text-underline-offset:.2em; color:var(--vg-green); }
.vg-product-details-wrap { border-top:1px solid #d8d0c4; padding-top:clamp(30px,4vw,55px); margin-top:clamp(35px,5vw,70px) !important; }
.vg-product-details-wrap h2, .vg-product-details-wrap h3 { font-family:var(--vg-serif); }
.vg-single-product .woocommerce-product-gallery__image img { display:block; }
.vg-catalog-intro { border-bottom:1px solid #ded5c7; padding-bottom:2rem; margin-bottom:2.5rem; }
.vg-catalog-intro .wp-block-query-title { font-family:var(--vg-serif); font-weight:450; font-size:clamp(2.8rem,5vw,5.2rem); margin:.3rem 0 0; }
.vg-catalog-intro .wp-block-term-description { color:#61625d; }
.vg-catalog-toolbar { gap:1.4rem; margin-bottom:1.65rem; color:#4d514b; font-size:.83rem; }
.vg-catalog-grid { margin-top:1.75rem; }
.vg-catalog-grid .wc-block-product { background:#fff; padding:clamp(12px,2vw,20px); border:1px solid #eee7d9; }
.vg-catalog-grid .wp-block-post-title { font-family:var(--vg-serif); font-weight:500; font-size:clamp(1.3rem,1.8vw,1.8rem); line-height:1.13; }
.vg-catalog-grid .wp-block-post-title a { color:var(--vg-green); text-decoration:none; }
.vg-catalog-grid .wp-block-post-title a:hover { text-decoration:underline; }
.vg-catalog-grid .wp-block-woocommerce-product-button .wp-block-button__link { background:var(--vg-green); color:var(--vg-ivory); }
.vg-catalog-grid .wp-block-woocommerce-product-button .wp-block-button__link:hover { background:#284b3d; }
.vg-checkout-shell { padding-block:clamp(36px,5vw,75px) clamp(65px,9vw,125px); min-height:45vh; }
.vg-checkout-shell > .wp-block-post-title { font-size:clamp(2.9rem,5vw,4.8rem); margin-bottom:clamp(24px,4vw,52px); }
.vg-checkout-shell .wp-block-post-content { width:100%; }
.vg-checkout-shell input, .vg-checkout-shell select, .vg-checkout-shell textarea { border-radius:0; }
.vg-checkout-shell :is(button, input, select, textarea):focus-visible { outline:3px solid var(--vg-gold); outline-offset:2px; }
.vg-checkout-shell a { color:var(--vg-green); }
/* Woo native mini-cart, not a custom session or checkout. */
.vg-header-actions .wp-block-woocommerce-mini-cart { color:var(--vg-ivory); }
.vg-header-actions .wc-block-mini-cart__button { color:inherit; cursor:pointer; min-height:44px; min-width:44px; }
.vg-header-actions .wc-block-mini-cart__badge { background:var(--vg-gold); color:#191919; }
@media (max-width: 760px) {
 .vg-product-columns { gap:28px; }
 .vg-product-gallery-panel { padding:12px; }
 .vg-product-purchase-panel .wp-block-post-title { font-size:clamp(2.4rem,9vw,3.8rem); }
 .vg-catalog-page, .vg-single-product { padding-top:2rem; }
 .vg-catalog-grid ul.wc-block-product-template { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .vg-checkout-shell { padding-top:32px; }
}
@media (max-width: 420px) {
 .vg-catalog-grid ul.wc-block-product-template { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .vg-catalog-grid .wc-block-product { padding:9px; }
 .vg-catalog-grid .wp-block-post-title { font-size:1.23rem; }
 .vg-policy-links ul { display:block; }
 .vg-policy-links li + li { margin-top:7px; }
}

/* PHASE 0.4.0 — visual refinement + embedded logo assets */
.vg-site-header .vg-site-brand {
  display: inline-flex;
  align-items: center;
  margin: 0;
  flex-shrink: 0;
}
.vg-logo-link,
.vg-logo-link:hover {
  text-decoration: none;
}
.vg-logo-image {
  display: block;
  width: 100%;
  height: auto;
}
.vg-logo-mark-wordmark {
  width: clamp(230px, 20vw, 360px);
}
.vg-logo-mark-lockup {
  width: clamp(260px, 24vw, 420px);
}
.vg-footer-logo {
  margin-bottom: .55rem;
}
.vg-header-inner {
  min-height: 100px;
}
.vg-main-nav {
  justify-content: center;
  flex: 1 1 auto;
}
.vg-story-block {
  text-align: left;
  padding-block: clamp(72px, 9vw, 130px);
}
.vg-story-columns {
  gap: clamp(28px, 4vw, 68px);
}
.vg-story-block .vg-section-heading,
.vg-story-description {
  margin-left: 0;
  margin-right: 0;
  max-width: 640px;
}
.vg-story-image-panel {
  min-height: clamp(320px, 38vw, 520px);
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(178,154,112,.2);
  background:
    radial-gradient(circle at 78% 28%, rgba(178,154,112,.22), rgba(178,154,112,0) 26%),
    linear-gradient(140deg, #f6f2ea 0%, #ece3d3 48%, #f5efe3 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 1rem;
}
.vg-story-panel-logo {
  width: min(100%, 360px);
}
.vg-story-panel-copy {
  max-width: 430px;
  margin: 0;
  color: #49504b;
}
.vg-footer-description {
  margin-top: .8rem;
}
@media (max-width: 1000px) {
  .vg-logo-mark-wordmark {
    width: clamp(220px, 28vw, 300px);
  }
}
@media (max-width: 781px) {
  .vg-story-image-panel {
    min-height: 260px;
  }
}
@media (max-width: 500px) {
  .vg-logo-mark-wordmark {
    width: min(230px, 58vw);
  }
  .vg-logo-mark-lockup {
    width: min(250px, 70vw);
  }
}


/* v0.4.1: portable full logo, designed for transparent PNG and SVG assets. */
.vg-site-header .wp-block-shortcode:has(.vg-logo-link),
.vg-footer .wp-block-shortcode:has(.vg-logo-link) { margin: 0; flex-shrink: 0; }
.vg-site-header .vg-logo-link {
  display: block; width: clamp(265px, 25vw, 390px); max-width: 100%;
}
.vg-site-header .vg-logo-image { width: 100%; height: auto; object-fit: contain; }
.vg-footer .vg-logo-link { display: block; width: clamp(265px, 28vw, 390px); max-width: 100%; }
.vg-footer .vg-logo-image { width: 100%; height: auto; object-fit: contain; }
@media(max-width: 1100px) {
  .vg-site-header .vg-logo-link { width: 270px; }
  .vg-main-nav { font-size: .76rem; }
}
@media(max-width: 781px) {
  .vg-site-header .vg-logo-link { width: min(290px, 48vw); }
}
@media(max-width: 500px) {
  .vg-site-header .vg-logo-link { width: min(225px, 57vw); }
}
