/* Region Cooperative redesign. Structure and motion follow the Musfix "index-2" reference;
   colours come from the live site (navy and #158FDB blue). */
:root{
  --ink:#04060D; --night:#080D1C; --panel:#0D1428; --panel-2:#121B36; --line:rgba(255,255,255,.1);
  --blue:#158FDB; --sky:#6CC6FF; --text:#A9B4C9; --white:#fff; --ok:#3DDC97;
  --font:"Poppins",system-ui,sans-serif; --wrap:1320px; --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.75;color:var(--text);background:var(--ink);overflow-x:hidden}
main{overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .3s}
h1,h2,h3,h4{margin:0;color:var(--white);font-weight:700;line-height:1.12;text-transform:uppercase;letter-spacing:.01em}
p{margin:0 0 1em}ul{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
svg.i{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.sec{position:relative;padding:110px 0}
.sec.glow::before,.sec.glow-r::before{content:"";position:absolute;top:-10%;left:-10%;width:60%;height:70%;background:radial-gradient(closest-side,rgba(21,143,219,.34),transparent);filter:blur(30px);pointer-events:none;animation:drift 16s ease-in-out infinite alternate}
.sec.glow-r::before{left:auto;right:-12%;top:0}
.sec>.wrap{position:relative}
@keyframes drift{to{transform:translate(8%,10%) scale(1.15)}}

/* preloader: equaliser bars */
.pre{display:none}
.js .pre{position:fixed;inset:0;z-index:999;background:var(--ink);display:grid;place-items:center;transition:opacity .6s,visibility .6s}
.pre .eq{display:flex;gap:6px;align-items:flex-end;height:46px}
.pre .eq i{width:6px;background:var(--blue);animation:eq 1s ease-in-out infinite}
.pre .eq i:nth-child(2){animation-delay:.15s}.pre .eq i:nth-child(3){animation-delay:.3s}.pre .eq i:nth-child(4){animation-delay:.45s}.pre .eq i:nth-child(5){animation-delay:.6s}
@keyframes eq{0%,100%{height:10px}50%{height:46px}}
.loaded .pre{opacity:0;visibility:hidden}

/* bracket label + titles */
.tag{display:flex;justify-content:center;margin-bottom:22px}
.tag span{position:relative;padding:5px 16px;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--white)}
.tag span::before,.tag span::after{content:"";position:absolute;top:0;bottom:0;width:7px;border:1px solid rgba(255,255,255,.55)}
.tag span::before{left:0;border-right:0}.tag span::after{right:0;border-left:0}
.tag.l{justify-content:flex-start}
.title{text-align:center;max-width:760px;margin:0 auto 60px}
.title h2{font-size:clamp(28px,3.6vw,48px)}
.title p{margin:16px 0 0}
.title.l{text-align:left;margin-inline:0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 26px;border:1px solid var(--blue);background:var(--blue);color:#fff;font-weight:500;font-size:14px;cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s,transform .35s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:#fff;transform:translateX(-115%) skewX(-12deg);transform-origin:left;transition:transform .45s var(--ease);z-index:-1}
.btn:hover{color:var(--ink);border-color:#fff}.btn:hover::before{transform:translateX(0) skewX(0) scaleX(1.2)}
.btn.line{background:transparent;border-color:rgba(255,255,255,.35)}
.btn.sm{padding:9px 18px;font-size:13px}
.btn svg{transition:transform .35s var(--ease)}.btn:hover svg{transform:translateX(4px)}

/* header */
.head{position:sticky;top:0;z-index:60;background:rgba(4,6,13,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .4s}
.head.stuck{box-shadow:0 14px 40px rgba(0,0,0,.5)}
.head .wrap{display:flex;align-items:center;gap:30px;min-height:82px}
.logo{display:inline-flex;align-items:center;gap:11px;color:#fff;line-height:1;flex:none}
.logo svg{width:40px;height:46px;transition:transform .5s var(--ease)}
.logo:hover svg{transform:translateY(-3px) rotate(-6deg)}
.logo b{display:block;font-size:19px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.logo small{display:block;font-size:10.5px;font-weight:500;letter-spacing:.33em;text-transform:uppercase;color:var(--sky);margin-top:5px}
.nav{display:flex;align-items:center;gap:26px;margin-inline:auto}
.nav>a,.nav .dd>button{position:relative;background:none;border:0;padding:8px 0;font-size:14px;font-weight:500;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nav>a::after,.nav .dd>button::after{content:"";position:absolute;left:0;bottom:2px;height:1px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav>a:hover,.nav>a.on,.nav .dd:hover>button{color:var(--sky)}
.nav>a:hover::after,.nav>a.on::after,.nav .dd:hover>button::after{transform:scaleX(1);transform-origin:left}
.dd{position:relative}
.dd .menu{position:absolute;top:100%;left:-20px;min-width:250px;background:var(--panel);border:1px solid var(--line);padding:10px;opacity:0;visibility:hidden;transform:translateY(12px);transition:.35s var(--ease)}
.dd:hover .menu,.dd:focus-within .menu{opacity:1;visibility:visible;transform:none}
.dd .menu a{display:flex;justify-content:space-between;gap:20px;padding:8px 12px;font-size:14px;color:#fff;transition:background .25s,padding .25s}
.dd .menu a span{color:var(--text);font-size:12px}
.dd .menu a:hover{background:var(--blue);padding-left:18px}.dd .menu a:hover span{color:#fff}
.head .tools{display:flex;align-items:center;gap:12px}
.circ{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:none;display:grid;place-items:center;color:#fff;font-size:17px;cursor:pointer;transition:.3s}
.circ:hover{background:var(--blue);border-color:var(--blue);transform:rotate(90deg)}
.burger{display:none}
.finder{position:fixed;inset:0;z-index:120;overflow:hidden;background:rgba(4,6,13,.96);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}
.finder.open{opacity:1;visibility:visible}
.finder form{width:min(720px,90%);display:flex;border-bottom:2px solid var(--blue);transform:translateY(24px);transition:transform .5s var(--ease)}
.finder.open form{transform:none}
.finder input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:clamp(20px,3vw,32px);padding:16px 0;color:#fff}
.finder form button{background:none;border:0;font-size:26px;color:#fff;cursor:pointer}
.finder .x{position:absolute;top:26px;right:26px}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero .bg{position:absolute;inset:-6%;background:center/cover;z-index:-2;animation:kb 22s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12) translate(-1.5%,1%)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,6,13,.94) 0%,rgba(4,6,13,.7) 45%,rgba(8,40,90,.45) 100%),linear-gradient(0deg,var(--ink) 0%,transparent 40%)}
.hero .grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:50px;align-items:end;padding:110px 0 70px;min-height:min(780px,calc(100vh - 82px))}
.hero h1{font-size:clamp(40px,6.4vw,92px);line-height:1.02;margin-bottom:26px}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top}
.hero h1 .w>span{display:inline-block;transition:transform 1s var(--ease);transition-delay:calc(var(--n)*80ms + .25s)}
.js .hero h1 .w>span{transform:translateY(110%);transition:transform 1s var(--ease);transition-delay:calc(var(--n)*80ms + .25s)}
.js.loaded .hero h1 .w>span{transform:none}
.hero p{max-width:600px;color:#D5DCEA;font-size:16px;margin-bottom:30px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}
.hero .stats{display:flex;gap:46px;margin-bottom:26px;justify-content:flex-end}
.hero .stats b{display:block;color:#fff;font-size:clamp(30px,3.4vw,46px);font-weight:700;line-height:1.1}
.hero .stats div>span{color:#D5DCEA;font-size:14px}
.finderc{background:rgba(13,20,40,.86);backdrop-filter:blur(10px);border:1px solid var(--line);padding:28px}
.finderc h3{font-size:19px;text-transform:none;margin-bottom:16px;font-weight:600}
.finderc input,.finderc select{width:100%;background:rgba(255,255,255,.06);border:1px solid var(--line);padding:13px 16px;margin-bottom:12px;color:#fff;outline:0;transition:border-color .3s}
.finderc select option{color:#111}
.finderc input:focus,.finderc select:focus{border-color:var(--blue)}
.finderc .btn{width:100%}
.hero .pop{border-top:1px solid var(--line);padding:22px 0 30px;display:flex;gap:10px 34px;flex-wrap:wrap;align-items:center;font-size:14px}
.hero .pop b{color:#fff;font-weight:600}
.hero .pop a:hover{color:var(--sky)}

/* scroll cue reveals (slideInUp, as in the reference) */
.js [data-cue]{opacity:0;transform:translateY(46px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
.js [data-cue].in{opacity:1;transform:none}

/* marquee */
.mq{border-block:1px solid var(--line);overflow:hidden;padding:22px 0;background:var(--night)}
.mq .t{display:flex;gap:50px;width:max-content;animation:marquee 46s linear infinite;font-size:clamp(20px,2.4vw,32px);font-weight:700;text-transform:uppercase;white-space:nowrap}
.mq:hover .t{animation-play-state:paused}
.mq a{display:inline-flex;align-items:center;gap:50px;color:#fff}
.mq a:nth-child(even){color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.6)}
.mq a::after{content:"";width:10px;height:10px;background:var(--blue);transform:rotate(45deg)}
.mq a:hover{color:var(--sky);-webkit-text-stroke:0}
@keyframes marquee{to{transform:translateX(-50%)}}

/* featured listing (album + tracklist layout) */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:80px}
.feat .pic{position:relative;overflow:hidden;aspect-ratio:16/11;background:var(--panel)}
.feat .pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.feat:hover .pic img{transform:scale(1.07)}
.kick{color:var(--blue);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;display:block}
.feat h3{font-size:clamp(26px,3vw,40px);margin-bottom:8px}
.feat .when{font-size:13px;margin-bottom:22px}
.feat h4{font-size:15px;text-transform:none;font-weight:600;margin-bottom:8px}
.hours li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;transition:padding .3s,color .3s}
.hours li span:last-child{color:#fff}
.hours li.off span:last-child{color:var(--text)}
.hours li.today{color:var(--sky);padding-left:12px;border-left:2px solid var(--blue)}
.hours li:hover{padding-left:12px;color:#fff}
.feat .btn{margin-top:26px}

/* listing cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.cards.c4{grid-template-columns:repeat(4,1fr);gap:24px}
.card{display:flex;flex-direction:column}
.card .pic{position:relative;overflow:hidden;aspect-ratio:16/10;background:linear-gradient(135deg,var(--panel-2),var(--night));display:grid;place-items:center;margin-bottom:18px}
.card .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s}
.card:hover .pic img{transform:scale(1.08)}
.feat .pic{display:grid;place-items:center}
.feat .pic img{position:absolute;inset:0}
.pic b{font-size:54px;font-weight:700;color:rgba(255,255,255,.14);text-transform:uppercase;letter-spacing:.04em}
.card .pic::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.card:hover .pic::after{transform:scaleX(1)}
.card .row1{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.card h3{font-size:17px;text-transform:none;font-weight:600;line-height:1.35;margin-bottom:8px}
.card h3 a:hover{color:var(--sky)}
.card .yr{font-size:12px;white-space:nowrap}
.card p{font-size:14px;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .acts{display:flex;gap:10px;margin-top:auto}

/* category rows (live-shows list) */
.rows{border:1px solid var(--line);background:rgba(8,13,28,.7)}
.crow{display:grid;grid-template-columns:54px 1.1fr 1.4fr auto auto;gap:24px;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line);position:relative;isolation:isolate;transition:padding .4s var(--ease)}
.crow:last-child{border-bottom:0}
.crow::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,143,219,.22),transparent 70%);opacity:0;transition:opacity .4s;z-index:-1}
.crow:hover{padding-left:36px}.crow:hover::before{opacity:1}
.crow .ic{width:54px;height:54px;border:1px solid var(--line);display:grid;place-items:center;font-size:24px;color:var(--sky);transition:.4s var(--ease)}
.crow:hover .ic{background:var(--blue);border-color:var(--blue);color:#fff;transform:rotate(-8deg)}
.crow .n{color:var(--blue);font-size:12px;font-weight:500}
.crow h3{font-size:17px;text-transform:none;font-weight:600}
.crow .last{font-size:14px;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.crow .last small{display:block;color:var(--text);font-size:12px}
.crow .st{font-size:12px;color:var(--ok);white-space:nowrap}

/* date cards (upcoming events) */
.dates{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.dcard{background:var(--panel);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.dcard:hover{transform:translateY(-8px);border-color:rgba(21,143,219,.7)}
.dcard .top{display:flex;justify-content:space-between;align-items:flex-start;padding-right:22px}
.dcard .day{background:var(--blue);color:#fff;text-align:center;padding:12px 18px;line-height:1.05}
.dcard .day b{display:block;font-size:30px;font-weight:700}
.dcard .day span{font-size:12px}
.dcard .top>span{font-size:12px;padding-top:16px;color:#fff}
.dcard .body{padding:22px}
.dcard h3{font-size:17px;text-transform:none;font-weight:600;margin-bottom:8px;line-height:1.35}
.dcard p{font-size:14px;margin-bottom:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dcard .eqz{position:absolute;right:18px;bottom:22px;display:flex;gap:3px;align-items:flex-end;height:26px;opacity:.35}
.eqz i{width:3px;background:var(--sky);height:30%;animation:eq2 1.2s ease-in-out infinite}
.eqz i:nth-child(2n){animation-delay:.2s}.eqz i:nth-child(3n){animation-delay:.45s}.eqz i:nth-child(5n){animation-delay:.7s}
@keyframes eq2{50%{height:100%}}

/* counters */
.nums{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.nums div{padding:44px 20px;text-align:center;border-right:1px solid var(--line)}
.nums div:last-child{border:0}
.nums b{display:block;font-size:clamp(32px,4vw,54px);font-weight:700;color:var(--blue);line-height:1.1;font-variant-numeric:tabular-nums}
.nums div>span{color:#fff;font-size:14px}

/* collage */
.collage{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:90px;gap:18px}
.collage a{position:relative;overflow:hidden;background:var(--panel);display:block}
.collage a:nth-child(1){grid-column:1/5;grid-row:1/4}.collage a:nth-child(2){grid-column:5/8;grid-row:2/5}.collage a:nth-child(3){grid-column:8/13;grid-row:1/3}
.collage a:nth-child(4){grid-column:2/5;grid-row:4/6}.collage a:nth-child(5){grid-column:8/11;grid-row:3/6}.collage a:nth-child(6){grid-column:11/13;grid-row:3/5}
.collage img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .5s}
.collage a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,13,.9),transparent 60%);opacity:.75;transition:opacity .4s}
.collage span{position:absolute;left:16px;right:16px;bottom:12px;z-index:2;color:#fff;font-weight:600;font-size:14px;line-height:1.3;transform:translateY(8px);opacity:.9;transition:.4s var(--ease)}
.collage a:hover img{transform:scale(1.1)}.collage a:hover span{transform:none;opacity:1;color:var(--sky)}
.collage .ph{display:grid;place-items:center;width:100%;height:100%;font-size:44px;font-weight:700;color:rgba(255,255,255,.14)}

/* cta with waveform */
.cta{position:relative;text-align:center;padding:110px 0;overflow:hidden;border-top:1px solid var(--line)}
.cta .wave{position:absolute;inset:auto 0 0 0;height:60%;display:flex;align-items:center;justify-content:center;gap:5px;opacity:.16;pointer-events:none}
.cta .wave i{width:4px;background:var(--sky);height:calc(var(--h)*1%);animation:wv 1.6s ease-in-out infinite;animation-delay:calc(var(--k)*-90ms)}
@keyframes wv{50%{transform:scaleY(.35)}}
.cta h2{font-size:clamp(26px,3.6vw,46px);max-width:860px;margin:0 auto 14px}
.cta p{max-width:620px;margin:0 auto 30px;color:#D5DCEA}
.cta .wrap{position:relative}

/* inner band */
.band{position:relative;padding:80px 0 70px;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate}
.band::before{content:"";position:absolute;right:-10%;top:-60%;width:60%;height:220%;background:radial-gradient(closest-side,rgba(21,143,219,.4),transparent);filter:blur(20px);z-index:-1;animation:drift 14s ease-in-out infinite alternate}
.band .bgi{position:absolute;inset:0;background:center/cover;opacity:.16;z-index:-2}
.trail{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;margin-bottom:18px}
.trail a{color:#fff}.trail a:hover{color:var(--sky)}
.trail a::after{content:"/";margin-left:8px;color:var(--text)}
.band h1{font-size:clamp(30px,5vw,64px);max-width:1000px}
.band .meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:20px;color:#D5DCEA;font-size:14px}
.band .meta span,.band .meta a{display:inline-flex;align-items:center;gap:8px}
.band .meta svg{color:var(--sky);font-size:17px}

/* toolbar + pager */
.toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:40px}
.find{display:flex;flex:1;min-width:260px;border:1px solid var(--line);background:var(--panel)}
.find input{flex:1;min-width:0;background:none;border:0;outline:0;padding:13px 18px;color:#fff}
.find button{width:52px;border:0;background:var(--blue);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:background .3s}
.find button:hover{background:#fff;color:var(--ink)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips a{padding:7px 14px;border:1px solid var(--line);font-size:13px;color:#fff;transition:.3s}
.chips a:hover,.chips a.on{background:var(--blue);border-color:var(--blue)}
.pager{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:60px}
.pager a,.pager span{min-width:46px;height:46px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);color:#fff;font-weight:500;transition:.3s}
.pager a:hover,.pager .on{background:var(--blue);border-color:var(--blue)}
.pager .gap{border:0;min-width:18px;padding:0}

/* single listing */
.listing-g{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:50px;align-items:start}
.listing-g .cover{overflow:hidden;margin-bottom:34px;background:var(--panel)}
.listing-g .cover img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform 1.4s var(--ease)}
.listing-g .cover:hover img{transform:scale(1.05)}
.listing-g .prose{font-size:16px;color:#D5DCEA}
.block{margin-top:44px}
.block h2{font-size:22px;margin-bottom:16px}
.offer{border:1px dashed rgba(21,143,219,.6);padding:20px 24px;color:#D5DCEA}
.share{display:flex;gap:10px;align-items:center;margin-top:36px;padding-top:26px;border-top:1px solid var(--line)}
.share b{color:#fff;margin-right:6px;font-weight:600}
.aside{position:sticky;top:106px;display:grid;gap:24px}
.box{background:var(--panel);border:1px solid var(--line);padding:28px}
.box h3{font-size:17px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.info li{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:center;padding:11px 0;color:#fff;font-size:14px;overflow-wrap:anywhere}
.info li i{width:40px;height:40px;border:1px solid var(--line);display:grid;place-items:center;color:var(--sky);font-size:17px;font-style:normal;transition:.3s}
.info li:hover i{background:var(--blue);border-color:var(--blue);color:#fff}
.info a:hover{color:var(--sky)}
.box .btn{width:100%;margin-top:14px}
.mini li{padding:12px 0;border-bottom:1px solid var(--line)}
.mini li:last-child{border:0;padding-bottom:0}
.mini a{color:#fff;font-weight:500;font-size:14px;line-height:1.4;display:block}
.mini a:hover{color:var(--sky)}
.mini small{font-size:12px}

/* categories grid + sitemap */
.cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.ccard{background:var(--panel);border:1px solid var(--line);padding:28px;position:relative;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease),border-color .4s}
.ccard::before{content:"";position:absolute;inset:auto -30% -60% auto;width:90%;aspect-ratio:1;background:radial-gradient(closest-side,rgba(21,143,219,.5),transparent);opacity:0;transition:opacity .5s;z-index:-1}
.ccard:hover{transform:translateY(-8px);border-color:rgba(21,143,219,.7)}.ccard:hover::before{opacity:1}
.ccard .ic{width:58px;height:58px;border:1px solid var(--line);display:grid;place-items:center;font-size:26px;color:var(--sky);margin-bottom:20px;transition:.4s var(--ease)}
.ccard:hover .ic{background:var(--blue);border-color:var(--blue);color:#fff;transform:rotate(-8deg) scale(1.06)}
.ccard h3{font-size:19px;text-transform:none;font-weight:600;margin-bottom:4px}
.ccard .n{color:var(--blue);font-size:13px;font-weight:500;display:block;margin-bottom:14px}
.ccard ul{font-size:13px;margin-bottom:18px}
.ccard li{padding:5px 0;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccard .go{color:#fff;font-weight:500;font-size:14px;display:inline-flex;gap:8px;align-items:center}
.ccard .go svg{transition:transform .3s}.ccard:hover .go svg{transform:translateX(6px)}
.ccard>a.cover{position:absolute;inset:0;z-index:1}
.none{display:none;text-align:center;padding:50px 0;color:#fff;font-size:18px}
.smap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.smap .box.wide{grid-column:1/-1}
.tree li{border-bottom:1px solid var(--line)}
.tree li:last-child{border:0}
.tree a{display:flex;justify-content:space-between;gap:14px;padding:10px 0;color:#fff;font-size:14px;transition:padding .3s,color .3s}
.tree a span{color:var(--text);font-size:12px;white-space:nowrap}
.tree a:hover{color:var(--sky);padding-left:8px}
.cols4{columns:4;column-gap:30px}
.cols4 li{break-inside:avoid}

/* footer */
.foot{background:var(--night);border-top:1px solid var(--line)}
.foot .main{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:50px;padding:80px 0 60px}
.foot h4{font-size:16px;text-transform:none;font-weight:600;margin-bottom:20px}
.foot p{margin:20px 0 0;max-width:360px;font-size:14px}
.foot li{margin-bottom:9px;font-size:14px}
.foot li a{position:relative;transition:color .3s,padding .3s}
.foot li a:hover{color:var(--sky);padding-left:6px}
.foot .ct li{display:flex;gap:10px;align-items:center;color:#fff}
.foot .ct svg{color:var(--sky);font-size:17px}
.copy{border-top:1px solid var(--line);padding:22px 0;font-size:13px}
.copy .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.copy b{color:#fff;font-weight:600}.copy a{color:#fff}.copy a:hover{color:var(--sky)}
.totop{position:fixed;right:22px;bottom:22px;z-index:50;width:48px;height:48px;border:1px solid var(--blue);background:var(--blue);color:#fff;display:grid;place-items:center;font-size:20px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(16px);transition:.4s var(--ease)}
.totop.show{opacity:1;visibility:visible;transform:none}
.totop:hover{background:#fff;color:var(--ink);border-color:#fff}

@media(max-width:1180px){
  .nav{gap:18px}.nav .hide-md{display:none}
  .cards.c4,.cgrid{grid-template-columns:repeat(3,1fr)}
  .crow{grid-template-columns:54px 1fr auto}.crow .last,.crow .st{display:none}
  .listing-g{grid-template-columns:minmax(0,1fr)}.aside{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cols4{columns:3}
}
@media(max-width:920px){
  .sec{padding:76px 0}
  .burger{display:grid}.head .tools .btn{display:none}
  .head .tools{margin-left:auto}
  .nav{position:fixed;inset:82px 0 0 auto;width:min(340px,88vw);background:var(--night);border-left:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:20px 26px;margin:0;clip-path:inset(0 0 0 100%);visibility:hidden;transition:clip-path .5s var(--ease),visibility .5s;overflow:auto}
  .nav.open{clip-path:inset(0);visibility:visible}
  .nav>a,.nav .dd>button{padding:14px 0;border-bottom:1px solid var(--line);width:100%;justify-content:space-between;font-size:16px}
  .nav .hide-md{display:flex}
  .dd .menu{position:static;opacity:1;visibility:visible;transform:none;border:0;background:none;padding:6px 0 10px;display:none}
  .dd.open .menu{display:block}
  .hero .grid{grid-template-columns:1fr;padding:70px 0 50px;min-height:0}
  .hero .stats{justify-content:flex-start}
  .feat{grid-template-columns:1fr;gap:30px}
  .cards,.dates,.cards.c4,.cgrid{grid-template-columns:1fr 1fr}
  .nums{grid-template-columns:1fr 1fr}.nums div:nth-child(2){border-right:0}.nums div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .collage{grid-auto-rows:70px;gap:10px}
  .foot .main{grid-template-columns:1fr 1fr}
  .smap{grid-template-columns:1fr}.cols4{columns:2}
}
@media(max-width:600px){
  .cards,.dates,.cards.c4,.cgrid,.aside,.foot .main{grid-template-columns:minmax(0,1fr)}
  .listing-g .cards{grid-template-columns:minmax(0,1fr)!important}
  .crow{grid-template-columns:46px 1fr;padding:16px}.crow .btn{grid-column:1/-1}
  .crow .ic{width:46px;height:46px}
  .collage{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:150px}.collage a:nth-child(n){grid-column:auto;grid-row:auto}
  .logo b{font-size:16px}.logo small{letter-spacing:.24em}
  .cols4{columns:1}
  .hero .stats{gap:30px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js [data-cue],.hero h1 .w>span{opacity:1!important;transform:none!important}
  .mq .t{animation:none}
}

/* listing identity: logo + business name */
.biz{display:flex;gap:16px;align-items:center;padding-bottom:20px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.blogo{position:relative;width:76px;height:76px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--sky),var(--blue));display:grid;place-items:center;overflow:hidden;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 5px rgba(21,143,219,.22);transition:transform .5s var(--ease)}
.blogo span{color:#fff;font-weight:700;font-size:24px;letter-spacing:.04em}
.blogo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:6px}
.blogo.lg{width:104px;height:104px}.blogo.lg span{font-size:34px}
.biz:hover .blogo,.bhead:hover .blogo{transform:rotate(-8deg) scale(1.05)}
.bname{font-size:19px;text-transform:none;font-weight:600;line-height:1.3}
.biz .kick{margin-bottom:4px}
.bhead{display:flex;gap:26px;align-items:center}
/* embedded map */
.mapf{position:relative;aspect-ratio:4/3.200;overflow:hidden;border:1px solid var(--line);background:var(--night)}
.mapf iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05);transition:filter .5s}
.mapf:hover iframe{filter:none}
.box.map .addr{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;color:#fff;font-size:14px}
.box.map .addr svg{color:var(--sky);font-size:18px;margin-top:3px}
@media(max-width:1180px){.aside .box.map{grid-column:1/-1}.mapf{aspect-ratio:16/8}}
@media(max-width:600px){.bhead{gap:16px}.blogo.lg{width:72px;height:72px}.blogo.lg span{font-size:24px}.mapf{aspect-ratio:4/3}}

/* ---------- WordPress additions ---------- */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.logo img{max-height:50px;width:auto}
.nav li{list-style:none;display:contents}
.nav .current-menu-item>a{color:var(--sky)}
.listing-g .prose a{color:var(--sky);text-decoration:underline}
.listing-g .prose img{height:auto}
.listing-g .prose h2,.listing-g .prose h3{margin:1.2em 0 .5em;font-size:22px}
.pagebody{font-size:16px;color:#D5DCEA;max-width:900px}
.pagebody h2,.pagebody h3{margin:1.2em 0 .5em;font-size:24px}
.pagebody a{color:var(--sky);text-decoration:underline}
.pagebody ul{list-style:disc;padding-left:1.3em;margin-bottom:1em}
.empty{border:1px dashed var(--line);padding:50px 20px;text-align:center;color:#fff;font-size:18px;grid-column:1/-1}
.pager .current{background:var(--blue);border-color:var(--blue)}
.pager .dots{border:0;min-width:18px;padding:0}
.social2{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gal a{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--panel)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gal a:hover img{transform:scale(1.08)}
.finderc select,.find select{appearance:auto}
@media(max-width:600px){.gal{grid-template-columns:1fr 1fr}}

/* 1.0.1: a banner or photo in the logo slot fills the circle; a real logo stays fully visible */
.blogo.photo img{object-fit:cover;padding:0;background:var(--panel)}
