/* ===== v0.4.0 navigation, golden path, Calm mode ===== */
:root{--bhh-h:68px;--bhh-hs:56px;--ease:cubic-bezier(.22,1,.36,1);--gl:#f2d58a}
@media (max-width:900px){:root{--bhh-h:56px;--bhh-hs:48px}}
/* old header pieces are gone; the template part is now just a spacer */
header.wp-block-template-part{position:relative!important;top:auto;height:var(--bhh-h);z-index:60}
.bhh-skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700}
.bhh-skip:focus{top:10px}
#progress{z-index:62!important;height:3px}
.bhh{position:fixed;left:0;right:0;top:0;z-index:61;height:var(--bhh-h);background:#fffdf8;border-bottom:1px solid transparent;transition:height 250ms var(--ease),border-color 250ms var(--ease),transform 300ms var(--ease),box-shadow 250ms var(--ease);font-family:'BH Sans',Lexend,system-ui,sans-serif}
.bhh.shrunk{height:var(--bhh-hs);border-bottom-color:var(--gold);box-shadow:0 6px 18px -14px #2a364480}
.bhh.away{transform:translateY(-110%)}
.bhh-in{max-width:1240px;margin:0 auto;height:100%;display:flex;align-items:center;gap:12px;padding:0 18px}
.bhh-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy);font-family:'BH Script',cursive;font-size:28px;white-space:nowrap;margin-right:auto;transition:font-size 250ms var(--ease)}
.bhh-brand img{width:32px;height:32px;display:block}
.bhh.shrunk .bhh-brand{font-size:24px}
.bhh-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px}
.bhh-nav a,.bhh-popbtn{display:flex;align-items:center;gap:7px;min-height:44px;padding:6px 12px;border-radius:999px;color:var(--ink);text-decoration:none;font:600 17px/1.2 'BH Sans',Lexend,system-ui,sans-serif;background:none;border:0;cursor:pointer;letter-spacing:.01em}
.bhh-nav a:hover,.bhh-popbtn:hover,.bhh-popbtn[aria-expanded=true]{background:var(--sky)}
.bhh-nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--gold)}
.bhh-i{flex:none;color:var(--navy)}
.bhh-popbtn .bhh-i:last-child{width:16px;height:16px;transition:transform 200ms var(--ease)}
.bhh-popbtn[aria-expanded=true] .bhh-i:last-child{transform:rotate(180deg)}
:is(.bhh,.bhh-drawer,.bh-calmbar,.bhp-card) :is(a,button):focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.bhh-has-pop{position:relative}
.bhh-pop{position:absolute;top:calc(100% + 8px);left:0;width:290px;background:#fffdf8;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px -18px #2a364488;padding:12px;animation:bhhDrop 200ms var(--ease)}
.bhh-pop[hidden]{display:none}
.bhh-pop ul{display:block}
.bhh-pop a{border-radius:10px;font-weight:600;min-height:44px}
.bhh-pop-h{margin:2px 10px 6px;font-weight:700;color:var(--navy)}
.bhh-pop-help{margin:8px 10px 2px;font-size:16px}
@keyframes bhhDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* Light a Candle: the one key tab, with two orbiting gold rings */
.bhh-cta{position:relative;isolation:isolate;background:linear-gradient(180deg,#fff7df,#f6e2a6)!important;color:#3b2f0d!important;font-weight:700!important;border:1.5px solid var(--gold)!important;border-radius:999px}
.bhh-cta .bhh-i{color:#8a6510}
@property --bhA{syntax:'<angle>';inherits:false;initial-value:0deg}
.bhh-cta::before,.bhh-cta::after{content:'';position:absolute;inset:-5px;border-radius:999px;padding:1.5px;pointer-events:none;z-index:-1;--bhA:0deg;
 background:conic-gradient(from var(--bhA),rgba(201,161,74,0) 0turn,rgba(201,161,74,.4) .18turn,rgba(201,161,74,0) .36turn,rgba(201,161,74,0) .5turn,rgba(201,161,74,.4) .68turn,rgba(201,161,74,0) .86turn);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.bhh-cta::after{inset:-10px;opacity:.625;--bhA:90deg}
.bhh-cta:is(:hover,:focus-visible),.bhh.rings .bhh-cta{animation:bhhGlow 2.4s ease-in-out infinite}
.bhh-cta:is(:hover,:focus-visible)::before,.bhh.rings .bhh-cta::before{animation:bhhSpin 8s linear infinite}
.bhh-cta:is(:hover,:focus-visible)::after,.bhh.rings .bhh-cta::after{animation:bhhSpin2 12s linear infinite}
@keyframes bhhSpin{to{--bhA:360deg}}
@keyframes bhhSpin2{from{--bhA:450deg}to{--bhA:90deg}}
@keyframes bhhGlow{0%,100%{box-shadow:0 0 0 0 rgba(242,213,138,0);scale:1}50%{box-shadow:0 0 16px 3px rgba(242,213,138,.75);scale:1.06}}
.bhh-pill,.bhh-burger{display:none}
.bhh-burger{align-items:center;gap:6px;min-height:44px;min-width:44px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font:600 16px 'BH Sans',Lexend,system-ui,sans-serif;cursor:pointer}
@media (max-width:1100px){.bhh-nav li:first-child{display:none}}
@media (min-width:901px){.bhh-burger{display:flex}.bhh-burger span{display:none}}
@media (max-width:900px){
 .bhh-nav{display:none}
 .bhh-pill{display:flex;align-items:center;gap:6px;min-height:40px;padding:4px 14px;font-size:16px;text-decoration:none;white-space:nowrap}
 .bhh-burger{display:flex}
 .bhh-brand span{display:none}
 .bhh-in{padding:0 12px;gap:14px}
 .bhh-cta::before{inset:-4px}.bhh-cta::after{inset:-8px}
}
@media (max-width:360px){.bhh-burger span{display:none}}
/* drawer */
.bhh-scrim{position:fixed;inset:0;z-index:70;background:#1f2b3a66;animation:bhhFade 300ms var(--ease)}
.bhh-scrim[hidden]{display:none}
.bhh-drawer{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(88vw,380px);background:#fffdf8;box-shadow:-20px 0 50px -20px #1f2b3a88;overflow-y:auto;padding:12px 18px 28px;transform:translateX(0);transition:transform 300ms var(--ease);font-family:'BH Sans',Lexend,system-ui,sans-serif}
.bhh-drawer[hidden]{display:block;visibility:hidden;transform:translateX(105%)}
.bhh-drawer.closing{transform:translateX(105%)}
.bhh-dhead{display:flex;align-items:center;justify-content:space-between;min-height:48px}
.bhh-dtitle{font-weight:700;font-size:20px;color:var(--navy)}
.bhh-close{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer}
.bhh-dcta{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;margin:14px 10px 10px;text-decoration:none;font-size:19px}
.bhh-dlist{list-style:none;margin:0;padding:0}
.bhh-dlist a{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 10px;border-radius:12px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:600}
.bhh-dlist a:hover{background:var(--sky)}
.bhh-dsub{margin:16px 10px 4px;font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--goldd)}
.bhh-dhelp{margin:18px 10px 0;font-size:17px}
@keyframes bhhFade{from{opacity:0}}
html.bhh-lock,html.bhh-lock body{overflow:hidden}
/* ===== homepage golden path ===== */
.bhp-scope{position:relative}
.bhp-svg{position:absolute;left:0;top:0;width:100%;pointer-events:none;z-index:3;overflow:visible}
.bhp-svg path{fill:none;stroke-linecap:round}
.bhp-trail{stroke:rgba(201,161,74,.18);stroke-width:2;stroke-dasharray:2 9}
.bhp-gold{stroke:var(--gold);stroke-width:2.5;filter:drop-shadow(0 0 6px var(--gl))}
.bhp-haven{position:absolute;left:0;top:0;width:60px;height:60px;z-index:4;pointer-events:none;will-change:transform}
.bhp-haven svg{width:100%;height:100%;display:block;animation:bhpBob 3s ease-in-out infinite alternate;filter:drop-shadow(0 4px 8px #c9a14a55)}
@keyframes bhpBob{from{transform:translateY(-4px)}to{transform:translateY(4px)}}
.bhp-card{position:relative;z-index:5;max-width:260px;margin:4px 0 22px;padding:12px 16px 12px 16px;background:#fffdf8;border:1.5px solid var(--gl);border-radius:16px;box-shadow:0 12px 30px -16px #2a364466;text-align:left;font-size:17px;line-height:1.5;color:var(--ink);opacity:0;transform:scale(.96) translateY(6px);transform-origin:left center;transition:opacity 300ms var(--ease),transform 300ms var(--ease)}
.bhp-card p{margin:0 0 4px}
.bhp-card a{font-weight:700;color:var(--navy)}
.bhp-card.on{opacity:1;transform:none}
.bhp-card::before{content:'';position:absolute;left:-8px;top:22px;width:14px;height:14px;background:#fffdf8;border-left:1.5px solid var(--gl);border-bottom:1.5px solid var(--gl);transform:rotate(45deg)}
.bhp-mini{display:none}
.bhp-on section .wrap{padding-left:96px}
@media (max-width:900px){.bhp-on section .wrap{padding-left:52px;padding-right:18px}.bhp-haven{width:42px;height:42px}.bhp-card{font-size:17px}}
/* gentle section reveals */
.bhp-on section .bhrv{opacity:0;transform:translateY(14px);transition:opacity 600ms var(--ease),transform 600ms var(--ease)}
.bhp-on section .bhrv.in{opacity:1;transform:none}
/* ===== Calm mode toggle ===== */
.bh-calmbar{background:#24384f;color:#e7eef6;text-align:center;padding:4px 16px 26px;font-size:16px}
.bh-calmbtn{min-height:44px;padding:8px 18px;border-radius:999px;border:1.5px solid var(--gl);background:transparent;color:#fff;font:600 17px 'BH Sans',Lexend,system-ui,sans-serif;cursor:pointer}
.bh-calmbtn .on{display:none}html.bh-calm .bh-calmbtn .on{display:inline}html.bh-calm .bh-calmbtn .off{display:none}
html.bh-calm .bh-calmbtn{background:var(--gl);color:#2a3644}
.bh-calmnote{display:block;margin-top:6px;opacity:.85}
.bh-calmbar :focus-visible{outline-color:#fff!important}
/* ===== reduced motion + Calm mode: same fallbacks ===== */
@media (prefers-reduced-motion:reduce){
 .bhh,.bhh-brand,.bhh-drawer,.bhp-card,.bhp-on section .bhrv{transition:none!important}
 .bhh-cta,.bhh-cta::before,.bhh-cta::after,.bhh-pop,.bhh-scrim,.bhp-haven svg{animation:none!important}
 .bhh-cta::after{display:none}.bhh-cta::before{background:rgba(201,161,74,.55)}
 .bhp-on section .bhrv{opacity:1;transform:none}
}
html.bh-calm .bhh,html.bh-calm .bhh-brand,html.bh-calm .bhh-drawer,html.bh-calm .bhp-card,html.bh-calm .bhp-on section .bhrv{transition:none!important}
html.bh-calm .bhh-cta,html.bh-calm .bhh-cta::before,html.bh-calm .bhh-cta::after,html.bh-calm .bhh-pop,html.bh-calm .bhh-scrim,html.bh-calm .bhp-haven svg{animation:none!important}
html.bh-calm .bhh-cta::after{display:none}html.bh-calm .bhh-cta::before{background:rgba(201,161,74,.55)}
html.bh-calm .bhp-on section .bhrv{opacity:1;transform:none}
html.bh-calm *,html.bh-calm *::before,html.bh-calm *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
/* static path mode: Haven sits inside each card, no travel */
.bhp-static .bhp-haven{display:none}
.bhp-static .bhp-card{opacity:1;transform:none;display:flex;gap:10px;align-items:flex-start;max-width:320px}
.bhp-static .bhp-card::before{display:none}
.bhp-static .bhp-mini{display:block;flex:none;width:44px;height:44px}
.bhp-static .bhp-mini svg{width:100%;height:100%}
.bhp-static .bhp-card>p{flex:1}
.bhp-static .bhp-card{flex-wrap:wrap}.bhp-static .bhp-card>a{flex-basis:100%;padding-left:54px}
/* v0.7.6.1u BH-076 (WALL-E 1t): header controls ran off the right edge at 901-1100 px (Shop, Cart, Light a Candle, Menu; at 1024 they could not be tapped)
   and the Menu button was cut off at 320-360 px (11 px visible at 320). Cause: at 901-1100 the nav kept its icons + 16 px links and the full
   "Blessedly Held" / "Light a Candle" labels (the compact rules only started at 1101 px); at <=380 px Shop + Cart + Candle + Menu need ~370 px.
   Fix (CSS only, same links, same labels for screen readers): 901-1100 px uses the compact 1101-1199 px header (logo only, no nav icons,
   14-15 px links, short "Candle"/"Vela" pill, already used on live since v0.7.3); <=1000 px the Shop pill is icon-only; <=380 px the Shop pill
   is icon-only and the gaps are a little smaller. The Shop link keeps its text for screen readers (visually hidden, not removed). */
@media (min-width:901px) and (max-width:1100px){
 html body .bhh-in{gap:6px;padding-left:14px;padding-right:14px}
 html body .bhh-in>.bhh-brand{margin-right:8px;gap:6px}
 html body .bhh-in>.bhh-brand span{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
 html body .bhh-in .bhh-nav a,html body .bhh-in .bhh-popbtn{font-size:15px!important;padding:6px 7px!important;gap:4px}
 html body .bhh-in .bhh-nav a>.bhh-i,html body .bhh-in .bhh-popbtn>.bhh-i:first-child{display:none}
 html body .bhh-in .bhh-nav ul{gap:0}
 html body .bhh-in>.bhh-shop{padding-left:12px;padding-right:12px}
 html body .bhh-in>.bhh-cart{margin:0 2px}
 html body .bhh-in>.bhh-cta{min-width:44px;height:44px;padding:0 12px!important;gap:5px}
 html body .bhh-in>.bhh-cta span{font-size:0!important;letter-spacing:0;white-space:nowrap}
 html body .bhh-in>.bhh-cta span::before{content:"Candle" / "";font-size:14px;line-height:1}
 html[lang^="es"] body .bhh-in>.bhh-cta span::before{content:"Vela" / ""}
 html body .bhh-in>.bhh-cta .bhh-i{width:20px;height:20px}
 html body .bhh-in>.bhh-burger{margin-left:2px}
}
@media (min-width:901px) and (max-width:1000px){
 html body .bhh-in>.bhh-shop{padding-left:0;padding-right:0;width:44px;justify-content:center}
 html body .bhh-in>.bhh-shop span{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
}
@media (max-width:380px){
 html body .bhh-in{gap:8px;padding-left:10px;padding-right:10px}
 html body .bhh-in>.bhh-shop{padding-left:0;padding-right:0;width:44px;justify-content:center}
 html body .bhh-in>.bhh-shop span{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
 html body .bhh-in>.bhh-cart{margin:0 2px}
 html body .bhh-in>.bhh-burger{margin-left:2px}
}
/* v0.7.6.1u2 (Baymax condition on BH-076: every header tap target at least 44x44 CSS px, names kept). When the brand text is hidden
   (<=1199 px: 1u at 901-1100 and <=900, 1t at 1101-1199) the logo link was only 32 px wide. Give it a 44x44 minimum box, logo centred.
   Its accessible name is unchanged (aria-label "Blessedly Held home" / "Blessedly Held: inicio"). */
html body .bhh-in>.bhh-brand{min-width:44px;min-height:44px;justify-content:center}

/* v0.7.6.23.8.27 BH-189 header overlap (Audra Oct 30 8:22 PM ET): header is fully opaque, its own stacking context, on its own layer (iOS Safari),
   and page sections are contained so their transforms/animations/rings can't paint over it. Drawer/scrim live inside the header; Haven chat (69),
   bubbles (64), modals (1000) and the PDP sheet (99999) still sit above the header on purpose. */
header.wp-block-template-part{isolation:isolate}
.bhh{background:#fffdf8!important;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.bhh.away,.bhh.is-hidden{transform:translateY(-110%)}
.bh5-s,.bh5-prods,.bh5-ctas,.bh5-frame,.bh5-archbox{isolation:isolate}

/* v0.7.6.23.8.28 Brand Merch sub-link under Shop in the drawer */
.bhh-dlist li.bhh-dbm>a{padding-left:2.2rem;font-size:.97em}
