/* FOSA homepage — editorial redesign */
:root { --home-rule:#d9dedf; --home-cream:#f4efe4; --home-gold:#f2b134; --home-navy:#071d34; }

/* Quick index */
.home-index { background:#fff; border-bottom:1px solid var(--home-rule); }
.home-index-inner { min-height:116px; display:grid; grid-template-columns:.48fr repeat(3,1fr); align-items:stretch; }
.home-index-label { align-self:center; color:#9a6c10; font-size:10px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.home-index a { display:grid; grid-template-columns:25px 1fr 20px; gap:12px; align-items:center; padding:23px 25px; border-left:1px solid var(--home-rule); transition:background .2s; }
.home-index a:hover { background:var(--home-cream); }
.home-index a > b { align-self:start; color:#a47619; font-size:10px; }
.home-index a > span { color:var(--home-navy); font:700 15px/1.35 "Libre Baskerville",serif; }
.home-index a small { display:block; margin-top:5px; color:var(--muted); font:500 10px/1.4 "DM Sans",sans-serif; }
.home-index a i { color:var(--home-navy); font-style:normal; font-size:18px; transition:transform .2s; }
.home-index a:hover i { transform:translate(3px,-3px); }

/* Kept: president */
.home-president { background:#fff; }
.president-editorial { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; align-items:center; }
.president-portrait { margin:0; position:relative; }
.portrait-crop { aspect-ratio:4/4.5; overflow:hidden; border-radius:180px 180px 16px 16px; background:var(--cream); box-shadow:0 24px 60px rgba(7,29,52,.12); }
.portrait-crop img { width:100%; height:100%; object-fit:cover; object-position:50% 5%; transform:scale(1.12); transform-origin:top center; }
.president-portrait::before { content:''; position:absolute; inset:-16px 18px 82px -16px; border:1px solid var(--gold); border-radius:190px 190px 18px 18px; z-index:-1; }
.president-portrait figcaption { display:flex; flex-direction:column; gap:3px; padding-top:22px; }
.president-portrait figcaption strong { color:var(--navy); font:700 17px "Libre Baskerville",serif; }
.president-portrait figcaption span { color:var(--muted); font-size:12px; }
.president-copy h2 { font:700 clamp(32px,4vw,52px)/1.13 "Libre Baskerville",serif; color:var(--navy); margin:12px 0 30px; }
.president-copy blockquote { margin:0 0 27px; padding:4px 0 4px 28px; border-left:4px solid var(--gold); color:var(--navy); font:italic 700 clamp(20px,2.4vw,29px)/1.5 "Libre Baskerville",serif; }
.president-copy p { max-width:620px; color:var(--muted); font-size:15.5px; line-height:1.85; margin-bottom:25px; }

/* Manifesto */
.identity-section { background:linear-gradient(125deg,#071d34,#0b3152); color:#fff; overflow:hidden; }
.identity-layout { display:grid; grid-template-columns:.55fr 1.15fr .9fr; gap:6vw; align-items:start; }
.identity-mark { position:relative; min-height:370px; border-left:1px solid rgba(255,255,255,.16); color:#fff; }
.identity-mark span { position:absolute; top:15px; left:-8px; writing-mode:vertical-rl; transform:rotate(180deg); color:var(--home-gold); font-size:10px; font-weight:800; letter-spacing:2px; }
.identity-mark b { position:absolute; left:32px; bottom:-20px; font:700 clamp(105px,13vw,180px)/.78 "Libre Baskerville",serif; letter-spacing:-12px; opacity:.06; }
.identity-section .section-label { color:var(--home-gold); }
.identity-statement h2 { margin:12px 0 25px; color:#fff; font:700 clamp(32px,4.2vw,54px)/1.14 "Libre Baskerville",serif; }
.identity-statement p { color:rgba(255,255,255,.65); font-size:17px; line-height:1.85; margin-bottom:24px; }
.identity-statement .text-link { color:#fff; }
.identity-statement .text-link::after { color:var(--home-gold); }
.identity-principles { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.16); }
.identity-principles li { display:grid; grid-template-columns:30px 1fr; gap:15px; padding:23px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.identity-principles li > b { color:var(--home-gold); font-size:10px; }
.identity-principles span { display:flex; flex-direction:column; gap:5px; }
.identity-principles strong { color:#fff; font:700 20px "Libre Baskerville",serif; }
.identity-principles small { color:rgba(255,255,255,.48); font-size:12px; line-height:1.55; }

/* Kept: flagship project */
.project-reframe { background:var(--cream); }
.project-editorial { display:grid; grid-template-columns:.82fr 1.18fr; gap:6vw; align-items:center; }
.project-funding { margin:30px 0; display:flex; gap:45px; padding:22px 0; border-block:1px solid #d8cfbd; }
.project-funding span { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; font-weight:700; }
.project-funding strong { display:block; color:var(--navy); font:700 27px "Libre Baskerville",serif; }
.project-actions,.congress-actions { margin-top:28px; display:flex; flex-wrap:wrap; gap:10px; }
.project-sketch { margin:0; padding:11px; background:#fff; box-shadow:0 24px 60px rgba(7,29,52,.12); transform:rotate(.8deg); }
.project-sketch img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.project-sketch figcaption { padding:13px 7px 5px; display:flex; justify-content:space-between; gap:12px; }
.project-sketch figcaption strong { color:var(--navy); font-size:12px; text-transform:uppercase; letter-spacing:.5px; }
.project-sketch figcaption span { color:var(--muted); font-size:10px; text-align:right; }

/* Consolidated impact */
.impact-section { background:#fff; }
.impact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:9vw; align-items:end; }
.impact-lead > strong { display:block; margin:18px 0 4px; color:var(--home-gold); font:700 clamp(76px,10vw,142px)/.9 "Libre Baskerville",serif; letter-spacing:-7px; }
.impact-lead h2 { color:var(--home-navy); font:700 clamp(27px,3.3vw,44px)/1.2 "Libre Baskerville",serif; }
.impact-lead p { max-width:460px; margin-top:20px; color:var(--muted); }
.impact-register { margin:0; border-top:2px solid var(--home-navy); }
.impact-register > div { position:relative; display:grid; grid-template-columns:1fr auto; align-items:center; min-height:93px; padding:15px 48px 15px 0; border-bottom:1px solid var(--home-rule); }
.impact-register dt { color:var(--home-navy); font-weight:700; font-size:14px; }
.impact-register dd { margin:0; color:var(--home-navy); font:700 34px "Libre Baskerville",serif; }
.impact-register span { position:absolute; right:0; top:14px; color:#a8b0b6; font-size:9px; }

/* Event poster */
.congress-poster { position:relative; overflow:hidden; background:var(--home-navy); color:#fff; padding:94px 0 0; }
.congress-poster::before { content:''; position:absolute; width:680px; height:680px; right:-210px; top:-310px; border:1px solid rgba(242,177,52,.15); border-radius:50%; box-shadow:0 0 0 80px rgba(242,177,52,.025),0 0 0 160px rgba(242,177,52,.018); }
.congress-poster-inner { position:relative; display:grid; grid-template-columns:1.2fr .8fr; column-gap:8vw; }
.congress-mast { grid-column:1/-1; display:flex; justify-content:space-between; padding-bottom:23px; border-bottom:1px solid rgba(255,255,255,.16); color:var(--home-gold); font-size:10px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; }
.congress-display { padding:52px 0 60px; }
.congress-display > p { color:rgba(255,255,255,.5); font-size:12px; text-transform:uppercase; letter-spacing:1.4px; }
.congress-display h2 { margin:8px 0 25px; color:#fff; font:700 clamp(68px,10vw,138px)/.8 "Libre Baskerville",serif; letter-spacing:-7px; }
.congress-display h2 em { color:var(--home-gold); font-style:italic; }
.congress-route { display:flex; align-items:center; gap:15px; color:rgba(255,255,255,.63); font-size:12px; }
.congress-route i { width:90px; height:1px; background:var(--home-gold); position:relative; }
.congress-route i::after { content:'›'; position:absolute; right:-2px; top:-12px; color:var(--home-gold); font-size:18px; }
.congress-details { align-self:center; padding-left:38px; border-left:1px solid rgba(255,255,255,.16); }
.congress-calendar { display:flex; align-items:end; gap:15px; margin-bottom:25px; }
.congress-calendar strong { color:var(--home-gold); font:700 56px/1 "Libre Baskerville",serif; }
.congress-calendar span { padding-bottom:6px; color:#fff; font-size:12px; font-weight:800; text-transform:uppercase; }
.congress-details > p { color:rgba(255,255,255,.6); line-height:1.75; }
.poster-countdown { grid-column:1/-1; display:grid; grid-template-columns:1.4fr repeat(4,1fr); align-items:center; min-height:118px; border-top:1px solid rgba(255,255,255,.16); }
.poster-countdown > span { color:rgba(255,255,255,.4); font-size:10px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.poster-countdown div { display:flex; align-items:baseline; gap:8px; padding-left:26px; border-left:1px solid rgba(255,255,255,.12); }
.poster-countdown strong { color:#fff; font:700 37px "Libre Baskerville",serif; }
.poster-countdown small { color:var(--home-gold); font-size:8px; text-transform:uppercase; }

/* Network + honest alumni call */
.network-section { background:var(--home-cream); }
.network-heading { display:grid; grid-template-columns:.55fr 1fr .75fr; gap:5vw; align-items:end; margin-bottom:55px; }
.network-heading h2 { color:var(--home-navy); font:700 clamp(32px,4.2vw,54px)/1.14 "Libre Baskerville",serif; }
.network-heading p { color:var(--muted); font-size:14px; }
.network-canvas { display:grid; grid-template-columns:1fr 1fr; min-height:500px; background:#fff; box-shadow:0 20px 55px rgba(7,29,52,.09); }
.network-map { position:relative; overflow:hidden; min-height:500px; background:#0a2744; }
.network-map::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:45px 45px; }
.network-map svg { position:absolute; width:90%; height:90%; left:2%; top:5%; }
.network-map svg path:not(.network-line) { fill:#143b60; stroke:rgba(255,255,255,.14); stroke-width:2; }
.network-line { fill:none; stroke:var(--home-gold); stroke-width:3; stroke-dasharray:8 9; }
.network-map circle { fill:var(--home-gold); stroke:#fff; stroke-width:4; }
.network-pin { position:absolute; color:#fff; font-size:11px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; }
.network-pin small { display:block; margin-top:3px; color:rgba(255,255,255,.4); font-size:8px; letter-spacing:.2px; text-transform:none; }
.pin-ca { left:24%; top:22%; }.pin-us { left:62%; top:59%; }.pin-mx { left:37%; bottom:8%; }
.alumni-invitation { padding:45px 36px; display:flex; flex-direction:column; align-items:flex-start; }
.alumni-placeholder { width:94px; height:112px; margin:25px 0 19px; display:grid; place-items:center; border-radius:55px 55px 5px 5px; background:var(--home-cream); color:#c19a4d; font:700 31px "Libre Baskerville",serif; }
.alumni-meta { color:#a47619!important; font-size:9px!important; font-weight:800; text-transform:uppercase; letter-spacing:.65px; }
.alumni-invitation h3 { color:var(--home-navy); font:700 24px/1.35 "Libre Baskerville",serif; }
.alumni-invitation p { color:var(--muted); font-size:13px; line-height:1.65; }

/* Voices + archive */
.stories-section { background:#fff; }
.stories-heading { display:grid; grid-template-columns:.55fr 1fr .75fr; gap:5vw; align-items:end; margin-bottom:48px; }
.stories-heading h2 { color:var(--home-navy); font:700 clamp(31px,4vw,50px)/1.14 "Libre Baskerville",serif; }
.stories-heading p { color:var(--muted); font-size:13px; }
.stories-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:16px; }
.voices-editorial { min-height:480px; padding:38px; display:flex; flex-direction:column; background:var(--home-cream); border-top:5px solid var(--home-gold); }
.voices-topline { display:flex; justify-content:space-between; gap:15px; color:var(--home-navy); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; }
.voices-topline small { color:#9a6c10; font-size:8px; }
.voices-editorial blockquote { flex:1; display:flex; align-items:center; margin:25px 0; color:var(--home-navy); font:italic 700 clamp(25px,3vw,37px)/1.38 "Libre Baskerville",serif; }
.voices-editorial > p { color:var(--muted); font-size:13px; }
.archive-editorial { min-height:480px; display:grid; grid-template-columns:.9fr 1.1fr; overflow:hidden; background:var(--home-navy); color:#fff; }
.archive-copy { padding:42px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.archive-copy h3 { margin:12px 0 20px; font:700 29px/1.3 "Libre Baskerville",serif; }
.archive-copy p { color:rgba(255,255,255,.55); font-size:13px; }
.archive-sheet { display:grid; grid-template-columns:1fr 1fr; padding:14px; gap:7px; transform:rotate(2deg) scale(1.04); }
.archive-sheet span { min-height:125px; padding:16px; display:flex; flex-direction:column; justify-content:space-between; background:#123957; border:1px solid rgba(255,255,255,.09); color:rgba(255,255,255,.75); font:700 13px "Libre Baskerville",serif; }
.archive-sheet span:nth-child(2),.archive-sheet span:nth-child(5) { background:#805e1d; }
.archive-sheet b { color:rgba(255,255,255,.3); font:700 9px "DM Sans",sans-serif; }

/* Records */
.records-section { background:var(--home-cream); }
.records-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:9vw; }
.records-heading h2 { margin:12px 0 18px; color:var(--home-navy); font:700 clamp(31px,4vw,48px)/1.17 "Libre Baskerville",serif; }
.records-heading p { color:var(--muted); margin-bottom:24px; }
.records-list { border-top:2px solid var(--home-navy); }
.record-row { min-height:112px; display:grid; grid-template-columns:58px 1fr 25px; gap:20px; align-items:center; border-bottom:1px solid #cec5b4; transition:padding .2s,background .2s; }
.record-row:hover { padding-inline:12px; background:rgba(255,255,255,.48); }
.record-type { width:50px; height:60px; display:grid; place-items:center; color:var(--home-gold); background:var(--home-navy); font-size:9px; font-weight:800; }
.record-row small { display:block; color:#a47619; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.7px; }
.record-row strong { display:block; margin-top:5px; color:var(--home-navy); font:700 17px "Libre Baskerville",serif; }
.record-row > b { color:var(--home-navy); font-size:19px; }

/* FAQ + newsletter */
.connect-section { background:#fff; }
.connect-layout { display:grid; grid-template-columns:1fr .8fr; gap:8vw; align-items:stretch; }
.faq-column > h2,.newsletter-panel h2 { margin:10px 0 28px; color:var(--home-navy); font:700 clamp(30px,3.5vw,45px)/1.18 "Libre Baskerville",serif; }
.faq-list { border-top:2px solid var(--home-navy); margin-bottom:25px; }
.faq-list details { border-bottom:1px solid var(--home-rule); }
.faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:18px; padding:21px 0; color:var(--home-navy); font-weight:700; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:#a47619; font-size:20px; transition:transform .2s; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { padding:0 36px 20px 0; color:var(--muted); font-size:13px; }
.newsletter-panel { position:relative; overflow:hidden; padding:48px; background:var(--home-navy); color:#fff; }
.newsletter-panel::after { content:''; position:absolute; width:260px; height:260px; right:-130px; top:-130px; border:50px solid rgba(242,177,52,.08); border-radius:50%; }
.newsletter-number { position:absolute; right:25px; bottom:-35px; color:rgba(242,177,52,.08); font-size:150px; }
.newsletter-panel h2 { color:#fff; position:relative; z-index:1; }
.newsletter-panel > p { color:rgba(255,255,255,.56); font-size:13px; }
.newsletter-form { position:relative; z-index:1; display:grid; grid-template-columns:1fr auto; gap:9px; margin-top:30px; }
.newsletter-form input { min-width:0; padding:14px 15px; border:1px solid rgba(255,255,255,.2); border-radius:6px; background:rgba(255,255,255,.08); color:#fff; font:inherit; }
.newsletter-form input::placeholder { color:rgba(255,255,255,.4); }
.newsletter-form small { grid-column:1/-1; color:rgba(255,255,255,.35); font-size:9px; }

/* Final statement */
.final-cta { padding:90px 0; background:linear-gradient(120deg,#06182b,#0b355c); color:#fff; text-align:center; }
.final-cta span { color:var(--home-gold); font-size:10px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.final-cta h2 { margin:12px 0 30px; font:700 clamp(36px,5vw,65px)/1.12 "Libre Baskerville",serif; }
.final-cta-inner > div { display:flex; justify-content:center; gap:11px; flex-wrap:wrap; }

/* Mobile navigation backdrop & lock */
body.nav-open { overflow:hidden; }
@media(max-width:1140px) {
  .site-header { z-index:40; }
  .home-index-inner { grid-template-columns:repeat(3,1fr); }.home-index-label { display:none; }.home-index a:first-of-type { border-left:0; }
  .identity-layout { grid-template-columns:.4fr 1.1fr; }.identity-principles { grid-column:2; }.identity-mark { grid-row:span 2; }
  .network-heading,.stories-heading { grid-template-columns:.45fr 1fr; }.network-heading p,.stories-heading p { grid-column:2; }
  .network-canvas { grid-template-columns:1fr .8fr; }.stories-layout { grid-template-columns:1fr; }.archive-editorial { min-height:520px; }
}
@media(max-width:820px) {
  .president-editorial,.project-editorial,.impact-layout,.records-layout,.connect-layout { grid-template-columns:1fr; }
  .president-editorial { gap:70px; }.president-portrait { max-width:430px; margin:auto; }
  .project-editorial,.impact-layout,.records-layout,.connect-layout { gap:55px; }
  .identity-layout { grid-template-columns:1fr; }.identity-mark { display:none; }.identity-principles { grid-column:auto; }
  .congress-poster-inner { grid-template-columns:1fr; }.congress-display { padding-bottom:35px; }.congress-details { padding:0 0 50px; border-left:0; }.poster-countdown { grid-column:auto; grid-template-columns:repeat(4,1fr); }.poster-countdown > span { grid-column:1/-1; padding:18px 0; }.poster-countdown div { padding:18px 8px; }
  .network-heading,.stories-heading { grid-template-columns:1fr; }.network-heading p,.stories-heading p { grid-column:auto; }.network-canvas { grid-template-columns:1fr; }.network-map { min-height:430px; }.alumni-invitation { padding:40px; }
  .archive-editorial { grid-template-columns:1fr 1fr; }
}
@media(max-width:640px) {
  .home-index-inner { display:flex; overflow-x:auto; width:100%; padding-left:16px; }.home-index a { min-width:220px; padding:18px; }.home-index a:first-of-type { border-left:1px solid var(--home-rule); }
  .president-editorial { gap:58px; }.president-copy blockquote { padding-left:18px; }
  .identity-statement p { font-size:15px; }.project-funding { gap:22px; }.project-funding strong { font-size:23px; }.project-sketch figcaption { flex-direction:column; }.project-sketch figcaption span { text-align:left; }
  .impact-lead > strong { letter-spacing:-4px; }.impact-register > div { min-height:82px; }.impact-register dd { font-size:28px; }
  .congress-poster { padding-top:65px; }.congress-display h2 { font-size:70px; letter-spacing:-5px; }.congress-route i { width:45px; }.congress-calendar strong { font-size:45px; }.poster-countdown { grid-template-columns:1fr 1fr; }.poster-countdown div:nth-of-type(odd) { border-left:0; }.poster-countdown strong { font-size:31px; }
  .network-heading,.stories-heading { margin-bottom:35px; }.network-map { min-height:330px; }.network-map svg { width:125%; left:-15%; }.pin-ca { left:10%; }.pin-us { left:60%; }.pin-mx { left:27%; }.alumni-invitation { padding:32px 24px 38px; }
  .stories-layout { width:100%; gap:0; }.voices-editorial { min-height:430px; padding:30px 24px; }.archive-editorial { grid-template-columns:1fr; }.archive-copy { padding:35px 24px; }.archive-sheet { grid-template-columns:1fr 1fr; transform:none; padding:8px; }.archive-sheet span { min-height:100px; }
  .record-row { grid-template-columns:50px 1fr 18px; gap:14px; }.record-row strong { font-size:14px; }.newsletter-panel { padding:38px 24px; }.newsletter-form { grid-template-columns:1fr; }.newsletter-form small { grid-column:auto; }
  .final-cta { padding:70px 0; }.final-cta-inner > div { flex-direction:column; }.final-cta .btn { width:100%; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }
