:root{--bg:#0a0a0b;--panel:#131315;--text:#f4f1e9;--muted:#b8b3aa;--line:#2b2a28;--accent:#d7b24a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}.container{width:min(1160px,calc(100% - 36px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(10,10,11,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.nav-wrap{min-height:78px;display:flex;align-items:center;gap:28px}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1}.brand img{max-height:58px;max-width:260px;object-fit:contain}.brand-main{font-weight:900;font-size:22px;letter-spacing:.03em}.brand-sub{font-size:11px;letter-spacing:.22em;color:var(--accent);margin-top:5px}.main-nav{margin-left:auto;display:flex;align-items:center;gap:20px}.main-nav a{text-decoration:none;font-size:14px;color:#ddd}.main-nav a:hover,.main-nav .active{color:var(--accent)}.nav-cta,.btn{display:inline-block;border:1px solid var(--accent);padding:11px 18px;text-decoration:none;font-weight:700}.nav-cta,.btn-primary{background:var(--accent);color:#111!important}.btn-outline{background:transparent;color:var(--text)}.menu-toggle{display:none;background:none;color:white;border:0;font-size:26px}.hero{padding:80px 0;background:radial-gradient(circle at 15% 20%,#232018 0,transparent 38%)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center}.hero h1,.page-hero h1{font-size:clamp(44px,7vw,84px);line-height:.98;margin:12px 0 24px;letter-spacing:-.05em}.hero-image img{width:100%;display:block;border:1px solid #3a3528;box-shadow:0 20px 70px #000}.eyebrow{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.2em}.lead{font-size:20px;color:#d7d3cc;max-width:760px}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.section{padding:76px 0}.section-heading,.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}.section-heading{margin-bottom:34px}.section h2{font-size:clamp(32px,5vw,56px);line-height:1.05;margin:8px 0 18px}.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.act-card{background:var(--panel);border:1px solid var(--line);overflow:hidden}.act-art{height:280px;display:grid;place-items:center;background:linear-gradient(135deg,#28241b,#101011);font-size:54px;font-weight:900;color:var(--accent)}.act-art img{width:100%;height:100%;object-fit:cover}.act-body{padding:24px}.tag{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.act-body h3{font-size:26px;margin:8px 0}.act-strap{font-weight:700}.card-link,.text-link{color:var(--accent);font-weight:700;text-decoration:none}.spotlight{background:#0f0f10}.venue-panel{border:1px solid var(--line)}.venue-panel div{display:flex;gap:18px;padding:18px;border-bottom:1px solid var(--line)}.venue-panel div:last-child{border-bottom:0}.venue-panel strong{color:var(--accent)}.charity-tease{background:#15130f}.charity-tease-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.center{text-align:center}.top-gap{margin-top:30px}.page-hero{padding:68px 0 40px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(42px,6vw,72px)}.prose{max-width:860px;font-size:18px}.prose p{margin:0 0 1.3em}.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.video-card{background:var(--panel);border:1px solid var(--line);padding:20px}.video-card iframe{width:100%;aspect-ratio:16/9;border:0}.contact-card,.form-wrap{background:var(--panel);border:1px solid var(--line);padding:30px}.booking-form label{display:block;font-weight:700;margin-bottom:16px}.booking-form input,.booking-form textarea{width:100%;margin-top:7px;background:#0c0c0d;color:white;border:1px solid #3a3936;padding:13px;font:inherit}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.success-box{padding:28px;border:1px solid #466b4d;background:#102116}.error-box{padding:16px;border:1px solid #7e3a3a;background:#2b1111;margin-bottom:18px}.site-footer{border-top:1px solid var(--line);padding:46px 0 22px;color:var(--muted)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid strong{color:white}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:18px;font-size:13px}.empty-public{padding:30px;border:1px solid var(--line)}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review-grid blockquote{margin:0;background:var(--panel);border:1px solid var(--line);padding:24px}.review-grid blockquote p{font-size:19px}.review-grid footer{color:var(--accent);font-weight:700}@media(max-width:850px){.review-grid{grid-template-columns:1fr}.menu-toggle{display:block;margin-left:auto}.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#0b0b0c;padding:20px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.hero-grid,.section-heading,.split,.footer-grid{grid-template-columns:1fr}.act-grid{grid-template-columns:1fr 1fr}.hero{padding:50px 0}.charity-tease-inner{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.act-grid,.video-grid,.form-grid{grid-template-columns:1fr}.container{width:min(100% - 24px,1160px)}.hero h1{font-size:44px}.act-art{height:250px}}
/* Artist profile pages */
.artist-profile-hero{padding:68px 0;background:radial-gradient(circle at 80% 10%,#292317 0,transparent 34%);border-bottom:1px solid var(--line)}
.artist-profile-grid{display:grid;grid-template-columns:minmax(280px,.82fr) 1.18fr;gap:54px;align-items:start}
.artist-profile-photo{background:var(--panel);border:1px solid var(--line);min-height:420px}
.artist-profile-photo img{display:block;width:100%;max-height:650px;object-fit:cover}
.artist-placeholder{min-height:420px;display:grid;place-items:center;font-size:86px;font-weight:900;color:var(--accent);background:linear-gradient(135deg,#28241b,#101011)}
.artist-profile-copy h1{font-size:clamp(46px,7vw,82px);line-height:.98;letter-spacing:-.045em;margin:10px 0 18px}
.artist-bio{font-size:18px;color:#d7d3cc;max-width:760px}
.artist-video-section{background:#0f0f10}
.artist-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.artist-video-card{background:var(--panel);border:1px solid var(--line);overflow:hidden}
.artist-video-frame{background:#050505;aspect-ratio:16/9;display:grid;place-items:center}
.artist-video-frame iframe{width:100%;height:100%;border:0}
.artist-video-meta{padding:18px 20px 22px}
.artist-video-meta h3{margin:0 0 8px;font-size:21px}
.video-link-fallback{text-align:center;padding:26px}.video-link-fallback span{display:block;color:var(--muted);margin-bottom:14px}
.artist-booking-cta{background:#15130f}
.act-card .act-art,.act-card .act-body{position:relative}
@media(max-width:850px){.artist-profile-grid{grid-template-columns:1fr}.artist-profile-photo{max-width:620px}.artist-video-grid{grid-template-columns:1fr}}
.act-photo-link{display:block;text-decoration:none}.artist-name-link{color:inherit;text-decoration:none}.artist-name-link:hover{color:var(--accent)}

/* Global Day-2-Night banner shown on every public page */
.site-banner{background:#1b2853;border-bottom:1px solid var(--line)}
.site-banner a{display:block;line-height:0}
.site-banner img{display:block;width:100%;height:auto;max-width:1536px;margin:0 auto;object-fit:contain}
.site-header{position:sticky;top:0;z-index:30}
@media(max-width:850px){.site-banner img{width:100%}.nav-wrap{min-height:68px}.main-nav{top:68px}}
.hero-copy{max-width:980px;margin-left:auto;margin-right:auto;text-align:center}
.hero-copy .lead{margin-left:auto;margin-right:auto}
.hero-copy .button-row{justify-content:center}

/* =========================================================
   Responsive desktop + mobile layout
   This block intentionally comes last so it overrides older
   desktop-first rules without changing saved CMS content.
   ========================================================= */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-x:hidden}
img,video,iframe{max-width:100%}
.site-banner{width:100%;overflow:hidden}
.site-banner img{width:100%;height:auto;max-width:1536px;max-height:none;margin:0 auto;object-fit:contain;object-position:center}
.nav-wrap{position:relative}
.mobile-brand-text{display:none}
.menu-toggle{cursor:pointer;touch-action:manipulation}

@media screen and (max-width:900px){
  .container{width:min(100% - 28px,1160px)}
  .site-banner img{width:100%;max-width:none;height:auto;object-fit:contain}
  .site-header{position:sticky;top:0;z-index:100}
  .nav-wrap{min-height:64px;gap:12px}
  .brand{min-width:0;max-width:calc(100% - 62px)}
  .brand img{max-height:42px;max-width:190px;width:auto;height:auto}
  .brand-main{font-size:18px}
  .brand-sub{font-size:9px}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;width:46px;height:46px;border:1px solid var(--line);border-radius:6px;background:#111;color:#fff;font-size:26px;line-height:1}
  .main-nav{display:none;position:absolute;top:100%;left:50%;right:auto;transform:translateX(-50%);width:100vw;margin:0;background:#0b0b0c;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(0,0,0,.45);padding:8px 18px 18px;flex-direction:column;align-items:stretch;gap:0;z-index:110}
  .main-nav.open{display:flex}
  .main-nav a{display:block;width:100%;padding:13px 6px;font-size:16px;border-bottom:1px solid #242424}
  .main-nav a:last-child{border-bottom:0}
  .main-nav .nav-cta{margin-top:10px;padding:13px 16px;text-align:center;border:1px solid var(--accent)}
  .hero{padding:44px 0}
  .hero-grid,.section-heading,.split,.footer-grid,.artist-profile-grid{grid-template-columns:1fr;gap:30px}
  .hero h1,.page-hero h1,.artist-profile-copy h1{font-size:clamp(36px,10vw,56px);line-height:1.02;letter-spacing:-.035em}
  .lead{font-size:18px;line-height:1.55}
  .section{padding:52px 0}
  .section h2{font-size:clamp(30px,8vw,46px)}
  .page-hero{padding:46px 0 30px}
  .act-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .act-art{height:240px}
  .act-body{padding:20px}
  .video-grid,.artist-video-grid{grid-template-columns:1fr;gap:20px}
  .charity-tease-inner{align-items:flex-start;flex-direction:column}
  .artist-profile-hero{padding:46px 0}
  .artist-profile-photo{min-height:0;max-width:620px;width:100%}
  .artist-profile-photo img{height:auto;max-height:none;object-fit:contain}
  .contact-card,.form-wrap{padding:24px}
  .footer-grid{gap:24px}
  .site-footer{padding-top:36px}
}

@media screen and (max-width:620px){
  .container{width:min(100% - 22px,1160px)}
  .site-banner img{display:block;width:100%;height:auto}
  .nav-wrap{min-height:58px}
  .brand img{max-width:155px;max-height:36px}
  .menu-toggle{width:43px;height:43px;font-size:24px}
  .hero{padding:34px 0}
  .hero h1,.page-hero h1,.artist-profile-copy h1{font-size:clamp(34px,11vw,46px)}
  .hero-grid,.section-heading,.split,.artist-profile-grid{gap:24px}
  .section{padding:42px 0}
  .act-grid,.video-grid,.form-grid,.artist-video-grid{grid-template-columns:1fr}
  .act-art{height:auto;min-height:240px;max-height:420px}
  .act-art img{height:auto;min-height:240px;max-height:420px;object-fit:cover}
  .button-row{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .button-row .btn,.btn{max-width:100%}
  .button-row .btn{text-align:center;width:100%}
  .contact-card,.form-wrap{padding:18px}
  .booking-form input,.booking-form textarea{font-size:16px}
  .prose{font-size:17px}
  .charity-tease-inner .btn{width:100%;text-align:center}
  .footer-bottom{font-size:12px;line-height:1.7}
}

@media screen and (max-width:380px){
  .container{width:min(100% - 18px,1160px)}
  .brand img{max-width:135px}
  .hero h1,.page-hero h1,.artist-profile-copy h1{font-size:34px}
  .lead{font-size:17px}
  .act-body h3{font-size:23px}
}


/* September 2026 mobile hardening.  Also targets touch devices whose browser is
   using a desktop-like viewport, so the mobile navigation still appears. */
@media screen and (max-width:900px), screen and (hover:none) and (pointer:coarse) and (max-width:1200px){
  .site-banner img{height:96px;max-width:none;object-fit:cover;object-position:center center}
  .site-header .brand{display:none}
  .nav-wrap{min-height:54px;justify-content:flex-end}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;min-width:92px;height:42px;padding:0 13px}
  .main-nav{display:none;top:100%;width:100vw}
  .main-nav.open{display:flex}
  .act-grid,.video-grid,.artist-video-grid,.form-grid{grid-template-columns:1fr}
}
@media screen and (max-width:480px), screen and (hover:none) and (pointer:coarse) and (max-width:600px){
  .site-banner img{height:86px}
  .nav-wrap{min-height:50px}
}
