/* Start page specifics — extracted from webroot/redesign/final.html.
   Loads after _css/redesign/*.css; selectors matching the shared hero.css "V2" block use the
   same .ghero .ghero-grid specificity so the start-page values win. */

/* ---------- Hero: start variant ---------- */
.ghero .ghero-grid {
    min-height: 560px;
}
.ghero-note { font-size: .95rem; color: #cdd9ec; }
.ghero-note em { font-style: italic; }
.ghero-note a { color: #fff; }
.ghero-video {
    display: inline-flex; align-items: center; gap: 10px;
    color: #eaf0fa; text-decoration: none; font-size: .98rem;
}
.ghero-video:hover { color: #fff; }
.ghero-video .dot {
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .68rem; color: var(--g-yellow);
}
/* Text column spacing + Muffel centred on the ground glow (final.html values) */
.ghero .ghero-grid > div:first-child { padding-bottom: 4.5rem; }
.ghero .ghero-stage img { margin-bottom: 4rem; }
/* final.html has no 1100px breakpoint on the start hero — undo the shared V2 shrink */
@media (max-width: 1100px) { .ghero-stage img { height: 380px; } .ghero-stage img.season-muffel { --mw: 689px; } }
@media (max-width: 900px) {
    /* stack: full-width text block, mascot below (mirrors redesign/hero.css) */
    .ghero .ghero-grid { min-height: 0; }
    .ghero-stage img { height: 240px; }
    .ghero-stage img.season-muffel { --mw: 435px; }
    .ghero .ghero-grid > div:first-child { padding-bottom: 2rem; }
    .ghero .ghero-stage img { margin-bottom: 2rem; }
}

/* Hero chips row (unused variant kept from prototype) */
.ghero-chips {
    position: relative; z-index: 3;
    display: flex; flex-wrap: wrap; gap: 10px;
    padding: 2rem 0 3rem;
}
.ghero-chips span {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px; padding: 7px 16px;
    font-size: .92rem; color: #eef3fb;
}
.ghero-chips b { font-family: var(--g-display-bold); text-transform: uppercase; font-weight: 400; letter-spacing: .03em; color: #fff; }

/* ---------- Module band below the hero ---------- */
.module-band { background: var(--g-yellow); color: var(--g-navy); text-align: center; padding: 40px 0 32px; }
.module-band h2 {
    font-family: var(--g-display-bold); font-weight: 400; text-transform: uppercase;
    font-size: clamp(1.8rem, 2.8vw, 2.4rem); line-height: 1.1; margin: 0 0 8px; color: var(--g-navy);
}
.module-band-intro { max-width: 48em; margin: 0 auto 22px; font-size: 1.15rem; }
.module-band-grid {
    display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 1fr; gap: 12px;
    margin: 0; padding: 0; list-style: none;
}
.module-band-grid li { display: flex; }
.module-tile {
    display: flex; flex-direction: column; align-items: center; width: 100%;
    padding: 24px 12px 18px; border: 2px dashed rgba(34, 51, 79, .28); border-radius: 12px;
    background: rgba(255, 255, 255, .32); color: var(--g-navy); text-decoration: none;
    transition: background .2s, border-color .2s, transform .2s;
}
.module-tile:hover {
    border-style: solid; border-color: var(--g-navy); background: rgba(255, 255, 255, .6);
    transform: translateY(-3px); color: var(--g-navy); text-decoration: none;
}
.module-tile:focus-visible { outline: 3px solid var(--g-navy); outline-offset: 3px; }
.module-tile i { font-size: 2.4rem; margin-bottom: 14px; color: var(--g-navy); }
.module-tile b {
    display: flex; align-items: center; justify-content: center; min-height: 2.4em; margin-bottom: 6px;
    font-family: var(--g-display-bold); font-weight: 400; font-size: 1.5rem; line-height: 1.2;
}
.module-tile span { margin-bottom: 4px; font-size: 1rem; line-height: 1.35; color: rgba(34, 51, 79, .72); }
.module-tile em { margin-top: auto; padding-top: 12px; font-style: normal; font-family: var(--g-display-bold); color: var(--g-blue-deep); }
.module-tile em::after { content: " \2192"; }
@media (max-width: 1199px) { .module-band-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .module-band-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } .module-tile b { font-size: 1.3rem; } }

/* ---------- Flow: one booking, six automatic steps ---------- */
.flow { text-align: center; }
.flow h2 { font-family: var(--g-display-bold); font-weight: 400; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; color: var(--g-blue); }
.flow-intro { max-width: 36em; margin: 10px auto 52px; }
.flow-steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; counter-reset: flow; }
.flow-steps li { position: relative; padding-top: 72px; counter-increment: flow; }
.flow-steps li::before {
    content: counter(flow);
    position: absolute; top: 0; left: 50%; z-index: 1;
    width: 52px; height: 52px; margin-left: -26px; border-radius: 50%;
    background: var(--g-yellow); color: var(--g-navy);
    font-family: var(--g-display-bold); font-size: 1.6rem; line-height: 52px; text-align: center;
}
.flow-steps li::after {
    content: ""; position: absolute; top: 25px; left: 50%;
    width: calc(100% + 20px); border-top: 2px dashed #c3cde1;
}
.flow-steps li:last-child::after { display: none; }
.flow-steps h3 {
    display: flex; align-items: center; justify-content: center; min-height: 2.4em;
    margin: 0 0 8px; font-family: var(--g-display-bold); font-weight: 400; text-transform: none;
    font-size: 1.5rem; line-height: 1.2; color: var(--g-navy);
}
.flow-steps p { margin: 0; color: var(--text-mid); font-size: 1rem; line-height: 1.5; }
.flow-outro { margin: 56px auto 24px; font-size: 1.2rem; line-height: 1.5; color: var(--g-navy); }
.flow-cta { margin: 0; }
@media (max-width: 991px) {
    .flow-steps { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; gap: 26px; text-align: left; }
    .flow-steps li { padding: 4px 0 0 76px; min-height: 52px; }
    .flow-steps li::before { left: 0; margin-left: 0; }
    .flow-steps li::after { top: 52px; left: 25px; width: 0; height: calc(100% - 26px); border-top: 0; border-left: 2px dashed #c3cde1; }
    .flow-steps h3 { display: block; min-height: 0; }
}

/* ---------- Customer voices: video cards ---------- */
.voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.voice {
    background: var(--white); border: 1px solid var(--border);
    border-radius: 24px; overflow: hidden;
    text-decoration: none; color: inherit;
    box-shadow: var(--sh-sm);
    transition: transform .25s var(--ease), box-shadow .25s;
    display: flex; flex-direction: column;
}
.voice:hover { transform: translateY(-6px); box-shadow: var(--sh-md); }
.voice .banner { position: relative; height: 150px; background: linear-gradient(145deg, #E9F0FB, #CFDFF5); }
.voice .banner img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .3s var(--ease); }
.voice:hover .banner img { filter: grayscale(.3); }
.voice .banner .play {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
}
.voice .banner .play span {
    width: 46px; height: 46px; border-radius: 50%;
    background: var(--blue-dark); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: .7rem;
    padding-left: 3px;
    box-shadow: 0 10px 26px rgba(45, 80, 153, .4);
    transition: transform .2s var(--ease);
}
.voice:hover .banner .play span { transform: scale(1.1); }
.voice .body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex-grow: 1; }
.voice h3 { font-size: 1.05rem; letter-spacing: 0; }
.voice .meta { margin-top: 4px; color: var(--muted); font-size: .85rem; }
.voice .meta i { color: var(--yellow); margin-right: 4px; }
.voice .link { margin-top: auto; padding-top: 14px; font-family: var(--f-body-bold); color: var(--blue-dark); font-size: .92rem; }
@media (max-width: 980px) { .voice-grid { grid-template-columns: 1fr; } }
.voice-rest { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 9px; }
.voice-rest a {
    background: var(--white); border: 1px solid var(--border);
    border-radius: 999px; padding: 8px 16px;
    font-size: .86rem; color: var(--text-mid); text-decoration: none;
    transition: border-color .18s, color .18s;
}
.voice-rest a:hover { border-color: var(--ink); color: var(--ink); }

/* ---------- Branches: chip tiles ---------- */
.branch-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 900px) { .branch-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .branch-grid { grid-template-columns: repeat(2, 1fr); } }
.branch {
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    background: var(--white); border: 1px solid var(--border);
    border-radius: 20px; padding: 26px 16px;
    text-decoration: none; text-align: center;
    box-shadow: var(--sh-sm);
    transition: transform .25s var(--ease), box-shadow .25s;
}
.branch:hover { transform: translateY(-5px); box-shadow: var(--sh-md); }
.branch .ic {
    width: 52px; height: 52px; border-radius: 14px;
    background: var(--yellow-soft); color: var(--yellow-dark);
    display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.branch span { font-family: var(--f-body-bold); color: var(--ink); font-size: .98rem; line-height: 1.3; }
/* "Alle Branchen" / "Deine Branche": set apart from the branch tiles */
.branch--more .ic { background: var(--g-blue); color: #fff; }

/* ---------- Why: step cards ---------- */
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.why {
    background: var(--white); border: 1px solid var(--border);
    border-radius: 24px; padding: 28px 24px;
    box-shadow: var(--sh-sm);
    transition: transform .25s var(--ease), box-shadow .25s;
}
.why:hover { transform: translateY(-5px); box-shadow: var(--sh-md); }
.why .ic {
    width: 52px; height: 52px; border-radius: 14px;
    background: var(--yellow-dark); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 1.25rem;
    margin-bottom: 16px;
}
.why h3 { font-size: 1.08rem; margin-bottom: 8px; }
.why p { color: var(--text-mid); font-size: .92rem; line-height: 1.5; }
@media (max-width: 980px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .why-grid { grid-template-columns: 1fr; } }

/* ---------- Logo row ---------- */
.logo-row { margin-top: 44px; text-align: center; }
.logo-row h3 { font-size: .95rem; letter-spacing: .08em; color: var(--muted); margin-bottom: 24px; }
.logo-row .logos { display: flex; gap: 44px; justify-content: center; align-items: center; flex-wrap: wrap; }
.logo-row img { height: 44px; width: auto; filter: grayscale(1) opacity(.6); transition: filter .2s; }
.logo-row img:hover { filter: none; }

/* ---------- Utility classes replacing prototype inline styles ---------- */
/* final.html: .sec-head with style="justify-content:center" (Branchen) */
.sec-head.center { justify-content: center; text-align: center; }
