@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,600;0,700;1,600&family=Outfit:wght@300;400;500;600;700&display=swap');

:root {
  --royal:      #0b1f45;
  --royal-mid:  #162f66;
  --blue-glow:  #1a3d8f;
  --gold:       #d4a843;
  --gold-light: #f0c96a;
  --gold-pale:  #fdf3dc;
  --cream:      #f9f6f0;
  --white:      #ffffff;
  --text:       #1a1a2e;
  --muted:      #6b7280;
  --border:     #e2e2e2;
  --green:      #16a34a;
  --red:        #dc2626;
  --shadow-sm:  0 1px 4px rgba(0,0,0,.06),0 2px 10px rgba(0,0,0,.04);
  --shadow-md:  0 4px 20px rgba(0,0,0,.09);
  --shadow-lg:  0 12px 40px rgba(0,0,0,.14);
  --radius:     12px;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Outfit',sans-serif;background:var(--cream);color:var(--text);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;}

/* GRAIN TEXTURE */
body::after{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.5;}

/* ANNOUNCE BAR */
#announce-bar{background:linear-gradient(90deg,var(--royal),var(--blue-glow),var(--royal));color:rgba(255,255,255,.82);font-size:.76rem;letter-spacing:.05em;padding:7px 1rem;text-align:center;position:relative;z-index:200;}
#announce-bar strong{color:var(--gold-light);}

/* HEADER */
header{background:var(--royal);position:sticky;top:0;z-index:150;box-shadow:0 2px 24px rgba(0,0,0,.4);border-bottom:2px solid rgba(212,168,67,.2);}
.header-inner{max-width:1200px;margin:0 auto;padding:0 2rem;height:74px;display:flex;align-items:center;justify-content:space-between;}

.logo{display:flex;align-items:center;gap:13px;text-decoration:none;}
.logo-crest{width:48px;height:48px;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-light) 60%,#a07820 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:700;color:var(--royal);box-shadow:0 0 0 2px rgba(212,168,67,.4),0 4px 14px rgba(212,168,67,.3);flex-shrink:0;letter-spacing:-.02em;}
.logo-text{line-height:1.2;}
.logo-name{font-family:'Cormorant Garamond',serif;font-size:1rem;font-weight:700;color:var(--white);}
.logo-abbr{font-size:.6rem;font-weight:600;color:var(--gold);letter-spacing:.2em;text-transform:uppercase;}

nav{display:flex;align-items:center;gap:.2rem;}
nav a{text-decoration:none;color:rgba(255,255,255,.72);font-size:.85rem;font-weight:500;padding:8px 14px;border-radius:8px;transition:all .2s;white-space:nowrap;position:relative;}
nav a::after{content:'';position:absolute;bottom:4px;left:50%;right:50%;height:2px;background:var(--gold);border-radius:2px;transition:all .25s;}
nav a:hover,nav a.active{color:var(--gold);}
nav a:hover::after,nav a.active::after{left:15%;right:15%;}
.nav-results{background:linear-gradient(135deg,var(--gold),var(--gold-light))!important;color:var(--royal)!important;font-weight:700!important;padding:8px 16px!important;border-radius:8px!important;margin-left:4px!important;box-shadow:0 2px 12px rgba(212,168,67,.4);}
.nav-results:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(212,168,67,.55)!important;}
.nav-results::after{display:none!important;}

.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;}
.hamburger span{width:24px;height:2px;background:var(--white);border-radius:2px;transition:all .3s;}

@media(max-width:900px){
  .hamburger{display:flex;}
  nav{display:none;position:absolute;top:74px;left:0;right:0;background:var(--royal);flex-direction:column;align-items:stretch;padding:.75rem 1rem;border-top:1px solid rgba(212,168,67,.12);box-shadow:0 8px 24px rgba(0,0,0,.3);}
  nav.open{display:flex;}
  nav a{padding:12px 16px;}
  .nav-results{margin-left:0!important;text-align:center;}
}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:9px;font-family:'Outfit',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;border:none;transition:all .25s;white-space:nowrap;}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--royal);box-shadow:0 4px 16px rgba(212,168,67,.35);}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(212,168,67,.5);}
.btn-outline{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.35);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}
.btn-navy{background:var(--royal);color:var(--white);box-shadow:var(--shadow-md);}
.btn-navy:hover{background:var(--royal-mid);transform:translateY(-2px);}
.btn-sm{padding:9px 20px;font-size:.83rem;}

/* HERO */
.hero{background:linear-gradient(155deg,var(--royal) 0%,var(--royal-mid) 45%,#1a4a9e 100%);color:var(--white);padding:7rem 2rem 6rem;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-100px;right:-100px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(212,168,67,.15) 0%,transparent 70%);pointer-events:none;}
.hero::after{content:'';position:absolute;bottom:-80px;left:-80px;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(212,168,67,.1) 0%,transparent 70%);pointer-events:none;}
.hero-stripe{position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 40px,rgba(255,255,255,.015) 40px,rgba(255,255,255,.015) 41px);pointer-events:none;}
.hero-inner{max-width:960px;margin:0 auto;position:relative;z-index:2;}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(212,168,67,.15);border:1px solid rgba(212,168,67,.4);color:var(--gold-light);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:6px 16px;border-radius:20px;margin-bottom:1.75rem;}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:700;line-height:1.1;margin-bottom:1.25rem;letter-spacing:-.02em;}
.hero h1 em{font-style:italic;color:var(--gold-light);}
.hero-sub{font-size:1.02rem;color:rgba(255,255,255,.72);max-width:580px;line-height:1.75;margin-bottom:2.5rem;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.hero-visual{margin-top:3.5rem;background:linear-gradient(135deg,rgba(212,168,67,.1),rgba(26,61,143,.25));border:1px solid rgba(212,168,67,.2);border-radius:18px;height:240px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.hero-visual-txt{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-family:'Cormorant Garamond',serif;font-size:1.05rem;letter-spacing:.28em;color:rgba(255,255,255,.22);}
.hero-visual-icon{font-size:5rem;z-index:1;}
.hero-visual-grid{position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 38px,rgba(212,168,67,.03) 38px,rgba(212,168,67,.03) 39px);}

/* STATS */
.stats-strip{background:var(--white);border-top:4px solid var(--gold);padding:2.75rem 2rem;box-shadow:var(--shadow-sm);position:relative;z-index:1;}
.stats-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.8rem;font-weight:700;color:var(--gold);line-height:1;}
.stat-label{font-size:.74rem;color:var(--muted);margin-top:4px;letter-spacing:.07em;text-transform:uppercase;}
@media(max-width:600px){.stats-grid{grid-template-columns:1fr 1fr;}}

/* SECTIONS */
.section{padding:5.5rem 2rem;position:relative;z-index:1;}
.section-inner{max-width:1200px;margin:0 auto;}
.section-alt{background:#f0f4fb;}
.section-eyebrow{font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:.5rem;display:flex;align-items:center;gap:8px;}
.section-eyebrow::before{content:'';width:24px;height:2px;background:var(--gold);border-radius:1px;}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:700;color:var(--royal);line-height:1.2;margin-bottom:.9rem;}
.section-sub{color:var(--muted);max-width:560px;line-height:1.75;margin-bottom:3rem;font-size:.93rem;}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;}
.card{background:var(--white);border-radius:var(--radius);padding:2.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.card-icon{width:52px;height:52px;background:linear-gradient(135deg,rgba(212,168,67,.15),rgba(212,168,67,.05));border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.25rem;border:1px solid rgba(212,168,67,.2);}
.card h3{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:700;color:var(--royal);margin-bottom:.6rem;}
.card p{color:var(--muted);font-size:.88rem;line-height:1.7;}

/* TABLE */
.table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;background:var(--white);}
th{background:var(--royal);color:var(--gold);padding:14px 20px;text-align:left;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
td{padding:13px 20px;border-bottom:1px solid #f0f0f0;font-size:.9rem;}
tr:last-child td{border-bottom:none;}
tr:nth-child(even) td{background:#fafafa;}
tr:hover td{background:#fdf8ed;}

/* FORM */
.form-card{background:var(--white);border-radius:16px;padding:2.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border);}
.form-group{margin-bottom:1.25rem;}
label{display:block;font-size:.82rem;font-weight:600;color:var(--royal);margin-bottom:6px;letter-spacing:.02em;}
input,textarea,select{width:100%;padding:12px 15px;border:1.5px solid var(--border);border-radius:9px;font-family:'Outfit',sans-serif;font-size:.9rem;color:var(--text);background:#fafafa;transition:all .2s;outline:none;}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(212,168,67,.12);background:var(--white);}
textarea{resize:vertical;min-height:110px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:600px){.form-row{grid-template-columns:1fr;}}

/* RESULTS CHECKER */
.results-hero{background:linear-gradient(155deg,#071428 0%,#0b1f45 50%,#112070 100%);padding:5rem 2rem 4rem;text-align:center;color:var(--white);position:relative;overflow:hidden;}
.results-hero::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 30px,rgba(212,168,67,.04) 30px,rgba(212,168,67,.04) 31px);}
.results-hero-inner{position:relative;z-index:2;max-width:680px;margin:0 auto;}
.coupon-box{background:var(--white);border-radius:20px;padding:3rem;box-shadow:0 20px 60px rgba(0,0,0,.2);border:1px solid rgba(212,168,67,.2);max-width:560px;margin:0 auto;position:relative;}
.coupon-box::before{content:'';position:absolute;top:0;left:10%;right:10%;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.coupon-input-wrap{display:flex;gap:.75rem;align-items:stretch;margin-top:1.25rem;}
.coupon-input-wrap input{font-size:1.15rem;font-weight:700;letter-spacing:.25em;text-align:center;text-transform:uppercase;border:2px solid var(--border);flex:1;padding:16px 18px;border-radius:10px;}
.coupon-input-wrap input::placeholder{letter-spacing:.08em;font-weight:400;font-size:.9rem;}
.coupon-input-wrap input:focus{border-color:var(--gold);}

.result-preview{display:none;background:linear-gradient(135deg,var(--royal),var(--royal-mid));color:var(--white);border-radius:14px;padding:2rem;margin-top:1.5rem;text-align:left;animation:slideDown .4s ease;}
.result-preview.show{display:block;}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);}}
.result-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid rgba(212,168,67,.25);}
.result-school{font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--gold-light);}
.result-table{width:100%;border-collapse:collapse;}
.result-table th{background:rgba(255,255,255,.08);color:var(--gold);font-size:.72rem;letter-spacing:.08em;padding:9px 12px;text-align:left;}
.result-table td{padding:9px 12px;font-size:.88rem;border-bottom:1px solid rgba(255,255,255,.06);}
.result-table tr:last-child td{border-bottom:none;}
.grade-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:.78rem;font-weight:700;}
.grade-a{background:rgba(22,163,74,.2);color:#4ade80;}
.grade-b{background:rgba(59,130,246,.2);color:#60a5fa;}
.grade-c{background:rgba(234,179,8,.2);color:#fde047;}
.grade-f{background:rgba(220,38,38,.2);color:#fca5a5;}
.result-footer{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(212,168,67,.2);display:flex;justify-content:space-between;align-items:center;}
.result-avg{font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:var(--gold);font-weight:700;}
.result-avg small{font-family:'Outfit',sans-serif;font-size:.75rem;display:block;color:rgba(255,255,255,.6);}

.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:4rem;}
.step-card{background:var(--white);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow-sm);border:1px solid var(--border);text-align:center;}
.step-num{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--royal);font-weight:700;font-size:1.1rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;}
.step-card h4{font-weight:600;font-size:.95rem;margin-bottom:.4rem;color:var(--royal);}
.step-card p{font-size:.83rem;color:var(--muted);line-height:1.6;}

/* ACTIVITIES */
.activities-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem;margin-bottom:3rem;}
.activity-tag{background:var(--white);border:1.5px solid var(--border);border-radius:10px;padding:13px 16px;display:flex;align-items:center;gap:10px;font-size:.87rem;font-weight:500;color:var(--royal);transition:all .2s;cursor:default;}
.activity-tag:hover{border-color:var(--gold);background:var(--gold-pale);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.activity-tag span{font-size:1.3rem;}

/* TIMELINE */
.timeline{position:relative;padding-left:2rem;border-left:2px solid rgba(212,168,67,.4);margin-bottom:3rem;}
.timeline-item{margin-bottom:1.75rem;position:relative;}
.timeline-item::before{content:'';position:absolute;left:-2.42rem;top:5px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:3px solid var(--cream);box-shadow:0 0 0 2px var(--gold);}
.timeline-year{font-size:.72rem;color:var(--gold);font-weight:700;letter-spacing:.12em;margin-bottom:3px;text-transform:uppercase;}
.timeline-item h4{font-size:.97rem;font-weight:600;margin-bottom:3px;color:var(--royal);}
.timeline-item p{font-size:.84rem;color:var(--muted);}

/* CONTACT INFO */
.contact-info-card{background:linear-gradient(160deg,var(--royal) 0%,var(--royal-mid) 100%);color:var(--white);border-radius:16px;padding:2.5rem;box-shadow:var(--shadow-lg);}
.contact-info-card h3{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--gold);margin-bottom:1.75rem;}
.info-item{display:flex;gap:14px;align-items:flex-start;margin-bottom:1.5rem;}
.info-icon{width:42px;height:42px;background:rgba(212,168,67,.15);border:1px solid rgba(212,168,67,.3);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.info-label{font-size:.68rem;color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px;}
.info-value{font-size:.9rem;color:rgba(255,255,255,.8);line-height:1.55;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--border);padding:1.1rem 0;}
.faq-question{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:600;font-size:.92rem;color:var(--royal);user-select:none;}
.faq-arrow{font-size:.75rem;color:var(--gold);transition:transform .25s;}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .2s;font-size:.87rem;color:var(--muted);line-height:1.7;}
.faq-item.open .faq-answer{max-height:200px;padding-top:.75rem;}
.faq-item.open .faq-arrow{transform:rotate(180deg);}

/* WELCOME BOX */
#welcome-box{display:none;background:linear-gradient(135deg,#eef4ff,#fef9ed);border-left:4px solid var(--gold);border-radius:10px;padding:1.5rem 2rem;margin-top:1.5rem;line-height:1.8;color:var(--royal);font-size:.93rem;animation:fadeUp .4s ease;}

/* FOOTER */
footer{background:var(--royal);color:rgba(255,255,255,.55);margin-top:auto;position:relative;z-index:1;}
.footer-top{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem;padding:4rem 2rem 3rem;}
.footer-brand-name{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--white);font-weight:700;margin-top:.75rem;}
.footer-brand p{font-size:.82rem;margin-top:.6rem;line-height:1.6;max-width:240px;}
.footer-col h4{color:var(--gold);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-bottom:1rem;}
.footer-col a,.footer-col p{display:block;color:rgba(255,255,255,.5);font-size:.82rem;text-decoration:none;margin-bottom:.5rem;transition:color .2s;line-height:1.5;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.25rem 2rem;text-align:center;font-size:.75rem;}
@media(max-width:860px){.footer-top{grid-template-columns:1fr 1fr;}.footer-brand{grid-column:1/-1;}}
@media(max-width:480px){.footer-top{grid-template-columns:1fr;}}

/* MAP */
.map-placeholder{margin-top:1.5rem;background:rgba(255,255,255,.06);border:1px solid rgba(212,168,67,.2);border-radius:10px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:rgba(255,255,255,.4);font-size:.82rem;cursor:pointer;transition:all .2s;}
.map-placeholder:hover{background:rgba(212,168,67,.08);color:var(--gold);}
.map-placeholder span{font-size:2rem;}

/* TOAST */
#toast{position:fixed;bottom:2rem;right:2rem;z-index:999;background:var(--royal);color:var(--white);padding:14px 22px;border-radius:12px;font-size:.87rem;border-left:4px solid var(--gold);box-shadow:0 8px 32px rgba(0,0,0,.25);opacity:0;transform:translateY(16px);transition:all .3s;pointer-events:none;max-width:320px;}
#toast.show{opacity:1;transform:translateY(0);}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.fade-up{animation:fadeUp .65s ease both;}
.d1{animation-delay:.1s;}.d2{animation-delay:.22s;}.d3{animation-delay:.34s;}.d4{animation-delay:.46s;}
.scroll-reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;}
.scroll-reveal.visible{opacity:1;transform:translateY(0);}

/* DARK MODE */
body.dark{background:#0d1117;color:#e5e7eb;}
body.dark .card,body.dark .form-card,body.dark .step-card,body.dark .coupon-box{background:#161b22;border-color:#2d2d2d;}
body.dark .card h3,body.dark .section-title{color:#f0d078;}
body.dark .card p,body.dark .section-sub,body.dark .muted{color:#9ca3af;}
body.dark .stats-strip{background:#111827;}
body.dark .activity-tag{background:#161b22;border-color:#2d2d2d;color:#e5e7eb;}
body.dark input,body.dark textarea,body.dark select{background:#1f2937;border-color:#374151;color:#e5e7eb;}
body.dark label{color:#d1d5db;}
body.dark #welcome-box{background:#1a2030;color:#d1d5db;}
body.dark .faq-question{color:#e5e7eb;}
body.dark td{color:#d1d5db;}
body.dark tr:nth-child(even) td{background:#111827;}
body.dark .section-alt{background:#111827;}
