/*
Theme Name: Hello Elementor Child
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* NORMALIZATION CSS MARKER - Purple Health. Round 1: scaffold only, zero rules so activation does not change appearance. Round 2: normalization CSS lands below, loads after parent. */

/* DF-PurpleHealth:batch1-css:start */
/* ============================================================================
   BATCH 1 — CSS CONSOLIDATION + NORMALIZATION — Purple Health (2026-07-20)
   ============================================================================
   Moves the first tier of per-widget Elementor "Custom CSS" into this child
   theme (Amit directive, cont-47: prevent future loss; markup stays as
   Elementor content, CSS/JS/PHP moves here). Source widgets listed inline
   below are NOT yet stripped — this is phase 1 of a gated 2-phase rollout
   (paste + verify, THEN strip the now-redundant widget-level custom_css in
   a follow-up pass). Having both active at once is safe: values are either
   byte-identical or (FAQ Contact variant) explicitly reconciled below, so
   the interim double-application produces zero visual change either way.
   ============================================================================ */

/* --- A1. Cart (WooCommerce, page 308) — migrated verbatim from widget
   540f58d's Custom CSS. Elementor's "selector" placeholder (auto-expands to
   .elementor-element-540f58d at render time) replaced with the real cart
   scope .woocommerce-cart per Amit's instruction. --- */
.woocommerce-cart .product-name a,
.woocommerce-cart a.shipping-calculator-button {
  color: #4B286D !important;
}
.woocommerce-cart .product-name a:hover,
.woocommerce-cart a.shipping-calculator-button:hover {
  color: #3c2058 !important;
}
.woocommerce-cart a.wc-backward {
  border-radius: 12px !important;
  font-family: "Satoshi", sans-serif !important;
  color: #4B286D !important;
}

/* --- A2. My Account (page 310) — migrated verbatim from HTML widget
   9f1d127's <style> block (32 lines). Already used real global selectors
   (no "selector" placeholder to substitute) — <style></style> wrapper
   stripped since this is now a stylesheet, not inline HTML. --- */
.woocommerce-account .woocommerce{font-family:"Satoshi","General Sans",sans-serif;max-width:100%;color:#1c1c1c;}
/* two-column login / register */
.woocommerce-account .u-columns{display:grid!important;grid-template-columns:1fr 1fr;gap:34px;align-items:start;}
.woocommerce-account .u-columns:before,.woocommerce-account .u-columns:after{display:none!important;}
.woocommerce-account .u-column1,.woocommerce-account .u-column2,.woocommerce-account .col-1,.woocommerce-account .col-2{width:auto!important;float:none!important;margin:0!important;}
@media(max-width:820px){.woocommerce-account .u-columns{grid-template-columns:1fr;}}
.woocommerce-account .woocommerce h2{font-family:"General Sans","Satoshi",sans-serif;font-weight:700;font-size:23px;color:#4B286D;margin:0 0 16px;}
/* form cards */
.woocommerce-account form.woocommerce-form-login,.woocommerce-account form.woocommerce-form-register{border:1px solid #E8E2D8;border-radius:18px;padding:28px 28px 30px;background:#fff;margin:0;}
.woocommerce-account .woocommerce-form-row{margin-bottom:16px;}
.woocommerce-account label{font-weight:600;font-size:14px;color:#1c1c1c;margin-bottom:7px;display:inline-block;}
.woocommerce-account input.woocommerce-Input,.woocommerce-account input[type=text],.woocommerce-account input[type=email],.woocommerce-account input[type=password],.woocommerce-account input[type=tel]{width:100%;border:1px solid #E8E2D8;border-radius:12px;padding:12px 14px;font-size:15px;outline:none;background:#fff;font-family:inherit;box-sizing:border-box;}
.woocommerce-account .input-text:focus, .woocommerce-account input:focus{border-color:#4B286D!important;box-shadow:0 0 0 3px #F0EAF5;}
/* primary buttons (purple; amber reserved for Book CTA) */
.woocommerce-account button.woocommerce-button,.woocommerce-account button[type=submit],.woocommerce-account .woocommerce-form-login__submit,.woocommerce-account .woocommerce-form-register__submit,.woocommerce-account .woocommerce-Button{background:#4B286D!important;background-image:none!important;color:#fff!important;border:0!important;border-radius:12px!important;height:52px!important;box-sizing:border-box!important;padding:16px 28px!important;font-weight:700!important;font-size:16px!important;font-family:inherit!important;cursor:pointer;transition:filter .15s;box-shadow:none!important;text-transform:none!important;letter-spacing:normal!important;width:auto!important;}
.woocommerce-account button:hover{filter:brightness(1.12);}
.woocommerce-account .woocommerce-form-login__rememberme{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:#555;font-weight:500;margin-left:14px;}
.woocommerce-account a{color:#4B286D;}
.woocommerce-account .lost_password{margin-top:14px;}
.woocommerce-account .lost_password a{font-size:14px;}
.woocommerce-account .woocommerce-privacy-policy-text p{font-size:13px;color:#777;margin:6px 0 16px;line-height:1.5;}
/* logged-in dashboard */
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px;border-radius:12px;color:#3a3a3a;text-decoration:none;font-weight:600;transition:background .15s;}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:#faf7f2;}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:#F0EAF5;color:#4B286D;}
.woocommerce-account .woocommerce-MyAccount-content{background:#fff;border:1px solid #E8E2D8;border-radius:18px;padding:28px;color:#333;}
@media(min-width:781px){.woocommerce-account .woocommerce-MyAccount-navigation{width:26%;float:left;} .woocommerce-account .woocommerce-MyAccount-content{width:70%;float:right;}}
.woocommerce-account .woocommerce-message,.woocommerce-account .woocommerce-error,.woocommerce-account .woocommerce-info{border-radius:12px;border-top:0;}

/* --- A3. Partner-logo carousel grayscale hover (Home, page 25) — migrated
   verbatim from image-carousel widget 715658e's Custom CSS. "selector"
   replaced with .elementor-element-715658e (the exact scope Elementor's own
   compiler already resolves it to today) — preserves current behavior
   exactly, since no other carousel on the site should share this treatment
   yet. --- */
.elementor-element-715658e .swiper-slide-image{filter:grayscale(100%);opacity:.75;transition:filter .4s ease,opacity .4s ease;} .elementor-element-715658e:hover .swiper-slide-image{filter:grayscale(0);opacity:1;}

/* --- B. FAQ accordion — ONE shared .elementor-accordion rule set,
   consolidated from 4 widget-level Custom CSS blocks that were previously
   Elementor "selector"-scoped per-widget (auto-prefixed
   .elementor-element-{id} on each page). 3 of 4 were byte-identical:
   Home (ad32a5a) / pg29 Prince Rupert shop (0d0242a) / template 4187
   (3c16295). Now global to the widget TYPE, not the instance, so this is
   the default treatment for any current OR future .elementor-accordion
   sitewide — net-zero visual change on those 3 pages. --- */
.elementor-accordion{counter-reset:faqnum;}.elementor-accordion-item{counter-increment:faqnum;border-radius:14px;overflow:hidden;margin-bottom:12px;border-left:4px solid transparent!important;transition:box-shadow .25s ease,border-color .25s ease;}.elementor-accordion-item:last-child{margin-bottom:0;}.elementor-accordion-item:has(.elementor-tab-title.elementor-active){border-left-color:#4B286D!important;}.elementor-tab-title{position:relative;transition:background-color .25s ease;}.elementor-tab-title::before{content:counter(faqnum,decimal-leading-zero);position:absolute;left:20px;top:50%;transform:translateY(-50%);font-family:'General Sans',sans-serif;font-weight:700;font-size:13px;letter-spacing:.02em;color:rgba(75,40,109,.4);}.elementor-tab-title.elementor-active{background-color:rgba(75,40,109,.05)!important;}.elementor-tab-title.elementor-active::before{color:#4B286D;}.elementor-tab-title:hover{background-color:rgba(75,40,109,.03)!important;}.elementor-accordion-title:focus-visible{outline:2px solid #4B286D;outline-offset:2px;border-radius:4px;}@media(max-width:767px){.elementor-tab-title::before{left:16px;top:19px;transform:none;font-size:11px;}}@media(prefers-reduced-motion:reduce){.elementor-accordion-item,.elementor-tab-title{transition:none;}}

/* --- B-override. Contact page FAQ (widget 2a7defe, page 31) kept as scoped variant. --- */
.elementor-element-2a7defe .elementor-accordion-item{border-left:0!important;}
.elementor-element-2a7defe .elementor-tab-title.elementor-active{box-shadow:inset 3px 0 0 0 #4B286D;}
.elementor-element-2a7defe .elementor-tab-title:focus-visible{outline:2px solid #4B286D;outline-offset:-2px;}
@media(max-width:767px){.elementor-element-2a7defe .elementor-tab-title::before{left:16px;top:50%;transform:translateY(-50%);font-size:11px;}}

/* --- C1. General Sans font-lock (sitewide). --- */
.elementor-heading-title,
h1, h2, h3, h4 {
  font-family: "General Sans", "Satoshi", sans-serif !important;
}
h1 { font-weight: 700; }
h2 { font-weight: 700; }
h3 { font-weight: 600; }
h4 { font-weight: 500; }

/* --- C2. Book Appointment (page 32) hero H1 mobile shrink. --- */
@media (max-width: 767px) {
  body.page-id-32 h1.elementor-heading-title {
    font-size: 36px !important;
    line-height: 1.18 !important;
  }
}

/* --- C3. WooCommerce blue sweep #5BC0DE -> brand. --- */
.woocommerce-message,
.woocommerce-info {
  border-color: #0A5856 !important;
}
.woocommerce-message::before,
.woocommerce-info::before {
  color: #0A5856 !important;
}
.woocommerce-message a.button.wc-forward {
  background-color: #4B286D !important;
  border-color: #4B286D !important;
  color: #fff !important;
}
.woocommerce-message a.button.wc-forward:hover {
  background-color: #3c2058 !important;
}
.woocommerce-cart table.cart td.actions .button,
.woocommerce-cart .coupon .button {
  border: 1px solid #4B286D !important;
  color: #4B286D !important;
}
.woocommerce-cart table.cart td.actions .button:hover,
.woocommerce-cart .coupon .button:hover {
  background-color: #4B286D !important;
  color: #fff !important;
}
/* DF-PurpleHealth:batch1-css:end */
/* DF-PH:tabs-css:start (rail-tabs bf2faaa + team-tabs f322aeb, migrated 2026-07-21) */
.elementor-element-bf2faaa .svc-panel{display:none}
.elementor-element-bf2faaa .svc-panel.svc-active{display:flex}
.elementor-element-bf2faaa .svc-tab{cursor:pointer;transition:background .25s ease}
.elementor-element-bf2faaa .svc-tab.svc-active{background:#F9F6F6;border-bottom-color:transparent}
.elementor-element-bf2faaa .svc-tab.svc-active .elementor-heading-title{color:#4B286D!important}
.elementor-element-bf2faaa .svc-tab:hover:not(.svc-active){background:rgba(255,255,255,0.06)}
.elementor-element-bf2faaa .svc-panel{touch-action:pan-y}
.elementor-element-bf2faaa .svc-pager{display:none;align-items:center;justify-content:center;gap:10px;padding:18px 0 26px}
.elementor-element-bf2faaa .svc-panel.svc-active + .svc-pager{display:flex}
.elementor-element-bf2faaa .svc-dot{width:8px;height:8px;border-radius:50%;background:#E4DCD2;cursor:pointer;border:none;padding:0;transition:background .2s ease, transform .2s ease}
.elementor-element-bf2faaa .svc-dot:hover{background:#C9BEDD}
.elementor-element-bf2faaa .svc-dot.svc-dot-active{background:#4B286D;transform:scale(1.3)}
.elementor-element-bf2faaa .svc-dot:focus-visible{outline:2px solid #4B286D;outline-offset:2px}
.elementor-element-bf2faaa .svc-pager-label{font:700 12px Satoshi,sans-serif;color:#6B7280;margin-left:6px;min-width:34px;text-align:left}
@media (prefers-reduced-motion: reduce){.elementor-element-bf2faaa .svc-dot{transition:none}}

.elementor-element-f322aeb .team-tab{cursor:pointer;transition:background .2s ease}
.elementor-element-f322aeb .team-tab:hover:not(.team-active){background:#F3EFE9}
.elementor-element-f322aeb .team-tab.team-active{background:#4B286D!important}
.elementor-element-f322aeb .team-tab.team-active .team-indicator{background:#FFFFFF!important}
.elementor-element-f322aeb .team-tab.team-active .elementor-heading-title{color:#FFFFFF!important;font-weight:700!important}
.elementor-element-f322aeb .team-tab:focus-visible{outline:2px solid #4B286D;outline-offset:2px}
.elementor-element-f322aeb .team-panel{display:none}
.elementor-element-f322aeb .team-panel.team-active{display:flex}
@media (prefers-reduced-motion: reduce){.elementor-element-f322aeb .team-tab{transition:none}}
.elementor-element-f322aeb .team-photo-zone{position:relative;overflow:hidden;aspect-ratio:267/288}
.elementor-element-f322aeb .team-photo-zone .elementor-widget-image{height:100%}
.elementor-element-f322aeb .team-photo-zone img.team-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.elementor-element-f322aeb .team-tab:not(.team-active){background:#FFFFFF!important}
.elementor-element-f322aeb .team-tab:not(.team-active) .team-indicator{background:#EAE4DA!important}
.elementor-element-f322aeb .team-tab:not(.team-active) .elementor-heading-title{color:#000000!important;font-weight:600!important}
/* DF-PH:tabs-css:end */
