:root {
  --ink: #29322f;
  --forest: #405c50;
  --deep: #243a33;
  --sage: #a9baac;
  --pale-sage: #dfe7df;
  --mist: #eef2ee;
  --cream: #f6f2e8;
  --paper: #fdfbf6;
  --sand: #d9c4a3;
  --line: rgba(41,50,47,.16);
  --serif: "Newsreader", Georgia, serif;
  --sans: "DM Sans", "Segoe UI", sans-serif;
  --content-max: 1440px;
  --page-gutter: clamp(1.5rem, 5vw, 5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font: 400 16px/1.65 var(--sans); }
a { color: inherit; }
img { display: block; max-width: 100%; }
button { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: .5rem; padding: .7rem 1rem; background: white; }
.skip-link:focus { top: .5rem; }

.announcement { position: relative; z-index: 40; height: 44px; color: white; background: var(--deep); }
.announcement-inner { width: min(calc(100% - 2rem), 760px); height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 30px 30px auto; align-items: center; gap: .25rem; margin-inline: auto; }
.announce-message { text-align: center; opacity: 1; transform: translateY(0); transition: opacity .17s ease, transform .17s ease; }
.announce-message.is-changing { opacity: 0; transform: translateY(-6px); }
.announce-message a { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; text-decoration: none; font-size: .69rem; letter-spacing: .03em; }
.announce-message span { flex: none; padding: .2rem .5rem; border-radius: 999px; color: var(--deep); background: #d6c19b; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; white-space: nowrap; }
.announce-message strong { font-weight: 500; }.announce-message em { font-style: normal; opacity: .68; }
.announce-control { width: 28px; height: 28px; border: 0; color: white; background: transparent; cursor: pointer; opacity: .72; }.announce-control:hover { opacity: 1; }
.announce-dots { display: flex; gap: .35rem; margin-left: 1rem; }.announce-dots button { width: 5px; height: 5px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.35); }.announce-dots button.active { background: white; }

.site-header { position: absolute; z-index: 30; top: 44px; left: 0; right: 0; min-height: 84px; color: var(--ink); transition: .3s; }
.header-inner { width: min(calc(100% - (var(--page-gutter) * 2)), var(--content-max)); min-height: inherit; display: flex; align-items: center; justify-content: space-between; margin-inline: auto; }
.site-header.scrolled { position: fixed; top: 0; min-height: 68px; background: rgba(253,251,246,.94); box-shadow: 0 1px 0 var(--line); backdrop-filter: blur(14px); }
.site-header.scrolled.announcement-offset { top: 44px; }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; }.brand > span:last-child { display: grid; line-height: 1; }.brand strong { font: 500 1.2rem var(--serif); }.brand small { margin-top: .25rem; font-size: .57rem; letter-spacing: .04em; opacity: .65; }
.brand-moon { position: relative; width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; }.brand-moon::before { content: ""; position: absolute; width: 19px; height: 19px; top: 7px; left: 5px; border-radius: 50%; background: currentColor; }.brand-moon::after { content: ""; position: absolute; width: 19px; height: 19px; top: 5px; left: 10px; border-radius: 50%; background: var(--paper); }.site-header:not(.scrolled) .brand-moon::after { background: #eef0ea; }
.site-nav { display: flex; align-items: center; gap: clamp(.9rem, 1.8vw, 1.8rem); font-size: .72rem; font-weight: 500; }.site-nav a { text-decoration: none; }.site-nav a:not(.button) { border-bottom: 1px solid transparent; }.site-nav a:not(.button):hover { border-color: currentColor; }
.menu-toggle { display: none; border: 0; background: transparent; }.menu-toggle span:not(.sr-only) { display: block; width: 24px; height: 1px; margin: 6px; background: currentColor; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 52px; padding: .85rem 1.4rem; border: 1px solid var(--forest); border-radius: 999px; color: white; background: var(--forest); text-decoration: none; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; transition: .25s; }.button:hover { transform: translateY(-2px); background: var(--deep); }.button-small { min-height: 40px; padding: .7rem 1rem; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; padding-bottom: .15rem; border-bottom: 1px solid currentColor; text-decoration: none; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.eyebrow { margin: 0 0 1rem; font-size: .64rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }

.hero { position: relative; isolation: isolate; min-height: calc(100vh - 44px); display: grid; align-items: center; overflow: hidden; padding: 9rem var(--page-gutter) 5rem; }
.hero-background, .hero-overlay { position: absolute; inset: 0; }.hero-background { z-index: 0; background: url("images/hero-calm-sky-v4.png") center / cover no-repeat; filter: saturate(.9) contrast(.97); transform: scale(1.035); transform-origin: 50% 55%; will-change: transform; animation: hero-sky-drift 24s ease-in-out infinite alternate; }.hero-overlay { z-index: 1; background: linear-gradient(90deg, rgba(248,250,248,.28) 0%, rgba(248,250,248,.14) 43%, rgba(248,250,248,.02) 70%); }
.hero::after { content: ""; position: absolute; z-index: 1; inset: -18%; pointer-events: none; background: radial-gradient(ellipse at 56% 47%, rgba(255,252,240,.4) 0%, rgba(255,250,235,.2) 24%, transparent 52%); opacity: .3; transform: translate3d(-2.2%, .7%, 0) scale(1); will-change: transform, opacity; animation: hero-light-drift 18s ease-in-out infinite alternate; }
.hero-content { position: relative; z-index: 2; width: min(100%, var(--content-max)); margin-inline: auto; }.hero-copy { width: min(830px, 72%); min-width: 0; margin-left: clamp(0rem, 3vw, 3.5rem); }.hero h1 { margin: 0; font: 300 clamp(4.25rem, 6.15vw, 6.8rem)/.92 var(--serif); letter-spacing: -.052em; }.hero h1 em { font-weight: 300; color: var(--forest); }.hero-copy > p:not(.eyebrow) { max-width: 720px; margin: 2rem 0; color: rgba(41,50,47,.84); font-size: 1.05rem; }.hero-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }

@keyframes hero-sky-drift {
  from { transform: scale(1.035) translate3d(-1.05%, -.35%, 0); }
  to { transform: scale(1.085) translate3d(1.35%, .55%, 0); }
}

@keyframes hero-light-drift {
  from { opacity: .25; transform: translate3d(-2.2%, .7%, 0) scale(1); }
  to { opacity: .54; transform: translate3d(2.1%, -1%, 0) scale(1.06); }
}
.hero-utility { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem 1.35rem; margin-top: 1.6rem; color: rgba(41,50,47,.72); font-size: .78rem; }.hero-utility a { color: var(--forest); font-weight: 700; text-underline-offset: .28rem; }.hero-utility a:hover { text-decoration: underline; }
.scroll-note { position: absolute; right: 2.5rem; bottom: 2rem; display: flex; gap: .8rem; text-decoration: none; font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; writing-mode: vertical-rl; }

.section { padding: clamp(6rem, 10vw, 10rem) max(var(--page-gutter), calc((100vw - var(--content-max)) / 2)); }.section > * { width: min(100%, var(--content-max)); margin-inline: auto; }.section-heading { display: grid; grid-template-columns: 1.3fr .55fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: 4rem; }.section-heading h2, .introduction h2, .offering-heading h2, .about h2, .bracelets h2, .journal h2 { margin: 0; font: 300 clamp(3.5rem, 5.4vw, 6rem)/.95 var(--serif); letter-spacing: -.045em; }.section-heading > p { margin: 0; color: #626b66; }

.events { background: var(--paper); }.event-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: 1rem; }.featured-event { min-height: 520px; display: grid; grid-template-columns: .65fr 1.35fr; color: white; background: linear-gradient(135deg, rgba(51,80,68,.9), rgba(51,80,68,.62)), url("images/ocean-healing.jpg") center/cover; }.event-date { display: grid; place-items: center; align-content: center; border-right: 1px solid rgba(255,255,255,.3); }.event-date strong { font: 300 clamp(6rem, 11vw, 11rem)/.7 var(--serif); }.event-date span { margin-top: 1.5rem; font-size: .65rem; text-align: center; letter-spacing: .12em; text-transform: uppercase; }.event-info { align-self: center; padding: clamp(2rem, 5vw, 5rem); }.event-info h3 { max-width: 650px; margin: 0; font: 300 clamp(2.8rem, 4.5vw, 5rem)/.96 var(--serif); }.event-info > p:not(.eyebrow) { max-width: 540px; color: rgba(255,255,255,.76); white-space: pre-line; }.event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 2rem 0; font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }.event-meta a { color: white; text-underline-offset: .25em; }.event-info .text-link { color: white; }
.secondary-events { display: grid; grid-template-rows: repeat(2, 1fr); gap: 1rem; }.small-event { display: grid; grid-template-columns: 75px 1fr auto; align-items: center; gap: 1.3rem; padding: 1.5rem; color: var(--ink); background: var(--mist); text-decoration: none; }.small-event time { display: grid; justify-items: center; }.small-event time strong { font: 300 2.7rem/1 var(--serif); }.small-event time span { font-size: .56rem; letter-spacing: .1em; }.small-event h3 { margin: 0; font: 400 1.5rem/1.1 var(--serif); }.small-event p { margin: .4rem 0 0; color: #69716d; font-size: .72rem; }.small-event i { display: grid; place-items: center; width: 40px; aspect-ratio: 1; border: 1px solid var(--ink); border-radius: 50%; font-style: normal; }.small-event:hover i { color: white; background: var(--forest); }

.introduction { display: grid; grid-template-columns: 1.15fr .6fr; gap: 10vw; background: var(--pale-sage); }.intro-copy { max-width: 800px; }.large-copy { margin: 2rem 0; font: 300 clamp(1.6rem, 2.5vw, 2.4rem)/1.35 var(--serif); }.intro-copy > p:last-child { max-width: 620px; }.session-principles { align-self: end; border-top: 1px solid rgba(41,50,47,.3); }.session-principles > div { display: grid; grid-template-columns: 45px 1fr; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid rgba(41,50,47,.3); }.session-principles span { font: 400 .75rem var(--serif); }.session-principles p { display: grid; margin: 0; color: #5d6963; font-size: .77rem; }.session-principles strong { color: var(--ink); font: 400 1.4rem var(--serif); }

.offerings { background: var(--cream); }.offering-heading { display: grid; grid-template-columns: 1.2fr .5fr; gap: 8vw; align-items: end; margin-bottom: 4rem; }.offering-heading .eyebrow { grid-column: 1 / -1; }.offering-heading > p:last-child { color: #666c68; }.offering-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }.offering-card { min-width: 0; }.offering-image { position: relative; height: clamp(320px, 36vw, 520px); overflow: hidden; }.offering-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); transition: .6s; }.offering-card:hover .offering-image img { transform: scale(1.03); filter: saturate(.9); }.offering-image span { position: absolute; top: 1rem; left: 1rem; display: grid; place-items: center; width: 38px; aspect-ratio: 1; border-radius: 50%; color: white; background: rgba(36,58,51,.72); font-size: .65rem; }.offering-card > p { margin: 1.3rem 0 .6rem; font-size: .61rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }.offering-card h3 { margin: 0 0 .8rem; font: 400 clamp(1.8rem, 2.6vw, 2.8rem)/1 var(--serif); }.offering-description { color: #666c68; font-size: .84rem; }.offering-book-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.15rem; color: var(--forest); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }.offering-book-link span { transition: transform .2s ease; }.offering-book-link:hover span { transform: translateX(.2rem); }.single-booking { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--line); }.single-booking p { font: 300 1.5rem var(--serif); }

.about { display: grid; grid-template-columns: .85fr 1fr; gap: 10vw; align-items: center; background: var(--paper); }.about-art { position: relative; min-height: 580px; display: grid; place-items: center; overflow: hidden; background: #dce5df; }.lunar-disc { z-index: 2; display: grid; place-items: center; align-content: center; width: min(28vw, 390px); aspect-ratio: 1; border-radius: 50%; color: white; background: linear-gradient(145deg, #718e80, #405c50); box-shadow: 0 30px 80px rgba(64,92,80,.22); }.lunar-disc span { font: 300 clamp(3rem, 6vw, 5.8rem)/1 var(--serif); }.lunar-disc small { margin-top: .8rem; letter-spacing: .14em; text-transform: uppercase; }.quiet-orbit { position: absolute; border: 1px solid rgba(64,92,80,.3); border-radius: 50%; }.orbit-a { width: 72%; height: 34%; transform: rotate(25deg); }.orbit-b { width: 72%; height: 34%; transform: rotate(-55deg); }.about-copy p:not(.eyebrow) { max-width: 620px; }.about-copy p:nth-of-type(2) { margin-top: 2rem; font: 300 1.45rem/1.5 var(--serif); }

.stories { overflow: hidden; background: var(--mist); }.story-track { display: flex; gap: 1rem; margin-inline: calc(clamp(1.5rem, 8vw, 9rem) * -1); padding: 0 clamp(1.5rem, 8vw, 9rem) 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: var(--sage) transparent; }.story-card { flex: 0 0 clamp(280px, 27vw, 400px); scroll-snap-align: start; text-decoration: none; }.story-image { position: relative; aspect-ratio: 9 / 12; overflow: hidden; background: #cad4cc; }.story-image img { width: 100%; height: 100%; object-fit: cover; transition: .6s; }.story-card:hover img { transform: scale(1.03); filter: brightness(.9); }.story-image span { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 58px; aspect-ratio: 1; border: 1px solid white; border-radius: 50%; color: white; background: rgba(36,58,51,.45); transform: translate(-50%,-50%); }.story-card blockquote { min-height: 5.1em; margin: 1.2rem 0 .7rem; font: 300 clamp(1.3rem, 2vw, 1.85rem)/1.2 var(--serif); }.story-card small { font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }.story-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; }.story-footer p { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }

.bracelets { display: grid; grid-template-columns: .8fr 1fr; gap: 9vw; align-items: center; color: white; background: var(--deep); }.bracelet-image { max-width: 560px; aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: #d8c7aa; }.bracelet-image img { width: 100%; height: 100%; object-fit: cover; }.bracelet-copy p:not(.eyebrow) { max-width: 620px; color: rgba(255,255,255,.68); }.bracelet-copy .text-link { margin-top: 1.2rem; }

.journal { background: var(--paper); }.journal-heading { display: grid; grid-template-columns: 1.2fr .55fr; gap: 8vw; align-items: end; margin-bottom: 4rem; }.journal-heading .eyebrow { grid-column: 1 / -1; }.journal-heading > p:last-child { color: #646c67; }.journal-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }.journal-cards article { min-height: 280px; display: flex; flex-direction: column; padding: 2rem; background: var(--paper); }.journal-cards span { font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }.journal-cards h3 { margin: auto 0 1rem; font: 300 2rem/1.12 var(--serif); }.journal-cards p { margin: 0; color: #747a76; font-size: .72rem; }

.connect { display: grid; grid-template-columns: .75fr 1fr; gap: 10vw; background: var(--pale-sage); }.connect-copy p:not(.eyebrow) { max-width: 520px; }.connect-links { border-top: 1px solid rgba(41,50,47,.25); }.connect-links a { display: grid; grid-template-columns: 100px 1fr auto; gap: 1rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid rgba(41,50,47,.25); text-decoration: none; }.connect-links span { font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }.connect-links strong { font: 400 clamp(1.2rem, 2vw, 1.8rem) var(--serif); }.connect-links i { font-style: normal; }.connect-links a:hover strong { color: var(--forest); }

.footer { padding: 4rem clamp(1.5rem, 8vw, 9rem) 2rem; color: white; background: #1f302a; }.footer .brand-moon::after { background: #1f302a; }.footer-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 3rem; border-bottom: 1px solid rgba(255,255,255,.2); }.footer-top nav { display: flex; flex-wrap: wrap; gap: 1.5rem; }.footer-top nav a { text-decoration: none; font-size: .68rem; }.footer-bottom { display: grid; grid-template-columns: auto 1fr auto; gap: 3rem; padding-top: 2rem; color: rgba(255,255,255,.58); font-size: .63rem; }.footer-bottom p { margin: 0; }.footer-bottom p:nth-child(2) { max-width: 680px; justify-self: center; text-align: center; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s, transform .7s; }.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1020px) {
  .site-nav { position: fixed; inset: 0; display: none; flex-direction: column; justify-content: center; gap: 2rem; color: var(--ink); background: var(--paper); font-size: 1rem; }.site-nav.open { display: flex; }.menu-toggle { position: relative; z-index: 31; display: block; }
  .hero-content { width: min(720px, 78vw); }.hero-copy { width: 100%; margin-left: 0; }.event-layout { grid-template-columns: 1fr; }.secondary-events { grid-template-columns: 1fr; grid-template-rows: auto; }.introduction { grid-template-columns: 1fr; }.session-principles { max-width: 660px; }.connect { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .announcement { grid-template-columns: 26px minmax(0, 1fr) 26px; height: 48px; padding-inline: .4rem; }.announce-message a { gap: .45rem; font-size: .6rem; }.announce-message em, .announce-dots { display: none; }
  .site-header { top: 48px; min-height: 68px; }.site-header.scrolled { top: 0; }.brand small { display: none; }
  .hero { min-height: 870px; padding: 8.5rem 1.5rem 4rem; align-items: start; }.hero-background { background-position: 40% center; }.hero-overlay { background: linear-gradient(180deg, rgba(248,250,248,.38), rgba(248,250,248,.2) 65%, rgba(248,250,248,.02) 90%); }.hero-content { width: 100%; }.hero h1 { font-size: clamp(4rem, 18vw, 5.3rem); }.hero-copy > p:not(.eyebrow) { font-size: .95rem; }.scroll-note { display: none; }
  .section { padding-block: 5.5rem; }.section-heading, .offering-heading, .journal-heading { grid-template-columns: 1fr; gap: 1.5rem; }.section-heading > p { max-width: 580px; }.offering-heading .eyebrow, .journal-heading .eyebrow { grid-column: 1; }
  .featured-event { grid-template-columns: 1fr; }.event-date { min-height: 220px; grid-template-columns: auto auto; gap: 1rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.3); }.event-date span { margin: 0; text-align: left; }.secondary-events { grid-template-columns: 1fr; }.small-event { grid-template-columns: 60px 1fr auto; }
  .introduction { gap: 4rem; }.offering-grid { grid-template-columns: 1fr; gap: 3rem; }.offering-image { height: 430px; }.single-booking { align-items: flex-start; flex-direction: column; }
  .about, .bracelets { grid-template-columns: 1fr; }.about-art { min-height: 440px; }.lunar-disc { width: min(72vw, 340px); }.about-copy { padding-top: 1rem; }.bracelet-image { width: min(78vw, 430px); }
  .story-card { flex-basis: 78vw; }.story-footer { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .journal-cards { grid-template-columns: 1fr; }.journal-cards article { min-height: 220px; }
  .connect-links a { grid-template-columns: 1fr auto; }.connect-links span { grid-column: 1 / -1; }.connect-links strong { overflow-wrap: anywhere; }
  .footer-top { align-items: flex-start; gap: 2rem; }.footer-top nav { display: grid; grid-template-columns: repeat(2, 1fr); }.footer-bottom { grid-template-columns: 1fr; gap: 1.5rem; }.footer-bottom p:nth-child(2) { justify-self: start; text-align: left; }
}

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

/* Refined layout: full-bleed color and imagery, restrained content width. */
.featured-event { overflow: hidden; border-radius: 26px; }
.event-date strong { font-size: clamp(6rem, 9vw, 9rem); }
.event-info h3 { font-size: clamp(2.8rem, 4vw, 4.6rem); }
.small-event { border-radius: 22px; }
.introduction { grid-template-columns: minmax(0, 1.15fr) minmax(300px, .6fr); gap: clamp(4rem, 10vw, 10rem); }
.offering-heading { gap: clamp(3rem, 8vw, 8rem); }
.offering-grid { gap: 1.25rem; }
.offering-card { min-width: 0; padding: .75rem .75rem 1.75rem; border: 1px solid rgba(41,50,47,.1); border-radius: 24px; background: rgba(255,255,255,.45); }
.offering-image { height: clamp(220px, 22vw, 320px); border-radius: 17px; }
.offering-card > p { margin: 1.3rem .75rem .6rem; }
.offering-card h3 { margin: 0 .75rem .8rem; font-size: clamp(1.8rem, 2.3vw, 2.6rem); }
.offering-description, .offering-book-link { margin-inline: .75rem; }

.about { grid-template-columns: minmax(320px, .82fr) minmax(0, 1fr); gap: clamp(4rem, 10vw, 10rem); }
.about-photo { position: relative; min-height: 600px; margin: 0; overflow: hidden; border-radius: 28px; background: #dce5df; }
.about-photo img { width: 100%; height: 100%; min-height: 600px; object-fit: cover; object-position: center 26%; filter: saturate(.78); }
.about-photo figcaption { position: absolute; left: 1rem; bottom: 1rem; padding: .55rem .8rem; border-radius: 999px; color: white; background: rgba(36,58,51,.7); backdrop-filter: blur(8px); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.about-copy .about-note { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); font: 500 .72rem/1.5 var(--sans); letter-spacing: .04em; }

.story-track { gap: 1.25rem; margin-inline: 0; padding: 0 0 1.5rem; }
.story-card { flex-basis: clamp(220px, 18vw, 278px); }
.story-image { aspect-ratio: 9 / 16; border-radius: 20px; }
.story-image img { position: absolute; left: 50%; width: auto; max-width: none; height: 100%; object-fit: cover; transform: translateX(-50%) scale(1.18); }
.story-card:hover img { transform: translateX(-50%) scale(1.23); filter: brightness(.9); }

.journal { background: var(--pale-sage); }
.journal-heading { gap: clamp(3rem, 8vw, 8rem); }
.journal-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.25rem; align-items: stretch; }
.journal-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; border: 0; background: transparent; }
.journal-card { min-height: 340px; display: flex; flex-direction: column; padding: 2rem; border: 1px solid rgba(41,50,47,.12); border-radius: 22px; background: rgba(253,251,246,.72); text-decoration: none; }
.journal-card span { font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.journal-card h3 { margin: auto 0 1rem; font: 300 2rem/1.12 var(--serif); }
.journal-card p { margin: 0 0 1.5rem; color: #646c67; font-size: .78rem; }
.journal-card strong { font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.connect-panel { padding: 2rem; border-radius: 22px; color: white; background: var(--deep); }
.connect-panel h3 { margin: 0; font: 300 clamp(2.2rem, 3.3vw, 3.6rem)/1 var(--serif); }
.connect-panel > p:not(.eyebrow) { color: rgba(255,255,255,.68); }
.connect-panel .connect-links { margin-top: 2rem; border-top-color: rgba(255,255,255,.2); }
.connect-panel .connect-links a { padding: 1.2rem 0; border-bottom-color: rgba(255,255,255,.2); }
.connect-panel .connect-links span { color: rgba(255,255,255,.6); }
.connect-panel .connect-links strong { font-size: clamp(1rem, 1.5vw, 1.35rem); }
.connect-panel .connect-links a:hover strong { color: #d6c19b; }

.footer { padding-inline: var(--page-gutter); }
.footer-top, .footer-bottom { width: min(100%, var(--content-max)); margin-inline: auto; }

@media (max-width: 1020px) {
  .header-inner { width: min(calc(100% - 2.5rem), var(--content-max)); }
  .introduction, .about { grid-template-columns: 1fr; }
  .journal-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .announcement-inner { width: calc(100% - .5rem); grid-template-columns: minmax(0, 1fr) 26px 26px; }
  .announce-message strong { display: none; }
  .site-header { top: 48px; }
  .header-inner { width: calc(100% - 3rem); }
  .hero-copy > * { max-width: 100%; }
  .offering-image { height: 300px; }
  .about-photo, .about-photo img { min-height: 460px; }
  .story-card { flex-basis: min(74vw, 270px); }
  .journal-cards { grid-template-columns: 1fr; }
  .journal-card { min-height: 250px; }
  .connect-panel .connect-links a { grid-template-columns: 1fr auto; }
  .connect-panel .connect-links span { grid-column: 1 / -1; }
}

/* Accessibility and interaction refinement. */
body { font-size: 18px; line-height: 1.7; }
.eyebrow { margin-bottom: 1.25rem; font-size: .75rem; }
.button, .text-link { font-size: .78rem; }
.site-nav { font-size: .82rem; }
.brand small { font-size: .68rem; }
.hero h1 { font-weight: 400; font-size: clamp(3.9rem, 5.5vw, 6.1rem); line-height: .93; }
.hero h1 em { font-weight: 400; }
.hero-copy > p:not(.eyebrow) { font-size: 1.12rem; line-height: 1.7; }
.section-heading > p, .offering-heading > p:last-child, .journal-heading > p:last-child { font-size: 1rem; }
.offering-heading, .journal-heading { column-gap: clamp(3rem, 8vw, 8rem); row-gap: 1rem; }
.offering-heading .eyebrow, .journal-heading .eyebrow { margin-bottom: 0; }
.offering-card > p, .story-card small, .story-footer, .event-meta { font-size: .72rem; }
.offering-description, .small-event p, .journal-card p { font-size: .92rem; }
.connect-links span { font-size: .7rem; }
.footer-top nav a { font-size: .875rem; }
.footer-bottom { font-size: .82rem; line-height: 1.6; }
.footer-brand small { font-size: .75rem; }

.site-header, .site-header.scrolled { position: sticky; top: 0; min-height: 76px; background: var(--paper); box-shadow: 0 1px 0 rgba(41,50,47,.1); backdrop-filter: none; transition: min-height .28s ease, box-shadow .3s ease; }
.site-header.scrolled { min-height: 68px; background: var(--paper); box-shadow: 0 8px 28px rgba(36,58,51,.08); }
.site-header:not(.scrolled) .brand-moon::after { background: var(--paper); }
@media (min-width: 761px) { .hero { min-height: calc(100vh - 120px); } }

.announcement-inner { width: min(calc(100% - 2rem), 1120px); grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; }
.announcement-current { min-width: 0; display: flex; align-items: center; gap: .35rem; overflow: hidden; }
.announce-message { min-width: 0; text-align: left; opacity: 1; transform: translateY(0); transition: opacity .32s ease, transform .32s cubic-bezier(.22,.7,.26,1); }
.announce-message.is-leaving { opacity: 0; transform: translateY(-130%); }
.announce-message.is-entering { opacity: 0; transform: translateY(130%); transition: none; }
.announce-message a { width: fit-content; max-width: 100%; justify-content: flex-start; font-size: .76rem; }
.announce-message strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.announce-message em { flex: none; margin-left: 0; }
.announce-message a:hover strong, .announce-message a:focus-visible strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.announce-control { width: 32px; height: 32px; display: grid; place-items: center; padding: 0; border-radius: 50%; line-height: 0; }
.announce-control:hover { background: rgba(255,255,255,.1); }
.announce-all { min-height: 30px; display: flex; align-items: center; padding: .25rem .7rem; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; color: white; background: transparent; cursor: pointer; white-space: nowrap; font-size: .7rem; letter-spacing: .05em; }
.announce-all span { margin-left: .3rem; }
.announcement-list { position: fixed; z-index: 50; inset: 44px 0 auto; display: none; width: min(calc(100% - 2rem), 1120px); margin: 0 auto; padding: .6rem; border: 0; border-radius: 0 0 18px 18px; color: var(--ink); background: rgba(253,251,246,.98); box-shadow: 0 18px 50px rgba(23,40,34,.16); backdrop-filter: blur(16px); }
.announcement.is-expanded .announcement-list { display: block; }
.announcement-list > div { display: grid; }
.announcement-list a { display: grid; grid-template-columns: 100px 1fr auto; gap: 1rem; align-items: center; padding: .9rem 1rem; border-bottom: 1px solid var(--line); text-decoration: none; }
.announcement-list a:last-child { border-bottom: 0; }
.announcement-list time { color: var(--forest); font-weight: 600; text-transform: uppercase; }
.announcement-list strong { font: 500 1.1rem var(--serif); }
.announcement-list a > span { font-size: .72rem; text-transform: uppercase; }
.announcement-list a { cursor: pointer; border-radius: 10px; transition: background-color .2s ease, box-shadow .2s ease; }
.announcement-list a:hover, .announcement-list a:focus-visible { background-color: #e5ece5; }
.announcement-list a:hover strong, .announcement-list a:focus-visible strong { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
@media (min-width: 701px) {
  .announcement-list > div { gap: .35rem; }
  .announcement-list a > span { padding: .45rem .8rem; border: 1px solid rgba(51,80,68,.3); border-radius: 999px; color: var(--forest); background: rgba(255,255,255,.6); white-space: nowrap; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
  .announcement-list a:hover > span, .announcement-list a:focus-visible > span { color: white; background: var(--forest); border-color: var(--forest); }
}
.no-announcements .site-header { top: 0; }
.no-announcements .hero { min-height: 100vh; }

.event-layout-empty { grid-template-columns: 1fr; }
.events-empty { max-width: 820px; padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--line); border-radius: 26px; background: var(--mist); }
.events-empty h3 { margin: 0; font: 400 clamp(2.4rem, 4vw, 4.4rem)/1 var(--serif); }
.events-empty > p:not(.eyebrow) { max-width: 590px; margin-block: 1.5rem 2rem; }
.secondary-events { grid-template-rows: none; grid-auto-rows: auto; align-content: start; }
.secondary-calendar-link { grid-column: 1 / -1; min-height: 46px; display: flex; align-items: center; justify-content: center; gap: .55rem; padding: .65rem 1rem; color: var(--forest); background: transparent; text-align: center; text-decoration: none; font-size: .69rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; transition: color .22s ease; }
.secondary-calendar-link i { font-style: normal; transition: transform .22s ease; }
.secondary-calendar-link:hover { color: var(--deep); }
.secondary-calendar-link:hover span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .28em; }
.secondary-calendar-link:hover i { transform: translateX(.18rem); }
.event-date { gap: 1.15rem; }
.event-date .event-month { margin: 0; font-size: 1rem; font-weight: 600; letter-spacing: .14em; }
.event-date strong { line-height: .82; }
.event-date .event-year { margin: 0; font-size: .72rem; opacity: .72; }
.event-date .event-weekday { margin: .15rem 0 0; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.session-principles p { font-size: .9rem; }
.session-principles span { font-size: .9rem; }

.about-photo img { object-position: center 20%; }
.about-copy p:not(.eyebrow) { font-size: 1rem; }
.about-copy p:nth-of-type(2) { font: 400 1.3rem/1.55 var(--serif); }
.about-copy .text-link { margin-top: 1.5rem; }

.story-track { scrollbar-width: none; }
.story-track::-webkit-scrollbar { display: none; }
.story-card { appearance: none; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; font: inherit; }
.story-card:focus-visible { outline: 3px solid var(--forest); outline-offset: 5px; border-radius: 20px; }
.story-card blockquote { font-weight: 400; }
.story-controls { display: inline-flex; align-items: center; gap: .75rem; }
.story-controls button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); background: transparent; cursor: pointer; }
.story-controls button:hover { color: white; background: var(--forest); }
.story-controls span { min-width: 58px; text-align: center; font-size: .76rem; }
.story-track { overscroll-behavior-inline: contain; touch-action: pan-x; user-select: none; -webkit-overflow-scrolling: touch; }
.story-card img { pointer-events: none; user-select: none; -webkit-user-drag: none; }
.story-swipe-hint { display: none; margin: .2rem 0 0; color: #65706a; font-size: .75rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.video-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: 1.5rem; background: rgba(20,29,26,.78); backdrop-filter: blur(10px); }
.video-modal[hidden] { display: none; }
.video-dialog { position: relative; width: min(92vw, 460px); padding: 1rem; border-radius: 24px; background: var(--paper); box-shadow: 0 30px 100px rgba(0,0,0,.3); }
.video-frame { width: min(100%, calc(68vh * .5625)); margin-inline: auto; overflow: hidden; border-radius: 16px; background: #111; aspect-ratio: 9 / 16; }
.video-frame iframe { width: 100%; height: 100%; border: 0; }
.video-close { position: absolute; z-index: 2; top: -18px; right: -18px; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; color: white; background: var(--deep); cursor: pointer; font-size: 1.7rem; }
.video-meta { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding: 1rem .35rem .2rem; }
.video-meta h2 { min-width: 0; margin: 0; font: 400 1.25rem/1.25 var(--serif); }
.video-meta a { flex: 0 0 auto; font-size: .75rem; text-transform: uppercase; }
html.modal-open, body.modal-open { overflow: hidden; overscroll-behavior: none; }
body.modal-open { position: fixed; left: 0; right: 0; width: 100%; }

.bracelets { grid-template-columns: .55fr 1fr; }
.bracelet-image { width: min(100%, 390px); max-width: 390px; border-radius: 28px; }
.bracelet-copy p:not(.eyebrow) { font-size: 1rem; }
.bracelet-button { margin-top: 1.35rem; border-color: #d6c19b; color: var(--deep); background: #d6c19b; }
.bracelet-button:hover { color: white; }

@media (max-width: 760px) {
  body { font-size: 17px; }
  .announcement-inner { width: calc(100% - .75rem); grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; }
  .announcement-current { gap: .15rem; }
  .announce-message a { gap: .4rem; }
  .announce-message strong { display: block; font-size: .7rem; }
  .announce-message em, .announce-control.previous { display: none; }
  .announce-control { width: 28px; height: 28px; }
  .announce-all { padding-inline: .55rem; font-size: .64rem; }
  .announcement-list { width: calc(100% - 1rem); }
  .announcement-list a { grid-template-columns: 72px 1fr; }
  .announcement-list a > span { display: none; }
  .hero h1 { font-size: clamp(3.7rem, 17vw, 5rem); }
  .hero-copy > p:not(.eyebrow) { font-size: 1rem; }
  .section-heading h2, .introduction h2, .offering-heading h2, .about h2, .bracelets h2, .journal h2 { font-size: clamp(3rem, 14vw, 4.5rem); }
  .about-photo, .about-photo img { min-height: 420px; }
  .story-footer { flex-direction: row; align-items: center; }
  .story-swipe-hint { display: block; }
  .story-footer .text-link { font-size: .68rem; }
  .video-dialog { width: 100%; padding: .65rem; }
  .offering-heading, .journal-heading { column-gap: 1.5rem; row-gap: .9rem; }
  .site-header, .site-header.scrolled { top: 0; min-height: 68px; }
  .event-date { min-height: 220px; grid-template-columns: 1fr; gap: .65rem; text-align: center; }
  .event-date .event-month, .event-date .event-year { text-align: center; }
  .video-close { top: -14px; right: -8px; }
  .video-meta { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .bracelets { grid-template-columns: 1fr; }
  .bracelet-image { width: min(78vw, 340px); }
}

.about-main { padding-top: 0; }
.about-page-hero { display: grid; grid-template-columns: minmax(360px, .85fr) minmax(0, 1fr); gap: clamp(4rem, 9vw, 9rem); align-items: center; }
.about-page-photo { margin: 0; overflow: hidden; border-radius: 28px; background: var(--mist); }
.about-page-photo img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: cover; object-position: center 18%; }
.about-page-intro h1 { margin: 0; font: 400 clamp(4rem, 6vw, 6.5rem)/.94 var(--serif); letter-spacing: -.045em; }
.about-page-intro > p:last-child { max-width: 640px; }
.about-approach { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(4rem, 10vw, 10rem); background: var(--pale-sage); }
.about-approach h2 { margin: 0; font: 400 clamp(3.2rem, 5vw, 5.4rem)/.98 var(--serif); letter-spacing: -.04em; }
.about-approach-copy { align-self: end; }
.about-approach-copy p { max-width: 620px; }
.about-approach-copy .button { margin-top: 1.25rem; }

@media (max-width: 760px) {
  .about-page-hero, .about-approach { grid-template-columns: 1fr; }
  .about-page-hero { gap: 3rem; }
  .about-page-intro h1 { font-size: clamp(3.5rem, 16vw, 4.8rem); }
  .about-page-photo img { aspect-ratio: 1 / 1.15; }
}

/* Shared event calendar. */
.events-more { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-top: 2rem; padding: 1.4rem 1.5rem; border: 1px solid var(--line); border-radius: 22px; background: rgba(240,244,240,.65); }
.events-more > div:first-child { display: grid; gap: .28rem; }
.events-more > div:first-child strong { font: 500 1.2rem var(--serif); }
.events-more > div:first-child span { color: #68716c; font-size: .8rem; }
.events-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1.2rem; flex-wrap: wrap; }
.events-actions .button { min-height: 44px; padding: .7rem 1rem; white-space: nowrap; }
.event-layout-single { grid-template-columns: minmax(0, 1fr); }
.event-layout-single .featured-event { width: min(100%, 1080px); }
.small-event time { gap: .35rem; line-height: 1; }
.small-event time span { order: 1; color: var(--forest); font-size: .7rem; font-weight: 600; letter-spacing: .14em; }
.small-event time strong { order: 2; }
.small-event time small { order: 3; color: #758079; font-size: .58rem; letter-spacing: .08em; }
.small-event time .event-weekday { order: 4; color: var(--forest); font-weight: 700; }
.announcement-calendar-link { background: var(--mist); }

.events-page-hero { min-height: 530px; display: flex; flex-direction: column; justify-content: center; color: white; background: linear-gradient(110deg, rgba(27,45,39,.88), rgba(46,72,62,.48)), url("images/events-hero-coastal-path-v1.webp") center 52%/cover; }
.events-page-hero > * { width: min(100%, 900px); }
.events-page-hero h1 { margin: 0; font: 400 clamp(4rem, 7vw, 7rem)/.92 var(--serif); letter-spacing: -.045em; }
.events-page-hero h1 em { color: #d9c4a3; font-weight: 400; }
.events-page-hero > p:last-child { max-width: 720px; margin: 2rem 0 0; color: rgba(255,255,255,.78); font-size: 1.05rem; }

.event-calendar { background: var(--paper); }
.calendar-heading, .history-heading { display: grid; grid-template-columns: 1fr minmax(280px, .52fr); gap: clamp(3rem, 9vw, 9rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.calendar-heading h2, .history-heading h2 { margin: 0; font: 400 clamp(3.5rem, 6vw, 6rem)/.95 var(--serif); letter-spacing: -.04em; }
.calendar-heading > p, .history-heading > p { max-width: 560px; margin: 0; color: #647069; }
.calendar-upcoming { display: grid; gap: 1rem; }
.calendar-card { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--line); border-radius: 26px; background: var(--mist); }
.calendar-card time { display: grid; justify-items: center; align-content: center; align-self: stretch; gap: .32rem; min-height: 150px; padding: 1rem; border-radius: 18px; color: white; background: var(--forest); line-height: 1; }
.calendar-card time span { font-size: .76rem; font-weight: 600; line-height: 1.2; letter-spacing: .16em; }
.calendar-card time strong { margin: .18rem 0 0; font: 400 4.2rem/.88 var(--serif); }
.calendar-card time small { color: rgba(255,255,255,.7); font-size: .65rem; letter-spacing: .1em; }
.calendar-card time .event-weekday { margin-top: .22rem; color: white; font-weight: 700; letter-spacing: .13em; }
.calendar-kicker { margin: 0 0 .5rem; color: var(--forest); font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.calendar-card h3 { margin: 0; font: 400 clamp(2rem, 3vw, 3rem)/1.02 var(--serif); }
.calendar-card-copy > p:not(.calendar-kicker, .calendar-times) { max-width: 660px; margin: .7rem 0 0; color: #65706a; font-size: .92rem; white-space: pre-line; }
.calendar-times { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; }
.calendar-times span, .calendar-times a { padding: .4rem .7rem; border: 1px solid rgba(64,92,80,.28); border-radius: 999px; color: var(--forest); font-size: .72rem; font-weight: 600; }.calendar-times a { text-decoration: none; }.calendar-times a:hover { color: white; background: var(--forest); }
.calendar-link { display: inline-flex; align-items: center; gap: .6rem; padding: .8rem 1rem; border: 1px solid var(--ink); border-radius: 999px; text-decoration: none; white-space: nowrap; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.calendar-link:hover { color: white; background: var(--forest); }
.calendar-empty { padding: clamp(2rem, 5vw, 4rem); border-radius: 26px; background: var(--mist); }
.calendar-empty h3 { margin: 0; font: 400 clamp(2.5rem, 4vw, 4.5rem)/1 var(--serif); }
.calendar-empty p { max-width: 600px; }

.event-history { background: var(--pale-sage); }
.history-months { overflow: hidden; border-top: 1px solid rgba(41,50,47,.2); }
.history-month { border-bottom: 1px solid rgba(41,50,47,.2); }
.history-month summary { list-style: none; display: grid; grid-template-columns: 1fr auto 42px; gap: 1.5rem; align-items: center; padding: 1.35rem .5rem; cursor: pointer; }
.history-month summary::-webkit-details-marker { display: none; }
.history-month summary > span { font: 400 clamp(1.65rem, 2.5vw, 2.5rem) var(--serif); }
.history-month summary small { color: #65706a; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.history-month summary i { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--ink); border-radius: 50%; font-style: normal; transition: transform .28s cubic-bezier(.22,.7,.26,1), box-shadow .28s ease, background-color .28s ease; }
.history-month summary:hover i { background: rgba(255,255,255,.3); }
.history-month summary i::before, .history-month summary i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 13px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .28s cubic-bezier(.22,.7,.26,1), opacity .22s ease; }
.history-month summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.history-month[open] summary i::after { opacity: 0; transform: translate(-50%, -50%) rotate(180deg) scaleX(.15); }
.history-list { overflow: hidden; padding: 0 .5rem 1.25rem; }
.history-event { display: grid; grid-template-columns: minmax(170px, .3fr) minmax(0, 1fr); gap: 2rem; align-items: center; padding: 1.2rem 0; border-top: 1px solid rgba(41,50,47,.12); }
.history-event time { color: var(--forest); font-size: .76rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.history-event h3 { margin: 0; font: 400 1.35rem/1.15 var(--serif); }
.history-event p { margin: .3rem 0 0; color: #65706a; font-size: .78rem; }
.section-heading h2, .introduction h2, .offering-heading h2, .about h2, .bracelets h2, .journal h2 { font-weight: 400; }

@media (max-width: 760px) {
  .events-page-hero { min-height: 520px; }
  .events-page-hero h1 { font-size: clamp(3.7rem, 17vw, 5rem); }
  .calendar-heading, .history-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .calendar-card { grid-template-columns: 76px minmax(0, 1fr); gap: 1rem; padding: 1rem; }
  .calendar-card time { min-height: 112px; padding: .7rem; }
  .calendar-card time strong { font-size: 3rem; }
  .calendar-card h3 { font-size: 1.8rem; }
  .calendar-card-copy > p:not(.calendar-kicker, .calendar-times) { display: none; }
  .calendar-link { grid-column: 1 / -1; justify-self: stretch; justify-content: center; }
  .history-month summary { grid-template-columns: 1fr auto 38px; gap: .7rem; }
  .history-event { grid-template-columns: 1fr; gap: .75rem; }
  .history-event time { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .history-month summary i::before, .history-month summary i::after { transition: none; }
}

/* Homepage refinement inspired by the approved mockup direction. */
.button-outline { border-color: rgba(41,50,47,.62); color: var(--ink); background: rgba(253,251,246,.26); backdrop-filter: blur(8px); }
.button-outline:hover { border-color: var(--forest); color: white; background: var(--forest); }

.announcement-inner { width: min(calc(100% - 2rem), 1180px); }
.announcement-current { display: grid; grid-template-columns: 32px minmax(0, auto) 32px; justify-content: center; gap: .35rem; }
.announce-message { order: 2; height: 100%; display: flex; align-items: center; text-align: center; }
.announce-control.previous { order: 1; }
.announce-control.next { order: 3; }
.announce-message a { min-height: 44px; align-items: center; justify-content: center; line-height: 1.15; }
.announce-message span, .announce-message strong { display: inline-flex; align-items: center; }
.announce-message span { padding: 0; border-radius: 0; color: white; background: transparent; }
.announce-control svg { width: 13px; height: 13px; fill: currentColor; }
.announce-all { gap: .42rem; }
.announce-all-caret { width: 10px; height: 10px; fill: currentColor; }
.announcement.is-expanded .announce-all-caret { transform: rotate(180deg); }
.announce-message.is-leaving-forward { opacity: 0; transform: translateX(-22px); }
.announce-message.is-entering-forward { opacity: 0; transform: translateX(22px); transition: none; }
.announce-message.is-leaving-backward { opacity: 0; transform: translateX(22px); }
.announce-message.is-entering-backward { opacity: 0; transform: translateX(-22px); transition: none; }

.hero-overlay { background: linear-gradient(90deg, rgba(248,250,248,.28) 0%, rgba(248,250,248,.14) 43%, rgba(248,250,248,.02) 70%); }
.hero-content::before { display: none; }

.event-place, .small-event-place, .small-event-time, .calendar-kicker, .calendar-times a, .calendar-times span, .event-meta a, .event-meta .event-time-static { display: flex; align-items: center; gap: .48rem; }
.event-place { margin: 0 0 1rem; color: rgba(255,255,255,.9); font-size: .74rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.event-place svg, .small-event p svg, .calendar-kicker svg, .calendar-times svg, .event-meta svg { flex: none; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.small-event { grid-template-columns: 75px minmax(0, 1fr); }
.small-event p { display: flex; align-items: center; gap: .4rem; }
.small-event .small-event-place { margin-top: .7rem; color: var(--forest); font-weight: 600; }
.small-event-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .85rem; }
.small-event-register { width: fit-content; display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .7rem; border: 1px solid rgba(64,92,80,.38); border-radius: 999px; color: var(--forest); text-decoration: none; font-size: .7rem; font-weight: 600; }
.small-event-register svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.small-event-register b { margin-left: .2rem; font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; }
.small-event-register:hover { color: white; background: var(--forest); }
.small-event-register.is-disabled { color: #66726c; background: rgba(255,255,255,.36); }
.small-event-register.is-disabled:hover { color: #66726c; background: rgba(255,255,255,.36); }
.small-event-details { width: fit-content; display: inline-flex; align-items: center; gap: .35rem; padding: .5rem .15rem; color: var(--forest); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.small-event-details span { transition: transform .2s ease; }
.small-event-details:hover { color: var(--deep); text-decoration: none; }
.small-event-details:hover span { transform: translateX(.2rem); }
.event-meta { gap: .55rem; }
.event-meta a, .event-meta .event-time-static { padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; text-decoration: none; }
.event-meta a:hover { background: rgba(255,255,255,.12); }
.event-meta b { font-size: .6rem; font-weight: 600; opacity: .78; }
.event-time-or { opacity: .62; }

.introduction { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(90deg, rgba(226,234,226,.9) 0%, rgba(230,237,230,.82) 37%, rgba(238,242,235,.92) 68%, rgba(235,240,233,.96) 100%), url("images/botanical-session-background-v2.png") left center / cover no-repeat; }
.introduction::before { display: none; }
.intro-copy, .session-principles { position: relative; }
.session-principles { padding: 1.1rem 1.5rem; border-radius: 22px; background: rgba(247,247,240,.47); backdrop-filter: blur(7px); }
.session-principles > div { grid-template-columns: 58px 1fr; align-items: center; }
.principle-icon { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(64,92,80,.3); border-radius: 50%; background: rgba(253,251,246,.58); }
.principle-icon svg { width: 26px; height: 26px; fill: none; stroke: var(--forest); stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }

.about-copy { position: relative; isolation: isolate; }
.about-copy > *:not(.about-botanical) { position: relative; z-index: 2; }
.about-botanical { position: absolute; z-index: 1; right: clamp(-7rem, -5vw, -3rem); bottom: -6rem; width: min(31vw, 430px); height: auto; opacity: .14; pointer-events: none; user-select: none; mix-blend-mode: multiply; }
.about-copy::after { display: none; }
.about-copy .button-outline { margin-top: 1.5rem; }

.story-carousel { position: relative; isolation: isolate; width: min(100%, var(--content-max)); }
.story-track { position: relative; z-index: 1; scroll-behavior: smooth; }
.story-card { flex-basis: calc((100% - 5rem) / 5); }
.story-track.is-programmatic { scroll-snap-type: none; }
.story-card:last-child { scroll-snap-align: end; }
.story-arrow { position: absolute; z-index: 20; top: 31%; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; color: var(--forest); background: rgba(253,251,246,.9); box-shadow: 0 10px 28px rgba(36,58,51,.18); backdrop-filter: blur(9px); pointer-events: auto; cursor: pointer; transform: translateY(-50%) scale(1); transition: opacity .28s ease, color .28s ease, background-color .28s ease, box-shadow .28s ease, transform .28s ease; }
.story-arrow:hover:not(:disabled) { color: var(--deep); background: white; box-shadow: 0 12px 32px rgba(36,58,51,.24); }
.story-arrow:disabled { cursor: default; opacity: .28; transform: translateY(-50%) scale(.94); box-shadow: 0 6px 18px rgba(36,58,51,.08); }
.story-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.story-previous { left: -38px; }
.story-next { right: -38px; }
.story-status { display: flex; align-items: center; }
.story-dots { display: flex; gap: .42rem; }
.story-dots i { width: 7px; height: 7px; border: 1px solid var(--forest); border-radius: 50%; }
.story-dots i.active { background: var(--forest); }

.journal-card { overflow: hidden; }
.journal-visual { min-height: 104px; display: grid; place-items: center; margin: 0 0 1.5rem; border: 1px solid rgba(64,92,80,.12); border-radius: 18px; color: var(--forest); background: linear-gradient(135deg, rgba(169,186,172,.3), rgba(246,242,232,.7)); }
.journal-visual svg { width: 50px; height: 50px; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.journal-card h3 { margin-top: 1.2rem; }

.footer-top { display: grid; grid-template-columns: auto 1fr auto; }
.footer-top nav { justify-content: center; }
.footer-social { display: flex; gap: .65rem; }
.footer-social a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; }
.footer-social svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.footer-social .social-fill { fill: currentColor; stroke: none; }
.footer-legal { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .55rem 1rem; }
.footer-legal a { white-space: nowrap; }

.calendar-card { grid-template-columns: 112px minmax(0, 1fr); }
.calendar-card { scroll-margin-top: 130px; transition: border-color .5s ease, box-shadow .5s ease, background-color .5s ease; }
.calendar-card.calendar-card-arrival { border-color: rgba(152,122,80,.68); box-shadow: 0 0 0 5px rgba(214,193,155,.26), 0 20px 52px rgba(28,55,44,.12); background-color: #f4f0e5; animation: event-arrival 2.6s ease both; }
.calendar-mobile-details { display: none; }
@keyframes event-arrival {
  0%, 24% { box-shadow: 0 0 0 7px rgba(214,193,155,.34), 0 20px 52px rgba(28,55,44,.15); }
  100% { box-shadow: 0 0 0 0 rgba(214,193,155,0), 0 0 0 rgba(28,55,44,0); }
}
.calendar-kicker { width: fit-content; }
.calendar-times a, .calendar-times span { padding-inline: .8rem; }
.calendar-times b { margin-left: .2rem; font-size: .6rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }

.policies-main { background: var(--paper); }
.policies-hero { padding-block: clamp(5rem, 9vw, 8rem); background: var(--pale-sage); }
.policies-hero h1 { max-width: 900px; margin: 0; font: 400 clamp(3.8rem, 7vw, 7rem)/.94 var(--serif); letter-spacing: -.045em; }
.policies-hero p:last-child { max-width: 720px; margin-top: 1.5rem; }
.policy-section { max-width: 940px; padding-block: clamp(4rem, 7vw, 7rem); border-bottom: 1px solid var(--line); }
.policy-section h2 { margin: 0 0 1.5rem; font: 400 clamp(2.7rem, 4.5vw, 4.6rem)/1 var(--serif); }
.policy-section h3 { margin-top: 2rem; font: 500 1.45rem var(--serif); }
.policy-section a { text-underline-offset: .2em; }

@media (max-width: 1200px) {
  .story-card { flex-basis: calc((100% - 3.75rem) / 4); }
  .footer-top { grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 2rem; row-gap: 1.5rem; }
  .footer-top nav { grid-column: 1 / -1; grid-row: 2; width: 100%; justify-content: flex-start; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); }
  .footer-bottom { grid-template-columns: 1fr; gap: 1.25rem; }
  .footer-bottom p:nth-child(2) { width: min(100%, 760px); max-width: none; justify-self: start; text-align: left; }
  .footer-legal { justify-content: flex-start; }
}

@media (max-width: 1020px) {
  .story-card { flex-basis: calc((100% - 2.5rem) / 3); }
  .footer-top { grid-template-columns: 1fr auto; }
  .footer-top nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .about-copy::after { right: 0; }
  .about-botanical { right: -1rem; bottom: -4rem; width: min(48vw, 390px); opacity: .11; }
}

@media (max-width: 760px) {
  .announcement-inner { grid-template-columns: minmax(0, 1fr) auto; }
  .announcement-current { height: 100%; grid-template-columns: 27px minmax(0, auto) 27px; align-items: center; }
  .announce-control.previous { display: block; }
  .announce-message a { min-height: 48px; gap: .35rem; }
  .announce-message span { font-size: .58rem; }
  .hero-overlay { background: linear-gradient(180deg, rgba(248,250,248,.38), rgba(248,250,248,.2) 65%, rgba(248,250,248,.02) 90%); }
  .hero-content::before { inset: -2rem -.8rem -2rem -.8rem; width: auto; border-radius: 26px; background: linear-gradient(180deg, rgba(250,248,242,.9), rgba(248,246,239,.68) 75%, rgba(248,246,239,.1)); }
  .introduction { background-position: 28% center; }
  .session-principles { padding-inline: 1rem; }
  .about-copy::after { width: 52vw; right: -2rem; bottom: -3rem; }
  .about-botanical { right: -3rem; bottom: -3rem; width: min(68vw, 320px); opacity: .09; }
  .story-card { flex-basis: min(74vw, 270px); }
  .story-arrow { top: 29%; width: 40px; height: 40px; background: rgba(253,251,246,.94); }
  .story-arrow svg { width: 19px; height: 19px; }
  .story-previous { left: -10px; }
  .story-next { right: -10px; }
  .journal-visual { min-height: 78px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-social { grid-row: 2; }
  .footer-top nav { grid-row: 3; }
  .footer-legal { justify-content: flex-start; }
  .calendar-card { grid-template-columns: 76px minmax(0, 1fr); }
  .calendar-times b { display: none; }
  .events-more { align-items: flex-start; flex-direction: column; padding: 1.25rem; }
  .events-actions { align-items: flex-start; justify-content: flex-start; flex-direction: column; }
  .calendar-description { display: none; }
  .calendar-card { position: relative; align-items: start; }
  .calendar-card time { align-self: start; }
  .calendar-card-copy h3 { padding-right: 2.8rem; }
  .calendar-mobile-details { display: block; margin: 0; }
  .calendar-mobile-details summary { position: absolute; top: 1rem; right: 1rem; z-index: 1; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(64,92,80,.3); border-radius: 50%; color: var(--forest); background: rgba(255,255,255,.55); cursor: pointer; list-style: none; transition: transform .28s cubic-bezier(.22,.7,.26,1), box-shadow .28s ease, background-color .28s ease, border-color .28s ease; }
  .calendar-mobile-details summary:hover { border-color: var(--forest); background: white; }
  .calendar-mobile-details summary::-webkit-details-marker { display: none; }
  .calendar-mobile-details summary i { position: relative; width: 14px; height: 14px; }
  .calendar-mobile-details summary i::before, .calendar-mobile-details summary i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 13px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .28s cubic-bezier(.22,.7,.26,1), opacity .22s ease; }
  .calendar-mobile-details summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
  .calendar-mobile-details[open] summary i::after { opacity: 0; transform: translate(-50%, -50%) rotate(180deg) scaleX(.15); }
  .calendar-mobile-details[open] summary { border-color: rgba(64,92,80,.42); background: rgba(255,255,255,.76); }
  .calendar-mobile-details > div { padding: .9rem .15rem .15rem; }
  .calendar-mobile-details > div > p { margin: 0; color: #65706a; font-size: .9rem; line-height: 1.6; white-space: pre-line; }
  .calendar-card-copy > .calendar-times { margin-top: 1rem; }
}

@supports selector(details::details-content) {
  .calendar-mobile-details, .history-month { interpolate-size: allow-keywords; }
  .calendar-mobile-details::details-content, .history-month::details-content { block-size: 0; opacity: 0; overflow: clip; transition: block-size .34s cubic-bezier(.22,.7,.26,1), opacity .22s ease, content-visibility .34s allow-discrete; }
  .calendar-mobile-details[open]::details-content, .history-month[open]::details-content { block-size: auto; opacity: 1; }
}

@supports not selector(details::details-content) {
  .calendar-mobile-details[open] > div, .history-month[open] > .history-list { animation: details-reveal .3s ease both; }
}

@keyframes details-reveal {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Dedicated contact page */
.contact-main { padding-top: 0; }
.contact-page-hero { display: grid; grid-template-columns: minmax(0, .72fr) minmax(520px, 1fr); gap: clamp(4rem, 8vw, 8rem); align-items: start; background: linear-gradient(135deg, #f5f1e8 0%, #edf2ed 58%, #dce8e3 100%); }
.contact-page-intro { position: static; padding-top: 1.5rem; }
.contact-page-intro h1 { margin: 0; font: 400 clamp(4.5rem, 7vw, 7.2rem)/.9 var(--serif); letter-spacing: -.05em; }
.contact-page-intro h1 em { color: var(--forest); font-weight: 400; }
.contact-page-intro > p:nth-of-type(2) { max-width: 620px; margin-top: 2rem; font-size: 1.05rem; }
.contact-quick-links { margin-top: 2.4rem; border-top: 1px solid rgba(41,50,47,.22); }
.contact-quick-links a { position: relative; display: grid; gap: .25rem; padding: 1rem 2rem 1rem 0; border-bottom: 1px solid rgba(41,50,47,.22); color: var(--ink); text-decoration: none; }
.contact-quick-links span { color: #6f7973; font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-quick-links strong { font: 400 clamp(1.08rem, 1.5vw, 1.35rem)/1.2 var(--serif); overflow-wrap: anywhere; }
.contact-quick-links b { position: absolute; right: .15rem; top: 50%; transform: translateY(-50%); color: var(--forest); font-weight: 400; transition: transform .2s ease; }
.contact-quick-links a:hover b { transform: translate(.2rem, -.2rem); }
.contact-response-note { max-width: 620px; margin: 1.4rem 0 0; color: #68716c; font-size: .78rem; }
.contact-response-note strong { color: var(--ink); }
.contact-form-panel { padding: clamp(2rem, 4vw, 3.5rem); border: 1px solid rgba(64,92,80,.16); border-radius: 28px; background: rgba(255,255,255,.86); box-shadow: 0 24px 60px rgba(36,58,51,.09); backdrop-filter: blur(12px); }
.contact-form-heading h2 { margin: 0; font: 400 clamp(2.7rem, 4vw, 4.25rem)/.98 var(--serif); letter-spacing: -.04em; }
.contact-form-heading > p:not(.eyebrow) { max-width: 620px; margin: 1rem 0 0; color: #626b66; }
.contact-form { margin-top: 2rem; }
.contact-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.contact-form label { display: grid; gap: .55rem; color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-form label small { margin-left: .3rem; color: #7b837e; font-size: .62rem; font-weight: 500; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid #aeb7b0; border-radius: 0; outline: none; padding: .8rem 0 1rem; color: var(--ink); background: transparent; font: 400 1rem/1.5 var(--sans); transition: border-color .2s ease, box-shadow .2s ease; }
.contact-form select { cursor: pointer; }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #959d98; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--forest); box-shadow: 0 1px 0 var(--forest); }
.contact-message-field { grid-column: 1 / -1; }
.contact-form-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 2rem; }
.contact-paths { background: var(--paper); }
.contact-paths-heading { display: grid; grid-template-columns: 1.1fr .62fr; gap: 1rem clamp(3rem, 9vw, 9rem); align-items: end; margin-bottom: 4rem; }
.contact-paths-heading .eyebrow { grid-column: 1 / -1; margin-bottom: .2rem; }
.contact-paths-heading h2 { margin: 0; font: 400 clamp(3.4rem, 5.4vw, 5.8rem)/.96 var(--serif); letter-spacing: -.045em; }
.contact-paths-heading > p:last-child { margin: 0; color: #626b66; }
.contact-path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.contact-path { min-height: 330px; display: flex; flex-direction: column; padding: clamp(2rem, 3vw, 3rem); border: 1px solid var(--line); border-radius: 22px; background: #fbfaf6; }
.contact-path-label { color: var(--sage); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-path h3 { margin: 2.25rem 0 .8rem; font: 400 clamp(1.8rem, 2.6vw, 2.6rem)/1.05 var(--serif); }
.contact-path p { margin: 0 0 2rem; color: #626b66; }
.contact-path .text-link { margin-top: auto; align-self: flex-start; }
@media (max-width: 1180px) {
  .contact-page-hero { grid-template-columns: 1fr; }
  .contact-page-hero { gap: 3.5rem; }
  .contact-page-intro { position: static; padding-top: 0; }
  .contact-form-panel { max-width: 760px; }
}

@media (max-width: 900px) {
  .contact-paths-heading { grid-template-columns: 1fr; gap: 1.4rem; }
  .contact-paths-heading .eyebrow { grid-column: 1; }
  .contact-path-grid { grid-template-columns: 1fr; }
  .contact-path { min-height: 0; }
  .contact-path h3 { margin-top: 2rem; }
}

@media (max-width: 520px) {
  .contact-page-hero { min-height: 0; padding-top: 8.5rem; }
  .contact-page-intro h1 { font-size: clamp(3.8rem, 18vw, 5rem); }
  .contact-form-panel { padding: 1.5rem; border-radius: 22px; }
  .contact-field-grid { grid-template-columns: 1fr; }
  .contact-message-field { grid-column: 1; }
}

/* Dedicated sessions and client-stories pages */
.sessions-page-hero, .stories-page-hero { min-height: 650px; padding-top: clamp(10rem, 14vw, 14rem); }
.sessions-page-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr); gap: clamp(4rem, 10vw, 10rem); align-items: end; background: linear-gradient(90deg, rgba(226,234,226,.9) 0%, rgba(230,237,230,.82) 37%, rgba(238,242,235,.92) 68%, rgba(235,240,233,.96) 100%), url("images/botanical-session-background-v2.png") left center / cover no-repeat; }
.sessions-page-hero h1, .stories-page-hero h1 { max-width: 980px; margin: 0; font: 400 clamp(4.4rem, 7vw, 7.5rem)/.91 var(--serif); letter-spacing: -.052em; }
.sessions-page-hero h1 em, .stories-page-hero h1 em { color: var(--forest); font-weight: 300; }
.sessions-hero-copy > p:not(.eyebrow), .stories-page-hero > p:last-child { max-width: 700px; margin: 2rem 0; color: #59625d; font-size: 1.08rem; }
.sessions-hero-note { padding: 2rem 0 1rem; border-top: 1px solid rgba(41,50,47,.25); }
.sessions-hero-note > span { font-size: .67rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.sessions-hero-note p { color: #626b66; }
.page-section-heading { display: grid; grid-template-columns: 1.2fr .55fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: 4rem; }
.page-section-heading h2, .session-process h2, .session-booking h2, .stories-next-step h2 { margin: 0; font: 400 clamp(3.5rem, 5.4vw, 6rem)/.95 var(--serif); letter-spacing: -.045em; }
.page-section-heading > p { margin: 0; color: #626b66; }
.session-options { background: var(--paper); }
.session-option-list { border-top: 1px solid var(--line); }
.session-option { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.session-option figure { height: 270px; margin: 0; overflow: hidden; border-radius: 22px; }
.session-option img { width: 100%; height: 100%; object-fit: cover; }
.session-option > div > span { display: block; color: var(--forest); font-size: .68rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.session-option h3 { margin: .7rem 0 .6rem; font: 400 clamp(2.2rem, 3.4vw, 3.7rem)/1 var(--serif); }
.session-option p { max-width: 660px; color: #606a64; }
.session-option strong { font: 400 1.2rem var(--serif); }
.session-option ul { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: 1.25rem 0 0; padding: 0; color: #68716c; list-style: none; font-size: .72rem; }
.session-option li { position: relative; padding-left: .9rem; }
.session-option li::before { content: ""; position: absolute; left: 0; top: .58em; width: 4px; aspect-ratio: 1; border-radius: 50%; background: var(--sage); }
.session-option-action { display: flex; align-items: center; gap: 1.4rem; margin-top: 1.45rem; }
.session-option-action .button { min-height: 42px; padding: .75rem 1.15rem; font-size: .6rem; }
.session-process { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: clamp(4rem, 10vw, 10rem); background: var(--pale-sage); }
.session-process-copy > p:last-child { max-width: 620px; margin-top: 2rem; color: #5f6863; font-size: 1.05rem; }
.session-process-copy .text-link { display: inline-flex; margin-top: 1.5rem; }
.session-steps { margin: 0; padding: 0; border-top: 1px solid rgba(41,50,47,.22); }
.session-steps article { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 1.15rem; padding: 1.6rem 0; border-bottom: 1px solid rgba(41,50,47,.22); }
.session-step-icon { align-self: start; width: 8px; height: 8px; margin-top: .75rem; border-radius: 50%; background: var(--sage); }
.session-steps h3 { margin: 0 0 .35rem; font: 400 1.8rem var(--serif); }
.session-steps p { margin: 0; color: #626b66; }
.session-faq { background: var(--cream); border-top: 1px solid var(--line); }
.offerings { border-bottom: 1px solid var(--line); }
.events.events-is-empty { padding-block: clamp(3rem, 5vw, 5rem); }
.events-is-empty .section-heading { margin-bottom: 1.5rem; }
.events-is-empty .events-empty { max-width: none; padding: 1.5rem 2rem; background: transparent; border: 0; }
.events-is-empty .events-empty .eyebrow { display: none; }
.events-is-empty .events-empty h3 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.events-is-empty .events-empty > p:not(.eyebrow) { margin-block: .75rem 1.25rem; }
.session-faq-list { border-top: 1px solid var(--line); }
.session-faq-list details { padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.session-faq-list summary { cursor: pointer; font: 400 clamp(1.3rem, 2vw, 1.7rem)/1.3 var(--serif); }
.session-faq-list p { max-width: 780px; margin: 1rem 0 0; color: #626b66; }
.session-faq-list a { color: var(--forest); text-underline-offset: .2em; }
.contact-form-status { padding: 1rem; border-radius: 12px; color: var(--ink); background: var(--mist); font-size: .9rem; }
#newsletter { scroll-margin-top: 100px; }
:where(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid #987a50; outline-offset: 4px; }
.footer-top > *, .footer-bottom > *, .section-heading > *, .page-section-heading > * { min-width: 0; }
@media (max-width: 420px) {
  .button { white-space: normal; text-align: center; }
  .hero-actions > a, .session-option-action > a { max-width: 100%; }
  .brand strong { font-size: 1.2rem; }
  .newsletter-form input { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.session-booking, .stories-next-step { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(4rem, 10vw, 10rem); align-items: end; color: white; background: var(--deep); }
.session-booking p, .stories-next-step p { max-width: 620px; color: rgba(255,255,255,.7); }
.session-booking .eyebrow, .stories-next-step .eyebrow { color: rgba(255,255,255,.75); }
.session-booking-actions { display: flex; flex-wrap: wrap; gap: 1.3rem; align-items: center; }
.session-booking .text-link, .stories-next-step .text-link { color: white; }

.stories-page-hero { display: flex; flex-direction: column; justify-content: end; color: white; background: linear-gradient(110deg, rgba(27,52,45,.88), rgba(43,74,63,.52)), url("images/stories-hero-ocean-v2.webp") center 48% / cover; }
.stories-page-hero .eyebrow { color: rgba(255,255,255,.78); }
.stories-page-hero h1 em { color: #d8e5dc; }
.stories-page-hero > p:last-child { color: rgba(255,255,255,.76); }
.story-library { background: var(--paper); }
.story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.2rem, 2.5vw, 2.5rem); }
.story-library-card { min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; padding: 0; color: var(--ink); text-align: left; border: 0; background: transparent; cursor: pointer; }
.story-library-image { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 20px; background: #cad4cc; }
.story-library-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s, filter .5s; }
.story-library-image i { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 58px; aspect-ratio: 1; color: white; font-style: normal; border-radius: 50%; background: rgba(36,58,51,.68); box-shadow: 0 12px 30px rgba(20,40,33,.22); transform: translate(-50%,-50%); transition: transform .3s, background .3s; }
.story-library-card:hover img { transform: scale(1.035); filter: brightness(.88); }
.story-library-card:hover .story-library-image i { background: var(--forest); transform: translate(-50%,-50%) scale(1.06); }
.story-library-copy { display: flex; flex-direction: column; gap: .8rem; padding: 1.2rem .25rem 2rem; }
.story-library-copy strong { font: 400 clamp(1.35rem, 2vw, 1.9rem)/1.2 var(--serif); }
.story-library-copy small { color: var(--forest); font-size: .65rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.stories-youtube { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.stories-youtube p { color: #626b66; }
.stories-next-step > div:last-child { align-self: end; }

@media (max-width: 1020px) {
  .sessions-page-hero { grid-template-columns: 1fr; gap: 3rem; }
  .sessions-hero-note { max-width: 620px; }
  .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .sessions-page-hero, .stories-page-hero { min-height: 570px; padding-top: 9rem; }
  .sessions-page-hero h1, .stories-page-hero h1 { font-size: clamp(3.6rem, 16vw, 5rem); }
  .page-section-heading, .session-process, .session-booking, .stories-next-step { grid-template-columns: 1fr; gap: 2rem; }
  .session-option { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.2rem 0; }
  .session-option figure { height: 230px; }
  .session-option-action { align-items: flex-start; flex-direction: column; }
  .story-grid { grid-template-columns: 1fr; }
  .stories-youtube { align-items: flex-start; flex-direction: column; }
}

/* Shared Acuity booking window */
.booking-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; overflow: hidden; overscroll-behavior: none; padding: clamp(.75rem, 2vw, 2rem); background: rgba(24,42,36,.72); backdrop-filter: blur(8px); }
.booking-modal[hidden] { display: none; }
.booking-dialog { position: relative; width: min(1120px, 100%); height: min(920px, calc(100vh - clamp(1.5rem, 4vw, 4rem))); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border-radius: 26px; background: #fbfaf6; box-shadow: 0 28px 90px rgba(16,32,27,.35); }
.booking-bar { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1rem 1.25rem 1rem 1.6rem; border-bottom: 1px solid var(--line); }
.booking-bar > div:first-child { display: flex; align-items: baseline; gap: 1rem; }
.booking-bar span { color: var(--forest); font-size: .61rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.booking-bar h2 { margin: 0; font: 400 1.65rem var(--serif); }
.booking-bar-actions { display: flex; align-items: center; gap: 1rem; }
.booking-bar-actions a { color: var(--ink); font-size: .67rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-underline-offset: .25rem; }
.booking-close { display: grid; place-items: center; width: 42px; aspect-ratio: 1; padding: 0; color: white; border: 0; border-radius: 50%; background: var(--forest); font: 300 1.7rem/1 sans-serif; cursor: pointer; }
.booking-close-confirm { position: absolute; z-index: 4; inset: 0; display: grid; place-items: center; padding: 1.5rem; background: rgba(24,42,36,.78); backdrop-filter: blur(7px); }
.booking-close-confirm[hidden] { display: none; }
.booking-confirm-card { width: min(500px, 100%); padding: clamp(2rem, 5vw, 3.5rem); text-align: center; border-radius: 24px; background: #fbfaf6; box-shadow: 0 24px 70px rgba(10,24,19,.36); }
.booking-confirm-card > span { color: var(--forest); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.booking-confirm-card h3 { margin: .9rem 0 .65rem; font: 400 clamp(2.2rem, 4vw, 3.5rem)/.98 var(--serif); }
.booking-confirm-card p { margin: 0; color: #666e69; }
.booking-confirm-card > div { display: flex; justify-content: center; gap: .75rem; margin-top: 2rem; }
.booking-confirm-card .button { min-height: 42px; padding: .75rem 1.2rem; font-size: .6rem; }
.booking-frame-shell { position: relative; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; background: white; }
.booking-frame { display: block; width: 100%; height: 800px; min-height: 100%; border: 0; overflow: hidden; background: white; }
.booking-loading { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; justify-items: center; gap: 1rem; color: var(--forest); background: #fbfaf6; opacity: 1; pointer-events: auto; transition: opacity .2s ease, visibility .2s ease; }
.booking-loading.is-hidden { visibility: hidden; opacity: 0; pointer-events: none; }
.booking-loading span { width: 34px; height: 34px; border: 2px solid rgba(64,92,80,.2); border-top-color: var(--forest); border-radius: 50%; animation: booking-spin .75s linear infinite; }
.booking-loading p { margin: 0; font-size: .72rem; font-weight: 600; letter-spacing: .06em; }
@keyframes booking-spin { to { transform: rotate(360deg); } }

@media (max-width: 700px) {
  .booking-modal { padding: 0; }
  .booking-dialog { width: 100%; height: 100%; border-radius: 0; }
  .booking-bar { padding: .8rem 1rem; }
  .booking-bar > div:first-child { display: block; }
  .booking-bar span { display: none; }
  .booking-bar h2 { font-size: 1.35rem; }
  .booking-bar-actions a { max-width: 80px; font-size: .55rem; line-height: 1.2; }
  .booking-close-confirm { padding: 1rem; }
  .booking-confirm-card { padding: 2rem 1.25rem; border-radius: 20px; }
  .booking-confirm-card > div { width: 100%; }
  .booking-confirm-card .button { flex: 1; }
}

/* Dedicated news page */
.news-page-hero { position: relative; isolation: isolate; min-height: 520px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .45fr); gap: clamp(4rem, 10vw, 10rem); align-items: end; overflow: hidden; color: var(--ink); background: linear-gradient(122deg, #f7f3e9 0%, #eef2eb 60%, #dce7df 100%); }
.news-page-hero::before { content: ""; position: absolute; z-index: -1; width: min(62vw, 900px); height: 120%; right: -12%; top: -10%; background: radial-gradient(ellipse at center, rgba(255,255,255,.72) 0%, rgba(220,231,222,.34) 38%, transparent 72%); filter: blur(18px); }
.news-hero-copy h1 { max-width: 980px; margin: 0; font: 400 clamp(4.4rem, 7vw, 7.5rem)/.91 var(--serif); letter-spacing: -.052em; }
.news-hero-copy .eyebrow { color: var(--forest); }
.news-hero-copy h1 em { color: #987a50; font-weight: 300; }
.news-hero-copy > p:last-child { max-width: 680px; margin: 2rem 0 0; color: #59645e; font-size: 1.08rem; }
.news-hero-note { align-self: end; max-width: 360px; margin: 0 0 .6rem; padding-top: 1.5rem; border-top: 1px solid rgba(41,50,47,.24); color: #657069; }
.news-library { background: var(--paper); }
.news-library-heading { margin-bottom: clamp(3rem, 6vw, 5rem); }
.news-entry-list { border-top: 1px solid var(--line); }
.news-entry { display: grid; grid-template-columns: 118px minmax(0, 1fr) auto; gap: clamp(2rem, 5vw, 5rem); align-items: center; padding: clamp(2rem, 4vw, 3.5rem) 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.news-entry time { min-height: 118px; display: grid; place-items: center; align-content: center; border-radius: 18px; color: var(--forest); background: var(--mist); }
.news-entry time span, .news-entry time small { font-size: .62rem; font-weight: 600; letter-spacing: .11em; }
.news-entry time strong { font: 400 3.3rem/.92 var(--serif); }
.news-entry-copy { max-width: 850px; }
.news-entry-copy .eyebrow { margin-bottom: .65rem; color: var(--forest); }
.news-entry-copy h3 { margin: 0; font: 400 clamp(2rem, 3vw, 3.2rem)/1 var(--serif); }
.news-entry-copy > p:not(.eyebrow) { max-width: 680px; margin: 1rem 0 0; color: #626b66; }
.news-entry-copy > strong { display: none; }
.news-entry::after { content: "↗"; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: white; background: var(--forest); transition: transform .25s ease, background .25s ease; }
.news-entry:hover::after { transform: translate(3px, -3px); background: var(--deep); }
.news-connect { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, .75fr); gap: clamp(4rem, 10vw, 10rem); color: white; background: var(--deep); }
.news-connect-intro h2 { margin: 0; font: 400 clamp(3.4rem, 5.4vw, 5.8rem)/.96 var(--serif); letter-spacing: -.045em; }
.news-connect-intro > p:last-child { max-width: 670px; color: rgba(255,255,255,.68); }
.news-connect-links { border-top: 1px solid rgba(255,255,255,.22); }
.news-connect-links a { display: grid; grid-template-columns: 105px 1fr auto; gap: 1rem; align-items: center; padding: 1.4rem 0; border-bottom: 1px solid rgba(255,255,255,.22); color: white; text-decoration: none; }
.news-connect-links span { color: rgba(255,255,255,.57); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.news-connect-links strong { font: 400 clamp(1.1rem, 1.6vw, 1.45rem) var(--serif); }
.news-connect-links i { font-style: normal; transition: transform .25s ease; }
.news-connect-links a:hover i { transform: translate(3px, -3px); }
.newsletter-form { display: grid; grid-template-columns: minmax(120px, .7fr) minmax(190px, 1fr) auto; gap: .65rem; margin-top: 2rem; }
.newsletter-form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.newsletter-form input { min-width: 0; min-height: 48px; padding: .75rem 1rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: white; background: rgba(255,255,255,.08); font: inherit; font-size: .82rem; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.58); }
.newsletter-form input:focus { outline: 2px solid rgba(214,193,155,.78); outline-offset: 2px; }
.newsletter-form button { min-height: 48px; padding: .75rem 1.15rem; border: 0; border-radius: 999px; color: var(--deep); background: #d6c19b; cursor: pointer; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.newsletter-form button:hover { background: #e3d4b7; }
.homepage-newsletter { grid-template-columns: minmax(0, 1fr); }
.homepage-newsletter input { font-size: 1rem; }
.connect-panel .newsletter-note { font-size: .85rem; line-height: 1.5; }
.newsletter-form .newsletter-honeypot { position: absolute; left: -5000px; }
.newsletter-note { margin: .75rem 0 0; color: rgba(255,255,255,.52); font-size: .7rem; }

@media (max-width: 900px) {
  .news-page-hero, .news-connect { grid-template-columns: 1fr; gap: 3rem; }
  .news-page-hero { min-height: 510px; }
  .news-hero-note { max-width: 620px; }
}

@media (max-width: 760px) {
  .news-page-hero { min-height: 500px; padding-top: 8.5rem; }
  .news-hero-copy h1 { font-size: clamp(3.5rem, 15vw, 5rem); }
  .news-page-hero::before { width: 120vw; right: -55%; top: -12%; }
  .news-entry { grid-template-columns: 82px minmax(0, 1fr); gap: 1.2rem; }
  .news-entry time { min-height: 92px; border-radius: 15px; }
  .news-entry time strong { font-size: 2.5rem; }
  .news-entry::after { display: none; }
  .news-entry-copy h3 { font-size: 1.75rem; }
  .news-entry-copy > p:not(.eyebrow) { font-size: .92rem; }
  .news-entry-copy > strong { display: inline-flex; margin-top: 1rem; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
  .news-connect-links a { grid-template-columns: 1fr auto; }
  .news-connect-links span { grid-column: 1 / -1; }
  .newsletter-form { grid-template-columns: 1fr; }
  .newsletter-form button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-card.calendar-card-arrival { animation: none; }
}

/* Center the line in the bar, but align its differently sized text by baseline. */
.hero { background-color: #dce8e8; border-bottom: 1px solid rgba(51,80,68,.18); }
.hero-background { background-color: #dce8e8; }
.announce-message { min-height: 44px; }
.announce-message a { min-height: 0; align-items: baseline; line-height: 1.25; }
.announce-message span, .announce-message strong { display: block; line-height: 1.25; }
@media (max-width: 700px) {
  .announce-message { min-height: 48px; }
}
