/* SPOT! — photo-led activities, clear routes, restrained motion. */
.start-nav{background:#f6f6f3;color:#101b18;border-bottom:1px solid #d8dfda;padding:24px 0 26px}
.start-nav .eyebrow{font-size:10px;letter-spacing:.12em;color:#4d5b55;margin-bottom:15px}
.start-nav-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.start-nav-links a{position:relative;display:flex;align-items:baseline;gap:12px;min-height:48px;padding:12px 0;border-top:1px solid #aab8b1;font-size:14px;font-weight:600;line-height:1.5}
.start-index{flex:none;color:#336c63;font-size:10px;font-weight:400;letter-spacing:.05em;font-variant-numeric:tabular-nums}
.start-nav-links a:after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:#147e73;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.start-nav-links a:hover:after,.start-nav-links a:focus-visible:after{transform:scaleX(1)}
.start-nav-links a:hover{color:#126d65}

/* The image carries the story; copy never sits on top of faces. */
.project-grid.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch}
.activity-card{min-width:0;display:flex;flex-direction:column;background:#fff;border-bottom:2px solid #173c32}
.activity-photo{position:relative;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:#14241e}
.activity-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:grayscale(1) contrast(1.04);transform:scale(1);transition:transform .8s cubic-bezier(.2,.6,.3,1)}
.activity-photo-label{position:absolute;left:16px;bottom:16px;padding:6px 10px;background:#0b1412;color:#fff;font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.04em}
.activity-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:24px}
.activity-card .activity-copy h3{font-size:clamp(24px,2.3vw,32px);line-height:1.13;letter-spacing:-.04em;margin:0 0 13px}
.activity-copy>p{font-size:15px;line-height:1.65;color:#4d5b55;max-width:38ch;margin:0 0 22px}
.activity-action{display:inline-flex;align-items:center;justify-content:center;margin-top:auto;min-height:46px;padding:11px 15px;border:1px solid #173c32;border-radius:3px;color:#173c32;font-size:12px;line-height:1.5;font-weight:600;transition:background .25s,color .25s}
.activity-action:hover{background:#173c32;color:#fff}
.activity-equalizer{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;justify-content:center;gap:3px;width:46px;height:34px;background:#0b1412;color:#64c9be}
.activity-equalizer i{display:block;width:3px;height:18px;background:currentColor;transform:scaleY(.55);transform-origin:50% 50%}
.activity-equalizer i:nth-child(2){height:23px;animation-delay:-.4s!important}
.activity-equalizer i:nth-child(3){height:14px;animation-delay:-.8s!important}
.activity-equalizer i:nth-child(4){height:22px;animation-delay:-.2s!important}
.activity-equalizer i:nth-child(5){height:16px;animation-delay:-.6s!important}
.project-stories-heading{margin-top:72px;padding-top:30px;border-top:1px solid #cdd7d0}
.project-stories-heading .eyebrow{color:#336c63;font-size:10px;margin-bottom:12px}
.project-stories-heading h3{font-size:clamp(28px,3vw,40px);line-height:1.15}

/* Keep actions readable without decorative arrows or emoji glyphs. */
.button{justify-content:center}
.hero .button-row{gap:14px 24px}
.inline-link{transition:color .2s}
.hero-secondary{padding-inline:2px}
.team-portrait-crop.team-unified{width:96px;height:96px;min-width:96px;flex-basis:96px}
.route-tab{font-size:12px;line-height:1.5;min-height:48px;white-space:normal}
.route-content h3{max-width:100%}
.route-number{opacity:.55}
.route-content .eyebrow{padding-right:65px}
.route-content>.button{margin-right:12px}
.route-content>.inline-link{margin-left:0;min-height:44px;padding-top:12px}
.bus-provider-link{min-height:44px;line-height:1.5;flex-wrap:wrap}

/* Content remains visible before enhancement, while paused and without JS. */
html[data-spot-motion="on"] .motion-enter{animation:spot-content-arrive .58s cubic-bezier(.2,.65,.3,1) var(--arrive-delay,0ms) both}
@keyframes spot-content-arrive{from{opacity:.55;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
html[data-spot-motion="on"] .spot-method.in-view .method-orbit{animation:spot-orbit 34s linear infinite}
@keyframes spot-orbit{to{transform:rotate(360deg)}}
html[data-spot-motion="on"] .activity-card.in-view .activity-equalizer i{animation:spot-audio-level 1.6s ease-in-out infinite alternate}
@keyframes spot-audio-level{from{transform:scaleY(.35)}to{transform:scaleY(1)}}
html[data-spot-motion="on"] .practical-card[open] .practical-body{animation:spot-content-arrive .32s ease-out both}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 html[data-spot-motion="on"] .activity-photo:hover img{transform:scale(1.025)}
}
html[data-spot-motion="off"] .motion-enter{animation:none;opacity:1;transform:none}
html[data-spot-motion="off"] .activity-photo img{transition:none;transform:none}
@media(max-width:1000px) and (min-width:761px){
 .start-nav-links{gap:12px}.start-nav-links a{font-size:12px;gap:8px}
 .project-grid.activity-grid{gap:18px}.activity-copy{padding:20px}
 .activity-photo-label{left:12px;bottom:12px;font-size:9px}
 .activity-equalizer{right:12px;bottom:12px}
}
@media(max-width:760px){
 .start-nav{padding:22px 0 20px}
 .start-nav-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
 .start-nav-links a{font-size:12px;gap:9px;min-height:57px;padding:12px 0;align-items:flex-start}
 .start-index{padding-top:2px;font-size:9px}
 .project-grid.activity-grid{grid-template-columns:minmax(0,1fr);gap:30px}
 .activity-photo{aspect-ratio:4/3}
 .activity-copy{padding:23px 22px 25px}
 .activity-card .activity-copy h3{font-size:28px}
 .activity-copy>p{font-size:15px;line-height:1.65;margin-bottom:20px}
 .activity-action{font-size:13px;min-height:46px}
 .project-stories-heading{margin-top:48px;padding-top:25px}
 .team-portrait-crop.team-unified{width:88px;height:88px;min-width:88px;flex-basis:88px}
 .route-content>.button{max-width:100%;margin-right:0}
 .route-content>.inline-link{display:block;width:fit-content}
}
@media(prefers-reduced-motion:reduce){
 .motion-enter,.method-orbit,.activity-equalizer i,.practical-card[open] .practical-body{animation:none!important;transform:none;opacity:1}
 .activity-photo img,.start-nav-links a:after,.activity-action{transition:none!important}
}

/* Disclosures: text and controls always occupy separate, normal-flow columns.
   Open state affects only the decorative vertical stroke, never a text span. */
details > .disclosure-summary {
 display:grid;
 grid-template-columns:minmax(0,1fr) 32px;
 align-items:center;
 gap:16px;
 min-width:0;
 min-height:56px;
 list-style:none;
 cursor:pointer;
 line-height:1.5;
 white-space:normal;
}
.disclosure-summary::-webkit-details-marker {display:none}
.disclosure-summary::marker {content:''}
.disclosure-copy {display:block;min-width:0;overflow-wrap:anywhere}
.disclosure-copy.practical-summary {display:flex;flex-direction:column}
.disclosure-toggle {
 position:relative;
 display:block;
 width:32px;
 height:32px;
 border:1px solid currentColor;
 border-radius:50%;
 align-self:center;
 pointer-events:none;
}
.disclosure-toggle::before,.disclosure-toggle::after {
 content:'';
 position:absolute;
 background:currentColor;
 border-radius:1px;
}
.disclosure-toggle::before {width:12px;height:2px;left:9px;top:14px}
.disclosure-toggle::after {width:2px;height:12px;left:14px;top:9px;transition:transform .2s ease}
details[open] > .disclosure-summary > .disclosure-toggle::after {transform:scaleY(0)}
.disclosure-summary:focus-visible {outline:3px solid currentColor;outline-offset:-4px;border-radius:4px}
.practical-card > .disclosure-summary {align-items:start}
.practical-card .disclosure-toggle {align-self:start;margin-top:2px}
.team-background > .disclosure-summary,.stad-background > .disclosure-summary {font-size:14px}
.social-proof-source > .disclosure-summary {width:100%;font-size:12px}
.faq-list > details > .disclosure-summary {font-size:16px;padding:22px 0}
.faq-list > details > p {padding:0 0 24px;font-size:15px;line-height:1.7}

/* One coherent card per activity. Links have their own touch target outside
   the checkbox label; labels never stretch to match an adjacent partner link. */
.bus-booking-intro {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bus-booking-intro > div,.bus-booking-intro > p {min-width:0}
.bus-request {border:0;border-radius:10px;overflow:hidden}
.bus-request > .disclosure-summary {padding:22px 24px;gap:18px}
.bus-summary-title {display:block;font-size:21px;font-weight:700;line-height:1.3;letter-spacing:-.02em}
.bus-summary-hint {display:block;margin-top:6px;font-size:14px;font-weight:400;line-height:1.5}
#bus-request-form {padding:28px;min-width:0}
.bus-form-step {margin:32px 0 18px}
.bus-form-step:first-child {margin-top:0}
.bus-form-step h4 {display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:12px;font-size:20px;line-height:1.4}
.bus-form-step h4 > span {width:30px;height:30px;font-size:13px}
#bus-request-form .bus-form-hint {font-size:14px;line-height:1.65;margin-top:12px}
.bus-option-groups {gap:28px;align-items:start}
.bus-options {min-width:0}
.bus-options legend {font-size:14px;font-weight:700;line-height:1.5;padding-bottom:12px;color:#193b32}
.bus-choice-grid {grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}
.bus-choice-card {min-width:0;align-self:start;border:1px solid #c8d3cc;border-radius:8px;background:#f8faf7;transition:border-color .2s,background .2s}
.bus-choice-card:has(input:checked) {background:#eaf3ee;border-color:#275c45}
.bus-choice-card:focus-within {outline:2px solid #275c45;outline-offset:-2px}
.bus-choice-card .bus-choice {
 display:grid;
 grid-template-columns:22px minmax(0,1fr);
 align-items:start;
 gap:12px;
 min-width:0;
 min-height:56px;
 padding:15px 14px;
 border:0;
 border-radius:8px;
 background:transparent;
 font-size:16px;
 line-height:1.45;
}
.bus-choice > span {min-width:0;overflow-wrap:anywhere}
.bus-choice-card .bus-choice input {width:22px;height:22px;margin:1px 0 0;accent-color:#275c45}
.bus-choice-card .bus-choice small {font-size:13px;line-height:1.5;margin-top:5px;color:#526259}
.bus-choice-card .bus-provider-link {
 display:flex;
 align-items:center;
 min-width:0;
 min-height:44px;
 margin:0 14px 10px 48px;
 padding:8px 0 4px;
 border-top:1px solid #d6ded8;
 font-size:13px;
 line-height:1.5;
 overflow-wrap:anywhere;
}
.bus-field-grid {gap:20px}
.bus-field-grid label,.bus-copy-fallback label {font-size:14px;line-height:1.6}
.bus-optional {display:inline-block;font-size:12px;margin-left:4px}
.bus-form-send .button {font-size:14px;min-height:50px}
.bus-copy-request {font-size:14px;min-height:48px}
.bus-direct-contact {font-size:14px;line-height:1.6;gap:4px 20px}
#bus-request-form .bus-form-status {font-size:14px;overflow-wrap:anywhere}

/* Labels, headings and decorative route numbers must not share coordinates. */
.route-panel {display:flex;flex-direction:column;min-height:0}
.route-number {position:static;align-self:flex-start;font-size:32px;line-height:1;margin:0 0 20px;color:#436458;opacity:1}
.route-content .eyebrow {padding-right:0}
.team-portrait-head > div:last-child {min-width:0;overflow-wrap:anywhere}
.site-header nav > a:not(.button)::after {content:none}

@media(max-width:1000px) {
 .bus-option-groups {grid-template-columns:minmax(0,1fr)}
 .bus-choice-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px) {
 .bus-booking-intro {grid-template-columns:minmax(0,1fr);gap:14px}
 .bus-booking-intro > p {font-size:15px;line-height:1.7}
 .talentenbus-booking {padding:24px 20px}
 .bus-request > .disclosure-summary {padding:20px 18px;gap:12px}
 .bus-summary-title {font-size:20px}
 .bus-summary-hint {font-size:13px}
 #bus-request-form {padding:24px 16px}
 .bus-form-step h4 {font-size:20px}
 .bus-form-send {align-items:stretch;gap:10px}
 .bus-form-send .button,.bus-copy-request {width:100%}
 .bus-direct-contact > span {width:100%;margin-top:5px}
 .practical-card > .disclosure-summary {padding:20px 18px;gap:12px}
 .practical-title {font-size:23px;line-height:1.25}
 .practical-meta,.practical-place {font-size:14px}
 .practical-hint {font-size:12px}
 .practical-body {margin-inline:18px}
 .hero-kinetic {white-space:normal}
}
@media(max-width:600px) {
 .bus-choice-grid {grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px) {
 .talentenbus-booking {padding:22px 14px}
 .bus-request > .disclosure-summary {padding:18px 14px}
 #bus-request-form {padding:22px 14px}
 .bus-summary-title {font-size:19px}
}
@media(prefers-reduced-motion:reduce) {
 .disclosure-toggle::after,.bus-choice-card {transition:none}
}
