@font-face { font-family:'Messina Modern'; src:url('fonts/MessinaModern-TTF.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Messina Sans'; src:url('fonts/MessinaSans-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Messina Sans'; src:url('fonts/MessinaSans-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }

:root{
  --midnight:#001C29; --denim:#2D75B2; --gold:#cfaf6c; --pepper:#ec4325;
  --steel:#bcd0df; --sky:#dbe6ee; --stone:#f1e7d1; --parchment:#f9f4ec; --grey:#6b757d;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Messina Sans',Arial,Helvetica,sans-serif; color:var(--midnight); background:var(--parchment); line-height:1.55;}
h1,h2{font-family:'Messina Modern',Georgia,serif; font-weight:400; line-height:1.15;}
h1{font-size:clamp(1.9rem,5.5vw,3.1rem);}
h2{font-size:clamp(1.4rem,3.6vw,2rem); margin-bottom:.4rem;}
a{color:var(--denim);}
.topbar{height:6px; background:var(--midnight);}
.h3-label{font-weight:700; text-transform:uppercase; color:var(--pepper); font-size:.72rem; letter-spacing:.07em; margin-bottom:.5rem;}

.site-head{display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:980px; margin:0 auto; padding:1.1rem 1.2rem;}
.logo{width:132px; height:auto;}
.head-tag{font-size:.72rem; color:var(--grey);}

.hero{background:#fff; border-bottom:1px solid var(--sky); overflow:hidden;}
.hero-inner{max-width:980px; margin:0 auto; padding:2.6rem 1.2rem 2.8rem; display:flex; gap:1.5rem; position:relative;}
.hero-copy{max-width:620px; position:relative; z-index:2;}
.hero-sub{margin:1rem 0 .8rem; font-size:1.02rem;}
.five-q{margin:0 0 1.4rem 1.2rem;}
.five-q li{margin:.42rem 0;}
.hero-note{font-size:.8rem; color:var(--grey); margin-top:.7rem;}
.hero-shape{position:absolute; right:-70px; top:-30px; width:340px; opacity:.16; z-index:1;}
@media(max-width:700px){.hero-shape{width:220px; right:-90px;}}

.btn{display:inline-block; background:var(--gold); color:var(--midnight); font-weight:700; text-transform:uppercase; letter-spacing:.04em; border:none; border-radius:4px; padding:.8rem 1.5rem; font-size:.85rem; cursor:pointer; text-decoration:none; font-family:'Messina Sans',Arial,sans-serif;}
.btn:hover{filter:brightness(1.05);}
.btn-outline{background:transparent; border:1px solid var(--gold);}

.section{max-width:980px; margin:0 auto; padding:2.6rem 1.2rem 1rem;}
.section-sub{color:var(--grey); margin:.3rem 0 1.2rem; max-width:640px;}
.panel{background:#fff; border:1px solid var(--steel); border-radius:6px; padding:1.4rem;}
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem 1.4rem; margin-bottom:1.2rem;}
label{display:flex; flex-direction:column; gap:.3rem; font-size:.86rem; font-weight:700;}
.req{color:var(--pepper); font-weight:400; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em;}
.opt{color:var(--grey); font-weight:400; font-size:.7rem;}
input,select,textarea{font-family:inherit; font-size:1rem; font-weight:400; padding:.6rem .7rem; border:1px solid var(--steel); border-radius:4px; background:#fff; color:var(--midnight); width:100%;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--denim); border-color:var(--denim);}
.hp{position:absolute; left:-5000px; height:1px; width:1px; opacity:0;}

.full{margin-bottom:.4rem;}
.bwrap{position:relative;}
.bresults{position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff; border:1px solid var(--denim); border-radius:6px; max-height:290px; overflow-y:auto; z-index:30; box-shadow:0 8px 22px rgba(0,28,41,.14);}
.bitem{padding:.55rem .8rem; cursor:pointer; display:flex; flex-direction:column; gap:.1rem; border-bottom:1px solid var(--sky); font-weight:400;}
.bitem:last-child{border-bottom:none;}
.bitem:hover{background:var(--sky);}
.bitem span{font-size:.78rem; color:var(--grey);}
.bnone{cursor:default; color:var(--grey);}
.bchip{background:var(--sky); border:1px solid var(--denim); border-radius:6px; padding:.6rem .8rem; font-size:.9rem; font-weight:400; margin:.2rem 0 .6rem;}
.linklike{background:none; border:none; color:var(--denim); font-family:inherit; font-size:.8rem; cursor:pointer; padding:0; margin:.15rem 0 .9rem; text-decoration:underline;}
.consent{margin-top:.7rem;}
#fallbackLoc{margin-bottom:1rem;}

.hidden{display:none;}
.grade-row{display:flex; gap:1.1rem; align-items:center; margin-bottom:1.3rem;}
.grade-chip{min-width:74px; height:74px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-family:'Messina Modern',Georgia,serif; font-size:2.6rem; color:#fff; background:var(--denim);}
.grade-A{background:#2e6e4e;} .grade-B{background:var(--denim);} .grade-C{background:#b08a3c;} .grade-D{background:#8a4a3a;}
#gradeWhy{font-size:.95rem;}

.bandviz{margin:1.2rem 0 1.4rem;}
.bandviz-title{font-weight:700; font-size:.9rem; margin-bottom:.9rem;}
.band-track{position:relative; height:16px; background:var(--sky); border-radius:8px;}
.band-range{position:absolute; top:0; bottom:0; background:var(--steel); border-radius:8px;}
.band-marker{position:absolute; top:-7px; width:4px; height:30px; background:var(--pepper); border-radius:2px;}
.band-marker span{position:absolute; top:-24px; left:50%; transform:translateX(-50%); white-space:nowrap; font-weight:700; font-size:.82rem; background:var(--midnight); color:#fff; border-radius:3px; padding:.08rem .45rem;}
.band-labels{display:flex; justify-content:space-between; font-size:.78rem; color:var(--grey); margin-top:.5rem;}
.findings{margin:1.1rem 0 1rem 1.2rem;}
.findings li{margin:.55rem 0;}
.fineprint{font-size:.72rem; color:var(--grey);}
.fineprint-light{font-size:.72rem; color:var(--steel);}

.cta-duo{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.2rem; margin-top:1.4rem;}
.cta-panel{background:var(--parchment); border-color:var(--gold);}
.panel-h{font-family:'Messina Modern',Georgia,serif; font-weight:400; font-size:1.35rem; margin-bottom:.5rem;}
.cta-panel p{font-size:.9rem; margin-bottom:.9rem;}
.cta-panel form{display:flex; flex-direction:column; gap:.8rem;}
.form-msg{margin-top:.7rem; font-size:.9rem; font-weight:700;}

.filedrop{display:block; border:1.5px dashed var(--denim); border-radius:6px; background:var(--sky); padding:1.6rem 1rem; text-align:center; cursor:pointer; margin-bottom:1.1rem; font-weight:400;}
.filedrop input{display:none;}
.filedrop.has-file{background:#e7f0e9; border-color:#2e6e4e;}
#uploadForm textarea{margin-bottom:1rem;}
#uploadForm .btn{margin-top:.2rem;}

.fee-strip{background:var(--midnight); color:#fff; margin-top:2.6rem;}
.fee-inner{max-width:980px; margin:0 auto; padding:2.3rem 1.2rem;}
.fee-h{color:#fff; margin-bottom:.7rem;}
.zero{color:var(--gold);}
.fee-inner p{max-width:680px; font-size:.95rem; color:var(--steel);}
.fee-inner .fineprint-light{margin-top:.7rem; color:#5a6b76;}

.site-foot{background:var(--midnight); color:#fff; border-top:1px solid #12303f;}
.foot-inner{max-width:980px; margin:0 auto; padding:1.8rem 1.2rem .6rem; display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;}
.foot-name{font-weight:700; font-size:1.05rem;}
.foot-line{font-size:.82rem; color:var(--steel); margin-top:.25rem;}
.foot-line a{color:#fff; text-decoration:none;}
.foot-right{text-align:right;}
.foot-logo{width:120px; height:auto;}
.foot-legal{max-width:980px; margin:0 auto; padding:.6rem 1.2rem 1.6rem; font-size:.68rem; color:#5a6b76;}
@media(max-width:700px){.foot-right{text-align:left;}}
