/* The Calling homepage — cinematic media, simple navigation, room to dream. */
*, *::before, *::after { box-sizing: border-box; }
:root {
  color-scheme: light;
  --ink: #101b23;
  --blue: #194a67;
  --sky: #eaf3f7;
  --muted: #52616b;
  --sans: 'Figtree', Arial, sans-serif;
  --serif: 'Instrument Serif', Georgia, serif;
}
html { scroll-padding-top: 90px; }
body { margin: 0; color: var(--ink); font-family: var(--sans); background: #fff; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; }
button, summary { cursor: pointer; }
button[hidden], [hidden] { display: none !important; }
h1, h2, h3, p { margin: 0; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #1683be; outline-offset: 5px; }
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 100; padding: 12px 20px; background: #fff; color: var(--blue); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: clamp(22px, 3vw, 48px); min-height: 72px; padding: 8px 32px 8px 24px; background: #fff; box-shadow: 0 1px 0 rgb(0 0 0 / 8%); }
.brand { flex: 0 0 104px; }
.brand img { width: 104px; height: auto; }
.primary-nav { display: flex; align-items: center; gap: clamp(20px, 2.3vw, 36px); flex: 1; }
.primary-nav > a, .more-nav summary, .nav-actions > a { display: flex; align-items: center; min-height: 44px; font-size: 12px; line-height: 1.2; font-weight: 750; letter-spacing: .025em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.primary-nav > a:hover, .more-nav summary:hover, .contact-link:hover { color: #287ba1; }
.more-nav { position: relative; }
.more-nav summary { gap: 6px; list-style: none; }
.more-nav summary::-webkit-details-marker { display: none; }
.more-nav summary svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.more-nav[open] summary svg { transform: rotate(180deg); }
.more-panel { position: absolute; top: calc(100% + 13px); left: -22px; min-width: 218px; padding: 12px; background: #fff; box-shadow: 0 12px 36px rgb(11 35 50 / 16%); border-top: 3px solid var(--blue); }
.more-panel a { display: flex; align-items: center; min-height: 44px; padding: 9px 12px; text-decoration: none; font-size: 14px; font-weight: 500; }
.more-panel a:hover { background: var(--sky); }
.nav-actions { margin-inline-start: auto; display: flex; align-items: center; gap: 28px; }
.nav-actions .contact-link { font-weight: 500; }
.nav-actions .donate-link { justify-content: center; min-width: 118px; padding: 12px 24px; background: var(--blue); color: #fff; border-radius: 30px; transition: background .18s; }
.nav-actions .donate-link:hover { background: #102f43; }
.menu-toggle { display: none; }
.hero { min-height: clamp(590px, 44vw, 740px); position: relative; isolation: isolate; display: flex; align-items: center; color: white; background: #274e65 url('/assets/landing-hero.jpg') center / cover; overflow: hidden; }
.hero-video, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.hero-video { object-fit: cover; object-position: center; }
.hero-shade { background: linear-gradient(90deg, rgb(255 255 255 / 94%) 0%, rgb(245 250 253 / 87%) 32%, rgb(237 246 251 / 20%) 64%, rgb(12 38 57 / 4%) 100%); }
.hero-content { width: 46%; max-width: 650px; padding: 48px 20px 74px; margin-inline-start: 3.5%; text-align: center; color: var(--blue); }
.hero-logo { width: clamp(250px, 26vw, 360px); height: auto; margin: -25px auto 1px; }
.hero h1 { font: 400 clamp(30px, 2.6vw, 40px)/1.06 var(--serif); letter-spacing: -.015em; text-wrap: balance; }
.hero-description { max-width: 425px; margin: 18px auto 25px; font-size: 16px; line-height: 1.6; color: #284c61; text-wrap: pretty; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 14px 34px; border-radius: 100px; text-decoration: none; font-size: 14px; font-weight: 650; letter-spacing: .01em; transition: background .18s, color .18s, transform .18s; }
.button-hero { min-width: 236px; background: var(--blue); color: #fff; }
.button-hero:hover { background: #102f43; }
.hero-tour-mark { position: absolute; top: 30px; right: 34px; text-align: center; text-transform: uppercase; font-size: 10px; font-weight: 600; letter-spacing: .14em; line-height: 1.6; text-shadow: 0 1px 8px rgb(0 0 0 / 50%); }
.hero-tour-mark span { display: block; margin-top: 2px; font-size: 16px; letter-spacing: .15em; }
.hero-discover { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 5px 16px; color: #fff; text-decoration: none; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.hero-discover svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.video-toggle { position: absolute; bottom: 24px; right: 28px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgb(255 255 255 / 60%); color: #fff; background: rgb(9 31 47 / 38%); }
.video-toggle:hover { background: rgb(9 31 47 / 75%); }
.video-toggle svg { grid-area: 1 / 1; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.video-toggle .play-icon { fill: currentColor; stroke: none; margin-left: 2px; }
.video-toggle[data-playing='true'] .play-icon, .video-toggle:not([data-playing='true']) .pause-icon { display: none; }
.section-shell { max-width: 1440px; margin-inline: auto; padding-inline: clamp(24px, 5vw, 80px); }
.discover { padding-block: 56px 72px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 28px; }
.eyebrow { font-size: 10px; line-height: 1.5; text-transform: uppercase; letter-spacing: .14em; font-weight: 650; color: var(--blue); margin-bottom: 10px; }
h2 { font: 400 clamp(34px, 3.4vw, 50px)/1.08 var(--serif); letter-spacing: -.025em; text-wrap: balance; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 18px; text-decoration: none; color: var(--blue); font-size: 13px; font-weight: 600; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.text-link span { font-size: 20px; font-weight: 400; }
.discovery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.discovery-card { text-decoration: none; min-width: 0; }
.card-image { aspect-ratio: 4 / 5; overflow: hidden; position: relative; background: var(--sky); outline: 1px solid rgb(0 0 0 / 10%); outline-offset: -1px; }
.card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease-out; }
.card-image-podcast img { object-fit: contain; object-position: center; }
.card-image-purpose img { object-position: center 38%; }
.card-copy { padding: 22px 0 0; }
.card-copy .eyebrow { font-size: 9px; margin-bottom: 8px; }
.card-copy h3 { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 18px; line-height: 1.3; font-weight: 600; letter-spacing: -.02em; }
.card-copy h3 span { font-size: 19px; font-weight: 400; }
.card-copy > p:last-child { max-width: 340px; margin-top: 10px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.discovery-card:hover h3 { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.imagination-station, .haiti-section { display: grid; grid-template-columns: .85fr 1.3fr; align-items: center; gap: clamp(36px, 5vw, 72px); padding-block: 72px 80px; border-top: 1px solid #e8edef; }
.haiti-section { grid-template-columns: 1.3fr .85fr; }
.imagination-copy, .haiti-copy { min-width: 0; }
.imagination-copy .eyebrow, .haiti-copy .eyebrow { margin-bottom: 22px; }
.imagination-copy h2 { max-width: 410px; }
.imagination-copy h2 img { width: 100%; height: auto; }
.imagination-tagline { margin-top: 28px; font: 400 clamp(32px, 3vw, 44px)/1.08 var(--serif); letter-spacing: -.025em; color: var(--blue); }
.imagination-description, .haiti-description { max-width: 410px; margin-block: 20px 26px; font-size: 15px; line-height: 1.8; color: var(--muted); }
.imagination-email, .haiti-email { display: table; min-height: 44px; padding-block: 14px 8px; font-size: 13px; line-height: 1.5; color: var(--blue); text-underline-offset: 4px; overflow-wrap: anywhere; }
.imagination-visual, .haiti-visual { min-width: 0; margin: 0; }
.imagination-visual img, .haiti-visual img { width: 100%; height: auto; outline: 1px solid rgb(0 0 0 / 10%); outline-offset: -1px; }
.imagination-visual figcaption { max-width: 410px; margin-top: 14px; font-size: 11px; line-height: 1.6; color: var(--muted); }
.button-blue { background: var(--blue); color: #fff; }
.button-blue:hover { background: #102f43; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .button:active, .donate-link:active, .video-toggle:active { transform: scale(.96); }
  .discovery-card:hover .card-image img { transform: scale(1.035); }
}
@media (min-width: 1600px) { .hero-content { margin-inline-start: max(3.5%, calc((100vw - 1500px) / 2)); } }
@media (max-width: 1100px) {
  .site-header { gap: 24px; padding-inline: 20px; }
  .primary-nav { gap: 20px; }
  .primary-nav > a, .more-nav summary, .nav-actions > a { font-size: 11px; }
  .nav-actions { gap: 18px; }
  .nav-actions .donate-link { min-width: 95px; padding-inline: 20px; }
  .hero-content { width: 51%; margin-inline-start: 1%; }
}
@media (max-width: 950px) {
  html { scroll-padding-top: 84px; }
  .site-header { flex-wrap: wrap; justify-content: space-between; padding: 7px 24px; min-height: 68px; gap: 0; }
  .brand, .brand img { width: 96px; flex-basis: 96px; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 8px 0 8px 16px; border: 0; background: none; color: var(--ink); font-size: 12px; font-weight: 600; }
  .menu-icon { position: relative; width: 20px; height: 12px; border-top: 1.5px solid; border-bottom: 1.5px solid; }
  .menu-icon::after { content: ''; position: absolute; top: 4px; left: 0; width: 20px; border-top: 1.5px solid; }
  .menu-toggle[aria-expanded='true'] .menu-icon { border-bottom: 0; height: 0; transform: rotate(45deg); }
  .menu-toggle[aria-expanded='true'] .menu-icon::after { top: -1.5px; transform: rotate(90deg); }
  .primary-nav { flex-basis: 100%; flex-wrap: wrap; gap: 0; padding: 14px 0 18px; max-height: calc(100dvh - 68px); overflow-y: auto; }
  .js .primary-nav:not(.is-open) { display: none; }
  .primary-nav > a, .more-nav { flex-basis: 50%; }
  .primary-nav > a, .more-nav summary, .nav-actions > a { min-height: 48px; font-size: 12px; }
  .more-panel { position: static; border-top: 0; box-shadow: none; padding: 0 0 10px; min-width: 0; }
  .more-panel a { padding-inline: 0; }
  .nav-actions { flex-basis: 100%; margin-top: 16px; gap: 28px; }
  .nav-actions .donate-link { min-width: 140px; }
  .hero { min-height: 600px; }
  .hero-content { width: 58%; margin-inline-start: 0; }
  .hero-logo { width: 280px; }
  .hero-tour-mark { top: 24px; right: 24px; font-size: 9px; }
  .hero-tour-mark span { font-size: 14px; }
  .hero-shade { background: linear-gradient(90deg, rgb(255 255 255 / 94%), rgb(245 250 253 / 85%) 48%, rgb(237 246 251 / 8%)); }
  .section-heading { align-items: start; }
  .section-heading .text-link { max-width: 160px; line-height: 1.5; }
  .discovery-grid { gap: 20px; }
  .card-copy h3 { font-size: 16px; }
  .imagination-station, .haiti-section { grid-template-columns: 1fr; gap: 32px; padding-block: 56px; }
  .imagination-copy, .haiti-copy { max-width: 560px; }
  .imagination-copy h2 { max-width: 390px; }
  .imagination-tagline { font-size: 40px; }
  .imagination-description, .haiti-description { max-width: 500px; }
  .imagination-visual figcaption { max-width: none; }
}
@media (max-width: 600px) {
  .site-header { padding-inline: 20px; }
  .hero { min-height: 650px; min-height: min(760px, max(650px, calc(100svh - 68px))); align-items: center; }
  .hero-video { object-position: 64% center; }
  .hero { background-position: 64% center; }
  .hero-shade { background: linear-gradient(180deg, rgb(8 36 54 / 12%), rgb(245 250 253 / 90%) 24%, rgb(245 250 253 / 94%) 76%, rgb(8 36 54 / 60%) 100%); }
  .hero-content { width: 100%; max-width: none; padding: 86px 26px 94px; margin: 0; }
  .hero-logo { width: 280px; margin: -12px auto 6px; }
  .hero h1 { font-size: 36px; }
  .hero-description { max-width: 335px; font-size: 15px; margin-block: 18px 26px; }
  .hero-tour-mark { top: 23px; right: 0; left: 0; font-size: 9px; }
  .hero-tour-mark span { font-size: 13px; }
  .hero-discover { bottom: 20px; font-size: 9px; }
  .video-toggle { right: 18px; bottom: 23px; }
  .section-shell { padding-inline: 24px; }
  .discover { padding-block: 40px 48px; }
  .section-heading { display: block; margin-bottom: 22px; }
  .section-heading .text-link { max-width: none; margin-top: 12px; }
  .discovery-grid { grid-template-columns: 1fr; gap: 32px; }
  .card-copy { padding-top: 18px; }
  .card-copy h3 { font-size: 20px; }
  .card-copy > p:last-child { max-width: none; }
  .imagination-station, .haiti-section { padding-block: 44px 48px; }
  .imagination-copy .eyebrow, .haiti-copy .eyebrow { margin-bottom: 18px; }
  .imagination-tagline { margin-top: 24px; font-size: 36px; }
}
