/*
  global.css — Woo + Elementor (Figma-derived)
  ---------------------------------------------
  Elementor "Disable Default Colours" + "Disable Default Fonts" = ON
  - Typography system: Figma tokens
  - Sections stack flush with square corners
  - Alt flip utility toggles colours (manual background handled separately)
*/

/* 0) Font */
@font-face{
  font-family:'Barlow Condensed';
  src:url('https://fonts.gstatic.com/s/barlowcondensed/v13/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3E.ttf') format('truetype');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Barlow Condensed';
  src:url('https://fonts.gstatic.com/s/barlowcondensed/v13/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3E.ttf') format('truetype');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Barlow';
  src:url('https://fonts.gstatic.com/s/barlow/v13/7cHqv4kjgoGqM7E3p-kc4A.ttf') format('truetype');
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

/* Layer order */
@layer base, components, utilities;

/* ========== BASE (tokens + resets + baseline) ========== */
@layer base {
  :root {
    /* Colours (tokens) */
    --c-brand:var(--e-global-color-primary,#7D583E);
    --c-accent:var(--e-global-color-secondary,#D8CAB2);
    --c-eggshell:var(--e-global-color-accent,#F2EDE4);
    --c-text:var(--e-global-color-text,var(--c-accent));
    --c-bg:var(--e-global-color-4829487,#FFFFFF);
    --c-surface:#fff;
    --c-muted:#E8F0FF;
    --c-border:#0B4566;
    --c-success:#138f52;
    --c-danger:#c64b4b;
    --c-warning:#b58100;
    --c-info:#245c9c;
    --Shop: var(--c-brand);
    --c-shop-brighter:#F2EDE4;

    /* Type families */
    --ff-head:var(--e-global-typography-primary-font-family,"Barlow Condensed"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-head:var(--e-global-typography-primary-font-weight,900);
    --tt-head:var(--e-global-typography-primary-text-transform,uppercase);
    --fs-h1:var(--e-global-typography-primary-font-size,clamp(3rem,calc(4vw + 1.2rem),6rem));
    --lh-h1:var(--e-global-typography-primary-line-height,0.8125em);
    --ls-h1:var(--e-global-typography-primary-letter-spacing,-0.02em);

    --ff-h2:var(--e-global-typography-secondary-font-family,"Barlow Condensed"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-h2:var(--e-global-typography-secondary-font-weight,900);
    --tt-h2:var(--e-global-typography-secondary-text-transform,uppercase);
    --fs-h2:var(--e-global-typography-secondary-font-size,clamp(1.5rem,2.5vw,3rem));
    --lh-h2:var(--e-global-typography-secondary-line-height,1em);

    --ff-h3:var(--e-global-typography-text-font-family,"Barlow Condensed"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-h3:var(--e-global-typography-text-font-weight,900);
    --tt-h3:var(--e-global-typography-text-text-transform,uppercase);
    --fs-h3:var(--e-global-typography-text-font-size,clamp(1.5rem,1.8vw,2.25rem));
    --lh-h3:var(--e-global-typography-text-line-height,1em);

    --ff-h4:var(--e-global-typography-accent-font-family,"Barlow Condensed"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-h4:var(--e-global-typography-accent-font-weight,900);
    --tt-h4:var(--e-global-typography-accent-text-transform,uppercase);
    --fs-h4:var(--e-global-typography-accent-font-size,clamp(1.125rem,1.25vw,1.5rem));
    --lh-h4:var(--e-global-typography-accent-line-height,1em);

    --ff-body:var(--e-global-typography-dbbd561-font-family,"Barlow"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-body:var(--e-global-typography-dbbd561-font-weight,700);
    --tt-body:var(--e-global-typography-dbbd561-text-transform,none);
    --fs-body:var(--e-global-typography-dbbd561-font-size,clamp(1rem,1.04vw,1.25rem));
    --lh-body:var(--e-global-typography-dbbd561-line-height,1.2);
    --ls-body:var(--e-global-typography-dbbd561-letter-spacing,0);

    --ff-btn:var(--e-global-typography-337443e-font-family,"Barlow Condensed"),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --fw-btn:var(--e-global-typography-337443e-font-weight,900);
    --tt-btn:var(--e-global-typography-337443e-text-transform,uppercase);

    /* Spacing scale (foundational) */
    --space-1:clamp(.25rem,.2rem + .3vw,.5rem);
    --space-2:clamp(.5rem,.4rem + .4vw,.75rem);
    --space-3:clamp(.75rem,.6rem + .6vw,1rem);
    --space-4:clamp(1rem,.8rem + 1vw,1.5rem);
    --space-5:clamp(1.5rem,1rem + 1.6vw,2rem);
    --space-6:clamp(2rem,1.25rem + 2.2vw,3rem);
    --space-7:clamp(3rem,1.5rem + 3vw,4rem);

    /* 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);

    /* Layout */
    --site-max:1920px;
    --site-gutter-x:clamp(1.875rem, 2.083vw, 1.875rem);
    --site-gutter-top:clamp(0.9375rem, 1.042vw, 0.9375rem);
    --site-gutter-bottom:clamp(0.9375rem, 1.042vw, 0.9375rem);
    --container-max:1920px;
    --container-pad:var(--space-4);
    --header-clearance: 0px;

    /* Derived section gutters (default behavior = p4) */
    --section-gutter-x: var(--site-gutter-x);
    --section-gutter-top: var(--site-gutter-top);
    --section-gutter-bottom: var(--site-gutter-bottom);
    --section-pad-top: var(--section-gutter-top);
    --section-pad-bottom: var(--section-gutter-bottom);
    --section-pad-inline: var(--section-gutter-x);

    /* Buttons */
    --fs-btn:var(--e-global-typography-337443e-font-size,clamp(1rem,1.04vw,1.25rem));
    --btn-pad-x:clamp(.875rem,1.2vw,1.25rem);
    --btn-pad-y:clamp(.5rem,.8vw,.875rem);

    /* Effects */
    --shadow:0 10px 30px rgba(0,0,0,.06);
    --focus:0 0 0 3px color-mix(in oklab, var(--c-brand), white 75%);

    /* Optional larger paragraph-style heading (24 → 36) */
    --fs-h3-xl: clamp(1.5rem, 1.8vw, 2.25rem);

    /* Default vertical rhythm between stacked widgets */
    --gap-heading-body: clamp(1rem, 0.8vw + 0.7rem, 1.5rem);
    --gap-heading-button: clamp(1.25rem, 1vw + 0.8rem, 1.875rem);
    --gap-heading-standalone: clamp(2rem, 1.5vw + 1.25rem, 3rem);
    --gap-body-button: clamp(1rem, 0.65vw + 0.7rem, 1.5rem);
  }

  /* Woo login button: remove right margin */
  .woocommerce .woocommerce-form-login .woocommerce-form-login__submit{
    margin-right:0;
  }

  /* Double section gutters on mobile */
  @media (max-width: 480px){
    :root{
      --section-gutter-x: calc(2 * var(--site-gutter-x));
      --section-gutter-top: calc(2 * var(--site-gutter-top));
      --section-gutter-bottom: calc(2 * var(--site-gutter-bottom));
    }
  }
  /* 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 } }

}

/* ========== COMPONENTS ========== */
@layer components{
  /* Typography baseline */
  body{
    font-family: var(--ff-body);
    font-size: var(--fs-body);
    font-weight: var(--fw-body);
    line-height: var(--lh-body);
    letter-spacing: var(--ls-body);
    text-transform: var(--tt-body);
  }
  h1,.h1{
    font-family: var(--ff-head);
    font-size: var(--fs-h1);
    font-weight: var(--fw-head);
    text-transform: var(--tt-head);
    line-height: var(--lh-h1);
    letter-spacing: var(--ls-h1);
  }
  h2,.h2{
    font-family: var(--ff-h2);
    font-size: var(--fs-h2);
    font-weight: var(--fw-h2);
    text-transform: var(--tt-h2);
    line-height: var(--lh-h2);
  }
  h3,.h3{
    font-family: var(--ff-h3);
    font-size: var(--fs-h3);
    font-weight: var(--fw-h3);
    text-transform: var(--tt-h3);
    line-height: var(--lh-h3);
  }
  h4,.h4,
  h5,.h5,
  h6,.h6{
    font-family: var(--ff-h4);
    font-size: var(--fs-h4);
    font-weight: var(--fw-h4);
    text-transform: var(--tt-h4);
    line-height: var(--lh-h4);
  }
  button,
  .button,
  input[type="button"],
  input[type="submit"],
  .wp-element-button{
    font-family: var(--ff-btn);
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
  }

  /* Gutters are applied by default via variables below */
  .container{ width:100%; max-width: var(--container-max); margin-inline:auto; padding-inline:0; }
  body:not([class*=elementor-page-]) .site-main{
    max-width:100% !important;
    padding-inline:8% !important;
  }

  /* Forms */
  .woocommerce input, .woocommerce select, .woocommerce textarea,
  input, select, textarea{
    padding:var(--space-2) var(--space-3);
    background:var(--c-brand);
    color:var(--c-surface);
  }
  input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}

  /* Notices */
  .woocommerce-info,
  .woocommerce-message,
  .woocommerce-error{
    display:flex;
    align-items:center;
    gap:var(--space-3);
    padding:1em 2em 1em 5em !important;
    margin:0;
    background:var(--c-shop-brighter) !important;
    color:var(--c-brand) !important;
    border:none !important;
    border-block:0 !important;
    border-inline:0 !important;
    box-shadow:none !important;
    outline:none;
    text-align:left;
    line-height:1.4;
  }
  .woocommerce-info::before,
  .woocommerce-message::before,
  .woocommerce-error::before{
    position:static;
    margin:0;
    margin-inline-end:var(--space-3);
    font-size:1.5rem;
    line-height:1;
    align-self:center;
    color:var(--c-brand) !important;
  }
  .woocommerce-info :where(p,strong,span,a),
  .woocommerce-message :where(p,strong,span,a),
  .woocommerce-error :where(p,strong,span,a){
    color:var(--c-brand);
  }
  .woocommerce-info .button,
  .woocommerce-message .button,
  .woocommerce-error .button{
    margin-inline-start:auto;
  }

  /* Product cards */
  .product-card{
    background:var(--c-surface);
    border:1px solid var(--c-border);
    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;
    padding:.25em .6em;
    font-size:var(--fs-300)
  }

  /* Woo QoL */
  .woocommerce .quantity .qty{max-width:5.5em;text-align:center}

  /* Elementor mini cart buttons */
  .elementor-menu-cart__footer-buttons .elementor-button{
    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
  }
.elementor-menu-cart__subtotal,
.elementor-menu-cart__subtotal :where(span,strong){
    color: var(--c-surface);
}

  /* Cart / basket layout */
  .woocommerce-cart{
    --cart-surface: var(--c-eggshell);
    --cart-border: var(--c-eggshell);
    --cart-heading: var(--c-brand);
    --cart-subtext: color-mix(in srgb, var(--c-brand) 70%, white 30%);
  }
  .woocommerce-cart .woocommerce{
    display:grid;
    gap:var(--space-5);
    align-items:start;
  }
  @media (min-width: 992px){
    .woocommerce-cart .woocommerce{
      grid-template-columns: minmax(0, 2.1fr) minmax(280px, 1fr);
    }
  }
  .woocommerce-cart .woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals{
    background:var(--cart-surface);
    padding:var(--space-4);
    border:1px solid var(--cart-border);
    border-radius:12px;
    box-shadow:var(--shadow);
  }
  .woocommerce-cart table.shop_table{
    width:100%;
    border:0;
    border-collapse:separate;
    border-spacing:0;
    background:transparent;
  }
  .woocommerce-cart table.shop_table thead{
    border-bottom:2px solid var(--cart-border);
  }
  .woocommerce-cart table.shop_table th{
    font-family:var(--ff-head);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--cart-heading);
    padding-block:var(--space-2);
    padding-inline:0;
    border-bottom:0;
  }
  .woocommerce-cart table.shop_table td{
    padding-block:var(--space-3);
    padding-inline:0;
    border-bottom:1px solid var(--cart-border);
    vertical-align:middle;
  }
  .woocommerce-cart table.shop_table td.product-remove,
  .woocommerce-cart table.shop_table th.product-remove{
    width:48px;
  }
  .woocommerce-cart table.shop_table td.product-thumbnail img{
    width:96px;
    height:96px;
    border-radius:12px;
    object-fit:cover;
    box-shadow:var(--shadow);
  }
  .woocommerce-cart table.shop_table td.product-name a{
    color:var(--cart-heading);
    font-weight:700;
    text-decoration:none;
  }
  .woocommerce-cart table.shop_table td.product-name .variation,
  .woocommerce-cart table.shop_table td.product-name .description,
  .woocommerce-cart table.shop_table td.product-name p{
    color:var(--cart-subtext);
    font-size:var(--fs-400);
    margin:var(--space-1) 0 0;
  }
  .woocommerce-cart table.shop_table td.product-quantity .quantity{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
  }
  .woocommerce-cart table.shop_table td.product-subtotal,
  .woocommerce-cart table.shop_table td.product-price{
    font-weight:700;
    color:var(--cart-heading);
  }
  .woocommerce-cart .cart_totals h2{
    font-family:var(--ff-head);
    font-weight:700;
    text-transform:uppercase;
    margin:0 0 var(--space-3);
    color:var(--cart-heading);
  }
  .woocommerce-cart .cart_totals table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
  }
  .woocommerce-cart .cart_totals table th,
  .woocommerce-cart .cart_totals table td{
    padding-block:var(--space-2);
    border-bottom:1px solid var(--cart-border);
    color:var(--cart-heading);
  }
  .woocommerce-cart .wc-proceed-to-checkout{
    margin-top:var(--space-4);
  }
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button{
    width:100%;
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-shop-brighter);
    --btn-bd: var(--c-brand);
    background:var(--c-brand)!important;
    color:var(--c-shop-brighter)!important;
    border-color:var(--c-brand)!important;
  }
  body.woocommerce-cart .site-main,
  body.woocommerce-cart .elementor-location-single,
  body.woocommerce-cart .elementor{
    margin-top:0;
  }
  body.woocommerce-cart{
    background:var(--c-shop-brighter) !important;
    color:var(--c-brand);
  }
  body.woocommerce-cart #page,
  body.woocommerce-cart .site{
    background:transparent;
  }
  body.woocommerce-cart .site-main :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td),
  body.woocommerce-cart .woocommerce :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td){
    color:var(--c-brand) !important;
  }
  body.woocommerce-cart .entry-title,
  body.woocommerce-cart .page-title,
  body.woocommerce-cart .elementor-element .elementor-heading-title{
    display:none !important;
  }
body.woocommerce-cart :where(.button, .button.alt, .button.checkout-button, .checkout-button, a.button){
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-surface);
  --btn-bd: var(--c-brand);
  background:var(--c-brand) !important;
  color:var(--c-surface) !important;
  border-color:var(--c-brand) !important;
  border-radius:4px !important;
}
  body.woocommerce-cart .cart_totals h2,
  body.woocommerce-cart .cart_totals :where(strong, label, span, button){
    color:var(--c-brand) !important;
  }
  body.woocommerce-cart .cart_totals .coupon .input-text,
  body.woocommerce-cart .cart_totals .coupon input[type="text"]{
    background:var(--c-shop-brighter);
    border:1px solid var(--cart-border);
    color:var(--c-brand);
  }
  body.woocommerce-cart .cart_totals .coupon .input-text::placeholder,
  body.woocommerce-cart .cart_totals .coupon input[type="text"]::placeholder{
    color:color-mix(in srgb, var(--c-brand) 65%, white 35%);
  }
body.woocommerce-cart .cart_totals .coupon .button,
body.woocommerce-cart .cart_totals button[name="apply_coupon"],
body.woocommerce-cart .cart_totals .coupon input[type="submit"]{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-surface);
  --btn-bd: var(--c-brand);
  background:var(--c-brand) !important;
  color:var(--c-surface) !important;
  border:1px solid var(--c-brand) !important;
  border-radius:4px !important;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button.wc-forward{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-surface);
  --btn-bd: transparent;
  background:var(--c-brand) !important;
  color:var(--c-surface) !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:4px !important;
}
body.woocommerce-cart table.shop_table td.product-name a{
  color:var(--c-brand) !important;
  text-decoration:none;
}
body.woocommerce-cart table.shop_table td.product-name a:visited{
  color:var(--c-brand) !important;
}

/* WooCommerce Blocks cart overrides */
}

/* ========== 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; }
  /* Overlap helpers removed; layout uses standard stacking */
  .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); }

  /* 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); }

  .woocommerce { color: var(--c-brand); }
  .woocommerce :where(p, li, small, strong, em, blockquote, figcaption, label, legend, dd, dt, th, td) { color: var(--c-brand); }
  .woocommerce-notices-wrapper{
    margin-top:0;
    border:none !important;
    box-shadow:none !important;
  }

  .wc-block-cart__main .wc-block-cart-items,
  .wc-block-cart .wp-block-woocommerce-cart-order-summary-block{
    border-bottom:0 !important;
  }
  .wc-block-cart table{
    margin:0 !important;
  }
  .wc-block-components-totals-wrapper{
    border:0 !important;
  }
  .wc-block-components-form .wc-block-components-text-input :is(input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="text"],input[type="url"],textarea):focus,
  .wc-block-components-text-input :is(input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="text"],input[type="url"],textarea):focus{
    background:transparent !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    color:var(--c-brand) !important;
    box-shadow:none !important;
  }
  .wc-block-components-form .wc-block-components-text-input :is(input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="text"],input[type="url"],textarea),
  .wc-block-components-text-input :is(input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="text"],input[type="url"],textarea){
    background:transparent !important;
    border:1px solid color-mix(in srgb, var(--c-brand) 35%, transparent) !important;
    border-radius:4px !important;
    color:var(--c-brand) !important;
    box-shadow:none !important;
  }
  .wc-blocks-components-select .wc-blocks-components-select__select,
  .wc-blocks-components-select .wc-blocks-components-select__select:focus{
    background:transparent !important;
    border:1px solid color-mix(in srgb, var(--c-brand) 35%, transparent) !important;
    border-radius:4px !important;
    color:var(--c-brand) !important;
    box-shadow:none !important;
  }
  .wc-blocks-components-select .wc-blocks-components-select__control,
  .wc-blocks-components-select .wc-blocks-components-select__input{
    background:transparent !important;
    color:var(--c-brand) !important;
  }
  .wc-blocks-components-select .wc-blocks-components-select__container{
    background:transparent !important;
  }
  .wc-blocks-components-select .wc-blocks-components-select__expand{
    color:var(--c-brand) !important;
    fill:var(--c-brand) !important;
  }
  .wc-block-components-totals-coupon .wc-block-components-panel__button{
    color:var(--c-brand) !important;
  }
  .wc-block-components-button .wc-block-components-button__button,
  .wc-block-components-button .wc-block-components-button__button.wc-block-components-button__button,
  .wc-block-components-button .wc-block-components-button__button.wc-block-components-button__button:visited{
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    text-decoration:none !important;
  }
  button.wc-block-components-button__button,
  .wc-block-components-button__button.wp-element-button,
  .wc-block-components-button__button.components-button,
  .wc-block-components-button.wp-element-button,
  .wc-block-components-button.wp-element-button.contained,
  .wc-block-components-checkout-return-to-cart-button,
  .wc-block-components-checkout-place-order-button{
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    text-decoration:none !important;
  }

  /* WooCommerce Blocks cart overrides */
  body.woocommerce-cart .wc-block-cart{
    background:var(--c-shop-brighter);
    color:var(--c-brand);
  }
  body.woocommerce-cart .wc-block-cart a{
    color:var(--c-brand) !important;
  }
  body.woocommerce-cart .wc-block-cart a.wc-block-components-product-name,
  body.woocommerce-cart .wc-block-cart a.wc-block-components-product-name:visited{
    color:var(--c-brand) !important;
    text-decoration:none;
  }
  body.woocommerce-cart .wc-block-cart .wc-block-cart__coupon-form input[type="text"],
  body.woocommerce-cart .wc-block-cart .wc-block-cart__coupon-form .wc-block-components-text-input input{
    background:var(--c-shop-brighter);
    border:1px solid var(--cart-border);
    color:var(--c-brand);
  }
  body.woocommerce-cart .wc-block-cart .wc-block-cart__coupon-form input::placeholder,
  body.woocommerce-cart .wc-block-cart .wc-block-cart__coupon-form .wc-block-components-text-input input::placeholder{
    color:color-mix(in srgb, var(--c-brand) 65%, white 35%);
  }
  body.woocommerce-cart .wc-block-cart .wc-block-components-button,
  body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-button,
  body.woocommerce-cart .wc-block-cart button[name="apply_coupon"],
  body.woocommerce-cart .wc-block-cart .wc-block-components-button.wp-element-button{
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px;
    text-decoration:none !important;
  }
  body.woocommerce-cart .wc-block-cart .wc-block-components-button.is-disabled,
  body.woocommerce-cart .wc-block-cart .wc-block-components-button[disabled]{
    opacity:1;
  }

  /* Checkout layout */
  .woocommerce-checkout{
    --checkout-surface: var(--c-eggshell);
    --checkout-border: var(--c-eggshell);
    --checkout-heading: var(--c-brand);
    --checkout-subtext: color-mix(in srgb, var(--c-brand) 70%, white 30%);
  }
  .woocommerce-checkout form.checkout{
    display:grid;
    gap:var(--space-5);
    align-items:start;
  }
  @media (min-width: 992px){
    .woocommerce-checkout form.checkout{
      grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr);
    }
  }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review{
    background:var(--checkout-surface);
    padding:var(--space-4);
    border:1px solid var(--checkout-border);
    border-radius:12px;
    box-shadow:var(--shadow);
  }
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2{
    display:grid;
    gap:var(--space-3);
  }
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review :where(h2,h3){
    font-family:var(--ff-head);
    font-weight:700;
    text-transform:uppercase;
    margin:0 0 var(--space-3);
    color:var(--checkout-heading);
  }
  .woocommerce-checkout table.shop_table,
  .woocommerce-checkout .woocommerce-checkout-review-order-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    background:transparent;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table thead{
    border-bottom:2px solid var(--checkout-border);
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table th{
    font-family:var(--ff-head);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--checkout-heading);
    padding-block:var(--space-2);
    padding-inline:0;
    border-bottom:0;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table td{
    padding-block:var(--space-3);
    padding-inline:0;
    border-bottom:1px solid var(--checkout-border);
    vertical-align:middle;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name{
    color:var(--checkout-heading);
    font-weight:700;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total{
    font-weight:700;
    color:var(--checkout-heading);
    text-align:right;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{
    font-family:var(--ff-body);
    font-size:var(--fs-body);
    font-weight:var(--fw-body);
    line-height:var(--lh-body);
    text-transform:var(--tt-body);
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td{
    font-family:var(--ff-h2);
    font-size:var(--fs-h2);
    font-weight:var(--fw-h2);
    text-transform:var(--tt-h2);
    line-height:var(--lh-h2);
  }
  .woocommerce-checkout .woocommerce-checkout-payment,
  .woocommerce-checkout #payment{
    margin-top:var(--space-4);
    padding-top:var(--space-3);
    border-top:1px solid var(--checkout-border);
  }
  .woocommerce-checkout #payment .payment_methods{
    margin:0 0 var(--space-3);
    padding:0;
    list-style:none;
    display:grid;
    gap:var(--space-3);
  }
  .woocommerce-checkout #payment .payment_methods > li{
    border:1px solid var(--checkout-border);
    border-radius:8px;
    padding:var(--space-3);
    background:color-mix(in srgb, var(--checkout-surface) 92%, white 8%);
  }
  .woocommerce-checkout #payment .payment_box{
    margin:var(--space-3) 0 0;
    padding:var(--space-3);
    border-radius:8px;
    background:color-mix(in srgb, var(--checkout-surface) 85%, white 15%);
  }
  .woocommerce-checkout .woocommerce-form-coupon-toggle{
    margin-bottom:var(--space-4);
    background:var(--checkout-surface);
    padding:var(--space-3);
    border-radius:12px;
    border:1px solid var(--checkout-border);
    box-shadow:var(--shadow);
  }
  .woocommerce-checkout .woocommerce-form-coupon{
    display:grid;
    gap:var(--space-3);
    margin:var(--space-3) 0 0;
  }
  .woocommerce-checkout .woocommerce-form-coupon .form-row{
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-2);
  }
  .woocommerce-checkout .woocommerce-form-coupon .input-text{
    background:var(--c-shop-brighter);
    border:1px solid var(--checkout-border);
    color:var(--c-brand);
  }
  .woocommerce-checkout .woocommerce-form-coupon label{
    font-family: var(--ff-h3);
    font-size: var(--fs-h3);
    font-weight: var(--fw-h3);
    text-transform: var(--tt-h3);
    line-height: var(--lh-h3);
  }
  .woocommerce-checkout .woocommerce-form-coupon :where(button,input[type="submit"],.button){
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    text-decoration:none !important;
  }
  body.woocommerce-checkout .woocommerce form .input-text,
  body.woocommerce-checkout .woocommerce form input[type="text"],
  body.woocommerce-checkout .woocommerce form input[type="email"],
  body.woocommerce-checkout .woocommerce form input[type="tel"],
  body.woocommerce-checkout .woocommerce form input[type="password"],
  body.woocommerce-checkout .woocommerce form input[type="number"],
  body.woocommerce-checkout .woocommerce form select,
  body.woocommerce-checkout .woocommerce form textarea{
    background:var(--c-shop-brighter);
    color:var(--c-brand);
    border:1px solid var(--checkout-border);
    border-radius:6px;
    box-shadow:none;
  }
  body.woocommerce-checkout .woocommerce form .input-text::placeholder,
  body.woocommerce-checkout .woocommerce form textarea::placeholder{
    color:color-mix(in srgb, var(--c-brand) 65%, white 35%);
  }
  body.woocommerce-checkout .woocommerce form .select2-container .select2-selection,
  body.woocommerce-checkout .woocommerce form .select2-container--default .select2-selection--single{
    background:var(--c-shop-brighter);
    color:var(--c-brand);
    border:1px solid var(--checkout-border);
    border-radius:6px;
    min-height:48px;
    display:flex;
    align-items:center;
  }
  body.woocommerce-checkout .woocommerce form .select2-selection__rendered{
    color:var(--c-brand);
  }
  body.woocommerce-checkout .woocommerce form .select2-selection__placeholder{
    color:color-mix(in srgb, var(--c-brand) 65%, white 35%);
  }
  .woocommerce-checkout .woocommerce-additional-fields,
  .woocommerce-checkout .woocommerce-billing-fields{
    display:grid;
    gap:var(--space-3);
  }
  .woocommerce-checkout #order_review .place-order{
    margin-top:var(--space-4);
    display:grid;
    gap:var(--space-3);
  }
  body.woocommerce-checkout button#place_order{
    width:100%;
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border-color:var(--c-brand) !important;
    border-radius:4px !important;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
  }
  body.woocommerce-checkout button#place_order:hover,
  body.woocommerce-checkout button#place_order:focus-visible{
    background:color-mix(in srgb, var(--c-brand) 85%, black 5%) !important;
    color:var(--c-surface) !important;
  }
  body.woocommerce-checkout .wc-backward,
  body.woocommerce-checkout a.wc-backward,
  body.woocommerce-checkout .button.wc-backward{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    line-height:1;
    text-decoration:none !important;
  }

  /* Woo cart block typography alignment with H3 preset */
  body.woocommerce-cart .wc-block-cart .wc-block-cart-items__header-product,
  body.woocommerce-cart .wc-block-cart .wc-block-cart-items__header-image,
  body.woocommerce-cart .wc-block-cart .wc-block-cart-items__header-total{
    font-family: var(--ff-h4) !important;
    font-size: var(--fs-h4) !important;
    font-weight: var(--fw-h4) !important;
    text-transform: var(--tt-h4) !important;
    line-height: var(--lh-h4) !important;
  }
  body.woocommerce-cart .wc-block-components-product-name{
    font-family: var(--ff-h3) !important;
    font-size: var(--fs-h3) !important;
    font-weight: var(--fw-h3) !important;
    text-transform: var(--tt-h3) !important;
    line-height:1 !important;
    text-decoration:none !important;
  }
  body.woocommerce-checkout .wc-block-components-product-name{
    line-height:1!important;
  }
  body.woocommerce-cart .wc-block-cart-item__prices,
  body.woocommerce-cart .wc-block-cart-item__prices .price.wc-block-components-product-price,
  body.woocommerce-cart .wc-block-components-product-metadata{
    font-family: var(--ff-body) !important;
    font-size: var(--fs-body) !important;
    font-weight: var(--fw-body) !important;
    line-height: var(--lh-body) !important;
    text-transform: var(--tt-body);
  }
  body.woocommerce-cart .wc-block-components-totals-coupon.wc-block-components-panel,
  body.woocommerce-cart .wc-block-components-totals-wrapper,
  body.woocommerce-cart .wc-block-cart .wc-block-components-totals-item__total,
  body.woocommerce-cart .wc-block-cart .wc-block-components-totals-item__label{
    font-family: var(--ff-h4) !important;
    font-size: var(--fs-h4) !important;
    font-weight: var(--fw-h4) !important;
    text-transform: var(--tt-h4) !important;
    line-height: var(--lh-h4) !important;
  }
  /* Woo cart typography specific */
  body.woocommerce-cart table.shop_table thead th{
    font-family: var(--ff-h3);
    font-size: var(--fs-h3) !important;
    font-weight: var(--fw-h3);
    text-transform: var(--tt-h3);
    line-height: var(--lh-h3);
    letter-spacing: var(--ls-body);
  }
  body.woocommerce-cart table.shop_table td.product-name > a{
    font-family: var(--ff-h2);
    font-size: var(--fs-h2) !important;
    font-weight: var(--fw-h2);
    text-transform: var(--tt-h2);
    line-height: var(--lh-h2);
    text-decoration:none !important;
  }
  body.woocommerce-cart table.shop_table td.product-name p,
  body.woocommerce-cart table.shop_table td.product-name .variation,
  body.woocommerce-cart table.shop_table td.product-name span,
  body.woocommerce-cart table.shop_table td.product-price,
  body.woocommerce-cart table.shop_table td.product-subtotal,
  body.woocommerce-cart table.shop_table td{
    font-family: var(--ff-body);
    font-size: var(--fs-body) !important;
    font-weight: var(--fw-body);
    line-height: var(--lh-body);
    text-transform: var(--tt-body);
  }
  body.woocommerce-cart .cart_totals h2,
  body.woocommerce-cart .wc-block-cart .wc-block-cart__totals-title,
  body.woocommerce-cart .wc-block-cart .wc-block-components-panel__title{
    font-family: var(--ff-h3);
    font-size: var(--fs-h3) !important;
    font-weight: var(--fw-h3);
    text-transform: var(--tt-h3);
    line-height: var(--lh-h3);
  }
  body.woocommerce-cart .cart_totals .shop_table tr.order-total th,
  body.woocommerce-cart .cart_totals .shop_table tr.order-total td,
  body.woocommerce-cart .wc-block-cart .wc-block-components-totals-item__label--subtotal,
  body.woocommerce-cart .wc-block-cart .wc-block-components-totals-item__total{
    font-family: var(--ff-h2);
    font-size: var(--fs-h2) !important;
    font-weight: var(--fw-h2);
    text-transform: var(--tt-h2);
    line-height: var(--lh-h2);
  }
  body.woocommerce-cart .cart_totals .coupon label,
  body.woocommerce-cart .wc-block-cart .wc-block-cart__coupon-form label{
    font-family: var(--ff-h3);
    font-size: var(--fs-h3) !important;
    font-weight: var(--fw-h3);
    text-transform: var(--tt-h3);
    line-height: var(--lh-h3);
  }
  body.woocommerce-cart a.remove,
  body.woocommerce-cart .remove,
  body.woocommerce-cart .wc-block-cart-item__remove-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn)) !important;
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    background: var(--c-brand) !important;
    color: var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    text-decoration:none !important;
    gap:.5em;
    line-height:1;
  }

  body.woocommerce-checkout{
    background:var(--c-shop-brighter) !important;
    color:var(--c-brand);
  }
  body.woocommerce-checkout #page,
  body.woocommerce-checkout .site{
    background:transparent;
  }
  body.woocommerce-checkout .site-main :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td),
  body.woocommerce-checkout .woocommerce :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td){
    color:var(--c-brand) !important;
  }
  body.woocommerce-checkout .entry-title,
  body.woocommerce-checkout .page-title,
  body.woocommerce-checkout .elementor-element .elementor-heading-title{
    display:none !important;
  }

  /* 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); }

  /* Typographic helper */
  .h-p{
    font-family: var(--ff-head);
    font-weight: 700;
    font-size: var(--fs-h4);
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--c-text);
    margin: 0;
    text-transform: uppercase;
  }
}

/* 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;
  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; }

/* Enquiry tabs layout */
.enquiry-tabs .tabs{
  display:flex;
  gap:var(--space-3);
  justify-content:center;
  flex-wrap:wrap;
}
.enquiry-tabs .tab{
  flex:1 1 clamp(160px,28vw,240px);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.enquiry-tabs .tab h2{ margin:0; }

@media (max-width: 640px){
  .enquiry-tabs .tabs{
    flex-direction:column;
    align-items:stretch;
  }
  .enquiry-tabs .tab{
    width:100%;
  }
}

/* =============================
   BUTTONS — BASELINE + VARIANTS + CONTEXT FLIP
   ============================= */
:where(
  .elementor a.elementor-button,
  .elementor .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);
  border: 1px solid var(--btn-bd, var(--c-brand));
  background: var(--btn-bg, var(--c-brand));
  color: var(--btn-fg);
  font-family: var(--ff-head);
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  letter-spacing: 0;
  text-transform: uppercase;
}
:where(.elementor) .elementor-button{
  padding: var(--btn-pad-y) var(--btn-pad-x) !important;
}

/* WooCommerce buttons default to filled shop colour */
.woocommerce :where(a.button, button.button, input.button):not(.single_add_to_cart_button){
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-surface);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-surface) !important;
  border-color: var(--c-brand) !important;
  border-radius:4px;
}
.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-surface);
  --btn-bd: var(--c-brand);
  background: var(--c-brand) !important;
  color: var(--c-surface) !important;
  border-color: var(--c-brand) !important;
}

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover{
  background: var(--Shop) !important;
  border-color: var(--Shop) !important;
  color: var(--c-surface) !important;
}

/* Focus ring */
:where(
  .elementor a.elementor-button,
  .elementor .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 */
.wc-block-components-button .wc-block-components-button__button *{
  color: inherit; fill: currentColor;
}

/* 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{
  display:flex;
}
: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 > * + *{
  margin-inline-start: 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;
}

/* =========================
   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.elementor-button{
  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-family: var(--ff-head);
  font-weight: 700;
  letter-spacing: 0;
  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 .elementor-button-text{ color: inherit; }
.ff-attr__btn.elementor-button:hover,
.ff-attr__btn.elementor-button:focus-visible{
  background: var(--btn-bg);
  color: var(--btn-fg);
  border-color: var(--btn-bd);
}
.ff-attr__btn.is-selected,
.ff-attr__btn.is-selected.btn--alt{
  --btn-bg: var(--c-brand);
  --btn-fg: var(--c-shop-brighter);
  --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;
}

/* =========================
   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;
  grid-template-columns: auto 1fr;
  align-items:center;
  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;
  margin:0;
  text-align:left;
}
.single-product table.variations td.value{
  display:flex;
  flex-wrap:wrap;
  gap: var(--space-2) var(--space-3);
  justify-content:flex-start;
  align-items:center;
  line-height:1;
}
.single-product table.variations td.value select{
  text-align:left;
}
.single-product table.variations .reset_variations{
  margin-top: 0;
  display:inline-flex;
  align-items:center;
  margin-left:0;
}
.single-product .reset_variations,
.woocommerce .reset_variations{
  display:none !important;
  visibility:hidden !important;
}

:where(.elementor-location-header, header, .site-header)
  :where(.elementor-nav-menu) li:last-child > :where(a.elementor-item, .elementor-item){
  display: inline-block;
}
.elementor-nav-menu.menu-alt li:last-child > :is(a.elementor-item, .elementor-item, span.elementor-item){
  background: var(--Shop) !important;
  color: var(--c-surface) !important;
  border-color: var(--Shop) !important;
}
:where(.menu-alt) li:last-child > :is(a.elementor-item, .elementor-item, span.elementor-item){
  background: var(--Shop) !important;
  color: var(--c-surface) !important;
  border-color: var(--Shop) !important;
}
:where(.elementor-location-header, header, .site-header)
  :where(.elementor-nav-menu.menu-alt) li:last-child > :where(a.elementor-item, .elementor-item){
  background: var(--Shop) !important;
  color: var(--c-surface) !important;
  border-color: var(--Shop) !important;
}
:where(.elementor-location-header, header, .site-header)
  :where(.menu-alt) li:last-child > :where(a.elementor-item, .elementor-item){
  background: var(--Shop) !important;
  color: var(--c-surface) !important;
  border-color: var(--Shop) !important;
}
@media (min-width: 1025px){
  :where(.elementor-location-header, header, .site-header)
    :where(.elementor-nav-menu) li:last-child > :where(a.elementor-item, .elementor-item){
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x)!important;
    border-radius:4px;
    background: var(--c-accent);
    color: var(--c-brand)!important;
    font-family: var(--ff-head);
    font-size: var(--fs-btn);
    font-weight: 900;
    font-style: normal;
    text-transform: uppercase;
    border: 1px solid var(--c-accent);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  }

  :where(.elementor-location-header, header, .site-header)
    :where(.elementor-nav-menu.menu-alt) li:last-child > :where(a.elementor-item, .elementor-item){
    background: var(--Shop) !important;
    color: var(--c-surface) !important;
    border-color: var(--Shop) !important;
  }
  :where(.elementor-location-header, header, .site-header)
    :where(.menu-alt) li:last-child > :where(a.elementor-item, .elementor-item){
    background: var(--Shop) !important;
    color: var(--c-surface) !important;
    border-color: var(--Shop) !important;
  }
}
  body.woocommerce-account{
    background:var(--c-shop-brighter);
    color:var(--c-brand);
  }
  body.woocommerce-account #page,
  body.woocommerce-account .site{
    background:transparent;
  }
  body.woocommerce-account .site-main{
    padding-block-end:5%;
  }
  body.woocommerce-account .site-main :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td),
  body.woocommerce-account .woocommerce :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,label,th,td){
    color:var(--c-brand);
  }
  body.woocommerce-account .page-header .entry-title,
  body.woocommerce-account .page-header{
    display:none !important;
  }
  body.woocommerce-account .woocommerce{
    display:block;
  }
  @media (min-width: 992px){
    body.woocommerce-account .woocommerce{
      display:flex;
      gap:var(--space-5);
    }
    body.woocommerce-account .woocommerce-MyAccount-navigation{
      flex:0 0 20%;
    }
    body.woocommerce-account .woocommerce-MyAccount-content{
      flex:1 1 80%;
    }
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:var(--space-3);
    max-width:fit-content;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation li a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    background:var(--c-brand);
    color:var(--c-surface);
    border:1px solid var(--c-brand);
    border-radius:4px;
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    text-decoration:none;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
    background:var(--c-accent);
    color:var(--c-brand);
    border-color:var(--c-accent);
  }
  body.woocommerce-account .woocommerce-MyAccount-content a{
    color:var(--c-brand);
  }
  body.woocommerce-account .woocommerce form :where(input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="url"],textarea,select){
    background:var(--c-shop-brighter) !important;
    color:var(--c-brand) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    box-shadow:none !important;
  }
  body.woocommerce-account .woocommerce form :where(input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="url"],textarea)::placeholder{
    color:color-mix(in srgb, var(--c-brand) 65%, white 35%) !important;
  }
  body.woocommerce-account .woocommerce form :where(input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="url"],textarea,select):focus{
    background:transparent !important;
    border:1px solid var(--c-brand) !important;
    color:var(--c-brand) !important;
    outline:none;
  }
  body.woocommerce-account .woocommerce fieldset{
    padding:0 !important;
    border:0 !important;
  }
  body.woocommerce-account .woocommerce form .form-row{
    display:flex;
    flex-direction:column;
    gap:0;
  }
  body.woocommerce-account .woocommerce form .form-row .required{
    color:var(--c-brand);
  }
  body.woocommerce-account .woocommerce form .button,
  body.woocommerce-account .woocommerce form input[type="submit"]{
    --btn-bg: var(--c-brand);
    --btn-fg: var(--c-surface);
    --btn-bd: var(--c-brand);
    background:var(--c-brand) !important;
    color:var(--c-surface) !important;
    border:1px solid var(--c-brand) !important;
    border-radius:4px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: var(--btn-pad-y) var(--btn-pad-x);
    font-family: var(--ff-btn);
    font-size: max(1rem, var(--fs-btn));
    font-weight: var(--fw-btn);
    text-transform: var(--tt-btn);
    text-decoration:none !important;
  }
  body.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-form-login, form.login){
    margin-inline:auto;
    max-width:420px;
    background:transparent;
    border:0 !important;
    padding:0;
  }
  body.woocommerce-account .woocommerce-MyAccount-content form.login .woocommerce-form-login__submit{
    margin-top:var(--space-3);
  }
  body.woocommerce-account .woocommerce-MyAccount-content form.login .woocommerce-LostPassword a{
    color:var(--c-brand) !important;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:var(--space-4);
  }
  body.woocommerce-account:not(.logged-in) .woocommerce h2{
    text-align:center;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .u-columns{
    width:100%;
    display:grid;
    justify-content:center;
    gap:var(--space-4);
  }
  body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
  body.woocommerce-account:not(.logged-in) .woocommerce .u-column2{
    float:none;
    width:100%;
    max-width:460px;
    margin-inline:auto;
    border:0 !important;
    padding:0;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce form.login,
  body.woocommerce-account:not(.logged-in) .woocommerce form.register{
    width:100%;
    max-width:460px;
    margin-inline:auto;
    border:0 !important;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  body.woocommerce-account:not(.logged-in) .woocommerce form.login .woocommerce-LostPassword a,
  body.woocommerce-account:not(.logged-in) .woocommerce form.login .woocommerce-LostPassword a:visited{
    color:var(--c-brand) !important;
  }
body.woocommerce-account:not(.logged-in) .woocommerce form.login .form-row{
  width:100%;
}

/* =========================
   PRODUCT FORM POLISH
   ========================= */
: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{
  display:flex;
  flex-direction:column;
  gap:0;
}

.woocommerce div.product table.variations{
  width:100%;
}

.woocommerce div.product table.variations tr{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:var(--space-3);
  margin:0;
  text-align:left;
}

.woocommerce div.product table.variations td.label{
  flex:0 0 auto;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* Keep variation label and dropdown aligned across rows */
.woocommerce div.product table.variations tbody{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
  align-items:flex-start;
}
.woocommerce div.product table.variations tr{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-1);
  width:calc(50% - var(--space-3) / 2);
}
.woocommerce div.product table.variations th.label{
  flex:0 0 auto;
  width:100%;
  text-align:left;
}
.woocommerce div.product table.variations td.value{
  flex:0 0 auto;
  width:100%;
}
@media (max-width: 640px){
  .woocommerce div.product table.variations tbody{
    flex-direction:column;
    gap:var(--space-2);
  }
  .woocommerce div.product table.variations tr{
    width:100%;
  }
}


.woocommerce div.product table.variations td.value{
  flex:1 1 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:var(--space-3);
  line-height:1;
}

.woocommerce div.product table.variations td.value select{
  display:inline-block;
  width:auto;
  min-width: min(220px, 100%);
  max-width: min(100%, 320px);
  padding-block: var(--btn-pad-y);
  padding-inline: calc(var(--btn-pad-x)*0.75) calc(var(--btn-pad-x)*1.1);
  text-align:left;
  background: var(--c-shop-brighter);
  color: var(--c-brand);
  border:1px solid var(--c-brand);
  border-radius:4px;
  background-position:right .85rem center;
  line-height:1.1;
  box-shadow:none;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.woocommerce div.product table.variations td.value select:focus-visible{
  border-color: var(--c-brand);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--c-brand) 25%, transparent);
  outline:none;
}

.woocommerce .elementor-42 .elementor-element.elementor-element-8d2c45d form.cart table.variations td.value select{
  border:solid;
}

.woocommerce div.product form.cart .reset_variations{
  display:none !important;
  visibility:hidden !important;
}

.woocommerce div.product .woocommerce-variation.single_variation{
  color:var(--c-brand);
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  line-height:1.55;
  margin-block:var(--space-2) 0;
}

.woocommerce div.product .woocommerce-variation-description,
.woocommerce div.product .woocommerce-variation-price .price,
.woocommerce div.product .woocommerce-variation-availability{
  color:var(--c-brand);
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart{
  margin-top: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)
    .elementor-add-to-cart--layout-stacked .e-atc-qty-button-holder{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  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)
    .elementor-add-to-cart--layout-stacked .e-atc-qty-button-holder .quantity{
  margin: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)
    .elementor-add-to-cart--layout-stacked .e-atc-qty-button-holder .single_add_to_cart_button{
  width:auto;
}

/* Keep wide blocks inside the viewport on cart/checkout and mobile */
.woocommerce-cart .alignwide,
.woocommerce-checkout .alignwide{
  margin-inline:0 !important;
  width:auto;
}

@media (max-width: 782px){
  body .alignwide{
    margin-inline:0 !important;
  }
}
