:root {
  --sg-navy: #102b3a;
  --sg-navy-deep: #0b202c;
  --sg-gold: #c79b5e;
  --sg-gold-light: #e9d2a8;
  --sg-ink: #1c2c35;
  --sg-muted: #66757d;
  --sg-paper: #fbfaf7;
  --sg-soft: #f0eee8;
  --sg-line: #d9d6ce;
}

html { scroll-behavior: smooth; }
body.sg-site,
body {
  background: var(--sg-paper);
  color: var(--sg-ink);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

body { overflow-x: hidden; }
a { color: inherit; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
a:hover, a:focus { color: var(--sg-gold); text-decoration: none; }
h1, h2, h3, h4 { color: var(--sg-ink); font-family: "Playfair Display", Georgia, serif; font-weight: 700; line-height: 1.15; }
p { color: var(--sg-muted); }

.sg-skip-link { position: absolute; left: -9999px; top: 10px; z-index: 1000; padding: 8px 14px; background: #fff; color: var(--sg-navy); }
.sg-skip-link:focus { left: 10px; }

.sg-navbar { position: absolute; top: 0; left: 0; right: 0; z-index: 50; padding: 22px 0; background: transparent; }
.sg-navbar .navbar-brand { padding: 0; }
.sg-brand { color: #fff !important; font-family: "Playfair Display", Georgia, serif; font-size: 29px; letter-spacing: -.5px; }
.sg-brand span { color: var(--sg-gold-light); }
.sg-navbar .nav-link { color: rgba(255,255,255,.82); font-size: 13px; font-weight: 600; letter-spacing: .08em; margin-left: 25px; padding: 8px 0 !important; text-transform: uppercase; }
.sg-navbar .nav-link:hover, .sg-navbar .nav-link:focus, .sg-navbar .nav-link.active { color: var(--sg-gold-light); }
.sg-navbar .navbar-toggler { border: 1px solid rgba(255,255,255,.45); color: #fff; padding: 8px 11px; }

.sg-hero { position: relative; overflow: hidden; min-height: 720px; padding: 180px 0 90px; background: var(--sg-navy); }
.sg-hero:after { position: absolute; right: -150px; top: -240px; width: 620px; height: 620px; border: 1px solid rgba(233,210,168,.18); border-radius: 50%; content: ""; }
.sg-hero-copy, .sg-hero-visual { position: relative; z-index: 2; }
.sg-kicker, .sg-section-label { color: var(--sg-gold-light); font-size: 11px; font-weight: 700; letter-spacing: .2em; margin-bottom: 20px; text-transform: uppercase; }
.sg-kicker span { color: rgba(255,255,255,.4); padding: 0 9px; }
.sg-hero h1 { color: #fff; font-size: clamp(48px, 7vw, 82px); letter-spacing: -2px; margin: 0 0 16px; }
.sg-hero h1 em { color: var(--sg-gold-light); font-style: normal; }
.sg-hero-title { color: #fff; font-size: 19px; font-weight: 600; margin-bottom: 12px; }
.sg-hero-text { color: rgba(255,255,255,.7); font-size: 17px; max-width: 600px; }
.sg-hero-actions { margin: 32px 0 30px; }
.sg-btn { border-radius: 0; font-size: 12px; font-weight: 700; letter-spacing: .09em; padding: 13px 21px; text-transform: uppercase; }
.sg-btn + .sg-btn { margin-left: 10px; }
.sg-btn-gold { background: var(--sg-gold); border: 1px solid var(--sg-gold); color: #fff; }
.sg-btn-gold:hover, .sg-btn-gold:focus { background: #b5864a; border-color: #b5864a; color: #fff; }
.sg-btn-outline { background: transparent; border: 1px solid rgba(255,255,255,.45); color: #fff; }
.sg-btn-outline:hover, .sg-btn-outline:focus { background: #fff; border-color: #fff; color: var(--sg-navy); }
.sg-btn-dark { background: var(--sg-navy); border: 1px solid var(--sg-navy); color: #fff; }
.sg-btn-dark:hover, .sg-btn-dark:focus { background: var(--sg-gold); border-color: var(--sg-gold); color: #fff; }
.sg-hero-meta { display: flex; flex-wrap: wrap; gap: 22px; color: rgba(255,255,255,.58); font-size: 13px; }
.sg-hero-meta i { color: var(--sg-gold-light); margin-right: 7px; }
.sg-portrait-frame { position: relative; width: min(100%, 380px); margin: 15px auto 0; padding: 18px; border: 1px solid rgba(233,210,168,.5); }
.sg-portrait-frame img { display: block; position: relative; z-index: 2; width: 100%; height: auto; background: #e9e9e5; filter: saturate(.9); }
.sg-portrait-accent { position: absolute; top: -13px; right: -13px; width: 88%; height: 88%; border: 1px solid var(--sg-gold); }
.sg-portrait-caption { position: relative; z-index: 3; margin: -44px 16px 0; padding: 17px 18px; background: rgba(16,43,58,.94); }
.sg-portrait-caption strong, .sg-portrait-caption span { display: block; }
.sg-portrait-caption strong { color: #fff; font-size: 13px; }
.sg-portrait-caption span { color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.5; margin-top: 4px; }

.sg-stat-strip { background: var(--sg-gold); }
.sg-stat { min-height: 130px; padding: 28px 25px; border-right: 1px solid rgba(16,43,58,.18); }
.sg-stat:last-child { border-right: 0; }
.sg-stat strong, .sg-stat span { display: block; }
.sg-stat strong { color: var(--sg-navy); font-family: "Playfair Display", Georgia, serif; font-size: 28px; }
.sg-stat span { color: rgba(16,43,58,.75); font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }

.sg-upcoming-banner { background: var(--sg-gold); }
.sg-upcoming-link { display: flex; align-items: center; gap: 20px; padding: 23px 0; color: var(--sg-navy); }
.sg-upcoming-link:hover, .sg-upcoming-link:focus { color: var(--sg-navy); }
.sg-upcoming-icon { display: inline-flex; flex: 0 0 52px; align-items: center; justify-content: center; width: 52px; height: 52px; background: var(--sg-navy); color: var(--sg-gold-light); font-size: 22px; }
.sg-upcoming-copy { display: block; flex: 1 1 auto; }
.sg-upcoming-copy > span { display: block; }
.sg-upcoming-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: .16em; margin-bottom: 3px; text-transform: uppercase; }
.sg-upcoming-copy strong { display: block; font-family: "Playfair Display", Georgia, serif; font-size: 24px; line-height: 1.2; }
.sg-upcoming-copy > span:last-child { font-size: 13px; margin-top: 3px; }
.sg-upcoming-cta { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sg-upcoming-cta i { margin-left: 7px; }

.sg-event-ticker { overflow: hidden; background: var(--sg-navy-deep); border-top: 1px solid rgba(233,210,168,.22); border-bottom: 1px solid rgba(233,210,168,.22); }
.sg-event-ticker-viewport { overflow: hidden; width: 100%; }
.sg-event-ticker-track { display: flex; width: max-content; animation: sg-ticker-scroll 38s linear infinite; }
.sg-event-ticker-group { display: flex; flex: 0 0 auto; align-items: center; }
.sg-event-ticker-item { display: inline-flex; align-items: center; gap: 14px; min-height: 54px; padding: 0 28px; color: rgba(255,255,255,.78); font-size: 12px; white-space: nowrap; }
.sg-event-ticker-item:hover, .sg-event-ticker-item:focus { color: #fff; }
.sg-event-ticker-item strong { color: var(--sg-gold-light); font-size: 13px; font-weight: 700; }
.sg-event-ticker-item > span:not(.sg-ticker-label) { color: rgba(255,255,255,.68); }
.sg-event-ticker-item > i { color: var(--sg-gold-light); font-size: 14px; }
.sg-ticker-label { padding: 5px 8px; background: var(--sg-gold); color: var(--sg-navy); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
@keyframes sg-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .sg-event-ticker-track { animation: none; transform: translateX(0); } }

.sg-section { padding: 110px 0; }
.sg-section h2 { font-size: clamp(34px, 4vw, 52px); letter-spacing: -.8px; margin-bottom: 24px; }
.sg-lead-copy { font-size: 17px; line-height: 1.8; }
.sg-section-label { color: var(--sg-gold); }
.sg-label-light { color: var(--sg-gold-light); }
.sg-about { background: var(--sg-paper); }
.sg-about-card { position: relative; padding: 38px 42px; background: #fff; border-left: 4px solid var(--sg-gold); box-shadow: 0 18px 50px rgba(16,43,58,.07); }
.sg-about-card p { font-size: 17px; line-height: 1.85; }
.sg-signature { margin-top: 25px; color: var(--sg-navy); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sg-role-list { border-top: 1px solid var(--sg-line); color: var(--sg-navy); font-size: 13px; line-height: 1.9; margin: 23px 0 0; padding-top: 18px; }
.sg-role-list strong { color: var(--sg-gold); }
.sg-link-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 27px; }
.sg-link-row a { display: inline-flex; align-items: center; gap: 8px; color: var(--sg-navy); font-size: 13px; font-weight: 700; }
.sg-link-row i { color: var(--sg-gold); margin-right: 5px; }
.sg-contact-social-logo { display: block; width: 27px; height: 27px; padding: 2px; background: #fff; border: 1px solid var(--sg-line); border-radius: 50%; object-fit: contain; }

.sg-section-dark { background: var(--sg-navy); }
.sg-section-dark h2, .sg-section-dark .sg-section-intro { color: #fff; }
.sg-section-intro { color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.7; }
.sg-focus-card { height: 100%; min-height: 280px; padding: 27px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.sg-focus-card:hover { background: rgba(255,255,255,.1); border-color: rgba(233,210,168,.55); }
.sg-focus-card i { display: block; color: var(--sg-gold-light); font-size: 26px; margin: 35px 0 20px; }
.sg-focus-card h3 { color: #fff; font-size: 23px; margin-bottom: 12px; }
.sg-focus-card p { color: rgba(255,255,255,.62); font-size: 14px; line-height: 1.7; }
.sg-card-number { color: var(--sg-gold); font-size: 11px; font-weight: 700; letter-spacing: .15em; }

.sg-experience { background: #fff; }
.sg-timeline { border-left: 1px solid var(--sg-line); padding-left: 28px; }
.sg-timeline-item { position: relative; padding-bottom: 35px; }
.sg-timeline-item:last-child { padding-bottom: 0; }
.sg-timeline-item:before { position: absolute; left: -34px; top: 6px; width: 10px; height: 10px; border: 2px solid var(--sg-gold); border-radius: 50%; background: #fff; content: ""; }
.sg-timeline-item > span { color: var(--sg-gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.sg-timeline-item h3 { font-size: 24px; margin: 8px 0 7px; }
.sg-timeline-item p { margin-bottom: 0; }

.sg-section-soft { background: var(--sg-soft); }
.sg-intro-dark { color: var(--sg-muted); }
.sg-impact-card { display: flex; height: 100%; padding: 30px; background: #fff; border: 1px solid transparent; }
.sg-impact-card:hover { border-color: var(--sg-gold); }
.sg-impact-icon { flex: 0 0 55px; color: var(--sg-gold); font-size: 27px; }
.sg-impact-card h3 { font-size: 24px; margin-bottom: 9px; }
.sg-impact-card p { margin-bottom: 15px; }
.sg-impact-card a { color: var(--sg-navy); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sg-impact-card a i { color: var(--sg-gold); margin-left: 5px; }

.sg-education { background: #fff; }
.sg-degree-row { margin-left: -8px; margin-right: -8px; }
.sg-degree-card { height: 100%; min-height: 245px; padding: 27px; background: var(--sg-soft); border-top: 3px solid var(--sg-gold); }
.sg-degree-card > span { color: var(--sg-gold); display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sg-degree-card i { color: var(--sg-navy); display: block; font-size: 24px; margin: 25px 0 16px; }
.sg-degree-card h3 { font-size: 24px; margin-bottom: 7px; }
.sg-degree-card p { color: var(--sg-navy); font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.sg-degree-card small { color: var(--sg-muted); display: block; font-size: 13px; line-height: 1.5; }
.sg-qualification-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 27px; }
.sg-qualification-row span { padding: 10px 14px; background: var(--sg-paper); border: 1px solid var(--sg-line); color: var(--sg-navy); font-size: 11px; font-weight: 700; }
.sg-qualification-row i { color: var(--sg-gold); margin-right: 5px; }

.sg-project-award { position: relative; overflow: hidden; background: var(--sg-navy-deep); }
.sg-project-award:after { position: absolute; right: -150px; bottom: -190px; width: 520px; height: 520px; border: 1px solid rgba(199,155,94,.2); border-radius: 50%; content: ""; }
.sg-project-award .container { position: relative; z-index: 2; }
.sg-project-award h2, .sg-award-lead { color: #fff; }
.sg-project-award h2 { font-size: clamp(30px, 4vw, 49px); }
.sg-award-lead { font-size: 18px; line-height: 1.7; }
.sg-award-copy { color: rgba(255,255,255,.65); }
.sg-award-badge { display: inline-block; margin-bottom: 18px; padding: 8px 13px; background: var(--sg-gold); color: var(--sg-navy); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.sg-award-points { display: flex; flex-wrap: wrap; gap: 12px; margin: 25px 0 30px; }
.sg-award-points span { color: rgba(255,255,255,.82); font-size: 12px; }
.sg-award-points i { color: var(--sg-gold-light); margin-right: 5px; }
.sg-award-poster { position: relative; display: block; max-width: 440px; margin: 0 auto; padding: 13px; background: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.3); }
.sg-award-poster img { display: block; width: 100%; height: auto; }
.sg-award-poster > span { position: absolute; right: 25px; bottom: 25px; padding: 9px 12px; background: var(--sg-navy); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sg-award-poster > span i { color: var(--sg-gold-light); margin-right: 5px; }

.sg-training { background: var(--sg-paper); }
.sg-training-card { height: 100%; min-height: 265px; padding: 27px; background: #fff; border: 1px solid var(--sg-line); }
.sg-training-card:hover { border-color: var(--sg-gold); box-shadow: 0 15px 35px rgba(16,43,58,.06); }
.sg-training-date { color: var(--sg-gold); display: block; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sg-training-card > i { color: var(--sg-navy); display: block; font-size: 24px; margin: 25px 0 14px; }
.sg-training-card h3 { font-size: 24px; margin-bottom: 8px; }
.sg-training-card p { font-size: 14px; line-height: 1.65; margin-bottom: 13px; }
.sg-training-card strong { color: var(--sg-navy); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.sg-poster-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin: 72px 0 27px; padding-bottom: 19px; border-bottom: 1px solid var(--sg-line); }
.sg-poster-heading .sg-section-label { margin-bottom: 8px; }
.sg-poster-heading h3 { font-size: 31px; margin: 0; }
.sg-poster-heading p { margin: 0 0 4px; font-size: 13px; }
.sg-poster-card { position: relative; display: block; overflow: hidden; height: 100%; background: var(--sg-navy); }
.sg-poster-card img { display: block; width: 100%; height: 320px; object-fit: cover; object-position: top center; transition: transform .35s ease; }
.sg-poster-card:after { position: absolute; inset: 0; background: linear-gradient(transparent 55%, rgba(11,32,44,.93)); content: ""; pointer-events: none; }
.sg-poster-card:hover img, .sg-poster-card:focus img { transform: scale(1.04); }
.sg-poster-card span { position: absolute; right: 16px; bottom: 14px; left: 16px; z-index: 2; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sg-poster-card span i { float: right; color: var(--sg-gold-light); font-size: 15px; }
.sg-poster-modal .modal-content { background: var(--sg-navy-deep); border: 0; border-radius: 0; }
.sg-poster-modal .modal-header { border-bottom: 1px solid rgba(255,255,255,.15); }
.sg-poster-modal .modal-title { color: #fff; font-family: "DM Sans", Arial, sans-serif; font-size: 16px; }
.sg-poster-modal .close { color: #fff; opacity: .8; text-shadow: none; }
.sg-poster-modal .modal-body { padding: 18px; text-align: center; }
.sg-poster-modal .modal-body img { max-height: 78vh; max-width: 100%; width: auto; }

.sg-scholarship { background: var(--sg-paper); }
.sg-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.sg-service-grid > div { padding: 22px 0; border-top: 1px solid var(--sg-line); }
.sg-service-grid i { color: var(--sg-gold); font-size: 22px; }
.sg-service-grid h3 { font-size: 22px; margin: 12px 0 4px; }
.sg-service-grid p { font-size: 13px; line-height: 1.6; margin-bottom: 0; }
.sg-profile-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 75px; border-top: 1px solid var(--sg-line); border-bottom: 1px solid var(--sg-line); }
.sg-profile-links a { display: flex; justify-content: space-between; gap: 12px; padding: 16px 14px; color: var(--sg-navy); font-size: 12px; font-weight: 700; }
.sg-profile-links a + a { border-left: 1px solid var(--sg-line); }
.sg-profile-links i { color: var(--sg-gold); }

.sg-contact { background: var(--sg-navy); }
.sg-contact h2, .sg-contact-copy { color: #fff; }
.sg-contact-copy { color: rgba(255,255,255,.67); font-size: 17px; }
.sg-contact-details { margin-top: 30px; }
.sg-contact-details a, .sg-contact-details div { display: flex; align-items: flex-start; color: rgba(255,255,255,.78); font-size: 14px; margin: 16px 0; }
.sg-contact-details i { flex: 0 0 28px; color: var(--sg-gold-light); margin-top: 5px; }
.sg-contact-form { padding: 34px; background: #fff; }
.sg-contact-form label { color: var(--sg-navy); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sg-contact-form .form-control { height: 48px; border: 1px solid var(--sg-line); border-radius: 0; color: var(--sg-ink); font-size: 14px; }
.sg-contact-form textarea.form-control { height: auto; }
.sg-contact-form .form-control:focus { border-color: var(--sg-gold); box-shadow: 0 0 0 .1rem rgba(199,155,94,.2); }
.sg-honeypot { position: absolute; left: -9999px; opacity: 0; }

.sg-footer { padding: 28px 0 22px; background: var(--sg-navy-deep); }
.sg-footer p { color: rgba(255,255,255,.55); font-size: 12px; margin: 0; }
.sg-footer a { display: inline-block; width: 30px; color: rgba(255,255,255,.65); font-size: 15px; margin-left: 15px; }
.sg-footer a:hover { color: var(--sg-gold-light); }
.sg-attribution { border-top: 1px solid rgba(255,255,255,.1); margin-top: 20px !important; padding-top: 16px; }

@media (max-width: 991px) {
  .sg-navbar { background: rgba(16,43,58,.97); padding: 15px 0; }
  .sg-navbar .navbar-nav { padding: 15px 0 5px; }
  .sg-navbar .nav-link { margin-left: 0; padding: 8px 0 !important; }
  .sg-hero { min-height: auto; padding-top: 150px; }
  .sg-hero-visual { margin-top: 60px; }
  .sg-section { padding: 80px 0; }
  .sg-profile-links { grid-template-columns: 1fr 1fr; }
  .sg-profile-links a:nth-child(3) { border-left: 0; border-top: 1px solid var(--sg-line); }
  .sg-profile-links a:nth-child(4) { border-top: 1px solid var(--sg-line); }
  .sg-poster-card img { height: 300px; }
}

@media (max-width: 575px) {
  .sg-hero h1 { font-size: 48px; }
  .sg-hero-title { font-size: 17px; }
  .sg-hero-actions .sg-btn { display: block; width: 100%; }
  .sg-hero-actions .sg-btn + .sg-btn { margin: 12px 0 0; }
  .sg-stat { min-height: 110px; padding: 22px 14px; }
  .sg-stat strong { font-size: 23px; }
  .sg-stat span { font-size: 10px; }
  .sg-about-card, .sg-contact-form { padding: 26px 22px; }
  .sg-service-grid { grid-template-columns: 1fr; gap: 0; }
  .sg-profile-links { grid-template-columns: 1fr; }
  .sg-profile-links a + a { border-left: 0; border-top: 1px solid var(--sg-line); }
  .sg-poster-heading { display: block; }
  .sg-poster-heading p { margin-top: 12px; }
  .sg-poster-card img { height: 250px; }
  .sg-footer .text-md-right { margin-top: 15px; text-align: left !important; }
  .sg-footer a { margin: 0 15px 0 0; }
}

/* Professor-style multi-page extension */
.sg-navbar .nav-link { margin-left: 14px; font-size: 11px; letter-spacing: .06em; }
.sg-navbar .dropdown-menu { min-width: 220px; padding: 9px 0; background: #fff; border: 1px solid var(--sg-line); border-radius: 0; box-shadow: 0 16px 35px rgba(16,43,58,.14); }
.sg-navbar .dropdown-item { padding: 9px 17px; color: var(--sg-navy); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.sg-navbar .dropdown-item:hover, .sg-navbar .dropdown-item:focus, .sg-navbar .dropdown-item.active { background: var(--sg-soft); color: var(--sg-gold); }
.sg-navbar .dropdown-toggle::after { margin-left: 6px; vertical-align: .12em; }
.sg-page-hero { position: relative; overflow: hidden; padding: 170px 0 82px; background: var(--sg-navy); }
.sg-page-hero:after { position: absolute; right: -120px; top: -240px; width: 560px; height: 560px; border: 1px solid rgba(233,210,168,.18); border-radius: 50%; content: ""; }
.sg-page-hero .container { position: relative; z-index: 2; }
.sg-page-hero h1 { max-width: 850px; color: #fff; font-size: clamp(42px, 6vw, 72px); letter-spacing: -1.5px; margin: 0 0 18px; }
.sg-page-hero h1 em { color: var(--sg-gold-light); font-style: normal; }
.sg-page-hero .sg-page-intro { max-width: 760px; color: rgba(255,255,255,.72); font-size: 18px; line-height: 1.75; margin-bottom: 0; }
.sg-page-hero .sg-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; color: rgba(255,255,255,.48); font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-bottom: 22px; text-transform: uppercase; }
.sg-page-hero .sg-breadcrumb a { color: var(--sg-gold-light); }
.sg-page-section { background: var(--sg-paper); }
.sg-page-section-white { background: #fff; }
.sg-page-section-soft { background: var(--sg-soft); }
.sg-section-head { margin-bottom: 48px; }
.sg-section-head h2 { margin-bottom: 12px; }
.sg-section-head p { max-width: 720px; font-size: 16px; }
.sg-theme-card, .sg-info-card, .sg-publication-card, .sg-book-card, .sg-news-card, .sg-project-card { height: 100%; padding: 28px; background: #fff; border: 1px solid var(--sg-line); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sg-theme-card:hover, .sg-info-card:hover, .sg-publication-card:hover, .sg-book-card:hover, .sg-news-card:hover, .sg-project-card:hover { border-color: var(--sg-gold); box-shadow: 0 16px 36px rgba(16,43,58,.07); transform: translateY(-2px); }
.sg-theme-card { background: var(--sg-paper); border-top: 3px solid var(--sg-gold); }
.sg-theme-card .sg-theme-number { color: var(--sg-gold); font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.sg-theme-card h3, .sg-info-card h3, .sg-publication-card h3, .sg-book-card h3, .sg-news-card h3, .sg-project-card h3 { font-size: 24px; margin: 17px 0 10px; }
.sg-theme-card p, .sg-info-card p, .sg-publication-card p, .sg-book-card p, .sg-news-card p, .sg-project-card p { font-size: 14px; line-height: 1.7; margin-bottom: 0; }
.sg-theme-card i, .sg-info-card > i { color: var(--sg-gold); font-size: 24px; }
.sg-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sg-card-grid-2 { grid-template-columns: repeat(2, 1fr); }
.sg-card-grid-4 { grid-template-columns: repeat(4, 1fr); }
.sg-card-grid .sg-span-2 { grid-column: span 2; }
.sg-card-label { color: var(--sg-gold); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.sg-card-link, .sg-text-link { display: inline-flex; align-items: center; gap: 7px; color: var(--sg-navy); font-size: 11px; font-weight: 700; letter-spacing: .08em; margin-top: 20px; text-transform: uppercase; }
.sg-card-link i, .sg-text-link i { color: var(--sg-gold); }
.sg-card-link:hover, .sg-text-link:hover { color: var(--sg-gold); }
.sg-date-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 15px; }
.sg-date-pill, .sg-status { display: inline-block; padding: 6px 9px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sg-date-pill { background: var(--sg-soft); color: var(--sg-navy); }
.sg-event-title-link { color: inherit; }
.sg-event-title-link:hover, .sg-event-title-link:focus { color: var(--sg-gold); }
.sg-status-ongoing { background: #dcefe8; color: #16634d; }
.sg-status-completed { background: #e9e6dd; color: #67573b; }
.sg-status-proposed { background: #e7ebf2; color: #35567b; }
.sg-project-card { position: relative; padding-top: 34px; }
.sg-project-card .sg-project-id { position: absolute; top: 0; right: 0; padding: 8px 11px; background: var(--sg-navy); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.sg-project-card h3 { margin-top: 8px; }
.sg-project-card .sg-project-role { color: var(--sg-navy); font-size: 12px; font-weight: 700; margin-top: 17px; }
.sg-project-card .sg-project-role i { color: var(--sg-gold); margin-right: 5px; }
.sg-detail-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(250px, .8fr); gap: 54px; }
.sg-detail-layout h2 { font-size: 34px; margin-bottom: 17px; }
.sg-detail-layout h3 { font-size: 25px; margin: 36px 0 12px; }
.sg-detail-layout p, .sg-detail-layout li { font-size: 15px; line-height: 1.8; }
.sg-detail-layout ul { padding-left: 21px; }
.sg-detail-aside { align-self: start; padding: 27px; background: var(--sg-navy); }
.sg-detail-aside h3 { color: #fff; font-family: "DM Sans", Arial, sans-serif; font-size: 16px; letter-spacing: .04em; margin: 0 0 18px; text-transform: uppercase; }
.sg-detail-aside dl { margin: 0; }
.sg-detail-aside dt { color: var(--sg-gold-light); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-top: 16px; text-transform: uppercase; }
.sg-detail-aside dt:first-child { margin-top: 0; }
.sg-detail-aside dd { color: rgba(255,255,255,.74); font-size: 13px; line-height: 1.55; margin: 3px 0 0; }
.sg-detail-aside a { color: var(--sg-gold-light); }
.sg-callout { margin: 26px 0; padding: 22px 25px; background: var(--sg-soft); border-left: 4px solid var(--sg-gold); }
.sg-callout strong { color: var(--sg-navy); display: block; font-size: 13px; margin-bottom: 6px; }
.sg-callout p { margin-bottom: 0; }
.sg-upcoming-event { background: var(--sg-soft); }
.sg-upcoming-poster { display: block; padding: 12px; background: #fff; border: 1px solid var(--sg-line); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sg-upcoming-poster:hover, .sg-upcoming-poster:focus { border-color: var(--sg-gold); box-shadow: 0 16px 36px rgba(16,43,58,.1); transform: translateY(-2px); }
.sg-upcoming-poster img { display: block; width: 100%; height: auto; }
.sg-upcoming-event-copy h2 { margin-bottom: 18px; }
.sg-upcoming-event-copy .sg-plain-list { margin: 22px 0 0; }
.sg-upcoming-event-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 27px; }
.sg-btn-outline-dark { background: transparent; border: 1px solid var(--sg-navy); color: var(--sg-navy); }
.sg-btn-outline-dark:hover, .sg-btn-outline-dark:focus { background: var(--sg-navy); border-color: var(--sg-navy); color: #fff; }
.sg-flow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; margin-top: 26px; border: 1px solid var(--sg-line); }
.sg-flow-step { position: relative; min-height: 105px; padding: 21px 14px 16px; background: #fff; border-right: 1px solid var(--sg-line); text-align: center; }
.sg-flow-step:last-child { border-right: 0; }
.sg-flow-step:not(:last-child):after { position: absolute; z-index: 2; top: 42px; right: -7px; width: 13px; height: 13px; background: var(--sg-gold); content: ""; transform: rotate(45deg); }
.sg-flow-step i { position: relative; z-index: 3; color: var(--sg-navy); display: block; font-size: 19px; margin-bottom: 9px; }
.sg-flow-step span { color: var(--sg-navy); display: block; font-size: 10px; font-weight: 700; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
.sg-method-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 45px; background: var(--sg-line); border: 1px solid var(--sg-line); }
.sg-method { min-height: 155px; padding: 24px; background: #fff; }
.sg-method i { color: var(--sg-gold); font-size: 22px; }
.sg-method h3 { font-size: 19px; margin: 13px 0 7px; }
.sg-method p { font-size: 13px; line-height: 1.6; margin: 0; }
.sg-publication-card { padding: 25px; }
.sg-publication-card h3 { font-size: 21px; margin-top: 10px; }
.sg-publication-year { color: var(--sg-gold); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sg-publication-card .sg-relevance { color: var(--sg-navy); font-size: 12px; font-style: italic; margin-bottom: 11px; }
.sg-pub-links { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 19px; }
.sg-pub-links a { color: var(--sg-navy); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.sg-pub-links a i { color: var(--sg-gold); margin-right: 4px; }
.sg-book-card { position: relative; padding-left: 32px; }
.sg-book-card:before { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--sg-gold); content: ""; }
.sg-book-card h3 { font-size: 23px; }
.sg-book-status { color: var(--sg-navy); font-size: 12px; font-weight: 700; }
.sg-resource-table-wrap { overflow-x: auto; border: 1px solid var(--sg-line); }
.sg-resource-table { width: 100%; min-width: 730px; border-collapse: collapse; background: #fff; }
.sg-resource-table th { padding: 15px 17px; background: var(--sg-navy); color: #fff; font-size: 11px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.sg-resource-table td { padding: 16px 17px; border-bottom: 1px solid var(--sg-line); color: var(--sg-muted); font-size: 13px; line-height: 1.5; }
.sg-resource-table tr:nth-child(even) td { background: #f7f6f2; }
.sg-resource-table tr:last-child td { border-bottom: 0; }
.sg-resource-table td:first-child, .sg-resource-table td:nth-child(2) { color: var(--sg-navy); font-weight: 700; }
.sg-resource-table a { color: var(--sg-navy); font-weight: 700; }
.sg-resource-table a i { color: var(--sg-gold); margin-left: 4px; }
.sg-news-card { padding: 0; overflow: hidden; }
.sg-news-card img { display: block; width: 100%; height: 265px; object-fit: cover; object-position: top center; }
.sg-news-card .sg-news-copy { padding: 23px 25px 26px; }
.sg-news-card h3 { font-size: 22px; margin-top: 10px; }
.sg-news-card .sg-date-pill { display: inline-block; }
.sg-profile-links-page { margin-top: 0; }
.sg-profile-links-page a { min-height: 62px; align-items: center; }
.sg-contact-page .sg-contact-details a,
.sg-contact-page .sg-contact-details div { color: var(--sg-ink); }
.sg-contact-page .sg-contact-details a:hover { color: var(--sg-navy); }
.sg-contact-page .sg-contact-form { box-shadow: 0 16px 36px rgba(0,0,0,.08); }
.sg-video-card { height: 100%; overflow: hidden; padding: 0; background: #fff; border: 1px solid var(--sg-line); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sg-video-card:hover { border-color: var(--sg-gold); box-shadow: 0 16px 36px rgba(16,43,58,.08); transform: translateY(-2px); }
.sg-video-card img { display: block; width: 100%; height: 235px; object-fit: cover; object-position: center; }
.sg-video-copy { padding: 23px 25px 26px; }
.sg-video-copy h3 { font-size: 23px; margin: 12px 0 9px; }
.sg-video-copy p { font-size: 14px; line-height: 1.7; margin-bottom: 0; }
.sg-video-meta { color: var(--sg-gold); display: block; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sg-tool-feature { padding: 39px 42px; background: var(--sg-navy); }
.sg-tool-feature h2, .sg-tool-feature p, .sg-tool-feature li { color: #fff; }
.sg-tool-feature h2 { font-size: clamp(31px, 4vw, 48px); margin-bottom: 17px; }
.sg-tool-feature p { color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.8; }
.sg-tool-feature .sg-btn-outline { margin-top: 12px; }
.sg-tool-metrics { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 24px; }
.sg-tool-metric strong, .sg-tool-metric span { display: block; }
.sg-tool-metric strong { color: var(--sg-gold-light); font-family: "Playfair Display", Georgia, serif; font-size: 27px; }
.sg-tool-metric span { color: rgba(255,255,255,.62); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.sg-footer-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 3px 14px; }
.sg-footer .sg-footer-nav > a,
.sg-footer .sg-footer-nav .dropdown-toggle { width: auto; margin: 0; padding: 4px 0; background: transparent; border: 0; color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sg-footer .sg-footer-nav > a:hover, .sg-footer .sg-footer-nav .dropdown-toggle:hover { color: var(--sg-gold-light); }
.sg-footer .sg-footer-nav .dropdown-menu { min-width: 205px; padding: 8px 0; background: #fff; border: 0; border-radius: 0; box-shadow: 0 14px 30px rgba(0,0,0,.2); }
.sg-footer .sg-footer-nav .dropdown-menu a { display: block; width: auto; margin: 0; padding: 8px 15px; color: var(--sg-navy); font-size: 11px; }
.sg-footer .sg-footer-nav .dropdown-menu a:hover { background: var(--sg-soft); color: var(--sg-gold); }
.sg-footer-social { margin-top: 13px; }
.sg-footer .sg-footer-social a { display: inline-block; width: 30px; margin: 0 0 0 15px; color: rgba(255,255,255,.65); font-size: 15px; }
.sg-footer .sg-footer-social a.sg-social-logo-link { display: inline-flex; align-items: center; justify-content: center; height: 30px; vertical-align: middle; }
.sg-footer .sg-social-logo { display: block; width: 23px; height: 23px; padding: 2px; background: #fff; border-radius: 50%; object-fit: contain; }
.sg-footer .sg-footer-social a:hover { color: var(--sg-gold-light); }
.sg-small-note { color: var(--sg-muted); font-size: 12px; line-height: 1.6; }
.sg-plain-list { padding-left: 19px; }
.sg-plain-list li { color: var(--sg-muted); font-size: 14px; margin-bottom: 8px; }

@media (max-width: 1199px) {
  .sg-navbar .nav-link { margin-left: 9px; font-size: 10px; }
}

@media (max-width: 991px) {
  .sg-navbar .nav-link { margin-left: 0; font-size: 13px; letter-spacing: .08em; }
  .sg-page-hero { padding-top: 145px; }
  .sg-card-grid, .sg-card-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .sg-detail-layout { grid-template-columns: 1fr; gap: 35px; }
  .sg-flow { grid-template-columns: repeat(4, 1fr); }
  .sg-flow-step:nth-child(4) { border-right: 0; }
  .sg-flow-step:nth-child(n+5) { border-top: 1px solid var(--sg-line); }
  .sg-method-strip { grid-template-columns: repeat(2, 1fr); }
  .sg-footer-nav { justify-content: flex-start; }
  .sg-footer .sg-footer-nav > a, .sg-footer .sg-footer-nav .dropdown-toggle { margin-right: 12px; }
}

@media (max-width: 575px) {
  .sg-page-hero { padding: 135px 0 65px; }
  .sg-page-hero h1 { font-size: 42px; }
  .sg-page-hero .sg-page-intro { font-size: 16px; }
  .sg-card-grid, .sg-card-grid-2, .sg-card-grid-4 { grid-template-columns: 1fr; }
  .sg-card-grid .sg-span-2 { grid-column: span 1; }
  .sg-flow { grid-template-columns: repeat(2, 1fr); }
  .sg-flow-step:nth-child(2), .sg-flow-step:nth-child(6) { border-right: 0; }
  .sg-flow-step:nth-child(3) { border-right: 1px solid var(--sg-line); }
  .sg-flow-step:nth-child(n+3) { border-top: 1px solid var(--sg-line); }
  .sg-flow-step:not(:last-child):after { display: none; }
  .sg-method-strip { grid-template-columns: 1fr; }
  .sg-detail-layout h2 { font-size: 29px; }
  .sg-footer .sg-footer-social a { margin: 0 15px 0 0; }
  .sg-upcoming-link { align-items: flex-start; flex-wrap: wrap; gap: 13px; padding: 20px 0; }
  .sg-upcoming-copy { flex-basis: calc(100% - 68px); }
  .sg-upcoming-copy strong { font-size: 21px; }
  .sg-upcoming-cta { flex-basis: 100%; padding-left: 65px; }
  .sg-upcoming-event-actions .sg-btn { width: 100%; }
  .sg-event-ticker-item { gap: 10px; min-height: 58px; padding: 0 18px; font-size: 11px; }
  .sg-event-ticker-item strong { font-size: 12px; }
}
