/* Practice pathway and service pages (Reiki first). Loaded after style.css, which supplies the tokens, header,
   buttons, closing section, footer and dialog. Sizes are set in comp units: 1u is one pixel of the approved
   1586px design, so the page keeps the design's proportions from 1280 to 1720 wide. */
:root { --u: calc(min(max(100vw, 1280px), 1720px) / 1586); --card-line: rgba(176,137,79,.46); }

.pathway-page { background: var(--ivory); }
.pathway-frame { width: calc(100% - 124 * var(--u)); max-width: 1600px; margin-inline: auto; }

/* The header sits on the page from the start: the ivory mist over the photograph, no scroll state needed to read. */
.pathway-page .site-header::before { inset: 0; background: linear-gradient(180deg, rgba(248,245,239,.9) 0%, rgba(248,245,239,.74) 60%, rgba(248,245,239,0) 100%); }

/* First view: copy on the left over the practice's own mineral ground, the session photograph on the right,
   dissolving into that ground. The whole band is the surface the homepage row unfolds into. */
.pathway-hero { position: relative; isolation: isolate; min-height: calc(527 * var(--u)); padding-top: calc(141 * var(--u)); }
.pathway-hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: var(--ivory) url("assets/reiki/ground-texture.webp") center / 1200px auto repeat; opacity: .55; }
.pathway-hero-media { position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: calc(886 * var(--u)); margin: 0; }
.pathway-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.35) 14%, #000 34%); mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.35) 14%, #000 34%); }
.pathway-hero-copy { width: calc(665 * var(--u)); }
.pathway-crumbs { display: flex; align-items: center; gap: calc(12 * var(--u)); color: var(--bronze); font-size: calc(16 * var(--u)); line-height: 1.3; font-weight: 600; letter-spacing: .01em; }
.pathway-crumbs a { color: var(--cocoa); text-decoration: underline; text-decoration-color: rgba(176,137,79,.5); text-underline-offset: 4px; transition: color .3s ease; }
.pathway-crumbs a:hover { color: var(--espresso); }
.pathway-crumbs span[aria-hidden] { color: rgba(124,95,51,.45); font-weight: 400; letter-spacing: 0; }
.pathway-hero h1 { margin: calc(7 * var(--u)) 0 0; color: #221b15; font: 400 calc(89 * var(--u))/.98 var(--display); letter-spacing: -.02em; }
.pathway-hero h1 em { display: block; color: var(--bronze); font-style: italic; white-space: nowrap; letter-spacing: -.035em; }
.pathway-intro { max-width: calc(665 * var(--u)); margin: calc(12 * var(--u)) 0 0; color: #5d5347; font-size: calc(21.5 * var(--u)); line-height: 1.5; }
.pathway-consult { display: inline-flex; align-items: center; gap: calc(10 * var(--u)); margin-top: calc(12 * var(--u)); padding: 0 0 calc(2 * var(--u)); border: 0; border-bottom: 1px solid rgba(124,95,51,.6); background: none; color: var(--cocoa); font-size: calc(18 * var(--u)); line-height: 1.3; transition: color .3s ease, border-color .3s ease; }
.pathway-consult:hover { color: var(--bronze); border-color: var(--gold); }
.pathway-consult:hover .arrow-icon { transform: translateX(4px); }

/* Offerings: each group is a label on a hairline over a row of framed photograph cards. The first row keeps the
   design's rhythm (one wide card, two narrow); later rows reuse the same three columns. */
.offerings { padding: calc(24 * var(--u)) 0 calc(120 * var(--u)); }
.offer-row { display: grid; grid-template-columns: 666fr 380fr 368fr; column-gap: calc(24.5 * var(--u)); row-gap: calc(14 * var(--u)); }
.offer-row + .offer-row { margin-top: calc(84 * var(--u)); }
.offer-group { display: grid; grid-template-rows: auto 1fr; row-gap: calc(12 * var(--u)); min-width: 0; }
.offer-group-wide { grid-column: span 2; }
.offer-group-cards { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; column-gap: calc(24.5 * var(--u)); }
.offer-group-wide .offer-group-cards { grid-template-columns: 380fr 368fr; }
.group-label { display: flex; align-items: center; gap: calc(21 * var(--u)); margin: 0; color: var(--bronze); font: 700 calc(14 * var(--u))/1.3 var(--body); letter-spacing: .2em; text-transform: uppercase; white-space: nowrap; }
.group-label::after { content: ""; flex: 1; height: 1px; background: rgba(124,95,51,.24); }
.group-note { color: #675c4d; font-weight: 600; letter-spacing: .14em; }

.offer-card { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--card-line); background: rgba(254,254,254,.55); transition: border-color .45s var(--ease), background-color .45s var(--ease); }
.offer-card:hover { border-color: var(--gold); background: var(--linen); }
.offer-photo { margin: 0; overflow: hidden; height: calc(249 * var(--u)); }
.offer-card-feature .offer-photo { position: relative; flex: 1 0 auto; height: auto; min-height: calc(214 * var(--u)); }
.offer-card-feature .offer-photo img { position: absolute; inset: 0; }
.offer-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.offer-card:hover .offer-photo img { transform: scale(1.03); }
.offer-body { flex: 1; display: flex; flex-direction: column; align-items: stretch; padding: calc(8 * var(--u)) calc(30 * var(--u)) calc(22 * var(--u)) calc(28 * var(--u)); }
.offer-card-feature .offer-body { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto auto 1fr; column-gap: calc(20 * var(--u)); padding: calc(7 * var(--u)) calc(33 * var(--u)) calc(22 * var(--u)) calc(32 * var(--u)); }
.offer-title { grid-column: 1 / -1; margin: 0; color: #231c16; font: 400 calc(25.5 * var(--u))/1.3 var(--display); letter-spacing: -.01em; transition: color .35s ease; }
.offer-card-feature .offer-title { grid-column: 1; font-size: calc(29 * var(--u)); }
.offer-title a, .offer-title button { padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; }
.offer-title a::after, .offer-title button::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.offer-title a:focus-visible, .offer-title button:focus-visible { outline: none; }
.offer-card:has(.offer-title :focus-visible) { outline: 2px solid var(--bronze); outline-offset: 4px; }
.offer-signature { grid-column: 1; margin: calc(-3 * var(--u)) 0 0; color: var(--bronze); font: italic 400 calc(21.5 * var(--u))/1.2 var(--display); }
.offer-details { grid-column: 1 / -1; margin: calc(4 * var(--u)) 0 0; color: #6f665b; font-size: calc(15.5 * var(--u)); line-height: 1.4; }
.offer-card-feature .offer-details { grid-column: 1; margin-top: calc(2 * var(--u)); font-size: calc(17 * var(--u)); }
.offer-price { margin: 0; color: #3f352b; font-size: calc(16 * var(--u)); line-height: 1.2; white-space: nowrap; }
.offer-price strong { color: var(--bronze); font: 400 calc(26 * var(--u))/1 var(--display); }
.offer-card-feature .offer-price { grid-column: 2; grid-row: 1 / span 2; align-self: start; margin-top: calc(10 * var(--u)); }
.offer-arrow { flex: 0 0 auto; margin-left: auto; width: calc(43 * var(--u)); height: calc(43 * var(--u)); display: grid; place-items: center; border: 1.5px solid rgba(124,95,51,.78); border-radius: 50%; color: var(--bronze); transition: color .3s ease, background .3s ease, transform .45s var(--ease); }
.offer-card:hover .offer-arrow { color: var(--linen); background: var(--bronze); transform: translateX(3px); }
.offer-book { position: relative; z-index: 2; grid-column: 1 / -1; justify-self: start; width: calc(251 * var(--u)); min-height: calc(47 * var(--u)); margin-top: calc(17 * var(--u)); font-size: calc(14 * var(--u)); }

.offer-foot { display: flex; align-items: center; gap: calc(16 * var(--u)); margin-top: auto; padding-top: calc(6 * var(--u)); }
.offer-card-feature .offer-foot { grid-column: 1 / -1; grid-row: 4; align-self: end; }
.offer-row-even { grid-template-columns: repeat(3, 1fr); }
.nav-services-link[aria-current="page"] { color: var(--bronze); }
.nav-services-link[aria-current="page"]::after { right: 0; opacity: .55; }

/* LSA note: a quiet ruled band between the services for people and the animal sessions, which carry no LSA line. */
.lsa-note { padding: 0 0 calc(120 * var(--u)); }
.lsa-note-inner { display: grid; grid-template-columns: 666fr 772fr; column-gap: calc(24.5 * var(--u)); align-items: start; padding: calc(64 * var(--u)) 0 calc(66 * var(--u)); border-block: 1px solid rgba(124,95,51,.24); }
.lsa-note h2 { margin: 0; max-width: calc(520 * var(--u)); color: #231c16; font: 400 calc(46 * var(--u))/1.1 var(--display); letter-spacing: -.015em; }
.lsa-note h2 em { color: var(--bronze); }
.lsa-note p { max-width: 640px; margin: calc(6 * var(--u)) 0 calc(30 * var(--u)); color: var(--cocoa); font-size: calc(18 * var(--u)); line-height: 1.7; }

/* Animal companions stand apart on the practice's sand ground with its mineral texture, three even cards. */
.animal-offerings { position: relative; isolation: isolate; padding-top: calc(110 * var(--u)); background: var(--sand); }
.animal-offerings::before { content: ""; position: absolute; z-index: -1; inset: 0; background: url("assets/professionals-texture.webp") right center / cover no-repeat; opacity: .5; -webkit-mask-image: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent); mask-image: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent); }
.animal-intro { display: grid; grid-template-columns: 1fr; row-gap: calc(18 * var(--u)); margin-bottom: calc(30 * var(--u)); }
.animal-intro p { max-width: 620px; margin: 0; color: var(--cocoa); font-size: calc(18 * var(--u)); line-height: 1.6; }
.animal-offerings .offer-card { background: rgba(254,254,254,.72); }

.pathway-page .placeholder { border-bottom: 0; color: var(--cocoa); }
.pathway-page .placeholder::after { content: none; }
.footer-reference { margin: 22px 0 0; color: #675c4d; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }

/* Service page: the card's photograph opens into a framed band, then the session reads on the left while the
   booking panel stays beside it. */
.service-hero { padding-top: calc(141 * var(--u)); }
.service-photo { margin: calc(26 * var(--u)) 0 0; height: calc(430 * var(--u)); overflow: hidden; border: 1px solid var(--card-line); }
.service-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.service-main { padding: calc(64 * var(--u)) 0 calc(110 * var(--u)); }
.service-layout { display: grid; grid-template-columns: minmax(0, 858fr) minmax(0, 520fr); column-gap: calc(86 * var(--u)); align-items: start; }
.service-copy h1 { margin: 0; color: #221b15; font: 400 calc(76 * var(--u))/1 var(--display); letter-spacing: -.02em; }
.service-signature { margin: calc(8 * var(--u)) 0 0; color: var(--bronze); font: italic 400 calc(30 * var(--u))/1.2 var(--display); }
.service-lead { max-width: 700px; margin: calc(30 * var(--u)) 0 0; color: #4f463b; font-size: calc(21 * var(--u)); line-height: 1.6; }
.service-facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; column-gap: calc(52 * var(--u)); margin: calc(36 * var(--u)) 0 0; padding: calc(22 * var(--u)) 0; border-block: 1px solid rgba(124,95,51,.24); }
.service-facts dt { color: var(--bronze); font: 700 calc(12.5 * var(--u))/1.3 var(--body); letter-spacing: .18em; text-transform: uppercase; }
.service-facts dd { margin: calc(8 * var(--u)) 0 0; color: #2f271f; font: 400 calc(22 * var(--u))/1.25 var(--display); }
.service-section { margin-top: calc(76 * var(--u)); }
.service-section h2 { margin: 0; color: #231c16; font: 400 calc(40 * var(--u))/1.15 var(--display); letter-spacing: -.012em; }
.service-section h2 em { color: var(--bronze); }
.service-section > p { max-width: 700px; margin: calc(20 * var(--u)) 0 0; color: var(--cocoa); font-size: calc(18 * var(--u)); line-height: 1.75; }
.service-steps { counter-reset: step; display: grid; gap: 0; margin: calc(28 * var(--u)) 0 0; padding: 0; list-style: none; }
.service-steps li { counter-increment: step; display: grid; grid-template-columns: calc(64 * var(--u)) minmax(0, 1fr); column-gap: calc(18 * var(--u)); padding: calc(24 * var(--u)) 0 calc(26 * var(--u)); border-top: 1px solid rgba(124,95,51,.2); }
.service-steps li:last-child { border-bottom: 1px solid rgba(124,95,51,.2); }
.service-steps li::before { content: counter(step); grid-row: 1 / span 2; color: var(--gold); font: italic 400 calc(34 * var(--u))/1 var(--display); }
.service-steps h3 { margin: 0; color: #231c16; font: 400 calc(25 * var(--u))/1.25 var(--display); }
.service-steps p { max-width: 640px; margin: calc(8 * var(--u)) 0 0; color: var(--cocoa); font-size: calc(17 * var(--u)); line-height: 1.65; }
.service-scope p { font-style: italic; }

.booking-panel { position: sticky; top: calc(var(--header-h-scrolled) + 28px); padding: calc(40 * var(--u)) calc(40 * var(--u)) calc(36 * var(--u)); border: 1px solid var(--card-line); background: var(--linen); scroll-margin-top: 110px; }
.booking-panel::before { content: ""; position: absolute; top: -1px; left: -1px; right: -1px; height: 2px; background: linear-gradient(90deg, rgba(158,143,203,.7), rgba(127,168,223,.7), rgba(111,194,174,.65), rgba(230,169,192,.6), var(--gold-light)); }
.booking-panel h2 { margin: 0; color: #231c16; font: 400 calc(32 * var(--u))/1.15 var(--display); }
.booking-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: calc(10 * var(--u)) calc(16 * var(--u)); margin: calc(18 * var(--u)) 0 0; padding-bottom: calc(24 * var(--u)); border-bottom: 1px solid rgba(124,95,51,.2); color: var(--taupe); font-size: calc(16 * var(--u)); }
.booking-price strong { color: var(--bronze); font: 400 calc(52 * var(--u))/1 var(--display); }
.booking-slot { margin-top: calc(26 * var(--u)); padding: calc(22 * var(--u)) calc(24 * var(--u)); border: 1px dashed rgba(176,137,79,.6); background: rgba(248,245,239,.7); }
.booking-slot-title { margin: 0; color: var(--bronze); font: 700 calc(12.5 * var(--u))/1.3 var(--body); letter-spacing: .18em; text-transform: uppercase; }
.booking-slot p:not(.booking-slot-title) { margin: calc(8 * var(--u)) 0 0; color: var(--cocoa); font-size: calc(16 * var(--u)); line-height: 1.6; }
.booking-cta { width: 100%; margin-top: calc(24 * var(--u)); min-height: calc(56 * var(--u)); font-size: calc(14 * var(--u)); }
.booking-notes { display: grid; gap: calc(10 * var(--u)); margin: calc(22 * var(--u)) 0 0; padding: 0; list-style: none; color: var(--taupe); font-size: calc(15 * var(--u)); line-height: 1.55; }
.booking-notes li { position: relative; padding-left: calc(18 * var(--u)); }
.booking-notes li::before { content: ""; position: absolute; left: 0; top: .72em; width: 6px; height: 1px; background: var(--gold); }
.booking-consult { margin-top: calc(26 * var(--u)); font-size: calc(16 * var(--u)); }

.service-more { padding-top: 0; }
.service-more .group-label { margin-bottom: calc(18 * var(--u)); }
.service-back { margin-top: calc(48 * var(--u)); }
.offer-price strong, .booking-price strong, .service-facts dd { font-variant-numeric: lining-nums; }

/* Arriving by opening (transitions.js): after a breath of ivory, the photograph comes into focus, the headline
   is written in from the left, and the rest rises after it in reading order. Nothing zooms. The stages start once
   the page is released from its hold, less any ivory already held (--vt-lag). */
.vt-open:not(.vt-hold) .pathway-hero-media, .vt-open:not(.vt-hold) .service-photo img { animation: kh-focus 1.5s var(--ease-settle) calc(.7s - var(--vt-lag, 0ms)) backwards; }
.vt-open:not(.vt-hold) .pathway-hero h1, .vt-open:not(.vt-hold) .service-copy h1 { -webkit-mask-image: linear-gradient(90deg, #000 55%, transparent 70%); mask-image: linear-gradient(90deg, #000 55%, transparent 70%); -webkit-mask-size: 400% 100%; mask-size: 400% 100%; animation: kh-write 1.3s var(--ease-silk) calc(.9s - var(--vt-lag, 0ms)) both; }
.vt-open:not(.vt-hold) .pathway-crumbs { animation: kh-emerge 1s var(--ease-settle) calc(.95s - var(--vt-lag, 0ms)) backwards; }
.vt-open:not(.vt-hold) .pathway-intro, .vt-open:not(.vt-hold) .service-copy > :not(h1) { animation: kh-emerge 1.1s var(--ease-settle) calc(1.1s - var(--vt-lag, 0ms)) backwards; }
.vt-open:not(.vt-hold) .pathway-consult { animation: kh-emerge 1.1s var(--ease-settle) calc(1.2s - var(--vt-lag, 0ms)) backwards; }
.vt-open:not(.vt-hold) .booking-panel { animation: kh-emerge 1.1s var(--ease-settle) calc(1.25s - var(--vt-lag, 0ms)) backwards; }
.vt-open:not(.vt-hold) .pathway-hero + .offerings .offer-row:first-child :is(.group-label, .offer-card) { animation: kh-emerge 1s var(--ease-settle) calc(1.2s + var(--i, 0) * 80ms - var(--vt-lag, 0ms)) backwards; }

/* Opening a service from its card: the chosen card answers while the others step back. */
.offer-card.is-opening { border-color: var(--gold); background: var(--linen); }
.offer-card.is-opening .offer-title { color: var(--bronze); }
.offer-card.is-opening .offer-photo img { transform: scale(1.03); }
.offerings .offer-card { transition: border-color .45s var(--ease), background-color .45s var(--ease), opacity .45s var(--ease-settle); }
.offerings:has(.is-opening) .offer-card:not(.is-opening) { opacity: .4; }

/* Further down, each block arrives once as it scrolls into view (pathway.js): the label draws its rule, the
   cards rise one after another and their photographs settle. Blocks already on screen are left alone. */
.is-pending .reveal-item, .reveal-item.is-pending { opacity: 0; }
.is-revealed .reveal-item, .reveal-item.is-revealed { animation: kh-emerge 1.1s var(--ease-settle) calc(var(--i, 0) * 90ms) backwards; }
.is-revealed .offer-photo img { animation: kh-unveil 1.7s var(--ease-settle) calc(var(--i, 0) * 90ms) backwards; }
.is-revealed .group-label::after, .group-label.is-revealed::after { transform-origin: left; animation: kh-draw 1.4s var(--ease-silk) calc(var(--i, 0) * 90ms + 100ms) backwards; }
@keyframes kh-unveil { from { scale: 1.07; } }
@keyframes kh-draw { from { transform: scaleX(0); } }

/* A program or retreat reads as one full-width offer: the photograph holds the left, and the offer reads out on
   the right with what it includes. */
.offer-row-single { grid-template-columns: 1fr; }
.offer-card-program { display: grid; grid-template-columns: minmax(0, 666fr) minmax(0, 772fr); }
.offer-card-program .offer-photo { position: relative; height: auto; min-height: calc(400 * var(--u)); }
.offer-card-program .offer-photo img { position: absolute; inset: 0; }
.offer-card-program .offer-body { grid-template-rows: none; align-content: start; padding: calc(40 * var(--u)) calc(48 * var(--u)) calc(42 * var(--u)); }
.offer-card-program .offer-title { font-size: calc(36 * var(--u)); line-height: 1.15; }
.offer-card-program .offer-signature { margin-top: calc(4 * var(--u)); font-size: calc(24 * var(--u)); }
.offer-card-program .offer-details { margin-top: calc(10 * var(--u)); }
.offer-card-program .offer-price { margin-top: calc(6 * var(--u)); }
.offer-summary { grid-column: 1 / -1; max-width: calc(600 * var(--u)); margin: calc(20 * var(--u)) 0 0; color: var(--cocoa); font-size: calc(17.5 * var(--u)); line-height: 1.65; }
.offer-includes { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--u)) calc(32 * var(--u)); margin: calc(24 * var(--u)) 0 0; padding: calc(24 * var(--u)) 0 0; border-top: 1px solid rgba(124,95,51,.2); list-style: none; color: #4f463b; font-size: calc(15.5 * var(--u)); line-height: 1.45; }
.offer-includes li { position: relative; padding-left: calc(18 * var(--u)); }
.offer-includes li::before { content: ""; position: absolute; left: 0; top: .72em; width: 6px; height: 1px; background: var(--gold); }
.offer-card-program .offer-foot { grid-row: auto; margin-top: calc(22 * var(--u)); padding-top: 0; }
.offer-card-program .offer-book { width: auto; padding-inline: calc(30 * var(--u)); margin-top: calc(30 * var(--u)); }

/* Where a pathway needs a clear boundary (grief support is coaching, not therapy), it is said plainly under the
   offers, set apart by a single gold rule. */
.pathway-scope { max-width: calc(860 * var(--u)); margin: calc(64 * var(--u)) 0 0; padding-left: calc(24 * var(--u)); border-left: 1px solid var(--gold); color: var(--cocoa); font: italic 400 calc(19.5 * var(--u))/1.6 var(--display); }
.pathway-hero h1.pathway-title-long { font-size: calc(70 * var(--u)); }

/* Narrow screens: a straightforward single column until the site-wide mobile pass designs this properly. */
@media (max-width: 1100px) {
  .offer-row, .offer-row-even { grid-template-columns: 1fr 1fr; row-gap: 48px; }
  .offer-group-wide { grid-column: 1 / -1; }
  .offer-row > .offer-group:first-child:not(.offer-group-wide) { grid-column: 1 / -1; }
  .service-layout { grid-template-columns: 1fr; row-gap: 56px; }
  .booking-panel { position: relative; top: 0; max-width: 560px; }
}
@media (max-width: 760px) {
  :root { --u: .72px; }
  .pathway-frame { width: calc(100% - 40px); }
  .pathway-hero { min-height: 0; padding: 112px 0 0; }
  .pathway-hero-media { position: relative; width: 100%; height: 300px; margin-top: 32px; }
  .pathway-hero-media img { -webkit-mask-image: none; mask-image: none; }
  .pathway-hero-copy { width: 100%; }
  .pathway-hero h1 { font-size: 52px; }
  .pathway-hero h1 em { white-space: normal; }
  .pathway-intro, .service-lead { font-size: 17px; }
  .pathway-consult { font-size: 16px; }
  .pathway-crumbs { font-size: 14px; }
  .group-label { font-size: 12px; }
  .offerings { padding-top: 40px; }
  .offer-row, .offer-row-even, .offer-group-wide .offer-group-cards, .offer-group-cards { grid-template-columns: 1fr; grid-auto-flow: row; row-gap: 24px; }
  .offer-row + .offer-row { margin-top: 48px; }
  .offer-photo, .offer-card-feature .offer-photo { height: 220px; min-height: 0; flex: none; }
  .offer-title, .offer-card-feature .offer-title { font-size: 24px; }
  .offer-signature { font-size: 19px; }
  .offer-details, .offer-card-feature .offer-details, .offer-price { font-size: 14px; }
  .offer-price strong { font-size: 24px; }
  .offer-book { width: 100%; min-height: 50px; font-size: 13px; }
  .offer-arrow { width: 40px; height: 40px; }
  .lsa-note-inner { grid-template-columns: 1fr; row-gap: 20px; }
  .lsa-note h2 { font-size: 34px; }
  .lsa-note p, .animal-intro p, .service-section > p { font-size: 16px; }
  .service-hero { padding-top: 112px; }
  .service-photo { height: 260px; }
  .service-copy h1 { font-size: 46px; }
  .service-signature { font-size: 24px; }
  .service-facts { grid-template-columns: 1fr; row-gap: 16px; }
  .service-facts dd { font-size: 20px; }
  .service-section h2 { font-size: 32px; }
  .service-steps li { grid-template-columns: 40px 1fr; }
  .service-steps h3 { font-size: 22px; }
  .service-steps p, .booking-slot p:not(.booking-slot-title), .booking-notes { font-size: 15px; }
  .booking-panel { padding: 28px 22px; }
  .booking-panel h2 { font-size: 28px; }
  .booking-price strong { font-size: 44px; }
  .offer-card-program { grid-template-columns: 1fr; }
  .offer-card-program .offer-photo { height: 240px; min-height: 0; }
  .offer-card-program .offer-body { padding: 24px 22px 28px; }
  .offer-card-program .offer-title { font-size: 28px; }
  .offer-includes { grid-template-columns: 1fr; font-size: 14px; }
  .offer-summary, .pathway-scope { font-size: 16px; }
  .pathway-hero h1.pathway-title-long { font-size: 44px; }
}
@media (max-width: 760px) {
  .pathway-hero { display: flex; flex-direction: column; }
  .pathway-hero-media { order: 2; }
}

.offer-arrow .arrow-icon::before { height: 1.8px; }
.offer-arrow .arrow-icon::after { border-top-width: 1.8px; border-right-width: 1.8px; }

/* The closing invitation returns to the hero's mineral ground, so the page ends on its own material. */
.pathway-page .closing-section { padding: 124px 0 132px; }
.pathway-page .closing-section::after { display: none; }
.pathway-page .closing-light { opacity: .7; }
.pathway-page .closing-section { background: linear-gradient(90deg, rgba(248,245,239,.72), rgba(248,245,239,.5) 50%, rgba(248,245,239,.72)), var(--ivory) url("assets/professionals-texture.webp") center / cover no-repeat; -webkit-backdrop-filter: none; backdrop-filter: none; }
