/* Overlay controls sit below the chip and never cover its 2811 label. */
.banner-video-trigger { position:absolute; z-index:3; display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:9px 18px; border:1px solid rgb(255 255 255 / 75%); border-radius:8px; background:rgb(0 38 28 / 48%); color:#fff; cursor:pointer; font-size:clamp(14px,2.4cqw,18px); font-weight:500; line-height:1.3; transition:background-color .18s ease,border-color .18s ease; }
.banner-play-disc { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; flex:none; }
.banner-play-disc svg { display:block; width:100%; height:100%; fill:currentColor; }
.banner-play-label { white-space:nowrap; }
.mobile-page .section-1 .banner-video-trigger { left:50%; bottom:3%; transform:translateX(-50%); width:clamp(136px,36cqw,220px); }
.pc-hero .banner-video-trigger { left:43.64583334cqw; top:40.46875cqw; width:12.5cqw; height:3.64583333cqw; min-height:0; padding:.4cqw .9375cqw; gap:.625cqw; border-radius:999px; font-size:1.25cqw; }
.pc-hero .banner-play-disc { width:1.04166667cqw; height:1.04166667cqw; }
@media (hover:hover) { .banner-video-trigger:hover { background:rgb(0 38 28 / 65%); border-color:#fff; } }
.banner-video-dialog { width:min(1100px,calc(100vw - 32px),calc((100dvh - 92px)*16/9)); max-width:none; max-height:calc(100dvh - 24px); margin:auto; padding:0; border:1px solid rgb(255 255 255 / 22%); border-radius:12px; color:#fff; background:#001e17; box-shadow:0 18px 70px rgb(0 0 0 / 45%); overflow:auto; }
.banner-video-dialog::backdrop { background:rgb(0 0 0 / 50%); }
.banner-video-panel { position:relative; background:#001e17; }
.banner-video-toolbar { display:flex; align-items:center; gap:8px; padding:6px 10px 6px 16px; min-height:52px; }
.banner-video-toolbar h2 { margin:0; margin-right:auto; font-size:16px; line-height:1.3; font-weight:600; }
.banner-video-toolbar button { min-height:40px; padding:4px 12px; border:0; border-radius:6px; color:#fff; background:rgb(255 255 255 / 10%); cursor:pointer; font-size:14px; line-height:1.2; }
.banner-video-toolbar .banner-video-close { width:40px; font-size:28px; padding:0; }
.banner-video-toolbar button:hover { background:rgb(255 255 255 / 20%); }
.banner-video-player { display:block; width:100%; height:auto; aspect-ratio:16/9; background:#000; object-fit:contain; }
.banner-video-error { margin:0; padding:12px 16px; font-size:14px; }
.banner-video-panel:fullscreen { width:100%; height:100%; display:flex; flex-direction:column; background:#000; }
.banner-video-panel:fullscreen .banner-video-player { flex:1; min-height:0; height:calc(100% - 52px); }
@media (prefers-reduced-motion:reduce) { .banner-video-trigger { transition:none; } }

/* A full-viewport fallback also covers browsers that deny native fullscreen. */
.banner-video-dialog.is-mobile-player { inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; border:0; border-radius:0; background:#000; }
.banner-video-dialog.is-mobile-player .banner-video-panel { width:100%; height:100%; display:flex; flex-direction:column; background:#000; }
.banner-video-dialog.is-mobile-player .banner-video-toolbar { flex:none; padding-top:max(6px,env(safe-area-inset-top)); padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(10px,env(safe-area-inset-right)); }
.banner-video-dialog.is-mobile-player .banner-video-player { flex:1; min-height:0; height:0; padding-bottom:env(safe-area-inset-bottom); }

/* The desktop player replaces only the banner area, without changing document flow. */
.pc-banner-player { position:absolute; z-index:5; left:15cqw; top:.625cqw; width:76.25cqw; height:46.875cqw; background:#000; }
.pc-banner-player[hidden] { display:none; }
.pc-banner-media { display:block; width:100%; height:100%; object-fit:contain; background:#000; }
.pc-banner-return { position:absolute; top:12px; right:12px; width:40px; height:40px; border:1px solid rgb(255 255 255 / 65%); border-radius:6px; background:rgb(0 0 0 / 60%); color:#fff; font-size:28px; line-height:1; cursor:pointer; }
.pc-banner-error { position:absolute; left:16px; right:16px; top:50%; color:#fff; text-align:center; }
