.video-gallery-page { background: #f4f2ed; }
.video-hero { padding: clamp(5rem, 10vw, 9rem) 0 clamp(3rem, 7vw, 6rem); overflow: hidden; }
.video-hero__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr); gap: 3rem 6rem; align-items: end; }
.video-hero h1 { max-width: 12ch; margin: .8rem 0 0; font-family: "Playfair Display", Georgia, serif; font-size: clamp(3.3rem, 8vw, 7.2rem); line-height: .94; letter-spacing: -.055em; }
.video-hero h1 em { color: #ed8321; font-weight: inherit; }
.video-hero__grid > p { margin: 0 0 .5rem; color: #5e5a53; font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.75; }
.video-library { padding: 0 0 clamp(5rem, 10vw, 9rem); }
.video-library__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 2rem; padding: 1.5rem 0; border-top: 1px solid rgba(19,18,16,.18); }
.video-library__heading h2 { margin: 0; font-size: 1rem; text-transform: uppercase; letter-spacing: .12em; }
.video-library__heading span { color: #746f66; font-size: .85rem; }
.video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem) clamp(1rem, 3vw, 2rem); }
.video-card { min-width: 0; }
.video-card__media { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: 1.2rem; background: #161512; aspect-ratio: 16 / 9; cursor: pointer; }
.video-card__media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s ease, opacity .3s ease; }
.video-card__media:hover img, .video-card__media:focus-visible img { transform: scale(1.025); opacity: .78; }
.video-card__media:focus-visible { outline: 3px solid #ed8321; outline-offset: 4px; }
.video-card__play { position: absolute; inset: 50% auto auto 50%; width: 4.5rem; height: 4.5rem; display: grid; place-items: center; transform: translate(-50%, -50%); border-radius: 50%; background: #ed8321; box-shadow: 0 1rem 3rem rgba(0,0,0,.25); }
.video-card__play i { width: 0; height: 0; margin-left: .3rem; border-top: .65rem solid transparent; border-bottom: .65rem solid transparent; border-left: 1rem solid #fff; }
.video-card__copy { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding-top: 1.35rem; }
.video-card__copy > span { color: #ed8321; font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.video-card__copy h3 { margin: 0; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.35rem, 2.5vw, 2rem); line-height: 1.15; }
.video-card__copy p { margin: .7rem 0 0; color: #6d685f; line-height: 1.65; }
.video-empty { padding: clamp(3rem, 8vw, 7rem); border-radius: 1.4rem; background: #151512; color: #fff; text-align: center; }
.video-empty h2 { margin: 0 0 .7rem; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2rem, 5vw, 4rem); }
.video-empty p { margin: 0; color: rgba(255,255,255,.65); }
.video-modal[hidden] { display: none; }
.video-modal { position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(8,8,7,.86); backdrop-filter: blur(10px); }
.video-modal__dialog { width: min(1100px, 100%); overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 1.2rem; background: #111; color: #fff; box-shadow: 0 2rem 7rem rgba(0,0,0,.48); }
.video-modal__bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.2rem; }
.video-modal__bar h2 { margin: 0; font-size: 1rem; }
.video-modal__bar button { flex: 0 0 auto; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: transparent; color: #fff; cursor: pointer; }
.video-modal__frame { aspect-ratio: 16 / 9; background: #000; }
.video-modal__frame iframe { width: 100%; height: 100%; border: 0; }
body.has-video-modal { overflow: hidden; }
@media (max-width: 760px) { .video-hero__grid, .video-grid { grid-template-columns: 1fr; } .video-hero { padding-top: 4rem; } .video-card__play { width: 3.7rem; height: 3.7rem; } }
@media (prefers-reduced-motion: reduce) { .video-card__media img { transition: none; } }
