/* SECTIONS – page-specific blocks. */

/* Hero slider */
.hero { position: relative; min-height: min(86vh, 820px); overflow: hidden; }
.hero__slides { position: absolute; inset: 0; }
.hero__slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.hero__slide.is-active { opacity: 1; visibility: visible; }
.hero__media, .hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 11, 13, .85), rgba(11, 11, 13, .15)); }
.hero__content { position: relative; z-index: 2; max-width: var(--container); }
.hero__title { max-width: 14ch; }
.hero__text { max-width: 46ch; color: var(--color-muted); font-size: 1.15rem; }
.hero__controls { position: absolute; bottom: 2rem; left: 0; right: 0; z-index: 3; display: flex; align-items: center; gap: 1rem; }
.hero__dots { display: flex; gap: .6rem; }
.hero__dot { width: 28px; height: 3px; padding: 0; border: 0; background: rgba(255, 255, 255, .35); cursor: pointer; }
.hero__dot.is-active { background: var(--color-accent); }
.hero__arrow { width: 40px; height: 40px; border: 1px solid var(--color-border); background: none; border-radius: 50%; cursor: pointer; position: relative; color: var(--color-text); }
.hero__arrow::after { content: ""; position: absolute; inset: 0; margin: auto; width: 8px; height: 8px; border: solid currentColor; border-width: 2px 2px 0 0; transform: rotate(45deg); }
.hero__arrow--prev::after { transform: rotate(-135deg); }

/* Page hero */
.page-hero { position: relative; padding-block: clamp(4rem, 10vw, 8rem) clamp(2rem, 4vw, 3rem); overflow: hidden; }
.page-hero__media, .page-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.page-hero__content { position: relative; z-index: 1; }
.page-hero__title { max-width: 18ch; }
.page-hero__intro { max-width: 60ch; color: var(--color-muted); font-size: 1.1rem; }

/* Studio intro (home) */
.studio-intro__inner { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 900px; }
.studio-intro__inner:has(.studio-intro__media) { grid-template-columns: 1fr 1fr; max-width: var(--container); align-items: center; }
.studio-intro__text { color: var(--color-muted); font-size: 1.1rem; }

/* Newsletter */
.newsletter { background: var(--color-surface); }
.newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.newsletter__form { display: flex; flex-wrap: wrap; gap: .75rem; }
.newsletter__form input[type="email"] { flex: 1 1 240px; width: auto; }
.newsletter__form .form-message { flex-basis: 100%; }

/* Cinematic banner */
.cinematic-banner { position: relative; min-height: 50vh; display: grid; place-items: center; text-align: center; overflow: hidden; }
.cinematic-banner__media, .cinematic-banner__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cinematic-banner__media::after { content: ""; position: absolute; inset: 0; background: rgba(11, 11, 13, .6); }
.cinematic-banner__content { position: relative; z-index: 1; padding-block: 5rem; }
.cinematic-banner__title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.75rem); margin: 0 0 .5rem; }
.cinematic-banner__text { color: var(--color-muted); letter-spacing: .12em; text-transform: uppercase; }

/* Studio page */
.studio-story__media { margin: 0 0 2.5rem; }
.studio-story__image { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--radius); }
.studio-story__body { max-width: var(--container-narrow); }
.values__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem; margin-top: 2rem; }
.values__item { border-top: 1px solid var(--color-border); padding-top: 1.25rem; }
.team__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; margin-top: 2rem; }
.team__image { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); margin-bottom: 1rem; }
.team__role { color: var(--color-accent); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.cta-band { text-align: center; border-top: 1px solid var(--color-border); }
.cta-band__text { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 2.75rem); }

/* Films archive */
.films-group__title { margin-bottom: 2rem; }

/* Contact */
.contact__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 5vw, 5rem); }
.contact__heading { font-size: 1.4rem; }
.contact__info-col .contact__heading:not(:first-child) { margin-top: 2.5rem; }
.contact__map { margin-top: 3rem; }
.contact__map iframe, .contact__map-image { width: 100%; min-height: 360px; border: 0; border-radius: var(--radius); }
.contact__map-caption { margin-top: .75rem; color: var(--color-muted); font-size: .85rem; }
