:root {
  --vt-navy: #062b45;
  --vt-navy-2: #0b3b59;
  --vt-teal: #3e9e9a;
  --vt-aqua: #b8e0de;
  --vt-coral: #ef6a5b;
  --vt-gold: #f3b94f;
  --vt-cream: #f6f0e7;
  --vt-paper: #fffdf9;
  --vt-white: #fff;
  --vt-ink: #062b45;
  --vt-muted: #526675;
  --vt-border: rgba(6, 43, 69, 0.13);
  --vt-shadow: 0 18px 55px rgba(6, 43, 69, 0.12);
  --vt-radius: 18px;
  --vt-serif: Georgia, 'Times New Roman', serif;
  --vt-sans: 'Trebuchet MS', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--vt-paper); color: var(--vt-ink); font-family: var(--vt-sans); font-size: 16px; line-height: 1.65; }
img { max-width: 100%; height: auto; }
a { color: var(--vt-teal); text-underline-offset: 3px; }
a:hover { color: var(--vt-coral); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--vt-gold); outline-offset: 3px; }
h1, h2, h3, h4 { margin: 0 0 0.5em; font-family: var(--vt-serif); line-height: 1.08; }
h1 { font-size: clamp(3rem, 7vw, 6.5rem); }
h2 { font-size: clamp(2.15rem, 4.6vw, 4.1rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.75rem); }
p { margin: 0 0 1.25rem; }
button, input, textarea, select { font: inherit; }

.site-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto !important; width: auto; height: auto; top: 8px; left: 8px; padding: 12px 16px; background: #fff; color: var(--vt-navy); z-index: 100000; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0.78rem 1.35rem; border: 0; border-radius: 6px; color: #fff; font-size: 0.84rem; font-weight: 800; letter-spacing: 0.05em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 9px 22px rgba(6, 43, 69, 0.2); }
.button--coral { background: var(--vt-coral); }
.button--coral:hover { background: #dc5548; }
.button--teal { background: var(--vt-teal); }
.button--teal:hover { background: #2d8582; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.text-link { font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }

.announcement-bar { background: var(--vt-teal); color: #fff; text-align: center; }
.announcement-bar a { display: flex; justify-content: center; align-items: center; gap: 9px; min-height: 34px; padding: 6px 20px; color: #fff; font-size: .82rem; text-decoration: none; }
.site-header { position: relative; z-index: 20; background: rgba(255,253,249,.97); border-bottom: 1px solid var(--vt-border); }
.site-header__inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; min-height: 82px; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--vt-navy); text-decoration: none; }
.brand:hover { color: var(--vt-navy); }
.brand__mark { width: 48px; height: 48px; flex: 0 0 auto; }
.brand__type { display: flex; flex-direction: column; font-size: .84rem; font-weight: 700; letter-spacing: .24em; line-height: 1.1; text-transform: uppercase; }
.brand__type strong { font-size: 1.12rem; letter-spacing: .15em; }
.custom-logo { display: block; max-width: 235px; max-height: 66px; width: auto; }
.primary-navigation { justify-self: end; }
.primary-navigation ul, .footer-navigation ul, .social-menu { display: flex; align-items: center; gap: 25px; padding: 0; margin: 0; list-style: none; }
.primary-navigation a { color: var(--vt-navy); font-size: .76rem; font-weight: 800; letter-spacing: .035em; text-decoration: none; text-transform: uppercase; }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { color: var(--vt-coral); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 9px; border: 0; background: transparent; }
.menu-toggle span:not(.screen-reader-text) { display: block; height: 3px; margin: 5px 0; border-radius: 4px; background: var(--vt-navy); }

.home-hero { position: relative; min-height: min(690px, 78vh); display: grid; place-items: center; overflow: hidden; background: var(--vt-navy) var(--hero-image) center/cover no-repeat; color: #fff; }
.home-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,22,37,.94) 0%, rgba(2,22,37,.72) 35%, rgba(2,22,37,.12) 70%); }
.home-hero__inner { position: relative; z-index: 1; width: min(1180px, calc(100% - 40px)); }
.home-hero__content { max-width: 610px; padding-block: 88px; }
.home-hero h1 { max-width: 600px; margin-bottom: 1.2rem; color: #fff; }
.home-hero h1::after { content: ''; display: block; width: 200px; height: 8px; margin-top: 10px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8'%3E%3Cpath d='M2 6c42-7 111-2 196-4' fill='none' stroke='%23ef6a5b' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.home-hero__copy { max-width: 510px; font-size: clamp(1.16rem, 2vw, 1.42rem); line-height: 1.45; }
.heart-accent { margin-bottom: .3rem; color: var(--vt-coral); font-size: 3rem; line-height: 1; transform: rotate(-8deg); }
.script-note { margin: 1rem 0 0; color: var(--vt-aqua); font-family: var(--vt-serif); font-size: 1.45rem; font-style: italic; }

.impact-strip { position: relative; z-index: 3; margin-top: -36px; }
.impact-grid { display: grid; grid-template-columns: repeat(4,1fr); padding: 25px 15px; border: 1px solid rgba(6,43,69,.08); border-radius: var(--vt-radius); background: rgba(255,253,249,.97); box-shadow: var(--vt-shadow); }
.impact-stat { display: flex; flex-direction: column; align-items: center; padding: 8px 18px; text-align: center; border-right: 1px solid var(--vt-border); }
.impact-stat:last-child { border: 0; }
.impact-stat__number { color: var(--vt-teal); font-family: var(--vt-serif); font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1; }
.impact-stat:nth-child(2) .impact-stat__number { color: var(--vt-coral); }
.impact-stat:nth-child(3) .impact-stat__number { color: #d79827; }
.impact-stat__label { max-width: 150px; margin-top: 8px; color: var(--vt-muted); font-size: .78rem; line-height: 1.35; }

.section { padding-block: clamp(72px, 9vw, 120px); }
.section--events { padding-top: clamp(95px, 11vw, 145px); }
.section-heading { max-width: 700px; margin: 0 auto 42px; text-align: center; }
.section-heading h2::after { content: ''; display: block; width: 110px; height: 5px; margin: 13px auto 0; border-radius: 50%; background: var(--vt-coral); transform: rotate(-2deg); }
.eyebrow { margin: 0 0 .7rem; color: var(--vt-teal); font-size: .78rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow--coral { color: var(--vt-coral); }
.eyebrow--light { color: var(--vt-aqua); }
.event-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.event-card { overflow: hidden; border: 1px solid var(--vt-border); border-radius: 14px; background: #fff; box-shadow: 0 8px 30px rgba(6,43,69,.07); }
.event-card__visual { display: grid; min-height: 210px; place-items: center; overflow: hidden; background: linear-gradient(140deg, var(--vt-teal), var(--vt-navy)); color: #fff; text-decoration: none; }
.event-card--2 .event-card__visual { background: linear-gradient(140deg, var(--vt-gold), var(--vt-coral)); }
.event-card--3 .event-card__visual { background: linear-gradient(140deg, var(--vt-aqua), var(--vt-teal)); }
.event-card__visual span { font-family: var(--vt-serif); font-size: 4.4rem; }
.event-card__visual img { width: 100%; height: 100%; min-height: 210px; object-fit: cover; transition: transform .4s ease; }
.event-card:hover .event-card__visual img { transform: scale(1.035); }
.event-card__body { padding: 24px; }
.event-card__body h3 a { color: var(--vt-navy); text-decoration: none; }
.event-card__body > p:not(.event-card__meta) { color: var(--vt-muted); font-size: .92rem; }
.event-card__meta { margin-bottom: 8px; color: var(--vt-teal); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.section-cta { margin: 32px 0 0; text-align: center; }

.founder-section { padding-top: 0; }
.founder-card { display: grid; grid-template-columns: minmax(320px,.9fr) 1.35fr; overflow: hidden; min-height: 520px; border-radius: var(--vt-radius); background: var(--vt-cream); box-shadow: var(--vt-shadow); }
.founder-card__visual { min-height: 430px; }
.founder-card__image { width: 100%; height: 100%; object-fit: cover; }
.founder-card__placeholder { display: grid; align-content: center; height: 100%; min-height: 430px; padding: 40px; background: linear-gradient(145deg, var(--vt-teal), var(--vt-aqua)); color: var(--vt-navy); text-align: center; }
.founder-card__placeholder span { color: #fff; font-family: var(--vt-serif); font-size: 8rem; line-height: 1; }
.founder-card__placeholder p { max-width: 280px; margin: 18px auto 0; font-size: .8rem; }
.founder-card__content { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(40px,7vw,90px); }
.founder-card__content::after { content: '♡'; position: absolute; right: 30px; bottom: -25px; color: rgba(62,158,154,.16); font-family: var(--vt-serif); font-size: 13rem; transform: rotate(-10deg); }
.founder-card__content > * { position: relative; z-index: 1; }
.founder-card__content h2 { max-width: 650px; }
.founder-card__content > p:not(.eyebrow) { max-width: 620px; color: var(--vt-muted); }

.causes-section { background: #fff; }
.cause-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.cause-card { display: flex; flex-direction: column; align-items: center; gap: 12px; min-height: 145px; padding: 25px 15px; border: 1px solid var(--vt-border); border-radius: 10px; color: var(--vt-navy); font-family: var(--vt-serif); font-weight: 700; text-align: center; text-decoration: none; transition: transform .2s, border-color .2s, background .2s; }
.cause-card:hover { transform: translateY(-3px); border-color: var(--vt-teal); background: rgba(184,224,222,.18); color: var(--vt-navy); }
.cause-card__icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 50%; background: var(--vt-aqua); color: var(--vt-teal); font-family: var(--vt-sans); font-size: 1.6rem; }
.cause-card:nth-child(3n+2) .cause-card__icon { background: #fde5df; color: var(--vt-coral); }
.cause-card:nth-child(3n+3) .cause-card__icon { background: #fff0ce; color: #c98b18; }

.newsletter-section { padding-block: 70px; background: var(--vt-cream); }
.newsletter-card { display: grid; grid-template-columns: 1.3fr .8fr; align-items: center; gap: 45px; padding: clamp(38px,6vw,65px); border-radius: var(--vt-radius); background: var(--vt-navy); color: #fff; }
.newsletter-card h2 { color: #fff; }
.newsletter-card p { max-width: 620px; color: #d5e0e6; }
.newsletter-card__form { justify-self: end; }
.newsletter-card input[type='email'], .newsletter-card input[type='text'] { min-height: 50px; padding: 10px 14px; border: 0; border-radius: 5px; }

.site-footer { padding-top: 62px; background: #041f33; color: #d3e1e8; }
.site-footer__grid { display: grid; grid-template-columns: 1.2fr 2fr .7fr; gap: 50px; padding-bottom: 45px; }
.brand--footer { color: #fff; }
.brand--footer:hover { color: #fff; }
.site-footer p { margin-top: 12px; font-family: var(--vt-serif); font-style: italic; }
.footer-navigation ul { display: grid; grid-template-columns: repeat(2,1fr); align-items: start; gap: 10px 28px; }
.footer-navigation a { color: #d3e1e8; font-size: .8rem; text-decoration: none; }
.footer-navigation a:hover { color: var(--vt-coral); }
.footer-action { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.social-menu { gap: 10px; }
.social-menu a { color: #fff; font-size: .78rem; }
.site-footer__legal { display: flex; justify-content: space-between; gap: 25px; padding-block: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; }

.content-area { padding-block: clamp(60px,8vw,110px); }
.content-header { max-width: 850px; margin: 0 auto 50px; text-align: center; }
.content-header .archive-description, .content-header p { color: var(--vt-muted); }
.content-shell { max-width: 820px; }
.entry-content > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: 1180px; }
.entry-content > .alignfull { max-width: none; }
.entry-content blockquote { padding: 22px 30px; border-left: 5px solid var(--vt-coral); background: var(--vt-cream); font-family: var(--vt-serif); font-size: 1.3rem; }
.post-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.post-card { overflow: hidden; border: 1px solid var(--vt-border); border-radius: 12px; background: #fff; }
.post-card__image img { display: block; aspect-ratio: 16/10; width: 100%; object-fit: cover; }
.post-card__body { padding: 23px; }
.post-card__body h2 { font-size: 1.6rem; }
.post-card__body h2 a { color: var(--vt-navy); text-decoration: none; }
.post-meta { color: var(--vt-muted); font-size: .78rem; }
.nav-links { display: flex; justify-content: space-between; gap: 15px; margin-top: 40px; }
.comments-area { max-width: 760px; margin: 60px auto 0; }
input[type='text'], input[type='email'], input[type='url'], input[type='search'], textarea, select { width: 100%; padding: 12px 14px; border: 1px solid var(--vt-border); border-radius: 5px; background: #fff; color: var(--vt-navy); }
input[type='submit'], .wp-element-button, .wp-block-button__link { padding: .8rem 1.25rem; border: 0; border-radius: 6px; background: var(--vt-coral); color: #fff; font-weight: 800; }

/* Plugin integration */
.tribe-common .tribe-common-c-btn, .tribe-events .tribe-events-c-search__button, .give-btn, div.wpforms-container-full button[type='submit'] { border-radius: 6px !important; background: var(--vt-coral) !important; color: #fff !important; font-family: var(--vt-sans) !important; font-weight: 800 !important; }
.tribe-events .tribe-events-calendar-list__event-title-link, .give-form-title { color: var(--vt-navy) !important; font-family: var(--vt-serif) !important; }

@media (max-width: 1000px) {
  .site-header__inner { grid-template-columns: auto auto auto; justify-content: space-between; }
  .menu-toggle { display: block; justify-self: end; }
  .primary-navigation { position: absolute; top: 100%; left: 0; right: 0; display: none; padding: 20px; border-top: 1px solid var(--vt-border); background: var(--vt-paper); box-shadow: var(--vt-shadow); }
  .primary-navigation.is-open { display: block; }
  .primary-navigation ul { flex-direction: column; align-items: stretch; gap: 0; }
  .primary-navigation a { display: block; padding: 12px; }
  .event-grid, .post-grid { grid-template-columns: repeat(2,1fr); }
  .event-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 11px); width: 100%; justify-self: center; }
  .cause-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 720px) {
  .site-shell { width: min(100% - 28px, 1180px); }
  .announcement-bar a { font-size: .72rem; }
  .site-header__inner { min-height: 72px; gap: 10px; }
  .brand__mark { width: 39px; height: 39px; }
  .brand__type { font-size: .63rem; }
  .brand__type strong { font-size: .82rem; }
  .header-donate { min-height: 42px; padding: .65rem .8rem; font-size: .7rem; }
  .home-hero { min-height: 680px; background-position: 61% center; }
  .home-hero__shade { background: linear-gradient(90deg, rgba(2,22,37,.93), rgba(2,22,37,.68)); }
  .home-hero__content { padding-block: 70px; }
  .home-hero h1 { font-size: clamp(3rem,15vw,4.7rem); }
  .home-hero .button-row { flex-direction: column; }
  .home-hero .button { width: 100%; }
  .impact-strip { margin-top: -22px; }
  .impact-grid { grid-template-columns: repeat(2,1fr); padding: 16px 8px; }
  .impact-stat:nth-child(2) { border-right: 0; }
  .impact-stat:nth-child(-n+2) { border-bottom: 1px solid var(--vt-border); }
  .event-grid, .post-grid { grid-template-columns: 1fr; }
  .event-card:last-child { grid-column: auto; max-width: none; }
  .founder-card { grid-template-columns: 1fr; }
  .founder-card__visual, .founder-card__placeholder { min-height: 340px; }
  .founder-card__content { padding: 42px 28px 55px; }
  .cause-grid { grid-template-columns: repeat(2,1fr); }
  .cause-card { min-height: 130px; font-size: .88rem; }
  .newsletter-card { grid-template-columns: 1fr; gap: 20px; }
  .newsletter-card__form { justify-self: start; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .site-footer__legal { flex-direction: column; gap: 4px; }
}

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