/* Final shared layer: cinematic typography, accessible controls, responsive archives. */
[hidden], .is-hidden { display: none !important; }
:focus-visible { outline: 2px solid #43ead1; outline-offset: 5px; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 20000; padding: 1rem; background: #43ead1; color: #0c0f0e; }
.skip-link:focus { top: 1rem; }
main { min-height: 65vh; }
body:not(.home-page) :is(.album-hero h1,.video-hero-copy h1,.contact-page h1) { font-size: clamp(3.1rem, 7.4vw, 7.6rem) !important; line-height: 1.01 !important; letter-spacing: -.065em !important; text-transform: none; margin: .4rem 0 1.6rem; overflow-wrap: anywhere; }
h1 em { font-style: normal; color: var(--bam-teal); }
body:not(.home-page) :is(.album-hero,.video-hero-panel) { padding: clamp(1.6rem, 4vw, 4rem); background: radial-gradient(ellipse at 90% 20%, #20423a66, transparent 65%), #141817 !important; min-height: 360px; }
body:not(.home-page) :is(.album-hero,.video-hero-panel)::after { content: "FILMLY / SELECTED WORK"; }
.album-hero > div:first-child { position: relative; z-index: 1; max-width: 850px; }
.album-hero-orbit { opacity: .5; }
.album-hero p, .video-hero-copy p { max-width: 600px; line-height: 1.75; }
.album-toolbar { gap: 1.5rem; flex-wrap: wrap; padding: 1.2rem !important; margin: 1.5rem 0; }
.album-menu, .video-category-menu { display: flex; flex-wrap: wrap; gap: .6rem; }
.album-btn, .layout-btn, .video-filter { min-height: 44px; padding: .65rem 1rem; border: 1px solid #ffffff24; background: transparent; color: #dce1dd; font: inherit; cursor: pointer; border-radius: 3px; }
.video-filter.active { background: #43ead1; color: #0c0f0e; border-color: #43ead1; }
.album-content .album-gallery { gap: 12px; }
.album-shot { position: relative; overflow: hidden; }
.album-shot > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.album-shot:hover > img { transform: scale(1.045); }
.album-shot .shot-caption, .album-shot .shot-number { z-index: 2; }
.album-shot::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, #000a); pointer-events: none; }
.shot-expand { position: absolute; right: 18px; top: 16px; z-index: 2; font-size: 1.6rem; color: white; }
.image-unavailable { background: #242a27 !important; }
.archive-count { font-family: monospace; font-size: .8rem; padding: 1rem 0; }
.gallery-status, .gallery-empty { padding: clamp(1.5rem, 4vw, 4rem); background: #141817; border: 1px solid #ffffff12; }
.gallery-empty h2 { font-size: clamp(1.8rem, 4vw, 3.3rem); max-width: 650px; letter-spacing: -.04em; }
.gallery-empty p { max-width: 580px; line-height: 1.7; }
.gallery-empty .btn { margin-top: 1rem; }
.private-gallery { margin-top: 3rem; border-top: 1px solid #ffffff24; padding: 3rem 0 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.private-gallery h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.1; letter-spacing: -.05em; }
.private-gallery p { line-height: 1.7; max-width: 420px; }
.private-gallery form { display: grid; gap: 1rem; align-content: start; }
.private-gallery label, .contact-form label { display: grid; gap: .6rem; font-size: .9rem; color: #e5e9e6; }
.private-gallery input, .contact-form :is(input,textarea,select) { box-sizing: border-box; width: 100%; min-width: 0; padding: 1rem; font: inherit; }
.text-button { background: none; color: #43ead1; font: inherit; border: 0; text-decoration: underline; cursor: pointer; padding: .5rem; }
.gallery-open { overflow: hidden; }
.album-lightbox { z-index: 15000 !important; background: #060807f5 !important; }
.album-lightbox-stage { max-width: min(1100px, 85vw); }
.album-lightbox-stage img { max-height: 75dvh; object-fit: contain; }
.album-lightbox :is(.lightbox-prev,.lightbox-next,.album-lightbox-close) { position: absolute; z-index: 3; background: #242d29; color: white; border: 1px solid #ffffff33; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; font-size: 1.5rem; }
.lightbox-prev { left: 1rem; top: 48%; }
.lightbox-next { right: 1rem; top: 48%; }
.video-hero-card { align-self: end; border-left: 2px solid #43ead1; padding: 1.4rem; }
.video-hero-panel { align-items: center; gap: 2rem; }
.video-play { width: 100%; height: 100%; min-height: 230px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .8rem; color: #fff; font: inherit; border: 0; cursor: pointer; background: linear-gradient(120deg,#07110bc9,#15251d9c), url('./assets/images/video-card-bg.jpg') center / cover; }
.play-icon { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 50%; border: 1px solid #43ead1; color: #43ead1; transition: transform .25s, background .25s; }
.video-play:hover .play-icon { background: #43ead1; color: #0c0f0e; transform: scale(1.1); }
.video-play small { font-size: .7rem; color: #c4ccc6; }
.video-card-meta h2 { line-height: 1.35; overflow-wrap: anywhere; }
.contact-page > .section-head { margin-bottom: 3rem; }
.contact-showcase { align-items: start; }
.contact.card { padding: clamp(1.5rem, 3vw, 3rem); }
.contact-form { gap: 1.2rem; }
.form-note { font-size: .78rem; line-height: 1.6; }
.form-note a, .contact-email { color: #43ead1; }
.contact-email { display: block; margin: 1rem 0 1.5rem; overflow-wrap: anywhere; }
.map-consent { min-height: 330px; height: 100%; padding: 2rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: repeating-linear-gradient(0deg,transparent,transparent 39px,#43ead10b 40px),repeating-linear-gradient(90deg,#151d19,#151d19 39px,#43ead10b 40px); }
.map-marker { color: #43ead1; font-size: 4rem; }
.map-consent strong { font-size: 1.35rem; }
.map-consent small { max-width: 250px; margin-top: 1rem; color: #a5b1aa; line-height: 1.5; }
.filmly-chat-panel { max-height: min(740px, calc(100dvh - 115px)) !important; }
.filmly-chat-panel[aria-hidden="true"] { visibility: hidden; }
.filmly-chat-messages { overscroll-behavior: contain; }
.chat-message p { line-height: 1.6; }
.chat-message a { color: #43ead1; text-underline-offset: 4px; }
.chat-typing { padding: .8rem 1rem; color: #a5b1aa; font-size: .8rem; }
.filmly-chat-suggestions { flex-wrap: wrap; }
.filmly-chat-suggestions button { min-height: 38px; }
.filmly-chat-form input { min-width: 0; }
button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 760px) {
  body:not(.home-page) :is(.album-hero,.video-hero-panel) { min-height: 0; padding-top: 3rem; }
  .video-hero-panel, .private-gallery { grid-template-columns: 1fr; gap: 1.5rem; }
  .album-toolbar { align-items: stretch; }
  .album-layout-toggle { flex-wrap: wrap; }
  .contact-showcase { grid-template-columns: minmax(0,1fr) !important; }
  .album-lightbox-stage { max-width: 94vw; }
  .lightbox-prev, .lightbox-next { top: auto; bottom: 1rem; }
  .private-gallery { margin-top: 1rem; padding-top: 2rem; }
  .filmly-chat { right: 14px !important; bottom: 14px !important; }
  .filmly-chat-panel { width: min(390px,calc(100vw - 28px)) !important; }
  input, textarea, select { font-size: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.contact-page .route-card { display: block; min-height: 0; padding: 0; }
.contact-page .map-frame-wrap { height: 330px; min-height: 0; border-radius: 0; }
.contact-page .map-frame-wrap iframe { width: 100%; height: 100%; border: 0; }
.contact-page .map-consent { min-height: 0; box-sizing: border-box; }
.contact-page .map-meta { padding: 2rem; }
/* Keep the ticker flush with adjacent sections on narrow Safari viewports. */
.bam-marquee > div { padding: 1rem 2rem 1rem 0; }
.bam-marquee span, .bam-marquee i { line-height: 1.3; flex-shrink: 0; }
@media (max-width: 760px) {
  .bam-marquee { transform: none; width: 100%; margin: 0; border: 0; }
}
