/*
  global.css — Woo + Elementor (Figma-derived)
  ---------------------------------------------
  Elementor "Disable Default Colours" + "Disable Default Fonts" = ON
  - Typography system: Figma tokens
  - Sections overlap by 20px with 20px top radii
  - On-brand coffee bg under overlays, auto-disables on manual bg
*/
/* 0) Font */
@font-face{
  font-family:'Gabarito';
  src:
    url('../fonts/gabarito/Gabarito-Variable.woff2') format('woff2-variations'),
    url('../fonts/gabarito/Gabarito-Variable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
/* Layer order */
@layer base, components, utilities;
/* ========== BASE (tokens + resets + baseline) ========== */
@layer base {
  :root {
    /* Colours (tokens) */
    --c-brand:#0B4566;
    --c-accent:#E8F0FF;
    --c-text:var(--c-brand);
    --c-bg:#E8F0FF;
    --c-surface:#fff;
    --c-muted:#E8F0FF;
    --c-border:#0B4566;
    --c-success:#138f52;
    --c-danger:#c64b4b;
    --c-warning:#b58100;
    --c-info:#245c9c;
    --c-hero-bg:#DAE7FF;
    /* Type families */
    --ff-body:"Gabarito",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --ff-head:var(--ff-body);
    /* Spacing scale (foundational) */
    --space-1:clamp(.25rem,.4167vw,.5rem);
    --space-2:clamp(.5rem,.625vw,.75rem);
    --space-3:clamp(.75rem,.8333vw,1rem);
    --space-4:clamp(1rem,1.25vw,1.5rem);
    --space-5:clamp(1.5rem,1.6667vw,2rem);
    --space-6:clamp(2rem,2.5vw,3rem);
    --space-7:clamp(3rem,3.3333vw,4rem);
    /* Typographic rhythm gaps */
    --gap-heading-standalone: clamp(1.75rem, 3.75vw, 4.5rem);
    --gap-heading-body: clamp(1rem, 1.25vw, 1.75rem);
    --gap-heading-button: clamp(1.5rem, 2.7083vw, 3.25rem);
    --gap-body-button: clamp(1.5rem, 2.0833vw, 2.5rem);
    /* Utility type scale */
    --fs-300:clamp(0.9rem,0.85rem + 0.4vw,1rem);
    --fs-400:clamp(1rem,0.95rem + 0.6vw,1.125rem);
    --fs-500:clamp(1.125rem,1rem + 1vw,1.375rem);
    --fs-600:clamp(1.35rem,1.05rem + 1.7vw,1.875rem);
    --fs-700:clamp(1.75rem,1.2rem + 3vw,2.5rem);
    --fs-800:clamp(2.25rem,1.6rem + 4vw,3.25rem);
    /* Figma type tokens */
    --ls-tight:-.05em; --ls-loose:.05em; --ls-wide:.10em;
    --lh-compact:.89;  --lh-normal:1.2;
    --fs-h1: clamp(2rem, 3.75vw, 4.5rem);
    --fs-h2: clamp(1.5rem, 2.5vw, 3rem);
    --fs-h3: clamp(1.125rem, 1.25vw, 1.5rem);
    --fs-h4: clamp(1.125rem, 1.25vw, 1.5rem);
    /* Paragraph */
    --fs-body: clamp(1rem, 0.94vw, 1.125rem);
    /* Layout */
    --site-max:1920px;
    --site-gutter-x:6.25vw;
    --site-gutter-y:4.17vw;
    --container-max:1200px;
    --container-pad:var(--space-4);
    /* Header height estimate: ~323px @1920, ~305px @1440 */
    --header-height:clamp(220px,21.35vw,335px);
    --header-clearance:calc(var(--header-height) + 6.25vw);
    /* Derived section gutters (default behavior = p4) */
    --section-gutter-x: var(--site-gutter-x);
    --section-gutter-y: var(--site-gutter-y);
    --section-pad-top: var(--section-gutter-y);
    --section-pad-bottom: calc(var(--section-gutter-y) + var(--section-overlap));
    --section-pad-inline: var(--section-gutter-x);
    /* Buttons */
    --fs-btn:clamp(12.5px, 0.94vw, 20px);
    --btn-pad-x:clamp(.875rem,1.04vw,1.25rem);
    --btn-pad-y:clamp(.5rem,.8vw,.875rem);
    --btn-radius:20px;
    /* Effects */
    --radius:15px; --radius-sm:10px; --radius-lg:22px;
    --shadow:0 10px 30px rgba(0,0,0,.06);
    --focus:0 0 0 3px color-mix(in oklab, var(--c-brand), white 75%);
    /* Section overlap/radius */
    --section-overlap:20px;
    --section-rad-tl:20px;
    --section-rad-tr:20px;
    --section-rad-br:0px;
    --section-rad-bl:0px;
    /* Optional larger paragraph-style heading (24 → 36) */
    --fs-h3-xl: clamp(1.5rem, 1.875vw, 2.25rem);
  }
  /* Double section gutters on mobile */
  @media (max-width: 480px){
    :root{
      --section-gutter-x: calc(2 * var(--site-gutter-x));
      --section-gutter-y: calc(2 * var(--site-gutter-y));
    }
  }
  /* (Overlap remains 20px on mobile) */
  /* Tablet: give extra clearance for the header */
  @media (min-width: 600px) and (max-width: 1024px){
    :root{
      --header-clearance: calc(var(--header-height) + 12.5vw);
    }
  }
  /* Reset + base */
  *,*::before,*::after{box-sizing:border-box}
  html{color-scheme:light;font-synthesis-weight:none;scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto } }
  body{
    margin:0;
    font:400 var(--fs-body)/1.55 var(--ff-body);
    color:var(--c-text);
    background:var(--c-bg);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }
  img,svg,video{display:block;max-width:100%;height:auto}
  a{
    color:var(--c-brand);
    text-decoration-thickness:.08em;
    text-underline-offset:.18em;
  }
  a:hover{ color:var(--c-brand) } /* safe default */
  @supports (color: color-mix(in oklab, black, white)){
    a:hover{ color:color-mix(in oklab,var(--c-brand),black 10%) }
  }
  button{font:inherit}
  p{
    margin-block: 0;
  }
  p + p{
    margin-block-start: .9rem;
  }
  p + h1,
  p + h2,
  p + h3,
  p + h4,
  p + h5,
  p + h6{
    margin-block-start: var(--gap-heading-body);
  }
  h1 + p,
  h2 + p,
  h3 + p,
  h4 + p,
  h5 + p,
  h6 + p{
    margin-block-start: var(--gap-heading-body);
  }
  .elementor :where(p:last-child),
  .woocommerce :where(p:last-child){
    margin-block-end: 0 !important;
  }
  /* Family + colour inheritance for common widgets */
  body,
  h1,h2,h3,h4,h5,h6,
  .elementor-widget-heading .elementor-heading-title,
  .elementor-widget-text-editor,
  .elementor-nav-menu a,
  .woocommerce, .woocommerce input, .woocommerce select, .woocommerce textarea {
    font-family: var(--ff-body);
    color: inherit;
  }
  /* Headings */
  h1,
  .elementor-widget-heading h1.elementor-heading-title{
    font-family: var(--ff-head) !important;
    font-weight: 600 !important;
    font-size: var(--fs-h1) !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
    color: var(--c-text) !important;
    text-align: center !important;
  }
  body.woocommerce-page :is(h1, .entry-title, .product_title){
    text-align:left !important;
  }
  h2,
  .elementor-widget-heading h2.elementor-heading-title{
    font-weight: 600 !important;
    font-size: var(--fs-h2) !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
    color: var(--c-text) !important;
  }
  h3,
  .elementor-widget-heading h3.elementor-heading-title{
    font-weight: 600 !important;
    font-size: var(--fs-h3) !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
    color: var(--c-text) !important;
  }
  h4,
  .elementor-widget-heading h4.elementor-heading-title{
    font-size: var(--fs-h4) !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
    color: var(--c-text) !important;
  }
  h1,h2,h3,h4,h5,h6{
    margin-block-start: 0;
    margin-block-end: 0;
  }
  .elementor-widget-heading .elementor-heading-title,
  .elementor-widget-text-editor :where(h1,h2,h3,h4,h5,h6){
    font-family: var(--ff-head) !important;
  }
  /* Larger paragraph-style heading */
  .h-p-xl,
  .is-h-p-xl,
  .elementor-element.h-p-xl .elementor-heading-title{
    font-family: var(--ff-head) !important;
    font-size: var(--fs-h3-xl) !important;
    font-weight: 600 !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
  }
  /* Upper paragraph-style heading */
  .h-p-u,
  .is-h-p-u,
  .elementor-element.h-p-u .elementor-heading-title{
    font-family: var(--ff-head) !important;
    font-size: var(--fs-body) !important;
    font-weight: 800 !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
	text-transform: uppercase;
  }
  /*Paragraph with 600 weight */
  .p-600,
  .is-p-600,
  .elementor-element.p-600 .elementor-heading-textarea{
    font-family: var(--ff-head) !important;
    font-size: var(--fs-body) !important;
    font-weight: 600 !important;
    line-height: var(--lh-compact) !important;
    letter-spacing: var(--ls-tight) !important;
  }
}
/* ========== COMPONENTS ========== */
@layer components{
  /* Gutters are applied by default via variables below */
  .container{ width:100%; max-width: var(--container-max); margin-inline:auto; padding-inline:0; }
  /* Forms */
  .woocommerce input, .woocommerce select, .woocommerce textarea,
  input, select, textarea{
    border:1px solid var(--c-brand);
    border-radius:var(--radius);
    padding:var(--space-2) var(--space-3);
    background:transparent;
    color:var(--c-brand);
  }
  .elementor-form :where(input, select, textarea){
    border:1px solid var(--c-brand);
    border-radius:var(--radius);
    background:transparent;
    color:var(--c-brand);
  }
  input::placeholder,
  select::placeholder,
  textarea::placeholder,
  .elementor-form :where(input, select, textarea)::placeholder,
  .woocommerce :where(input, select, textarea)::placeholder{
    color:color-mix(in oklab, var(--c-brand) 55%, white 45%);
  }
  .woocommerce form :where(
      input[type="text"],
      input[type="email"],
      input[type="password"],
      input[type="search"],
      input[type="tel"],
      input[type="url"],
      input[type="number"],
      select,
      textarea
    ){
    border:1px solid var(--c-brand) !important;
    border-radius:var(--radius) !important;
    background:transparent !important;
    color:var(--c-brand) !important;
  }
  .woocommerce form :where(label, legend, .woocommerce-input-wrapper > span){
    color:var(--c-brand);
  }
  input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}
  /* Notices */
  .woocommerce-info,.woocommerce-message,.woocommerce-error{
    border-radius:var(--radius);
    padding:var(--space-3) var(--space-4);
    border:2px solid var(--c-border);
    background:#fff;
    margin-block:var(--space-3)
  }
  /* Wholesale login layout */
  .wholesale-login{
    display:flex;
    justify-content:center;
    padding-inline:clamp(1.5rem, 6vw, 3rem);
    padding-block-start:max(var(--header-clearance), clamp(4rem, 12vw, 9rem));
    padding-block-end:clamp(3rem, 8vw, 6rem);
    background:color-mix(in oklab, var(--c-accent), white 35%);
  }
  .wholesale-login::before,
  .wholesale-login::after{
    content:none !important;
    display:none !important;
  }
  .wholesale-login__inner{}
  .wholesale-login__panel{
    --panel-bg:transparent;
    background:transparent;
    border:0;
    border-radius:0;
    padding:0;
  }
  .wholesale-login__form{
    display:grid;
    gap:0;
  }
  .wholesale-login__title{
    margin:0;
    font-size:clamp(2rem, 2.6vw, 2.75rem);
    text-align:center;
    line-height:var(--lh-compact);
  }
  .wholesale-login__welcome{
    margin:0;
    text-align:center;
    font-size:var(--fs-400);
  }
  /* Shared Woo auth/coupon forms */
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ){
    width:min(420px, 100%);
    margin-inline:auto;
    margin-block:0;
    padding:0;
    display:grid;
    gap:var(--space-3);
    justify-items:stretch;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:var(--space-4);
    padding:0;
    background:transparent;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce::before,
  body.woocommerce-account:not(.logged-in) .woocommerce::after{
    content:none !important;
    display:none !important;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce > *{
    width:100%;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns{
    width:100%;
    margin-inline:auto;
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
  }
  @media (min-width: 960px){
    body.woocommerce-account:not(.logged-in) .woocommerce .u-columns{
      flex-direction:row;
      justify-content:space-between;
      align-items:flex-start;
      gap:var(--space-5);
    }
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns > *{
    width:100%;
  }
  @media (min-width: 960px){
    body.woocommerce-account:not(.logged-in) .woocommerce .u-columns > *{
      width:33%;
      flex:0 0 33%;
    }
  }
  body.woocommerce-account:not(.logged-in) .woocommerce :where(.u-column1, .u-column2){
    padding:0;
    background:transparent;
    border:0;
    box-shadow:none;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce :where(h2, .woocommerce-form-row--wide){
    text-align:center;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce form{
    width:100%;
    margin-inline:auto;
    margin-block:0;
    padding:0;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce form.login,
  body.woocommerce-account:not(.logged-in) .woocommerce form.woocommerce-form-register.register{
    border:0 !important;
    padding:0 !important;
    margin:0 !important;
    text-align:left;
    background:transparent !important;
    box-shadow:none !important;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword{
    text-align:center;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) .form-row{
    margin:0;
    display:grid;
    gap:clamp(.55rem, 0.6vw, .75rem);
    float:none;
    width:100%;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .form-row::after,
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .form-row::before{
    display:none !important;
    content:none !important;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .form-row-first,
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .form-row-last{
    width:100%;
  }
  .woocommerce-page form .form-row-first,
  .woocommerce-page form .form-row-last{
    width:100% !important;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) label{
    font-weight:400 !important;
    text-transform:none !important;
    letter-spacing:0 !important;
    font-size:var(--fs-body) !important;
    line-height:1.55 !important;
    margin-block:0 0.35rem !important;
    color:var(--c-text) !important;
  }
  .woocommerce-page form .form-row label{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:clamp(.35rem, 0.6vw, .5rem);
  }
  :is(
      .woocommerce form.login,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .woocommerce-form-login__rememberme{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:var(--space-2);
    font-weight:400;
    text-transform:none;
    letter-spacing:0;
    margin-block-start:var(--space-2);
  }
  :is(
      .woocommerce form.login,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .woocommerce-form-login__rememberme label{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:var(--space-2);
    margin:0;
    cursor:pointer;
  }
  .woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme input{
    margin:0;
    flex-shrink:0;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .form-row .required{
    color:var(--c-brand) !important;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) :where(
      input[type="text"],
      input[type="email"],
      input[type="password"],
      input[type="search"],
      input[type="tel"],
      input[type="url"],
      input[type="number"],
      select,
      textarea
    ){
    width:100%;
    border-radius:var(--radius) !important;
    border:1px solid var(--c-brand) !important;
    background: transparent !important;
    min-height:40px;
    padding:clamp(.55rem, 1.2vw, .85rem) clamp(1rem, 1.8vw, 1.35rem);
    font-size:var(--fs-400);
    appearance:none;
    color:var(--c-brand);
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) :where(input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"], input[type="number"]){
    line-height:1.4;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) select{
    padding-right:clamp(2.25rem, 3vw, 2.75rem);
    background-image:
      linear-gradient(45deg, transparent 50%, var(--c-border) 50%),
      linear-gradient(135deg, var(--c-border) 50%, transparent 50%),
      linear-gradient(90deg, color-mix(in oklab, var(--c-surface), transparent 55%) 0%, color-mix(in oklab, var(--c-surface), transparent 55%) 100%);
    background-position:
      right 1.15rem center,
      right calc(1.15rem + 8px) center,
      right clamp(.75rem, 1.2vw, 1rem) center;
    background-size:8px 8px, 8px 8px, 2.35rem 100%;
    background-repeat:no-repeat;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) textarea{
    min-height:clamp(144px, 18vw, 220px);
    resize:vertical;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) :where(input, select, textarea)::placeholder{
    color:color-mix(in oklab, var(--c-brand), transparent 45%);
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) :where(input, select, textarea):focus-visible{
    border-color:var(--c-brand) !important;
    box-shadow:0 0 0 3px color-mix(in oklab, var(--c-brand), white 78%);
    outline:none;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) input[type="checkbox"]{
    appearance:none;
    cursor:pointer;
    width:1.1em;
    height:1.1em;
    margin:0;
    border:1.5px solid var(--c-brand);
    border-radius:4px;
    background:transparent;
    display:grid;
    place-items:center;
    transition:background-color .2s ease, border-color .2s ease;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) input[type="checkbox"]:focus-visible{
    box-shadow:0 0 0 3px color-mix(in oklab, var(--c-brand), white 78%);
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) input[type="checkbox"]::after{
    content:'';
    width:.45em;
    height:.25em;
    border:2px solid transparent;
    border-left-color:#fff;
    border-bottom-color:#fff;
    transform:rotate(-45deg) scale(0);
    transform-origin:center;
    transition:transform .2s ease;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login,
      .wholesale-login__panel .woocommerce-form-register.register
    ) input[type="checkbox"]:checked{
    background:var(--c-brand)!important;
    border-color:var(--c-brand);
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) input[type="checkbox"]:checked::after{
    transform:rotate(-45deg) scale(1);
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .password-input{
    display:grid;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .woocommerce-password-strength{
    display:none;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .show-password-input{
    inset-inline-end:clamp(.75rem, 1.5vw, 1.1rem);
    color:var(--c-brand);
  }
  :is(
      .woocommerce form.login,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .woocommerce-LostPassword{
    text-align:center;
  }
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) .button,
  :is(
      .woocommerce form.checkout_coupon,
      .woocommerce form.login,
      .woocommerce form.register,
      .wholesale-login__panel .woocommerce-form-login,
      .wholesale-login__panel .login
    ) :where(.woocommerce-form-login__submit, .woocommerce-form-register__submit, button[type="submit"]){
    --btn-bg: var(--c-brand);
    --btn-fg: #fff;
    --btn-bd: var(--c-brand);
    width:min(100%, 260px);
    justify-self:center;
    margin-block-start:var(--space-3);
    background:var(--c-brand) !important;
    color:#fff !important;
    border-color:var(--c-brand) !important;
    border-radius: var(--btn-radius);
    font-weight:700;
    letter-spacing:.08em;
  }
  .wholesale-login__actions{
    display:flex;
    flex-direction:column;
    gap: var(--space-3);
  }
  .wholesale-login__button{
    width:100%;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    border-radius: 15px;
    border:0;
    background: var(--c-brand);
    color: var(--c-accent);
    font-weight:700;
    letter-spacing:.08em;
    text-transform: uppercase;
    text-decoration:none;
    transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
  }
  .wholesale-login__button:hover,
  .wholesale-login__button:focus-visible{
    transform: translateY(-1px);
  }
  .wholesale-login__button--secondary{
    background: transparent;
    color: var(--c-brand);
    border:2px solid var(--c-border);
  }
  /* Wholesale login remember me inline */
  .wholesale-login .woocommerce-form-login__rememberme{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:var(--space-2) !important;
    margin-block-start:var(--space-2) !important;
  }
  .wholesale-login .woocommerce-form-login__rememberme label{
    display:flex !important;
    align-items:center !important;
    gap:var(--space-2) !important;
    margin:0 !important;
    cursor:pointer;
  }
  .wholesale-login .woocommerce-form-login__rememberme input{
    margin:0 !important;
    flex-shrink:0 !important;
  }
  .wholesale-login__panel .woocommerce-LostPassword{
    text-align:center;
    margin: clamp(.5rem, 0.8vw, .875rem) 0 0;
    font-weight: 400;
    letter-spacing: 0;
  }
  /* Match My Account lost password centering */
  body.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword{
    text-align:center;
    display:block;
    width:100%;
    margin-inline:auto;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword a{
    display:inline-block;
    text-decoration:none;
    border-bottom:2px solid currentColor;
    padding-bottom:.15em;
  }
  .wholesale-login__panel .woocommerce-LostPassword a{
    color: inherit;
    text-decoration: none;
    border-bottom: 2px solid currentColor;
    padding-bottom: .15em;
  }
  /* Wholesale lost password centering */
  .wholesale-login .woocommerce-LostPassword{
    text-align:center !important;
    display:block !important;
    width:100%;
    margin-inline:auto;
  }
  .wholesale-login .woocommerce-LostPassword a{
    display:inline-block;
    text-decoration:none;
    border-bottom:2px solid currentColor;
    padding-bottom:.15em;
  }
  /* Match buttons inside wholesale login to our styling */
  .wholesale-login :where(button, input[type="submit"], .button, .elementor-kit-6 button, .woocommerce-form-register__submit, .woocommerce-form-login__submit){
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    border-radius: var(--btn-radius);
    border:1px solid var(--c-brand);
    background: var(--c-brand);
    color: var(--c-accent);
    font: 800 var(--fs-btn)/1.2 var(--ff-body);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    cursor:pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
  }
  .wholesale-login :where(button, input[type="submit"], .button, .elementor-kit-6 button, .woocommerce-form-register__submit, .woocommerce-form-login__submit):hover,
  .wholesale-login :where(button, input[type="submit"], .button, .elementor-kit-6 button, .woocommerce-form-register__submit, .woocommerce-form-login__submit):focus-visible{
    background: color-mix(in oklab, var(--c-brand) 90%, black 5%);
    border-color: var(--c-brand);
    color: var(--c-accent);
    transform: translateY(-1px);
    outline:none;
  }
  /* Beat Elementor kit zero padding on the wholesale login submit */
  .wholesale-login button.woocommerce-form-login__submit,
  .wholesale-login button.woocommerce-button.button.woocommerce-form-login__submit{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
    min-height:44px !important;
    border-radius: var(--btn-radius) !important;
    border:1px solid var(--btn-bd, var(--c-brand)) !important;
    background: var(--btn-bg, var(--c-brand)) !important;
    color: var(--btn-fg, var(--c-accent)) !important;
    font: 800 var(--fs-btn)/1.2 var(--ff-body) !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    gap: .5em;
  }
  .wholesale-login__panel input[type="checkbox"]{
    width:1.1em;
    height:1.1em;
    accent-color: var(--c-brand);
  }
  @media (max-width: 600px){
    .wholesale-login{
      padding-inline: clamp(1.25rem, 6vw, 2rem);
    }
    .wholesale-login__panel{
      padding: clamp(var(--space-3), 6vw, var(--space-4));
    }
  }
  /* Product cards */
  .product-card{
    background:var(--c-surface);
    border:1px solid var(--c-brand);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    container-type:inline-size;
  }
  .product-card__body{padding:var(--space-3);display:grid;gap:var(--space-3)}
  .product-card .price{font-weight:600;font-size:var(--fs-500)}
  .onsale{
    position:absolute;
    inset:var(--space-2) auto auto var(--space-2);
    background:var(--c-accent);
    color:#0b0b0b;
    border-radius:999px;
    padding:.25em .6em;
    font-size:var(--fs-300)
  }
  /* Woo QoL */
  .woocommerce .quantity .qty{max-width:5.5em;text-align:center}
}
/* ========== UTILITIES (incl. text colour + helpers) ========== */
@layer utilities{
  .stack > * + *{margin-block-start:var(--space-4)}
  .pt-4{padding-block-start:var(--space-4)} .pb-4{padding-block-end:var(--space-4)}
  .py-5{padding-block:var(--space-5)} .px-4{padding-inline:var(--space-4)}
  /* Section padding helpers (override defaults) */
  .pb-0{ --section-pad-bottom: 0px !important; }
  .pb-gutter{ --section-pad-bottom: var(--section-gutter-y) !important; }
  /* Removed mobile overlap helpers; overlap applies on 768px+ only */
  .gap-3{gap:var(--space-3)} .gap-4{gap:var(--space-4)}
  .grid{display:grid;gap:var(--space-4)}
  .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  @media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}
  .content{width:min(72ch,100%)} .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .pad-after-header{
    --section-pad-top: var(--header-clearance);
    padding-block-start: var(--header-clearance);
  }
  .anchor-after-header{ scroll-margin-top: var(--header-clearance); }
  body.woocommerce-page{
    position:relative;
    --woo-pad-inline: var(--section-pad-inline);
    --woo-notice-offset: calc(var(--header-height) + 2vw);
    --woo-bg: var(--c-hero-bg);
    --woo-surface: var(--c-surface);
    --woo-border: color-mix(in oklab, var(--c-brand) 25%, white 75%);
    --woo-heading: var(--c-brand);
    --woo-subtext: color-mix(in oklab, var(--c-brand) 55%, white 45%);
    background: var(--woo-bg) !important;
    color: var(--c-brand);
  }
  body.woocommerce-page #page,
  body.woocommerce-page .site{
    background: transparent !important;
  }
  body.woocommerce-page .site-main :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td),
  body.woocommerce-page .woocommerce :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td){
    color: var(--c-brand);
    font-family: var(--ff-body);
  }
body.woocommerce-page :where(p,li,span,strong,em,label,dd,dt,th,td){
    font-size: var(--fs-body);
    line-height:1;
  }
  body.woocommerce-page .woocommerce a:not(.button){
    color: var(--c-brand);
  }
  body.woocommerce-page .woocommerce :where(.button,button,input.button){
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background: var(--c-brand);
    color: var(--c-surface) !important;
    border-color: var(--c-brand) !important;
  }
  body.woocommerce-page .woocommerce-notices-wrapper,
  body.woocommerce-page .site-main{
    padding-inline: var(--woo-pad-inline);
  }
  body.woocommerce-page .woocommerce-notices-wrapper{
    position:fixed;
    bottom:0;
    left:50%;
    right:auto;
    top:auto;
    transform: translateX(-50%);
    width: calc(100% - 2 * var(--woo-pad-inline, clamp(1rem, 2vw, 2.25rem)));
    z-index:9999;
    box-sizing:border-box;
    margin:0;
    pointer-events:none;
  }
  body.woocommerce-page .woocommerce-notices-wrapper > *{
    pointer-events:auto;
  }
  body.woocommerce-page .woocommerce-notices-wrapper
    > :where(.woocommerce-message){
    background: var(--c-brand);
    border-color: var(--c-accent);
    color: var(--c-accent);
    --c-text: var(--c-accent);
  }
  body.woocommerce-page .woocommerce-notices-wrapper
    > :where(.woocommerce-message) a{
    color: inherit;
  }
  body.woocommerce-page .woocommerce-notices-wrapper
    > :where(.woocommerce-info,.woocommerce-message,.woocommerce-error){
    margin-block-start:0;
  }
  body.woocommerce-page{
    font-size: var(--fs-body);
    line-height:1.55;
  }
  body.woocommerce-page .woocommerce{
    font-family: var(--ff-body);
    color: var(--c-brand);
    font-size: var(--fs-body);
    line-height:1.55;
  }
  body.woocommerce-page .woocommerce table.shop_table{
    width:100%;
    border:0;
    border-collapse:separate;
    border-spacing:0;
    margin:0;
    background:transparent;
    box-shadow:none;
  }
body.woocommerce-page .woocommerce table.shop_table thead{
    border-bottom:0;
  }
  body.single-product #wc-square-digital-wallet{
    display:none !important;
  }
  /* Cart/mini-cart visibility helpers (temporarily disabled to observe native behavior)
  body.woocommerce-cart .elementor-menu-cart,
  body.woocommerce-checkout .elementor-menu-cart,
  body.woocommerce-cart .elementor-menu-cart--hide-on-cart,
  body.woocommerce-checkout .elementor-menu-cart--hide-on-checkout{
    display:inline-flex !important;
  }
  body.woocommerce-cart .elementor-menu-cart__toggle,
  body.woocommerce-checkout .elementor-menu-cart__toggle{
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .elementor-menu-cart--hide-on-cart,
  .elementor-menu-cart--hide-on-checkout{
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .elementor-menu-cart--hide-on-cart .elementor-menu-cart__toggle,
  .elementor-menu-cart--hide-on-checkout .elementor-menu-cart__toggle{
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.elementor-widget-menu-cart, .elementor-menu-cart, .elementor-menu-cart__toggle, .elementor-menu-cart__toggle_button, .elementor-menu-cart__toggle .elementor-button-icon){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.elementor-widget-woocommerce-menu-cart, .elementor-widget-woocommerce-menu-cart .elementor-widget-container, .elementor-menu-cart__wrapper, .elementor-menu-cart__container){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.elementor-element-8516f75, [data-id="8516f75"], .elementor-element-752e2fe6, [data-id="752e2fe6"]){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.elementor-element-8516f75, [data-id="8516f75"]) :where(.elementor-widget-container, .elementor-menu-cart__wrapper, .elementor-menu-cart__container){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.wd-header-cart, .cart-widget-opener, .wd-tools-element.wd-header-cart, .whb-header-cart){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  :where(body.woocommerce-cart, body.woocommerce-checkout)
    :where(.wd-header-cart, .cart-widget-opener) :where(.wd-tools-icon, .wd-tools-text, .wd-cart-number, .wd-cart-subtotal){
    display:inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  body.woocommerce-cart .beyond-cart-fallback,
  body.woocommerce-checkout .beyond-cart-fallback{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:12px;
    background:var(--c-surface);
    color:var(--c-brand);
    text-decoration:none;
    font-weight:700;
    box-shadow:var(--shadow);
  }
  .beyond-cart-fallback__icon{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border-radius:50%;
    background:var(--c-accent);
    color:var(--c-brand);
    font-size:14px;
    font-weight:700;
  }
  .beyond-cart-fallback__subtotal{
    font-size:14px;
  }
  */
  body.woocommerce-cart #wc-square-digital-wallet,
  body.woocommerce-cart .wc-block-cart__payment-options{
    display:none !important;
  }
  body.woocommerce-checkout .wc-block-components-express-checkout{
    order: 999;
    margin-top: var(--space-5);
  }
  body.woocommerce-checkout .wc-block-components-express-payment--checkout{
    margin-top: var(--space-5);
  }
  body.woocommerce-page .woocommerce table.shop_table th{
    font-family: var(--ff-head);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color: var(--woo-heading);
    padding-block: var(--space-2);
    padding-inline:0;
    border-bottom:0;
  }
  body.woocommerce-page .woocommerce table.shop_table td{
    padding-block: var(--space-3);
    padding-inline:0;
    border-bottom:0;
    vertical-align:middle;
  }
  body.woocommerce-page .woocommerce table.shop_table tr:last-child td{
    border-bottom:0;
  }
  body.woocommerce-page .woocommerce table.shop_table td.product-name a{
    color: var(--woo-heading);
    font-weight:700;
    text-decoration:none;
  }
  body.woocommerce-page .woocommerce table.shop_table td.product-name .variation,
  body.woocommerce-page .woocommerce table.shop_table td.product-name p{
    color: var(--woo-subtext);
    font-size: var(--fs-400);
    margin: var(--space-1) 0 0;
  }
  body.woocommerce-page .woocommerce table.shop_table td.product-subtotal,
  body.woocommerce-page .woocommerce table.shop_table td.product-price,
  body.woocommerce-page .woocommerce table.shop_table td.product-total{
    font-weight:700;
    color: var(--woo-heading);
  }
  body.woocommerce-page .woocommerce table.shop_table td.product-thumbnail img{
    max-width:96px;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
  }
  body.woocommerce-cart .woocommerce,
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-account .woocommerce{
    display:grid;
    gap:var(--space-5);
  }
  @media (min-width: 992px){
    body.woocommerce-cart .woocommerce{
      grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);
    }
    body.woocommerce-checkout .woocommerce{
      grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);
    }
    body.woocommerce-account .woocommerce{
      display:flex;
      justify-content:space-between;
      gap:0;
    }
  }
  @media (min-width: 992px){
    body.woocommerce-account .woocommerce-MyAccount-navigation{
      flex:0 0 260px;
      max-width:260px;
      margin-inline-end:var(--space-5);
    }
    body.woocommerce-account .woocommerce-MyAccount-content{
      flex:1 1 auto;
    }
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review,
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content{
    background: transparent;
    border:0;
    border-radius:0;
    padding:0;
    box-shadow:none;
  }
body.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:var(--space-2);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span){
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    border-radius: var(--btn-radius);
    border:1px solid var(--c-brand);
    background: var(--c-brand);
    color: var(--c-surface);
    text-decoration:none;
    font: 800 var(--fs-btn)/1.2 var(--ff-body);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    min-width:220px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active :where(a, span),
  body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span):hover,
  body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span):focus-visible{
    background: color-mix(in oklab, var(--c-brand) 90%, black 5%);
    color: var(--c-surface);
    border-color: var(--c-brand);
  }

/* Woo My Account nav cleanup */
body.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none !important;
  padding:0;
  margin:0;
  display:grid;
  gap:var(--space-2);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span){
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border-radius: var(--btn-radius);
  border:1px solid var(--c-brand) !important;
  background: var(--c-brand) !important;
  color: var(--c-surface) !important;
  text-decoration:none;
  font: 800 var(--fs-btn)/1.2 var(--ff-body);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  min-width:220px;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  text-decoration: none !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active :where(a, span),
body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span):hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li :where(a, span):focus-visible{
  background: color-mix(in oklab, var(--c-brand) 90%, black 5%) !important;
  color: var(--c-surface) !important;
  border-color: var(--c-brand) !important;
  text-decoration: none !important;
}
  @media (min-width: 992px){
    body.woocommerce-account .woocommerce-MyAccount-navigation{
      flex:0 0 260px;
      max-width:260px;
      margin-inline-end:var(--space-5);
    }
    body.woocommerce-account .woocommerce-MyAccount-content{
      flex:1 1 auto;
    }
  }
  body.woocommerce-cart .cart_totals table,
  body.woocommerce-checkout #order_review table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
  }
  body.woocommerce-cart .cart_totals table th,
  body.woocommerce-cart .cart_totals table td,
  body.woocommerce-checkout #order_review table th,
  body.woocommerce-checkout #order_review table td{
    padding-block: var(--space-2);
    border-bottom:0;
  }
  body.woocommerce-page .wc-block-cart__main .wc-block-cart-items,
  body.woocommerce-page .wc-block-cart .wp-block-woocommerce-cart-order-summary-block{
    border:0 !important;
  }
  body.woocommerce-page .wc-block-cart__main .wc-block-cart-items td{
    border:0 !important;
    padding:0 20px 0 0 !important;
  }
  body.woocommerce-page .wc-block-cart-items__header-image{
    display:flex !important;
  }
  body.woocommerce-page .wc-block-cart table.wc-block-cart-items th{
    margin:0 !important;
  }
  body.woocommerce-page .wc-block-cart table.wc-block-cart-items{
    margin:0 !important;
  }
  body.woocommerce-page table caption+thead tr:first-child td,
  body.woocommerce-page table caption+thead tr:first-child th,
  body.woocommerce-page table colgroup+thead tr:first-child td,
  body.woocommerce-page table colgroup+thead tr:first-child th,
  body.woocommerce-page table thead:first-child tr:first-child td,
  body.woocommerce-page table thead:first-child tr:first-child th{
    border-block-start:0 !important;
  }
  body.woocommerce-page .wc-block-components-totals-wrapper{
    border:0 !important;
  }
  body.woocommerce-page .wc-block-cart .wp-block-woocommerce-cart-order-summary-block{
    border:0 !important;
  }
  body.woocommerce-page .wc-block-cart-item__image{
    margin-inline-end:20px !important;
    width:28.5%;
  }
  body.woocommerce-page .woocommerce form :where(input, select, textarea){
    background: transparent;
    color: var(--c-brand);
    border:1px solid var(--c-brand);
    border-radius:var(--radius);
    padding:var(--space-2) var(--space-3);
    box-shadow:none;
  }
  body.woocommerce-page .woocommerce form :where(input, select, textarea)::placeholder{
    color: color-mix(in oklab, var(--c-brand) 55%, white 45%);
  }
  body.woocommerce-checkout :where(
      .wc-block-components-text-input__input,
      .wc-block-components-textarea__input,
      .wc-block-components-text-input .wc-block-components-text-input__input,
      .wc-block-components-select__select,
      .wc-block-components-select__input,
      .wc-block-components-select__control,
      .wc-block-components-select__input-control,
      .wc-block-components-address-address-input,
      .wc-block-components-contact-information__input,
      .wc-block-components-text-input input,
      .wc-block-components-text-input textarea
    ){
    border:1px solid var(--c-brand) !important;
    border-radius:var(--radius) !important;
    background:transparent !important;
    color:var(--c-brand) !important;
  }
body.woocommerce-checkout :where(
      .wc-block-components-text-input__input,
      .wc-block-components-textarea__input,
      .wc-block-components-select__select,
      .wc-block-components-select__input
    )::placeholder{
    color:color-mix(in oklab, var(--c-brand) 55%, white 45%) !important;
  }

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block{
  border:0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block{
  border-top:0 !important;
}

body.woocommerce-checkout :where(.wc-block-components-select__select,
      .wc-block-components-select__control,
      .wc-block-components-select__input,
      .wc-block-components-select__container,
      .wc-block-components-select__value,
      .wc-block-components-select__input-control,
      .wc-block-components-select__trigger,
      .wc-blocks-components-select .wc-blocks-components-select__container){
  background:transparent !important;
  border:1px solid var(--c-brand) !important;
  border-radius:var(--radius) !important;
  color:var(--c-brand) !important;
  box-shadow:none !important;
}
body.woocommerce-checkout :where(.wc-block-components-select__value){
  color:var(--c-brand) !important;
}

  body.woocommerce-checkout :where(
      .components-input-control__input,
      .components-textarea-control__input,
      .components-select-control__control,
      .components-select-control__input,
      .components-combobox-control__input,
      .wc-block-components-select__container,
      .wc-block-components-select__control,
      .wc-block-components-select__prefix,
      .wc-block-components-select__suffix,
      .wc-block-components-select__toggle,
      .wc-block-components-select__value
    ){
    background:transparent !important;
    border:1px solid var(--c-brand) !important;
    border-radius:var(--radius) !important;
    color:var(--c-brand) !important;
    box-shadow:none !important;
  }
  body.woocommerce-checkout :where(
      .wc-block-components-text-input label,
      .wc-block-components-textarea__label,
      .wc-block-components-field__label,
      .components-base-control__label,
      .wc-block-components-address-form__heading,
      .wc-block-components-customer-account__details-label
    ){
    color:var(--c-brand) !important;
  }
  body.woocommerce-checkout #payment .payment_methods{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:var(--space-3);
  }
  body.woocommerce-checkout #payment .payment_methods > li{
    border:1px solid var(--woo-border);
    border-radius: var(--radius);
    padding: var(--space-3);
    background: color-mix(in oklab, var(--woo-bg) 85%, white 15%);
  }
  body.woocommerce-checkout #payment .payment_box{
    margin: var(--space-3) 0 0;
    padding: var(--space-3);
    border-radius: var(--radius);
    background: color-mix(in oklab, var(--woo-bg) 80%, white 20%);
  }
  body.woocommerce-page .site-main{
    padding-block-start: calc(var(--header-clearance) + var(--space-3));
    padding-block-end: max(var(--section-gutter-y), var(--space-6));
  }
  body.woocommerce-account:not(.logged-in) .site-main{
    padding-block-start: var(--header-clearance);
    padding-block-end: var(--section-gutter-y);
  }
  body.woocommerce-page .elementor-1309 .elementor-element.elementor-element-724879b > .elementor-widget-container{
    margin: 0 !important;
  }
  /* Default hero spacing (first top-level section) */
  .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.floating-widget)
    > :is(
        .elementor-section.elementor-top-section,
        .e-con.e-con-boxed,
        .e-con.e-con-stretch
      ):first-of-type:not(.no-hero){
    --hero-gap: clamp(48px, 3.5vw, 96px);
    --section-pad-top: calc(var(--header-height) + var(--hero-gap));
    --section-pad-bottom: clamp(80px, 6vw, 120px);
    margin-top: 0;
    padding-block-start: var(--section-pad-top) !important;
    padding-block-end: var(--section-pad-bottom) !important;
  }
  .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.floating-widget)
    > :is(
        .elementor-section.elementor-top-section,
        .e-con.e-con-boxed,
        .e-con.e-con-stretch
      ):first-of-type:not(.no-hero)
    > :where(.elementor-container, .e-con){
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.floating-widget)
    > :is(
        .elementor-section.elementor-top-section,
        .e-con.e-con-boxed,
        .e-con.e-con-stretch
      ):first-of-type:not(.no-hero)
    > :where(.e-con) > .e-con-inner{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  /* Hero layout helper (legacy class) */
  .hero-stack{
    --hero-gap: clamp(48px, 3.5vw, 96px)!important;
    padding-top: calc(var(--header-height) + var(--hero-gap))!important;
    padding-bottom: clamp(80px, 6vw, 120px)!important;
  }
  .hero-stack > .elementor-container,
  .hero-stack > .elementor-container > .elementor-column,
  .hero-stack > .e-con,
  .hero-stack > .e-con > .e-con-inner{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  /* Video hero modifier */
  .elementor-section.hero--video{
    min-height: clamp(480px, 75vh, 720px);
  }
  .elementor-section.hero--video > :where(.elementor-container, .e-con){
    min-height: inherit;
    align-items: flex-end;
  }
  /* Text colour system */
  .text-body  { color: var(--c-text); }
  .text-brand { color: var(--c-brand); }
  .text-accent{ color: var(--c-accent); }
  .elementor, .woocommerce { color: var(--c-text); }
  .elementor :where(p, li, small, strong, em, blockquote, figcaption, label, legend, dd, dt, th, td),
  .woocommerce :where(p, li, small, strong, em, blockquote, figcaption, label, legend, dd, dt, th, td) { color: var(--c-text); }
  h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title { color: var(--c-text); }
  /* Typographic rhythm */
  .elementor :where(.elementor-widget-heading){
    margin-block-end: 0 !important;
  }
  .elementor :where(.elementor-widget-heading)
    + :where(.elementor-widget-text-editor){
    margin-block-start: var(--gap-heading-body) !important;
  }
  .elementor :where(.elementor-widget-heading)
    + :where(.elementor-widget-icon-box){
    margin-block-start: var(--gap-heading-body) !important;
  }
  .elementor :where(.elementor-widget-heading)
    + :where(.elementor-widget-button){
    margin-block-start: var(--gap-heading-button) !important;
  }
.elementor :where(.elementor-widget-heading)
    + :where(
        .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-button):not(.elementor-widget-heading):not(.elementor-icon-box-wrapper):not(.elementor-widget-icon-box),
        .elementor-container,
        .elementor-section,
        .elementor-column,
        .elementor-widget-wrap,
        .e-con
      ){
    margin-block-start: var(--gap-heading-standalone) !important;
  }
  .elementor :where(.elementor-widget-text-editor)
    + .elementor-widget-button{
    margin-block-start: var(--gap-body-button) !important;
  }
  /* give multi-button stacks a bit of horizontal + vertical spacing */
  .elementor-widget-button + .elementor-widget-button{
    margin-inline-start: var(--space-2);
  }
  .container-buttons .elementor-widget-button{
    margin-block-start: var(--gap-body-button);
  }
  /* Gap overrides */
  .gap-heading-body-none{
    --gap-heading-body: 0px;
  }
  .gap-heading-body-tight{
    --gap-heading-body: clamp(.5rem, .5vw + .3rem, .8rem);
  }
  .gap-heading-button-none{
    --gap-heading-button: 0px;
  }
  .gap-heading-button-tight{
    --gap-heading-button: clamp(.75rem, .7vw + .45rem, 1.25rem);
  }
  .gap-heading-standalone-none{
    --gap-heading-standalone: 0px;
  }
  .gap-heading-standalone-tight{
    --gap-heading-standalone: clamp(1.5rem, 1.5vw + 0.9rem, 2.4rem);
  }
  /* Page-specific overrides */
  .brew-guides-no-standalone{
    --gap-heading-standalone: 0px;
  }
  /* Make children inherit when applied to a Section/Container */
  .text-accent :where(h1,h2,h3,h4,h5,h6,p,li,span,small,strong,em,blockquote,figcaption,label,dd,dt,th,td){ color: var(--c-accent); }
  .text-accent a:not(.elementor-button):not(.button):not(.wc-block-components-button__button){ color: var(--c-accent); }
  /* On-brand context flip */
  .on-brand { --c-text: var(--c-accent); }
  .on-brand :where(p, li, span, small, strong, em, blockquote, figcaption, label, legend, dd, dt, th, td),
  .on-brand :is(h1,h2,h3,h4,h5,h6),
  .on-brand .elementor-widget-heading .elementor-heading-title{ color: var(--c-text); }
  /* Typographic helper */
  .h-p{
    font-weight: 600;
    font-size: var(--fs-h4);
    line-height: var(--lh-compact);
    letter-spacing: var(--ls-tight);
    color: var(--c-text);
    margin: 0;
  }
}
/* =========================
   GLOBAL SECTION OVERLAP + RADIUS
   ========================= */
.elementor:not(.elementor-location-header)
  > :is(.elementor-section.elementor-top-section, .e-con.e-con-boxed, .e-con.e-con-stretch):not(.no-overlap){
  position: relative;
  z-index: 1;
  isolation: isolate;
  margin-top: calc(-1 * var(--section-overlap));
  border-top-left-radius:     var(--section-rad-tl);
  border-top-right-radius:    var(--section-rad-tr);
  border-bottom-right-radius: var(--section-rad-br);
  border-bottom-left-radius:  var(--section-rad-bl);
  overflow: visible;
}
.elementor:not(.elementor-location-header)
  > :is(.elementor-section.elementor-top-section, .e-con.e-con-boxed, .e-con.e-con-stretch):not(.no-overlap) > *{
  position: relative;
  z-index: 1;
}
.elementor:not(.elementor-location-header)
  > :is(.elementor-section.elementor-top-section, .e-con.e-con-boxed, .e-con.e-con-stretch):first-of-type{
  margin-top: 0;
}
/* Elementor editor preview adds .elementor-section-wrap wrapper */
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):not(.no-overlap){
  position: relative;
  z-index: 1;
  isolation: isolate;
  margin-top: calc(-1 * var(--section-overlap));
  border-top-left-radius:     var(--section-rad-tl);
  border-top-right-radius:    var(--section-rad-tr);
  border-bottom-right-radius: var(--section-rad-br);
  border-bottom-left-radius:  var(--section-rad-bl);
  overflow: visible;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.floating-widget)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):first-of-type:not(.no-hero){
  --hero-gap: clamp(48px, 3.5vw, 96px);
  --section-pad-top: calc(var(--header-height) + var(--hero-gap));
  --section-pad-bottom: clamp(80px, 6vw, 120px);
  margin-top: 0;
  padding-block-start: var(--section-pad-top) !important;
  padding-block-end: var(--section-pad-bottom) !important;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):first-of-type:not(.no-hero)
  > :where(.elementor-container, .e-con){
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):first-of-type:not(.no-hero)
  > :where(.e-con) > .e-con-inner{
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):first-of-type{
  margin-top: 0;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > :is(
      .elementor-section.elementor-top-section,
      .e-con.e-con-boxed,
      .e-con.e-con-stretch
    ):not(.no-overlap) > *{
  position: relative;
  z-index: 1;
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > :is(.e-con.e-con-boxed, .e-con.e-con-stretch){
  padding-block-start: var(--section-pad-top);
  padding-block-end: var(--section-pad-bottom);
  padding-inline: var(--section-pad-inline);
}
body.elementor-editor-active
  .elementor:not(.elementor-location-header)
  > .elementor-section-wrap
  > .elementor-section.elementor-top-section
  > .elementor-container{
  padding-block-start: var(--section-pad-top);
  padding-block-end: var(--section-pad-bottom);
  padding-inline: var(--section-pad-inline);
}
.no-overlap{
  margin-top: 0 !important;
  border-radius: 0 !important;
  isolation: auto !important;
  z-index: auto !important;
  overflow: visible !important;
}
/* Floating widget opt-out */
.elementor:not(.elementor-location-header)
  > :is(.elementor-section.elementor-top-section, .e-con.e-con-boxed, .e-con.e-con-stretch):has(.float-sentinel){
  --section-pad-top: 0px;
  --section-pad-bottom: 0px;
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-radius: 0 !important;
  isolation: auto !important;
  z-index: auto !important;
  overflow: visible !important;
  padding-block-end: 0 !important;
}
.elementor-widget.elementor-fixed.float-sentinel{ z-index: 9999; }
/* Float sentinel: remove icon margins inside icon lists */
.float-sentinel .elementor-icon-list-icon svg{ margin: 0 !important; }
/* =========================
   DEFAULT SECTION GUTTERS (p4 behavior by default)
   Applies to top-level Containers and legacy Sections' inner container
   ========================= */
.elementor:not(.elementor-location-header)
  > :is(.e-con.e-con-boxed, .e-con.e-con-stretch){
  padding-block-start: var(--section-pad-top);
  padding-block-end: var(--section-pad-bottom);
  padding-inline: var(--section-pad-inline);
}
.elementor:not(.elementor-location-header)
  > .elementor-section.elementor-top-section > .elementor-container{
  padding-block-start: var(--section-pad-top);
  padding-block-end: var(--section-pad-bottom);
  padding-inline: var(--section-pad-inline);
}
.elementor.elementor-location-footer
  > .elementor-section.elementor-top-section > .elementor-container{
  padding-block-end: var(--section-gutter-y);
}
/* Utilities override via custom properties */
.no-gutters, .p0{
  --section-pad-top: 0px; --section-pad-bottom: 0px; --section-pad-inline: 0px;
}
.p3, .p-3-t{
  --section-pad-top: 0px;
}
.p3b, .p-3-b{
  --section-pad-bottom: 0px;
}
/* =========================
   ON-BRAND COFFEE BACKGROUND
   ========================= */
.on-brand{
  position: relative;
  --on-brand-bg-short-url: url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-short.jpg');
  --on-brand-bg-short-webkit: -webkit-image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-short.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-short.jpg') type('image/jpeg')
  );
  --on-brand-bg-short-imgset: image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-short.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-short.jpg') type('image/jpeg')
  );
  --on-brand-bg-tall-url: url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-tall.jpg');
  --on-brand-bg-tall-webkit: -webkit-image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-tall.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-tall.jpg') type('image/jpeg')
  );
  --on-brand-bg-tall-imgset: image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-tall.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/coffee-bean-background-tall.jpg') type('image/jpeg')
  );
}
.on-brand > *{ position: relative; z-index: 1; }
.on-brand::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  /* Default to short background; include fallbacks for iOS Safari */
  background-image: var(--on-brand-bg-short-url);
  background-image: var(--on-brand-bg-short-webkit);
  background-image: var(--on-brand-bg-short-imgset);
}
.on-brand .elementor-background-overlay{ position:absolute; inset:0; z-index:1; }
/* Only opt-out when a real inline url() is present */
.on-brand[style*="background-image: url(" i]::after{ content:none; }
@media (min-height: 651px){
  .on-brand::after{
    background-image: var(--on-brand-bg-tall-url);
    background-image: var(--on-brand-bg-tall-webkit);
    background-image: var(--on-brand-bg-tall-imgset);
  }
}
/* per-section override: allow opting out */
.on-brand.on-brand--no-bg::after{ content: none !important; }
/* Buyer guides section one background override */
.on-brand.on-brand--bgso{
  --on-brand-bg-short-url: url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/buyers-guide-section-one-background.jpg');
  --on-brand-bg-short-webkit: -webkit-image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/buyers-guide-section-one-background.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/buyers-guide-section-one-background.jpg') type('image/jpeg')
  );
  --on-brand-bg-short-imgset: image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/buyers-guide-section-one-background.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/buyers-guide-section-one-background.jpg') type('image/jpeg')
  );
  --on-brand-bg-tall-url: var(--on-brand-bg-short-url);
  --on-brand-bg-tall-webkit: var(--on-brand-bg-short-webkit);
  --on-brand-bg-tall-imgset: var(--on-brand-bg-short-imgset);
}
.on-brand.on-brand--gtku{
  --on-brand-bg-short-url: url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg');
  --on-brand-bg-short-webkit: -webkit-image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg') type('image/jpeg')
  );
  --on-brand-bg-short-imgset: image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg') type('image/jpeg')
  );
  --on-brand-bg-tall-url: var(--on-brand-bg-short-url);
  --on-brand-bg-tall-webkit: var(--on-brand-bg-short-webkit);
  --on-brand-bg-tall-imgset: var(--on-brand-bg-short-imgset);
}
.on-brand.on-brand--gtku::after{
  background-image: url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg');
  background-image: -webkit-image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg') type('image/jpeg')
  );
  background-image: image-set(
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.webp') type('image/webp'),
    url('https://80stone.stagingsites.uk/wp-content/themes/hello-child/assets/img/get-to-know-us.jpg') type('image/jpeg')
  );
}
/* Removed section-level painting to revert to simpler child-only background */
/* On-brand mobile: remove stray top margin on first child to avoid a visible gap */
@media (max-width: 480px){
  .on-brand > .e-con-inner > *:first-child{ margin-top: 0 !important; }
  .on-brand > *:first-child{ margin-top: 0 !important; }
}
/* WebKit fallback: ensure on-brand backgrounds render on iOS */
@supports (-webkit-touch-callout: none){
  .on-brand{
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
  }
  .on-brand:not([style*="background-image: url(" i]):not(.on-brand--no-bg){
    background-image: var(--on-brand-bg-short-url);
  }
  @media (min-height: 651px){
    .on-brand:not([style*="background-image: url(" i]):not(.on-brand--no-bg){
      background-image: var(--on-brand-bg-tall-url);
    }
  }
  .on-brand.on-brand--no-bg{ background-image: none !important; }
  .on-brand::after{ content: none; }
}
/* Enquiry tabs */
.enquiry-tabs .tabs{
  display:flex;
  gap:2rem;
  margin-bottom:1rem;
}
.enquiry-tabs .tab.h2-like{
  border:0;
  opacity:.6;
}
.enquiry-tabs :hover{
  background:none;
}
.enquiry-tabs .tab.is-active{
  opacity:1;
  background:none;
}
.enquiry-tabs .tab-panel{
  display:none;
}
.enquiry-tabs .tab-panel.is-active{
  display:block;
}
.tabs{ margin-bottom:3vw; }
@media (max-width:640px){
  .enquiry-tabs{
    position:relative;
    --tabs-arrow-top: 0px;
  }
  .enquiry-tabs::before,
  .enquiry-tabs::after{
    content:"";
    position:absolute;
    top:var(--tabs-arrow-top);
    width:18px;
    height:14px;
    pointer-events:none;
    opacity:0;
    transition:opacity .2s ease;
    background:var(--c-brand);
    background:color-mix(in oklab,var(--c-brand),transparent 5%);
    clip-path:polygon(0 0, 100% 50%, 0 100%);
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));
    transform:translateY(-50%);
  }
  .enquiry-tabs::after{
    right:0px;
  }
  .enquiry-tabs::before{
    left:0px;
    transform:translateY(-50%) scaleX(-1);
  }
  .enquiry-tabs.has-scroll-right::after{ opacity:1; }
  .enquiry-tabs.has-scroll-left::before{ opacity:1; }
  .enquiry-tabs .tabs{
    justify-content:flex-start;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    padding-inline-start: 0;
    padding-inline-end: 0;
    padding-bottom: var(--space-1);
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .enquiry-tabs .tabs::-webkit-scrollbar{ display:none; }
  .enquiry-tabs .tab{
    scroll-snap-align:start;
  }
  .enquiry-tabs__scroll-track{
    position:absolute;
    height:3px;
    border-radius:999px;
    pointer-events:none;
    background:color-mix(in oklab,var(--c-brand),transparent 85%);
    box-shadow:0 0 0 1px rgba(11,69,102,.08);
    opacity:1;
    transition:opacity .2s ease;
    z-index:1;
  }
  .enquiry-tabs__scroll-thumb{
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    border-radius:inherit;
    background:var(--c-brand);
    transition:transform .12s ease-out, width .12s ease-out;
    will-change:transform,width;
  }
  .enquiry-tabs:not(.has-scroll) .enquiry-tabs__scroll-track{
    opacity:0;
  }
  .tabs{ margin-bottom:7.5vw; }
}
/* =============================
   BUTTONS — BASELINE + VARIANTS + CONTEXT FLIP
   ============================= */
:is(
  .elementor a.elementor-button.elementor-button,
  .elementor .elementor-button.elementor-button,
  .woocommerce a.button.button,
  .woocommerce button.button.button,
  .woocommerce input.button.button,
  .add_to_cart_button.add_to_cart_button,
  .single_add_to_cart_button.single_add_to_cart_button,
  .wp-element-button.wp-element-button,
  .wp-block-button__link.wp-block-button__link,
  .wc-block-components-button .wc-block-components-button__button.wc-block-components-button__button
){
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding: var(--btn-pad-y) var(--btn-pad-x);
  min-height:44px;
  border-radius: var(--btn-radius);
  border: 1px solid var(--btn-bd, var(--c-brand));
  background: var(--btn-bg, var(--c-brand));
  color: var(--btn-fg, var(--c-accent));
  font: 800 var(--fs-btn)/1.2 var(--ff-body);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
/* WooCommerce buttons default to outline, except primary add-to-cart */
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button){
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-accent) !important;
  border-color: var(--c-brand) !important;
}
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button).is-active,
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button).active,
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button).current,
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button).is-selected{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-accent) !important;
  border-color: var(--c-brand) !important;
}
.woocommerce .single_add_to_cart_button{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-accent) !important;
  border-color: var(--c-brand) !important;
}
/* Focus ring */
:is(
  .elementor a.elementor-button.elementor-button,
  .elementor .elementor-button.elementor-button,
  .woocommerce a.button.button,
  .woocommerce button.button.button,
  .woocommerce input.button.button,
  .add_to_cart_button.add_to_cart_button,
  .single_add_to_cart_button.single_add_to_cart_button,
  .wp-element-button.wp-element-button,
  .wp-block-button__link.wp-block-button__link,
  .wc-block-components-button .wc-block-components-button__button.wc-block-components-button__button
):focus-visible{
  outline: 2px solid var(--c-brand);
  outline-offset: 2px;
}
/* Internals inherit colour */
.elementor .elementor-button :where(.elementor-button-text, .elementor-button-icon, span, small, strong, em, i, svg),
.elementor a.elementor-button :where(.elementor-button-text, .elementor-button-icon, span, small, strong, em, i, svg),
.wc-block-components-button .wc-block-components-button__button *{
  color: inherit; fill: currentColor;
}
/* Context flip: on-brand sections */
.on-brand{
  --btn-bg: var(--c-accent);
  --btn-fg: var(--c-brand);
  --btn-bd: var(--c-accent);
}
.on-brand .elementor-button{
  background: var(--btn-bg) !important;
  color: var(--btn-fg) !important;
  border-color: var(--btn-bd) !important;
}
/* Variants — ALT (outline) */
.elementor a.elementor-button.btn--alt,
.elementor .elementor-button.btn--alt,
.btn--alt .elementor-button,
.elementor .elementor-element.btn--alt .elementor-button,
.elementor .elementor-widget-container.btn--alt .elementor-button{
  --btn-bg: transparent;
  --btn-fg: var(--c-brand);
  --btn-bd: var(--c-brand);
  background: transparent !important;
  color: var(--c-brand) !important;
  border-color: var(--c-brand) !important;
  box-shadow: none !important;
}
.elementor a.elementor-button.btn--alt:hover,
.elementor .elementor-button.btn--alt:hover,
.btn--alt .elementor-button:hover{
  background: var(--btn-bg) !important;
  color: var(--btn-fg) !important;
  border-color: var(--btn-bd) !important;
}
.on-brand :is(
  .elementor a.elementor-button.btn--alt,
  .elementor .elementor-button.btn--alt,
  .btn--alt .elementor-button,
  .elementor .elementor-element.btn--alt .elementor-button,
  .elementor .elementor-widget-container.btn--alt .elementor-button
){
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-accent);
  color: var(--c-accent) !important;
  border-color: var(--c-accent) !important;
}
.on-brand :is(
  .elementor a.elementor-button.btn--alt,
  .elementor .elementor-button.btn--alt,
  .btn--alt .elementor-button,
  .elementor .elementor-element.btn--alt .elementor-button,
  .elementor .elementor-widget-container.btn--alt .elementor-button
):hover{
  color: var(--c-accent) !important;
  border-color: var(--c-accent) !important;
}
/* Variants — ONBRAND (explicit light fill) */
.elementor a.elementor-button.btn--onbrand,
.elementor .elementor-button.btn--onbrand,
.btn--onbrand .elementor-button,
.elementor .elementor-element.btn--onbrand .elementor-button,
.elementor .elementor-widget-container.btn--onbrand .elementor-button{
  --btn-bg: var(--c-accent);
  --btn-fg: var(--c-brand);
  --btn-bd: var(--c-accent);
  background: var(--c-accent) !important;
  color: var(--c-brand) !important;
  border-color: var(--c-accent) !important;
}
/* Woo add-to-cart — spacing + button alignment */
:is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart,
  .woocommerce div.product .elementor-widget-wc-add-to-cart
) form.cart{
  gap: var(--space-2);
}
:is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart,
  .woocommerce div.product .elementor-widget-wc-add-to-cart
) form.cart button:where(:not(:first-child)){
  margin-block-start: 0;
  margin-inline-start: 0;
}
:is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart,
  .woocommerce div.product .elementor-widget-wc-add-to-cart
) form.cart :where(button[type="submit"], .single_add_to_cart_button){
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-accent) !important;
  border-color: var(--c-brand) !important;
}
/* =========================
   WOO VARIATION SWATCHES
   ========================= */
.ff-attr{
  display:flex;
  flex-wrap:wrap;
  gap: var(--space-2) var(--space-3);
  margin-block: var(--space-2);
}
.ff-attr__btn,
.ff-attr__btn.elementor-button{
  border-radius: var(--btn-radius);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  min-height:44px;
  --btn-bg: transparent;
  --btn-fg: var(--c-brand);
  --btn-bd: var(--c-brand);
  border: 1px solid var(--btn-bd);
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow: none;
  transform: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ff-attr__btn .elementor-button-text,
.ff-attr__btn.elementor-button .elementor-button-text{ color: inherit; }
.ff-attr__btn:hover,
.ff-attr__btn:focus-visible,
.ff-attr__btn.elementor-button:hover,
.ff-attr__btn.elementor-button:focus-visible{
  background: var(--btn-bg) !important;
  color: var(--btn-fg) !important;
  border-color: var(--btn-bd) !important;
  box-shadow: none !important;
  transform: none !important;
}
.ff-attr__btn.is-selected,
.ff-attr__btn.is-selected.btn--alt{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--btn-bg) !important;
  border-color: var(--btn-bd) !important;
  color: var(--btn-fg) !important;
}
.ff-attr__btn.is-disabled{
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
}
.ff-attr__btn.is-hidden{
  display:none !important;
}

/* =========================
   WOO VARIATION LAYOUT — NON SINGLE PRODUCT
   Match the single-product stacked layout when rendering variable forms via shortcode/loop.
   ========================= */
body:not(.single-product) table.variations{
  width:100%;
  border-collapse:collapse;
}
body:not(.single-product) table.variations tr{
  display:block;
  margin:20px 0;
}
body:not(.single-product) table.variations th,
body:not(.single-product) table.variations td{
  display:block;
  padding:0;
  border:0;
  background:transparent;
}
body:not(.single-product) table.variations th label{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.05em;
  font-size:var(--fs-h5, 16px);
}
body:not(.single-product) table.variations td.value{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
}
body:not(.single-product) table.variations td.value .elementor-button,
body:not(.single-product) table.variations td.value a.button,
body:not(.single-product) table.variations td.value button.button{
  border-radius: var(--btn-radius);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: 1px solid var(--c-accent);
  background: var(--c-accent);
  color: var(--c-brand);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow: none;
}
body:not(.single-product) table.variations td.value .elementor-button:hover,
body:not(.single-product) table.variations td.value a.button:hover,
body:not(.single-product) table.variations td.value button.button:hover,
body:not(.single-product) table.variations td.value .elementor-button:focus,
body:not(.single-product) table.variations td.value a.button:focus,
body:not(.single-product) table.variations td.value button.button:focus{
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: var(--c-brand);
}
body:not(.single-product) table.variations .reset_variations{
  margin-top: 8px;
}
body:not(.single-product) form.cart{
  display:flex;
  align-items:center;
  gap: var(--space-2, 12px);
  flex-wrap:wrap;
}

/* Wholesale store: fall back to native selects (hide pills) */
body.page-wholesale-store .ff-attr,
body.page-wholesale-store .ff-attr__btn{
  display:none !important;
}
body.page-wholesale-store table.variations{
  width:100%;
  border-collapse:collapse;
}
body.page-wholesale-store table.variations tr{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4, 20px);
  align-items:start;
  margin:16px 0;
}
body.page-wholesale-store table.variations th{
  display:block;
  grid-column: 1 / 2;
  padding:0 0 6px;
  border:0;
  text-align:left;
}
body.page-wholesale-store table.variations td.value{
  display:block;
  grid-column: 2 / 3;
  padding:0;
  margin:0;
}
body.page-wholesale-store table.variations select{
  display:block !important;
  width:100%;
  max-width:360px;
  padding:12px 14px;
  border:1px solid var(--c-brand, #0b2430);
  border-radius: var(--btn-radius, 999px);
  background: #fff;
  color: var(--c-brand, #0b2430);
  font-weight:700;
  letter-spacing:0.02em;
}
body.page-wholesale-store form.cart{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap: var(--space-3, 16px) !important;
}
body.page-wholesale-store form.cart .quantity{
  margin:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
body.page-wholesale-store form.cart .quantity input.qty{
  width:90px;
  text-align:center;
}
body.page-wholesale-store form.cart .single_add_to_cart_button{
  margin:0;
}
body.page-wholesale-store .woocommerce div.product form.cart .reset_variations{
  display:none !important;
}

/* Temporary: force grind attribute back to a select (leave size as pills) */
body:not(.page-wholesale-store) .ff-attr[data-attribute_name="attribute_pa_grind"],
body:not(.page-wholesale-store) .ff-attr[data-attribute-name="attribute_pa_grind"],
body:not(.page-wholesale-store) .ff-attr[data-attribute_name="attribute_grind"],
body:not(.page-wholesale-store) .ff-attr[data-attribute-name="attribute_grind"],
body:not(.page-wholesale-store) .ff-attr[data-attribute_name*="grind"],
body:not(.page-wholesale-store) .ff-attr[data-attribute-name*="grind"],
body:not(.page-wholesale-store) .ff-attr[data-attr="attribute_pa_choose-grind"],
body:not(.page-wholesale-store) .ff-attr[data-attr*="grind"]{
  display:none !important;
}
body:not(.page-wholesale-store) select[name="attribute_pa_grind"],
body:not(.page-wholesale-store) select[name="attribute_grind"],
body:not(.page-wholesale-store) select[name*="attribute_pa_grind"],
body:not(.page-wholesale-store) select[name*="attribute_grind"],
body:not(.page-wholesale-store) select[name*="[grind]"],
body:not(.page-wholesale-store) #pa_choose-grind{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  appearance:auto !important;
}
/* Hide Clear for grind */
body:not(.page-wholesale-store) table.variations .reset_variations{
  display:none !important;
}
/* =========================
   WOO PRICE COLOUR FIX
   ========================= */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price,
.woocommerce .price{
  color: var(--c-brand) !important;
  font-weight: 700;
}
.woocommerce-Price-amount, .amount{ color: inherit; }
/* Variations table layout */
.single-product table.variations{
  width:100%;
  border-collapse:collapse;
  justify-items:start;
}
.single-product table.variations tr{
  display:grid;
  gap: var(--space-2);
  margin-block: var(--space-4);
  padding:0;
  border:0;
  background: transparent !important;
}
.single-product table.variations tr:first-child{ margin-top: 0; }
.single-product table.variations th,
.single-product table.variations td{
  padding:0;
  border:0;
  background: transparent !important;
  text-align:left;
  justify-self:start;
}
.single-product table.variations th label,
.single-product table.variations .label label{
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin:0;
  text-align:left;
}
  .single-product table.variations td.value{
    display:flex;
    flex-wrap:wrap;
    gap: var(--space-2) var(--space-3);
    align-items:center;
}
  .single-product table.variations .reset_variations{
    margin-top: var(--space-1);
    display:inline-block;
  }
  .single-product .single_variation_wrap{
    max-width:fit-content;
    display:flex;
    align-items:center;
    gap:20px;
  }
  .single-product .e-atc-qty-button-holder{
    display:flex;
    flex-wrap:nowrap!important;
    align-items:center;
    gap:20px;
  }
  .single-product .single_add_to_cart_button.elementor-button.button.alt,
  .single-product form.cart :where(.single_add_to_cart_button){
    margin-block-start:0;
    margin-inline-start:0;
  }
  .single-product :is(.elementor-widget-woocommerce-product-add-to-cart,.woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,.elementor-widget-wc-add-to-cart,.woocommerce div.product .elementor-widget-wc-add-to-cart).elementor-add-to-cart--layout-stacked .e-atc-qty-button-holder :where(.button,button):where(:not(:first-child)){
    margin-block-start:0;
  }
/* =========================
   NAV — HEADER & FOOTER
   ========================= */
:where(.elementor-location-header, header, .site-header)
  :where(.elementor-nav-menu) :where(a.elementor-item, .elementor-item){
  font-family: var(--ff-head) !important;
  font-size: var(--fs-h3) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--c-text) !important;
}
:where(.elementor-location-header, header, .site-header)
  :where(.elementor-nav-menu) li:last-child > :where(a.elementor-item, .elementor-item){
  color: var(--c-accent) !important;
}
:where(.elementor-location-header, header, .site-header)
  :where(.elementor-nav-menu--dropdown) :where(a.elementor-item, .elementor-item){
  font-family: var(--ff-head) !important;
  font-size: var(--fs-h3) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}
/* =========================
  MOBILE NAV POLISH
   ========================= */
@media (max-width: 480px){
  :where(.elementor-location-header, header, .site-header)
    :where(.elementor-nav-menu) :where(a.elementor-item, .elementor-item){
    letter-spacing: .05em !important;
  }
  .elementor .elementor-menu-toggle{
    min-width:44px; min-height:44px; padding:10px;
  }
  .elementor-nav-menu--dropdown a.elementor-item{
    padding:.9rem 1rem; line-height:1.4;
  }
}
/* Hide redundant login copy once signed in (icon-only keeps aria-label via JS) */
body.logged-in :where(.elementor-location-header, header, .site-header)
  a[href*="/my-account"] :where(.elementor-icon-list-text, .elementor-item-text, .elementor-button-text){
  display:none !important;
}
  .woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme{
    display:flex !important;
    align-items:center;
    gap:var(--space-2);
  }
fieldset{
  padding:0;
  border:0;
  margin-bottom: 20px;
}
.woocommerce form .form-row .required{
  color:var(--c-brand);
}

body.woocommerce-account .woocommerce-MyAccount-content button[name="save_account_details"]{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-accent);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-accent) !important;
  border:1px solid var(--c-brand) !important;
}

body.woocommerce-checkout .wc-block-components-totals-wrapper{
  padding:4px 0;
}

body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select{
  border:0 !important;
}

/* Woo notice buttons (e.g., View basket) */
.woocommerce-notices-wrapper .woocommerce-message .button.wc-forward{
  padding:0;
  background: transparent !important;
  min-height:0 !important;
  border:0;
  color:#0b4566 !important;
}

/* Mobile notice padding */
@media (max-width: 767px){
  body.woocommerce-page .woocommerce-notices-wrapper{
    padding-inline:0;
  }

  /* Cart items stack */
  .is-mobile table.wc-block-cart-items:not(.wc-block-mini-cart-items):not(:last-child) .wc-block-cart-items__row{
    display:flex;
    flex-direction:column;
  }

  .wc-block-cart table.wc-block-cart-items,
  .wc-block-cart table.wc-block-cart-items td,
  .wc-block-cart table.wc-block-cart-items th{
    margin:0 0 10px !important;
  }
}

/* Wholesale store cleanup: hide default Woo titles/breadcrumbs, keep hero heading visible */
body.page-wholesale-store :where(.woocommerce-breadcrumb, .woocommerce-products-header__title, .page-title){
  display:none !important;
}
body.page-wholesale-store h1{
  display:flex;
  justify-content: center;
}
