/* Vadim Shulman Foundation — shared site stylesheet
   Used by every page template except coming-soon.php, which stays
   fully self-contained by design. */

:root{
  --vsf-paper:#FAF8F3;
  --vsf-navy:#182A4D;
  --vsf-navy-deep:#132441;
  --vsf-charcoal:#2B2B29;
  --vsf-brass:#8E7A48;
  --vsf-line:#DCD5C4;
  --vsf-max:1120px;
}

.vsf-site *{box-sizing:border-box;}

.vsf-site{
  background:var(--vsf-paper);
  color:var(--vsf-charcoal);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.7;
  margin:0;
  overflow-x:hidden;
}
.vsf-site img{ max-width:100%; display:block; }
.vsf-site a{ color:var(--vsf-navy); }

.vsf-container{
  max-width:var(--vsf-max);
  margin:0 auto;
  padding:0 6vw;
}

/* ==================== Header / Nav ==================== */
.vsf-site-header{
  border-bottom:1px solid var(--vsf-line);
  background:var(--vsf-paper);
  position:relative;
  z-index:50;
}
.vsf-header-inner{
  width:100%;
  margin:0;
  padding:14px 4vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.vsf-logo-link{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  flex-shrink:0;
}
.vsf-logo-img{
  height:52px;
  width:auto;
  display:block;
}
.vsf-nav-list{
  list-style:none;
  display:flex;
  flex-wrap:nowrap;
  gap:18px;
  margin:0;
  padding:0;
  align-items:center;
}
.vsf-nav-list li{ margin:0; }
.vsf-nav-list a{
  font-size:11.5px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--vsf-charcoal);
  text-decoration:none;
  font-weight:500;
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  white-space:nowrap;
}
.vsf-nav-list a:hover,
.vsf-nav-list li.current-menu-item a,
.vsf-nav-list a.vsf-current{
  color:var(--vsf-navy);
  border-bottom-color:var(--vsf-navy);
}

/* Mobile menu toggle (checkbox-driven, no JS dependency required) */
.vsf-menu-toggle-input{ display:none; }
.vsf-menu-toggle-label{
  display:none;
  width:26px;
  height:20px;
  position:relative;
  cursor:pointer;
  flex-shrink:0;
}
.vsf-menu-toggle-label span,
.vsf-menu-toggle-label span::before,
.vsf-menu-toggle-label span::after{
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:var(--vsf-navy);
  transition:transform .2s ease, opacity .2s ease, top .2s ease;
}
.vsf-menu-toggle-label span{ top:9px; }
.vsf-menu-toggle-label span::before{ content:""; top:-8px; }
.vsf-menu-toggle-label span::after{ content:""; top:8px; }
.vsf-menu-toggle-input:checked ~ .vsf-header-inner .vsf-menu-toggle-label span{ background:transparent; }
.vsf-menu-toggle-input:checked ~ .vsf-header-inner .vsf-menu-toggle-label span::before{ top:0; transform:rotate(45deg); background:var(--vsf-navy); }
.vsf-menu-toggle-input:checked ~ .vsf-header-inner .vsf-menu-toggle-label span::after{ top:0; transform:rotate(-45deg); background:var(--vsf-navy); }

@media (max-width:880px){
  .vsf-menu-toggle-label{ display:block; }
  .vsf-nav-list{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    background:var(--vsf-paper);
    border-bottom:1px solid var(--vsf-line);
    max-height:0;
    overflow:hidden;
    transition:max-height .25s ease;
  }
  .vsf-menu-toggle-input:checked ~ .vsf-header-inner .vsf-nav-list{
    max-height:420px;
  }
  .vsf-nav-list li{ width:100%; }
  .vsf-nav-list a{
    display:block;
    width:100%;
    padding:14px 6vw;
    font-size:13px;
    border-bottom:1px solid var(--vsf-line);
  }
  .vsf-nav-list a:hover{ background:#fff; }
}

/* ==================== Buttons ==================== */
.vsf-btn{
  display:inline-block;
  margin-top:28px;
  padding:14px 32px;
  font-size:12.5px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:600;
  text-decoration:none;
  color:var(--vsf-navy);
  border:1px solid var(--vsf-navy);
  background:transparent;
  transition:background .18s ease, color .18s ease;
}
.vsf-btn:hover{ background:var(--vsf-navy); color:#fff; }
.vsf-btn-invert{
  color:var(--vsf-navy);
  background:#fff;
  border:1px solid #fff;
}
.vsf-btn-invert:hover{ background:transparent; color:#fff; }

/* ==================== Hero (home) ==================== */
.vsf-hero{
  padding:11vh 6vw 9vh;
  border-bottom:1px solid var(--vsf-line);
  position:relative;
}
.vsf-hero-with-bg{
  background-image:
    linear-gradient(rgba(250,248,243,0.82), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1768244016479-756ee49fe26c?auto=format&fit=crop&w=1800&q=80");
  background-size:cover;
  background-position:center;
}
.vsf-hero-inner{
  max-width:760px;
  margin:0 auto;
  text-align:center;
  position:relative;
  z-index:2;
}
.vsf-hero-with-bg .vsf-eyebrow,
.vsf-hero-with-bg h1{
  text-shadow:0 1px 4px rgba(255,255,255,0.75);
}
.vsf-eyebrow{
  font-size:12px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--vsf-brass);
  font-weight:500;
  margin:0 0 18px;
}
.vsf-hero h1{
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  font-size:clamp(30px,4.6vw,46px);
  line-height:1.2;
  color:var(--vsf-navy);
  margin:0 0 22px;
}
.vsf-hero p.vsf-intro{
  font-size:16.5px;
  line-height:1.8;
  color:var(--vsf-charcoal);
  margin:0;
}
.vsf-hero-with-bg p.vsf-intro{ opacity:1; }

/* Compact hero used on the six sub-pages */
.vsf-page-hero{
  padding:7vh 6vw;
  min-height:280px;
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--vsf-line);
  background-size:cover;
  background-position:center;
}
.vsf-page-hero .vsf-hero-inner{ width:100%; }
.vsf-page-hero .vsf-eyebrow,
.vsf-page-hero h1{
  text-shadow:0 1px 4px rgba(255,255,255,0.75);
}
.vsf-page-hero p.vsf-intro{ opacity:1; }

.vsf-hero-mission{
  background-image:
    linear-gradient(rgba(250,248,243,0.8), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1779358296802-715fc9fbc152?auto=format&fit=crop&w=1800&q=80");
}
.vsf-hero-about{
  background-image:
    linear-gradient(rgba(250,248,243,0.8), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1736495578041-d5b635582865?auto=format&fit=crop&w=1800&q=80");
}
.vsf-hero-impact{
  background-image:
    linear-gradient(rgba(250,248,243,0.8), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1593113646773-028c64a8f1b8?auto=format&fit=crop&w=1800&q=80");
}
.vsf-hero-programs{
  background-image:
    linear-gradient(rgba(250,248,243,0.84), rgba(250,248,243,0.92)),
    url("https://images.unsplash.com/photo-1758873269276-9518d0cb4a0b?auto=format&fit=crop&w=1800&q=80");
}
.vsf-hero-governance{
  background-image:
    linear-gradient(rgba(250,248,243,0.8), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1736495578041-d5b635582865?auto=format&fit=crop&w=1800&q=80");
}
.vsf-hero-contact{
  background-image:
    linear-gradient(rgba(250,248,243,0.8), rgba(250,248,243,0.9)),
    url("https://images.unsplash.com/photo-1768244016479-756ee49fe26c?auto=format&fit=crop&w=1800&q=80");
}

/* ==================== Sections ==================== */
.vsf-section{
  padding:7vh 6vw;
  border-bottom:1px solid var(--vsf-line);
}
.vsf-section:last-of-type{ border-bottom:none; }
.vsf-section-inner{
  max-width:var(--vsf-max);
  margin:0 auto;
}
.vsf-section-inner.vsf-narrow{ max-width:760px; }

.vsf-section h2{
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  font-size:clamp(24px,3.2vw,32px);
  color:var(--vsf-navy);
  margin:0 0 20px;
}
.vsf-section h3{
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  font-size:19px;
  color:var(--vsf-navy);
  margin:0 0 10px;
}
.vsf-section p{
  font-size:15.5px;
  line-height:1.8;
  margin:0 0 18px;
}
.vsf-section p:last-child{ margin-bottom:0; }

.vsf-rule{
  width:44px;
  height:1px;
  background:var(--vsf-navy);
  margin:0 0 28px;
}
.vsf-rule.vsf-center{ margin:0 auto 28px; }

/* ==================== Image-split section ==================== */
.vsf-split{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:center;
}
.vsf-split.vsf-split-reverse{ grid-template-columns:0.9fr 1.1fr; }
.vsf-split.vsf-split-reverse .vsf-split-media{ order:2; }
.vsf-split.vsf-split-reverse .vsf-split-text{ order:1; }
.vsf-split-media img{
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--vsf-line);
}

/* ==================== Icon grid (focus areas) ==================== */
.vsf-icon-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:12px;
}
.vsf-icon-card{
  aspect-ratio:1/1;
  border:1px solid var(--vsf-line);
  margin-right:-1px;
  margin-bottom:-1px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:22px 18px;
  gap:14px;
  background:#fff;
}
.vsf-icon-card .vsf-icon-label{
  font-size:13px;
  line-height:1.5;
  color:var(--vsf-charcoal);
  font-weight:500;
}

/* ==================== Quote band ==================== */
.vsf-quote-band{
  background-image:
    linear-gradient(rgba(19,36,65,0.82), rgba(19,36,65,0.85)),
    url("https://images.unsplash.com/photo-1567188481285-5f0eb40f2197?auto=format&fit=crop&w=1800&q=80");
  background-size:cover;
  background-position:center;
  color:#fff;
  padding:18vh 6vw;
  text-align:center;
}
.vsf-quote-band-inner{
  max-width:780px;
  margin:0 auto;
}
.vsf-quote-band p.vsf-quote-text{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(26px,3.6vw,40px);
  line-height:1.5;
  margin:0;
}

/* ==================== Origin / 3-column bordered ==================== */
.vsf-origin-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.vsf-origin-card{
  border:1px solid var(--vsf-line);
  padding:30px 26px;
  background:#fff;
}
.vsf-origin-card h3{ margin-bottom:10px; }
.vsf-origin-card p{ font-size:14.5px; margin-bottom:0; opacity:0.9; }

/* ==================== Photo card (image top, content below) ==================== */
.vsf-photo-card{
  border:1px solid var(--vsf-line);
  background:#fff;
  overflow:hidden;
}
.vsf-photo-card img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
}
.vsf-photo-card-body{
  padding:44px 48px;
}
.vsf-photo-card-body .vsf-eyebrow{ margin-bottom:14px; }
.vsf-photo-card-body h1{
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  font-size:clamp(26px,3.8vw,38px);
  line-height:1.25;
  color:var(--vsf-navy);
  margin:0 0 18px;
}
.vsf-photo-card-body p.vsf-intro{
  font-size:16px;
  line-height:1.8;
  color:var(--vsf-charcoal);
  opacity:0.85;
  margin:0;
}
@media (max-width:560px){
  .vsf-photo-card-body{ padding:28px 24px; }
}

/* ==================== 3-column / 2-row grid (5 items: row 2 has 2 items + 1 blank slot) ==================== */
.vsf-grid-3-2{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
@media (max-width:860px){
  .vsf-grid-3-2{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .vsf-grid-3-2{ grid-template-columns:1fr; }
}

/* Compact photo-card used inside grids (smaller type/padding than the full-width version) */
.vsf-photo-card-compact{
  border:1px solid var(--vsf-line);
  background:#fff;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.vsf-photo-card-compact img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
.vsf-photo-card-compact .vsf-photo-card-body{
  padding:24px 22px;
  flex:1;
}
.vsf-photo-card-compact h3{
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  font-size:18px;
  color:var(--vsf-navy);
  margin:0 0 10px;
}
.vsf-photo-card-compact p{
  font-size:14px;
  line-height:1.7;
  margin:0;
  opacity:0.9;
}
.vsf-feature-card{
  border:1px solid var(--vsf-line);
  background:#fff;
  padding:30px 26px;
}
.vsf-feature-card .vsf-feature-icon{ margin-bottom:16px; }
.vsf-feature-card h3{ margin-bottom:10px; }
.vsf-feature-card ul{ margin-top:14px; }
.vsf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:36px 40px;
  margin-top:8px;
}
.vsf-grid.vsf-cols-2{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }

.vsf-card{
  border-top:2px solid var(--vsf-navy);
  padding-top:18px;
}
.vsf-card h3{ margin-bottom:8px; }
.vsf-card p{ font-size:14.5px; margin-bottom:0; opacity:0.9; }

.vsf-list-plain{
  list-style:none;
  margin:0;
  padding:0;
}
.vsf-list-plain li{
  font-size:15px;
  padding:9px 0;
  border-bottom:1px solid var(--vsf-line);
}
.vsf-list-plain li:last-child{ border-bottom:none; }

.vsf-tag-group{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
.vsf-tag{
  font-size:13px;
  color:var(--vsf-charcoal);
  border:1px solid var(--vsf-line);
  border-radius:2px;
  padding:6px 14px;
  background:#fff;
}

.vsf-impact-block{
  padding:22px 0;
  border-bottom:1px solid var(--vsf-line);
}
.vsf-impact-block:last-child{ border-bottom:none; }
.vsf-impact-block h3{ margin-bottom:8px; }

.vsf-bio-layout{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:48px;
  align-items:start;
}
.vsf-bio-mark{
  border:1px solid var(--vsf-line);
  padding:28px;
  text-align:center;
}
.vsf-bio-mark img{ width:100%; height:auto; max-width:120px; margin:0 auto; }
.vsf-bio-mark p{
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--vsf-brass);
  margin:16px 0 0;
}

.vsf-check-list{
  list-style:none;
  margin:0;
  padding:0;
}
.vsf-check-list li{
  font-size:15px;
  padding:10px 0 10px 28px;
  border-bottom:1px solid var(--vsf-line);
  position:relative;
}
.vsf-check-list li:last-child{ border-bottom:none; }
.vsf-check-list li::before{
  content:"—";
  position:absolute;
  left:0;
  color:var(--vsf-brass);
}

.vsf-contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:36px;
}
.vsf-contact-card{
  border:1px solid var(--vsf-line);
  padding:24px;
  background:#fff;
  min-width:0;
}
.vsf-contact-card h3{ margin-bottom:10px; font-size:16px; }
.vsf-contact-card p{
  margin:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.vsf-contact-card a{
  color:var(--vsf-navy);
  text-decoration:none;
  border-bottom:1px solid var(--vsf-line);
  overflow-wrap:anywhere;
  word-break:break-word;
}
.vsf-contact-card a:hover{ border-bottom-color:var(--vsf-navy); }
.vsf-notice{
  margin-top:44px;
  padding:22px 26px;
  border-left:2px solid var(--vsf-brass);
  background:#fff;
  font-size:14px;
  line-height:1.8;
  color:var(--vsf-charcoal);
  opacity:0.9;
}

/* ==================== Footer ==================== */
.vsf-site-footer{
  background:var(--vsf-navy);
  color:#E4E7ED;
  padding:6vh 6vw 4vh;
}
.vsf-footer-inner{
  max-width:var(--vsf-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:40px;
}
.vsf-footer-inner h4{
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:#9FADC6;
  font-weight:500;
  margin:0 0 16px;
}
.vsf-footer-inner p,
.vsf-footer-inner a{
  font-size:14px;
  color:#E4E7ED;
  line-height:1.8;
}
.vsf-footer-inner a{ text-decoration:none; opacity:0.9; }
.vsf-footer-inner a:hover{ opacity:1; text-decoration:underline; }
.vsf-footer-nav{ list-style:none; margin:0; padding:0; }
.vsf-footer-nav li{ margin-bottom:8px; }
.vsf-footer-logo{ height:64px; width:auto; margin-bottom:16px; }
.vsf-footer-bottom{
  max-width:var(--vsf-max);
  margin:40px auto 0;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.15);
  font-size:12px;
  color:#9FADC6;
  line-height:1.8;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:10px;
}
.vsf-footer-bottom a{ color:#C7D0E0; }
.vsf-footer-credit a{ color:#C7D0E0; text-decoration:none; border-bottom:1px solid rgba(199,208,224,0.4); }
.vsf-footer-credit a:hover{ border-bottom-color:#C7D0E0; }

:focus-visible{
  outline:2px solid var(--vsf-navy);
  outline-offset:2px;
}

/* ==================== Responsive ==================== */
@media (max-width:960px){
  .vsf-split{ grid-template-columns:1fr; gap:32px; }
  .vsf-split.vsf-split-reverse{ grid-template-columns:1fr; }
  .vsf-split.vsf-split-reverse .vsf-split-media,
  .vsf-split.vsf-split-reverse .vsf-split-text{ order:0; }
  .vsf-split-media{ max-width:420px; margin:0 auto; }
}

@media (max-width:820px){
  .vsf-icon-grid{ grid-template-columns:repeat(2,1fr); }
  .vsf-origin-grid{ grid-template-columns:1fr; }
  .vsf-bio-layout{ grid-template-columns:1fr; }
  .vsf-bio-mark{ max-width:220px; }
  .vsf-footer-inner{ grid-template-columns:1fr; gap:32px; }
}

@media (max-width:560px){
  .vsf-icon-grid{ grid-template-columns:1fr; }
  .vsf-hero{ padding:8vh 6vw 6vh; }
  .vsf-page-hero{ min-height:220px; padding:6vh 6vw; }
  .vsf-quote-band{ padding:9vh 6vw; }
  .vsf-section{ padding:6vh 6vw; }
  .vsf-logo-img{ height:40px; }
  .vsf-footer-bottom{ flex-direction:column; align-items:flex-start; }
}
