/* =========================================================================
   Greenvalley site styles. Tokens are in tokens.css. Mobile first.
   Sections: 1 Base · 2 Buttons · 3 Header · 4 Footer · 5 Components (Elementor) · 6 Home
   ========================================================================= */

/* ---------- 1. Base ---------- */
body, button, input, select, textarea, .ast-button, .ast-custom-button {
  font-family: var(--gv-font-body);
}
body {
  background: var(--gv-cream);
  color: var(--gv-charcoal);
  font-size: var(--gv-fs-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.entry-content :where(h1, h2, h3, h4, h5, h6),
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--gv-font-head);
  font-weight: 600;
  color: var(--gv-bark);
  line-height: 1.12;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
h1, .entry-content h1 { font-size: var(--gv-fs-h1); }
h2, .entry-content h2 { font-size: var(--gv-fs-h2); }
h3, .entry-content h3 { font-size: var(--gv-fs-h3); line-height: 1.25; }
h4, .entry-content h4 { font-size: var(--gv-fs-h4); line-height: 1.3; }
:where(h1, h2, h3) em { font-style: italic; font-weight: 500; }
a { color: var(--gv-bark); }
a:hover { color: var(--gv-charcoal); }
:focus-visible { outline: 3px solid var(--gv-eucalypt) !important; outline-offset: 2px; }
::selection { background: var(--gv-honey); color: var(--gv-bark); }
.gv-icon { width: 24px; height: 24px; flex: none; }
img { height: auto; }

/* Skip-link visible on focus (Astra prints one). */
.skip-link:focus { background: var(--gv-bark); color: #fff; }

/* ---------- 2. Buttons (theme, WooCommerce, Elementor) ---------- */
.elementor-button, .wp-element-button, .ast-button, .button, button.button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--gv-s2);
  min-height: var(--gv-tap); padding: 0 var(--gv-s5);
  border-radius: var(--gv-radius); border: 2px solid transparent;
  background: var(--gv-honey); color: var(--gv-bark);
  font: 700 1rem/1.1 var(--gv-font-body); letter-spacing: 0; text-transform: none; text-decoration: none;
  transition: background-color .15s, color .15s, border-color .15s;
}
.elementor-button:hover, .wp-element-button:hover, .ast-button:hover, .button:hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
  background: var(--gv-bark); color: #fff; border-color: transparent;
}
/* Secondary: add class "gv-btn-secondary" to the widget (Elementor → Advanced → CSS Classes) */
.gv-btn-secondary .elementor-button, a.gv-btn-secondary, .button.gv-btn-secondary {
  background: transparent; color: var(--gv-bark); border-color: var(--gv-bark);
}
.gv-btn-secondary .elementor-button:hover, a.gv-btn-secondary:hover, .button.gv-btn-secondary:hover { background: var(--gv-bark); color: #fff; }
.gv-dark .gv-btn-secondary .elementor-button { color: #FFF8EC; border-color: #FFF8EC; }
.gv-dark .gv-btn-secondary .elementor-button:hover { background: #FFF8EC; color: var(--gv-bark); }
.elementor-button .elementor-button-text { line-height: 1.1; }

/* ---------- 3. Header ---------- */
#masthead {
  position: sticky; z-index: 50;
  top: calc(var(--wp-admin--admin-bar--height, 0px) - 36px);   /* top bar scrolls away, main bar stays */
  background: var(--gv-cream);
  box-shadow: 0 1px 0 var(--gv-line);
}
@media (min-width: 922px) { #masthead { top: calc(var(--wp-admin--admin-bar--height, 0px) - 40px); } }
#masthead .ast-above-header-bar,
#masthead .ast-above-header.ast-above-header-bar {
  background: var(--gv-bark); border: 0; min-height: 36px;
}
#masthead .ast-above-header-bar .ast-builder-html-element,
#masthead .ast-above-header-bar .ast-builder-html-element a { color: #F3EADB; font-size: var(--gv-fs-small); text-decoration: none; }
#masthead .ast-above-header-bar .ast-builder-html-element a:hover { text-decoration: underline; }
#masthead .ast-above-header-bar .ast-builder-html-element p { margin: 0; }
.gv-topbar-contact { display: inline-flex; gap: var(--gv-s5); }
#ast-mobile-header .ast-above-header-bar .ast-builder-grid-row { justify-content: center; }

#masthead .main-header-bar,
#masthead .ast-primary-header-bar { background: var(--gv-cream); border-bottom: 0; }
#masthead .custom-logo-link img { width: 120px; max-width: 120px; }
@media (min-width: 922px) { #masthead .custom-logo-link img { width: 168px; max-width: 168px; } }

/* Desktop menu */
#masthead .main-header-menu > .menu-item > .menu-link {
  font-weight: 600; font-size: 1.0625rem; color: var(--gv-bark);
  min-height: var(--gv-tap); line-height: 1.2; padding: 0 var(--gv-s4); border-radius: var(--gv-radius);
  display: flex; align-items: center;
}
#masthead .main-header-menu > .menu-item:hover > .menu-link,
#masthead .main-header-menu > .menu-item.current-menu-item > .menu-link,
#masthead .main-header-menu > .menu-item.current-menu-ancestor > .menu-link { background: var(--gv-oat); color: var(--gv-bark); }
#masthead .main-header-menu { gap: var(--gv-s1); align-items: center; }
#masthead .main-header-menu .sub-menu {
  background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius);
  box-shadow: var(--gv-shadow); padding: var(--gv-s2) 0; width: 260px;
}
#masthead .main-header-menu .sub-menu .menu-link {
  color: var(--gv-charcoal); font-size: 1rem; padding: 10px var(--gv-s5); min-height: 44px; display: flex; align-items: center;
}
#masthead .main-header-menu .sub-menu .menu-link:hover { background: var(--gv-oat); color: var(--gv-bark); }
#masthead .main-header-menu .sub-menu .menu-link .ast-icon { display: none; }

/* Header icons: search + cart + menu toggle = 48px targets */
#masthead .ast-search-menu-icon .astra-search-icon,
#masthead .ast-header-woo-cart .ast-cart-menu-wrap,
#masthead .ast-site-header-cart .cart-container,
#masthead .menu-toggle {
  min-width: var(--gv-tap); min-height: var(--gv-tap);
  display: inline-flex; align-items: center; justify-content: center; border-radius: var(--gv-radius);
  color: var(--gv-bark);
}
#masthead .menu-toggle { padding: 0; background: transparent; }
#masthead .ast-search-menu-icon .astra-search-icon:hover,
#masthead .ast-site-header-cart .cart-container:hover,
#masthead .menu-toggle:hover { background: var(--gv-oat); }
#masthead .ast-mobile-svg, #masthead .ast-search-menu-icon svg { fill: var(--gv-bark); color: var(--gv-bark); }
#masthead .ast-site-header-cart .ast-cart-menu-wrap .count,
#masthead .ast-site-header-cart .ast-addon-cart-wrap .ast-icon-shopping-bag .count,
#masthead .astra-icon.astra-icon-cart .count,
#masthead .ast-icon-shopping-bag .count { background: var(--gv-honey); color: var(--gv-bark); font-weight: 700; }
#masthead .ast-site-header-cart .ast-woo-header-cart-info-wrap { display: none; }

/* Mobile off-canvas menu */
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--gv-cream); }
.ast-mobile-popup-drawer .menu-link { color: var(--gv-bark) !important; font-weight: 600; min-height: var(--gv-tap); display: flex; align-items: center; }
.ast-mobile-popup-drawer .sub-menu .menu-link { font-weight: 400; color: var(--gv-charcoal) !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-content > * { padding-left: var(--gv-s4); padding-right: var(--gv-s4); }
.ast-mobile-popup-drawer .menu-toggle-close { min-width: var(--gv-tap); min-height: var(--gv-tap); color: var(--gv-bark); }
.ast-mobile-popup-drawer .gv-topbar-contact { flex-direction: column; gap: 0; }
.ast-mobile-popup-drawer .gv-topbar-contact a { display: flex; align-items: center; min-height: 44px; color: var(--gv-bark); }
.ast-mobile-popup-drawer .ast-builder-html-element p { margin: 0; }
.ast-mobile-popup-drawer .search-field { font-size: 16px; min-height: var(--gv-tap); }

/* ---------- 4. Footer ---------- */
.site-footer { background: var(--gv-footer); color: var(--gv-footer-text); font-size: 1rem; }
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap,
.site-footer .site-above-footer-wrap { background: transparent !important; border: 0 !important; }
.site-footer .site-primary-footer-wrap { padding-top: var(--gv-s8); padding-bottom: var(--gv-s5); }
.site-footer .site-primary-footer-inner-wrap { gap: var(--gv-s6); }
.site-footer a,
.site-footer .footer-widget-area .widget a,
.site-footer .footer-widget-area .widget_nav_menu .menu-link { color: var(--gv-footer-text); text-decoration: none; }
.site-footer a:hover,
.site-footer .footer-widget-area .widget a:hover,
.site-footer .footer-widget-area .widget_nav_menu .menu-link:hover { color: #fff; text-decoration: underline; }
.site-footer .footer-widget-area .widget { color: var(--gv-footer-text); }
.site-footer .widget-title {
  font-family: var(--gv-font-body); font-size: .96rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: #FFF8EC; margin-bottom: var(--gv-s3);
}
.site-footer .widget ul { list-style: none; margin: 0; padding: 0; }
.site-footer .widget_nav_menu li a { display: inline-flex; align-items: center; min-height: 44px; }
.site-footer .widget p { margin: var(--gv-s4) 0 0; }
.gv-footer-logo img { width: 160px; filter: brightness(0) invert(.92) sepia(.25); }
.gv-social { display: flex; gap: var(--gv-s2); }
.gv-social a { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); }
.gv-social a:hover { background: rgba(255,255,255,.08); text-decoration: none; }
.gv-social .gv-icon { width: 20px; height: 20px; }
.gv-contact-list li { display: flex; align-items: center; gap: var(--gv-s3); min-height: 44px; }
.gv-contact-list .gv-icon { width: 18px; height: 18px; color: var(--gv-honey); }
.site-footer .site-below-footer-wrap { border-top: 1px solid rgba(255,255,255,.12) !important; padding: var(--gv-s4) 0; }
.site-footer .site-below-footer-wrap .ast-footer-copyright,
.site-footer .site-below-footer-wrap .ast-builder-html-element { color: #BFB09C; font-size: var(--gv-fs-small); }
.site-footer .ast-footer-copyright p, .site-footer .ast-builder-html-element p { margin: 0; }
.site-footer .ast-footer-copyright { text-align: left; }
.site-footer .site-footer-below-section-1 { justify-content: flex-start; }
.gv-footer-badge { display: inline-flex; align-items: center; gap: var(--gv-s3); }
.gv-footer-badge img { width: 40px; background: #fff; border-radius: 4px; padding: 3px; }
@media (min-width: 922px) {
  .site-footer .site-footer-below-section-2 { justify-content: flex-end; }
}
@media (max-width: 921px) {
  .site-footer .site-primary-footer-inner-wrap { row-gap: var(--gv-s6); }
}
@media (max-width: 921px) {
  .site-footer .ast-builder-grid-row-container-inner,
  .site-footer .site-below-footer-wrap .ast-builder-grid-row-container-inner { padding-left: var(--gv-gutter); padding-right: var(--gv-gutter); }
  .site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gv-s5); }
  .site-footer .site-footer-section-1, .site-footer .site-footer-section-4 { grid-column: 1 / -1; }
  .site-footer .site-below-footer-wrap .ast-builder-grid-row { display: flex; flex-direction: column; align-items: flex-start; gap: var(--gv-s3); }
}

/* ---------- 5. Elementor components (classes set in the Elementor widgets: Advanced → CSS Classes) ---------- */
:root {
  --gv-mask-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 10'%3E%3Cpath d='M1 6c5-5 9 3 14-1s9 3 14-1 7-1 10 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  --gv-mask-piece: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect x='5' y='11' width='30' height='18' rx='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M10 17c5-3 9 3 14 0s6 1 7 0M10 23c5-3 9 3 14 0s6 1 7 0' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  --gv-mask-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M8 32C8 16 18 8 33 7c0 15-8 25-24 25Z M8 32 22 18' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E");
  --gv-mask-drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M20 6s10 11 10 18a10 10 0 0 1-20 0C10 17 20 6 20 6Z M15 25a5 5 0 0 0 5 5' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E");
  --gv-mask-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m7.5 12.5 3 3 6-6.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.elementor .e-con[class*="gv-"] { padding: 0; gap: 0; --widgets-spacing: 0px; --kit-widget-spacing: 0px; }
.elementor .e-con[class*="gv-"] > .elementor-widget { margin: 0; }
.elementor .e-con.gv-wrap { width: 100%; max-width: calc(var(--gv-container) + 2 * var(--gv-gutter)); margin-inline: auto; padding-inline: var(--gv-gutter); }
.elementor .e-con.gv-section { padding-block: var(--gv-section); }
.elementor .e-con.gv-alt { background: var(--gv-oat); }
.elementor .e-con.gv-dark { background: var(--gv-bark); color: #F3EADB; }
.elementor .gv-dark .elementor-heading-title, .elementor .gv-dark h2, .elementor .gv-dark h3,
.elementor-kit-20659 .gv-dark h2, .elementor-kit-20659 .gv-dark h3 { color: #FFF8EC; }
.gv-dark p { color: #E4D8C6; }

/* Headings and text inside Elementor */
.elementor .elementor-widget-heading:has(h1, h2) { margin-bottom: var(--gv-s4); }
.elementor .elementor-widget-heading h1.elementor-heading-title { font-size: var(--gv-fs-h1); }
.elementor .elementor-widget-heading h2.elementor-heading-title { font-size: var(--gv-fs-h2); }
.elementor .elementor-widget-heading h3.elementor-heading-title { font-size: var(--gv-fs-h3); line-height: 1.25; }
.elementor .elementor-widget-text-editor p { margin: 0 0 var(--gv-s4); }
.elementor .elementor-widget-text-editor > .elementor-widget-container > :last-child,
.elementor .elementor-widget-text-editor > :last-child { margin-bottom: 0; }
.gv-lead p { color: var(--gv-muted); }

/* Eyebrow label with the honey "grain" squiggle */
.elementor .gv-eyebrow .elementor-heading-title {
  display: inline-flex; align-items: center; gap: var(--gv-s3); margin: 0 0 var(--gv-s3);
  font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--gv-eucalypt);
}
.gv-eyebrow .elementor-heading-title::before {
  content: ""; width: 40px; height: 10px; flex: none; background: var(--gv-honey);
  -webkit-mask: var(--gv-mask-grain) no-repeat center / contain; mask: var(--gv-mask-grain) no-repeat center / contain;
}
.gv-dark .gv-eyebrow .elementor-heading-title { color: var(--gv-honey); }

/* Buttons inside Elementor (beat the kit's own .elementor-kit-N .elementor-button) */
.elementor .elementor-widget-button .elementor-button {
  min-height: var(--gv-tap); padding: 0 var(--gv-s5); border-radius: var(--gv-radius); border: 2px solid transparent;
  background: var(--gv-honey); color: var(--gv-bark); font: 700 1rem/1.1 var(--gv-font-body);
  display: inline-flex; align-items: center; justify-content: center;
}
.elementor .elementor-widget-button .elementor-button:hover { background: var(--gv-bark); color: #fff; }
.elementor .gv-btn-secondary .elementor-button { background: transparent; color: var(--gv-bark); border-color: var(--gv-bark); }
.elementor .gv-btn-secondary .elementor-button:hover { background: var(--gv-bark); color: #fff; }
.elementor .gv-dark .gv-btn-secondary .elementor-button { color: #FFF8EC; border-color: #FFF8EC; }
.elementor .gv-dark .gv-btn-secondary .elementor-button:hover { background: #FFF8EC; color: var(--gv-bark); }
.elementor .e-con.gv-btn-row { flex-direction: column; gap: var(--gv-s3); margin-top: var(--gv-s5); }
.elementor .gv-btn-row .elementor-button { width: 100%; }
@media (min-width: 922px) {
  .elementor .e-con.gv-btn-row { flex-direction: row; flex-wrap: wrap; }
  .elementor .gv-btn-row > .elementor-widget { width: auto; }
  .elementor .gv-btn-row .elementor-button { width: auto; }
}

/* Section heading row: eyebrow + title left, "see all" link right */
.elementor .e-con.gv-section-head { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--gv-s4); margin-bottom: var(--gv-s6); }
.elementor .e-con.gv-section-title { width: auto; flex: 1 1 auto; }
.elementor .gv-section-title .elementor-widget-heading:has(h2) { margin-bottom: 0; }
.elementor .e-con.gv-center { justify-content: center; text-align: center; }
.elementor .gv-link-arrow { width: auto; }
.elementor .gv-link-arrow .elementor-heading-title a {
  display: inline-flex; align-items: center; min-height: var(--gv-tap); padding-top: 2px;
  font: 700 1rem/1.2 var(--gv-font-body); color: var(--gv-bark); text-decoration: none; border-bottom: 2px solid var(--gv-honey);
}
.elementor .gv-link-arrow .elementor-heading-title a:hover { border-color: var(--gv-bark); }

/* Ticked list (use <ul class="gv-checks"> in a Text Editor) */
ul.gv-checks { list-style: none; padding: 0; margin: var(--gv-s5) 0 0; display: grid; gap: var(--gv-s3); }
ul.gv-checks li { display: flex; gap: var(--gv-s3); align-items: flex-start; }
ul.gv-checks li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 3px; background: var(--gv-eucalypt);
  -webkit-mask: var(--gv-mask-check) no-repeat center / contain; mask: var(--gv-mask-check) no-repeat center / contain; }

/* ---------- 6. Home ---------- */
/* Hero: photo first, message on a card (phone); photo behind the card (desktop) */
.elementor .e-con.gv-hero { position: relative; display: block; }
.elementor .gv-hero-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 40% 50%; }
.elementor .e-con.gv-hero-wrap { position: relative; z-index: 1; }
.elementor .e-con.gv-hero-card { margin-top: -40px; background: #fff; padding: var(--gv-s6) var(--gv-s5); border-radius: var(--gv-radius); box-shadow: var(--gv-shadow); }
.elementor .e-con.gv-hero-meta { flex-direction: row; align-items: center; gap: var(--gv-s3); margin-top: var(--gv-s5); padding-top: var(--gv-s5); border-top: 1px solid var(--gv-line); }
.elementor .gv-hero-meta .gv-badge { width: 44px; flex: none; }
.elementor .gv-hero-meta .gv-badge img { width: 44px; }
.elementor .gv-hero-meta p { margin: 0; font-size: var(--gv-fs-small); line-height: 1.4; color: var(--gv-muted); }
@media (min-width: 922px) {
  .elementor .e-con.gv-hero { min-height: 640px; display: flex; align-items: center; }
  .elementor .gv-hero-img { position: absolute; inset: 0; }
  .elementor .gv-hero-img .elementor-widget-container { height: 100%; }
  .elementor .gv-hero-img img { height: 100%; aspect-ratio: auto; object-position: 60% 50%; }
  .elementor .e-con.gv-hero-card { margin: var(--gv-s8) 0; max-width: 560px; padding: var(--gv-s7); }
}

/* Promise strip */
.elementor .e-con.gv-promise { border-bottom: 1px solid var(--gv-line); }
.elementor .e-con.gv-promise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gv-s5) var(--gv-s4); padding-block: var(--gv-s7) var(--gv-s6); }
.gv-promise-item { display: flex; flex-direction: column; gap: var(--gv-s2); }
.gv-promise-item p { margin: 0; font-size: var(--gv-fs-small); line-height: 1.4; color: var(--gv-muted); }
.gv-promise-item strong { display: block; color: var(--gv-bark); font-size: 1rem; }
.gv-promise-item::before { content: ""; width: 40px; height: 40px; flex: none; background: var(--gv-eucalypt);
  -webkit-mask: var(--gv-mask-piece) no-repeat center / contain; mask: var(--gv-mask-piece) no-repeat center / contain; }
.gv-ic-leaf::before { -webkit-mask-image: var(--gv-mask-leaf); mask-image: var(--gv-mask-leaf); }
.gv-ic-drop::before { -webkit-mask-image: var(--gv-mask-drop); mask-image: var(--gv-mask-drop); }
.gv-ic-badge::before { -webkit-mask: none; mask: none; background: url(/wp-content/uploads/2023/07/australian-made-owned-1.webp) no-repeat center / contain; }
@media (min-width: 922px) {
  .elementor .e-con.gv-promise-grid { grid-template-columns: repeat(4, 1fr); padding-block: var(--gv-s6); }
  .gv-promise-item { flex-direction: row; align-items: center; gap: var(--gv-s4); }
}

/* Category cards (replace the Pro Call-to-Action widgets; titles always visible) */
.elementor .e-con.gv-cats {
  display: grid; grid-auto-flow: column; grid-auto-columns: 72%; gap: var(--gv-s4);
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  margin-inline: calc(-1 * var(--gv-gutter)); padding: 0 var(--gv-gutter) var(--gv-s2); width: auto;
}
.elementor .e-con.gv-cats::-webkit-scrollbar { display: none; }
.elementor .e-con.gv-cat { scroll-snap-align: start; background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); overflow: hidden; text-decoration: none; color: inherit; }
.elementor .gv-cat-img { background: var(--gv-photo); aspect-ratio: 4 / 3; overflow: hidden; }
.elementor .gv-cat-img .elementor-widget-container { height: 100%; }
.elementor .gv-cat-img img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transform: scale(1.12); transition: transform .3s; }
.elementor .gv-cat:hover .gv-cat-img img { transform: scale(1.18); }
.elementor .e-con.gv-cat-body { flex-direction: row; justify-content: space-between; align-items: center; gap: var(--gv-s2); padding: var(--gv-s4); min-height: 64px; }
.elementor .gv-cat-body .elementor-widget-heading { width: auto; }
.elementor .gv-cat-body h3.elementor-heading-title { font-size: 1.125rem; margin: 0; }
.elementor .gv-cat-count { width: auto; }
.elementor .gv-cat-count p { margin: 0; font-size: var(--gv-fs-small); color: var(--gv-muted); white-space: nowrap; }
@media (min-width: 922px) {
  .elementor .e-con.gv-cats { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; margin: 0; padding: 0; }
}

/* Story */
.elementor .e-con.gv-split { display: grid; gap: var(--gv-s6); align-items: center; }
.elementor .e-con.gv-story-img { position: relative; border-radius: var(--gv-radius); overflow: hidden; }
.elementor .gv-story-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 60% 40%; }
.elementor .gv-story-img .gv-est { position: absolute; left: var(--gv-s4); bottom: var(--gv-s4); width: auto; background: var(--gv-cream); border-radius: var(--gv-radius); padding: var(--gv-s3) var(--gv-s4); }
.gv-est p { margin: 0; font-size: var(--gv-fs-small); line-height: 1.1; color: var(--gv-bark); }
.gv-est b { display: block; font: 600 2rem/1.1 var(--gv-font-head); }
@media (min-width: 922px) {
  .elementor .e-con.gv-split { grid-template-columns: 1.05fr 1fr; gap: var(--gv-s8); }
  .elementor .e-con.gv-split-care { grid-template-columns: 1fr 1.1fr; }
  .elementor .gv-story-img img { aspect-ratio: 5 / 4; }
}

/* Care steps (use <ol class="gv-steps"> in a Text Editor) */
ol.gv-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--gv-s4); counter-reset: gvs; }
ol.gv-steps li { counter-increment: gvs; display: grid; grid-template-columns: 44px 1fr; column-gap: var(--gv-s4); align-items: start;
  background: rgba(255,255,255,.06); border-radius: var(--gv-radius); padding: var(--gv-s4); }
ol.gv-steps li::before { content: counter(gvs); grid-row: span 2; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: var(--gv-honey); color: var(--gv-bark); font: 700 1.125rem/1 var(--gv-font-head); }
ol.gv-steps h3 { margin: 0 0 2px; font-size: 1.125rem; color: #FFF8EC; }
ol.gv-steps p { margin: 0 !important; font-size: 1rem; color: #E4D8C6; }

/* Custom-boards band */
.elementor .e-con.gv-custom { display: grid; background: var(--gv-oat); border-radius: var(--gv-radius); overflow: hidden; }
.elementor .gv-custom-img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.elementor .e-con.gv-custom-body { padding: var(--gv-s5) var(--gv-s5) var(--gv-s6); }
@media (min-width: 922px) {
  .elementor .e-con.gv-custom { grid-template-columns: 1fr 1fr; }
  .elementor .gv-custom-img, .elementor .gv-custom-img .elementor-widget-container { height: 100%; }
  .elementor .gv-custom-img img { height: 100%; min-height: 360px; aspect-ratio: auto; }
  .elementor .e-con.gv-custom-body { padding: var(--gv-s7); justify-content: center; }
}

/* ---------- 7. WooCommerce product cards (home best sellers, shop, categories, related) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products,
.woocommerce.columns-4 ul.products, .woocommerce[class*="columns-"] ul.products {
  display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--gv-s5) var(--gv-s4); margin: 0; padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
@media (min-width: 922px) {
  .woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: var(--gv-s6); }
  .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: var(--gv-s6); }
}
.woocommerce ul.products li.product { min-width: 0; width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important;
  display: flex; flex-direction: column; text-align: left !important; background: transparent; box-shadow: none !important; }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { position: relative; background: var(--gv-photo); border-radius: var(--gv-radius); overflow: hidden; aspect-ratio: 1 / 1; margin: 0; }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a:first-child { display: block; height: 100%; }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; margin: 0 !important; }
.woocommerce ul.products li.product .ast-on-card-button { display: none !important; }
.woocommerce ul.products li.product .astra-shop-summary-wrap { display: flex; flex-direction: column; flex: 1; padding: 0 !important; }
.woocommerce ul.products li.product .ast-woo-product-category { display: block; margin: var(--gv-s3) 0 2px; font: 700 .96rem/1.3 var(--gv-font-body); letter-spacing: .04em; text-transform: uppercase; color: var(--gv-eucalypt); opacity: 1; overflow-wrap: anywhere; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 1.0625rem/1.3 var(--gv-font-head); color: var(--gv-bark); margin: 0 0 var(--gv-s1); padding: 0; overflow-wrap: anywhere; }
.woocommerce ul.products li.product .ast-loop-product__link { text-decoration: none; }
.woocommerce ul.products li.product .price { display: block; margin: 0 0 var(--gv-s3); font-weight: 700; font-size: 1rem; color: var(--gv-charcoal); }
.woocommerce ul.products li.product .price del { color: var(--gv-muted); font-weight: 400; }
.woocommerce ul.products li.product .button {
  margin-top: auto !important; width: 100%; background: transparent; color: var(--gv-bark); border: 2px solid var(--gv-bark);
  padding: 0 var(--gv-s3); font-size: .9375rem; min-height: 44px;
}
.woocommerce ul.products li.product .button:hover { background: var(--gv-bark); color: #fff; }
.woocommerce ul.products li.product .added_to_cart { display: inline-flex; min-height: 44px; align-items: center; font-weight: 700; }

/* Reviews (WP Social Ninja feed): bigger tap targets for the slider dots */
.gv-reviews-feed .swiper-pagination-bullet { width: 24px !important; height: 24px !important; padding: 7px; margin: 0 4px !important;
  background: var(--gv-muted) content-box !important; opacity: .45; border-radius: 50%; }
.gv-reviews-feed .swiper-pagination-bullet-active { opacity: 1; background-color: var(--gv-bark) !important; }

/* Mobile drawer polish */
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-content .main-header-menu,
.ast-mobile-popup-drawer .main-header-menu .sub-menu { background: var(--gv-cream) !important; }
.ast-mobile-popup-drawer .ast-menu-toggle { background: transparent !important; color: var(--gv-bark) !important; width: var(--gv-tap); height: var(--gv-tap); border: 0 !important; }
.ast-mobile-popup-drawer .main-header-menu .menu-item.ast-submenu-expanded > .menu-link,
.ast-mobile-popup-drawer .main-header-menu .menu-item:hover > .menu-link { background: var(--gv-oat) !important; }
.ast-mobile-popup-drawer .sub-menu .menu-link .ast-icon { display: none; }
.ast-mobile-popup-drawer .menu-toggle-close { border: 0 !important; background: transparent !important; }
#ast-mobile-popup .main-header-menu .sub-menu,
#ast-mobile-popup .main-header-menu .sub-menu .menu-item,
#ast-mobile-popup .main-header-menu .sub-menu .menu-link { background: var(--gv-cream) !important; }
#ast-mobile-popup .main-header-menu .sub-menu .menu-link .ast-icon { display: none !important; }
#ast-mobile-popup .main-header-menu .sub-menu .menu-link { padding-left: var(--gv-s7) !important; }

/* ---------- 8. Shop, category and search pages ---------- */
.woocommerce-breadcrumb, .woocommerce .woocommerce-breadcrumb { font-size: var(--gv-fs-small); color: var(--gv-muted); margin-bottom: var(--gv-s4); }
.woocommerce-breadcrumb a { color: var(--gv-bark); text-decoration: underline; text-decoration-color: var(--gv-line); text-underline-offset: 3px; }
.woocommerce-products-header { margin-bottom: var(--gv-s5); }
.woocommerce-products-header__title.page-title { font-size: var(--gv-fs-h1); margin: 0 0 var(--gv-s3); }
.woocommerce-products-header .page-description p:empty { display: none; }
.woocommerce-products-header .term-description, .woocommerce-products-header .page-description { color: var(--gv-muted); max-width: 70ch; }
.woocommerce-page.ast-plain-container #primary, .single-product.ast-plain-container #primary,
.woocommerce-page.ast-no-sidebar #primary { margin-top: var(--gv-s5); margin-bottom: var(--gv-s8); padding-top: 0; }
@media (min-width: 922px) { .woocommerce-page.ast-plain-container #primary, .single-product.ast-plain-container #primary, .woocommerce-page.ast-no-sidebar #primary { margin-top: var(--gv-s6); } }

/* Category chips: one swipeable row on phones, wrapping on desktop */
.gv-chips { margin: 0 calc(-1 * var(--gv-gutter)) var(--gv-s5); }
.gv-chips ul { list-style: none; margin: 0; padding: 0 var(--gv-gutter) var(--gv-s1); display: flex; gap: var(--gv-s2); overflow-x: auto; scrollbar-width: none; }
.gv-chips ul::-webkit-scrollbar { display: none; }
.gv-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--gv-s4); white-space: nowrap;
  border: 1px solid var(--gv-line); border-radius: 999px; background: #fff; color: var(--gv-bark); font-weight: 600; font-size: .9375rem; text-decoration: none; }
.gv-chips a:hover { border-color: var(--gv-bark); }
.gv-chips a[aria-current="page"] { background: var(--gv-bark); border-color: var(--gv-bark); color: #fff; }
@media (min-width: 922px) { .gv-chips { margin-inline: 0; } .gv-chips ul { flex-wrap: wrap; padding: 0; overflow: visible; } }

/* Toolbar: result count + sort */
.woocommerce .woocommerce-result-count { float: none; margin: 0 0 var(--gv-s4); color: var(--gv-muted); font-size: var(--gv-fs-small); }
.woocommerce .woocommerce-ordering { float: none; margin: 0 0 var(--gv-s5); }
.woocommerce .woocommerce-ordering select { min-height: 44px; font-size: 16px; padding: 0 40px 0 var(--gv-s4); border: 1px solid var(--gv-line); border-radius: var(--gv-radius); background-color: #fff; color: var(--gv-charcoal); width: 100%; }
@media (min-width: 600px) {
  .woocommerce .woocommerce-result-count { float: left; line-height: 44px; margin: 0 0 var(--gv-s5); }
  .woocommerce .woocommerce-ordering { float: right; }
  .woocommerce .woocommerce-ordering select { width: auto; }
  .woocommerce .woocommerce-ordering + ul.products, .woocommerce .woocommerce-ordering + * { clear: both; }
}
.woocommerce ul.products { clear: both; }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin-top: var(--gv-s7); }
.woocommerce nav.woocommerce-pagination ul { border: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gv-s2); }
.woocommerce nav.woocommerce-pagination ul li { border: 0 !important; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--gv-line) !important; border-radius: var(--gv-radius); background: #fff; color: var(--gv-bark); font-weight: 700; padding: 0 var(--gv-s3); }
.woocommerce nav.woocommerce-pagination ul li .page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li .page-numbers:hover { background: var(--gv-bark) !important; color: #fff !important; border-color: var(--gv-bark) !important; }

/* Card photos: products are shot 3:2, so show them 3:2 (no cropping) */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { aspect-ratio: 3 / 2; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale { background: var(--gv-honey); color: var(--gv-bark); border-radius: 999px; min-height: 0; line-height: 1; padding: 6px 10px; font-weight: 700; font-size: .8125rem; }
.woocommerce ul.products li.product .ast-shop-product-out-of-stock, .ast-shop-product-out-of-stock {
  background: rgba(255,255,255,.92); color: var(--gv-bark); font-weight: 700; font-size: .96rem; letter-spacing: 0; text-transform: none; white-space: nowrap; border-radius: 999px; padding: 5px 10px; }
/* Notices ("added to your cart", info, errors): one slim line, quiet oat fill, the action as a text link */
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  display: flex; flex-wrap: nowrap; align-items: center; gap: var(--gv-s1) var(--gv-s3);
  margin: 0 0 var(--gv-s5) !important; padding: 10px var(--gv-s4) !important; min-height: 48px;
  background: var(--gv-oat) !important; color: var(--gv-charcoal) !important; border: 0 !important; border-radius: var(--gv-radius);
  font-size: 1rem; line-height: 1.4; box-shadow: none;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before {
  position: static !important; flex: none; align-self: flex-start; margin: 3px 0 0 !important; font-size: 1.125rem; line-height: 1; color: var(--gv-eucalypt) !important; }
.woocommerce-error { display: block; background: #F7E9E5 !important; padding-left: calc(var(--gv-s4) + 28px) !important; position: relative; }
.woocommerce-error::before { position: absolute !important; left: var(--gv-s4); top: 14px; color: #9A4A3A !important; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-message a.button, .woocommerce-info a.button {
  order: 2; float: none !important; margin: 0 0 0 auto !important; padding: 0 !important; min-height: 44px; display: inline-flex; align-items: center;
  background: none !important; border: 0 !important; color: var(--gv-bark) !important; font-weight: 700; font-size: 1rem;
  text-decoration: underline; text-decoration-color: var(--gv-honey); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.woocommerce-message .button::after, .woocommerce-info .button::after { content: " →"; white-space: pre; }
.woocommerce-message .button:hover, .woocommerce-info .button:hover { text-decoration-color: var(--gv-bark); }
/* WooCommerce moves focus to new notices for screen readers; no visible focus ring on a non-interactive box */
.woocommerce-message:focus, .woocommerce-message:focus-visible, .woocommerce-info:focus, .woocommerce-info:focus-visible,
.woocommerce-error:focus, .woocommerce-error:focus-visible, .woocommerce-notices-wrapper:focus-visible { outline: none !important; }

/* ---------- 9. Product page ---------- */
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gv-s6); }
.single-product div.product > * { float: none !important; width: auto !important; margin: 0 !important; }
.single-product div.product .woocommerce-product-gallery { position: relative; }
.single-product div.product .woocommerce-product-gallery__image { background: var(--gv-photo); border-radius: var(--gv-radius); overflow: hidden; }
.single-product div.product .woocommerce-product-gallery__image img { mix-blend-mode: multiply; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--gv-s2); margin-top: var(--gv-s2) !important; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; margin: 0 !important; float: none; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 4px; opacity: .65; background: var(--gv-photo); }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; outline: 2px solid var(--gv-bark); outline-offset: -2px; }
.single-product .woocommerce-product-gallery__trigger { width: 44px !important; height: 44px !important; border-radius: 50% !important; background: #fff !important; }
@media (min-width: 922px) {
  .single-product div.product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: var(--gv-s8); align-items: start; }
  .single-product div.product .woocommerce-product-gallery { position: sticky; top: 120px; }
  .single-product div.product .woocommerce-tabs, .single-product div.product .related, .single-product div.product .upsells { grid-column: 1 / -1; }
}

/* Summary */
.single-product .summary .single-product-category, .single-product .summary .single-product-category a {
  display: inline-block; font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--gv-eucalypt); text-decoration: none; margin-bottom: var(--gv-s2); }
.single-product .summary .product_title { font-size: var(--gv-fs-h1); margin: 0 0 var(--gv-s3); }
.single-product div.product .summary p.price, .single-product div.product .summary span.price { font: 700 1.5rem/1.2 var(--gv-font-body); color: var(--gv-charcoal); margin: 0 0 var(--gv-s5); }
.single-product .summary .stock { font-weight: 700; color: var(--gv-eucalypt); }
.single-product .summary .stock.out-of-stock { color: #A33A2B; }
.single-product .summary form.cart { display: flex; flex-wrap: wrap; gap: var(--gv-s3); align-items: stretch; margin: 0 0 var(--gv-s5) !important; padding: var(--gv-s5); background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); }
.single-product .summary form.cart .wapf { flex: 1 1 100%; }
.single-product .summary form.cart .quantity { margin: 0 !important; }
.single-product .summary form.cart .quantity .qty { width: 72px; min-height: var(--gv-tap); font-size: 16px; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); text-align: center; }
.single-product .summary form.cart .single_add_to_cart_button { flex: 1; min-height: var(--gv-tap); font-size: 1.0625rem; margin: 0 !important; }
.single-product .summary form.cart .ast-qty-placeholder, .single-product .summary form.cart .minus, .single-product .summary form.cart .plus { min-height: var(--gv-tap); }

/* Add-ons (Advanced Product Fields) */
.wapf .gv-addons-title { margin: 0 0 var(--gv-s2); font-weight: 700; color: var(--gv-bark); }
.wapf .wapf-field-content { display: none; }
.wapf .wapf-field-row { margin: 0; }
.wapf .wapf-field-container { padding: 0 !important; margin: 0 !important; }
.wapf .gv-addon .wapf-field-label { display: none; }
.wapf .wapf-checkable label.wapf-input-label { display: flex; align-items: center; gap: var(--gv-s3); min-height: 44px; cursor: pointer; font-size: 1rem; color: var(--gv-charcoal); }
.wapf .wapf-checkable input[type="checkbox"] { width: 22px; height: 22px; margin: 0; accent-color: var(--gv-bark); flex: none; }
.wapf .wapf-checkable .wapf-pricing-hint { margin-left: auto; font-weight: 700; color: var(--gv-muted); }
.wapf-product-totals { margin-top: var(--gv-s3); padding-top: var(--gv-s3); border-top: 1px solid var(--gv-line); font-size: var(--gv-fs-small); color: var(--gv-muted); }
.wapf-product-totals .wapf--inner > div { display: flex; justify-content: space-between; padding: 2px 0; }
.wapf-product-totals .price, .wapf-product-totals .amount { color: var(--gv-charcoal) !important; font-weight: 600 !important; font-size: var(--gv-fs-small) !important; }
.wapf-product-totals .wapf--inner > div:last-child { color: var(--gv-charcoal); font-weight: 700; font-size: 1rem; }
.wapf-product-totals .wapf--inner > div:last-child .price { font-size: 1rem !important; font-weight: 700 !important; }

/* Reassurance points */
ul.gv-buy-points { list-style: none; margin: 0 0 var(--gv-s5); padding: 0; display: grid; gap: var(--gv-s2); }
ul.gv-buy-points li { display: flex; align-items: center; gap: var(--gv-s3); font-size: var(--gv-fs-small); color: var(--gv-muted); }
ul.gv-buy-points .gv-icon { width: 22px; height: 22px; color: var(--gv-eucalypt); }

/* Features (short description), meta */
.single-product .woocommerce-product-details__short-description { border-top: 1px solid var(--gv-line); padding-top: var(--gv-s5); margin-bottom: var(--gv-s5); }
.single-product .woocommerce-product-details__short-description ul { margin: 0 0 var(--gv-s4) 1.2em; }
.single-product .woocommerce-product-details__short-description li { margin-bottom: var(--gv-s1); }
.single-product .woocommerce-product-details__short-description strong { color: var(--gv-bark); }
.single-product .product_meta { font-size: var(--gv-fs-small); color: var(--gv-muted); border-top: 1px solid var(--gv-line); padding-top: var(--gv-s4); display: flex; flex-wrap: wrap; gap: var(--gv-s1) var(--gv-s4); }
.single-product .product_meta > span { display: inline; }

/* Tabs → simple headed panels */
.woocommerce div.product .woocommerce-tabs { border-top: 1px solid var(--gv-line); padding-top: var(--gv-s6); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 var(--gv-s4) !important; display: flex; gap: var(--gv-s2); flex-wrap: wrap; border: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--gv-s4) !important; border-radius: 999px; border: 1px solid var(--gv-line); background: #fff; color: var(--gv-bark) !important; font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { background: var(--gv-bark); border-color: var(--gv-bark); color: #fff !important; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 75ch; margin: 0; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce div.product .woocommerce-tabs .panel p { text-align: left !important; }
.single-product .related.products > h2, .single-product .upsells.products > h2 { font-size: var(--gv-fs-h2); margin-bottom: var(--gv-s5); }
.single-product .related.products { border-top: 1px solid var(--gv-line); padding-top: var(--gv-s7); }

/* Contrast fixes (plugin/theme defaults) */
.wapf .wapf-checkable .wapf-pricing-hint { opacity: 1 !important; color: var(--gv-muted) !important; }
.woocommerce .woocommerce-breadcrumb, .woocommerce-page .woocommerce-breadcrumb { color: var(--gv-muted); }
.woocommerce .woocommerce-breadcrumb a, .woocommerce-page .woocommerce-breadcrumb a { color: var(--gv-bark) !important; }
.woocommerce .price del, .woocommerce .price del bdi, .price del { opacity: 1 !important; color: var(--gv-muted) !important; }

/* ---------- 10. Inner pages: title band, plain content, closing band, 404 ---------- */
:root {
  --gv-mask-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a1 1 0 0 1-1 1A16 16 0 0 1 4 5a1 1 0 0 1 1-1Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  --gv-mask-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m4 7 8 6 8-6' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  --gv-mask-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M12 7v5l3 2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --gv-mask-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='9' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E");
  --gv-mask-cross: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m8.5 8.5 7 7m0-7-7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}
.gv-band { background: var(--gv-oat); border-bottom: 1px solid var(--gv-line); }
.gv-band-in { max-width: calc(var(--gv-container) + 2 * var(--gv-gutter)); margin-inline: auto; padding: var(--gv-s6) var(--gv-gutter) var(--gv-s7); }
.gv-crumbs { display: flex; flex-wrap: wrap; gap: var(--gv-s2); margin-bottom: var(--gv-s5); font-size: var(--gv-fs-small); color: var(--gv-muted); }
.gv-crumbs a { color: var(--gv-bark); text-decoration: underline; text-underline-offset: 3px; }
.gv-band-eyebrow, .gv-404 .gv-band-eyebrow {
  display: inline-flex; align-items: center; gap: var(--gv-s3); margin: 0 0 var(--gv-s3);
  font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--gv-eucalypt);
}
.gv-band-eyebrow::before { content: ""; width: 40px; height: 10px; flex: none; background: var(--gv-honey);
  -webkit-mask: var(--gv-mask-grain) no-repeat center / contain; mask: var(--gv-mask-grain) no-repeat center / contain; }
.gv-band-title { margin: 0; font-size: var(--gv-fs-h1); max-width: 20ch; }
.gv-band-lead { margin: var(--gv-s4) 0 0; max-width: 60ch; color: var(--gv-muted); font-size: 1.125rem; }
.gv-band-compact .gv-band-in { padding-block: var(--gv-s5) var(--gv-s5); }
.gv-band-compact .gv-band-title { font-size: var(--gv-fs-h2); max-width: none; }
.gv-band-compact .gv-band-eyebrow { margin-bottom: var(--gv-s2); }
@media (min-width: 922px) {
  .gv-band-in { padding-block: var(--gv-s7) var(--gv-s8); }
  .gv-band-compact .gv-band-in { padding-block: var(--gv-s6); }
}

/* Page content area */
.page:not(.home) #primary, .blog #primary { margin-block: 0; padding: 0; }
.gv-page-classic #primary, .blog #primary { padding-block: var(--gv-s7) var(--gv-section); }
.gv-page-classic .ast-container, .blog .ast-container { max-width: calc(var(--gv-container) + 2 * var(--gv-gutter)); padding-inline: var(--gv-gutter); }
.gv-page-classic .entry-content, .blog .site-main { max-width: 760px; }
.ast-separate-container.gv-page-classic .ast-article-single, .ast-separate-container.blog .ast-article-post,
.gv-page-classic .ast-article-single { background: transparent; padding: 0; border: 0; }
.gv-page-classic .entry-header { display: none; }

/* Long-form text: plain pages, Terms (class gv-prose), city pages */
.gv-page-classic .entry-content, .gv-prose { font-size: var(--gv-fs-body); }
.gv-page-classic .entry-content > * + *, .gv-prose > * + * { margin-top: var(--gv-s4); }
.gv-page-classic .entry-content :where(h2, h3, h4), .gv-prose :where(h2, h3, h4) { margin: var(--gv-s7) 0 var(--gv-s3); }
.gv-page-classic .entry-content :where(h2, h3, h4):first-child { margin-top: 0; }
.gv-page-classic .entry-content h2, .gv-prose h2 { font-size: var(--gv-fs-h3); line-height: 1.25; }
.gv-page-classic .entry-content h3, .gv-page-classic .entry-content h4, .gv-prose h3 { font-size: 1.25rem; line-height: 1.3; }
.gv-page-classic .entry-content :where(ul, ol), .gv-prose :where(ul, ol) { margin: 0 0 var(--gv-s4) 1.25em; padding: 0; }
.gv-page-classic .entry-content li, .gv-prose li { margin-bottom: var(--gv-s2); }
.gv-page-classic .entry-content li::marker, .gv-prose li::marker { color: var(--gv-eucalypt); }
.gv-page-classic .entry-content a:not(.button), .gv-prose a { text-decoration: underline; text-underline-offset: 3px; }
.gv-page-classic .entry-content img { border-radius: var(--gv-radius); }
.gv-page-classic .entry-content p:empty { display: none; }
.gv-legal { font-size: 1rem; }
.gv-legal > ol { margin-left: 0 !important; list-style-position: inside; }
.gv-legal > ol > li { margin-top: var(--gv-s6); }
.gv-legal > ol > li > strong:first-child { font-family: var(--gv-font-head); font-size: var(--gv-fs-h4, 1.25rem); color: var(--gv-bark); text-transform: lowercase; display: inline-block; }
.gv-legal > ol > li > strong:first-child::first-letter { text-transform: uppercase; }
.gv-legal ol ol { margin-top: var(--gv-s3) !important; list-style-position: outside; padding-left: 1.5em; }
.elementor .e-con.gv-section-tight { padding-block: var(--gv-s7) var(--gv-section); }
.elementor .e-con.gv-narrow { max-width: calc(760px + 2 * var(--gv-gutter)); margin-inline: auto; }

/* Products inside plain pages (city pages use [products]) */
.gv-page-classic .entry-content .woocommerce { max-width: none; margin-block: var(--gv-s6); }
.gv-page-classic .entry-content:has(.woocommerce) { max-width: none; }
.gv-page-classic .entry-content:has(.woocommerce) > :not(.woocommerce):not(.gv-vc-btn) { max-width: 760px; }
.gv-vc-btn { margin-top: var(--gv-s5); }

/* Sitemap page */
.gv-sitemap { display: grid; gap: var(--gv-s6); }
.gv-sitemap ul { list-style: none; margin: 0 !important; display: grid; gap: var(--gv-s2); }
.gv-sitemap h2 { margin-top: 0 !important; }
@media (min-width: 768px) { .gv-sitemap { grid-template-columns: 1fr 1fr; } }

/* Closing band on information pages */
.gv-page-cta { background: var(--gv-bark); color: #E4D8C6; }
.gv-page-cta-in { max-width: calc(var(--gv-container) + 2 * var(--gv-gutter)); margin-inline: auto; padding: var(--gv-section) var(--gv-gutter);
  display: grid; gap: var(--gv-s5); align-items: center; }
.gv-page-cta h2 { color: #FFF8EC; margin: 0 0 var(--gv-s3); font-size: var(--gv-fs-h2); }
.gv-page-cta p { margin: 0; max-width: 52ch; }
.gv-page-cta .gv-band-eyebrow { color: var(--gv-honey); }
.gv-page-cta-btns { display: flex; flex-direction: column; gap: var(--gv-s3); }
.gv-page-cta .button.gv-btn-secondary { color: #FFF8EC; border-color: #FFF8EC; }
.gv-page-cta .button.gv-btn-secondary:hover { background: #FFF8EC; color: var(--gv-bark); }
.gv-page-cta .button:not(.gv-btn-secondary):hover { background: #FFF8EC; color: var(--gv-bark); }
@media (min-width: 922px) {
  .gv-page-cta-in { grid-template-columns: 1fr auto; gap: var(--gv-s8); }
  .gv-page-cta-btns { flex-direction: row; }
}

/* 404 and "nothing here yet" */
.error404 #primary { padding-block: var(--gv-section); }
.gv-404, .gv-empty { max-width: 640px; margin-inline: auto; text-align: center; }
.gv-404 h1 { margin: 0 0 var(--gv-s4); }
.gv-404-lead { color: var(--gv-muted); margin-bottom: var(--gv-s5); }
.gv-404 .search-form { display: flex; gap: var(--gv-s2); max-width: 460px; margin: 0 auto var(--gv-s5); }
.gv-404 .search-form label { flex: 1; }
.gv-404-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gv-s3); }
.gv-empty { padding-block: var(--gv-s6); }
.gv-empty h2 { font-size: var(--gv-fs-h3); }

/* ---------- 11. Inner-page components (About, Care, Contact) ---------- */
.elementor .e-con.gv-split-media { border-radius: var(--gv-radius); overflow: hidden; }
.elementor .gv-split-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--gv-radius); }
.elementor .gv-photo { background: #fff; border: 1px solid var(--gv-line); }
.elementor .gv-photo img { object-fit: contain; aspect-ratio: 1; padding: var(--gv-s5); }
@media (min-width: 922px) {
  .elementor .e-con.gv-split-rev { grid-template-columns: 1fr 1.05fr; }
}
.gv-small, .gv-small p { font-size: var(--gv-fs-small); color: var(--gv-muted); }

/* Timeline (About) */
ol.gv-timeline { list-style: none; margin: var(--gv-s5) 0 0; padding: 0; display: grid; gap: 0; }
ol.gv-timeline li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: var(--gv-s4); padding-bottom: var(--gv-s5); }
ol.gv-timeline li::before { content: ""; position: absolute; left: 27px; top: 34px; bottom: 0; width: 2px; background: var(--gv-line); }
ol.gv-timeline li:last-child { padding-bottom: 0; }
ol.gv-timeline li:last-child::before { display: none; }
ol.gv-timeline b { display: grid; place-items: center; width: 56px; height: 30px; border-radius: 15px; background: var(--gv-bark); color: #FFF8EC; font-size: .9375rem; }
ol.gv-timeline p { margin: 2px 0 0 !important; }

/* Feature cards (About) */
.elementor .e-con.gv-features { display: grid; gap: var(--gv-s4); }
.gv-feature { background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); padding: var(--gv-s5); }
.gv-feature::before { content: ""; display: block; width: 40px; height: 40px; margin-bottom: var(--gv-s4); background: var(--gv-eucalypt);
  -webkit-mask: var(--gv-mask-piece) no-repeat center / contain; mask: var(--gv-mask-piece) no-repeat center / contain; }
.gv-feature h3 { margin: 0 0 var(--gv-s2); font-size: var(--gv-fs-h3); }
.gv-feature p { margin: 0 !important; color: var(--gv-muted); }
@media (min-width: 922px) { .elementor .e-con.gv-features { grid-template-columns: repeat(3, 1fr); gap: var(--gv-s5); } }

/* Data table (About study) */
.gv-table-wrap { overflow-x: auto; margin: var(--gv-s5) 0 var(--gv-s3); }
table.gv-table { width: 100%; min-width: 440px; border-collapse: collapse; background: #fff; border-radius: var(--gv-radius); overflow: hidden; font-size: 1rem; }
.gv-table caption { text-align: left; font-weight: 700; color: var(--gv-bark); padding-bottom: var(--gv-s2); }
.gv-table th, .gv-table td { padding: var(--gv-s3) var(--gv-s4); text-align: center; border: 0; border-bottom: 1px solid var(--gv-line); }
.gv-table thead th { background: var(--gv-bark); color: #FFF8EC; font-weight: 700; font-size: .9375rem; }
.gv-table tbody th { text-align: left; color: var(--gv-bark); }
.gv-table tbody tr:last-child > * { border-bottom: 0; font-weight: 700; }
.gv-table .gv-hl { background: #F6EBD3; font-weight: 700; color: var(--gv-bark); }
.gv-table thead .gv-hl { background: var(--gv-honey); color: var(--gv-bark); }

/* "Avoid" list (Care) */
.elementor .gv-avoid-title { margin-top: var(--gv-s6); }
.elementor .gv-avoid-title .elementor-heading-title { font-size: 1.25rem; }
ul.gv-avoid { list-style: none; padding: 0; margin: var(--gv-s3) 0 0; display: grid; gap: var(--gv-s3); }
ul.gv-avoid li { display: flex; gap: var(--gv-s3); align-items: flex-start; }
ul.gv-avoid li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 3px; background: #9A4A3A;
  -webkit-mask: var(--gv-mask-cross) no-repeat center / contain; mask: var(--gv-mask-cross) no-repeat center / contain; }

/* Contact */
.elementor .e-con.gv-contact { display: grid; gap: var(--gv-s6); align-items: start; }
.elementor .e-con.gv-card { background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); padding: var(--gv-s5); box-shadow: var(--gv-shadow); }
.elementor .gv-contact h2.elementor-heading-title { font-size: var(--gv-fs-h3); }
ul.gv-contact-cards { list-style: none; margin: 0 0 var(--gv-s4); padding: 0; display: grid; gap: var(--gv-s4); }
ul.gv-contact-cards li { display: grid; grid-template-columns: 48px 1fr; column-gap: var(--gv-s4); align-items: center; }
ul.gv-contact-cards li::before { content: ""; grid-row: span 2; width: 48px; height: 48px; border-radius: 50%; background: var(--gv-oat); }
ul.gv-contact-cards li::after { content: ""; position: absolute; }
ul.gv-contact-cards li { position: relative; }
ul.gv-contact-cards li > span { font-size: var(--gv-fs-small); color: var(--gv-muted); line-height: 1.3; }
ul.gv-contact-cards a { font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
ul.gv-contact-cards a:hover { text-decoration: underline; }
ul.gv-contact-cards li > a, ul.gv-contact-cards li { line-height: 1.4; }
ul.gv-contact-cards li::after { left: 12px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--gv-bark);
  -webkit-mask: var(--gv-mask-phone) no-repeat center / contain; mask: var(--gv-mask-phone) no-repeat center / contain; }
ul.gv-contact-cards li.gv-ic-mail::after { -webkit-mask-image: var(--gv-mask-mail); mask-image: var(--gv-mask-mail); }
ul.gv-contact-cards li.gv-ic-clock::after { -webkit-mask-image: var(--gv-mask-clock); mask-image: var(--gv-mask-clock); }
@media (min-width: 922px) {
  .elementor .e-con.gv-contact { grid-template-columns: 1.25fr 1fr; gap: var(--gv-s8); }
  .elementor .e-con.gv-card { padding: var(--gv-s7); }
  .elementor .e-con.gv-contact-info { padding-top: var(--gv-s5); }
}
.elementor .e-con.gv-places { display: grid; gap: var(--gv-s4); }
.gv-place { background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); padding: var(--gv-s5); height: 100%; }
.gv-place::before { content: ""; display: block; width: 32px; height: 32px; margin-bottom: var(--gv-s3); background: var(--gv-eucalypt);
  -webkit-mask: var(--gv-mask-pin) no-repeat center / contain; mask: var(--gv-mask-pin) no-repeat center / contain; }
.gv-place .gv-place-label { margin: 0 0 var(--gv-s1) !important; font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--gv-eucalypt); }
.gv-place h3 { margin: 0 0 var(--gv-s2); font-size: var(--gv-fs-h3); }
.gv-place p { margin: 0 0 var(--gv-s3) !important; color: var(--gv-muted); }
.gv-place p:last-child { margin: 0 !important; }
a.gv-place-link { display: inline-flex; align-items: center; min-height: var(--gv-tap); font-weight: 700; color: var(--gv-bark); text-decoration: none; border-bottom: 2px solid var(--gv-honey); line-height: 1.2; }
a.gv-place-link:hover { border-color: var(--gv-bark); }
@media (min-width: 768px) { .elementor .e-con.gv-places { grid-template-columns: repeat(2, 1fr); gap: var(--gv-s5); } }
@media (min-width: 1100px) { .elementor .e-con.gv-places { grid-template-columns: repeat(4, 1fr); } }

/* ---------- 12. Forms (Fluent Forms, WooCommerce, search) ---------- */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], input[type="url"], textarea, select):not(.wapf-input) {
  min-height: var(--gv-tap); padding: 10px 14px; font-size: 16px; line-height: 1.4; color: var(--gv-charcoal);
  background: #fff; border: 1px solid #B9AC99; border-radius: var(--gv-radius); box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
:where(input, textarea, select):focus { border-color: var(--gv-bark) !important; box-shadow: 0 0 0 3px rgba(76, 61, 49, .15) !important; outline: none; }
textarea { min-height: 140px; }
label, .ff-el-input--label label { font-weight: 700; color: var(--gv-bark); font-size: 1rem; }
.fluentform .ff-el-group { margin-bottom: var(--gv-s4); }
.fluentform .ff-el-input--label { margin-bottom: var(--gv-s2); }
.fluentform .ff-el-input--label.asterisk-right label::after { color: #9A4A3A; }
.fluentform .ff-el-form-control { width: 100%; border-radius: var(--gv-radius) !important; border-color: #B9AC99 !important; font-size: 16px !important; color: var(--gv-charcoal) !important; padding: 10px 14px !important; }
.fluentform .ff-btn-submit, .fluentform .ff_btn_style { min-height: var(--gv-tap); padding: 0 var(--gv-s6) !important; border-radius: var(--gv-radius) !important;
  background: var(--gv-honey) !important; color: var(--gv-bark) !important; font: 700 1rem/1.1 var(--gv-font-body) !important; border: 0 !important; width: 100%; }
.fluentform .ff-btn-submit:hover { background: var(--gv-bark) !important; color: #fff !important; }
.fluentform .error, .fluentform .text-danger { color: #9A4A3A !important; font-size: var(--gv-fs-small); margin-top: var(--gv-s1); }
.ff-message-success { border: 1px solid var(--gv-eucalypt) !important; border-left-width: 4px !important; background: #F1F4EF !important; border-radius: var(--gv-radius); padding: var(--gv-s4) var(--gv-s5) !important; box-shadow: none !important; color: var(--gv-charcoal); }
@media (min-width: 922px) { .fluentform .ff-btn-submit { width: auto; } }
.fluentform .ff-el-form-control { background: #fff !important; }
.elementor .gv-contact-form .elementor-widget-heading { margin-bottom: var(--gv-s5); }
/* Theme-printed buttons and headings outside Elementor: beat Astra's inline .button and the kit's h2 colour */
body :is(.gv-page-cta, .gv-404, .gv-empty, .gv-vc-btn, .gv-page-classic .entry-content) a.button {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--gv-tap); padding: 0 var(--gv-s5);
  background: var(--gv-honey); color: var(--gv-bark); border: 2px solid transparent; border-radius: var(--gv-radius);
  font: 700 1rem/1.1 var(--gv-font-body); text-decoration: none;
}
body :is(.gv-page-cta, .gv-404, .gv-empty, .gv-vc-btn, .gv-page-classic .entry-content) a.button:hover { background: var(--gv-bark); color: #fff; }
body :is(.gv-404, .gv-empty) a.button.gv-btn-secondary { background: transparent; color: var(--gv-bark); border-color: var(--gv-bark); }
body :is(.gv-404, .gv-empty) a.button.gv-btn-secondary:hover { background: var(--gv-bark); color: #fff; }
body .gv-page-cta a.button.gv-btn-secondary { background: transparent; color: #FFF8EC; border-color: #FFF8EC; }
body .gv-page-cta a.button:hover, body .gv-page-cta a.button.gv-btn-secondary:hover { background: #FFF8EC; color: var(--gv-bark); }
body .gv-page-cta h2 { color: #FFF8EC; }
.gv-feature.gv-ic-leaf::before { -webkit-mask-image: var(--gv-mask-leaf); mask-image: var(--gv-mask-leaf); }
.gv-feature.gv-ic-drop::before { -webkit-mask-image: var(--gv-mask-drop); mask-image: var(--gv-mask-drop); }
.page.gv-page-classic #primary, .blog #primary { padding-block: var(--gv-s7) var(--gv-section); }
.gv-page-classic .site-content, .blog .site-content, .error404 .site-content { background: var(--gv-cream); }
.error404 .ast-404-layout-1, .error404 .ast-article-single, .error404 .site-main > * { background: transparent !important; padding: 0 !important; box-shadow: none; }
.error404 .error-404 { background: transparent !important; padding: 0 !important; }
.gv-search { display: flex; gap: var(--gv-s2); max-width: 460px; margin: 0 auto var(--gv-s5); }
.gv-search input[type="search"] { flex: 1; min-width: 0; }
body .gv-search .button { min-height: var(--gv-tap); padding: 0 var(--gv-s5); background: var(--gv-bark); color: #fff; border: 0; border-radius: var(--gv-radius); font-weight: 700; }
body .gv-search .button:hover { background: var(--gv-charcoal); }

/* ---------- 13. Cart, checkout, account, order received ---------- */
.woocommerce-cart #primary, .woocommerce-checkout #primary, .woocommerce-account #primary { padding-block: var(--gv-s6) var(--gv-section) !important; }
.woocommerce-cart .ast-container, .woocommerce-checkout .ast-container, .woocommerce-account .ast-container { max-width: calc(var(--gv-container) + 2 * var(--gv-gutter)); padding-inline: var(--gv-gutter); }
.woocommerce-cart .site-content, .woocommerce-checkout .site-content, .woocommerce-account .site-content { background: var(--gv-cream); }
.woocommerce-cart .ast-article-single, .woocommerce-checkout .ast-article-single, .woocommerce-account .ast-article-single { background: transparent !important; padding: 0 !important; }

/* Shared card look */
.woocommerce-cart-form, .cart_totals, .woocommerce-checkout #customer_details, .woocommerce-checkout-review-order,
.woocommerce form.login, .woocommerce form.register, .woocommerce-MyAccount-content, .woocommerce-order {
  background: #fff; border: 1px solid var(--gv-line); border-radius: var(--gv-radius); padding: var(--gv-s5);
}
.woocommerce :where(.cart_totals, #customer_details, #order_review, .woocommerce-MyAccount-content, form.login) h2,
.woocommerce :where(.cart_totals, #customer_details, #order_review_heading, .woocommerce-additional-fields) h3,
.woocommerce-checkout #order_review_heading, .woocommerce-order h2 {
  font-family: var(--gv-font-head); font-size: var(--gv-fs-h3) !important; line-height: 1.25; color: var(--gv-bark); margin: 0 0 var(--gv-s4) !important; padding: 0 !important; border: 0 !important; text-transform: none !important;
}

/* Cart: items card on the left, order summary card on the right */
.woocommerce-cart #primary, .woocommerce-checkout #primary, .woocommerce-account #primary { padding-top: var(--gv-s6) !important; }
.woocommerce-cart :is(article, .entry-content, .woocommerce), .woocommerce-checkout :is(article, .entry-content, .woocommerce) { margin-top: 0 !important; margin-bottom: 0 !important; }
.woocommerce table.shop_table { border: 0; border-radius: 0; margin: 0; border-collapse: collapse; font-size: 1rem; }
.woocommerce table.shop_table :is(th, td) { background: transparent !important; border-color: var(--gv-line); }
.woocommerce-cart-form { padding: 0 var(--gv-s5) !important; }
.woocommerce-cart-form table.cart thead th { font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--gv-muted); padding: var(--gv-s4) var(--gv-s3) var(--gv-s3); border-top: 0; }
.woocommerce-cart-form table.cart td { padding: var(--gv-s4) var(--gv-s3); vertical-align: middle; }
.woocommerce-cart-form table.cart :is(th, td):first-child { padding-left: 0; }
.woocommerce-cart-form table.cart :is(th, td):last-child { padding-right: 0; text-align: right; }
.woocommerce-cart table.cart td.product-remove { width: 44px; }
.woocommerce-cart table.cart td.product-thumbnail { width: 96px; }
.woocommerce-cart table.cart img { width: 80px !important; height: 80px; object-fit: cover; border-radius: var(--gv-radius); background: var(--gv-photo); display: block; }
.woocommerce-cart table.cart .product-name a { font-weight: 700; color: var(--gv-bark); text-decoration: none; }
.woocommerce-cart table.cart .product-name a:hover { text-decoration: underline; }
.woocommerce-cart table.cart .product-name :is(dl.variation, p), .woocommerce-cart table.cart .product-name dl.variation * { font-size: var(--gv-fs-small); color: var(--gv-muted); margin: 2px 0 0; line-height: 1.4; }
.woocommerce-cart table.cart .product-subtotal { font-weight: 700; color: var(--gv-bark); }
.woocommerce a.remove { width: 32px; height: 32px; line-height: 30px; font-size: 22px; border: 1px solid var(--gv-line); color: var(--gv-muted) !important; border-radius: 50%; }
.woocommerce a.remove:hover { background: #9A4A3A; border-color: #9A4A3A; color: #fff !important; }
.woocommerce .quantity .qty { width: 64px; min-height: 44px; padding: 0 4px; text-align: center; border: 1px solid #B9AC99; border-radius: var(--gv-radius); font-size: 16px; }
.woocommerce table.cart td.actions { padding: var(--gv-s4) 0 !important; border-top: 1px solid var(--gv-line); text-align: right; }
.woocommerce table.cart td.actions .coupon .input-text { min-height: var(--gv-tap); width: 180px !important; border: 1px solid #B9AC99; border-radius: var(--gv-radius); padding: 0 14px; font-size: 16px; }
.woocommerce table.cart td.actions button[name="update_cart"] { min-height: 44px; padding: 0 var(--gv-s4); background: transparent; color: var(--gv-bark); border: 2px solid var(--gv-bark); opacity: 1; font-size: .9375rem; }
.woocommerce table.cart td.actions button[name="update_cart"]:disabled { border-color: var(--gv-line); color: var(--gv-muted); }

/* Order summary */
.woocommerce-cart .cart-collaterals { margin-top: var(--gv-s5); }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; margin: 0; padding: var(--gv-s5) !important; }
.woocommerce-cart .cart_totals h2 { background: none !important; padding: 0 !important; margin: 0 0 var(--gv-s3) !important; font-size: 1.375rem !important; }
.woocommerce-cart .cart_totals table.shop_table { width: 100%; }
.woocommerce-cart .cart_totals table.shop_table tr > * { padding: var(--gv-s3) 0; vertical-align: baseline; border-top: 1px solid var(--gv-line); }
.woocommerce-cart .cart_totals table.shop_table tr:first-child > * { border-top: 0; }
.woocommerce-cart .cart_totals table.shop_table th { width: auto; font: 400 1rem/1.4 var(--gv-font-body); letter-spacing: 0; text-transform: none; color: var(--gv-muted); text-align: left; }
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; color: var(--gv-charcoal); }
.woocommerce-cart .cart_totals table.shop_table td::before { display: none; } /* WooCommerce's phone labels: the th already shows */
.woocommerce-cart .cart_totals .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li { margin: 0; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods label { font-weight: 700; color: var(--gv-eucalypt); font-size: 1rem; }
/* Cart: no "Shipping to Victoria / Change address" (shipping is free Australia-wide; the address is entered at checkout) */
.woocommerce-cart .cart_totals .woocommerce-shipping-destination, .woocommerce-cart .cart_totals .woocommerce-shipping-calculator { display: none; }
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator { margin: 0; font-size: var(--gv-fs-small); }
.woocommerce-cart .cart_totals .shipping-calculator-button { margin: 0; color: var(--gv-bark); }
.woocommerce-cart .cart_totals .shipping-calculator-button::after { display: none; }
.woocommerce-cart .cart_totals .order-total > * { padding-top: var(--gv-s4); }
.woocommerce-cart .cart_totals .order-total th { color: var(--gv-bark); font-weight: 700; }
.woocommerce-cart .cart_totals .order-total td strong { font-size: 1.375rem; color: var(--gv-bark); }
.woocommerce-cart .cart_totals .order-total small.includes_tax { display: block; margin-top: 2px; font-size: var(--gv-fs-small); color: var(--gv-muted); }
.woocommerce-cart .wc-proceed-to-checkout { padding: var(--gv-s4) 0 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 56px; font-size: 1.125rem; margin: 0 !important; }
@media (min-width: 922px) {
  .woocommerce-cart .woocommerce { display: grid; grid-template-columns: 1fr 360px; gap: var(--gv-s6); align-items: start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
  .woocommerce-cart .cart-collaterals { margin-top: 0; position: sticky; top: 140px; }
  .woocommerce-cart .cart-collaterals .cross-sells { display: none; }
}
@media (max-width: 921px) {
  .woocommerce-cart-form { padding: 0 var(--gv-s4) !important; }
  .woocommerce-cart-form table.cart tr.cart_item { display: grid; grid-template-columns: 88px 1fr auto; gap: 2px var(--gv-s3); padding: var(--gv-s4) 0; border-bottom: 1px solid var(--gv-line); position: relative; }
  .woocommerce-cart-form table.cart tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; }
  .woocommerce-cart-form table.cart tr.cart_item td::before { display: none !important; }
  .woocommerce-cart-form table.cart td.product-thumbnail { grid-row: 1 / span 3; display: block !important; width: 88px; }
  .woocommerce-cart-form table.cart td.product-remove { position: absolute; top: var(--gv-s4); right: 0; width: auto; }
  .woocommerce-cart-form table.cart td.product-name { grid-column: 2 / 4; padding-right: 40px !important; }
  .woocommerce-cart-form table.cart td.product-price { display: none !important; }
  .woocommerce-cart-form table.cart td.product-quantity { grid-column: 2; }
  .woocommerce-cart-form table.cart td.product-subtotal { grid-column: 3; align-self: center; }
  .woocommerce-cart-form table.cart td.actions { display: block; border-top: 0; }
  .woocommerce-cart-form table.cart td.actions button[name="update_cart"] { width: 100%; }
}
.cart-empty.woocommerce-info { font-size: 1.125rem; }
.woocommerce-cart .return-to-shop { margin-top: var(--gv-s5); }

/* Checkout */
.woocommerce form .form-row { margin-bottom: var(--gv-s4); padding: 0; }
.woocommerce form .form-row label { font-size: 1rem; font-weight: 700; color: var(--gv-bark); margin-bottom: var(--gv-s1); line-height: 1.4; }
.woocommerce form .form-row .required { color: #9A4A3A; text-decoration: none; }
.woocommerce form .form-row :is(.input-text, select, textarea), .woocommerce form .form-row .select2-container .select2-selection {
  min-height: var(--gv-tap); border: 1px solid #B9AC99 !important; border-radius: var(--gv-radius) !important; background: #fff; font-size: 16px; padding: 10px 14px; color: var(--gv-charcoal); box-shadow: none;
}
.woocommerce form .form-row .select2-container .select2-selection__rendered { line-height: 26px; padding: 0; }
.woocommerce form .form-row .select2-container .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row.woocommerce-invalid :is(.input-text, select) { border-color: #9A4A3A !important; }
.woocommerce form .form-row :is(.input-text, select):focus { border-color: var(--gv-bark) !important; box-shadow: 0 0 0 3px rgba(76, 61, 49, .15); }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; padding: 0; }
.woocommerce-checkout #customer_details .col-2 { margin-top: var(--gv-s5); }
.woocommerce-checkout .woocommerce-billing-fields > h3, .woocommerce-checkout .woocommerce-additional-fields > h3 { border: 0; }
#ship-to-different-address { font-size: 1rem !important; font-family: var(--gv-font-body) !important; font-weight: 700; }
.woocommerce-checkout input[type="checkbox"], .woocommerce form input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--gv-bark); vertical-align: -4px; margin-right: var(--gv-s2); }
.woocommerce-checkout-review-order-table td.product-name { font-weight: 700; color: var(--gv-bark); }
.woocommerce-checkout-review-order-table dl.variation, .woocommerce-checkout-review-order-table .product-name p { font-weight: 400; font-size: var(--gv-fs-small); color: var(--gv-muted); }
.woocommerce-checkout #place_order { width: 100%; min-height: 56px; font-size: 1.125rem; float: none; }
@media (min-width: 922px) {
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1fr 420px; gap: 0 var(--gv-s6); align-items: start; }
  .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup, .woocommerce-checkout form.checkout > .wc_coupon_message { grid-column: 1 / -1; }
  .woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; width: auto !important; float: none !important; margin: 0 !important; padding: var(--gv-s6); }
  .woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; float: none !important; width: auto !important; padding: var(--gv-s5) var(--gv-s5) 0 !important; margin: 0 !important;
    background: #fff; border: 1px solid var(--gv-line); border-bottom: 0; border-radius: var(--gv-radius) var(--gv-radius) 0 0; }
  .woocommerce-checkout form.checkout #order_review { grid-column: 2; float: none !important; width: auto !important; position: sticky; top: 140px; margin: 0; }
  .woocommerce-checkout form.checkout #order_review .woocommerce-checkout-review-order-table { margin: 0; }
  .woocommerce-checkout form.checkout #order_review { background: #fff; border: 1px solid var(--gv-line); border-top: 0; border-radius: 0 0 var(--gv-radius) var(--gv-radius); padding: var(--gv-s2) var(--gv-s5) var(--gv-s5); }
  .woocommerce-checkout .woocommerce-checkout-review-order { border: 0; padding: 0; }
}
/* Astra's own two-column checkout wrapper */
.ast-woo-two-column-checkout .woocommerce-checkout #order_review, .ast-woo-two-column-checkout #order_review_heading { box-shadow: none; }

/* Account: login and dashboard */
.woocommerce-account .woocommerce form.login { max-width: 480px; margin: 0 auto; padding: var(--gv-s6); }
.woocommerce-account .woocommerce > h2 { max-width: 480px; margin: 0 auto var(--gv-s4); font-size: var(--gv-fs-h3); }
.woocommerce form.login .button { width: 100%; margin-top: var(--gv-s3); }
.woocommerce form.login .woocommerce-form-login__rememberme { display: block; font-weight: 400; margin-bottom: var(--gv-s2); }
.woocommerce form.login .lost_password a { font-weight: 700; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 var(--gv-s5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--gv-s2); }
.woocommerce-MyAccount-navigation li a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--gv-s4); border: 1px solid var(--gv-line); border-radius: 999px; background: #fff; color: var(--gv-bark); font-weight: 700; text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--gv-bark); color: #fff; border-color: var(--gv-bark); }
@media (min-width: 922px) {
  .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 240px 1fr; gap: var(--gv-s6); }
  .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
  .woocommerce-MyAccount-navigation ul { flex-direction: column; }
}

/* Order received */
.woocommerce-order .woocommerce-thankyou-order-received { font: 600 var(--gv-fs-h3)/1.25 var(--gv-font-head); color: var(--gv-bark); margin: 0 0 var(--gv-s5); }
.woocommerce-order ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--gv-s3); margin: 0 0 var(--gv-s6); padding: 0; }
.woocommerce-order ul.order_details li { border: 1px solid var(--gv-line) !important; border-radius: var(--gv-radius); padding: var(--gv-s3) var(--gv-s4) !important; margin: 0 !important; float: none; font-size: var(--gv-fs-small); text-transform: none; color: var(--gv-muted); }
.woocommerce-order ul.order_details li strong { font-size: 1rem; color: var(--gv-bark); margin-top: var(--gv-s1); }
.woocommerce-order .woocommerce-customer-details address { border: 1px solid var(--gv-line); border-radius: var(--gv-radius); padding: var(--gv-s4); }
@media (max-width: 767px) {
  .gv-page-classic .entry-content :is(img.alignright, img.alignleft, .alignright, .alignleft) { float: none; display: block; margin: 0 0 var(--gv-s4); max-width: 100%; width: 100%; height: auto; }
}
@media (min-width: 768px) {
  .gv-page-classic .entry-content img.alignright { margin-left: var(--gv-s5); }
  .gv-page-classic .entry-content img.alignleft { margin-right: var(--gv-s5); }
}
.woocommerce-account:not(.logged-in) .woocommerce h2 { max-width: 480px; margin-inline: auto; }

/* Reviews: every card the same height, dark bark cards (as before) with light text; no dots when everything fits */
.gv-reviews-feed .swiper-wrapper { align-items: stretch; }
.gv-reviews-feed .swiper-slide { height: auto !important; display: flex; }
.gv-reviews-feed .wpsr-review-template { width: 100%; height: 100%; display: flex; flex-direction: column; background: var(--gv-bark) !important;
  border: 0 !important; border-radius: var(--gv-radius) !important; box-shadow: none !important; padding: var(--gv-s5) !important; }
.gv-reviews-feed .wpsr-review-content { flex: 1; }
.gv-reviews-feed .wpsr-reviewer-name { font-family: var(--gv-font-head); font-weight: 600; font-size: 1.125rem; }
.gv-reviews-feed .swiper-pagination:not(:has(.swiper-pagination-bullet + .swiper-pagination-bullet)) { display: none; }
.gv-reviews-feed .wpsr-review-template .wpsr-reviewer-name { color: #FFF8EC !important; }
.gv-reviews-feed .wpsr-review-template .wpsr-review-content, .gv-reviews-feed .wpsr-review-template .wpsr-review-content p { color: #E4D8C6 !important; }
.gv-reviews-feed .wpsr-review-template a { color: #FFF8EC !important; }
.gv-reviews-feed .wpsr-review-platform { background: #fff; border-radius: 50%; padding: 3px; line-height: 0; }
/* Reviews: line the slider up with the section grid; room above for the avatar, nothing clipped below */
.gv-reviews-feed .wpsr-container { padding: 0 !important; }
.gv-reviews-feed .wpsr-reviews-slider-wrapper-inner { margin: 0 !important; }
.gv-reviews-feed .wpsr-reviews-slider.swiper-container { padding: 44px 1px 2px !important; }
.gv-reviews-feed .swiper-wrapper { margin: 0 !important; }
.gv-reviews-feed .wpsr-review-template { margin: 0 !important; padding: var(--gv-s7) var(--gv-s5) var(--gv-s5) !important; }
.gv-reviews-feed .wpsr-review-template .wpsr-review-content, .gv-reviews-feed .wpsr-review-template .wpsr-review-content p { font-size: 1rem !important; line-height: 1.6 !important; }
.gv-reviews-feed .wpsr-reviewer-name-url { text-decoration: none !important; }
.gv-reviews-feed .wpsr-reviewer-name-url:hover .wpsr-reviewer-name { text-decoration: underline; }
/* Phones: keep the summary as label | amount rows (WooCommerce hides the labels on small screens) */
.woocommerce-cart .cart_totals table.shop_table_responsive tr { display: table-row !important; }
.woocommerce-cart .cart_totals table.shop_table_responsive tr > th, .woocommerce-cart .cart_totals table.shop_table_responsive tr > td { display: table-cell !important; }
/* Checkout "Your order": same rows as the cart summary */
.woocommerce-checkout-review-order-table thead th { font: 700 var(--gv-fs-eyebrow)/1.3 var(--gv-font-body) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--gv-muted) !important; }
.woocommerce-checkout-review-order-table :is(th, td) { padding: var(--gv-s3) 0 !important; vertical-align: baseline !important; }
.woocommerce-checkout-review-order-table tfoot th { font: 400 1rem/1.4 var(--gv-font-body) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--gv-muted) !important; text-align: left; }
.woocommerce-checkout-review-order-table :is(td, th):last-child { text-align: right; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods label { font-weight: 700; color: var(--gv-eucalypt); }
.woocommerce-checkout-review-order-table .order-total th { color: var(--gv-bark) !important; font-weight: 700 !important; }
.woocommerce-checkout-review-order-table .order-total td strong { font-size: 1.375rem; color: var(--gv-bark); }
.woocommerce-checkout-review-order-table .order-total small.includes_tax { display: block; }
.woocommerce-checkout-review-order-table .product-name :is(dl.variation, .wapf-cart-item, p) { display: block; margin: 2px 0 0; }
.woocommerce-checkout-review-order-table .product-name dl.variation :is(dt, dd) { display: inline; margin: 0; }
.woocommerce-checkout-review-order-table .product-name dl.variation dd p { display: inline; }
.woocommerce-checkout-review-order-table .product-quantity { font-weight: 400; color: var(--gv-muted); }
:is(.woocommerce-checkout-review-order-table, .cart_totals) small.includes_tax { white-space: nowrap; }

/* Checkout payment: a plain list of payment options, then the button. No coloured panel. */
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0; margin: var(--gv-s4) 0 0; padding: var(--gv-s4) 0 0; border-top: 1px solid var(--gv-line); }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0 0 var(--gv-s4) !important; padding: 0 !important; border: 0 !important; display: grid; gap: var(--gv-s2); }
.woocommerce-checkout #payment ul.payment_methods > li { margin: 0; padding: var(--gv-s3) var(--gv-s4); border: 1px solid var(--gv-line); border-radius: var(--gv-radius); background: #fff; line-height: 1.4; }
.woocommerce-checkout #payment ul.payment_methods > li:has(> input:checked) { border-color: var(--gv-bark); box-shadow: inset 0 0 0 1px var(--gv-bark); }
.woocommerce-checkout #payment ul.payment_methods > li:has(> .woocommerce-info) { padding: 0; border: 0; background: none; }
.woocommerce-checkout #payment ul.payment_methods > li > input[type="radio"] { width: 18px; height: 18px; accent-color: var(--gv-bark); margin: 0 var(--gv-s2) 0 0; vertical-align: -3px; }
.woocommerce-checkout #payment ul.payment_methods > li > label { display: inline; font-weight: 700; color: var(--gv-bark); cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods > li > label img { max-height: 24px; width: auto; vertical-align: middle; margin-left: var(--gv-s1); }
.woocommerce-checkout #payment div.payment_box { margin: var(--gv-s3) 0 0 !important; padding: var(--gv-s3) var(--gv-s4) !important; background: var(--gv-oat) !important; color: var(--gv-charcoal); border-radius: var(--gv-radius); font-size: var(--gv-fs-small); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment ul.payment_methods .woocommerce-info { margin: 0 !important; font-size: var(--gv-fs-small); }
.woocommerce-checkout #payment div.form-row.place-order { padding: 0 !important; margin: 0 !important; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper:not(:has(:not(:empty))) { display: none; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text:empty { display: none; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text { font-size: var(--gv-fs-small); color: var(--gv-muted); margin-bottom: var(--gv-s3); }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text p { margin: 0; }
.woocommerce-checkout #payment { border-top: 0; padding-top: 0; }

/* Checkout "Your order" as one card: heading + table + payment share the same edges and padding.
   (Astra's two-column checkout adds its own 2px border and 0 36px padding; override it.) */
body.woocommerce-checkout form.checkout #order_review_heading {
  background: #fff !important; border: 1px solid var(--gv-line) !important; border-bottom: 0 !important;
  border-radius: var(--gv-radius) var(--gv-radius) 0 0 !important; padding: var(--gv-s5) var(--gv-s5) var(--gv-s2) !important; margin: 0 !important; }
body.woocommerce-checkout form.checkout #order_review {
  background: #fff !important; border: 1px solid var(--gv-line) !important; border-top: 0 !important;
  border-radius: 0 0 var(--gv-radius) var(--gv-radius) !important; padding: 0 var(--gv-s5) var(--gv-s5) !important; margin: 0 !important;
  position: static !important; box-shadow: none !important; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table :is(th, td) { border: 0 !important; border-top: 1px solid var(--gv-line) !important; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th { border-top: 0 !important; padding-top: var(--gv-s2) !important; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total > * { border-bottom: 1px solid var(--gv-line) !important; padding-bottom: var(--gv-s4) !important; }
body.woocommerce-checkout #payment { margin-top: var(--gv-s5) !important; }
body.woocommerce-checkout #payment div.form-row.place-order { margin: 0 !important; padding: 0 !important; }
@media (min-width: 922px) {
  body.woocommerce-checkout form.checkout #order_review { align-self: start; }
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name > strong:first-child { display: block; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name > span { font-size: var(--gv-fs-small); color: var(--gv-muted); font-weight: 400; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name { display: table-cell !important; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name > br { display: none; }
/* Checkout form: breathing room between the field groups */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { margin-bottom: var(--gv-s5) !important; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row:last-child { margin-bottom: 0 !important; }
body.woocommerce-checkout #ship-to-different-address { margin: 0 0 var(--gv-s4) !important; padding: 0 !important; }
body.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; min-height: 44px; margin: 0; cursor: pointer; }
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { margin-bottom: var(--gv-s4); }
body.woocommerce-checkout .woocommerce-additional-fields { margin-top: var(--gv-s5); padding-top: var(--gv-s5); border-top: 1px solid var(--gv-line); }
body.woocommerce-checkout .woocommerce-additional-fields .form-row:last-child { margin-bottom: 0 !important; }
/* In-page links (Terms → Delivery / Refund sections) land below the sticky header */
:where(.gv-prose, .entry-content) [id] { scroll-margin-top: 150px; }

/* ---------- 14. Accessibility fixes from Phase 3 (11 Nov): tap targets ---------- */
#masthead .custom-logo-link { display: inline-flex; align-items: center; min-height: 44px; }
.gv-footer-logo, .gv-footer-logo a { display: inline-flex; align-items: center; min-height: 44px; }
.site-footer .gv-contact-list a { display: inline-flex; align-items: center; min-height: 44px; }
.woocommerce ul.products li.product .ast-woo-product-category,
.single-product .product_meta a,
.single-product .single-product-category a { display: inline-block; min-height: 24px; padding-block: 2px; }
.wapf-wrapper input.wapf-input[type="checkbox"] { width: 24px; height: 24px; }
/* Wordfence's reCAPTCHA badge (checkout, My account) sits bottom-right: lift "back to top" above it */
body:has(.grecaptcha-badge) #ast-scroll-top { bottom: 92px; }

/* ---------- 15. Checkout layout: every part has a fixed place (11 Nov) ----------
   Errors always sit at the top, full width (WooCommerce scrolls to them there).
   "Your order" heading and the order card are always adjacent, so the card never splits.
   Express pay (Apple/Google Pay) sits above the card on desktop and above the form on phones. */
body.woocommerce-checkout form.checkout { display: flex; flex-direction: column; }
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { order: -2; margin-bottom: var(--gv-s5); }
body.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper { order: -1; }
body.woocommerce-checkout form.checkout > #customer_details { order: 1; }
body.woocommerce-checkout form.checkout > #order_review_heading { order: 2; margin-top: var(--gv-s6) !important; }
body.woocommerce-checkout form.checkout > #order_review { order: 3; }
@media (min-width: 922px) {
  body.woocommerce-checkout form.checkout {
    display: grid; grid-template-columns: 1fr 420px; column-gap: var(--gv-s6); row-gap: 0;
    grid-template-rows: auto auto auto 1fr;
    grid-template-areas: "notices notices" "details express" "details heading" "details review"; align-items: start; }
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-area: notices; }
  body.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper { grid-area: express; margin-bottom: var(--gv-s4); }
  body.woocommerce-checkout form.checkout > #customer_details { grid-area: details; }
  body.woocommerce-checkout form.checkout > #order_review_heading { grid-area: heading; margin-top: 0 !important; }
  body.woocommerce-checkout form.checkout > #order_review { grid-area: review; align-self: start; }
}
