/* The BX3 Excellence Pulse — styles ported verbatim from the approved
   prototype. Every rule is scoped under .bx3-pulse and every class is
   prefixed bx3- so that Divi and other plugins cannot reach inside.
   Visual output is identical to the prototype. */

.bx3-pulse{
    --bx3-paper:#FAF7F1; --bx3-card:#FFFFFF; --bx3-ink:#2A1A2C; --bx3-muted:#7A6A7B;
    --bx3-purple:#981D97; --bx3-purple-deep:#6E156B; --bx3-purple-tint:#F7EAF6;
    --bx3-gold:#BC9C2F; --bx3-gold-soft:#EBDFB4; --bx3-crimson:#D50032;
    --bx3-line:#EAE0E4; --bx3-radius:10px;
  }
.bx3-pulse, .bx3-pulse *{box-sizing:border-box; margin:0; padding:0;}
.bx3-pulse{
    background:var(--bx3-paper); color:var(--bx3-ink);
    font-family:'Bai Jamjuree', -apple-system, 'Segoe UI', sans-serif;
    font-size:17px; line-height:1.65; min-height:100vh; display:flex; flex-direction:column;
  }
.bx3-pulse .bx3-stage{width:100%; max-width:620px; margin:0 auto; padding:48px 24px 72px; flex:1;}
.bx3-pulse .bx3-screen{display:none; animation:bx3-rise .5s ease both;}
.bx3-pulse .bx3-screen.bx3-active{display:block;}
@keyframes bx3-rise{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}
@media (prefers-reduced-motion: reduce){
.bx3-pulse .bx3-screen{animation:none;}
.bx3-pulse, .bx3-pulse *{transition:none !important; animation-duration:.01ms !important;}
}
.bx3-pulse .bx3-eyebrow{font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--bx3-purple); font-weight:700; text-align:center;}
.bx3-pulse h1{font-family:'Bai Jamjuree',Georgia,serif; font-weight:500; font-size:clamp(34px,6vw,46px); line-height:1.12; text-align:center; margin:14px 0 8px; color:var(--bx3-purple-deep);}
.bx3-pulse h2{font-family:'Bai Jamjuree',Georgia,serif; font-weight:500; font-size:clamp(27px,5vw,34px); line-height:1.18; color:var(--bx3-purple-deep); text-align:center; margin-bottom:14px;}
.bx3-pulse .bx3-lede{text-align:center; color:var(--bx3-muted); max-width:48ch; margin:0 auto;}
.bx3-pulse .bx3-btn{display:inline-block; background:var(--bx3-purple); color:#fff; border:none; font-family:'Bai Jamjuree',sans-serif; font-weight:700; font-size:15px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; padding:17px 38px; border-radius:var(--bx3-radius); transition:background .2s, transform .15s;}
.bx3-pulse .bx3-btn:hover{background:var(--bx3-purple-deep); transform:translateY(-1px);}
.bx3-pulse .bx3-btn:focus-visible{outline:3px solid var(--bx3-gold); outline-offset:3px;}
.bx3-pulse .bx3-btn-row{text-align:center; margin-top:34px;}
.bx3-pulse .bx3-ghost{background:none; border:none; color:var(--bx3-muted); font-family:'Bai Jamjuree',sans-serif; font-size:14px; cursor:pointer; text-decoration:underline; text-underline-offset:3px;}
.bx3-pulse .bx3-ghost:hover{color:var(--bx3-purple);}
.bx3-pulse .bx3-fine{font-size:13.5px; color:var(--bx3-muted); text-align:center; margin-top:18px;}
.bx3-pulseline{display:block; width:200px; margin:26px auto 22px; overflow:visible;}
.bx3-pulseline path{fill:none; stroke:var(--bx3-gold); stroke-width:1.6; stroke-linecap:round; stroke-dasharray:340; stroke-dashoffset:340; animation:bx3-beat 2.8s ease forwards .3s;}
@keyframes bx3-beat{to{stroke-dashoffset:0;}}
.bx3-pulse .bx3-discover{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:26px 30px; margin:30px auto 0; max-width:460px;}
.bx3-pulse .bx3-discover p{font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--bx3-gold); font-weight:700; margin-bottom:12px;}
.bx3-pulse .bx3-discover li{list-style:none; padding:7px 0 7px 26px; position:relative; font-size:16px;}
.bx3-pulse .bx3-discover li::before{content:''; position:absolute; left:0; top:17px; width:12px; height:1.5px; background:var(--bx3-gold);}
.bx3-pulse .bx3-progresswrap{margin-bottom:40px;}
.bx3-pulse .bx3-progressmeta{display:flex; justify-content:space-between; font-size:12px; letter-spacing:.22em; text-transform:uppercase; font-weight:700; color:var(--bx3-muted); margin-bottom:10px;}
.bx3-pulse .bx3-progressmeta .bx3-brand{color:var(--bx3-purple);}
.bx3-pulse .bx3-track{position:relative; height:2px; background:var(--bx3-line);}
.bx3-pulse .bx3-fill{position:absolute; left:0; top:0; height:2px; background:var(--bx3-gold); width:0%; transition:width .4s ease;}
.bx3-pulse .bx3-blip{position:absolute; top:-4px; width:10px; height:10px; transform:translateX(-5px) rotate(45deg); background:var(--bx3-gold); transition:left .4s ease;}
.bx3-pulse .bx3-qtext{font-family:'Bai Jamjuree',Georgia,serif; font-weight:500; font-size:clamp(25px,4.6vw,31px); line-height:1.3; text-align:center; margin:0 auto 34px; max-width:30ch; text-wrap:balance;}
/* Fallback for browsers without text-wrap:balance (Safari <17.5, older Firefox):
   a slightly narrower cap makes a lone final word far less likely even
   without balancing. Browsers that support balance use 30ch above instead. */
@supports not (text-wrap: balance) {
  .bx3-pulse .bx3-qtext{max-width:26ch;}
}
.bx3-pulse .bx3-opts{display:flex; flex-direction:column; gap:10px; max-width:440px; margin:0 auto;}
.bx3-pulse .bx3-opt{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:15px 20px; font-family:'Bai Jamjuree',sans-serif; font-size:16px; color:var(--bx3-ink); text-align:left; cursor:pointer; transition:border-color .15s, background .15s; position:relative;}
.bx3-pulse .bx3-opt:hover{border-color:var(--bx3-purple);}
.bx3-pulse .bx3-opt:focus-visible{outline:3px solid var(--bx3-gold); outline-offset:2px;}
.bx3-pulse .bx3-opt.bx3-sel{background:var(--bx3-purple-tint); border-color:var(--bx3-purple);}
.bx3-pulse .bx3-opt.bx3-sel::before{content:''; position:absolute; left:0; top:8px; bottom:8px; width:3px; background:var(--bx3-gold); border-radius:2px;}
.bx3-pulse .bx3-qnav{max-width:440px; margin:26px auto 0; display:flex; justify-content:space-between; align-items:center;}
.bx3-pulse .bx3-revealtag{font-size:12px; letter-spacing:.26em; text-transform:uppercase; color:var(--bx3-muted); font-weight:700; text-align:center;}
.bx3-pulse .bx3-revealtag-2line{display:flex; flex-direction:column; gap:4px;}
.bx3-pulse .bx3-revealtag-2line span{display:block; text-wrap:balance;}
.bx3-pulse .bx3-pillarname{font-family:'Bai Jamjuree',Georgia,serif; font-weight:600; font-size:clamp(44px,9vw,62px); letter-spacing:.06em; text-transform:uppercase; color:var(--bx3-crimson); text-align:center; line-height:1.05; margin:10px 0 4px;}
.bx3-pulse .bx3-patternname{text-align:center; font-size:14px; letter-spacing:.18em; text-transform:uppercase; color:var(--bx3-purple); font-weight:700; margin-bottom:22px;}
.bx3-pulse .bx3-shotline{font-family:'Bai Jamjuree',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(21px,4vw,25px); line-height:1.4; color:var(--bx3-purple-deep); text-align:center; max-width:34ch; margin:0 auto 22px; padding:20px 10px; border-top:1px solid var(--bx3-gold-soft); border-bottom:1px solid var(--bx3-gold-soft);}
.bx3-pulse .bx3-bodycopy{max-width:54ch; margin:0 auto;}
/* BX3 Score ring */
.bx3-pulse .bx3-ringwrap{display:flex; flex-direction:column; align-items:center; margin:8px 0 6px;}
.bx3-pulse .bx3-ring{width:190px; height:190px; position:relative;}
.bx3-pulse .bx3-ring svg{transform:rotate(-90deg);}
.bx3-pulse .bx3-ring .bx3-base{fill:none; stroke:var(--bx3-line); stroke-width:5;}
.bx3-pulse .bx3-ring .bx3-arc{fill:none; stroke:var(--bx3-gold); stroke-width:5; stroke-linecap:round; stroke-dasharray:327; stroke-dashoffset:327; transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.3,1);}
.bx3-pulse .bx3-ringnum{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;}
.bx3-pulse .bx3-ringnum .bx3-big{font-family:'Bai Jamjuree',Georgia,serif; font-weight:600; font-size:58px; line-height:1; color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-ringnum .bx3-cap{font-size:11px; letter-spacing:.24em; text-transform:uppercase; font-weight:700; color:var(--bx3-gold); margin-top:4px;}
.bx3-pulse .bx3-zonename{font-family:'Bai Jamjuree',Georgia,serif; font-weight:600; font-size:28px; color:var(--bx3-purple-deep); text-align:center; margin-top:12px;}
.bx3-pulse .bx3-zonemean{text-align:center; color:var(--bx3-muted); max-width:44ch; margin:6px auto 0; font-size:15.5px;}
.bx3-pulse .bx3-scorecard{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:28px 28px 20px; margin-top:26px;}
.bx3-pulse .bx3-scorerow{padding:14px 0; border-bottom:1px solid var(--bx3-line);}
.bx3-pulse .bx3-scorerow:last-child{border-bottom:none;}
.bx3-pulse .bx3-scoretop{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px;}
.bx3-pulse .bx3-scorelabel{font-size:13px; letter-spacing:.22em; text-transform:uppercase; font-weight:700;}
.bx3-pulse .bx3-scorenum{font-family:'Bai Jamjuree',Georgia,serif; font-size:30px; font-weight:600; color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-bar{height:4px; background:var(--bx3-paper); border-radius:2px; overflow:hidden;}
.bx3-pulse .bx3-barfill{height:100%; width:0%; border-radius:2px; background:var(--bx3-purple); transition:width 1.1s cubic-bezier(.2,.7,.3,1);}
.bx3-pulse .bx3-barfill.bx3-low{background:var(--bx3-crimson);}
.bx3-pulse .bx3-barfill.bx3-gold{background:var(--bx3-gold);}
.bx3-pulse .bx3-scoreinterp{font-size:14px; color:var(--bx3-muted); margin-top:7px;}
.bx3-pulse .bx3-block{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:26px 30px; margin-top:22px;}
.bx3-pulse .bx3-blocktag{font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--bx3-gold); font-weight:700; margin-bottom:8px;}
.bx3-pulse .bx3-blocktitle{font-family:'Bai Jamjuree',Georgia,serif; font-size:26px; font-weight:600; color:var(--bx3-purple-deep); margin-bottom:8px;}
.bx3-pulse .bx3-bigq{font-family:'Bai Jamjuree',Georgia,serif; font-weight:500; font-size:clamp(27px,5vw,34px); line-height:1.3; color:var(--bx3-purple-deep); text-align:center; max-width:30ch; margin:24px auto;}
.bx3-pulse .bx3-rpoint{font-family:'Bai Jamjuree',Georgia,serif; font-style:italic; font-size:clamp(20px,4vw,24px); line-height:1.45; color:var(--bx3-ink); text-align:center; max-width:36ch; margin:0 auto; padding:22px 12px; border-top:1px solid var(--bx3-gold-soft); border-bottom:1px solid var(--bx3-gold-soft);}
.bx3-pulse .bx3-zoneline{text-align:center; color:var(--bx3-muted); max-width:44ch; margin:22px auto 0; font-size:16px;}
.bx3-pulse .bx3-bridge{background:var(--bx3-purple-deep); color:#EFE9F8; border-radius:var(--bx3-radius); padding:30px 32px; margin-top:30px; text-align:center;}
.bx3-pulse .bx3-bridge-short{padding:22px 32px;}
.bx3-pulse .bx3-bridge p{max-width:44ch; margin:0 auto;}
.bx3-pulse .bx3-bridge .bx3-btn{background:var(--bx3-gold); color:var(--bx3-purple-deep); margin-top:20px;}
.bx3-pulse .bx3-bridge .bx3-btn:hover{background:#D4AC33;}
.bx3-pulse .bx3-formcard{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:32px; max-width:440px; margin:26px auto 0;}
.bx3-pulse .bx3-formcard label{display:block; font-size:12px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--bx3-muted); margin:16px 0 6px;}
.bx3-pulse .bx3-formcard label:first-child{margin-top:0;}
.bx3-pulse .bx3-formcard input{width:100%; padding:13px 14px; border:1px solid var(--bx3-line); border-radius:8px; font-family:'Bai Jamjuree',sans-serif; font-size:16px; background:var(--bx3-paper);}
.bx3-pulse .bx3-formcard input:focus{outline:2px solid var(--bx3-purple); border-color:var(--bx3-purple);}
.bx3-pulse .bx3-check{display:flex; gap:10px; align-items:flex-start; margin-top:18px; font-size:14px; color:var(--bx3-muted);}
.bx3-pulse .bx3-check input{width:auto; margin-top:4px;}
.bx3-pulse .bx3-dashnav{display:flex; justify-content:space-between; align-items:center; padding-bottom:18px; border-bottom:1px solid var(--bx3-line); margin-bottom:34px;}
.bx3-pulse .bx3-dashbrand{font-family:'Bai Jamjuree',Georgia,serif; font-weight:600; font-size:24px; color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-dashbrand sup{font-size:11px;}
.bx3-pulse .bx3-dashlinks{display:flex; gap:18px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;}
.bx3-pulse .bx3-dashlinks span{color:var(--bx3-muted);}
.bx3-pulse .bx3-dashlinks .bx3-on{color:var(--bx3-purple); border-bottom:2px solid var(--bx3-gold); padding-bottom:4px;}
.bx3-pulse .bx3-dashlinks .bx3-lock{opacity:.45;}
.bx3-pulse .bx3-greet{font-family:'Bai Jamjuree',Georgia,serif; font-weight:500; font-size:clamp(30px,5.4vw,38px); color:var(--bx3-purple-deep); line-height:1.15;}
.bx3-pulse .bx3-greetsub{color:var(--bx3-muted); margin:6px 0 26px;}
.bx3-pulse .bx3-cardgrid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:560px){
.bx3-pulse .bx3-cardgrid{grid-template-columns:1fr;}
}
.bx3-pulse .bx3-dcard{background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:24px;}
.bx3-pulse .bx3-dcard h3{font-family:'Bai Jamjuree',Georgia,serif; font-size:24px; font-weight:600; color:var(--bx3-crimson); line-height:1.2;}
.bx3-pulse .bx3-dcard h3.bx3-quiet{color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-dcard p{font-size:15px; color:var(--bx3-muted); margin-top:8px;}
.bx3-pulse .bx3-mini{display:inline-block; margin-top:16px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--bx3-purple); background:none; border:none; border-bottom:2px solid var(--bx3-gold); padding:0 0 3px; cursor:pointer;}
.bx3-pulse .bx3-dashscoreflex{display:flex; gap:20px; align-items:center; margin-top:16px; background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:22px 24px; flex-wrap:wrap;}
.bx3-pulse .bx3-dashscoreflex .bx3-mini-ring{flex:0 0 auto;}
.bx3-pulse .bx3-dashscoreflex .bx3-pillcol{flex:1; min-width:240px;}
.bx3-pulse .bx3-lauranote{margin-top:30px; padding-top:22px; border-top:1px solid var(--bx3-line); text-align:center; color:var(--bx3-muted); font-size:15px;}
.bx3-pulse .bx3-lauranote em{font-family:'Bai Jamjuree',Georgia,serif; font-size:20px; color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-protobanner{background:var(--bx3-purple-deep); color:#F7E9F6; text-align:center; font-size:12.5px; letter-spacing:.06em; padding:9px 16px;}
.bx3-pulse .bx3-laura{display:flex; gap:16px; align-items:flex-start; background:var(--bx3-card); border:1px solid var(--bx3-line); border-radius:var(--bx3-radius); padding:22px 24px; max-width:490px; margin:26px auto 0; text-align:left;}
.bx3-pulse .bx3-monogram{flex:0 0 52px; width:52px; height:52px; border-radius:50%; background:var(--bx3-purple-deep); color:var(--bx3-gold); font-family:'Bai Jamjuree',Georgia,serif; font-size:22px; font-weight:600; display:flex; align-items:center; justify-content:center;}
.bx3-pulse .bx3-laura p{font-size:15px;}
.bx3-pulse .bx3-laura .bx3-sig{margin-top:8px; font-family:'Bai Jamjuree',Georgia,serif; font-style:italic; font-size:18px; color:var(--bx3-purple-deep);}
.bx3-pulse .bx3-sharewrap{margin-top:34px;}
.bx3-pulse .bx3-sharecard{background:var(--bx3-purple-deep); border-radius:14px; padding:34px 28px; max-width:420px; margin:14px auto 0; text-align:center;}
.bx3-pulse .bx3-sharecard .bx3-tag{font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--bx3-gold); font-weight:700;}
.bx3-pulse .bx3-sharecard .bx3-pat{font-family:'Bai Jamjuree',Georgia,serif; font-weight:600; font-size:30px; color:#fff; margin:10px 0 12px; line-height:1.15;}
.bx3-pulse .bx3-sharecard .bx3-line{font-family:'Bai Jamjuree',Georgia,serif; font-style:italic; font-size:19px; color:#EBDFB4; line-height:1.45;}
.bx3-pulse .bx3-sharecard .bx3-site{margin-top:18px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#DDA9D9; font-weight:700;}
.bx3-pulse .bx3-sharebtns{display:flex; gap:12px; justify-content:center; margin-top:16px; flex-wrap:wrap;}
.bx3-pulse .bx3-btn2{background:none; border:1.5px solid var(--bx3-purple); color:var(--bx3-purple); font-family:'Bai Jamjuree',sans-serif; font-weight:700; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:11px 20px; border-radius:8px; cursor:pointer; transition:background .15s;}
.bx3-pulse .bx3-btn2:hover{background:var(--bx3-purple-tint);}
