:root {
  color-scheme: light;
  --purple: #670060;
  --purple-dark: #42003e;
  --yellow: #fdba43;
  --white: #ffffff;
  --cream: #fffaf0;
  --ink: #2a0627;
  --muted: #70556d;
  --max: 82rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--cream); color: var(--ink); font-family: "Trebuchet MS", "Avenir Next", Avenir, ui-sans-serif, system-ui, sans-serif; line-height: 1.5; text-rendering: optimizeLegibility; }
a { color: inherit; text-underline-offset: .22em; }
a:focus-visible { outline: 4px solid var(--yellow); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; padding: .7rem 1rem; background: var(--white); color: var(--purple); font-weight: 900; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

.announcement { display: flex; min-height: 2.65rem; align-items: center; justify-content: center; gap: .8rem; padding: .55rem 1rem; background: var(--yellow); color: var(--purple-dark); font-size: .76rem; font-weight: 900; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.site-header { display: flex; min-height: 7rem; align-items: center; justify-content: space-between; gap: 2rem; padding-inline: max(1.5rem, calc((100% - var(--max)) / 2)); background: var(--purple); color: var(--white); }
.brand { display: block; width: 7rem; flex: 0 0 auto; }
.brand img { width: 100%; }
.site-header nav { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.7rem); font-size: .95rem; font-weight: 900; }
.site-header nav a { text-decoration: none; }
.site-header nav a:not(.nav-cta):hover { color: var(--yellow); }
.nav-cta { display: inline-flex; min-height: 3rem; align-items: center; gap: .5rem; padding: .65rem 1rem; background: var(--yellow); color: var(--purple); box-shadow: .35rem .35rem 0 var(--white); transition: transform 150ms ease, box-shadow 150ms ease; }
.nav-cta:hover { transform: translate(-.12rem, -.12rem); box-shadow: .5rem .5rem 0 var(--white); }

.hero { display: grid; grid-template-columns: minmax(0, .82fr) minmax(26rem, 1.18fr); min-height: min(50rem, calc(100svh - 9.65rem)); background: var(--cream); }
.hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 5vw, 6rem) clamp(4rem, 8vw, 8rem) max(1.5rem, calc((100vw - var(--max)) / 2)); }
.eyebrow, .section-label { margin: 0 0 1.15rem; color: var(--purple); font-size: .76rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-weight: 950; letter-spacing: -.06em; line-height: .94; }
h1 { max-width: 10ch; margin-bottom: 1.65rem; font-size: clamp(3.6rem, 6.4vw, 6.7rem); }
h2 { max-width: 13ch; font-size: clamp(3rem, 5.4vw, 5.4rem); }
h3 { margin-bottom: 2rem; color: var(--yellow); font-size: clamp(1.45rem, 2.5vw, 2.15rem); letter-spacing: -.03em; text-transform: uppercase; }
.hero-summary { max-width: 31rem; margin-bottom: 2rem; color: var(--muted); font-size: clamp(1.1rem, 1.7vw, 1.4rem); }
.primary-action { display: inline-flex; min-height: 3.65rem; align-items: center; justify-content: center; gap: .75rem; padding: .85rem 1.25rem; border: 2px solid var(--purple); background: var(--purple); color: var(--white); box-shadow: .45rem .45rem 0 var(--yellow); font-weight: 900; text-decoration: none; transition: transform 150ms ease, box-shadow 150ms ease; }
.primary-action:hover { transform: translate(-.12rem, -.12rem); box-shadow: .58rem .58rem 0 var(--yellow); }
.hero-media { position: relative; overflow: hidden; min-height: 36rem; margin: 0; background: var(--yellow); }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 54% center; }
.hero-media figcaption { position: absolute; right: 1.5rem; bottom: 1.5rem; padding: .7rem 1rem; background: var(--yellow); color: var(--purple); font-size: .78rem; font-weight: 950; letter-spacing: .14em; text-transform: uppercase; transform: rotate(-2deg); }

.about { display: grid; grid-template-columns: .55fr 1.45fr; gap: clamp(2rem, 9vw, 10rem); width: min(100% - 3rem, var(--max)); margin-inline: auto; padding: clamp(6rem, 11vw, 11rem) 0; }
.about .section-label { width: max-content; padding-top: .65rem; border-top: .4rem solid var(--yellow); }
.about-lead { max-width: 42rem; font-size: clamp(1.35rem, 2.6vw, 2rem); font-weight: 750; }
.about div > p:last-child { max-width: 40rem; margin-bottom: 0; color: var(--muted); font-size: 1.08rem; }

.answers { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem, 8vw, 9rem); padding: clamp(5rem, 9vw, 9rem) max(1.5rem, calc((100% - var(--max)) / 2)); background: var(--yellow); }
.answers h2 { margin-bottom: 0; }
.answer-list { margin: 0; border-top: 2px solid var(--purple); }
.answer-list div { padding: 1.55rem 0; border-bottom: 2px solid var(--purple); }
.answer-list dt { margin-bottom: .35rem; font-size: 1.2rem; font-weight: 950; }
.answer-list dd { margin: 0; color: #57314f; }

.contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.5rem, 6vw, 7rem); padding: clamp(5rem, 8vw, 8rem) max(1.5rem, calc((100% - var(--max)) / 2)); background: var(--purple); color: var(--white); }
.contact-column { min-width: 0; }
.contact-logo { width: 7rem; margin: -1rem 0 1.5rem; }
.contact-list { margin: 0; }
.contact-list div { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.28); }
.contact-list dt { font-weight: 850; }
.contact-list dd { margin: 0; color: #f1c9ed; text-align: right; }
.status-line { margin-bottom: 2rem; font-size: clamp(1.55rem, 3vw, 2.35rem); font-weight: 950; line-height: 1; }
.contact address { margin-bottom: 2rem; font-size: clamp(1.25rem, 2vw, 1.65rem); font-style: normal; font-weight: 850; line-height: 1.35; }
.map-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--yellow); font-weight: 900; }
.socials { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.5rem; }
.social-link { display: inline-flex; min-height: 2.65rem; align-items: center; gap: .45rem; padding: .55rem .75rem; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; color: var(--white); font-size: .78rem; font-weight: 900; }
.social-link small { color: var(--yellow); font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; }

.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.6rem max(1.5rem, calc((100% - var(--max)) / 2)); background: var(--purple-dark); color: var(--white); font-size: .86rem; }
.site-footer p { margin: 0; }
.site-footer nav { display: flex; gap: 1.25rem; }
.site-footer a { color: var(--yellow); font-weight: 850; }

.legal-header { background: var(--purple); }
.legal-header .site-header { padding-inline: max(1.5rem, calc((100% - 64rem) / 2)); }
.legal-header .brand { width: 5.25rem; }
.legal-header a { color: var(--white); font-weight: 850; }
.legal-page { width: min(100% - 3rem, 64rem); margin-inline: auto; padding: clamp(4rem, 9vw, 8rem) 0; }
.legal-page h1 { max-width: none; font-size: clamp(3.5rem, 8vw, 6.5rem); }
.legal-page h2 { max-width: none; margin: 3.5rem 0 1rem; font-size: clamp(1.9rem, 4vw, 2.8rem); letter-spacing: -.04em; line-height: 1; }
.legal-page p, .legal-page li { max-width: 50rem; font-size: 1.06rem; }
.legal-page li + li { margin-top: .65rem; }
.legal-updated { padding-bottom: 2rem; border-bottom: 2px solid #e7d8e4; color: var(--muted); }
.error-page { display: grid; min-height: 100svh; place-items: center; padding: 1.5rem; background: var(--purple); color: var(--white); }
.error-page main { width: min(100%, 46rem); }
.error-page h1 { max-width: none; color: var(--yellow); }
.error-page .primary-action { background: var(--white); color: var(--purple); }

@media (max-width: 58rem) {
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding-inline: max(1.5rem, calc((100vw - 46rem) / 2)); }
  .hero-media { min-height: clamp(28rem, 85vw, 42rem); }
  .about, .answers { grid-template-columns: 1fr; }
  .contact { grid-template-columns: 1fr; }
  .contact-column { max-width: 40rem; }
}

@media (max-width: 42rem) {
  .site-header { min-height: 5.8rem; padding-inline: .9rem; }
  .brand { width: 5rem; }
  .site-header nav { gap: .75rem; }
  .site-header nav > a:not(.nav-cta) { display: none; }
  .nav-cta { min-height: 2.75rem; }
  .hero-copy { padding: 3.5rem 1.1rem 4.5rem; }
  h1 { font-size: clamp(3.25rem, 16vw, 4.7rem); }
  .hero-media { min-height: 30rem; }
  .about { width: min(100% - 2rem, var(--max)); }
  .site-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; } }
@media print { .announcement, .site-header nav, .primary-action, .map-link, .socials { display: none; } body, .contact, .site-footer { background: #fff; color: #000; } }
