[hidden] { display: none !important; }

:root {
  --navy-950: #06162a;
  --navy-900: #0a213b;
  --navy-800: #12304a;
  --navy-700: #194465;
  --teal-700: #0b6d69;
  --teal-600: #0b7a75;
  --teal-500: #13918a;
  --gold-500: #d4a63a;
  --gold-400: #e3bb5a;
  --ivory-50: #fcfaf6;
  --ivory-100: #f7f2e8;
  --ivory-200: #ece3d2;
  --slate-900: #172333;
  --slate-700: #3b4b5e;
  --slate-600: #526173;
  --slate-500: #6c7887;
  --white: #fff;
  --success: #1b7452;
  --danger: #a93d3d;
  --shadow-sm: 0 8px 24px rgba(6, 22, 42, .08);
  --shadow-md: 0 18px 50px rgba(6, 22, 42, .12);
  --shadow-lg: 0 26px 80px rgba(6, 22, 42, .18);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 32px;
  --max: 1180px;
  --header-height: 84px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body {
  margin: 0;
  color: var(--slate-900);
  background: var(--ivory-50);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid rgba(212, 166, 58, .75); outline-offset: 3px; }
::selection { background: rgba(11, 122, 117, .18); }

.skip-link {
  position: fixed; z-index: 9999; top: 10px; left: 10px;
  transform: translateY(-160%); background: var(--white); color: var(--navy-900);
  padding: .8rem 1rem; border-radius: 10px; box-shadow: var(--shadow-md);
}
.skip-link:focus { transform: none; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: 88px 0; }
.section-sm { padding: 58px 0; }
.section-dark { color: var(--white); background: var(--navy-900); }
.section-soft { background: var(--ivory-100); }
.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem; margin-bottom: 1rem;
  color: var(--teal-700); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--gold-500); }
.section-dark .eyebrow { color: #77d2cd; }
.heading, h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; line-height: 1.08; color: var(--navy-900); }
.section-dark h1, .section-dark h2, .section-dark h3 { color: var(--white); }
h1 { font-size: clamp(2.65rem, 5vw, 5.35rem); margin: 0 0 1.4rem; letter-spacing: -.035em; }
h2 { font-size: clamp(2rem, 3.5vw, 3.45rem); margin: 0 0 1rem; letter-spacing: -.025em; }
h3 { font-size: 1.45rem; margin: 0 0 .65rem; }
p { margin: 0 0 1.15rem; }
.lead { color: var(--slate-600); font-size: clamp(1.05rem, 1.5vw, 1.22rem); line-height: 1.78; }
.section-dark .lead { color: rgba(255,255,255,.78); }
.text-teal { color: var(--teal-600); }
.text-gold { color: var(--gold-500); }
.muted { color: var(--slate-600); }
.small { font-size: .9rem; }

.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.btn {
  min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .7rem;
  padding: .78rem 1.15rem; border: 1px solid transparent; border-radius: 12px; font-weight: 800;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: var(--navy-950); background: linear-gradient(135deg, var(--gold-400), var(--gold-500)); box-shadow: 0 12px 28px rgba(212,166,58,.22); }
.btn-primary:hover { box-shadow: 0 16px 34px rgba(212,166,58,.32); }
.btn-secondary { color: var(--navy-800); background: var(--white); border-color: rgba(18,48,74,.16); box-shadow: var(--shadow-sm); }
.btn-ghost { color: var(--white); border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.04); }
.btn-outline { color: var(--teal-700); border-color: rgba(11,122,117,.45); background: transparent; }
.btn-sm { min-height: 42px; padding: .6rem .9rem; font-size: .9rem; }
.icon-arrow { font-size: 1.15em; line-height: 1; }

.site-header {
  position: sticky; z-index: 1000; top: 0; height: var(--header-height);
  background: rgba(252,250,246,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(18,48,74,.08);
}
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 236px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 3px; }
.nav-link {
  padding: .72rem .72rem; border-radius: 9px; font-size: .91rem; font-weight: 700; color: var(--slate-700);
}
.nav-link:hover, .nav-link[aria-current="page"] { color: var(--navy-900); background: rgba(11,122,117,.07); }
.nav-cta { margin-left: 10px; }
.menu-toggle {
  display: none; width: 46px; height: 46px; border: 1px solid rgba(18,48,74,.15); background: var(--white); border-radius: 12px;
  align-items: center; justify-content: center; flex-direction: column; gap: 5px;
}
.menu-toggle span { width: 21px; height: 2px; background: var(--navy-800); transition: .2s ease; }

.hero {
  position: relative; overflow: hidden; background:
    radial-gradient(circle at 12% 20%, rgba(19,145,138,.22), transparent 30%),
    linear-gradient(120deg, var(--navy-950), var(--navy-900) 58%, #153e5d);
  color: var(--white); min-height: 680px; display: flex; align-items: center;
}
.hero::after { content: ""; position: absolute; inset: auto -12% -55% auto; width: 650px; height: 650px; border: 1px solid rgba(212,166,58,.2); border-radius: 50%; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 56px; padding: 84px 0 110px; }
.hero-copy h1 { color: var(--white); font-size: clamp(2.7rem, 4.35vw, 4.15rem); line-height: 1.04; max-width: 700px; }
.hero-copy .lead { max-width: 630px; color: rgba(255,255,255,.78); }
.destination-inline { display: flex; flex-wrap: wrap; gap: .4rem .85rem; margin: 1.6rem 0 1.8rem; color: rgba(255,255,255,.82); font-weight: 700; font-size: .92rem; }
.destination-inline strong { color: var(--gold-400); }
.hero-media { position: relative; }
.hero-image-shell { position: relative; border-radius: 34px 34px 140px 34px; overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid rgba(255,255,255,.14); }
.hero-image-shell img { width: 100%; height: 450px; object-fit: cover; object-position: center; }
.hero-image-shell::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 65%, rgba(6,22,42,.28)); pointer-events: none; }
.door-mark { position: absolute; right: -20px; top: -25px; width: 86px; filter: drop-shadow(0 12px 16px rgba(0,0,0,.18)); }

.trust-wrap { position: relative; z-index: 4; margin-top: -56px; }
.trust-bar { display: grid; grid-template-columns: repeat(4,1fr); background: var(--white); border-radius: 22px; box-shadow: var(--shadow-md); border: 1px solid rgba(18,48,74,.08); padding: 22px 10px; }
.trust-item { display: flex; align-items: center; gap: 13px; padding: 5px 22px; border-right: 1px solid rgba(18,48,74,.1); }
.trust-item:last-child { border-right: 0; }
.trust-icon { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--ivory-100); color: var(--teal-700); flex: 0 0 auto; }
.trust-item strong { display: block; color: var(--navy-900); line-height: 1.25; }
.trust-item span { color: var(--slate-600); font-size: .82rem; }

.intro-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: start; }
.intro-copy { position: sticky; top: 120px; }
.card-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; }
.card { background: var(--white); border: 1px solid rgba(18,48,74,.09); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 30px; }
.card-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 18px; background: linear-gradient(145deg, rgba(11,122,117,.14), rgba(212,166,58,.12)); color: var(--teal-700); margin-bottom: 22px; }
.card p { color: var(--slate-600); }

.mission-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.mission-card { min-height: 290px; position: relative; overflow: hidden; }
.mission-card::after { content: ""; position: absolute; width: 140px; height: 140px; border: 1px solid rgba(11,122,117,.13); border-radius: 50%; right: -45px; bottom: -45px; }

.founder-panel { position: relative; overflow: hidden; display: grid; grid-template-columns: 350px 1fr; gap: 46px; background: linear-gradient(135deg, #071a31, #0b2948 62%, #0c3d52); color: var(--white); padding: 28px; border-radius: 30px; box-shadow: var(--shadow-lg); }
.founder-panel::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(11,122,117,.07)); pointer-events: none; }
.founder-photo { min-height: 480px; border-radius: 23px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); position: relative; z-index: 1; }
.founder-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; }
.founder-content { position: relative; z-index: 1; padding: 24px 22px 20px 0; }
.founder-content h2 { margin-bottom: .3rem;   color: #ffffff;}
.founder-title { color: var(--gold-400); font-weight: 800; font-size: 1.1rem; letter-spacing: .02em; }
.credential-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px 24px; margin: 26px 0; }
.credential { display: flex; gap: 10px; color: rgba(255,255,255,.84); font-size: .91rem; }
.credential::before { content: "✓"; width: 22px; height: 22px; border-radius: 50%; background: rgba(212,166,58,.14); color: var(--gold-400); display: grid; place-items: center; flex: 0 0 auto; font-weight: 900; }

.destination-grid { display: grid; grid-template-columns: 1.35fr repeat(5,1fr); gap: 14px; }
.destination-card { background: var(--white); border-radius: 18px; overflow: hidden; border: 1px solid rgba(18,48,74,.1); box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease; }
.destination-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.destination-card img { width: 100%; height: 140px; object-fit: cover; }
.destination-body { padding: 18px; }
.destination-body h3 { font-size: 1.25rem; }
.destination-body p { font-size: .86rem; color: var(--slate-600); margin: 0; }
.destination-card.featured { background: var(--navy-900); color: var(--white); border-color: rgba(212,166,58,.55); }
.destination-card.featured h3 { color: var(--white); }
.destination-card.featured p { color: rgba(255,255,255,.72); }

.community-row { display: grid; grid-template-columns: 1.2fr repeat(4,1fr); gap: 14px; align-items: stretch; }
.community-intro { padding-right: 20px; }
.community-pill { background: var(--white); border: 1px solid rgba(18,48,74,.1); border-radius: 18px; padding: 18px; display: flex; gap: 13px; align-items: center; }
.flag { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; font-size: .78rem; color: var(--white); flex: 0 0 auto; }
.flag.nepal { background: #c61d3b; }
.flag.nigeria { background: linear-gradient(90deg,#168653 0 33%,#fff 33% 66%,#168653 66%); color: #168653; }
.flag.ghana { background: linear-gradient(#ce1126 0 33%,#fcd116 33% 66%,#006b3f 66%); color: #111; }
.flag.world { background: var(--navy-800); }
.community-pill strong { display:block; }
.community-pill span { color:var(--slate-600); font-size:.78rem; }

.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; counter-reset: steps; }
.process-card { position: relative; padding: 28px 24px 25px; background: var(--white); border: 1px solid rgba(18,48,74,.09); border-radius: 20px; }
.process-card::before { counter-increment: steps; content: "0" counter(steps); display: block; font-family: Georgia,serif; font-size: 2rem; color: var(--gold-500); margin-bottom: 18px; }
.process-card::after { content: ""; position: absolute; top: 50px; right: -19px; width: 38px; height: 1px; background: rgba(11,122,117,.35); }
.process-card:last-child::after { display:none; }

.testimonial-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.quote-card { background: var(--white); border: 1px solid rgba(18,48,74,.1); border-radius: 20px; padding: 28px; }
.quote-mark { font-family: Georgia,serif; font-size: 3.2rem; color: var(--teal-600); line-height: .7; }
.quote-card blockquote { margin: 18px 0; color: var(--slate-700); }
.quote-person { display: flex; align-items: center; gap: 12px; }
.avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items:center; color:var(--white); background: linear-gradient(135deg,var(--navy-700),var(--teal-600)); font-weight:800; }

.cta-band { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items:center; padding: 44px 48px; border-radius: 28px; color:var(--white); background: linear-gradient(125deg,var(--navy-950),var(--navy-800) 68%,#075a5d); }
.cta-band::after { content:""; position:absolute; width:230px; height:230px; border:1px solid rgba(212,166,58,.25); border-radius:50%; right:-70px; top:-90px; }
.cta-band h2 { color:var(--white); font-size:clamp(2rem,3vw,3.1rem); margin-bottom:.5rem; }
.cta-band p { color:rgba(255,255,255,.73); margin:0; }
.cta-band .btn { position:relative; z-index:1; }

.page-hero { padding: 92px 0 72px; color:var(--white); background: radial-gradient(circle at 80% 20%,rgba(11,122,117,.28),transparent 32%),linear-gradient(120deg,var(--navy-950),var(--navy-800)); }
.page-hero h1 { color:var(--white); max-width:900px; font-size:clamp(2.8rem,5vw,4.7rem); }
.page-hero p { max-width:760px; color:rgba(255,255,255,.76); font-size:1.1rem; }
.breadcrumbs { display:flex; gap:.5rem; align-items:center; margin-bottom:1.2rem; font-size:.86rem; color:rgba(255,255,255,.68); }
.breadcrumbs a:hover { color:var(--white); }

.content-layout { display:grid; grid-template-columns: 260px minmax(0,1fr); gap:60px; align-items:start; }
.side-nav { position:sticky; top:112px; border:1px solid rgba(18,48,74,.1); background:var(--white); border-radius:18px; padding:16px; box-shadow:var(--shadow-sm); }
.side-nav a { display:block; padding:.65rem .75rem; border-radius:10px; color:var(--slate-700); font-weight:700; font-size:.9rem; }
.side-nav a:hover { background:var(--ivory-100); color:var(--navy-900); }
.prose { max-width:850px; }
.prose h2 { margin-top:2.4rem; font-size:2rem; }
.prose h3 { margin-top:1.8rem; font-size:1.3rem; }
.prose p, .prose li { color:var(--slate-700); }
.prose ul, .prose ol { padding-left:1.25rem; }
.prose li { margin-bottom:.55rem; }
.notice { padding:18px 20px; background:#eef7f5; border-left:4px solid var(--teal-600); border-radius:10px; color:var(--slate-700); }
.warning { background:#fff8e6; border-left-color:var(--gold-500); }
.legal-meta { display:flex; flex-wrap:wrap; gap:8px 22px; color:var(--slate-600); font-size:.9rem; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { min-height:320px; display:flex; flex-direction:column; }
.service-card .card-icon { margin-bottom:26px; }
.service-card p { flex-grow:1; }
.service-list { padding:0; list-style:none; margin:18px 0 0; }
.service-list li { position:relative; padding-left:22px; margin:.55rem 0; color:var(--slate-600); font-size:.9rem; }
.service-list li::before { content:""; position:absolute; left:0; top:.65em; width:8px; height:8px; border-radius:50%; background:var(--gold-500); }

.detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.detail-card { display:grid; grid-template-columns:120px 1fr; gap:22px; align-items:center; padding:22px; background:var(--white); border:1px solid rgba(18,48,74,.1); border-radius:20px; }
.detail-card img { width:120px; height:130px; object-fit:cover; border-radius:14px; }

.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:start; }
.contact-card { background:var(--navy-900); color:var(--white); padding:34px; border-radius:24px; }
.contact-card h2,.contact-card h3 { color:var(--white); }
.contact-list { display:grid; gap:18px; margin:26px 0; }
.contact-item { display:flex; gap:14px; align-items:flex-start; }
.contact-item-icon { width:42px; height:42px; border-radius:13px; display:grid; place-items:center; background:rgba(255,255,255,.08); color:var(--gold-400); flex:0 0 auto; }
.contact-item a { color:#98e3df; font-weight:800; }
.form-card { background:var(--white); padding:34px; border-radius:24px; box-shadow:var(--shadow-md); border:1px solid rgba(18,48,74,.1); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.form-group { display:grid; gap:7px; }
.form-group.full { grid-column:1 / -1; }
label { color:var(--navy-900); font-weight:800; font-size:.9rem; }
input, select, textarea { width:100%; border:1px solid rgba(18,48,74,.18); background:var(--ivory-50); color:var(--slate-900); border-radius:12px; padding:.82rem .9rem; }
textarea { min-height:145px; resize:vertical; }
input:focus,select:focus,textarea:focus { border-color:var(--teal-600); box-shadow:0 0 0 4px rgba(11,122,117,.1); outline:none; }
.checkbox-row { display:flex; align-items:flex-start; gap:10px; }
.checkbox-row input { width:auto; margin-top:.35rem; }
.form-status { min-height:24px; margin-top:12px; font-size:.9rem; color:var(--success); }

.faq-list { display:grid; gap:12px; }
details { background:var(--white); border:1px solid rgba(18,48,74,.1); border-radius:14px; padding:0 18px; }
summary { cursor:pointer; list-style:none; font-weight:800; color:var(--navy-900); padding:18px 30px 18px 0; position:relative; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; right:0; color:var(--teal-600); font-size:1.35rem; }
details[open] summary::after { content:"−"; }
details p { color:var(--slate-600); padding:0 0 18px; }

.site-footer { color:rgba(255,255,255,.76); background:var(--navy-950); margin-top:80px; }
.footer-main { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:42px; padding:66px 0 42px; }
.footer-brand img { width:230px; filter:brightness(0) invert(1); opacity:.95; }
.footer-brand p { margin-top:18px; max-width:360px; }
.footer-title { color:var(--white); font-family:Georgia,serif; font-weight:700; font-size:1.08rem; margin-bottom:15px; }
.footer-links { display:grid; gap:9px; }
.footer-links a:hover { color:var(--white); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:22px 0 28px; display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:.82rem; }
.footer-legal { display:flex; flex-wrap:wrap; gap:14px; }
.footer-legal a:hover { color:var(--white); }

.cookie-banner { position:fixed; z-index:2000; left:20px; right:20px; bottom:20px; max-width:920px; margin:auto; display:none; grid-template-columns:1fr auto; gap:24px; align-items:center; background:var(--white); border:1px solid rgba(18,48,74,.14); border-radius:18px; box-shadow:var(--shadow-lg); padding:22px; }
.cookie-banner.visible { display:grid; }
.cookie-banner h2 { font-size:1.2rem; margin:0 0 .35rem; }
.cookie-banner p { margin:0; color:var(--slate-600); font-size:.88rem; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }

.toast { position:fixed; z-index:2500; right:20px; bottom:20px; max-width:360px; background:var(--navy-900); color:var(--white); border-radius:14px; padding:15px 18px; box-shadow:var(--shadow-md); transform:translateY(140%); opacity:0; transition:.25s ease; }
.toast.visible { transform:none; opacity:1; }

@media (max-width: 1080px) {
  .site-nav { position:fixed; inset:var(--header-height) 0 auto 0; display:none; flex-direction:column; align-items:stretch; padding:20px; background:var(--ivory-50); border-bottom:1px solid rgba(18,48,74,.1); box-shadow:var(--shadow-md); }
  .site-nav.open { display:flex; }
  .nav-link { padding:.85rem 1rem; }
  .nav-cta { margin:8px 0 0; }
  .menu-toggle { display:flex; }
  .hero-grid { grid-template-columns:1fr; padding-top:70px; }
  .hero-copy { max-width:800px; }
  .hero-media { max-width:800px; }
  .trust-bar { grid-template-columns:repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right:0; }
  .trust-item:nth-child(-n+2) { border-bottom:1px solid rgba(18,48,74,.1); padding-bottom:18px; margin-bottom:12px; }
  .intro-grid { grid-template-columns:1fr; gap:40px; }
  .intro-copy { position:static; }
  .founder-panel { grid-template-columns:300px 1fr; }
  .destination-grid { grid-template-columns:repeat(3,1fr); }
  .destination-card.featured { grid-column:span 2; }
  .community-row { grid-template-columns:repeat(2,1fr); }
  .community-intro { grid-column:1/-1; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .footer-main { grid-template-columns:1.5fr 1fr 1fr; }
  .footer-main > :last-child { grid-column:2 / 4; }
}

@media (max-width: 760px) {
  :root { --header-height:72px; }
  .container { width:min(calc(100% - 28px),var(--max)); }
  .section { padding:64px 0; }
  .section-sm { padding:42px 0; }
  .brand img { width:190px; }
  .hero { min-height:auto; }
  .hero-grid { padding:62px 0 98px; gap:44px; }
  .hero-image-shell img { height:330px; }
  .door-mark { right:8px; }
  .trust-bar { grid-template-columns:1fr; padding:8px 12px; }
  .trust-item { border-right:0; border-bottom:1px solid rgba(18,48,74,.1); padding:14px 10px; margin:0 !important; }
  .trust-item:last-child { border-bottom:0; }
  .card-grid,.mission-grid,.detail-grid,.testimonial-grid,.process-grid,.service-grid { grid-template-columns:1fr; }
  .founder-panel { grid-template-columns:1fr; gap:20px; padding:18px; }
  .founder-photo { min-height:430px; }
  .founder-content { padding:16px 8px 12px; }
  .credential-grid { grid-template-columns:1fr; }
  .destination-grid { grid-template-columns:repeat(2,1fr); }
  .destination-card.featured { grid-column:span 2; }
  .community-row { grid-template-columns:1fr; }
  .process-card::after { display:none; }
  .cta-band { grid-template-columns:1fr; padding:34px 26px; }
  .content-layout { grid-template-columns:1fr; gap:30px; }
  .side-nav { position:static; display:flex; overflow:auto; gap:4px; }
  .side-nav a { white-space:nowrap; }
  .contact-grid { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .form-group.full { grid-column:auto; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-main > :last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .cookie-banner { grid-template-columns:1fr; left:10px; right:10px; bottom:10px; }
  .cookie-actions { justify-content:flex-start; }
}

@media (max-width: 500px) {
  h1 { font-size:2.65rem; }
  .hero-copy h1 { font-size:2.75rem; }
  .hero-image-shell { border-radius:24px 24px 80px 24px; }
  .hero-image-shell img { height:280px; }
  .destination-grid { grid-template-columns:1fr; }
  .destination-card.featured { grid-column:auto; }
  .footer-main { grid-template-columns:1fr; }
  .footer-main > :last-child { grid-column:auto; }
  .btn { width:100%; }
  .nav-cta .btn { width:100%; }
  .detail-card { grid-template-columns:1fr; }
  .detail-card img { width:100%; height:180px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Gallery, certifications, and student document portal */
.section-heading { margin-bottom: 34px; }
.split-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:end; }
.split-heading p { color:var(--slate-600); margin:0; }
.center-action { display:flex; justify-content:center; margin-top:28px; }

.section-credentials-preview { background:
  radial-gradient(circle at 82% 22%, rgba(11,122,117,.12), transparent 25%),
  linear-gradient(135deg, #fff, var(--ivory-100));
}
.showcase-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center; }
.showcase-copy { max-width:580px; }
.certificate-stack { display:grid; gap:16px; position:relative; }
.certificate-stack::before { content:""; position:absolute; width:230px; height:230px; right:-30px; top:-55px; border:1px solid rgba(212,166,58,.22); border-radius:50%; }
.mini-certificate { position:relative; display:flex; gap:18px; align-items:center; background:rgba(255,255,255,.95); border:1px solid rgba(18,48,74,.1); border-radius:20px; box-shadow:var(--shadow-sm); padding:22px 24px; }
.mini-certificate:nth-child(2) { margin-left:42px; }
.mini-certificate:nth-child(3) { margin-left:84px; }
.certificate-seal { width:58px; height:58px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; font-weight:900; font-family:Georgia,serif; color:var(--navy-900); background:radial-gradient(circle,#fff 45%,#f3e5bc 46% 52%,var(--gold-500) 53% 56%,#fff8e7 57%); border:1px solid rgba(212,166,58,.4); }
.mini-certificate strong,.mini-certificate span { display:block; }
.mini-certificate span { color:var(--slate-600); font-size:.88rem; }

.gallery-preview-grid { display:grid; grid-template-columns:1.35fr .65fr .65fr; gap:18px; }
.gallery-preview-card { position:relative; min-height:340px; border-radius:24px; overflow:hidden; box-shadow:var(--shadow-md); }
.gallery-preview-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-preview-card:hover img { transform:scale(1.035); }
.gallery-preview-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(6,22,42,.86)); }
.gallery-preview-card > span { position:absolute; z-index:1; left:24px; right:24px; bottom:22px; color:var(--white); }
.gallery-preview-card strong,.gallery-preview-card small { display:block; }
.gallery-preview-card strong { font-family:Georgia,serif; font-size:1.35rem; }
.gallery-preview-card small { color:rgba(255,255,255,.72); }
.gallery-preview-wide { min-height:420px; }

.gallery-hero { background:
  radial-gradient(circle at 85% 30%,rgba(212,166,58,.18),transparent 26%),
  radial-gradient(circle at 72% 4%,rgba(11,122,117,.26),transparent 28%),
  linear-gradient(120deg,var(--navy-950),var(--navy-800));
}
.gallery-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.gallery-filter { border:1px solid rgba(18,48,74,.14); background:var(--white); color:var(--slate-700); border-radius:999px; padding:.65rem 1rem; font-weight:800; }
.gallery-filter.active,.gallery-filter:hover { color:var(--white); background:var(--navy-900); border-color:var(--navy-900); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:16px; }
.gallery-item { position:relative; overflow:hidden; border:0; border-radius:22px; padding:0; background:var(--navy-900); box-shadow:var(--shadow-sm); text-align:left; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease,filter .35s ease; }
.gallery-item:hover img { transform:scale(1.05); filter:saturate(1.08); }
.gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(6,22,42,.86)); }
.gallery-item-large { grid-column:span 2; grid-row:span 2; }
.gallery-item-tall { grid-row:span 2; }
.gallery-item-wide { grid-column:span 2; }
.gallery-item.filtered-out { display:none; }
.gallery-overlay { position:absolute; z-index:1; left:20px; right:20px; bottom:18px; color:var(--white); }
.gallery-overlay strong,.gallery-overlay small { display:block; }
.gallery-overlay strong { font-family:Georgia,serif; font-size:1.25rem; }
.gallery-overlay small { color:rgba(255,255,255,.74); }
.gallery-note { margin-top:28px; }

.media-dialog,.certificate-dialog,.submission-dialog { width:min(960px,calc(100% - 28px)); max-height:90vh; border:0; border-radius:28px; padding:24px; box-shadow:0 35px 100px rgba(6,22,42,.34); background:var(--ivory-50); color:var(--slate-900); }
dialog::backdrop { background:rgba(3,13,26,.75); backdrop-filter:blur(7px); }
.dialog-close { position:absolute; z-index:3; top:14px; right:14px; width:42px; height:42px; border:1px solid rgba(18,48,74,.12); border-radius:50%; background:var(--white); color:var(--navy-900); font-size:1.5rem; line-height:1; }
.media-dialog-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:center; }
.media-dialog-grid img { width:100%; max-height:70vh; object-fit:cover; border-radius:20px; }

.credential-hero { background:
  radial-gradient(circle at 84% 22%,rgba(212,166,58,.23),transparent 24%),
  linear-gradient(120deg,var(--navy-950),#0d314e 62%,#0b5757);
}
.credentials-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:58px; align-items:start; }
.credentials-intro { position:sticky; top:116px; }
.credential-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:28px 0; }
.credential-summary div { background:var(--white); border:1px solid rgba(18,48,74,.1); border-radius:16px; padding:18px; }
.credential-summary strong,.credential-summary span { display:block; }
.credential-summary strong { font-family:Georgia,serif; color:var(--teal-700); font-size:1.85rem; }
.credential-summary span { color:var(--slate-600); font-size:.78rem; line-height:1.4; }
.certificate-grid { display:grid; gap:22px; }
.certificate-card { display:grid; grid-template-columns:270px 1fr; gap:28px; padding:20px; background:var(--white); border:1px solid rgba(18,48,74,.1); border-radius:24px; box-shadow:var(--shadow-sm); }
.certificate-card.featured-certificate { border-color:rgba(212,166,58,.42); box-shadow:0 20px 60px rgba(212,166,58,.11); }
.certificate-visual,.certificate-dialog-document { position:relative; min-height:205px; overflow:hidden; border-radius:18px; background:
  linear-gradient(135deg,rgba(212,166,58,.12),transparent 36%),
  repeating-linear-gradient(0deg,transparent 0 14px,rgba(18,48,74,.025) 15px),
  var(--ivory-100); border:1px solid rgba(18,48,74,.1); }
.certificate-visual::before,.certificate-dialog-document::before { content:"LIBERTY EDUCATION GROUP"; position:absolute; top:24px; left:24px; color:var(--navy-900); font-family:Georgia,serif; font-size:.76rem; letter-spacing:.13em; }
.certificate-watermark { position:absolute; inset:0; display:grid; place-items:center; color:rgba(11,122,117,.11); font-family:Georgia,serif; font-size:5rem; font-weight:900; }
.document-lines { position:absolute; left:24px; right:24px; top:68px; height:70px; background:linear-gradient(rgba(18,48,74,.12),rgba(18,48,74,.12)) 0 0/68% 2px no-repeat,linear-gradient(rgba(18,48,74,.09),rgba(18,48,74,.09)) 0 22px/90% 2px no-repeat,linear-gradient(rgba(18,48,74,.09),rgba(18,48,74,.09)) 0 44px/78% 2px no-repeat; }
.certificate-status { position:absolute; left:18px; right:18px; bottom:16px; text-align:center; color:var(--teal-700); background:rgba(255,255,255,.8); border:1px solid rgba(11,122,117,.16); border-radius:999px; padding:.45rem .7rem; font-weight:800; font-size:.76rem; }
.certificate-info { padding:10px 12px 10px 0; }
.certificate-type { display:block; color:var(--teal-700); text-transform:uppercase; letter-spacing:.12em; font-weight:900; font-size:.72rem; margin-bottom:.6rem; }
.certificate-info p { color:var(--slate-600); }
.certificate-card-empty { min-height:180px; display:flex; align-items:center; border-style:dashed; background:transparent; }
.certificate-add-icon { width:72px; height:72px; border-radius:20px; display:grid; place-items:center; background:var(--white); color:var(--teal-700); border:1px dashed rgba(11,122,117,.45); font-size:2rem; }
.certification-guidelines { display:grid; gap:34px; }
.certificate-dialog { display:none; grid-template-columns:.9fr 1.1fr; gap:32px; align-items:center; }
.certificate-dialog[open] { display:grid; }
.certificate-dialog-document { min-height:430px; }

.document-hero { background:
  radial-gradient(circle at 82% 22%,rgba(11,122,117,.32),transparent 27%),
  linear-gradient(120deg,var(--navy-950),var(--navy-800));
}
.document-hero-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; }
.portal-trust-card { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:22px; padding:28px; color:rgba(255,255,255,.82); box-shadow:var(--shadow-md); }
.portal-trust-card strong { display:block; color:var(--white); font-family:Georgia,serif; font-size:1.35rem; }
.portal-trust-card ul { margin:18px 0 0; padding-left:1.2rem; }
.portal-trust-card li { margin:.55rem 0; }
.portal-layout { display:grid; grid-template-columns:330px minmax(0,1fr); gap:36px; align-items:start; }
.portal-sidebar { position:sticky; top:112px; background:var(--ivory-100); border:1px solid rgba(18,48,74,.1); border-radius:24px; padding:28px; }
.portal-contact { display:grid; gap:8px; padding:20px 0; margin:18px 0; border-top:1px solid rgba(18,48,74,.1); border-bottom:1px solid rgba(18,48,74,.1); }
.portal-contact a { color:var(--teal-700); font-weight:800; }
.document-portal { background:var(--white); border:1px solid rgba(18,48,74,.1); border-radius:28px; box-shadow:var(--shadow-md); overflow:hidden; }
.portal-progress { display:grid; grid-template-columns:repeat(4,1fr); background:var(--navy-900); padding:14px; gap:8px; }
.portal-step { display:flex; align-items:center; justify-content:center; gap:9px; padding:.75rem .5rem; border:0; border-radius:12px; background:transparent; color:rgba(255,255,255,.64); font-weight:800; }
.portal-step span { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.3); }
.portal-step.active { color:var(--navy-950); background:var(--gold-400); }
.portal-step.active span { border-color:rgba(6,22,42,.25); }
.portal-step.complete { color:#97e5df; }
.portal-step.complete span { background:var(--teal-600); color:var(--white); border-color:var(--teal-600); }
.portal-panel { display:none; padding:40px; }
.portal-panel.active { display:block; }
.panel-heading { margin-bottom:26px; }
.panel-heading p { color:var(--slate-600); }
.document-portal .form-grid label { display:grid; gap:8px; }
.form-span-2 { grid-column:1/-1; }
.portal-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:30px; padding-top:24px; border-top:1px solid rgba(18,48,74,.1); }
.upload-zone { display:flex; min-height:230px; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; border:2px dashed rgba(11,122,117,.35); border-radius:22px; background:linear-gradient(180deg,#fbfdfc,#f3faf8); padding:28px; transition:.2s ease; }
.upload-zone.dragging,.upload-zone:hover { border-color:var(--teal-600); background:#edf9f6; transform:translateY(-2px); }
.upload-zone input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.upload-zone strong { font-size:1.15rem; color:var(--navy-900); }
.upload-zone > span:last-child { color:var(--slate-600); font-weight:500; }
.upload-icon { width:68px; height:68px; border-radius:22px; display:grid; place-items:center; background:var(--navy-900); color:var(--gold-400); font-size:2rem; }
.document-category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:22px 0; }
.document-category-grid div { padding:16px; border-radius:14px; background:var(--ivory-100); border:1px solid rgba(18,48,74,.07); }
.document-category-grid strong,.document-category-grid span { display:block; }
.document-category-grid span { color:var(--slate-600); font-size:.78rem; }
.file-queue { display:grid; gap:10px; }
.file-queue-empty { padding:20px; border-radius:14px; background:var(--ivory-100); color:var(--slate-600); text-align:center; }
.file-row { display:grid; grid-template-columns:52px 1fr auto; gap:14px; align-items:center; padding:14px; border:1px solid rgba(18,48,74,.1); border-radius:14px; }
.file-type { width:48px; height:48px; border-radius:12px; display:grid; place-items:center; background:var(--navy-900); color:var(--white); font-weight:900; font-size:.72rem; }
.file-meta strong,.file-meta small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-meta small { color:var(--slate-600); }
.file-row button { border:0; background:transparent; color:var(--danger); font-weight:800; }
.submission-review { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-bottom:22px; }
.review-card { border:1px solid rgba(18,48,74,.1); border-radius:18px; padding:20px; background:var(--ivory-50); }
.review-card p { color:var(--slate-600); margin:0; }
.review-label { display:block; color:var(--teal-700); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; font-weight:900; }
.review-files { grid-column:1/-1; }
.review-files ul { list-style:none; padding:0; margin:12px 0 0; }
.review-files li { display:flex; justify-content:space-between; gap:20px; padding:9px 0; border-top:1px solid rgba(18,48,74,.08); }
.review-files li span { color:var(--slate-600); }
.consent-check { display:flex; align-items:flex-start; gap:12px; margin:15px 0; color:var(--slate-700); font-weight:600; }
.consent-check input { width:auto; margin-top:.38rem; }
.consent-check a { color:var(--teal-700); text-decoration:underline; }
.submission-dialog { text-align:center; max-width:640px; padding:46px; }
.success-mark { width:76px; height:76px; margin:0 auto 22px; border-radius:50%; display:grid; place-items:center; background:#e2f4ed; color:var(--success); font-size:2.1rem; font-weight:900; }
.submission-dialog .btn-row { justify-content:center; }

@media (max-width: 1080px) {
  .showcase-grid,.credentials-layout,.document-hero-grid { grid-template-columns:1fr; }
  .credentials-intro,.portal-sidebar { position:static; }
  .gallery-preview-grid { grid-template-columns:1.2fr 1fr; }
  .gallery-preview-card:last-child { grid-column:1/-1; min-height:280px; }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .portal-layout { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  .split-heading { grid-template-columns:1fr; gap:10px; }
  .mini-certificate:nth-child(2),.mini-certificate:nth-child(3) { margin-left:0; }
  .gallery-preview-grid { grid-template-columns:1fr; }
  .gallery-preview-card,.gallery-preview-wide,.gallery-preview-card:last-child { min-height:310px; grid-column:auto; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:190px; }
  .gallery-item-large,.gallery-item-tall,.gallery-item-wide { grid-column:span 2; grid-row:span 1; }
  .media-dialog-grid,.certificate-dialog[open] { grid-template-columns:1fr; }
  .media-dialog-grid img { max-height:52vh; }
  .certificate-dialog-document { min-height:260px; }
  .credential-summary { grid-template-columns:1fr; }
  .certificate-card { grid-template-columns:1fr; }
  .certificate-info { padding:0 4px 8px; }
  .portal-progress { grid-template-columns:repeat(2,1fr); }
  .portal-panel { padding:28px 20px; }
  .document-category-grid { grid-template-columns:repeat(2,1fr); }
  .submission-review { grid-template-columns:1fr; }
  .review-files { grid-column:auto; }
}

@media (max-width: 500px) {
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:240px; }
  .gallery-item-large,.gallery-item-tall,.gallery-item-wide { grid-column:auto; }
  .portal-progress { grid-template-columns:1fr 1fr; }
  .portal-step { font-size:.78rem; }
  .portal-actions { flex-direction:column-reverse; align-items:stretch; }
  .document-category-grid { grid-template-columns:1fr; }
  .file-row { grid-template-columns:48px minmax(0,1fr); }
  .file-row button { grid-column:2; justify-self:start; }
  .submission-dialog { padding:38px 22px; }
}

/* Secure student portal */
.secure-portal-hero { background:radial-gradient(circle at 78% 20%,rgba(11,122,117,.26),transparent 34%),linear-gradient(135deg,var(--navy-950),var(--navy-800)); color:var(--white); padding:72px 0 90px; }
.secure-portal-hero h1 { color:var(--white); max-width:850px; }
.secure-portal-hero .lead { color:rgba(255,255,255,.8); max-width:800px; }
.security-pill-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.security-pill-row span { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.07); padding:.6rem .85rem; border-radius:999px; font-size:.82rem; font-weight:750; }
.portal-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:28px; align-items:start; }
.portal-security-card { position:sticky; top:110px; padding:26px; border-radius:var(--radius-md); background:var(--navy-900); color:var(--white); box-shadow:var(--shadow-md); }
.portal-security-card h2,.portal-security-card h3 { color:var(--white); }
.portal-security-card p,.portal-security-card li { color:rgba(255,255,255,.76); }
.portal-security-card ul { padding-left:1.15rem; }
.portal-security-card li+li { margin-top:.65rem; }
.portal-security-mark { width:58px; height:58px; border-radius:18px; display:grid; place-items:center; margin-bottom:18px; background:linear-gradient(135deg,var(--teal-600),var(--teal-700)); color:var(--white); font-size:1.7rem; }
.document-portal { overflow:hidden; background:var(--white); border:1px solid rgba(18,48,74,.08); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.portal-lock-screen { min-height:560px; display:grid; place-items:center; padding:46px; text-align:center; background:linear-gradient(180deg,#fff,#f8fbfa); }
.portal-lock-card { max-width:610px; }
.lock-mark { width:82px; height:82px; display:grid; place-items:center; margin:0 auto 24px; border-radius:28px; background:var(--navy-900); color:var(--gold-400); font-size:2.2rem; box-shadow:0 16px 40px rgba(6,22,42,.18); }
.invite-entry { display:grid; gap:12px; max-width:500px; margin:24px auto 0; }
.invite-entry input { text-align:center; letter-spacing:.04em; }
.portal-progress { display:grid; grid-template-columns:repeat(5,1fr); border-bottom:1px solid rgba(18,48,74,.08); background:var(--ivory-50); }
.portal-step { display:flex; align-items:center; justify-content:center; gap:8px; min-height:74px; border:0; border-right:1px solid rgba(18,48,74,.07); background:transparent; color:var(--slate-500); font-size:.82rem; font-weight:800; }
.portal-step span { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--white); border:1px solid rgba(18,48,74,.15); }
.portal-step.active { color:var(--navy-900); background:rgba(11,122,117,.055); }
.portal-step.active span { color:var(--white); background:var(--navy-900); border-color:var(--navy-900); }
.portal-step.complete span { background:var(--teal-600); color:var(--white); border-color:var(--teal-600); }
.consent-summary { display:grid; gap:14px; padding:20px; margin:20px 0; border-radius:18px; background:var(--ivory-100); border:1px solid rgba(18,48,74,.08); }
.consent-summary article { display:grid; grid-template-columns:38px 1fr; gap:12px; }
.consent-summary article>span { width:36px; height:36px; display:grid; place-items:center; border-radius:12px; color:var(--white); background:var(--teal-700); font-weight:900; }
.consent-summary h3 { font-size:1.08rem; margin-bottom:.25rem; }
.consent-summary p { margin:0; color:var(--slate-600); font-size:.92rem; }
.guardian-panel { padding:20px; margin:18px 0; border-radius:18px; background:#fff9ea; border:1px solid rgba(212,166,58,.34); }
.guardian-panel h3 { font-size:1.2rem; }
.upload-progress { margin-top:18px; padding:18px; border-radius:16px; background:var(--ivory-100); }
.progress-track { height:9px; overflow:hidden; border-radius:999px; background:rgba(18,48,74,.12); }
.progress-track span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--teal-600),var(--gold-500)); transition:width .2s ease; }
.progress-copy { margin-top:9px; color:var(--slate-600); font-size:.88rem; }
.secure-file-row { grid-template-columns:52px minmax(0,1fr) minmax(160px,220px) auto; }
.secure-file-row select { min-width:0; }
.form-status[data-tone="error"] { color:var(--danger); }
.form-status[data-tone="success"] { color:var(--success); }

/* Private CMS */
.admin-body { min-height:100vh; background:#eef2f4; }
.admin-body h1 { font-size:clamp(2.1rem,4vw,4.2rem); }
.admin-shell { min-height:100vh; }
.admin-auth { min-height:100vh; display:grid; place-items:center; padding:32px; background:radial-gradient(circle at 80% 10%,rgba(11,122,117,.25),transparent 35%),linear-gradient(145deg,var(--navy-950),var(--navy-800)); }
.admin-auth-card { width:min(100%,480px); padding:40px; border-radius:28px; background:var(--white); box-shadow:var(--shadow-lg); }
.admin-auth-wide { width:min(100%,720px); }
.admin-logo { width:220px; margin-bottom:30px; }
.admin-auth form,.admin-form { display:grid; gap:18px; }
.admin-auth label,.admin-form label,.admin-note-form label { display:grid; gap:7px; font-weight:800; color:var(--navy-900); }
.admin-auth label span,.admin-form label span,.admin-note-form label span { font-size:.82rem; letter-spacing:.02em; }
.text-button { border:0; padding:.35rem 0; background:transparent; color:var(--teal-700); font-weight:800; text-align:left; }
.secret-box { display:grid; grid-template-columns:1fr auto; gap:10px; padding:18px; margin:22px 0; border-radius:16px; background:var(--ivory-100); }
.secret-box>span { grid-column:1/-1; color:var(--slate-600); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.secret-box code,.uri-code { overflow-wrap:anywhere; }
.admin-dashboard { min-height:100vh; display:grid; grid-template-columns:270px minmax(0,1fr); }
.admin-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:24px 18px; background:var(--navy-950); color:var(--white); overflow-y:auto; }
.admin-brand img { width:210px; filter:brightness(0) invert(1); margin:4px 8px 30px; }
.admin-sidebar nav { display:grid; gap:5px; }
.admin-sidebar nav button { width:100%; border:0; border-radius:11px; padding:.8rem .9rem; color:rgba(255,255,255,.72); background:transparent; text-align:left; font-weight:750; }
.admin-sidebar nav button:hover,.admin-sidebar nav button.active { color:var(--white); background:rgba(255,255,255,.1); }
.admin-sidebar-footer { margin-top:auto; padding:22px 8px 4px; display:grid; gap:12px; border-top:1px solid rgba(255,255,255,.12); overflow-wrap:anywhere; font-size:.83rem; }
.admin-workspace { min-width:0; }
.admin-topbar { position:sticky; z-index:20; top:0; display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:112px; padding:22px clamp(22px,4vw,56px); background:rgba(255,255,255,.94); backdrop-filter:blur(16px); border-bottom:1px solid rgba(18,48,74,.08); }
.admin-topbar h1 { margin:0; font-size:2.25rem; }
.admin-topbar .eyebrow { margin-bottom:.35rem; }
.admin-menu { display:none; width:44px; height:44px; border:1px solid rgba(18,48,74,.14); border-radius:12px; background:var(--white); }
.session-badge { display:inline-flex; align-items:center; gap:8px; padding:.55rem .8rem; border-radius:999px; color:var(--success); background:#e7f5ed; font-size:.8rem; font-weight:850; white-space:nowrap; }
.session-badge span { width:8px; height:8px; border-radius:50%; background:currentColor; box-shadow:0 0 0 5px rgba(27,116,82,.12); }
.admin-panel { display:none; padding:40px clamp(22px,4vw,56px) 70px; }
.admin-panel.active { display:block; }
.admin-panel>.panel-heading { max-width:760px; }
.admin-card { padding:28px; border-radius:22px; background:var(--white); border:1px solid rgba(18,48,74,.08); box-shadow:var(--shadow-sm); }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
.admin-stat-grid article { padding:24px; border-radius:20px; background:var(--white); box-shadow:var(--shadow-sm); }
.admin-stat-grid span,.admin-stat-grid strong { display:block; }
.admin-stat-grid span { color:var(--slate-600); font-weight:700; }
.admin-stat-grid strong { margin-top:8px; color:var(--navy-900); font-family:Georgia,serif; font-size:2.6rem; line-height:1; }
.security-check-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.security-check-grid>div { padding:18px; border-radius:15px; background:var(--ivory-100); }
.security-check-grid strong,.security-check-grid span { display:block; }
.security-check-grid span { color:var(--slate-600); font-size:.88rem; }
.admin-form h3 { margin-top:16px; padding-top:22px; border-top:1px solid rgba(18,48,74,.08); }
.admin-form h3:first-child { margin-top:0; padding-top:0; border-top:0; }
.media-upload-row,.theme-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.theme-grid { grid-template-columns:repeat(4,1fr); }
.theme-grid label { padding:12px; border:1px solid rgba(18,48,74,.1); border-radius:13px; background:var(--ivory-50); }
.theme-grid input { width:100%; min-height:46px; padding:2px; }
.upload-mini { padding:18px; border:1px dashed rgba(11,122,117,.45); border-radius:15px; background:#f5fbfa; }
.admin-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding-top:18px; }
.admin-list { display:grid; gap:12px; margin-top:18px; }
.admin-list-item { display:grid; grid-template-columns:60px minmax(0,1fr) auto; align-items:start; gap:16px; width:100%; padding:18px; border:1px solid rgba(18,48,74,.09); border-radius:17px; background:var(--white); box-shadow:var(--shadow-sm); text-align:left; }
.admin-list-button { cursor:pointer; }
.admin-list-item strong,.admin-list-item span { display:block; }
.admin-list-item>div>span { color:var(--slate-600); font-size:.85rem; }
.admin-list-item p { margin:.55rem 0 0; color:var(--slate-700); white-space:pre-wrap; overflow-wrap:anywhere; }
.admin-thumb { width:60px; height:60px; object-fit:cover; border-radius:13px; background:var(--ivory-100); }
.doc-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:14px; background:var(--navy-900); color:var(--white); font-size:.7rem; font-weight:900; }
.item-actions { display:flex; gap:8px; align-items:center; }
.item-actions button { border:0; border-radius:9px; padding:.45rem .65rem; font-weight:800; }
.item-actions button:not(.danger-button) { color:var(--teal-700); background:#eaf7f4; }
.danger-button { border:0; border-radius:10px; padding:.65rem .85rem; color:#fff; background:var(--danger); font-weight:850; }
.admin-empty { padding:30px; border-radius:18px; color:var(--slate-600); background:var(--white); text-align:center; }
.invite-result { margin-top:14px; padding:18px; border-radius:16px; background:#e8f6f2; overflow-wrap:anywhere; }
.admin-detail { padding:28px; border-radius:22px; color:var(--white); background:var(--navy-900); }
.admin-detail h2,.admin-detail h3 { color:var(--white); }
.admin-detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.admin-detail-grid article { padding:17px; border-radius:15px; background:rgba(255,255,255,.08); }
.admin-detail-grid span,.admin-detail-grid strong { display:block; }
.admin-detail-grid span { color:rgba(255,255,255,.65); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }
.admin-file-list { display:grid; gap:9px; margin:22px 0; }
.admin-file { display:grid; grid-template-columns:50px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px; border-radius:13px; background:rgba(255,255,255,.08); }
.admin-file small { display:block; color:rgba(255,255,255,.66); }
.admin-note-form { display:grid; gap:14px; padding:20px; margin-top:20px; border-radius:16px; color:var(--slate-900); background:var(--white); }
.danger-zone { margin-top:26px; padding:20px; border-radius:16px; background:rgba(169,61,61,.16); border:1px solid rgba(255,140,140,.26); }
.toast { position:fixed; z-index:3000; right:22px; bottom:22px; max-width:420px; padding:14px 18px; border-radius:13px; color:#fff; background:var(--navy-900); box-shadow:var(--shadow-lg); transform:translateY(140%); opacity:0; transition:.25s ease; }
.toast.visible { transform:none; opacity:1; }
.toast[data-tone="success"] { background:var(--success); }
.toast[data-tone="error"] { background:var(--danger); }

@media (max-width:1100px) {
  .admin-stat-grid { grid-template-columns:repeat(2,1fr); }
  .admin-detail-grid { grid-template-columns:1fr 1fr; }
  .theme-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:840px) {
  .admin-dashboard { grid-template-columns:1fr; }
  .admin-sidebar { position:fixed; z-index:100; inset:0 auto 0 0; width:285px; transform:translateX(-105%); transition:.22s ease; box-shadow:var(--shadow-lg); }
  .admin-nav-open .admin-sidebar { transform:none; }
  .admin-menu { display:grid; place-items:center; flex:0 0 auto; }
  .admin-topbar { justify-content:flex-start; }
  .session-badge { margin-left:auto; }
  .portal-layout { grid-template-columns:1fr; }
  .portal-security-card { position:static; }
}
@media (max-width:640px) {
  .admin-auth { padding:18px; }
  .admin-auth-card { padding:28px 22px; }
  .admin-topbar { padding:18px; }
  .admin-topbar h1 { font-size:1.7rem; }
  .admin-topbar .eyebrow { display:none; }
  .admin-panel { padding:26px 18px 55px; }
  .admin-card { padding:20px; }
  .admin-stat-grid,.security-check-grid,.media-upload-row,.theme-grid,.admin-detail-grid { grid-template-columns:1fr; }
  .admin-list-item,.admin-file { grid-template-columns:48px minmax(0,1fr); }
  .admin-list-item>.item-actions,.admin-file>.btn { grid-column:2; }
  .secure-file-row { grid-template-columns:48px minmax(0,1fr); }
  .secure-file-row select,.secure-file-row button { grid-column:2; }
  .portal-lock-screen { padding:32px 20px; }
  .portal-progress { grid-template-columns:1fr 1fr; }
  .portal-step:last-child { grid-column:1/-1; }
}

/* CMS-rendered public cards */
.gallery-card { position:relative; min-height:300px; overflow:hidden; border:0; border-radius:20px; padding:0; background:var(--navy-900); color:var(--white); text-align:left; box-shadow:var(--shadow-sm); }
.gallery-card img { width:100%; height:100%; min-height:300px; object-fit:cover; transition:transform .3s ease; }
.gallery-card:hover img { transform:scale(1.035); }
.gallery-card>span { position:absolute; inset:auto 0 0; padding:28px 18px 17px; background:linear-gradient(transparent,rgba(6,22,42,.94)); }
.gallery-card strong,.gallery-card small { display:block; }
.gallery-card small { color:rgba(255,255,255,.78); }
.credential-card { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:22px; border-radius:20px; background:var(--white); border:1px solid rgba(18,48,74,.09); box-shadow:var(--shadow-sm); }
.credential-card img,.credential-placeholder { width:180px; height:220px; object-fit:cover; border-radius:14px; background:var(--ivory-100); }
.credential-placeholder { display:grid; place-items:center; padding:18px; text-align:center; color:var(--teal-700); font-weight:850; }
@media (max-width:640px) { .credential-card { grid-template-columns:1fr; } .credential-card img,.credential-placeholder { width:100%; height:260px; } }

/* Student account gate */
.portal-auth-screen{padding:clamp(1.4rem,3vw,2.4rem)}
.auth-tabs{display:flex;gap:.5rem;margin:1.25rem 0;border-bottom:1px solid rgba(10,33,59,.14)}
.auth-tabs button{border:0;background:transparent;padding:.8rem 1rem;font-weight:800;color:#526176;cursor:pointer;border-bottom:3px solid transparent}
.auth-tabs button.active{color:#0a6170;border-color:#d4a63a}
.auth-provider-block{display:grid;gap:.9rem;margin:1rem 0 1.25rem}
.google-auth-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:.75rem;border:1px solid #cbd4dc;border-radius:.7rem;background:#fff;color:#172b45;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 2px 8px rgba(10,33,59,.06)}
.google-auth-button:hover{background:#f8fafb;border-color:#9eacb9}
.google-auth-button:focus-visible{outline:3px solid rgba(11,122,117,.28);outline-offset:2px}
.google-auth-button:disabled{opacity:.58;cursor:wait}
.google-auth-button svg{width:20px;height:20px;flex:0 0 20px}
.auth-divider{display:flex;align-items:center;gap:.85rem;color:#6b7788;font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}
.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:rgba(10,33,59,.14)}
.admin-auth-mode{overflow:auto}
.auth-form{display:grid;gap:1rem;max-width:620px}
.auth-form label:not(.consent-check){display:grid;gap:.42rem;font-weight:700;color:#0a213b}
.auth-form input{width:100%;padding:.85rem 1rem;border:1px solid #cbd4dc;border-radius:.65rem;font:inherit;background:#fff}
.password-help{margin:-.45rem 0 .2rem;color:#64748b;font-size:.88rem}
.verification-panel{padding:1.1rem;border-radius:.8rem;background:#f6f1e6;border:1px solid #dfcfaa;margin-top:1rem}
.signed-in-panel{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;background:#edf7f7;border-radius:.7rem;margin-bottom:1rem}
.portal-lock-screen[hidden],.portal-auth-screen[hidden],.verification-panel[hidden],.signed-in-panel[hidden],.auth-form[hidden]{display:none!important}

/* v4.1 CMS media, private downloads, and responsive editor polish */
.admin-helper { margin:-4px 0 16px; color:var(--slate-600); font-size:.9rem; }
.media-url-grid input { overflow:hidden; text-overflow:ellipsis; }
.media-upload-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.theme-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.admin-section-title { margin:28px 0 12px; }
.admin-file-meta { min-width:0; overflow-wrap:anywhere; }
.admin-file-meta strong { display:block; color:var(--white); overflow-wrap:anywhere; }
.admin-file em { color:rgba(255,255,255,.66); font-size:.85rem; }
.btn-download {
  min-width:112px;
  color:var(--white);
  border-color:rgba(255,255,255,.28);
  background:linear-gradient(135deg,var(--teal-600),var(--teal-700));
  box-shadow:0 8px 20px rgba(0,0,0,.16);
}
.btn-download:hover { border-color:rgba(255,255,255,.5); box-shadow:0 12px 25px rgba(0,0,0,.22); }
.btn-download:disabled { opacity:.72; cursor:wait; transform:none; }

@media (max-width:1100px) {
  .media-upload-grid,.theme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .media-upload-grid,.theme-grid { grid-template-columns:1fr; }
  .admin-file>.btn-download { grid-column:2; width:100%; }
}
