@import "tailwindcss";

:root {
  --ink: #15221d;
  --cream: #f5f1e8;
  --paper: #fffdf9;
  --red: #db3150;
  --red-dark: #b51f3b;
  --mint: #cbded4;
  --muted: #617069;
  --line: rgba(21, 34, 29, 0.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Aptos", "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }

.utility-bar { background: var(--ink); color: rgba(255,255,255,.76); font-size: 12px; letter-spacing: .025em; }
.utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; }
.utility-inner p { margin: 0; }
.utility-inner div { display: flex; align-items: center; gap: 12px; }
.utility-inner a:hover { color: #fff; }

.site-header { position: sticky; top: 0; z-index: 40; background: rgba(255,253,249,.92); border-bottom: 1px solid rgba(21,34,29,.09); backdrop-filter: blur(18px); }
.nav-wrap { min-height: 82px; display: flex; align-items: center; gap: 42px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { width: 54px; height: 54px; flex: 0 0 54px; display: block; overflow: visible; shape-rendering: geometricPrecision; }
.brand-emblem-flower, .brand-emblem-leaf { stroke: #fffdfa; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.brand-emblem-vein { fill: none; stroke: rgba(255,253,249,.92); stroke-width: 1.25; stroke-linecap: round; }
.brand-emblem-stem { fill: none; stroke: var(--ink); stroke-width: 2.15; stroke-linecap: round; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; white-space: nowrap; }
.brand-copy strong { font-family: Georgia, "Times New Roman", serif; font-size: 16px; font-weight: 600; letter-spacing: -.025em; }
.brand-copy small { margin-top: 6px; color: var(--red); font-size: 9px; font-weight: 850; letter-spacing: .19em; text-transform: uppercase; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 28px; font-size: 14px; font-weight: 650; }
.nav-links a { position: relative; }
.nav-links > a:not(.private-link)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--red); transition: right .25s ease; }
.nav-links > a:hover::after { right: 0; }
.nav-links .private-link { color: var(--muted); font-weight: 550; }
.private-link span { color: var(--red); }
.nav-cta { display: inline-flex; align-items: center; gap: 8px; padding: 12px 17px; background: var(--red); color: #fff; border-radius: 999px; font-size: 14px; font-weight: 800; transition: transform .2s, background .2s; }
.nav-cta svg, .note-icon svg { width: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.nav-cta:hover { background: var(--red-dark); transform: translateY(-2px); }
.menu-toggle { display: none; }

.hero { position: relative; background: var(--cream); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .32; background-image: radial-gradient(rgba(21,34,29,.16) .7px, transparent .7px); background-size: 19px 19px; mask-image: linear-gradient(90deg,#000,transparent 72%); }
.hero-grid { position: relative; z-index: 1; min-height: 696px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 70px; padding-block: 72px 90px; }
.hero-copy { padding-left: clamp(0px, 2vw, 24px); }
.eyebrow, .section-kicker { display: inline-flex; align-items: center; gap: 9px; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow span { width: 20px; height: 1px; background: var(--red); }
.hero h1, .section-heading h2, .activity-copy h2, .contact-intro h2, .visit-copy h2 {
  margin: 24px 0 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.055em; line-height: .96;
}
.hero h1 { max-width: 690px; font-size: clamp(58px, 6.2vw, 91px); }
.hero h1 em, .activity-copy h2 em { color: var(--red); font-weight: 400; }
.hero-lead { max-width: 585px; margin: 28px 0 0; color: #53625b; font-size: 18px; line-height: 1.68; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 34px; }
.button { min-height: 53px; padding: 0 22px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; font-size: 14px; font-weight: 800; transition: transform .2s, box-shadow .2s, background .2s; }
.button svg, .path-card svg, .service-copy a svg, .resource-action svg, .video-copy strong svg, .voice-side a svg, .activity-card a svg, .form-submit svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.button-primary { background: var(--red); color: #fff; box-shadow: 0 14px 28px rgba(219,49,80,.2); }
.button-primary:hover { background: var(--red-dark); transform: translateY(-2px); box-shadow: 0 18px 34px rgba(219,49,80,.28); }
.text-link { display: inline-flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--ink); padding-bottom: 5px; font-size: 13px; font-weight: 800; }
.text-link span { color: var(--red); }
.hero-proof { display: flex; align-items: center; gap: 14px; margin-top: 41px; }
.avatar-stack { display: flex; }
.avatar-stack span { width: 34px; height: 34px; margin-left: -7px; border: 3px solid var(--cream); border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 9px; font-weight: 850; }
.avatar-stack span:first-child { margin-left: 0; background: var(--red); }
.avatar-stack span:last-child { background: #fff; color: var(--ink); }
.hero-proof p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.hero-proof strong { color: var(--ink); font-size: 13px; }

.hero-visual { position: relative; min-height: 555px; }
.hero-image-card { position: absolute; isolation: isolate; inset: 12px 18px 12px 46px; border-radius: 210px 210px 16px 16px; overflow: hidden; background: #d8d5cc; box-shadow: 0 36px 74px rgba(38,51,45,.18); }
.hero-image-card::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.45); border-radius: inherit; pointer-events: none; }
.hero-slides { position: absolute; inset: 0; }
.hero-image-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) contrast(.96); }
.hero-slide { position: absolute; z-index: 0; inset: 0; opacity: 0; transform: scale(1.075) translate3d(1.2%,.6%,0); transform-origin: center 42%; filter: blur(2.8px) saturate(.8); will-change: opacity, transform, filter; transition: opacity 3.9s cubic-bezier(.4,0,.2,1), filter 4.2s cubic-bezier(.4,0,.2,1), transform 13.8s cubic-bezier(.16,1,.3,1); }
.hero-slide.active { opacity: 1; transform: scale(1.012) translate3d(0,0,0); filter: blur(0) saturate(.88); }
.hero-transition-light { position: absolute; z-index: 1; inset: -18%; pointer-events: none; opacity: 0; background: linear-gradient(112deg, transparent 34%, rgba(255,255,255,.16) 49%, rgba(255,224,230,.08) 53%, transparent 67%); mix-blend-mode: screen; transform: translateX(-62%) rotate(-4deg); animation: hero-light-sweep 4.6s cubic-bezier(.22,.61,.36,1) both; }
.image-shade { position: absolute; z-index: 2; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(13,29,23,.74)); }
.hero-image-caption { position: absolute; z-index: 3; left: 30px; right: 104px; bottom: 27px; display: flex; align-items: center; gap: 12px; color: #fff; }
.status-dot { width: 10px; height: 10px; border-radius: 50%; background: #baf3cd; box-shadow: 0 0 0 6px rgba(186,243,205,.15); }
.hero-image-caption p { margin: 0; display: flex; flex-direction: column; }
.hero-image-caption small { color: rgba(255,255,255,.74); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.hero-image-caption strong { margin-top: 3px; font-family: Georgia,serif; font-size: 19px; font-weight: 400; }
.hero-caption-copy { animation: hero-caption-in 1.75s .55s cubic-bezier(.22,.61,.36,1) both; }
.hero-slide-nav { position: absolute; z-index: 4; right: 27px; bottom: 32px; display: flex; align-items: center; gap: 6px; }
.hero-slide-nav button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.45); cursor: pointer; transition: width .55s ease, background .55s ease; }
.hero-slide-nav button.active { width: 24px; background: #fff; }
@keyframes hero-caption-in {
  from { opacity: 0; transform: translateY(9px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes hero-light-sweep {
  0% { opacity: 0; transform: translateX(-62%) rotate(-4deg); }
  30% { opacity: .46; }
  72% { opacity: .18; }
  100% { opacity: 0; transform: translateX(62%) rotate(-4deg); }
}
.floating-note { position: absolute; z-index: 2; display: flex; align-items: center; gap: 13px; padding: 14px 17px; background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.9); border-radius: 8px; box-shadow: 0 18px 40px rgba(21,34,29,.15); backdrop-filter: blur(13px); }
.floating-note > span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 10px; }
.floating-note p { margin: 0; display: flex; flex-direction: column; color: var(--muted); font-size: 11px; line-height: 1.4; }
.floating-note strong { color: var(--ink); font-size: 12px; }
.note-top { top: 105px; left: 0; }
.note-bottom { right: 0; bottom: 91px; }
.note-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #fee6eb; color: var(--red); }
.hero-orbit { position: absolute; border: 1px solid rgba(219,49,80,.18); border-radius: 50%; }
.orbit-one { width: 530px; height: 530px; right: -240px; top: -200px; }
.orbit-two { width: 350px; height: 350px; right: -125px; top: -115px; }

.ticker { position: relative; z-index: 3; width: 104%; margin-left: -2%; padding: 14px 0; background: var(--red); color: #fff; overflow: hidden; transform: rotate(-1.2deg); transform-origin: center; }
.ticker-track { display: flex; width: max-content; animation: ticker 25s linear infinite; }
.ticker span { display: flex; align-items: center; gap: 22px; padding-right: 44px; font-family: Georgia,serif; font-size: 21px; font-style: italic; white-space: nowrap; }
.ticker i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.65); }
@keyframes ticker { to { transform: translateX(-50%); } }

.path-section { padding: 130px 0 120px; }
.section-heading h2, .activity-copy h2, .contact-intro h2, .visit-copy h2 { font-size: clamp(47px, 5vw, 70px); }
.split-heading, .services-heading, .resource-heading { display: grid; grid-template-columns: 1fr .55fr; align-items: end; gap: 80px; }
.split-heading > p, .services-heading > p, .resource-heading > p { margin: 0 0 8px; color: var(--muted); line-height: 1.75; font-size: 15px; }
.path-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; margin-top: 52px; }
.path-card { min-height: 184px; padding: 28px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: 1fr auto; gap: 22px; border-radius: 5px; transition: transform .25s, box-shadow .25s; }
.path-card:hover { transform: translateY(-6px); box-shadow: 0 20px 42px rgba(21,34,29,.12); }
.path-card > svg { grid-column: 2; margin-left: auto; }
.path-index { width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-size: 10px; font-weight: 800; }
.path-card small { display: block; opacity: .72; font-size: 11px; }
.path-card h3 { margin: 9px 0 0; font-family: Georgia,serif; font-size: 24px; font-weight: 400; line-height: 1.12; }
.path-red { background: var(--red); color: #fff; }
.path-dark { background: var(--ink); color: #fff; }
.path-light { background: #e8eee9; color: var(--ink); }

.services-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 120px 0 135px;
  background:
    radial-gradient(circle at 12% 4%, rgba(145, 207, 177, .17), transparent 30%),
    radial-gradient(circle at 92% 36%, rgba(219, 49, 80, .15), transparent 29%),
    linear-gradient(132deg, #10251d 0%, #0d1b16 48%, #23171d 100%);
  color: #fff;
}
.services-section::before {
  content: "";
  position: absolute;
  z-index: -2;
  width: 920px;
  height: 920px;
  left: -320px;
  top: -520px;
  border-radius: 44% 56% 61% 39%;
  background: conic-gradient(from 80deg, rgba(173, 224, 199, .22), transparent 27%, rgba(219, 49, 80, .14), transparent 68%, rgba(173, 224, 199, .2));
  filter: blur(42px);
  animation: services-aurora 18s ease-in-out infinite alternate;
}
.services-section::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .19;
  background-image:
    linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(110deg, #000, transparent 42%, #000 88%);
  animation: services-grid-drift 30s linear infinite;
}
.services-section > .shell { position: relative; z-index: 2; }
.services-atmosphere { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.care-orbit { position: absolute; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.care-orbit::before { content: ""; position: absolute; width: 9px; height: 9px; border-radius: 50%; background: #f7849a; box-shadow: 0 0 0 7px rgba(247,132,154,.1), 0 0 28px rgba(247,132,154,.62); }
.care-orbit-a { width: 640px; height: 640px; right: -315px; top: -235px; animation: care-orbit-float 14s ease-in-out infinite; }
.care-orbit-a::before { left: 75px; bottom: 92px; }
.care-orbit-b { width: 410px; height: 410px; left: 19%; bottom: -335px; border-color: rgba(174,226,201,.15); animation: care-orbit-float 19s ease-in-out infinite reverse; }
.care-orbit-b::before { right: 50px; top: 75px; background: #afe0c8; box-shadow: 0 0 0 7px rgba(175,224,200,.09), 0 0 28px rgba(175,224,200,.5); }
.care-glow { position: absolute; border-radius: 50%; filter: blur(4px); opacity: .8; animation: care-glow-breathe 9s ease-in-out infinite; }
.care-glow-mint { width: 330px; height: 330px; left: 33%; top: 18%; background: radial-gradient(circle, rgba(125,196,161,.1), transparent 69%); }
.care-glow-coral { width: 430px; height: 430px; right: 6%; bottom: -125px; background: radial-gradient(circle, rgba(219,49,80,.13), transparent 68%); animation-delay: -4s; }
.care-pulse { position: absolute; right: 9%; top: 116px; width: 96px; height: 96px; display: grid; place-items: center; }
.care-pulse::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #ffc2ce; box-shadow: 0 0 18px #f7849a; }
.care-pulse i { position: absolute; inset: 0; border: 1px solid rgba(255,194,206,.34); border-radius: 50%; animation: care-pulse-ring 4.8s ease-out infinite; }
.care-pulse i:nth-child(2) { animation-delay: 1.6s; }
.care-pulse i:nth-child(3) { animation-delay: 3.2s; }
@keyframes services-aurora {
  0% { transform: translate3d(0,0,0) rotate(0deg) scale(1); }
  100% { transform: translate3d(170px,95px,0) rotate(32deg) scale(1.16); }
}
@keyframes services-grid-drift { to { background-position: 72px 72px, 72px 72px; } }
@keyframes care-orbit-float {
  0%, 100% { transform: translate3d(0,0,0) rotate(-7deg); }
  50% { transform: translate3d(-28px,24px,0) rotate(7deg); }
}
@keyframes care-glow-breathe {
  0%, 100% { transform: scale(.88); opacity: .46; }
  50% { transform: scale(1.22); opacity: 1; }
}
@keyframes care-pulse-ring {
  0% { transform: scale(.12); opacity: 0; }
  18% { opacity: .78; }
  100% { transform: scale(1.5); opacity: 0; }
}
.section-kicker.light { color: #f797aa; }
.services-heading .section-kicker.light { padding: 8px 12px; border: 1px solid rgba(247,151,170,.25); border-radius: 999px; background: rgba(219,49,80,.08); backdrop-filter: blur(8px); }
.services-heading h2 { text-wrap: balance; text-shadow: 0 20px 50px rgba(0,0,0,.18); }
.services-heading > p { padding-left: 22px; border-left: 1px solid rgba(247,151,170,.55); color: rgba(255,255,255,.66); }
.services-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin-top: 56px; }
.service-card { min-height: 265px; display: grid; grid-template-columns: 44% 56%; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 7px; color: var(--ink); box-shadow: 0 24px 55px rgba(0,0,0,.16); transition: transform .3s ease, box-shadow .3s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow: 0 32px 70px rgba(0,0,0,.24); }
.service-image { position: relative; min-height: 265px; overflow: hidden; }
.service-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(15%); transition: transform .5s, filter .5s; }
.service-card:hover img { transform: scale(1.05); filter: grayscale(0); }
.service-image span { position: absolute; top: 19px; left: 19px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.9); font-size: 10px; font-weight: 850; }
.service-copy { padding: 31px 29px; display: flex; flex-direction: column; }
.service-copy h3 { margin: 0; font-family: Georgia,serif; font-size: 29px; font-weight: 400; letter-spacing: -.03em; }
.service-copy p { margin: 14px 0 0; color: rgba(21,34,29,.68); font-size: 13px; line-height: 1.68; }
.service-copy a { margin: auto 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(21,34,29,.25); border-radius: 50%; transition: background .2s, color .2s; }
.service-copy a:hover { background: var(--ink); color: #fff; }
.service-card.rose { background: #f7d8dd; }
.service-card.mint { background: #cfe1d8; }
.service-card.sand { background: #e9dfca; }
.service-card.blue { background: #cbdde1; }

.activities-section { padding: 130px 0; background: #eff1ec; }
.activity-panel { display: grid; grid-template-columns: .82fr 1.18fr; min-height: 620px; background: var(--paper); border-radius: 10px; overflow: hidden; box-shadow: 0 34px 80px rgba(21,34,29,.09); }
.activity-copy { padding: 63px 52px; }
.activity-copy h2 { font-size: clamp(46px,4.5vw,65px); }
.activity-copy > p { margin: 25px 0 0; color: var(--muted); line-height: 1.7; font-size: 14px; }
.activity-tabs { margin-top: 42px; border-top: 1px solid var(--line); }
.activity-tabs button { width: 100%; padding: 18px 0; display: flex; gap: 18px; align-items: center; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--muted); text-align: left; cursor: pointer; transition: color .2s, padding .2s; }
.activity-tabs button span { font-size: 10px; font-weight: 800; }
.activity-tabs button.active { padding-left: 10px; color: var(--red); font-weight: 800; }
.activity-stage { position: relative; min-height: 620px; overflow: hidden; background: #dcdcd4; }
.activity-stage > img { width: 100%; height: 100%; object-fit: cover; transition: opacity .25s; filter: saturate(.82); }
.activity-stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 30%,rgba(12,26,20,.55)); }
.activity-card { position: absolute; z-index: 2; left: 34px; right: 105px; bottom: 34px; padding: 27px 30px; border-radius: 7px; background: rgba(255,253,249,.94); backdrop-filter: blur(15px); }
.activity-card small { color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.activity-card h3 { margin: 9px 0 0; font-family: Georgia,serif; font-size: 31px; font-weight: 400; }
.activity-card p { margin: 10px 0 17px; color: var(--muted); font-size: 13px; line-height: 1.62; }
.activity-card a { display: inline-flex; align-items: center; gap: 13px; color: var(--red); font-size: 12px; font-weight: 850; }
.activity-count { position: absolute; z-index: 3; right: 26px; bottom: 35px; display: flex; flex-direction: column; color: #fff; }
.activity-count strong { font-family: Georgia,serif; font-size: 31px; font-weight: 400; }
.activity-count span { color: rgba(255,255,255,.62); font-size: 11px; }

.voice-section { padding: 125px 0; background: var(--red); color: #fff; }
.voice-grid { display: grid; grid-template-columns: .16fr 1.25fr .59fr; gap: 54px; align-items: start; }
.voice-mark { font-family: Georgia,serif; font-size: 140px; line-height: .7; opacity: .36; }
.voice-section blockquote { margin: 0; }
.voice-section blockquote > p { margin: 0; font-family: Georgia,serif; font-size: clamp(35px,4vw,54px); line-height: 1.13; letter-spacing: -.035em; }
.voice-section blockquote em { color: #ffd4dc; }
.voice-section blockquote footer { margin-top: 32px; display: flex; align-items: center; gap: 13px; }
.voice-section blockquote footer > span { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; display: grid; place-items: center; font-size: 10px; }
.voice-section blockquote footer div { display: flex; flex-direction: column; }
.voice-section blockquote footer strong { font-size: 13px; }
.voice-section blockquote footer small { margin-top: 4px; color: rgba(255,255,255,.65); font-size: 11px; }
.voice-side { padding-top: 10px; }
.voice-side > span { display: block; padding-bottom: 13px; border-bottom: 1px solid rgba(255,255,255,.34); font-size: 10px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.voice-side p { margin: 21px 0 25px; color: rgba(255,255,255,.75); font-size: 13px; line-height: 1.75; }
.voice-side a { display: inline-flex; align-items: center; gap: 13px; font-size: 12px; font-weight: 850; }

.resources-section { padding: 132px 0; }
.resources-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 55px; }
.resource-card { min-height: 300px; padding: 29px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 7px; background: #fff; transition: transform .25s, border-color .25s, box-shadow .25s; }
.resource-card:hover { transform: translateY(-6px); border-color: rgba(219,49,80,.5); box-shadow: 0 25px 50px rgba(21,34,29,.09); }
.resource-top { display: flex; align-items: center; justify-content: space-between; color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.resource-top i { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--cream); color: var(--ink); font-style: normal; letter-spacing: 0; }
.resource-card h3 { margin: 38px 0 0; font-family: Georgia,serif; font-size: 30px; font-weight: 400; letter-spacing: -.03em; }
.resource-card > p { margin: 13px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.resource-action { margin-top: auto; padding-top: 24px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); font-size: 12px; font-weight: 850; }
.video-feature { margin-top: 17px; min-height: 390px; display: grid; grid-template-columns: 1.18fr .82fr; background: var(--ink); color: #fff; border-radius: 8px; overflow: hidden; }
.video-cover { position: relative; min-height: 390px; overflow: hidden; }
.video-cover img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.05); transition: transform .5s; }
.video-feature:hover .video-cover img { transform: scale(1.025); }
.video-cover::after { content: ""; position: absolute; inset: 0; background: rgba(10,24,18,.2); }
.play-button { position: absolute; z-index: 2; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 66px; height: 66px; display: grid; place-items: center; padding-left: 4px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 12px rgba(255,255,255,.16); }
.video-copy { padding: 55px 45px; display: flex; flex-direction: column; }
.video-copy > span { color: #f59bad; font-size: 10px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.video-copy h3 { margin: 20px 0 0; font-family: Georgia,serif; font-size: 39px; font-weight: 400; line-height: 1.04; }
.video-copy p { margin: 20px 0 0; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.75; }
.video-copy strong { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); font-size: 12px; }

.contact-section { position: relative; padding: 130px 0; overflow: hidden; background: var(--ink); color: #fff; }
.contact-grid { position: relative; z-index: 2; display: grid; grid-template-columns: .78fr 1.22fr; gap: 105px; align-items: start; }
.contact-intro > p { max-width: 430px; margin: 28px 0 0; color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.75; }
.contact-direct { margin-top: 42px; border-top: 1px solid rgba(255,255,255,.16); }
.contact-direct a { padding: 17px 0; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.16); }
.contact-direct small { color: rgba(255,255,255,.5); font-size: 11px; }
.contact-direct strong { color: #fff; font-size: 13px; font-weight: 650; }
.contact-form { padding: 42px; background: var(--paper); color: var(--ink); border-radius: 8px; box-shadow: 0 30px 70px rgba(0,0,0,.18); }
.form-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.form-head span { font-family: Georgia,serif; font-size: 26px; }
.contact-form label { margin-top: 25px; display: flex; flex-direction: column; gap: 9px; }
.contact-form label > span { font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid #bac2bd; outline: none; background: transparent; color: var(--ink); border-radius: 0; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--red); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #9ba49f; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.captcha-wrap { margin-top: 25px; }
.captcha-wrap > span { display: block; margin-bottom: 12px; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.captcha-box { min-height: 78px; display: flex; align-items: center; padding: 10px 12px; overflow-x: auto; border: 1px solid #d7ddd9; border-radius: 4px; background: #f7f8f6; }
.form-submit { width: 100%; min-height: 55px; margin-top: 27px; padding: 0 21px; display: flex; align-items: center; justify-content: space-between; border: 0; border-radius: 4px; background: var(--red); color: #fff; font-weight: 800; cursor: pointer; transition: background .2s; }
.form-submit:hover { background: var(--red-dark); }
.form-submit:disabled { cursor: wait; opacity: .72; }
.form-note { margin: 13px 0 0; padding: 11px 13px; border-radius: 4px; font-size: 12px; line-height: 1.45; }
.form-note.success { background: #e7f5ec; color: #24643d; }
.form-note.error { background: #fde8ec; color: #9f2239; }
.contact-accent { position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.accent-a { width: 520px; height: 520px; left: -270px; bottom: -290px; }
.accent-b { width: 350px; height: 350px; left: -180px; bottom: -205px; }

.visit-section { padding: 100px 0; background: var(--cream); }
.visit-card { min-height: 465px; display: grid; grid-template-columns: 1.25fr .75fr; background: #fff; border-radius: 9px; overflow: hidden; box-shadow: 0 28px 65px rgba(21,34,29,.09); }
.visit-map iframe { width: 100%; height: 100%; min-height: 465px; border: 0; filter: grayscale(1) contrast(.9); }
.visit-copy { position: relative; padding: 56px 47px; }
.visit-copy h2 { margin-top: 18px; font-size: 48px; }
.visit-copy p { margin: 25px 0 31px; color: var(--muted); line-height: 1.7; }
.visit-icon { position: absolute; right: 34px; top: 34px; width: 47px; height: 47px; display: grid; place-items: center; border-radius: 50%; background: #fee6eb; color: var(--red); }
.visit-icon svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.button-dark { background: var(--ink); color: #fff; }
.button-dark:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(21,34,29,.2); }

.partners-section { position: relative; padding: 0 0 88px; overflow: hidden; background: var(--cream); }
.partners-section::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 88% 34%, rgba(203,222,212,.48), transparent 30%), radial-gradient(circle at 8% 85%, rgba(219,49,80,.055), transparent 27%); }
.partners-heading { position: relative; z-index: 1; padding-top: 88px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: 90px; border-top: 1px solid rgba(21,34,29,.12); }
.partners-heading h2 { margin: 17px 0 0; font-size: clamp(48px,5.4vw,75px); line-height: .94; letter-spacing: -.045em; }
.partners-heading h2 em { color: var(--red); font-weight: 400; }
.partners-intro { max-width: 480px; padding-bottom: 5px; }
.partners-intro p { margin: 21px 0 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.partners-signal { display: inline-flex; align-items: center; gap: 9px; color: var(--ink); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.partners-signal i { width: 8px; height: 8px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 5px rgba(211,38,70,.1); animation: partners-pulse 2.2s ease-in-out infinite; }
.partners-marquee { position: relative; z-index: 1; width: 100vw; margin-top: 64px; overflow: hidden; scrollbar-width: none; border-top: 1px solid rgba(21,34,29,.11); border-bottom: 1px solid rgba(21,34,29,.11); background: rgba(255,253,249,.34); }
.partners-marquee::-webkit-scrollbar { display: none; }
.partners-track { width: max-content; display: flex; animation: partners-loop 64s linear infinite; animation-fill-mode: both; will-change: transform; }
.partners-group { display: flex; flex-shrink: 0; }
.partner-card { position: relative; width: clamp(210px,15vw,280px); height: 172px; flex: 0 0 clamp(210px,15vw,280px); padding: 30px 30px 20px; display: grid; grid-template-rows: 1fr auto; align-items: center; border-right: 1px solid rgba(21,34,29,.105); overflow: hidden; color: var(--ink); transition: background-color .9s ease, border-color .9s ease; }
.partner-card:first-child { border-left: 1px solid rgba(21,34,29,.105); }
.partner-card::before { content: ""; position: absolute; inset: auto 24px 0; height: 2px; background: var(--red); opacity: 0; transform: scaleX(.25); transition: opacity .9s ease, transform 1.15s cubic-bezier(.2,.75,.2,1); }
.partner-card:hover, .partner-card:focus-visible { border-color: rgba(21,34,29,.16); background: rgba(255,255,255,.48); }
.partner-card:hover::before, .partner-card:focus-visible::before { opacity: .72; transform: scaleX(1); }
.partner-logo { width: 100%; height: 86px; display: grid; place-items: center; }
.partner-logo img { display: block; max-width: 80%; max-height: 68px; object-fit: contain; filter: grayscale(.82) saturate(.65); opacity: .74; transform: scale(.985); transition: filter 1.2s ease, opacity 1.2s ease, transform 1.25s cubic-bezier(.2,.75,.2,1); }
.partner-card:hover .partner-logo img, .partner-card:focus-visible .partner-logo img { filter: grayscale(0) saturate(.92); opacity: 1; transform: scale(1.015); }
.partner-name { max-width: calc(100% - 25px); color: #56605b; font-size: 9px; font-weight: 750; line-height: 1.4; letter-spacing: .055em; text-transform: uppercase; transition: color .9s ease; }
.partner-card:hover .partner-name, .partner-card:focus-visible .partner-name { color: var(--ink); }
.partner-arrow { position: absolute; right: 22px; bottom: 21px; width: 15px; fill: none; stroke: var(--red); stroke-width: 1.7; opacity: 0; transform: translateX(-5px); transition: opacity .85s ease, transform 1s cubic-bezier(.2,.75,.2,1); }
.partner-card:hover .partner-arrow, .partner-card:focus-visible .partner-arrow { opacity: .75; transform: translateX(0); }
.partners-foot { position: relative; z-index: 1; margin-top: 27px; display: flex; align-items: center; justify-content: space-between; color: #6f7873; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.partners-foot span:last-child { display: inline-flex; align-items: center; gap: 8px; }
.partners-foot svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }
@keyframes partners-loop {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
@keyframes partners-pulse { 50% { opacity: .45; transform: scale(.7); } }

.footer { padding: 75px 0 25px; background: #0d1713; color: #fff; }
.footer-main { display: grid; grid-template-columns: 1.55fr repeat(3,.65fr); gap: 55px; }
.brand-footer .brand-copy strong { color: #fff; }
.brand-footer .brand-emblem-stem { stroke: #f5f1e8; }
.footer-brand > p { max-width: 290px; margin: 25px 0 0; color: rgba(255,255,255,.5); font-size: 13px; line-height: 1.7; }
.footer-links { display: flex; flex-direction: column; gap: 13px; }
.footer-links strong { margin-bottom: 10px; color: #fff; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.footer-links a { color: rgba(255,255,255,.54); font-size: 12px; }
.footer-links a:hover { color: #fff; }
.footer-bottom { margin-top: 60px; padding-top: 22px; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.4); font-size: 10px; }
.footer-bottom p { margin: 0; }

@media (max-width: 1050px) {
  .nav-links { gap: 19px; }
  .nav-cta { display: none; }
  .hero-grid { gap: 30px; }
  .contact-grid { gap: 55px; }
  .service-copy { padding: 26px 23px; }
}

@media (max-width: 820px) {
  .shell { width: min(100% - 32px, 680px); }
  .utility-inner p { display: none; }
  .utility-inner { justify-content: center; }
  .nav-wrap { min-height: 72px; }
  .menu-toggle { margin-left: auto; width: 42px; height: 42px; display: grid; place-content: center; gap: 6px; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span { width: 24px; height: 2px; background: var(--ink); }
  .nav-links { position: absolute; left: 0; right: 0; top: 72px; padding: 24px; display: none; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 20px 30px rgba(21,34,29,.1); }
  .nav-links.is-open { display: flex; }
  .nav-links a { padding: 13px 0; border-bottom: 1px solid var(--line); }
  .nav-links > a::after { display: none; }
  .hero-grid { min-height: auto; grid-template-columns: 1fr; padding-block: 72px 65px; }
  .hero-copy { padding: 0; }
  .hero h1 { font-size: clamp(53px,12vw,76px); }
  .hero-visual { min-height: 540px; margin-top: 10px; }
  .hero-image-card { inset: 10px 24px; }
  .note-top { left: 0; }
  .note-bottom { right: 0; }
  .split-heading, .services-heading, .resource-heading { grid-template-columns: 1fr; gap: 28px; }
  .path-section, .resources-section { padding: 95px 0; }
  .path-grid { grid-template-columns: 1fr; }
  .services-section { padding: 95px 0; }
  .services-grid { grid-template-columns: 1fr; }
  .activity-panel { grid-template-columns: 1fr; }
  .activity-stage { min-height: 580px; }
  .voice-grid { grid-template-columns: .13fr 1fr; }
  .voice-side { grid-column: 2; }
  .resources-grid { grid-template-columns: 1fr; }
  .video-feature { grid-template-columns: 1fr; }
  .video-cover { min-height: 330px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-intro { max-width: 610px; }
  .visit-card { grid-template-columns: 1fr; }
  .visit-map iframe { min-height: 340px; }
  .partners-heading { grid-template-columns: 1fr; gap: 30px; }
  .partners-intro { max-width: 580px; }
  .footer-main { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .shell { width: min(100% - 24px, 480px); }
  .utility-inner { font-size: 10px; }
  .utility-inner div { gap: 7px; }
  .brand { gap: 8px; }
  .brand-mark { width: 45px; height: 45px; flex-basis: 45px; }
  .brand-copy strong { font-size: 13px; }
  .brand-copy small { margin-top: 5px; font-size: 8px; letter-spacing: .14em; }
  .hero-grid { padding-top: 54px; }
  .hero h1 { font-size: 50px; }
  .hero-lead { font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .button-primary { width: 100%; justify-content: space-between; }
  .hero-visual { min-height: 430px; }
  .hero-image-card { inset: 0 10px 0 20px; border-radius: 150px 150px 12px 12px; }
  .hero-image-caption { left: 20px; right: 78px; bottom: 20px; }
  .hero-image-caption strong { font-size: 16px; }
  .hero-slide-nav { right: 19px; bottom: 24px; }
  .floating-note { padding: 11px 13px; }
  .note-top { top: 58px; }
  .note-bottom { bottom: 50px; }
  .section-heading h2, .activity-copy h2, .contact-intro h2 { font-size: 44px; }
  .path-section { padding: 85px 0 80px; }
  .path-grid { margin-top: 38px; }
  .path-card { min-height: 165px; }
  .services-section { padding: 84px 0; }
  .services-grid { margin-top: 40px; }
  .service-card { grid-template-columns: 1fr; }
  .service-image { min-height: 210px; }
  .service-copy { min-height: 210px; }
  .activities-section { padding: 75px 0; }
  .activity-copy { padding: 42px 26px; }
  .activity-stage { min-height: 500px; }
  .activity-card { left: 15px; right: 15px; bottom: 16px; padding: 22px; }
  .activity-count { top: 20px; right: 20px; bottom: auto; }
  .voice-section { padding: 85px 0; }
  .voice-grid { grid-template-columns: 1fr; gap: 20px; }
  .voice-mark { font-size: 90px; }
  .voice-side { grid-column: 1; margin-top: 25px; }
  .voice-section blockquote > p { font-size: 37px; }
  .resources-section { padding: 85px 0; }
  .resources-grid { margin-top: 38px; }
  .video-cover { min-height: 235px; }
  .video-copy { padding: 35px 27px; }
  .video-copy h3 { font-size: 34px; }
  .video-copy strong { margin-top: 30px; }
  .contact-section { padding: 85px 0; }
  .contact-grid { gap: 45px; }
  .contact-form { padding: 29px 22px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .visit-section { padding: 60px 0; }
  .visit-map iframe { min-height: 290px; }
  .visit-copy { padding: 42px 27px; }
  .visit-copy h2 { font-size: 42px; }
  .visit-icon { display: none; }
  .partners-section { padding-bottom: 62px; }
  .partners-heading { padding-top: 72px; }
  .partners-heading h2 { font-size: 50px; }
  .partners-marquee { margin-top: 43px; }
  .partners-track { animation-duration: 72s; }
  .partner-card { width: 185px; height: 145px; flex-basis: 185px; padding: 23px 18px 16px; }
  .partner-logo { height: 70px; }
  .partner-logo img { max-height: 55px; }
  .partner-name { max-width: 158px; font-size: 8px; }
  .partner-arrow { right: 13px; bottom: 14px; }
  .partners-foot span:last-child { display: none; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 42px 25px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 9px; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .partners-marquee { overflow: hidden; }
  .partners-track {
    animation-name: partners-loop !important;
    animation-duration: 90s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
  }
}
