:root {
  --gulf-green: #0b5d3b;
  --deep-green: #073f2a;
  --teal: #0fa88e;
  --gold: #d4af37;
  --sand: #f5e7c4;
  --ivory: #fafaf6;
  --charcoal: #1e293b;
  --muted: #68776f;
  --line: #dce3dd;
}

html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { margin: 0; color: var(--charcoal); background: var(--ivory); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
.container-wide { max-width: 1500px; padding-left: clamp(20px, 5vw, 78px); padding-right: clamp(20px, 5vw, 78px); }
.skip-link { position: fixed; top: -60px; left: 15px; z-index: 2000; padding: 12px 18px; background: #fff; color: var(--gulf-green); }
.skip-link:focus { top: 15px; }

.announcement-bar { color: #17362c; background: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.announcement-bar a { border-bottom: 1px solid rgba(23, 54, 44, .45); }
.site-header { background: rgba(250, 250, 246, .96); border-bottom: 1px solid rgba(11, 93, 59, .12); backdrop-filter: blur(16px); }
.brand { color: var(--gulf-green); line-height: .9; }
.brand:hover { color: var(--gulf-green); }
.brand-mark { display: grid; width: 42px; height: 42px; place-items: center; color: var(--ivory); background: var(--gulf-green); border-radius: 50% 50% 50% 12px; font: 800 25px Georgia, serif; transform: rotate(-8deg); }
.brand-name { font-size: 17px; font-weight: 900; white-space: nowrap; }
.brand-name > span { color: var(--teal); }
.brand-name b { display: block; margin-top: 5px; color: var(--gold); font-size: 8px; letter-spacing: .3em; }
.navbar .nav-link { color: var(--charcoal); font-size: 13px; font-weight: 700; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--teal); }
.btn-outline-gulf { color: var(--gulf-green); border: 1px solid var(--gulf-green); font-size: 12px; font-weight: 800; }
.btn-outline-gulf:hover { color: #fff; background: var(--gulf-green); border-color: var(--gulf-green); }
.btn-gulf { color: #fff; background: var(--gulf-green); border-color: var(--gulf-green); font-weight: 800; }
.btn-gulf:hover { color: #fff; background: var(--deep-green); border-color: var(--deep-green); }
.btn-gold { color: #17362c; background: var(--gold); border-color: var(--gold); font-weight: 800; }
.btn-gold:hover { color: #17362c; background: #e0bf4d; border-color: #e0bf4d; transform: translateY(-2px); }

.hero { min-height: calc(100vh - 116px); padding: clamp(75px, 9vw, 130px) 0; color: #fff; background: linear-gradient(rgba(11, 93, 59, .90), rgba(8, 79, 49, .94)), url("../img/hero-campus-bg.png") center / cover no-repeat; isolation: isolate; }
.hero-grid { position: absolute; inset: 0; z-index: -3; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px); background-size: 70px 70px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.hero-ring { position: absolute; z-index: -2; border: 1px solid rgba(212, 175, 55, .25); border-radius: 50%; }
.ring-one { width: 400px; height: 400px; top: -170px; right: -150px; }
.ring-two { width: 580px; height: 580px; top: -260px; right: -260px; }
.eyebrow { color: var(--sand); font-size: 11px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.display-title { margin: 0; font: 500 clamp(58px, 6.4vw, 100px)/.92 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.hero-line { display: block; padding-bottom: .14em; margin-bottom: -.14em; overflow: hidden; }
.hero-gold { color: var(--gold); font-style: italic; }
.hero-lede { max-width: 610px; color: rgba(255,255,255,.76); font-size: clamp(17px, 1.5vw, 21px); line-height: 1.65; }
.text-link { padding-bottom: 8px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.3); font-weight: 700; }
.trust-row { color: rgba(255,255,255,.62); font-size: 11px; }
.trust-row strong { color: #fff; font: 600 25px Georgia, serif; }
.trust-row i { width: 1px; height: 28px; margin: 0 7px; background: rgba(255,255,255,.25); }
.consultation-card { min-height: 570px; padding: clamp(25px, 3vw, 42px); color: var(--charcoal); background: var(--ivory); border-top: 5px solid var(--gold); box-shadow: 0 30px 90px rgba(0,0,0,.22); }
.form-heading { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.step-number { display: grid; min-width: 34px; height: 34px; place-items: center; color: var(--gulf-green); background: var(--sand); border-radius: 50%; font-size: 10px; font-weight: 900; }
.form-kicker, .mini-kicker { color: var(--teal); font-size: 10px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.form-heading h2, .form-success h2 { color: var(--gulf-green); font-family: Georgia, serif; }
.form-label { margin-bottom: 6px; color: #4c5a53; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.form-control, .form-select { min-height: 48px; border-color: #d5ddd6; border-radius: 3px; font-size: 14px; }
.form-control:focus, .form-select:focus { border-color: var(--teal); box-shadow: 0 0 0 .2rem rgba(15,168,142,.13); }
.iti { display: block; width: 100%; }
.iti .form-control { width: 100%; }
.iti__dropdown-content { z-index: 1100; color: var(--charcoal); font-size: 14px; }
.iti__search-input { min-height: 44px; border-color: #d5ddd9; }
.consultation-card small { color: #7b857f; font-size: 10px; }
.form-success { min-height: 480px; padding-top: 80px; }
.success-icon { display: grid; width: 56px; height: 56px; margin: 0 auto; place-items: center; color: #fff; background: var(--teal); border-radius: 50%; font-size: 27px; }
.form-success > p:last-of-type { max-width: 370px; margin: 18px auto 25px; color: var(--muted); line-height: 1.7; }

.section-space { padding: clamp(85px, 10vw, 150px) 0; }
.section-kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 42px; color: var(--gulf-green); font-size: 10px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
.section-kicker span { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(11,93,59,.25); border-radius: 50%; font-size: 9px; }
.section-kicker.light { color: var(--sand); }
.section-kicker.light span { border-color: rgba(245,231,196,.3); }
.section-title { margin: 0; color: var(--gulf-green); font: 500 clamp(48px, 5.5vw, 82px)/1 Georgia, serif; letter-spacing: -.035em; }
.section-title em { color: var(--teal); font-weight: 400; }
.body-copy { color: var(--muted); font-size: 16px; line-height: 1.75; }
.body-copy.light { color: rgba(255,255,255,.64); }
.arrow-link { display: inline-flex; align-items: center; gap: 28px; padding-bottom: 8px; color: var(--gulf-green); border-bottom: 1px solid rgba(11,93,59,.25); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.about-panel { padding: clamp(35px, 6vw, 78px); background: var(--sand); }
.compass { display: grid; width: min(230px, 65vw); aspect-ratio: 1; place-items: center; color: var(--gold); background: var(--gulf-green); border: 1px dashed var(--gold); border-radius: 50%; box-shadow: inset 0 0 0 25px var(--gulf-green), inset 0 0 0 26px rgba(212,175,55,.4); }
.compass span { font: 400 76px Georgia, serif; }
.about-panel h3 { margin: 10px 0 18px; color: var(--gulf-green); font: 500 clamp(36px, 3.5vw, 54px)/1.05 Georgia, serif; }
.about-panel h3 em { color: var(--teal); }
.feature-list > div { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 18px 0; color: #53645b; border-bottom: 1px solid rgba(11,93,59,.18); font-size: 13px; }
.feature-list b { color: var(--gold); font-size: 10px; }
.feature-list strong { display: block; margin-bottom: 4px; color: var(--gulf-green); }

.services { color: #fff; background: var(--gulf-green); }
.services .section-title em, .events .section-title em { color: var(--gold); }
.service-grid { border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.service-card { min-height: 390px; padding: 35px 28px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); transition: background .3s, transform .3s; }
.service-card:hover { background: rgba(255,255,255,.06); transform: translateY(-5px); }
.service-card > div { color: rgba(255,255,255,.45); font-size: 10px; }
.service-card > div b { color: var(--gold); font: 400 34px Georgia, serif; }
.service-card h3 { margin: 75px 0 15px; font: 500 29px Georgia, serif; }
.service-card p { color: rgba(255,255,255,.6); font-size: 14px; line-height: 1.7; }
.service-card > a { margin-top: auto; color: var(--sand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.service-card > a span { float: right; }

.stats { color: #17362c; background: var(--gold); }
.stat { padding: 20px clamp(12px, 3vw, 50px); border-right: 1px solid rgba(23,54,44,.25); }
.stat:last-child { border-right: 0; }
.stat strong { display: block; font: 500 clamp(43px, 4.5vw, 72px) Georgia, serif; letter-spacing: -.04em; }
.stat sup { font-size: .4em; }
.stat span { display: block; max-width: 170px; font-size: 10px; font-weight: 900; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }

.field-list { border-top: 1px solid var(--line); }
.field-row { min-height: 108px; display: grid; grid-template-columns: 60px 1.1fr 1fr 34px; align-items: center; gap: 25px; border-bottom: 1px solid var(--line); transition: padding .3s, background .3s; }
.field-row:hover { padding: 0 18px; background: #fff; }
.field-row > span { color: var(--gold); font-size: 10px; font-weight: 900; }
.field-row h3 { margin: 0; color: var(--gulf-green); font: 500 clamp(22px,2vw,31px) Georgia, serif; }
.field-row p { margin: 0; color: var(--muted); font-size: 13px; }
.field-row b { display: grid; width: 34px; height: 34px; place-items: center; color: var(--gulf-green); border: 1px solid var(--line); border-radius: 50%; }

.events { color: #fff; background: var(--charcoal); }
.featured-event { min-height: 460px; padding: clamp(35px,5vw,65px); display: grid; grid-template-columns: 95px 1fr; gap: clamp(30px,4vw,60px); background: var(--gulf-green); }
.event-date { align-self: start; padding-right: 25px; border-right: 1px solid rgba(255,255,255,.2); }
.event-date strong { display: block; color: var(--gold); font: 500 64px Georgia, serif; }
.event-date span { color: var(--sand); font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.event-type, .guidance-list article > span { display: inline-block; margin-bottom: 18px; color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.featured-event h3 { margin: 0 0 20px; font: 500 clamp(32px,3vw,50px)/1.08 Georgia, serif; }
.featured-event p { color: rgba(255,255,255,.65); line-height: 1.7; }
.event-meta { display: flex; gap: 30px; margin: 25px 0; color: var(--sand); font-size: 10px; font-weight: 800; }
.featured-event a { display: inline-flex; gap: 30px; padding-bottom: 8px; color: var(--gold); border-bottom: 1px solid rgba(255,255,255,.3); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.guidance-list { display: grid; gap: 1px; }
.guidance-list article { position: relative; padding: 27px; background: #263447; }
.guidance-list h3 { max-width: 360px; margin: 0 0 13px; font: 500 22px Georgia, serif; }
.guidance-list p { margin: 0; color: rgba(255,255,255,.4); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.guidance-list a { position: absolute; top: 27px; right: 27px; color: var(--gold); font-size: 20px; }

.testimonials { background: #f2f4ef; }
.story-card { min-height: 390px; padding: 36px; display: flex; flex-direction: column; background: #fff; border-top: 3px solid transparent; transition: transform .3s, border-color .3s, box-shadow .3s; }
.story-card:hover { transform: translateY(-5px); border-color: var(--gold); box-shadow: 0 20px 50px rgba(11,93,59,.08); }
.quote { height: 58px; color: var(--gold); font: 500 78px/.8 Georgia, serif; }
.story-card blockquote { margin: 20px 0; color: #405047; font: 500 clamp(19px,1.65vw,25px)/1.5 Georgia, serif; }
.story-card figcaption { display: flex; align-items: center; gap: 13px; margin-top: auto; padding-top: 24px; border-top: 1px solid var(--line); }
.avatar { display: grid; min-width: 44px; height: 44px; place-items: center; color: var(--gulf-green); background: var(--sand); border-radius: 50%; font-size: 11px; font-weight: 900; }
.story-card figcaption strong, .story-card figcaption small { display: block; }
.story-card figcaption strong { color: var(--gulf-green); font-size: 13px; }
.story-card figcaption small { margin-top: 5px; color: var(--muted); font-size: 10px; }

.final-cta { min-height: 640px; padding: 100px 20px; display: grid; place-items: center; color: #fff; background: linear-gradient(rgba(11, 93, 59, .78), rgba(6, 67, 41, .90)), url("../img/cta-campus-bg.png") center 62% / cover no-repeat; isolation: isolate; }
.final-cta h2 { color: #fff; font: 500 clamp(56px,7vw,106px)/1 Georgia, serif; letter-spacing: -.035em; }
.final-cta h2 em { color: var(--gold); }
.final-cta > .container > p:nth-of-type(2) { margin: 25px 0 35px; color: rgba(255,255,255,.65); font-size: 17px; }
.cta-ring { position: absolute; right: -180px; bottom: -230px; z-index: -1; width: 560px; height: 560px; border: 1px solid rgba(212,175,55,.25); border-radius: 50%; }

footer { color: #fff; background: #101d28; }
.footer-brand { color: #fff; }
.footer-logo { width: min(390px, 100%); }
.footer-logo img { display: block; width: 100%; height: auto; mix-blend-mode: screen; }
.footer-copy { max-width: 390px; color: rgba(255,255,255,.48); font-size: 14px; line-height: 1.7; }
.footer-links, .footer-contact { display: flex; flex-direction: column; gap: 14px; }
.footer-links p, .footer-contact > p { margin: 0 0 10px; color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
.footer-links a, .footer-contact > span { color: rgba(255,255,255,.58); font-size: 13px; }
.footer-contact > a:first-of-type { font: 500 19px Georgia, serif; }
.footer-contact .arrow-link { align-self: flex-start; margin-top: 12px; color: var(--sand); border-color: rgba(255,255,255,.2); }
.footer-bottom { padding: 22px 0; color: rgba(255,255,255,.35); border-top: 1px solid rgba(255,255,255,.1); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.footer-bottom a:hover { color: #fff; }

@media (max-width: 991.98px) {
  .navbar-collapse { padding: 25px 0 10px; }
  .navbar-nav { margin-bottom: 20px; }
  .hero { min-height: auto; }
  .service-card { min-height: 320px; }
  .service-card h3 { margin-top: 50px; }
  .stat:nth-child(2) { border-right: 0; }
  .stat { border-bottom: 1px solid rgba(23,54,44,.2); }
}

@media (max-width: 767.98px) {
  html { scroll-padding-top: 68px; }
  .announcement-bar { font-size: 8px; }
  .brand-mark { width: 37px; height: 37px; font-size: 21px; }
  .brand-name { font-size: 15px; }
  .display-title { font-size: clamp(50px, 14vw, 70px); }
  .consultation-card { min-height: 0; padding: 26px 20px; }
  .section-space { padding: 78px 0; }
  .section-title { font-size: 49px; }
  .about-panel { padding: 34px 24px; }
  .stat { padding: 25px 10px; }
  .stat span { margin: 0 auto; }
  .field-row { min-height: 0; padding: 24px 0; grid-template-columns: 36px 1fr 30px; gap: 12px; }
  .field-row p { grid-column: 2 / -1; }
  .featured-event { grid-template-columns: 1fr; padding: 32px 24px; }
  .event-date { display: flex; align-items: center; gap: 15px; padding: 0; border: 0; }
  .event-date strong { font-size: 48px; }
  .final-cta { min-height: 580px; }
  .final-cta h2 { font-size: 52px; }
}

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