:root {
  --ca-black: #0d0d0d;
  --ca-ink: #2d2723;
  --ca-brown: #6e5848;
  --ca-paper: #f5f0e8;
  --ca-cream: #fbf8f4;
  --ca-champagne: #c9b99a;
  --ca-gold: #b8965a;
  --ca-clay: #bf6b52;
  --ca-line: rgba(110, 88, 72, .22);
  --ca-sans: "DM Sans", Arial, sans-serif;
}

.ca-page { background: var(--ca-paper); color: var(--ca-ink); font-family: var(--ca-sans); }
.ca-page h1, .ca-page h2, .ca-page h3, .ca-page h4 { font-family: var(--ca-sans); font-weight: 500; letter-spacing: -.045em; }
.ca-page p { line-height: 1.65; }
.ca-page .site-header { font-family: var(--ca-sans); }
.ca-page main { overflow: clip; }
.ca-section { padding: clamp(88px, 10vw, 150px) 0; }
.ca-kicker { margin: 0 0 22px; color: var(--ca-gold); font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .17em; text-transform: uppercase; }
.ca-lead { max-width: 720px; font-size: clamp(18px, 2vw, 23px); line-height: 1.55 !important; }

.ca-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 13px 20px; border: 1px solid currentColor; color: inherit; background: transparent; font-family: var(--ca-sans); font-size: 13px; font-weight: 700; line-height: 1.2; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; cursor: pointer; }
.ca-button:hover, .ca-button:focus-visible { transform: translateY(-2px); }
.ca-button-light { color: var(--ca-black); background: var(--ca-paper); border-color: var(--ca-paper); }
.ca-button-dark { color: var(--ca-paper); background: var(--ca-black); border-color: var(--ca-black); }
.ca-button-outline { color: var(--ca-paper); border-color: rgba(245,240,232,.45); }
.ca-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.ca-hero { position: relative; min-height: 760px; display: flex; align-items: center; padding: clamp(70px, 8vw, 118px) 0; background: var(--ca-black); color: var(--ca-paper); }
.ca-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 14% 18%, rgba(184,150,90,.17), transparent 30%), linear-gradient(115deg, transparent 60%, rgba(191,107,82,.09)); }
.ca-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .92fr) minmax(500px, 1.08fr); gap: clamp(54px, 8vw, 120px); align-items: center; }
.ca-hero-copy h1 { max-width: 750px; margin: 0; color: var(--ca-paper); font-size: clamp(52px, 6.3vw, 91px); line-height: .98; }
.ca-hero-copy h1 span { color: var(--ca-champagne); }
.ca-hero-copy .ca-lead { margin-top: 32px; color: #d6cec4; }
.ca-hero-mosaic { position: relative; height: 610px; display: grid; grid-template-columns: 1.18fr .82fr; grid-template-rows: 1fr 1fr 1fr; gap: 10px; }
.ca-portrait { min-width: 0; min-height: 0; margin: 0; overflow: hidden; background: #2a2521; }
.ca-portrait-main { grid-row: 1 / 4; }
.ca-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 18%; filter: saturate(.84) contrast(1.02); transition: transform .7s cubic-bezier(.22,.72,.28,1), filter .7s ease; }
.ca-portrait:nth-child(2) img { object-position: center 57%; }
.ca-portrait:nth-child(3) img { object-position: center 18%; }
.ca-portrait:nth-child(4) img { object-position: center 18%; }
.ca-portrait:hover img { transform: scale(1.025); filter: saturate(1); }
.ca-mosaic-note { position: absolute; right: -22px; bottom: 24px; width: 210px; margin: 0; padding: 20px 22px; color: var(--ca-black); background: var(--ca-champagne); box-shadow: 0 18px 50px rgba(0,0,0,.28); }
.ca-mosaic-note strong, .ca-mosaic-note span { display: block; }
.ca-mosaic-note strong { font-size: 21px; }
.ca-mosaic-note span { margin-top: 2px; font-size: 12px; }

.ca-paths { display: grid; grid-template-columns: 1fr 1fr; background: var(--ca-champagne); border-bottom: 1px solid rgba(45,39,35,.2); }
.ca-paths a { min-height: 180px; display: grid; grid-template-columns: 58px 1fr; align-content: center; gap: 2px 20px; padding: 36px max(36px, calc((100vw - 1180px) / 2)); color: var(--ca-black); text-decoration: none; transition: background .25s ease, color .25s ease; }
.ca-paths a:first-child { padding-right: clamp(38px, 7vw, 110px); border-right: 1px solid rgba(45,39,35,.2); }
.ca-paths a:last-child { padding-left: clamp(38px, 7vw, 110px); }
.ca-paths a:hover { color: var(--ca-paper); background: var(--ca-ink); }
.ca-paths span { grid-row: 1 / 3; align-self: start; color: var(--ca-clay); font-size: 12px; font-weight: 700; }
.ca-paths strong { font-size: clamp(20px, 2vw, 29px); font-weight: 600; line-height: 1.18; }
.ca-paths small { margin-top: 7px; color: currentColor; opacity: .7; font-size: 13px; }

.ca-listen { background: var(--ca-paper); }
.ca-intro { display: grid; grid-template-columns: .58fr 1.42fr; gap: clamp(52px, 10vw, 145px); align-items: start; }
.ca-intro h2, .ca-proof-heading h2 { max-width: 860px; margin: 0; font-size: clamp(42px, 5.4vw, 74px); line-height: 1.02; }
.ca-intro p:last-child { max-width: 760px; margin: 28px 0 0; font-size: 18px; }
.ca-media-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-top: 74px; }
.ca-media-card { min-height: 430px; display: flex; align-items: end; padding: clamp(34px, 4vw, 54px); color: var(--ca-paper); background: var(--ca-ink); border: 0; }
.ca-media-card::before { display: none; }
.ca-media-card > div { width: 100%; }
.ca-media-card h3 { margin: 13px 0 16px; font-size: clamp(48px, 6vw, 78px); line-height: .95; }
.ca-media-card p { max-width: 480px; color: #d7cec5; }
.ca-media-card-gold { color: var(--ca-black); background: var(--ca-gold); }
.ca-media-card-gold p { color: #302820; }
.ca-media-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ca-media-card iframe { width: 100%; height: 100%; min-height: 360px; border: 0; }
.ca-belgium-feature { display: grid; grid-template-columns: .86fr 1.14fr; gap: 0; margin-top: 96px; color: var(--ca-ink); background: var(--ca-champagne); }
.ca-belgium-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(42px, 6vw, 78px); }
.ca-belgium-copy .ca-kicker { color: #6d4e27; }
.ca-belgium-copy h3 { max-width: 600px; margin: 0 0 24px; font-size: clamp(38px, 4.7vw, 62px); line-height: 1; }
.ca-belgium-copy p:not(.ca-kicker) { max-width: 560px; }
.ca-belgium-portraits { min-width: 0; min-height: 580px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; background: var(--ca-black); }
.ca-belgium-portraits img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 20%; }
.ca-season-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(56px, 9vw, 130px); margin-top: 96px; padding-top: 70px; border-top: 1px solid var(--ca-line); }
.ca-season-current { padding: 42px; color: var(--ca-paper); background: var(--ca-black); }
.ca-season-current > span { color: var(--ca-champagne); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ca-season-current h3 { margin: 90px 0 18px; font-size: clamp(34px, 4vw, 52px); line-height: 1; }
.ca-season-current p { color: #cfc6bc; }
.ca-season-current a { display: inline-block; margin-top: 26px; color: var(--ca-paper); font-size: 13px; font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--ca-gold); }
.ca-season-archive a { display: flex; justify-content: space-between; gap: 25px; padding: 26px 0; color: var(--ca-ink); text-decoration: none; border-bottom: 1px solid var(--ca-line); }
.ca-season-archive a:first-of-type { border-top: 1px solid var(--ca-line); }
.ca-season-archive a span { font-size: clamp(18px, 2vw, 25px); }
.ca-season-archive a strong { align-self: center; font-size: 12px; white-space: nowrap; }

.ca-voices { overflow: hidden; color: var(--ca-paper); background: var(--ca-clay); border-block: 1px solid rgba(13,13,13,.2); }
.ca-voices-track { width: max-content; display: flex; align-items: center; padding: 20px 0; animation: ca-marquee 38s linear infinite; }
.ca-voices span { white-space: nowrap; font-size: 16px; font-weight: 600; }
.ca-voices span::after { content: "✦"; margin: 0 34px; color: var(--ca-black); font-size: 9px; }
@keyframes ca-marquee { to { transform: translateX(-50%); } }

.ca-participate { color: var(--ca-paper); background: var(--ca-black); }
.ca-participate .ca-kicker { color: var(--ca-champagne); }
.ca-participate-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(480px, 1.05fr); gap: clamp(55px, 8vw, 115px); align-items: center; }
.ca-participate-copy h2 { margin: 0; font-size: clamp(44px, 5.5vw, 75px); line-height: 1; }
.ca-participate-copy .ca-lead { margin-top: 30px; color: #ddd4ca; }
.ca-participate-copy > p:not(.ca-kicker):not(.ca-lead) { max-width: 670px; color: #aea49b; }
.ca-conversation-frame { position: relative; min-height: 610px; margin: 0; }
.ca-conversation-frame::before { content: ""; position: absolute; inset: 20px -20px -20px 20px; border: 1px solid var(--ca-gold); }
.ca-conversation-frame img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: 30% center; }
.ca-conversation-frame span { position: absolute; right: -30px; bottom: 26px; max-width: 270px; padding: 19px 22px; color: var(--ca-black); background: var(--ca-champagne); font-size: 13px; font-weight: 600; line-height: 1.45; }
.ca-package-heading { display: grid; grid-template-columns: .5fr 1fr; gap: 30px clamp(50px, 9vw, 140px); margin-top: 150px; padding-top: 90px; border-top: 1px solid #3d3834; }
.ca-package-heading h3 { margin: 0; font-size: clamp(38px, 4.6vw, 62px); line-height: 1; }
.ca-package-heading > p:last-child { grid-column: 2; max-width: 690px; color: #bdb3aa; font-size: 17px; }
.ca-package { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 58px; }
.ca-package-card { min-height: 290px; padding: 34px; background: #191817; border: 1px solid #3a3531; }
.ca-package-card > span { color: var(--ca-clay); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.ca-package-card h4 { margin: 72px 0 14px; color: var(--ca-paper); font-size: 25px; line-height: 1.05; }
.ca-package-card p { margin: 0; color: #aea49b; font-size: 14px; }
.ca-price { display: grid; grid-template-columns: .48fr 1.52fr; gap: clamp(50px, 8vw, 120px); align-items: center; margin-top: 86px; padding: clamp(34px, 4.5vw, 58px); color: var(--ca-paper); background: #191817; border: 1px solid #3a3531; }
.ca-price .ca-kicker { margin-bottom: 13px; color: var(--ca-champagne); }
.ca-price > div:first-child strong { display: block; font-size: clamp(30px, 3.2vw, 44px); font-weight: 600; line-height: 1; letter-spacing: -.035em; }
.ca-price > div:first-child span { display: block; margin-top: 9px; color: #aaa097; font-size: 11px; font-weight: 700; }
.ca-price h3 { margin: 0 0 16px; font-size: clamp(27px, 3vw, 40px); line-height: 1.08; }
.ca-price p { max-width: 670px; color: #bdb3aa; }
.ca-process { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(60px, 10vw, 150px); margin-top: 130px; }
.ca-process h3 { max-width: 470px; margin: 0; font-size: clamp(38px, 4.5vw, 58px); line-height: 1; }
.ca-process ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid #4a443e; }
.ca-process li { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 26px 0; border-bottom: 1px solid #4a443e; }
.ca-process li > span { color: var(--ca-clay); font-size: 11px; font-weight: 700; }
.ca-process li strong { font-size: 19px; }
.ca-process li p { margin: 7px 0 0; color: #a99f96; }

.ca-proof { background: #e7ded3; }
.ca-proof-heading { display: grid; grid-template-columns: .5fr 1.5fr; gap: clamp(45px, 8vw, 120px); align-items: start; }
.ca-testimonials { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; margin-top: 76px; }
.ca-quote { min-height: 270px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 34px; color: var(--ca-ink); background: var(--ca-cream); border: 1px solid var(--ca-line); }
.ca-quote:nth-child(1) { grid-column: span 4; }
.ca-quote:nth-child(2) { grid-column: span 5; }
.ca-quote:nth-child(3) { grid-column: span 3; }
.ca-quote p { margin: 0; font-size: clamp(22px, 2.3vw, 32px); font-weight: 500; line-height: 1.22; letter-spacing: -.03em; }
.ca-quote footer { margin-top: 30px; color: var(--ca-brown); font-size: 12px; font-weight: 700; }
.ca-quote-featured { color: var(--ca-paper); background: var(--ca-clay); border-color: var(--ca-clay); transform: translateY(-20px); }
.ca-quote-featured footer { color: var(--ca-paper); }
.ca-audio { grid-column: span 6; min-height: 195px; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; color: var(--ca-paper); background: var(--ca-ink); }
.ca-audio > div { display: flex; align-items: center; gap: 18px; }
.ca-audio img { width: 78px; height: 78px; object-fit: cover; object-position: center 25%; border-radius: 50%; }
.ca-audio p { margin: 0; }
.ca-audio span, .ca-audio strong { display: block; }
.ca-audio span { color: var(--ca-champagne); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ca-audio strong { margin-top: 4px; font-size: 19px; }
.ca-audio audio { width: 100%; margin-top: 20px; accent-color: var(--ca-gold); }

.ca-live-card { background: var(--ca-paper); }
.ca-live-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(52px, 9vw, 130px); align-items: center; }
.ca-live-image { overflow: hidden; background: #ded6ce; }
.ca-live-image img { width: 100%; height: auto; display: block; object-fit: contain; }
.ca-live-grid h2 { margin: 0 0 25px; font-size: clamp(48px, 5.5vw, 76px); line-height: .95; }
.ca-live-grid p:not(.ca-kicker) { max-width: 560px; font-size: 18px; }

.ca-faq { background: var(--ca-cream); border-top: 1px solid var(--ca-line); }
.ca-faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(55px, 10vw, 150px); }
.ca-faq h2 { margin: 0; font-size: clamp(46px, 5vw, 70px); line-height: 1; }
.ca-accordion { border-top: 1px solid var(--ca-line); }
.ca-accordion details { border-bottom: 1px solid var(--ca-line); }
.ca-accordion summary { position: relative; padding: 25px 48px 25px 0; font-size: 19px; font-weight: 600; list-style: none; cursor: pointer; }
.ca-accordion summary::-webkit-details-marker { display: none; }
.ca-accordion summary::after { content: "+"; position: absolute; right: 5px; top: 20px; color: var(--ca-clay); font-size: 28px; font-weight: 400; }
.ca-accordion details[open] summary::after { content: "–"; }
.ca-accordion details p { max-width: 680px; padding: 0 45px 24px 0; color: var(--ca-brown); }

.ca-final { padding: 100px 0; color: var(--ca-paper); background: var(--ca-black); }
.ca-final-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ca-final-grid > div { min-height: 390px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(38px, 6vw, 78px); border: 1px solid #403a35; }
.ca-final-grid > div + div { border-left: 0; }
.ca-final h2 { max-width: 510px; margin: 0 0 20px; color: var(--ca-paper); font-size: clamp(44px, 5vw, 68px); line-height: .98; }
.ca-final p:not(.ca-kicker) { max-width: 500px; color: #bfb6ad; }

.ca-reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s cubic-bezier(.22,.72,.28,1); }
.ca-reveal.ca-visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  .ca-hero-grid, .ca-participate-grid { grid-template-columns: 1fr; }
  .ca-hero { min-height: auto; }
  .ca-hero-mosaic { height: 600px; }
  .ca-participate-grid { gap: 80px; }
  .ca-conversation-frame { min-height: 580px; }
  .ca-package { grid-template-columns: repeat(2, 1fr); }
  .ca-quote:nth-child(1), .ca-quote:nth-child(2), .ca-quote:nth-child(3) { grid-column: span 4; }
}

@media (max-width: 760px) {
  .ca-section { padding: 78px 0; }
  .ca-hero { padding: 68px 0 82px; }
  .ca-hero-copy h1 { font-size: clamp(45px, 13vw, 66px); }
  .ca-hero-copy .ca-lead { font-size: 17px; }
  .ca-hero-mosaic { height: 460px; grid-template-columns: 1.12fr .88fr; }
  .ca-mosaic-note { right: -8px; bottom: -22px; width: 180px; padding: 15px 17px; }
  .ca-paths { grid-template-columns: 1fr; }
  .ca-paths a { min-height: 144px; padding: 28px 32px !important; }
  .ca-paths a:first-child { border-right: 0; border-bottom: 1px solid rgba(45,39,35,.2); }
  .ca-intro, .ca-package-heading, .ca-price, .ca-process, .ca-proof-heading, .ca-live-grid, .ca-faq-grid, .ca-final-grid { grid-template-columns: 1fr; }
  .ca-intro, .ca-proof-heading { gap: 28px; }
  .ca-intro h2, .ca-proof-heading h2 { font-size: 42px; }
  .ca-media-grid { grid-template-columns: 1fr; margin-top: 52px; }
  .ca-media-card { min-height: 360px; }
  .ca-belgium-feature { grid-template-columns: 1fr; margin-top: 72px; }
  .ca-belgium-portraits { min-height: 390px; }
  .ca-belgium-copy { padding: 42px 28px 48px; }
  .ca-season-layout { grid-template-columns: 1fr; gap: 48px; margin-top: 72px; }
  .ca-season-current h3 { margin-top: 60px; }
  .ca-season-archive a { display: grid; gap: 6px; }
  .ca-season-archive a strong { align-self: auto; }
  .ca-participate-grid { gap: 58px; }
  .ca-participate-copy h2 { font-size: 44px; }
  .ca-conversation-frame { min-height: 420px; }
  .ca-conversation-frame img { object-position: 30% center; }
  .ca-conversation-frame span { right: -8px; bottom: -18px; max-width: 230px; }
  .ca-package-heading { gap: 20px; margin-top: 110px; padding-top: 70px; }
  .ca-package-heading > p:last-child { grid-column: 1; }
  .ca-package { display: flex; overflow-x: auto; gap: 12px; margin-inline: -24px; padding: 0 24px 18px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .ca-package::-webkit-scrollbar, .ca-testimonials::-webkit-scrollbar { display: none; }
  .ca-package-card { min-width: min(84vw, 340px); scroll-snap-align: start; }
  .ca-price { gap: 42px; margin-top: 72px; }
  .ca-price > div:first-child strong { font-size: 34px; }
  .ca-process { gap: 45px; margin-top: 90px; }
  .ca-testimonials { display: flex; overflow-x: auto; margin-inline: -24px; padding: 18px 24px 24px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .ca-quote, .ca-audio { min-width: min(84vw, 350px); scroll-snap-align: start; transform: none; }
  .ca-live-grid { gap: 50px; }
  .ca-live-image { min-height: 0; }
  .ca-faq-grid { gap: 45px; }
  .ca-final { padding: 0; }
  .ca-final .shell { width: 100%; }
  .ca-final-grid > div { min-height: 350px; border-inline: 0; }
  .ca-final-grid > div + div { border-top: 0; }
}

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