
:root{
  --bg:#f5f0e6;
  --surface:#fffdf8;
  --ink:#18221e;
  --muted:#66716b;
  --line:rgba(24,34,30,.12);
  --green:#0b4f37;
  --green-2:#0d6745;
  --green-deep:#082f25;
  --saffron:#ef862e;
  --gold:#f4b63f;
  --red:#e92a2d;
  --white:#fff;
  --shadow:0 26px 70px rgba(26,47,38,.13);
  --radius-xl:36px;
  --radius-lg:26px;
  --radius-md:19px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"DM Sans",system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,240,230,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid transparent;
  transition:.25s ease;
}
.site-header.scrolled{border-color:var(--line);box-shadow:0 8px 28px rgba(22,32,27,.05)}
.nav{height:86px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px}
.brand-logo{width:56px;height:56px;object-fit:contain}
.brand-copy strong{display:block;font-family:"Manrope",sans-serif;font-size:15px;line-height:1.05}
.brand-copy small{display:block;color:var(--muted);font-size:10px;margin-top:4px}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{position:relative;font-size:14px;font-weight:700;color:#435049;padding:9px 0}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--green);
  transform:scaleX(0);transition:transform .2s ease
}
.nav-links a:hover,.nav-links a.active{color:var(--green)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.menu-button{display:none;border:0;background:transparent;width:44px;height:44px;cursor:pointer}
.menu-button span{display:block;width:24px;height:2px;background:var(--ink);margin:5px auto;border-radius:10px}

/* Typography */
.section-label{
  color:var(--saffron);font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;margin-bottom:11px
}
.section-label.light{color:#ffc47d}
h1,h2,h3{font-family:"Manrope",sans-serif}
h1{font-size:clamp(48px,6vw,82px);line-height:.98;letter-spacing:-3.5px}
h2{font-size:clamp(36px,4.3vw,58px);line-height:1.04;letter-spacing:-2.2px}
h3{line-height:1.2}
.page-lead{max-width:740px;color:var(--muted);font-size:18px;margin-top:24px}
.section{padding:105px 0}
.muted-section{background:#eee8dc;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-heading{text-align:center;max-width:720px;margin:0 auto 48px}
.section-heading.left{text-align:left;margin-left:0}
.section-heading>p:last-child{color:var(--muted);margin-top:14px}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:50px;padding:0 22px;border-radius:999px;font-size:14px;font-weight:800;
  transition:transform .2s ease,background .2s ease
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 14px 30px rgba(11,79,55,.18)}
.btn-primary:hover{background:var(--green-2)}
.btn-ghost{border:1px solid var(--line);background:rgba(255,255,255,.45)}
.btn-light{background:#fff;color:var(--green)}
.text-link{display:inline-flex;gap:7px;align-items:center;color:var(--green);font-weight:800;font-size:14px;margin-top:14px}

/* Home hero */
.hero{position:relative;overflow:hidden}
.home-hero{min-height:calc(100vh - 86px);display:flex;align-items:center;padding:58px 0 84px}
.hero-orb{position:absolute;border-radius:50%;filter:blur(110px);opacity:.14;pointer-events:none}
.orb-a{width:420px;height:420px;background:var(--saffron);left:-160px;top:-80px}
.orb-b{width:470px;height:470px;background:#4b9b79;right:-200px;bottom:-160px}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:78px;align-items:center;position:relative;z-index:2}
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.45);
  border:1px solid var(--line);padding:8px 13px;border-radius:999px;color:#5d6862;
  font-size:12px;font-weight:700;margin-bottom:23px
}
.eyebrow span{width:8px;height:8px;border-radius:50%;background:var(--saffron);box-shadow:0 0 0 5px rgba(239,134,46,.12)}
.hero-copy h1 em{display:block;font-family:Georgia,serif;font-weight:500;color:var(--green);letter-spacing:-2.5px}
.hero-copy h2{font-size:clamp(24px,2.6vw,38px);margin-top:18px;letter-spacing:-1px}
.hero-tag{margin-top:18px;color:var(--saffron);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.hero-lead{max-width:590px;color:var(--muted);font-size:17px;margin-top:14px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* Welcome card */
.welcome-card-wrap{position:relative;min-height:535px;display:grid;place-items:center}
.welcome-card{
  position:relative;width:min(430px,88%);aspect-ratio:.84;border-radius:42px;overflow:hidden;
  background:
    radial-gradient(circle at 78% 18%,rgba(255,255,255,.16),transparent 28%),
    linear-gradient(145deg,var(--green),var(--green-deep));
  box-shadow:0 38px 90px rgba(17,60,44,.25);padding:28px;transform:rotate(2deg)
}
.welcome-card::after{
  content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.12);
  border-radius:50%;right:-90px;bottom:-95px;box-shadow:0 0 0 46px rgba(255,255,255,.025),0 0 0 92px rgba(255,255,255,.015)
}
.welcome-top,.welcome-bottom{position:relative;z-index:3;display:flex;justify-content:space-between;color:rgba(255,255,255,.65);font-size:10px;font-weight:700;letter-spacing:.09em}
.logo-stage{position:absolute;inset:58px 32px 70px;display:grid;place-items:center;z-index:2}
.logo-halo{position:absolute;width:270px;height:270px;border-radius:50%;background:#fff;opacity:.95;box-shadow:0 20px 50px rgba(0,0,0,.12)}
.logo-stage img{position:relative;z-index:2;width:265px;height:265px;object-fit:contain}
.welcome-bottom{position:absolute;bottom:27px;left:28px;right:28px;align-items:end}
.welcome-bottom strong{font-family:"Manrope",sans-serif;color:#fff;font-size:21px;letter-spacing:-.7px}
.floating-note{
  position:absolute;z-index:5;display:flex;gap:11px;align-items:center;min-width:225px;
  background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.75);
  padding:13px 15px;border-radius:18px;box-shadow:var(--shadow);backdrop-filter:blur(12px)
}
.note-one{left:-2px;bottom:52px}.note-two{right:-16px;top:60px}
.note-icon{width:40px;height:40px;display:grid;place-items:center;background:#f6efe5;border-radius:12px}
.floating-note strong{display:block;font-size:13px}.floating-note small{display:block;color:var(--muted);font-size:11px}

/* Home intro */
.home-intro{padding:90px 0;background:var(--surface);border-block:1px solid var(--line)}
.split-heading{display:grid;grid-template-columns:1fr .8fr;gap:95px;align-items:center}
.intro-copy{color:var(--muted);font-size:17px}

/* Events */
.highlights{background:var(--bg)}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.event-card{
  position:relative;min-height:370px;border:1px solid var(--line);border-radius:28px;padding:26px;
  overflow:hidden;background:rgba(255,255,255,.46);transition:.25s ease
}
.event-card:hover{transform:translateY(-5px);background:#fff;box-shadow:0 20px 50px rgba(31,43,37,.08)}
.event-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-45px;bottom:-55px;opacity:.15}
.event-freshers::after{background:#5ea986}.event-ugadi::after{background:var(--saffron)}.event-icw::after{background:#3957a5}
.event-index{position:absolute;right:22px;top:21px;color:#a3aaa7;font-size:11px;font-weight:800}
.event-symbol{font-size:46px;margin-top:55px}
.event-type{color:var(--saffron);font-size:10px;font-weight:800;letter-spacing:.15em;margin-top:18px}
.event-card h3{font-size:24px;margin-top:6px}
.event-card>p:last-of-type{color:var(--muted);font-size:14px;margin-top:10px}
.event-icw{background:linear-gradient(145deg,#113f32,#0b2f27);color:#fff}
.event-icw>p:last-of-type{color:rgba(255,255,255,.67)}
.event-icw .event-type{color:#f7b45c}
.event-icw .event-index{color:rgba(255,255,255,.4)}
.award-pill{
  position:absolute;left:22px;top:20px;background:#fff;color:var(--green);font-size:10px;font-weight:900;
  padding:7px 10px;border-radius:999px;letter-spacing:.08em
}
.award-list{display:flex;flex-direction:column;gap:6px;margin-top:18px}
.award-list span{font-size:12px;font-weight:700;color:#fff}
.milestone-banner{
  margin-top:22px;background:var(--saffron);color:#fff;border-radius:28px;padding:28px 30px;
  display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;overflow:hidden
}
.milestone-number{
  width:74px;height:74px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.16);
  font-family:"Manrope",sans-serif;font-size:40px;font-weight:800
}
.milestone-banner .section-label{color:#fff;margin-bottom:4px}
.milestone-banner h3{font-size:24px}.milestone-banner p:last-child{color:rgba(255,255,255,.76);font-size:13px;margin-top:5px}

/* Short CTA */
.short-cta{background:var(--green);color:#fff;padding:82px 0}
.short-cta-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.short-cta h2{max-width:800px}

/* Inner page hero */
.page-hero{padding:86px 0 75px}
.page-hero-grid{display:grid;grid-template-columns:1fr .72fr;gap:90px;align-items:center}
.page-hero h1{font-size:clamp(46px,5.6vw,72px)}
.compact-hero .container{max-width:1180px}
.compact-hero .page-lead{max-width:780px}
.about-logo-card{
  min-height:420px;border-radius:34px;background:var(--green);display:grid;place-items:center;
  padding:55px;box-shadow:var(--shadow);position:relative;overflow:hidden
}
.about-logo-card::after{
  content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.12);
  border-radius:50%;right:-75px;bottom:-75px;box-shadow:0 0 0 42px rgba(255,255,255,.025),0 0 0 84px rgba(255,255,255,.015)
}
.about-logo-card img{width:320px;height:320px;object-fit:contain;background:#fff;border-radius:50%;padding:6px;position:relative;z-index:2}

/* About */
.mission-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:95px;align-items:start}
.mission-copy{color:var(--muted);font-size:17px}
.mission-copy p+p{margin-top:18px}
.purpose-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:65px}
.purpose-card{position:relative;min-height:285px;border:1px solid var(--line);border-radius:24px;padding:23px;background:rgba(255,255,255,.45)}
.purpose-card>span{position:absolute;right:20px;top:18px;color:#a2aaa6;font-size:10px;font-weight:800}
.purpose-icon{font-size:34px;margin-top:48px}
.purpose-card h3{font-size:20px;margin-top:18px}
.purpose-card p{color:var(--muted);font-size:13px;margin-top:8px}
.story-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px}
.story-copy{color:var(--muted);font-size:16px}
.story-copy p+p{margin-top:16px}

/* Team */
.leadership-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.leader-card{border:1px solid var(--line);border-radius:30px;overflow:hidden;background:#fff}
.leader-photo{height:480px;position:relative;overflow:hidden}
.leader-photo img{width:100%;height:100%;object-fit:cover;object-position:center 36%}
.role-badge{position:absolute;left:20px;top:20px;background:#fff;color:var(--green);padding:8px 12px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.leader-info{padding:26px}
.leader-term{color:var(--saffron);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.leader-info h3{font-size:28px;margin-top:5px}
.leader-info>p:last-of-type{color:var(--muted);font-size:14px;margin-top:10px}
.vp-card{display:flex;flex-direction:column}
.vp-visual{height:480px;position:relative;display:grid;place-items:center;background:linear-gradient(145deg,var(--green),var(--green-deep));overflow:hidden}
.vp-visual>span{position:relative;z-index:2;width:160px;height:160px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);font-family:"Manrope",sans-serif;font-size:56px;font-weight:800}
.vp-rings{position:absolute;width:280px;height:280px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.03),0 0 0 90px rgba(255,255,255,.02)}
.legacy-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;align-items:center}
.legacy-cards{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.legacy-cards article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:23px}
.legacy-cards p{color:var(--saffron);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.legacy-cards h3{font-size:20px;margin-top:6px}.legacy-cards a{display:inline-block;color:var(--green);font-size:12px;font-weight:800;margin-top:14px}
.contributors-heading{max-width:720px}
.contributors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.contributor{
  display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.45)
}
.initials{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#edf1ed;color:var(--green);font-size:11px;font-weight:900}
.contributor a,.contributor strong{font-size:13px;font-weight:800}.contributor a:hover{color:var(--green)}
.contributor a span{font-size:10px}.contributor small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.thankyou-card{margin-top:25px;background:var(--green);color:#fff;border-radius:24px;padding:25px;display:flex;gap:18px;align-items:center}
.thankyou-card>span{font-size:38px}.thankyou-card h3{font-size:21px}.thankyou-card p{color:rgba(255,255,255,.7);font-size:13px;margin-top:4px}

/* Contact */
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}
.primary-contact h2{font-size:clamp(30px,3.7vw,48px);word-break:break-word}
.primary-contact>p:last-of-type{color:var(--muted);max-width:540px;margin:18px 0 25px}
.contact-list{border-top:1px solid var(--line)}
.contact-row{display:grid;grid-template-columns:48px 1fr auto;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.contact-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#fff;font-weight:900}
.contact-row small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em}.contact-row strong{display:block;font-size:16px;margin-top:2px}
.contact-row>span:last-child{font-size:18px;transition:.2s}.contact-row:hover>span:last-child{transform:translate(3px,-3px)}
.contact-cards-section{padding:0 0 100px}
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.contact-cards article{border:1px solid var(--line);border-radius:24px;padding:24px;background:rgba(255,255,255,.45)}
.contact-cards article>span{font-size:34px}.contact-cards h3{font-size:20px;margin-top:18px}.contact-cards p{color:var(--muted);font-size:13px;margin-top:7px}.contact-cards a{display:inline-block;color:var(--green);font-size:12px;font-weight:800;margin-top:15px}

/* Footer */
.site-footer{background:#0b1914;color:#fff;padding:54px 0 22px}
.footer-grid{display:flex;justify-content:space-between;gap:40px;align-items:center}
.footer-brand{display:flex;align-items:center;gap:13px}.footer-logo{width:58px;height:58px;object-fit:contain}
.footer-brand strong{font-family:"Manrope",sans-serif}.footer-brand p{color:rgba(255,255,255,.48);font-size:11px}
.footer-links{display:flex;flex-wrap:wrap;gap:25px}.footer-links a{color:rgba(255,255,255,.58);font-size:12px}.footer-links a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.1);margin-top:35px;padding-top:18px;color:rgba(255,255,255,.35);font-size:10px}

/* Responsive */
@media(max-width:1000px){
  .menu-button{display:block}
  .nav-links{
    display:none;position:fixed;top:86px;left:20px;right:20px;background:#fff;padding:12px;
    border-radius:20px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0
  }
  .nav-links.open{display:flex}.nav-links a{padding:13px 12px}.nav-links a::after{display:none}
  .hero-grid,.page-hero-grid,.mission-grid,.story-grid,.contact-layout,.legacy-grid{grid-template-columns:1fr;gap:48px}
  .hero-copy{text-align:center}.eyebrow{margin-inline:auto}.hero-lead{margin-inline:auto}.hero-actions{justify-content:center}
  .split-heading{grid-template-columns:1fr;gap:24px}
  .purpose-grid{grid-template-columns:repeat(2,1fr)}
  .leadership-grid{grid-template-columns:1fr 1fr}
  .contributors-grid{grid-template-columns:repeat(2,1fr)}
  .contact-cards{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .container{width:min(100% - 28px,1180px)}.nav{height:72px}.nav-links{top:72px}
  .brand-logo{width:48px;height:48px}.brand-copy small{display:none}
  h1{letter-spacing:-2.6px}.home-hero{min-height:auto;padding:42px 0 68px}
  .hero-grid{gap:32px}.hero-copy h1{font-size:52px}.hero-copy h2{font-size:27px}
  .welcome-card-wrap{min-height:430px}.welcome-card{width:305px;border-radius:30px;padding:23px}
  .logo-stage{inset:50px 25px 65px}.logo-halo{width:215px;height:215px}.logo-stage img{width:210px;height:210px}
  .floating-note{min-width:190px;padding:11px 12px}.note-one{left:0;bottom:13px}.note-two{right:0;top:28px}
  .home-intro,.section{padding:75px 0}.event-grid{grid-template-columns:1fr}.event-card{min-height:310px}
  .milestone-banner{grid-template-columns:auto 1fr}.milestone-banner .btn{grid-column:2;justify-self:start}
  .short-cta{padding:65px 0}.short-cta-inner{grid-template-columns:1fr;gap:25px}
  .page-hero{padding:68px 0 55px}.page-hero h1{font-size:48px}.page-lead{font-size:16px}
  .about-logo-card{min-height:330px}.about-logo-card img{width:260px;height:260px}
  .purpose-grid{grid-template-columns:1fr}.purpose-card{min-height:235px}
  .leadership-grid{grid-template-columns:1fr}.leader-photo,.vp-visual{height:420px}
  .legacy-cards{grid-template-columns:1fr}.contributors-grid{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:1fr}.contact-cards-section{padding-bottom:75px}
  .footer-grid,.footer-bottom{flex-direction:column;align-items:flex-start}.footer-links{gap:16px}.footer-bottom{gap:5px}
}
@media(max-width:460px){
  .hero-copy h1{font-size:45px}.welcome-card-wrap{min-height:395px}.welcome-card{width:275px}
  .logo-halo{width:190px;height:190px}.logo-stage img{width:185px;height:185px}
  .floating-note{min-width:174px}.floating-note strong{font-size:11px}.floating-note small{font-size:9px}
  .milestone-banner{grid-template-columns:1fr}.milestone-number{width:62px;height:62px}.milestone-banner .btn{grid-column:1}
  .leader-photo,.vp-visual{height:360px}.contact-row{grid-template-columns:42px 1fr auto}
}


/* ---------- Home events teaser ---------- */
.home-events-teaser{
  background:var(--bg);
}
.teaser-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:85px;
  align-items:center;
}
.teaser-copy{
  color:var(--muted);
  max-width:540px;
  margin:18px 0 28px;
  font-size:16px;
}
.teaser-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.teaser-cards article{
  min-height:210px;
  border:1px solid var(--line);
  border-radius:24px;
  padding:22px;
  background:rgba(255,255,255,.5);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.teaser-cards article>span{
  font-size:42px;
  margin-bottom:auto;
}
.teaser-cards small{
  color:var(--saffron);
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}
.teaser-cards strong{
  font-family:"Manrope",sans-serif;
  font-size:16px;
  line-height:1.25;
  margin-top:5px;
}
.teaser-cards .teaser-feature{
  background:var(--green);
  color:#fff;
}
.teaser-cards .teaser-feature small{
  color:#ffc47d;
}

/* ---------- Events page ---------- */
.events-hero{
  position:relative;
  overflow:hidden;
}
.events-hero::after{
  content:"";
  position:absolute;
  width:440px;
  height:440px;
  border-radius:50%;
  background:var(--saffron);
  filter:blur(130px);
  opacity:.09;
  right:-180px;
  top:-160px;
}
.events-timeline{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.event-story{
  display:grid;
  grid-template-columns:70px 310px 1fr;
  gap:24px;
  align-items:stretch;
  border:1px solid var(--line);
  border-radius:30px;
  padding:20px;
  background:rgba(255,255,255,.46);
}
.event-story-number{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding-top:12px;
  color:#9aa39e;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}
.event-story-visual{
  min-height:285px;
  border-radius:22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  position:relative;
}
.event-story-visual::before,
.event-story-visual::after{
  content:"";
  position:absolute;
  border-radius:50%;
  opacity:.18;
}
.event-story-visual::before{
  width:160px;
  height:160px;
  left:-55px;
  top:-45px;
  background:#fff;
}
.event-story-visual::after{
  width:100px;
  height:100px;
  right:-30px;
  bottom:-30px;
  border:18px solid rgba(255,255,255,.8);
}
.freshers-visual{background:linear-gradient(145deg,#246247,#79ad8d)}
.ugadi-visual{background:linear-gradient(145deg,#b85c24,#f2aa47)}
.icw-visual{background:linear-gradient(145deg,#123f32,#082d25)}
.event-story-visual>span{
  font-size:78px;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.15));
}
.event-story-visual small{
  position:relative;
  z-index:2;
  color:#fff;
  margin-top:15px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
}
.event-story-copy{
  padding:16px 12px 14px 4px;
}
.event-meta{
  color:var(--saffron);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.event-story-copy h3{
  font-size:30px;
  margin-top:6px;
}
.event-story-copy>p:not(.event-meta):not(.event-thanks){
  color:var(--muted);
  margin-top:12px;
  max-width:700px;
}
.event-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:20px;
}
.event-tags span{
  border:1px solid var(--line);
  background:#fff;
  padding:6px 10px;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  color:#5f6963;
}
.featured-story{
  background:#fff;
  box-shadow:0 24px 60px rgba(28,45,38,.07);
}
.event-awards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:22px;
}
.event-awards>div{
  border-radius:18px;
  padding:16px;
  background:#f7f2e8;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:10px;
}
.event-awards>div>span{
  font-size:26px;
  grid-row:1/3;
}
.event-awards strong{
  font-size:13px;
}
.event-awards small{
  color:var(--muted);
  font-size:10px;
  margin-top:2px;
}
.event-thanks{
  color:var(--muted);
  font-size:13px;
  margin-top:17px;
}
.event-milestone{
  background:var(--green);
  color:#fff;
  padding:75px 0;
}
.event-milestone-grid{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:28px;
  align-items:center;
}
.milestone-big{
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  border-radius:26px;
  background:rgba(255,255,255,.10);
  font-family:"Manrope",sans-serif;
  font-size:50px;
  font-weight:900;
}
.event-milestone h2{
  max-width:760px;
}
.event-milestone p:last-child{
  color:rgba(255,255,255,.7);
  max-width:700px;
  margin-top:10px;
}
.partner-thanks-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.partner-thanks-grid article{
  min-height:170px;
  border:1px solid var(--line);
  border-radius:24px;
  padding:24px;
  background:rgba(255,255,255,.45);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.partner-thanks-grid span{
  font-size:38px;
  margin-bottom:auto;
}
.partner-thanks-grid h3{
  font-size:18px;
}

@media(max-width:1000px){
  .teaser-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  .event-story{
    grid-template-columns:55px 260px 1fr;
  }
}
@media(max-width:800px){
  .teaser-cards{
    grid-template-columns:1fr;
  }
  .teaser-cards article{
    min-height:160px;
  }
  .event-story{
    grid-template-columns:1fr;
    gap:14px;
  }
  .event-story-number{
    justify-content:flex-start;
    padding:0;
  }
  .event-story-visual{
    min-height:230px;
  }
  .event-story-copy{
    padding:8px 4px 10px;
  }
  .event-milestone-grid{
    grid-template-columns:auto 1fr;
  }
  .event-milestone-grid .btn{
    grid-column:2;
    justify-self:start;
  }
}
@media(max-width:650px){
  .event-awards{
    grid-template-columns:1fr;
  }
  .partner-thanks-grid{
    grid-template-columns:1fr;
  }
  .event-milestone-grid{
    grid-template-columns:1fr;
  }
  .event-milestone-grid .btn{
    grid-column:1;
  }
  .milestone-big{
    width:76px;
    height:76px;
    font-size:42px;
  }
}


/* =========================================================
   V4 — Balanced President / Vice President cards
   ========================================================= */

.leadership-section .section-heading {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}

.leadership-grid-balanced {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  align-items: stretch;
}

.modern-leader-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(24, 34, 30, 0.10);
  border-radius: 26px;
  box-shadow: 0 18px 46px rgba(28, 44, 37, 0.07);
  transition: transform .25s ease, box-shadow .25s ease;
}

.modern-leader-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 58px rgba(28, 44, 37, 0.11);
}

.modern-leader-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  height: auto;
  overflow: hidden;
  background: #e9e5dc;
}

.modern-leader-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Different source photos need different focal points */
.modern-leader-photo .president-photo {
  object-position: center 58%;
}

.modern-leader-photo .vice-president-photo {
  object-position: center 30%;
}

.modern-leader-info {
  padding: 24px 25px 27px;
}

.leader-role-line {
  margin: 0 0 7px;
  color: var(--saffron);
  font-size: 9px;
  line-height: 1.4;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.leader-role-line span {
  margin: 0 4px;
  color: #a8aea9;
}

.modern-leader-info h3 {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-size: 24px;
  line-height: 1.16;
  letter-spacing: -0.9px;
}

.modern-leader-info > p:last-of-type {
  margin-top: 11px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.leader-linkedin {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 17px;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
}

.leader-linkedin:hover {
  text-decoration: underline;
}

@media (max-width: 760px) {
  .leadership-grid-balanced {
    grid-template-columns: 1fr;
    max-width: 430px;
  }

  .modern-leader-photo {
    aspect-ratio: 4 / 5;
  }

  .modern-leader-info h3 {
    font-size: 23px;
  }
}

@media (max-width: 460px) {
  .leadership-grid-balanced {
    max-width: 100%;
  }

  .modern-leader-card {
    border-radius: 22px;
  }

  .modern-leader-info {
    padding: 21px 20px 23px;
  }
}


/* =========================================================
   EVENT GROUP PHOTOS
   ========================================================= */

.event-story-photo {
  position: relative;
  min-height: 285px;
  border-radius: 22px;
  overflow: hidden;
  background: #ddd8cf;
}

.event-story-photo img {
  width: 100%;
  height: 100%;
  min-height: 285px;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform .4s ease;
}

.event-story:hover .event-story-photo img {
  transform: scale(1.035);
}

.event-story-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, .58) 0%,
    rgba(0, 0, 0, .14) 42%,
    rgba(0, 0, 0, 0) 68%
  );
  pointer-events: none;
}

.event-photo-label {
  position: absolute;
  left: 17px;
  bottom: 16px;
  z-index: 2;
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  background: rgba(8, 25, 20, .42);
  border: 1px solid rgba(255, 255, 255, .18);
  backdrop-filter: blur(8px);
  padding: 7px 10px;
  border-radius: 999px;
}

/* Optional individual crop control */
.event-story:nth-child(1) .event-story-photo img {
  object-position: center center;
}

.event-story:nth-child(2) .event-story-photo img {
  object-position: center center;
}

.event-story:nth-child(3) .event-story-photo img {
  object-position: center center;
}

@media (max-width: 800px) {
  .event-story-photo,
  .event-story-photo img {
    min-height: 230px;
  }
}

@media (max-width: 500px) {
  .event-story-photo,
  .event-story-photo img {
    min-height: 210px;
  }

  .event-photo-label {
    left: 13px;
    bottom: 12px;
  }
}


/* =========================================================
   EVENT PHOTO LIGHTBOX
   Click any event photo to view it larger
   ========================================================= */

.event-photo-clickable {
  cursor: zoom-in;
}

.event-photo-clickable:focus-visible {
  outline: 3px solid var(--saffron);
  outline-offset: 4px;
}

.event-photo-clickable::before {
  content: "🔍";
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(8, 25, 20, .58);
  border: 1px solid rgba(255, 255, 255, .22);
  color: #fff;
  font-size: 17px;
  line-height: 1;
  backdrop-filter: blur(8px);
  opacity: 1;
  transform: none;
}

.event-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(5, 12, 9, .90);
  backdrop-filter: blur(9px);
}

.event-lightbox.open {
  display: flex;
}

.event-lightbox-content {
  position: relative;
  width: min(1100px, 94vw);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.event-lightbox-content img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .36);
}

.event-lightbox-content p {
  margin: 0;
  color: rgba(255, 255, 255, .82);
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.event-lightbox-close {
  position: fixed;
  top: 20px;
  right: 24px;
  z-index: 10000;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.10);
  color: #fff;
  font-size: 31px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background .2s ease, transform .2s ease;
}

.event-lightbox-close:hover {
  background: rgba(255,255,255,.20);
  transform: scale(1.05);
}

body.lightbox-open {
  overflow: hidden;
}

@media (max-width: 600px) {
  .event-lightbox {
    padding: 16px;
  }

  .event-lightbox-close {
    top: 12px;
    right: 12px;
    width: 42px;
    height: 42px;
    font-size: 27px;
  }

  .event-lightbox-content img {
    max-height: 78vh;
    border-radius: 13px;
  }
}


/* =========================================================
   HOME — OFFICIAL PARTNERS
   ========================================================= */

.partners-home-section {
  padding: 95px 0 100px;
  background: #fffdf8;
  border-top: 1px solid var(--line);
}

.partners-home-head {
  max-width: 780px;
  margin-bottom: 42px;
}

.partners-home-head h2 {
  max-width: 780px;
}

.partners-home-head > p:last-child {
  max-width: 680px;
  margin-top: 15px;
  color: var(--muted);
  font-size: 16px;
}

.partners-logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.partner-logo-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(28, 44, 37, .06);
  transition: transform .22s ease, box-shadow .22s ease;
}

.partner-logo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 58px rgba(28, 44, 37, .10);
}

.partner-logo-wrap {
  min-height: 285px;
  display: grid;
  place-items: center;
  padding: 32px;
}

.tk-logo-wrap {
  background: #0ca4dc;
}

.db-logo-wrap {
  background: #050505;
}

.partner-logo-wrap img {
  display: block;
  width: auto;
  max-width: 82%;
  max-height: 210px;
  object-fit: contain;
}

.partner-logo-copy {
  padding: 23px 25px 27px;
}

.partner-type {
  color: var(--saffron);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.partner-logo-copy h3 {
  margin-top: 5px;
  font-size: 23px;
}

.partner-logo-copy > p:last-child {
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}

.partners-note {
  margin-top: 22px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  padding: 19px 21px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: #f5f0e6;
}

.partners-note > span {
  font-size: 28px;
}

.partners-note p {
  color: var(--muted);
  font-size: 13px;
}

.partners-note strong {
  color: var(--ink);
}

@media (max-width: 760px) {
  .partners-home-section {
    padding: 72px 0 78px;
  }

  .partners-logo-grid {
    grid-template-columns: 1fr;
  }

  .partner-logo-wrap {
    min-height: 235px;
  }

  .partner-logo-wrap img {
    max-height: 175px;
  }
}


/* =========================================================
   PARTNER CARDS — CLICKABLE
   ========================================================= */
.partner-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.partner-card-link .partner-logo-copy::after {
  content: "Learn more →";
  display: inline-block;
  margin-top: 14px;
  color: var(--green);
  font-size: 12px;
  font-weight: 900;
}

/* =========================================================
   PARTNER DETAIL PAGES
   ========================================================= */
.partner-detail-hero {
  padding: 72px 0 82px;
  position: relative;
  overflow: hidden;
}

.partner-detail-hero-grid {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 80px;
  align-items: center;
}

.partner-back-link {
  display: inline-flex;
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.partner-detail-hero h1 {
  font-size: clamp(50px, 6vw, 78px);
}

.partner-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 29px;
}

.partner-detail-logo {
  min-height: 390px;
  border-radius: 34px;
  display: grid;
  place-items: center;
  padding: 42px;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.partner-detail-logo img {
  max-width: 82%;
  max-height: 260px;
  object-fit: contain;
}

.tk-detail-logo {
  background: #0ca4dc;
}

.db-detail-logo {
  background: #050505;
}

.guide-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}

.guide-card {
  min-height: 265px;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 23px;
  background: rgba(255,255,255,.5);
}

.guide-icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 15px;
  background: #fff;
  font-size: 22px;
  font-weight: 900;
  margin-bottom: 45px;
}

.guide-card h3 {
  font-size: 19px;
}

.guide-card p {
  color: var(--muted);
  font-size: 13px;
  margin-top: 8px;
}

.partner-two-col {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 85px;
  align-items: start;
}

.partner-body-copy {
  color: var(--muted);
  font-size: 16px;
  margin-top: 18px;
}

.money-tip,
.info-banner {
  margin-top: 24px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  border-radius: 20px;
  padding: 19px;
  background: #fff;
  border: 1px solid var(--line);
}

.money-tip > span,
.info-banner > span {
  font-size: 28px;
}

.money-tip strong,
.info-banner strong {
  font-size: 14px;
}

.money-tip p,
.info-banner p {
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
}

.checklist-card {
  padding: 28px;
  border-radius: 25px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 18px 45px rgba(28,44,37,.05);
}

.checklist-kicker {
  color: var(--saffron);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
  margin-bottom: 18px;
}

.student-checklist {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.student-checklist li {
  position: relative;
  padding-left: 29px;
  color: var(--muted);
  font-size: 13px;
}

.student-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e9f3ee;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.benefit-pill-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.benefit-pill-grid span {
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: #55615b;
  font-size: 12px;
  font-weight: 800;
}

.key-point-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.key-point-list article {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 22px;
  background: rgba(255,255,255,.45);
}

.key-point-list article > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.key-point-list h3 {
  font-size: 17px;
}

.key-point-list p {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.partner-contact-section {
  padding: 80px 0;
  background: var(--green);
  color: #fff;
}

.db-contact-section {
  background: #061a33;
}

.partner-contact-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 80px;
  align-items: center;
}

.partner-contact-grid > div:first-child > p:last-child {
  margin-top: 16px;
  color: rgba(255,255,255,.7);
}

.contact-person-card {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 18px;
  align-items: center;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 24px;
  background: rgba(255,255,255,.08);
}

.contact-avatar {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: #fff;
  color: #0ca4dc;
  font-family: "Manrope", sans-serif;
  font-size: 22px;
  font-weight: 900;
}

.db-avatar {
  color: #0018a8;
}

.contact-role {
  color: #ffc47d;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}

.contact-person-card h3 {
  margin-top: 4px;
  font-size: 22px;
}

.contact-person-card > div:last-child > p:not(.contact-role) {
  margin-top: 5px;
  color: rgba(255,255,255,.68);
  font-size: 12px;
}

.contact-coming-soon,
.contact-placeholder-lines span {
  display: block;
  margin-top: 11px;
  color: rgba(255,255,255,.82);
  font-size: 11px;
  font-weight: 800;
}

.contact-placeholder-lines span + span {
  margin-top: 5px;
}

.partner-disclaimer {
  padding: 23px 0;
  background: #efe9de;
  border-top: 1px solid var(--line);
}

.partner-disclaimer p {
  color: var(--muted);
  font-size: 11px;
}

.partner-disclaimer strong {
  color: var(--ink);
}

@media (max-width: 960px) {
  .partner-detail-hero-grid,
  .partner-two-col,
  .partner-contact-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .guide-card-grid {
    grid-template-columns: 1fr 1fr;
  }

  .partner-detail-logo {
    min-height: 320px;
  }
}

@media (max-width: 680px) {
  .partner-detail-hero {
    padding: 55px 0 65px;
  }

  .partner-detail-hero h1 {
    font-size: 48px;
  }

  .partner-detail-logo {
    min-height: 250px;
  }

  .partner-detail-logo img {
    max-height: 180px;
  }

  .guide-card-grid,
  .key-point-list {
    grid-template-columns: 1fr;
  }

  .guide-card {
    min-height: 220px;
  }

  .guide-icon {
    margin-bottom: 28px;
  }

  .contact-person-card {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   HOME — UPCOMING EVENTS + LIVE COUNTDOWNS
   ========================================================= */
.upcoming-events-home{position:relative;overflow:hidden;padding:58px 0 62px;background:radial-gradient(circle at 85% 15%,rgba(239,134,46,.20),transparent 27%),linear-gradient(145deg,#0b4f37 0%,#073b2c 58%,#062e25 100%);color:#fff}
.upcoming-events-home::after{content:"";position:absolute;width:340px;height:340px;right:-130px;bottom:-180px;border-radius:50%;border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.015);pointer-events:none}
.upcoming-events-heading{position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}
.upcoming-events-heading h2{color:#fff;font-size:clamp(36px,4vw,52px)}
.upcoming-events-link{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.82);font-size:13px;font-weight:800;padding-bottom:6px}.upcoming-events-link:hover{color:#fff}
.upcoming-events-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.upcoming-event-card{position:relative;overflow:hidden;min-height:395px;padding:27px;border-radius:28px;border:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;box-shadow:0 25px 55px rgba(0,0,0,.14)}
.freshers-upcoming{background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.15),transparent 28%),linear-gradient(145deg,#177353,#0d513d)}
.diwali-upcoming{background:radial-gradient(circle at 88% 12%,rgba(255,189,92,.22),transparent 30%),linear-gradient(145deg,#692b20,#421b1b 58%,#28151b)}
.upcoming-event-card::after{content:"";position:absolute;width:180px;height:180px;right:-70px;bottom:-85px;border-radius:50%;border:1px solid rgba(255,255,255,.13);box-shadow:0 0 0 36px rgba(255,255,255,.025);pointer-events:none}
.upcoming-event-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between}.upcoming-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;background:#fff;color:var(--green);font-size:9px;font-weight:900;letter-spacing:.12em}.big-event-badge{background:#f5b643;color:#321717}.upcoming-event-icon{font-size:34px}
.upcoming-event-main{position:relative;z-index:2;margin-top:28px}.upcoming-event-date{color:#ffc37a;font-size:10px;font-weight:900;letter-spacing:.15em}.upcoming-event-main h3{margin-top:5px;color:#fff;font-size:clamp(25px,2.4vw,32px);letter-spacing:-1px}.upcoming-event-details{display:flex;flex-direction:column;gap:5px;margin-top:13px;color:rgba(255,255,255,.72);font-size:12px;font-weight:600}
.countdown{position:relative;z-index:2;margin-top:auto;padding-top:25px}.countdown-title{margin-bottom:9px;color:rgba(255,255,255,.55);font-size:8px;font-weight:900;letter-spacing:.17em}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.countdown-grid>div{min-width:0;padding:12px 7px 10px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);text-align:center}.countdown-grid strong{display:block;font-family:"Manrope",sans-serif;color:#fff;font-size:clamp(20px,2.4vw,28px);line-height:1}.countdown-grid span{display:block;margin-top:5px;color:rgba(255,255,255,.52);font-size:8px;font-weight:700;text-transform:uppercase}.countdown-status{min-height:18px;margin-top:9px;color:rgba(255,255,255,.60);font-size:10px}.countdown.event-arrived .countdown-grid>div{background:rgba(255,255,255,.16)}.countdown.event-arrived .countdown-status{color:#ffd08c;font-weight:800}
@media(max-width:840px){.upcoming-events-grid{grid-template-columns:1fr}.upcoming-event-card{min-height:370px}.countdown-grid strong{font-size:26px}}
@media(max-width:600px){.upcoming-events-home{padding:45px 0 50px}.upcoming-events-heading{align-items:flex-start;flex-direction:column;gap:12px}.upcoming-event-card{padding:22px;min-height:365px}.countdown-grid{gap:5px}.countdown-grid>div{padding:10px 3px 9px}.countdown-grid strong{font-size:21px}.countdown-grid span{font-size:7px}}


/* =========================================================
   EVENTS PAGE — COMPACT UPCOMING EVENTS
   ========================================================= */

.events-upcoming-section {
  padding: 20px 0 84px;
}

.events-upcoming-head {
  display: grid;
  grid-template-columns: 1fr .7fr;
  gap: 50px;
  align-items: end;
  margin-bottom: 25px;
}

.events-upcoming-head h2 {
  font-size: clamp(32px, 3.5vw, 46px);
}

.events-upcoming-intro {
  color: var(--muted);
  font-size: 14px;
  max-width: 420px;
}

.events-upcoming-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.events-upcoming-card {
  position: relative;
  overflow: hidden;
  min-height: 270px;
  padding: 22px;
  border-radius: 24px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 16px 38px rgba(20,36,29,.10);
}

.events-upcoming-card::after {
  content: "";
  position: absolute;
  width: 135px;
  height: 135px;
  right: -55px;
  bottom: -60px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 0 0 30px rgba(255,255,255,.025);
  pointer-events: none;
}

.compact-freshers {
  background:
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.13), transparent 27%),
    linear-gradient(145deg, #177353, #0d513d);
}

.compact-diwali {
  background:
    radial-gradient(circle at 90% 10%, rgba(255,190,95,.20), transparent 28%),
    linear-gradient(145deg, #692b20, #421b1b 58%, #28151b);
}

.events-upcoming-card-head {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.mini-event-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: #fff;
  color: var(--green);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .11em;
}

.mini-big-event {
  background: #f5b643;
  color: #321717;
}

.mini-event-date {
  margin-top: 8px;
  color: #ffc37a;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
}

.mini-event-icon {
  font-size: 29px;
}

.events-upcoming-card h3 {
  position: relative;
  z-index: 2;
  margin-top: 15px;
  font-size: 23px;
  letter-spacing: -.7px;
}

.mini-event-info {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 9px;
  color: rgba(255,255,255,.70);
  font-size: 11px;
}

.compact-countdown {
  padding-top: 19px;
}

.compact-countdown-title {
  margin-bottom: 7px;
  color: rgba(255,255,255,.50);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .15em;
}

.compact-countdown-grid {
  display: grid;
  grid-template-columns: repeat(4, 60px);
  gap: 6px;
}

.compact-countdown-grid > div {
  padding: 9px 5px 7px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.08);
  text-align: center;
  backdrop-filter: blur(8px);
}

.compact-countdown-grid strong {
  display: block;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-size: 18px;
  line-height: 1;
}

.compact-countdown-grid span {
  display: block;
  margin-top: 3px;
  color: rgba(255,255,255,.48);
  font-size: 7px;
  font-weight: 800;
}

.compact-status {
  min-height: 13px;
  margin-top: 6px;
  font-size: 8px;
}

@media (max-width: 820px) {
  .events-upcoming-head {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .events-upcoming-grid {
    grid-template-columns: 1fr;
  }

  .events-upcoming-card {
    min-height: 255px;
  }
}

@media (max-width: 480px) {
  .events-upcoming-section {
    padding-bottom: 65px;
  }

  .events-upcoming-card {
    padding: 19px;
  }

  .compact-countdown-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}


/* =========================================================
   EVENTS PAGE — YEAR ARCHIVE / YEAR SLATE
   ========================================================= */

.event-archive-section {
  padding: 92px 0 105px;
  background: #f5f0e6;
  border-top: 1px solid var(--line);
}

.event-archive-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 38px;
}

.event-archive-heading h2 {
  font-size: clamp(36px, 4vw, 54px);
}

.event-archive-heading > p {
  max-width: 470px;
  color: var(--muted);
  font-size: 15px;
}

.event-archive-layout {
  display: grid;
  grid-template-columns: 138px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.event-year-rail {
  position: sticky;
  top: 108px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 14px 34px rgba(31,43,37,.05);
}

.year-rail-title {
  padding: 4px 7px 12px;
  color: #939d97;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .16em;
}

.event-year-buttons {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.event-year-button {
  width: 100%;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #78827d;
  padding: 13px 10px;
  font-family: "Manrope", sans-serif;
  font-size: 20px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
  transition:
    background .2s ease,
    color .2s ease,
    transform .2s ease;
}

.event-year-button:hover {
  background: rgba(11,79,55,.07);
  color: var(--green);
}

.event-year-button.active {
  background: var(--green);
  color: #fff;
  box-shadow: 0 10px 22px rgba(11,79,55,.18);
}

.event-year-button.active::after {
  content: "→";
  float: right;
  font-size: 14px;
  line-height: 1.9;
}

.event-year-button.current-year::before {
  content: "•";
  margin-right: 6px;
  color: var(--saffron);
}

.event-year-button.active.current-year::before {
  color: #ffc37a;
}

.event-year-content {
  min-width: 0;
}

.event-year-panel {
  display: none;
  animation: yearPanelIn .28s ease;
}

.event-year-panel.active {
  display: block;
}

@keyframes yearPanelIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.year-panel-heading {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: end;
  margin-bottom: 26px;
}

.year-panel-heading h2 {
  font-size: clamp(32px, 3.7vw, 48px);
}

.year-event-count {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.65);
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.year-highlight-card {
  margin-top: 22px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: center;
  border-radius: 25px;
  padding: 25px 27px;
  background: var(--saffron);
  color: #fff;
}

.year-highlight-number {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: rgba(255,255,255,.16);
  font-family: "Manrope", sans-serif;
  font-size: 36px;
  font-weight: 900;
}

.year-highlight-card .section-label {
  margin-bottom: 3px;
}

.year-highlight-card h3 {
  font-size: 21px;
}

.year-highlight-card p:last-child {
  margin-top: 4px;
  color: rgba(255,255,255,.76);
  font-size: 12px;
}

.year-partner-thanks {
  margin-top: 16px;
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 30px;
  align-items: center;
  padding: 25px 27px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.55);
}

.year-partner-thanks h3 {
  font-size: 20px;
}

.year-partner-thanks > div:first-child > p:last-child {
  max-width: 600px;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.year-thanks-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.year-thanks-logos span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: #5e6963;
  font-size: 10px;
  font-weight: 800;
}

.year-empty-state {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border: 1px dashed rgba(24,34,30,.18);
  border-radius: 28px;
  padding: 42px;
  background: rgba(255,255,255,.4);
}

.year-empty-state > span {
  color: rgba(11,79,55,.12);
  font-family: "Manrope", sans-serif;
  font-size: clamp(70px, 10vw, 120px);
  font-weight: 900;
  line-height: .8;
  letter-spacing: -6px;
}

.year-empty-state h3 {
  margin-top: 30px;
  font-size: 24px;
}

.year-empty-state p {
  max-width: 600px;
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}

@media (max-width: 900px) {
  .event-archive-heading {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .event-archive-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .event-year-rail {
    position: static;
    padding: 10px;
    overflow-x: auto;
  }

  .year-rail-title {
    display: none;
  }

  .event-year-buttons {
    flex-direction: row;
    min-width: max-content;
  }

  .event-year-button {
    width: auto;
    min-width: 88px;
    text-align: center;
    padding: 11px 17px;
    font-size: 17px;
  }

  .event-year-button.active::after {
    display: none;
  }

  .year-highlight-card {
    grid-template-columns: auto 1fr;
  }

  .year-highlight-card .btn {
    grid-column: 2;
    justify-self: start;
  }

  .year-partner-thanks {
    grid-template-columns: 1fr;
  }

  .year-thanks-logos {
    justify-content: flex-start;
  }
}

@media (max-width: 600px) {
  .event-archive-section {
    padding: 70px 0 80px;
  }

  .year-panel-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .year-highlight-card {
    grid-template-columns: 1fr;
  }

  .year-highlight-card .btn {
    grid-column: 1;
  }

  .year-highlight-number {
    width: 58px;
    height: 58px;
    font-size: 31px;
  }

  .year-empty-state {
    min-height: 300px;
    padding: 28px;
  }

  .year-empty-state > span {
    font-size: 74px;
  }
}


/* =========================================================
   HEADER — JOIN ISG CTA
   ========================================================= */

.nav-links .join-nav-link {
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--green);
  color: #fff;
}

.nav-links .join-nav-link::after {
  display: none;
}

.nav-links .join-nav-link:hover,
.nav-links .join-nav-link.active {
  background: var(--green-2);
  color: #fff;
}


/* =========================================================
   JOIN ISG PAGE
   ========================================================= */

.join-hero {
  position: relative;
  overflow: hidden;
  padding: 82px 0 95px;
}

.join-hero::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  left: -190px;
  top: -160px;
  border-radius: 50%;
  background: var(--saffron);
  filter: blur(120px);
  opacity: .12;
}

.join-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 85px;
  align-items: center;
}

.join-hero-copy h1 {
  max-width: 780px;
}

.join-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.join-hero-card {
  min-height: 410px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 34px;
  padding: 35px;
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.16), transparent 27%),
    linear-gradient(145deg, var(--green), var(--green-deep));
  color: #fff;
  box-shadow: var(--shadow);
}

.join-logo-circle {
  width: 180px;
  height: 180px;
  margin-bottom: auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
}

.join-logo-circle img {
  width: 165px;
  height: 165px;
  object-fit: contain;
}

.join-hero-card > p {
  color: #ffc37a;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .15em;
}

.join-hero-card h2 {
  margin-top: 8px;
  color: #fff;
  font-size: 30px;
  letter-spacing: -1px;
}

.join-benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}

.join-benefit-card {
  min-height: 270px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.5);
}

.join-benefit-card > span {
  display: block;
  margin-top: 38px;
  font-size: 38px;
}

.join-benefit-card h3 {
  margin-top: 21px;
  font-size: 19px;
}

.join-benefit-card p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}

.join-process-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 90px;
  align-items: start;
}

.join-process-intro {
  margin-top: 17px;
  color: var(--muted);
  font-size: 16px;
}

.join-steps {
  border-top: 1px solid var(--line);
}

.join-step {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.join-step > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.join-step h3 {
  font-size: 18px;
}

.join-step p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.join-form-section {
  padding: 90px 0;
  background: var(--green);
  color: #fff;
}

.join-form-card {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 90px;
  align-items: center;
}

.join-form-card h2 {
  color: #fff;
}

.join-form-card > div:first-child > p:last-child {
  max-width: 600px;
  margin-top: 15px;
  color: rgba(255,255,255,.68);
}

.join-form-action {
  padding: 24px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 24px;
  background: rgba(255,255,255,.07);
}

.join-google-form-button {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 14px;
  align-items: center;
  min-height: 82px;
  padding: 14px 16px;
  border-radius: 18px;
  background: #fff;
  color: var(--ink);
}

.google-form-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #6f42c1;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-weight: 900;
}

.join-google-form-button strong {
  display: block;
  font-size: 14px;
}

.join-google-form-button small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
}

.join-arrow {
  color: var(--green);
  font-size: 20px;
}

.form-coming-soon {
  opacity: .84;
  cursor: default;
}

.join-form-note {
  margin-top: 13px;
  color: rgba(255,255,255,.58);
  font-size: 10px;
}

.join-form-note a {
  color: #fff;
  font-weight: 800;
}

@media (max-width: 980px) {
  .join-hero-grid,
  .join-process-grid,
  .join-form-card {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .join-benefit-grid {
    grid-template-columns: 1fr 1fr;
  }

  .join-hero-card {
    max-width: 600px;
  }
}

@media (max-width: 680px) {
  .nav-links .join-nav-link {
    text-align: center;
    margin: 5px 0;
  }

  .join-hero {
    padding: 60px 0 70px;
  }

  .join-benefit-grid {
    grid-template-columns: 1fr;
  }

  .join-benefit-card {
    min-height: 220px;
  }

  .join-form-section {
    padding: 70px 0;
  }

  .join-google-form-button {
    grid-template-columns: 43px 1fr auto;
  }
}


/* =========================================================
   JOIN ISG — WEBSITE REGISTRATION FORM
   ========================================================= */

.join-registration-section {
  padding: 95px 0 105px;
  background: #f5f0e6;
  border-top: 1px solid var(--line);
}

.join-registration-heading {
  display: grid;
  grid-template-columns: 1fr .75fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 34px;
}

.join-registration-heading h2 {
  font-size: clamp(36px, 4vw, 54px);
}

.join-registration-heading > p {
  max-width: 500px;
  color: var(--muted);
  font-size: 15px;
}

.isg-registration-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-section-card,
.form-submit-card {
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255,255,255,.76);
  padding: 28px;
  box-shadow: 0 14px 34px rgba(31,43,37,.045);
}

.form-section-title {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 15px;
  align-items: start;
  padding-bottom: 23px;
  margin-bottom: 23px;
  border-bottom: 1px solid var(--line);
}

.form-section-title > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #e8f0ec;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.form-section-title h3 {
  font-size: 20px;
}

.form-section-title p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.form-grid {
  display: grid;
  gap: 20px;
}

.form-grid.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-field {
  min-width: 0;
}

.form-field.full-width {
  grid-column: 1 / -1;
}

.form-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.form-field label em,
.consent-row em,
.form-required-note em {
  color: var(--saffron);
  font-style: normal;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  border: 1px solid #d9dedb;
  border-radius: 14px;
  background: #fff;
  padding: 13px 14px;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.form-field textarea {
  resize: vertical;
  min-height: 115px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: rgba(11,79,55,.55);
  box-shadow: 0 0 0 4px rgba(11,79,55,.07);
}

.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea {
  border-color: #b84242;
}

.field-error {
  display: block;
  min-height: 15px;
  margin-top: 5px;
  color: #b84242;
  font-size: 10px;
  font-weight: 700;
}

.choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.choice-card {
  position: relative;
  display: block !important;
  margin: 0 !important;
  cursor: pointer;
}

.choice-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.choice-card span {
  min-height: 86px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid #d9dedb;
  border-radius: 15px;
  padding: 14px;
  background: #fff;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.choice-card:hover span {
  transform: translateY(-2px);
  border-color: rgba(11,79,55,.35);
}

.choice-card input:checked + span {
  border-color: var(--green);
  background: #edf5f1;
  box-shadow: inset 0 0 0 1px var(--green);
}

.choice-card strong {
  color: var(--ink);
  font-size: 12px;
}

.choice-card small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
}

.interest-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.interest-option {
  position: relative;
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin: 0 !important;
  padding: 14px;
  border: 1px solid #d9dedb;
  border-radius: 16px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.interest-option:hover {
  transform: translateY(-2px);
  border-color: rgba(11,79,55,.35);
}

.interest-option input {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.interest-option:has(input:checked) {
  border-color: var(--green);
  background: #edf5f1;
  box-shadow: inset 0 0 0 1px var(--green);
}

.interest-option > span {
  font-size: 25px;
}

.interest-option strong {
  padding-right: 15px;
  color: var(--ink);
  font-size: 10px;
  line-height: 1.25;
}

.textarea-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  color: #8d9792;
  font-size: 9px;
}

.form-submit-card {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.consent-row {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 11px;
  align-items: start;
  cursor: pointer;
}

.consent-row input {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  accent-color: var(--saffron);
}

.consent-row span {
  color: rgba(255,255,255,.78);
  font-size: 11px;
  line-height: 1.6;
}

.consent-error {
  margin-left: 31px;
  color: #ffd0c7;
}

.form-submit-bottom {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.13);
}

.form-required-note {
  color: rgba(255,255,255,.7);
  font-size: 9px;
  font-weight: 800;
}

.form-data-note {
  max-width: 520px;
  margin-top: 4px;
  color: rgba(255,255,255,.48);
  font-size: 9px;
}

.registration-submit-btn {
  flex: 0 0 auto;
  background: #fff;
  color: var(--green);
  border-color: #fff;
}

.registration-submit-btn:hover {
  background: #f6f6f3;
  color: var(--green);
}

.registration-message {
  display: none;
  margin-top: 18px;
  border-radius: 14px;
  padding: 13px 15px;
  font-size: 11px;
  font-weight: 700;
}

.registration-message.show {
  display: block;
}

.registration-message.success {
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
}

.registration-message.error {
  background: rgba(173,52,52,.22);
  color: #ffe3e3;
  border: 1px solid rgba(255,210,210,.2);
}

@media (max-width: 980px) {
  .join-registration-heading {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .interest-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .join-registration-section {
    padding: 72px 0 82px;
  }

  .form-grid.two-col,
  .choice-grid {
    grid-template-columns: 1fr;
  }

  .interest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-submit-bottom {
    align-items: stretch;
    flex-direction: column;
  }

  .registration-submit-btn {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 450px) {
  .form-section-card,
  .form-submit-card {
    padding: 20px;
    border-radius: 21px;
  }

  .interest-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .interest-option {
    min-height: 100px;
    padding: 12px;
  }
}


/* =========================================================
   HOMEPAGE V2 — REBUILT AUGUST 2026
   ========================================================= */

.home-v2 {
  overflow: hidden;
}

/* HERO */
.home-v2-hero {
  position: relative;
  min-height: 720px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background: #073b2c;
}

.home-v2-hero-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(3,25,18,.96) 0%, rgba(4,39,28,.90) 43%, rgba(4,39,28,.40) 74%, rgba(4,39,28,.64) 100%),
    linear-gradient(180deg, rgba(3,24,18,.05), rgba(3,24,18,.60)),
    url("assets/events/icw-2026.jpg");
  background-size: cover;
  background-position: center 48%;
  transform: scale(1.01);
}

.home-v2-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 78% 24%, rgba(244,144,61,.24), transparent 25%),
    linear-gradient(180deg, transparent 70%, rgba(3,24,18,.24));
}

.home-v2-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .62fr);
  gap: 65px;
  align-items: center;
}

.home-v2-hero-copy {
  max-width: 780px;
}

.home-v2-kicker {
  margin-bottom: 18px;
  color: #ffc481;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
}

.home-v2-hero h1 {
  max-width: 780px;
  color: #fff;
  font-size: clamp(58px, 7vw, 94px);
  line-height: .94;
  letter-spacing: -4px;
}

.home-v2-hero h1 span {
  color: #f49a52;
}

.home-v2-hero h2 {
  margin-top: 12px;
  color: rgba(255,255,255,.92);
  font-size: clamp(25px, 3.2vw, 42px);
  letter-spacing: -1.6px;
}

.home-v2-hero-lead {
  max-width: 640px;
  margin-top: 22px;
  color: rgba(255,255,255,.70);
  font-size: 16px;
  line-height: 1.75;
}

.home-v2-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 30px;
}

.home-v2-light-btn {
  border: 1px solid rgba(255,255,255,.30);
  background: rgba(255,255,255,.08);
  color: #fff;
  backdrop-filter: blur(10px);
}

.home-v2-light-btn:hover {
  background: #fff;
  color: #0b4f37;
}

.home-v2-values {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 36px;
}

.home-v2-values span {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 0 11px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.67);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
}

.home-v2-hero-identity {
  display: flex;
  justify-content: flex-end;
}

.home-v2-logo-card {
  width: min(100%, 350px);
  min-height: 395px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 34px;
  background: rgba(255,255,255,.11);
  box-shadow: 0 30px 80px rgba(0,0,0,.20);
  backdrop-filter: blur(18px);
}

.home-v2-logo-card img {
  width: 100%;
  max-height: 285px;
  object-fit: contain;
  padding: 13px;
  border-radius: 25px;
  background: rgba(255,255,255,.94);
}

.home-v2-logo-card p {
  color: rgba(255,255,255,.74);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-align: center;
}


/* SHARED SECTION HEAD */
.home-v2-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 35px;
  margin-bottom: 30px;
}

.home-v2-section-head h2,
.home-v2-partners-head h2 {
  font-size: clamp(34px, 4vw, 52px);
}

.home-v2-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #0b4f37;
  font-size: 12px;
  font-weight: 900;
}

.home-v2-text-link:hover {
  gap: 12px;
}


/* UPCOMING EVENTS */
.home-v2-upcoming {
  padding: 86px 0 92px;
  background: #fffdf8;
}

.home-v2-event-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.home-v2-event-card {
  position: relative;
  overflow: hidden;
  min-height: 375px;
  display: flex;
  flex-direction: column;
  padding: 28px;
  border-radius: 28px;
  color: #fff;
  box-shadow: 0 20px 45px rgba(22,40,31,.10);
}

.home-v2-event-card::after {
  content: "";
  position: absolute;
  width: 210px;
  height: 210px;
  right: -90px;
  bottom: -100px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow:
    0 0 0 42px rgba(255,255,255,.025),
    0 0 0 82px rgba(255,255,255,.015);
}

.home-v2-event-freshers {
  background:
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.15), transparent 26%),
    linear-gradient(145deg, #177353, #0a4938);
}

.home-v2-event-diwali {
  background:
    radial-gradient(circle at 88% 12%, rgba(255,186,93,.24), transparent 26%),
    linear-gradient(145deg, #752f20, #451d1c 55%, #2a171b);
}

.home-v2-event-card-top,
.home-v2-event-card > p,
.home-v2-event-card > h3,
.home-v2-event-meta,
.home-v2-countdown {
  position: relative;
  z-index: 2;
}

.home-v2-event-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.home-v2-event-badge {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 0 10px;
  border-radius: 999px;
  background: #fff;
  color: #0b4f37;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
}

.home-v2-big-event {
  background: #f7b94e;
  color: #321717;
}

.home-v2-event-emoji {
  font-size: 31px;
}

.home-v2-event-date {
  margin-top: 25px;
  color: #ffc67f;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .16em;
}

.home-v2-event-card h3 {
  margin-top: 5px;
  color: #fff;
  font-size: 29px;
  letter-spacing: -1px;
}

.home-v2-event-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 10px;
  color: rgba(255,255,255,.68);
  font-size: 11px;
}

.home-v2-countdown {
  margin-top: auto;
  padding-top: 24px;
}

.home-v2-countdown-label {
  margin-bottom: 7px;
  color: rgba(255,255,255,.47);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .16em;
}

.home-v2-countdown-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}

.home-v2-countdown-grid > div {
  padding: 10px 5px 9px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px;
  background: rgba(255,255,255,.08);
  text-align: center;
  backdrop-filter: blur(8px);
}

.home-v2-countdown-grid strong {
  display: block;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-size: 23px;
  line-height: 1;
}

.home-v2-countdown-grid span {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.45);
  font-size: 7px;
  font-weight: 800;
  text-transform: uppercase;
}

.home-v2-countdown-status {
  min-height: 13px;
  margin-top: 7px;
  color: rgba(255,255,255,.50);
  font-size: 8px;
}


/* ABOUT */
.home-v2-about {
  padding: 102px 0 110px;
  background: #f5f0e6;
}

.home-v2-about-intro {
  display: grid;
  grid-template-columns: 1.15fr .75fr;
  gap: 75px;
  align-items: end;
}

.home-v2-about-intro h2 {
  max-width: 760px;
  font-size: clamp(39px, 4.8vw, 62px);
  line-height: 1.04;
}

.home-v2-about-intro > div:last-child > p {
  margin-bottom: 18px;
  color: #68736d;
  font-size: 15px;
  line-height: 1.75;
}

.home-v2-purpose-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 48px;
}

.home-v2-purpose-grid article {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 25px;
  border: 1px solid rgba(39,55,47,.10);
  border-radius: 25px;
  background: rgba(255,255,255,.66);
}

.home-v2-purpose-grid article > span {
  margin-bottom: auto;
  font-size: 35px;
}

.home-v2-purpose-grid h3 {
  font-size: 20px;
}

.home-v2-purpose-grid p {
  margin-top: 7px;
  color: #6b7670;
  font-size: 12px;
  line-height: 1.6;
}


/* COMMUNITY */
.home-v2-community {
  padding: 100px 0 105px;
  background: #fffdf8;
}

.home-v2-photo-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr .75fr;
  grid-template-rows: 250px 250px;
  gap: 12px;
}

.home-v2-photo {
  position: relative;
  overflow: hidden;
  display: block;
  border-radius: 24px;
  background: #0b4f37;
  color: #fff;
}

.home-v2-photo-main {
  grid-row: 1 / span 2;
}

.home-v2-photo-wide {
  grid-column: 2 / span 2;
}

.home-v2-photo-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .45s ease;
}

.home-v2-photo:hover .home-v2-photo-bg {
  transform: scale(1.035);
}

.home-v2-photo-copy {
  position: absolute;
  z-index: 2;
  left: 21px;
  right: 21px;
  bottom: 20px;
}

.home-v2-photo-copy small {
  display: block;
  margin-bottom: 4px;
  color: #ffc57d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
}

.home-v2-photo-copy strong {
  display: block;
  color: #fff;
  font-size: 18px;
}

.home-v2-photo-main .home-v2-photo-copy strong {
  font-size: 24px;
}

.home-v2-photo-note {
  margin-top: 12px;
  color: #8a938e;
  font-size: 9px;
}


/* 2026 HIGHLIGHT */
.home-v2-highlight {
  padding: 95px 0;
  color: #fff;
  background:
    radial-gradient(circle at 10% 100%, rgba(244,151,69,.17), transparent 28%),
    #0b4f37;
}

.home-v2-highlight-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 80px;
  align-items: center;
}

.home-v2-highlight-copy h2 {
  color: #fff;
  font-size: clamp(40px, 4.8vw, 60px);
  line-height: 1.05;
}

.home-v2-highlight-copy > p:not(.section-label) {
  max-width: 560px;
  margin: 18px 0 25px;
  color: rgba(255,255,255,.66);
  font-size: 14px;
  line-height: 1.7;
}

.home-v2-awards {
  display: grid;
  gap: 12px;
}

.home-v2-awards article {
  display: grid;
  grid-template-columns: 66px 1fr;
  gap: 18px;
  align-items: center;
  padding: 23px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 22px;
  background: rgba(255,255,255,.07);
}

.home-v2-awards article > span {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(255,255,255,.10);
  font-size: 29px;
}

.home-v2-awards small {
  color: #ffc27b;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .14em;
}

.home-v2-awards h3 {
  margin-top: 4px;
  color: #fff;
  font-size: 22px;
}

.home-v2-awards p {
  margin-top: 3px;
  color: rgba(255,255,255,.55);
  font-size: 10px;
}


/* JOIN CTA */
.home-v2-join {
  padding: 90px 0;
  background: #f5f0e6;
}

.home-v2-join-inner {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 75px;
  align-items: center;
  padding: 42px;
  border: 1px solid rgba(39,55,47,.10);
  border-radius: 32px;
  background: #fff;
  box-shadow: 0 20px 48px rgba(31,43,37,.055);
}

.home-v2-join-inner h2 {
  max-width: 660px;
  font-size: clamp(34px, 4.2vw, 52px);
}

.home-v2-join-inner > div:first-child > p:last-child {
  max-width: 620px;
  margin-top: 13px;
  color: #68736d;
  font-size: 13px;
  line-height: 1.7;
}

.home-v2-join-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.home-v2-join-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 22px;
}

.home-v2-join-tags span {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 11px;
  border: 1px solid #e0e5e2;
  border-radius: 999px;
  color: #65716a;
  font-size: 9px;
  font-weight: 800;
}


/* PARTNERS */
.home-v2-partners {
  padding: 95px 0 100px;
  background: #fffdf8;
}

.home-v2-partners-head {
  max-width: 800px;
  margin-bottom: 35px;
}

.home-v2-partner-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.home-v2-partner {
  min-height: 210px;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 23px;
  align-items: center;
  padding: 15px;
  border: 1px solid #e1e4e2;
  border-radius: 25px;
  background: #fff;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}

.home-v2-partner:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 45px rgba(29,43,36,.08);
}

.home-v2-partner-logo {
  height: 180px;
  display: grid;
  place-items: center;
  border-radius: 19px;
  overflow: hidden;
}

.home-v2-partner-tk {
  background: #0ca4dc;
}

.home-v2-partner-db {
  background: #050505;
}

.home-v2-partner-logo img {
  width: 82%;
  height: 82%;
  object-fit: contain;
}

.home-v2-partner > div:last-child {
  padding-right: 13px;
}

.home-v2-partner > div:last-child small {
  color: #f08d3d;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .13em;
}

.home-v2-partner h3 {
  margin-top: 4px;
  font-size: 21px;
}

.home-v2-partner p {
  max-width: 400px;
  margin-top: 5px;
  color: #6d7772;
  font-size: 11px;
  line-height: 1.55;
}

.home-v2-partner > div:last-child > span {
  display: inline-block;
  margin-top: 13px;
  color: #0b4f37;
  font-size: 10px;
  font-weight: 900;
}


/* RESPONSIVE */
@media (max-width: 980px) {
  .home-v2-hero {
    min-height: auto;
    padding: 90px 0;
  }

  .home-v2-hero-inner,
  .home-v2-about-intro,
  .home-v2-highlight-grid,
  .home-v2-join-inner {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .home-v2-hero-identity {
    justify-content: flex-start;
  }

  .home-v2-logo-card {
    min-height: 300px;
  }

  .home-v2-logo-card img {
    max-height: 205px;
  }

  .home-v2-purpose-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .home-v2-photo-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 330px 220px 220px;
  }

  .home-v2-photo-main {
    grid-column: 1 / span 2;
    grid-row: 1;
  }

  .home-v2-photo-wide {
    grid-column: 1 / span 2;
  }

  .home-v2-partner {
    grid-template-columns: 140px 1fr;
  }

  .home-v2-partner-logo {
    height: 145px;
  }
}

@media (max-width: 760px) {
  .home-v2-hero {
    padding: 72px 0 65px;
  }

  .home-v2-hero-bg {
    background-position: 60% center;
  }

  .home-v2-hero h1 {
    font-size: 54px;
    letter-spacing: -2.8px;
  }

  .home-v2-hero h2 {
    font-size: 27px;
  }

  .home-v2-hero-identity {
    display: none;
  }

  .home-v2-event-grid,
  .home-v2-purpose-grid,
  .home-v2-partner-row {
    grid-template-columns: 1fr;
  }

  .home-v2-section-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .home-v2-upcoming,
  .home-v2-about,
  .home-v2-community,
  .home-v2-highlight,
  .home-v2-join,
  .home-v2-partners {
    padding-top: 70px;
    padding-bottom: 75px;
  }

  .home-v2-event-card {
    min-height: 350px;
  }

  .home-v2-purpose-grid article {
    min-height: 220px;
  }

  .home-v2-photo-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, 250px);
  }

  .home-v2-photo-main,
  .home-v2-photo-wide {
    grid-column: auto;
    grid-row: auto;
  }

  .home-v2-highlight-grid {
    gap: 35px;
  }

  .home-v2-join-inner {
    padding: 27px;
  }

  .home-v2-partner {
    grid-template-columns: 115px 1fr;
  }

  .home-v2-partner-logo {
    height: 120px;
  }
}

@media (max-width: 480px) {
  .home-v2-hero h1 {
    font-size: 47px;
  }

  .home-v2-hero-lead {
    font-size: 14px;
  }

  .home-v2-values {
    gap: 5px;
  }

  .home-v2-event-card {
    padding: 22px;
  }

  .home-v2-countdown-grid {
    gap: 4px;
  }

  .home-v2-countdown-grid strong {
    font-size: 19px;
  }

  .home-v2-about-intro h2,
  .home-v2-highlight-copy h2 {
    font-size: 38px;
  }

  .home-v2-partner {
    grid-template-columns: 1fr;
  }

  .home-v2-partner-logo {
    height: 170px;
  }
}


/* =========================================================
   EVENT ARCHIVE — HISTORICAL MEDIA
   ========================================================= */

.event-video-wrap {
  background: #0b1712;
}

.event-video-wrap video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #09130f;
}

.event-history-gallery {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  min-width: 0;
}

.event-history-gallery .event-story-photo {
  min-width: 0;
  height: 100%;
}

.event-history-gallery .event-story-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-history-gallery > .event-photo-label {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 5;
}

.historical-gallery-story .event-history-gallery {
  aspect-ratio: 1.5 / 1;
}

@media (max-width: 760px) {
  .event-history-gallery {
    grid-template-columns: 1fr;
  }

  .historical-gallery-story .event-history-gallery {
    aspect-ratio: auto;
  }

  .event-history-gallery .event-story-photo {
    min-height: 220px;
  }
}


/* =========================================================
   2026 PaTA Ugadi — PHOTO + VIDEO
   ========================================================= */

.event-media-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  min-width: 0;
}

.event-media-stack .event-story-photo {
  min-height: 210px;
}

.event-media-stack .event-video-wrap video {
  min-height: 210px;
}

@media (min-width: 1100px) {
  .event-media-stack {
    grid-template-columns: 1fr 1fr;
  }

  .event-media-stack .event-story-photo {
    min-height: 240px;
  }
}


/* =========================================================
   STUDENT GUIDE PAGE
   ========================================================= */

.sg-hero {
  padding: 90px 0 96px;
  background: radial-gradient(circle at 88% 18%, rgba(239,139,59,.15), transparent 24%), #fffdf8;
}

.sg-hero-grid {
  display: grid;
  grid-template-columns: 1fr .82fr;
  gap: 78px;
  align-items: center;
}

.sg-hero h1 {
  max-width: 780px;
  font-size: clamp(54px, 6.5vw, 82px);
  line-height: .98;
}

.sg-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 28px;
}

.sg-journey-card {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 31px;
  border-radius: 32px;
  background: radial-gradient(circle at 88% 12%, rgba(255,255,255,.14), transparent 25%), linear-gradient(145deg, #0b4f37, #073b2c);
  color: #fff;
  box-shadow: 0 25px 62px rgba(21,41,31,.15);
}

.sg-route {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
}

.sg-route div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.sg-route div > span {
  width: 53px;
  height: 53px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: rgba(255,255,255,.10);
  font-size: 24px;
}

.sg-route div > strong { color: rgba(255,255,255,.78); font-size: 8px; }
.sg-route > b { color: rgba(255,255,255,.25); }

.sg-journey-card > p {
  max-width: 420px;
  color: rgba(255,255,255,.72);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
}

.sg-jumpbar {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.sg-jumpbar-inner {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}

.sg-jumpbar a {
  min-height: 90px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 15px 17px;
  border-right: 1px solid var(--line);
  color: var(--ink);
}

.sg-jumpbar a:first-child { border-left: 1px solid var(--line); }
.sg-jumpbar a:hover { background: #f7f3eb; }
.sg-jumpbar span { color: var(--saffron); font-size: 8px; font-weight: 900; }
.sg-jumpbar strong { margin-top: 3px; font-size: 11px; }

.sg-section { background: #fffdf8; }

.sg-section-head {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 65px;
  align-items: end;
  margin-bottom: 34px;
}

.sg-section-head h2 { max-width: 760px; font-size: clamp(36px, 4vw, 52px); }
.sg-section-head > p { color: var(--muted); font-size: 14px; line-height: 1.7; }

.sg-card-grid, .sg-route-grid, .sg-app-grid, .sg-daily-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.sg-card, .sg-route-card, .sg-app-card, .sg-daily-grid article {
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.72);
}

.sg-card {
  min-height: 330px;
  padding: 25px;
}

.sg-card > span { display: block; margin-bottom: 42px; font-size: 34px; }
.sg-card h3 { font-size: 20px; }
.sg-card ul { margin: 15px 0 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 1.8; }

.sg-tip, .sg-warning {
  margin-top: 17px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 15px;
  align-items: center;
  padding: 19px 21px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #f5f0e6;
}

.sg-tip > span, .sg-warning > span { font-size: 27px; }
.sg-tip strong, .sg-warning strong { font-size: 13px; }
.sg-tip p, .sg-warning p { margin-top: 3px; color: var(--muted); font-size: 11px; }

.sg-route-card {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: #fff;
}

.sg-route-card > span { font-size: 28px; }
.sg-route-card small, .sg-app-card small { margin-top: 22px; color: var(--saffron); font-size: 7px; font-weight: 900; letter-spacing: .13em; }
.sg-route-card h3, .sg-app-card h3 { margin-top: 3px; font-size: 21px; }
.sg-route-card p, .sg-app-card p { margin-top: 12px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.sg-route-card > strong { margin-top: auto; padding-top: 18px; color: var(--green); font-size: 9px; }

.sg-train-terms {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  padding: 22px;
  border-radius: 23px;
  background: var(--green);
}

.sg-train-terms div {
  min-height: 75px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 11px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px;
  background: rgba(255,255,255,.07);
}

.sg-train-terms strong { color: #fff; font-size: 12px; }
.sg-train-terms span { margin-top: 3px; color: rgba(255,255,255,.52); font-size: 8px; }

.sg-app-card {
  min-height: 260px;
  padding: 24px;
  background: #fff;
}

.sg-app-icon {
  width: 55px;
  height: 55px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: #edf4f0;
  font-size: 24px;
}

.sg-steps { border-top: 1px solid var(--line); }

.sg-steps article {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 22px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

.sg-steps article > span {
  width: 47px;
  height: 47px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #fff;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.sg-steps h3 { font-size: 20px; }
.sg-steps p { margin-top: 4px; color: var(--muted); font-size: 12px; }

.sg-daily-grid article {
  min-height: 200px;
  padding: 22px;
}

.sg-daily-grid article > span { font-size: 27px; }
.sg-daily-grid h3 { margin-top: 31px; font-size: 18px; }
.sg-daily-grid p { margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.6; }

.sg-safety {
  padding: 88px 0;
  background: #0b4f37;
  color: #fff;
}

.sg-safety-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 78px;
  align-items: center;
}

.sg-safety h2 { color: #fff; font-size: clamp(38px, 4vw, 52px); }
.sg-safety-grid > div:first-child > p:last-child { margin-top: 13px; color: rgba(255,255,255,.64); font-size: 13px; }

.sg-safety-cards { display: grid; gap: 10px; }

.sg-safety-cards article {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 16px;
  align-items: center;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 19px;
  background: rgba(255,255,255,.07);
}

.sg-safety-cards article > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: rgba(255,255,255,.10);
  color: #ffc47d;
  font-weight: 900;
}

.sg-safety-cards h3 { color: #fff; font-size: 17px; }
.sg-safety-cards p { margin-top: 3px; color: rgba(255,255,255,.54); font-size: 10px; }

.sg-help { padding: 80px 0; background: #f5f0e6; }

.sg-help-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 45px;
  align-items: center;
  padding: 33px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: #fff;
}

.sg-help h2 { font-size: 35px; }
.sg-help-card > div:first-child > p:last-child { margin-top: 6px; color: var(--muted); font-size: 12px; }
.sg-help-actions { display: flex; flex-wrap: wrap; gap: 9px; }

@media (max-width: 980px) {
  .sg-hero-grid, .sg-safety-grid { grid-template-columns: 1fr; gap: 45px; }
  .sg-jumpbar-inner { grid-template-columns: repeat(3, 1fr); }
  .sg-card-grid, .sg-route-grid, .sg-app-grid, .sg-daily-grid { grid-template-columns: 1fr 1fr; }
  .sg-train-terms { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 720px) {
  .sg-hero { padding: 65px 0 72px; }
  .sg-hero h1 { font-size: 49px; }
  .sg-journey-card { min-height: 310px; padding: 23px; }
  .sg-section-head { grid-template-columns: 1fr; gap: 11px; }
  .sg-card-grid, .sg-route-grid, .sg-app-grid, .sg-daily-grid { grid-template-columns: 1fr; }
  .sg-train-terms { grid-template-columns: repeat(2, 1fr); }
  .sg-help-card { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 520px) {
  .sg-jumpbar-inner { display: flex; overflow-x: auto; }
  .sg-jumpbar a { flex: 0 0 130px; }
  .sg-route div > span { width: 38px; height: 38px; border-radius: 12px; font-size: 18px; }
  .sg-route div > strong { font-size: 7px; }
  .sg-route > b { font-size: 12px; }
  .sg-help-actions { flex-direction: column; }
}


/* =========================================================
   STUDENT GUIDE — UPB TRANSPORT / SEMESTER TICKET
   ========================================================= */

.upb-travel-notice {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid #f0d8bd;
  border-radius: 22px;
  background: #fff8ee;
}

.upb-travel-notice-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #fff;
  font-size: 29px;
}

.upb-travel-notice h3 {
  font-size: 20px;
}

.upb-travel-notice > div:last-child > p:last-child {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.65;
}

.db-filter-guide,
.owl-setup {
  margin-top: 18px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 25px;
  background: #fff;
}

.db-filter-guide-head,
.owl-setup-head {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.db-filter-guide-head h3,
.owl-setup-head h3 {
  font-size: 24px;
}

.db-filter-guide-head > span,
.owl-setup-head > span {
  font-size: 32px;
}

.db-filter-steps,
.owl-setup-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.db-filter-steps article,
.owl-setup-steps article {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 13px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #faf9f5;
}

.db-filter-steps article > span,
.owl-setup-steps article > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #eaf2ee;
  color: var(--green);
  font-size: 9px;
  font-weight: 900;
}

.db-filter-steps h4,
.owl-setup-steps h4 {
  font-size: 13px;
}

.db-filter-steps p,
.owl-setup-steps p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

.db-filter-warning {
  margin-top: 11px;
  padding: 15px 17px;
  border-radius: 14px;
  background: #5d251f;
  color: #fff;
}

.db-filter-warning strong {
  font-size: 12px;
}

.db-filter-warning p {
  margin-top: 3px;
  color: rgba(255,255,255,.70);
  font-size: 10px;
}

.upb-app-grid .sg-app-card {
  min-height: 310px;
  display: flex;
  flex-direction: column;
}

.sg-official-link {
  display: inline-flex;
  margin-top: auto;
  padding-top: 18px;
  color: var(--green);
  font-size: 9px;
  font-weight: 900;
}

.sg-official-link:hover {
  text-decoration: underline;
}

.owl-setup-steps {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.owl-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}

.owl-links a {
  display: inline-flex;
  align-items: center;
  min-height: 37px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f5f0e6;
  color: var(--green);
  font-size: 9px;
  font-weight: 900;
}

.semester-ticket-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 17px;
}

.semester-ticket-facts article {
  min-height: 160px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f8f5ee;
}

.semester-ticket-facts article > span {
  font-size: 25px;
}

.semester-ticket-facts h3 {
  margin-top: 15px;
  font-size: 15px;
}

.semester-ticket-facts p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

@media (max-width: 820px) {
  .db-filter-steps,
  .owl-setup-steps,
  .semester-ticket-facts {
    grid-template-columns: 1fr;
  }

  .upb-travel-notice {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .db-filter-guide,
  .owl-setup {
    padding: 20px;
  }

  .db-filter-guide-head,
  .owl-setup-head {
    flex-direction: column;
  }
}


/* =========================================================
   HEADER — STUDENT GUIDE DROPDOWN
   ========================================================= */

.nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
}

.nav-dropdown-main {
  white-space: nowrap;
}

.nav-dropdown-toggle {
  width: 27px;
  height: 34px;
  display: grid;
  place-items: center;
  margin-left: -3px;
  border: 0;
  background: transparent;
  color: #66716b;
  cursor: pointer;
  border-radius: 9px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.nav-dropdown-toggle span {
  display: block;
  font-size: 16px;
  line-height: 1;
  transition: transform .18s ease;
}

.nav-dropdown:hover .nav-dropdown-toggle,
.nav-dropdown:focus-within .nav-dropdown-toggle,
.nav-dropdown.open .nav-dropdown-toggle {
  color: var(--green);
  background: rgba(11,79,55,.06);
}

.nav-dropdown:hover .nav-dropdown-toggle span,
.nav-dropdown:focus-within .nav-dropdown-toggle span,
.nav-dropdown.open .nav-dropdown-toggle span {
  transform: rotate(180deg);
}

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  width: 315px;
  padding: 10px;
  border: 1px solid rgba(35,54,45,.10);
  border-radius: 20px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 65px rgba(22,35,29,.16);
  backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -7px);
  transition:
    opacity .18s ease,
    transform .18s ease,
    visibility .18s ease;
  z-index: 150;
}

.nav-dropdown-menu::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 14px;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.nav-links .nav-dropdown-menu a {
  display: block;
  padding: 11px 13px;
  border-radius: 13px;
  color: var(--ink);
}

.nav-links .nav-dropdown-menu a::after {
  display: none;
}

.nav-links .nav-dropdown-menu a:hover {
  background: #f1f5f2;
  color: var(--green);
}

.nav-dropdown-menu a span {
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.nav-dropdown-menu a small {
  display: block;
  margin-top: 2px;
  color: #87908b;
  font-size: 9px;
  font-weight: 500;
  line-height: 1.4;
}

.nav-dropdown-menu .nav-dropdown-overview {
  margin-bottom: 5px;
  background: #edf4f0;
}

.nav-dropdown-menu .nav-dropdown-overview span {
  color: var(--green);
}


/* ---------------------------------------------------------
   Student Guide — readable practical information
   --------------------------------------------------------- */

#before-travel,
#travel,
#apps,
#first-days,
#student-life,
#safety {
  scroll-margin-top: 115px;
}

.sg-jumpbar strong {
  font-size: 13px;
}

.sg-jumpbar span {
  font-size: 9px;
}

.sg-section-head > p {
  font-size: 16px;
}

.sg-card h3 {
  font-size: 21px;
}

.sg-card ul {
  font-size: 14px;
  line-height: 1.8;
}

.sg-tip p,
.sg-warning p {
  font-size: 13px;
  line-height: 1.6;
}

.sg-route-card p,
.sg-app-card p {
  font-size: 14px;
  line-height: 1.7;
}

.sg-route-card > strong {
  font-size: 11px;
  line-height: 1.5;
}

.sg-train-terms strong {
  font-size: 13px;
}

.sg-train-terms span {
  font-size: 10px;
  line-height: 1.4;
}

.sg-steps h3 {
  font-size: 21px;
}

.sg-steps p {
  font-size: 14px;
  line-height: 1.65;
}

.sg-daily-grid h3 {
  font-size: 19px;
}

.sg-daily-grid p {
  font-size: 13px;
  line-height: 1.65;
}

.sg-safety-grid > div:first-child > p:last-child {
  font-size: 15px;
  line-height: 1.7;
}

.sg-safety-cards p {
  font-size: 12px;
  line-height: 1.55;
}

.upb-travel-notice > div:last-child > p:last-child {
  font-size: 14px;
  line-height: 1.7;
}

.db-filter-steps h4,
.owl-setup-steps h4 {
  font-size: 14px;
}

.db-filter-steps p,
.owl-setup-steps p {
  font-size: 12px;
  line-height: 1.6;
}

.db-filter-warning p {
  font-size: 12px;
  line-height: 1.55;
}

.sg-official-link {
  font-size: 11px;
}

.semester-ticket-facts h3 {
  font-size: 16px;
}

.semester-ticket-facts p {
  font-size: 12px;
  line-height: 1.6;
}


/* ---------------------------------------------------------
   Mobile dropdown
   --------------------------------------------------------- */

@media(max-width:1000px) {
  .nav-dropdown {
    display: grid;
    grid-template-columns: 1fr 46px;
    align-items: center;
    width: 100%;
  }

  .nav-dropdown-main {
    padding: 13px 12px !important;
  }

  .nav-dropdown-toggle {
    width: 42px;
    height: 42px;
    margin: 0;
    justify-self: end;
    border: 1px solid var(--line);
    background: #f7f3eb;
  }

  .nav-dropdown-menu {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    margin: 3px 0 7px;
    padding: 7px;
    border-radius: 15px;
    box-shadow: none;
    background: #f7f5ef;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    display: none;
  }

  .nav-dropdown.open .nav-dropdown-menu {
    display: block;
    transform: none;
  }

  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown:focus-within .nav-dropdown-menu {
    display: none;
  }

  .nav-dropdown.open:hover .nav-dropdown-menu,
  .nav-dropdown.open:focus-within .nav-dropdown-menu {
    display: block;
  }

  .nav-links .nav-dropdown-menu a {
    padding: 10px 12px;
  }

  .nav-dropdown-menu a span {
    font-size: 13px;
  }

  .nav-dropdown-menu a small {
    font-size: 10px;
  }
}

@media(max-width:720px) {
  #before-travel,
  #travel,
  #apps,
  #first-days,
  #student-life,
  #safety {
    scroll-margin-top: 92px;
  }

  .sg-section-head > p {
    font-size: 15px;
  }

  .sg-card ul,
  .sg-route-card p,
  .sg-app-card p,
  .sg-steps p {
    font-size: 13.5px;
  }
}

/* ===== SIMPLIFIED STUDENT GUIDE ===== */
.sg-simple{background:#fffdf8}.sgs-hero{padding:76px 0 48px}.sgs-hero h1{font-size:clamp(50px,6vw,76px);line-height:.98;letter-spacing:-3px}.sgs-hero p:last-child{max-width:760px;margin-top:18px;color:var(--muted);font-size:18px;line-height:1.7}.sgs-picker{padding:25px 0 52px}.sgs-picker-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:20px}.sgs-picker-head h2{font-size:clamp(30px,3.6vw,42px)}.sgs-picker-head p{max-width:420px;color:var(--muted);font-size:15px}.sgs-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sgs-tab{min-height:108px;display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:19px;background:#fff;text-align:left;cursor:pointer}.sgs-tab:hover,.sgs-tab.active{border-color:var(--green);background:#edf4f0}.sgs-tab>b{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#f5f0e6;font-size:22px}.sgs-tab span strong{display:block;font-size:16px}.sgs-tab span small{display:block;margin-top:4px;color:#77817c;font-size:12px;line-height:1.35}.sgs-content{padding-bottom:95px}.sgs-content>.container{max-width:980px}.sgs-panel{padding:36px;border:1px solid var(--line);border-radius:27px;background:#fff;box-shadow:0 18px 48px rgba(29,43,36,.05);scroll-margin-top:105px}.sgs-panel[hidden]{display:none!important}.sgs-panel>header{display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:center;padding-bottom:25px;border-bottom:1px solid var(--line)}.sgs-panel>header>b{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:#edf4f0;font-size:27px}.sgs-panel>header small{color:var(--saffron);font-size:9px;font-weight:900;letter-spacing:.12em}.sgs-panel>header h2{margin-top:3px;font-size:clamp(30px,3.6vw,41px)}.sgs-lead{margin-top:24px;color:var(--muted);font-size:16px;line-height:1.7}.sgs-block{padding:25px 0;border-bottom:1px solid var(--line)}.sgs-block h3{font-size:20px}.sgs-block p,.sgs-block li{color:#56615b;font-size:16px;line-height:1.75}.sgs-block p,.sgs-block ul,.sgs-block ol{margin-top:10px}.sgs-block ul,.sgs-block ol{padding-left:22px}.sgs-note{margin-top:22px;padding:18px 20px;border-left:4px solid var(--saffron);border-radius:0 14px 14px 0;background:#fff7ec}.sgs-note strong{font-size:16px}.sgs-note p{margin-top:4px;color:#5d655f;font-size:15px;line-height:1.65}.sgs-next{margin-top:25px;min-height:45px;padding:0 16px;border:0;border-radius:12px;background:var(--green);color:#fff;font-size:13px;font-weight:800;cursor:pointer}.sgs-routes{margin-top:20px;border-top:1px solid var(--line)}.sgs-routes>div{display:grid;grid-template-columns:250px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.sgs-routes strong{font-size:17px}.sgs-routes p{color:#59645e;font-size:15px;line-height:1.65}.sgs-ticket{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.sgs-ticket>div{padding:19px;border-radius:17px}.sgs-ticket .yes{background:#eaf5ef;color:#0b4f37}.sgs-ticket .no{background:#fff0ed;color:#763126}.sgs-ticket p{margin-top:8px;font-size:14px;line-height:1.5}.sgs-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.sgs-links a{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#f7f4ed;color:var(--green);font-size:12px;font-weight:800}.sgs-steps>div{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.sgs-steps>div>b{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#edf4f0;color:var(--green);font-size:10px}.sgs-steps strong{font-size:18px}.sgs-steps p{margin-top:4px;color:#59645e;font-size:15px;line-height:1.6}.sgs-life{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:15px}.sgs-life>div{padding:21px 0;border-bottom:1px solid var(--line)}.sgs-life strong{font-size:18px}.sgs-life p{margin-top:4px;color:#59645e;font-size:15px;line-height:1.6}.sgs-emergency{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.sgs-emergency>div{display:flex;align-items:center;gap:18px;padding:20px;border-radius:17px;background:var(--green);color:#fff}.sgs-emergency strong{font-size:28px;color:#ffc47d}.sgs-emergency span{font-size:14px;color:rgba(255,255,255,.8)}@media(max-width:850px){.sgs-tabs{grid-template-columns:1fr 1fr}.sgs-routes>div{grid-template-columns:1fr;gap:7px}.sgs-picker-head{align-items:flex-start;flex-direction:column;gap:7px}}@media(max-width:620px){.sgs-hero{padding:58px 0 38px}.sgs-hero h1{font-size:46px;letter-spacing:-2px}.sgs-hero p:last-child{font-size:16px}.sgs-tabs{grid-template-columns:1fr}.sgs-tab{min-height:88px}.sgs-panel{padding:23px 19px;border-radius:21px}.sgs-panel>header{grid-template-columns:46px 1fr}.sgs-panel>header>b{width:46px;height:46px;font-size:22px}.sgs-block p,.sgs-block li{font-size:15px}.sgs-ticket,.sgs-life,.sgs-emergency{grid-template-columns:1fr}}


/* =========================================================
   STUDENT GUIDE — OFFICIAL SEMESTER TICKET RESOURCES
   ========================================================= */

.sgs-resource-box {
  margin-top: 24px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: #f7f5ef;
}

.sgs-resource-title {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 13px;
  align-items: start;
}

.sgs-resource-title > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  font-size: 20px;
}

.sgs-resource-title strong {
  display: block;
  font-size: 17px;
}

.sgs-resource-title p {
  max-width: 720px;
  margin-top: 4px;
  color: #65706a;
  font-size: 14px;
  line-height: 1.6;
}

.sgs-resource-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 9px;
  margin-top: 16px;
}

.sgs-resource-links a {
  min-height: 82px;
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 11px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.sgs-resource-links a:hover {
  transform: translateY(-2px);
  border-color: rgba(11,79,55,.24);
  box-shadow: 0 10px 24px rgba(30,45,37,.06);
}

.sgs-resource-links a > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #edf4f0;
  font-size: 18px;
}

.sgs-resource-links strong {
  display: block;
  font-size: 13px;
}

.sgs-resource-links small {
  display: block;
  margin-top: 3px;
  color: #78827d;
  font-size: 10px;
  line-height: 1.4;
}

.sgs-resource-links .sgs-pdf-link {
  border-color: rgba(11,79,55,.25);
  background: #edf4f0;
}

.sgs-resource-links .sgs-pdf-link > span {
  background: #fff;
}

@media (max-width: 700px) {
  .sgs-resource-links {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   STUDENT GUIDE — OVERVIEW FIRST
   ========================================================= */

.sgs-picker[data-sg-overview] {
  padding-bottom: 92px;
}

.sgs-picker[data-sg-overview] .sgs-picker-head {
  max-width: 760px;
  margin-bottom: 28px;
}

.sgs-picker[data-sg-overview] .sgs-picker-head p {
  font-size: 16px;
}

.sgs-picker[data-sg-overview] .sgs-tabs {
  max-width: 1040px;
}

.sgs-picker[data-sg-overview] .sgs-tab {
  min-height: 126px;
  cursor: pointer;
}

.sgs-content[hidden] {
  display: none !important;
}

.sgs-content:not([hidden]) {
  padding-top: 62px;
}

.sgs-back {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin-bottom: 22px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f7f4ed;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.sgs-back:hover {
  background: #edf4f0;
}

@media (max-width: 720px) {
  .sgs-picker[data-sg-overview] {
    padding-bottom: 70px;
  }

  .sgs-picker[data-sg-overview] .sgs-tab {
    min-height: 96px;
  }

  .sgs-content:not([hidden]) {
    padding-top: 34px;
  }
}


/* =========================================================
   STUDENT GUIDE — OVERVIEW ALIGNMENT FIX
   ========================================================= */

/* Keep the whole Student Guide intro on one clean visual axis */
.sg-simple .sgs-hero > .container,
.sg-simple .sgs-picker > .container {
  width: min(100% - 40px, 1080px);
  margin-left: auto;
  margin-right: auto;
}

/* Hero is centered instead of visually pulling to the left */
.sg-simple .sgs-hero {
  padding: 72px 0 46px;
  text-align: center;
}

.sg-simple .sgs-hero > .container {
  max-width: 900px;
}

.sg-simple .sgs-hero .section-label {
  display: block;
  text-align: center;
}

.sg-simple .sgs-hero h1 {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

.sg-simple .sgs-hero p:last-child {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}


/* Overview heading: no old left/right split */
.sgs-picker[data-sg-overview] {
  padding-top: 22px;
  padding-bottom: 88px;
}

.sgs-picker[data-sg-overview] .sgs-picker-head {
  display: block;
  max-width: 720px;
  margin: 0 auto 30px;
  text-align: center;
}

.sgs-picker[data-sg-overview] .sgs-picker-head h2 {
  margin: 0;
  line-height: 1.15;
}

.sgs-picker[data-sg-overview] .sgs-picker-head p {
  max-width: 560px;
  margin: 9px auto 0;
  font-size: 16px;
  line-height: 1.6;
}


/* Six choices sit on the same centered grid */
.sgs-picker[data-sg-overview] .sgs-tabs {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.sgs-picker[data-sg-overview] .sgs-tab {
  width: 100%;
  min-width: 0;
  min-height: 122px;
  box-sizing: border-box;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  padding: 18px 19px;
}

.sgs-picker[data-sg-overview] .sgs-tab > b {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
}

.sgs-picker[data-sg-overview] .sgs-tab span {
  min-width: 0;
}

.sgs-picker[data-sg-overview] .sgs-tab span strong,
.sgs-picker[data-sg-overview] .sgs-tab span small {
  overflow-wrap: anywhere;
}


/* Opened guide content uses the same centered axis */
.sgs-content:not([hidden]) > .container {
  width: min(100% - 40px, 980px);
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.sgs-content:not([hidden]) {
  padding-top: 48px;
  padding-bottom: 92px;
}

.sgs-panel {
  width: 100%;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
}


/* Tablet */
@media (max-width: 900px) {
  .sg-simple .sgs-hero > .container,
  .sg-simple .sgs-picker > .container {
    width: min(100% - 34px, 1080px);
  }

  .sgs-picker[data-sg-overview] .sgs-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sgs-picker[data-sg-overview] .sgs-tab {
    min-height: 108px;
  }
}


/* Mobile */
@media (max-width: 620px) {
  .sg-simple .sgs-hero {
    padding: 55px 0 34px;
  }

  .sg-simple .sgs-hero > .container,
  .sg-simple .sgs-picker > .container,
  .sgs-content:not([hidden]) > .container {
    width: min(100% - 28px, 1080px);
  }

  .sg-simple .sgs-hero h1 {
    font-size: 44px;
    line-height: 1.02;
  }

  .sg-simple .sgs-hero p:last-child {
    font-size: 16px;
  }

  .sgs-picker[data-sg-overview] {
    padding-top: 18px;
    padding-bottom: 62px;
  }

  .sgs-picker[data-sg-overview] .sgs-picker-head {
    margin-bottom: 22px;
  }

  .sgs-picker[data-sg-overview] .sgs-picker-head h2 {
    font-size: 30px;
  }

  .sgs-picker[data-sg-overview] .sgs-picker-head p {
    font-size: 15px;
  }

  .sgs-picker[data-sg-overview] .sgs-tabs {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .sgs-picker[data-sg-overview] .sgs-tab {
    min-height: 88px;
    padding: 15px 16px;
  }

  .sgs-picker[data-sg-overview] .sgs-tab > b {
    width: 44px;
    height: 44px;
  }

  .sgs-content:not([hidden]) {
    padding-top: 28px;
  }
}


/* =========================================================
   HOMEPAGE — WINTER SEMESTER 2026/27
   ========================================================= */

.home-ws-guide {
  padding: 88px 0 94px;
  background: #f5f0e6;
}

.home-ws-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 35px;
  margin-bottom: 29px;
}

.home-ws-head h2 {
  max-width: 760px;
  font-size: clamp(35px, 4vw, 52px);
}

.home-ws-head-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.home-ws-updated {
  color: #818b85;
  font-size: 9px;
  font-weight: 800;
}

.home-ws-timeline {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.home-ws-card {
  min-height: 255px;
  display: flex;
  flex-direction: column;
  padding: 22px;
  border: 1px solid rgba(34,52,43,.10);
  border-radius: 22px;
  background: #fff;
}

.home-ws-card-highlight {
  background: #0b4f37;
  color: #fff;
}

.home-ws-icon {
  margin-bottom: 30px;
  font-size: 27px;
}

.home-ws-card small {
  color: var(--saffron);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
}

.home-ws-card h3 {
  margin-top: 5px;
  font-size: 20px;
}

.home-ws-card-highlight h3 {
  color: #fff;
}

.home-ws-card p {
  margin-top: 8px;
  color: #68736d;
  font-size: 12px;
  line-height: 1.65;
}

.home-ws-card-highlight p {
  color: rgba(255,255,255,.68);
}

.home-ws-card a {
  margin-top: auto;
  padding-top: 17px;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.home-ws-card-highlight a {
  color: #ffc47d;
}

.home-ws-note {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  margin-top: 13px;
  padding: 17px 19px;
  border: 1px solid rgba(34,52,43,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
}

.home-ws-note > span {
  font-size: 23px;
}

.home-ws-note p {
  color: #626d67;
  font-size: 11px;
  line-height: 1.6;
}

.home-ws-note a {
  white-space: nowrap;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}


/* =========================================================
   STUDENT GUIDE — UPB WINTER SEMESTER TIMELINE
   ========================================================= */

.upb-ws-detail {
  margin: 22px 0 28px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 21px;
  background: #f8f6f0;
}

.upb-ws-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.upb-ws-detail-head small {
  color: var(--saffron);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
}

.upb-ws-detail-head h3 {
  margin-top: 4px;
  font-size: 24px;
}

.upb-ws-detail-head p {
  max-width: 680px;
  margin-top: 6px;
  color: #68736d;
  font-size: 14px;
  line-height: 1.65;
}

.upb-ws-detail-head > span {
  font-size: 31px;
}

.upb-ws-date-list > div {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 18px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.upb-ws-date-list time {
  width: 82px;
  min-height: 64px;
  display: grid;
  place-items: center;
  align-content: center;
  border-radius: 14px;
  background: #edf4f0;
  color: var(--green);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}

.upb-ws-date-list h4 {
  font-size: 16px;
}

.upb-ws-date-list p {
  max-width: 690px;
  margin-top: 4px;
  color: #626d67;
  font-size: 13px;
  line-height: 1.65;
}

.upb-ws-date-list a {
  display: inline-flex;
  margin-top: 8px;
  color: var(--green);
  font-size: 11px;
  font-weight: 900;
}

.upb-ws-master-note {
  margin-top: 19px;
  padding: 17px 18px;
  border-left: 4px solid var(--saffron);
  border-radius: 0 14px 14px 0;
  background: #fff7ec;
}

.upb-ws-master-note strong {
  font-size: 14px;
}

.upb-ws-master-note p {
  margin-top: 4px;
  color: #626d67;
  font-size: 13px;
  line-height: 1.6;
}

.upb-ws-master-note a {
  display: inline-flex;
  margin-top: 8px;
  color: var(--green);
  font-size: 11px;
  font-weight: 900;
}

.upb-ws-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.upb-ws-links a {
  display: inline-flex;
  min-height: 35px;
  align-items: center;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

@media (max-width: 900px) {
  .home-ws-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .home-ws-head-side {
    align-items: flex-start;
  }

  .home-ws-timeline {
    grid-template-columns: repeat(2, 1fr);
  }

  .home-ws-note {
    grid-template-columns: auto 1fr;
  }

  .home-ws-note a {
    grid-column: 2;
  }
}

@media (max-width: 620px) {
  .home-ws-guide {
    padding: 68px 0 72px;
  }

  .home-ws-timeline {
    grid-template-columns: 1fr;
  }

  .home-ws-card {
    min-height: 220px;
  }

  .home-ws-note {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .home-ws-note a {
    grid-column: auto;
  }

  .upb-ws-detail {
    padding: 19px;
  }

  .upb-ws-detail-head {
    flex-direction: column;
    gap: 8px;
  }

  .upb-ws-date-list > div {
    grid-template-columns: 70px 1fr;
    gap: 13px;
  }

  .upb-ws-date-list time {
    width: 64px;
    min-height: 58px;
    font-size: 9px;
  }
}


/* =========================================================
   INDIAN TRICOLOR ACCENT BELOW HEADER
   ========================================================= */
.india-flag-line {
  width: 100%;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: linear-gradient(
    to bottom,
    #ff9933 0 33.333%,
    #ffffff 33.333% 66.666%,
    #138808 66.666% 100%
  );
  box-shadow: 0 1px 0 rgba(17, 47, 35, .07);
}

.india-flag-line img {
  width: 8px;
  height: 8px;
  display: block;
}

/* =========================================================
   HAUSARZTPRAXIS LIPPLING PARTNER
   ========================================================= */
.home-v2-partner-featured {
  grid-column: 1 / -1;
}

.home-v2-partner-practice {
  background: linear-gradient(145deg, #fff8fb, #f5fffd);
  border: 1px solid #f4d9e6;
}

.home-v2-partner-practice img {
  width: 94%;
  height: 72%;
}

.practice-detail-hero {
  background: linear-gradient(145deg, #fffdf8 0%, #fff5fa 50%, #f4fffc 100%);
}

.practice-detail-logo {
  background: #ffffff;
  border: 1px solid #f0dce5;
}

.practice-detail-logo img {
  max-width: 96%;
  max-height: 235px;
}

.practice-hours {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
  font-size: 13px;
}

.practice-hours th,
.practice-hours td {
  padding: 11px 0;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}

.practice-hours th {
  width: 120px;
  color: var(--ink);
  font-weight: 800;
}

.practice-hours td {
  color: var(--muted);
}

.practice-contact-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

.practice-contact-list a,
.practice-contact-list span {
  color: rgba(255,255,255,.82);
  font-size: 13px;
}

.practice-contact-list strong {
  color: #fff;
}

@media (max-width: 760px) {
  .home-v2-partner-featured {
    grid-column: auto;
  }

  .home-v2-partner-practice img {
    width: 92%;
    height: 78%;
  }

  .india-flag-line {
    height: 15px;
  }

  .india-flag-line img {
    width: 7px;
    height: 7px;
  }
}


/* =========================================================
   TEAM PAGE REDESIGN 2026
   ========================================================= */

.team-redesign-hero .page-lead {
  max-width: 760px;
}

.board-heading {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.community-board-section {
  background:
    radial-gradient(circle at 50% 0%, rgba(11, 79, 55, .055), transparent 34%),
    #fbfcfa;
}

.community-board-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
  max-width: 860px;
  margin: 42px auto 0;
}

.community-board-member {
  text-align: center;
  padding: 10px 18px 22px;
}

.community-avatar {
  width: 142px;
  height: 142px;
  margin: 0 auto 20px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 12px 34px rgba(25, 59, 44, .11);
}

.community-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.placeholder-avatar {
  display: grid;
  place-items: center;
  border: 1px solid rgba(11, 79, 55, .13);
  background:
    linear-gradient(145deg, rgba(11, 79, 55, .07), rgba(249, 182, 59, .11)),
    #fff;
}

.placeholder-avatar span {
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background: #fff;
  color: var(--green);
  font-family: "Manrope", sans-serif;
  font-size: 28px;
  font-weight: 800;
  box-shadow: 0 7px 20px rgba(17, 47, 35, .08);
}

.community-board-member h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
}

.community-board-member p {
  margin: 7px 0 2px;
  color: var(--green);
  font-size: 13px;
  font-weight: 800;
}

.community-board-member small {
  color: var(--muted);
  font-size: 11px;
}

.board-photo-note {
  max-width: 650px;
  margin: 24px auto 0;
  text-align: center;
  color: var(--muted);
  font-size: 11px;
}

.volunteer-teams-section {
  background: #fff;
}

.volunteer-accordion {
  margin-top: 34px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(17, 47, 35, .055);
}

.volunteer-accordion summary {
  min-height: 84px;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.volunteer-accordion summary::-webkit-details-marker {
  display: none;
}

.volunteer-accordion summary strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
}

.volunteer-accordion summary small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
}

.accordion-icon {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(11, 79, 55, .08);
  color: var(--green);
  font-size: 22px;
  line-height: 1;
  transition: transform .2s ease;
}

.volunteer-accordion[open] .accordion-icon {
  transform: rotate(45deg);
}

.volunteer-accordion-body {
  padding: 4px 24px 26px;
  border-top: 1px solid var(--line);
}

.volunteer-accordion-body .contributors-grid {
  margin-top: 24px;
}

.volunteer-thanks {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
  padding: 16px 18px;
  border-radius: 14px;
  background: rgba(11, 79, 55, .055);
}

.volunteer-thanks span {
  font-size: 20px;
}

.volunteer-thanks p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.team-join-section {
  padding-top: 26px;
}

.team-join-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
  padding: 34px 38px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(11, 79, 55, .98), rgba(17, 92, 64, .95));
  color: #fff;
  box-shadow: 0 18px 44px rgba(11, 79, 55, .15);
}

.team-join-card .section-label {
  color: #f8c15b;
}

.team-join-card h2 {
  margin: 5px 0 10px;
  color: #fff;
}

.team-join-card p {
  max-width: 700px;
  margin: 0;
  color: rgba(255, 255, 255, .76);
  font-size: 13px;
  line-height: 1.7;
}

.team-join-card .primary-button {
  white-space: nowrap;
  background: #fff;
  color: var(--green);
}

@media (max-width: 820px) {
  .community-board-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 600px;
  }

  .community-board-member:last-child {
    grid-column: 1 / -1;
    max-width: 280px;
    width: 100%;
    margin: 0 auto;
  }

  .team-join-card {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .team-join-card .primary-button {
    justify-self: start;
  }
}

@media (max-width: 560px) {
  .community-board-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .community-board-member:last-child {
    grid-column: auto;
  }

  .community-avatar {
    width: 122px;
    height: 122px;
  }

  .volunteer-accordion summary {
    min-height: 76px;
    padding: 18px;
  }

  .volunteer-accordion-body {
    padding: 4px 16px 20px;
  }

  .team-join-card {
    padding: 26px 22px;
  }
}


/* =========================================================
   RESPONSIVE FOUNDATION V1
   Consistent layout across laptops and large desktop screens
   ========================================================= */

:root {
  --site-max-width: 1180px;
  --site-gutter: clamp(18px, 2.6vw, 34px);
  --section-space-y: clamp(76px, 6.2vw, 105px);
}

/* Do not let content stretch just because the monitor is wider. */
.container {
  width: min(
    calc(100% - (var(--site-gutter) * 2)),
    var(--site-max-width)
  );
  margin-inline: auto;
}

/* Keep the desktop hero visually consistent instead of tying it
   too strongly to screen height. */
.home-v2-hero {
  min-height: clamp(640px, 72vh, 735px);
}

.home-v2-hero-inner {
  gap: clamp(38px, 4.4vw, 65px);
}

.home-v2-hero h1 {
  font-size: clamp(62px, 5.7vw, 90px);
}

.home-v2-hero h2 {
  font-size: clamp(27px, 2.65vw, 40px);
}

.home-v2-logo-card {
  width: min(100%, 350px);
  min-height: clamp(335px, 32vw, 395px);
}

/* Main homepage vertical rhythm */
.home-v2-upcoming,
.home-v2-about,
.home-v2-community,
.home-v2-highlight,
.home-v2-join,
.home-v2-partners,
.home-ws-guide {
  padding-top: var(--section-space-y);
  padding-bottom: var(--section-space-y);
}

/* Fluid gaps so laptop layouts do not feel cramped while large
   monitors do not become excessively spread out. */
.home-v2-about-intro {
  gap: clamp(38px, 5vw, 75px);
}

.home-v2-highlight-grid,
.home-v2-join-inner {
  gap: clamp(38px, 5vw, 75px);
}

.home-v2-purpose-grid,
.home-v2-partner-row,
.home-v2-event-grid {
  gap: clamp(12px, 1.35vw, 18px);
}

/* Wider screens should show the same design, not a stretched version. */
@media (min-width: 1440px) {
  :root {
    --site-gutter: 34px;
  }

  .home-v2-hero {
    min-height: 720px;
  }

  .home-v2-hero-inner {
    gap: 65px;
  }

  .home-v2-photo-grid {
    max-width: var(--site-max-width);
    margin-inline: auto;
  }
}

/* Laptop / compact desktop mode.
   Keep the two-column desktop hero instead of changing too early. */
@media (min-width: 901px) and (max-width: 1180px) {
  :root {
    --site-gutter: clamp(20px, 3vw, 30px);
    --section-space-y: clamp(72px, 6vw, 92px);
  }

  .home-v2-hero {
    min-height: 650px;
  }

  .home-v2-hero-inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(245px, .72fr);
    gap: clamp(28px, 3.2vw, 44px);
  }

  .home-v2-hero h1 {
    font-size: clamp(58px, 6.4vw, 76px);
    letter-spacing: -3px;
  }

  .home-v2-hero h2 {
    font-size: clamp(25px, 2.8vw, 34px);
  }

  .home-v2-logo-card {
    width: min(100%, 310px);
    min-height: 330px;
    padding: 24px;
  }

  .home-v2-logo-card img {
    max-height: 220px;
  }

  .home-v2-about-intro,
  .home-v2-highlight-grid,
  .home-v2-join-inner {
    gap: 38px;
  }

  .home-v2-photo-grid {
    grid-template-rows: 230px 230px;
  }

  .home-ws-card {
    min-height: 235px;
  }
}

/* Tablet starts here.
   This overrides the old 980px early stacking breakpoint so normal
   laptops keep the desktop-style homepage. */
@media (min-width: 901px) and (max-width: 980px) {
  .home-v2-hero {
    padding: 0;
  }

  .home-v2-hero-inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(235px, .7fr);
    gap: 26px;
  }

  .home-v2-hero-identity {
    justify-content: flex-end;
  }

  .home-v2-logo-card {
    min-height: 315px;
  }

  .home-v2-about-intro {
    grid-template-columns: 1.15fr .75fr;
  }

  .home-v2-highlight-grid {
    grid-template-columns: .85fr 1.15fr;
  }

  .home-v2-join-inner {
    grid-template-columns: 1.05fr .95fr;
  }
}

/* True tablet/mobile layout */
@media (max-width: 900px) {
  :root {
    --site-gutter: clamp(16px, 4vw, 24px);
    --section-space-y: clamp(64px, 9vw, 78px);
  }

  .home-v2-hero {
    min-height: auto;
    padding: 78px 0 72px;
  }

  .home-v2-hero-inner,
  .home-v2-about-intro,
  .home-v2-highlight-grid,
  .home-v2-join-inner {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .home-v2-hero-copy {
    max-width: 720px;
  }

  .home-v2-hero-identity {
    justify-content: flex-start;
  }

  .home-v2-logo-card {
    width: min(100%, 430px);
    min-height: 300px;
  }

  .home-v2-photo-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 310px 220px 220px;
  }

  .home-v2-photo-main {
    grid-column: 1 / span 2;
    grid-row: 1;
  }

  .home-v2-photo-wide {
    grid-column: 1 / span 2;
  }
}

/* Phones */
@media (max-width: 760px) {
  .container {
    width: min(
      calc(100% - (var(--site-gutter) * 2)),
      var(--site-max-width)
    );
  }

  .home-v2-hero {
    padding: 66px 0 62px;
  }

  .home-v2-hero h1 {
    font-size: clamp(45px, 13vw, 54px);
  }

  .home-v2-hero h2 {
    font-size: clamp(24px, 7vw, 27px);
  }

  .home-v2-photo-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, 250px);
  }

  .home-v2-photo-main,
  .home-v2-photo-wide {
    grid-column: auto;
    grid-row: auto;
  }
}

/* Prevent browser zoom / narrow-window edge cases from causing
   accidental horizontal overflow. */
.home-v2-hero-inner,
.home-v2-event-grid,
.home-v2-about-intro,
.home-v2-purpose-grid,
.home-v2-photo-grid,
.home-v2-highlight-grid,
.home-v2-join-inner,
.home-v2-partner-row,
.home-ws-timeline {
  min-width: 0;
}

.home-v2-hero-inner > *,
.home-v2-event-grid > *,
.home-v2-about-intro > *,
.home-v2-purpose-grid > *,
.home-v2-highlight-grid > *,
.home-v2-join-inner > *,
.home-v2-partner-row > *,
.home-ws-timeline > * {
  min-width: 0;
}



/* =========================================================
   HEADER REFINEMENT — 19 SEP 2026
   Compact cream header + animated mini Indian flag on scroll
   ========================================================= */

/* Keep the current sticky header design, but reduce the cream area. */
.site-header {
  transition:
    background-color .24s ease,
    border-color .24s ease,
    box-shadow .24s ease,
    backdrop-filter .24s ease;
}

.site-header .nav {
  height: 72px;
  transition: height .24s ease;
}

.site-header .brand-logo {
  width: 48px;
  height: 48px;
  transition:
    width .24s ease,
    height .24s ease,
    transform .24s ease;
}

.site-header .brand-copy strong {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  white-space: nowrap;
  transition: font-size .24s ease;
}

.site-header .brand-copy small {
  margin-top: 3px;
  font-size: 9.5px;
  transition:
    font-size .24s ease,
    margin-top .24s ease,
    opacity .24s ease;
}

/* Slightly tighter nav without changing the overall theme. */
.site-header .nav-links {
  gap: clamp(22px, 2.2vw, 31px);
}

.site-header .nav-links > a,
.site-header .nav-dropdown-main {
  font-size: 13px;
}

/* Existing JS already applies .scrolled to the header.
   Make that state smaller and a little more defined. */
.site-header.scrolled {
  background: rgba(245, 240, 230, .96);
  border-color: rgba(24, 34, 30, .10);
  box-shadow: 0 8px 26px rgba(22, 32, 27, .08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.site-header.scrolled .nav {
  height: 60px;
}

.site-header.scrolled .brand-logo {
  width: 39px;
  height: 39px;
}

.site-header.scrolled .brand-copy strong {
  font-size: 12.5px;
}

.site-header.scrolled .brand-copy small {
  margin-top: 1px;
  font-size: 8px;
  opacity: .78;
}

.site-header.scrolled .nav-links > a,
.site-header.scrolled .nav-dropdown-main {
  font-size: 12px;
}

/* ---------------------------------------------------------
   MINI INDIAN FLAG
   Appears beside "ISG Paderborn" only after scrolling.
   --------------------------------------------------------- */
.scroll-india-flag {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;

  width: 25px;
  height: 16px;
  overflow: hidden;

  border: 1px solid rgba(24, 34, 30, .14);
  border-radius: 2px;
  box-shadow: 0 2px 7px rgba(24, 34, 30, .13);

  background:
    linear-gradient(
      to bottom,
      #ff9933 0%,
      #ff9933 33.333%,
      #ffffff 33.333%,
      #ffffff 66.666%,
      #138808 66.666%,
      #138808 100%
    );

  opacity: 0;
  visibility: hidden;
  transform: translateX(-4px) scale(.88);
  transform-origin: left center;

  transition:
    opacity .2s ease,
    visibility .2s ease,
    transform .2s ease;
}

/* Tiny Ashoka Chakra */
.scroll-india-flag::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;

  width: 6px;
  height: 6px;
  border: 1px solid #000080;
  border-radius: 50%;

  transform: translate(-50%, -50%);

  background:
    repeating-conic-gradient(
      from 0deg,
      #000080 0deg 1.1deg,
      transparent 1.1deg 15deg
    );
}

.scroll-india-flag::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;

  width: 1.8px;
  height: 1.8px;
  border-radius: 50%;
  background: #000080;

  transform: translate(-50%, -50%);
}

.site-header.scrolled .scroll-india-flag {
  opacity: 1;
  visibility: visible;
  transform: translateX(0) scale(1);
  animation: isgMiniFlagWave 2.9s ease-in-out infinite;
}

@keyframes isgMiniFlagWave {
  0%, 100% {
    transform: perspective(80px) rotateY(0deg) rotateZ(0deg);
  }

  25% {
    transform: perspective(80px) rotateY(-7deg) rotateZ(-.8deg);
  }

  50% {
    transform: perspective(80px) rotateY(5deg) rotateZ(.7deg);
  }

  75% {
    transform: perspective(80px) rotateY(-4deg) rotateZ(-.5deg);
  }
}

/* Compact desktop / laptop.
   Keep the hamburger menu aligned to the new header height. */
@media (max-width: 1000px) {
  .site-header .nav {
    height: 68px;
  }

  .site-header .brand-logo {
    width: 44px;
    height: 44px;
  }

  .site-header.scrolled .nav {
    height: 58px;
  }

  .site-header.scrolled .brand-logo {
    width: 37px;
    height: 37px;
  }

  .site-header .nav-links {
    top: 68px;
  }

  .site-header.scrolled .nav-links {
    top: 58px;
  }

  .scroll-india-flag {
    width: 23px;
    height: 15px;
  }
}

/* Mobile */
@media (max-width: 720px) {
  .site-header .nav {
    height: 62px;
  }

  .site-header .brand-logo {
    width: 40px;
    height: 40px;
  }

  .site-header .brand-copy strong {
    font-size: 13px;
  }

  .site-header.scrolled .nav {
    height: 55px;
  }

  .site-header.scrolled .brand-logo {
    width: 34px;
    height: 34px;
  }

  .site-header .nav-links {
    top: 62px;
  }

  .site-header.scrolled .nav-links {
    top: 55px;
  }

  .site-header.scrolled .brand-copy strong {
    font-size: 11.5px;
  }

  .scroll-india-flag {
    width: 21px;
    height: 14px;
  }
}

/* Accessibility: no waving for users who prefer reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-header *,
  .scroll-india-flag {
    transition: none !important;
    animation: none !important;
  }
}


/* =========================================================
   MINI INDIA FLAG — CLEAN SVG V2
   ========================================================= */

.site-header .brand-copy strong {
  gap: 6px;
}

/* Hide the old CSS-drawn badge version if it still exists anywhere */
.scroll-india-flag:not(img) {
  display: none !important;
}

/* New clean SVG flag */
img.scroll-india-flag {
  display: inline-block;
  flex: 0 0 auto;
  width: 23px;
  height: auto;
  margin-left: 2px;

  border: 0;
  border-radius: 1px;
  box-shadow: none;

  object-fit: contain;
  vertical-align: middle;

  opacity: 0;
  visibility: hidden;
  transform: translateY(1px) translateX(-3px) scale(.94);
  transform-origin: left center;

  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease;
}

.site-header.scrolled img.scroll-india-flag {
  opacity: 1;
  visibility: visible;
  transform: translateY(1px) translateX(0) scale(1);
  animation: isgMiniFlagWaveV2 3.4s ease-in-out infinite;
}

@keyframes isgMiniFlagWaveV2 {
  0%, 100% {
    transform: translateY(1px) perspective(90px) rotateY(0deg);
  }
  35% {
    transform: translateY(1px) perspective(90px) rotateY(-5deg);
  }
  70% {
    transform: translateY(1px) perspective(90px) rotateY(4deg);
  }
}

@media (max-width: 1000px) {
  img.scroll-india-flag {
    width: 21px;
  }
}

@media (max-width: 720px) {
  img.scroll-india-flag {
    width: 19px;
    margin-left: 1px;
  }
}

@media (prefers-reduced-motion: reduce) {
  img.scroll-india-flag {
    animation: none !important;
  }
}


/* =========================================================
   MINI INDIA FLAG — SOFT WAVE V3
   Gentle flutter, no strong rotation
   ========================================================= */

img.scroll-india-flag {
  width: 23px;
  transform-origin: left center;
  will-change: transform;
}

.site-header.scrolled img.scroll-india-flag {
  opacity: 1;
  visibility: visible;
  animation: isgSoftFlagWave 2.6s ease-in-out infinite;
}

/* Small natural waving motion */
@keyframes isgSoftFlagWave {
  0%, 100% {
    transform:
      translateY(1px)
      perspective(120px)
      rotateY(0deg)
      skewY(0deg)
      scaleX(1);
  }

  25% {
    transform:
      translateY(1px)
      perspective(120px)
      rotateY(-3deg)
      skewY(-1deg)
      scaleX(.985);
  }

  50% {
    transform:
      translateY(0px)
      perspective(120px)
      rotateY(2deg)
      skewY(.7deg)
      scaleX(1);
  }

  75% {
    transform:
      translateY(1px)
      perspective(120px)
      rotateY(-2deg)
      skewY(-.6deg)
      scaleX(.992);
  }
}

/* Keep the effect subtle on smaller screens */
@media (max-width: 720px) {
  .site-header.scrolled img.scroll-india-flag {
    animation-duration: 3s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header.scrolled img.scroll-india-flag {
    animation: none !important;
  }
}


/* =========================================================
   WINTER SEMESTER CARDS — CLEAR CLICKABLE HOVER
   ========================================================= */

/* JS adds this class only to cards that contain a real link. */
.home-ws-card.is-clickable-card {
  position: relative;
  cursor: pointer;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease;
}

/* Small open indicator */
.home-ws-card.is-clickable-card::after {
  content: "↗";
  position: absolute;
  top: 16px;
  right: 16px;

  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;

  border-radius: 50%;
  background: rgba(11, 79, 55, .08);
  color: var(--green);

  font-size: 14px;
  font-weight: 900;

  opacity: 0;
  transform: translate(-4px, 4px);
  transition:
    opacity .2s ease,
    transform .2s ease,
    background-color .2s ease;
}

/* Normal light cards */
.home-ws-card.is-clickable-card:hover,
.home-ws-card.is-clickable-card:focus-visible {
  transform: translateY(-6px);
  border-color: rgba(239, 134, 46, .60);
  box-shadow: 0 18px 42px rgba(24, 45, 36, .13);
  outline: none;
}

.home-ws-card.is-clickable-card:hover::after,
.home-ws-card.is-clickable-card:focus-visible::after {
  opacity: 1;
  transform: translate(0, 0);
}

/* Featured dark green card */
.home-ws-card-highlight.is-clickable-card:hover,
.home-ws-card-highlight.is-clickable-card:focus-visible {
  border-color: rgba(255, 196, 125, .78);
  box-shadow: 0 20px 48px rgba(11, 79, 55, .28);
  background: #0d5b3f;
}

.home-ws-card-highlight.is-clickable-card::after {
  background: rgba(255, 255, 255, .12);
  color: #ffc47d;
}

/* Make the actual CTA more obvious */
.home-ws-card.is-clickable-card a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  position: relative;
  z-index: 2;

  transition:
    gap .2s ease,
    color .2s ease,
    text-decoration-color .2s ease;
}

.home-ws-card.is-clickable-card:hover a,
.home-ws-card.is-clickable-card:focus-visible a {
  gap: 9px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Give the icon a little feedback too */
.home-ws-card.is-clickable-card .home-ws-icon {
  transition: transform .22s ease;
}

.home-ws-card.is-clickable-card:hover .home-ws-icon,
.home-ws-card.is-clickable-card:focus-visible .home-ws-icon {
  transform: translateY(-2px) scale(1.06);
}

/* Touch devices do not need a hover-only cue.
   Keep the open arrow visible so clickability is still obvious. */
@media (hover: none) {
  .home-ws-card.is-clickable-card::after {
    opacity: .8;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-ws-card.is-clickable-card,
  .home-ws-card.is-clickable-card::after,
  .home-ws-card.is-clickable-card a,
  .home-ws-card.is-clickable-card .home-ws-icon {
    transition: none !important;
  }

  .home-ws-card.is-clickable-card:hover,
  .home-ws-card.is-clickable-card:focus-visible {
    transform: none;
  }
}


/* =========================================================
   HEADER HEIGHT — COMPACT V4
   Stronger reduction so the cream header is visibly shorter
   ========================================================= */

/* Normal desktop header */
.site-header .nav {
  height: 56px !important;
}

.site-header .brand-logo {
  width: 36px !important;
  height: 36px !important;
}

.site-header .brand {
  gap: 8px;
}

.site-header .brand-copy strong {
  font-size: 12.5px !important;
  line-height: 1.05;
}

.site-header .brand-copy small {
  margin-top: 2px !important;
  font-size: 8.5px !important;
}

.site-header .nav-links {
  gap: clamp(18px, 1.9vw, 25px) !important;
}

.site-header .nav-links > a,
.site-header .nav-dropdown-main {
  font-size: 12px !important;
  padding-top: 6px;
  padding-bottom: 6px;
}

.site-header .nav-links .join-nav-link {
  padding: 8px 14px !important;
}

/* When scrolled, make it even slimmer */
.site-header.scrolled .nav {
  height: 48px !important;
}

.site-header.scrolled .brand-logo {
  width: 30px !important;
  height: 30px !important;
}

.site-header.scrolled .brand-copy strong {
  font-size: 11px !important;
}

.site-header.scrolled .brand-copy small {
  margin-top: 1px !important;
  font-size: 7.5px !important;
}

.site-header.scrolled .nav-links > a,
.site-header.scrolled .nav-dropdown-main {
  font-size: 11px !important;
}

.site-header.scrolled .nav-links .join-nav-link {
  padding: 7px 12px !important;
}

/* Keep dropdown/mobile menu aligned to the compact header */
@media (max-width: 1000px) {
  .site-header .nav {
    height: 54px !important;
  }

  .site-header .brand-logo {
    width: 34px !important;
    height: 34px !important;
  }

  .site-header .nav-links {
    top: 54px !important;
  }

  .site-header.scrolled .nav {
    height: 47px !important;
  }

  .site-header.scrolled .brand-logo {
    width: 29px !important;
    height: 29px !important;
  }

  .site-header.scrolled .nav-links {
    top: 47px !important;
  }
}

@media (max-width: 720px) {
  .site-header .nav {
    height: 52px !important;
  }

  .site-header .brand-logo {
    width: 32px !important;
    height: 32px !important;
  }

  .site-header .nav-links {
    top: 52px !important;
  }

  .site-header.scrolled .nav {
    height: 46px !important;
  }

  .site-header.scrolled .brand-logo {
    width: 28px !important;
    height: 28px !important;
  }

  .site-header.scrolled .nav-links {
    top: 46px !important;
  }
}


/* =========================================================
   GLOBAL WEBSITE SPACING SYSTEM — V1
   Consistent gutters, section padding and section separation
   ========================================================= */

:root {
  --page-max-width: 1180px;

  /* Left / right breathing room */
  --page-gutter: clamp(22px, 3vw, 36px);

  /* Standard section vertical spacing */
  --section-pad-y: clamp(78px, 6vw, 104px);

  /* Slightly smaller internal spacing */
  --section-pad-y-compact: clamp(58px, 4.7vw, 78px);

  /* Visual separator between major sections */
  --section-divider: rgba(24, 34, 30, .085);
}

/* ---------------------------------------------------------
   ONE CONSISTENT PAGE WIDTH
   --------------------------------------------------------- */

.container {
  width: min(
    var(--page-max-width),
    calc(100% - (var(--page-gutter) * 2))
  ) !important;
  margin-inline: auto;
}

/* ---------------------------------------------------------
   GENERIC INNER-PAGE SECTIONS
   --------------------------------------------------------- */

.section {
  padding-top: var(--section-pad-y);
  padding-bottom: var(--section-pad-y);
}

/* Inner page hero should be slightly tighter than content sections */
.page-hero {
  padding-top: var(--section-pad-y-compact);
  padding-bottom: var(--section-pad-y-compact);
}

/* ---------------------------------------------------------
   HOMEPAGE SECTION RHYTHM
   Hero is intentionally excluded.
   --------------------------------------------------------- */

.home-v2-upcoming,
.home-ws-guide,
.home-v2-about,
.home-v2-community,
.home-v2-highlight,
.home-v2-join,
.home-v2-partners {
  padding-top: var(--section-pad-y) !important;
  padding-bottom: var(--section-pad-y) !important;
  position: relative;
}

/* Clear but subtle separation between homepage blocks */
.home-v2-upcoming,
.home-ws-guide,
.home-v2-about,
.home-v2-community,
.home-v2-highlight,
.home-v2-join,
.home-v2-partners {
  border-top: 1px solid var(--section-divider);
}

/* First section after hero does not need a strong doubled boundary */
.home-v2-upcoming {
  border-top-color: rgba(24, 34, 30, .055);
}

/* ---------------------------------------------------------
   SUBTLE BACKGROUND DIFFERENCE
   This makes the user understand that a new section started
   without creating harsh bands.
   --------------------------------------------------------- */

.home-v2-upcoming {
  background: #f5f0e6;
}

.home-ws-guide {
  background: #faf7f0;
}

.home-v2-about {
  background: #fffdf8;
}

.home-v2-community {
  background: #f5f0e6;
}

.home-v2-join {
  background: #fffdf8;
}

.home-v2-partners {
  background: #f7f3ea;
}

/* Keep any intentionally dark / special sections unchanged */
.home-v2-highlight {
  border-top-color: rgba(255, 255, 255, .08);
}

/* ---------------------------------------------------------
   CONSISTENT SECTION HEADINGS
   --------------------------------------------------------- */

.home-v2-section-head,
.home-ws-head,
.home-v2-partners-head,
.section-heading {
  margin-bottom: clamp(34px, 3.5vw, 48px);
}

/* Remove accidental excessive first / last child spacing */
.home-v2-upcoming > .container > :first-child,
.home-ws-guide > .container > :first-child,
.home-v2-about > .container > :first-child,
.home-v2-community > .container > :first-child,
.home-v2-partners > .container > :first-child {
  margin-top: 0;
}

.home-v2-upcoming > .container > :last-child,
.home-ws-guide > .container > :last-child,
.home-v2-about > .container > :last-child,
.home-v2-community > .container > :last-child,
.home-v2-partners > .container > :last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   LAPTOP
   --------------------------------------------------------- */

@media (max-width: 1200px) {
  :root {
    --page-gutter: clamp(20px, 2.8vw, 30px);
    --section-pad-y: clamp(68px, 5.5vw, 88px);
    --section-pad-y-compact: clamp(52px, 4.4vw, 68px);
  }
}

/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {
  :root {
    --page-gutter: clamp(18px, 4vw, 26px);
    --section-pad-y: clamp(58px, 8vw, 72px);
    --section-pad-y-compact: clamp(46px, 6vw, 58px);
  }

  .home-v2-section-head,
  .home-ws-head,
  .home-v2-partners-head,
  .section-heading {
    margin-bottom: 32px;
  }
}

/* ---------------------------------------------------------
   PHONE
   --------------------------------------------------------- */

@media (max-width: 560px) {
  :root {
    --page-gutter: 16px;
    --section-pad-y: 52px;
    --section-pad-y-compact: 40px;
  }

  .home-v2-section-head,
  .home-ws-head,
  .home-v2-partners-head,
  .section-heading {
    margin-bottom: 26px;
  }
}


/* =========================================================
   GLOBAL WEBSITE SPACING SYSTEM — V2 COMPACT
   Reduces excessive empty space between sections
   ========================================================= */

:root {
  --section-pad-y: clamp(52px, 4.2vw, 68px);
  --section-pad-y-compact: clamp(42px, 3.5vw, 56px);
}

/* General sections */
.section {
  padding-top: var(--section-pad-y) !important;
  padding-bottom: var(--section-pad-y) !important;
}

/* Page heroes */
.page-hero {
  padding-top: var(--section-pad-y-compact) !important;
  padding-bottom: var(--section-pad-y-compact) !important;
}

/* Homepage major blocks */
.home-v2-upcoming,
.home-ws-guide,
.home-v2-about,
.home-v2-community,
.home-v2-highlight,
.home-v2-join,
.home-v2-partners {
  padding-top: var(--section-pad-y) !important;
  padding-bottom: var(--section-pad-y) !important;
}

/* Upcoming Events specifically — much tighter */
.home-v2-upcoming {
  padding-top: 48px !important;
  padding-bottom: 58px !important;
}

.home-v2-upcoming .home-v2-section-head {
  margin-bottom: 26px !important;
}

/* Reduce heading-to-content gaps everywhere */
.home-v2-section-head,
.home-ws-head,
.home-v2-partners-head,
.section-heading {
  margin-bottom: clamp(26px, 2.5vw, 34px) !important;
}

/* About section heading/text block */
.home-v2-about-intro {
  margin-bottom: 34px;
}

/* Winter semester section */
.home-ws-guide {
  padding-top: 58px !important;
  padding-bottom: 60px !important;
}

.home-ws-head {
  margin-bottom: 28px !important;
}

/* Community */
.home-v2-community {
  padding-top: 58px !important;
  padding-bottom: 60px !important;
}

.home-v2-community-head {
  margin-bottom: 28px !important;
}

/* Partners */
.home-v2-partners {
  padding-top: 58px !important;
  padding-bottom: 62px !important;
}

.home-v2-partners-head {
  margin-bottom: 30px !important;
}

/* Join section */
.home-v2-join {
  padding-top: 58px !important;
  padding-bottom: 58px !important;
}

/* Laptop */
@media (max-width: 1200px) {
  :root {
    --section-pad-y: 54px;
    --section-pad-y-compact: 44px;
  }

  .home-v2-upcoming {
    padding-top: 44px !important;
    padding-bottom: 52px !important;
  }

  .home-v2-upcoming .home-v2-section-head {
    margin-bottom: 24px !important;
  }
}

/* Tablet */
@media (max-width: 900px) {
  :root {
    --section-pad-y: 48px;
    --section-pad-y-compact: 38px;
  }

  .home-v2-upcoming,
  .home-ws-guide,
  .home-v2-about,
  .home-v2-community,
  .home-v2-join,
  .home-v2-partners {
    padding-top: 46px !important;
    padding-bottom: 48px !important;
  }

  .home-v2-section-head,
  .home-ws-head,
  .home-v2-partners-head,
  .section-heading {
    margin-bottom: 24px !important;
  }
}

/* Phone */
@media (max-width: 560px) {
  :root {
    --section-pad-y: 42px;
    --section-pad-y-compact: 34px;
  }

  .home-v2-upcoming,
  .home-ws-guide,
  .home-v2-about,
  .home-v2-community,
  .home-v2-join,
  .home-v2-partners {
    padding-top: 40px !important;
    padding-bottom: 42px !important;
  }

  .home-v2-section-head,
  .home-ws-head,
  .home-v2-partners-head,
  .section-heading {
    margin-bottom: 22px !important;
  }
}


/* =========================================================
   SPACING V3 — TIGHTER WINTER SECTION TOP
   ========================================================= */

/* Reduce the empty cream area before
   "NEW AT PADERBORN UNIVERSITY?" */
.home-ws-guide {
  padding-top: 30px !important;
  padding-bottom: 52px !important;
}

/* Keep the section heading close to its cards */
.home-ws-head {
  margin-bottom: 24px !important;
}

/* Slightly reduce the previous section bottom too, so the
   transition from Upcoming Events -> Winter Semester is tighter. */
.home-v2-upcoming {
  padding-bottom: 44px !important;
}

@media (max-width: 1200px) {
  .home-ws-guide {
    padding-top: 28px !important;
    padding-bottom: 48px !important;
  }

  .home-v2-upcoming {
    padding-bottom: 40px !important;
  }
}

@media (max-width: 900px) {
  .home-ws-guide {
    padding-top: 24px !important;
    padding-bottom: 44px !important;
  }

  .home-ws-head {
    margin-bottom: 22px !important;
  }
}

@media (max-width: 560px) {
  .home-ws-guide {
    padding-top: 22px !important;
    padding-bottom: 40px !important;
  }
}


/* =========================================================
   HOME — OFFICIAL PARTNERS SINGLE-CARD CAROUSEL FINAL
   ========================================================= */

.partner-carousel {
  position: relative;
  max-width: 1080px;
  margin-inline: auto;
  padding: 0 64px 36px;
  outline: none;
}

.partner-carousel-viewport {
  width: 100%;
  overflow: hidden;
  border: 1px solid #e1e4e2;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(29,43,36,.07);
}

.partner-carousel-track {
  display: flex;
  width: 100%;
  transform: translate3d(0,0,0);
  transition: transform .55s cubic-bezier(.22,.72,.22,1);
  will-change: transform;
}

.partner-carousel-slide {
  flex: 0 0 100%;
  min-width: 100%;
  min-height: 300px;
  display: grid;
  grid-template-columns: 260px minmax(0,1fr);
  gap: 42px;
  align-items: center;
  padding: 26px;
  color: inherit;
}

.partner-carousel-logo {
  height: 248px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 23px;
}

.partner-carousel-logo-tk {
  background: #0ca4dc;
}

.partner-carousel-logo-db {
  background: #050505;
}

.partner-carousel-logo-practice {
  border: 1px solid rgba(240,121,167,.28);
  background: linear-gradient(145deg,#fff7fb,#f8ffff);
}

.partner-carousel-logo img {
  width: 82%;
  height: 82%;
  object-fit: contain;
}

.partner-carousel-logo-practice img {
  width: 92%;
  height: 92%;
}

.partner-carousel-copy {
  max-width: 620px;
  padding-right: 28px;
}

.partner-carousel-copy small {
  color: #f08d3d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .15em;
}

.partner-carousel-copy h3 {
  margin-top: 7px;
  font-size: clamp(28px,3vw,38px);
  letter-spacing: -1.3px;
}

.partner-carousel-copy p {
  max-width: 580px;
  margin-top: 10px;
  color: #6d7772;
  font-size: 14px;
  line-height: 1.65;
}

.partner-carousel-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 23px;
  color: var(--green);
  font-size: 12px;
  font-weight: 900;
}

.partner-carousel-link b {
  display: inline-block;
  transition: transform .2s ease;
}

.partner-carousel-slide:hover .partner-carousel-link b {
  transform: translateX(5px);
}

.partner-carousel-arrow {
  position: absolute;
  top: 50%;
  z-index: 10;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(24,34,30,.13);
  border-radius: 50%;
  background: #fff;
  color: var(--green);
  font-size: 21px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(28,44,37,.10);
  transform: translateY(-50%);
  transition: .2s ease;
}

.partner-carousel-prev { left: 3px; }
.partner-carousel-next { right: 3px; }

.partner-carousel-arrow:hover {
  background: var(--green);
  color: #fff;
  transform: translateY(-50%) scale(1.08);
}

.partner-carousel-dots {
  position: absolute;
  left: 50%;
  bottom: 5px;
  display: flex;
  gap: 7px;
  transform: translateX(-50%);
}

.partner-carousel-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(11,79,55,.20);
  cursor: pointer;
  transition: width .2s ease, background .2s ease;
}

.partner-carousel-dots button.active {
  width: 24px;
  background: var(--green);
}

@media (max-width: 900px) {
  .partner-carousel { padding-inline: 52px; }

  .partner-carousel-slide {
    grid-template-columns: 205px minmax(0,1fr);
    gap: 28px;
    min-height: 260px;
    padding: 22px;
  }

  .partner-carousel-logo { height: 205px; }
}

@media (max-width: 680px) {
  .partner-carousel { padding: 0 0 52px; }

  .partner-carousel-slide {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 18px;
  }

  .partner-carousel-logo { height: 220px; }

  .partner-carousel-copy {
    padding: 0 5px 12px;
  }

  .partner-carousel-arrow {
    top: auto;
    bottom: 0;
    width: 40px;
    height: 40px;
    transform: none;
  }

  .partner-carousel-prev { left: calc(50% - 76px); }
  .partner-carousel-next { right: calc(50% - 76px); }

  .partner-carousel-dots { bottom: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-carousel-track {
    transition: none;
  }
}


/* =========================================================
   HOMEPAGE CLEAN HERO — SMALL LOGO IN KICKER
   Large right-side ISG logo card removed.
   ========================================================= */

.home-v2-hero-inner {
  grid-template-columns: 1fr !important;
  gap: 0 !important;
}

.home-v2-hero-copy {
  max-width: 900px !important;
}

.home-v2-kicker-with-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.home-v2-kicker-with-logo img {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  object-fit: contain;
}

.home-v2-kicker-with-logo span {
  color: #ffc481;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
  line-height: 1.2;
}

/* Slightly widen hero copy now that the large logo card is gone. */
.home-v2-hero h1 {
  max-width: 850px !important;
}

.home-v2-hero-lead {
  max-width: 680px !important;
}

/* Old right-side hero logo is no longer used on the homepage. */
.home-v2-hero-identity {
  display: none !important;
}

/* The removed Join CTA should not leave any spacing behind. */
.home-v2-join {
  display: none !important;
}

@media (max-width: 760px) {
  .home-v2-kicker-with-logo {
    gap: 8px;
  }

  .home-v2-kicker-with-logo img {
    width: 28px;
    height: 28px;
  }

  .home-v2-kicker-with-logo span {
    font-size: 8.5px;
    letter-spacing: .14em;
  }
}

@media (max-width: 480px) {
  .home-v2-kicker-with-logo img {
    width: 25px;
    height: 25px;
  }

  .home-v2-kicker-with-logo span {
    font-size: 7.8px;
  }
}


/* =========================================================
   JOIN ISG — REGISTRATION OPENING SOON ONLY
   ========================================================= */

.join-soon-page {
  min-height: calc(100vh - 180px);
  display: flex;
}

.join-soon-only {
  width: 100%;
  display: flex;
  align-items: center;
  padding: clamp(70px, 9vw, 130px) 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(239,134,46,.10), transparent 26%),
    #f5f0e6;
}

.join-soon-only-card {
  min-height: 360px;
  display: grid;
  place-items: center;
  padding: 48px;
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 32px;
  background: #fffdf8;
  box-shadow: 0 24px 60px rgba(28,44,37,.07);
  text-align: center;
}

.join-soon-only-card h1 {
  max-width: 900px;
  margin: 0;
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(48px, 6vw, 82px);
  line-height: 1;
  letter-spacing: -3px;
}

@media (max-width: 720px) {
  .join-soon-page {
    min-height: calc(100vh - 150px);
  }

  .join-soon-only {
    padding: 50px 0;
  }

  .join-soon-only-card {
    min-height: 280px;
    padding: 30px 22px;
    border-radius: 25px;
  }

  .join-soon-only-card h1 {
    font-size: clamp(40px, 12vw, 58px);
    letter-spacing: -2px;
  }
}


/* =========================================================
   JOIN ISG — STYLED "OPENING SOON" PAGE
   ========================================================= */

.join-soon-only {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - 115px);
  padding: clamp(62px, 8vw, 110px) 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(239,134,46,.15), transparent 23%),
    radial-gradient(circle at 88% 78%, rgba(11,79,55,.11), transparent 25%),
    linear-gradient(180deg, #f8f4eb 0%, #f2ece1 100%);
}

.join-soon-only::before,
.join-soon-only::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.join-soon-only::before {
  width: 360px;
  height: 360px;
  left: -170px;
  bottom: -190px;
  border: 1px solid rgba(11,79,55,.08);
  box-shadow:
    0 0 0 45px rgba(11,79,55,.025),
    0 0 0 90px rgba(11,79,55,.015);
}

.join-soon-only::after {
  width: 270px;
  height: 270px;
  right: -120px;
  top: -120px;
  background: rgba(239,134,46,.05);
}

.join-soon-only-card {
  position: relative;
  z-index: 2;

  min-height: 430px;
  max-width: 920px;
  margin-inline: auto;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: clamp(46px, 6vw, 76px);
  border: 1px solid rgba(24,34,30,.09);
  border-radius: 36px;

  background: rgba(255,253,248,.88);
  box-shadow:
    0 28px 75px rgba(28,44,37,.09),
    inset 0 1px 0 rgba(255,255,255,.85);

  backdrop-filter: blur(12px);
  text-align: center;

  animation: joinSoonFadeUp .7s ease both;
}

.join-soon-mark {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;

  margin-bottom: 23px;
  border-radius: 22px;

  background: #fff;
  box-shadow: 0 12px 30px rgba(11,79,55,.10);
}

.join-soon-mark img {
  width: 58px;
  height: 58px;
  object-fit: contain;
}

.join-soon-eyebrow {
  margin: 0 0 13px;
  color: var(--saffron);

  font-family: "DM Sans", sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .19em;
}

.join-soon-only-card h1 {
  max-width: 780px;
  margin: 0;

  color: var(--ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(50px, 6.4vw, 88px);
  line-height: .93;
  letter-spacing: -4.5px;
}

.join-soon-only-card h1 span {
  color: var(--green);
}

.join-soon-subtitle {
  max-width: 550px;
  margin-top: 25px;

  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.join-soon-accent {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 31px;
}

.join-soon-accent span {
  display: block;
  height: 4px;
  border-radius: 999px;
}

.join-soon-accent span:nth-child(1) {
  width: 28px;
  background: #ff9933;
}

.join-soon-accent span:nth-child(2) {
  width: 28px;
  background: #d7d7d7;
}

.join-soon-accent span:nth-child(3) {
  width: 28px;
  background: #138808;
}

@keyframes joinSoonFadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 720px) {
  .join-soon-only {
    min-height: calc(100vh - 100px);
    padding: 46px 0;
  }

  .join-soon-only-card {
    min-height: 390px;
    padding: 42px 24px;
    border-radius: 28px;
  }

  .join-soon-mark {
    width: 62px;
    height: 62px;
    border-radius: 19px;
  }

  .join-soon-mark img {
    width: 50px;
    height: 50px;
  }

  .join-soon-only-card h1 {
    font-size: clamp(44px, 13vw, 62px);
    letter-spacing: -3px;
  }

  .join-soon-subtitle {
    margin-top: 20px;
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .join-soon-only-card {
    animation: none;
  }
}


/* =========================================================
   HOME — PAUL / ACADEMIC DEADLINES
   ========================================================= */

.home-academic-deadlines {
  margin-top: 34px;
  padding: 28px;
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 28px;
  background: #fffdf8;
  box-shadow: 0 18px 44px rgba(28,44,37,.045);
}

.home-academic-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  margin-bottom: 22px;
}

.home-academic-head h3 {
  max-width: 700px;
  font-size: clamp(25px, 3vw, 37px);
  letter-spacing: -1.2px;
}

.home-academic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
}

.home-academic-card {
  min-width: 0;
  min-height: 245px;
  display: flex;
  flex-direction: column;
  padding: 18px;
  border: 1px solid #e1e5e2;
  border-radius: 20px;
  background: #fff;
  transition:
    transform .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.home-academic-card:hover {
  transform: translateY(-3px);
  border-color: rgba(11,79,55,.20);
  box-shadow: 0 15px 34px rgba(28,44,37,.07);
}

.home-academic-featured {
  background:
    radial-gradient(circle at 90% 8%, rgba(239,134,46,.08), transparent 30%),
    #fff;
}

.home-academic-card-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 29px;
}

.home-academic-number {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #eef4f0;
  color: var(--green);
  font-size: 9px;
  font-weight: 900;
}

.home-academic-status {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 9px;
  border-radius: 999px;
  background: #f1f2ef;
  color: #707a74;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.home-academic-status.is-open {
  background: #e7f3ec;
  color: #0b6946;
}

.home-academic-status.is-upcoming {
  background: #fff1df;
  color: #a65c19;
}

.home-academic-status.is-closed {
  background: #efefed;
  color: #777e7a;
}

.home-academic-card > small {
  color: var(--saffron);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
}

.home-academic-card h4 {
  margin-top: 6px;
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  font-size: 16px;
  line-height: 1.25;
}

.home-academic-card > p {
  margin-top: 9px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.65;
}

.home-academic-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 12px;
}

.home-academic-note {
  display: grid;
  grid-template-columns: 35px 1fr;
  gap: 11px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 17px;
  background: #f4f0e7;
}

.home-academic-note > span {
  font-size: 20px;
}

.home-academic-note p {
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.55;
}

.home-academic-note strong {
  color: var(--ink);
}

.home-academic-disclaimer {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: #8a938e;
  font-size: 8.5px;
  line-height: 1.6;
}

@media (max-width: 1020px) {
  .home-academic-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .home-academic-card {
    min-height: 220px;
  }
}

@media (max-width: 700px) {
  .home-academic-deadlines {
    margin-top: 25px;
    padding: 20px;
    border-radius: 23px;
  }

  .home-academic-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .home-academic-grid,
  .home-academic-notes {
    grid-template-columns: 1fr;
  }

  .home-academic-card {
    min-height: 0;
  }

  .home-academic-card-top {
    margin-bottom: 22px;
  }
}


/* =========================================================
   HOME — ACADEMIC DEADLINES SINGLE CARD V2
   ========================================================= */

.home-academic-single {
  padding: 27px;
}

.academic-single-card {
  overflow: hidden;
  border: 1px solid #e0e4e1;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 15px 38px rgba(28,44,37,.045);
}

.academic-single-row {
  position: relative;
  display: grid;
  grid-template-columns: 48px 190px minmax(0,1fr);
  gap: 20px;
  align-items: center;
  min-height: 112px;
  padding: 19px 22px;
  border-bottom: 1px solid #e7e9e7;
  transition: background .18s ease;
}

.academic-single-row:hover {
  background: #fbfaf6;
}

.academic-single-highlight {
  background:
    linear-gradient(90deg, rgba(239,134,46,.075), rgba(239,134,46,.018) 42%, transparent);
}

.academic-single-highlight:hover {
  background:
    linear-gradient(90deg, rgba(239,134,46,.11), rgba(239,134,46,.025) 45%, transparent);
}

.academic-single-step {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ee;
  color: var(--green);
  font-size: 10px;
  font-weight: 900;
}

.academic-single-date {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.academic-single-date small {
  color: var(--saffron);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  white-space: nowrap;
}

.academic-single-copy h4 {
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  font-size: 16px;
  line-height: 1.25;
}

.academic-single-copy p {
  max-width: 720px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

.academic-single-footer {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0;
  background: #f5f1e8;
}

.academic-single-footer > div {
  min-height: 76px;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 11px;
  align-items: center;
  padding: 15px 20px;
}

.academic-single-footer > div + div {
  border-left: 1px solid #dedfdc;
}

.academic-single-footer span {
  font-size: 18px;
}

.academic-single-footer p {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.55;
}

.academic-single-footer strong {
  color: var(--ink);
}

@media (max-width: 820px) {
  .academic-single-row {
    grid-template-columns: 42px minmax(0,1fr);
    gap: 14px;
    padding: 18px;
  }

  .academic-single-date {
    grid-column: 2;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
  }

  .academic-single-copy {
    grid-column: 2;
  }
}

@media (max-width: 620px) {
  .home-academic-single {
    padding: 18px;
  }

  .academic-single-row {
    grid-template-columns: 36px minmax(0,1fr);
    min-height: 0;
    padding: 17px 14px;
  }

  .academic-single-step {
    width: 34px;
    height: 34px;
  }

  .academic-single-footer {
    grid-template-columns: 1fr;
  }

  .academic-single-footer > div + div {
    border-left: 0;
    border-top: 1px solid #dedfdc;
  }
}


/* =========================================================
   HOMEPAGE LAUNCH POLISH V3
   Compact Winter Semester + PAUL information
   ========================================================= */

.home-ws-timeline {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.home-ws-card {
  min-height: 205px !important;
  padding: 18px !important;
  border-radius: 19px !important;
}

.home-ws-icon {
  margin-bottom: 20px !important;
  font-size: 24px !important;
}

.home-ws-card h3 {
  font-size: 17px !important;
}

.home-ws-card p {
  margin-top: 6px !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
}

.home-ws-card a {
  padding-top: 11px !important;
  font-size: 9px !important;
}

.home-academic-deadlines {
  margin-top: 22px !important;
  padding: 23px !important;
}

.home-academic-head {
  margin-bottom: 17px !important;
}

.home-academic-head h3 {
  font-size: clamp(23px, 2.7vw, 33px) !important;
}

.academic-single-row {
  min-height: 92px !important;
  padding: 14px 19px !important;
}

.academic-single-card {
  border-radius: 21px !important;
}

.academic-single-step {
  width: 34px !important;
  height: 34px !important;
}

.academic-single-copy h4 {
  font-size: 15px !important;
}

.academic-single-copy p {
  font-size: 9.5px !important;
}

.academic-single-footer-one {
  grid-template-columns: 1fr !important;
}

.academic-single-footer-one > div {
  min-height: 62px !important;
  padding: 12px 18px !important;
}

.home-academic-disclaimer {
  margin-top: 9px !important;
  padding-top: 9px !important;
  font-size: 8px !important;
}

.home-ws-note {
  margin-top: 10px !important;
  padding: 14px 17px !important;
}

.home-ws-note p {
  font-size: 10px !important;
}

@media (max-width: 1100px) {
  .home-ws-timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .home-ws-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .home-ws-card {
    min-height: 190px !important;
  }

  .home-academic-deadlines {
    padding: 18px !important;
  }
}

@media (max-width: 520px) {
  .home-ws-timeline {
    grid-template-columns: 1fr !important;
  }

  .home-ws-card {
    min-height: 0 !important;
  }
}


/* =========================================================
   HOMEPAGE SHORTER PREMIUM V4
   ========================================================= */

.home-student-quick {
  padding: 46px 0 50px;
  background: #f5f0e6;
}

.home-student-quick-card {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 46px;
  align-items: center;
  padding: 30px 33px;
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 28px;
  background: #fffdf8;
  box-shadow: 0 16px 42px rgba(28,44,37,.05);
}

.home-student-quick-copy h2 {
  max-width: 640px;
  font-size: clamp(31px,4vw,46px);
  letter-spacing: -1.7px;
}

.home-student-quick-copy > p:last-of-type {
  max-width: 590px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.home-student-quick-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 17px;
  margin-top: 21px;
}

.home-student-quick-link {
  color: var(--green);
  font-size: 11px;
  font-weight: 900;
}

.home-student-quick-link:hover {
  text-decoration: underline;
}

.home-student-quick-dates {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 21px;
  background: #fff;
}

.home-student-quick-dates > div {
  min-height: 98px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16px 17px;
}

.home-student-quick-dates > div:nth-child(odd) {
  border-right: 1px solid var(--line);
}

.home-student-quick-dates > div:nth-child(-n+2) {
  border-bottom: 1px solid var(--line);
}

.home-student-quick-dates small {
  color: var(--saffron);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
}

.home-student-quick-dates strong {
  margin-top: 5px;
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  line-height: 1.3;
}

/* About should introduce ISG, not repeat three more cards. */
.home-v2-about {
  padding-top: 54px !important;
  padding-bottom: 58px !important;
}

.home-v2-about-intro {
  gap: 50px !important;
}

/* Community is still visual, but takes less vertical space. */
.home-v2-community {
  padding-top: 54px !important;
  padding-bottom: 58px !important;
}

.home-v2-photo-grid {
  grid-template-rows: 205px 205px !important;
}

/* 2026 achievement block becomes a concise proof point. */
.home-v2-highlight {
  padding-top: 54px !important;
  padding-bottom: 54px !important;
}

.home-v2-highlight-grid {
  grid-template-columns: .95fr 1.05fr !important;
  gap: 50px !important;
}

.home-highlight-mini {
  display: grid;
  gap: 9px;
}

.home-highlight-mini > div {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: center;
  min-height: 78px;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 17px;
  background: rgba(255,255,255,.07);
}

.home-highlight-mini > div > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(255,255,255,.10);
  font-size: 19px;
}

.home-highlight-mini strong {
  display: block;
  color: #fff;
  font-size: 13px;
}

.home-highlight-mini small {
  display: block;
  margin-top: 2px;
  color: rgba(255,255,255,.52);
  font-size: 8px;
}

.home-v2-partners {
  padding-top: 54px !important;
  padding-bottom: 60px !important;
}

/* Old long academic markup should never display if retained in cache/stale copy. */
.home-ws-guide,
.home-academic-deadlines {
  display: none !important;
}

@media (max-width: 900px) {
  .home-student-quick-card,
  .home-v2-highlight-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

@media (max-width: 620px) {
  .home-student-quick {
    padding: 38px 0 42px;
  }

  .home-student-quick-card {
    padding: 22px;
    border-radius: 23px;
  }

  .home-student-quick-dates {
    grid-template-columns: 1fr;
  }

  .home-student-quick-dates > div {
    min-height: 76px;
    border-right: 0 !important;
    border-bottom: 1px solid var(--line);
  }

  .home-student-quick-dates > div:last-child {
    border-bottom: 0;
  }

  .home-v2-photo-grid {
    grid-template-rows: repeat(4,205px) !important;
  }
}


/* =========================================================
   HOMEPAGE QUICK DATES — STRONGER DATE VISIBILITY
   ========================================================= */

.home-student-quick-dates small {
  display: inline-flex !important;
  align-items: center;
  align-self: flex-start;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 999px;
  background: #fff0df;
  color: #d96f19 !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1;
  letter-spacing: .10em !important;
  box-shadow: inset 0 0 0 1px rgba(239,134,46,.10);
}

.home-student-quick-dates strong {
  margin-top: 9px !important;
  font-size: 14px !important;
  line-height: 1.3;
}

@media (max-width: 620px) {
  .home-student-quick-dates small {
    min-height: 29px;
    padding-inline: 10px;
    font-size: 10.5px !important;
  }

  .home-student-quick-dates strong {
    font-size: 14.5px !important;
  }
}


/* =========================================================
   HOMEPAGE ABOUT — RICHER BUT STILL COMPACT V5
   ========================================================= */

.home-v2-about-copy p + p {
  margin-top: 11px;
}

.home-v2-about-copy .home-v2-text-link {
  margin-top: 17px;
}

.home-about-mini-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
  margin-top: 27px;
}

.home-about-mini-points > div {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 11px;
  align-items: center;
  min-height: 78px;
  padding: 13px 15px;
  border-top: 1px solid rgba(24,34,30,.11);
}

.home-about-mini-points > div > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: rgba(255,255,255,.68);
  font-size: 18px;
}

.home-about-mini-points strong {
  display: block;
  color: var(--ink);
  font-size: 12px;
}

.home-about-mini-points small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}

@media (max-width: 760px) {
  .home-about-mini-points {
    grid-template-columns: 1fr;
    margin-top: 22px;
  }

  .home-about-mini-points > div {
    min-height: 66px;
    padding: 11px 4px;
  }
}


/* =========================================================
   ABOUT PAGE — SHORTER PREMIUM V1
   ========================================================= */

.about-compact-hero {
  padding: 58px 0 62px;
  background:
    radial-gradient(circle at 88% 20%, rgba(239,134,46,.10), transparent 25%),
    #fffdf8;
}

.about-compact-hero-grid {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 58px;
  align-items: center;
}

.about-compact-hero h1 {
  max-width: 820px;
  font-size: clamp(48px, 6vw, 74px);
  line-height: .98;
  letter-spacing: -3.3px;
}

.about-compact-hero .page-lead {
  max-width: 720px;
  margin-top: 18px;
  font-size: 16px;
}

.about-compact-logo {
  width: 230px;
  height: 230px;
  display: grid;
  place-items: center;
  justify-self: end;
  border-radius: 30px;
  background: var(--green);
  box-shadow: 0 20px 50px rgba(11,79,55,.14);
}

.about-compact-logo img {
  width: 190px;
  height: 190px;
  object-fit: contain;
  border-radius: 50%;
  background: #fff;
}

.about-compact-purpose {
  padding: 58px 0 62px;
  background: #f5f0e6;
}

.about-compact-intro {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 70px;
  align-items: start;
}

.about-compact-intro h2 {
  font-size: clamp(34px, 4vw, 50px);
}

.about-compact-intro > div:last-child {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.about-compact-intro > div:last-child p + p {
  margin-top: 10px;
}

.about-compact-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 30px;
}

.about-compact-points article {
  min-height: 110px;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: center;
  padding: 17px 18px;
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
}

.about-compact-points article > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #fff;
  font-size: 20px;
}

.about-compact-points h3 {
  font-size: 16px;
}

.about-compact-points p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

.about-compact-chapter {
  padding: 58px 0 62px;
  background: #fffdf8;
}

.about-compact-chapter-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 70px;
  align-items: start;
}

.about-compact-chapter h2 {
  max-width: 560px;
  font-size: clamp(34px, 4vw, 50px);
}

.about-compact-chapter-grid > div:last-child > p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.about-compact-achievements {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.about-compact-achievements span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(11,79,55,.12);
  border-radius: 999px;
  background: #eef4f0;
  color: var(--green);
  font-size: 9px;
  font-weight: 800;
}

.about-compact-chapter .text-link {
  margin-top: 18px;
}

@media (max-width: 820px) {
  .about-compact-hero-grid,
  .about-compact-intro,
  .about-compact-chapter-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .about-compact-logo {
    justify-self: start;
    width: 190px;
    height: 190px;
  }

  .about-compact-logo img {
    width: 158px;
    height: 158px;
  }
}

@media (max-width: 620px) {
  .about-compact-hero,
  .about-compact-purpose,
  .about-compact-chapter {
    padding: 44px 0 48px;
  }

  .about-compact-hero h1 {
    font-size: 46px;
    letter-spacing: -2.4px;
  }

  .about-compact-points {
    grid-template-columns: 1fr;
  }

  .about-compact-points article {
    min-height: 92px;
  }
}


/* =========================================================
   TEAM — COMMUNITY BOARD COLLAPSED BY DEFAULT
   ========================================================= */

.community-board-collapsed-section {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}

.community-board-accordion {
  overflow: hidden;
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 26px;
  background: #fffdf8;
  box-shadow: 0 14px 36px rgba(28,44,37,.05);
}

.community-board-accordion > summary {
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0,1fr) 48px;
  gap: 24px;
  align-items: center;
  padding: 27px 30px;
  cursor: pointer;
  user-select: none;
}

.community-board-accordion > summary::-webkit-details-marker {
  display: none;
}

.community-board-summary-copy .section-label {
  margin-bottom: 6px;
}

.community-board-summary-copy h2 {
  font-size: clamp(28px,3.5vw,42px);
  letter-spacing: -1.5px;
}

.community-board-summary-copy > p:last-child {
  max-width: 690px;
  margin-top: 7px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.community-board-toggle {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  justify-self: end;
  border-radius: 50%;
  background: #edf4f0;
  color: var(--green);
  font-size: 25px;
  font-weight: 500;
  line-height: 1;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease;
}

.community-board-accordion > summary:hover .community-board-toggle {
  background: var(--green);
  color: #fff;
}

.community-board-accordion[open] .community-board-toggle {
  transform: rotate(45deg);
}

.community-board-accordion-body {
  padding: 0 30px 30px;
  border-top: 1px solid var(--line);
}

.community-board-accordion-body .community-board-grid {
  margin-top: 27px;
}

.community-board-accordion-body .board-photo-note {
  margin-bottom: 0;
}

@media (max-width: 680px) {
  .community-board-collapsed-section {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }

  .community-board-accordion > summary {
    grid-template-columns: minmax(0,1fr) 40px;
    gap: 14px;
    padding: 21px;
  }

  .community-board-toggle {
    width: 38px;
    height: 38px;
    font-size: 22px;
  }

  .community-board-accordion-body {
    padding: 0 20px 22px;
  }
}


/* =========================================================
   TEAM — COMMUNITY BOARD COMING SOON
   ========================================================= */

.community-board-coming-soon {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 16px;
  align-items: center;
  margin-top: 24px;
  padding: 20px 22px;
  border: 1px solid rgba(24,34,30,.09);
  border-radius: 18px;
  background: #f7f3eb;
}

.community-board-coming-soon > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #fff;
  font-size: 21px;
}

.community-board-coming-soon h3 {
  color: var(--ink);
  font-size: 17px;
}

.community-board-coming-soon p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

@media (max-width: 560px) {
  .community-board-coming-soon {
    grid-template-columns: 1fr;
    padding: 18px;
  }
}


/* =========================================================
   PARTNER PAGES — SHORTER PREMIUM V1
   ========================================================= */

.partner-detail-hero {
  padding-top: 46px !important;
  padding-bottom: 50px !important;
}

.partner-detail-hero-grid {
  gap: 54px !important;
}

.partner-detail-hero h1 {
  font-size: clamp(46px, 5.5vw, 70px) !important;
}

.partner-detail-logo {
  width: min(100%, 315px) !important;
  min-height: 245px !important;
}

.partner-compact-info {
  padding: 52px 0 56px;
  background: #f5f0e6;
}

.partner-compact-head {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 25px;
}

.partner-compact-head h2 {
  font-size: clamp(32px, 4vw, 46px);
  letter-spacing: -1.6px;
}

.partner-compact-head > p {
  max-width: 650px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.partner-compact-grid {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 12px;
}

.partner-compact-list,
.partner-compact-side {
  border: 1px solid rgba(24,34,30,.10);
  border-radius: 23px;
  background: rgba(255,255,255,.68);
}

.partner-compact-list {
  overflow: hidden;
}

.partner-compact-list article {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: center;
  min-height: 92px;
  padding: 14px 18px;
}

.partner-compact-list article + article {
  border-top: 1px solid rgba(24,34,30,.08);
}

.partner-compact-list article > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  color: var(--green);
  font-size: 17px;
  font-weight: 900;
}

.partner-compact-list h3 {
  color: var(--ink);
  font-size: 14px;
}

.partner-compact-list p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.5;
}

.partner-compact-side {
  padding: 21px;
}

.partner-compact-side .checklist-kicker {
  margin-bottom: 13px;
}

.partner-compact-money {
  padding: 17px;
  border-radius: 17px;
  background: #fff;
}

.partner-compact-money strong {
  display: block;
  color: var(--green);
  font-family: "Manrope", sans-serif;
  font-size: 28px;
  letter-spacing: -1px;
}

.partner-compact-money p,
.partner-compact-warning p,
.partner-compact-note {
  margin-top: 5px;
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.55;
}

.partner-compact-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 13px;
}

.partner-compact-pills span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 9px;
  border-radius: 999px;
  background: #eef4f0;
  color: var(--green);
  font-size: 8px;
  font-weight: 800;
}

.partner-compact-note {
  margin-top: 13px;
}

.partner-compact-checklist {
  margin-top: 0 !important;
}

.partner-compact-warning {
  margin-top: 14px;
  padding: 13px 14px;
  border-radius: 15px;
  background: #fff1df;
}

.partner-compact-warning strong {
  color: var(--ink);
  font-size: 10px;
}

.partner-compact-doctor {
  color: var(--ink);
  font-size: 18px;
}

.partner-contact-section {
  padding-top: 50px !important;
  padding-bottom: 50px !important;
}

.partner-disclaimer {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}

@media (max-width: 880px) {
  .partner-compact-head,
  .partner-compact-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .partner-detail-hero-grid {
    gap: 30px !important;
  }
}

@media (max-width: 620px) {
  .partner-detail-hero {
    padding-top: 38px !important;
    padding-bottom: 42px !important;
  }

  .partner-compact-info {
    padding: 42px 0 46px;
  }

  .partner-compact-list article {
    min-height: 86px;
    padding: 13px 14px;
  }

  .partner-compact-side {
    padding: 18px;
  }
}
