/*
Theme Name: Healinz React Commerce
Theme URI: https://healinz.com/
Author: Healinz
Description: Portable React storefront mapped to WordPress and WooCommerce.
Version: 1.4.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: healinz
*/

:root { --hz-ink:#171512; --hz-forest:#203b32; --hz-cream:#f8f5ee; --hz-gold:#b99252; --hz-teal:#2e8177; --hz-muted:#5d6c66; --paper:#e8e2d7; --gold-light:#e6cd9a; --serif:"Iowan Old Style","Baskerville","Times New Roman",serif; --page-gutter:clamp(1.35rem,7vw,8.5rem); }
* { box-sizing: border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--hz-ink); background:var(--hz-cream); font-family:Arial,sans-serif; line-height:1.6; }
.hz-native-header { position:relative; z-index:20; min-height:84px; padding:.9rem clamp(1rem,5vw,5rem); background:#151412; color:#f8f5ee; display:grid; grid-template-columns:200px 1fr auto; align-items:center; gap:clamp(1.5rem,4vw,4rem); border-bottom:1px solid rgba(255,255,255,.12); }
.hz-native-header a,.hz-native-footer a { color:inherit; text-decoration:none; }
.hz-native-logo img { display:block; width:188px; height:auto; }
.hz-native-nav,.hz-native-actions { display:flex; align-items:center; justify-content:center; gap:clamp(1rem,2.3vw,2.5rem); }
.hz-native-actions { justify-content:flex-end; gap:1.25rem; }
.hz-native-nav a,.hz-native-actions a { font-size:.76rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; transition:color .2s ease; }
.hz-native-nav a:hover,.hz-native-actions a:hover { color:#d6bb84; }
.hz-native-main { min-height:60vh; }
.hz-native-main:has(.hz-builder-page) { width:100%; margin:0; padding:0; }
.hz-native-content { width:min(1180px,calc(100% - 2rem)); margin:0 auto; padding:clamp(3rem,7vw,7rem) 0; }
.hz-native-footer { display:grid; grid-template-columns:1.35fr .65fr .9fr 1fr; gap:clamp(2rem,5vw,6rem); padding:clamp(4rem,7vw,6rem) clamp(1.25rem,6vw,7rem) 2rem; background:#151412; color:#f8f5ee; }
.hz-native-footer img { width:180px; height:auto; }
.hz-native-footer-brand p { margin:1.25rem 0 .2rem; font-family:Georgia,serif; font-size:1.15rem; }
.hz-native-footer-brand span,.hz-native-footer-care p { color:#aaa69e; font-size:.82rem; }
.hz-native-footer nav { display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; }
.hz-native-footer strong { margin-bottom:.55rem; color:#d6bb84; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }
.hz-native-footer nav a { color:#d5d1ca; font-size:.85rem; }
.hz-native-footer nav a:hover { color:#fff; }
.hz-native-footer-care p { max-width:19rem; margin:0; line-height:1.75; }
.hz-native-footer-meta { grid-column:1/-1; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.12); color:#8f8b84; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }

/* Keep native WordPress, WooCommerce and SiteOrigin pages visually identical
   to the shared React footer used on the home page. */
.site-footer { display:block; padding:0 var(--page-gutter) 1.5rem; border-top:1px solid rgba(255,255,255,.09); color:var(--paper); background:#080806; }
.site-footer a { color:inherit; text-decoration:none; }
.site-footer-main { display:grid; width:100%; grid-template-columns:minmax(220px,1.35fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(140px,.8fr) minmax(220px,1.1fr); gap:clamp(2rem,4vw,4.5rem); margin:0 auto; padding:clamp(3.75rem,5vw,5rem) 0 3.5rem; }
.site-footer-brand .brand-mark { display:block; width:180px; }
.site-footer-brand .brand-mark img { display:block; width:100%; height:auto; }
.site-footer-brand > p { max-width:320px; margin:1.65rem 0 .65rem; color:rgba(255,255,255,.84); font-family:var(--serif); font-size:clamp(1.45rem,2vw,2rem); line-height:1.18; }
.site-footer-brand > span { display:block; max-width:290px; color:rgba(255,255,255,.48); font-size:.78rem; line-height:1.65; }
.site-footer-nav,.site-footer-care { display:flex; align-items:flex-start; flex-direction:column; }
.site-footer-nav > strong,.site-footer-care > strong { margin-bottom:1.25rem; color:var(--gold-light); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.site-footer-nav a { padding:.34rem 0; color:rgba(255,255,255,.69); font-size:.84rem; line-height:1.5; transition:color .2s ease,transform .2s ease; }
.site-footer-nav a:hover,.site-footer-nav a:focus-visible { color:var(--paper); transform:translateX(3px); }
.site-footer-care { padding:1.25rem 1.35rem; border:1px solid rgba(231,204,146,.2); border-radius:14px; background:rgba(231,204,146,.045); }
.site-footer-care > strong { margin-bottom:.8rem; }
.site-footer-care p { margin:0 0 1rem; color:rgba(255,255,255,.62); font-size:.76rem; line-height:1.7; }
.site-footer-care a { display:inline-flex; align-items:center; gap:.55rem; color:rgba(255,255,255,.9); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.site-footer-care a svg { width:16px; height:16px; }
.site-footer-care a + a { margin-top:.65rem; }
.site-footer-meta { display:flex; width:100%; justify-content:space-between; gap:1rem 2rem; margin:0 auto; padding-top:1.35rem; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.42); font-size:.7rem; letter-spacing:.07em; line-height:1.55; text-transform:uppercase; }

/* SiteOrigin-powered Healinz editorial pages. */
.hz-builder-page { overflow:hidden; background:#f8f5ee; color:var(--hz-forest); }
.hz-builder-page .panel-grid { margin:0 !important; }
.hz-builder-page .panel-grid-cell { min-height:0; }
.hz-builder-page .so-panel { margin-bottom:0 !important; }
.hz-builder-page .widget-title { display:none; }
.hz-builder-page .siteorigin-widget-tinymce { color:inherit; }
.hz-so-row { padding:0 clamp(1.25rem,6vw,7rem); }
.hz-so-row:nth-child(odd):not(.hz-so-row--hero):not(.hz-so-row--about-hero):not(.hz-so-row--dark):not(.hz-so-row--callout) { background:#f1eee5; }
.hz-so-row--hero { background:radial-gradient(circle at 82% 18%,rgba(134,172,157,.22),transparent 34%),linear-gradient(135deg,#f5eee3,#edf2ea); }
.hz-so-row--tint { background:#edf1e9; }
.hz-so-row--dark { background:#203b32; color:#f8f5ee; }
.hz-so-row--callout { padding-bottom:clamp(5rem,8vw,8rem); }
.hz-kicker { margin:0 0 1rem; color:#aa7d3b; font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.hz-editorial-hero { width:min(1180px,100%); min-height:clamp(30rem,62vh,42rem); margin:0 auto; padding:clamp(7rem,12vw,11rem) 0 clamp(5rem,8vw,8rem); display:flex; flex-direction:column; justify-content:center; }
.hz-editorial-hero h1,.hz-about-hero h1 { max-width:12ch; margin:0; font-family:Georgia,serif; font-size:clamp(3.1rem,7vw,7rem); font-weight:400; letter-spacing:-.055em; line-height:.92; }
.hz-editorial-hero > p:last-child { max-width:46rem; margin:2rem 0 0; color:#4d625b; font-size:clamp(1rem,1.6vw,1.3rem); line-height:1.8; }
.hz-editorial-section { width:min(930px,100%); margin:0 auto; padding:clamp(4rem,7vw,7rem) 0; }
.hz-editorial-section h2,.hz-about-split h2,.hz-about-reasons h2 { margin:0 0 1.4rem; font-family:Georgia,serif; font-size:clamp(2.25rem,4.5vw,4.4rem); font-weight:400; letter-spacing:-.04em; line-height:1; }
.hz-editorial-section p { max-width:52rem; margin:1rem 0 0; color:#4d625b; font-size:1rem; line-height:1.85; }
.hz-editorial-section a,.hz-editorial-callout a { color:#8b632d; text-decoration-thickness:1px; text-underline-offset:.25em; }
.hz-editorial-callout { width:min(930px,100%); margin:clamp(3rem,6vw,6rem) auto 0; padding:clamp(2rem,4vw,3.5rem); border:1px solid rgba(32,59,50,.18); border-left:5px solid #b99252; border-radius:1rem; background:#fffdf8; box-shadow:0 1.5rem 4rem rgba(31,56,46,.08); }
.hz-editorial-callout strong { display:block; font-family:Georgia,serif; font-size:clamp(1.5rem,2.5vw,2.2rem); font-weight:400; }
.hz-editorial-callout p { margin:.75rem 0 0; color:#53665f; }

.hz-so-row--about-hero { padding:0; background:#151412; }
.hz-about-hero { position:relative; min-height:min(49rem,calc(100svh - 84px)); display:grid; align-items:end; overflow:hidden; color:#fff; }
.hz-about-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hz-about-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,15,13,.88) 0%,rgba(12,15,13,.5) 45%,rgba(12,15,13,.12) 75%),linear-gradient(0deg,rgba(0,0,0,.45),transparent 55%); }
.hz-about-hero > div { position:relative; z-index:1; width:min(1180px,calc(100% - 2.5rem)); margin:0 auto; padding:clamp(7rem,13vw,11rem) 0 clamp(4rem,7vw,7rem); }
.hz-about-hero h1 { max-width:13ch; }
.hz-about-hero div > p:not(.hz-kicker) { max-width:39rem; margin:1.6rem 0; color:#dfddd7; font-size:1.08rem; }
.hz-text-link { display:inline-block; padding-bottom:.25rem; border-bottom:1px solid currentColor; color:#fff; font-weight:700; }
.hz-about-intro { width:min(1060px,100%); margin:0 auto; padding:clamp(5rem,10vw,10rem) 0; display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:clamp(2rem,7vw,7rem); }
.hz-about-intro h2 { margin:0; font-family:Georgia,serif; font-size:clamp(3rem,6vw,6rem); font-weight:400; letter-spacing:-.055em; line-height:.95; }
.hz-about-intro h2 em,.hz-about-reasons h2 em { color:#8870a4; font-weight:400; }
.hz-about-intro p { margin:0; color:#53665f; font-size:1.05rem; line-height:1.85; }
.hz-about-split { width:min(1180px,100%); margin:0 auto; padding:clamp(5rem,9vw,9rem) 0; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(2.5rem,7vw,7rem); }
.hz-about-split--reverse img { order:2; }
.hz-about-split img { display:block; width:100%; height:clamp(26rem,52vw,44rem); object-fit:cover; border-radius:1.4rem; box-shadow:0 2rem 5rem rgba(31,56,46,.15); }
.hz-about-split h3 { margin:2.5rem 0 .6rem; font-family:Georgia,serif; font-size:1.8rem; font-weight:400; }
.hz-about-split p { color:#53665f; line-height:1.85; }
.hz-about-reasons { width:min(1180px,100%); margin:0 auto; padding:clamp(5rem,9vw,9rem) 0; }
.hz-reason-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:3.5rem; background:rgba(32,59,50,.15); border:1px solid rgba(32,59,50,.15); }
.hz-reason-grid article { padding:clamp(2rem,4vw,3.5rem); background:#f8f5ee; }
.hz-reason-grid span { color:#aa7d3b; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.hz-reason-grid h3 { margin:1rem 0 .7rem; font-family:Georgia,serif; font-size:1.7rem; font-weight:400; }
.hz-reason-grid p { margin:0; color:#53665f; }
.hz-value-pills { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }
.hz-value-pills span { padding:.6rem 1rem; border:1px solid rgba(32,59,50,.22); border-radius:999px; font-size:.78rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.hz-editorial-cta { width:min(1050px,100%); margin:0 auto; padding:clamp(6rem,11vw,11rem) 0; text-align:center; }
.hz-editorial-cta .hz-kicker { color:#d6bb84; }
.hz-editorial-cta blockquote { margin:0 auto 1.5rem; max-width:18ch; font-family:Georgia,serif; font-size:clamp(2.2rem,5vw,4.8rem); font-weight:400; letter-spacing:-.04em; line-height:1.05; }
.hz-editorial-cta > p:not(.hz-kicker) { color:#c9d0cc; }
.hz-button { display:inline-flex; margin-top:1.5rem; padding:.9rem 1.5rem; border-radius:999px; background:#f8f5ee; color:#203b32 !important; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.woocommerce .button,.woocommerce button.button,.woocommerce input.button { background:var(--hz-teal); color:#fff; border-radius:999px; padding:.8em 1.4em; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea { padding:.8rem; border:1px solid #bfb6a5; border-radius:.4rem; }

/* WooCommerce account page mirrors the React storefront while retaining native auth. */
.hz-account-page { padding:clamp(5.75rem,9vw,9rem) var(--page-gutter) clamp(6rem,9vw,9rem); background:#f8f5ee; }
.hz-account-heading { max-width:760px; margin:0 0 clamp(4rem,7vw,6.5rem); }
.hz-account-kicker { margin:0 0 1.25rem; color:#a87d3e; font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.hz-account-heading h1 { margin:0; font-family:var(--serif); font-size:clamp(4rem,7vw,7rem); font-weight:400; letter-spacing:-.055em; line-height:.9; }
.hz-account-heading > p:last-child { max-width:690px; margin:2rem 0 0; color:#5f5a52; font-family:var(--serif); font-size:clamp(1.05rem,1.35vw,1.25rem); line-height:1.55; }
.hz-account-page > .woocommerce { max-width:1040px; margin:0 auto; }
.hz-account-card { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); border:1px solid rgba(18,17,15,.16); background:#faf7f1; }
.hz-account-tabs { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid rgba(18,17,15,.16); }
.hz-account-tabs button { min-height:58px; padding:.75rem 1rem; border:0; border-radius:0; color:#6c665e; background:transparent; font:inherit; cursor:pointer; }
.hz-account-tabs button.is-active { color:#fff; background:#171512; }
.hz-account-form-panel { grid-column:1; }
.hz-account-form-panel[hidden] { display:none; }
.hz-account-form-panel form.login,.hz-account-form-panel form.register { display:grid; gap:1rem; min-height:100%; margin:0; padding:clamp(2.25rem,5vw,5rem); border:0; border-radius:0; }
.hz-account-form-panel h2 { margin:0; font-family:var(--serif); font-size:clamp(2.7rem,4.5vw,4.7rem); font-weight:400; letter-spacing:-.05em; line-height:.92; }
.hz-account-form-panel .hz-account-intro { margin:0 0 1rem; color:#6a645d; line-height:1.6; }
.hz-account-form-panel .form-row { float:none; width:100%; margin:0; padding:0; }
.hz-account-form-panel .form-row label { display:block; margin:0 0 .4rem; color:#4e4942; font-size:.76rem; line-height:1.4; }
.hz-account-page .woocommerce .hz-account-form-panel input.input-text { width:100%; min-height:50px; padding:.75rem 1rem; border:1px solid rgba(18,17,15,.25); border-radius:0; color:#171512; background:#fff; }
.hz-account-form-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:#59534c; font-size:.78rem; }
.hz-account-form-actions label { display:flex; align-items:center; gap:.45rem; }
.hz-account-form-actions input { margin:0; }
.hz-lost-password,.hz-account-consent a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.hz-account-consent { display:grid; grid-template-columns:auto 1fr; align-items:start; gap:.7rem; color:#4e4942; font-size:.78rem; line-height:1.55; }
.hz-account-consent input { width:16px; height:16px; margin-top:.18rem; }
.hz-account-page .woocommerce .button.hz-account-submit { justify-self:start; margin-top:.4rem; padding:1rem 1.6rem; border:0; border-radius:999px; color:#fff; background:#171512; font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.hz-account-page .woocommerce .button.hz-account-submit:hover { color:#fff; background:#2e8177; }
.hz-account-benefits { grid-column:2; grid-row:2; padding:clamp(2.25rem,5vw,5rem); color:#fff; background:#25231f; }
.hz-account-benefits ul { display:grid; gap:1.2rem; margin:2rem 0 0; padding:0; list-style:none; }
.hz-account-benefits li { padding:0 0 1.2rem; border-bottom:1px solid rgba(255,255,255,.14); font-family:var(--serif); font-size:1.3rem; line-height:1.35; }
.hz-account-page .woocommerce-notices-wrapper { margin:0 0 1.5rem; }
.hz-account-page .woocommerce-error,.hz-account-page .woocommerce-message { margin:0; border-top-color:#b99252; background:#fff; }
@media (max-width:1100px){
  .hz-native-header { grid-template-columns:180px 1fr; }
  .hz-native-nav { order:3; grid-column:1/-1; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.1); }
  .hz-native-footer { grid-template-columns:1.2fr 1fr 1fr; }
  .hz-native-footer-care { grid-column:1/-1; }
}
@media (max-width:1120px){
  .site-footer-main { grid-template-columns:1.15fr .7fr .7fr .8fr; }
  .site-footer-care { grid-column:1/-1; display:grid; grid-template-columns:auto 1fr auto; align-items:center; column-gap:1.25rem; }
  .site-footer-care > strong,.site-footer-care p { margin:0; }
}
@media (max-width:760px){
  .hz-native-header { min-height:74px; grid-template-columns:1fr auto; padding:.8rem 1rem; }
  .hz-native-logo img { width:150px; }
  .hz-native-actions a:not(:last-child) { display:none; }
  .hz-native-nav { justify-content:flex-start; overflow-x:auto; gap:1.2rem; padding-bottom:.2rem; scrollbar-width:none; }
  .hz-native-nav a { font-size:.67rem; }
  .hz-native-footer { grid-template-columns:1fr 1fr; padding-inline:1.25rem; }
  .hz-native-footer-brand,.hz-native-footer-care { grid-column:1/-1; }
  .site-footer { padding:0 var(--page-gutter) 1.35rem; }
  .site-footer-main { grid-template-columns:1fr 1fr; gap:2.75rem 2rem; padding:3.75rem 0 3rem; }
  .site-footer-brand,.site-footer-care { grid-column:1/-1; }
  .site-footer-care { display:flex; }
  .site-footer-meta { align-items:flex-start; flex-direction:column; }
  .hz-editorial-hero { min-height:31rem; padding-top:6rem; }
  .hz-about-intro,.hz-about-split { grid-template-columns:1fr; }
  .hz-about-split--reverse img { order:0; }
  .hz-about-split img { height:min(32rem,105vw); }
  .hz-reason-grid { grid-template-columns:1fr; }
  .hz-account-page { padding-inline:1.25rem; }
  .hz-account-heading { margin-bottom:3.25rem; }
  .hz-account-card { grid-template-columns:1fr; }
  .hz-account-form-panel,.hz-account-benefits { grid-column:1; }
  .hz-account-benefits { grid-row:auto; }
  .hz-account-form-actions { align-items:flex-start; flex-direction:column; }
}
@media (max-width:480px){
  .hz-native-footer { grid-template-columns:1fr; }
  .hz-native-footer nav { grid-column:1; }
  .site-footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.4rem 1.5rem; }
  .hz-editorial-hero h1,.hz-about-hero h1 { font-size:clamp(2.7rem,14vw,4.2rem); }
}
