/*
 * Kameramann Schweiz – Mobile Film Stage 3.1.2
 * Only loaded on the home page. CMS image focus remains effective on desktop;
 * up to 900 CSS px the original images are shown in full, without cropping.
 */
.home-hero__screening { display:contents; }
.home-hero__media { left:calc((100% - 100vw) / 2); right:auto; width:100vw; }
.home-hero__topline,.home-hero__feature,.home-hero__footer { position:relative; z-index:1; }
.home-hero__mobile-intro,.home-hero__frame-heading,.home-hero__frame-play,.home-hero__photo-note,.home-hero__followup,.home-hero__image-fallback { display:none; }
.home-hero svg { display:block; width:22px; height:22px; flex:none; }
.home-hero .hero-icon--back { transform:rotate(180deg); }
.home-hero__feature-play>i svg { width:20px; height:20px; }
.home-hero__pause svg { width:18px; height:18px; }
.home-hero .text-action>span { color:var(--lime); }
.home-hero__announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.home-hero__image-fallback { position:absolute; inset:0; place-items:center; padding:22px; color:var(--muted); font-size:.8125rem; text-align:center; background:radial-gradient(ellipse at center,#1a211b,#090d0a); }
.home-hero__slide.is-image-unavailable .home-hero__image-fallback { display:grid; }
.home-hero__slide.is-image-unavailable picture { visibility:hidden; }
.home-hero__noscript { position:relative; z-index:2; grid-column:1/-1; color:var(--muted); font-size:.875rem; }
.home-hero__noscript a { text-decoration:underline; text-underline-offset:3px; }

@media (max-width:900px) {
    .page-home .global-header { background:rgba(8,10,9,.96); border-bottom:1px solid var(--line-soft); }
    .home-hero { min-height:0; background:radial-gradient(ellipse at 100% 6%,rgba(172,214,62,.042),transparent 43%),var(--bg); }
    .home-hero__shell { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(6,auto); width:min(680px,calc(100% - 40px)); min-height:0; padding:var(--header) 0 42px; column-gap:0; }
    .home-hero__topline { grid-column:1; grid-row:1; display:block; padding-top:26px; font-size:.6875rem; line-height:1.5; letter-spacing:.11em; color:#a4aca4; }
    .home-hero__topline>span:last-child { display:none; }
    .home-hero__content { display:contents; }
    .home-hero__h1-kicker { display:none; }
    .home-hero h1 { grid-column:1; grid-row:2; margin:17px 0 0; max-width:100%; font-size:clamp(3rem,13.3vw,4.6rem); font-weight:500; line-height:1.02; letter-spacing:-.047em; }
    .home-hero__mobile-intro { display:block; grid-column:1; grid-row:3; margin:17px 0 25px; color:#b9c0b7; font-size:.9375rem; line-height:1.55; letter-spacing:0; }
    .home-hero__screening { display:grid; grid-column:1; grid-row:4; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto auto; min-width:0; padding:0; }
    .home-hero__frame-heading { grid-column:1; grid-row:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 0 11px; font-size:.625rem; line-height:1.6; letter-spacing:.13em; font-weight:600; text-transform:uppercase; color:#bddc73; }
    .home-hero__frame-heading>span:first-child { display:flex; align-items:center; gap:9px; min-width:0; }
    .home-hero__frame-heading i { width:17px; height:1px; flex:none; background:var(--lime); }
    .home-hero__frame-format { color:#949d94; font-size:.5625rem; letter-spacing:.1em; font-weight:400; }
    /* Autoplay remains controllable without shrinking arrows or project dots. */
    .home-hero__frame-heading>span:first-child { margin-right:auto; }
    .home-hero__frame-heading>.home-hero__pause { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; border:1px solid rgba(255,255,255,.19); border-radius:2px; color:var(--text); background:#0e130f; cursor:pointer; -webkit-tap-highlight-color:transparent; }
    .home-hero__frame-heading>.home-hero__pause[aria-pressed="true"] { color:var(--lime); border-color:rgba(172,214,62,.5); }
    .home-hero__frame-heading>.home-hero__pause:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }

    .home-hero__media { position:relative; grid-column:1; grid-row:2; left:auto; right:auto; inset:auto; width:100%; height:auto; aspect-ratio:16/9; min-width:0; isolation:isolate; overflow:hidden; border:1px solid rgba(212,223,203,.2); border-radius:3px; background:#020403; box-shadow:0 12px 34px rgba(0,0,0,.24); pointer-events:auto; touch-action:pan-y pinch-zoom; }
    .home-hero__slide { transform:none; transition:opacity .38s ease; }
    .home-hero__slide picture { width:100%; height:100%; }
    .home-hero__media .home-hero__image { width:100%; height:100%; object-fit:contain!important; object-position:50% 50%!important; transform:none!important; filter:none!important; }
    .home-hero__media .home-hero__overlay,.home-hero__media .home-hero__grain,.home-hero__media .home-hero__grid { display:none; }
    .home-hero__frame-play { position:absolute; z-index:5; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; width:max-content; max-width:calc(100% - 32px); min-height:76px; padding:4px 0; border:0; border-radius:3px; background:none; color:var(--text); cursor:pointer; -webkit-tap-highlight-color:transparent; }
    .home-hero__frame-play>i { display:grid; place-items:center; width:56px; height:56px; border:1px solid rgba(231,255,185,.55); border-radius:50%; color:#101a08; background:var(--lime); box-shadow:0 4px 24px rgba(0,0,0,.34),0 0 0 5px rgba(4,8,4,.18); transition:background .2s,transform .2s; }
    .home-hero__frame-play svg { width:27px; height:27px; margin-left:1px; }
    .home-hero__frame-play>span { display:block; max-width:100%; padding:4px 11px 5px; border:1px solid rgba(255,255,255,.15); border-radius:2px; color:#f4f5f0; background:rgba(5,9,6,.88); font-size:.75rem; font-weight:500; line-height:1.45; text-align:center; overflow-wrap:anywhere; }
    .home-hero__frame-play:focus-visible { outline:2px solid var(--lime); outline-offset:8px; }
    .home-hero__frame-play:active>i { transform:scale(.94); }
    .home-hero__photo-note { position:absolute; z-index:3; left:12px; bottom:12px; display:block; max-width:calc(100% - 24px); margin:0; padding:5px 10px; border:1px solid rgba(255,255,255,.18); border-radius:2px; color:#e3e8df; background:rgba(4,7,5,.86); font-size:.6875rem; line-height:1.5; }
    .home-hero__footer { display:block; grid-column:1; grid-row:3; margin:0; padding:10px 0 12px; border-top:0; border-bottom:1px solid var(--line); }
    .home-hero__carousel-controls { display:grid; grid-template-columns:44px auto minmax(0,1fr) 44px; align-items:center; gap:10px; width:100%; }
    .home-hero__carousel-controls>button { width:44px; height:44px; min-width:44px; padding:0; border:1px solid rgba(255,255,255,.19); border-radius:2px; background:#0e130f; color:var(--text); }
    .home-hero__carousel-controls>button:hover { transform:none; }
    .home-hero__carousel-controls>[data-hero-prev] { grid-column:1; grid-row:1; }
    .home-hero__carousel-controls>[data-hero-next] { grid-column:4; grid-row:1; }
    .home-hero__counter { grid-column:2; grid-row:1; gap:6px; min-width:58px; padding-left:3px; font-variant-numeric:tabular-nums; }
    .home-hero__counter strong { font-size:1.0625rem; line-height:1; font-weight:500; color:var(--text); }
    .home-hero__counter>span { color:#a0aaa0; font-size:.6875rem; line-height:1.5; font-weight:400; letter-spacing:.025em; }
    .home-hero__dots { display:flex; grid-column:3; grid-row:1; align-items:center; justify-content:flex-end; gap:0; min-width:0; }
    .home-hero__dots button { width:22px; min-width:0; height:44px; flex:0 1 22px; padding:0 4px; }
    .home-hero__dots button::before { height:2px; background:#3c463d; }
    .home-hero__dots button[aria-pressed="true"]::before { background:var(--lime); transform:none; }
    .home-hero__carousel-controls>.home-hero__pause,.home-hero__progress,.home-hero__footer-meta { display:none; }
    .home-hero__feature { display:block; grid-column:1; grid-row:4; max-width:none; align-self:start; margin:0; padding:15px 0 0; border:0; }
    .home-hero__feature-meta { display:block; }
    .home-hero__feature-meta>span { display:none; }
    .home-hero__feature-meta>small { display:block; margin:0 0 7px; color:#a7b197; font-size:.6875rem; font-weight:500; line-height:1.5; letter-spacing:.055em; overflow-wrap:anywhere; }
    .home-hero__feature-copy h2 { display:block; max-width:100%; margin:0; font-size:1.1875rem; font-weight:500; letter-spacing:-.02em; line-height:1.4; overflow:visible; text-wrap:pretty; }
    .home-hero__feature .home-hero__feature-play { display:none; }
    .home-hero__supporting { grid-column:1; grid-row:5; min-width:0; margin-top:26px; padding-top:23px; border-top:1px solid var(--line-soft); }
    .home-hero__followup:not(:empty) { display:block; grid-column:1; grid-row:5; min-width:0; }
    .home-hero__lead { max-width:590px; margin:0; color:#b4bcb3; font-size:1rem; font-weight:400; line-height:1.7; }
    .hero-actions { display:flex; flex-flow:row wrap; align-items:center; gap:15px 24px; margin-top:22px; }
    .hero-actions .button { width:auto; min-height:50px; padding:11px 17px; font-size:.875rem; gap:18px; }
    .hero-actions .text-action { min-height:44px; font-size:.875rem; }
    .hero-actions svg { width:20px; height:20px; }
    .home-hero__noscript { grid-column:1; grid-row:5; }
}
@media (min-width:761px) and (max-width:900px) {
    .home-hero__shell { padding-bottom:56px; }
    .home-hero__topline { padding-top:32px; }
    .home-hero h1 { font-size:4.5rem; }
    .home-hero__frame-play>i { width:68px; height:68px; }
    .home-hero__frame-play>span { font-size:.875rem; }
}
@media (max-width:380px) {
    .home-hero__shell { width:calc(100% - 32px); }
    .home-hero__topline { padding-top:22px; }
    .home-hero h1 { font-size:clamp(2.75rem,13.3vw,3.1rem); margin-top:15px; }
    .home-hero__mobile-intro { font-size:.875rem; margin:14px 0 21px; }
    .home-hero__carousel-controls { gap:7px; }
    .home-hero__counter { min-width:52px; padding-left:0; }
    .home-hero__dots button { padding-inline:3px; }
    .home-hero__feature-copy h2 { font-size:1.125rem; }
    .home-hero__frame-play>i { width:50px; height:50px; }
    .home-hero__frame-format { display:none; }
}
@media (max-width:900px) and (hover:hover) {
    .home-hero__frame-play:hover>i { background:var(--lime-light); transform:scale(1.05); }
}
@media (prefers-reduced-motion:reduce) {
    .home-hero__slide,.home-hero__frame-play>i { transition:none; }
}
/* Existing 320px overflow in the experience strip, outside the carousel. */
@media (max-width:380px) {
    .page-home .profile-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .page-home .profile-stats>div { min-width:0; }
    .page-home .profile-stats span { overflow-wrap:anywhere; }
}
.home-hero[data-slide-count="1"] .home-hero__progress { display:none; }
@media (max-width:900px) {
    .home-hero[data-slide-count="1"] .home-hero__carousel-controls { grid-template-columns:1fr; }
    .home-hero[data-slide-count="1"] .home-hero__counter { grid-column:1; padding-left:0; }
}
