/* OMBRELLIA SAFE PROFESSIONAL REFINEMENT
   Additive only: preserves v4.2 sections, palette and WooCommerce structure. */

:root{
  --ombre-shadow: 0 16px 50px rgba(35,70,70,.08);
}

/* Consistent page rhythm without changing existing sections */
.ombre-categories-section,
.ombre-featured-section,
.ombre-testimonials,
.ombre-brand-story,
.ombre-instagram-strip{
  position:relative;
}

/* Refined interaction and keyboard accessibility */
a, button, input, select, textarea{ -webkit-tap-highlight-color:transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--coral);
  outline-offset:3px;
}
.ombre-button{ box-shadow:0 0 0 rgba(0,0,0,0); }
.ombre-button:hover{ box-shadow:0 8px 24px rgba(35,70,70,.14); }

/* Keep cards polished while preserving existing image and category behaviour */
.category-card,
.ombre-product-card,
.testimonial-card{ backface-visibility:hidden; }
.testimonial-card{ transition:transform .35s ease, box-shadow .35s ease; }
.testimonial-card:hover{ transform:translateY(-4px); box-shadow:var(--ombre-shadow); }

/* Instagram is intentionally preserved and visually prioritised */
.ombre-instagram-strip{ overflow:hidden; }
.insta-handle-link{ word-break:break-word; }

/* Prevent accidental horizontal scrolling on smaller screens */
/* NOTE: overflow-x:hidden on html/body breaks position:sticky (e.g. sp-gallery on single product pages),
   because it forces body into a scroll-container context. Using max-width + overflow-x on html only,
   and leaving body free, preserves sticky behaviour while still preventing horizontal scroll. */
html{ max-width:100%; overflow-x:hidden; }
body{ max-width:100%; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
}

@media(max-width:768px){
  .ombre-categories-section,.ombre-featured-section,.ombre-testimonials{ padding-left:4%; padding-right:4%; }
  .insta-handle-link{ font-size:clamp(20px,6vw,28px); }
}

/* v4.4 STRUCTURAL SAFETY FIX — keep all lower-page and footer content visible */
.payment-logos-bar{display:block!important;height:auto!important;min-height:0!important;padding:22px 5%!important;overflow:visible!important;}
.payment-logos-inner{display:block!important;height:auto!important;min-height:0!important;visibility:visible!important;opacity:1!important;}
.payment-logos{display:flex!important;visibility:visible!important;opacity:1!important;}
.payment-logo{display:inline-block!important;visibility:visible!important;opacity:1!important;}
.ombre-trust-bar{display:block!important;height:auto!important;min-height:0!important;padding:30px 5%!important;overflow:visible!important;}
.trust-grid{display:grid!important;visibility:visible!important;opacity:1!important;}
.trust-item,.shipping-item{opacity:1!important;visibility:visible!important;transform:none!important;}
.ombre-brand-story{display:block!important;height:auto!important;min-height:0!important;padding:90px 5%!important;overflow:visible!important;}
.ombre-brand-story>*{visibility:visible!important;opacity:1!important;}
.ombre-footer{display:block!important;height:auto!important;min-height:0!important;visibility:visible!important;opacity:1!important;overflow:visible!important;}
.footer-grid,.footer-brand,.footer-col,.footer-bottom,.footer-social{visibility:visible!important;opacity:1!important;}
.footer-col a,.footer-col h4,.footer-brand h2,.footer-brand p,.footer-bottom,.footer-social a{visibility:visible!important;opacity:1!important;}
/* Do not allow any stale animation rule to leave sections invisible */
.ombre-footer *, .payment-logos-bar *, .ombre-trust-bar *, .ombre-brand-story *{animation:none!important;}


/* =========================================================
   OMBRELLIA PROFESSIONAL FIX PACK
   Scope: search, drops link support, product variations,
   and My Account only. Existing sections remain untouched.
   ========================================================= */

/* SEARCH: keep the panel in normal document flow under the header.
   It can never cover the brand mark or header controls. */
.ombre-header { position: relative; z-index: 1000; }
.ombre-search-panel {
  position: relative !important;
  inset: auto !important;
  float: none !important;
  display: none;
  clear: both !important;
  width: 100% !important;
  box-sizing: border-box !important;
  z-index: 999 !important;
}
.ombre-search-panel.open { display: block !important; }
.header-inner { position: relative; z-index: 2; }

/* PRODUCT VARIATIONS: native WooCommerce controls are the reliable fallback.
   If a swatch plugin is inactive, Size/Color still works. */
.sp-form .variations select {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.sp-form .variations .reset_variations { font-size: 11px; }

/* MY ACCOUNT: only account pages are styled. WooCommerce endpoints and
   forms remain untouched so orders, addresses and login continue working. */
body.woocommerce-account .woocommerce {
  max-width: 1180px;
  margin: 56px auto 72px;
  padding: 0 28px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation {
  border: 1px solid rgba(35,70,70,.14);
  background: #fff;
  padding: 22px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 13px 4px;
  border-bottom: 1px solid rgba(35,70,70,.09);
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
  border-bottom: 0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  font-weight: 700;
  color: #234646;
}
body.woocommerce-account .woocommerce-MyAccount-content {
  background: #fff;
  border: 1px solid rgba(35,70,70,.10);
  padding: clamp(24px,4vw,48px);
  min-width: 0;
}
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register {
  max-width: 520px;
  margin: 36px auto;
  padding: clamp(24px,4vw,44px);
  background: #fff;
  border: 1px solid rgba(35,70,70,.14);
}
body.woocommerce-account .woocommerce-form-login__rememberme {
  font-size: 12px;
}
body.woocommerce-account .woocommerce-form-login input,
body.woocommerce-account .woocommerce-form-register input {
  width: 100%;
  min-height: 46px;
}
@media (max-width: 768px) {
  body.woocommerce-account .woocommerce {
    margin: 34px auto 80px;
    padding: 0 16px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content {
    padding: 18px;
  }
}


/* =========================================================
   FINAL TARGETED CORRECTIONS
   ========================================================= */

/* SEARCH PANEL
   The search panel is a sibling of the sticky header, so it cannot occupy
   the logo's stacking area or overlap the Ombrellia brand. */
.ombre-search-panel {
  position: relative !important;
  z-index: 998 !important;
  width: 100% !important;
  clear: both !important;
  box-sizing: border-box !important;
}
.ombre-header { z-index: 1000 !important; }

/* CATEGORY PRODUCT SLIDER
   taxonomy-product_cat.php wraps WooCommerce's product UL inside the slider.
   WooCommerce's global grid previously overrode the slider and stacked cards.
   These rules are scoped only to the category slider. */
.product-slider-section .product-slider-wrap {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.product-slider-section .product-slider-wrap::-webkit-scrollbar { display: none; }

.product-slider-section .product-slider-track > ul.products {
  display: flex !important;
  flex-wrap: nowrap !important;
  grid-template-columns: none !important;
  width: max-content !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.product-slider-section .product-slider-track > ul.products > li.product {
  flex: 0 0 calc((100vw - 12vw - 84px) / 4) !important;
  width: calc((100vw - 12vw - 84px) / 4) !important;
  max-width: none !important;
  min-width: 0 !important;
  scroll-snap-align: start;
}

@media (max-width: 1024px) {
  .product-slider-section .product-slider-track > ul.products > li.product {
    flex-basis: calc((100vw - 10vw - 60px) / 2) !important;
    width: calc((100vw - 10vw - 60px) / 2) !important;
  }
}
@media (max-width: 767px) {
  .product-slider-section .product-slider-section { padding: 0 !important; }
  .product-slider-section .product-slider-track > ul.products {
    gap: 16px !important;
  }
  .product-slider-section .product-slider-track > ul.products > li.product {
    flex: 0 0 calc(100vw - 64px) !important;
    width: calc(100vw - 64px) !important;
    min-width: calc(100vw - 64px) !important;
  }
  .product-slider-section .slider-btn {
    width: 38px;
    height: 38px;
  }
}

/* VARIABLE PRODUCTS
   Native WooCommerce controls are deliberately kept available as the
   functional source of truth. A third-party swatch layer may enhance them,
   but cannot hide Size/Color completely. */
.sp-form form.variations_form,
.sp-form .variations {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.sp-form .variations tr,
.sp-form .variations td {
  display: block !important;
  width: 100% !important;
}
.sp-form .variations select {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  clip: auto !important;
  width: 100% !important;
  min-height: 46px !important;
}

.ombre-product-attributes {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(35,70,70,.12);
  background: rgba(255,255,255,.55);
}
.ombre-product-attributes p {
  margin: 4px 0;
  font-size: 12px;
}


/* Selectable Size/Color fallback for existing Simple Products only. */
.sp-form .ombre-product-selectors {
  display: grid;
  gap: 16px;
  margin: 0 0 18px;
}
.sp-form .ombre-product-selector label {
  display: block;
  margin-bottom: 8px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal-dark);
}
.sp-form .ombre-product-selector select {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  width: 100% !important;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid rgba(35,70,70,.18);
  background: #fff;
  color: var(--teal-dark);
  font-size: 12px;
}


/* =========================================================
   UNLAUNCHED CATEGORY — COMING SOON
   Scoped exclusively to empty Ombrellia launch categories.
   ========================================================= */
.ombre-coming-soon-category {
  max-width: 1600px;
  margin: 0 auto;
  padding: clamp(70px, 10vw, 150px) 5%;
  text-align: center;
}
.ombre-coming-soon-inner {
  max-width: 620px;
  margin: 0 auto;
}
.ombre-coming-soon-inner .eyebrow {
  margin-bottom: 20px;
}
.ombre-coming-soon-inner h2 {
  margin: 0;
  font-family: var(--font-display, serif);
  font-size: clamp(42px, 7vw, 88px);
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1;
}
.ombre-coming-soon-copy {
  margin: 24px 0 32px;
  line-height: 1.8;
  font-size: 13px;
}
.ombre-coming-soon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid currentColor;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.8px;
  text-decoration: none;
  transition: opacity .2s ease;
}
.ombre-coming-soon-link:hover { opacity: .72; }

@media (max-width: 767px) {
  .ombre-coming-soon-category {
    padding: 72px 24px;
  }
}


/* MOBILE ONLY — keep the search icon aligned within the header controls,
   rather than allowing it to sit above the centered Ombrellia wordmark. */
@media (max-width: 767px) {
  .ombre-header .header-actions,
  .ombre-header .header-icons,
  .ombre-header .header-right,
  .site-header .header-actions,
  .site-header .header-icons {
    position: relative !important;
    z-index: 2 !important;
  }

  .ombre-header .search-toggle,
  .ombre-header .search-icon,
  .site-header .search-toggle,
  .site-header .search-icon,
  button.search-toggle {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
}


/* Narrow mobile screens: reserve separate physical space for the centred logo
   and the right-side action icons, preventing the search icon from crossing
   over the Ombrellia wordmark. Desktop/tablet remain untouched. */
@media (max-width: 480px) {
  .ombre-header .header-inner {
    min-height: 58px !important;
    height: 58px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .ombre-header .header-centre .logo-text {
    font-size: 16px !important;
    letter-spacing: 2px !important;
  }

  .ombre-header .header-centre .logo-img {
    max-width: 125px !important;
    height: auto !important;
  }

  .ombre-header .header-actions {
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }

  .ombre-header .hdr-icon {
    width: 28px !important;
    height: 34px !important;
    flex: 0 0 28px !important;
  }

  .ombre-header .hdr-icon svg {
    width: 16px !important;
    height: 16px !important;
  }
}


/* MOBILE ONLY — structural header alignment.
   The desktop header centres the logo with absolute positioning. On phones,
   the search/account/cart controls can then cross into the logo area.
   Use three independent columns only on mobile; desktop/tablet are unchanged. */
@media (max-width: 767px) {
  .ombre-header .header-inner {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: initial !important;
    column-gap: 6px !important;
  }

  .ombre-header .header-left {
    grid-column: 1 !important;
    flex: none !important;
    min-width: 0 !important;
  }

  .ombre-header .header-centre {
    grid-column: 2 !important;
    position: static !important;
    left: auto !important;
    transform: none !important;
    width: auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    justify-content: center !important;
  }

  .ombre-header .header-centre > a {
    display: block !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .ombre-header .header-right {
    grid-column: 3 !important;
    flex: none !important;
    min-width: 0 !important;
    gap: 0 !important;
  }

  .ombre-header .header-actions {
    display: flex !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }

  .ombre-header .hdr-icon {
    position: relative !important;
    flex: 0 0 auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
}

@media (max-width: 480px) {
  .ombre-header .header-inner {
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    column-gap: 3px !important;
  }

  .ombre-header .header-centre .logo-text {
    font-size: 17px !important;
    letter-spacing: 1.5px !important;
    white-space: nowrap !important;
  }

  .ombre-header .header-centre .logo-img {
    max-width: 120px !important;
    max-height: 32px !important;
  }

  .ombre-header .hdr-icon {
    width: 27px !important;
    height: 34px !important;
  }
}


/* =========================================================
   MOBILE CHROME — TARGETED FIXES ONLY
   1. Keep all three header actions outside the logo area.
   2. Restore the intended two-column category grid on phones.
   Desktop and tablet rules are not affected.
   ========================================================= */
@media screen and (max-width: 767px) {
  /* The earlier global 4-column rule used !important and was overriding
     responsive.css. Explicitly restore the mobile layout. */
  .ombre-categories-section .category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .ombre-categories-section .category-card {
    min-width: 0 !important;
    width: auto !important;
  }

  /* Reserve a fixed action column so Search cannot enter the logo column. */
  .ombre-header .header-inner {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 90px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .ombre-header .header-left {
    grid-column: 1 !important;
    width: 40px !important;
  }

  .ombre-header .header-centre {
    grid-column: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-align: center !important;
  }

  .ombre-header .header-centre > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Covers both the text logo and a custom uploaded logo image. */
  .ombre-header .header-centre .logo-text {
    display: block !important;
    max-width: 100% !important;
    font-size: 18px !important;
    letter-spacing: 2px !important;
    white-space: nowrap !important;
  }

  .ombre-header .header-centre .logo-img {
    display: block !important;
    width: auto !important;
    max-width: 150px !important;
    max-height: 34px !important;
    object-fit: contain !important;
  }

  .ombre-header .header-right {
    grid-column: 3 !important;
    width: 90px !important;
    min-width: 90px !important;
    justify-content: flex-end !important;
    overflow: visible !important;
  }

  .ombre-header .header-actions {
    display: flex !important;
    width: 90px !important;
    min-width: 90px !important;
    justify-content: flex-end !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }

  .ombre-header .hdr-icon,
  .ombre-header .search-toggle {
    width: 30px !important;
    min-width: 30px !important;
    height: 36px !important;
    margin: 0 !important;
    flex: 0 0 30px !important;
  }
}

@media screen and (max-width: 480px) {
  .ombre-header .header-inner {
    grid-template-columns: 36px minmax(0, 1fr) 84px !important;
    column-gap: 0 !important;
  }

  .ombre-header .header-left {
    width: 36px !important;
  }

  .ombre-header .header-right,
  .ombre-header .header-actions {
    width: 84px !important;
    min-width: 84px !important;
  }

  .ombre-header .hdr-icon,
  .ombre-header .search-toggle {
    width: 28px !important;
    min-width: 28px !important;
    flex-basis: 28px !important;
  }

  .ombre-header .header-centre .logo-text {
    font-size: 17px !important;
    letter-spacing: 1.5px !important;
  }

  .ombre-header .header-centre .logo-img {
    max-width: 135px !important;
    max-height: 32px !important;
  }
}


/* =========================================================
   OMBRELLIA MY ACCOUNT — EXACT REFERENCE LAYOUT
   Logged-out account page only. One scoped component, no
   changes to the rest of the theme or WooCommerce functionality.
   ========================================================= */

body.woocommerce-account:not(.logged-in) .woocommerce {
  max-width: 1340px !important;
  margin: 56px auto 78px !important;
  padding: 0 48px !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce > h1,
body.woocommerce-account:not(.logged-in) .entry-title {
  margin: 0 0 62px !important;
  color: #182424 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 46px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
}

/* Desktop/tablet layout: two equal, calm columns. */
body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  column-gap: 72px !important;
  align-items: stretch !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
  width: auto !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 0 20px !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
  border-left: 1px solid #d6dddd !important;
  padding-left: 72px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1 > h2,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 > h2 {
  margin: 0 0 42px !important;
  color: #182424 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
}

/* Remove all inherited form-card appearance. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-row {
  width: 100% !important;
  margin: 0 0 32px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login label:not(.woocommerce-form-login__rememberme),
body.woocommerce-account:not(.logged-in) .woocommerce-form-register label {
  display: block !important;
  margin: 0 0 10px !important;
  color: #202a2a !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: .25px !important;
  text-transform: none !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="text"],
body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="password"],
body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="email"],
body.woocommerce-account:not(.logged-in) .woocommerce-form-register input[type="email"],
body.woocommerce-account:not(.logged-in) .woocommerce-form-register input[type="password"] {
  display: block !important;
  width: 100% !important;
  height: 68px !important;
  min-height: 68px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 1px solid #aeb9b9 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

/* Bulletproof checkbox implementation.
   Hide the browser/theme checkbox completely and render one clean square
   before the label text, preventing the rogue floating square seen earlier. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #273131 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 25px !important;
  cursor: pointer !important;
  position: relative !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"] {
  display: none !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span {
  display: inline-flex !important;
  align-items: center !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span::before {
  content: "" !important;
  display: inline-block !important;
  width: 23px !important;
  height: 23px !important;
  margin: 0 16px 0 0 !important;
  border: 1px solid #9ea9a9 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  flex: 0 0 23px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"]:checked + span::before {
  background: #173232 !important;
  border-color: #173232 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"]:checked + span::after {
  content: "✓" !important;
  position: absolute !important;
  left: 5px !important;
  top: 0 !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 23px !important;
}

/* Login action row */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row:last-of-type {
  display: flex !important;
  align-items: center !important;
  margin: 26px 0 0 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-button,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register .woocommerce-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 336px !important;
  max-width: 100% !important;
  height: 62px !important;
  min-height: 62px !important;
  margin: 0 !important;
  padding: 0 28px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #102d2d !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3.5px !important;
  text-transform: uppercase !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword {
  margin: 30px 0 0 !important;
  color: #273131 !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword a {
  color: #273131 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* Register information follows the reference without a card or excess framing. */
body.woocommerce-account:not(.logged-in) .woocommerce-privacy-policy-text {
  margin: 34px 0 40px !important;
  padding: 0 !important;
  max-width: 100% !important;
  color: #273131 !important;
  border: 0 !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-privacy-policy-text a {
  color: inherit !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* Mobile: same visual language, naturally stacked. */
@media screen and (max-width: 767px) {
  body.woocommerce-account:not(.logged-in) .woocommerce {
    margin: 38px auto 60px !important;
    padding: 0 22px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce > h1,
  body.woocommerce-account:not(.logged-in) .entry-title {
    margin-bottom: 42px !important;
    font-size: 38px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
    grid-template-columns: 1fr !important;
    row-gap: 52px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    border-left: 0 !important;
    border-top: 1px solid #d6dddd !important;
    padding: 48px 0 0 !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column1 > h2,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 > h2 {
    margin-bottom: 30px !important;
    font-size: 31px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="text"],
  body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="password"],
  body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="email"],
  body.woocommerce-account:not(.logged-in) .woocommerce-form-register input[type="email"],
  body.woocommerce-account:not(.logged-in) .woocommerce-form-register input[type="password"] {
    height: 58px !important;
    min-height: 58px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-button,
  body.woocommerce-account:not(.logged-in) .woocommerce-form-register .woocommerce-button {
    width: 100% !important;
  }
}


/* =========================================================
   OMBRELLIA ACCOUNT — SCREENSHOT ALIGNMENT CORRECTION
   Targeted correction for narrow form controls and stray form artifacts.
   ========================================================= */

/* The theme was constraining WooCommerce form children independently.
   Force every direct form layer to use the actual column width. */
body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2,
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register {
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login > p,
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register > p,
body.woocommerce-account:not(.logged-in) .woocommerce .form-row {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
}

/* Reset legacy column sizing used by some WooCommerce/theme form-row classes. */
body.woocommerce-account:not(.logged-in) .woocommerce .form-row-first,
body.woocommerce-account:not(.logged-in) .woocommerce .form-row-last {
  width: 100% !important;
  float: none !important;
}

/* Full, consistent controls within each account column. */
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login input[type="text"],
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login input[type="password"],
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login input[type="email"],
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register input[type="email"],
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register input[type="password"] {
  width: 100% !important;
  max-width: none !important;
}

/* Remove inherited decorative pseudo-elements that can create the tiny dot/
   floating square seen in previous versions. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login p::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login p::after,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login label::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login label::after {
  box-shadow: none !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme::after,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme span::after {
  content: none !important;
  display: none !important;
}

/* One normal, correctly aligned checkbox—nothing floating separately. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 0 24px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-block !important;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  transform: none !important;
  border: 1px solid #9ea9a9 !important;
  background: #fff !important;
  box-shadow: none !important;
  flex: 0 0 18px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"]:checked {
  background: #173232 !important;
  border-color: #173232 !important;
}

/* Use the actual column width for actions, rather than a narrow inherited width. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-button,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register .woocommerce-button {
  width: 100% !important;
  max-width: 100% !important;
}

/* More balanced desktop proportions matching a premium account page. */
@media screen and (min-width: 768px) {
  body.woocommerce-account:not(.logged-in) .woocommerce {
    max-width: 1160px !important;
    padding: 0 32px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
    grid-template-columns: minmax(420px, 1fr) minmax(420px, 1fr) !important;
    column-gap: 68px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    padding-left: 68px !important;
  }
}

/* Mobile/tablet: preserve full-width controls and clean stacking. */
@media screen and (max-width: 767px) {
  body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login,
  body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register {
    width: 100% !important;
  }
}


/* =========================================================
   OMBRELLIA ACCOUNT — MOBILE CHECKBOX ARTIFACT FIX
   Removes the duplicate/floating square caused by older
   checkbox pseudo-element rules. Logged-out account only.
   ========================================================= */

/* Kill every legacy generated checkbox box on the text span. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span::after,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme::after {
  content: none !important;
  display: none !important;
}

/* Keep exactly one real checkbox, aligned directly with Remember me. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  height: auto !important;
  min-height: 22px !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
  position: static !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  opacity: 1 !important;
  clip: auto !important;
  clip-path: none !important;
  box-shadow: none !important;
  flex: 0 0 18px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}

/* Prevent the button/action row from inheriting absolute positioning on mobile. */
@media screen and (max-width: 767px) {
  body.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row,
  body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-row {
    position: static !important;
  }
}


/* =========================================================
   OMBRELLIA — MY ACCOUNT RESPONSIVE FINAL CORRECTION
   One consistent system for laptop, tablet and mobile Chrome.
   This block intentionally wins over previous account overrides.
   ========================================================= */

body.woocommerce-account:not(.logged-in) .woocommerce {
  width: min(1120px, calc(100% - 48px)) !important;
  max-width: 1120px !important;
  margin: 52px auto 72px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Clean page title */
body.woocommerce-account:not(.logged-in) .woocommerce > h1,
body.woocommerce-account:not(.logged-in) .entry-title {
  margin: 0 0 48px !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  line-height: 1.15 !important;
}

/* Laptop / wide tablet */
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 56px 0 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
  border-left: 1px solid #d3dada !important;
  padding: 0 0 0 56px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1 > h2,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 > h2 {
  margin: 0 0 28px !important;
  font-size: clamp(28px, 2.4vw, 36px) !important;
  line-height: 1.15 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register,
body.woocommerce-account:not(.logged-in) .woocommerce .form-row {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .form-row {
  float: none !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce label:not(.woocommerce-form-login__rememberme) {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce input[type="text"],
body.woocommerce-account:not(.logged-in) .woocommerce input[type="email"],
body.woocommerce-account:not(.logged-in) .woocommerce input[type="password"] {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 58px !important;
  min-height: 58px !important;
  padding: 10px 14px !important;
  box-sizing: border-box !important;
}

/* EXACTLY ONE CHECKBOX: remove every theme-generated duplicate and
   make the native control participate normally in the flex row. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme,
body.woocommerce-account:not(.logged-in) label.woocommerce-form-login__rememberme {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: auto !important;
  height: 22px !important;
  min-height: 22px !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  overflow: visible !important;
  position: static !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme::after,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span::before,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span::after {
  content: none !important;
  display: none !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: block !important;
  visibility: visible !important;
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  float: none !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #9fa9a9 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  flex: 0 0 18px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme input[type="checkbox"]:checked {
  background: #173232 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme > span {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 22px !important;
}

/* Buttons and links stay on their own clean lines. */
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-button,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register .woocommerce-button {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  height: 58px !important;
  min-height: 58px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword {
  margin: 24px 0 0 !important;
  font-size: 16px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-privacy-policy-text {
  margin: 26px 0 28px !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

/* Normal mobile Chrome: compact, full-width and stacked. */
@media screen and (max-width: 767px) {
  body.woocommerce-account:not(.logged-in) .woocommerce {
    width: calc(100% - 44px) !important;
    margin: 38px auto 56px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
    display: block !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    margin-top: 52px !important;
    padding-top: 44px !important;
    border-top: 1px solid #d3dada !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column1 > h2,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 > h2 {
    margin-bottom: 24px !important;
    font-size: 30px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce input[type="text"],
  body.woocommerce-account:not(.logged-in) .woocommerce input[type="email"],
  body.woocommerce-account:not(.logged-in) .woocommerce input[type="password"] {
    height: 54px !important;
    min-height: 54px !important;
  }
}

/* Chrome "Desktop site" on a phone often reports a tablet-sized viewport.
   Keep proportions controlled rather than letting the account content stretch. */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  body.woocommerce-account:not(.logged-in) .woocommerce {
    width: min(920px, calc(100% - 56px)) !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column1 {
    padding-right: 36px !important;
  }

  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    padding-left: 36px !important;
  }
}


/* =========================================================
   OMBRELLIA — COMING SOON CATEGORY PAGE ALIGNMENT FIX
   Targeted correction only for the existing category Coming Soon block.
   No changes to header, account, products, or other theme sections.
   ========================================================= */

.ombrellia-coming-soon,
.ombrellia-coming-soon-page,
.coming-soon-category {
  max-width: 1180px !important;
  margin: 64px auto 96px !important;
  padding: 64px 48px 72px !important;
  box-sizing: border-box !important;
  text-align: center !important;
}

.ombrellia-coming-soon > *,
.ombrellia-coming-soon-page > *,
.coming-soon-category > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

.ombrellia-coming-soon h1,
.ombrellia-coming-soon-page h1,
.coming-soon-category h1 {
  margin-top: 12px !important;
  margin-bottom: 16px !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(38px, 5vw, 68px) !important;
  line-height: 1.05 !important;
  letter-spacing: .02em !important;
}

.ombrellia-coming-soon p,
.ombrellia-coming-soon-page p,
.coming-soon-category p {
  max-width: 620px !important;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}

.ombrellia-coming-soon a,
.ombrellia-coming-soon-page a,
.coming-soon-category a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  margin-top: 24px !important;
  padding: 0 30px !important;
  background: #173232 !important;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 2.2px !important;
}

@media screen and (max-width: 767px) {
  .ombrellia-coming-soon,
  .ombrellia-coming-soon-page,
  .coming-soon-category {
    margin: 34px auto 64px !important;
    padding: 48px 22px 56px !important;
  }
}


/* =========================================================
   MOBILE COMING SOON — TARGETED RESPONSIVE CORRECTION
   Applies only to the existing empty-category Coming Soon block.
   Desktop/tablet and all other sections remain unchanged.
   ========================================================= */
@media screen and (max-width: 767px) {
  .ombre-coming-soon-category {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 48px 24px 64px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .ombre-coming-soon-category .ombre-coming-soon-inner {
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .ombre-coming-soon-category .eyebrow {
    display: block !important;
    margin: 0 0 18px !important;
    font-size: 9px !important;
    line-height: 1.4 !important;
  }

  .ombre-coming-soon-category .ombre-coming-soon-inner h2 {
    display: block !important;
    margin: 0 !important;
    font-size: clamp(48px, 15vw, 72px) !important;
    line-height: .98 !important;
    letter-spacing: .025em !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .ombre-coming-soon-category .ombre-coming-soon-copy {
    display: block !important;
    margin: 28px auto 30px !important;
    max-width: 330px !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
  }

  .ombre-coming-soon-category .ombre-coming-soon-link {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    min-height: 50px !important;
    margin: 0 auto !important;
    padding: 0 22px !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    text-align: center !important;
  }
}


/* =========================================================
   OMBRELLIA — UNIVERSAL PRODUCT VARIATION LAYOUT
   Applies only to WooCommerce variable-product selectors.
   Existing and future variable products use one consistent layout.
   ========================================================= */
.single-product form.variations_form table.variations,
.single-product form.variations_form .variations {
    width: 100% !important;
    max-width: none !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 20px !important;
    margin: 30px 0 14px !important;
}

.single-product form.variations_form table.variations tr {
    display: grid !important;
    grid-template-columns: 105px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 16px !important;
}

.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
    display: block !important;
    width: auto !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.single-product form.variations_form table.variations th.label label {
    display: block !important;
    margin: 0 !important;
    color: inherit !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 4px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

.single-product form.variations_form table.variations td.value {
    position: relative !important;
    min-width: 0 !important;
}

.single-product form.variations_form table.variations td.value select {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 66px !important;
    margin: 0 !important;
    padding: 0 52px 0 28px !important;
    border: 1px solid rgba(25, 54, 54, .16) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: normal !important;
    box-sizing: border-box !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
}

.single-product form.variations_form table.variations td.value .reset_variations {
    display: inline-block !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: inherit !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}

/* Keep the standard quantity and Add to Cart controls separate from attributes. */
.single-product form.variations_form .single_variation_wrap,
.single-product form.variations_form .woocommerce-variation-add-to-cart {
    width: 100% !important;
    box-sizing: border-box !important;
}

@media screen and (max-width: 767px) {
    .single-product form.variations_form table.variations,
    .single-product form.variations_form .variations {
        border-spacing: 0 18px !important;
        margin-top: 28px !important;
    }

    .single-product form.variations_form table.variations tr {
        grid-template-columns: 105px minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    .single-product form.variations_form table.variations th.label label {
        font-size: 11px !important;
        letter-spacing: 3.5px !important;
    }

    .single-product form.variations_form table.variations td.value select {
        height: 64px !important;
        padding-left: 24px !important;
        padding-right: 42px !important;
        font-size: 16px !important;
    }
}

@media screen and (max-width: 420px) {
    .single-product form.variations_form table.variations tr {
        grid-template-columns: 96px minmax(0, 1fr) !important;
        gap: 12px !important;
    }
}


/* =========================================================
   OMBRELLIA — FINAL UNIVERSAL VARIATION CONSISTENCY FIX
   One identical Size/Color layout on every product and device.
   ========================================================= */

/* Force WooCommerce's variation table into one consistent structure */
.single-product .sp-form form.variations_form table.variations,
.single-product .sp-form form.variations_form .variations {
    width: 100% !important;
    max-width: none !important;
    margin: 28px 0 14px !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
}

.single-product .sp-form form.variations_form table.variations tbody {
    display: block !important;
    width: 100% !important;
}

.single-product .sp-form form.variations_form table.variations tr {
    display: grid !important;
    grid-template-columns: 105px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 16px !important;
    row-gap: 0 !important;
    width: 100% !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
}

.single-product .sp-form form.variations_form table.variations th,
.single-product .sp-form form.variations_form table.variations td,
.single-product .sp-form form.variations_form .variations th,
.single-product .sp-form form.variations_form .variations td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    vertical-align: middle !important;
    text-align: left !important;
}

.single-product .sp-form form.variations_form .variations th.label,
.single-product .sp-form form.variations_form .variations td.label {
    align-self: center !important;
}

.single-product .sp-form form.variations_form .variations th.label label,
.single-product .sp-form form.variations_form .variations .label label {
    display: block !important;
    margin: 0 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 4px !important;
    text-transform: uppercase !important;
}

.single-product .sp-form form.variations_form .variations td.value {
    position: relative !important;
    width: 100% !important;
}

.single-product .sp-form form.variations_form .variations td.value select,
.single-product .sp-form form.variations_form .variations select {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 66px !important;
    margin: 0 !important;
    padding: 0 48px 0 28px !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(25,54,54,.16) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: normal !important;
}

.single-product .sp-form form.variations_form .reset_variations {
    display: inline-block !important;
    grid-column: 2 !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
}

@media screen and (max-width: 767px) {
    .single-product .sp-form form.variations_form table.variations,
    .single-product .sp-form form.variations_form .variations {
        width: 100% !important;
        margin-top: 24px !important;
    }

    .single-product .sp-form form.variations_form table.variations tr {
        grid-template-columns: 105px minmax(0, 1fr) !important;
        column-gap: 16px !important;
        margin-bottom: 16px !important;
    }

    .single-product .sp-form form.variations_form .variations th.label label {
        font-size: 11px !important;
        letter-spacing: 3.5px !important;
    }

    .single-product .sp-form form.variations_form .variations td.value select,
    .single-product .sp-form form.variations_form .variations select {
        height: 64px !important;
        padding-left: 24px !important;
        font-size: 16px !important;
    }
}

@media screen and (max-width: 420px) {
    .single-product .sp-form form.variations_form table.variations tr {
        grid-template-columns: 96px minmax(0, 1fr) !important;
        column-gap: 12px !important;
    }
}


/* =========================================================
   OMBRELLIA — UNIVERSAL PRODUCT OPTIONS STANDARD
   Applies the same stacked Size/Color format to ALL variable
   WooCommerce products, including products added in the future.
   ========================================================= */

.single-product form.variations_form table.variations,
.single-product form.variations_form .variations {
    width: 100% !important;
    max-width: none !important;
    display: table !important;
    margin: 22px 0 12px !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 14px !important;
}

.single-product form.variations_form table.variations tbody {
    display: table-row-group !important;
}

.single-product form.variations_form table.variations tr,
.single-product form.variations_form .variations tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
}

.single-product form.variations_form .variations th,
.single-product form.variations_form .variations td {
    display: table-cell !important;
    width: auto !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Each attribute becomes a clean, full-width stacked block */
.single-product form.variations_form table.variations tr {
    position: relative !important;
}

.single-product form.variations_form table.variations th.label {
    display: block !important;
    width: 100% !important;
    padding: 0 0 7px !important;
}

.single-product form.variations_form table.variations td.value {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.single-product form.variations_form .variations .label label {
    display: block !important;
    margin: 0 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
}

.single-product form.variations_form .variations td.value select,
.single-product form.variations_form .variations select {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 42px 0 16px !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(25,54,54,.16) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 13px !important;
    line-height: normal !important;
}

/* Keep Clear/reset directly below the options and prevent layout shifts */
.single-product form.variations_form .reset_variations {
    display: inline-block !important;
    margin: 4px 0 14px !important;
    padding: 0 !important;
    font-size: 14px !important;
}

/* Identical behaviour on mobile, tablet and desktop */
@media (max-width: 767px) {
    .single-product form.variations_form table.variations,
    .single-product form.variations_form .variations {
        width: 100% !important;
        border-spacing: 0 14px !important;
    }

    .single-product form.variations_form .variations td.value select,
    .single-product form.variations_form .variations select {
        width: 100% !important;
        height: 48px !important;
        font-size: 13px !important;
    }
}


/* =========================================================
   OMBRELLIA — ALL DEVICES LAYOUT LOCK
   FINAL OVERRIDE: same product option layout on every viewport,
   including normal mobile Chrome and Chrome "Desktop site" mode.
   ========================================================= */

.single-product .product form.variations_form,
.single-product .sp-form form.variations_form {
    width: 100% !important;
    max-width: none !important;
}

.single-product .product form.variations_form table.variations,
.single-product .sp-form form.variations_form table.variations {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 20px 0 12px !important;
    border: 0 !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
}

.single-product .product form.variations_form table.variations tbody,
.single-product .sp-form form.variations_form table.variations tbody {
    display: block !important;
    width: 100% !important;
}

.single-product .product form.variations_form table.variations tr,
.single-product .sp-form form.variations_form table.variations tr {
    display: block !important;
    width: 100% !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
}

.single-product .product form.variations_form table.variations th.label,
.single-product .sp-form form.variations_form table.variations th.label,
.single-product .product form.variations_form table.variations td.value,
.single-product .sp-form form.variations_form table.variations td.value {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-sizing: border-box !important;
    text-align: left !important;
}

.single-product .product form.variations_form table.variations th.label,
.single-product .sp-form form.variations_form table.variations th.label {
    padding-bottom: 7px !important;
}

.single-product .product form.variations_form table.variations th.label label,
.single-product .sp-form form.variations_form table.variations th.label label {
    display: block !important;
    margin: 0 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 3px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

.single-product .product form.variations_form table.variations td.value select,
.single-product .sp-form form.variations_form table.variations td.value select {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 42px 0 16px !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(25,54,54,.16) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    font-size: 13px !important;
}

/* Clear remains below the Size/Color fields */
.single-product .product form.variations_form .reset_variations,
.single-product .sp-form form.variations_form .reset_variations {
    display: inline-block !important;
    margin: -4px 0 14px !important;
}

/* No breakpoint changes to the option layout */
@media (min-width: 768px), (max-width: 767px) {
    .single-product .product form.variations_form table.variations,
    .single-product .sp-form form.variations_form table.variations,
    .single-product .product form.variations_form table.variations tr,
    .single-product .sp-form form.variations_form table.variations tr {
        width: 100% !important;
    }
}


/* =========================================================
   OMBRELLIA — PRODUCT OPTIONS DEVICE-INDEPENDENT FIX
   ONLY variable-product Color/Size fields are affected.
   ========================================================= */

.single-product form.variations_form table.variations,
.single-product form.variations_form .variations {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 22px 0 12px !important;
    padding: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
}

.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product form.variations_form table.variations tr {
    margin-bottom: 18px !important;
}

/* Force label ABOVE the selector — never beside it */
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td,
.single-product form.variations_form table.variations th.label,
.single-product form.variations_form table.variations td.value {
    display: block !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-sizing: border-box !important;
    text-align: left !important;
}

.single-product form.variations_form table.variations th.label {
    padding-bottom: 8px !important;
}

.single-product form.variations_form table.variations th.label label {
    display: block !important;
    margin: 0 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
}

/* One fixed full-width control format for every attribute */
.single-product form.variations_form table.variations td.value > select,
.single-product form.variations_form table.variations td.value select,
.single-product form.variations_form select[name^="attribute_"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 48px !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 42px 0 16px !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(25,54,54,.16) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 13px !important;
}

/* Keep reset below the option fields without changing cart layout */
.single-product form.variations_form .reset_variations {
    display: inline-block !important;
    margin: 4px 0 0 !important;
    float: none !important;
}

/* Explicitly repeat the SAME structure at mobile widths so theme breakpoints
   cannot switch the fields back to an inline table layout. */
@media screen and (max-width: 767px) {
    .single-product form.variations_form table.variations,
    .single-product form.variations_form table.variations tbody,
    .single-product form.variations_form table.variations tr,
    .single-product form.variations_form table.variations th,
    .single-product form.variations_form table.variations td,
    .single-product form.variations_form table.variations th.label,
    .single-product form.variations_form table.variations td.value {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        float: none !important;
        clear: both !important;
    }

    .single-product form.variations_form table.variations td.value > select,
    .single-product form.variations_form table.variations td.value select,
    .single-product form.variations_form select[name^="attribute_"] {
        width: 100% !important;
        max-width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
    }
}


/* =========================================================
   FOOTER BRAND REFINEMENT
   Scope: Ombrellia footer logo + tagline only.
   Keeps the approved footer layout unchanged.
   ========================================================= */
.ombre-footer .footer-brand {
  text-align: center;
}

.ombre-footer .footer-brand .custom-logo-link,
.ombre-footer .footer-brand .footer-logo-link {
  display: inline-block;
  line-height: 0;
  cursor: pointer;
  margin: 0 auto 24px;
}

.ombre-footer .footer-brand .custom-logo,
.ombre-footer .footer-brand .footer-logo {
  display: block;
  width: 100%;
  max-width: 300px;
  height: auto;
  margin: 0 auto;
}

/* Premium two-line tagline: both lines centered beneath the logo. */
.ombre-footer .footer-brand .footer-tagline {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: .15px;
  color: rgba(255,255,255,.84);
}

.ombre-footer .footer-brand .footer-tagline-main,
.ombre-footer .footer-brand .footer-tagline-sub {
  display: block;
  width: 100%;
  text-align: center;
}

.ombre-footer .footer-brand .footer-tagline-main {
  font-size: clamp(17px, 1.35vw, 22px);
  white-space: nowrap;
}

.ombre-footer .footer-brand .footer-tagline-sub {
  margin-top: 7px;
  font-size: clamp(18px, 1.45vw, 23px);
}

@media (max-width: 768px) {
  .ombre-footer .footer-brand .custom-logo,
  .ombre-footer .footer-brand .footer-logo {
    max-width: 260px;
  }

  .ombre-footer .footer-brand .footer-tagline {
    max-width: calc(100vw - 40px);
  }

  .ombre-footer .footer-brand .footer-tagline-main {
    font-size: clamp(11px, 3.15vw, 17px);
  }

  .ombre-footer .footer-brand .footer-tagline-sub {
    font-size: clamp(17px, 4.6vw, 21px);
    margin-top: 6px;
  }
}


/* Footer bottom clarity refinement — requested update only */
.ombre-footer .footer-bottom {
  font-size: 12px !important;
  letter-spacing: 1.35px !important;
  color: rgba(255,255,255,.62) !important;
  line-height: 1.5;
}
.ombre-footer .footer-bottom > span,
.ombre-footer .footer-trademark span {
  font-size: inherit;
  color: inherit;
}
.ombre-footer .footer-trademark {
  pointer-events: none;
  cursor: default;
  user-select: none;
}
@media (max-width: 767px) {
  .ombre-footer .footer-bottom {
    font-size: 11px !important;
    letter-spacing: 1.1px !important;
  }
}

/* Product page image hover zoom */
@media (min-width: 769px) {
  .sp-main-img-wrap { cursor: zoom-in; }
  .sp-main-img-wrap .sp-slide { overflow: hidden; }
  .sp-main-img-wrap .sp-main-img {
    transition: transform .18s ease-out;
    transform-origin: center center;
    will-change: transform;
  }
  .sp-main-img-wrap.is-zooming .sp-main-img { transform: scale(1.65); }
}


/* Product image zoom on mobile: tap image to zoom, tap again to reset */
@media (max-width: 768px) {
  .sp-main-img-wrap {
    cursor: zoom-in;
  }
  .sp-main-img-wrap .sp-slide {
    overflow: hidden;
  }
  .sp-main-img-wrap .sp-main-img {
    transition: transform .2s ease-out;
    transform-origin: center center;
    will-change: transform;
  }
  .sp-main-img-wrap.is-zooming .sp-main-img {
    transform: scale(1.8);
  }
  .sp-main-img-wrap.is-zooming {
    cursor: zoom-out;
  }
}

/* Mobile product image zoom — reinforced for touch devices */
@media (max-width: 768px) {
  .sp-main-img-wrap { touch-action: manipulation; }
  .sp-main-img-wrap.is-zooming .sp-slide.active .sp-main-img {
    transform: scale(1.8) !important;
  }
}
