/* TikTok loads only after consent; nearby hosted videos preload their opening frame with native controls. */
.video-page,.video-highlights { --bg:var(--cp-bg); --surface:var(--cp-surface); --ink:var(--cp-text); --muted:var(--cp-text-muted); --line:var(--cp-border); --accent:var(--cp-accent); --soft:var(--cp-surface-soft); --faint:var(--cp-bg-elevated); color:var(--cp-text); }
.video-page { min-height:100dvh; background:var(--cp-bg); }
.video-page .skip-link { background:var(--cp-surface); color:var(--cp-text); }
.video-page .nav-actions a { display:inline-flex; min-height:44px; align-items:center; }
.video-heading { padding:48px 0 30px; max-width:760px; }
.video-heading h1 { font:400 clamp(2.6rem,5vw,4.3rem)/1.06 Georgia,serif; letter-spacing:-.04em; margin:13px 0 22px; }
.video-heading p { color:var(--muted); max-width:64ch; font-size:14px; line-height:1.8; }
.video-filters { display:grid; grid-template-columns:2fr 1fr 1fr auto; align-items:end; gap:16px; margin-bottom:24px; }
.video-filters label { display:block; font-size:11px; margin:0 0 8px; color:var(--muted); }
.video-filters input,.video-filters select { width:100%; min-height:44px; border:1px solid var(--cp-border-strong); background:var(--surface); color:var(--ink); padding:10px 12px; font:inherit; font-size:13px; }
.video-filters input::placeholder { color:var(--muted); opacity:1; }
.video-filter-button { min-height:44px; padding:10px 18px; background:var(--accent); color:var(--cp-accent-fg); border:1px solid var(--accent); cursor:pointer; }
.video-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:28px; }
.video-card { display:flex; flex-direction:column; min-width:0; padding:26px; background:var(--surface); border:1px solid var(--line); }
.video-card-copy,.video-card-body { min-width:0; }
.video-card-body { margin-top:auto; }
@supports(grid-template-rows:subgrid) {
  .video-card { display:grid; grid-template-rows:subgrid; grid-row:span 2; row-gap:0; }
  .video-card-body { margin-top:0; }
}
.video-card h2,.video-card h3 { font:400 1.8rem/1.2 Georgia,serif; letter-spacing:-.02em; margin:8px 0 15px; }
.video-location { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); }
.video-description { font-size:13px; line-height:1.8; color:var(--muted); overflow-wrap:anywhere; }
.video-type { display:block; width:fit-content; margin-bottom:12px; padding:4px 9px; border:1px solid var(--cp-border); background:var(--cp-accent-soft); color:var(--cp-accent); font-size:11px; }
.video-type-help { margin:0 0 24px; max-width:75ch; padding:12px 16px; background:var(--cp-surface-soft); border-left:2px solid var(--cp-accent); font-size:13px; line-height:1.7; color:var(--cp-text-muted); }
.video-attraction { color:var(--cp-text-muted); font-size:14px; margin:0 0 14px; overflow-wrap:anywhere; }
.video-conversion { margin-top:20px; padding-top:20px; border-top:1px solid var(--cp-border); }
.video-action { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; background:var(--cp-accent); color:var(--cp-accent-fg); font-size:14px; font-weight:600; text-decoration:none; }
.video-action:hover { background:var(--cp-accent-hover); }
.video-action:focus-visible { outline:3px solid var(--cp-accent); outline-offset:4px; }
.video-action-note { color:var(--cp-text-muted); font-size:12px; line-height:1.7; max-width:55ch; margin:12px 0 0; }
.video-filters { grid-template-columns:2fr repeat(3,minmax(0,1fr)) auto; }
.video-enquiry { margin-bottom:24px; padding:22px; background:var(--cp-surface); border:1px solid var(--cp-border); }
.video-enquiry h3 { margin:0 0 10px; font-size:18px; }
.video-enquiry p { margin:8px 0; color:var(--cp-text-muted); line-height:1.7; }
.video-enquiry button { min-height:44px; padding:10px 15px; margin:10px 12px 0 0; border:1px solid var(--cp-border-strong); color:var(--cp-accent); background:var(--cp-surface); }
.video-enquiry button:focus-visible { outline:3px solid var(--cp-accent); outline-offset:3px; }
.video-enquiry a { color:var(--cp-accent); }
.video-tags { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0; }
.video-tags span { font-size:10px; border:1px solid var(--line); padding:3px 7px; color:var(--muted); }
.tiktok-player { --video-border:var(--cp-border); --video-text:var(--cp-text); --video-muted:var(--cp-text-muted); --video-accent:var(--cp-accent); --video-bg:var(--cp-bg); --video-soft:var(--cp-surface-soft); margin-top:18px; }
.tiktok-frame-host { width:100%; min-height:280px; background:var(--video-bg); border:1px solid var(--video-border); }
.tiktok-placeholder { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; padding:28px; color:var(--video-text); }
.tiktok-placeholder p { max-width:35ch; font-size:16px; line-height:1.6; margin:0; }
.video-service { text-transform:uppercase; letter-spacing:.14em; font-size:10px; color:var(--video-muted); }
.video-load,.video-unload { min-height:44px; border:1px solid var(--video-accent); background:transparent; color:var(--video-accent); padding:10px 18px; font:inherit; font-size:12px; cursor:pointer; }
.video-load:hover,.video-unload:hover { background:var(--video-soft); }
.video-load:active,.video-unload:active { transform:scale(.98); }
.video-load:focus-visible,.video-unload:focus-visible,.video-original:focus-visible { outline:2px solid var(--video-accent); outline-offset:4px; }
.tiktok-frame { display:block; width:100%; min-height:540px; height:600px; border:0; background:var(--video-bg); }
.local-video { display:block; width:100%; max-height:680px; min-height:180px; margin-top:12px; background:var(--video-bg); object-fit:contain; border:1px solid var(--video-border); }
.video-card .local-video { aspect-ratio:16/9; height:auto; min-height:0; max-height:none; }
.local-video:focus-visible { outline:2px solid var(--video-accent); outline-offset:4px; }
.local-video-player .video-service { display:block; }
.video-note,.video-player-status { color:var(--video-muted); font-size:11px; line-height:1.8; margin:12px 0; overflow-wrap:anywhere; }
.video-player-status:empty { display:none; }
.video-player-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.video-original { color:var(--video-accent); font-size:12px; min-height:44px; display:inline-flex; align-items:center; }
.video-count { font-size:12px; color:var(--muted); min-height:24px; }
.video-pagination { display:flex; align-items:center; justify-content:center; gap:22px; padding:30px 0; }
.video-pagination button { padding:10px 18px; min-height:44px; background:var(--surface); border:1px solid var(--line); color:var(--accent); }
.video-pagination span { font-size:12px; color:var(--muted); }
.video-empty { grid-column:1/-1; padding:38px; border:1px solid var(--line); background:var(--surface); }
.video-empty h2 { font:400 2rem Georgia,serif; margin:0 0 15px; }
.video-empty p { font-size:13px; line-height:1.8; color:var(--muted); }
.video-highlights { padding-block:60px; border-top:1px solid var(--cp-border,#d8dfe2); }
.video-highlights h2 { font:400 clamp(2rem,4vw,3rem)/1.15 Georgia,serif; margin:12px 0 18px; }
.video-highlights>p { max-width:65ch; font-size:14px; line-height:1.8; color:var(--cp-text-muted,#64717a); }
.video-highlights>a { display:inline-block; padding:18px 0; color:var(--cp-accent,#235778); font-size:13px; }
.video-highlights .video-grid { margin-top:26px; }
@media(max-width:760px) { .video-grid { grid-template-columns:minmax(0,1fr); } .video-filters { grid-template-columns:1fr 1fr; } .video-filters>div:first-child { grid-column:1/-1; } .video-card { padding:20px; } .video-page .nav { gap:15px; } .video-page .nav-actions { gap:14px; } .video-heading { padding-top:32px; } .tiktok-frame { height:560px; } }
@media(max-width:420px) { .video-filters { grid-template-columns:minmax(0,1fr); } .video-filters input,.video-filters select { font-size:16px; } .video-card { padding:16px; } .tiktok-placeholder { padding:20px; } .video-page .brand { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { .video-load:active,.video-unload:active { transform:none; } }
