/*
Theme Name: OceanWP Child Theme
Theme URI: https://oceanwp.org/
Description: OceanWP WordPress theme. Sample child theme.
Author: OceanWP
Author URI: https://oceanwp.org/
Template: oceanwp
Version: 1.0
*/

/* Parent stylesheet should be loaded from functions.php not using @import */

/* =====================================================================
   QADRI MARKET — GLOBAL DESIGN SYSTEM
   Matches the homepage: emerald / gold / ivory, Cormorant + Jost.
   Sections: tokens, base type, header, buttons, forms, WooCommerce,
   entries, page header, footer, mobile menu, misc.
   ===================================================================== */

:root {
  --qm-emerald:      #0E3B2E;
  --qm-emerald-deep: #08251C;
  --qm-emerald-ink:  #061C15;
  --qm-gold:         #B08A3E;
  --qm-gold-light:   #D9BE8A;
  --qm-ivory:        #FBF6EC;
  --qm-paper:        #FFFDF9;
  --qm-ink:          #1B2A22;
  --qm-body:         #4B5650;
  --qm-muted:        #6E7A72;
  --qm-line:         rgba(176, 138, 62, .26);
  --qm-line-soft:    rgba(176, 138, 62, .16);
  --qm-serif:        'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --qm-sans:         'Jost', 'Helvetica Neue', Arial, sans-serif;
}

/* ------------------------------------------------------------------ base */
body,
body.woocommerce,
body.woocommerce-page {
  font-family: var(--qm-sans);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.75;
  color: var(--qm-body);
  background-color: var(--qm-ivory);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.widget-title,
.woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.woocommerce-Tabs-panel h2 {
  font-family: var(--qm-serif);
  font-weight: 400;
  color: var(--qm-ink);
  letter-spacing: .2px;
  line-height: 1.2;
}

h3, h4 { font-weight: 500; }

p { color: var(--qm-body); }

a { color: var(--qm-gold); transition: color .25s ease; }
a:hover { color: var(--qm-emerald); }

strong, b { font-weight: 500; color: var(--qm-ink); }

blockquote {
  border-left: 2px solid var(--qm-gold-light);
  padding-left: 24px;
  font-family: var(--qm-serif);
  font-style: italic;
  font-size: 21px;
  color: var(--qm-ink);
}

hr { border-color: var(--qm-line-soft); }

::selection { background: var(--qm-gold-light); color: var(--qm-emerald-deep); }

/* ---------------------------------------------------------------- header */
#site-header,
#site-header.minimal-header,
#site-header.medium-header {
  background-color: var(--qm-paper) !important;
  border-bottom: 1px solid var(--qm-line);
}

#site-logo #site-logo-inner a {
  font-family: var(--qm-serif) !important;
  font-size: 27px !important;
  font-weight: 500 !important;
  letter-spacing: .6px !important;
  color: #17251F !important;
}

#site-logo #site-logo-inner a:hover { color: var(--qm-gold) !important; }

#site-navigation-wrap .dropdown-menu > li > a,
#site-navigation-wrap .dropdown-menu > li.menu-item > a {
  font-family: var(--qm-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 1.9px !important;
  text-transform: uppercase !important;
  color: #26332C !important;
}

#site-navigation-wrap .dropdown-menu > li > a:hover,
#site-navigation-wrap .dropdown-menu > li.current-menu-item > a,
#site-navigation-wrap .dropdown-menu > li.current-menu-ancestor > a {
  color: var(--qm-gold) !important;
}

#site-navigation-wrap .dropdown-menu .sub-menu {
  background-color: var(--qm-paper);
  border: 1px solid var(--qm-line);
}

#site-navigation-wrap .dropdown-menu .sub-menu a {
  font-family: var(--qm-sans) !important;
  font-size: 12px !important;
  letter-spacing: .4px !important;
  color: #26332C !important;
}

#site-navigation-wrap .dropdown-menu .sub-menu a:hover { color: var(--qm-gold) !important; }

/* header icons + cart bubble */
#site-header .owp-icon use,
#site-header .icon,
#site-header i { color: #26332C; }

#site-header .wcmenucart-count,
#site-header .owp-cart-count,
#site-header .cart-count {
  background-color: transparent !important;
  color: #26332C !important;
  padding: 0 !important;
}

#site-header .wcmenucart-details.count,
#site-header .wcmenucart .count {
  background-color: transparent !important;
  color: var(--qm-gold) !important;
  font-family: var(--qm-sans);
  font-size: 10.5px !important;
  font-weight: 500;
  letter-spacing: .6px;
  min-width: 0;
  padding: 0 0 0 3px !important;
  line-height: 1;
}

#site-header .wcmenucart i,
#site-header .wcmenucart .icon-handbag {
  color: #26332C;
  font-size: 15px;
}

/* top bar (empty in this setup - hide it, keeps the header flush) */
#top-bar-wrap {
  background-color: var(--qm-emerald-deep);
  border-bottom: 0;
}
#top-bar-wrap:has(.has-no-content) { display: none; }
#top-bar-wrap, #top-bar-wrap a, #top-bar-wrap .top-bar-content { color: #D9D0C0; }
#top-bar-wrap a:hover { color: var(--qm-gold-light); }

/* --------------------------------------------------------------- buttons */
.button,
button,
input[type="submit"],
input[type="button"],
.error404 .error-btn,
.owp-btn,
.elementor-button {
  font-family: var(--qm-sans) !important;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 0 !important;
  transition: all .35s ease;
}

.button,
button,
input[type="submit"],
input[type="button"],
.error404 .error-btn {
  background-color: var(--qm-emerald);
  color: var(--qm-paper);
  border: 1px solid var(--qm-emerald);
}

.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.error404 .error-btn:hover {
  background-color: var(--qm-emerald-deep);
  color: var(--qm-gold-light);
  border-color: var(--qm-emerald-deep);
}

/* ----------------------------------------------------------------- forms */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select,
.select2-container--default .select2-selection--single {
  font-family: var(--qm-sans);
  font-weight: 300;
  font-size: 15px;
  background-color: var(--qm-paper);
  border: 1px solid var(--qm-line);
  border-radius: 0;
  color: var(--qm-ink);
  padding: 12px 14px;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--qm-gold);
  outline: none;
}

label { font-size: 12px; letter-spacing: .6px; color: var(--qm-muted); }

/* ----------------------------------------------------------- woocommerce */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background-color: var(--qm-paper);
  border: 1px solid var(--qm-line-soft);
  padding: 0 0 20px;
  text-align: center;
  transition: border-color .3s ease, box-shadow .3s ease;
}

.woocommerce ul.products li.product:hover {
  border-color: var(--qm-line);
  box-shadow: 0 22px 44px -34px rgba(14, 59, 46, .55);
}

.woocommerce ul.products li.product a img { margin: 0 0 16px; }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--qm-serif) !important;
  font-size: 19px !important;
  font-weight: 500;
  color: var(--qm-ink);
  padding: 0 14px !important;
  letter-spacing: .2px;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--qm-sans);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .8px;
  color: var(--qm-gold);
}

.woocommerce ul.products li.product .price del { color: #A9B3AC; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button {
  margin-top: 10px;
  background-color: transparent;
  color: var(--qm-emerald);
  border: 1px solid var(--qm-line);
  padding: 11px 20px;
  font-size: 10.5px;
  letter-spacing: 1.8px;
}

.woocommerce ul.products li.product .button:hover {
  background-color: var(--qm-emerald);
  color: var(--qm-paper);
  border-color: var(--qm-emerald);
}

.woocommerce span.onsale {
  background-color: var(--qm-gold);
  color: #fff;
  border-radius: 0;
  font-family: var(--qm-sans);
  font-size: 10px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  min-height: 0;
  line-height: 1;
  padding: 8px 11px;
  top: 12px;
  left: 12px;
}

.woocommerce div.product .product_title {
  font-size: 38px;
  line-height: 1.15;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--qm-sans);
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--qm-ink); }

.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  background-color: var(--qm-emerald);
  color: var(--qm-paper);
  border: 1px solid var(--qm-emerald);
}

.woocommerce div.product form.cart .button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background-color: var(--qm-emerald-deep);
  color: var(--qm-gold-light);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background-color: var(--qm-paper);
  border-top: 2px solid var(--qm-gold);
  color: var(--qm-body);
  font-size: 14px;
}

.woocommerce-message::before,
.woocommerce-info::before { color: var(--qm-gold); }

.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  border-color: var(--qm-line-soft);
}

.woocommerce table.shop_table th {
  font-family: var(--qm-sans);
  font-size: 10.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border-color: var(--qm-line-soft);
  color: var(--qm-body);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background-color: var(--qm-emerald);
  color: var(--qm-paper);
}

/* woocommerce buttons - beat OceanWP's accent colour */
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .woocommerce-form-login__submit {
  background-color: var(--qm-emerald);
  color: var(--qm-paper);
  border: 1px solid var(--qm-emerald);
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .woocommerce-form-login__submit:hover {
  background-color: var(--qm-emerald-deep);
  color: var(--qm-gold-light);
  border-color: var(--qm-emerald-deep);
}

/* account / login */
.oceanwp-loginform-wrap {
  max-width: 470px;
  margin: 0 auto;
}

.owp-account-links {
  display: flex;
  justify-content: center;
  gap: 28px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.owp-account-links li { list-style: none; }

.owp-account-links .owp-account-link {
  font-family: var(--qm-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase;
  color: var(--qm-muted) !important;
}

.owp-account-links .owp-account-link.current { color: var(--qm-ink) !important; }

.oceanwp-loginform-wrap h2 {
  font-family: var(--qm-serif);
  font-size: 34px;
  font-weight: 400;
  text-align: center;
  color: var(--qm-ink);
  margin: 0 0 26px;
}

.woocommerce form.login,
.woocommerce form.register {
  border: 1px solid var(--qm-line-soft);
  background-color: var(--qm-paper);
  border-radius: 0;
  padding: 34px 30px 30px;
  margin: 0;
}

.woocommerce form.login .form-row,
.woocommerce form.register .form-row { padding: 0 0 16px; }

.woocommerce form.login label,
.woocommerce form.register label { color: var(--qm-ink); }

.woocommerce form.login .lost_password { margin: 4px 0 0; text-align: center; }
.woocommerce form.login .lost_password a { font-size: 12.5px; letter-spacing: .4px; }

/* pages with no sidebar widgets should use the full width */
body.has-sidebar:not(:has(#secondary)) #primary,
body.has-sidebar:not(:has(.widget-area)) #primary {
  width: 100%;
  max-width: 100%;
  float: none;
}

/* -------------------------------------------------------- entries / blog */
.entry-title,
.entry-title a {
  font-family: var(--qm-serif);
  color: var(--qm-ink);
}

.entry-title a:hover { color: var(--qm-gold); }

.blog-entry .blog-entry-summary,
.entry-content { color: var(--qm-body); }

.blog-entry .blog-entry-readmore a {
  font-family: var(--qm-sans);
  font-size: 10.5px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

ul.meta,
ul.meta li,
ul.meta li a {
  font-family: var(--qm-sans);
  font-size: 10.5px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

/* ------------------------------------------------- page header / crumbs */
/* contact page has its own hero - drop the duplicate title bar */
.page-id-652 .page-header { display: none; }

.page-header .page-header-title,
.page-header .page-header-title h1 {
  font-family: var(--qm-serif);
  color: var(--qm-ink);
}

.page-header {
  background-color: var(--qm-ivory);
  border-bottom: 1px solid var(--qm-line-soft);
  padding: 44px 0;
}

.page-header .page-header-title h1 { font-size: 40px; font-weight: 400; }

.site-breadcrumbs,
.site-breadcrumbs a { font-size: 11px; letter-spacing: 1px; color: var(--qm-muted); }
.site-breadcrumbs a:hover { color: var(--qm-gold); }

/* ---------------------------------------------------------------- footer */
.qm-footer {
  background-color: var(--qm-emerald-deep);
  background-image:
    radial-gradient(circle at 10% 8%, rgba(217, 190, 138, .10), transparent 46%),
    radial-gradient(circle at 90% 92%, rgba(217, 190, 138, .07), transparent 44%);
  border-top: 1px solid rgba(217, 190, 138, .14);
}

/* keep footer content on the same 1200px grid as the rest of the site */
.qm-footer > .elementor-container,
.qm-fbar > .elementor-container,
.qm-boxed > .elementor-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* footer spacing is spacer-driven, same as the homepage */
.elementor-location-footer .elementor-widget:not(:last-child),
.elementor-location-footer .elementor-element:not(:last-child) {
  margin-bottom: 0;
}

.elementor-location-footer .elementor-widget-heading .elementor-heading-title,
.elementor-location-footer .elementor-widget-text-editor p {
  margin-top: 0;
  margin-bottom: 0;
}

.qm-footer .elementor-heading-title { color: var(--qm-paper); }

.qm-fbrand .elementor-heading-title {
  font-size: 32px;
  letter-spacing: .4px;
  line-height: 1.05;
}

.qm-flabel .elementor-heading-title,
.qm-flabel { white-space: nowrap; }

.qm-fbrand .elementor-divider-separator { opacity: .9; }

.qm-footer .elementor-widget-text-editor,
.qm-footer .elementor-widget-text-editor p { color: #C6CFC8; }

.qm-fnav,
.qm-fnav p {
  line-height: 2.35 !important;
}

.qm-fnav a {
  font-family: var(--qm-sans);
  font-size: 14px;
  font-weight: 300;
  letter-spacing: .3px;
  color: #C6CFC8;
  text-decoration: none;
  transition: color .25s ease;
}

.qm-fnav a:hover { color: var(--qm-gold-light); }

.qm-footer .elementor-button {
  background-color: var(--qm-gold-light) !important;
  color: #0B2C22 !important;
  border: 1px solid var(--qm-gold-light) !important;
  padding: 14px 26px !important;
}

.qm-footer .elementor-button:hover {
  background-color: var(--qm-paper) !important;
  color: #0B2C22 !important;
  border-color: var(--qm-paper) !important;
}

.qm-fbar { border-top: 1px solid rgba(217, 190, 138, .14); }

.qm-fbar .elementor-widget-text-editor p,
.qm-fbar-t {
  font-family: var(--qm-sans) !important;
  font-size: 10.5px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase;
  color: #8C988F !important;
  margin: 0 !important;
}

/* stack nicely on tablets + phones */
@media (max-width: 1024px) {
  .elementor-location-footer .elementor-column:not(:last-child) { margin-bottom: 40px; }
  .elementor-location-footer .elementor-column:last-child { margin-bottom: 0; }

  .qm-fbar .elementor-column:not(:last-child) { margin-bottom: 8px; }
  .qm-fbar .elementor-column:last-child { margin-bottom: 0; }
}

@media (max-width: 767px) {
  .qm-contact .elementor-column:not(:last-child) { margin-bottom: 48px; }
  .qm-contact .elementor-column:last-child { margin-bottom: 0; }
  .qm-contact-cta .elementor-column { margin-bottom: 0; }

  .qm-fbrand .elementor-divider-separator { margin: 0; }
}

/* --------------------------------------------- host credit (MilesWeb bar) */
#force-footer {
  background-color: var(--qm-emerald-ink) !important;
  color: #5E6B63 !important;
  text-align: center !important;
  padding: 11px 16px !important;
  font-family: var(--qm-sans) !important;
  font-size: 10px !important;
  letter-spacing: 1.3px !important;
  text-transform: uppercase;
}

#force-footer p,
#force-footer p a {
  margin: 0 !important;
  color: #5E6B63 !important;
  font-family: var(--qm-sans) !important;
  font-size: 10px !important;
  letter-spacing: 1.3px !important;
}

#force-footer a:hover { color: var(--qm-gold-light) !important; }

/* ----------------------------------------------------------- mobile menu */
#mobile-menu-toggle,
.oceanwp-mobile-menu-icon a {
  color: #26332C;
}

#mobile-dropdown {
  background-color: var(--qm-paper);
  border-top: 1px solid var(--qm-line);
}

#mobile-dropdown ul li a {
  font-family: var(--qm-sans);
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #26332C;
  border-bottom: 1px solid var(--qm-line-soft);
}

#mobile-dropdown ul li a:hover { color: var(--qm-gold); }

/* ------------------------------------------------------------------ misc */
#scroll-top {
  background-color: var(--qm-emerald);
  color: var(--qm-gold-light);
  border-radius: 0;
}

#scroll-top:hover { background-color: var(--qm-gold); color: #fff; }

.widget-title,
.widget .widget-title {
  font-family: var(--qm-serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .3px;
  color: var(--qm-ink);
}

.sidebar-box,
.widget-area .widget {
  border-color: var(--qm-line-soft);
}

/* keep long form pages readable */
.entry-content a:not(.button):not(.elementor-button) {
  text-decoration: underline;
  text-decoration-color: rgba(176, 138, 62, .4);
  text-underline-offset: 3px;
}

.entry-content a:not(.button):not(.elementor-button):hover {
  text-decoration-color: var(--qm-emerald);
}

/* ============================================================ shop archive */
/* Product archives run edge to edge: no sidebar, centred page heading. */
.post-type-archive-product #primary,
.tax-product_cat #primary,
.tax-product_tag #primary,
.post-type-archive-product .content-area,
.tax-product_cat .content-area,
.tax-product_tag .content-area {
  width: 100%;
  max-width: 100%;
  float: none;
  padding: 0;
}

.post-type-archive-product #secondary,
.tax-product_cat #secondary,
.tax-product_tag #secondary,
.post-type-archive-product .widget-area,
.tax-product_cat .widget-area,
.tax-product_tag .widget-area {
  display: none;
}

.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .woocommerce-products-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 44px;
}

.post-type-archive-product .woocommerce-products-header__title,
.tax-product_cat .woocommerce-products-header__title,
.tax-product_tag .woocommerce-products-header__title {
  font-family: var(--qm-serif);
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--qm-ink);
  margin: 0 0 14px;
}

.post-type-archive-product .term-description,
.tax-product_cat .term-description,
.tax-product_tag .term-description {
  font-size: 15px;
  color: var(--qm-muted);
}

/* WooCommerce / OceanWP notices: paper card, gold edge, sentence case. */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
  border-top: 1px solid var(--qm-line);
  border-left: 3px solid var(--qm-gold);
  background-color: var(--qm-paper);
  color: var(--qm-body);
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.6;
  padding: 16px 22px;
  margin: 0 0 28px;
}

.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before { color: var(--qm-gold); }

/* Empty shop: studio note instead of a bare WooCommerce notice. */
.qm-empty-shop {
  max-width: 620px;
  margin: 0 auto;
  padding: 56px 40px 60px;
  text-align: center;
  background: var(--qm-paper);
  border: 1px solid var(--qm-line-soft);
}

.qm-empty-eyebrow {
  margin: 0 0 16px;
  font-family: var(--qm-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

.qm-empty-title {
  margin: 0 0 14px;
  font-family: var(--qm-serif);
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--qm-ink);
}

.qm-empty-copy {
  margin: 0 auto 28px;
  max-width: 460px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--qm-muted);
}

.qm-empty-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  flex-wrap: wrap;
}

.qm-empty-btn {
  display: inline-block;
  padding: 14px 30px;
  background: var(--qm-emerald);
  border: 1px solid var(--qm-emerald);
  color: var(--qm-gold-light) !important;
  font-family: var(--qm-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background .3s ease, color .3s ease;
}

.qm-empty-btn:hover {
  background: var(--qm-emerald-deep);
  color: #fff !important;
}

.qm-empty-link {
  font-family: var(--qm-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-gold) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--qm-line);
  padding-bottom: 3px;
}

.qm-empty-link:hover { border-bottom-color: var(--qm-gold); }

@media (max-width: 767px) {
  .qm-empty-shop { padding: 40px 24px 44px; }
  .post-type-archive-product .woocommerce-products-header,
  .tax-product_cat .woocommerce-products-header { margin-bottom: 32px; }
}

/* --------------------------------------------- Woo notices (OceanWP overrides) */
/* OceanWP's woocommerce.min.css prints after the child theme, so match its
   specificity and outrank it where it uses compound selectors. */
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-error {
  display: block;
  width: auto;
  background-color: var(--qm-paper);
  border: 0;
  border-left: 3px solid var(--qm-gold);
  border-top: 1px solid var(--qm-line);
  color: var(--qm-body);
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.65;
  text-transform: none;
  text-align: left;
  padding: 16px 22px;
  margin: 0 0 28px;
}

body.woocommerce .woocommerce-info a,
body.woocommerce .woocommerce-message a,
body.woocommerce .woocommerce-error a,
body.woocommerce-page .woocommerce-info a,
body.woocommerce-page .woocommerce-message a,
body.woocommerce-page .woocommerce-error a {
  float: none;
  display: inline;
  background: transparent !important;
  color: var(--qm-gold) !important;
  font-size: inherit;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  padding: 0;
  min-height: 0;
  line-height: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Checkout notices use a second OceanWP rule with border-width 1px 0. */
.woocommerce-checkout .woocommerce-info {
  text-align: left;
  padding: 16px 22px;
  border-width: 1px 1px 1px 3px;
  border-color: var(--qm-line);
  border-left-color: var(--qm-gold);
}

/* Cart + account pages: centre the form column, keep the page airy. */
.woocommerce-cart #primary,
.woocommerce-checkout #primary,
.woocommerce-account #primary {
  width: 100%;
  max-width: 100%;
  float: none;
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  max-width: 960px;
  margin: 0 auto;
}

.woocommerce-account .woocommerce { max-width: 470px; }

body.woocommerce .woocommerce-info::before,
body.woocommerce .woocommerce-message::before,
body.woocommerce .woocommerce-error::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-error::before {
  color: var(--qm-gold);
}

/* ------------------------------------------------------- product loop cards */
body.woocommerce ul.products li.product li.category,
body.woocommerce ul.products li.product li.category a {
  font-family: var(--qm-sans);
  font-size: 9.5px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

body.woocommerce ul.products li.product li.title h2,
body.woocommerce ul.products li.product li.title h2 a {
  font-family: var(--qm-serif);
  font-size: 19px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--qm-ink);
}

body.woocommerce ul.products li.product li.title h2 a:hover { color: var(--qm-gold); }

body.woocommerce ul.products li.product li.price-wrap .price,
body.woocommerce ul.products li.product .price {
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: .2px;
  color: var(--qm-emerald);
}

body.woocommerce ul.products li.product .price del { color: var(--qm-muted); font-weight: 300; }
body.woocommerce ul.products li.product .price ins { color: var(--qm-emerald); font-weight: 500; text-decoration: none; }

body.woocommerce ul.products li.product li.btn-wrap a.button,
body.woocommerce ul.products li.product .product-inner .button {
  display: inline-block;
  padding: 11px 22px;
  background: var(--qm-emerald);
  border: 1px solid var(--qm-emerald);
  color: var(--qm-gold-light);
  font-family: var(--qm-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}

body.woocommerce ul.products li.product li.btn-wrap a.button:hover,
body.woocommerce ul.products li.product .product-inner .button:hover {
  background: var(--qm-emerald-deep);
  border-color: var(--qm-emerald-deep);
  color: #fff;
}

body.woocommerce ul.products li.product li.btn-wrap a.added_to_cart {
  margin-top: 8px;
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

/* toolbar: sort + grid/list + per-page */
body.woocommerce .oceanwp-toolbar .oceanwp-grid-list a {
  border-color: var(--qm-line-soft);
  color: var(--qm-muted);
}

body.woocommerce .oceanwp-toolbar .oceanwp-grid-list a.active,
body.woocommerce .oceanwp-toolbar .oceanwp-grid-list a:hover {
  border-color: var(--qm-emerald);
  color: var(--qm-emerald);
  background: transparent;
}

body.woocommerce .oceanwp-toolbar ul.result-count li,
body.woocommerce .oceanwp-toolbar ul.result-count li a {
  color: var(--qm-muted);
  font-family: var(--qm-sans);
  font-size: 11px;
  letter-spacing: .8px;
}

body.woocommerce .oceanwp-toolbar ul.result-count li a:hover,
body.woocommerce .oceanwp-toolbar ul.result-count li.view-all a {
  color: var(--qm-emerald);
}

body.woocommerce .woocommerce-ordering select {
  border-color: var(--qm-line-soft);
  font-family: var(--qm-sans);
  font-size: 12.5px;
  color: var(--qm-body);
}

/* OceanWP colours the .amount span directly, so match it here. */
body.woocommerce ul.products li.product .price .amount,
body.woocommerce ul.products li.product .price .woocommerce-Price-amount,
body.woocommerce div.product p.price .amount,
body.woocommerce div.product span.price .amount {
  color: var(--qm-emerald);
}

/* ------------------------------------------------------ single product page */
.single-product #primary,
.single-product .content-area {
  width: 100%;
  max-width: 100%;
  float: none;
  padding: 0;
}

.single-product #secondary,
.single-product .widget-area { display: none; }

/* tabs: OceanWP leaves them blue */
body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--qm-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--qm-muted);
  border-color: transparent;
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--qm-emerald);
  border-color: var(--qm-emerald);
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--qm-gold); }

body.woocommerce div.product .woocommerce-tabs .panel h2,
body.woocommerce div.product .related.products > h2,
body.woocommerce div.product .upsells.products > h2 {
  font-family: var(--qm-serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--qm-ink);
}

/* reset variation link (OceanWP shows a red clear icon) */
body.woocommerce div.product form.cart .reset_variations {
  font-family: var(--qm-sans);
  font-size: 10.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--qm-muted);
  text-decoration: none;
}

body.woocommerce div.product form.cart .reset_variations:hover { color: var(--qm-gold); }

/* quantity + variation selects */
body.woocommerce div.product form.cart .quantity input.qty,
body.woocommerce div.product form.cart .variations select {
  border-color: var(--qm-line-soft);
  font-family: var(--qm-sans);
  font-size: 13px;
  color: var(--qm-body);
  background-color: var(--qm-paper);
}

body.woocommerce div.product form.cart .variations label {
  font-family: var(--qm-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

/* the page header already carries the product name; avoid a duplicate H1 */
.single-product .woocommerce div.product .product_title { display: none; }

/* OceanWP prints its own product H1 inside the summary */
.single-product .entry-summary .single-post-title.product_title,
.single-product .summary .single-post-title.product_title { display: none; }

/* reset link: drop OceanWP's red circled icon */
body.woocommerce div.product form.cart .reset_variations::before { display: none; }

/* WooCommerce hides the gallery until its slider boots; keep it visible. */
body.woocommerce div.product .woocommerce-product-gallery { opacity: 1 !important; }

/* OceanWP prints a red circled icon before the variation reset link. */
body.woocommerce div.product form.cart .variations .reset_variations::before,
body.woocommerce div.product form.cart .reset_variations::before {
  content: none !important;
  display: none !important;
}

body.woocommerce div.product form.cart .variations .reset_variations {
  display: inline-block;
  float: none;
  margin-top: 10px;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--qm-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--qm-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.woocommerce div.product form.cart .variations .reset_variations:hover {
  color: var(--qm-gold);
}

/* ------------------------------------------------------------ cart / checkout */
body.woocommerce table.shop_table thead th {
  background-color: transparent;
  border-bottom-color: var(--qm-line);
  color: var(--qm-muted);
}

body.woocommerce-cart table.cart td.product-name a,
body.woocommerce-checkout table.shop_table td.product-name a {
  font-family: var(--qm-serif);
  font-size: 18px;
  font-weight: 400;
  color: var(--qm-ink);
}

body.woocommerce-cart table.cart td.product-name a:hover { color: var(--qm-gold); }

body.woocommerce-cart table.cart .amount,
body.woocommerce-cart .cart_totals .amount,
body.woocommerce-checkout table.shop_table .amount,
body.woocommerce-checkout .order-total .amount {
  color: var(--qm-emerald);
  font-weight: 500;
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-family: var(--qm-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-muted);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--qm-line-soft);
}

/* "View cart" inside the added-to-cart notice */
body.woocommerce .woocommerce-message a.button,
body.woocommerce .woocommerce-info a.button {
  padding: 7px 16px;
  background: transparent;
  border: 1px solid var(--qm-gold);
  color: var(--qm-gold);
  font-family: var(--qm-sans);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

body.woocommerce .woocommerce-message a.button:hover,
body.woocommerce .woocommerce-info a.button:hover {
  background: var(--qm-gold);
  border-color: var(--qm-gold);
  color: var(--qm-paper);
}

body.woocommerce-cart table.cart td.actions .coupon .input-text {
  min-width: 200px;
  border-color: var(--qm-line-soft);
  font-family: var(--qm-sans);
  font-size: 12.5px;
}

/* ==================================================================
   CONTENT PAGES  (about, contact, policies, faq)
   ================================================================== */
.qm-hero--page {
  background: #F7F1E4;
  border-bottom: 1px solid var(--qm-line-soft);
  padding: 96px 0 78px;
}

.qm-shell {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.qm-hero-eyebrow,
.qm-kicker {
  margin: 0 0 20px;
  font-family: var(--qm-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

.qm-kicker--light { color: var(--qm-gold-light); }

.qm-hero-title {
  margin: 0;
  max-width: 24ch;
  font-family: var(--qm-serif);
  font-size: 56px;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.4px;
  color: var(--qm-ink);
}

.qm-hero-lead {
  margin: 24px 0 0;
  max-width: 66ch;
  font-family: var(--qm-sans);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.9;
  color: var(--qm-body);
}

.qm-sec { padding: 82px 0; }
.qm-sec--alt { background: #F7F2E8; }

.qm-sec-head { margin-bottom: 44px; }
.qm-sec-head .qm-kicker { margin-bottom: 14px; }

.qm-h2 {
  margin: 0;
  font-family: var(--qm-serif);
  font-size: 40px;
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -0.2px;
  color: var(--qm-ink);
}

.qm-p {
  margin: 0 0 18px;
  font-family: var(--qm-sans);
  font-size: 15px;
  font-weight: 300;
  line-height: 1.95;
  color: var(--qm-body);
}

.qm-muted { color: var(--qm-muted); font-size: 13px; }

.qm-grid2 {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 64px;
  align-items: start;
}

.qm-grid3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.qm-card {
  padding: 30px 28px;
  background: var(--qm-paper);
  border: 1px solid var(--qm-line-soft);
}

.qm-card-index {
  margin: 0 0 14px;
  font-family: var(--qm-serif);
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--qm-gold);
}

.qm-card-title {
  margin: 0 0 10px;
  font-family: var(--qm-serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--qm-ink);
}

.qm-card-copy {
  margin: 0;
  font-family: var(--qm-sans);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.85;
  color: var(--qm-body);
}

.qm-panel {
  padding: 34px 32px;
  background: var(--qm-paper);
  border: 1px solid var(--qm-line-soft);
}

.qm-panel--sticky { position: sticky; top: 100px; }
.qm-panel .qm-p { margin-bottom: 22px; }

.qm-facts { margin: 0; }
.qm-facts > div {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 13px 0;
  border-bottom: 1px solid var(--qm-line-soft);
}
.qm-facts > div:last-child { border-bottom: 0; }

.qm-facts dt {
  flex: 0 0 40%;
  font-family: var(--qm-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

.qm-facts dd {
  margin: 0;
  flex: 1;
  text-align: right;
  font-family: var(--qm-sans);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.7;
  color: var(--qm-ink);
}

.qm-facts--wide > div { display: block; padding: 18px 0; }
.qm-facts--wide dt { margin-bottom: 6px; }
.qm-facts--wide dd { text-align: left; font-size: 14.5px; line-height: 1.8; }
.qm-facts--wide a { color: var(--qm-emerald); text-decoration: underline; text-underline-offset: 3px; }
.qm-facts--wide a:hover { color: var(--qm-gold); }

/* numbered process */
.qm-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: qmstep;
}
.qm-steps li {
  counter-increment: qmstep;
  position: relative;
  padding: 0 0 28px 62px;
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.9;
  color: var(--qm-body);
}
.qm-steps li:last-child { padding-bottom: 0; }
.qm-steps li::before {
  content: "0" counter(qmstep);
  position: absolute;
  left: 0;
  top: -4px;
  font-family: var(--qm-serif);
  font-size: 26px;
  color: var(--qm-gold);
}
.qm-steps span {
  display: block;
  margin-bottom: 4px;
  font-family: var(--qm-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-ink);
}

/* emerald cta band */
.qm-cta {
  padding: 86px 0;
  background: var(--qm-emerald);
  text-align: center;
}
.qm-cta-title {
  margin: 0 auto 16px;
  max-width: 22ch;
  font-family: var(--qm-serif);
  font-size: 42px;
  font-weight: 400;
  line-height: 1.15;
  color: var(--qm-ivory);
}
.qm-cta-copy {
  margin: 0 auto 32px;
  max-width: 52ch;
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.9;
  color: #C6CFC8;
}
.qm-cta-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

.qm-btn {
  display: inline-block;
  padding: 14px 30px;
  font-family: var(--qm-sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.qm-btn--gold {
  background: var(--qm-gold);
  border: 1px solid var(--qm-gold);
  color: var(--qm-paper);
}
.qm-btn--gold:hover { background: var(--qm-gold-light); border-color: var(--qm-gold-light); color: var(--qm-ink); }
.qm-btn--ghost {
  background: transparent;
  border: 1px solid rgba(251, 246, 236, .45);
  color: var(--qm-ivory);
}
.qm-btn--ghost:hover { border-color: var(--qm-gold-light); color: var(--qm-gold-light); }
.qm-btn--solid {
  display: inline-block;
  background: var(--qm-emerald);
  border: 1px solid var(--qm-emerald);
  color: var(--qm-gold-light);
}
.qm-btn--solid:hover { background: var(--qm-emerald-deep); border-color: var(--qm-emerald-deep); color: #fff; }

/* contact page */
.qm-contact-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 64px;
  align-items: start;
}
.qm-note {
  margin-top: 26px;
  padding: 22px 24px;
  background: #F7F2E8;
  border-left: 2px solid var(--qm-gold);
}
.qm-note-title {
  margin: 0 0 6px;
  font-family: var(--qm-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--qm-gold);
}
.qm-note p { margin: 0; font-family: var(--qm-sans); font-size: 13.5px; font-weight: 300; line-height: 1.8; color: var(--qm-body); }

.qm-form-card {
  padding: 40px 38px 34px;
  background: var(--qm-paper);
  border: 1px solid var(--qm-line-soft);
  box-shadow: 0 24px 60px -46px rgba(14, 59, 46, .35);
}
.qm-form-title {
  margin: 0 0 8px;
  font-family: var(--qm-serif);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--qm-ink);
}
.qm-form-sub {
  margin: 0 0 24px;
  font-family: var(--qm-sans);
  font-size: 12px;
  letter-spacing: .4px;
  color: var(--qm-muted);
}

/* policies */
.qm-doc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 70px;
  align-items: start;
}
.qm-prose { max-width: 74ch; }
.qm-prose h2 {
  margin: 46px 0 14px;
  font-family: var(--qm-serif);
  font-size: 27px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--qm-ink);
}
.qm-prose h2:first-child { margin-top: 0; }
.qm-prose p,
.qm-prose li {
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.95;
  color: var(--qm-body);
}
.qm-prose p { margin: 0 0 16px; }
.qm-prose ul,
.qm-prose ol { margin: 0 0 20px; padding-left: 20px; }
.qm-prose li { margin-bottom: 8px; }
.qm-prose ul li::marker { color: var(--qm-gold); }
.qm-prose ol li::marker { color: var(--qm-gold); font-weight: 500; }
.qm-prose strong { color: var(--qm-ink); font-weight: 500; }
.qm-prose a { color: var(--qm-emerald); text-decoration: underline; text-underline-offset: 3px; }
.qm-prose a:hover { color: var(--qm-gold); }
.qm-highlight {
  margin: 0 0 26px;
  padding: 22px 26px;
  background: #F7F2E8;
  border: 1px solid var(--qm-line-soft);
}
.qm-highlight p { margin: 0; }

/* faq */
.qm-faq { max-width: 880px; }
.qm-faq-item {
  border-bottom: 1px solid var(--qm-line-soft);
  padding: 6px 0;
}
.qm-faq-item summary {
  position: relative;
  padding: 20px 40px 20px 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--qm-serif);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--qm-ink);
}
.qm-faq-item summary::-webkit-details-marker { display: none; }
.qm-faq-item summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--qm-sans);
  font-size: 20px;
  font-weight: 300;
  color: var(--qm-gold);
}
.qm-faq-item[open] summary::after { content: "\2212"; }
.qm-faq-item summary:hover { color: var(--qm-gold); }
.qm-faq-item p {
  margin: 0 0 22px;
  max-width: 68ch;
  font-family: var(--qm-sans);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.9;
  color: var(--qm-body);
}
.qm-faq-item a { color: var(--qm-emerald); text-decoration: underline; text-underline-offset: 3px; }


/* 2 x 2 card grid for four-item sections */
.qm-grid2x {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

@media (max-width: 900px) {
  .qm-grid2x { grid-template-columns: 1fr; }
}

@media (max-width: 1040px) {
  .qm-doc { grid-template-columns: 1fr; gap: 40px; }
  .qm-panel--sticky { position: static; }
  .qm-grid2 { gap: 44px; }
}

@media (max-width: 900px) {
  .qm-hero--page { padding: 64px 0 52px; }
  .qm-hero-title { font-size: 36px; max-width: none; }
  .qm-hero-lead { font-size: 15px; }
  .qm-sec { padding: 54px 0; }
  .qm-h2 { font-size: 30px; }
  .qm-cta { padding: 58px 0; }
  .qm-cta-title { font-size: 30px; }
  .qm-grid2,
  .qm-grid3,
  .qm-contact-layout { grid-template-columns: 1fr; gap: 30px; }
  .qm-form-card { padding: 28px 22px 24px; }
  .qm-prose h2 { font-size: 23px; }
}

/* ==================================================================
   FORM (Forminator) — brand skin
   ================================================================== */
.qm-form-card .forminator-ui.forminator-custom-form,
.qm-form-card .forminator-ui {
  font-family: var(--qm-sans);
}

.qm-form-card .forminator-row { margin-bottom: 18px !important; }

.qm-form-card .forminator-label {
  display: block;
  margin-bottom: 7px !important;
  font-family: var(--qm-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--qm-muted) !important;
}

.qm-form-card .forminator-input,
.qm-form-card .forminator-textarea,
.qm-form-card select.forminator-select {
  width: 100%;
  padding: 13px 15px !important;
  background: var(--qm-paper) !important;
  border: 1px solid var(--qm-line-soft) !important;
  border-radius: 0 !important;
  font-family: var(--qm-sans) !important;
  font-size: 13.5px !important;
  font-weight: 300;
  color: var(--qm-ink) !important;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.qm-form-card .forminator-input:focus,
.qm-form-card .forminator-textarea:focus {
  border-color: var(--qm-gold) !important;
  box-shadow: 0 0 0 3px rgba(176, 138, 62, .1) !important;
  outline: none;
}

.qm-form-card .forminator-input::placeholder,
.qm-form-card .forminator-textarea::placeholder { color: #A8AFA9 !important; }

.qm-form-card .forminator-textarea { min-height: 150px !important; resize: vertical; }

.qm-form-card .forminator-button-submit {
  width: 100%;
  margin-top: 6px;
  padding: 15px 24px !important;
  background: var(--qm-emerald) !important;
  border: 1px solid var(--qm-emerald) !important;
  border-radius: 0 !important;
  font-family: var(--qm-sans) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--qm-gold-light) !important;
  transition: background .3s ease, color .3s ease;
}

.qm-form-card .forminator-button-submit:hover {
  background: var(--qm-emerald-deep) !important;
  border-color: var(--qm-emerald-deep) !important;
  color: #fff !important;
}

.qm-form-card .forminator-response-message,
.qm-form-card .forminator-error-message {
  font-family: var(--qm-sans);
  font-size: 12.5px;
}

.qm-form-card .forminator-response-message.forminator-success {
  background: #F7F2E8;
  border-left: 3px solid var(--qm-gold);
  color: var(--qm-ink);
}

/* ==================================================================
   VARIATION SWATCHES — brand buttons
   ================================================================== */
:root {
  --wvs-single-product-item-width: 84px;
  --wvs-single-product-item-height: 42px;
}

body.woocommerce div.product form.cart .variable-items-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item {
  width: auto !important;
  min-width: 84px !important;
  height: 42px !important;
  padding: 0 14px !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: var(--qm-paper) !important;
  border: 1px solid var(--qm-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--qm-sans) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .5px;
  color: var(--qm-body) !important;
  transition: border-color .25s ease, background .25s ease, color .25s ease;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item .variable-item-span {
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  color: inherit !important;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item:hover {
  border-color: var(--qm-gold) !important;
  color: var(--qm-ink) !important;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item.selected {
  background: var(--qm-emerald) !important;
  border-color: var(--qm-emerald) !important;
  color: var(--qm-gold-light) !important;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item.selected .variable-item-span {
  color: var(--qm-gold-light) !important;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item.disabled {
  opacity: .38;
  text-decoration: line-through;
}

body.woocommerce div.product form.cart .variable-items-wrapper .variable-item .wvs-tooltip {
  background: var(--qm-emerald);
  color: var(--qm-ivory);
  font-family: var(--qm-sans);
  font-size: 11px;
  border-radius: 0;
}

/* ==================================================================
   SINGLE PRODUCT — editorial layout
   ================================================================== */
body.single-product div.product div.images {
  position: sticky;
  top: 100px;
  margin-bottom: 0;
}

body.single-product div.product div.images .woocommerce-product-gallery__wrapper {
  border: 1px solid var(--qm-line-soft);
  background: var(--qm-paper);
}

body.single-product div.product div.images img {
  display: block;
  width: 100%;
}

body.single-product div.product div.images .flex-control-thumbs {
  margin-top: 12px;
  display: flex;
  gap: 10px;
}

body.single-product div.product div.images .flex-control-thumbs li {
  width: 76px;
  margin: 0;
}

body.single-product div.product div.images .flex-control-thumbs img {
  border: 1px solid var(--qm-line-soft);
  opacity: .62;
  transition: opacity .25s ease, border-color .25s ease;
}

body.single-product div.product div.images .flex-control-thumbs img:hover,
body.single-product div.product div.images .flex-control-thumbs img.flex-active {
  opacity: 1;
  border-color: var(--qm-gold);
}

body.single-product div.product .summary {
  padding-left: 18px;
}

/* the top price is a range — keep it quiet */
body.single-product div.product .summary > .price {
  margin: 0 0 18px;
  font-family: var(--qm-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 1.2px;
  color: var(--qm-muted);
}

body.single-product div.product .summary > .price .amount { color: var(--qm-muted); }

/* selected size price — the one that matters */
body.single-product div.product .woocommerce-variation-price {
  margin: 4px 0 18px;
}

body.single-product div.product .woocommerce-variation-price .price,
body.single-product div.product .woocommerce-variation-price .price .amount {
  font-family: var(--qm-serif);
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.5px;
  color: var(--qm-emerald);
}

body.single-product div.product .woocommerce-variation-description p {
  font-family: var(--qm-sans);
  font-size: 13.5px;
  color: var(--qm-body);
}

body.single-product div.product .woocommerce-product-details__short-description p {
  font-family: var(--qm-sans);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.9;
  color: var(--qm-body);
}

/* variation table */
body.single-product div.product form.cart .variations {
  margin-bottom: 6px;
}

body.single-product div.product form.cart .variations th.label {
  padding: 0 0 10px;
  width: 100%;
  display: block;
  text-align: left;
}

body.single-product div.product form.cart .variations th.label label {
  font-family: var(--qm-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

body.single-product div.product form.cart .variations td.value {
  display: block;
  padding: 0;
}

body.single-product div.product form.cart .variations td.value::before { display: none; }

.qm-size-help {
  margin: 12px 0 0;
  font-family: var(--qm-sans);
  font-size: 11.5px;
  letter-spacing: .3px;
  color: var(--qm-muted);
}
.qm-size-help a { color: var(--qm-gold); text-decoration: underline; text-underline-offset: 3px; }

/* perks strip */
.qm-perks {
  margin: 26px 0 0;
  padding: 22px 0 0;
  list-style: none;
  border-top: 1px solid var(--qm-line-soft);
  display: grid;
  gap: 10px;
}

.qm-perks li {
  position: relative;
  padding-left: 20px;
  font-family: var(--qm-sans);
  font-size: 12.5px;
  font-weight: 300;
  letter-spacing: .3px;
  color: var(--qm-body);
}

.qm-perks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--qm-gold);
}

/* product meta */
body.single-product div.product .product_meta {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--qm-line-soft);
  font-family: var(--qm-sans);
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--qm-muted);
}

body.single-product div.product .product_meta a { color: var(--qm-ink); }
body.single-product div.product .product_meta a:hover { color: var(--qm-gold); }

/* related products */
body.single-product div.product .related.products,
body.single-product div.product .upsells.products {
  margin-top: 70px;
  padding-top: 50px;
  border-top: 1px solid var(--qm-line-soft);
}

body.single-product div.product .related.products > h2,
body.single-product div.product .upsells.products > h2 {
  text-align: center;
  font-size: 32px;
  letter-spacing: -.2px;
}

body.single-product div.product .related.products > h2::after,
body.single-product div.product .upsells.products > h2::after {
  content: "";
  display: block;
  width: 42px;
  height: 1px;
  margin: 16px auto 0;
  background: var(--qm-gold);
}

@media (max-width: 900px) {
  body.single-product div.product div.images { position: static; }
  body.single-product div.product .summary { padding-left: 0; }
  body.single-product div.product .woocommerce-variation-price .price,
  body.single-product div.product .woocommerce-variation-price .price .amount { font-size: 28px; }
  body.single-product div.product .related.products > h2 { font-size: 26px; }
}

/* related products sit outside div.product on OceanWP */
body.single-product section.related.products,
body.single-product section.upsells.products {
  margin-top: 70px;
  padding-top: 50px;
  border-top: 1px solid var(--qm-line-soft);
}

body.single-product section.related.products > h2,
body.single-product section.upsells.products > h2 {
  text-align: center;
  font-family: var(--qm-serif);
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -.2px;
  color: var(--qm-ink);
}

body.single-product section.related.products > h2::after,
body.single-product section.upsells.products > h2::after {
  content: "";
  display: block;
  width: 42px;
  height: 1px;
  margin: 16px auto 0;
  background: var(--qm-gold);
}

/* full-width submit inside the contact card */
.qm-form-card .forminator-button-submit {
  display: block !important;
  width: 100% !important;
}

/* product description tab: shared detail block */
.qm-product-details {
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px solid var(--qm-line-soft);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.qm-product-details h3 {
  margin: 0 0 8px;
  font-family: var(--qm-sans);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--qm-gold);
}

.qm-product-details p {
  margin: 0;
  font-family: var(--qm-sans);
  font-size: 13px;
  font-weight: 300;
  line-height: 1.85;
  color: var(--qm-body);
}

/* tabs: centre, no underlines, no duplicate heading */
body.woocommerce div.product .woocommerce-tabs ul.tabs {
  text-align: center;
  padding: 0;
  margin: 0 0 28px;
  border-bottom: 1px solid var(--qm-line-soft);
}

body.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

body.woocommerce div.product .woocommerce-tabs ul.tabs li {
  float: none;
  display: inline-block;
  margin: 0 14px;
  border: 0;
  background: none;
  border-radius: 0;
  padding: 0;
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0 2px 14px;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  border-bottom-color: var(--qm-emerald);
}

body.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

@media (max-width: 900px) {
  .qm-product-details { grid-template-columns: 1fr; gap: 18px; }
  body.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 9px; }
}

/* keep the FAQ column aligned with the hero, not centred on its own */
.qm-faq { max-width: 100%; }

/* OceanWP colours content links with an id-level rule */
body #content .qm-prose a,
body #content .qm-faq-item a,
body #content .qm-facts--wide a,
body #content .qm-note a,
body #content .qm-size-help a {
  color: var(--qm-emerald);
  text-decoration: underline;
  text-decoration-color: var(--qm-line);
  text-underline-offset: 3px;
}

body #content .qm-prose a:hover,
body #content .qm-faq-item a:hover,
body #content .qm-facts--wide a:hover {
  color: var(--qm-gold);
  text-decoration-color: var(--qm-gold);
}

.qm-hero--page { padding-bottom: 66px; }

/* gallery zoom trigger: anchor to the image, not the prev/next bar above it */
body.single-product div.product div.images .woocommerce-product-gallery { position: relative; }

body.single-product div.product div.images .woocommerce-product-gallery__trigger {
  top: 12px;
  right: 12px;
  width: 38px;
  height: 38px;
  background: rgba(255, 253, 249, .92);
  border: 1px solid var(--qm-line);
  border-radius: 50%;
  color: var(--qm-emerald);
  text-indent: -999px;
  overflow: hidden;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}

body.single-product div.product div.images .woocommerce-product-gallery__trigger:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f002";
  display: block;
  line-height: 36px;
  text-indent: 0;
  font-size: 14px;
}

body.single-product div.product div.images .woocommerce-product-gallery__trigger:hover {
  background: var(--qm-emerald);
  border-color: var(--qm-emerald);
  color: var(--qm-gold-light);
}

@media (max-width: 900px) {
  /* the zoom trigger sits over OceanWP's prev/next bar on phones */
  body.single-product div.product div.images .woocommerce-product-gallery__trigger {
    display: none !important;
  }
}
