
:root{
  --gp-bg: #0b0d10;
  --gp-surface: #11151b;
  --gp-surface-2:#151b23;
  --gp-border: rgba(255,255,255,0.08);
  --gp-text: #e8edf4;
  --gp-muted: rgba(232,237,244,0.72);
  --gp-accent: #7c5cff;
  --gp-radius: 16px;
  --gp-shadow: 0 10px 30px rgba(0,0,0,.35);
  --gp-container: 1240px;
  --gp-pad: clamp(16px, 2.2vw, 28px);
  --gp-overlay: 0.72;
  --gp-logoW: 46px;
}

/* Base */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background: var(--gp-bg);
  color: var(--gp-text);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.1px;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
a{color:inherit; text-decoration:none}
a:hover{color: var(--gp-text)}
a:focus-visible{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}
img{max-width:100%; height:auto; display:block}
::selection{background: rgba(124,92,255,0.35)}


/* Safety: prevent accidental horizontal scroll from long content / full-width blocks. */
html, body{max-width:100%; overflow-x:hidden;}
main{display:block; max-width:100%;}
pre, code{max-width:100%;}
pre{overflow:auto;}
/* If a container ever gets nested, don't double-pad. */
.gp-container .gp-container{padding-left:0; padding-right:0;}
/* Keep Gutenberg wide/full alignments from breaking layout in a classic theme. */
.gp-container .alignwide,
.gp-container .alignfull{max-width:100%; margin-left:0; margin-right:0;}

/* Layout */
.gp-container{width:100%; max-width: var(--gp-container); margin:0 auto; padding: 0 var(--gp-pad);}
.gp-section{padding: clamp(18px, 2.6vw, 34px) 0;}
.gp-grid{display:grid; gap: 14px;}
.gp-grid-3{grid-template-columns: repeat(3, minmax(0, 1fr));}
.gp-grid-cards{grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));}

.gp-grid-2{grid-template-columns: repeat(2, minmax(0, 1fr));}
@media (max-width: 960px){
  .gp-grid-3{grid-template-columns: 1fr;}
  .gp-grid-2{grid-template-columns: 1fr;}
}

/* Cards */
.gp-card{
  background: linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.02));
  border: 1px solid var(--gp-border);
  border-radius: var(--gp-radius);
  box-shadow: var(--gp-shadow);
  overflow:hidden;
  position:relative;
}
.gp-card{transition: transform 180ms cubic-bezier(.2,.8,.2,1), border-color 180ms cubic-bezier(.2,.8,.2,1);}
.gp-card:hover{transform: translateY(-3px); border-color: rgba(124,92,255,0.35)}
.gp-card-pad{padding: 16px;}
.gp-card-title{font-size: 15px; font-weight: 650; letter-spacing: -0.2px; margin:0 0 8px}
.gp-muted{color: var(--gp-muted)}
.gp-pill{
  display:inline-flex; gap:8px; align-items:center;
  font-size: 12px; padding: 6px 10px; border-radius: 999px;
  border: 1px solid var(--gp-border);
  background: rgba(0,0,0,0.20);
}
.gp-pill.is-active{
  background: rgba(124,92,255,0.14);
  border-color: rgba(124,92,255,0.30);
  color: var(--gp-text);
}


/* Global background video (all pages) */
.gp-bg-video{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.gp-bg-video video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media (prefers-reduced-motion: reduce){
  .gp-bg-video video{display:none;}
}
@media (max-width: 700px){
  .gp-bg-video video{display:none;}
}
.gp-bg-overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,var(--gp-overlay));
}
.gp-header, main, .gp-footer{position:relative; z-index:2;}



.gp-bg-image-layer{
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.gp-bg-image-layer__image,
.gp-bg-image-layer__overlay,
.gp-bg-image-layer__texture{
  position: absolute;
  inset: 0;
}

.gp-bg-image-layer__image{
  background-image: var(--gp-custom-bg-image);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1.015);
}

.gp-bg-image-layer__overlay{
  background: rgba(5, 7, 10, var(--gp-custom-bg-overlay, 0.62));
}

.gp-bg-image-layer__texture{
  opacity: var(--gp-custom-bg-texture, 0.12);
  background-image:
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0) 20%, rgba(255,255,255,0) 78%, rgba(255,255,255,0.05) 100%),
    radial-gradient(circle at top left, rgba(255,255,255,0.10), rgba(255,255,255,0) 48%),
    radial-gradient(circle at bottom right, rgba(255,255,255,0.08), rgba(255,255,255,0) 42%);
  mix-blend-mode: soft-light;
}

body.gp-has-custom-bg{
  background: #07090c;
}

body.gp-has-custom-bg .gp-header{
  background: rgba(10, 12, 16, 0.72);
}

body.gp-has-custom-bg .gp-bookings-page{
  background:
    linear-gradient(180deg, rgba(5,5,6,0.40) 0%, rgba(7,8,10,0.22) 24%, rgba(8,9,11,0.16) 52%, rgba(7,8,10,0.24) 76%, rgba(5,5,6,0.40) 100%);
}

body.gp-has-custom-bg .gp-bookings-page::before{
  opacity: 0.44;
}


/* Header */
.gp-skip{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}
.gp-skip:focus{left: 12px; top: 12px; width:auto; height:auto; padding:10px 12px; background:#000; border:1px solid var(--gp-border); border-radius: 12px; z-index:10000}

.gp-header{
  position: sticky; top:0; z-index: 999;
  backdrop-filter: blur(10px);
  background: rgba(11,13,16,0.65);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.gp-header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 0;
}
.gp-brand{display:flex; align-items:center; gap: 12px; min-width: 0;}
.gp-brand img{width: var(--gp-logoW); height: var(--gp-logoW); border-radius: 12px;}
.gp-brand-title{
  font-weight: 760;
  letter-spacing: -0.6px;
  font-size: 18px;
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
}
.gp-nav{display:flex; align-items:center;}
/* wp_nav_menu outputs a wrapper div + ul; make the ul the flex row */
.gp-nav .menu-primary-container{display:flex;}
.gp-nav ul{display:flex; align-items:center; gap: 6px; margin:0; padding:0;}
.gp-nav li{list-style:none}
.gp-nav a{font-size: 13px; color: rgba(232,237,244,0.78); padding: 8px 10px; border-radius: 10px; display:block}
.gp-nav a:hover{background: rgba(255,255,255,0.04); color: rgba(232,237,244,0.95)}
.gp-nav a:focus-visible{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}
.gp-nav .current-menu-item > a{color: var(--gp-text); background: rgba(124,92,255,0.14); border: 1px solid rgba(124,92,255,0.22);}
.gp-nav .menu-item-has-children{position:relative;}
.gp-nav .sub-menu{display:none; position:absolute; top:100%; left:0; min-width:200px; margin-top:4px; padding:8px; background: rgba(11,13,16,0.92); border: 1px solid rgba(255,255,255,0.06); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.55); backdrop-filter: blur(10px);}
.gp-nav .menu-item-has-children:hover > .sub-menu,
.gp-nav .menu-item-has-children:focus-within > .sub-menu{display:block;}
.gp-nav .sub-menu li{list-style:none; margin:0;}
.gp-nav .sub-menu a{padding: 10px 12px; border-radius: 10px; white-space: nowrap;}
.gp-header--scrolled .gp-header-inner{padding: 12px 0;}
.gp-header--scrolled .gp-brand img{width: calc(var(--gp-logoW) * 0.85); height: calc(var(--gp-logoW) * 0.85);}

.gp-nav-toggle{
  display:none;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.25);
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--gp-text);
}
.gp-nav-toggle:focus{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}

/* Mobile nav (JS toggles .open on .gp-nav) */
@media (max-width: 960px){
  .gp-header-inner{position:relative;}
  .gp-nav{display:none; position:absolute; left:0; right:0; top: calc(100% + 10px); padding: 12px; z-index: 1000; background: rgba(11,13,16,0.92); border: 1px solid rgba(255,255,255,0.06); border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.55); backdrop-filter: blur(10px);}
  .gp-nav.open{display:block;}
  .gp-nav-toggle{display:inline-flex; align-items:center; gap:8px;}

  .gp-nav .menu-primary-container{display:block;}
  .gp-nav ul{display:flex; flex-direction:column; align-items:stretch; gap:10px; margin:0; padding:0;}
  .gp-nav li{list-style:none}
  .gp-nav a{
    display:block;
    padding: 12px 12px;
    border-radius: 12px;
    color: rgba(232,237,244,0.88);
    border: 1px solid rgba(255,255,255,0.06);
    background: rgba(0,0,0,0.20);
    margin-top: 10px;
  }
  .gp-nav a:hover{background: rgba(0,0,0,0.35); color: rgba(232,237,244,0.95)}
}

/* Custom logo output */

.custom-logo-link{display:inline-flex; align-items:center; justify-content:center; line-height:0;}
.custom-logo{width: var(--gp-logoW); height: var(--gp-logoW); border-radius: 12px;}


/* Home layout: left (hero + tools) and right (about) */
.gp-home{padding: clamp(28px, 5vw, 78px) 0 clamp(18px, 3vw, 34px);}
.gp-home-grid{display:grid; grid-template-columns: 1.2fr 1fr; gap: 18px; align-items:start;}
.gp-home-left{display:flex; flex-direction:column; gap: 18px;}
.gp-panel{border:1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.20); border-radius: var(--gp-radius); box-shadow: var(--gp-shadow); overflow:hidden;}
.gp-panel-pad{padding: clamp(18px, 2.4vw, 28px);}
.gp-panel-hero h1{font-size: clamp(32px, 4.6vw, 64px); line-height:1.05; margin:0 0 12px; letter-spacing:-1.1px;}
.gp-panel-hero .gp-hero-sub{max-width: 62ch; color: rgba(232,237,244,0.78); margin:0 0 18px;}
.gp-panel-actions{display:flex; gap:10px; flex-wrap:wrap;}
.gp-panel-kicker{color: rgba(232,237,244,0.70); font-size: 13px; margin:0 0 10px;}
@media (max-width: 960px){
  .gp-home-grid{grid-template-columns: 1fr; }
}

/* Hero */
.gp-hero{
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.gp-hero-inner{
  padding: clamp(28px, 5vw, 70px) 0 clamp(18px, 3vw, 30px);
  min-height: 56vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position: relative;
}

.gp-hero-inner{z-index: 1;}
.gp-hero h1{
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.1;
  margin: 0 0 12px;
  letter-spacing: -1.1px;
}
.gp-hero p{
  margin: 0;
  color: rgba(232,237,244,0.76);
  max-width: 62ch;
}
.gp-hero-actions{display:flex; gap: 10px; margin-top: 18px; flex-wrap: wrap;}
.gp-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.25);
  color: var(--gp-text);
}
.gp-btn:hover{border-color: rgba(124,92,255,0.35); background: rgba(124,92,255,0.12);}
.gp-btn:focus-visible{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}
.gp-btn.primary{background: rgba(124,92,255,0.18); border-color: rgba(124,92,255,0.28);}
.gp-btn.primary:hover{background: rgba(124,92,255,0.22);}

.gp-hero-video{
  position:absolute; inset:0;
  overflow:hidden;
  z-index: 0;
}

.gp-hero-video video, .gp-hero-video img{
  width:100%; height:100%; object-fit: cover;
  filter: saturate(1.05) contrast(1.05);
}
.gp-hero-overlay{
  position:absolute; inset:0;
  background: rgba(0,0,0,var(--gp-overlay));
}
.gp-hero::after{
  content:"";
  position:absolute; inset:auto 0 0 0;
  height: 160px;
  background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(11,13,16,1));
}

/* Featured */
.gp-featured-media{
  aspect-ratio: 16/9;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

/* Events series cards (prevent huge media blocks) */
.gp-series-media{
  aspect-ratio: auto;
  height: 200px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.gp-series-media img{
  max-height: 140px;
  width: auto;
  max-width: 92%;
}
@media (max-width: 960px){
  .gp-series-media{height: 160px;}
  .gp-series-media img{max-height: 84px; max-width: 80%;}
}


.gp-featured-media img{width:100%; height:100%; object-fit:cover}

.gp-series-media img{width:auto !important; height:auto !important; object-fit:contain !important;}
.gp-featured-meta{display:flex; gap: 8px; flex-wrap: wrap; align-items:center; margin-top:10px}

/* Events: tighter media and cleaner card rhythm */
.gp-events-archive .gp-events-series-grid,
.gp-events-series-page .gp-events-upcoming-grid{
  gap: 12px;
}
.gp-events-archive .gp-events-series-media{
  height: 160px;
  padding: 14px;
}
.gp-events-archive .gp-events-series-media img{
  max-height: 96px;
  max-width: 80%;
}
.gp-event-card .gp-event-card-media{
  aspect-ratio: 21/9;
}
.gp-event-card .gp-card-pad{
  padding-top: 14px;
}
.gp-event-card .gp-card-title{
  margin-bottom: 6px;
}
@media (max-width: 960px){
  .gp-events-archive .gp-events-series-media{
    height: 132px;
    padding: 12px;
  }
  .gp-events-archive .gp-events-series-media img{
    max-height: 72px;
    max-width: 74%;
  }
  .gp-event-card .gp-event-card-media{
    aspect-ratio: 16/9;
  }
}

/* Content */
.gp-content{
  padding: 28px 0 40px;
}
.gp-content h1, .gp-content h2, .gp-content h3{letter-spacing:-0.6px}
.gp-content h1{font-size: 30px}
.gp-content h2{font-size: 22px}
.gp-content a{color: rgba(124,92,255,0.95)}
.gp-content a:hover{text-decoration: underline}
.gp-content a:focus-visible{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}
.gp-contact-link, .gp-link{color: rgba(124,92,255,0.95);}
.gp-contact-link:hover, .gp-link:hover{color: var(--gp-text); text-decoration: underline;}
.gp-contact-link:focus-visible, .gp-link:focus-visible{outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px;}
.gp-tool-editorial .gp-content h1{margin-top: 1.5em; margin-bottom: 0.5em;}
.gp-tool-editorial .gp-content h1:first-of-type{margin-top: 0;}
.gp-tool-editorial .gp-content h2{margin-top: 1.25em; margin-bottom: 0.4em;}
.gp-tool-editorial .gp-content h3{margin-top: 1em; margin-bottom: 0.35em;}
.gp-section-title{font-size: clamp(20px, 2.5vw, 28px); margin: 0 0 18px; letter-spacing: -0.6px;}
.gp-home-hero .gp-panel-hero{max-width: 720px;}
.gp-home-hero--roster .gp-panel-hero{max-width: 860px;}
.gp-home-hero--roster .gp-panel-pad{padding: clamp(26px, 4vw, 44px);}
.gp-home-hero--roster .gp-panel-hero h1{font-size: clamp(40px, 6vw, 80px);}
.gp-about-premium .gp-panel-premium{max-width: 680px; padding: clamp(24px, 4vw, 40px);}
.gp-reveal{opacity:0; transform: translateY(16px);}
.gp-reveal.gp-reveal-visible{opacity:1; transform: translateY(0);}
@media (prefers-reduced-motion: reduce){
  .gp-reveal{opacity:1; transform: none;}
  .gp-reveal.gp-reveal-visible{opacity:1; transform: none;}
}


/* Footer */
.gp-footer{
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 14px 0;
  background: rgba(0,0,0,0.14);
}
.gp-footer-inner{
  display:flex;
  align-items:center;
  gap: 12px;
  flex-wrap: wrap;
}
.gp-footer small{color: rgba(232,237,244,0.68)}
.gp-footer-social{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 auto;
}
.gp-footer-social a{
  font-size: 12px;
  color: rgba(232,237,244,0.72);
  padding: 6px 8px;
  border-radius: 10px;
}
.gp-footer-social a:hover{
  background: rgba(255,255,255,0.04);
  color: rgba(232,237,244,0.92);
}
.gp-footer-email{
  margin-left: auto;
  font-size:12px;
  color: rgba(232,237,244,0.72);
  text-decoration:none;
}
.gp-footer-email:hover{color: rgba(232,237,244,0.92);}

@media (max-width: 700px){
  .gp-footer-social{margin: 0;}
  .gp-footer-email{margin-left: 0;}
}


/* Footer minimal */
.gp-footer-min{padding: 12px 0;}
.gp-footer-inner-min{display:flex; justify-content:flex-start; align-items:center; color: rgba(232,237,244,0.65);}

/* Label cards */
.gp-card-logo{width: 96px; height: auto; display:block; margin-top: 14px; filter: drop-shadow(0 10px 22px rgba(0,0,0,0.35));}
.gp-label-card{min-height: 240px;}


/* Labels centered */
.gp-labels-wrap{display:flex; justify-content:center;}
.gp-labels-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 700px){
  .gp-labels-grid{grid-template-columns: 1fr;}
}

/* Brand title link */
.gp-brand-title.gp-link{color: var(--gp-text); text-decoration:none;}
.gp-brand-title.gp-link:hover{opacity:0.9;}
.gp-brand-logo{display:inline-flex; align-items:center;}

/* Release single (Phase 1) */
.gp-release-hero{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 24px;
  align-items:start;
}
.gp-release-cover img{
  border-radius: var(--gp-radius);
  border: 1px solid var(--gp-border);
  width:100%;
  height:auto;
}
@media (max-width: 960px){
  .gp-release-hero{grid-template-columns: 1fr;}
  .gp-release-cover{max-width: 400px;}
}
.gp-release-links{display:flex; gap:10px; flex-wrap:wrap;}
.gp-embed-wrap{
  position:relative;
  border-radius: var(--gp-radius);
  overflow:hidden;
  border: 1px solid var(--gp-border);
  background: rgba(0,0,0,0.20);
}
.gp-embed-wrap iframe{
  display:block;
  width:100%;
  aspect-ratio: 16/9;
  border:0;
}
.gp-tracklist{
  list-style: decimal;
  padding-left: 24px;
  margin: 0;
}
.gp-tracklist li{
  padding: 8px 0;
  border-bottom: 1px solid var(--gp-border);
  color: var(--gp-text);
  font-size: 14px;
}
.gp-tracklist li:last-child{border-bottom:none;}
.gp-prose{line-height:1.65;}

/* Culture Page */
.gp-culture .gp-culture-shell{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.78fr);
  gap: 16px;
  align-items: start;
}
.gp-culture .gp-culture-main{
  display: grid;
  gap: 14px;
}
.gp-culture .gp-culture-sidebar{
  display: grid;
  gap: 12px;
  position: sticky;
  top: 92px;
  align-self: start;
}
.gp-culture .gp-culture-hero-card{
  max-width: none;
}
.gp-culture .gp-culture-kicker{
  margin: 0 0 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.gp-culture .gp-culture-filters-card{
  border-color: rgba(124,92,255,0.18);
}
.gp-culture .gp-culture-cloud-header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.gp-culture .gp-culture-cloud-header .gp-section-title{
  margin: 0 0 8px;
}
.gp-culture .gp-culture-chip-group + .gp-culture-chip-group{
  margin-top: 14px;
}
.gp-culture .gp-culture-chip-label{
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  color: var(--gp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.gp-culture .gp-culture-chip-row{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.gp-culture .gp-culture-directory{
  border-color: rgba(124,92,255,0.16);
}
.gp-culture .gp-culture-directory-head{
  margin-bottom: 8px;
}
.gp-culture .gp-culture-directory-head .gp-section-title{
  margin: 0;
}
.gp-culture .gp-culture-directory-groups{
  display: grid;
  gap: 12px;
}
.gp-culture .gp-culture-directory-group{
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 10px;
}
.gp-culture .gp-culture-directory-group:first-child{
  border-top: 0;
  padding-top: 0;
}
.gp-culture .gp-culture-directory-group-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
.gp-culture .gp-culture-directory-title{
  margin: 0;
  font-size: 12px;
  color: var(--gp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.gp-culture .gp-culture-directory-viewall{
  font-size: 12px;
  color: var(--gp-muted);
  text-decoration: none;
}
.gp-culture .gp-culture-directory-viewall:hover{
  color: rgba(124,92,255,0.95);
  text-decoration: underline;
}
.gp-culture .gp-culture-directory-list{
  list-style: none;
  margin: 0;
  padding: 0;
}
.gp-culture .gp-culture-directory-item{
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 8px 0;
}
.gp-culture .gp-culture-directory-item:last-child{
  border-bottom: 0;
  padding-bottom: 0;
}
.gp-culture .gp-culture-directory-link{
  display: block;
  color: var(--gp-text);
  text-decoration: none;
  line-height: 1.35;
}
.gp-culture .gp-culture-directory-link:hover{
  color: rgba(124,92,255,0.95);
}
.gp-culture .gp-culture-directory-meta{
  margin: 2px 0 0;
  font-size: 12px;
}
.gp-culture .gp-culture-directory-empty{
  margin: 0;
  font-size: 12px;
}
.gp-culture .gp-culture-section-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.gp-culture .gp-culture-section-head .gp-section-title{
  margin: 0;
}
.gp-culture .gp-culture-grid{
  gap: 16px;
}
.gp-culture .gp-culture-meta{
  margin-bottom: 8px;
}
.gp-culture .gp-culture-source{
  margin-top: 10px;
}
.gp-culture .gp-culture-empty .gp-card-pad{
  padding: clamp(18px, 2.2vw, 26px);
}
.gp-culture .gp-culture-empty h3{
  margin: 0 0 8px;
  font-size: 18px;
  letter-spacing: -0.3px;
}
.gp-culture .gp-culture-empty .gp-panel-actions{
  margin-top: 14px;
}
.gp-culture .gp-culture-empty-actions{
  margin-top: 16px;
}
.gp-culture .gp-culture-starter-grid{
  margin-top: 14px;
}
.gp-culture .gp-culture-starter-card{
  pointer-events: none;
  border-color: rgba(255,255,255,0.14);
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
}
.gp-culture .gp-culture-starter-card .gp-card-title{
  margin-bottom: 6px;
}
.gp-culture .gp-culture-guideline{
  margin-top: 14px;
}
.gp-culture .gp-culture-block-title{
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: -0.2px;
}
.gp-culture .gp-culture-guideline-list{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
}
.gp-culture .gp-culture-side-title{
  margin: 0 0 10px;
  font-size: 16px;
  letter-spacing: -0.3px;
}
.gp-culture .gp-culture-essay-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.gp-culture .gp-culture-essay-list a{
  color: var(--gp-text);
  text-decoration: none;
}
.gp-culture .gp-culture-essay-list a:hover{
  color: rgba(124,92,255,0.95);
  text-decoration: underline;
}
.gp-culture .gp-culture-essay-date{
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--gp-muted);
}
.gp-culture .gp-culture-protocol-list{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
}
.gp-culture .gp-culture-protocol-list li{
  color: var(--gp-muted);
}
.gp-culture .gp-pill:focus-visible,
.gp-culture .gp-link:focus-visible,
.gp-culture .gp-btn:focus-visible{
  outline: 2px solid rgba(124,92,255,0.55);
  outline-offset: 2px;
}
@media (max-width: 960px){
  .gp-culture .gp-culture-shell{
    grid-template-columns: 1fr;
  }
  .gp-culture .gp-culture-sidebar{
    position: static;
    top: auto;
  }
}


/* Homepage builder ordering */
.gp-home-builder{display:flex;flex-direction:column}
.gp-home-builder-item{width:100%}

.gp-home-hero__meta{
  margin: 0 0 20px;
  color: rgba(232,237,244,0.62);
  max-width: 48ch;
  font-size: 13px;
  letter-spacing: 0.01em;
}
.gp-home-section__header{
  display:grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 20px;
  align-items:end;
  margin: 0 0 18px;
}
.gp-home-section__eyebrow{
  margin: 0 0 8px;
  color: rgba(232,237,244,0.62);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.gp-home-section__intro{
  margin: 0;
  color: rgba(232,237,244,0.70);
  max-width: 42ch;
  justify-self: end;
}
.gp-home-section--priority .gp-section-title{
  margin-bottom: 0;
}
.gp-home-section--subtle .gp-section-title{
  font-size: clamp(18px, 2vw, 24px);
  margin-bottom: 0;
}
.gp-home-section--subtle .gp-card{
  background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.015));
}
@media (max-width: 960px){
  .gp-home-section__header{
    grid-template-columns: 1fr;
    align-items:start;
  }
  .gp-home-section__intro{
    justify-self: start;
    max-width: 100%;
  }
}




/* Bookings page */
.page-template-page-bookings,
.page-template-page-bookings body,
body.page-template-page-bookings{
  background: #060606;
}

.gp-bookings-page{
  position: relative;
  background:
    linear-gradient(180deg, #050505 0%, #080808 22%, #0b0b0c 48%, #080808 74%, #050505 100%);
  color: rgba(244, 242, 238, 0.94);
}

.gp-bookings-page::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.02), transparent 14%, transparent 82%, rgba(255,255,255,0.015) 100%);
  opacity: 0.7;
}

.gp-bookings-page .gp-section{
  position: relative;
  z-index: 1;
}

.gp-bookings-page h1,
.gp-bookings-page h2,
.gp-bookings-page h3{
  font-weight: 560;
  letter-spacing: -0.025em;
}

.gp-bookings-page p,
.gp-bookings-page li,
.gp-bookings-page a,
.gp-bookings-page span,
.gp-bookings-page label,
.gp-bookings-page input,
.gp-bookings-page select,
.gp-bookings-page textarea{
  font-weight: 400;
}

.gp-bookings-page .gp-btn{
  font-weight: 500;
}

.gp-bookings-hero{
  padding-top: clamp(56px, 9vw, 120px);
  padding-bottom: clamp(46px, 6vw, 84px);
}

.gp-bookings-hero__grid{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: clamp(34px, 5vw, 78px);
  align-items: start;
}

.gp-bookings-hero__eyebrow,
.gp-bookings-sectionhead__eyebrow{
  margin: 0 0 14px;
  color: rgba(244,242,238,0.48);
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.gp-bookings-hero__title{
  margin: 0;
  max-width: 9ch;
  font-size: clamp(2.9rem, 6vw, 5.4rem);
  line-height: 0.92;
}

.gp-bookings-hero__headline{
  margin: 22px 0 0;
  max-width: 19ch;
  font-size: clamp(1.18rem, 2vw, 1.7rem);
  line-height: 1.18;
  color: rgba(244,242,238,0.9);
}

.gp-bookings-hero__subheadline{
  max-width: 60ch;
  margin: 22px 0 0;
  color: rgba(244,242,238,0.66);
  font-size: 1rem;
  line-height: 1.72;
}

.gp-bookings-hero__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  margin-top: 34px;
}

.gp-bookings-hero__primary{
  min-width: 188px;
  border-radius: 999px;
  background: rgba(244,242,238,0.08);
  border: 1px solid rgba(244,242,238,0.14);
  box-shadow: none;
}

.gp-bookings-hero__primary:hover{
  background: rgba(244,242,238,0.12);
  border-color: rgba(244,242,238,0.22);
}

.gp-bookings-hero__meta{
  display: grid;
  gap: 7px;
  margin-top: 20px;
}

.gp-bookings-hero__email{
  color: rgba(244,242,238,0.96);
  font-size: 0.98rem;
}

.gp-bookings-hero__note{
  color: rgba(244,242,238,0.5);
  font-size: 0.94rem;
}

.gp-bookings-hero__panel{
  align-self: stretch;
  padding: clamp(22px, 3vw, 32px) 0 0 28px;
  border-left: 1px solid rgba(255,255,255,0.1);
  background: transparent;
}

.gp-bookings-hero__panel-kicker{
  margin: 0 0 18px;
  color: rgba(244,242,238,0.42);
  font-size: 0.74rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.gp-bookings-hero__panel-block + .gp-bookings-hero__panel-block{
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.gp-bookings-hero__panel h2{
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 540;
  line-height: 1.2;
}

.gp-bookings-hero__panel p,
.gp-bookings-hero__panel li{
  color: rgba(244,242,238,0.62);
  line-height: 1.72;
}

.gp-bookings-hero__panel-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.gp-bookings-hero__panel-list li{
  padding-left: 16px;
  position: relative;
}

.gp-bookings-hero__panel-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(244,242,238,0.34);
}

.gp-bookings-hero__panel-footer{
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: grid;
  gap: 6px;
}

.gp-bookings-hero__panel-footer span{
  color: rgba(244,242,238,0.44);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.gp-bookings-hero__panel-footer strong{
  font-size: 1rem;
  font-weight: 540;
  color: rgba(244,242,238,0.92);
}

.gp-bookings-roster{
  padding-top: clamp(18px, 3vw, 28px);
  padding-bottom: clamp(36px, 5vw, 58px);
}

.gp-bookings-sectionhead{
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
  gap: 20px 46px;
  align-items: end;
  margin-bottom: clamp(30px, 5vw, 54px);
}

.gp-bookings-sectionhead h2{
  margin: 0;
  font-size: clamp(1.56rem, 2.8vw, 2.7rem);
  line-height: 1.02;
}

.gp-bookings-sectionhead__intro{
  margin: 0;
  max-width: 58ch;
  color: rgba(244,242,238,0.62);
  line-height: 1.76;
}

.gp-bookings-roster__list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.gp-bookings-roster__item{
  display: grid;
  grid-template-columns: minmax(150px, 196px) minmax(0, 1fr);
  gap: clamp(22px, 3vw, 38px);
  align-items: center;
  padding: clamp(22px, 3.4vw, 38px) 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.gp-bookings-roster__item:last-child{
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.gp-bookings-roster__item.is-offset{
  margin-top: 0;
}

.gp-bookings-roster__item:nth-child(even){
  grid-template-columns: minmax(0, 1fr) minmax(150px, 196px);
}

.gp-bookings-roster__item:nth-child(even) .gp-bookings-roster__media{
  order: 2;
}

.gp-bookings-roster__item:nth-child(even) .gp-bookings-roster__body{
  order: 1;
  padding-right: clamp(10px, 2vw, 24px);
}

.gp-bookings-roster__media{
  overflow: hidden;
  border-radius: 4px;
  background: rgba(255,255,255,0.03);
  aspect-ratio: 0.9 / 1;
}

.gp-bookings-roster__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.01);
}

.gp-bookings-roster__body{
  min-width: 0;
  max-width: 56ch;
}

.gp-bookings-roster__index{
  margin: 0 0 14px;
  color: rgba(244,242,238,0.36);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
}

.gp-bookings-roster__title{
  margin: 0;
  font-size: clamp(1.5rem, 2.2vw, 2.15rem);
  line-height: 1;
  font-weight: 560;
}

.gp-bookings-roster__fit{
  margin: 12px 0 0;
  color: rgba(244,242,238,0.88);
  line-height: 1.55;
  font-size: 1rem;
}

.gp-bookings-roster__excerpt{
  margin: 10px 0 0;
  color: rgba(244,242,238,0.54);
  line-height: 1.68;
  max-width: 52ch;
}

.gp-bookings-roster__meta{
  margin-top: 12px;
}

.gp-bookings-roster__proof,
.gp-bookings-textlink{
  display: inline-flex;
  align-items: center;
  color: rgba(244,242,238,0.72);
  border-bottom: 1px solid rgba(244,242,238,0.12);
  padding-bottom: 2px;
}

.gp-bookings-copy{
  padding-top: clamp(26px, 4vw, 42px);
  padding-bottom: clamp(20px, 4vw, 38px);
}

.gp-bookings-copy__grid{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: clamp(28px, 4vw, 62px);
}

.gp-bookings-block h2,
.gp-bookings-notes h2,
.gp-bookings-enquiry__intro h2{
  margin: 0 0 14px;
  font-size: clamp(1.16rem, 1.8vw, 1.5rem);
  line-height: 1.16;
  font-weight: 540;
}

.gp-bookings-block p,
.gp-bookings-notes li,
.gp-bookings-enquiry__intro p{
  color: rgba(244,242,238,0.62);
  line-height: 1.76;
}

.gp-bookings-notes{
  margin: 0;
  padding: 0;
  border: 0;
}

.gp-bookings-notes__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.gp-bookings-notes__list li{
  color: rgba(244,242,238,0.56);
}

.gp-bookings-enquiry{
  padding-top: clamp(40px, 6vw, 72px);
  padding-bottom: clamp(62px, 9vw, 110px);
}

.gp-bookings-enquiry__grid{
  display: grid;
  grid-template-columns: minmax(250px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: start;
}

.gp-bookings-enquiry__intro{
  position: sticky;
  top: 18px;
}

.gp-bookings-enquiry__contact{
  margin-top: 18px;
  color: rgba(244,242,238,0.9);
}

.gp-bookings-enquiry__panel{
  padding: clamp(24px, 3.4vw, 40px) 0 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  box-shadow: none;
}

.gp-bookings-enquiry__notice{
  margin-bottom: 22px;
  padding: 0 0 14px;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.gp-bookings-enquiry__notice p{
  margin: 0;
  color: rgba(244,242,238,0.76);
}

.gp-bookings-enquiry-form__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 24px;
}

.gp-bookings-field{
  margin: 0;
}

.gp-bookings-field--full{
  grid-column: 1 / -1;
}

.gp-bookings-field label{
  display: block;
  margin: 0 0 10px;
  color: rgba(244,242,238,0.72);
  font-size: 0.84rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gp-bookings-field input,
.gp-bookings-field select,
.gp-bookings-field textarea{
  width: 100%;
  appearance: none;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  background: transparent;
  color: rgba(244,242,238,0.94);
  padding: 0 0 12px;
  font: inherit;
  line-height: 1.5;
}

.gp-bookings-field select{
  padding-right: 22px;
}

.gp-bookings-field textarea{
  resize: vertical;
  min-height: 148px;
  padding-top: 0;
}

.gp-bookings-field input:focus,
.gp-bookings-field select:focus,
.gp-bookings-field textarea:focus{
  outline: none;
  border-bottom-color: rgba(244,242,238,0.42);
  box-shadow: none;
}

.gp-bookings-enquiry-form__footer{
  display: flex;
  flex-wrap: wrap;
  gap: 16px 22px;
  align-items: center;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.gp-bookings-enquiry-form__submit{
  min-width: 176px;
  border-radius: 999px;
  background: rgba(244,242,238,0.08);
  border: 1px solid rgba(244,242,238,0.14);
}

.gp-bookings-enquiry-form__submit:hover{
  background: rgba(244,242,238,0.12);
  border-color: rgba(244,242,238,0.22);
}

.gp-bookings-enquiry-form__note{
  margin: 0;
  color: rgba(244,242,238,0.48);
  line-height: 1.68;
  max-width: 42ch;
}

@media (max-width: 1040px){
  .gp-bookings-hero__grid,
  .gp-bookings-sectionhead,
  .gp-bookings-copy__grid,
  .gp-bookings-enquiry__grid{
    grid-template-columns: 1fr;
  }

  .gp-bookings-hero__panel{
    padding: 24px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,0.1);
  }

  .gp-bookings-enquiry__intro{
    position: static;
  }
}

@media (max-width: 860px){
  .gp-bookings-enquiry-form__grid{
    grid-template-columns: 1fr;
  }

  .gp-bookings-roster__item,
  .gp-bookings-roster__item:nth-child(even){
    grid-template-columns: 1fr;
  }

  .gp-bookings-roster__item:nth-child(even) .gp-bookings-roster__media,
  .gp-bookings-roster__item:nth-child(even) .gp-bookings-roster__body{
    order: initial;
    padding-right: 0;
  }

  .gp-bookings-roster__media{
    max-width: min(300px, 100%);
  }

  .gp-bookings-roster__title{
    font-size: clamp(1.36rem, 7vw, 1.9rem);
  }
}



/* Bookings content correction */
.gp-bookings-roster__sentence{
  margin: 12px 0 0;
  color: rgba(244,242,238,0.82);
  line-height: 1.58;
  max-width: 58ch;
}

.gp-bookings-roster__details{
  margin: 14px 0 0;
  display: grid;
  gap: 8px;
}

.gp-bookings-roster__detail{
  display: grid;
  grid-template-columns: minmax(72px, 88px) minmax(0, 1fr);
  gap: 10px;
  align-items: baseline;
}

.gp-bookings-roster__detail dt{
  margin: 0;
  color: rgba(244,242,238,0.42);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gp-bookings-roster__detail dd{
  margin: 0;
  color: rgba(244,242,238,0.66);
  line-height: 1.56;
}

@media (max-width: 860px){
  .gp-bookings-roster__detail{
    grid-template-columns: 1fr;
    gap: 4px;
  }
}



/* Homepage restructure - locked IA pass */
.gp-home-builder--restructured .gp-section{
  padding: clamp(18px, 2.8vw, 34px) 0;
}

.gp-home-builder--restructured .gp-card{
  box-shadow: none;
}

.gp-home-hero--tight{
  padding-top: clamp(44px, 7vw, 88px);
  padding-bottom: clamp(22px, 3vw, 34px);
}

.gp-home-hero__shell{
  max-width: 720px;
}

.gp-home-hero__title{
  margin: 0;
  max-width: 10ch;
  font-size: clamp(2.8rem, 5.8vw, 5rem);
  line-height: 0.94;
  font-weight: 560;
  letter-spacing: -0.028em;
}

.gp-home-hero__copy{
  margin: 18px 0 0;
  max-width: 56ch;
  color: rgba(244,242,238,0.66);
  font-size: clamp(1rem, 1.5vw, 1.08rem);
  line-height: 1.72;
}

.gp-home-hero__actions{
  margin-top: 28px;
}

.gp-home-hero__cta{
  min-width: 188px;
  border-radius: 999px;
  font-weight: 500;
}

.gp-home-builder--restructured .gp-section-title{
  margin: 0;
  font-size: clamp(1.56rem, 2.8vw, 2.7rem);
  line-height: 1.02;
  font-weight: 560;
  letter-spacing: -0.025em;
}

.gp-home-section__topline{
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px 24px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.gp-home-section__summary{
  margin: 10px 0 0;
  max-width: 52ch;
  color: rgba(244,242,238,0.62);
  line-height: 1.72;
}

.gp-home-builder--restructured .gp-btn{
  font-weight: 500;
}

.gp-home-builder--restructured .gp-card-title{
  font-size: 1.08rem;
  font-weight: 560;
  letter-spacing: -0.02em;
}

.gp-home-builder--restructured .gp-card-pad{
  padding: 14px;
}

.gp-home-roster-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.gp-home-roster-card{
  min-width: 0;
}

.gp-home-roster-card__media{
  aspect-ratio: 0.95 / 1;
  background: rgba(255,255,255,0.03);
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.gp-home-roster-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gp-home-roster-card__fit{
  margin: 8px 0 0;
  color: rgba(244,242,238,0.86);
  line-height: 1.55;
}

.gp-home-roster-card__excerpt{
  margin: 8px 0 0;
  color: rgba(244,242,238,0.56);
  line-height: 1.62;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gp-home-release-lanes{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.gp-home-release-lane__head{
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.gp-home-release-lane__list{
  display: grid;
  gap: 10px;
}

.gp-home-release-row{
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.gp-home-release-row:first-child{
  border-top: 0;
  padding-top: 0;
}

.gp-home-release-row__media{
  width: 72px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(255,255,255,0.03);
  border-radius: 10px;
}

.gp-home-release-row__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gp-home-release-row__body{
  min-width: 0;
  display: grid;
  gap: 4px;
}

.gp-home-release-row__title{
  font-size: 1rem;
  font-weight: 540;
  letter-spacing: -0.02em;
}

.gp-home-release-row__meta{
  color: rgba(244,242,238,0.5);
  font-size: 0.92rem;
}

.gp-home-labels-compact{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.gp-home-label-card__desc{
  margin: 8px 0 0;
  color: rgba(244,242,238,0.56);
  line-height: 1.6;
}

.gp-home-about-card .gp-card-pad{
  padding: clamp(18px, 2.8vw, 24px);
}

.gp-home-about-card__copy{
  margin-top: 12px;
  max-width: 70ch;
  color: rgba(244,242,238,0.64);
  line-height: 1.76;
}

.gp-home-about-card__copy p{
  margin: 0;
}

.gp-home-about-card__copy p + p{
  margin-top: 10px;
}

.gp-home-about-card__actions{
  margin-top: 16px;
}

@media (max-width: 1080px){
  .gp-home-roster-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 960px){
  .gp-home-release-lanes,
  .gp-home-labels-compact{
    grid-template-columns: 1fr;
  }

  .gp-home-section__topline,
  .gp-home-release-lane__head{
    align-items: start;
  }
}

@media (max-width: 700px){
  .gp-home-hero--tight{
    padding-top: 34px;
    padding-bottom: 16px;
  }

  .gp-home-hero__copy{
    margin-top: 14px;
  }

  .gp-home-roster-grid{
    grid-template-columns: 1fr;
  }

  .gp-home-release-row{
    grid-template-columns: 60px minmax(0, 1fr);
  }

  .gp-home-release-row__media{
    width: 60px;
  }
}

/* =========================================================================
   PHASE 9.1 - Culture Archive frontend redesign (Culture-scoped only)
   All selectors are prefixed with .gp-culture (archive page wrapper) or
   .gp-culture-single (single Culture entry). No styles leak outside Culture.
   Premium black, museum/editorial, Swiss hierarchy, muted accent.
   ========================================================================= */
.gp-culture,
.gp-culture-single {
  --gpc-ink: #ece7dd;
  --gpc-muted: rgba(236,231,221,0.58);
  --gpc-faint: rgba(236,231,221,0.34);
  --gpc-line: rgba(236,231,221,0.12);
  --gpc-line-2: rgba(236,231,221,0.20);
  --gpc-accent: #c0975c;
  --gpc-surface: rgba(255,255,255,0.018);
  --gpc-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --gpc-label: 0.16em;
}

/* ---- Page shell ---- */
.gp-culture .gp-culture-wrap { padding-top: clamp(18px, 3vw, 34px); }
.gp-culture .gp-container { max-width: 1180px; }
.gp-culture *,
.gp-culture *::before,
.gp-culture *::after { box-sizing: border-box; }
.gp-culture a { text-decoration: none; }
.gp-culture img { max-width: 100%; height: auto; }

/* ---- Lane navigation (muted, hairline) ---- */
.gp-culture .gp-culture-lanes {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  padding: 0 0 18px; margin: 0 0 28px;
  border-bottom: 1px solid var(--gpc-line);
}
.gp-culture .gp-culture-lane {
  font-size: 11px; letter-spacing: var(--gpc-label); text-transform: uppercase;
  color: var(--gpc-faint); padding: 2px 0; transition: color .18s ease;
}
.gp-culture .gp-culture-lane:hover { color: var(--gpc-muted); }
.gp-culture .gp-culture-lane.is-active { color: var(--gpc-ink); }
.gp-culture .gp-culture-lane.is-active::after {
  content: ""; display: block; height: 1px; margin-top: 4px; background: var(--gpc-accent);
}

/* ---- Hero ---- */
.gp-culture .gp-culture-hero {
  padding: clamp(20px, 5vw, 64px) 0 clamp(26px, 4vw, 52px);
  border-bottom: 1px solid var(--gpc-line);
  margin-bottom: clamp(26px, 4vw, 48px);
}
.gp-culture .gp-culture-hero-kicker {
  font-size: 11px; letter-spacing: var(--gpc-label); text-transform: uppercase;
  color: var(--gpc-accent); margin: 0 0 18px;
}
.gp-culture .gp-culture-hero-title {
  font-family: var(--gpc-serif); font-weight: 600;
  font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1.02; letter-spacing: -0.01em;
  color: var(--gpc-ink); margin: 0; text-wrap: balance;
}
.gp-culture .gp-culture-hero-intro {
  max-width: 60ch; margin: 22px 0 0; font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6; color: var(--gpc-muted);
}
.gp-culture .gp-culture-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.gp-culture .gp-culture-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--gpc-ink); padding: 11px 20px; border: 1px solid var(--gpc-line-2);
  border-radius: 2px; transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.gp-culture .gp-culture-cta:hover { border-color: var(--gpc-accent); color: #fff; }
.gp-culture .gp-culture-cta.is-ghost { color: var(--gpc-muted); border-color: var(--gpc-line); }
.gp-culture .gp-culture-cta.is-ghost:hover { color: var(--gpc-ink); border-color: var(--gpc-line-2); }

/* ---- Primary archive paths (Swiss grid) ---- */
.gp-culture .gp-culture-paths {
  display: grid; grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--gpc-line); border-radius: 3px; overflow: hidden;
  margin: 0 0 clamp(26px, 4vw, 48px); background: var(--gpc-surface);
}
.gp-culture .gp-culture-path {
  display: flex; flex-direction: column; gap: 10px; min-width: 0;
  padding: 20px 18px 18px; border-right: 1px solid var(--gpc-line);
  transition: background .18s ease;
}
.gp-culture .gp-culture-path:last-child { border-right: 0; }
.gp-culture .gp-culture-path:hover { background: rgba(192,151,92,0.05); }
.gp-culture .gp-culture-path-label {
  font-size: 13px; letter-spacing: 0.02em; color: var(--gpc-ink); line-height: 1.25;
}
.gp-culture .gp-culture-path-count {
  font-size: 10px; letter-spacing: var(--gpc-label); text-transform: uppercase; color: var(--gpc-faint);
}
.gp-culture .gp-culture-path:hover .gp-culture-path-count { color: var(--gpc-accent); }

/* ---- Filters (collapsed by default) ---- */
.gp-culture .gp-culture-filters {
  border: 1px solid var(--gpc-line); border-radius: 3px;
  margin: 0 0 clamp(26px, 4vw, 44px); background: var(--gpc-surface);
}
.gp-culture .gp-culture-filters-summary {
  display: flex; align-items: center; gap: 14px; cursor: pointer; list-style: none;
  padding: 14px 18px; user-select: none;
}
.gp-culture .gp-culture-filters-summary::-webkit-details-marker { display: none; }
.gp-culture .gp-culture-filters-label {
  font-size: 12px; letter-spacing: var(--gpc-label); text-transform: uppercase; color: var(--gpc-ink);
}
.gp-culture .gp-culture-filters-hint { font-size: 11px; color: var(--gpc-faint); letter-spacing: 0.02em; }
.gp-culture .gp-culture-filters-count {
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: #0a0b0d;
  background: var(--gpc-accent); padding: 3px 8px; border-radius: 2px;
}
.gp-culture .gp-culture-filters-chevron { margin-left: auto; width: 8px; height: 8px; position: relative; }
.gp-culture .gp-culture-filters-chevron::before {
  content: ""; position: absolute; inset: 0; margin: auto; width: 7px; height: 7px;
  border-right: 1px solid var(--gpc-muted); border-bottom: 1px solid var(--gpc-muted);
  transform: rotate(45deg); transition: transform .2s ease;
}
.gp-culture .gp-culture-filters[open] .gp-culture-filters-chevron::before { transform: rotate(225deg); }
.gp-culture .gp-culture-filters-body {
  padding: 6px 18px 20px; border-top: 1px solid var(--gpc-line);
  display: flex; flex-direction: column; gap: 18px;
}
.gp-culture .gp-culture-filter-block { display: flex; flex-direction: column; gap: 10px; }
.gp-culture .gp-culture-filter-title {
  font-size: 10px; letter-spacing: var(--gpc-label); text-transform: uppercase; color: var(--gpc-faint);
}
.gp-culture .gp-culture-location-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gp-culture .gp-culture-select {
  background: #0d0f12; color: var(--gpc-ink); border: 1px solid var(--gpc-line-2);
  border-radius: 2px; padding: 8px 12px; font-size: 13px; min-width: 220px; max-width: 100%;
}
.gp-culture .gp-culture-apply,
.gp-culture .gp-culture-clear {
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer;
  background: transparent; color: var(--gpc-ink); border: 1px solid var(--gpc-line-2);
  border-radius: 2px; padding: 8px 14px; transition: border-color .18s ease, color .18s ease;
}
.gp-culture .gp-culture-apply:hover,
.gp-culture .gp-culture-clear:hover { border-color: var(--gpc-accent); color: #fff; }
.gp-culture .gp-culture-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gp-culture .gp-culture-chip {
  font-size: 12px; letter-spacing: 0.01em; color: var(--gpc-muted);
  border: 1px solid var(--gpc-line); border-radius: 2px; padding: 6px 12px;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.gp-culture .gp-culture-chip:hover { color: var(--gpc-ink); border-color: var(--gpc-line-2); }
.gp-culture .gp-culture-chip.is-active {
  color: #0a0b0d; background: var(--gpc-accent); border-color: var(--gpc-accent);
}
.gp-culture .gp-culture-filter-foot { margin-top: 2px; }

/* ---- Section blocks ---- */
.gp-culture .gp-culture-block { margin: 0 0 clamp(30px, 4.5vw, 56px); }
.gp-culture .gp-culture-block-head {
  display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap;
  gap: 6px 16px; padding-bottom: 14px; margin-bottom: 24px;
  border-bottom: 1px solid var(--gpc-line);
}
.gp-culture .gp-culture-h2 {
  font-family: var(--gpc-serif); font-weight: 600; font-size: clamp(1.4rem, 2.6vw, 2rem);
  line-height: 1.1; letter-spacing: -0.005em; color: var(--gpc-ink); margin: 0;
}
.gp-culture .gp-culture-block-sub { margin: 0; font-size: 12px; color: var(--gpc-faint); letter-spacing: 0.02em; }
.gp-culture .gp-culture-viewing {
  font-size: 11px; letter-spacing: var(--gpc-label); text-transform: uppercase;
  color: var(--gpc-accent); margin: 0 0 16px;
}

/* ---- Featured / results: text-first cards ---- */
.gp-culture .gp-culture-feature-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1px;
  background: var(--gpc-line); border: 1px solid var(--gpc-line); border-radius: 3px; overflow: hidden;
}
.gp-culture .gp-culture-feature {
  display: flex; flex-direction: column; gap: 12px; min-width: 0;
  background: #0a0b0d; padding: 24px 22px 22px; transition: background .2s ease;
}
.gp-culture .gp-culture-feature:hover { background: #0d0f12; }
.gp-culture .gp-culture-feature-kicker {
  font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gpc-accent);
  overflow-wrap: anywhere;
}
.gp-culture .gp-culture-feature-title {
  font-family: var(--gpc-serif); font-weight: 600; font-size: 1.35rem; line-height: 1.2;
  color: var(--gpc-ink); margin: 0; transition: color .2s ease;
}
.gp-culture .gp-culture-feature:hover .gp-culture-feature-title { color: #fff; }
.gp-culture .gp-culture-feature-note {
  font-size: 0.92rem; line-height: 1.55; color: var(--gpc-muted); margin: 0;
}
.gp-culture .gp-culture-feature-source {
  align-self: flex-start; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--gpc-faint); border: 1px solid var(--gpc-line); border-radius: 2px; padding: 3px 8px;
}
.gp-culture .gp-culture-feature-more {
  margin-top: auto; padding-top: 6px; font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gpc-faint); transition: color .2s ease;
}
.gp-culture .gp-culture-feature:hover .gp-culture-feature-more { color: var(--gpc-accent); }

/* ---- Archive index (grouped, Croatia-first) ---- */
.gp-culture .gp-culture-index-groups {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(22px, 3vw, 40px);
}
.gp-culture .gp-culture-index-group { min-width: 0; }
.gp-culture .gp-culture-index-group-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding-bottom: 10px; margin-bottom: 6px; border-bottom: 1px solid var(--gpc-line-2);
}
.gp-culture .gp-culture-index-group-title {
  font-size: 11px; letter-spacing: var(--gpc-label); text-transform: uppercase; color: var(--gpc-ink); margin: 0;
}
.gp-culture .gp-culture-index-viewall {
  font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gpc-faint);
  white-space: nowrap; transition: color .18s ease;
}
.gp-culture .gp-culture-index-viewall:hover { color: var(--gpc-accent); }
.gp-culture .gp-culture-index-list { list-style: none; margin: 0; padding: 0; }
.gp-culture .gp-culture-index-item {
  padding: 12px 0; border-bottom: 1px solid var(--gpc-line);
  display: flex; flex-direction: column; gap: 3px;
}
.gp-culture .gp-culture-index-item:last-child { border-bottom: 0; }
.gp-culture .gp-culture-index-link {
  font-family: var(--gpc-serif); font-size: 1.05rem; line-height: 1.25; color: var(--gpc-ink);
  transition: color .18s ease;
}
.gp-culture .gp-culture-index-link:hover { color: var(--gpc-accent); }
.gp-culture .gp-culture-index-meta {
  font-size: 11px; letter-spacing: 0.04em; color: var(--gpc-faint); overflow-wrap: anywhere;
}

/* ---- Regional / international ---- */
.gp-culture .gp-culture-regional .gp-culture-h2 { color: var(--gpc-muted); }
.gp-culture .gp-culture-regional-list {
  columns: 2; column-gap: clamp(22px, 3vw, 40px);
}
.gp-culture .gp-culture-regional-list .gp-culture-index-item { break-inside: avoid; }

/* ---- Empty states ---- */
.gp-culture .gp-culture-empty-note {
  border: 1px dashed var(--gpc-line-2); border-radius: 3px; padding: 26px;
  color: var(--gpc-muted); font-size: 0.95rem; line-height: 1.6;
}
.gp-culture .gp-culture-empty-note p { margin: 0 0 8px; }
.gp-culture .gp-culture-empty-note p:last-child { margin: 0; }

/* ---- Footer area: protocol + essays ---- */
.gp-culture .gp-culture-foot {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(24px, 4vw, 56px);
  padding-top: clamp(26px, 4vw, 44px); margin-top: clamp(12px, 2vw, 24px);
  border-top: 1px solid var(--gpc-line-2);
}
.gp-culture .gp-culture-protocol-title {
  font-family: var(--gpc-serif); font-weight: 600; font-size: 1.25rem; color: var(--gpc-ink);
  margin: 0 0 6px;
}
.gp-culture .gp-culture-protocol-lead { font-size: 12px; color: var(--gpc-faint); letter-spacing: 0.02em; margin: 0 0 16px; }
.gp-culture .gp-culture-protocol-list { list-style: none; margin: 0; padding: 0; }
.gp-culture .gp-culture-protocol-list li {
  position: relative; padding: 0 0 12px 18px; font-size: 0.92rem; line-height: 1.55; color: var(--gpc-muted);
}
.gp-culture .gp-culture-protocol-list li::before {
  content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 1px; background: var(--gpc-accent);
}
.gp-culture .gp-culture-essay-list { list-style: none; margin: 0; padding: 0; }
.gp-culture .gp-culture-essay-item {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid var(--gpc-line);
}
.gp-culture .gp-culture-essay-item:last-child { border-bottom: 0; }
.gp-culture .gp-culture-essay-link {
  font-family: var(--gpc-serif); font-size: 1rem; color: var(--gpc-ink); transition: color .18s ease;
}
.gp-culture .gp-culture-essay-link:hover { color: var(--gpc-accent); }
.gp-culture .gp-culture-essay-date { font-size: 11px; color: var(--gpc-faint); white-space: nowrap; }

/* ---- Single Culture entry ---- */
.gp-culture-single .gp-culture-single-meta {
  border-top: 1px solid var(--gpc-line-2); border-bottom: 1px solid var(--gpc-line);
  padding: 16px 0; margin: 16px 0 22px; display: flex; flex-direction: column; gap: 8px;
}
.gp-culture-single .gp-culture-single-line {
  font-size: 11px; letter-spacing: var(--gpc-label); text-transform: uppercase; color: var(--gpc-accent); margin: 0;
}
.gp-culture-single .gp-culture-single-note { font-size: 0.98rem; line-height: 1.6; color: var(--gpc-muted); margin: 0; }
.gp-culture-single .gp-culture-feature-source {
  align-self: flex-start; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--gpc-faint); border: 1px solid var(--gpc-line); border-radius: 2px; padding: 3px 8px;
}
.gp-culture-single .gp-content { font-size: 1.02rem; line-height: 1.72; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
  .gp-culture .gp-culture-paths { grid-template-columns: repeat(2, 1fr); }
  .gp-culture .gp-culture-path:nth-child(2n) { border-right: 0; }
  .gp-culture .gp-culture-path { border-bottom: 1px solid var(--gpc-line); }
  .gp-culture .gp-culture-foot { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .gp-culture .gp-culture-paths { grid-template-columns: 1fr; }
  .gp-culture .gp-culture-path { border-right: 0; }
  .gp-culture .gp-culture-feature-grid { grid-template-columns: 1fr; }
  .gp-culture .gp-culture-index-groups { grid-template-columns: 1fr; }
  .gp-culture .gp-culture-regional-list { columns: 1; }
  .gp-culture .gp-culture-select { min-width: 0; width: 100%; }
  .gp-culture .gp-culture-location-form { width: 100%; }
}

/* =========================================================================
   PHASE 9.1.3 - Culture single back link + active-filter status (Culture-scoped)
   ========================================================================= */
.gp-culture-single .gp-culture-single-back { margin: 0 0 14px; }
.gp-culture-single .gp-culture-back-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--gpc-muted); transition: color .18s ease;
}
.gp-culture-single .gp-culture-back-link:hover { color: var(--gpc-accent); }
.gp-culture .gp-culture-filter-status {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 10px 16px; margin: 0 0 22px; padding: 12px 16px;
  border: 1px solid var(--gpc-line-2); border-left: 2px solid var(--gpc-accent);
  border-radius: 2px; background: rgba(192,151,92,0.05);
}
.gp-culture .gp-culture-filter-status-label {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gpc-ink);
}


/* ============================================================
   Phase 9.2B - Public design-system unification (display only)
   Home is the visual baseline. This block ONLY:
   - adds shared modifiers/utilities used by weaker public pages
   - aligns archive heads, gateway links, basic pages
   - polishes Bookings toward Home tokens WITHOUT changing its
     staggered roster layout (no grid-template-columns here)
   It must NOT alter Home (.gp-home-*), and must NOT match
   .gp-culture / .gp-culture-single (Culture stays as Phase 9.1.x).
   Rollback: delete everything between these markers.
   ============================================================ */

/* 1. Cover-safe release media: square art is no longer cropped to 16/9.
   Applied only to release cards via the extra .gp-media-1x1 class. */
.gp-featured-media.gp-media-1x1{ aspect-ratio: 1 / 1; }

/* 2. Listing excerpt clamp (visual backstop; wp_trim_words already trims). */
.gp-card-excerpt{
  margin-top: 6px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

/* 3. Tools: denser, intentional cards (no giant empty boxes). */
.gp-tools-grid{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.gp-tools-grid .gp-card{ min-height: 124px; display: flex; flex-direction: column; }
.gp-tools-grid .gp-card .gp-card-pad{ display: flex; flex-direction: column; gap: 6px; height: 100%; }

/* 4. Shared archive head rhythm (Sound / People / Tools / Events / Labels).
   Inline flex layout on .gp-pagehead is preserved; this only adds spacing. */
.gp-pagehead{
  margin-bottom: clamp(14px, 2.4vw, 22px);
  padding-bottom: clamp(12px, 2vw, 18px);
  border-bottom: 1px solid var(--gp-border);
}

/* 5. Labels gateway links: secondary wayfinding, not primary lane nav. */
.gp-gateway-links{ display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.gp-gateway-link{
  font-size: 11px;
  padding: 5px 10px;
  background: transparent;
  border-color: rgba(255,255,255,0.12);
  color: var(--gp-muted);
  letter-spacing: 0.04em;
}
.gp-gateway-link:hover{ color: var(--gp-text); border-color: rgba(124,92,255,0.30); }

/* 6. Basic pages (About / Contact): consistent rhythm and heading scale. */
.gp-basic-page{ padding-top: clamp(18px, 3vw, 34px); padding-bottom: clamp(28px, 4vw, 52px); }
.gp-basic-page > article > h1{
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  line-height: 1.08;
  letter-spacing: -0.5px;
  margin: 0 0 14px;
}
.gp-basic-page .gp-content,
.gp-basic-page .gp-page-body{ line-height: 1.7; }

/* 7. Bookings polish - premium/intentional, aligned to Home's restrained
   purple accent and card interactivity. NO layout/column changes here:
   the alternating .gp-bookings-roster__item:nth-child(even) swap that
   creates the staggered left/right rhythm is intentionally untouched. */
.gp-bookings-roster__index{
  color: rgba(124,92,255,0.85);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.gp-bookings-roster__media{
  border: 1px solid var(--gp-border);
  transition: border-color 220ms cubic-bezier(.2,.8,.2,1);
}
.gp-bookings-roster__media img{
  transition: transform 420ms cubic-bezier(.2,.8,.2,1), filter 300ms ease;
}
.gp-bookings-roster__item:hover .gp-bookings-roster__media{ border-color: rgba(124,92,255,0.30); }
.gp-bookings-roster__item:hover .gp-bookings-roster__media img{ transform: scale(1.03); filter: saturate(0.92) contrast(1.02); }
.gp-bookings-roster__proof{ color: var(--gp-text); }
.gp-bookings-roster__proof:hover{ color: var(--gp-accent); }
/* ===================== end Phase 9.2B ===================== */


/* ============================================================
   Phase 9.2C - Visual identity correction (CSS only)
   One premium-black Groove Protocol identity across all public
   pages; modules stay separate. This block only adjusts the
   background, palette and contrast (tokens + a few component
   colors). It does NOT change layout, structure, routes, or
   Culture's archive hierarchy. No new assets, no animations.
   Rollback: delete everything between these markers.
   ============================================================ */

/* 1. Premium black background - neutralize the Home background video and
   any custom background image so no blue sci-fi / glowing-grid mood
   remains. The media asset is unchanged; it is desaturated and darkened
   in CSS so it reads as a subtle black texture matching every page.
   (On reduced-motion and <= 700px the video is hidden and the solid
   --gp-bg already shows, so mobile is premium black either way.) */
.gp-bg-video video{ filter: grayscale(0.92) brightness(0.46) contrast(1.04); }
.gp-bg-overlay{ background: rgba(7,9,12,0.9); }
.gp-bg-image-layer__image{ filter: grayscale(0.9) brightness(0.48) contrast(1.03); }
.gp-bg-image-layer__overlay{ background: rgba(7,9,12,0.88); }
body.gp-has-custom-bg{ background: var(--gp-bg); }

/* 2. Culture palette harmony - move Culture off the bronze/cream "separate
   museum brand" onto the global muted-purple + off-white + black system.
   Serif headings and the archive hierarchy stay; only color tokens change,
   so every Culture element re-tints in a single pass. */
.gp-culture,
.gp-culture-single{
  --gpc-ink: var(--gp-text);
  --gpc-muted: rgba(232,237,244,0.66);
  --gpc-faint: rgba(232,237,244,0.40);
  --gpc-line: rgba(255,255,255,0.12);
  --gpc-line-2: rgba(255,255,255,0.20);
  --gpc-accent: var(--gp-accent);
  --gpc-surface: rgba(255,255,255,0.02);
}
.gp-culture .gp-culture-path:hover{ background: rgba(124,92,255,0.06); }
.gp-culture .gp-culture-filter-status{ background: rgba(124,92,255,0.05); }

/* 3. Bookings confidence - keep the staggered roster (image/body swap
   preserved); give the artist image a little more weight on desktop and
   lift body-copy contrast so it reads premium, not dry. The image-weight
   bump is min-width guarded so the <= 860px single-column collapse stays
   intact. Not flattened, still not People. */
@media (min-width: 861px){
  .gp-bookings-roster__item{ grid-template-columns: minmax(168px, 214px) minmax(0, 1fr); }
  .gp-bookings-roster__item:nth-child(even){ grid-template-columns: minmax(0, 1fr) minmax(168px, 214px); }
}
.gp-bookings-roster__sentence{ color: rgba(232,237,244,0.82); }
.gp-bookings-roster__details{ color: rgba(232,237,244,0.74); }
/* ===================== end Phase 9.2C ===================== */


/* ============================================================
   Phase 9.2D - Screenshot-based public visual repair (CSS only)
   Builds on 9.2B/9.2C. Goals: remove the Home background animation
   entirely (static premium black, not just darkened), kill the ugly
   card hover underlines, give Bookings real visual weight (staggered
   roster preserved), and make Sound/Events cards read premium rather
   than raw. No structure/route/query/backend/Culture-logic changes,
   no new assets. Rollback: delete everything between these markers.
   ============================================================ */

/* 1. HOME BACKGROUND - removed, not darkened.
   The animated video only renders on the front page, so hiding the
   element outright leaves inner pages untouched and guarantees no
   cloud/sci-fi animation remains. The custom image layer is hidden on
   the front page for a static premium-black Home. */
.gp-bg-video{ display: none !important; }
body.home .gp-bg-image-layer{ display: none !important; }

/* Subtle, static, hue-free premium depth behind every page
   (no animation, no blue, no grid) - unifies the black foundation. */
body{
  background-color: var(--gp-bg);
  background-image: radial-gradient(120% 80% at 50% -6%, rgba(255,255,255,0.028), rgba(255,255,255,0) 56%);
  background-attachment: fixed;
}
body.gp-has-custom-bg{
  background-color: var(--gp-bg);
  background-image: radial-gradient(120% 80% at 50% -6%, rgba(255,255,255,0.028), rgba(255,255,255,0) 56%);
}

/* 2. CARD HOVER UNDERLINES - removed.
   Whole-card anchors and links inside cards inherited underline from
   `.gp-content a:hover` and `.gp-link:hover`, underlining all card text.
   Hover affordance stays via the card lift + purple border. Focus-visible
   outlines are NOT touched (keyboard accessibility preserved). */
a.gp-card,
.gp-card.gp-link,
a.gp-card:hover,
.gp-card.gp-link:hover,
.gp-content a.gp-card:hover,
.gp-content .gp-card a:hover,
.gp-card a:hover{ text-decoration: none; }

/* 3. SOUND release cards - premium, not raw catalogue.
   Scoped via the Sound-only 1:1 media variant + its adjacent body, so
   People / Tools / Home cards are unaffected. Clearer title, calm rhythm. */
.gp-media-1x1 + .gp-card-pad{ padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; }
.gp-media-1x1 + .gp-card-pad .gp-card-title{ font-size: 16px; line-height: 1.25; letter-spacing: -0.2px; }
.gp-media-1x1 + .gp-card-pad .gp-card-excerpt{ margin-top: 2px; }

/* 4. EVENTS series cards - no huge empty blocks.
   Denser responsive grid + a sensible min-height for short-copy series. */
.gp-events-series-grid{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.gp-events-series-card{ min-height: 120px; }

/* 5. BOOKINGS - stronger, more confident; staggered roster preserved.
   Bigger artist image on desktop (min-width guarded so the <=860px
   single-column collapse is intact); calmer body line-height. The
   alternating image/body swap is untouched. Not flattened, not People. */
@media (min-width: 861px){
  .gp-bookings-roster__item{ grid-template-columns: minmax(196px, 248px) minmax(0, 1fr); gap: clamp(30px, 3.6vw, 52px); }
  .gp-bookings-roster__item:nth-child(even){ grid-template-columns: minmax(0, 1fr) minmax(196px, 248px); }
}
.gp-bookings-roster__sentence{ line-height: 1.6; }
/* ===================== end Phase 9.2D ===================== */


/* ============================================================
   Phase 9.3 - Public surface completion (CSS portion)
   Builds on 9.2B/C/D. Premium black system kept. This block only
   strengthens hierarchy/rhythm on weaker pages and styles the new
   display-level hooks added in the 9.3 template edits (Sound card
   meta, People spotlight, Tools/Labels density). No new identity,
   no assets, no animation. Must not target .gp-culture/.gp-culture-single.
   Rollback: delete everything between these markers.
   ============================================================ */

/* A. HOME - give the hero a confident masthead anchor (decorative only,
   no new copy/assets) so the page no longer opens abruptly on Featured
   Artists, and make the About block feel intentional rather than placeholder. */
.gp-home-hero__shell::before{
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin: 0 0 22px;
  background: var(--gp-accent);
  opacity: 0.85;
  border-radius: 2px;
}
.gp-home-hero--tight{ padding-bottom: clamp(30px, 4vw, 46px); }
.gp-home-hero__copy{ color: rgba(232,237,244,0.72); }
.gp-home-about-card .gp-card-pad{ padding: clamp(22px, 3vw, 34px); }
.gp-home-about-card__copy{ max-width: 70ch; color: rgba(232,237,244,0.78); line-height: 1.7; }

/* B. SOUND - release card meta line (label . date). Dim, small, premium. */
.gp-release-card__meta{
  margin-top: 4px;
  font-size: 12px;
  letter-spacing: 0.01em;
  color: rgba(232,237,244,0.55);
}

/* C. PEOPLE - Registry Spotlight should not leave empty columns when only
   one or two people are curated. Auto-fit collapses unused tracks so the
   cards fill the row intentionally. Scoped to the spotlight only. */
.gp-people-spotlight .gp-grid-3{
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

/* D. LABELS - make the two lanes feel like serious label cards: more
   presence, clearer logo/title hierarchy, contained width so they do not
   stretch thin. Routes/actions unchanged. */
.gp-labels-grid{ max-width: 880px; gap: clamp(16px, 2.2vw, 24px); }
.gp-label-card{ min-height: 0; }
.gp-label-card .gp-card-pad{ padding: clamp(22px, 3vw, 32px); display: flex; flex-direction: column; }
.gp-label-card .gp-card-logo{ width: 120px; margin-top: 16px; }
.gp-label-card .gp-card-title{ font-size: 1.25rem; letter-spacing: -0.2px; }
.gp-label-card .gp-panel-actions{ margin-top: auto; padding-top: 16px; }

/* E. BOOKINGS - calmer hero wrapping + give the enquiry a real panel
   surface so it reads as deliberate, not weaker than the roster.
   Form action/fields/grid untouched (styling only). */
.gp-bookings-hero__title{ line-height: 0.96; }
.gp-bookings-hero__headline{ line-height: 1.24; }
.gp-bookings-enquiry__panel{
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--gp-border);
  border-radius: var(--gp-radius);
  background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.012));
}
.gp-bookings-enquiry__notice{
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
/* ===================== end Phase 9.3 ===================== */


/* ============================================================
   Phase 9.3.1 - Final public visual polish (CSS only)
   Micro-fixes on top of 9.2B/C/D + 9.3. No redesign, no structure,
   route, data, form or module changes. Must not target Culture logic
   or layout - only palette restraint on Culture accents.
   Rollback: delete everything between these markers.
   ============================================================ */

/* Fix 1 - Tone down purple links; card titles are off-white, not purple.
   Active pills (.gp-pill.is-active) and buttons (.gp-btn) keep their stronger
   purple; default underline already removed in 9.2D; focus outline preserved. */
.gp-contact-link,
.gp-link:not(.gp-pill){ color: rgba(178,170,205,0.82); }
.gp-card .gp-card-title{ color: var(--gp-text); }

/* Fix 2 - Home Labels cards no longer clipped at the top.
   These cards have no media, so visible overflow is safe; give the body
   clear, explicit padding so title and description render cleanly. */
.gp-home-labels-compact{ margin-top: 4px; }
.gp-home-label-card{ overflow: visible; }
.gp-home-label-card .gp-card-pad{ padding: 20px; }
.gp-home-label-card .gp-card-title{ margin-top: 0; }

/* Fix 3 - Bookings visual scale (staggered roster preserved; swap untouched).
   Slightly larger/clearer artist text, better description contrast, and a touch
   more image presence on desktop. Image-weight bump stays min-width guarded. */
@media (min-width: 861px){
  .gp-bookings-roster__item{ grid-template-columns: minmax(210px, 264px) minmax(0, 1fr); }
  .gp-bookings-roster__item:nth-child(even){ grid-template-columns: minmax(0, 1fr) minmax(210px, 264px); }
}
.gp-bookings-roster__title{ font-size: clamp(1.62rem, 2.4vw, 2.35rem); line-height: 1.02; }
.gp-bookings-roster__sentence{ font-size: clamp(1.02rem, 1.5vw, 1.16rem); color: rgba(232,237,244,0.9); }
.gp-bookings-roster__fit{ color: rgba(232,237,244,0.92); }
.gp-bookings-roster__excerpt{ color: rgba(232,237,244,0.72); }

/* Fix 4 - Labels page cards: more compact and premium (less empty space).
   Reduce padding, logo dominance and grid width. Routes/actions unchanged. */
.gp-labels-grid{ max-width: 760px; }
.gp-label-card .gp-card-pad{ padding: clamp(18px, 2.2vw, 24px); }
.gp-label-card .gp-card-logo{ width: 92px; margin-top: 12px; }
.gp-label-card .gp-card-title{ font-size: 1.15rem; margin: 8px 0 6px; }
.gp-label-card .gp-panel-actions{ padding-top: 12px; }

/* Fix 5 - Events series cards: more compact; reduce the empty dark media area. */
.gp-events-series-card{ min-height: 0; }
.gp-events-archive .gp-events-series-media{ height: 104px; padding: 12px; }
.gp-events-archive .gp-events-series-media img{ max-height: 64px; }
.gp-events-series-card .gp-card-pad{ padding-top: 14px; padding-bottom: 16px; }

/* Fix 6 - Culture accent restraint: softer purple micro-accents by default
   (eyebrows, meta, underlines, read-more), brighter only on hover.
   Structure, hierarchy and logic untouched; serif headings unchanged. */
.gp-culture,
.gp-culture-single{ --gpc-accent: rgba(156,146,196,0.82); }
.gp-culture .gp-culture-feature:hover .gp-culture-feature-more,
.gp-culture .gp-culture-essay-link:hover,
.gp-culture .gp-culture-index-link:hover,
.gp-culture .gp-culture-index-viewall:hover{ color: var(--gp-accent); }
/* ===================== end Phase 9.3.1 ===================== */


/* ============================================================
   Phase 10B - Label OS public hub + hide Sound from public nav
   Sound becomes a hidden legacy archive: removed from the visible
   navigation only. /sound/ is NOT deleted and NOT redirected - it
   still resolves. No backend/CPT/route/data changes. Labels page
   markup hooks live in page-labels.php. Charts/roster are admin-ready
   placeholders (no fabricated data). GP and RBR stay separate.
   Rollback: delete everything between these markers (and restore
   page-labels.php from the prior ZIP).
   ============================================================ */

/* 1. Remove Sound from the VISIBLE public navigation (legacy archive still works). */
.gp-nav li:has(> a[href$="/sound/"]),
.gp-nav li:has(> a[href$="/sound"]){ display: none; }
.gp-nav a[href$="/sound/"],
.gp-nav a[href$="/sound"]{ display: none; }

/* 2. Label OS layout */
.gp-labelos{ padding-top: clamp(20px, 3vw, 36px); padding-bottom: clamp(40px, 6vw, 72px); }
.gp-labelos__head{ margin-bottom: clamp(22px, 3vw, 36px); }
.gp-labelos__eyebrow{ display:inline-block; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gp-accent); margin-bottom: 10px; }
.gp-labelos__title{ margin: 0; font-size: clamp(2.1rem, 4vw, 3.2rem); line-height: 1.04; letter-spacing: -0.02em; }
.gp-labelos__intro{ margin: 12px 0 0; max-width: 64ch; color: rgba(232,237,244,0.72); line-height: 1.6; }
.gp-labelos__gateways{ margin-top: 16px; }

.gp-labelos__section{ margin-top: clamp(28px, 4vw, 48px); }
.gp-labelos__section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--gp-border); }
.gp-labelos__h{ margin:0; font-size: clamp(1.05rem, 1.6vw, 1.35rem); letter-spacing: -0.01em; }
.gp-labelos__hint{ font-size: 12px; color: rgba(232,237,244,0.5); }

.gp-labelos-gateways{ display:grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(14px, 2vw, 20px); }
.gp-labelos-gateway__head{ display:flex; align-items:center; gap:16px; }
.gp-labelos-gateway__logo{ width: 64px; height:64px; object-fit: contain; border-radius: 10px; background: rgba(255,255,255,0.03); padding: 8px; flex: none; }
.gp-labelos-gateway__id{ display:flex; flex-direction:column; gap:8px; }
.gp-labelos-gateway__name{ margin: 0; font-size: 1.25rem; }
.gp-labelos-gateway__desc{ margin: 14px 0 0; line-height: 1.6; }
.gp-labelos-gateway__actions{ margin-top: 16px; display:flex; gap:10px; flex-wrap:wrap; }

.gp-labelos-streams{ display:grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(16px, 2.4vw, 28px); }
.gp-labelos-stream__head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom: 12px; }
.gp-labelos-stream__label{ margin:0; font-size: 0.95rem; letter-spacing: 0.02em; color: var(--gp-text); }
.gp-labelos-stream__all{ font-size: 12px; }
.gp-labelos-stream__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: 8px; }
.gp-labelos-release__link{ display:flex; align-items:center; gap:12px; padding:8px; border:1px solid var(--gp-border); border-radius: 12px; background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.012)); transition: border-color 160ms, transform 160ms; }
.gp-labelos-release__link:hover{ border-color: rgba(124,92,255,0.30); transform: translateY(-1px); }
.gp-labelos-release__media{ width: 46px; height:46px; flex:none; border-radius: 8px; overflow:hidden; background: rgba(255,255,255,0.04); }
.gp-labelos-release__media img{ width:100%; height:100%; object-fit: cover; }
.gp-labelos-release__media--empty{ background: rgba(255,255,255,0.05); }
.gp-labelos-release__body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.gp-labelos-release__title{ color: var(--gp-text); font-size: 0.92rem; font-weight: 600; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gp-labelos-release__date{ color: rgba(232,237,244,0.5); font-size: 0.78rem; }

.gp-labelos-ops{ display:grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(14px, 2vw, 20px); }
.gp-labelos-panel__head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 10px; }
.gp-labelos-panel__head .gp-labelos__h{ font-size: 1.1rem; }
.gp-labelos-panel__note{ margin: 0 0 14px; line-height: 1.55; font-size: 0.9rem; }
.gp-labelos-panel__actions{ display:flex; gap:10px; flex-wrap:wrap; }
.gp-labelos-chart{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.gp-labelos-chart__row{ display:flex; align-items:center; gap:12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.gp-labelos-chart__row:last-child{ border-bottom: 0; }
.gp-labelos-chart__rank{ font-variant-numeric: tabular-nums; font-size: 0.82rem; color: rgba(124,92,255,0.7); width: 26px; flex:none; }
.gp-labelos-chart__slot{ flex:1; height: 8px; border-radius: 4px; background: repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0 10px, rgba(255,255,255,0) 10px 20px); }

.gp-labelos-demos .gp-card-pad{ display:flex; align-items:center; justify-content:space-between; gap: clamp(14px, 3vw, 28px); flex-wrap:wrap; }
.gp-labelos-demos__copy{ max-width: 52ch; }
.gp-labelos-demos__copy .gp-labelos__h{ margin-bottom: 6px; }
.gp-labelos-demos__actions{ display:flex; gap:10px; flex-wrap:wrap; }

.gp-labelos__notes{ border-top: 1px solid var(--gp-border); padding-top: clamp(20px, 3vw, 32px); }
.gp-labelos__notes .gp-page-body{ max-width: 72ch; }

@media (max-width: 640px){
  .gp-labelos-demos .gp-card-pad{ align-items:flex-start; }
  .gp-labelos-gateway__logo{ width: 52px; height: 52px; }
}
/* ===================== end Phase 10B ===================== */


/* ============================================================
   Phase 10C - People management-only (compact team + empty state)
   People is no longer an artist registry. Compact, intentional,
   premium-black DNA. Muted purple only as a micro-accent (role label).
   No oversized cards, no giant blank grid, no artist styling, no
   card underline. Cards are static (singles are artist-focused, so
   they are intentionally not linked). Rollback: delete this block.
   ============================================================ */
.gp-people--mgmt{ padding-top: clamp(20px, 3vw, 36px); padding-bottom: clamp(40px, 6vw, 72px); }
.gp-people__head{ margin-bottom: clamp(20px, 3vw, 32px); max-width: 70ch; }
.gp-people__eyebrow{ display:inline-block; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(178,170,205,0.82); margin-bottom: 10px; }
.gp-people__title{ margin:0; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; letter-spacing: -0.02em; }
.gp-people__intro{ margin: 12px 0 0; color: rgba(232,237,244,0.8); font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.5; }
.gp-people__note{ margin: 10px 0 0; color: rgba(232,237,244,0.55); font-size: 0.9rem; line-height: 1.55; }

.gp-people-team{ display:grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(12px, 1.8vw, 18px); }
.gp-people-card .gp-card-pad{ padding: clamp(16px, 2vw, 20px); }
.gp-people-card__head{ display:flex; align-items:center; gap: 14px; }
.gp-people-card__avatar{ width: 56px; height: 56px; flex:none; border-radius: 50%; overflow:hidden; background: rgba(255,255,255,0.05); border: 1px solid var(--gp-border); }
.gp-people-card__avatar img{ width:100%; height:100%; object-fit: cover; }
.gp-people-card__avatar--empty{ background: rgba(255,255,255,0.04); }
.gp-people-card__id{ min-width: 0; }
.gp-people-card__role{ display:block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(178,170,205,0.82); margin-bottom: 4px; }
.gp-people-card__name{ margin:0; font-size: 1.05rem; line-height: 1.2; }
.gp-people-card__excerpt{ margin: 12px 0 0; line-height: 1.55; font-size: 0.92rem; }

.gp-people-empty{ display:flex; justify-content:center; }
.gp-people-empty__card{ width: 100%; max-width: 620px; }
.gp-people-empty__card .gp-card-pad{ padding: clamp(24px, 4vw, 40px); }
.gp-people-empty__title{ margin:0; font-size: clamp(1.4rem, 2.4vw, 1.9rem); letter-spacing: -0.01em; }
.gp-people-empty__text{ margin: 12px 0 0; color: rgba(232,237,244,0.8); line-height: 1.6; }
.gp-people-empty__note{ margin: 12px 0 0; color: rgba(232,237,244,0.55); font-size: 0.9rem; line-height: 1.55; }
.gp-people-empty__links{ margin-top: 20px; display:flex; gap: 10px; flex-wrap: wrap; }

@media (max-width: 640px){
  .gp-people-card__avatar{ width: 48px; height: 48px; }
}
/* ===================== end Phase 10C ===================== */


/* ============================================================
   Phase 10E - Label OS single-label views + typography correction
   Adds the focused /labels/?label= detail layout, corrects the public
   type colour system (clean off-white headings, readable body, meta that
   is dim-but-legible, muted purple-grey links that brighten on hover),
   definitively fixes the Home Labels title clipping, and trims a few
   inflated panels. Premium black DNA; purple stays a micro-accent.
   Rollback: delete everything between these markers.
   ============================================================ */

/* ---- Typography: clean off-white headings (never muddy purple-grey) ---- */
.gp-section-title,
.gp-pagehead h1,
.gp-card .gp-card-title,
.gp-home-hero__title,
.gp-labelos__title,
.gp-labelos__h,
.gp-labelos-idcard__name,
.gp-labelos-gateway__name,
.gp-people__title,
.gp-people-empty__title,
.gp-bookings-hero__title,
.gp-bookings-roster__title{ color: var(--gp-text); }

/* ---- Typography: readable body tier (lift the washed-out greys) ---- */
.gp-home-section__summary,
.gp-home-label-card__desc,
.gp-home-about-card__copy,
.gp-labelos__intro,
.gp-labelos-gateway__desc,
.gp-labelos-idcard__desc,
.gp-labelos-panel__note,
.gp-people__intro{ color: rgba(232,237,244,0.76); }

/* ---- Typography: meta tier (dimmer than body, still legible) ---- */
.gp-release-card__meta,
.gp-labelos-release__meta,
.gp-labelos-release__date,
.gp-labelos-release__cat,
.gp-labelos__hint,
.gp-labelos-idcard__status,
.gp-people__note,
.gp-people-empty__note{ color: rgba(232,237,244,0.6); }

/* ---- Typography: links - muted purple-grey default, brighter purple on hover, focus kept ---- */
.gp-contact-link,
.gp-link:not(.gp-pill){ color: rgba(178,170,205,0.82); text-decoration: none; }
.gp-contact-link:hover,
.gp-link:not(.gp-pill):hover{ color: rgba(157,138,255,0.96); text-decoration: none; }
.gp-contact-link:focus-visible,
.gp-link:not(.gp-pill):focus-visible{ outline: 2px solid rgba(124,92,255,0.6); outline-offset: 2px; }

/* ---- Home Labels: definitive anti-clip (high specificity, both home paths) ---- */
.gp-home-builder--restructured .gp-home-label-card,
.gp-home-section--labels .gp-home-label-card,
.gp-home-label-card{ display: block; overflow: visible; min-height: 0; height: auto; }
.gp-home-builder--restructured .gp-home-label-card .gp-card-pad,
.gp-home-section--labels .gp-home-label-card .gp-card-pad,
.gp-home-label-card .gp-card-pad{ padding: 18px; overflow: visible; }
.gp-home-builder--restructured .gp-home-label-card .gp-card-title,
.gp-home-section--labels .gp-home-label-card .gp-card-title,
.gp-home-label-card .gp-card-title{ margin: 0 0 6px; line-height: 1.3; overflow: visible; }
.gp-home-label-card__desc{ overflow: visible; }

/* ---- Oversized-panel trims (less dark-cloud, still premium surfaces) ---- */
.gp-labelos-panel .gp-card-pad{ padding: clamp(18px, 2.2vw, 22px); }
.gp-labelos-gateway .gp-card-pad{ padding: clamp(18px, 2.2vw, 22px); }
.gp-labelos-demos .gp-card-pad{ padding: clamp(18px, 2.4vw, 26px); }

/* ---- Label OS single-label detail layout ---- */
.gp-labelos--detail{ padding-top: clamp(16px, 2.4vw, 28px); }
.gp-labelos-back{ display:inline-flex; align-items:center; gap:8px; font-size: 13px; color: rgba(178,170,205,0.82); text-decoration:none; margin-bottom: clamp(16px, 2.4vw, 24px); }
.gp-labelos-back:hover{ color: rgba(157,138,255,0.96); }
.gp-labelos-back:focus-visible{ outline: 2px solid rgba(124,92,255,0.6); outline-offset: 2px; }

.gp-labelos-detail{ display:grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: clamp(18px, 2.6vw, 32px); align-items:start; }
.gp-labelos-rail{ position: sticky; top: 88px; }
.gp-labelos-idcard .gp-card-pad{ padding: clamp(18px, 2.2vw, 24px); }
.gp-labelos-idcard__logo{ width: 72px; height: 72px; object-fit: contain; border-radius: 12px; background: rgba(255,255,255,0.03); padding: 8px; display:block; margin-bottom: 14px; }
.gp-labelos-idcard__name{ margin: 10px 0 8px; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.06; letter-spacing: -0.02em; }
.gp-labelos-idcard__desc{ margin: 0 0 14px; line-height: 1.6; font-size: 0.95rem; }
.gp-labelos-idcard__status{ display:flex; align-items:center; gap:8px; font-size: 12px; margin-bottom: 16px; }
.gp-labelos-statusdot{ width: 7px; height: 7px; border-radius: 50%; background: rgba(124,92,255,0.85); box-shadow: 0 0 0 3px rgba(124,92,255,0.16); flex:none; }
.gp-labelos-idcard__actions{ display:flex; flex-direction:column; gap: 10px; }
.gp-labelos-idcard__actions .gp-btn{ width: 100%; text-align:center; }

.gp-labelos-detail__main{ display:flex; flex-direction:column; gap: clamp(20px, 3vw, 32px); min-width: 0; }
.gp-labelos-detail__main .gp-labelos__section{ margin-top: 0; }

.gp-labelos-viewall{ display:inline-flex; align-items:center; gap: 6px; margin-top: 14px; font-size: 13px; color: rgba(178,170,205,0.82); text-decoration:none; }
.gp-labelos-viewall:hover{ color: rgba(157,138,255,0.96); }
.gp-labelos-viewall:focus-visible{ outline: 2px solid rgba(124,92,255,0.6); outline-offset: 2px; }
.gp-labelos-empty-line{ margin: 0; }

.gp-labelos-release__meta{ display:flex; gap: 8px; align-items:center; flex-wrap:wrap; }

.gp-labelos-gateway__link{ display:flex; align-items:center; gap: 16px; text-decoration:none; }
.gp-labelos-gateway__link:hover .gp-labelos-gateway__name{ color: rgba(157,138,255,0.96); }
.gp-labelos-gateway__link:focus-visible{ outline: 2px solid rgba(124,92,255,0.6); outline-offset: 3px; border-radius: 8px; }

@media (max-width: 900px){
  .gp-labelos-detail{ grid-template-columns: 1fr; }
  .gp-labelos-rail{ position: static; }
  .gp-labelos-idcard__actions{ flex-direction: row; flex-wrap: wrap; }
  .gp-labelos-idcard__actions .gp-btn{ width: auto; }
}
/* ===================== end Phase 10E ===================== */


/* ============================================================
   Phase 10F - Premium visual discipline hard pass (CSS)
   Calmer editorial typography (less gaming-bold), purple reduced to a
   micro-accent, ultra-subtle Bookings index markers, quiet premium hover
   (contrast over movement), an intentional Tools index, a bulletproof
   Home Labels clip fix, and panel compression. Architecture/data unchanged.
   Culture is only touched by gentle global type/link rules - no layout.
   Rollback: delete everything between these markers.
   ============================================================ */

/* ---- F1/F8 Typography: gentle weight reduction + clean off-white headings ---- */
h1, h2, h3, h4, h5{ font-weight: 600; }
.gp-section-title{ font-weight: 560; letter-spacing: -0.4px; }
.gp-card .gp-card-title{ font-weight: 560; line-height: 1.32; }
.gp-brand-title{ font-weight: 620; }
.gp-labelos__title,
.gp-labelos-idcard__name,
.gp-people__title,
.gp-people-empty__title{ font-weight: 580; }
.gp-labelos__h,
.gp-labelos-stream__label,
.gp-labelos-gateway__name,
.gp-labelos-release__title{ font-weight: 560; }
.gp-bookings-roster__title{ font-weight: 540; }

.gp-section-title,
.gp-pagehead h1,
.gp-card .gp-card-title,
.gp-labelos__title,
.gp-labelos__h,
.gp-labelos-idcard__name,
.gp-labelos-gateway__name,
.gp-people__title,
.gp-people-empty__title{ color: var(--gp-text); }

/* ---- F2 Purple restraint (micro-accent only) ---- */
.gp-labelos__eyebrow{ color: rgba(150,140,196,0.82); }
.gp-labelos-statusdot{ background: rgba(124,92,255,0.55); box-shadow: 0 0 0 3px rgba(124,92,255,0.10); }
.gp-contact-link,
.gp-link:not(.gp-pill){ color: rgba(186,182,206,0.84); text-decoration: none; }
.gp-contact-link:hover,
.gp-link:not(.gp-pill):hover{ color: rgba(150,132,236,0.95); text-decoration: none; }
.gp-contact-link:focus-visible,
.gp-link:not(.gp-pill):focus-visible{ outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px; }

/* ---- F3 Bookings index: ultra-subtle structural marker (no purple) ---- */
.gp-bookings-roster__index{ color: rgba(232,237,244,0.16); font-weight: 400; font-variant-numeric: tabular-nums; }

/* ---- F4 Motion reduction: quiet, premium (contrast over movement) ---- */
.gp-card{ transition: border-color 200ms ease, background-color 200ms ease; }
.gp-card:hover{ transform: none; border-color: rgba(124,92,255,0.26); }
.gp-labelos-release__link{ transition: border-color 200ms ease, background-color 200ms ease; }
.gp-labelos-release__link:hover{ transform: none; border-color: rgba(124,92,255,0.26); }
.gp-bookings-roster__item:hover .gp-bookings-roster__media img{ transform: none; filter: saturate(0.96) contrast(1.01); }

/* ---- F5 Tools: intentional resource index ---- */
.gp-tools-subhead{ font-size: clamp(0.95rem, 1.4vw, 1.12rem); font-weight: 560; letter-spacing: -0.2px; margin: 24px 0 12px; color: var(--gp-text); }
.gp-tools-subhead--library{ margin-top: 30px; }
.gp-tools-featured{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(14px, 2vw, 20px); }
.gp-tools-featured .gp-card .gp-card-pad{ padding: clamp(18px, 2.2vw, 22px); }
.gp-tools-featured .gp-card-title{ font-size: 1.05rem; }
.gp-tools-grid,
.gp-tools-library{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.gp-tools-grid .gp-card,
.gp-tools-library .gp-card{ min-height: 0; }
.gp-tools-grid .gp-card .gp-card-pad,
.gp-tools-library .gp-card .gp-card-pad{ padding: 16px; gap: 4px; height: auto; }
.gp-tools-grid .gp-card-title,
.gp-tools-library .gp-card-title{ font-size: 0.98rem; font-weight: 560; }
.gp-tools-grid .gp-card-excerpt,
.gp-tools-library .gp-card-excerpt{ font-size: 0.88rem; -webkit-line-clamp: 2; line-clamp: 2; }

/* ---- F6 Home Labels clipping: bulletproof (full ancestor chain) ---- */
.gp-home-section--labels,
.gp-home-section--labels .gp-container,
.gp-home-section--labels .gp-home-labels-compact,
.gp-home-builder--restructured .gp-home-label-card,
.gp-home-section--labels .gp-home-label-card,
.gp-home-label-card{ overflow: visible; }
.gp-home-builder--restructured .gp-home-label-card,
.gp-home-section--labels .gp-home-label-card,
.gp-home-label-card{ display: block; min-height: 0; height: auto; }
.gp-home-builder--restructured .gp-home-label-card .gp-card-pad,
.gp-home-section--labels .gp-home-label-card .gp-card-pad,
.gp-home-label-card .gp-card-pad{ padding: 18px; overflow: visible; }
.gp-home-builder--restructured .gp-home-label-card .gp-card-title,
.gp-home-section--labels .gp-home-label-card .gp-card-title,
.gp-home-label-card .gp-card-title{ margin: 0 0 6px; padding-top: 2px; line-height: 1.34; overflow: visible; font-weight: 560; }
.gp-home-label-card__desc{ overflow: visible; }

/* ---- F7 Card/panel compression ---- */
.gp-labelos-panel .gp-card-pad{ padding: clamp(16px, 2vw, 20px); }
.gp-labelos-gateway .gp-card-pad{ padding: clamp(16px, 2vw, 20px); }
.gp-label-card .gp-card-pad{ padding: clamp(16px, 2vw, 22px); }
/* ===================== end Phase 10F ===================== */


/* ============================================================
   Phase 11A - Global reset + Home / Tools / Contact rebuild
   Page-specific art direction (not card-grid sameness):
   - Home: a true brand masthead leads; roster reads as a preview;
     label entries are a clean editorial pattern (NOT .gp-card, so the
     long-standing clip is structurally impossible); calmer rhythm.
   - Tools: Featured editorial cards + a compact resource LIST (rows).
   - Contact: a real contact directory (rows + honest placeholders).
   Builds on the 10F type/link/motion baseline. Rollback: delete block.
   ============================================================ */

/* ---- Section rhythm (reduce dead black gaps, even cadence) ---- */
.gp-home-builder--restructured .gp-section{ padding: clamp(26px, 3.6vw, 46px) 0; }
.gp-home-builder--restructured .gp-section--roster,
.gp-home-builder--restructured .gp-home-section--roster{ padding-top: clamp(30px, 4vw, 52px); }

/* ---- HOME: brand masthead leads the page ---- */
.gp-home-hero--lead{ padding-top: clamp(54px, 8.5vw, 116px); padding-bottom: clamp(40px, 6vw, 78px); border-bottom: 1px solid var(--gp-border); }
.gp-home-hero--lead .gp-home-hero__shell{ max-width: 880px; }
.gp-home-hero--lead .gp-home-hero__shell::before{ content: ""; display: block; width: 44px; height: 2px; background: var(--gp-accent); opacity: 0.7; border-radius: 2px; margin-bottom: 26px; }
.gp-home-hero--lead .gp-home-hero__title{ margin: 0; max-width: 16ch; font-size: clamp(2.9rem, 6.2vw, 5.4rem); line-height: 0.99; letter-spacing: -0.03em; font-weight: 560; color: var(--gp-text); }
.gp-home-hero--lead .gp-home-hero__copy{ margin: 22px 0 0; max-width: 60ch; font-size: clamp(1.02rem, 1.6vw, 1.18rem); line-height: 1.7; color: rgba(232,237,244,0.76); }
.gp-home-hero--lead .gp-home-hero__actions{ margin-top: 30px; }

/* ---- HOME: roster as a compact preview (not a hero, not giant tiles) ---- */
.gp-home-roster-grid{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 196px), 1fr)); gap: clamp(12px, 1.6vw, 16px); }
.gp-home-roster-card .gp-card-pad{ padding: 14px; }
.gp-home-roster-card .gp-card-title{ font-size: 1rem; }
.gp-home-roster-card__fit{ font-size: 0.8rem; }

/* ---- HOME: editorial label entries (clip-proof; not a .gp-card) ---- */
.gp-home-labels-compact{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gp-home-label-entry{ display: grid; grid-template-columns: 1fr auto; column-gap: 16px; row-gap: 6px; align-items: center; padding: clamp(18px, 2.4vw, 26px); border: 1px solid var(--gp-border); border-radius: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012)); text-decoration: none; overflow: visible; transition: border-color 200ms ease, background-color 200ms ease; }
.gp-home-label-entry:hover{ border-color: rgba(124,92,255,0.26); }
.gp-home-label-entry:focus-visible{ outline: 2px solid rgba(124,92,255,0.55); outline-offset: 2px; }
.gp-home-label-entry__name{ grid-column: 1; grid-row: 1; font-size: clamp(1.1rem, 1.6vw, 1.32rem); font-weight: 560; letter-spacing: -0.02em; line-height: 1.2; color: var(--gp-text); }
.gp-home-label-entry__desc{ grid-column: 1; grid-row: 2; font-size: 0.92rem; line-height: 1.55; color: rgba(232,237,244,0.66); }
.gp-home-label-entry__go{ grid-column: 2; grid-row: 1 / 3; align-self: center; color: rgba(178,170,205,0.66); font-size: 1.15rem; transition: color 200ms ease; }
.gp-home-label-entry:hover .gp-home-label-entry__go{ color: rgba(157,138,255,0.95); }

/* ---- HOME: cleaner release lanes + compact about ---- */
.gp-home-release-lane .gp-card-pad{ padding: clamp(16px, 2vw, 22px); }
.gp-home-release-row{ transition: border-color 200ms ease, background-color 200ms ease; }
.gp-home-about-card .gp-card-pad{ padding: clamp(20px, 2.6vw, 30px); }
.gp-home-about-card__copy{ max-width: 68ch; }

/* ---- TOOLS: Featured editorial cards + compact resource list ---- */
.gp-tools-featured .gp-card-title{ letter-spacing: -0.01em; }
.gp-tools-list{ display: flex; flex-direction: column; border-top: 1px solid var(--gp-border); margin-top: 4px; }
.gp-tool-row{ display: grid; grid-template-columns: minmax(150px, 0.85fr) 2fr auto; align-items: center; column-gap: 20px; row-gap: 4px; padding: 15px 4px; border-bottom: 1px solid var(--gp-border); text-decoration: none; transition: background-color 180ms ease; }
.gp-tool-row:hover{ background: rgba(255,255,255,0.022); }
.gp-tool-row:focus-visible{ outline: 2px solid rgba(124,92,255,0.55); outline-offset: -2px; }
.gp-tool-row__title{ font-size: 1.02rem; font-weight: 560; letter-spacing: -0.01em; color: var(--gp-text); }
.gp-tool-row__desc{ font-size: 0.9rem; line-height: 1.5; color: rgba(232,237,244,0.64); }
.gp-tool-row__go{ color: rgba(178,170,205,0.55); font-size: 1rem; transition: color 180ms ease; }
.gp-tool-row:hover .gp-tool-row__go{ color: rgba(157,138,255,0.9); }
.gp-tools-empty{ padding: 18px 4px; }

/* ---- CONTACT: a real contact directory (rows, sections, honest placeholders) ---- */
.gp-contact-directory{ margin-top: clamp(18px, 3vw, 28px); border-top: 1px solid var(--gp-border); max-width: 760px; }
.gp-contact-row{ display: grid; grid-template-columns: minmax(120px, 0.7fr) 2fr; align-items: baseline; column-gap: 24px; row-gap: 5px; padding: 16px 2px; border-bottom: 1px solid var(--gp-border); }
.gp-contact-row__label{ font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(232,237,244,0.64); }
.gp-contact-row__detail{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gp-contact-row__value{ font-size: 1.02rem; color: rgba(186,182,206,0.9); text-decoration: none; word-break: break-word; }
.gp-contact-row__value:hover{ color: rgba(157,138,255,0.95); }
.gp-contact-row__note{ font-size: 0.82rem; color: rgba(232,237,244,0.5); }
.gp-contact-row__muted{ font-size: 0.98rem; color: rgba(232,237,244,0.4); }
.gp-contact-row.is-empty .gp-contact-row__label{ color: rgba(232,237,244,0.42); }
.gp-contact-row--route .gp-contact-row__value{ color: var(--gp-text); font-weight: 540; }

@media (max-width: 560px){
  .gp-home-labels-compact{ grid-template-columns: 1fr; }
  .gp-tool-row{ grid-template-columns: 1fr auto; column-gap: 14px; }
  .gp-tool-row__desc{ grid-column: 1; }
  .gp-contact-row{ grid-template-columns: 1fr; gap: 4px; }
}
/* ===================== end Phase 11A ===================== */


/* ============================================================
   Phase 11B - Stability + Bookings + Label OS + People rebuild
   1) Kills the top-page shake (sticky header changed height on scroll;
      scrollbar appearance shifted width). 2) Locks text/link color so
      purple is a micro-accent only. 3) People compact editorial state.
      4) Bookings premium agency roster + designed dossier/form.
      5) Label OS control-room (operating log rows, console panels).
   Culture untouched (no Culture selectors in this block). Rollback: delete block.
   ============================================================ */

/* ---- 1. STABILITY: remove top-page shake / layout shift ---- */
html{ overflow-x: clip; overflow-y: scroll; }   /* stable scrollbar: no width jump */
body{ overflow-x: clip; }                        /* clip (not hidden): no sticky scroll-container jitter */
.gp-header--scrolled .gp-header-inner{ padding: 18px 0; }                                   /* lock header height */
.gp-header--scrolled .gp-brand img{ width: var(--gp-logoW); height: var(--gp-logoW); }      /* lock logo size */
.gp-reveal{ transform: none; }                   /* no load-time vertical movement (fade only) */
.gp-reveal.gp-reveal-visible{ transform: none; }

/* ---- 2. COLOR LOCK: soft-grey links, subtle purple hover only ---- */
.gp-link:not(.gp-pill),
.gp-contact-link,
.gp-contact-row__value,
.gp-labelos-back,
.gp-labelos-viewall,
.gp-labelos-stream__all,
.gp-bookings-textlink{ color: rgba(201,205,216,0.9); }
.gp-link:not(.gp-pill):hover,
.gp-contact-link:hover,
.gp-contact-row__value:hover,
.gp-labelos-back:hover,
.gp-labelos-viewall:hover,
.gp-labelos-stream__all:hover,
.gp-bookings-textlink:hover{ color: rgba(174,162,224,0.96); }
.gp-people__eyebrow,
.gp-people-card__role,
.gp-labelos__eyebrow{ color: rgba(232,237,244,0.54); }
.gp-bookings-roster__title,
.gp-bookings-hero__title,
.gp-labelos-release__title,
.gp-labelos-gateway__name,
.gp-tool-row__title,
.gp-contact-row--route .gp-contact-row__value{ color: var(--gp-text); }

/* ---- 3. PEOPLE: compact editorial state (no big cloud card) ---- */
.gp-people-empty{ justify-content: flex-start; }
.gp-people-empty--compact{ display: block; max-width: 640px; padding: clamp(6px, 1.4vw, 12px) 0; }
.gp-people-status{ display: inline-flex; align-items: center; gap: 9px; padding: 8px 14px; border: 1px solid var(--gp-border); border-radius: 999px; background: rgba(255,255,255,0.02); }
.gp-people-status__dot{ width: 7px; height: 7px; border-radius: 50%; background: rgba(124,92,255,0.55); box-shadow: 0 0 0 3px rgba(124,92,255,0.10); flex: none; }
.gp-people-status__label{ font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(232,237,244,0.7); }
.gp-people-empty--compact .gp-people-empty__text{ font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: rgba(232,237,244,0.82); max-width: 52ch; margin-top: 18px; }
.gp-people-empty--compact .gp-people-empty__note{ max-width: 60ch; }

/* ---- 4. BOOKINGS: premium agency roster ---- */
.gp-bookings-hero{ padding-top: clamp(40px, 6vw, 84px); padding-bottom: clamp(28px, 4vw, 54px); }
.gp-bookings-hero__panel{ border: 1px solid var(--gp-border); border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.014)); padding: clamp(20px, 2.4vw, 28px); }
.gp-bookings-hero__panel-kicker{ font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(232,237,244,0.5); padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--gp-border); }
.gp-bookings-hero__panel-block{ margin-bottom: 16px; }
.gp-bookings-hero__panel-block h2{ font-size: 0.96rem; font-weight: 560; margin: 0 0 5px; color: var(--gp-text); }
.gp-bookings-hero__panel-block p{ margin: 0; font-size: 0.9rem; line-height: 1.55; color: rgba(232,237,244,0.66); }
.gp-bookings-hero__panel-footer{ display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--gp-border); }
.gp-bookings-hero__panel-footer span{ font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(232,237,244,0.5); }
.gp-bookings-hero__panel-footer strong{ font-size: 0.9rem; color: var(--gp-text); font-weight: 540; word-break: break-word; }

.gp-bookings-sectionhead{ display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(16px, 3vw, 40px); flex-wrap: wrap; margin-bottom: clamp(20px, 3vw, 34px); padding-bottom: 18px; border-bottom: 1px solid var(--gp-border); }
.gp-bookings-sectionhead h2{ font-size: clamp(1.6rem, 2.6vw, 2.3rem); letter-spacing: -0.02em; margin: 0; }
.gp-bookings-sectionhead__intro{ max-width: 46ch; color: rgba(232,237,244,0.66); line-height: 1.6; margin: 0; font-size: 0.96rem; }

.gp-bookings-roster__item{ grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); align-items: center; padding: clamp(28px, 4vw, 48px) 0; }
.gp-bookings-roster__item:nth-child(even){ grid-template-columns: minmax(0, 1fr) minmax(240px, 340px); }
.gp-bookings-roster__media{ aspect-ratio: 4 / 5; border-radius: 6px; }
.gp-bookings-roster__media img{ filter: saturate(0.9) contrast(1.02); }
.gp-bookings-roster__body{ max-width: 60ch; }
.gp-bookings-roster__title{ font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.03; letter-spacing: -0.02em; margin: 6px 0 0; }
.gp-bookings-roster__sentence{ margin: 16px 0 0; font-size: clamp(1rem, 1.3vw, 1.12rem); line-height: 1.62; color: rgba(232,237,244,0.78); max-width: 54ch; }
.gp-bookings-roster__details{ margin: 18px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px 22px; border-top: 1px solid var(--gp-border); padding-top: 16px; }
.gp-bookings-roster__detail dt{ font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(232,237,244,0.5); margin-bottom: 3px; }
.gp-bookings-roster__detail dd{ margin: 0; font-size: 0.95rem; color: rgba(232,237,244,0.84); line-height: 1.4; }
.gp-bookings-roster__meta{ margin-top: 16px; }

.gp-bookings-enquiry__panel{ border: 1px solid var(--gp-border); border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.01)); padding: clamp(20px, 2.6vw, 32px); }
.gp-bookings-enquiry-form__grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.gp-bookings-field--full{ grid-column: 1 / -1; }
.gp-bookings-field label{ display: block; font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(232,237,244,0.6); margin-bottom: 7px; }
.gp-bookings-field input,
.gp-bookings-field select,
.gp-bookings-field textarea{ width: 100%; background: rgba(0,0,0,0.28); border: 1px solid var(--gp-border); border-radius: 10px; color: var(--gp-text); padding: 11px 12px; font: inherit; font-size: 0.95rem; }
.gp-bookings-field input:focus,
.gp-bookings-field select:focus,
.gp-bookings-field textarea:focus{ outline: none; border-color: rgba(124,92,255,0.5); background: rgba(0,0,0,0.34); }
.gp-bookings-enquiry-form__submit{ min-width: 180px; }

/* ---- 5. LABEL OS: control-room ---- */
.gp-labelos-gateways{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: clamp(12px, 1.8vw, 18px); }
.gp-labelos-gateway .gp-card-pad{ padding: clamp(18px, 2.2vw, 24px); }
.gp-labelos-gateway__logo{ width: 52px; height: 52px; }
.gp-labelos-gateway__name{ font-size: 1.15rem; letter-spacing: -0.01em; }
.gp-labelos-gateway__desc{ font-size: 0.92rem; color: rgba(232,237,244,0.66); }

.gp-labelos__section-head{ display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--gp-border); }
.gp-labelos__h{ font-size: clamp(1.05rem, 1.6vw, 1.3rem); letter-spacing: -0.01em; }
.gp-labelos__hint{ font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(232,237,244,0.46); }

.gp-labelos-streams{ gap: clamp(14px, 2vw, 22px); }
.gp-labelos-stream{ border: 1px solid var(--gp-border); border-radius: 14px; background: rgba(255,255,255,0.012); padding: clamp(14px, 1.8vw, 18px); }
.gp-labelos-stream__head{ margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--gp-border); }
.gp-labelos-stream__label{ font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(232,237,244,0.62); }
.gp-labelos-release__link{ padding: 10px 8px; background: transparent; border: 0; border-bottom: 1px solid var(--gp-border); border-radius: 0; }
.gp-labelos-release__link:hover{ background: rgba(255,255,255,0.025); border-bottom-color: rgba(124,92,255,0.3); transform: none; }
.gp-labelos-stream__list .gp-labelos-release:last-child .gp-labelos-release__link{ border-bottom: 0; }
.gp-labelos-release__meta{ font-size: 0.74rem; gap: 8px; }
.gp-labelos-release__cat{ color: rgba(232,237,244,0.5); letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.68rem; }
.gp-labelos-release__date{ color: rgba(232,237,244,0.45); }

.gp-labelos-panel{ background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.006)); }
.gp-labelos-panel .gp-card-pad{ padding: clamp(18px, 2.2vw, 24px); }
.gp-labelos-chart__slot{ background: repeating-linear-gradient(90deg, rgba(255,255,255,0.06) 0 12px, rgba(255,255,255,0) 12px 24px); height: 6px; }
.gp-labelos-chart__rank{ color: rgba(232,237,244,0.42); }
.gp-labelos-demos{ background: rgba(255,255,255,0.012); }
.gp-labelos-demos .gp-card-pad{ padding: clamp(16px, 2vw, 22px); }
.gp-labelos-idcard{ background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.012)); }

@media (max-width: 760px){
  .gp-bookings-roster__item,
  .gp-bookings-roster__item:nth-child(even){ grid-template-columns: 1fr; gap: 18px; }
  .gp-bookings-roster__item:nth-child(even) .gp-bookings-roster__media{ order: 0; }
}
@media (max-width: 560px){
  .gp-bookings-enquiry-form__grid{ grid-template-columns: 1fr; }
}
/* ===================== end Phase 11B ===================== */


/* ============================================================
   Phase 11C - Final public frontend lock
   Labels color hard-lock (off-white titles, grey meta, restrained
   buttons, purple only as micro-accent), Events series rebuilt into
   compact horizontal strips, About light editorial upgrade, Contact
   emphasis (Official + Bookings primary, quieter empty channels), and
   a final color pass. Protected pages touched only by global rules.
   Rollback: delete everything between these markers.
   ============================================================ */

/* ---- 5/HARD-LOCK. LABELS: no purple readable text (scoped to .gp-labelos) ---- */
.gp-labelos .gp-card-title,
.gp-labelos-gateway__name,
.gp-labelos-idcard__name,
.gp-labelos__title,
.gp-labelos__h,
.gp-labelos-release__title,
.gp-labelos-stream__label{ color: var(--gp-text); }
.gp-labelos-gateway__link:hover .gp-labelos-gateway__name{ color: rgba(222,226,238,0.98); }
.gp-labelos-release__meta,
.gp-labelos-release__date,
.gp-labelos-idcard__desc,
.gp-labelos-gateway__desc,
.gp-labelos__intro,
.gp-labelos__hint,
.gp-labelos__eyebrow{ color: rgba(232,237,244,0.56); }
.gp-labelos-release__cat{ color: rgba(232,237,244,0.5); }
.gp-labelos-stream__all,
.gp-labelos-viewall,
.gp-labelos-back{ color: rgba(206,210,220,0.9); }
.gp-labelos-stream__all:hover,
.gp-labelos-viewall:hover,
.gp-labelos-back:hover{ color: rgba(176,168,224,0.95); }
/* body/note links inside Labels: grey, subtle purple hover (not the global purple) */
.gp-labelos .gp-page-body a:not(.gp-btn):not(.gp-pill){ color: rgba(206,210,220,0.92); text-decoration: underline; text-decoration-color: rgba(124,92,255,0.3); text-underline-offset: 3px; }
.gp-labelos .gp-page-body a:not(.gp-btn):not(.gp-pill):hover{ color: rgba(176,168,224,0.96); }
/* Labels pills + buttons: neutral; purple only on hover/focus border (kills purple-button dominance) */
.gp-labelos .gp-pill{ background: rgba(255,255,255,0.04); border-color: var(--gp-border); color: rgba(232,237,244,0.64); }
.gp-labelos .gp-btn{ background: rgba(255,255,255,0.03); border-color: var(--gp-border); color: var(--gp-text); }
.gp-labelos .gp-btn:hover{ background: rgba(255,255,255,0.06); border-color: rgba(124,92,255,0.3); }
.gp-labelos .gp-btn.primary{ background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.14); color: var(--gp-text); }
.gp-labelos .gp-btn.primary:hover{ background: rgba(255,255,255,0.085); border-color: rgba(124,92,255,0.32); }

/* ---- 1. LABELS control-room polish (compact, sharper) ---- */
.gp-labelos__section{ margin-top: clamp(22px, 3.4vw, 40px); }
.gp-labelos-gateway{ background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.008)); }
.gp-labelos-gateway__actions{ margin-top: 18px; }
.gp-labelos-panel__note{ color: rgba(232,237,244,0.56); }

/* ---- 2. EVENTS series: compact horizontal scene-board strips ---- */
.gp-events-series-grid{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(12px, 1.8vw, 18px); }
.gp-events-series-card{ display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: clamp(14px, 2vw, 20px); min-height: 0; padding: clamp(12px, 1.6vw, 16px); }
.gp-events-archive .gp-events-series-media{ width: 96px; height: 96px; flex: none; margin: 0; padding: 12px; border-radius: 12px; background: rgba(255,255,255,0.03); border: 1px solid var(--gp-border); display: flex; align-items: center; justify-content: center; }
.gp-events-archive .gp-events-series-media img{ max-height: 62px; max-width: 100%; }
.gp-events-series-card .gp-card-pad{ padding: 0; }
.gp-events-series-card .gp-card-pad:only-child{ grid-column: 1 / -1; }
.gp-events-series-card .gp-card-title{ font-size: 1.12rem; letter-spacing: -0.01em; }
.gp-events-series-card .gp-muted{ font-size: 0.9rem; line-height: 1.5; margin-top: 6px; color: rgba(232,237,244,0.6); }
@media (max-width: 420px){
  .gp-events-series-card{ grid-template-columns: 72px minmax(0, 1fr); gap: 14px; }
  .gp-events-archive .gp-events-series-media{ width: 72px; height: 72px; }
}

/* ---- 3. ABOUT light editorial upgrade (page.php) ---- */
.gp-basic-page--editorial{ padding-top: clamp(28px, 4vw, 52px); padding-bottom: clamp(40px, 6vw, 80px); }
.gp-basic-article{ max-width: 760px; }
.gp-basic-article__head{ border-bottom: 1px solid var(--gp-border); padding-bottom: clamp(18px, 2.4vw, 26px); margin-bottom: clamp(22px, 3vw, 34px); }
.gp-basic-article__title{ margin: 0; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.03; letter-spacing: -0.03em; font-weight: 560; color: var(--gp-text); }
.gp-basic-article__body{ font-size: 1.04rem; line-height: 1.75; color: rgba(232,237,244,0.8); }
.gp-basic-article__body > p:first-of-type{ font-size: clamp(1.2rem, 1.9vw, 1.5rem); line-height: 1.5; color: rgba(232,237,244,0.92); margin: 0 0 clamp(20px, 2.6vw, 30px); }
.gp-basic-article__body h2{ font-size: clamp(1.3rem, 2vw, 1.7rem); margin: clamp(28px, 3.5vw, 42px) 0 12px; letter-spacing: -0.01em; color: var(--gp-text); }
.gp-basic-article__body h3{ font-size: 1.14rem; margin: 24px 0 10px; color: var(--gp-text); }
.gp-basic-article__body p{ margin: 0 0 16px; }
.gp-basic-article__body ul,
.gp-basic-article__body ol{ margin: 0 0 16px; padding-left: 1.2em; line-height: 1.7; }
.gp-basic-article__body a:not(.gp-btn):not(.gp-pill){ color: rgba(206,210,220,0.92); text-decoration: underline; text-decoration-color: rgba(124,92,255,0.3); text-underline-offset: 3px; }
.gp-basic-article__body a:not(.gp-btn):not(.gp-pill):hover{ color: rgba(176,168,224,0.96); }

/* ---- 4. CONTACT emphasis: Official + Bookings primary; quieter empties ---- */
.gp-contact-row--primary{ padding-top: 20px; padding-bottom: 20px; }
.gp-contact-row--primary .gp-contact-row__label{ color: rgba(232,237,244,0.86); }
.gp-contact-row--primary .gp-contact-row__value{ font-size: 1.1rem; color: var(--gp-text); }
.gp-contact-row--secondary.is-empty{ opacity: 0.5; }
.gp-contact-row--secondary.is-empty .gp-contact-row__note{ display: none; }
.gp-contact-row__muted{ font-size: 0.9rem; color: rgba(232,237,244,0.35); }

/* ===================== end Phase 11C ===================== */
