/* /: the chakra journey. One continuous scroll-driven passage in a dark temple atmosphere, root to crown: a stage that stays
   in view (the live WebGL scene on every device, or the image sequence for reduced motion), a spine of seven nodes at the side, and eight beats of real text that fade in and
   out over it. No boxes, no edges between beats. Tokens only: the journey always wears Temple Dark (the .ds-theme-dark scope), and each
   centre's colour arrives as --ck from the markup. Behaviour: assets/js/journey.js (sets --o per beat, --lit per node, --fill, .is-on). */
:root { --jny-outer: var(--ds-surface); }   /* the page's own surface, resolved outside the dark scope, for the seam at the end */
.jny-world { position: relative; background: var(--ds-surface-sunken); color: var(--ds-text); font-family: var(--ds-font-ui); overflow-x: clip; }
.jny { position: relative; isolation: isolate; background: var(--ds-surface-sunken); color: var(--ds-text); font-family: var(--ds-font-ui);
  --jny-pad: max(var(--ds-gutter, 1rem), calc((100% - 72rem) / 2)); --jny-spine-w: 3.5rem; }
/* the journey starts at the top of the screen, behind the translucent header, not below it: the stage poster (and the scene) then fills the first screen exactly,
   as it does once the page has scrolled and the stage is pinned (the padding keeps the opening where it was; the stage was a sticky layer that sat 65px low only until the first scroll) */
.jny { margin-block-start: calc(-1 * var(--ds-header-h) - 2px); padding-block-start: calc(var(--ds-header-h) + 2px); }
.jny ::selection { background: color-mix(in srgb, var(--ds-accent) 40%, transparent); }

/* the two layers that stay in view while the beats scroll over them: sticky, then pulled back out of the flow */
.jny-layer { position: sticky; inset-block-start: 0; block-size: 100vh; block-size: 100svh; pointer-events: none; }
.jny-pin { position: absolute; inset: 0; pointer-events: none; }
.jny-layer--stage { z-index: 0; }
.jny-layer--spine { z-index: 3; }
.jny-stage { position: absolute; inset: 0; overflow: hidden; background: var(--ds-surface-sunken); transition: opacity var(--ds-dur-slow) linear; }
.jny-seq, .jny-canvas { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; }
.jny-seq img, img.jny-seq { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: 50% 50%; }
.jny-seq--b { opacity: 0; }
.jny-canvas { display: block; }
.jny-canvas[hidden], .jny-seq[hidden] { display: none; }
/* keeps the words readable over the light: a soft shade on the text side (the figure sits on the other), and under the words on phones */
.jny-shade { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, color-mix(in srgb, var(--ds-surface-sunken) 80%, transparent) 0%, color-mix(in srgb, var(--ds-surface-sunken) 38%, transparent) 38%, transparent 62%),
    linear-gradient(0deg, color-mix(in srgb, var(--ds-surface-sunken) 70%, transparent), transparent 34%); }

/* ---------------------------------------------------------------- the opening */
/* the words start just under the header (the journey already clears it with its own top padding), not centred in the screen, so the first view holds the heading, the lede and the actions without the notes below being cut off */
.jny-open { position: relative; z-index: 2; display: flex; align-items: flex-start; min-block-size: 100vh; min-block-size: 100svh; box-sizing: border-box;
  padding: clamp(var(--ds-space-2), 2vh, var(--ds-space-5)) calc(var(--jny-spine-w) + var(--ds-space-3)) var(--ds-space-10) var(--ds-gutter, 1rem); }
.jny-open__text { display: flex; flex-direction: column; gap: var(--ds-space-5); max-inline-size: 36rem; margin-inline-start: max(0px, calc((100vw - 72rem) / 2 - var(--ds-gutter, 1rem))); }
.jny .jny-title { margin: 0; font-family: var(--ds-font-display); font-weight: 500; font-size: clamp(2.9rem, 2rem + 4.6vw, 6.4rem); line-height: .98; letter-spacing: -.012em; text-wrap: balance;
  text-shadow: 0 0 2.5rem color-mix(in srgb, var(--ds-action) 55%, transparent); }
.jny-lede { margin: 0; max-inline-size: 30rem; font-size: var(--ds-text-lg); line-height: var(--ds-leading-normal); color: var(--ds-text); }
.jny-open .story-actions { align-items: center; }
.jny-open .story-actions > .home-note { flex-basis: 100%; }
.jny-open .home-note, .jny-fine { margin: 0; max-inline-size: 30rem; font-size: var(--ds-text-sm); line-height: var(--ds-leading-normal); color: var(--ds-text-muted); }
.jny-open .home-note a { color: var(--ds-accent); }
.jny-open .story-trust { color: var(--ds-text-muted); }

/* ---------------------------------------------------------------- the beats: the caption stays put while the light changes */
.jny-beat { position: relative; z-index: 2; min-block-size: 125vh; min-block-size: 125svh; pointer-events: none; }
.jny-cap { position: sticky; inset-block-start: 0; block-size: 100vh; block-size: 100svh; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; gap: var(--ds-space-3);
  padding: var(--ds-header-h) calc(var(--jny-spine-w) + var(--ds-space-3)) 0 var(--ds-gutter, 1rem); pointer-events: none; }
.jny .jny-cap > * { pointer-events: auto; max-inline-size: 28rem; margin-block: 0; margin-inline-start: max(0px, calc((100vw - 72rem) / 2 - var(--ds-gutter, 1rem))); }
.jny .jny-centre { font-size: var(--ds-text-sm); color: var(--ds-text-muted); }
.jny-centre .ds-term__btn { color: color-mix(in srgb, var(--ck) 55%, var(--ds-text)); }
.jny .jny-h { margin-block: 0; font-family: var(--ds-font-display); font-weight: 500; font-size: clamp(2.6rem, 1.7rem + 4.2vw, 6rem); line-height: 1; letter-spacing: -.012em; text-wrap: balance; outline: none;
  text-shadow: 0 0 2.4rem color-mix(in srgb, var(--ck) 38%, transparent), 0 0 .6rem color-mix(in srgb, var(--ds-surface-sunken) 80%, transparent); }
.jny .jny-line { font-size: var(--ds-text-lg); line-height: var(--ds-leading-normal); color: var(--ds-text); max-inline-size: 24rem; }
.jny .jny-bg { font-size: var(--ds-text-md); line-height: var(--ds-leading-normal); color: var(--ds-text-muted); max-inline-size: 26rem; text-wrap: pretty; }
.jny .jny-bg a { color: var(--ds-accent); }
.jny .jny-actions { margin-block-start: var(--ds-space-3); }

/* scripted: each beat's words rise out of the dark and leave into it, scrubbed by the scroll (--o is set by journey.js) */
.jny.is-on .jny-open__text, .jny.is-on .jny-cap > * { opacity: var(--o, 0); transform: translate3d(0, calc((1 - var(--o, 0)) * 1.6rem), 0); }
.jny.is-on .jny-beat:not(.is-near) .jny-cap > *, .jny.is-on .jny-open:not(.is-near) .jny-open__text { visibility: hidden; }

/* ---------------------------------------------------------------- the spine */
.jny-spine { position: absolute; inset-inline-end: var(--ds-space-1); inset-block-start: 50%; transform: translateY(-46%); inline-size: var(--jny-spine-w); block-size: min(27rem, 66vh); block-size: min(27rem, 66svh); pointer-events: none; }
.jny-spine ol { list-style: none; margin: 0; padding: 0; block-size: 100%; display: flex; flex-direction: column-reverse; justify-content: space-between; align-items: center; position: relative; z-index: 1; }
.jny-spine li { display: flex; justify-content: center; pointer-events: auto; }
.jny-spine__line { position: absolute; inset-block: .9rem; inset-inline-start: 50%; inline-size: 2px; margin-inline-start: -1px; border-radius: var(--ds-radius-pill); background: var(--ds-border); overflow: hidden; }
.jny-spine__line i { position: absolute; inset-inline: 0; inset-block-end: 0; display: block; block-size: calc(var(--fill, 0) * 100%); border-radius: inherit;
  background: linear-gradient(0deg, var(--ds-accent), var(--ds-text)); box-shadow: 0 0 .8rem var(--ds-accent); }
.jny-node { position: relative; display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: 0; border: 0; background: transparent; color: var(--ds-text); cursor: pointer; font: inherit; -webkit-tap-highlight-color: transparent; }
.jny-node__dot { display: block; inline-size: .8rem; block-size: .8rem; border-radius: 50%; box-sizing: border-box; border: 1.5px solid var(--ds-text-muted); background: color-mix(in srgb, var(--ck) calc(var(--lit, 0) * 100%), var(--ds-surface-sunken));
  box-shadow: 0 0 calc(var(--lit, 0) * 1.1rem) calc(var(--lit, 0) * .2rem) color-mix(in srgb, var(--ck) 75%, transparent); transition: transform var(--ds-dur-base) var(--ds-ease-snappy); }
.jny-node[aria-current="step"] .jny-node__dot { transform: scale(1.5); border-color: var(--ds-text); }
.jny-node:hover .jny-node__dot { transform: scale(1.35); }
.jny-node:focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 2px; border-radius: var(--ds-radius-md); }
.jny-node__name { position: absolute; inset-inline-end: 100%; inset-block-start: 50%; transform: translateY(-50%); white-space: nowrap; padding-inline: var(--ds-space-2); font-size: var(--ds-text-sm); color: var(--ds-text);
  text-shadow: 0 0 .6rem var(--ds-surface-sunken); opacity: 0; pointer-events: none; transition: opacity var(--ds-dur-base) linear; }
.jny-node:hover .jny-node__name, .jny-node:focus-visible .jny-node__name, .jny-node[aria-current="step"] .jny-node__name { opacity: 1; }

/* ---------------------------------------------------------------- phones: a slimmer spine, the words low on the screen under the light */
@media (max-width: 47.99rem) {
  .jny { --jny-spine-w: 2.75rem; }
  .jny-spine { block-size: min(21rem, 54vh); block-size: min(21rem, 54svh); inset-inline-end: 0; }
  .jny-node__name { display: none; }
  .jny-node__dot { inline-size: .62rem; block-size: .62rem; }
  .jny-cap { justify-content: flex-end; padding-block-end: var(--ds-space-8); }
  .jny-open { align-items: flex-start; }
  .jny-open__text { gap: var(--ds-space-4); }
  .jny-shade { background: linear-gradient(0deg, color-mix(in srgb, var(--ds-surface-sunken) 88%, transparent) 0%, color-mix(in srgb, var(--ds-surface-sunken) 55%, transparent) 36%, transparent 62%); }
  .jny-open .jny-shade { display: none; }
}

/* ---------------------------------------------------------------- one entrance: the opening's words settle (not under reduced motion) */
@media (prefers-reduced-motion: no-preference) {
  .jny-title .story-word { display: inline-block; opacity: 0; transform: translateY(.5em); filter: blur(10px); animation: jny-word .9s var(--ds-ease-gentle) forwards; animation-delay: calc(.1s + var(--i, 0) * .08s); }
  @keyframes jny-word { to { opacity: 1; transform: none; filter: none; } }
  .jny-seq--a { animation: jny-rise 1.4s var(--ds-ease-gentle) both; }
  @keyframes jny-rise { from { opacity: 0; } to { opacity: 1; } }
}
@media (prefers-reduced-motion: reduce) {
  .jny-stage, .jny-node__dot, .jny-node__name { transition: none; }
  .jny.is-on .jny-open__text, .jny.is-on .jny-cap > * { transform: none; }
}
@media print { .jny-layer { display: none; } .jny.is-on .jny-open__text, .jny.is-on .jny-cap > * { opacity: 1; transform: none; visibility: visible; } }

/* ---------------------------------------------------------------- the journey flows on: questions, then one compact footer, all on the same black
   No band, no colour change and no boxes between "Complete." and the questions: the flow starts under the last caption (it overlaps the end of
   the journey by the half screen the caption leaves empty), and the stage releases with the journey. */
.jny-beat:last-of-type { min-block-size: 108vh; min-block-size: 108svh; }
.jny-flow { position: relative; z-index: 2; display: grid; gap: var(--ds-space-8); margin-block-start: calc(-1 * var(--jny-lap, calc(50svh - 19rem)));
  padding: 0 var(--ds-gutter, 1rem) var(--ds-space-6); }
.jny-sec { display: flex; flex-direction: column; gap: var(--ds-space-5); inline-size: 100%; max-inline-size: 62rem; margin-inline: auto; box-sizing: border-box; min-inline-size: 0; outline: none; }
.jny-world .jny-fh { margin: 0; font-family: var(--ds-font-display); font-weight: 500; font-size: clamp(2.2rem, 1.5rem + 3.2vw, 4.4rem); line-height: 1; letter-spacing: -.012em; text-wrap: balance;
  text-shadow: 0 0 2.2rem color-mix(in srgb, var(--ds-action) 50%, transparent); }
.jny-world .jny-fh--sm { font-size: var(--ds-text-3xl); }
.jny-cap .story-trust { color: var(--ds-text-muted); max-inline-size: 28rem; }
.jny-rows { list-style: none; margin: 0; padding: 0; display: grid; }
.jny-row { display: grid; gap: var(--ds-space-3) var(--ds-space-6); align-items: center; padding-block: var(--ds-space-5); border-block-start: 1px solid var(--ds-border); }
.jny-row:last-child { border-block-end: 1px solid var(--ds-border); }
.jny-row__when { margin: 0; font-family: var(--ds-font-display); font-size: var(--ds-text-2xl); line-height: 1.1; color: var(--ds-text); }
.jny-row__when span { display: block; font-size: var(--ds-text-md); color: var(--ds-accent); font-family: var(--ds-font-ui); }
.jny-row__title { margin: 0; font-family: var(--ds-font-display); font-weight: 500; font-size: var(--ds-text-xl); line-height: 1.15; }
.jny-row__line { margin: var(--ds-space-1) 0 0; max-inline-size: 42ch; font-size: var(--ds-text-md); line-height: var(--ds-leading-normal); color: var(--ds-text-muted); }
.jny-row__act { display: flex; flex-wrap: wrap; gap: var(--ds-space-2); }
.jny-sec .jny-fine { margin: 0; max-inline-size: 62ch; }
.jny-sec a.home-link, .jny-fine a { color: var(--ds-accent); }

/* the questions: compact rows, one centre each (crown at the top down to the root), in its own slow motion; an answer opens smoothly */
.jny-sec--faq { gap: 0; }
.jny-sec--faq > .jny-fh { margin-block-end: var(--ds-space-4); font-size: clamp(2rem, 1.4rem + 2.4vw, 3.4rem); }
.jny-faq, .jny-ask { display: block; border-block-start: 1px solid var(--ds-border); }
.jny-faq--more { display: flex; align-items: center; gap: var(--ds-space-3); border-block-end: 1px solid var(--ds-border); min-block-size: 3rem; padding-block: var(--ds-space-1); }
.jny-faq--more .jny-fine { margin: 0; }
.jny-faq summary { position: relative; display: flex; align-items: center; gap: var(--ds-space-3); min-block-size: 2.75rem; padding-block: var(--ds-space-1); padding-inline-end: var(--ds-space-8); cursor: pointer; list-style: none; color: var(--ds-text); }
.jny-faq summary::-webkit-details-marker { display: none; }
.jny-faq summary::after { content: ""; position: absolute; inset-inline-end: var(--ds-space-2); inset-block-start: 50%; inline-size: .55rem; block-size: .55rem; margin-block-start: -.4rem;
  border: solid var(--ds-text-muted); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform var(--ds-dur-base) var(--ds-ease-snappy); }
.jny-faq[open] > summary::after { transform: rotate(-135deg); margin-block-start: -.15rem; }
.jny-faq__q { font-family: var(--ds-font-display); font-size: var(--ds-text-lg); line-height: 1.2; text-wrap: balance; }
.jny-ask__q { color: var(--ds-accent); text-decoration: underline; text-underline-offset: .2em; }
.jny-faq__fg { flex: none; display: block; inline-size: 2.25rem; block-size: 2.25rem; }
.jny-faq summary:focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 3px; border-radius: var(--ds-radius-sm); }
.jny-faq__a { overflow: hidden; box-sizing: border-box; }
.jny-faq__a > p { margin: 0 0 var(--ds-space-3); max-inline-size: 60ch; font-size: var(--ds-text-md); line-height: var(--ds-leading-normal); color: var(--ds-text-muted); }
.jny-faq .jny-faq__a { padding-inline-start: calc(2.25rem + var(--ds-space-3)); padding-block-end: var(--ds-space-2); }
.jny-ask .jny-faq__a { max-inline-size: 42rem; }

.jny-fg { display: block; inline-size: 100%; block-size: 100%; overflow: visible; }
.jny-fg__c { filter: drop-shadow(0 0 .25rem currentColor); }
.jny-fg__dot { fill: currentColor; opacity: .85; }
.jny-fg__core { fill: currentColor; opacity: .95; }
.jny-fg__ring, .jny-fg__core { transform-box: fill-box; transform-origin: center; }

/* motion: only while the row is on screen (.is-live, set by journey.js) and never under reduced motion, which keeps the lit still graphic */
@media (prefers-reduced-motion: no-preference) {
  .jny-faq.is-live .jny-fg--pulse .jny-fg__core { animation: jny-pulse 3.6s ease-in-out infinite; }
  .jny-faq.is-live .jny-fg--pulse .jny-fg__ring { animation: jny-pulse-ring 3.6s ease-in-out infinite; }
  .jny-faq.is-live .jny-fg--turn .jny-fg__ring { animation: jny-turn 22s linear infinite; }
  .jny-faq.is-live .jny-fg--breath .jny-fg__ring, .jny-faq.is-live .jny-fg--breath .jny-fg__core { animation: jny-breath 7s ease-in-out infinite; }
  .jny-faq.is-live .jny-fg--twinkle .jny-fg__dot { animation: jny-twinkle 3.4s ease-in-out infinite; animation-delay: calc(var(--k) * .23s); }
  @keyframes jny-pulse { 0%, 100% { transform: scale(1); opacity: .75; } 50% { transform: scale(1.4); opacity: 1; } }
  @keyframes jny-pulse-ring { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
  @keyframes jny-turn { to { transform: rotate(360deg); } }
  @keyframes jny-breath { 0%, 100% { transform: scale(.9); } 50% { transform: scale(1.08); } }
  @keyframes jny-twinkle { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
  /* the footer's lights: a slow wave of glow passes through the fifteen, a breath each, never all at once */
  .jny-world-ic { animation: jny-wave 7s ease-in-out infinite; animation-delay: calc(var(--n, 0) * .38s); }
  @keyframes jny-wave { 0%, 100% { filter: drop-shadow(0 0 .22rem color-mix(in srgb, var(--ds-accent) 55%, transparent)); opacity: .82; }
    50% { filter: drop-shadow(0 0 .65rem var(--ds-accent)); opacity: 1; } }
  .jny-world-ic:hover, .jny-world-ic:focus-visible { animation-play-state: paused; }
}

/* the compact footer: same black, the emblem, fifteen small lights, the required links */
.ds-footer.ds-footer--home { overflow-x: clip; background: var(--ds-surface-sunken); color: var(--ds-text); border-block-start: 0; padding: var(--ds-space-6) var(--ds-gutter, 1rem) var(--ds-space-6); }
.jny-foot { display: flex; flex-direction: column; align-items: center; gap: var(--ds-space-5); max-inline-size: 62rem; margin-inline: auto; text-align: center; }
.jny-foot .ds-wordmark { color: var(--ds-text); }
.jny-worlds ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ds-space-1); }
.jny-world-ic { position: relative; display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; color: var(--ds-accent); text-decoration: none;
  filter: drop-shadow(0 0 .35rem color-mix(in srgb, var(--ds-accent) 75%, transparent)); transition: color var(--ds-dur-base) linear, filter var(--ds-dur-base) linear; }
.jny-world-ic:hover, .jny-world-ic:focus-visible { color: var(--ds-text); filter: drop-shadow(0 0 .6rem var(--ds-accent)); }
.jny-world-ic:focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 2px; }
@media (hover: hover) { .jny-world-ic::after { content: attr(data-name); position: absolute; inset-block-end: 100%; inset-inline-start: 50%; transform: translate(-50%, .25rem); white-space: nowrap; padding: var(--ds-space-1) var(--ds-space-2);
  font-size: var(--ds-text-sm); color: var(--ds-text); background: var(--ds-surface-sunken); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); opacity: 0; pointer-events: none; transition: opacity var(--ds-dur-base) linear; z-index: 2; }
.jny-world-ic:hover::after, .jny-world-ic:focus-visible::after { opacity: 1; } }
.jny-foot__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 var(--ds-space-5); font-size: var(--ds-text-sm); }
.jny-foot__links a, .jny-foot__btn { display: inline-flex; align-items: center; min-block-size: 2.75rem; color: var(--ds-text-muted); text-decoration: underline; text-underline-offset: .2em; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.jny-foot__links a:hover, .jny-foot__btn:hover { color: var(--ds-text); }
.jny-foot__links a:focus-visible, .jny-foot__btn:focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 2px; border-radius: var(--ds-radius-sm); }
.jny-foot__note { margin: 0; font-size: var(--ds-text-xs); color: var(--ds-text-muted); }

/* members' blocks and the instagram strip (classic blocks) share this black: no band of their own (the People wall is in the flow, assets/css/ds/people.css) */
.jny-extra { position: relative; z-index: 2; padding-inline: var(--ds-gutter, 1rem); }
.jny-extra .g-section, .jny-extra .g-section--alt { background: transparent; color: var(--ds-text); border: 0; }
.jny-extra .g-h2, .jny-extra .g-prose, .jny-extra .g-prose p { color: var(--ds-text); }
@media (min-width: 48rem) {
  .jny-row { grid-template-columns: 13rem minmax(0, 1fr) auto; }
  .jny-row--note { grid-template-columns: minmax(0, 1fr) auto; }
}

/* ---------------------------------------------------------------- chrome that belongs to the scene
   The glass header and menus (assets/css/ds/shell.css, .ds-header--marketing.ds-theme-dark) take the colour of the centre in view from --jny-ck, set by journey.js
   (amber before the journey starts). */
:root:has(.jny-world) { --jny-ck: var(--ds-accent); }
/* the quiet buttons float in the scene: a hairline and a little blur, no fill */
.jny-world .ds-button--secondary { background: color-mix(in srgb, var(--ds-surface-sunken) 30%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-color: color-mix(in srgb, var(--ds-accent) 45%, transparent); }
.jny-world .ds-button--secondary:hover { border-color: var(--ds-accent); }
/* in the light theme the header would otherwise let the journey's black show through it (90% surface), which lowers the contrast of its quiet buttons */
:root:not(.dark):has(.jny-world) .ds-header:not(.ds-theme-dark) { background: var(--ds-surface); -webkit-backdrop-filter: none; backdrop-filter: none; }

/* ---------------------------------------------------------------- "Ask us anything": the form reads on the black (labels in ivory, dark fields with an amber hairline) */
.jny-world .sk-enquiry { display: grid; gap: var(--ds-space-4); max-inline-size: 36rem; padding-block-start: var(--ds-space-2); }
.jny-world .sk-enquiry p { margin: 0; }
.jny-world .sk-field { display: flex; flex-direction: column; gap: var(--ds-space-2); min-inline-size: 0; }
.jny-world .sk-field label { color: var(--ds-text); font-size: var(--ds-text-md); font-weight: 600; line-height: 1.3; }
.jny-world .sk-field__hint, .jny-world .sk-enquiry__note, .jny-world .sk-enquiry__status { color: var(--ds-text-muted); font-size: var(--ds-text-sm); line-height: var(--ds-leading-normal); }
.jny-world .sk-enquiry__note a { color: var(--ds-accent); text-underline-offset: .2em; }
.jny-world .sk-enquiry :is(input:not([type="hidden"]), select, textarea) { inline-size: 100%; min-block-size: 2.75rem; box-sizing: border-box; padding: var(--ds-space-2) var(--ds-space-3);
  font: inherit; font-size: var(--ds-text-md); color: var(--ds-text); background: color-mix(in srgb, var(--ds-surface-raised) 80%, transparent);
  border: 1px solid color-mix(in srgb, var(--ds-accent) 45%, transparent); border-radius: var(--ds-radius-md); }
.jny-world .sk-enquiry textarea { resize: vertical; min-block-size: 7rem; }
.jny-world .sk-enquiry select option { background: var(--ds-surface-raised); color: var(--ds-text); }
.jny-world .sk-enquiry ::placeholder { color: var(--ds-text-muted); opacity: 1; }
.jny-world .sk-enquiry :is(input, select, textarea):hover { border-color: var(--ds-accent); }
.jny-world .sk-enquiry :is(input, select, textarea, button):focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 2px; border-color: var(--ds-accent); }
.jny-world .sk-enquiry [aria-invalid="true"] { border-color: var(--ds-danger); }
.jny-world .sk-enquiry button[type="submit"] { position: relative; min-block-size: 2.75rem; padding: var(--ds-space-2) var(--ds-space-6); border: 0; border-radius: var(--ds-radius-pill);
  font: inherit; font-weight: 600; color: var(--ds-action-contrast); background: var(--ds-action); cursor: pointer; }
.jny-world .sk-enquiry button[type="submit"]:disabled { opacity: .6; cursor: progress; }
