/* Feature/product page template — Website-2025 "PLAIO FEATURE PAGES v3+light sections"
   (Figma YpSNX6QrkNQ0PxJ5at92Nf, frame 4255:1100), first built for /products/demand-segmentation/.
   Shared by every page on the Products menu. Sections: dark hero (product UI running off the band
   edge), light band (intro + split, feature cards, how-it-works panel), dark band (checks + image),
   FAQ, demo band. Everything is Söhne: 400 Buch, 500 Kräftig, 600 Halbfett.

   Media: every .ds-shot / .ds-acc-img / hero slot takes an <img> or a muted looping <video>
   cut to that slot's size (2x): hero 2240x706, split 1120x1120, card 774x722, how 1076x1446,
   dark band 1106x1446. The slot clips corners, so media is exported as a full rectangle.

   This file is served from /css/, which is immutable-cached: change it -> new hash in the name. */
.page-frame.ds-v5 {font-family: 'Soehne', 'Helvetica Neue', Arial, sans-serif;}
.ds-v5 .ds-wrap {max-width: 1240px; margin: 0 auto; padding: 0 20px;}
.ds-v5 .ds-section + .ds-section {margin-top: 128px;}
.page-frame.ds-v5 h1, .page-frame.ds-v5 h2, .page-frame.ds-v5 h3, .page-frame.ds-v5 p {margin: 0;}
.page-frame.ds-v5 .ds-h2 {font-size: 48px; line-height: 110%; font-weight: 500; letter-spacing: 1.44px;}
.page-frame.ds-v5 .ds-h2.is-centred {max-width: 848px; margin: 0 auto; text-align: center;}
.ds-v5 .ds-orange {color: #f48811;}
.ds-v5 .ds-btn {display: inline-block; font-size: 16px; line-height: 150%; font-weight: 500; letter-spacing: 0.16px; color: #151517; background: #f48811; border-radius: 12px; padding: 12px 24px; text-decoration: none; white-space: pre;}
.ds-v5 .ds-btn:hover, .ds-v5 .ds-btn:focus-visible {background: #ffa348; color: #151517;}

/* 1. Hero (dark) */
.page-frame.ds-hero-band {background: #19191b; padding-top: 40px; overflow: hidden;}
.ds-v5 .ds-hero {padding: 64px 40px 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 64px;}
.ds-v5 .ds-hero-text {display: flex; flex-direction: column; align-items: center; gap: 20px;}
.ds-v5 .ds-pill {display: inline-block; font-size: 16px; line-height: 145%; font-weight: 400; letter-spacing: 0.32px; color: #fafafc; padding: 12px 16px; border: 1px solid #2e2e33; border-radius: 9999px;}
.page-frame.ds-v5 .ds-hero h1 {font-size: 65px; line-height: 120%; font-weight: 600; letter-spacing: 1.3px; color: #e6e6ea; max-width: 997px;}
.page-frame.ds-v5 .ds-hero .ds-subtitle {font-size: 24px; line-height: 130%; font-weight: 400; letter-spacing: 0.48px; color: #ebebee; max-width: 852px; margin: 48px auto 0;}
.ds-v5 .ds-hero-shot {width: 100%; border-radius: 32px 32px 0 0; overflow: hidden;}
.ds-v5 .ds-hero-shot img {display: block; width: 100%; height: auto;}

/* 2–4. Light band */
.page-frame.ds-light {background: #fafafc; padding: 128px 0;}
.page-frame.ds-light .ds-h2, .page-frame.ds-light h3 {color: #151517;}
.ds-light .ds-shot {display: block; width: 100%; height: auto; background: #fff; border-radius: 32px; box-shadow: 0 0 11.5px 0 rgba(0, 0, 0, 0.03);}

/* 2. "Your forecast isn't wrong" */
.ds-v5 .ds-intro {max-width: 900px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 36px;}
.page-frame.ds-v5 .ds-lead {font-size: 24px; line-height: 130%; font-weight: 400; letter-spacing: 0.48px; color: #8a8a8c;}
.ds-v5 .ds-split {display: grid; grid-template-columns: 1fr 560px; gap: 48px; align-items: center; margin-top: 128px;}
.ds-v5 .ds-split-text {padding-right: 30px; display: flex; flex-direction: column; gap: 40px;}
.ds-v5 .ds-split-copy {padding: 0 30px; display: flex; flex-direction: column; gap: 36px;}
.page-frame.ds-v5 .ds-sub {font-size: 32px; line-height: 120%; font-weight: 500; letter-spacing: 0.32px;}
.page-frame.ds-v5 .ds-body p {font-size: 16px; line-height: 145%; font-weight: 400; letter-spacing: 0.32px; color: #5c5c5e;}
.page-frame.ds-v5 .ds-body p + p {margin-top: 23px;}
.ds-v5 .ds-why {background: #fff; border-radius: 24px; padding: 24px 30px; display: flex; flex-direction: column; gap: 10px; filter: drop-shadow(0 0 5.75px rgba(0, 0, 0, 0.03));}
.page-frame.ds-v5 .ds-why h3 {font-size: 20px; line-height: 120%; font-weight: 500; letter-spacing: 0.6px; color: #f48811;}
.page-frame.ds-v5 .ds-why p {font-size: 16px; line-height: 145%; font-weight: 400; letter-spacing: 0.32px; color: #5c5c5e;}

/* 3. Feature cards */
.ds-v5 .ds-cards {display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 64px; align-items: start;}
.ds-v5 .ds-card {display: flex; flex-direction: column; gap: 20px; padding-bottom: 32px;}
.page-frame.ds-v5 .ds-card h3 {font-size: 20px; line-height: 120%; font-weight: 500; letter-spacing: 0.6px;}
.page-frame.ds-v5 .ds-card p {font-size: 16px; line-height: 145%; font-weight: 400; letter-spacing: 0.32px; color: #8a8a8c;}

/* 4. How it works */
.ds-v5 .ds-how {background: #fff; border-radius: 32px; padding: 40px; margin: 0 -40px; display: flex; flex-direction: column; gap: 40px;}
.page-frame.ds-v5 .ds-how .ds-h2 {max-width: 500px;}
.ds-v5 .ds-panel {background: #fafafc; border-radius: 32px; padding: 20px 40px;}
.ds-v5 .ds-panel-row {display: grid; grid-template-columns: 538fr 486fr; gap: 96px; align-items: center;}
.ds-v5 .ds-rows {display: flex; flex-direction: column; gap: 24px;}
.ds-v5 .ds-row {display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding: 20px 30px 20px 0; border-bottom: 1px solid #ebebee;}
.ds-v5 .ds-row:first-child {padding-bottom: 40px;}
.ds-v5 .ds-row:last-child {border-bottom: none;}
.page-frame.ds-v5 .ds-row h3 {font-size: 24px; line-height: 130%; font-weight: 500; letter-spacing: 0.48px; color: #454546;}
.page-frame.ds-v5 .ds-row p {font-size: 16px; line-height: 145%; font-weight: 400; letter-spacing: 0.32px; color: #8a8a8c;}
.ds-v5 .ds-panel-cta {padding: 20px 0; text-align: right;}

/* 5. Forecast accuracy (dark) */
.page-frame.ds-dark {background: linear-gradient(180deg, #151517 0%, #131314 100%); padding: 128px 0;}
.page-frame.ds-dark .ds-h2, .page-frame.ds-dark h3, .page-frame.ds-dark p {color: #fafafc;}
.ds-v5 .ds-acc-head {display: flex; flex-direction: column; align-items: center; gap: 40px;}
.page-frame.ds-v5 .ds-acc-head .ds-h2 {max-width: 800px; text-align: center;}
.ds-v5 .ds-tag {display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 145%; font-weight: 500; letter-spacing: 0.12px; color: #e6e6ea; padding: 4px 8px; border: 1px solid #f48811; border-radius: 8px;}
.ds-v5 .ds-tag .bi {font-size: 16px; line-height: 1;}
.ds-v5 .ds-acc {display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: center; margin-top: 64px;}
.ds-v5 .ds-acc-text {display: flex; flex-direction: column; gap: 40px;}
.ds-v5 .ds-checks {list-style: none; margin: 0; padding: 0 30px; display: flex; flex-direction: column; gap: 16px;}
.ds-v5 .ds-checks li {display: flex; align-items: center; gap: 16px; padding: 12px 0; font-size: 18px; line-height: 130%; font-weight: 400; letter-spacing: 0.36px; color: #e6e6ea;}
.ds-v5 .ds-check {flex: 0 0 48px; height: 48px; border-radius: 12px; background: #1b1b1d; display: flex; align-items: center; justify-content: center; color: #f48811; font-size: 24px;}
.ds-dark .ds-why {background: rgba(46, 46, 47, 0.4); filter: none;}
.page-frame.ds-dark .ds-why h3 {font-size: 18px; line-height: 130%; font-weight: 400; letter-spacing: 0.36px; color: #f5f5f7;}
.page-frame.ds-dark .ds-why p {color: #8a8a8c;}
.ds-v5 .ds-btn-wrap {padding: 0 30px;}
.ds-v5 .ds-acc-img {display: block; width: 100%; height: auto; border-radius: 32px;}

/* FAQ, restyled to sit on the same dark page */
.page-frame.ds-faq {background-color: #131314; padding-bottom: 128px;}
.page-frame.ds-faq .container {max-width: 1240px; padding: 0 20px;}
.page-frame.ds-faq .accordion-wrap h2 {font-family: 'Soehne', 'Helvetica Neue', Arial, sans-serif; font-size: 48px; line-height: 110%; font-weight: 500; letter-spacing: 1.44px; color: #fafafc; margin: 0 0 40px;}
.page-frame.ds-faq .accordion-wrap .preTitle, .page-frame.ds-faq .accordion-wrap .subTitle {display: none;}
.page-frame.ds-faq .accordion-wrap .accordion .accordion-item {border-top: 1px solid #2e2e33;}
.page-frame.ds-faq .accordion-wrap .accordion .accordion-item:last-of-type {border-bottom: 1px solid #2e2e33;}
.page-frame.ds-faq .accordion-wrap .accordion .accordion-button {font-family: 'Soehne', 'Helvetica Neue', Arial, sans-serif; font-size: 24px; line-height: 130%; font-weight: 500; letter-spacing: 0.48px; color: #fafafc !important; padding: 24px 0;}
.page-frame.ds-faq .accordion-wrap .accordion .accordion-body {padding: 0 0 24px;}
.page-frame.ds-faq .accordion-wrap .accordion .accordion-body p {font-family: 'Soehne', 'Helvetica Neue', Arial, sans-serif; font-size: 18px; line-height: 145%; font-weight: 400; letter-spacing: 0.36px; color: #b8b8bb; max-width: 860px;}

@media (max-width: 1319px) {
    .ds-v5 .ds-how {margin: 0;}
}
@media (max-width: 1199px) {
    .page-frame.ds-v5 .ds-hero h1 {font-size: 56px;}
    .ds-v5 .ds-split, .ds-v5 .ds-acc, .ds-v5 .ds-panel-row {gap: 48px;}
    .ds-v5 .ds-split {grid-template-columns: 1fr 1fr;}
}
@media (max-width: 991px) {
    .page-frame.ds-hero-band {padding-top: 20px;}
    .page-frame.ds-light, .page-frame.ds-dark {padding: 80px 0;}
    .ds-v5 .ds-section + .ds-section {margin-top: 80px;}
    .page-frame.ds-v5 .ds-h2, .page-frame.ds-faq .accordion-wrap h2 {font-size: 36px; letter-spacing: 1.08px;}
    .ds-v5 .ds-hero {padding: 48px 0 0; gap: 40px;}
    .page-frame.ds-v5 .ds-hero h1 {font-size: 40px; letter-spacing: 0.8px;}
    .page-frame.ds-v5 .ds-hero .ds-subtitle {font-size: 20px; margin-top: 20px;}
    .ds-v5 .ds-hero-shot {border-radius: 16px 16px 0 0;}
    .ds-v5 .ds-hero-shot img {width: 190%; max-width: none;}
    .page-frame.ds-v5 .ds-lead {font-size: 20px;}
    .page-frame.ds-v5 .ds-sub {font-size: 24px;}
    .ds-v5 .ds-split, .ds-v5 .ds-acc, .ds-v5 .ds-panel-row, .ds-v5 .ds-cards {grid-template-columns: 1fr;}
    .ds-v5 .ds-split {gap: 40px; margin-top: 48px;}
    .ds-v5 .ds-split-text, .ds-v5 .ds-split-copy, .ds-v5 .ds-checks, .ds-v5 .ds-btn-wrap {padding-left: 0; padding-right: 0;}
    .ds-v5 .ds-cards {margin-top: 40px; gap: 12px;}
    .ds-v5 .ds-card {padding-bottom: 20px;}
    .ds-v5 .ds-how {padding: 24px 16px; gap: 24px; border-radius: 24px;}
    .ds-v5 .ds-panel {padding: 16px; border-radius: 24px;}
    .ds-v5 .ds-panel-row {gap: 24px;}
    .ds-v5 .ds-row, .ds-v5 .ds-row:first-child {grid-template-columns: 1fr; gap: 12px; padding: 20px 4px;}
    .page-frame.ds-v5 .ds-row h3 {font-size: 20px;}
    .ds-v5 .ds-panel-cta {text-align: left; padding: 8px 4px 4px;}
    .ds-v5 .ds-acc {gap: 40px; margin-top: 40px;}
    .ds-v5 .ds-acc-img {order: 2;}
    .page-frame.ds-faq {padding-bottom: 80px;}
    .page-frame.ds-faq .accordion-wrap .accordion .accordion-button {font-size: 20px;}
}

/* Video in any media slot behaves like the image it replaces. */
.ds-v5 video.ds-shot, .ds-v5 video.ds-acc-img, .ds-v5 .ds-hero-shot video {display: block; width: 100%; height: auto; object-fit: cover;}
.ds-v5 .ds-hero-shot video {background: #19191b;}
.ds-light video.ds-shot {background: #fff;}

/* Optional eyebrow above a light-band section heading, and a centred lead under it. */
.ds-v5 .ds-eyebrow {display: block; text-align: center; font-size: 14px; line-height: 145%; font-weight: 500; letter-spacing: 1.4px; text-transform: uppercase; color: #f48811; margin-bottom: 16px;}
.page-frame.ds-v5 .ds-section-lead {max-width: 760px; margin: 24px auto 0; text-align: center; font-size: 20px; line-height: 140%; letter-spacing: 0.4px; color: #8a8a8c;}
.page-frame.ds-dark .ds-section-lead {color: #b8b8bb;}
@media (max-width: 991px) {
.ds-v5 .ds-hero-shot video {width: 190%; max-width: none;}
.page-frame.ds-v5 .ds-section-lead {font-size: 18px;}
}

/* Story slides: the hero's beats as an interactive feature tour instead of a video.
   Left: one tab per beat (eyebrow, Söhne headline with one orange word, support line, progress).
   Right: the real app screenshot for the active beat, with an orange ring on what the line is about.
   Auto-advances every 6 s while visible (reduced motion too: the swap is instant); pauses on hover/focus;
   arrow keys move between tabs. Behaviour: /scripts/story-slides.js. Motion: 400 ms, brand easing. */
.ds-v5 .ds-hero-shot.ds-story {display: grid; grid-template-columns: minmax(0, 37fr) minmax(0, 63fr); gap: 40px; align-items: center; text-align: left; border-radius: 0; overflow: visible;}
.ds-story-tabs {display: flex; flex-direction: column; gap: 4px; padding-bottom: 24px;}
.ds-story-tab {position: relative; display: block; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 16px; padding: 14px 18px 14px 22px; color: inherit; font: inherit; cursor: pointer; transition: background-color 120ms cubic-bezier(.4,0,.2,1);}
.ds-story-tab:hover {background: rgba(255,255,255,0.03);}
.ds-story-tab:focus-visible {outline: 2px solid #f48811; outline-offset: 2px;}
.ds-story-tab.is-active {background: #1f1f22;}
.ds-story-bar {position: absolute; left: 8px; top: 16px; bottom: 16px; width: 3px; border-radius: 3px; background: #2e2e33; overflow: hidden;}
.ds-story-bar i {position: absolute; left: 0; top: 0; width: 100%; height: 0; background: #f48811;}
.ds-story-tab.is-active .ds-story-bar i {height: 100%;}
.ds-story.is-playing .ds-story-tab.is-active .ds-story-bar i {height: 0; animation: ds-story-fill var(--ds-story-ms, 6000ms) linear forwards;}
.ds-story.is-paused .ds-story-tab.is-active .ds-story-bar i {animation-play-state: paused;}
@keyframes ds-story-fill {to {height: 100%;}}
.page-frame.ds-v5 .ds-story-eyebrow {display: none; font-size: 12px; line-height: 145%; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #f48811; margin-bottom: 6px;}
.page-frame.ds-v5 .ds-story-title {display: block; font-size: 19px; line-height: 125%; font-weight: 500; letter-spacing: 0.3px; color: #8a8a8c; transition: color 120ms cubic-bezier(.4,0,.2,1);}
.ds-story-tab:hover .ds-story-title {color: #c9c9cd;}
.page-frame.ds-v5 .ds-story-tab.is-active .ds-story-title {font-size: 24px; font-weight: 600; color: #f5f5f7;}
.ds-story-title .ds-orange {color: inherit;}
.ds-story-tab.is-active .ds-story-title .ds-orange {color: #f48811;}
.page-frame.ds-v5 .ds-story-support {display: none; font-size: 15px; line-height: 145%; letter-spacing: 0.3px; color: #a6a8b5; margin-top: 8px;}
.ds-story-tab.is-active .ds-story-eyebrow, .ds-story-tab.is-active .ds-story-support {display: block;}
.ds-story-window {position: relative; aspect-ratio: 1400 / 622; border-radius: 20px 20px 0 0; overflow: hidden; border: 1px solid #2e2e33; border-bottom: none; background: #151517; align-self: end;}
.ds-story-frame {position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity 400ms cubic-bezier(.4,0,.2,1), visibility 0s linear 400ms;}
.ds-story-frame.is-active {opacity: 1; visibility: visible; transition: opacity 400ms cubic-bezier(.4,0,.2,1), visibility 0s;}
.ds-v5 .ds-hero-shot .ds-story-frame img {display: block; width: 100%; max-width: 100%; height: 100%; object-fit: cover;}
.ds-story-ring {position: absolute; border: 2px solid #f48811; border-radius: 10px; box-shadow: 0 0 0 6px rgba(244,136,17,0.16); opacity: 0; transform: scale(1.04); transition: opacity 400ms cubic-bezier(.4,0,.2,1) 250ms, transform 400ms cubic-bezier(.4,0,.2,1) 250ms; pointer-events: none;}
.ds-story-frame.is-active .ds-story-ring {opacity: 1; transform: none;}
@media (max-width: 991px) {
.ds-v5 .ds-hero-shot.ds-story {grid-template-columns: 1fr; gap: 20px;}
.ds-story-window {order: -1; border-radius: 16px; border-bottom: 1px solid #2e2e33;}
.ds-story-tabs {padding-bottom: 8px;}
.page-frame.ds-v5 .ds-story-tab.is-active .ds-story-title {font-size: 21px;}
}
@media (prefers-reduced-motion: reduce) {
.ds-story-frame, .ds-story-frame.is-active, .ds-story-ring {transition: none;}
}

/* V3 first screen: eyebrow, outcome headline, a line against the status quo, one proof line, a button that says what happens next */
.page-frame.ds-v5 .ds-hero h1 {max-width: 920px;}
.page-frame.ds-v5 .ds-hero .ds-subtitle {font-size: 22px; line-height: 140%; color: #c9cad3; max-width: 820px; margin-top: 32px;}
.ds-v5 .ds-hero-tags {display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px;}
.ds-v5 .ds-badge {display: inline-flex; align-items: center; font-size: 13px; line-height: 1; font-weight: 500; letter-spacing: 1.2px; text-transform: uppercase; color: #f48811; padding: 10px 14px; border: 1px solid rgba(244, 136, 17, 0.45); border-radius: 9999px;}
.ds-v5 .ds-hero-proof {list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 760px;}
.ds-v5 .ds-hero-proof li {display: flex; align-items: baseline; gap: 10px; font-size: 16px; line-height: 150%; letter-spacing: 0.16px; color: #a6a8b5; text-align: left;}
.ds-v5 .ds-hero-proof i {color: #f48811; font-size: 16px; flex: none;}
.ds-v5 .ds-btn-hero {margin-top: 12px; font-size: 17px; padding: 14px 28px; border-radius: 9999px; font-weight: 600;}
@media (max-width: 767px) {
    .page-frame.ds-v5 .ds-hero .ds-subtitle {font-size: 18px; margin-top: 20px;}
    .ds-v5 .ds-hero-proof li {font-size: 15px;}
    .ds-v5 .ds-btn-hero {white-space: normal;}
}
.page-frame.ds-v5 .ds-hero h1, .page-frame.ds-v5 .ds-hero .ds-subtitle, .ds-v5 .ds-hero-proof li {text-wrap: balance;}
.ds-v5 .ds-hero-proof li {text-align: center; justify-content: center;}

/* V4 review: a heavier headline, and the hero screenshot shown whole on the dark band instead of cut off by the section below. */
.page-frame.ds-v5 .ds-hero h1 {font-weight: 700;}
.page-frame.ds-hero-band {padding-bottom: 96px;}
.ds-v5 .ds-hero-shot {border-radius: 32px;}
.ds-v5 .ds-hero-shot.ds-story {align-items: start;}
.ds-story-window {border-radius: 20px; border-bottom: 1px solid #2e2e33; align-self: center;}
/* story-slides.js sets these to the tallest open and closed tab, so every beat takes the same room and nothing below it jumps. */
.ds-story-tab {min-height: var(--ds-story-closed, 0px);}
.ds-story-tab.is-active {min-height: var(--ds-story-open, 0px);}
.ds-story-tabs {padding-bottom: 0;}
@media (max-width: 991px) {
    .page-frame.ds-hero-band {padding-bottom: 56px;}
    .ds-v5 .ds-hero-shot {border-radius: 16px;}
    .ds-story-window {border-radius: 16px;}
}

/* V5 review: section headings sit on one line where they fit and never leave one word on its own; the how-it-works rows stack heading over text instead of squeezing both into a narrow column. */
.page-frame.ds-v5 .ds-h2 {text-wrap: balance;}
.ds-v5 .ds-intro {max-width: 1120px;}
.page-frame.ds-v5 .ds-intro .ds-lead {max-width: 900px; margin: 0 auto;}
.page-frame.ds-v5 .ds-h2.is-centred {max-width: 1000px;}
.page-frame.ds-v5 .ds-how .ds-h2 {max-width: none;}
@media (min-width: 992px) {.ds-v5 .ds-panel-row {grid-template-columns: 1fr 1fr; gap: 64px;}}
.ds-v5 .ds-row, .ds-v5 .ds-row:first-child {grid-template-columns: 1fr; gap: 10px; padding: 24px 0;}
.page-frame.ds-v5 .ds-row p {font-size: 17px; color: #6b6b6e;}
