.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.hero-resources { font-size: 14px; }
.hero-lede { width: min(40vw, 520px); }
.hero-lede p { max-width: 430px; }
.video-control { min-width: 44px; border: 0; font-size: 11px; padding: 8px; }
.hero h1 { font-size: clamp(34px, 3.5vw, 50px); }
.motion-word-clip { display: inline-block; overflow: hidden; vertical-align: -.22em; padding-bottom: .22em; margin-bottom: -.22em; }
.motion-word { display: inline-block; will-change: transform; }
[data-text-motion] .eyebrow,
[data-text-motion] .hero-actions,
[data-text-motion] .assessment-actions,
[data-text-motion] .work-note,
[data-text-motion] .service-row { will-change: transform, opacity; }
.assessment-section { display: grid; grid-template-columns: 1.4fr 1fr; gap: 6vw; align-items: center; }
.assessment-section .section-intro { margin-bottom: 0; }
.assessment-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.assessment-actions a { font-size: 16px; }
.availability { color: var(--muted); font-size: 13px; }
.assessment-button { background: #30322e; color: var(--paper); border: 1px solid #66685e; }
.assessment-button::after { content: none; }
.focus-section { background: var(--deep); }
.focus-number { display: block; color: #ef806b; margin-bottom: 24px; font-size: 14px; }
.services-resource { max-width: 1120px; margin: 0 auto 32px; font-size: 16px; }
.anchor-alias { display: block; position: relative; scroll-margin-top: 100px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.refresh-contact { border-top: 1px solid var(--rule); align-items: center; }
.refresh-contact .contact-copy h2 { font-size: clamp(56px, 8vw, 112px); }
.refresh-contact .contact-booking { color: var(--muted); font-size: 14px; }
[data-moments] { position: relative; background: var(--night); }
[data-moments] .life-layout { display: grid; grid-template-columns: 1fr; place-items: center; max-width: 1240px; min-height: 560px; margin: 0 auto; text-align: center; }
[data-moments] .life-layout > * { grid-area: 1 / 1; }
[data-moments] .life-list { width: min(100%, 900px); padding: 0; }
[data-moments] .life-list li { justify-content: center; color: var(--paper); min-height: auto; padding: 20px 0; }
.moments-enhanced { min-height: min(760px, 86svh); }
.moments-enhanced .moments-stage { min-height: min(760px, 86svh); display: flex; align-items: center; }
.moments-enhanced .life-layout { width: 100%; min-height: clamp(420px, 58svh, 570px); }
.moments-enhanced .life-list { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 767px) {
 .assessment-section { grid-template-columns: 1fr; gap: 32px; }
 .hero-lede { width: calc(100% - 2 * var(--gutter)); }
 .hero h1 { font-size: clamp(28px, 7.6vw, 36px); }
 .hero-lede p { max-width: 340px; font-size: 14px; line-height: 1.4; margin: 12px 0 16px; }
 .hero-actions { gap: 10px; }
 .hero-resources { font-size: 13px; }
 [data-moments] .life-layout { min-height: 500px; }
 .moments-enhanced { min-height: min(600px, 75svh); }
 .moments-enhanced .moments-stage { min-height: min(600px, 75svh); }
 .moments-enhanced .life-layout { min-height: 430px; }
 .moments-enhanced .moment-visual { --moment-roller-height: 180px; min-height: var(--moment-roller-height); font-size: clamp(36px, 10vw, 56px); }
 .moments-enhanced .moment-conversation { width: 100%; gap: 24px; }
 .moment-callout { max-width: 88vw; border-width: 2px; border-radius: 16px; padding: 18px 22px; font-size: clamp(26px, 8.7vw, 42px); box-shadow: 6px 7px 0 rgba(0,0,0,.28); }
 .moment-callout::after { bottom: -15px; width: 26px; height: 26px; border-width: 0 2px 2px 0; }
 .moment-callout-question { justify-self: start; }
 .moment-callout-answer { justify-self: end; }
 .refresh-contact { gap: 30px; }
}
@media (max-height: 650px) {
 .hero { min-height: 740px; }
}
@media (prefers-reduced-motion: reduce) {
 .motion-word-clip, .motion-word { display: inline; overflow: visible; padding: 0; margin: 0; }
 [data-moments] .life-layout { min-height: auto; }
 [data-moments] .life-list { display: grid; gap: 10px; }
 [data-moments] .life-list li { padding: 10px 0; color: #ef806b; }
}

/* availability flag on the one to one session */
.service-flag {
    display: inline-block;
    margin-right: 10px;
    padding: 4px 10px;
    border: 1px solid rgba(213, 72, 50, .45);
    border-radius: 40px;
    color: #C23F2A;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-size: 11px;
}

/* centred hero: the actions line up under the copy */
.hero-lede .hero-actions { justify-content: center; }
.hero-lede { width: min(760px, calc(100% - 40px)); }
@media (max-width: 760px) {
    .hero-lede { top: clamp(92px, 15vh, 140px); }
    .hero-lede p { font-size: 16px; }
}

/* ---- moments: the phrases flood in, then the call and response ---- */
.moments-enhanced .life-list { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.moments-enhanced .life-layout { display: grid; place-items: center; width: 100%; min-height: clamp(460px, 62svh, 620px); }
.moments-enhanced .life-layout > * { grid-area: 1 / 1; }

.moment-flood { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
    gap: clamp(10px, 1.6vw, 26px) clamp(16px, 2.4vw, 38px); width: min(100%, 1120px);
    text-align: center; transition: opacity .7s ease, filter .7s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.moment-word { display: inline-block; color: var(--paper); opacity: 0;
    font: 500 clamp(22px, 3.1vw, 46px)/1.1 var(--body); letter-spacing: -.045em;
    transform: translateY(26px) scale(.96); filter: blur(10px); }
.moment-word:nth-child(3n+2) { color: #ef806b; }
.moment-word:nth-child(4n+3) { font-size: clamp(19px, 2.5vw, 37px); opacity: 0; }
.is-flooded .moment-word { animation: moment-rush .62s cubic-bezier(.2,.9,.3,1) forwards;
    animation-delay: calc(var(--i) * 90ms); }
@keyframes moment-rush {
    from { opacity: 0; transform: translateY(26px) scale(.96); filter: blur(10px); }
    to   { opacity: .82; transform: none; filter: blur(0); }
}
.is-asking .moment-flood { opacity: .09; filter: blur(7px); transform: scale(.94); }

.moment-call { position: relative; display: grid; justify-items: center; gap: clamp(10px, 1.7vw, 24px);
    width: min(100%, 980px); pointer-events: none; }
/* a soft pool of dark so the answer never fights the phrases behind it */
.moment-call::before { content: ""; position: absolute; inset: -14% -8%; z-index: -1; opacity: 0;
    background: radial-gradient(60% 60% at 50% 50%, rgba(18,19,18,.92), rgba(18,19,18,0) 72%);
    transition: opacity .6s ease; }
.is-asking .moment-call::before { opacity: 1; }
.moment-ask, .moment-answer { margin: 0; font: 600 clamp(30px, 5.4vw, 78px)/1.06 var(--body);
    letter-spacing: -.055em; white-space: nowrap; }
.moment-ask { color: #ef806b; }
.moment-answer { color: var(--paper); position: relative; }
.moment-answer::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.16em; height: 3px;
    background: #ef806b; border-radius: 3px; }
.moment-letter { display: inline-block; opacity: 0; transform: translateY(.5em) rotate(4deg); }
.is-asking .moment-ask .moment-letter { animation: moment-letter-up .5s cubic-bezier(.2,.9,.3,1) forwards;
    animation-delay: calc(var(--l) * 34ms); }
.is-answered .moment-answer .moment-letter { animation: moment-letter-up .46s cubic-bezier(.2,.9,.3,1) forwards;
    animation-delay: calc(var(--l) * 28ms); }
.is-answered .moment-answer::after { animation: moment-underline .7s .32s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes moment-letter-up {
    from { opacity: 0; transform: translateY(.5em) rotate(4deg); }
    to   { opacity: 1; transform: none; }
}
@keyframes moment-underline { to { right: 0; } }

@media (max-width: 760px) {
    .moment-ask, .moment-answer { white-space: normal; text-align: center; }
    .moment-flood { gap: 8px 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .moment-word, .moment-letter { opacity: 1; transform: none; filter: none; animation: none; }
    .is-asking .moment-flood { opacity: .3; filter: none; transform: none; }
    .moment-answer::after { right: 0; }
}
