/* Ergänzung zur unveränderten virtual.vision-Basis. Produktfarben aus landing-offerings.css. */
.fit40-page { --accent: #527c3d; --accent-dark: #365627; --soft: #f0f5e9; --paper: #f7f8f4; --line: #dce3d5; --gold: #527c3d; }
[hidden] { display: none !important; }
header.vv-header[data-product="fit40"] { --vv-header-accent: #527c3d; --vv-header-gradient: linear-gradient(135deg, #365627, #527c3d); }
.fit40-page .button { background: linear-gradient(135deg, #365627, #527c3d); --button-shadow: rgba(54,86,39,.16); cursor: pointer; }
.fit40-page .eyebrow { color: var(--accent-dark); }
.fit40-page main { margin-top: 2rem; }
.fit40-hero { display: grid; grid-template-columns: 1.4fr 1fr; padding: 0; background: #fff; }
.fit40-hero::after { display: none; }
.hero-copy { padding: clamp(1.8rem, 4.3vw, 3.4rem); }
.hero-copy h1 { margin-top: 1rem; }
.hero-copy .lead { max-width: 540px; }
.hero-actions { align-items: center; gap: 1.3rem; }
.quiet-link { color: var(--accent-dark); font-size: .92rem; text-underline-offset: .3em; }
.hero-caption { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .82rem; }
.hero-art { position: relative; display: flex; min-height: 370px; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 2.5rem; background: #e9efdf; color: var(--accent-dark); }
.art-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .13em; }
.age-mark { position: relative; align-self: center; display: flex; align-items: flex-start; font: 400 clamp(8rem, 15vw, 12rem)/1 Georgia, serif; letter-spacing: -.07em; }
.age-plus { margin-top: 1rem; font: 400 3.5rem/1 Georgia, serif; letter-spacing: normal; }
.leaf { position: absolute; bottom: 3.8rem; right: -1rem; transform: rotate(15deg); opacity: .6; }
.art-foot { position: relative; font: 700 1.3rem/1.2 Georgia, serif; }
.art-foot span { display: block; margin-top: .5rem; font: 400 .78rem/1.5 Inter, ui-sans-serif, system-ui, sans-serif; }
.offer-section { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding: 0 .25rem; }
.offer-copy p { color: var(--ink-soft); }
.preparation-note { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; font-size: .88rem; color: var(--accent-dark); }
.status-dot { width: .45rem; height: .45rem; border-radius: 50%; background: var(--accent); }
.booking-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.availability { border: 1px solid #d0ddc2; border-radius: 999px; color: var(--accent-dark); background: var(--soft); padding: .4rem .85rem; font-size: .8rem; }
.booking-steps { list-style: none; padding: 1.1rem 0; margin: 1.4rem 0 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; color: var(--ink-soft); font-size: .9rem; }
.booking-steps li { display: flex; align-items: center; gap: .65rem; }
.booking-steps span { display: grid; place-items: center; border-radius: 50%; width: 30px; height: 30px; border: 1px solid var(--line); font-size: .72rem; }
.booking-steps [aria-current="step"] { color: var(--accent-dark); font-weight: 650; }
.booking-steps [aria-current="step"] span { color: white; border-color: var(--accent); background: var(--accent); }
.booking-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); align-items: start; gap: 1.5rem; }
.booking-panel { min-width: 0; padding: clamp(1.4rem, 3.5vw, 2.5rem); }
.empty-state { text-align: center; padding: 1rem .5rem; }
.calendar-icon { display: grid; place-items: center; width: 80px; height: 80px; margin: 0 auto 1.5rem; border-radius: 22px; background: var(--soft); color: var(--accent); }
.empty-state p { max-width: 440px; margin: 1rem auto; color: var(--ink-soft); }
.small { font-size: .84rem; }
.muted { color: var(--ink-soft); }
.booking-summary { padding: 1.8rem; border: 1px solid var(--line); border-radius: 24px; background: var(--soft); }
.booking-summary h3 { margin: .65rem 0 .3rem; }
.summary-subtitle { color: var(--ink-soft); font-size: .92rem; }
.booking-summary dl { margin: 1.7rem 0; }
.booking-summary dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .85rem 0; border-top: 1px solid #d6dfcc; font-size: .88rem; }
.booking-summary dt { color: var(--ink-soft); }
.booking-summary dd { margin: 0; text-align: right; max-width: 70%; overflow-wrap: anywhere; }
.summary-note { margin: 0; color: var(--ink-soft); font-size: .8rem; }
.faq-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; padding: 1.1rem 0; font-weight: 600; }
.faq-list details p { padding: 0 0 1rem; color: var(--ink-soft); }
fieldset { min-width: 0; border: 0; margin: 0; padding: 0; }
legend { padding: 0; margin-bottom: .7rem; font: 700 25px/1.15 Georgia, serif; }
.session-list { display: grid; gap: .75rem; margin: 1.5rem 0; }
.session-option { display: flex; align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; cursor: pointer; }
.session-option:has(input:checked) { border-color: var(--accent); background: var(--soft); }
.session-option strong, .session-option small { display: block; }
.session-option small { color: var(--ink-soft); margin-top: .15rem; }
input[type=radio], input[type=checkbox] { accent-color: var(--accent); width: 20px; height: 20px; flex: 0 0 auto; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
#step-2 label:not(.check) { display: block; margin: 1rem 0; font-size: .93rem; font-weight: 600; }
input:not([type=radio]):not([type=checkbox]) { display: block; width: 100%; margin-top: .4rem; padding: .75rem .85rem; border: 1px solid #bac8af; border-radius: 11px; font: inherit; color: var(--ink); background: #fff; }
.optional { font-size: .82rem; color: var(--ink-soft); font-weight: 400; }
.check { display: flex; align-items: flex-start; gap: .7rem; margin: 1.3rem 0; font-size: .88rem; }
.check input { margin: .1rem 0 0; }
.form-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.text-button { padding: .65rem 0; background: none; border: 0; color: var(--accent-dark); font: inherit; text-decoration: underline; cursor: pointer; }
.next-button { margin-top: .6rem; }
.review > div, .offer-facts > div { padding: .7rem 0; border-bottom: 1px solid var(--line); }
.review dt, .offer-facts dt { font-size: .8rem; color: var(--ink-soft); }
.review dd, .offer-facts dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.request-note { margin-top: 1.5rem; padding: 1rem; border-radius: 13px; background: var(--soft); font-size: .88rem; }
.form-message { color: #963126; margin: 1rem 0 0; }
@media (max-width:620px) {
  .fit40-page .hero-art { min-height: 285px; }
  .fit40-page .art-foot { margin-top: 10rem; max-width: 100%; }
  .fit40-page .age-mark { top: 2.5rem; right: 2rem; }
  .fit40-page .leaf { right: -1rem; bottom: 4.8rem; opacity: .35; }
}
@media(max-width:860px) { .fit40-hero { grid-template-columns: 1fr .7fr; } .hero-art { padding: 2rem 1.5rem; } .booking-layout { grid-template-columns: 1fr; } .offer-section, .faq-section { gap: 2rem; } }
@media(max-width:620px) { .fit40-page main { margin-top: 1rem; } .fit40-hero { grid-template-columns: 1fr; padding: 0; } .hero-copy { padding: 1.6rem; } .hero-art { min-height: 220px; padding: 1.5rem; } .age-mark { position: absolute; right: 2.5rem; top: 1.4rem; font-size: 8rem; } .age-plus { font-size: 2.5rem; } .leaf { right: 5.5rem; bottom: -1rem; width: 120px; } .art-foot { margin-top: 5rem; font-size: 1.15rem; max-width: 65%; } .art-label { font-size: .65rem; } .offer-section, .faq-section { grid-template-columns: 1fr; gap: 1rem; } .section { margin-top: 3rem; } .booking-steps { gap: .6rem; font-size: .75rem; } .booking-steps li { flex-direction: column; align-items: flex-start; gap: .4rem; } .fields { grid-template-columns: 1fr; gap: 0; } .form-actions .button { width: 100%; } }
