/*
Theme Name: BUMAYE Social Magazine
Theme URI: https://bumaye-events.com/
Author: BUMAYE Events
Author URI: https://bumaye-events.com/
Description: Custom BUMAYE Social Magazine theme with responsive motion, Ticket.io integration and privacy pages.
Version: 1.0.19
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bumaye-social-magazine
*/

:root{--paper:#f5f1e8;--ink:#101010;--orange:#ff6b19;--blue:#5b38ff;--white:#fff;--pad:clamp(14px,2vw,28px);--line:2px}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-anchor:none}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;background:#fff;color:#111;padding:10px;z-index:10000}
.nav{display:flex;justify-content:space-between;align-items:center;padding:15px var(--pad);border-bottom:var(--line) solid var(--ink);position:sticky;top:0;background:rgba(245,241,232,.94);backdrop-filter:blur(10px);z-index:50}.logo{width:clamp(105px,12vw,150px);display:block}.nav-links{display:flex;gap:22px}.nav a{text-decoration:none;font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.nav a:hover{text-decoration:underline}.mobile-menu-btn{display:none;border:2px solid var(--ink);background:transparent;padding:8px 10px;font-size:10px;font-weight:900;letter-spacing:.12em}.mobile-menu{display:none}
.hero{position:relative;padding:var(--pad) var(--pad) 0}.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:var(--pad)}.hero-main{background:var(--orange);min-height:72svh;padding:clamp(24px,4vw,55px);position:relative;overflow:hidden;transform:translate3d(0,var(--hero-y,0),0)}.hero-main:after{content:"";position:absolute;width:32vw;height:32vw;min-width:260px;min-height:260px;border:2px solid var(--ink);border-radius:50%;right:-15vw;bottom:-14vw;animation:spin 24s linear infinite}.live .since{font-size:.78em;letter-spacing:.12em;white-space:nowrap}
.hero-main h1{font-size:clamp(76px,14.5vw,220px);line-height:.66;letter-spacing:-.105em;margin:30px 0 38px;position:relative;z-index:1}.hero-main p{font-size:clamp(16px,1.5vw,20px);line-height:1.25;max-width:430px;margin:0}.hero-main .scribble{position:absolute;right:clamp(18px,3vw,40px);bottom:clamp(18px,3vw,40px);font-size:11px;border:2px solid var(--ink);padding:8px 12px;transform:rotate(-5deg) translate3d(0,var(--float-y,0),0);font-weight:900;z-index:2}.hero-side{display:grid;grid-template-rows:auto auto;gap:var(--pad);min-width:0}.poster{background:#111;color:#fff;overflow:hidden;position:relative;min-height:280px;transform:translate3d(0,var(--float-y,0),0)}.hero-side .poster:first-child{aspect-ratio:16/9;min-height:0}.poster img,.poster video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.poster:hover img,.poster:hover video{transform:scale(1.04)}.poster .overlay{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.3))}.overlay strong{font-size:11px;letter-spacing:.16em}.overlay b{font-size:clamp(34px,4vw,58px);line-height:.78;max-width:360px;letter-spacing:-.07em}
.bar{margin:var(--pad) var(--pad) 0;border:var(--line) solid var(--ink);background:var(--blue);color:#fff;padding:11px 0;overflow:hidden;white-space:nowrap;font-weight:900}.bar span{display:inline-block;animation:move 18s linear infinite}.live{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);animation:pulse 1.5s ease-in-out infinite}
section{padding:clamp(65px,9vw,120px) var(--pad)}.head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.head h2{font-size:clamp(58px,10.5vw,155px);line-height:.68;letter-spacing:-.09em;margin:0}.head p{max-width:320px;font-size:12px;line-height:1.4;text-transform:uppercase;letter-spacing:.08em;margin:0}.nights{background:var(--paper)}.ticketbox{background:#fff;border:var(--line) solid var(--ink);padding:0;overflow:hidden}.ticketbox iframe{display:block;width:100%;height:650px;border:0}.ticket-loading{min-height:650px;display:flex;align-items:center;justify-content:center;background:#fff;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.ticket-note{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:12px;font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.ticket-note a{background:var(--ink);color:#fff;padding:10px 12px;text-decoration:none}.ticket-placeholder{min-height:360px;display:flex;align-items:center;justify-content:center;padding:30px;background:#fff;text-align:center}.ticket-placeholder-inner{max-width:520px}.ticket-placeholder h3{font-size:clamp(40px,7vw,90px);line-height:.75;letter-spacing:-.08em;margin:0 0 25px}.ticket-placeholder p{font-size:12px;text-transform:uppercase;line-height:1.5}.ticket-placeholder button{border:0;background:var(--ink);color:#fff;padding:14px 16px;font:900 11px Arial;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.cities{background:var(--blue);color:#fff}.cities .head{color:#fff}.citygrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid #fff}.city{font-size:clamp(28px,5vw,72px);line-height:.9;padding:18px 0;border-bottom:2px solid #fff;transition:transform .25s ease,padding-left .25s ease}.city:nth-child(odd){border-right:2px solid #fff;padding-right:20px}.city:nth-child(even){padding-left:20px}.city:hover{transform:translateX(8px)}
.gallery{background:var(--ink);color:#fff}.gallery .head p{color:#fff}.social-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:10px;margin-top:45px}.social-grid .tile{position:relative;overflow:hidden;min-height:0;transform:translate3d(0,var(--float-y,0),0) rotate(var(--float-r,0deg))}.social-grid img,.social-grid video{width:100%;height:100%;aspect-ratio:1/1.2;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s ease}.social-grid .tile.tall{grid-row:span 2}.social-grid .tile.wide{grid-column:span 2}.social-grid .tile.wide img,.social-grid .tile.wide video{aspect-ratio:16/9}.social-grid .tile.vertical img,.social-grid .tile.vertical video{aspect-ratio:9/16}.social-grid .tile video{background:#111}.social-grid .tile:hover img,.social-grid .tile:hover video{transform:scale(1.035);filter:saturate(1.12)}
.cta{background:var(--orange);min-height:55svh;display:flex;flex-direction:column;justify-content:center}.cta h2{font-size:clamp(70px,14vw,210px);line-height:.64;letter-spacing:-.11em;margin:0}.cta-row{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-top:40px}.cta p{font-size:13px;max-width:340px}.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:14px 16px;font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.1em;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-3px);box-shadow:7px 7px 0 rgba(16,16,16,.2)}.btn-light{background:#fff;color:var(--ink);margin-left:8px}.footer{padding:20px var(--pad);border-top:var(--line) solid var(--ink);display:flex;justify-content:space-between;gap:15px;font-size:10px;font-weight:900;text-transform:uppercase}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:translateY(var(--float-y,0)) rotate(var(--float-r,0deg))}.mobile-menu-btn{cursor:pointer}.mobile-menu a{color:var(--ink);text-decoration:none;font-size:24px;font-weight:950;letter-spacing:-.04em;line-height:1.05}
@keyframes move{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{transform:scale(1.7);opacity:.45}}
/* Cookie consent */
.cookie-overlay{position:fixed;inset:0;background:rgba(0,0,0,.48);opacity:0;pointer-events:none;transition:.22s;z-index:9998}.cookie-overlay.show{opacity:1;pointer-events:auto}.cookie-banner{position:fixed;left:20px;right:20px;bottom:20px;max-width:1050px;margin:auto;background:var(--paper);color:var(--ink);border:2px solid var(--ink);box-shadow:0 20px 80px rgba(0,0,0,.28);z-index:9999;padding:26px;display:grid;grid-template-columns:1.2fr .8fr;gap:30px;transform:translateY(110%);transition:transform .35s cubic-bezier(.22,1,.36,1)}.cookie-banner.show{transform:translateY(0)}.cookie-kicker{font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.cookie-banner h2{font-size:clamp(30px,4vw,58px);line-height:.78;letter-spacing:-.08em;margin:12px 0 18px}.cookie-banner p{font-size:12px;line-height:1.5;max-width:650px}.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.cookie-btn{border:2px solid var(--ink);background:transparent;padding:11px 13px;font:900 10px Arial;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.cookie-btn.primary{background:var(--ink);color:#fff}.cookie-preferences{border-left:2px solid var(--ink);padding-left:20px}.pref-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid rgba(16,16,16,.25);font-size:11px}.pref-row strong{display:block}.pref-row small{display:block;max-width:310px;margin-top:5px;line-height:1.4}.locked{font-size:9px;font-weight:900;white-space:nowrap}.switch{position:relative;width:42px;height:24px;display:block;flex:none}.switch input{display:none}.switch span{position:absolute;inset:0;background:#aaa;border-radius:20px}.switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:after{transform:translateX(18px)}.save-preferences{margin-top:12px;width:100%}.cookie-floating{position:fixed;right:14px;bottom:14px;z-index:9990;background:var(--paper);border:2px solid var(--ink);padding:8px 10px;font:900 9px Arial;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.cookie-floating[hidden]{display:none}
/* Legal */
.legal-page{min-height:100vh;background:var(--paper)}.legal-wrap{max-width:950px;margin:auto;padding:24px var(--pad) 80px}.legal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:60px}.legal-logo{width:130px}.legal-back{text-decoration:none;font-size:10px;font-weight:900;text-transform:uppercase}.legal-wrap h1{font-size:clamp(58px,10vw,140px);line-height:.68;letter-spacing:-.1em;margin:0 0 45px}.legal-wrap h2{font-size:25px;margin:38px 0 10px}.legal-wrap p,.legal-wrap li{font-size:14px;line-height:1.65}.legal-wrap a{text-decoration:underline}.legal-note{background:#fff;border:2px solid var(--ink);padding:15px;margin-bottom:35px;font-size:12px;line-height:1.5}.legal-footer{display:flex;flex-wrap:wrap;gap:15px;border-top:2px solid var(--ink);padding-top:18px;margin-top:70px;font-size:10px;font-weight:900;text-transform:uppercase}.legal-footer a{text-decoration:none}
@media(max-width:900px){.nav{padding:13px var(--pad)}.mobile-menu-btn{display:block}.nav-links{display:none}.mobile-menu{position:fixed;inset:58px 0 auto 0;background:var(--paper);border-bottom:2px solid var(--ink);z-index:49;padding:28px var(--pad);display:flex;flex-direction:column;gap:16px;transform:translateY(-120%);transition:transform .35s cubic-bezier(.22,1,.36,1)}.mobile-menu.open{transform:none}.hero-grid{grid-template-columns:1fr}.hero-main{min-height:68svh}.hero-side{grid-template-rows:auto auto;min-height:0;align-content:start}.overlay b{font-size:clamp(35px,8vw,58px)}.head{align-items:flex-start;flex-direction:column;gap:18px}.head p{max-width:520px}.citygrid{grid-template-columns:1fr}.city:nth-child(odd){border-right:0;padding-right:0}.city:nth-child(even){padding-left:0}.social-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:30px}.social-grid .tile.wide{grid-column:span 2}.social-grid .tile.tall{grid-row:span 2}.ticketbox iframe{height:650px}.ticket-loading{min-height:650px}.cta-row{align-items:flex-start;flex-direction:column}.footer{flex-direction:column;gap:10px}.cookie-banner{grid-template-columns:1fr;gap:18px}.cookie-preferences{border-left:0;border-top:2px solid var(--ink);padding-left:0;padding-top:16px}}
@media(max-width:560px){.bar span{animation-duration:14s}.mobile-menu{padding-top:24px}.hero{position:relative;padding:10px 10px 0}.hero-grid{gap:10px}.hero-main{min-height:76svh;padding:20px}.hero-main h1{font-size:16.5vw;line-height:.72;letter-spacing:-.08em;margin:34px 0;white-space:nowrap;max-width:100%;overflow:visible}.hero-main p{font-size:15px;max-width:290px}.hero-main .scribble{font-size:9px}.hero-side{gap:10px;min-height:0;align-content:start}.poster{min-height:225px}.hero-side .poster:first-child{min-height:0;aspect-ratio:16/9}.poster .overlay{padding:13px}.overlay strong{font-size:9px}.overlay b{font-size:31px}.bar{margin:10px 10px 0}section{padding:65px 10px}.head h2{font-size:clamp(57px,18vw,95px)}.head p{font-size:10px}.ticketbox iframe{height:620px}.ticket-loading{min-height:620px}.ticket-note{align-items:flex-start;flex-direction:column}.social-grid{grid-template-columns:1fr 1fr}.social-grid img,.social-grid video{aspect-ratio:1/1.22}.social-grid .tile.wide img,.social-grid .tile.wide video{aspect-ratio:16/10}.social-grid .tile.vertical img,.social-grid .tile.vertical video{aspect-ratio:9/16}.city{font-size:35px;padding:15px 0}.cta{min-height:60svh}.cta h2{font-size:24vw}.footer{font-size:9px}.footer span:last-child{display:flex;flex-wrap:wrap;gap:8px}.reveal{transform:translateY(22px)}.cookie-banner{left:10px;right:10px;bottom:10px;padding:18px}.cookie-banner h2{font-size:35px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-btn.primary{grid-column:1/-1}.cookie-preferences{max-height:48vh;overflow:auto}.cta-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-light{margin-left:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-main:after,.bar span,.live:before{animation:none}.reveal{transition:none;opacity:1;transform:none}.poster img,.poster video,.social-grid img,.social-grid video{transition:none}}

/* Magazine folio labels */
.hero .poster .overlay strong{font-variant-numeric:tabular-nums}


/* Legal pages */
.legal-page{min-height:100vh;background:#f5f1e8;color:#101010}.legal-wrap{max-width:950px;margin:auto;padding:24px clamp(14px,2vw,28px) 80px;font-family:Arial,Helvetica,sans-serif}.legal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #101010;padding-bottom:16px;margin-bottom:60px}.legal-logo{width:130px}.legal-back{text-decoration:none;font-size:10px;font-weight:900;text-transform:uppercase}.legal-wrap h1{font-size:clamp(58px,10vw,140px);line-height:.68;letter-spacing:-.1em;margin:0 0 45px}.legal-wrap h2{font-size:25px;margin:38px 0 10px}.legal-wrap p,.legal-wrap li{font-size:14px;line-height:1.65}.legal-wrap a{text-decoration:underline}.legal-footer{display:flex;flex-wrap:wrap;gap:15px;border-top:2px solid #101010;padding-top:18px;margin-top:70px;font-size:10px;font-weight:900;text-transform:uppercase}.legal-footer a{text-decoration:none}@media(max-width:600px){.legal-top{margin-bottom:35px}.legal-logo{width:105px}.legal-wrap h1{font-size:22vw}.legal-wrap p,.legal-wrap li{font-size:13px}}


/* Responsive finishing: tablet keeps desktop composition; mobile remains compact. */
/* Tablet keeps the exact desktop magazine composition; only the BUMAYE wordmark scales to the available column. */
@media (min-width:901px) and (max-width:1199px){
 /* Tablet: keep the desktop composition, but scale only the BUMAYE wordmark so it always fits the orange column. */
 .hero-main h1{font-size:clamp(64px,7.4vw,112px);line-height:.66;letter-spacing:-.105em;margin:30px 0 38px;white-space:nowrap;max-width:100%;overflow:visible}
}
@media (max-width:900px){
 .hero-main h1{white-space:nowrap;max-width:100%;overflow:visible}
 .hero-side{align-content:start;min-height:0}
 .hero-side .poster:first-child,.hero-side .poster:nth-child(2){aspect-ratio:16/9;min-height:0}
}
@media (max-width:560px){
 .hero-main{min-height:70svh}.hero-main h1{font-size:16vw;letter-spacing:-.075em;line-height:.72;margin:32px 0 34px}
 .hero-main p{font-size:15px;line-height:1.2}.hero-side{gap:10px}
 .hero-side .poster:first-child,.hero-side .poster:nth-child(2){aspect-ratio:16/9;min-height:0}
 .poster .overlay{padding:12px}.overlay b{font-size:30px;line-height:.8}.overlay strong{font-size:9px}
}
/* Always use the supplied 16:9 header master; never swap to the vertical asset. */
.hero-video{aspect-ratio:16/9;object-fit:cover;object-position:center;display:block;width:100%;height:100%;background:#111;contain:layout paint}


/* V13 — stable mobile/tablet scrolling: no scroll-parallax transforms on touch devices.
   This prevents visual jumps while Safari is scrolling and while lazy media enters the viewport. */
@media (max-width:1199px){
  .reveal, .reveal.in, .hero-main, .poster, .social-grid .tile, .hero-main .scribble{
    transform:none !important;
  }
  .reveal{transition:opacity .45s ease !important;}
  .reveal.in{opacity:1;}
}


/* V15 — minimal editorial text cursor. Native cursor everywhere else. */
@media (hover:hover) and (pointer:fine){
  .bumaye-text-cursor{position:fixed;left:0;top:0;width:2px;height:34px;background:#245BFF;pointer-events:none;z-index:10001;opacity:0;transform:translate3d(-50%,-50%,0) scaleY(.72);transform-origin:center;box-shadow:0 0 0 1px rgba(255,255,255,.45),0 0 12px rgba(36,91,255,.28);transition:opacity .14s ease,transform .18s cubic-bezier(.2,.8,.2,1),height .18s ease;will-change:transform,opacity}
  .bumaye-text-cursor.is-visible{opacity:1;transform:translate3d(-50%,-50%,0) scaleY(1)}
  .bumaye-text-cursor.is-heading{height:46px;width:2px;background:#FF5A00;box-shadow:0 0 0 1px rgba(255,255,255,.5),0 0 14px rgba(255,90,0,.25)}
}
@media (hover:none), (pointer:coarse){
  .bumaye-text-cursor{display:none!important}
}

/* V17: picture wrappers preserve tile geometry while allowing efficient WebP delivery. */
.social-grid .tile picture{display:block;width:100%;height:100%}.social-grid .tile picture img{width:100%;height:100%;object-fit:cover;display:block}
