/*
Theme Name: bestplantnursery-child
Description: Best Plant Nursery - Flatsome Child Theme
Author: Best Plant Nursery
Template: flatsome
Version: 4.0
*/

/* ========== BEST PLANT NURSERY — DESIGN SYSTEM ========== */

:root {
  --ghn-primary: #2E8B57;
  --ghn-primary-dark: #236B43;
  --ghn-secondary: #87CEEB;
  --ghn-cta: #FFD700;
  --ghn-cta-hover: #E6C200;
  --ghn-bg: #F0FFF4;
  --ghn-text: #1A3320;
  --ghn-text-light: #4A6B52;
  --ghn-white: #FFFFFF;
  --ghn-gray-200: #E2EDE6;
  --ghn-radius: 12px;
  --ghn-radius-sm: 8px;
  --ghn-shadow-sm: 0 1px 3px rgba(26,51,32,0.08);
  --ghn-shadow-md: 0 4px 12px rgba(26,51,32,0.1);
  --ghn-shadow-lg: 0 8px 30px rgba(26,51,32,0.12);
  --ghn-transition: 0.3s ease;
}

/* ========== GLOBAL ========== */
body {
  background-color: var(--ghn-bg);
}

/* ========== HERO BANNER ========== */
.ghn-hero .banner {
  min-height: 85vh;
}

.ghn-hero .banner-inner {
  background-color: rgb(35,107,67);
}

.ghn-hero .banner .overlay {
  background-color: rgba(26,51,32,0.55);
}

.ghn-hero-title {
  font-size: clamp(2.5rem, 6vw, 3.8rem) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  color: #ffffff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.35);
  margin-bottom: 16px !important;
}

.ghn-hero-title .ghn-gold {
  color: var(--ghn-cta);
}

.ghn-hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.15rem) !important;
  line-height: 1.7 !important;
  color: #ffffff !important;
  opacity: 1;
  text-shadow: 0 1px 3px rgba(0,0,0,0.35);
  max-width: 520px;
  margin-bottom: 32px !important;
  
}

.ghn-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  padding: 8px 20px;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 500;
  color: #fff;
  margin-bottom: 24px;
  border: 1px solid rgba(255,255,255,0.25);
}

/* ========== CTA BUTTONS ========== */
.ghn-btn-cta.button {
  background-color: var(--ghn-cta) !important;
  color: var(--ghn-text) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 15px rgba(255,215,0,0.35);
  transition: var(--ghn-transition) !important;
}

.ghn-btn-cta.button:hover {
  background-color: var(--ghn-cta-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255,215,0,0.45);
}

.ghn-btn-outline-white.button {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,0.5) !important;
  border-radius: 50px !important;
  transition: var(--ghn-transition) !important;
}

.ghn-btn-outline-white.button:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: #fff !important;
  transform: translateY(-2px);
}

.ghn-btn-green.button {
  background-color: var(--ghn-primary) !important;
  color: var(--ghn-white) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  transition: var(--ghn-transition) !important;
}

.ghn-btn-green.button:hover {
  background-color: var(--ghn-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(46,139,87,0.35);
}

/* ========== TRUST BAR ========== */
.ghn-trust-bar {
  background: var(--ghn-white) !important;
  border-bottom: 1px solid var(--ghn-gray-200);
}

.ghn-trust-icon {
  width: 52px;
  height: 52px;
  background: var(--ghn-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.ghn-trust-icon svg {
  width: 24px;
  height: 24px;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ghn-trust-title {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 2px !important;
}

.ghn-trust-desc {
  font-size: 0.8rem !important;
  color: var(--ghn-text-light) !important;
  max-width: 210px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.4;
  min-height: 2.8em; /* keep the 4 items balanced when descriptions wrap */
}

/* subtle vertical dividers between the trust items (desktop) */
.ghn-trust-bar .col {
  position: relative;
}
.ghn-trust-bar .col + .col::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 60px;
  background: var(--ghn-gray-200);
}
@media only screen and (max-width: 849px) {
  .ghn-trust-bar .col + .col::before {
    display: none;
  }
  .ghn-trust-desc {
    min-height: 0;
  }
}

/* ========== SECTION TITLES ========== */
.ghn-section-title {
  font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
  color: var(--ghn-text) !important;
  margin-bottom: 8px !important;
  text-transform: none !important;
}

.ghn-section-subtitle {
  color: var(--ghn-text-light) !important;
  font-size: 1.05rem !important;
  max-width: 550px;
  margin: 0 auto !important;
  line-height: 1.6;
}

/* ========== PRODUCT CATEGORIES (Flatsome DOM) ========== */
/* Overlay style: text over image with gradient */
.ghn-cat-grid .product-category .col-inner {
  border-radius: var(--ghn-radius);
  overflow: hidden;
  box-shadow: var(--ghn-shadow-md);
  transition: all 0.3s ease;
}

.ghn-cat-grid .product-category:hover .col-inner {
  transform: translateY(-6px);
  box-shadow: var(--ghn-shadow-lg);
}

.ghn-cat-grid .box-category {
  border-radius: var(--ghn-radius) !important;
  overflow: hidden;
}

/* Overlay text styling */
.ghn-cat-grid .box-text {
  padding: 20px 16px !important;
}

.ghn-cat-grid .header-title {
  text-transform: none !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
}

.ghn-cat-grid .count {
  font-size: 0.8rem !important;
  opacity: 0.85;
  margin-top: 4px;
  color:greenyellow !important;
}

/* Cursor pointer on cards */
.ghn-cat-grid .product-category {
  cursor: pointer;
}

/* ========== PRODUCT GRID (Flatsome DOM) ========== */
/* Product card white background with shadow */
.ghn-products .equalize-box .col .col-inner,
.ghn-products .row-slider .col .col-inner {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(26,51,32,0.08);
  transition: all 0.3s ease;
  border: 1px solid #E2EDE6;
}

.ghn-products .equalize-box .col:hover .col-inner,
.ghn-products .row-slider .col:hover .col-inner {
  transform: translateY(-4px);
  box-shadow: 0 4px 12px rgba(26,51,32,0.1);
  border-color: #2E8B57;
}

.ghn-products .col .col-inner {
  border-radius: var(--ghn-radius);
  overflow: hidden;
  transition: var(--ghn-transition);
}

.ghn-products .col:hover .col-inner {
  transform: translateY(-4px);
  box-shadow: var(--ghn-shadow-md);
}

.ghn-products .product-small .box-image {
  border-radius: var(--ghn-radius) var(--ghn-radius) 0 0;
  overflow: hidden;
}

.ghn-products .product-small .box-text-products {
  padding: 12px 14px;
}

.ghn-products .product-title a {
  color: var(--ghn-text) !important;
  font-weight: 500;
}

.ghn-products .product-title a:hover {
  color: var(--ghn-primary) !important;
}

.ghn-products .price {
  color: var(--ghn-primary) !important;
  font-weight: 700;
}

/* Add to cart — round icon button, inline with price (demo style) */
.ghn-products .box-text-products {
  position: relative;
  padding-bottom: 14px !important;
}


/* Price row — make room for the icon on the right */
.ghn-products .price-wrapper {
  padding-right: 44px !important;
  position: relative;
  margin-bottom: 0 !important;
}

/* Transform the text button into a round icon */
.ghn-products .add-to-cart-button {
  position: absolute !important;
  right: 14px;
  bottom: 14px;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ghn-products .add-to-cart-button .button,
.ghn-products .add-to-cart-button .button.is-flat,
.ghn-products .add-to-cart-button .button.is-outline {
  background-color: var(--ghn-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  min-height: unset !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0 !important;
  line-height: 1 !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(46,139,87,0.25);
  overflow: hidden;
}

/* Show "+" icon via pseudo-element since text is hidden */
.ghn-products .add-to-cart-button .button::after {
  content: "+";
  font-size: 18px !important;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

/* For "Select options" (variable products) show cart icon */
.ghn-products .add-to-cart-button .product_type_variable {
  font-size: 0 !important;
}
.ghn-products .add-to-cart-button .product_type_variable::after {
  content: "…";
  font-size: 16px !important;
  font-weight: 700;
  color: #fff;
}

.ghn-products .add-to-cart-button .button:hover {
  background-color: var(--ghn-primary-dark) !important;
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(46,139,87,0.35);
}

/* Hide the grid-tools hover overlay (not needed since we have icon inline) */
.ghn-products .grid-tools {
  display: none !important;
}

/* Product box text spacing */
.ghn-products .product-cat {
  color: var(--ghn-text-light) !important;
  font-size: 0.7rem !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px !important;
}

.ghn-products .product-title {
  font-size: 0.9rem !important;
  line-height: 1.4 !important;
  margin-bottom: 6px !important;
}

.ghn-products .price .woocommerce-Price-amount {
  font-size: 1.05rem !important;
}

/* ========== ABOUT SECTION ========== */
.ghn-about .banner-inner {
  border-radius: var(--ghn-radius);
  overflow: hidden;
}

.ghn-about-stat {
  text-align: center;
  padding: 16px;
}

.ghn-about-stat-number {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--ghn-primary) !important;
  display: block;
}

.ghn-about-stat-label {
  font-size: 0.85rem;
  color: var(--ghn-text-light);
}

/* ========== FEATURE BOXES ========== */
.ghn-feature-box {
  background: var(--ghn-white);
  border-radius: var(--ghn-radius);
  padding: 40px 30px;
  text-align: center;
  box-shadow: var(--ghn-shadow-sm);
  transition: var(--ghn-transition);
  border: 1px solid var(--ghn-gray-200);
  height: 100%;
}

.ghn-feature-box:hover {
  transform: translateY(-4px);
  box-shadow: var(--ghn-shadow-md);
  border-color: var(--ghn-primary);
}

.ghn-feature-icon {
  width: 72px;
  height: 72px;
  background: var(--ghn-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}

.ghn-feature-icon svg {
  width: 32px;
  height: 32px;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ghn-feature-title {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 12px !important;
}

.ghn-feature-desc {
  font-size: 0.95rem;
  color: var(--ghn-text-light);
  line-height: 1.65;
}

/* ========== TESTIMONIALS ========== */
.ghn-testimonial-card {
  background: var(--ghn-white);
  border-radius: var(--ghn-radius);
  padding: 32px;
  box-shadow: var(--ghn-shadow-sm);
  border: 1px solid var(--ghn-gray-200);
  transition: var(--ghn-transition);
  height: 100%;
}

.ghn-testimonial-card:hover {
  box-shadow: var(--ghn-shadow-md);
}

.ghn-stars {
  color: var(--ghn-cta);
  font-size: 1.1rem;
  margin-bottom: 16px;
  letter-spacing: 2px;
}

.ghn-testimonial-text {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ghn-text);
  margin-bottom: 20px;
  font-style: italic;
}

.ghn-testimonial-author {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ghn-text);
}

.ghn-testimonial-location {
  font-size: 0.8rem;
  color: var(--ghn-text-light);
}

/* ========== NEWSLETTER ========== */
.ghn-newsletter {
  position: relative;
  overflow: hidden;
}
.ghn-newsletter .section-bg {
  background: linear-gradient(135deg, #2E8B57 0%, #236B43 100%) !important;
}
.ghn-newsletter::before,
.ghn-newsletter::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.ghn-newsletter::before {
  width: 340px;
  height: 340px;
  top: -130px;
  left: -90px;
  background: rgba(255, 255, 255, 0.06);
}
.ghn-newsletter::after {
  width: 280px;
  height: 280px;
  bottom: -120px;
  right: -70px;
  background: rgba(255, 255, 255, 0.05);
}
.ghn-newsletter .col {
  position: relative;
  z-index: 1;
}

.ghn-newsletter-badge {
  display: inline-block;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 50px;
  margin-bottom: 16px;
}

.ghn-newsletter-title {
  color: #fff !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
}

.ghn-newsletter-desc {
  color: rgba(255, 255, 255, 0.85) !important;
  max-width: 760px;
  margin: 0 auto 26px !important;
}

/* Input group: email + button joined in one white pill */
.ghn-newsletter-fields {
  max-width: 540px;
  margin: 0 auto;
  background: #fff;
  border-radius: 50px;
  padding: 6px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}
/* CF7 auto-wraps the controls in a <p>; make that the flex row too */
.ghn-newsletter-fields,
.ghn-newsletter-fields > p {
  display: flex !important;
  align-items: center;
  gap: 6px;
}
.ghn-newsletter-fields > p {
  margin: 0;
  flex: 1 1 auto;
  width: 100%;
}
.ghn-newsletter-fields .wpcf7-form-control-wrap {
  flex: 1 1 auto !important;
  display: block;
  min-width: 0;
}
/* CF7 injects an empty spinner span (via JS) after the button — it eats the
   right-side space and stops the button sitting flush right. Remove it. */
.ghn-newsletter-fields .wpcf7-spinner {
  display: none !important;
}
.ghn-newsletter-form input[type="email"] {
  width: 100% !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  color: var(--ghn-text) !important;
  font-size: 1rem;
  height: 46px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 18px !important;
  border-radius: 50px !important;
  outline: none !important;
}
.ghn-newsletter-form input[type="email"]:focus {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.ghn-newsletter-form input[type="email"]::placeholder {
  color: #9aa39d !important;
}
.ghn-newsletter-form .btn-subscribe {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ghn-cta) !important;
  color: var(--ghn-text) !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  line-height: 1 !important;
  margin: 0 0 0 auto !important;
  padding: 0 30px !important;
  height: 46px !important;
  min-height: 0 !important;
  cursor: pointer;
  transition: var(--ghn-transition) !important;
  text-decoration: none;
}
.ghn-newsletter-form .btn-subscribe:hover {
  background: var(--ghn-cta-hover) !important;
  box-shadow: none !important;
  transform: translateY(-1px);
}

.ghn-newsletter-fine {
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: 0.82rem;
  margin-top: 16px !important;
}

.ghn-newsletter-form .wpcf7-response-output {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  border-radius: 10px;
  max-width: 540px;
  margin: 14px auto 0 !important;
  font-size: 0.88rem;
}

@media only screen and (max-width: 549px) {
  .ghn-newsletter-fields,
  .ghn-newsletter-fields > p {
    flex-direction: column;
    gap: 10px;
  }
  .ghn-newsletter-fields {
    padding: 12px;
    border-radius: 22px;
  }
  .ghn-newsletter-form input[type="email"] {
    text-align: center;
    padding: 13px 16px !important;
  }
  .ghn-newsletter-form .btn-subscribe {
    width: 100%;
  }
}

/* ========== CONTACT SECTION ========== */
.ghn-contact a {
  color: var(--ghn-primary) !important;
  font-weight: 600;
}

.ghn-contact a:hover {
  color: var(--ghn-primary-dark) !important;
}

/* ========== HEADER ENHANCEMENTS ========== */
.header-main {
  background-color: rgba(255,255,255,0.97) !important;
  backdrop-filter: blur(10px);
}

.header-nav-main .nav > li > a {
  color: var(--ghn-text) !important;
  transition: var(--ghn-transition);
}

.header-nav-main .nav > li > a:hover,
.header-nav-main .nav > li.active > a,
.header-nav-main .nav > li.current > a {
  color: var(--ghn-primary) !important;
}

/* ========== FOOTER BLOCK ========== */
.ghn-footer {
  background-color: rgb(26,51,32) !important;
}

/* Footer menu links */
.ghn-footer .ux-menu a,
.ghn-footer-menu a,
.ghn-footer .nav li a {
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.9rem !important;
  padding: 5px 0 !important;
  border: none !important;
  transition: var(--ghn-transition);
}

.ghn-footer .ux-menu a:hover,
.ghn-footer-menu a:hover,
.ghn-footer .nav li a:hover {
  color: #fff !important;
  padding-left: 4px !important;
}

/* Footer follow icons */
.ghn-footer .follow-icons a {
  color: rgba(255,255,255,0.5) !important;
}

.ghn-footer .follow-icons a:hover {
  color: #fff !important;
}

/* Footer payment icons */
.ghn-footer .payment-icons .payment-icon {
  opacity: 0.6;
}

/* Footer phone shortcode */
.ghn-footer .phone a {
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.9rem !important;
}

.ghn-footer .phone a:hover {
  color: #fff !important;
}

/* Absolute footer bar */
.absolute-footer {
  background-color: rgba(20,40,26,0.95) !important;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.absolute-footer a {
  transition: var(--ghn-transition);
}

.absolute-footer a:hover {
  color: var(--ghn-cta) !important;
}

/* ========== FLATSOME BUTTON OVERRIDES ========== */
.button.primary,
.button.checkout,
.button.alt,
.button.secondary {
  border-radius: var(--ghn-radius-sm) !important;
  transition: var(--ghn-transition) !important;
}

/* ========== MINI CART DROPDOWN ========== */
li.cart-item .nav-dropdown {
  min-width: 300px;
  padding: 0 !important;
  border-radius: var(--ghn-radius) !important;
  box-shadow: var(--ghn-shadow-lg) !important;
  border: 1px solid var(--ghn-gray-200);
  overflow: hidden;
  background: #fff !important;
}

li.cart-item .nav-dropdown > li.html {
  min-width: 300px;
}

/* Mini cart product list */
.widget_shopping_cart_content {
  background: #fff !important;
}
.widget_shopping_cart_content .woocommerce-mini-cart .mini_cart_item,
.widget_shopping_cart_content .cart_list .mini_cart_item {
  position: relative !important;
  display: block !important;
  padding: 14px 34px 14px 84px !important;
  min-height: 84px;
  margin: 0 !important;
  border-bottom: 1px solid var(--ghn-gray-200) !important;
}
/* image: pulled out of flow so it can't overlap the text */
.widget_shopping_cart_content .mini_cart_item img {
  position: absolute !important;
  left: 16px !important;
  top: 14px !important;
  width: 56px !important;
  height: 56px !important;
  object-fit: cover !important;
  float: none !important;
  margin: 0 !important;
  border-radius: 8px !important;
}
.widget_shopping_cart_content .mini_cart_item a:not(.remove) {
  display: block !important;
  color: var(--ghn-text) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}
.widget_shopping_cart_content .mini_cart_item a.remove,
.widget_shopping_cart_content .mini_cart_item .remove {
  position: absolute !important;
  top: 14px !important;
  right: 12px !important;
  width: 20px !important;
  height: 20px !important;
  line-height: 20px !important;
  text-align: center;
  font-size: 16px !important;
  margin: 0 !important;
}
.widget_shopping_cart_content .mini_cart_item .variation {
  margin: 3px 0 0 !important;
  font-size: 0.78rem !important;
  color: var(--ghn-text-light) !important;
}
.widget_shopping_cart_content .mini_cart_item .variation dt,
.widget_shopping_cart_content .mini_cart_item .variation dd {
  display: inline !important;
  margin: 0 4px 0 0 !important;
}
.widget_shopping_cart_content .mini_cart_item .variation p {
  margin: 0 !important;
}
.widget_shopping_cart_content .mini_cart_item .quantity {
  display: block !important;
  margin-top: 4px !important;
  color: var(--ghn-text-light) !important;
  font-size: 0.85rem !important;
}

/* Mini cart footer */
.widget_shopping_cart_content .ux-mini-cart-footer {
  padding: 14px 16px !important;
  background: #f9fdf9 !important;
}

.widget_shopping_cart_content .ux-mini-cart-footer .total {
  font-size: 0.95rem !important;
  color: var(--ghn-text) !important;
  margin-bottom: 12px !important;
}

/* Mini cart buttons — make them visually distinct */
.widget_shopping_cart_content .ux-mini-cart-footer .buttons {
  display: flex !important;
  gap: 8px !important;
}

.widget_shopping_cart_content .ux-mini-cart-footer .buttons .button.wc-forward {
  flex: 1 !important;
  text-align: center !important;
  border-radius: var(--ghn-radius-sm) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  padding: 10px 16px !important;
  transition: var(--ghn-transition) !important;
  line-height: 1.4 !important;
}

/* "View cart" — outline style */
.widget_shopping_cart_content .ux-mini-cart-footer .buttons .button.wc-forward:first-child {
  background: #fff !important;
  color: var(--ghn-primary) !important;
  border: 2px solid var(--ghn-primary) !important;
}

.widget_shopping_cart_content .ux-mini-cart-footer .buttons .button.wc-forward:first-child:hover {
  background: var(--ghn-primary) !important;
  color: #fff !important;
}

/* "Checkout" — solid CTA style */
.widget_shopping_cart_content .ux-mini-cart-footer .buttons .button.checkout.wc-forward {
  background: var(--ghn-cta) !important;
  color: var(--ghn-text) !important;
  border: 2px solid var(--ghn-cta) !important;
}

.widget_shopping_cart_content .ux-mini-cart-footer .buttons .button.checkout.wc-forward:hover {
  background: var(--ghn-cta-hover) !important;
  border-color: var(--ghn-cta-hover) !important;
}

/* ========== WOOCOMMERCE PRODUCT PAGE (Custom Layout) ========== */

/* Product page wrapper */
.custom-product-page {
  background: var(--ghn-white);
}

/* Breadcrumbs */
.custom-product-page .product-breadcrumb-container {
  margin-bottom: 8px;
}

.custom-product-page .woocommerce-breadcrumb {
  text-transform: none !important;
  font-size: 0.85rem;
}

.custom-product-page .woocommerce-breadcrumb a {
  color: var(--ghn-primary) !important;
}

/* Product Title */
.custom-product-page .product-title-container .product-title {
  color: var(--ghn-text) !important;
  line-height: 1.3;
  margin-bottom: 8px !important;
}

/* Rating */
.custom-product-page .star-rating {
  color: var(--ghn-cta) !important;
}

/* Price */
.custom-product-page .product-price-container .price {
  color: var(--ghn-primary) !important;
  font-weight: 700;
}

.custom-product-page .product-price-container .price del {
  color: var(--ghn-text-light) !important;
  font-weight: 400;
  opacity: 0.7;
}

.custom-product-page .product-price-container .price ins {
  text-decoration: none;
  color: #dd3333 !important;
}

/* Excerpt */
.custom-product-page .woocommerce-product-details__short-description {
  color: var(--ghn-text-light);
  font-size: 0.95rem;
  line-height: 1.7;
}

/* Add to Cart button — flat style, green pill */
.custom-product-page .add-to-cart-container .single_add_to_cart_button {
  background-color: var(--ghn-primary) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  padding: 14px 40px !important;
  transition: var(--ghn-transition) !important;
  text-transform: none !important;
  box-shadow: 0 4px 15px rgba(46,139,87,0.3);
}

.custom-product-page .add-to-cart-container .single_add_to_cart_button:hover {
  background-color: var(--ghn-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(46,139,87,0.4);
}

/* Buy Now button */
.custom-product-page .buy-now-button {
  background-color: var(--ghn-cta) !important;
  color: var(--ghn-text) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  padding: 14px 40px !important;
  transition: var(--ghn-transition) !important;
  text-transform: none !important;
}

.custom-product-page .buy-now-button:hover {
  background-color: var(--ghn-cta-hover) !important;
  transform: translateY(-2px);
}

/* Quantity input */
.custom-product-page .quantity input.qty {
  border-radius: var(--ghn-radius-sm) !important;
  border-color: var(--ghn-gray-200) !important;
}

/* Meta (SKU, Category, Tags) */
.custom-product-page .product_meta {
  font-size: 0.85rem;
  color: var(--ghn-text-light);
  padding-top: 12px;
  border-top: 1px solid var(--ghn-gray-200);
}

.custom-product-page .product_meta a {
  color: var(--ghn-primary) !important;
}

.custom-product-page .product_meta a:hover {
  color: var(--ghn-primary-dark) !important;
}

/* Share icons */
.custom-product-page .social-icons a {
  color: var(--ghn-text-light) !important;
  transition: var(--ghn-transition);
}

.custom-product-page .social-icons a:hover {
  color: var(--ghn-primary) !important;
}

/* Tabs section */
.custom-product-page .woocommerce-tabs .tabs li a {
  color: var(--ghn-text-light) !important;
  font-weight: 500;
  text-transform: none !important;
}

.custom-product-page .woocommerce-tabs .tabs li.active a {
  color: var(--ghn-primary) !important;
  font-weight: 700;
}

/* Tab content */
.custom-product-page .woocommerce-Tabs-panel {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--ghn-text-light);
}

/* Reviews */
.custom-product-page #reviews .comment-text {
  border: 1px solid var(--ghn-gray-200);
  border-radius: var(--ghn-radius);
  padding: 16px !important;
}

.custom-product-page #review_form .submit {
  background-color: var(--ghn-primary) !important;
  border-radius: 50px !important;
}

/* ===== Product description / tabs panel (polish) ===== */
.ghn-product-tabs-section .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--ghn-gray-200);
  margin: 0 0 24px !important;
  padding-bottom: 0;
}

.ghn-product-tabs-section .woocommerce-Tabs-panel {
  font-size: 0.97rem;
  line-height: 1.8;
  color: var(--ghn-text-light);
  max-width: 880px;
}

.ghn-product-tabs-section .woocommerce-Tabs-panel > *:first-child {
  margin-top: 0 !important;
}

/* lead / intro paragraph */
.ghn-product-tabs-section .woocommerce-Tabs-panel > p:first-of-type {
  font-size: 1.04rem;
  color: var(--ghn-text);
}

.ghn-product-tabs-section .woocommerce-Tabs-panel p {
  margin: 0 0 15px;
}

/* section headings inside the description */
.ghn-product-tabs-section .woocommerce-Tabs-panel h2 {
  position: relative;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin: 30px 0 14px !important;
  padding-left: 15px;
}
.ghn-product-tabs-section .woocommerce-Tabs-panel h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  bottom: 0.2em;
  width: 4px;
  border-radius: 3px;
  background: var(--ghn-primary);
}
.ghn-product-tabs-section .woocommerce-Tabs-panel h3 {
  font-size: 1.06rem !important;
  font-weight: 700 !important;
  color: var(--ghn-primary) !important;
  margin: 22px 0 10px !important;
}

/* benefit / feature lists with green check bullets */
.ghn-product-tabs-section .woocommerce-Tabs-panel ul {
  list-style: none;
  margin: 4px 0 18px;
  padding: 0;
}
.ghn-product-tabs-section .woocommerce-Tabs-panel ul li {
  position: relative;
  padding-left: 32px;
  margin-bottom: 11px;
  color: var(--ghn-text-light);
}
.ghn-product-tabs-section .woocommerce-Tabs-panel ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: var(--ghn-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E8B57' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* Main gallery image — force a uniform square ratio so swiping between
   photos of different native ratios doesn't make the frame jump. */
.custom-product-page .woocommerce-product-gallery__image img,
.custom-product-page .product-gallery-slider .woocommerce-product-gallery__image img {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--ghn-radius);
}

/* Gallery thumbnails */
.custom-product-page .product-thumbnails .col {
  padding: 3px !important;
}

.custom-product-page .product-thumbnails img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--ghn-radius-sm);
  border: 2px solid transparent;
  transition: var(--ghn-transition);
}

.custom-product-page .product-thumbnails .is-nav-selected img {
  border-color: var(--ghn-primary);
}

/* Sticky Add to Cart bar */
.sticky-add-to-cart {
  border-top: 1px solid var(--ghn-gray-200) !important;
}

.sticky-add-to-cart .single_add_to_cart_button {
  background-color: var(--ghn-primary) !important;
  border-radius: 50px !important;
}

/* Legacy non-custom product pages */
.single-product .single_add_to_cart_button {
  background-color: var(--ghn-primary) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
}

.single-product .single_add_to_cart_button:hover {
  background-color: var(--ghn-primary-dark) !important;
}

/* ========== SHOP / ARCHIVE PAGE ========== */
/* Product cards on Shop page — same style as homepage */
.shop-container .products .col .col-inner {
  background: var(--ghn-white);
  border-radius: var(--ghn-radius);
  overflow: hidden;
  border: 1px solid var(--ghn-gray-200);
  transition: var(--ghn-transition);
}

.shop-container .products .col:hover .col-inner {
  transform: translateY(-4px);
  box-shadow: var(--ghn-shadow-md);
  border-color: var(--ghn-primary);
}

.shop-container .products .product-small .box-image {
  border-radius: var(--ghn-radius) var(--ghn-radius) 0 0;
  overflow: hidden;
}

/* Shop page — Add to cart as round icon inline with price */
.shop-container .products .box-text-products {
  position: relative;
  padding: 12px 14px 14px !important;
}

.shop-container .products .price-wrapper {
  padding-right: 44px !important;
}

.shop-container .products .add-to-cart-button {
  position: absolute !important;
  right: 14px;
  bottom: 14px;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
}

.shop-container .products .add-to-cart-button .button {
  background-color: var(--ghn-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  min-height: unset !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0 !important;
  line-height: 1 !important;
  transition: var(--ghn-transition) !important;
  box-shadow: 0 2px 8px rgba(46,139,87,0.25);
}

.shop-container .products .add-to-cart-button .button::after {
  content: "+";
  font-size: 18px !important;
  font-weight: 700;
  color: #fff;
}

.shop-container .products .add-to-cart-button .product_type_variable::after {
  content: "…";
  font-size: 16px !important;
}

.shop-container .products .add-to-cart-button .button:hover {
  background-color: var(--ghn-primary-dark) !important;
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(46,139,87,0.35);
}

/* Hide grid-tools on shop page too */
.shop-container .products .grid-tools {
  display: none !important;
}

/* Product title & price styling */
.shop-container .products .product-title a {
  color: var(--ghn-text) !important;
  font-weight: 500;
}

.shop-container .products .product-title a:hover {
  color: var(--ghn-primary) !important;
}

.shop-container .products .price {
  color: var(--ghn-primary) !important;
  font-weight: 700;
}

.shop-container .products .product-cat {
  color: var(--ghn-text-light) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.5px;
}

/* Shop page title / breadcrumb */
.shop-page-title {
  background-color: var(--ghn-white) !important;
  border-bottom: 1px solid var(--ghn-gray-200);
  padding: 20px 0 !important;
}

.shop-page-title .breadcrumbs {
  text-transform: none !important;
  font-size: 0.85rem;
}

.shop-page-title .breadcrumbs a {
  color: var(--ghn-primary) !important;
}

/* Sidebar — each widget as separate card */
#shop-sidebar .widget {
  background: var(--ghn-white);
  border: 1px solid var(--ghn-gray-200);
  border-radius: var(--ghn-radius);
  padding: 20px;
  margin-bottom: 20px;
}

#shop-sidebar .widget-title {
  color: var(--ghn-text) !important;
  font-size: 1rem !important;
  font-weight: 700;
  text-transform: none !important;
  margin-bottom: 12px !important;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--ghn-primary);
}

#shop-sidebar .is-divider {
  display: none !important;
}

/* Search widget — full width (drop the card padding/border so the bar spans the widget) */
#shop-sidebar .widget_product_search {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Search widget — unified pill (input + button as one seamless bar) */
#shop-sidebar .widget_product_search .flex-row {
  display: flex !important;
  align-items: stretch !important;
  min-height: 48px;
  border: 1.5px solid rgba(46, 139, 87, 0.45);
  border-radius: 50px;
  overflow: hidden;
  background: #fff;
  transition: var(--ghn-transition);
}
#shop-sidebar .widget_product_search .flex-col {
  display: flex !important;
  padding: 0 !important;
  margin: 0 !important;
}
#shop-sidebar .widget_product_search .flex-row:focus-within {
  border-color: var(--ghn-primary);
  box-shadow: 0 0 0 3px rgba(46, 139, 87, 0.12);
}
#shop-sidebar .widget_product_search .flex-col.flex-grow {
  display: flex;
  align-items: center;
}
#shop-sidebar .widget_product_search .search-field {
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 12px 18px !important;
  height: auto !important;
  margin: 0 !important;
  font-size: 0.92rem;
}
#shop-sidebar .widget_product_search .search-field::placeholder {
  color: #9aa39d;
}
#shop-sidebar .widget_product_search .submit-button,
#shop-sidebar .widget_product_search .ux-search-submit {
  background: var(--ghn-primary) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  align-self: stretch;
  flex: 1;
  padding: 0 20px !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: var(--ghn-transition) !important;
}
#shop-sidebar .widget_product_search .submit-button:hover,
#shop-sidebar .widget_product_search .ux-search-submit:hover {
  background: var(--ghn-primary-dark) !important;
}
#shop-sidebar .widget_product_search .submit-button svg,
#shop-sidebar .widget_product_search .submit-button .icon-search {
  width: 18px;
  height: 18px;
  font-size: 18px;
}

/* Categories widget */
#shop-sidebar .product-categories {
  padding: 10px 0 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

#shop-sidebar .product-categories li {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  padding: 0 !important;
  margin: 0 0 2px !important;
  border: 0 !important;
  border-radius: 8px;
  transition: background var(--ghn-transition), box-shadow var(--ghn-transition);
}

#shop-sidebar .product-categories li:hover {
  background: var(--ghn-bg);
}

#shop-sidebar .product-categories li a {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--ghn-text) !important;
  font-size: 0.92rem;
  font-weight: 500;
  padding: 9px 12px !important;
  transition: color var(--ghn-transition);
}

#shop-sidebar .product-categories li:hover > a {
  color: var(--ghn-primary) !important;
}

/* count as a clean number pill (parentheses stripped in functions.php) */
#shop-sidebar .product-categories .count {
  float: none !important;
  line-height: 1 !important;
  margin: 0 12px 0 8px !important;
  flex: 0 0 auto;
  min-width: 24px;
  text-align: center;
  background: var(--ghn-bg);
  color: var(--ghn-text-light);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 50px;
  transition: var(--ghn-transition);
}

#shop-sidebar .product-categories li:hover > .count {
  background: var(--ghn-primary);
  color: #fff;
}

/* nested subcategories (children) wrap to a full-width row */
#shop-sidebar .product-categories .children {
  flex-basis: 100%;
  margin: 2px 0 2px 16px !important;
  padding: 2px 0 2px 8px !important;
  border-left: 1px solid var(--ghn-gray-200);
  list-style: none !important;
}

/* Recently Viewed Products — fix text overlapping image */
#shop-sidebar .product_list_widget {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

#shop-sidebar .product_list_widget li {
  padding: 12px 0 !important;
  border-bottom: 1px solid var(--ghn-gray-200);
  overflow: visible !important;
  clear: both;
}

#shop-sidebar .product_list_widget li:last-child {
  border-bottom: none;
  padding-bottom: 0 !important;
}

#shop-sidebar .product_list_widget li::after {
  content: "";
  display: table;
  clear: both;
}

/* The <a> wraps img + product-title — force side-by-side */
#shop-sidebar .product_list_widget li > a {
  display: grid !important;
  grid-template-columns: 56px 1fr;
  gap: 10px;
  align-items: start;
  text-decoration: none !important;
}

/* Image — fixed size, no float */
#shop-sidebar .product_list_widget li > a > img,
#shop-sidebar .product_list_widget li a img.attachment-woocommerce_gallery_thumbnail {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  border-radius: var(--ghn-radius-sm) !important;
  object-fit: cover !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-row: 1;
  grid-column: 1;
}

/* Product title — next to image */
#shop-sidebar .product_list_widget li > a > .product-title {
  color: var(--ghn-text) !important;
  font-size: 0.82rem !important;
  font-weight: 500;
  line-height: 1.35;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  grid-row: 1;
  grid-column: 2;
  margin: 0 !important;
  padding: 0 !important;
}

/* Price — below the grid, aligned with title */
#shop-sidebar .product_list_widget li > .woocommerce-Price-amount,
#shop-sidebar .product_list_widget li > span,
#shop-sidebar .product_list_widget li > del,
#shop-sidebar .product_list_widget li > ins {
  display: block;
  margin-left: 66px !important;
  margin-top: 2px;
}

#shop-sidebar .product_list_widget li .woocommerce-Price-amount {
  color: var(--ghn-primary) !important;
  font-weight: 700;
  font-size: 0.85rem;
}

/* Sale price in sidebar */
#shop-sidebar .product_list_widget li del .woocommerce-Price-amount {
  color: var(--ghn-text-light) !important;
  font-weight: 400;
  font-size: 0.8rem;
}

#shop-sidebar .product_list_widget li ins {
  text-decoration: none !important;
}

#shop-sidebar .product_list_widget li ins .woocommerce-Price-amount {
  color: #dd3333 !important;
}

/* Pagination */
.woocommerce-pagination .page-numbers {
  gap: 4px;
}

.woocommerce-pagination .page-number {
  border-radius: var(--ghn-radius-sm) !important;
  transition: var(--ghn-transition);
}

.woocommerce-pagination .page-number.current {
  background-color: var(--ghn-primary) !important;
  color: #fff !important;
}

.woocommerce-pagination .page-number:hover:not(.current) {
  background-color: var(--ghn-bg) !important;
  color: var(--ghn-primary) !important;
}

/* WooCommerce ordering select */
.woocommerce-ordering .orderby {
  border-radius: var(--ghn-radius-sm) !important;
  border-color: var(--ghn-gray-200) !important;
  padding: 8px 12px;
  font-size: 0.9rem;
}

/* Filter button on mobile */
.filter-button {
  border-radius: var(--ghn-radius-sm) !important;
  border: 1px solid var(--ghn-gray-200) !important;
  padding: 8px 16px !important;
}

/* ========== SCROLLBAR ========== */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--ghn-bg); }
::-webkit-scrollbar-thumb { background: var(--ghn-primary); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--ghn-primary-dark); }

/* ========== PAGE HEADER (policy/info pages) ========== */
.ghn-page-header {
  background: linear-gradient(135deg, var(--ghn-primary-dark), var(--ghn-primary)) !important;
}

.ghn-page-header h1 {
  font-weight: 700;
  line-height: 1.2;
}

/* Policy page content styling */
.page h2 {
  color: var(--ghn-text);
  font-size: 1.35rem;
  margin-top: 32px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ghn-bg);
}

.page h2:first-child {
  margin-top: 0;
}

.page h3 {
  color: var(--ghn-text);
  font-size: 1.15rem;
  margin-top: 24px;
  margin-bottom: 8px;
}

.page ul {
  padding-left: 20px;
}

.page ul li {
  margin-bottom: 6px;
  line-height: 1.7;
  color: var(--ghn-text-light);
}

.page p {
  color: var(--ghn-text-light);
  line-height: 1.75;
}

.page a {
  color: var(--ghn-primary);
  transition: var(--ghn-transition);
}

.page a:hover {
  color: var(--ghn-primary-dark);
}

.page table {
  width: 100%;
  border-collapse: collapse;
}

.page table th {
  text-align: left;
  font-weight: 700;
  color: var(--ghn-text);
}

.page table td {
  color: var(--ghn-text-light);
}

/* ========== PRODUCT PAGE — NEW COMPONENTS ========== */

/* Confidence / Trust Box */
.ghn-confidence-box {
  background: var(--ghn-bg);
  border: 1px solid var(--ghn-gray-200);
  border-radius: var(--ghn-radius);
  padding: 20px 24px;
  margin-top: 8px;
}

.ghn-confidence-title {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 16px !important;
}

.ghn-confidence-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}

.ghn-confidence-item:last-child {
  margin-bottom: 0;
}

.ghn-confidence-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  background: var(--ghn-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ghn-shadow-sm);
}

.ghn-confidence-icon svg {
  width: 18px;
  height: 18px;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ghn-confidence-item p {
  font-size: 0.9rem;
  color: var(--ghn-text-light);
  line-height: 1.5;
  margin: 0;
}

.ghn-confidence-item a {
  color: var(--ghn-primary) !important;
  transition: var(--ghn-transition);
}

.ghn-confidence-item a:hover {
  color: var(--ghn-primary-dark) !important;
}

/* Product Info Specs Table */
.product_info {
  font-size: 0.92rem;
}

.product_info-title {
  margin: 0 0 6px !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  letter-spacing: .01em;
}

.product_info ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.product_info li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  padding: 13px 2px;
  border-bottom: 1px solid var(--ghn-gray-200);
}

.product_info li:last-child {
  border-bottom: none;
  padding-bottom: 2px;
}

.product_info li p {
  margin: 0;
  flex: 0 0 44%;
  text-transform: uppercase;
  letter-spacing: .045em;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ghn-text-light);
  line-height: 1.45;
  transition: color var(--ghn-transition);
}

.product_info li div {
  flex: 1;
  text-align: right;
  color: var(--ghn-text);
  font-weight: 600;
  line-height: 1.5;
}

.product_info li:hover p {
  color: var(--ghn-primary);
}

/* The inquiry column itself becomes the green card (no white frame / box-in-box) */
.ghn-product-details .ghn-inquiry-col > .col-inner {
  background: linear-gradient(135deg, var(--ghn-primary), var(--ghn-primary-dark));
  border-radius: var(--ghn-radius);
  padding: 30px 30px 28px;
  box-shadow: 0 12px 30px rgba(35, 107, 67, 0.22);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media only screen and (max-width: 849px) {
  .ghn-product-details .ghn-inquiry-col > .col-inner {
    padding: 22px 18px;
  }
}

/* Equal height: white specs card + green form card stretch to the same row height.
   (.row is not a direct child of the section — Flatsome nests .section-content — so
   we make each .col a flex container and let its .col-inner stretch to full height.) */
.ghn-product-details .row { align-items: stretch; }
.ghn-product-details .col { display: flex; }
.ghn-product-details .col > .col-inner { width: 100%; }

/* Contact / Inquiry Form on Product Page (sits directly on the green card) */
.form-dien-thoai {
  margin: 0;
  padding: 0;
  background: none;
  box-shadow: none;
  border-radius: 0;
}

/* CF7 auto-inserts <br> between fields; remove them and use flex gaps instead */
.form-dien-thoai .wpcf7 br { display: none; }
.form-dien-thoai p { margin: 0; }

.form-dien-thoai label {
  display: block;
  color: rgba(255,255,255,0.92);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.55;
  margin: 0 0 18px;
}

.form-dien-thoai .form-sdt {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.form-dien-thoai .form-sdt .left {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.form-dien-thoai .wpcf7-form-control-wrap { display: block; }

.form-dien-thoai .wpcf7-text,
.form-dien-thoai .wpcf7-email,
.form-dien-thoai .wpcf7-textarea {
  width: 100%;
  height: auto;
  padding: 13px 16px;
  margin: 0;
  border-radius: var(--ghn-radius-sm);
  border: 1px solid rgba(255,255,255,0.28);
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 0.95rem;
  box-shadow: none;
  transition: var(--ghn-transition);
}

.form-dien-thoai .wpcf7-text:focus,
.form-dien-thoai .wpcf7-email:focus,
.form-dien-thoai .wpcf7-textarea:focus {
  border-color: var(--ghn-cta);
  background: rgba(255,255,255,0.18);
  box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.25);
  outline: none;
}

.form-dien-thoai .wpcf7-text::placeholder,
.form-dien-thoai .wpcf7-email::placeholder,
.form-dien-thoai .wpcf7-textarea::placeholder {
  color: rgba(255,255,255,0.62);
}

.form-dien-thoai .wpcf7-textarea {
  min-height: 110px;
  resize: vertical;
}

/* textarea stays hidden until a choice is selected (toggled by theme JS) */
.form-dien-thoai .wpcf7-form-control.wpcf7-textarea {
  display: none;
}

/* Radio options — CF7 markup here is: .wpcf7-list-item > input[type=radio] + span.wpcf7-list-item-label
   (no <label> element). We hide the native input and draw a custom dot via ::before
   on the label span so Flatsome's own input styling can't interfere. */
.form-dien-thoai .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
}

.form-dien-thoai .wpcf7-list-item {
  position: relative;
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
}

/* native radio: invisible but still covers the dot so it stays clickable */
.form-dien-thoai .wpcf7-radio input[type="radio"] {
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}

.form-dien-thoai .wpcf7-list-item-label {
  position: relative;
  padding-left: 30px;
  color: rgba(255,255,255,0.92);
  font-size: 0.92rem;
  line-height: 22px;
  cursor: pointer;
}

/* the custom dot */
.form-dien-thoai .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.7);
  background: rgba(255,255,255,0.12);
  transition: var(--ghn-transition);
}

/* checked dot — input is the immediate previous sibling of the label span */
.form-dien-thoai .wpcf7-radio input[type="radio"]:checked + .wpcf7-list-item-label::before {
  border-color: var(--ghn-cta);
  background: var(--ghn-cta);
  box-shadow: inset 0 0 0 3px var(--ghn-primary-dark);
}

/* keyboard focus ring */
.form-dien-thoai .wpcf7-radio input[type="radio"]:focus-visible + .wpcf7-list-item-label::before {
  outline: 2px solid var(--ghn-cta);
  outline-offset: 2px;
}

/* Submit */
.form-dien-thoai .form-sdt .right {
  margin: 0;
}

.form-dien-thoai input[type="submit"] {
  background: var(--ghn-cta) !important;
  color: var(--ghn-text) !important;
  border: none;
  border-radius: 50px;
  padding: 13px 38px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(255, 215, 0, 0.28);
  transition: var(--ghn-transition);
}

.form-dien-thoai input[type="submit"]:hover {
  background: var(--ghn-cta-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(255, 215, 0, 0.36);
}

.form-dien-thoai .wpcf7-spinner {
  display: none !important;
}

.form-dien-thoai .wpcf7-response-output {
  margin: 14px 0 0 !important;
  padding: 10px 14px !important;
  border-radius: var(--ghn-radius-sm);
  border-color: rgba(255,255,255,0.4) !important;
  color: #fff;
  font-size: 0.85rem;
}

/* Don't reserve space for the empty CF7 status box */
.form-dien-thoai .wpcf7-response-output:empty {
  display: none !important;
}

/* Delivery Timeline */
.ghn-delivery-section .shipping-timeline,
.ghn-delivery-section .woo-delivery-timeline {
  border-radius: var(--ghn-radius);
  overflow: hidden;
}

/* Product Details Section */
.ghn-product-details .col {
  margin-bottom: 16px;
}

/* Related Products Section */
.ghn-related-section .product-small .col-inner {
  background: var(--ghn-white);
  border-radius: var(--ghn-radius);
  overflow: hidden;
  border: 1px solid var(--ghn-gray-200);
  transition: var(--ghn-transition);
}

.ghn-related-section .product-small:hover .col-inner {
  transform: translateY(-4px);
  box-shadow: var(--ghn-shadow-md);
  border-color: var(--ghn-primary);
}

/* ========== RESPONSIVE ========== */
@media only screen and (max-width: 549px) {
  .ghn-hero-title {
    font-size: 2rem !important;
  }

  .ghn-feature-box {
    padding: 28px 20px;
  }

  .ghn-newsletter-form input[type="email"] {
    width: 100%;
  }

  .ghn-testimonial-card {
    padding: 24px;
  }
}

/* ========== EMPTY MINI CART — "Return to shop" button ========== */
/* Fix: green text on green background made the label unreadable */
.widget_shopping_cart_content .button.wc-backward,
li.cart-item .nav-dropdown .button.wc-backward,
.woocommerce-mini-cart__empty-message + .button.wc-backward,
.cart-empty + .return-to-shop .button {
  background-color: var(--ghn-primary) !important;
  color: var(--ghn-white) !important;
  border: none !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  transition: var(--ghn-transition) !important;
}

.widget_shopping_cart_content .button.wc-backward:hover,
li.cart-item .nav-dropdown .button.wc-backward:hover,
.woocommerce-mini-cart__empty-message + .button.wc-backward:hover,
.cart-empty + .return-to-shop .button:hover {
  background-color: var(--ghn-primary-dark) !important;
  color: var(--ghn-white) !important;
  transform: translateY(-2px);
}

/* ========================================================== */
/* ========== HOMEPAGE — CONVERSION SECTIONS (PDP) ========== */
/* ========================================================== */

/* ---------- Hero: quick category chips under CTA ---------- */
.ghn-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.ghn-hero-chips a {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: 50px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff !important;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  transition: var(--ghn-transition);
}

.ghn-hero-chips a:hover {
  background: var(--ghn-cta);
  color: var(--ghn-text) !important;
  border-color: var(--ghn-cta);
  transform: translateY(-2px);
}

/* ---------- Guarantee / reassurance band ---------- */
.ghn-guarantee {
  background: linear-gradient(135deg, var(--ghn-primary-dark), var(--ghn-primary)) !important;
}

.ghn-guarantee .ghn-guarantee-title {
  color: #fff !important;
  font-size: clamp(1.5rem, 3vw, 2.1rem) !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
}

.ghn-guarantee .ghn-guarantee-desc {
  color: rgba(255,255,255,0.88) !important;
  max-width: 620px;
  margin: 0 auto 8px !important;
  line-height: 1.7;
}

.ghn-guarantee-points {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
  margin: 28px 0 8px;
}

.ghn-guarantee-point {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
}

.ghn-guarantee-point svg {
  width: 22px;
  height: 22px;
  stroke: var(--ghn-cta);
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- How it works (steps) ---------- */
.ghn-steps {
  counter-reset: ghn-step;
}

.ghn-step {
  text-align: center;
  padding: 16px;
  position: relative;
}

.ghn-step-num {
  counter-increment: ghn-step;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--ghn-bg);
  border: 2px solid var(--ghn-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.ghn-step-num::before {
  content: counter(ghn-step);
  position: absolute;
  top: -8px;
  right: -8px;
  width: 26px;
  height: 26px;
  background: var(--ghn-cta);
  color: var(--ghn-text);
  border-radius: 50%;
  font-size: 0.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ghn-step-num svg {
  width: 28px;
  height: 28px;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ghn-step-title {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 8px !important;
}

.ghn-step-desc {
  font-size: 0.92rem;
  color: var(--ghn-text-light);
  line-height: 1.6;
}

/* ---------- Secure checkout / payment strip ---------- */
.ghn-payment-strip {
  background: var(--ghn-white) !important;
  border-top: 1px solid var(--ghn-gray-200);
  border-bottom: 1px solid var(--ghn-gray-200);
}

.ghn-payment-title {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 4px !important;
}

.ghn-payment-desc {
  font-size: 0.85rem;
  color: var(--ghn-text-light);
  margin: 0;
}

.ghn-payment-icons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.ghn-payment-icons img {
  height: 30px;
  width: auto;
  opacity: 0.85;
}

/* ---------- FAQ accordion ---------- */
.ghn-faq {
  max-width: 860px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ghn-faq .accordion-title {
  position: relative !important;
  display: block !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ghn-text) !important;
  background: var(--ghn-white) !important;
  border: 1px solid var(--ghn-gray-200) !important;
  border-radius: var(--ghn-radius-sm) !important;
  margin-bottom: 10px !important;
  padding: 16px 52px 16px 18px !important;
  text-align: left !important;
  transition: var(--ghn-transition);
}

.ghn-faq .accordion-title > span {
  display: block;
  text-align: left;
}

.ghn-faq .accordion-title.active {
  background: var(--ghn-bg) !important;
  border-color: var(--ghn-primary) !important;
  color: var(--ghn-primary) !important;
}

.ghn-faq .accordion-inner {
  display: grid !important;
  grid-template-rows: 0fr;
  overflow: hidden;
  padding: 0 18px !important;
  opacity: 0;
  color: var(--ghn-text-light);
  line-height: 1.7;
  font-size: 0.93rem;
  transition: grid-template-rows .38s cubic-bezier(.4, 0, .2, 1),
              opacity .3s ease,
              padding-top .38s ease,
              padding-bottom .38s ease;
}

.ghn-faq .accordion-item.is-open .accordion-inner {
  grid-template-rows: 1fr;
  opacity: 1;
  padding-top: 6px !important;
  padding-bottom: 18px !important;
}

.ghn-faq .accordion-inner > * {
  min-height: 0;
  margin: 0;
}

.ghn-faq .accordion-title .toggle {
  position: absolute !important;
  left: auto !important;
  right: 16px !important;
  top: 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 1.5em !important;
  height: 1.5em !important;
  min-height: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: var(--ghn-primary) !important;
  transform: translateY(-50%);
  transition: transform .3s ease;
}

.ghn-faq .accordion-title .toggle i {
  margin: 0 !important;
  top: 0 !important;
  font-size: 1.2em;
  line-height: 1;
}

.ghn-faq .accordion-title[aria-expanded="true"] .toggle,
.ghn-faq .accordion-title.active .toggle {
  transform: translateY(-50%) rotate(180deg);
}

/* ---------- Responsive tweaks for new sections ---------- */
@media only screen and (max-width: 549px) {
  .ghn-guarantee-points {
    flex-direction: column;
    gap: 14px;
    align-items: center;
  }
  .ghn-payment-icons {
    justify-content: center;
    margin-top: 12px;
  }
}

/* ========== STATIC CATEGORY IMAGE GRID ========== */
.ghn-cat-tiles {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin: 8px 0 4px;
}
.ghn-cat-tile {
  position: relative;
  display: block;
  border-radius: var(--ghn-radius, 12px);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: 0 6px 18px rgba(26, 51, 32, 0.10);
  transition: transform .35s ease, box-shadow .35s ease;
}
.ghn-cat-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.ghn-cat-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 40, 26, 0.80) 0%, rgba(20, 40, 26, 0.12) 55%, rgba(20, 40, 26, 0) 100%);
}
.ghn-cat-tile-label {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 100%;
  padding: 16px 18px;
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: .2px;
}
.ghn-cat-tile:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 30px rgba(26, 51, 32, 0.20);
}
.ghn-cat-tile:hover img {
  transform: scale(1.07);
}

@media only screen and (max-width: 849px) {
  .ghn-cat-tiles {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ========== PARALLAX CTA BANNER ========== */
.ghn-cta-banner-title {
  color: #fff !important;
  font-size: clamp(1.6rem, 3.4vw, 2.4rem) !important;
  margin-bottom: 12px !important;
}
.ghn-cta-banner-text {
  color: rgba(255, 255, 255, 0.92) !important;
  max-width: 620px;
  margin: 0 auto 26px !important;
  font-size: 1.05rem;
}

/* ========== ABOUT SECTION REDESIGN ========== */
.ghn-about-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ghn-primary);
  background: var(--ghn-bg);
  padding: 6px 15px;
  border-radius: 50px;
  margin-bottom: 16px;
}

.ghn-about-media {
  position: relative;
  display: inline-block;
  width: 100%;
}
.ghn-about-media::after {
  content: "";
  position: absolute;
  right: -14px;
  bottom: -14px;
  width: 68%;
  height: 68%;
  border: 2px solid var(--ghn-primary);
  border-radius: 18px;
  opacity: 0.4;
  z-index: 0;
  pointer-events: none;
}
.ghn-about-img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: var(--ghn-shadow-lg);
}
.ghn-about-badge {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 2;
  background: #fff;
  color: var(--ghn-primary);
  font-weight: 700;
  font-size: 0.85rem;
  padding: 9px 16px;
  border-radius: 50px;
  box-shadow: var(--ghn-shadow-md);
}

.ghn-about-stats {
  display: flex !important;
  flex-wrap: nowrap;
  background: var(--ghn-bg);
  border: 1px solid rgba(46, 139, 87, 0.18);
  border-radius: 14px;
  padding: 20px 0 !important;
  margin: 26px 0 !important;
}
.ghn-about-stats > .col {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.ghn-about-stats .col + .col {
  border-left: 1px solid rgba(46, 139, 87, 0.18);
}
.ghn-about-stats p {
  margin: 0;
}

.ghn-about .ghn-about-stat-number {
  font-size: 2.1rem !important;
  font-weight: 800 !important;
  color: var(--ghn-primary) !important;
  display: block;
  line-height: 1.1;
}
.ghn-about .ghn-about-stat-label {
  font-size: 0.82rem;
  color: var(--ghn-text-light);
  display: block;
  margin-top: 2px;
}

.ghn-about .ghn-btn-green {
  margin-top: 4px;
}

@media only screen and (max-width: 849px) {
  .ghn-about-media {
    margin-bottom: 32px;
  }
  .ghn-about-media::after {
    display: none;
  }
  .ghn-about-badge {
    font-size: 0.78rem;
    left: 12px;
    bottom: 12px;
  }
}

/* ========== POLICY / LEGAL PAGES ========== */
.ghn-policy-hero {
  background: linear-gradient(180deg, #ffffff 0%, var(--ghn-bg) 100%);
}
.ghn-policy-updated {
  color: var(--ghn-text-light) !important;
  font-size: 0.88rem;
  margin-top: 8px !important;
}
.ghn-legal-section {
  background: var(--ghn-bg);
}
.ghn-legal {
  max-width: 840px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--ghn-shadow-md);
  padding: 44px 48px;
}
.ghn-legal h2 {
  font-size: 1.35rem !important;
  color: var(--ghn-text) !important;
  margin: 34px 0 12px !important;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ghn-bg);
}
.ghn-legal > h2:first-child,
.ghn-legal > *:first-child {
  margin-top: 0 !important;
}
.ghn-legal h3 {
  font-size: 1.05rem !important;
  color: var(--ghn-primary) !important;
  margin: 22px 0 8px !important;
}
.ghn-legal p,
.ghn-legal li {
  color: var(--ghn-text-light);
  line-height: 1.75;
  font-size: 0.97rem;
}
.ghn-legal ul {
  margin: 0 0 16px 1.1em;
  list-style: disc;
}
.ghn-legal li {
  margin-bottom: 7px;
}
.ghn-legal a {
  color: var(--ghn-primary);
  font-weight: 600;
}
.ghn-legal a:hover {
  text-decoration: underline;
}
.ghn-legal strong {
  color: var(--ghn-text);
}
.ghn-legal table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 18px;
}
.ghn-legal th,
.ghn-legal td {
  text-align: left;
  padding: 10px 12px;
  border: 1px solid var(--ghn-gray-200);
  font-size: 0.92rem;
}
.ghn-legal th {
  background: var(--ghn-bg);
  color: var(--ghn-text);
  font-weight: 700;
}
.ghn-legal-help {
  margin-top: 30px;
  padding: 16px 18px;
  background: var(--ghn-bg);
  border-radius: 12px;
  font-size: 0.95rem;
  color: var(--ghn-text);
}

/* FAQ page */
.ghn-faqpage {
  max-width: 820px;
  margin: 0 auto;
}
.ghn-faqpage .ghn-faq {
  max-width: none;
}
.ghn-faq-cat {
  font-size: 1.2rem !important;
  color: var(--ghn-primary) !important;
  margin: 30px 0 12px !important;
}
.ghn-faqpage > .ghn-faq-cat:first-child {
  margin-top: 0 !important;
}

/* Track your order */
.ghn-track {
  max-width: 900px;
  margin: 0 auto;
}
.ghn-track-intro {
  text-align: center;
  color: var(--ghn-text-light);
  max-width: 640px;
  margin: 0 auto 28px;
}
.ghn-track-note {
  text-align: center;
  color: var(--ghn-text-light);
  font-size: 0.9rem;
  margin-top: 22px;
}
.ghn-track-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 8px 0;
}
.ghn-track-step {
  background: #fff;
  border-radius: 14px;
  padding: 28px 22px;
  text-align: center;
  box-shadow: var(--ghn-shadow-sm);
}
.ghn-track-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  margin: 0 auto 14px;
  background: var(--ghn-primary);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ghn-track-step h3 {
  font-size: 1.05rem !important;
  margin-bottom: 6px !important;
  color: var(--ghn-text) !important;
}
.ghn-track-step p {
  color: var(--ghn-text-light);
  font-size: 0.92rem;
  line-height: 1.6;
}
.ghn-track-actions {
  text-align: center;
  margin: 28px 0 4px;
}
.ghn-track-carriers {
  text-align: center;
  margin-top: 20px;
  color: var(--ghn-text-light);
  font-size: 0.9rem;
}
.ghn-track-carriers a {
  color: var(--ghn-primary);
  font-weight: 600;
  margin: 0 8px;
}

@media only screen and (max-width: 849px) {
  .ghn-legal {
    padding: 28px 22px;
  }
  .ghn-track-steps {
    grid-template-columns: 1fr;
  }
}

/* ========== ABOUT US PAGE ========== */
.page-id-31 .page-title { display: none; }
.ghn-about-page-hero .ghn-section-subtitle {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.ghn-about-page-hero {
  background: linear-gradient(180deg, #ffffff 0%, var(--ghn-bg) 100%);
}

/* ========== CONTACT PAGE ========== */
.page-id-83 .page-title { display: none; } /* hide default Flatsome title bar */

.ghn-contact-hero .ghn-section-subtitle {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.ghn-contact-body .row {
  align-items: stretch;
}

/* Left column — contact info */
.ghn-contact-info {
  padding: 8px 10px;
}
.ghn-contact-h {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin-bottom: 6px !important;
}
.ghn-contact-sub {
  color: var(--ghn-text-light) !important;
  margin-bottom: 24px !important;
}
.ghn-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}
.ghn-contact-ic {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--ghn-shadow-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ghn-contact-ic svg {
  width: 22px;
  height: 22px;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ghn-contact-text {
  display: flex;
  flex-direction: column;
  line-height: 1.5;
}
.ghn-contact-text strong {
  color: var(--ghn-text);
  font-size: 0.95rem;
}
.ghn-contact-text a,
.ghn-contact-text span {
  color: var(--ghn-text-light);
}
.ghn-contact-text a:hover {
  color: var(--ghn-primary);
}
.ghn-contact-assure {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  padding: 14px 16px;
  background: rgba(46, 139, 87, 0.08);
  border-radius: 12px;
  color: var(--ghn-primary);
  font-size: 0.88rem;
  font-weight: 600;
}
.ghn-contact-assure svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  stroke: var(--ghn-primary);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Right column — form card */
.ghn-contact-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--ghn-shadow-md);
  padding: 34px;
  height: 100%;
}
.ghn-contact-card .ghn-contact-sub {
  margin-bottom: 22px !important;
}
.ghn-contact-card .wpcf7 input[type="text"],
.ghn-contact-card .wpcf7 input[type="email"],
.ghn-contact-card .wpcf7 textarea {
  width: 100% !important;
  border: 1px solid var(--ghn-gray-200) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 12px 14px !important;
  font-size: 0.95rem !important;
  height: auto !important;
  margin: 0 !important;
}
.ghn-contact-card .wpcf7 textarea {
  min-height: 150px;
  resize: vertical;
}
.ghn-contact-card .wpcf7 input:focus,
.ghn-contact-card .wpcf7 textarea:focus {
  border-color: var(--ghn-primary) !important;
  box-shadow: 0 0 0 3px rgba(46, 139, 87, 0.12) !important;
  outline: none !important;
}
.ghn-contact-card .wpcf7 input::placeholder,
.ghn-contact-card .wpcf7 textarea::placeholder {
  color: #9aa39d !important;
}
.ghn-contact-card .wpcf7 p {
  margin: 0 0 16px !important;
}
.ghn-contact-card .wpcf7 br {
  display: none;
}
/* CF7 auto-wraps the row's controls in a <p> with a <br>; make that the flex row */
.ghn-cf-row,
.ghn-cf-row > p {
  display: flex;
  gap: 14px;
}
.ghn-cf-row > p {
  margin: 0 0 16px !important;
  flex: 1 1 auto;
  width: 100%;
}
.ghn-cf-row br {
  display: none;
}
.ghn-cf-row .ghn-cf-col {
  flex: 1 1 0;
  min-width: 0;
}
.ghn-cf-row .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.ghn-cf-submit {
  background: var(--ghn-primary) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px;
  padding: 13px 38px !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.2 !important;
  margin: 6px 0 0 !important;
  cursor: pointer;
  transition: var(--ghn-transition) !important;
}
.ghn-cf-submit:hover {
  background: var(--ghn-primary-dark) !important;
  box-shadow: none !important;
  transform: translateY(-1px);
}
.ghn-contact-card .wpcf7-spinner {
  display: none !important;
}

@media only screen and (max-width: 849px) {
  .ghn-contact-card {
    padding: 24px;
    margin-top: 28px;
  }
  .ghn-cf-row,
  .ghn-cf-row > p {
    flex-direction: column;
    gap: 0;
  }
  .ghn-cf-row .ghn-cf-col {
    margin-bottom: 16px;
  }
}

/* ========== PRODUCT DETAIL PAGE (Green Haven style) ========== */
.ghn-sale-badge {
  background: #e8442b !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  padding: 4px 10px !important;
  font-size: 0.85rem !important;
}

/* Add to cart area — quantity + Add to cart on one row, Buy Now below */
.single-product .cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
}

/* Quantity stepper as a pill matching the button height */
.single-product .cart .ux-quantity {
  flex: 0 0 auto;
  display: flex !important;
  align-items: stretch;
  height: 54px;
  margin: 0 !important;
  border: 1px solid var(--ghn-gray-200);
  border-radius: 50px;
  overflow: hidden;
  background: #fff;
}
.single-product .cart .ux-quantity .ux-quantity__button {
  width: 40px;
  height: 100% !important;
  min-height: 0 !important;
  border: 0 !important;
  background: #fff !important;
  color: var(--ghn-text) !important;
  margin: 0 !important;
  font-size: 1.15rem;
  box-shadow: none !important;
}
.single-product .cart .ux-quantity .qty {
  width: 50px;
  height: 100% !important;
  border: 0 !important;
  background: #fff !important;
  text-align: center;
  font-weight: 700;
  margin: 0 !important;
  box-shadow: none !important;
  -moz-appearance: textfield;
  appearance: textfield;
}
.single-product .cart .ux-quantity .qty::-webkit-outer-spin-button,
.single-product .cart .ux-quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Buttons */
.single-product .cart .single_add_to_cart_button {
  flex: 1 1 200px;
  width: auto !important;
}
.single-product .cart .ghn-buy-now {
  flex: 1 1 100%;
  width: 100% !important;
}
.single-product .cart .single_add_to_cart_button,
.single-product .cart .ghn-buy-now {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 54px;
  border-radius: 50px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  letter-spacing: 0.3px;
  padding: 0 24px !important;
  margin: 0 !important;
  line-height: 1 !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.07) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}
/* High specificity to beat Flatsome/Customizer button color rules */
body.single-product .product form.cart .single_add_to_cart_button,
body.single-product .product form.cart .single_add_to_cart_button.button {
  background: var(--ghn-cta) !important;
  color: #1a3320 !important;
  -webkit-text-fill-color: #1a3320 !important;
}
body.single-product .product form.cart .single_add_to_cart_button:hover {
  background: var(--ghn-cta-hover) !important;
  color: #1a3320 !important;
  -webkit-text-fill-color: #1a3320 !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12) !important;
}
body.single-product .product form.cart .ghn-buy-now {
  background: var(--ghn-primary) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.single-product .product form.cart .ghn-buy-now:hover {
  background: var(--ghn-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12) !important;
}

@media only screen and (max-width: 549px) {
  .single-product .cart .single_add_to_cart_button {
    flex: 1 1 100%;
  }
}

/* Payment icons */
.ghn-pdp-payments {
  margin: 20px 0 6px;
  text-align: center;
  border: 1px dashed var(--ghn-gray-200);
  border-radius: 12px;
  padding: 14px;
}
.ghn-pdp-pay-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ghn-text-light);
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.ghn-pay-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  justify-content: center;
  align-items: center;
}
.ghn-pay-row svg {
  height: 30px;
  width: auto;
}

/* Estimated arrival timeline */
.ghn-pdp-timeline {
  margin: 22px 0;
}
.ghn-pdp-timeline-title {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin: 0 0 18px !important;
}
.ghn-timeline-steps {
  display: flex;
  justify-content: space-between;
  position: relative;
}
.ghn-timeline-steps::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 16%;
  right: 16%;
  height: 2px;
  background: var(--ghn-gray-200);
  z-index: 0;
}
.ghn-timeline-step {
  position: relative;
  z-index: 1;
  flex: 1;
  text-align: center;
  padding: 0 4px;
}
.ghn-timeline-ic {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ghn-gray-200);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  color: var(--ghn-primary);
}
.ghn-timeline-ic svg {
  width: 22px;
  height: 22px;
}
.ghn-timeline-date {
  display: block;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ghn-text);
}
.ghn-timeline-label {
  display: block;
  font-size: 0.84rem;
  color: var(--ghn-text-light);
  margin-top: 2px;
}

/* Shop With Confidence */
.ghn-pdp-trust {
  margin: 18px 0;
  border: 1px solid var(--ghn-gray-200);
  border-radius: 14px;
  padding: 20px;
}
.ghn-pdp-trust-title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  margin: 0 0 12px !important;
  color: var(--ghn-text) !important;
}
.ghn-pdp-trust-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 11px 0;
  border-top: 1px solid var(--ghn-bg);
}
.ghn-pdp-trust-item:first-of-type {
  border-top: 0;
  padding-top: 0;
}
.ghn-pdp-trust-ic {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--ghn-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ghn-primary);
}
.ghn-pdp-trust-ic svg {
  width: 20px;
  height: 20px;
}
.ghn-pdp-trust-tx {
  display: flex;
  flex-direction: column;
  line-height: 1.5;
}
.ghn-pdp-trust-tx strong {
  color: var(--ghn-text);
  font-size: 0.95rem;
}
.ghn-pdp-trust-tx span {
  color: var(--ghn-text-light);
  font-size: 0.86rem;
}
.ghn-pdp-trust-tx a {
  color: var(--ghn-primary);
  font-weight: 600;
}

/* Specs (left) + inquiry form (right) — 2-column section below the summary */
.ghn-pdp-info {
  display: block;
  margin: 40px 0 0;
}
.ghn-pdp-info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  align-items: start;
}
.ghn-pdp-info-grid--2 {
  grid-template-columns: 1fr 1fr;
}
.ghn-pdp-specs {
  border: 1px solid var(--ghn-gray-200);
  border-radius: 14px;
  overflow: hidden;
}

/* Product inquiry form */
.ghn-pdp-inquiry {
  background: var(--ghn-bg);
  border-radius: 14px;
  padding: 28px;
}
.ghn-pdp-inquiry-title {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin: 0 0 6px !important;
}
.ghn-pdp-inquiry-sub {
  color: var(--ghn-text-light) !important;
  font-size: 0.9rem;
  margin: 0 0 18px !important;
}
.ghn-pdp-inquiry .wpcf7 p {
  margin: 0 0 14px !important;
}
.ghn-pdp-inquiry .wpcf7-form-control-wrap {
  display: block;
}
.ghn-pdp-inquiry .wpcf7 input[type="text"],
.ghn-pdp-inquiry .wpcf7 input[type="email"],
.ghn-pdp-inquiry .wpcf7 textarea {
  width: 100% !important;
  border: 1px solid var(--ghn-gray-200) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 12px 14px !important;
  font-size: 0.95rem !important;
  height: auto !important;
  margin: 0 !important;
}
.ghn-pdp-inquiry .wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}
.ghn-pdp-inquiry .wpcf7 input:focus,
.ghn-pdp-inquiry .wpcf7 textarea:focus {
  border-color: var(--ghn-primary) !important;
  box-shadow: 0 0 0 3px rgba(46, 139, 87, 0.12) !important;
  outline: none !important;
}
.ghn-pdp-inquiry .wpcf7 input::placeholder,
.ghn-pdp-inquiry .wpcf7 textarea::placeholder {
  color: #9aa39d !important;
}
.ghn-inquiry-submit {
  background: var(--ghn-primary) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  padding: 13px 32px !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.2 !important;
  cursor: pointer;
  transition: var(--ghn-transition) !important;
}
.ghn-inquiry-submit:hover {
  background: var(--ghn-primary-dark) !important;
  transform: translateY(-1px);
}
.ghn-pdp-inquiry .wpcf7-spinner {
  display: none !important;
}

@media only screen and (max-width: 849px) {
  .ghn-pdp-info-grid--2 {
    grid-template-columns: 1fr;
  }
}

/* ---- woo-delivery-time [woo-delivery-timeline] restyled to match the custom timeline ---- */
.ghn-delivery-section .shipping-info {
  margin: 0;
}
.ghn-delivery-section .shipping-info h3 {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin: 0 0 18px !important;
  text-align: left;
}
.ghn-delivery-section .fulfillment_timeline_date {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  position: relative;
  margin-bottom: 0;
}
/* one continuous connector line behind the icons */
.ghn-delivery-section .fulfillment_timeline_date::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 16.66%;
  right: 16.66%;
  height: 2px;
  background: var(--ghn-gray-200);
  z-index: 0;
}
.ghn-delivery-section .fulfillment_timeline_date .time {
  position: relative;
  z-index: 1;
  display: block !important;
  text-align: center !important;
  padding: 0 4px;
}
/* hide the plugin's per-cell line pseudo-elements */
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder::before,
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder::after {
  display: none !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder {
  display: flex !important;
  justify-content: center !important;
  align-items: center;
  width: 100% !important;
  margin: 0 0 10px !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder .icon {
  width: 48px !important;
  height: 48px !important;
  background: #fff !important;
  border: 2px solid var(--ghn-gray-200) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  color: var(--ghn-primary);
  flex: 0 0 auto;
}
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder .icon svg {
  width: 22px !important;
  height: 22px !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time .icon-holder .icon svg path {
  fill: var(--ghn-primary) !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time .date {
  width: 100%;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  color: var(--ghn-text) !important;
  margin: 0 0 2px !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time .edd-description {
  display: inline-block;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  text-decoration: none !important;
  color: var(--ghn-text-light) !important;
  font-size: 0.84rem !important;
  font-weight: 400 !important;
  cursor: default !important;
}
.ghn-delivery-section .fulfillment_timeline_date .time:nth-child(2) .edd-description,
.ghn-delivery-section .fulfillment_timeline_date .time:last-child .edd-description {
  margin: 0 !important;
}

@media only screen and (max-width: 549px) {
  .ghn-delivery-section .fulfillment_timeline_date::before {
    left: 16.66%;
    right: 16.66%;
  }
  .ghn-delivery-section .fulfillment_timeline_date .time .icon-holder .icon {
    width: 42px !important;
    height: 42px !important;
  }
}
.ghn-pdp-specs-title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  margin: 0 !important;
  padding: 14px 18px;
  background: var(--ghn-bg);
  color: var(--ghn-text) !important;
}
.ghn-pdp-specs table {
  width: 100%;
  border-collapse: collapse;
}
.ghn-pdp-specs th,
.ghn-pdp-specs td {
  text-align: left;
  padding: 11px 18px;
  font-size: 0.9rem;
  border-top: 1px solid var(--ghn-gray-200);
}
.ghn-pdp-specs th {
  width: 45%;
  color: var(--ghn-text-light);
  font-weight: 600;
}
.ghn-pdp-specs td {
  color: var(--ghn-text);
  font-weight: 600;
}

/* Tabs / description content */
.single-product .woocommerce-Tabs-panel {
  color: var(--ghn-text-light);
  line-height: 1.75;
}
.single-product .woocommerce-Tabs-panel h2,
.single-product .woocommerce-Tabs-panel h3,
.single-product .woocommerce-Tabs-panel h4 {
  color: var(--ghn-text) !important;
}
.single-product .woocommerce-Tabs-panel h3 {
  color: var(--ghn-primary) !important;
  margin-top: 22px !important;
}

/* Sticky product gallery on desktop — stick the whole COLUMN, not the slider
   (sticking the slider itself breaks Flatsome's gallery height/thumbnails) */
@media only screen and (min-width: 850px) {
  .single-product .col:has(.woocommerce-product-gallery) {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 90px !important;
    align-self: flex-start !important;
  }
  .single-product .product-images.woocommerce-product-gallery {
    position: relative !important;
  }
}

/* Variation rows — vertically centre the attribute label with the swatches */
.single-product .variations th.label,
.single-product .variations td.value {
  vertical-align: middle !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
.single-product .variations th.label {
  text-align: left !important;
  white-space: nowrap;
}
.single-product .variations th.label label {
  margin: 0 !important;
  line-height: 1.2 !important;
  font-weight: 700;
}
.single-product .variations td.value .ux-swatches {
  margin: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.single-product .variations td.value .ux-swatch {
  margin: 0 !important;
}


