/* ============================================================
   Golden Diadem Royal Priesthood College of Health Sciences
   Design tokens
   ============================================================ */
:root{
  --navy: #0B1F3A;
  --navy-light: #14315C;
  --navy-pale: #E9EDF5;
  --gold: #C9A227;
  --gold-light: #E8C766;
  --gold-pale: #F2D27A;
  --maroon: #6B1E23;
  --cream: #FBF7EC;
  --parchment: #F4EEDD;
  --ink: #1B1A17;
  --ink-soft: #4A4740;
  --line: #D9CFAE;
  --success: #1F6D3A;

  --display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body: "Work Sans", -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "Courier New", monospace;

  --radius: 6px;
  --shadow-seal: 0 8px 24px rgba(11,31,58,0.18);
  --container: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:600;
  color:var(--navy);
  margin:0 0 .5em;
  letter-spacing:.2px;
}
h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.08;}
h2{font-size:clamp(1.8rem,3.4vw,2.5rem);}
h3{font-size:1.35rem;}
p{margin:0 0 1em;color:var(--ink-soft);}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-block;
  margin-bottom:.9em;
}
.eyebrow::before{content:"◆ ";}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;
  border-radius:2px;
  font-family:var(--body);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.3px;
  cursor:pointer;
  border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-gold{background:linear-gradient(135deg,var(--gold-pale),var(--gold));color:var(--navy);box-shadow:0 6px 18px rgba(201,162,39,.35);}
.btn-gold:hover{box-shadow:0 10px 24px rgba(201,162,39,.45);}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.5);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.08);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-light);}
.btn-block{width:100%;justify-content:center;}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;}

/* Header */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--navy);
  border-bottom:1px solid rgba(201,162,39,.35);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;max-width:var(--container);margin:0 auto;
}
.brand{display:flex;align-items:center;gap:12px;color:#fff;}
.brand img{width:44px;height:44px;}
.brand-text{font-family:var(--display);line-height:1.15;}
.brand-text strong{display:block;font-size:1.05rem;color:#fff;font-weight:700;}
.brand-text span{display:block;font-size:.68rem;letter-spacing:1.5px;color:var(--gold-light);text-transform:uppercase;font-family:var(--mono);}
.nav-links{display:flex;gap:28px;list-style:none;margin:0;padding:0;align-items:center;}
.nav-links a{color:#EDE6D2;font-size:.92rem;font-weight:500;position:relative;padding:6px 0;}
.nav-links a:hover, .nav-links a.active{color:var(--gold-light);}
.nav-cta{display:flex;gap:12px;align-items:center;}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer;}

@media (max-width:900px){
  .nav-toggle{display:block;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    background:var(--navy);
    flex-direction:column;
    padding:12px 24px 24px;
    display:none;
    gap:14px;
    border-bottom:1px solid rgba(201,162,39,.35);
  }
  .nav-links.open{display:flex;}
  .nav-cta .btn-outline{display:none;}
}

/* Hero */
.hero{
  position:relative;
  background:radial-gradient(ellipse at 70% 20%, var(--navy-light), var(--navy) 60%);
  color:#fff;
  overflow:hidden;
  padding:100px 0 90px;
}
.hero-crest{
  position:absolute;
  right:-80px;top:-60px;
  width:520px;height:520px;
  opacity:.08;
  pointer-events:none;
}
.hero-inner{max-width:720px;position:relative;z-index:2;}
.hero-ribbon{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.75rem;letter-spacing:1.5px;
  background:rgba(201,162,39,.12);
  border:1px solid rgba(201,162,39,.4);
  color:var(--gold-light);
  padding:8px 16px;border-radius:2px;margin-bottom:26px;
}
.hero h1{color:#fff;margin-bottom:.4em;}
.hero .lede{color:#C9C2AE;font-size:1.12rem;max-width:560px;}
.hero-actions{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;}

/* Seal strip (accreditation ledger) */
.seal-strip{background:var(--navy);border-top:1px solid rgba(201,162,39,.25);padding:46px 0;}
.seal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.seal-card{
  display:flex;gap:16px;align-items:flex-start;
  color:#EDE6D2;
  padding:18px;
  border-left:2px solid var(--gold);
}
.seal-icon{
  flex:0 0 auto;width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--gold-pale), var(--gold) 60%, #8E6E14);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-seal);
}
.seal-card h4{color:#fff;margin-bottom:.2em;font-size:1.02rem;}
.seal-card .date{font-family:var(--mono);font-size:.75rem;color:var(--gold-light);letter-spacing:1px;}
.seal-card p{color:#B9B3A0;font-size:.88rem;margin:0;}
@media (max-width:900px){.seal-grid{grid-template-columns:1fr;}}

/* Section rhythm */
.section{padding:88px 0;}
.section-alt{background:var(--parchment);}
.section-navy{background:var(--navy);color:#fff;}
.section-navy h2{color:#fff;}
.section-navy p{color:#C9C2AE;}
.section-head{max-width:640px;margin:0 auto 52px;text-align:center;}
.section-head.left{margin-left:0;text-align:left;}

/* Two column */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:36px;}}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px;}
.stat{border-top:2px solid var(--gold);padding-top:14px;}
.stat b{display:block;font-family:var(--display);font-size:2.2rem;color:var(--navy);}
.stat span{font-size:.85rem;color:var(--ink-soft);}
@media (max-width:600px){.stat-row{grid-template-columns:1fr;}}

/* Cards grid (programs) */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;}
.prog-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;transition:box-shadow .2s ease, transform .2s ease;
}
.prog-card:hover{box-shadow:0 14px 30px rgba(11,31,58,.1);transform:translateY(-4px);}
.prog-icon{width:44px;height:44px;margin-bottom:16px;}
.prog-card h3{margin-bottom:.35em;}
.prog-meta{font-family:var(--mono);font-size:.75rem;color:var(--maroon);letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px;}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.tag{font-family:var(--mono);font-size:.72rem;background:var(--navy-pale);color:var(--navy);padding:4px 10px;border-radius:2px;}

/* Branch cards */
.branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
@media (max-width:760px){.branch-grid{grid-template-columns:1fr;}}
.branch-card{
  background:#fff;border:1px solid var(--line);
  padding:30px;position:relative;border-radius:var(--radius);
}
.branch-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--gold),var(--maroon));
}
.branch-card h3{margin-bottom:4px;}
.branch-card .state-tag{font-family:var(--mono);font-size:.7rem;color:var(--gold);letter-spacing:2px;text-transform:uppercase;}
.branch-detail{display:flex;gap:10px;margin-top:14px;font-size:.92rem;color:var(--ink-soft);}
.branch-detail svg{flex:0 0 auto;margin-top:2px;}

/* Timeline */
.timeline{border-left:2px solid var(--gold);margin-left:12px;padding-left:32px;}
.timeline-item{position:relative;padding-bottom:38px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{
  content:"";position:absolute;left:-40px;top:4px;
  width:14px;height:14px;border-radius:50%;
  background:var(--gold);border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--gold);
}
.timeline-item .date{font-family:var(--mono);font-size:.78rem;color:var(--maroon);letter-spacing:1px;margin-bottom:4px;}

/* CTA banner */
.cta-banner{
  background:linear-gradient(120deg,var(--navy),#0e2545);
  color:#fff;padding:64px 0;text-align:center;position:relative;overflow:hidden;
}
.cta-banner h2{color:#fff;}
.cta-banner .lede{color:#C9C2AE;max-width:560px;margin:0 auto 30px;}
.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Footer */
.site-footer{background:var(--navy);color:#B9B3A0;padding:60px 0 24px;font-size:.9rem;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:36px;}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h4{color:#fff;font-family:var(--body);font-size:.85rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px;}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid li{margin-bottom:10px;}
.footer-grid a:hover{color:var(--gold-light);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);margin-top:44px;padding-top:22px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.8rem;
}

/* ==================== PORTAL ==================== */
.portal-shell{min-height:70vh;background:var(--navy-pale);padding:60px 0;}
.portal-panel{
  max-width:960px;margin:0 auto;background:#fff;
  border-radius:var(--radius);box-shadow:0 20px 50px rgba(11,31,58,.14);
  overflow:hidden;border:1px solid var(--line);
}
.portal-tabs{display:flex;background:var(--navy);}
.portal-tab{
  flex:1;padding:18px;text-align:center;color:#B9B3A0;
  font-family:var(--mono);font-size:.8rem;letter-spacing:1px;text-transform:uppercase;
  cursor:pointer;border-bottom:3px solid transparent;
}
.portal-tab.active{color:#fff;border-bottom-color:var(--gold);}
.portal-body{padding:40px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:600px){.form-row{grid-template-columns:1fr;}}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--navy);}
.field input, .field select{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:4px;
  font-family:var(--body);font-size:.95rem;background:var(--cream);
}
.field input:focus, .field select:focus{outline:2px solid var(--gold);outline-offset:1px;background:#fff;}
.helper{font-size:.78rem;color:var(--ink-soft);margin-top:4px;}
.form-msg{padding:12px 16px;border-radius:4px;font-size:.88rem;margin-bottom:18px;display:none;}
.form-msg.show{display:block;}
.form-msg.error{background:#FBE7E7;color:#8A1C1C;border:1px solid #E9B4B4;}
.form-msg.success{background:#E4F3E9;color:var(--success);border:1px solid #B7DEC4;}

.id-card{
  background:linear-gradient(135deg,var(--navy),#0e2545);
  color:#fff;border-radius:10px;padding:26px;display:flex;justify-content:space-between;gap:20px;
  margin-bottom:30px;position:relative;overflow:hidden;
}
.id-card::after{
  content:"";position:absolute;right:-30px;top:-30px;width:160px;height:160px;
  background:radial-gradient(circle, rgba(201,162,39,.25), transparent 70%);
}
.id-card .id-name{font-family:var(--display);font-size:1.5rem;margin:0;color:#fff;}
.id-card .id-meta{font-family:var(--mono);font-size:.78rem;color:var(--gold-light);letter-spacing:1px;}
.id-photo{width:64px;height:64px;border-radius:50%;background:var(--gold);flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.4rem;color:var(--navy);font-weight:700;}

.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px;}
@media (max-width:700px){.dash-grid{grid-template-columns:1fr;}}
.dash-card{border:1px solid var(--line);border-radius:6px;padding:20px;}
.dash-card h4{margin-bottom:4px;}
.dash-card .amount{font-family:var(--mono);font-size:1.6rem;color:var(--navy);}
.status-pill{display:inline-block;font-family:var(--mono);font-size:.7rem;padding:4px 10px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase;}
.status-pill.paid{background:#E4F3E9;color:var(--success);}
.status-pill.due{background:#FBE7E7;color:#8A1C1C;}

table.ledger{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.85rem;}
table.ledger th{
  text-align:left;padding:10px 12px;background:var(--navy);color:var(--gold-light);
  font-size:.72rem;letter-spacing:1px;text-transform:uppercase;
}
table.ledger td{padding:10px 12px;border-bottom:1px solid var(--line);}
table.ledger tr:last-child td{border-bottom:none;}

.result-transcript{border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:20px;}
.result-head{background:var(--parchment);padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.grade-A{color:var(--success);font-weight:700;}
.grade-B{color:#1E5A8A;font-weight:700;}
.grade-C{color:#8A6D1E;font-weight:700;}

.empty-state{text-align:center;padding:50px 20px;color:var(--ink-soft);}
.empty-state svg{margin:0 auto 16px;}

.demo-banner{
  background:#FFF6DE;border:1px solid var(--gold);color:#6b5311;
  font-size:.82rem;padding:10px 16px;border-radius:4px;margin-bottom:24px;
  display:flex;gap:10px;align-items:flex-start;
}

/* Utility */
.mt-0{margin-top:0;}
.text-center{text-align:center;}
.hidden{display:none !important;}
.small{font-size:.85rem;}
.gold-text{color:var(--gold);}

/* Page hero (interior pages) */
.page-hero{background:var(--navy);color:#fff;padding:70px 0 56px;position:relative;overflow:hidden;}
.page-hero h1{color:#fff;margin-bottom:.2em;}
.breadcrumb{font-family:var(--mono);font-size:.78rem;color:var(--gold-light);letter-spacing:1px;margin-bottom:14px;}
