/*
Theme Name: Infinity Peptide
Theme URI: https://a2l.a9c.myftpupload.com/
Author: Edgility
Author URI: https://edgility.com.au/
Description: Custom WooCommerce theme for Infinity Peptide Clinic. Teal palette, fitness-focused, websafe fonts. Built for the Sydney Australia research peptide market.
Version: 1.0.21
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: infinity-peptide
Tags: e-commerce, woocommerce, custom-colors, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ========== TOKENS ========== */
:root{
  --primary:#0F766E;
  --primary-deep:#134E4A;
  --primary-darker:#042F2E;
  --primary-light:#14B8A6;
  --primary-bright:#2DD4BF;
  --primary-pale:#CCFBF1;
  --primary-tint:#F0FDFA;
  --accent:#F97316;
  --accent-soft:#FED7AA;
  --ink:#1C2522;
  --muted:#5A6B68;
  --line:#E2E8E6;
  --off:#F5F8F7;
  --off-2:#EAF1EF;
  --white:#FFFFFF;
  --success:#10B981;
  --danger:#EF4444;
  --shadow-sm:0 2px 8px rgba(15,118,110,.08);
  --shadow:0 10px 30px rgba(15,118,110,.12);
  --shadow-lg:0 30px 60px rgba(4,47,46,.25);
  --radius:12px;
}

/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family: Helvetica, Arial, sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
a{color:var(--primary);text-decoration:none;}
a:hover{color:var(--primary-deep);}
button{font-family:inherit;cursor:pointer;border:0;background:none;}

.wrap{max-width:1280px;margin:0 auto;padding:0 24px;}

h1,h2,h3,h4,h5,h6{
  font-family: "Arial Black","Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing:-.01em;line-height:1.08;margin:0 0 .4em;color:var(--ink);
}
h1{font-size:clamp(38px, 6vw, 76px); letter-spacing:-.025em;}
h2{font-size:clamp(28px, 3.2vw, 44px);}
h3{font-size:22px;}
h4{font-size:18px;}
p{margin:0 0 1em;color:var(--muted);}
.entry-content p{color:var(--ink);}

.eyebrow{
  display:inline-block;font-family:Helvetica,Arial,sans-serif;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;font-size:12px;color:var(--primary);
}

.btn{
  display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;
  font-weight:700;letter-spacing:.02em;font-size:14px;font-family:inherit;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 22px rgba(15,118,110,.35);}
.btn-primary:hover{transform:translateY(-1px);background:var(--primary-deep);color:#fff;}
.btn-ghost{border:1.5px solid rgba(255,255,255,.3);color:var(--white);}
.btn-ghost:hover{border-color:var(--primary-bright);color:var(--primary-bright);}
.btn-outline{border:1.5px solid var(--primary);color:var(--primary);}
.btn-outline:hover{background:var(--primary);color:#fff;}

/* ========== ANNOUNCE ========== */
.announce{background:var(--primary-deep);color:#fff;text-align:center;font-size:13px;padding:10px 16px;letter-spacing:.08em;}
.announce strong{color:var(--primary-bright);}

/* ========== HEADER ========== */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
  min-height:120px !important;
}
.site-header .wrap.nav,
.nav{
  display:flex !important;align-items:center !important;justify-content:space-between !important;
  height:120px !important;min-height:120px !important;gap:16px;
}
.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:18px;letter-spacing:.02em;flex-shrink:0;color:var(--ink);}
.logo:hover{color:var(--primary-deep);}
.logo-mark{
  width:34px;height:34px;border-radius:9px;
  background:linear-gradient(135deg,var(--primary-deep) 0%,var(--primary-bright) 100%);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;
  box-shadow:0 6px 14px rgba(15,118,110,.35);
}
.logo .light{color:var(--primary);}
/* Logo image: constrained so it always fits inside the header height (120px header → max 90px image) */
.site-header .logo,
.site-header .logo.logo-image{
  display:flex !important;align-items:center;height:auto;max-height:104px;padding:8px 0;
}
.site-header .logo img,
.site-header .logo.logo-image img{
  max-height:90px !important;width:auto !important;height:auto !important;
  display:block;object-fit:contain;
}
/* Hide the WP-injected default custom-logo wrapper if it ever leaks through */
.site-header .custom-logo-link{display:none;}
.custom-logo{max-height:90px !important;width:auto !important;height:auto !important;}
.nav-menu{display:flex;gap:22px;list-style:none;margin:0;padding:0;}
.nav-menu li a{font-weight:600;font-size:13.5px;color:var(--ink);white-space:nowrap;}
.nav-menu li.current-menu-item a,.nav-menu li a:hover{color:var(--primary);}
.nav-tools{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.icon-btn{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;color:var(--ink);transition:all .2s ease;
}
.icon-btn:hover{border-color:var(--primary);color:var(--primary);}
.cart-badge{position:relative;}
.cart-badge .count{
  position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:11px;font-weight:800;
  width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.menu-toggle{display:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);}

/* ========== HERO ========== */
.hero{
  position:relative;overflow:hidden;color:#fff;padding:96px 0 120px;
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(45,212,191,.18), transparent 60%),
    radial-gradient(900px 500px at -10% 80%, rgba(20,184,166,.12), transparent 60%),
    linear-gradient(180deg, var(--primary-darker) 0%, var(--primary-deep) 100%);
}
.hero .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.hero h1{color:#fff;}
.hero h1 .grad{background:linear-gradient(90deg,var(--primary-bright),#5EEAD4);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p{color:rgba(255,255,255,.78);font-size:18px;max-width:540px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}
.hero-stats{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:540px;}
.hero-stats div{border-left:2px solid var(--primary-bright);padding-left:14px;}
.hero-stats b{display:block;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:28px;color:#fff;}
.hero-stats span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.65);}

.hero-visual{
  position:relative;aspect-ratio:1/1;border-radius:24px;
  background:
    radial-gradient(circle at 30% 30%, rgba(45,212,191,.35), transparent 55%),
    radial-gradient(circle at 70% 80%, rgba(20,184,166,.25), transparent 55%),
    linear-gradient(160deg,#0B4F4A,#042F2E);
  border:1px solid rgba(45,212,191,.18);overflow:hidden;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;justify-content:center;
}
.vial-photo{position:relative;z-index:2;max-width:78%;max-height:88%;width:auto;height:auto;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.55)) drop-shadow(0 0 30px rgba(45,212,191,.25));object-fit:contain;}
.ring{position:absolute;border:1px dashed rgba(45,212,191,.4);border-radius:50%;animation:spin 30s linear infinite;z-index:1;}
.ring.r1{inset:8%;}
.ring.r2{inset:20%;border-style:dotted;animation-duration:45s;animation-direction:reverse;}
@keyframes spin{to{transform:rotate(360deg);}}
.floating-chip{
  position:absolute;background:rgba(4,47,46,.85);color:#fff;padding:10px 14px;border-radius:12px;font-size:12px;font-weight:700;
  border:1px solid rgba(45,212,191,.3);backdrop-filter:blur(10px);display:flex;align-items:center;gap:8px;z-index:3;
}
.floating-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 12px var(--success);}
/* Pixel-based offsets so chips never sit outside the visual on any breakpoint */
.chip-1{top:18px !important;left:18px !important;right:auto !important;bottom:auto !important;}
.chip-2{bottom:18px !important;right:18px !important;left:auto !important;top:auto !important;}
@media (max-width:520px){
  .chip-1,.chip-2{font-size:11px;padding:8px 10px;}
}

/* ========== USP BAR ========== */
.usp{background:var(--primary-deep);color:#fff;padding:22px 0;border-top:1px solid rgba(255,255,255,.06);}
.usp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.usp-item{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;}
.usp-item svg{flex-shrink:0;color:var(--primary-bright);}

/* ========== SECTIONS ========== */
section.block{padding:100px 0;}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px;gap:24px;flex-wrap:wrap;}
.section-head h2{max-width:680px;}
.section-head a{font-weight:700;color:var(--primary);font-size:14px;letter-spacing:.04em;white-space:nowrap;}
.section-head a:hover{color:var(--primary-deep);}

/* ========== CATEGORIES ========== */
.cats{background:var(--off);}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.cat{
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:3/4;color:#fff;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;
  transition:transform .25s ease;text-decoration:none;
  background-color:var(--primary-deep);
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
/* Dark overlay so text stays readable over any image */
.cat::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(4,47,46,0) 30%,rgba(4,47,46,.88) 100%);
}
.cat>*{position:relative;z-index:1;}
.cat:hover{transform:translateY(-4px);color:#fff;}
.cat h3{color:#fff;margin-bottom:4px;}
.cat span.tag{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.cat .count{
  position:absolute;top:18px;right:18px;z-index:2;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);
  color:#fff;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid rgba(255,255,255,.18);
}
/* Fallback gradients when no category thumbnail is uploaded — overridden by inline background-image when present */
.bg-recovery{background-image:linear-gradient(160deg,#134E4A,#14B8A6);}
.bg-performance{background-image:linear-gradient(160deg,#042F2E,#0F766E);}
.bg-wellness{background-image:linear-gradient(160deg,#0F766E,#2DD4BF);}
.bg-accessories{background-image:linear-gradient(160deg,#042F2E,#0F766E);}

/* ========== HOMEPAGE PRODUCT GRID ========== */
.products-grid .cat-grid{grid-template-columns:repeat(4,1fr);gap:22px;}

/* Generic product list grid — applies on the homepage where body.woocommerce isn't set.
   !important is used because WooCommerce's default frontend CSS uses floats with hard widths
   that would otherwise stack everything into one column. */
.products-grid ul.products,
.products-grid ul.products.columns-4,
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products,
ul.products.columns-4{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:22px !important;
  margin:0 !important;padding:0 !important;list-style:none !important;
  width:100% !important;
}
ul.products::before,ul.products::after,
.woocommerce ul.products::before,.woocommerce ul.products::after{
  display:none !important;content:none !important;
}
.products-grid ul.products > li,
.products-grid ul.products > li.product,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products > li,
ul.products > li.product{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;padding:0 !important;margin:0 !important;list-style:none !important;
  width:auto !important;float:none !important;clear:none !important;
  position:relative;transition:all .2s ease;
}
ul.products > li.product:hover,
.woocommerce ul.products li.product:hover{
  transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-pale);
}
ul.products > li.product a img,
.woocommerce ul.products li.product a img{
  margin:0;border-radius:0;width:100% !important;height:auto;display:block;
}
ul.products > li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  padding:14px 18px 4px;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:15px;color:var(--ink);line-height:1.25;
}
ul.products > li.product .price,
.woocommerce ul.products li.product .price{
  display:block;padding:0 18px 14px;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:17px;color:var(--ink);
}
ul.products > li.product .price del,
.woocommerce ul.products li.product .price del{color:var(--muted);font-size:13px;font-weight:700;font-family:Helvetica;margin-right:6px;}
ul.products > li.product .price ins,
.woocommerce ul.products li.product .price ins{background:transparent;color:var(--primary);text-decoration:none;}
ul.products > li.product .button,
ul.products > li.product a.button,
.woocommerce ul.products li.product .button{
  display:inline-block;background:var(--primary);color:#fff;font-weight:700;border-radius:999px;
  padding:10px 18px;font-size:13px;letter-spacing:.04em;transition:all .2s ease;
  margin:0 18px 18px;text-decoration:none;
}
ul.products > li.product .button:hover,
ul.products > li.product a.button:hover,
.woocommerce ul.products li.product .button:hover{background:var(--primary-deep);color:#fff;}
ul.products > li.product .onsale,
ul.products > li.product span.onsale,
.woocommerce ul.products li.product .onsale{
  background:var(--accent);color:#fff;font-weight:800;font-size:11px;letter-spacing:.1em;
  border-radius:999px;padding:5px 12px;min-height:auto;line-height:1;
  position:absolute;top:12px;left:12px;right:auto;z-index:2;
}

/* ========== BANNER ========== */
.banner{
  background:radial-gradient(600px 300px at 20% 20%, rgba(45,212,191,.25), transparent 60%),
    linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-deep) 100%);
  color:#fff;border-radius:24px;padding:70px 60px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;
  position:relative;overflow:hidden;
}
.banner h2{color:#fff;}
.banner p{color:rgba(255,255,255,.78);}
.banner .decoration{position:absolute;right:-60px;top:-40px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.3),transparent 70%);}

/* ========== WHY US ========== */
.why{background:#fff;}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.why-item{padding:30px;border:1px solid var(--line);border-radius:var(--radius);transition:all .2s ease;}
.why-item:hover{border-color:var(--primary);box-shadow:var(--shadow);}
.why-item .ico{
  width:54px;height:54px;border-radius:12px;margin-bottom:18px;
  background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(45,212,191,.08));
  color:var(--primary);display:flex;align-items:center;justify-content:center;
}
.why-item h3{color:var(--primary-deep);margin-bottom:8px;}
.why-item p{margin:0;font-size:14px;}

/* ========== TESTIMONIALS ========== */
.quotes{background:var(--off);}
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.q{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
.stars{color:var(--accent);font-weight:800;letter-spacing:.1em;margin-bottom:10px;font-size:14px;}
.q p{color:var(--ink);font-size:15px;line-height:1.6;}
.q .who{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);}
.avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary-deep),var(--primary-bright));color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;
}
.who b{display:block;font-size:14px;}
.who span{font-size:12px;color:var(--muted);}

/* ========== NEWSLETTER ========== */
.news{padding:80px 0;background:var(--off);}
.news-wrap{max-width:720px;margin:0 auto;text-align:center;}
.news form{
  display:flex;gap:10px;margin-top:22px;background:#fff;padding:8px;
  border-radius:999px;border:1px solid var(--line);box-shadow:var(--shadow);
}
.news input{flex:1;border:0;padding:14px 20px;font-size:15px;background:transparent;outline:none;color:var(--ink);font-family:inherit;}
.news button{background:var(--primary);color:#fff;padding:14px 28px;border-radius:999px;font-weight:700;}
.news button:hover{background:var(--primary-deep);}

/* ========== FOOTER ========== */
.site-footer{background:var(--primary-darker);color:#fff;padding:80px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08);}
.site-footer h4{color:#fff;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:13px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:18px;}
.site-footer ul{list-style:none;padding:0;margin:0;}
.site-footer li{margin-bottom:10px;}
.site-footer li a{color:rgba(255,255,255,.65);font-size:14px;transition:color .2s;}
.site-footer li a:hover{color:var(--primary-bright);}
.foot-about p{color:rgba(255,255,255,.65);font-size:14px;max-width:320px;}
/* Footer logo — centered in column, white-filtered (works on a dark footer with any logo colour) */
.foot-about{text-align:center;}
.foot-about p,.foot-about .socials{margin-left:auto;margin-right:auto;}
.foot-about .socials{justify-content:center;display:flex;}
.foot-about p{max-width:320px;}
.footer-logo{
  display:flex !important;align-items:center;justify-content:center;
  width:100%;color:#fff;margin:0 auto 14px;
}
.footer-logo.footer-logo-image{padding:0;}
.footer-logo.footer-logo-image img{
  max-height:64px !important;max-width:240px;width:auto !important;height:auto !important;
  display:block;object-fit:contain;margin:0 auto;
  /* Force-white the logo so it always reads on the dark footer, regardless of the source colour */
  filter: brightness(0) invert(1);
}
.socials{display:flex;gap:10px;margin-top:18px;}
.socials a{
  width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s;
}
.socials a:hover{background:var(--primary-bright);color:var(--primary-darker);border-color:var(--primary-bright);}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;flex-wrap:wrap;gap:12px;}
.foot-bottom p{margin:0;color:rgba(255,255,255,.5);font-size:13px;}
.disclaimer{
  background:rgba(45,212,191,.08);border:1px solid rgba(45,212,191,.2);color:rgba(255,255,255,.85);
  padding:14px 20px;border-radius:12px;font-size:12px;margin-top:30px;
}

/* ========== STANDARD PAGE LAYOUT ========== */
.page-hero{
  background:linear-gradient(180deg,var(--primary-darker) 0%,var(--primary-deep) 100%);
  color:#fff;padding:80px 0 60px;text-align:center;
}
.page-hero h1{color:#fff;font-size:clamp(36px,5vw,60px);}
.page-hero p{color:rgba(255,255,255,.78);max-width:680px;margin:14px auto 0;font-size:17px;}
.page-content{padding:80px 0;max-width:880px;margin:0 auto;}
.page-content h2{margin-top:1.6em;color:var(--primary-deep);}
.page-content h3{margin-top:1.4em;color:var(--primary-deep);}
.page-content a:not(.btn):not(.button){color:var(--primary);}
.page-content a:not(.btn):not(.button):hover{color:var(--primary-deep);text-decoration:underline;}
/* Buttons inside page content keep their own foreground colour */
.page-content a.btn-primary,
.page-content a.btn-primary:hover,
.page-content a.btn-primary:visited{color:#fff;}
.page-content a.btn-outline{color:var(--primary);}
.page-content a.btn-outline:hover{color:#fff;}
.page-content a.btn-whatsapp,
.page-content a.btn-whatsapp:hover,
.page-content a.btn-whatsapp:visited{color:#fff;}
.page-content ul,.page-content ol{margin:1em 0 1em 1.5em;color:var(--ink);}
.page-content li{margin-bottom:.5em;}

/* ========== FAQ ACCORDION ========== */
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:0;overflow:hidden;transition:all .2s ease;
}
.faq:hover{border-color:var(--primary-pale);}
.faq summary{
  padding:22px 26px;cursor:pointer;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:16px;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;list-style:none;gap:12px;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";font-size:24px;color:var(--primary);transition:transform .2s ease;font-weight:300;line-height:1;
}
.faq[open] summary::after{transform:rotate(45deg);}
.faq-body{padding:0 26px 22px;color:var(--muted);line-height:1.65;}
.faq-body p{margin:0 0 .8em;}
.faq-body ul{margin:.5em 0 .5em 1.4em;color:var(--ink);}

/* ========== CONTACT ========== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
.contact-info{background:var(--off);padding:36px;border-radius:var(--radius);}
.contact-info h3{color:var(--primary-deep);margin-bottom:1em;}
.contact-info .item{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.contact-info .item:last-child{border:0;}
.contact-info .item svg{color:var(--primary);flex-shrink:0;margin-top:3px;}
.contact-info b{display:block;font-size:13px;color:var(--ink);margin-bottom:2px;}
.contact-info span{color:var(--muted);font-size:14px;}
.whatsapp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:#25d366;color:#fff;padding:14px 22px;border-radius:999px;
  font-weight:700;width:100%;margin-top:16px;transition:all .2s ease;
}
.whatsapp-btn:hover{background:#128c7e;color:#fff;transform:translateY(-1px);}
.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.contact-form label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.contact-form input,
.contact-form textarea,
.contact-form select{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:15px;color:var(--ink);background:#fff;outline:none;transition:border .2s;
}
.contact-form input:focus,
.contact-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.1);}
.contact-form textarea{min-height:140px;resize:vertical;}
.contact-form .single{margin-bottom:14px;}
.contact-form button{margin-top:8px;}

/* ========== COA GALLERY ========== */
.coa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px;}
.coa-item{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:20px;transition:all .2s ease;cursor:pointer;
}
.coa-item:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px);}
.coa-item .icon{
  width:54px;height:54px;border-radius:12px;background:var(--primary-tint);color:var(--primary);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.coa-item b{color:var(--primary-deep);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:14px;}
.coa-item span{font-size:12px;color:var(--muted);margin-top:4px;letter-spacing:.05em;}

/* ========== WOOCOMMERCE OVERRIDES (product cards + buttons) ========== */
.woocommerce .page-title,
.woocommerce-products-header__title{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;color:#fff;text-align:center;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;padding:0;margin:0 0 28px;transition:all .2s ease;
}
.woocommerce ul.products li.product:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-pale);}
.woocommerce ul.products li.product a img{margin:0;border-radius:0;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  padding:14px 18px 4px;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:15px;color:var(--ink);line-height:1.25;
}
.woocommerce ul.products li.product .price{
  padding:0 18px 14px;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:17px;color:var(--ink);
}
.woocommerce ul.products li.product .price del{color:var(--muted);font-size:13px;font-weight:700;font-family:Helvetica;}
.woocommerce ul.products li.product .price ins{background:transparent;color:var(--primary);}
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce-page button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #content input.button,
.woocommerce-page #content input.button{
  background:var(--primary);color:#fff;font-weight:700;border-radius:999px;
  padding:10px 18px;font-size:13px;letter-spacing:.04em;transition:all .2s ease;
  margin:0 18px 18px;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce-page button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  background:var(--primary-deep);color:#fff;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt{
  background:var(--primary);color:#fff;
}
.woocommerce a.button.alt:hover{background:var(--primary-deep);}
.woocommerce span.onsale{
  background:var(--accent);color:#fff;font-weight:800;font-size:11px;letter-spacing:.1em;
  border-radius:999px;padding:5px 12px;min-height:auto;line-height:1;top:12px;left:12px;right:auto;
}
.woocommerce-product-gallery__image img{border-radius:var(--radius);}
.woocommerce div.product .product_title{font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;color:var(--ink);}
.woocommerce div.product p.price,
.woocommerce div.product span.price{color:var(--primary);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:24px;}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top-color:var(--primary);background:var(--primary-tint);
}
.woocommerce-message::before,.woocommerce-info::before{color:var(--primary);}
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--primary);color:#fff;}
.woocommerce .quantity .qty{border:1px solid var(--line);border-radius:8px;padding:8px 10px;}
.woocommerce-tabs ul.tabs li.active{border-color:var(--primary)!important;}
.woocommerce-tabs ul.tabs li.active a{color:var(--primary)!important;}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{border:1px solid var(--line);border-radius:8px;padding:12px 14px;}
.select2-container--default .select2-selection--single{border-color:var(--line);border-radius:8px;}

/* WC categories layout */
.woocommerce ul.products{
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
  margin:0;padding:0;list-style:none;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none;}
.woocommerce ul.products li.product{width:auto!important;float:none!important;clear:none!important;margin:0!important;}

/* Cart / checkout */
.woocommerce table.shop_table{border-radius:var(--radius);border:1px solid var(--line);}
.woocommerce-cart .cart_totals h2,.woocommerce-checkout #order_review_heading{color:var(--primary-deep);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;}

/* ========== UTILITY ========== */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.mt-2{margin-top:2em;}
.bg-tint{background:var(--primary-tint);}

/* ========== RESPONSIVE ========== */
@media (max-width:1180px){
  .nav-menu{gap:18px;}
  .nav-menu li a{font-size:13px;}
}
@media (max-width:1020px){
  .nav-menu{
    display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;
    background:#fff;border-bottom:1px solid var(--line);padding:14px 24px;gap:0;
  }
  .nav-menu.open{display:flex;}
  .nav-menu li{border-bottom:1px solid var(--line);}
  .nav-menu li:last-child{border:0;}
  .nav-menu li a{display:block;padding:14px 0;}
  .menu-toggle{display:flex;align-items:center;justify-content:center;}
  .cat-grid,.products-grid .cat-grid{grid-template-columns:repeat(3,1fr);}
  .woocommerce ul.products,ul.products{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:820px){
  .hero{padding:56px 0 80px;}
  .hero .grid{grid-template-columns:1fr;gap:40px;}
  .cat-grid,.products-grid .cat-grid{grid-template-columns:repeat(2,1fr) !important;}
  .products-grid ul.products,
  .products-grid ul.products.columns-4,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products{grid-template-columns:repeat(2,1fr) !important;}
  .q-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .usp-grid{grid-template-columns:repeat(2,1fr);}
  .banner{grid-template-columns:1fr;padding:40px 28px;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px;}
  .contact-grid{grid-template-columns:1fr;gap:30px;}
  .contact-form .row{grid-template-columns:1fr;}
  .coa-grid{grid-template-columns:repeat(2,1fr);}
  section.block{padding:60px 0;}
}
@media (max-width:520px){
  .hero-stats{grid-template-columns:1fr 1fr;}
  /* Keep product grids at 2-up on small mobile (NOT 1) so cards stay scannable */
  .cat-grid,.products-grid .cat-grid{grid-template-columns:repeat(2,1fr) !important;}
  .products-grid ul.products,
  .products-grid ul.products.columns-4,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products{grid-template-columns:repeat(2,1fr) !important;gap:14px !important;}
  /* Tighten card typography for narrow widths */
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    padding:12px 12px 4px;font-size:13px;line-height:1.25;
  }
  .woocommerce ul.products li.product .price{padding:0 12px 10px;font-size:15px;}
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product a.button{
    margin:0 12px 12px;padding:9px 14px;font-size:12px;letter-spacing:.02em;
  }
  .foot-grid{grid-template-columns:1fr;}
}

/* ========== ADDITIONS: page-content markup, FAQ accordion (simple), CoA cards, contact cards, shop hero, posts ========== */

/* Page hero subtitle */
.page-hero-sub{color:rgba(255,255,255,.78);max-width:680px;margin:14px auto 0;font-size:17px;}
.page-content .entry-content > *:first-child{margin-top:0;}
.page-article{max-width:880px;margin:0 auto;}
.page-article p{line-height:1.7;color:var(--ink);margin:0 0 1em;}

/* FAQ accordion — works on plain <details> inside .faq-list (no class needed) */
.faq-list details{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:0;overflow:hidden;transition:all .2s ease;
}
.faq-list details:hover{border-color:var(--primary-pale);}
.faq-list details > summary{
  padding:22px 26px;cursor:pointer;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:16px;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;list-style:none;gap:12px;
}
.faq-list details > summary::-webkit-details-marker{display:none;}
.faq-list details > summary::after{
  content:"+";font-size:24px;color:var(--primary);transition:transform .2s ease;font-weight:300;line-height:1;
}
.faq-list details[open] > summary::after{transform:rotate(45deg);}
.faq-list details > p,
.faq-list details > ul,
.faq-list details > div{padding:0 26px 22px;color:var(--muted);line-height:1.65;margin:0;}
.faq-list details > p + p{padding-top:0;}

/* CoA card variant (text-forward) */
.coa-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;transition:all .2s ease;
}
.coa-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px);}
.coa-card h3{margin:0 0 .5em;color:var(--primary-deep);font-size:17px;}
.coa-card .coa-meta{font-size:13px;color:var(--muted);margin:0 0 .8em;letter-spacing:.02em;}
.coa-card .coa-meta strong{color:var(--primary);}
.coa-card p{font-size:14px;color:var(--ink);line-height:1.5;margin:0 0 14px;}

/* Contact cards (simple variant) */
.contact-card{
  background:var(--off);padding:30px;border-radius:var(--radius);
  border:1px solid var(--line);
}
.contact-card h3{color:var(--primary-deep);margin:0 0 .6em;font-size:18px;}
.contact-card p{margin:0 0 12px;color:var(--ink);line-height:1.55;}
.contact-card .btn{margin-top:6px;}
.btn-whatsapp{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:#25d366;color:#fff;padding:14px 22px;border-radius:999px;
  font-weight:700;border:0;text-decoration:none;
}
.btn-whatsapp:hover{background:#128c7e;color:#fff;transform:translateY(-1px);}

/* Plain HTML contact form (used as fallback) */
.contact-form{margin-top:14px;}
.contact-form p{margin:0 0 14px;}
.contact-form label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.contact-form input,
.contact-form textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:15px;color:var(--ink);background:#fff;outline:none;transition:border .2s;
  box-sizing:border-box;
}
.contact-form input:focus,
.contact-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.1);}

/* Shop / WooCommerce hero */
.shop-hero{
  background:linear-gradient(180deg,var(--primary-darker) 0%,var(--primary-deep) 100%);
  color:#fff;padding:64px 0 48px;text-align:center;
}
.shop-hero h1{color:#fff;font-size:clamp(32px,4.5vw,52px);margin:0;}
.shop-hero-desc{color:rgba(255,255,255,.78);max-width:680px;margin:14px auto 0;font-size:16px;}
.shop-breadcrumb{margin-top:16px;font-size:13px;color:rgba(255,255,255,.7);}
.shop-breadcrumb a{color:rgba(255,255,255,.85);text-decoration:underline;}

/* Search form */
.search-form{display:flex;gap:8px;}
.search-form .search-field{
  flex:1;padding:13px 16px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:15px;outline:none;
}
.search-form .search-field:focus{border-color:var(--primary);}
.search-form .search-submit{flex-shrink:0;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);}

/* Blog post list (used by index.php / single.php) */
.post-list{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;}
.post-card .post-thumb img{border-radius:10px;display:block;width:100%;height:auto;margin-bottom:14px;}
.post-card .post-title{margin:0 0 6px;font-size:20px;}
.post-card .post-title a{color:var(--ink);}
.post-card .post-title a:hover{color:var(--primary);}
.post-card .post-meta{font-size:13px;color:var(--muted);margin-bottom:10px;}
.post-card .post-excerpt{color:var(--muted);line-height:1.6;margin-bottom:14px;}
.post-feature-image img{border-radius:var(--radius);width:100%;height:auto;margin-bottom:24px;}
.pagination{margin-top:40px;text-align:center;}
.pagination .page-numbers{
  display:inline-block;padding:10px 14px;margin:0 4px;border:1px solid var(--line);
  border-radius:8px;color:var(--ink);text-decoration:none;
}
.pagination .page-numbers.current{background:var(--primary);color:#fff;border-color:var(--primary);}
.pagination .page-numbers:hover{border-color:var(--primary);color:var(--primary);}

/* Sticky header subtle shadow once scrolled */
.site-header.is-scrolled{box-shadow:0 4px 18px rgba(0,0,0,.06);}

/* Mobile menu open state (driven by main.js) */
@media (max-width:1020px){
  .nav-menu.is-open{display:flex;}
  .site-header .nav.is-open .nav-menu{display:flex;}
}

@media (max-width:820px){
  .post-list{grid-template-columns:1fr;}
}

/* ==================================================================
   SHOP & PRODUCT PAGES — full WC styling pass (v1.0.3)
   ================================================================== */

/* Layout grid: sidebar + main on shop archive pages */
.shop-layout-wrap{padding:48px 0 80px;background:var(--off);}
.shop-layout{display:grid;gap:36px;align-items:start;}
.shop-layout.has-sidebar{grid-template-columns:260px 1fr;}
.shop-layout.no-sidebar{grid-template-columns:1fr;max-width:1180px;margin:0 auto;}
.shop-main{min-width:0;}

/* Sidebar — desktop */
.shop-sidebar{position:sticky;top:140px;align-self:start;}
.shop-sidebar-toggle{
  display:none;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:10px 18px;font-weight:700;font-size:13px;color:var(--ink);
  margin-bottom:14px;cursor:pointer;
}
.shop-sidebar-toggle:hover{border-color:var(--primary);color:var(--primary);}
.shop-sidebar-inner{display:flex;flex-direction:column;gap:18px;}

/* Sidebar widget cards */
.shop-sidebar .widget{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow-sm);
}
.shop-sidebar .widget-title,
.shop-sidebar h3.widget-title,
.shop-sidebar h2.widget-title{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--primary-deep);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line);
}
.shop-sidebar .widget ul{list-style:none;margin:0;padding:0;}
.shop-sidebar .widget li{
  padding:8px 0;font-size:14px;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
}
.shop-sidebar .widget li + li{border-top:1px solid var(--line);}
.shop-sidebar .widget li a{color:var(--ink);text-decoration:none;}
.shop-sidebar .widget li a:hover{color:var(--primary);}
.shop-sidebar .widget li .count{
  background:var(--primary-tint);color:var(--primary-deep);
  padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;
}
.shop-sidebar .widget li.current-cat > a,
.shop-sidebar .widget li.chosen > a{color:var(--primary);font-weight:700;}
.shop-sidebar .widget select{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;
  background:#fff;font-family:inherit;font-size:14px;color:var(--ink);
}

/* WC Price filter slider — recolour to teal */
.shop-sidebar .widget_price_filter .price_slider_wrapper .ui-widget-content{
  background:var(--off-2);height:4px;border-radius:999px;border:0;
}
.shop-sidebar .widget_price_filter .ui-slider .ui-slider-range{
  background:var(--primary);border:0;
}
.shop-sidebar .widget_price_filter .ui-slider .ui-slider-handle{
  background:var(--primary-deep);border:2px solid #fff;width:18px;height:18px;border-radius:50%;
  top:-7px;cursor:grab;box-shadow:0 4px 10px rgba(15,118,110,.3);
}
.shop-sidebar .widget_price_filter .price_slider_amount{
  font-size:13px;color:var(--muted);text-align:left;margin-top:18px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
}
.shop-sidebar .widget_price_filter .price_slider_amount .button{
  background:var(--primary);color:#fff;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:700;
}
.shop-sidebar .widget_price_filter .price_slider_amount .button:hover{background:var(--primary-deep);color:#fff;}
.shop-sidebar .widget_price_filter .price_label{color:var(--ink);font-weight:700;}

/* WC active filters / layered nav widgets */
.shop-sidebar .widget_layered_nav ul li a,
.shop-sidebar .widget_layered_nav_filters ul li a{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;
  background:var(--primary-tint);border-radius:999px;color:var(--primary-deep);font-size:12px;font-weight:700;
}
.shop-sidebar .widget_layered_nav_filters ul li a::before{content:"\00D7";font-size:14px;}
.shop-sidebar .widget_layered_nav ul li.chosen a{background:var(--primary);color:#fff;}

/* Sort + result-count bar above products */
.shop-main .woocommerce-notices-wrapper:empty{display:none;}
.shop-main .woocommerce-result-count,
.woocommerce-page-wrap .woocommerce-result-count{
  margin:0;font-size:13px;color:var(--muted);font-weight:600;
}
.shop-main .woocommerce-ordering,
.woocommerce-page-wrap .woocommerce-ordering{margin:0;}
.shop-main .woocommerce-ordering select,
.woocommerce-page-wrap .woocommerce-ordering select,
.woocommerce select.orderby{
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230F766E' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>") right 14px center/12px no-repeat;
  border:1px solid var(--line);border-radius:999px;padding:10px 38px 10px 18px;
  font-family:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;transition:border .2s,box-shadow .2s;
}
.shop-main .woocommerce-ordering select:hover,
.woocommerce select.orderby:hover{border-color:var(--primary);}
.shop-main .woocommerce-ordering select:focus,
.woocommerce select.orderby:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.15);}

/* Group result count + sort onto one horizontal bar above the products */
.shop-main{
  display:grid;grid-template-columns:1fr auto;column-gap:18px;row-gap:24px;align-items:center;
}
.shop-main > .woocommerce-result-count{
  grid-column:1;margin:0;justify-self:start;
}
.shop-main > .woocommerce-ordering{
  grid-column:2;margin:0;justify-self:end;
}
/* Everything else spans both columns */
.shop-main > ul.products,
.shop-main > nav.woocommerce-pagination,
.shop-main > .woocommerce-notices-wrapper,
.shop-main > .woocommerce-info,
.shop-main > .woocommerce-message,
.shop-main > .woocommerce-error,
.shop-main > .woocommerce-no-products-found,
.shop-main > p.no-products-found,
.shop-main > .term-description{
  grid-column:1 / -1;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination,
.shop-main nav.woocommerce-pagination{
  margin-top:40px;border:0;text-align:center;
}
.woocommerce nav.woocommerce-pagination ul,
.shop-main nav.woocommerce-pagination ul{
  border:0;display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:center;
}
.woocommerce nav.woocommerce-pagination ul li,
.shop-main nav.woocommerce-pagination ul li{border:0;margin:0;}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  min-width:42px;padding:10px 14px;font-weight:700;color:var(--ink);
  font-size:13px;display:inline-flex;align-items:center;justify-content:center;
  transition:all .2s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--primary);color:var(--primary);}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--primary);color:#fff;border-color:var(--primary);
}

/* Empty state / no products */
.woocommerce-info,.woocommerce-noreviews,.woocommerce-no-products-found{
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--primary);
  border-radius:var(--radius);padding:18px 22px;color:var(--ink);font-size:14px;
}

/* Out-of-stock + sold-out badges on product cards */
ul.products li.product .outofstock-badge{
  position:absolute;top:12px;right:12px;background:#1c2522;color:#fff;
  padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
}

/* ==================================================================
   SINGLE PRODUCT PAGE
   ================================================================== */
.woocommerce-page-wrap{padding:60px 0 100px;background:#fff;}

.woocommerce div.product{
  display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start;margin-bottom:80px;
}
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells{width:auto;float:none;margin:0;}

/* Gallery */
.woocommerce div.product .woocommerce-product-gallery{
  position:relative;width:auto !important;float:none !important;
}
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery__image{
  border-radius:var(--radius);overflow:hidden;background:var(--off);
}
.woocommerce-product-gallery__image img{display:block;width:100%;height:auto;}
.woocommerce-product-gallery__trigger{
  background:#fff;border:1px solid var(--line);border-radius:50%;width:42px;height:42px;
  top:14px;right:14px;left:auto;text-align:center;line-height:40px;color:var(--ink);
}
.woocommerce-product-gallery__trigger:hover{color:var(--primary);border-color:var(--primary);}
.flex-control-thumbs{margin:14px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.flex-control-thumbs li{margin:0;width:auto !important;}
.flex-control-thumbs li img{border-radius:8px;border:1px solid var(--line);opacity:.65;transition:all .2s;}
.flex-control-thumbs li img:hover,
.flex-control-thumbs li img.flex-active{opacity:1;border-color:var(--primary);}

/* Summary */
.woocommerce div.product .summary{padding:0;}
.woocommerce div.product .product_title{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:clamp(28px,3.4vw,40px);color:var(--ink);margin:0 0 14px;line-height:1.1;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--ink);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:30px;margin:0 0 18px;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del{color:var(--muted);font-size:18px;font-weight:700;font-family:Helvetica;margin-right:10px;}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins{background:transparent;color:var(--primary);text-decoration:none;}
.woocommerce div.product .woocommerce-product-rating{margin-bottom:18px;}
.woocommerce-product-details__short-description{
  color:var(--muted);font-size:15px;line-height:1.65;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line);
}
.woocommerce-product-details__short-description p:last-child{margin:0;}

/* Cart form (qty + add to cart) */
.woocommerce div.product form.cart{
  display:flex;align-items:center;gap:14px;margin:0 0 28px;flex-wrap:wrap;
}
.woocommerce .quantity{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;padding:4px;}
.woocommerce .quantity .qty{
  width:60px !important;border:0 !important;background:transparent;text-align:center;
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:15px;color:var(--ink);padding:8px 4px !important;
}
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button.single_add_to_cart_button{
  background:var(--primary) !important;color:#fff !important;font-weight:800;
  border-radius:999px;padding:14px 32px;font-size:14px;letter-spacing:.04em;
  border:0;cursor:pointer;transition:all .2s ease;
  box-shadow:0 8px 22px rgba(15,118,110,.35);
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover{
  background:var(--primary-deep) !important;transform:translateY(-1px);
}

/* Variations table for variable products */
.woocommerce div.product form.cart .variations{margin:0 0 18px;}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{padding:8px 0;}
.woocommerce div.product form.cart .variations select{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:14px;background:#fff;color:var(--ink);
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230F766E' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:36px;
}

/* Product meta (SKU, categories, tags) */
.woocommerce div.product .product_meta{
  font-size:13px;color:var(--muted);padding-top:24px;border-top:1px solid var(--line);
}
.woocommerce div.product .product_meta > span{display:block;margin-bottom:6px;}
.woocommerce div.product .product_meta a{color:var(--primary);}

/* Tabs */
.woocommerce div.product .woocommerce-tabs{
  grid-column:1/-1;margin-top:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  border:0;padding:0;margin:0 0 24px;display:flex;gap:0;flex-wrap:wrap;
  border-bottom:1px solid var(--line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:transparent;border:0 !important;border-radius:0;padding:0;margin:0 8px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block;padding:14px 18px;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--primary) !important;border-bottom-color:var(--primary);}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--primary);}
.woocommerce div.product .woocommerce-tabs .panel{
  background:#fff;padding:0;color:var(--ink);font-size:15px;line-height:1.7;
}
.woocommerce div.product .woocommerce-tabs .panel h2{font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:22px;color:var(--primary-deep);margin-bottom:16px;}

/* Reviews */
.woocommerce #reviews #comments ol.commentlist li{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px;
}
.woocommerce #reviews #comments ol.commentlist li img.avatar{
  border:0;padding:0;width:42px;height:42px;border-radius:50%;background:var(--primary-tint);
}
.woocommerce #review_form input[type=text],
.woocommerce #review_form input[type=email],
.woocommerce #review_form textarea{
  border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-family:inherit;font-size:14px;
}

/* Related + upsell products */
.woocommerce .related,
.woocommerce .upsells{
  grid-column:1/-1;border-top:1px solid var(--line);padding-top:60px;
}
.woocommerce .related > h2,
.woocommerce .upsells > h2{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:24px;color:var(--ink);margin:0 0 28px;
}

/* ==================================================================
   CART & CHECKOUT
   ================================================================== */
.woocommerce-cart .woocommerce-page-wrap,
.woocommerce-checkout .woocommerce-page-wrap{background:var(--off);}

.woocommerce table.shop_table{
  border-radius:var(--radius);border:1px solid var(--line);background:#fff;border-collapse:separate;border-spacing:0;
}
.woocommerce table.shop_table th{
  background:var(--off);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);padding:14px 16px;
}
.woocommerce table.shop_table td{padding:14px 16px;border-top:1px solid var(--line);}
.woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading{
  color:var(--primary-deep);font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:20px;margin:0 0 14px;
}
.woocommerce-cart .actions .button,
.woocommerce-checkout .place-order .button{
  background:var(--primary) !important;color:#fff !important;font-weight:800;
  border-radius:999px;padding:14px 28px;font-size:14px;
}

/* ==================================================================
   RESPONSIVE — shop pages
   ================================================================== */
@media (max-width:1020px){
  .shop-layout.has-sidebar{grid-template-columns:1fr;}
  .shop-sidebar{position:static;}
  .shop-sidebar-toggle{display:inline-flex;}
  .shop-sidebar-inner{display:none;}
  .shop-sidebar.is-open .shop-sidebar-inner{display:flex;}
  .woocommerce div.product{grid-template-columns:1fr;gap:40px;}
}
@media (max-width:520px){
  .shop-layout-wrap{padding:30px 0 60px;}
  .woocommerce div.product .product_title{font-size:28px;}
  .woocommerce div.product p.price,
  .woocommerce div.product span.price{font-size:24px;}
  .woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:12px 12px;font-size:11px;}
  .woocommerce table.shop_table th{display:none;}
  .woocommerce table.shop_table td{display:block;border:0;padding:8px 16px;}
}

/* Pill style for the result count above the grid */
.shop-main > .woocommerce-result-count{
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;
  font-size:13px;color:var(--muted);font-weight:600;
}
@media (max-width:640px){
  .shop-main{grid-template-columns:1fr;}
  .shop-main > .woocommerce-result-count,
  .shop-main > .woocommerce-ordering{grid-column:1 / -1;justify-self:stretch;}
  .shop-main > .woocommerce-ordering select{width:100%;}
}

/* ==================================================================
   "Back" link on single product pages
   ================================================================== */
.ip-back-link{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:8px 16px 8px 14px;font-size:13px;font-weight:700;color:var(--ink);
  text-decoration:none;letter-spacing:.02em;transition:all .2s ease;
  margin:0 0 24px;
}
.ip-back-link svg{flex-shrink:0;}
.ip-back-link:hover{
  border-color:var(--primary);color:var(--primary);background:var(--primary-tint);
  transform:translateX(-2px);
}
.ip-back-link:focus{outline:2px solid var(--primary);outline-offset:2px;}
.single-product .woocommerce-page-wrap .wrap > .ip-back-link{margin-top:0;}

/* ==================================================================
   CONTACT FORM 7 — match theme styling
   ================================================================== */

/* Outer wrapper */
.wpcf7{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:32px;box-shadow:var(--shadow-sm);max-width:760px;
}
.wpcf7 form > p{margin:0 0 18px;}

/* Labels (CF7 wraps the label text in plain <label> usually) */
.wpcf7 label{
  display:block;font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--primary-deep);margin-bottom:8px;
}

/* Required star CF7 sometimes appends */
.wpcf7 .wpcf7-form-control-wrap{display:block;}

/* All text-style inputs + textareas + selects */
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 input[type=number],
.wpcf7 input[type=date],
.wpcf7 textarea,
.wpcf7 select{
  width:100%;padding:13px 16px;font-family:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:10px;
  outline:none;transition:border .2s,box-shadow .2s;
  box-sizing:border-box;
}
.wpcf7 textarea{min-height:160px;resize:vertical;line-height:1.55;}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{color:var(--muted);}

/* Custom-styled native select (chevron in teal) */
.wpcf7 select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230F766E' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");
  background-repeat:no-repeat;background-position:right 16px center;background-size:12px;
  padding-right:42px;
}

/* Checkbox + radio groups */
.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio{display:flex;flex-wrap:wrap;gap:14px;}
.wpcf7 .wpcf7-list-item{margin:0;display:inline-flex;align-items:center;gap:8px;}
.wpcf7 .wpcf7-list-item label{margin:0;text-transform:none;letter-spacing:0;
  font-family:inherit;font-size:14px;color:var(--ink);font-weight:500;}
.wpcf7 input[type=checkbox],
.wpcf7 input[type=radio]{
  width:18px;height:18px;accent-color:var(--primary);cursor:pointer;
}

/* Submit button */
.wpcf7 input[type=submit],
.wpcf7 button[type=submit],
.wpcf7-submit{
  background:var(--primary)!important;color:#fff!important;border:0;
  font-family:inherit;font-weight:800;letter-spacing:.04em;font-size:14px;
  padding:14px 32px;border-radius:999px;cursor:pointer;
  box-shadow:0 8px 22px rgba(15,118,110,.35);
  transition:transform .15s ease,background .2s ease,box-shadow .2s ease;
  -webkit-appearance:none;appearance:none;text-transform:none;
}
.wpcf7 input[type=submit]:hover,
.wpcf7 button[type=submit]:hover{
  background:var(--primary-deep)!important;transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(15,118,110,.45);
}
.wpcf7 input[type=submit]:focus,
.wpcf7 button[type=submit]:focus{
  outline:3px solid rgba(15,118,110,.35);outline-offset:2px;
}

/* Spinner positioning */
.wpcf7 .wpcf7-spinner{margin:0 0 0 14px;vertical-align:middle;}

/* Validation: invalid field outline */
.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid{
  border-color:#c43f3f;box-shadow:0 0 0 3px rgba(196,63,63,.12);
}
.wpcf7 .wpcf7-not-valid-tip{
  display:block;color:#c43f3f;font-size:13px;font-weight:600;margin-top:6px;
}

/* CF7 response messages — success / error / spam */
.wpcf7 form .wpcf7-response-output{
  margin:24px 0 0;padding:14px 18px;border-radius:10px;
  border:1px solid var(--line);font-size:14px;line-height:1.5;
}
.wpcf7 form.sent .wpcf7-response-output{
  background:var(--primary-tint);border-color:var(--primary);color:var(--primary-deep);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{
  background:#fef3f3;border-color:#c43f3f;color:#7a1f1f;
}

/* Two-column row helper — wrap two CF7 fields in a <div class="cf7-row"> if you want a side-by-side layout */
.wpcf7 .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:640px){
  .wpcf7{padding:22px;}
  .wpcf7 .cf7-row{grid-template-columns:1fr;}
}

/* Acceptance / consent checkbox row */
.wpcf7 .wpcf7-acceptance{display:block;margin:0 0 8px;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item label{font-size:13px;color:var(--muted);}

/* When CF7 is dropped inside the existing .contact-form scaffold the theme already had,
   strip the inner background so we don't double up the white card. */
.contact-form .wpcf7{background:transparent;border:0;padding:0;box-shadow:none;}

/* ==================================================================
   PRE-LAUNCH FIXES (v1.0.7)
   - Single-product gallery responsive on mobile
   - "Add to Cart" / "Select options" button text legible everywhere
   - Bundler radio + WC qty sync (CSS just nudges spacing; JS in functions.php)
   ================================================================== */

/* Single product gallery — cap height + center on mobile so the photo
   doesn't swallow the screen. */
@media (max-width:768px){
  .woocommerce div.product .woocommerce-product-gallery{
    max-width:480px;margin:0 auto;
  }
  .woocommerce-product-gallery__image,
  .woocommerce-product-gallery .flex-viewport{
    max-height:60vh;
  }
  .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .flex-viewport img{
    max-height:60vh;width:auto;max-width:100%;margin:0 auto;display:block;object-fit:contain;
  }
  .flex-control-thumbs{grid-template-columns:repeat(5,1fr);gap:6px;}
}
@media (max-width:520px){
  .woocommerce div.product .woocommerce-product-gallery{max-width:100%;}
  .woocommerce-product-gallery__image,
  .woocommerce-product-gallery .flex-viewport{max-height:48vh;}
  .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .flex-viewport img{max-height:48vh;}
}

/* Add-to-cart / Select options button text — force white in every state.
   Some plugins (Bundler, dynamic pricing, etc.) inject their own colour
   rules; these high-specificity selectors keep the label legible. */
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .button.product_type_simple,
.woocommerce ul.products li.product .button.product_type_variable,
.woocommerce ul.products li.product .button.product_type_grouped,
.woocommerce ul.products li.product .button.product_type_external,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product a.button,
.woocommerce-page ul.products li.product .button{
  color:#fff !important;background:var(--primary) !important;
}
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product a.button:hover,
.woocommerce-page ul.products li.product .button:hover{
  color:#fff !important;background:var(--primary-deep) !important;
}
.woocommerce ul.products li.product a.button:visited,
.woocommerce-page ul.products li.product a.button:visited{
  color:#fff !important;
}

/* Bundler-style volume-discount widget — gentle theme polish so the
   plugin doesn't look bolted on. Targets common containers from the
   popular Bundler / volume-discount plugins. */
[class*="bundler"], [class*="volume-discount"], [class*="quantity-discount"]{
  margin:18px 0 24px;
}
[class*="bundler"] input[type="radio"],
[class*="volume-discount"] input[type="radio"]{accent-color:var(--primary);}

/* ==================================================================
   Site-wide volume discount — single-product tiers card
   Rendered on every product page below the Add-to-cart button.
   ================================================================== */
.ip-volume-tiers{
  margin:22px 0 4px;
  padding:18px 20px;
  background:linear-gradient(135deg,#F0FBF9 0%,#FFFFFF 100%);
  border:1px solid #B5E3DD;
  border-radius:14px;
  box-shadow:0 4px 14px rgba(15,118,110,.08);
}
.ip-volume-tiers__head{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.ip-volume-tiers__badge{
  display:inline-block;padding:4px 10px;border-radius:999px;
  background:var(--primary);color:#fff;
  font-family:"Arial Black",Arial,sans-serif;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;
}
.ip-volume-tiers__title{
  margin:0;font-family:"Arial Black",Arial,sans-serif;
  font-size:14px;letter-spacing:.04em;text-transform:uppercase;
  color:#134E4A;
}
.ip-volume-tiers__list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.ip-volume-tiers__list li{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;background:#fff;border:1px solid #D9F0EC;
  border-radius:10px;
}
.ip-volume-tiers__qty{
  font-size:13px;color:#1c2522;font-weight:600;
}
.ip-volume-tiers__save{
  font-family:"Arial Black",Arial,sans-serif;font-size:14px;
  color:var(--primary);letter-spacing:.02em;
}
.ip-volume-tiers__note{
  margin:12px 0 0;font-size:12px;color:#4B5563;line-height:1.45;
}
@media (max-width:520px){
  .ip-volume-tiers__list{grid-template-columns:1fr;}
  .ip-volume-tiers{padding:16px;}
}

/* ==================================================================
   Site-wide volume discount — top promo strip (dismissible)
   Renders above the existing .announce bar on every page.
   ================================================================== */
.ip-promo-bar{
  position:relative;
  background:linear-gradient(90deg,var(--primary) 0%,var(--primary-dark,#134E4A) 100%);
  color:#fff;
  font-family:inherit;
  font-size:13px;
  letter-spacing:.02em;
  text-align:center;
  padding:9px 44px 9px 16px;   /* extra right pad so close × never overlaps */
  line-height:1.4;
}
.ip-promo-bar__link{
  display:inline-block;
  color:#fff !important;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:1px;
  transition:border-color .15s ease;
}
.ip-promo-bar__link:hover,
.ip-promo-bar__link:focus{
  color:#fff !important;
  border-bottom-color:#fff;
}
.ip-promo-bar__link strong{
  font-family:"Arial Black",Arial,sans-serif;
  letter-spacing:.04em;
}
.ip-promo-bar__bolt{
  display:inline-block;margin-right:6px;
  font-size:14px;color:#FBBF24;          /* warm yellow accent */
  vertical-align:-1px;
}
.ip-promo-bar__close{
  position:absolute;top:50%;right:12px;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;
  background:transparent;border:0;color:#fff;
  font-size:20px;line-height:1;cursor:pointer;
  opacity:.75;transition:opacity .15s ease,background .15s ease;
}
.ip-promo-bar__close:hover,
.ip-promo-bar__close:focus{
  opacity:1;background:rgba(255,255,255,.15);outline:none;
}
@media (max-width:560px){
  .ip-promo-bar{font-size:12px;padding:8px 38px 8px 12px;}
  .ip-promo-bar__link{border-bottom:0;}      /* underline reads cluttered on small screens */
  .ip-promo-bar__close{right:6px;width:26px;height:26px;}
}

/* ==================================================================
   Fix: empty-cart button text not visible
   ------------------------------------------------------------------
   Catches ALL button variants on /cart/ regardless of whether the
   site uses the classic shortcode OR the Cart Block (Gutenberg).
   Both markups exist — this rule covers both.

   Classic markup:    <a class="button wc-backward">Return to shop</a>
   Cart Block markup: <a class="wc-block-cart__submit-button wp-element-button">Browse store</a>
   ================================================================== */
body.woocommerce-cart a.button,
body.woocommerce-cart button.button,
body.woocommerce-cart input.button,
body.woocommerce-cart a.wc-backward,
body.woocommerce-cart .return-to-shop a,
body.woocommerce-cart .wp-element-button,
body.woocommerce-cart .wc-block-components-button,
body.woocommerce-cart [class*="wc-block-cart__submit-button"],
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block a,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block button,
body.woocommerce-cart .woocommerce-info a.button,
body.woocommerce-cart .woocommerce-message a.button,
body.woocommerce-cart .product .add_to_cart_button,
body.woocommerce-cart .product .button.product_type_simple{
  color:#fff !important;
  background-color:var(--primary) !important;
  background-image:none !important;
  border:1px solid var(--primary) !important;
  text-decoration:none !important;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:12px 26px;
  border-radius:999px;
  display:inline-block;
  box-shadow:0 6px 18px rgba(15,118,110,.28);
}
/* Force any nested text spans to inherit white too */
body.woocommerce-cart a.button *,
body.woocommerce-cart .wp-element-button *,
body.woocommerce-cart [class*="wc-block-cart__submit-button"] *,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block a *{
  color:#fff !important;
}
/* Hover state */
body.woocommerce-cart a.button:hover,
body.woocommerce-cart button.button:hover,
body.woocommerce-cart a.wc-backward:hover,
body.woocommerce-cart .return-to-shop a:hover,
body.woocommerce-cart .wp-element-button:hover,
body.woocommerce-cart .wc-block-components-button:hover,
body.woocommerce-cart [class*="wc-block-cart__submit-button"]:hover,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block a:hover,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block button:hover{
  color:#fff !important;
  background-color:#134E4A !important;
  border-color:#134E4A !important;
}

/* ==================================================================
   Global Add-to-cart fix — Gutenberg-block flavoured buttons
   ------------------------------------------------------------------
   On the empty-cart page the "New in store" grid renders each product's
   add-to-cart link as a Gutenberg block-style button:

     <a class="wp-block-button__link add_to_cart_button">Add to cart</a>

   These appear anywhere the WC "Products" block is used (empty cart,
   home page, etc.), so the rule is global. We anchor on
   .add_to_cart_button so we never restyle non-WC Gutenberg buttons.
   ================================================================== */
a.add_to_cart_button,
a.add_to_cart_button:link,
a.add_to_cart_button:visited,
a.wp-block-button__link.add_to_cart_button,
.wp-block-button .wp-block-button__link.add_to_cart_button,
.wc-block-grid__product-add-to-cart a,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block a.button{
  color:#fff !important;
  background-color:var(--primary) !important;
  background-image:none !important;
  border:1px solid var(--primary) !important;
  text-decoration:none !important;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:12px 26px;
  border-radius:999px;
  display:inline-block;
  box-shadow:0 6px 18px rgba(15,118,110,.28);
}
a.add_to_cart_button:hover,
a.wp-block-button__link.add_to_cart_button:hover,
.wp-block-button .wp-block-button__link.add_to_cart_button:hover,
.wc-block-grid__product-add-to-cart a:hover,
.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block a.button:hover{
  color:#fff !important;
  background-color:#134E4A !important;
  border-color:#134E4A !important;
}

/* ==========================================================
   v1.0.16 — Mobile fixes (hero stack, menu position, fonts)
   ========================================================== */

/* 1) HERO — on mobile, stack the visual ABOVE the text */
@media (max-width:820px){
  .hero .grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "visual"
      "copy";
    gap:32px;
  }
  .hero .grid > .hero-visual{
    grid-area:visual;
    order:-1;
    aspect-ratio:auto;
    max-height:340px;
    width:100%;
  }
  .hero .grid > div:not(.hero-visual){
    grid-area:copy;
    order:1;
  }
  .hero{padding:40px 0 64px;}
}
@media (max-width:520px){
  .hero .grid > .hero-visual{
    max-height:280px;
    border-radius:18px;
  }
  .vial-photo{max-width:70%;max-height:80%;}
  .chip-1,.chip-2{font-size:10px;padding:7px 10px;}
}

/* 2) MOBILE MENU — sit BELOW the full header, not under it */
@media (max-width:1020px){
  .site-header{position:sticky;}
  .site-header .wrap.nav{position:relative;}
  .nav-menu{
    position:absolute !important;
    top:100% !important;        /* anchor immediately under header bar */
    left:0;right:0;
    background:#fff;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    padding:8px 24px 16px;
    z-index:60;
  }
}

/* 3) PRODUCT CARD FONT — force the theme's heading font on every WC product
      tile variant, with mobile-safe fallbacks (Arial Black isn't installed
      on most phones — without a fallback chain Android renders Roboto and
      iOS renders system, so titles look completely different from the rest
      of the site). High specificity overrides Elementor's kit defaults. */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title,
ul.products li.product h3.woocommerce-loop-product__title,
ul.products li.product a .woocommerce-loop-product__title,
.products-grid ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.elementor-default ul.products li.product .woocommerce-loop-product__title,
body.elementor-default ul.products li.product h2,
body.elementor-default ul.products li.product h3{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif !important;
  font-weight:900 !important;
}
ul.products li.product .price,
ul.products li.product span.price,
.woocommerce ul.products li.product .price,
body.elementor-default ul.products li.product .price{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif !important;
  font-weight:900 !important;
}
ul.products li.product .button,
ul.products li.product a.button,
ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .button,
body.elementor-default ul.products li.product .button{
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-weight:700 !important;
}
/* Belt-and-braces: Elementor sometimes injects font on the inner anchor */
body ul.products li.product a,
body.elementor-default ul.products li.product a{
  font-family:inherit;
}

/* ==========================================================
   v1.0.17 — Add-to-cart toast (replaces inline "View cart")
   ========================================================== */

/* Hide WooCommerce's inline "View cart" link that gets injected
   next to product-card buttons after a successful AJAX add. */
a.added_to_cart,
a.added_to_cart.wc-forward,
.woocommerce a.added_to_cart,
.woocommerce-page a.added_to_cart,
ul.products li.product a.added_to_cart,
.wc-block-grid__product a.added_to_cart{
  display:none !important;
}

/* Toast container — fixed-position, slides up from bottom */
.ip-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translate(-50%, 24px);
  z-index:9999;
  width:min(440px, calc(100% - 32px));
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--primary);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(4,47,46,.18), 0 4px 12px rgba(0,0,0,.06);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
  font-family:Helvetica, Arial, sans-serif;
}
.ip-toast.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%, 0);
}
.ip-toast__inner{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "icon body"
    "icon actions";
  gap:6px 14px;
  padding:16px 44px 16px 18px;
  position:relative;
}
.ip-toast__icon{
  grid-area:icon;
  width:36px;height:36px;border-radius:50%;
  background:var(--primary);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  align-self:start;
  margin-top:2px;
  flex-shrink:0;
}
.ip-toast__body{grid-area:body;}
.ip-toast__title{
  font-family:"Arial Black","Helvetica Neue Bold",Helvetica,Arial,sans-serif;
  font-size:15px;
  color:var(--ink);
  letter-spacing:.01em;
  margin-bottom:2px;
}
.ip-toast__msg{
  font-size:13px;
  color:var(--muted);
  line-height:1.4;
}
.ip-toast__actions{
  grid-area:actions;
  display:flex;
  gap:10px;
  margin-top:10px;
  flex-wrap:wrap;
}
.ip-toast__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  text-decoration:none !important;
  cursor:pointer;
  transition:all .18s ease;
  font-family:Helvetica, Arial, sans-serif;
  line-height:1;
}
.ip-toast__btn--primary{
  background:var(--primary);
  color:#fff !important;
  border:1px solid var(--primary);
}
.ip-toast__btn--primary:hover{
  background:var(--primary-deep);
  border-color:var(--primary-deep);
  color:#fff !important;
}
.ip-toast__btn--ghost{
  background:transparent;
  color:var(--ink) !important;
  border:1px solid var(--line);
}
.ip-toast__btn--ghost:hover{
  background:var(--off);
  border-color:var(--primary-pale);
}
.ip-toast__close{
  position:absolute;
  top:8px;right:10px;
  width:28px;height:28px;
  background:transparent;
  border:0;
  font-size:22px;
  line-height:1;
  color:var(--muted);
  cursor:pointer;
  border-radius:6px;
  padding:0;
}
.ip-toast__close:hover{background:var(--off); color:var(--ink);}

/* Mobile: full width with safe edges */
@media (max-width:520px){
  .ip-toast{
    bottom:16px;
    width:calc(100% - 24px);
    border-radius:12px;
  }
  .ip-toast__inner{padding:14px 40px 14px 14px; gap:4px 12px;}
  .ip-toast__icon{width:32px;height:32px;}
  .ip-toast__title{font-size:14px;}
  .ip-toast__msg{font-size:12px;}
  .ip-toast__btn{padding:8px 14px; font-size:12px; flex:1; min-width:0;}
}

/* ==========================================================
   v1.0.18 — Checkout PLACE ORDER button (classic + block)
   ========================================================== */

/* Cover every flavour of WC checkout button:
   - Classic checkout: button#place_order.button.alt
   - Cart/Checkout Block: .wc-block-components-checkout-place-order-button
   - Generic block buttons inside the checkout area
   - "Proceed to checkout" button on the cart page (same look) */
button#place_order,
button#place_order.button,
button#place_order.button.alt,
.woocommerce #place_order,
.woocommerce-page #place_order,
.woocommerce-checkout button[name="woocommerce_checkout_place_order"],
.woocommerce-checkout .place-order .button,
.woocommerce-checkout .place-order button,
.wc-block-checkout__actions_row button.wc-block-components-button,
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout button.wc-block-components-button,
.wp-block-woocommerce-checkout-actions-block button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button,
.wc-block-cart__submit-button,
a.wc-block-cart__submit-button,
.wc-proceed-to-checkout a.checkout-button{
  background:var(--primary) !important;
  background-color:var(--primary) !important;
  background-image:none !important;
  color:#fff !important;
  border:1px solid var(--primary) !important;
  border-radius:999px !important;
  padding:16px 36px !important;
  font-family:"Arial Black","Helvetica Neue Bold",Helvetica,Arial,sans-serif !important;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  text-shadow:none !important;
  box-shadow:0 8px 22px rgba(15,118,110,.32) !important;
  cursor:pointer !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:52px !important;
  width:auto !important;
  line-height:1 !important;
  transition:all .2s ease !important;
}

button#place_order:hover,
.woocommerce #place_order:hover,
.woocommerce-checkout .place-order .button:hover,
.wc-block-checkout__actions_row button.wc-block-components-button:hover,
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-checkout button.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
a.wc-block-cart__submit-button:hover,
.wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--primary-deep) !important;
  background-color:var(--primary-deep) !important;
  border-color:var(--primary-deep) !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(15,118,110,.42) !important;
}

button#place_order:disabled,
.wc-block-components-checkout-place-order-button:disabled,
.wc-block-cart__submit-button:disabled{
  opacity:.6 !important;
  cursor:not-allowed !important;
  transform:none !important;
}

/* Block-checkout container: ensure the action row gives the button room
   and the inner span (label) renders white with the right font. */
.wp-block-woocommerce-checkout .wc-block-components-button__text,
.wc-block-checkout__actions_row .wc-block-components-button__text,
.wc-block-cart__submit-button .wc-block-components-button__text{
  color:#fff !important;
  font-family:inherit !important;
  font-weight:900 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
}

/* Full-width on mobile so the CTA is impossible to miss */
@media (max-width:520px){
  button#place_order,
  .woocommerce-checkout .place-order .button,
  .wc-block-checkout__actions_row button.wc-block-components-button,
  .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button,
  .wc-block-cart__submit-button,
  a.wc-block-cart__submit-button,
  .wc-proceed-to-checkout a.checkout-button{
    width:100% !important;
    padding:18px 24px !important;
    font-size:14px !important;
    min-height:56px !important;
  }
}

/* ==========================================================
   v1.0.19 — Product card button: prevent label wrap
   ========================================================== */
ul.products li.product .button,
ul.products li.product a.button,
ul.products li.product .add_to_cart_button,
ul.products li.product a.add_to_cart_button,
ul.products li.product .wp-block-button__link,
ul.products li.product a.wp-block-button__link,
.woocommerce ul.products li.product .button{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
/* On the tightest phone widths, trim padding + font so even longer labels
   sit on a single line and the cards keep a consistent height. */
@media (max-width:520px){
  ul.products li.product .button,
  ul.products li.product a.button,
  ul.products li.product .add_to_cart_button,
  ul.products li.product a.add_to_cart_button,
  ul.products li.product .wp-block-button__link,
  ul.products li.product a.wp-block-button__link{
    padding:9px 12px !important;
    font-size:11.5px !important;
    letter-spacing:.02em !important;
  }
}

/* ==========================================================
   v1.0.21 — Empty cart: hide cross-sell, show clean message + CTA
   (Replaces the v1.0.20 layout overrides which collapsed the
   cross-sell cards into thin vertical strips. Conservative approach:
   just hide the "New in store" grid entirely and let the JS-injected
   CTA do the work of guiding users back to /shop/.)
   ========================================================== */

/* "Your cart is currently empty!" heading — centred brand typography */
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block > h2,
.wp-block-woocommerce-empty-cart-block > p.wc-block-cart__empty-cart__title{
  font-family:"Arial Black","Helvetica Neue Bold","Helvetica Bold",Helvetica,Arial,sans-serif !important;
  font-size:clamp(22px,3vw,30px) !important;
  color:var(--primary-deep, #134E4A) !important;
  text-align:center !important;
  margin:30px 0 12px !important;
  letter-spacing:.01em !important;
}

/* Hide the "New in store" cross-sell entirely — heading, hr, and grid */
.wp-block-woocommerce-empty-cart-block hr,
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block h3,
.wp-block-woocommerce-empty-cart-block .wp-block-heading,
.wp-block-woocommerce-empty-cart-block h2 ~ h2,
.wp-block-woocommerce-empty-cart-block .wc-block-grid,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-handpicked-products{
  display:none !important;
}

/* The "Browse all products" CTA injected by main.js */
.ip-empty-cart-cta{
  text-align:center;
  margin:8px auto 80px;
  max-width:560px;
  padding:0 24px;
}
.ip-empty-cart-cta__msg{
  color:var(--muted, #4A5B5A);
  font-size:15px;
  margin:0 0 20px;
  line-height:1.55;
}
.ip-empty-cart-cta__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--primary, #0F766E);
  color:#fff;
  font-family:"Arial Black","Helvetica Neue Bold",Helvetica,Arial,sans-serif;
  font-weight:900;
  font-size:14px;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 30px;
  border-radius:999px;
  border:1px solid var(--primary, #0F766E);
  box-shadow:0 8px 22px rgba(15,118,110,.28);
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.ip-empty-cart-cta__btn:hover{
  background:var(--primary-deep, #134E4A);
  border-color:var(--primary-deep, #134E4A);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(15,118,110,.4);
}
@media (max-width:520px){
  .ip-empty-cart-cta{margin:8px auto 60px;}
  .ip-empty-cart-cta__btn{padding:13px 24px; font-size:13px;}
}
