/* ===== Companion QoL Assessment ===== */
.cqol-app *{box-sizing:border-box;margin:0;padding:0;}
.cqol-app{
  --cqol-cream:#FAF8F4;--cqol-panel:#F4F0E8;--cqol-ink:#1A1714;--cqol-ink-light:#8A857E;
  --cqol-rule:#D8D2C8;--cqol-sage:#5C6B5A;--cqol-gold:#8B7355;--cqol-gold-light:#F2EDE4;--cqol-warm-white:#FEFDFB;
  --cqol-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --cqol-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--cqol-cream);font-family:var(--cqol-sans);color:var(--cqol-ink);
  position:relative;overflow:hidden;border:0.5px solid var(--cqol-rule);border-radius:4px;
}

/* font import (safe if theme already has them) */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Inter:wght@300;400;500&display=swap');

/* inline embed gets a comfortable fixed-ish height */
.cqol-inline-wrap .cqol-app{height:640px;max-height:86vh;display:flex;flex-direction:column;}

.cqol-prog-strip{height:2px;background:var(--cqol-rule);position:relative;z-index:5;flex-shrink:0;}
.cqol-prog-fill{height:2px;background:var(--cqol-gold);transition:width .6s cubic-bezier(.4,0,.2,1);width:0%;}

.cqol-layout{display:grid;grid-template-columns:minmax(300px,380px) 1fr;flex:1;min-height:0;}

.cqol-aside{background:var(--cqol-panel);border-right:0.5px solid var(--cqol-rule);padding:2.25rem 2.5rem;display:flex;flex-direction:column;overflow:hidden;min-height:0;}
.cqol-brand{display:flex;flex-direction:column;gap:6px;padding-bottom:1.5rem;border-bottom:0.5px solid var(--cqol-rule);}
.cqol-logo{max-height:42px;max-width:200px;width:auto;height:auto;display:block;}
.cqol-brand-name{font-family:var(--cqol-serif);font-size:17px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;}
.cqol-brand-tag{font-size:9px;letter-spacing:.16em;color:var(--cqol-ink-light);text-transform:uppercase;}
.cqol-aside-mid{margin-top:2rem;flex:1;display:flex;flex-direction:column;}
.cqol-mob-head{display:contents;}
.cqol-aside-eyebrow{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--cqol-gold);margin-bottom:.6rem;transition:opacity .35s;}
.cqol-aside-section{font-family:var(--cqol-serif);font-size:28px;font-weight:300;font-style:italic;line-height:1.15;margin-bottom:.9rem;transition:opacity .35s;}
.cqol-aside-count{font-size:11px;letter-spacing:.03em;color:var(--cqol-ink-light);font-weight:300;line-height:1.6;}
.cqol-journey{margin-top:1.75rem;display:flex;flex-direction:column;gap:1px;}
.cqol-j-item{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cqol-ink-light);transition:color .35s;}
.cqol-j-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--cqol-rule);flex-shrink:0;transition:all .35s;position:relative;}
.cqol-j-line{position:absolute;left:3px;top:7px;width:1px;height:calc(100% + 1px);background:var(--cqol-rule);}
.cqol-j-item:last-child .cqol-j-line{display:none;}
.cqol-j-item.done .cqol-j-dot{background:var(--cqol-gold);border-color:var(--cqol-gold);}
.cqol-j-item.current{color:var(--cqol-ink);}
.cqol-j-item.current .cqol-j-dot{border-color:var(--cqol-gold);background:var(--cqol-cream);box-shadow:0 0 0 4px var(--cqol-gold-light);}

.cqol-main{padding:2.5rem 3.5rem 3.5rem;max-width:760px;overflow-y:auto;min-height:0;height:100%;scrollbar-width:none;-ms-overflow-style:none;display:flex;flex-direction:column;}
.cqol-main::-webkit-scrollbar{width:0;height:0;display:none;}
.cqol-main-top{flex-shrink:0;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;}
.cqol-qcount{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cqol-ink-light);}
.cqol-qcount b{color:var(--cqol-gold);font-weight:500;}
.cqol-main-tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cqol-ink-light);}
.cqol-steps{flex:1;}

.cqol-step{display:none;}
.cqol-step.active{display:block;}

.cqol-eyebrow{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--cqol-gold);margin-bottom:1rem;}
.cqol-section-title{font-family:var(--cqol-serif);font-size:34px;font-weight:300;font-style:italic;line-height:1.2;margin-bottom:.4rem;}
.cqol-section-sub{font-size:13px;color:var(--cqol-ink-light);line-height:1.7;margin-bottom:2.25rem;font-weight:300;max-width:48ch;}
.cqol-divider{height:0.5px;background:var(--cqol-rule);margin:1.75rem 0;}

.cqol-q-block{margin-bottom:1.75rem;}
.cqol-q-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--cqol-ink-light);margin-bottom:8px;}
.cqol-q-text{font-family:var(--cqol-serif);font-size:20px;font-weight:400;line-height:1.5;margin-bottom:14px;}
.cqol-score-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.cqol-score-btn{width:48px;height:48px;border:0.5px solid var(--cqol-rule);background:var(--cqol-warm-white);color:var(--cqol-ink);font-family:var(--cqol-serif);font-size:19px;font-weight:400;cursor:pointer;border-radius:3px;transition:all .18s ease;flex-shrink:0;}
.cqol-score-btn:hover{border-color:var(--cqol-gold);color:var(--cqol-gold);transform:translateY(-2px);}
.cqol-score-btn.sel{background:var(--cqol-ink);border-color:var(--cqol-ink);color:var(--cqol-cream);transform:translateY(-2px);box-shadow:0 4px 10px -4px rgba(26,23,20,.4);}
.cqol-score-ends{display:flex;justify-content:space-between;margin-top:6px;max-width:288px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cqol-ink-light);}

.cqol-pct-list{display:flex;flex-direction:column;gap:6px;max-width:520px;}
.cqol-pct-btn{padding:14px 18px;border:0.5px solid var(--cqol-rule);background:var(--cqol-warm-white);color:var(--cqol-ink);font-size:14px;font-weight:300;cursor:pointer;border-radius:3px;text-align:left;transition:all .18s ease;display:flex;align-items:center;gap:12px;}
.cqol-pct-btn:hover{border-color:var(--cqol-gold);transform:translateX(3px);}
.cqol-pct-btn.sel{background:var(--cqol-gold-light);border-color:var(--cqol-gold);}
.cqol-pct-dot{width:6px;height:6px;border-radius:50%;border:1px solid var(--cqol-rule);flex-shrink:0;}
.cqol-pct-btn.sel .cqol-pct-dot{background:var(--cqol-gold);border-color:var(--cqol-gold);}

.cqol-enjoy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:560px;}
.cqol-enjoy-btn{padding:16px 12px;border:0.5px solid var(--cqol-rule);background:var(--cqol-warm-white);color:var(--cqol-ink);font-size:13px;font-weight:300;cursor:pointer;border-radius:3px;text-align:center;transition:all .18s ease;}
.cqol-enjoy-btn:hover{border-color:var(--cqol-gold);transform:translateY(-2px);}
.cqol-enjoy-btn.sel{background:var(--cqol-gold-light);border-color:var(--cqol-gold);}

.cqol-field-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--cqol-ink-light);margin-bottom:8px;display:block;}
.cqol-field-ta{width:100%;max-width:560px;min-height:96px;resize:vertical;border:0.5px solid var(--cqol-rule);background:var(--cqol-warm-white);color:var(--cqol-ink);font-family:var(--cqol-sans);font-size:14px;font-weight:300;line-height:1.7;padding:14px 16px;border-radius:3px;outline:none;}
.cqol-field-ta:focus{border-color:var(--cqol-gold);}
.cqol-field-in{width:100%;max-width:420px;border:none;border-bottom:0.5px solid var(--cqol-rule);background:transparent;color:var(--cqol-ink);font-family:var(--cqol-serif);font-size:18px;font-weight:300;padding:10px 0;outline:none;}
.cqol-field-in:focus{border-bottom-color:var(--cqol-gold);}
.cqol-fav-wrap{display:flex;flex-direction:column;gap:10px;max-width:460px;}
.cqol-fav-row{display:flex;align-items:center;gap:14px;}
.cqol-fav-num{font-family:var(--cqol-serif);font-size:20px;font-style:italic;color:var(--cqol-rule);width:18px;flex-shrink:0;}

/* intake */
.cqol-intake-fields{display:flex;flex-direction:column;gap:1.5rem;max-width:460px;}
.cqol-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--cqol-ink-light);line-height:1.6;max-width:480px;margin-top:.5rem;}
.cqol-consent input{margin-top:3px;}
.cqol-err{color:#8B4040;font-size:12px;margin-top:6px;display:none;}
.cqol-err.show{display:block;}

/* nav */
.cqol-nav{flex-shrink:0;display:flex;align-items:center;gap:14px;margin-top:1.5rem;padding-top:1.5rem;border-top:0.5px solid var(--cqol-rule);}
.cqol-btn-pri{padding:13px 30px;background:var(--cqol-ink);color:var(--cqol-cream);border:none;border-radius:3px;font-size:12px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .2s;font-family:var(--cqol-sans);}
.cqol-btn-pri:hover:not(:disabled){opacity:.88;transform:translateY(-1px);}
.cqol-btn-pri:disabled{opacity:.3;cursor:default;}
.cqol-btn-sec{padding:13px 20px;background:transparent;color:var(--cqol-ink-light);border:0.5px solid var(--cqol-rule);border-radius:3px;font-size:12px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;font-family:var(--cqol-sans);}
.cqol-btn-sec:hover{border-color:var(--cqol-ink);color:var(--cqol-ink);}
.cqol-nav-hint{font-size:10px;color:var(--cqol-ink-light);letter-spacing:.05em;margin-left:auto;}

/* results */
.cqol-res-hero{text-align:center;padding:.5rem 0 1.5rem;border-bottom:0.5px solid var(--cqol-rule);margin-bottom:1.75rem;}
.cqol-res-score{font-family:var(--cqol-serif);font-size:76px;font-weight:300;line-height:1;}
.cqol-res-denom{font-size:26px;color:var(--cqol-rule);}
.cqol-res-of{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cqol-ink-light);margin-top:6px;}
.cqol-res-date{font-size:11px;letter-spacing:.1em;color:var(--cqol-ink-light);margin-top:8px;}
.cqol-band-card{border:0.5px solid var(--cqol-rule);border-radius:3px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;position:relative;overflow:hidden;max-width:640px;}
.cqol-band-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;}
.cqol-band-card.good::before{background:var(--cqol-sage);}
.cqol-band-card.warn::before{background:var(--cqol-gold);}
.cqol-band-card.serious::before{background:#9B6E4A;}
.cqol-band-card.critical::before{background:#8B4040;}
.cqol-band-range{font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;}
.cqol-band-card.good .cqol-band-range{color:var(--cqol-sage);}
.cqol-band-card.warn .cqol-band-range{color:var(--cqol-gold);}
.cqol-band-card.serious .cqol-band-range{color:#9B6E4A;}
.cqol-band-card.critical .cqol-band-range{color:#8B4040;}
.cqol-band-text{font-family:var(--cqol-serif);font-size:18px;font-weight:300;line-height:1.6;}
.cqol-sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:1.5rem;max-width:640px;}
.cqol-sec-cell{padding:14px 16px;border:0.5px solid var(--cqol-rule);border-radius:3px;background:var(--cqol-warm-white);}
.cqol-sec-cell-name{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cqol-ink-light);margin-bottom:8px;}
.cqol-sec-cell-score{font-family:var(--cqol-serif);font-size:26px;font-weight:300;line-height:1;}
.cqol-sec-cell-max{font-size:13px;color:var(--cqol-rule);}
.cqol-sec-bar-bg{height:1px;background:var(--cqol-rule);margin-top:10px;}
.cqol-sec-bar-fill{height:1px;background:var(--cqol-gold);width:0;transition:width 1s cubic-bezier(.4,0,.2,1);}
.cqol-pct-result{padding:14px 0;border-top:0.5px solid var(--cqol-rule);display:flex;justify-content:space-between;align-items:baseline;gap:18px;max-width:640px;}
.cqol-pct-result-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cqol-ink-light);flex-shrink:0;}
.cqol-pct-result-val{font-family:var(--cqol-serif);font-size:17px;font-weight:300;text-align:right;}
.cqol-free-block{margin-top:1.5rem;border-top:0.5px solid var(--cqol-rule);padding-top:1.5rem;max-width:640px;}
.cqol-free-q{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--cqol-ink-light);margin-bottom:8px;}
.cqol-free-a{font-family:var(--cqol-serif);font-size:18px;font-weight:300;font-style:italic;line-height:1.6;margin-bottom:1.25rem;}
.cqol-closing{margin-top:2rem;padding:1.5rem;background:var(--cqol-gold-light);border-radius:3px;max-width:640px;}
.cqol-closing-head{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cqol-sage);margin-bottom:10px;}
.cqol-closing-text{font-family:var(--cqol-serif);font-size:17px;font-weight:300;font-style:italic;line-height:1.7;}
.cqol-restart-row{margin-top:2rem;padding-top:1.5rem;border-top:0.5px solid var(--cqol-rule);display:flex;gap:14px;flex-wrap:wrap;max-width:640px;}

/* thank you */
.cqol-thanks{text-align:center;padding:3rem 1rem;max-width:520px;margin:0 auto;}
.cqol-thanks-title{font-family:var(--cqol-serif);font-size:40px;font-weight:300;font-style:italic;margin-bottom:1rem;}
.cqol-thanks-text{font-size:14px;color:var(--cqol-ink-light);line-height:1.8;font-weight:300;}

/* ===== open button ===== */
.cqol-open-btn{display:inline-block;padding:14px 32px;background:var(--cqol-ink,#1A1714);color:#FAF8F4;border:none;border-radius:3px;font-family:'Inter',sans-serif;font-size:12px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.cqol-open-btn:hover{opacity:.88;transform:translateY(-1px);}

/* ===== fullscreen popup overlay ===== */
.cqol-overlay{position:fixed;inset:0;z-index:99999;background:rgba(26,23,20,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;}
.cqol-overlay[hidden]{display:none;}
.cqol-overlay-inner{position:relative;width:100%;max-width:1100px;height:88vh;max-height:900px;}
.cqol-overlay-inner .cqol-app{height:100%;display:flex;flex-direction:column;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);}
.cqol-close{position:absolute;top:-14px;right:-14px;z-index:5;width:40px;height:40px;border-radius:50%;border:none;background:var(--cqol-ink,#1A1714);color:#FAF8F4;font-size:24px;line-height:1;cursor:pointer;box-shadow:0 6px 18px -6px rgba(0,0,0,.5);transition:transform .15s;}
.cqol-close:hover{transform:scale(1.06);}
body.cqol-noscroll{overflow:hidden;}

/* ===== tablet / mobile ===== */
@media(max-width:900px){
  .cqol-inline-wrap .cqol-app{height:auto;min-height:560px;}
  .cqol-overlay{padding:0;}
  .cqol-overlay-inner{height:100vh;height:100dvh;max-height:none;max-width:none;}
  .cqol-overlay-inner .cqol-app{border-radius:0;}
  .cqol-close{top:10px;right:10px;width:38px;height:38px;background:rgba(26,23,20,.85);}

  .cqol-app{height:100vh;height:100dvh;display:flex;flex-direction:column;}
  .cqol-layout{display:flex;flex-direction:column;flex:1;min-height:0;}
  .cqol-aside{overflow:visible;border-right:none;border-bottom:0.5px solid var(--cqol-rule);padding:1.4rem 1.5rem 1.1rem;flex-shrink:0;}
  .cqol-brand{padding-bottom:1rem;}
  .cqol-brand-name{font-size:15px;}
  .cqol-aside-mid{margin-top:1rem;}
  .cqol-aside-eyebrow{margin-bottom:.4rem;}
  .cqol-aside-section{font-size:22px;margin-bottom:0;}
  .cqol-aside-count{display:none;}
  .cqol-journey{flex-direction:row;flex-wrap:nowrap;gap:0 10px;margin-top:1rem;}
  .cqol-j-item{padding:0;}
  .cqol-j-line{display:none;}
  .cqol-j-item .cqol-j-text{display:none;}
  .cqol-main{padding:1.5rem 1.5rem 7.5rem;flex:1;}
  .cqol-section-title{font-size:25px;}
  .cqol-section-sub{margin-bottom:1.75rem;}

  /* sticky bottom bar */
  .cqol-step.active{animation:none;transform:none;}
  .cqol-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom));border-top:0.5px solid var(--cqol-rule);background:var(--cqol-cream);box-shadow:0 -6px 18px -10px rgba(26,23,20,.18);gap:12px;}
  .cqol-nav::before{content:'';position:absolute;left:0;top:0;height:2px;width:var(--cqol-mprog,0%);background:var(--cqol-gold);transition:width .5s cubic-bezier(.4,0,.2,1);}
  .cqol-btn-pri{flex:1;text-align:center;padding:14px 20px;}
  .cqol-btn-sec{padding:14px 16px;}
  .cqol-nav-hint{display:none;}
  /* popup: nav must be absolute to the app, not viewport, so it sits inside the modal */
  .cqol-overlay .cqol-nav{position:absolute;}
}
@media(max-width:480px){
  .cqol-score-row{gap:6px;}
  .cqol-score-btn{width:44px;height:44px;font-size:17px;}
  .cqol-score-ends{max-width:264px;}
  .cqol-enjoy-grid,.cqol-sec-grid{grid-template-columns:1fr;}
  .cqol-aside-section{font-size:20px;}
  .cqol-q-text{font-size:18px;}
  .cqol-thanks-title{font-size:30px;}
}
