/* HubSpot form card */
.hs-form-frame{
  width:100%;
  min-width:0;
  align-self:start;
  background:var(--ivory);
  border:1px solid rgba(201,162,75,0.28);
  border-radius:var(--radius);
  padding:1.5rem 2rem;
  box-shadow:0 18px 50px rgba(0,0,0,0.18);
  overflow:hidden;
}

@media(max-width:920px){
  .hs-form-frame{
    margin-top:1rem;
  }
}.lead-form{
  background:rgba(247,243,234,0.04);
  border:1px solid rgba(247,243,234,0.16);
  padding:clamp(1.8rem,3vw,2.6rem);
}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
@media(max-width:520px){.form-row{grid-template-columns:1fr;}}
.field{margin-bottom:1.1rem;}
.field label{
  display:block; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-light);
  margin-bottom:0.5rem; font-weight:600;
}
.field input, .field select{
  width:100%; background:rgba(247,243,234,0.06); border:1px solid rgba(247,243,234,0.24);
  padding:0.85rem 0.9rem; color:var(--ivory); font-family:var(--sans); font-size:0.92rem; border-radius:var(--radius);
}
.field input::placeholder{color:rgba(247,243,234,0.35);}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--gold); outline-offset:1px;}
.field select{appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23c9a24b' stroke-width='1.6'><path d='M5 8l5 5 5-5'/></svg>");
  background-repeat:no-repeat; background-position:right 0.9rem center; background-size:14px; padding-right:2.4rem;
}
.field select option{background:var(--navy-alt); color:var(--ivory);}
.field-error{
  display:block; font-size:0.75rem; color:#e8a878; margin-top:0.4rem; min-height:0;
}
.field.has-error input{border-color:#e8a878;}
button[disabled]{opacity:0.65; cursor:not-allowed; transform:none !important;}
.form-status.error{color:#e8a878;}
fieldset{border:none; padding:0; margin:0 0 1.3rem 0;}
legend{
  font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-light); font-weight:600; margin-bottom:0.7rem; padding:0;
}
.check-grid{display:grid; grid-template-columns:1fr 1fr; gap:0.6rem 1rem;}
@media(max-width:520px){.check-grid{grid-template-columns:1fr;}}
.check-item{display:flex; align-items:flex-start; gap:0.55rem; font-size:0.85rem; color:rgba(247,243,234,0.82);}
.check-item input{margin-top:0.28rem; accent-color:var(--gold);}
.consent{font-size:0.76rem; color:rgba(247,243,234,0.5); line-height:1.6; margin:0.4rem 0 1.4rem 0;}
.consent a{color:var(--gold-light); text-decoration:underline;}
.form-status{margin-top:1rem; font-size:0.85rem; color:var(--gold-light); display:none;}
.form-status.show{display:block;}

/* ===========================================================
   FOOTER
   =========================================================== */
footer{background:var(--navy-deep); color:rgba(247,243,234,0.55); padding:3.5rem 0 2rem;}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start; gap:2rem; flex-wrap:wrap;
  padding-bottom:2.5rem; border-bottom:1px solid rgba(247,243,234,0.1);
}
.footer-brand span{font-family:var(--serif); color:var(--ivory); font-size:1.1rem; letter-spacing:0.08em;}
.footer-brand .tag{color:var(--gold); font-size:0.72rem; letter-spacing:0.2em; margin-top:0.6rem; display:block;}
.footer-brand .sub{font-size:0.78rem; margin-top:0.5rem; color:rgba(247,243,234,0.4);}
.footer-links{display:flex; gap:1.8rem; flex-wrap:wrap;}
.footer-links a{font-size:0.8rem; color:rgba(247,243,234,0.6); transition:color .25s ease;}
.footer-links a:hover{color:var(--gold-light);}
.footer-legal{margin-top:2rem; font-size:0.74rem; line-height:1.8; color:rgba(247,243,234,0.35); max-width:80ch;}
.footer-bottom{margin-top:1.8rem; font-size:0.72rem; color:rgba(247,243,234,0.3);}

/* ===========================================================
   CHECKLIST DOWNLOAD MODAL
   Gated lead-capture modal used by the three checklist resource
   cards. Fully self-contained — does not touch the HubSpot embed
   or the #connect form above.
   =========================================================== */
.cl-overlay{
  position:fixed; inset:0; z-index:999; display:none;
  align-items:center; justify-content:center;
  padding:1.2rem;
  background:rgba(10,21,34,0.72);
  backdrop-filter:blur(3px);
}
.cl-overlay.open{display:flex;}
.cl-modal{
  position:relative; width:100%; max-width:460px; max-height:90vh; overflow-y:auto;
  background:var(--ivory); border-top:3px solid var(--gold);
  border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,2.6rem);
  box-shadow:0 30px 80px rgba(0,0,0,0.4);
  animation:clPop .25s ease;
}
@keyframes clPop{ from{opacity:0; transform:translateY(10px) scale(0.98);} to{opacity:1; transform:none;} }
.cl-close{
  position:absolute; top:0.9rem; right:0.9rem; width:34px; height:34px; border-radius:50%;
  background:transparent; border:1px solid rgba(15,30,48,0.18); color:var(--ink-soft);
  font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:border-color .2s ease, color .2s ease;
}
.cl-close:hover{border-color:var(--gold); color:var(--navy);}
.cl-modal .eyebrow{color:var(--gold); font-size:0.7rem;}
.cl-modal h3{font-family:var(--serif); font-weight:500; color:var(--navy); font-size:1.5rem; line-height:1.25; margin:0.6rem 0 0.7rem;}
.cl-sub{font-size:0.9rem; color:var(--ink-soft); line-height:1.6; margin:0 0 1.5rem;}
.cl-field{margin-bottom:1rem;}
.cl-field label{
  display:block; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft);
  margin-bottom:0.45rem; font-weight:600;
}
.cl-field input{
  width:100%; background:#fff; border:1px solid rgba(15,30,48,0.18);
  padding:0.75rem 0.85rem; color:var(--ink); font-family:var(--sans); font-size:0.92rem; border-radius:var(--radius);
}
.cl-field input:focus{outline:2px solid var(--gold); outline-offset:1px;}
.cl-field.has-error input{border-color:#c15b3e;}
.cl-error{display:block; font-size:0.75rem; color:#c15b3e; margin-top:0.35rem; min-height:0;}
.cl-consent{
  display:flex; align-items:flex-start; gap:0.6rem; font-size:0.8rem; line-height:1.55; color:var(--ink-soft);
  margin:1.2rem 0 0.3rem; cursor:pointer;
}
.cl-consent input{margin-top:0.2rem; accent-color:var(--gold); flex-shrink:0;}
.cl-modal .btn{width:100%; margin-top:1.1rem; text-align:center; justify-content:center;}
.cl-status{margin-top:0.9rem; font-size:0.85rem; color:#8a6d1f; display:none;}
.cl-status.show{display:block;}
.cl-status.error{color:#c15b3e;}
.cl-fineprint{margin-top:1.3rem; font-size:0.74rem; color:var(--ink-soft); opacity:0.75; font-style:italic; line-height:1.6;}
.cl-thankyou{text-align:center; padding:0.5rem 0 0.2rem;}
.cl-thankyou .eyebrow{color:var(--gold);}
.cl-thankyou h3{margin:0.7rem 0 0.6rem;}
.cl-thankyou p{font-size:0.92rem; color:var(--ink-soft); line-height:1.6; margin-bottom:1.4rem;}
.cl-thankyou .btn{display:inline-flex; width:auto; padding-left:2rem; padding-right:2rem;}

/* ===========================================================
   FINANCIAL BLIND SPOT ASSESSMENT (5F QUIZ)
   Fully self-contained — reuses the same overlay pattern as the
   checklist modal above but does not touch it, the HubSpot embed,
   or any other section on the page.
   =========================================================== */
.bs-overlay{
  position:fixed; inset:0; z-index:999; display:none;
  align-items:center; justify-content:center;
  padding:1.2rem;
  background:rgba(10,21,34,0.78);
  backdrop-filter:blur(3px);
}
.bs-overlay.open{display:flex;}
.bs-modal{
  position:relative; width:100%; max-width:600px; max-height:92vh; overflow-y:auto;
  background:var(--ivory); border-top:3px solid var(--gold);
  border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,2.8rem);
  box-shadow:0 30px 80px rgba(0,0,0,0.4);
  animation:clPop .25s ease;
}
.bs-close{
  position:absolute; top:0.9rem; right:0.9rem; width:34px; height:34px; border-radius:50%;
  background:transparent; border:1px solid rgba(15,30,48,0.18); color:var(--ink-soft);
  font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:border-color .2s ease, color .2s ease; z-index:2;
}
.bs-close:hover{border-color:var(--gold); color:var(--navy);}

.bs-progress-track{width:100%; height:4px; background:rgba(15,30,48,0.1); border-radius:4px; margin:0.3rem 0 1.6rem; overflow:hidden;}
.bs-progress-bar{height:100%; background:var(--gold); width:0%; transition:width .35s ease;}
.bs-meta{display:flex; align-items:center; justify-content:space-between; gap:0.8rem; margin-bottom:0.6rem;}
.bs-step-label{font-size:0.7rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft);}
.bs-pillar-tag{
  font-size:0.66rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--navy-deep); background:rgba(201,162,75,0.22); border:1px solid rgba(201,162,75,0.5);
  padding:0.25rem 0.6rem; border-radius:20px;
}
.bs-modal h3{font-family:var(--serif); font-weight:500; color:var(--navy); font-size:1.35rem; line-height:1.3; margin:0 0 1.3rem;}
.bs-options{display:flex; flex-direction:column; gap:0.65rem; margin-bottom:0.4rem;}
.bs-option{
  display:flex; align-items:flex-start; gap:0.75rem; text-align:left;
  width:100%; background:#fff; border:1px solid rgba(15,30,48,0.16); border-radius:var(--radius);
  padding:0.85rem 1rem; cursor:pointer; font-family:var(--sans); font-size:0.9rem; color:var(--ink);
  line-height:1.5; transition:border-color .2s ease, background .2s ease;
}
.bs-option:hover{border-color:var(--gold);}
.bs-option .bs-dot{
  flex-shrink:0; width:16px; height:16px; margin-top:0.15rem; border-radius:50%;
  border:1.5px solid rgba(15,30,48,0.3); position:relative;
}
.bs-option.selected{border-color:var(--gold); background:rgba(201,162,75,0.08);}
.bs-option.selected .bs-dot{border-color:var(--gold);}
.bs-option.selected .bs-dot::after{
  content:""; position:absolute; inset:3px; border-radius:50%; background:var(--gold);
}
.bs-nav-row{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem;}
.bs-nav-row .btn{margin-top:0; width:auto; padding-left:1.6rem; padding-right:1.6rem;}
.bs-back-btn{
  background:none; border:none; color:var(--ink-soft); font-size:0.78rem; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; padding:0.6rem 0;
  visibility:hidden;
}
.bs-back-btn.show{visibility:visible;}
.bs-back-btn:hover{color:var(--navy);}
.bs-hint{font-size:0.78rem; color:var(--ink-soft); font-style:italic;}

.bs-results{text-align:center; padding:0.3rem 0 0;}
.bs-results .eyebrow{color:var(--gold);}
.bs-score-ring{
  width:150px; height:150px; margin:1.2rem auto 0.6rem; border-radius:50%;
  background:conic-gradient(var(--gold) calc(var(--bs-pct,0) * 1%), rgba(15,30,48,0.1) 0);
  display:flex; align-items:center; justify-content:center;
}
.bs-score-ring-inner{
  width:118px; height:118px; border-radius:50%; background:var(--ivory);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.bs-score-num{font-family:var(--serif); font-size:1.9rem; color:var(--navy); line-height:1;}
.bs-score-den{font-size:0.72rem; color:var(--ink-soft); margin-top:0.2rem;}
.bs-band-title{font-family:var(--serif); font-size:1.4rem; color:var(--navy); margin:1.1rem 0 0.5rem;}
.bs-band-desc{font-size:0.92rem; color:var(--ink-soft); line-height:1.7; max-width:440px; margin:0 auto 1.4rem;}
.bs-breakdown{display:flex; flex-direction:column; gap:0.65rem; text-align:left; margin:1.4rem 0 1.6rem;}
.bs-breakdown-row{display:flex; align-items:center; gap:0.7rem;}
.bs-breakdown-label{width:78px; flex-shrink:0; font-size:0.72rem; font-weight:600; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink);}
.bs-breakdown-track{flex:1; height:7px; background:rgba(15,30,48,0.08); border-radius:6px; overflow:hidden;}
.bs-breakdown-fill{height:100%; background:var(--gold); border-radius:6px; width:0%; transition:width .5s ease;}
.bs-cta-row{display:flex; flex-wrap:wrap; gap:0.7rem; justify-content:center; margin-top:0.4rem;}
.bs-cta-row .btn{width:auto; margin-top:0; padding-left:1.8rem; padding-right:1.8rem;}
.bs-retake{
  background:none; border:none; color:var(--ink-soft); font-size:0.78rem; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; padding:0.9rem 0 0;
}
.bs-retake:hover{color:var(--navy);}
.bs-fineprint{margin-top:1.4rem; font-size:0.72rem; color:var(--ink-soft); opacity:0.75; font-style:italic; line-height:1.6;}

@media(max-width:520px){
  .bs-score-ring{width:130px; height:130px;}
  .bs-score-ring-inner{width:102px; height:102px;}
  .bs-breakdown-label{width:64px; font-size:0.64rem;}
}
