/* Healthy Visions child theme (apicona-hv) — concept A "Quiet clinic". R1 2026-11-08.
   Shell (top bar, header, footer) loads on every page and is scoped to .hv-* so the parent's CSS can keep styling
   page-builder content on inner pages. Home and the course page (281) are "lean": the parent's CSS/JS is not loaded
   there, so .hv-lean carries the base type and the .hv-c content blocks. No web fonts, no icon fonts. */

:root{
  --hv-paper:#f6f1e8; --hv-card:#fffdf8; --hv-ink:#1f2a2b; --hv-muted:#5a6563; --hv-line:#ddd3c2;
  --hv-teal:#1f5c5a; --hv-teal-dk:#164644; --hv-teal-lt:#e3eeec; --hv-clay:#a8552f; --hv-clay-lt:#f4e3d8;
  --hv-serif:"Iowan Old Style","Charter","Palatino Linotype",Palatino,Georgia,serif;
  --hv-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --hv-r:14px; --hv-wrap:1120px;
}

/* ---------- base (lean pages) ---------- */
/* reset the parent's theme-option CSS (Redux prints body/heading letter-spacing inline on every page) */
.hv-lean,.hv-lean *{letter-spacing:normal}
.hv-lean .festi-cart-products,.hv-lean #festi-cart-pop-up-bg,.hv-lean .pswp,.hv-lean .festi-cart-pop-up-content{display:none !important}
body.hv-lean{margin:0;background:var(--hv-paper);color:var(--hv-ink);font:17px/1.6 var(--hv-sans);-webkit-text-size-adjust:100%}
.hv-lean *,.hv-lean *::before,.hv-lean *::after{box-sizing:border-box}
.hv-lean a{color:var(--hv-teal)} .hv-lean a:hover{color:var(--hv-teal-dk)}
.hv-lean img{max-width:100%;height:auto}
.hv-lean h1,.hv-lean h2,.hv-lean h3{font-family:var(--hv-serif);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em;color:inherit}
.hv-lean h1{font-size:clamp(2rem,5.2vw,3.4rem)} .hv-lean h2{font-size:clamp(1.55rem,3.4vw,2.2rem)} .hv-lean h3{font-size:1.25rem}
.hv-lean p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--hv-clay);outline-offset:2px}

.hv-wrap{max-width:var(--hv-wrap);margin:0 auto;padding:0 16px}
.hv-skip{position:absolute;left:-999px;top:0}
.hv-skip:focus{left:16px;top:8px;background:#fff;color:var(--hv-ink);padding:8px 12px;z-index:100000}
.hv-eyebrow{font:600 .78rem/1.2 var(--hv-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--hv-clay);margin:0 0 .8em}
.hv-btn,a.hv-btn,.hv-c .single_add_to_cart_button{display:inline-block;background:var(--hv-teal);color:#fff;text-decoration:none;font:600 1rem/1.2 var(--hv-sans);padding:.8em 1.3em;border-radius:999px;border:2px solid var(--hv-teal);cursor:pointer;text-align:center;letter-spacing:0;text-transform:none}
.hv-btn:hover,a.hv-btn:hover,.hv-c .single_add_to_cart_button:hover{background:var(--hv-teal-dk);border-color:var(--hv-teal-dk);color:#fff}
.hv-btn.ghost,a.hv-btn.ghost{background:transparent;color:var(--hv-teal)}
.hv-btn.ghost:hover,a.hv-btn.ghost:hover{background:var(--hv-teal-lt);color:var(--hv-teal-dk)}
.hv-note{font-size:.9rem;color:var(--hv-muted)}

/* ---------- top bar + header (every page) ---------- */
.hv-topbar{font:14px/1.4 var(--hv-sans);color:var(--hv-muted);border-bottom:1px solid var(--hv-line);background:var(--hv-paper)}
.hv-topbar .hv-wrap{display:flex;gap:18px;justify-content:flex-end;padding-top:6px;padding-bottom:6px;flex-wrap:wrap}
.hv-topbar a{color:var(--hv-muted);text-decoration:none}
.hv-topbar a:hover{color:var(--hv-teal)}
.hv-header{background:var(--hv-paper);border-bottom:1px solid var(--hv-line);position:sticky;top:0;z-index:999;font-family:var(--hv-sans)}
.admin-bar .hv-header{top:32px}
@media (max-width:782px){.admin-bar .hv-header{top:0;position:relative}}
.hv-header .hv-wrap{display:flex;align-items:center;gap:20px;min-height:68px}
.hv-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--hv-ink);margin-right:auto}
.hv-brand:hover{color:var(--hv-ink);text-decoration:none}
.hv-brand svg{flex:none}
.hv-brand b{display:block;font:600 1.3rem/1 var(--hv-serif);color:var(--hv-ink);letter-spacing:0}
.hv-brand small{display:block;font:400 .72rem/1.4 var(--hv-sans);color:var(--hv-muted);letter-spacing:.04em;margin-top:3px;text-transform:none}
.hv-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px}
.hv-nav li{margin:0;padding:0;list-style:none;background:none}
.hv-nav a{color:var(--hv-ink);text-decoration:none;font:500 .95rem/1.4 var(--hv-sans);letter-spacing:0;text-transform:none}
.hv-nav a:hover,.hv-nav .current-menu-item>a,.hv-nav a[aria-current]{color:var(--hv-teal)}
.hv-cart{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--hv-ink);font:500 .9rem/1 var(--hv-sans);border:1px solid var(--hv-line);border-radius:999px;padding:7px 12px;background:var(--hv-card)}
.hv-cart:hover{border-color:var(--hv-teal);color:var(--hv-teal)}
.hv-menu-mobile{display:none}
@media (max-width:880px){
  .hv-nav{display:none}
  .hv-menu-mobile{display:block;position:relative}
  .hv-menu-mobile summary{list-style:none;cursor:pointer;border:1px solid var(--hv-line);border-radius:999px;padding:7px 14px;background:var(--hv-card);font:500 .9rem/1 var(--hv-sans);color:var(--hv-ink)}
  .hv-menu-mobile summary::-webkit-details-marker{display:none}
  .hv-menu-mobile ul{position:absolute;right:0;top:44px;background:var(--hv-card);border:1px solid var(--hv-line);border-radius:12px;list-style:none;margin:0;padding:8px;min-width:230px;box-shadow:0 10px 30px rgba(31,42,43,.12);z-index:1000}
  .hv-menu-mobile li{margin:0;padding:0;list-style:none}
  .hv-menu-mobile a{display:block;padding:10px 12px;color:var(--hv-ink);text-decoration:none;border-radius:8px;font:500 1rem/1.3 var(--hv-sans)}
  .hv-menu-mobile a:hover{background:var(--hv-teal-lt)}
  .hv-brand small{display:none}
  .hv-topbar .hv-acct{display:none}
}
html.hv-in-iframe .hv-topbar,html.hv-in-iframe .hv-header,html.hv-in-iframe .hv-footer,html.hv-in-iframe #wpadminbar{display:none}

/* ---------- inner pages (parent CSS still loaded): soften the parent's title bar ---------- */
body.hv-skin:not(.hv-lean){background:var(--hv-paper)}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper{background:var(--hv-teal-lt) !important;background-image:none !important;min-height:0 !important;height:auto !important}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .tm-titlebar-wrapper-bg-layer,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper::before,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper::after{display:none !important}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .tm-titlebar-inner-wrapper,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .tm-titlebar-main{background:transparent !important;background-image:none !important}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .tm-titlebar-inner-wrapper{padding:34px 0 26px !important;height:auto !important;min-height:0 !important}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .entry-title,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper h1{font-family:var(--hv-serif) !important;color:var(--hv-ink) !important;text-transform:none !important;letter-spacing:-.01em !important;font-weight:600 !important}
body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .breadcrumb-wrapper,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .breadcrumb-wrapper a,body.hv-skin:not(.hv-lean) .tm-titlebar-wrapper .entry-subtitle{color:var(--hv-muted) !important}
body.hv-skin:not(.hv-lean) #main{background:transparent}

/* ---------- home (.hv-c = content blocks on lean pages) ---------- */
.hv-hero{padding:56px 0 28px}
.hv-hero .hv-lede{font-size:1.15rem;color:var(--hv-muted);max-width:40em}
.hv-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.hv-door{display:flex;flex-direction:column;background:var(--hv-card);border:1px solid var(--hv-line);border-radius:var(--hv-r);padding:22px;text-decoration:none;color:var(--hv-ink);transition:border-color .15s,transform .15s}
.hv-lean a.hv-door{color:var(--hv-ink)}
.hv-door:hover{border-color:var(--hv-teal);transform:translateY(-2px)}
.hv-door .tag{font:600 .75rem/1 var(--hv-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--hv-teal);margin-bottom:12px}
.hv-door h2{font-size:1.25rem;margin-bottom:.35em}
.hv-door p{color:var(--hv-muted);font-size:.96rem;margin-bottom:1.1em}
.hv-door .go{margin-top:auto;font-weight:600;color:var(--hv-teal)}
.hv-door.clinic{background:var(--hv-clay-lt);border-color:#e9cdbb}
.hv-door.clinic .tag,.hv-door.clinic .go{color:var(--hv-clay)}
@media (max-width:760px){.hv-doors{grid-template-columns:1fr}.hv-hero{padding-top:36px}}

.hv-c section{padding:56px 0}
.hv-course{background:var(--hv-teal);color:#eef5f3}
.hv-course h2,.hv-course h3{color:#fff}
.hv-course .hv-eyebrow{color:#f2c9b3}
.hv-course-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hv-course ul.facts{list-style:none;padding:0;margin:0 0 1.4em}
.hv-course ul.facts li{padding:10px 0 10px 30px;border-top:1px solid rgba(255,255,255,.16);position:relative}
.hv-course ul.facts li::before{content:"";position:absolute;left:4px;top:18px;width:12px;height:12px;border-radius:50%;border:2px solid #f2c9b3}
.hv-lean .hv-course a.hv-btn.ghost{color:#fff;border-color:#f2c9b3}
.hv-lean .hv-course a.hv-btn.ghost:hover{background:rgba(255,255,255,.1)}
.hv-course .hv-photo{border-radius:12px;overflow:hidden;margin-bottom:18px;background:#fff;max-width:340px;margin-left:auto;margin-right:auto}
.hv-course .hv-photo img{width:100%;height:auto;display:block}
.hv-price-card{background:var(--hv-card);color:var(--hv-ink);border-radius:18px;padding:26px;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.hv-price-card .price{font:600 2.6rem/1 var(--hv-serif);margin:.2em 0 .1em}
.hv-price-card .stars,.hv-stars{color:var(--hv-clay);font-size:.95rem}
.hv-lean .hv-price-card a.hv-btn{display:block;width:100%;margin:16px 0 10px;color:#fff}
@media (max-width:860px){.hv-course-grid{grid-template-columns:1fr}}

.hv-breath{background:var(--hv-card);border-top:1px solid var(--hv-line);border-bottom:1px solid var(--hv-line)}
.hv-breath-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}
.hv-breath ol{margin:0;padding-left:1.3em}
.hv-breath li{margin-bottom:.55em}
.hv-breath blockquote{font:italic 1.15rem/1.5 var(--hv-serif);border-left:3px solid var(--hv-clay);margin:1em 0;padding-left:16px}
@media (max-width:760px){.hv-breath-grid{grid-template-columns:1fr;gap:12px}}

.hv-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hv-panel{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:var(--hv-r);padding:26px}
.hv-panel dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 1em;font-size:.95rem}
.hv-panel dt{font-weight:600;color:var(--hv-teal)} .hv-panel dd{margin:0}
.hv-panel .hv-photo{border-radius:12px;overflow:hidden;aspect-ratio:16/9;margin-bottom:14px;background:#e9e0cf}
.hv-panel .hv-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
@media (max-width:760px){.hv-two{grid-template-columns:1fr}}

/* ---------- course page (281) ---------- */
.hv-crumbs{font-size:.85rem;color:var(--hv-muted);padding-top:18px}
.hv-lean .hv-crumbs a{color:var(--hv-muted)}
.hv-top{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;padding-top:22px;padding-bottom:48px;align-items:start}
.hv-top .hv-photo{border-radius:12px;overflow:hidden;margin-bottom:16px;background:#fff;border:1px solid var(--hv-line);max-width:420px}
.hv-top .hv-photo img{width:100%;height:auto;display:block}
.hv-chips,.hv-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.hv-chips li{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:999px;padding:5px 12px;font-size:.88rem}
.hv-tags li{background:var(--hv-clay-lt);border-radius:8px;padding:6px 12px;font-size:.92rem}
.hv-buybox{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:18px;padding:26px;position:sticky;top:84px}
.hv-buybox .price{font:600 2.7rem/1 var(--hv-serif);margin:.25em 0 .15em;color:var(--hv-ink)}
.hv-buybox .price del{font-size:.5em;color:var(--hv-muted)} .hv-buybox .price ins{text-decoration:none}
.hv-buybox form.cart{margin:14px 0}
.hv-buybox form.cart .quantity{display:none}
.hv-buybox .single_add_to_cart_button{width:100%;font-size:1.05rem}
.hv-who{background:var(--hv-teal-lt);border-radius:12px;padding:14px 16px;font-size:.93rem;margin-bottom:12px}
.hv-who b{color:var(--hv-teal-dk)}
.hv-buybox ul{list-style:none;padding:0;margin:0 0 12px;font-size:.93rem}
.hv-buybox li{padding:6px 0 6px 26px;position:relative;border-top:1px solid var(--hv-line)}
.hv-buybox li::before{content:"";position:absolute;left:4px;top:13px;width:10px;height:6px;border-left:2px solid var(--hv-teal);border-bottom:2px solid var(--hv-teal);transform:rotate(-45deg)}
@media (max-width:900px){.hv-top{grid-template-columns:1fr}.hv-buybox{position:static}}
.hv-local{background:var(--hv-card);border-top:1px solid var(--hv-line);border-bottom:1px solid var(--hv-line);position:sticky;top:68px;z-index:4;overflow-x:auto}
.admin-bar .hv-local{top:100px}
.hv-local ul{display:flex;gap:6px;list-style:none;margin:0 auto;padding:8px 16px;max-width:var(--hv-wrap);white-space:nowrap}
.hv-lean .hv-local a{display:block;text-decoration:none;color:var(--hv-ink);font-size:.9rem;padding:6px 12px;border-radius:999px}
.hv-local a:hover{background:var(--hv-teal-lt)}
.hv-course-page section{padding:48px 0;border-bottom:1px solid var(--hv-line);scroll-margin-top:120px}
.hv-cols{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px}
@media (max-width:820px){.hv-cols{grid-template-columns:1fr;gap:8px}}
ol.hv-mods{list-style:none;padding:0;margin:0;counter-reset:m}
ol.hv-mods li{counter-increment:m;display:grid;grid-template-columns:56px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--hv-line)}
ol.hv-mods li::before{content:counter(m,decimal-leading-zero);font:600 1.5rem/1 var(--hv-serif);color:var(--hv-clay)}
ol.hv-mods b{display:block}
.hv-inc{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hv-box{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:var(--hv-r);padding:20px}
.hv-inc ul{margin:0;padding-left:1.1em;font-size:.95rem}
.hv-inc li{margin-bottom:4px}
@media (max-width:640px){.hv-inc{grid-template-columns:1fr}}
.hv-sessions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.hv-sessions div{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:var(--hv-r);padding:18px}
.hv-sessions b{font:600 1.05rem/1.2 var(--hv-serif);display:block;margin-bottom:6px;color:var(--hv-teal)}
.hv-sessions p{font-size:.93rem;margin:0;color:var(--hv-muted)}
@media (max-width:900px){.hv-sessions{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.hv-sessions{grid-template-columns:1fr}}
table.hv-exam{border-collapse:collapse;width:100%;font-size:.95rem;background:var(--hv-card);border-radius:var(--hv-r);overflow:hidden}
.hv-exam th,.hv-exam td{text-align:left;padding:12px 14px;border-top:1px solid var(--hv-line);vertical-align:top}
.hv-exam th{width:38%;font-weight:600}
.hv-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hv-reviews figure{margin:0;background:var(--hv-card);border:1px solid var(--hv-line);border-radius:var(--hv-r);padding:20px;display:flex;flex-direction:column}
.hv-reviews blockquote{margin:0 0 12px;font:1.02rem/1.5 var(--hv-serif);padding:0;border:0}
.hv-reviews figcaption{margin-top:auto;font-size:.88rem;color:var(--hv-muted)}
@media (max-width:900px){.hv-reviews{grid-template-columns:1fr}}
details.hv-more{margin-top:18px}
details.hv-more>summary{cursor:pointer;font-weight:600;color:var(--hv-teal)}
.hv-revlist{list-style:none;padding:0;margin:12px 0 0}
.hv-revlist li{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:12px;padding:14px 18px;margin-bottom:10px}
.hv-revlist .who{font-size:.88rem;color:var(--hv-muted)}
.hv-author{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start}
.hv-author .hv-photo{aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:#e9e0cf}
.hv-author .hv-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:640px){.hv-author{grid-template-columns:1fr}.hv-author .hv-photo{max-width:200px}}
details.hv-faq{background:var(--hv-card);border:1px solid var(--hv-line);border-radius:12px;padding:0 18px;margin-bottom:10px}
details.hv-faq summary{cursor:pointer;padding:16px 0;font-weight:600}
details.hv-faq p{margin:0 0 16px;color:var(--hv-muted)}
.hv-buybar{display:none}
@media (max-width:900px){
  .hv-buybar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:998;background:var(--hv-card);border-top:1px solid var(--hv-line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));align-items:center;gap:12px;box-shadow:0 -6px 20px rgba(31,42,43,.08)}
  .hv-buybar b{font:600 1.4rem/1 var(--hv-serif)}
  .hv-buybar .sub{font-size:.8rem;color:var(--hv-muted);display:block}
  .hv-lean .hv-buybar a.hv-btn{margin-left:auto;padding:.7em 1.2em;color:#fff}
  body.hv-course-281{padding-bottom:76px}
}

/* WooCommerce notices on lean pages (WooCommerce's own CSS is not loaded there) */
.hv-lean .woocommerce-notices-wrapper:empty{display:none}
.hv-lean .woocommerce-message,.hv-lean .woocommerce-info,.hv-lean .woocommerce-error{list-style:none;margin:16px 0;padding:14px 18px;border-radius:12px;background:var(--hv-teal-lt);border:1px solid #bcd6d2;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.hv-lean .woocommerce-error{background:#f8e1dc;border-color:#e6b7ab}
.hv-lean .woocommerce-message .button,.hv-lean .woocommerce-info .button{order:2;background:var(--hv-teal);color:#fff;text-decoration:none;padding:.5em 1em;border-radius:999px;font-weight:600}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal !important}

/* ---------- footer (every page) ---------- */
.hv-footer{background:var(--hv-ink);color:#c9cfcd;padding:40px 0 28px;font:15px/1.6 var(--hv-sans);clear:both}
.hv-footer a{color:#e8ece9;text-decoration:none} .hv-footer a:hover{text-decoration:underline;color:#fff}
.hv-fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:24px}
.hv-footer .hv-fname{color:#fff;font:600 1.2rem/1.2 var(--hv-serif);margin:0 0 8px}
.hv-footer h2{color:#fff;font:600 .8rem/1 var(--hv-sans);letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}
.hv-footer ul{list-style:none;margin:0;padding:0} .hv-footer li{margin:0 0 7px;padding:0;list-style:none;background:none}
.hv-footer p{margin:0 0 1em;color:#c9cfcd}
.hv-legal{border-top:1px solid #34403f;margin-top:28px;padding-top:16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.88rem}
@media (max-width:760px){.hv-fgrid{grid-template-columns:1fr 1fr}}
