/* Glen Affric non-homepage page video backgrounds. Homepage Seasons styles are separate. */
.ga-page-video-target{position:relative;}
.ga-page-video-target>.grve-background-wrapper{overflow:hidden;}
.ga-page-video-stage{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:transparent;}
.ga-page-video-poster,.ga-page-video-fallback,.ga-page-video-media{position:absolute;inset:0;width:100%;height:100%;}
.ga-page-video-poster,.ga-page-video-fallback{background-position:center center;background-repeat:no-repeat;background-size:cover;opacity:0;visibility:hidden;transition:opacity .28s ease;}
.ga-page-video-poster.is-on,.ga-page-video-fallback.is-on{opacity:1;visibility:visible;}
.ga-page-video-media{object-fit:cover;display:block;opacity:0;visibility:hidden;transition:opacity .28s ease;}
.ga-page-video-media.is-on{opacity:1;visibility:visible;}
.ga-page-video-target.ga-page-video-ready>.grve-background-wrapper>.grve-bg-image{opacity:0!important;visibility:hidden!important;}
.ga-page-video-target>.grve-background-wrapper>.grve-bg-overlay{z-index:2;}

/* Shared control styling deliberately mirrors the homepage Seasons controls. */
.ga-page-video-controls,
.ga-page-video-template-controls{display:inline-flex;align-items:center;justify-content:center;gap:10px;pointer-events:auto;}
.ga-page-video-controls .ga-video-toggle-wrap,
.ga-page-video-template-controls .ga-video-toggle-wrap{display:inline-flex;align-items:center;gap:10px;}
.ga-page-video-controls button,
.ga-page-video-template-controls button{appearance:none;border:1px solid rgba(255,255,255,.4);background:transparent;padding:0;border-radius:999px;cursor:pointer;color:#fff;height:36px;width:36px;display:inline-flex;align-items:center;justify-content:center;line-height:10px;transition:border-color .3s ease,background-color .3s ease;}
.ga-page-video-controls button:hover,
.ga-page-video-controls button:focus-visible,
.ga-page-video-template-controls button:hover,
.ga-page-video-template-controls button:focus-visible{border-color:#fff;outline:none;}
.ga-page-video-controls button i,
.ga-page-video-template-controls button i{font-size:10px!important;line-height:1;pointer-events:none;}
.ga-page-video-controls .fa-play,
.ga-page-video-template-controls .fa-play{padding-left:2px;}

/* Match the homepage Seasons play/pause playing ring exactly. */
.ga-page-video-controls .ga-video-toggle-btn,
.ga-page-video-template-controls .ga-video-toggle-btn{position:relative;overflow:visible;}
.ga-page-video-controls .ga-video-toggle-btn::after,
.ga-page-video-template-controls .ga-video-toggle-btn::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:999px;
  pointer-events:none;
  padding:1px;
  background:conic-gradient(from 0deg,rgba(255,255,255,1),rgba(255,255,255,.65),rgba(255,255,255,.25),rgba(255,255,255,0));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  opacity:0;
  transform:rotate(0deg);
  transition:opacity 220ms cubic-bezier(.22,1,.36,1);
}
.ga-page-video-controls .ga-video-toggle-btn.is-playing::after,
.ga-page-video-template-controls .ga-video-toggle-btn.is-playing::after{opacity:.9;animation:gaPageVideoRingSpin 2400ms linear infinite;}
.ga-page-video-controls .ga-video-toggle-btn.is-playing:hover::after,
.ga-page-video-template-controls .ga-video-toggle-btn.is-playing:hover::after{opacity:1;}
@keyframes gaPageVideoRingSpin{to{transform:rotate(360deg)}}

/* Normal/subheader videos keep their controls in the frame itself. */
.ga-page-video-controls-frame{position:absolute;top:24px;right:24px;z-index:20;}
.ga-page-video-controls-frame .ga-video-mute-btn{margin-right:0!important;}

/* Main-header controls are rendered by the theme template, inside its normal
   header flow. Force visible here because the homepage frontend stylesheet is
   intentionally not loaded on these pages. */
.ga-video-controls.ga-page-video-template-controls{display:inline-flex!important;}
.ga-page-video-template-controls .ga-video-mute-btn{margin-right:0!important;}

.ga-page-video-spinner{position:absolute;left:50%;top:50%;width:80px;height:80px;margin:-40px 0 0 -40px;z-index:3;opacity:0;visibility:hidden;transition:opacity .2s ease;}
.ga-page-video-spinner.is-on{opacity:1;visibility:visible;}
.ga-page-video-spinner::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:gaPageVideoSpin 2.4s linear infinite;}
@keyframes gaPageVideoSpin{to{transform:rotate(360deg)}}

/* The automatically injected main-mobile set is content-only. */
.ga-page-video-controls-main-mobile{display:none!important;}

@media(max-width:767px){
  /* Page-video controls leave the site header on mobile. page-videos.css only
     loads on non-homepage pages with active page videos, so this cannot alter
     the homepage Seasons header behaviour. */
  #grve-header .header-video-controls{display:none!important;}
  .ga-page-video-template-controls{display:none!important;}

  /* All page-video controls sit in the section's normal content flow immediately
     above its H1 on mobile, matching the homepage content-control treatment. */
  .ga-page-video-controls-frame.ga-page-video-controls-mobile-content,
  .ga-page-video-controls-main-mobile{
    position:relative;
    top:auto;
    right:auto;
    z-index:20;
    width:100%;
    display:flex!important;
    justify-content:center;
    align-items:center;
    margin:0 0 20px;
    gap:10px;
  }

  /* Match the homepage mobile content-control order: play first, mute second. */
  .ga-page-video-controls-mobile-content .ga-video-toggle-btn{order:1;}
  .ga-page-video-controls-mobile-content .ga-video-mute-btn{order:2;margin-right:0!important;}

  /* If an unusual section has no .grve-column-content/H1 mount, retain the old
     top-right fallback rather than losing its controls. */
  .ga-page-video-controls-frame:not(.ga-page-video-controls-mobile-content){top:15px;right:15px;gap:8px}

  .ga-page-video-controls .ga-video-toggle-wrap,
  .ga-page-video-template-controls .ga-video-toggle-wrap{gap:10px}
  .ga-page-video-controls button,
  .ga-page-video-template-controls button{width:36px;height:36px}
  .ga-page-video-spinner{width:60px;height:60px;margin:-30px 0 0 -30px}
}
@media(prefers-reduced-motion:reduce){.ga-page-video-poster,.ga-page-video-fallback,.ga-page-video-media{transition:none}.ga-page-video-spinner::after,.ga-page-video-controls .ga-video-toggle-btn.is-playing::after,.ga-page-video-template-controls .ga-video-toggle-btn.is-playing::after{animation:none}}
