:root {
  --paper: #F2EBDD;
  --paper-warm: #F7F3E9;
  --ink: #1B1B1B;
  --ink-soft: #33473D;
  --forest: #173F35;
  --forest-deep: #102D25;
  --moss: #6E8F5B;
  --sage: #DCE2D3;
  --terracotta: #C86B4A;
  --line: rgba(23, 63, 53, .2);
  --display: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --sans: "Lato", "Helvetica Neue", Arial, sans-serif;
  --page-gutter: clamp(1.25rem, 5.5vw, 6rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.section-shell { width: min(100% - 2 * var(--page-gutter), 1440px); margin-inline: auto; }
.skip-link { position: absolute; z-index: 20; top: -5rem; left: 1rem; padding: .8rem 1rem; background: white; color: var(--ink); }
.skip-link:focus { top: 1rem; }

.site-header { min-height: 88px; padding: 1rem var(--page-gutter); display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-bottom: 1px solid rgba(30, 53, 41, .12); }
.wordmark { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; flex-shrink: 0; }
.wordmark-icon { display: grid; place-items: center; width: 36px; height: 36px; color: var(--forest); }
.wordmark-icon svg { width: 100%; height: 100%; }
.wordmark-text { display: grid; gap: .08rem; line-height: 1.05; }
.wordmark-text strong { font-family: var(--display); font-size: .95rem; font-weight: 800; letter-spacing: -.045em; }
.wordmark-text span { font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1.25rem, 3.2vw, 3.5rem); margin-left: auto; }
.main-nav a { font-size: .78rem; text-decoration: none; color: var(--ink-soft); transition: color .2s ease; }
.main-nav a:hover { color: #71825f; }
.header-cta { padding: .82rem 1rem; border: 1px solid var(--ink); font-size: .75rem; text-decoration: none; white-space: nowrap; transition: background .2s ease, color .2s ease; }
.header-cta span { margin-left: .55rem; }
.header-cta:hover { background: var(--ink); color: var(--paper); }

.hero { min-height: 700px; padding-block: clamp(3rem, 6vw, 6.25rem) 5.25rem; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(2.5rem, 6vw, 7rem); position: relative; }
.hero-copy { padding-block: 1rem; max-width: 600px; }
.eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.8rem; color: #687b65; font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow-line { width: 28px; height: 1px; background: #829175; }
.eyebrow-dot { color: #a0aa94; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--display); font-weight: 800; letter-spacing: -.055em; }
.hero h1 { max-width: 650px; margin-bottom: 1.25rem; font-size: clamp(3.2rem, 5.1vw, 5.35rem); line-height: 1.03; }
h1 em, h2 em { color: var(--moss); font-style: normal; font-weight: 700; }
.hero-description { max-width: 465px; margin-bottom: 2rem; color: #59675b; font-size: .97rem; line-height: 1.8; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.1rem; min-height: 54px; padding: .9rem 1.25rem; font-size: .8rem; font-weight: 600; text-decoration: none; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--forest); color: #f7f6ef; }
.button-primary:hover { background: #2e5942; }
.button span { font-size: 1rem; }
.hero-event-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 1.7rem 0 1.5rem; border-block: 1px solid var(--line); }
.hero-fact { display: grid; align-content: start; gap: .18rem; min-height: 102px; padding: .85rem 1rem .8rem 0; }
.hero-fact + .hero-fact { padding-left: 1.1rem; border-left: 1px solid var(--line); }
.fact-label { display: flex; align-items: center; gap: .42rem; color: #687765; font-family: var(--display); font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fact-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta); }
.hero-fact strong { color: var(--forest); font-family: var(--display); font-size: 1.5rem; font-weight: 800; letter-spacing: -.045em; line-height: 1.15; }
.hero-fact-time strong { font-size: 1.65rem; }
.fact-detail { color: #687765; font-size: .72rem; line-height: 1.4; }
.capacity-note { display: flex; align-items: center; gap: .9rem; margin-top: 1.25rem; }
.capacity-symbol { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border: 1px solid var(--terracotta); border-radius: 50%; color: var(--terracotta); font-family: var(--display); font-size: .82rem; font-weight: 800; }
.capacity-note p { display: grid; gap: .2rem; margin: 0; font-size: .72rem; line-height: 1.45; }
.capacity-note strong { font-family: var(--display); font-size: .74rem; font-weight: 800; }
.capacity-note p span { color: #687765; }
.hero-visual { position: relative; min-height: 540px; height: min(60vw, 650px); margin: 0; overflow: visible; }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; border-radius: 170px 170px 8px 8px; }
.image-note { position: absolute; right: .9rem; bottom: .85rem; padding: .35rem .55rem; color: #fff; background: rgba(23, 47, 37, .58); border-radius: 2px; font-size: .6rem; letter-spacing: .02em; }
.image-caption { position: absolute; left: -2.25rem; bottom: 14%; display: flex; align-items: center; gap: .8rem; width: 180px; padding: .95rem 1rem; background: var(--paper); box-shadow: 0 12px 36px rgba(25, 49, 36, .12); font-size: .72rem; line-height: 1.45; }
.image-caption strong { font-family: var(--display); font-size: 1.05rem; font-weight: 800; }
.caption-mark { display: grid; place-items: center; flex: 0 0 31px; height: 31px; border: 1px solid #a9b49f; border-radius: 50%; color: #829175; font-size: 1.2rem; }
.image-index { position: absolute; right: 0; top: -1.55rem; color: #758174; font-size: .66rem; letter-spacing: .15em; }
.hero-scroll { position: absolute; bottom: 1.5rem; left: 0; display: flex; align-items: center; gap: .65rem; color: #7b8678; font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; }
.hero-scroll span { width: 1px; height: 28px; background: #9ba796; }

.intro { position: relative; padding-block: clamp(6rem, 11vw, 10.5rem); display: grid; grid-template-columns: .7fr 1.3fr; gap: 3rem; border-top: 1px solid var(--line); }
.section-label { display: flex; align-items: center; gap: .7rem; color: #778473; font-size: .64rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.section-label > span:first-child { color: #a0aa96; }
.label-rule { display: inline-block; width: 25px; height: 1px; background: #a9b39f; }
.intro-content h2, .experience-heading h2, .memories-heading h2, .facilitator-copy h2 { margin-bottom: 2.2rem; font-size: clamp(2.65rem, 4vw, 4.55rem); line-height: 1.07; }
.intro-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 2.3rem; max-width: 820px; }
.intro-bottom p, .experience-heading > p, .memories-heading > p, .facilitator-copy > p { margin-bottom: 0; color: #657064; font-size: .88rem; line-height: 1.85; }
.intro-decoration { position: absolute; right: 7%; bottom: 5rem; color: #c8d2bd; font-family: var(--display); font-size: 6rem; }
.intro::after { position: absolute; top: 4rem; right: 4%; width: 136px; height: 92px; background-image: radial-gradient(rgba(110, 143, 91, .32) 1px, transparent 1px); background-size: 12px 12px; opacity: .45; content: ""; mask-image: linear-gradient(135deg, #000, transparent 90%); }

.ai-section { position: relative; overflow: hidden; background: var(--forest); color: #f3f2e9; }
.ai-inner { position: relative; min-height: 560px; padding-block: clamp(4.5rem, 8vw, 7rem); display: grid; grid-template-columns: 1fr .8fr; gap: 5rem; }
.section-label-light { color: #b7c2ae; }
.section-label-light > span:first-child { color: #8fa084; }
.ai-heading h2 { position: relative; z-index: 1; margin: 3rem 0 0; font-size: clamp(3.3rem, 5.6vw, 6rem); line-height: 1.02; }
.ai-heading h2 em { color: #b9c5aa; }
.ai-content { position: relative; z-index: 1; max-width: 440px; padding-top: 5rem; }
.ai-content > p { color: #c2cbbd; font-size: .9rem; line-height: 1.85; }
.ai-content .ai-lead { margin-bottom: 1.1rem; color: #f3f2e9; font-family: var(--display); font-size: 1.4rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.45; }
.principle { display: flex; gap: 1rem; align-items: flex-start; margin-top: 2.4rem; padding: 1.35rem 0; border-top: 1px solid rgba(235, 240, 229, .23); border-bottom: 1px solid rgba(235, 240, 229, .23); }
.principle > span { color: #c3cfb4; font-size: 1.2rem; }
.principle p { margin: 0; font-size: .82rem; line-height: 1.65; }
.text-link { display: inline-flex; align-items: center; gap: .8rem; margin-top: 1.7rem; font-size: .72rem; font-weight: 600; text-decoration: none; }
.text-link-light { color: #e1e5d9; }
.text-link span { font-size: 1rem; transition: transform .2s ease; }
.text-link:hover span { transform: translateY(3px); }
.ai-ornament { position: absolute; right: 2%; bottom: -100px; width: 380px; height: 380px; opacity: .16; }
.ai-ornament span { position: absolute; inset: 0; border: 1px solid #c6d0bb; border-radius: 50%; }
.ai-ornament span:nth-child(2) { inset: 34px; }
.ai-ornament span:nth-child(3) { inset: 68px; }

.experience { padding-block: clamp(6rem, 10vw, 10rem); }
.experience-heading { display: grid; grid-template-columns: 1.15fr .65fr; gap: 5rem; align-items: end; margin-top: 3rem; }
.experience-heading h2 { margin-bottom: 0; }
.experience-heading > p { max-width: 430px; padding-bottom: .5rem; }
.experience-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 4.2rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experience-card { position: relative; min-height: 295px; padding: 1.5rem 1.35rem 1.7rem; border-right: 1px solid var(--line); }
.experience-card:first-child { padding-left: 0; }
.experience-card:last-child { padding-right: 0; border-right: 0; }
.card-number { color: #96a18e; font-size: .64rem; letter-spacing: .12em; }
.card-symbol { display: grid; place-items: center; width: 50px; height: 50px; margin: 2.6rem 0 1.3rem; border: 1px solid #a8b49e; border-radius: 50%; color: var(--moss); font-family: var(--display); font-size: 1.2rem; font-weight: 700; }
.symbol-question { font-family: var(--display); font-size: 1.5rem; }
.symbol-search { font-size: 2rem; }
.experience-card h3 { margin-bottom: .7rem; font-family: var(--display); font-size: 1.1rem; font-weight: 800; letter-spacing: -.025em; }
.experience-card p { max-width: 235px; margin: 0; color: #6c786c; font-size: .75rem; line-height: 1.75; }

.practical { background: #dfe4d7; }
.practical-inner { padding-block: clamp(5rem, 8vw, 7.5rem); }
.practical-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 9vw, 10rem); margin-top: 3.4rem; }
.practical-copy h2 { margin-bottom: 1.1rem; font-size: clamp(2.9rem, 4.3vw, 4.8rem); line-height: 1.05; }
.practical-copy h2 em { color: var(--moss); }
.practical-copy > p { max-width: 365px; margin-bottom: 1.8rem; color: #5e6e5d; font-size: .85rem; line-height: 1.8; }
.button-light { background: #f6f5ef; color: var(--forest); }
.button-light:hover { background: var(--forest); color: #f6f5ef; }
.event-details { margin: 0; border-top: 1px solid rgba(23, 63, 53, .32); }
.event-details > div { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 1rem; min-height: 74px; border-bottom: 1px solid rgba(23, 63, 53, .22); }
.event-details dt { color: #677765; font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.event-details dd { display: flex; flex-direction: column; gap: .2rem; margin: 0; font-size: .89rem; font-weight: 600; }
.event-details dd span { color: #71806e; font-size: .71rem; font-weight: 400; }
.event-details .detail-price dd { color: var(--forest); font-family: var(--display); font-size: 1.3rem; font-weight: 800; }
.event-details .detail-prominent { position: relative; min-height: 92px; padding-left: .8rem; background: rgba(242, 235, 221, .72); border-left: 3px solid var(--moss); }
.event-details .detail-prominent dt { color: var(--forest); font-weight: 700; }
.event-details .detail-prominent dd { color: var(--forest); font-family: var(--display); font-size: 1.35rem; font-weight: 800; letter-spacing: -.03em; }
.event-details .detail-prominent dd span { color: #687765; font-family: var(--sans); font-size: .72rem; font-weight: 400; letter-spacing: 0; }
.practical-extras { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2.25rem; }
.meals-card { padding: 1.25rem 1.35rem 1.35rem; background: var(--forest); color: var(--paper); }
.extras-kicker { display: block; margin-bottom: .55rem; color: #b7c7ad; font-family: var(--display); font-size: .58rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.meals-card > strong { font-family: var(--display); font-size: .9rem; font-weight: 800; }
.meals-card ul { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: .85rem 0 0; padding: .8rem 0 0; border-top: 1px solid rgba(242, 235, 221, .28); list-style: none; }
.meals-card li { position: relative; padding-left: .72rem; color: #e4e9de; font-size: .68rem; }
.meals-card li::before { position: absolute; top: .43em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: var(--terracotta); content: ""; }
.small-group-card { display: flex; align-items: center; gap: .9rem; padding: 1.25rem 1.15rem; border: 1px solid rgba(23, 63, 53, .28); }
.small-group-number { color: var(--terracotta); font-family: var(--display); font-size: 2.7rem; font-weight: 800; letter-spacing: -.08em; line-height: 1; }
.small-group-card strong { color: var(--forest); font-family: var(--display); font-size: .8rem; font-weight: 800; }
.small-group-card p { margin: .35rem 0 0; color: #667466; font-size: .67rem; line-height: 1.5; }

.memories { padding-block: clamp(6rem, 9vw, 9rem); }
.memories-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-top: 3rem; }
.memories-heading h2 { margin-bottom: 0; }
.memories-heading > p { max-width: 275px; padding-bottom: .55rem; }
.photo-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 1rem; margin-top: 3.2rem; }
.photo-card { position: relative; min-width: 0; margin: 0; overflow: hidden; background: var(--sage); }
.photo-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; transition: transform .5s ease; }
.photo-card:hover img { transform: scale(1.025); }
.photo-card:nth-child(2) img { object-position: center 68%; }
.photo-card:nth-child(3) img { object-position: center 45%; }
.photo-card:nth-child(4) img { object-position: center 58%; }
.photo-card figcaption { display: flex; align-items: baseline; gap: .62rem; min-height: 42px; padding: .8rem .85rem; background: #F7F3E9; color: var(--forest); font-family: var(--display); font-size: .66rem; font-weight: 700; }
.photo-card figcaption span { color: var(--terracotta); font-size: .62rem; font-weight: 800; }
.photo-card-wide { grid-column: span 1; }
.testimonial-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; margin-top: 4.2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.testimonial-heading h3 { margin: 0; font-family: var(--display); font-size: 1.1rem; font-weight: 800; }
.testimonial-heading > span { color: #82907f; font-size: .68rem; }
.testimonial-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.testimonial-slot { position: relative; padding: 1.8rem 1.5rem 1.6rem 0; border-bottom: 1px solid var(--line); }
.quote-mark { color: var(--terracotta); font-family: var(--display); font-size: 2.4rem; line-height: .8; }
.testimonial-slot p { margin: .7rem 0 1.2rem; color: #718071; font-family: var(--display); font-size: .8rem; font-weight: 600; }
.testimonial-attribution { color: #859082; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }

.facilitator { background: var(--paper-warm); }
.facilitator-inner { display: grid; grid-template-columns: .8fr 1fr; align-items: center; gap: clamp(3rem, 8vw, 8rem); padding-block: clamp(5rem, 9vw, 8rem); }
.facilitator-image { min-height: 410px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; background: radial-gradient(ellipse at 50% 40%, rgba(201, 211, 192, .8), transparent 55%), #E6E2D5; color: #5F7652; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.portrait-placeholder-icon { display: grid; place-items: center; width: 80px; height: 80px; border: 1px solid #afbaa5; border-radius: 50%; font-size: 2rem; }
.facilitator-copy h2 { margin: 2.7rem 0 1.2rem; }
.facilitator-copy > p { max-width: 480px; }
.facilitator-name-placeholder { display: inline-block; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: #83907d; font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }

.closing { display: flex; flex-direction: column; align-items: center; padding-block: clamp(5rem, 9vw, 8rem); text-align: center; }
.closing-mark { margin-bottom: 1.1rem; color: #9dad93; font-size: 1.4rem; }
.closing .eyebrow { margin-bottom: 1.25rem; }
.closing h2 { margin-bottom: 1.7rem; font-size: clamp(3rem, 5.3vw, 5.5rem); line-height: 1.02; }
.closing h2 em { color: #788d6e; }
.closing-note { display: flex; gap: .55rem; margin: 1.3rem 0 0; color: #657363; font-size: .68rem; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.3rem var(--page-gutter); border-top: 1px solid var(--line); }
.footer-wordmark .wordmark-icon { width: 30px; height: 30px; }
.footer-wordmark .wordmark-text strong { font-size: .95rem; }
.footer-wordmark .wordmark-text span { font-size: .57rem; }
.site-footer > p { margin: 0; color: #657363; font-size: .75rem; }
.back-top { color: #667563; font-size: .68rem; text-decoration: none; }

@media (max-width: 900px) {
  :root { --page-gutter: clamp(1.25rem, 4vw, 2.5rem); }
  .site-header { gap: 1rem; }
  .main-nav { gap: 1.25rem; }
  .main-nav a { font-size: .7rem; }
  .hero { gap: 3rem; min-height: 610px; }
  .hero-visual { min-height: 460px; height: 56vw; }
  .hero h1 { font-size: clamp(3rem, 6vw, 4.6rem); }
  .hero-event-highlights { margin-top: 1.3rem; }
  .ai-inner { gap: 3rem; }
  .experience-card { padding-inline: 1rem; }
}

@media (max-width: 680px) {
  .site-header { min-height: 76px; padding-block: .8rem; }
  .wordmark-icon { width: 30px; height: 30px; }
  .wordmark-text strong { font-size: .98rem; }
  .wordmark-text span { font-size: .55rem; }
  .main-nav { display: none; }
  .header-cta { padding: .7rem .75rem; font-size: .67rem; }
  .hero { display: flex; flex-direction: column; align-items: stretch; gap: 2.6rem; padding-block: 3.5rem 4.5rem; }
  .hero-copy { padding: 0; }
  .eyebrow { margin-bottom: 1.4rem; font-size: .62rem; }
  .hero h1 { max-width: 500px; margin-bottom: 1.1rem; font-size: clamp(3rem, 12vw, 4.7rem); }
  .hero-description { max-width: 480px; font-size: .88rem; }
  .hero-event-highlights { margin: 1.5rem 0 1.2rem; }
  .hero-fact { min-height: 90px; padding-right: .65rem; }
  .hero-fact + .hero-fact { padding-left: .8rem; }
  .hero-fact strong { font-size: 1.28rem; }
  .hero-fact-time strong { font-size: 1.38rem; }
  .fact-detail { font-size: .64rem; }
  .hero-visual { min-height: 360px; height: 95vw; max-height: 510px; margin-inline: 1.2rem; }
  .hero-visual img { border-radius: 115px 115px 6px 6px; }
  .image-caption { left: -1.2rem; bottom: 12%; width: 160px; padding: .8rem; }
  .hero-scroll { bottom: 1rem; }
  .intro { display: block; padding-block: 5rem; }
  .intro-content { margin-top: 2.4rem; }
  .intro-content h2, .experience-heading h2, .memories-heading h2, .facilitator-copy h2 { font-size: clamp(2.5rem, 10vw, 3.8rem); }
  .intro-bottom { grid-template-columns: 1fr; gap: 1rem; }
  .intro-bottom p { font-size: .82rem; }
  .intro-decoration { right: 1rem; bottom: 1rem; font-size: 3.5rem; }
  .ai-inner { display: block; min-height: auto; padding-block: 4.5rem; }
  .ai-heading h2 { margin-top: 2.5rem; font-size: clamp(3.2rem, 12vw, 4.8rem); }
  .ai-content { padding-top: 2.5rem; }
  .ai-content .ai-lead { font-size: 1.4rem; }
  .ai-ornament { right: -140px; bottom: -150px; width: 300px; height: 300px; }
  .experience { padding-block: 5rem; }
  .experience-heading { display: block; margin-top: 2.5rem; }
  .experience-heading > p { margin-top: 1.1rem; }
  .experience-grid { grid-template-columns: 1fr 1fr; margin-top: 2.7rem; }
  .experience-card { min-height: 265px; padding: 1.2rem .9rem 1.4rem; border-bottom: 1px solid var(--line); }
  .experience-card:nth-child(2) { border-right: 0; }
  .experience-card:nth-child(3), .experience-card:nth-child(4) { border-bottom: 0; }
  .experience-card:first-child { padding-left: 0; }
  .experience-card:nth-child(3) { padding-left: 0; }
  .experience-card:last-child { padding-right: 0; }
  .card-symbol { margin-top: 1.8rem; }
  .experience-card h3 { font-size: 1.15rem; }
  .experience-card p { font-size: .72rem; }
  .practical-inner { padding-block: 4.5rem; }
  .practical-layout { grid-template-columns: 1fr; gap: 2.7rem; margin-top: 2.5rem; }
  .practical-copy h2 { font-size: clamp(2.8rem, 11vw, 4rem); }
  .event-details > div { min-height: 68px; }
  .event-details .detail-prominent { min-height: 82px; }
  .practical-extras { grid-template-columns: 1fr; }
  .meals-card ul { justify-content: space-between; }
  .memories { padding-block: 5rem; }
  .memories-heading { display: block; margin-top: 2.5rem; }
  .memories-heading > p { margin-top: 1.1rem; }
  .photo-grid { grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 2.1rem; }
  .photo-card img { aspect-ratio: 1 / 1; }
  .photo-card-wide { grid-column: 1 / -1; }
  .photo-card-wide img { aspect-ratio: 5 / 4; }
  .photo-card figcaption { min-height: 48px; padding: .65rem; font-size: .6rem; }
  .testimonial-heading { display: block; margin-top: 3rem; }
  .testimonial-heading > span { display: block; margin-top: .5rem; }
  .testimonial-slots { grid-template-columns: 1fr; gap: 0; }
  .testimonial-slot { padding-block: 1.3rem; }
  .facilitator-inner { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 4.5rem; }
  .facilitator-image { min-height: 300px; }
  .facilitator-copy h2 { margin-top: 2.3rem; }
  .closing { padding-block: 5rem; }
  .closing h2 { font-size: clamp(2.8rem, 11vw, 4.3rem); }
  .closing-note { flex-wrap: wrap; justify-content: center; font-size: .63rem; }
  .site-footer { align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
  .site-footer > p { order: 3; width: 100%; font-size: .8rem; }
}

@media (max-width: 380px) {
  .site-header { gap: .5rem; }
  .wordmark { gap: .45rem; }
  .wordmark-text strong { font-size: .86rem; }
  .wordmark-text span { display: none; }
  .header-cta { padding: .62rem .55rem; font-size: .61rem; }
}

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