/*
Theme Name: d-vision Experience
Theme URI: https://dvision.gr
Author: d-vision Studio
Description: Cinematic music artist website with ACF-powered releases.
Version: 3.8.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: dvision
*/
:root{--bg:#08070e;--fg:#f8f6ff;--muted:#aba6be;--pink:#fa4da5;--violet:#9b70ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}.wrap{width:min(1220px,90%);margin:auto}.nav{position:absolute;top:0;left:0;width:100%;z-index:9;display:flex;align-items:center;justify-content:space-between;padding:26px 5%}.brand{font-weight:900;font-size:29px;letter-spacing:-2px}.brand span{color:var(--pink)}.navlinks{display:flex;gap:30px;align-items:center}.navlinks a{font-size:12px;text-transform:uppercase;letter-spacing:2px}.navlinks a:hover{color:var(--pink)}.hero{height:min(900px,100svh);min-height:630px;position:relative;display:flex;align-items:center;overflow:hidden;background:#110d20}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,3,11,.9) 0%,rgba(4,3,11,.44) 65%),linear-gradient(0deg,#08070e,transparent 45%),url('assets/hero.webp') center/cover}.hero:after{content:"";position:absolute;width:60vw;height:60vw;border-radius:50%;right:-25vw;bottom:-35vw;background:var(--pink);filter:blur(190px);opacity:.15}.hero-content{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:#f3a3d0;font-weight:700}.hero h1{font-size:clamp(100px,17vw,250px);line-height:.8;letter-spacing:-.09em;margin:25px 0 38px;font-weight:900}.hero h1 em{font-style:normal;color:var(--pink)}.hero h2{font-size:clamp(24px,3vw,48px);font-weight:400;line-height:1.18;max-width:680px;letter-spacing:-1.8px}.hero h2 strong{font-weight:800}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 24px;border:1px solid rgba(255,255,255,.35);font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;background:transparent;color:white;cursor:pointer}.btn.primary{background:var(--pink);border-color:var(--pink);color:#160713}.btn:hover{transform:translateY(-2px)}.scroll{position:absolute;bottom:38px;left:5%;z-index:2;font-size:11px;letter-spacing:3px;color:#bbb}.section{padding:120px 0}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:42px}.kicker{color:var(--pink);font-size:12px;letter-spacing:4px;text-transform:uppercase;font-weight:700}.section h2{font-size:clamp(44px,7vw,96px);letter-spacing:-.07em;line-height:.95;margin:15px 0}.sub{max-width:480px;color:var(--muted);line-height:1.7}.releases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.release{position:relative;min-height:530px;overflow:hidden;background:#181322;isolation:isolate}.release img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform 1s}.release:hover img{transform:scale(1.06)}.release:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.95),transparent 65%);z-index:0}.releaseinfo{position:absolute;bottom:0;padding:36px;z-index:1}.releaseinfo h3{font-size:clamp(28px,3vw,48px);line-height:1.05;letter-spacing:-2px;margin:10px 0}.releaseinfo p{color:#d5cadd}.releaseinfo .btn{margin-top:10px}.upcoming{background:#110e1b}.tracklist{display:grid;gap:0}.trackrow{border-top:1px solid #393040;padding:25px 0;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:24px}.trackrow:last-child{border-bottom:1px solid #393040}.trackrow .num{color:#a49ab4;font-size:12px}.trackrow h3{font-size:clamp(23px,3vw,37px);letter-spacing:-1px;margin:0}.trackrow small{display:block;color:var(--muted);margin-top:6px}.pill{font-size:10px;letter-spacing:2px;border:1px solid #665271;padding:11px 14px;white-space:nowrap}.aboutgrid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.aboutvisual{min-height:420px;background:linear-gradient(145deg,rgba(20,10,33,.2),rgba(10,4,19,.6)),url('assets/hero.webp') center/cover}.aboutcopy p{color:#b9b2c8;line-height:1.9}.contact{background:radial-gradient(ellipse at 50% 110%,#5b174b,transparent 65%),#0d0915;text-align:center}.contact h2{font-size:clamp(54px,10vw,140px)}.footer{border-top:1px solid #292132;padding:30px 0;color:#9c93ac;font-size:12px}.footrow{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.footrow a{margin-left:20px}.player{position:fixed;bottom:0;left:0;right:0;background:rgba(14,9,23,.95);border-top:1px solid #55345c;backdrop-filter:blur(18px);z-index:20;display:none;padding:12px 5%;align-items:center;gap:18px}.player.active{display:flex}.player strong{font-size:13px;min-width:170px}.player audio{flex:1;max-width:550px;height:38px}.player button{background:none;color:white;border:0;cursor:pointer;font-size:20px}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}@media(max-width:800px){.nav{padding:22px 5%}.navlinks{gap:15px}.navlinks a{font-size:10px}.navlinks a:nth-child(2),.navlinks a:nth-child(3){display:none}.hero{min-height:640px;height:88svh}.hero h1{font-size:clamp(76px,18vw,150px)}.hero h2{font-size:27px}.section{padding:78px 0}.sectionhead{display:block}.releases,.aboutgrid{grid-template-columns:1fr}.release{min-height:480px}.trackrow{grid-template-columns:30px 1fr auto;gap:10px}.trackrow h3{font-size:23px}.pill{font-size:9px;padding:8px}.aboutgrid{gap:30px}.aboutvisual{min-height:280px}.footrow a{margin:0 15px 0 0}.player{flex-wrap:wrap}.player audio{width:100%;flex:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* v1.1 editable hero image and background video */
.hero:before{background:linear-gradient(90deg,rgba(4,3,11,.9) 0%,rgba(4,3,11,.44) 65%),linear-gradient(0deg,#08070e,transparent 45%),var(--hero-custom,url("assets/hero.webp")) center/cover}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.52}.hero:has(.hero-video):before{background:linear-gradient(90deg,rgba(4,3,11,.82),rgba(4,3,11,.34)),linear-gradient(0deg,#08070e,transparent 45%);z-index:1}.hero:has(.hero-video) .hero-content,.hero:has(.hero-video) .scroll{z-index:2}


/* v2.0: cinematic CSS-3D record and booth; no server-side Node required */
.hero{min-height:720px;isolation:isolate}.hero:before{background:linear-gradient(90deg,rgba(3,3,12,.94) 0%,rgba(3,3,12,.7) 55%,rgba(3,3,12,.44)),linear-gradient(0deg,#08070e,transparent 45%),var(--hero-custom,url("assets/dj-hero.webp")) center/cover;z-index:-2}.hero:after{z-index:-1}.hero-content{pointer-events:none}.hero-content a{pointer-events:auto}.hero h1{font-size:clamp(85px,13vw,190px);max-width:750px;text-shadow:0 10px 50px rgba(0,0,0,.45)}.hero h2{max-width:560px}.dv-3d-stage{position:absolute;z-index:0;right:4%;top:17%;width:min(39vw,540px);aspect-ratio:1;perspective:1050px;pointer-events:none;transform:translateY(var(--vinyl-scroll,0px));will-change:transform}.dv-record{position:absolute;inset:6%;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#15151d 0 2px,#242331 3px 4px,#0c0c12 5px 7px),conic-gradient(from 40deg,#181821,#3e334f,#07070c,#333043,#0b0b12);box-shadow:0 25px 80px #000,0 0 50px #8e2ce155,inset 0 0 0 3px #7774;transform:rotateX(var(--rx,18deg)) rotateY(var(--ry,-20deg)) rotateZ(var(--rz,0deg));transform-style:preserve-3d;transition:transform .25s ease-out}.dv-record:before{content:"";position:absolute;inset:3%;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 5px,#ffffff0b 6px 7px);box-shadow:inset 0 0 40px #000}.dv-record:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(125deg,transparent 34%,#ffffff24 45%,transparent 54%);mix-blend-mode:screen}.dv-record-label{position:absolute;inset:33%;z-index:1;border-radius:50%;background:radial-gradient(circle at 40% 30%,#d86dc2,#7b265f 65%,#3d123e);border:3px solid #d4b4d8;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 25px #ff7cbd55}.dv-record-label:after{content:"";position:absolute;width:10px;height:10px;background:#08070e;border:2px solid #ddd;border-radius:50%}.dv-record-label span{font-size:clamp(17px,3vw,40px);font-weight:900;letter-spacing:-.08em;transform:translateY(-15px)}.dv-record-label small{font-size:9px;letter-spacing:3px;transform:translateY(22px)}.dv-record-glow{position:absolute;inset:20%;background:#ae32b4;filter:blur(95px);opacity:.28;z-index:-1}.dv-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.dv-atmosphere i{position:absolute;width:2px;height:45vh;background:linear-gradient(#bb64ff77,transparent);filter:blur(4px);transform:rotate(30deg);top:-10%;left:70%;animation:dvbeam 9s ease-in-out infinite alternate}.dv-atmosphere i:nth-child(2){left:90%;background:linear-gradient(#ff609777,transparent);animation-delay:-4s}.dv-atmosphere i:nth-child(3){left:50%;animation-delay:-2s}@keyframes dvbeam{to{transform:rotate(-15deg) translateX(80px)}}.dv-booth{min-height:570px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;background:radial-gradient(ellipse at 50% 85%,#32133e 0,#090813 67%);border-block:1px solid #332038}.dv-booth-inner{position:relative;z-index:2;width:min(950px,94%)}.dv-booth-label{font-size:11px;letter-spacing:5px;color:#f96cbd}.dv-booth h2{font-size:clamp(42px,6vw,82px);letter-spacing:-.065em;margin:20px 0 0}.dv-booth p{color:#aaa1b7;letter-spacing:3px}.dv-booth-decks{display:flex;align-items:center;justify-content:center;gap:10px;margin:40px auto 0;perspective:800px;transform:rotateX(54deg);filter:drop-shadow(0 35px 30px #000)}.dv-deck{width:32%;aspect-ratio:1.4;border:2px solid #645273;border-radius:12px;background:linear-gradient(140deg,#252333,#090912);display:grid;place-items:center;box-shadow:inset 0 0 22px #a952cf24,0 0 30px #7d30c82c}.dv-deck-disc{width:76%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#17151c 0 3px,#45404c 4px 5px,#111118 6px 8px);border:7px solid #37323e;animation:dvspin 8s linear infinite}.dv-deck-disc:after{content:"";display:block;width:28%;height:28%;border-radius:50%;background:#e652a8;margin:36%}.dv-mixer{width:20%;height:180px;background:linear-gradient(140deg,#393042,#0e0d14);border:2px solid #675570;border-radius:8px;display:flex;align-items:center;justify-content:space-around;padding:10px}.dv-mixer i{width:8px;height:65%;border-radius:8px;background:linear-gradient(#ff4ea9 0 20%,#1b1724 20% 80%,#aa72e8 80%)}@keyframes dvspin{to{transform:rotate(360deg)}}.dv-booth-light{position:absolute;top:-30%;width:240px;height:700px;background:linear-gradient(#e36cf04d,transparent);filter:blur(70px);transform:rotate(30deg)}.dv-booth-light-a{left:15%}.dv-booth-light-b{right:15%;transform:rotate(-30deg);background:linear-gradient(#418bff55,transparent)}.aboutvisual{background:linear-gradient(145deg,rgba(20,10,33,.15),rgba(10,4,19,.48)),url('assets/dj-portrait.webp') center 30%/cover}.release{transition:transform .35s,box-shadow .35s;transform-style:preserve-3d}.release:hover{box-shadow:0 25px 60px #9b35c22b}.releaseinfo{transform:translateZ(10px)}
@media(max-width:900px){.dv-3d-stage{width:42vw;right:-6%;top:26%;opacity:.66}.hero h1{font-size:clamp(76px,15vw,150px)}.dv-booth{min-height:420px}.dv-mixer{height:110px}}@media(max-width:600px){.hero{min-height:660px}.hero-content{padding-top:90px}.dv-3d-stage{width:70vw;right:-30%;top:8%;opacity:.45}.hero h1{font-size:clamp(74px,18vw,115px)}.hero h2{font-size:25px}.dv-booth{min-height:350px}.dv-booth-decks{margin-top:10px}.dv-mixer{height:80px}.dv-booth h2{font-size:42px}}@media(prefers-reduced-motion:reduce){.dv-deck-disc,.dv-atmosphere i{animation:none!important}.dv-record,.dv-3d-stage{transition:none!important;transform:none!important}}

/* v2.1 cinematic hero; vinyl and decorative DJ booth removed */
.dv-3d-stage,.dv-booth{display:none!important}.hero:before{background:linear-gradient(90deg,rgba(3,3,12,.93) 0%,rgba(3,3,12,.67) 53%,rgba(3,3,12,.27)),linear-gradient(0deg,#08070e,transparent 50%),var(--hero-custom,url("assets/dj-hero.webp")) center/cover}.hero-content{pointer-events:auto}.hero .actions{align-items:center}.hero .actions button{font-family:inherit}.release{transition:transform .4s,box-shadow .4s}.release:hover{transform:perspective(1200px) rotateX(1.5deg) rotateY(-1.5deg) translateY(-6px)}@media(max-width:800px){.release:hover{transform:none}}

/* v2.2: seamless About portrait cropping; remove any light edge from image. */
.aboutvisual{border:0!important;outline:0!important;box-shadow:none!important;overflow:hidden;position:relative;background-position:center center!important;background-size:103% auto!important;background-repeat:no-repeat!important;clip-path:inset(0 0 0 4px)}
@media(max-width:800px){.aboutvisual{background-size:cover!important;clip-path:inset(0 0 0 3px)}}

/* v2.3: About photo edge cleanup */
.aboutvisual{border:0!important;outline:0!important;box-shadow:none;overflow:hidden;background-position:center center;background-size:cover;}

/* v2.4: eliminate edge artifacts in the about portrait */
.aboutvisual {border:0!important;outline:0!important;box-shadow:none!important;background-clip:padding-box;overflow:hidden;background-size:cover!important;background-position:center!important;}
.aboutvisual::before,.aboutvisual::after {border:0!important;}

/* Official d-vision identity - one shared logo asset */
.official-logo{display:block;object-fit:contain;height:auto;max-width:100%}.official-logo-nav{width:130px}.official-hero-heading{margin:0 0 16px}.official-logo-hero{width:min(580px,90vw)}

/* v2.6: consistent official logo dimensions; overrides generic hero heading rules */
.nav .brand{display:inline-flex;align-items:center;flex:0 0 auto;line-height:1;min-width:0;letter-spacing:normal}
.nav .brand img.official-logo-nav{display:block;width:145px!important;max-width:145px!important;height:auto!important;max-height:52px;object-fit:contain}
.hero h1.official-hero-heading{font-size:initial;line-height:1;letter-spacing:normal;margin:24px 0 20px;width:min(450px,100%);max-width:100%}
.hero h1.official-hero-heading img.official-logo-hero{display:block;width:100%!important;max-width:450px!important;height:auto!important;object-fit:contain}
@media(max-width:800px){.nav .brand img.official-logo-nav{width:115px!important;max-width:115px!important;max-height:45px}.hero h1.official-hero-heading{width:min(360px,85vw);margin:20px 0}.hero h1.official-hero-heading img.official-logo-hero{max-width:100%!important}.navlinks{gap:12px}}
@media(max-width:420px){.nav .brand img.official-logo-nav{width:100px!important;max-width:100px!important}.navlinks a{font-size:9px;letter-spacing:1px}}


/* v2.7 — unified vector brand, same wordmark everywhere */
.nav .brand img.official-logo-nav { width:145px!important; max-width:145px!important; height:auto!important; max-height:none!important; image-rendering:auto; }
.hero h1.official-hero-heading { width:min(450px,90vw); margin:24px 0 20px; }
.hero h1.official-hero-heading img.official-logo-hero { width:100%!important; max-width:450px!important; height:auto!important; image-rendering:auto; }
.nav { gap:20px; }
.navlinks { flex-shrink:0; }
@media(max-width:800px) {
  .nav .brand img.official-logo-nav { width:115px!important; max-width:115px!important; }
  .hero h1.official-hero-heading { width:min(360px,85vw); }
}
@media(max-width:420px) {
  .nav .brand img.official-logo-nav { width:100px!important; max-width:100px!important; }
}

.dv-empty-tracks{color:#d7cbdc;padding:28px;border:1px dashed #6d5474;width:100%;}

/* v3.0 final polish: cleaner premium music cards, clear navigation and accessibility */
html{scroll-behavior:smooth}section[id]{scroll-margin-top:90px}
.release{overflow:hidden;transition:transform .28s ease,box-shadow .28s ease;box-shadow:0 14px 34px rgba(0,0,0,.22)}
.release:hover{transform:translateY(-5px);box-shadow:0 25px 55px rgba(0,0,0,.4)}
.release img{object-fit:cover;transition:transform .45s ease}
.release:hover img{transform:scale(1.025)}
a:focus-visible,button:focus-visible{outline:2px solid #ff4aab;outline-offset:4px}
.contact .btn.primary{min-width:180px;text-align:center}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.release,.release img{transition:none}.release:hover{transform:none}.release:hover img{transform:none}}

/* v3.1 — cinematic Tour Dates */
.dv-tour{overflow:hidden}.dv-tour-hero{min-height:610px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(4,6,17,.96) 0%,rgba(5,7,17,.78) 43%,rgba(5,6,15,.15) 100%),linear-gradient(0deg,#08070e,transparent 48%),var(--tour-bg) center 35%/cover;position:relative}.dv-tour-hero-inner{padding:155px 0 90px}.dv-tour-hero h1{font-size:clamp(62px,9vw,138px);line-height:.94;letter-spacing:-.085em;margin:24px 0}.dv-tour-strap{font-size:clamp(14px,1.4vw,21px);letter-spacing:.4em;line-height:1.7;color:#e6d7e9}.dv-tour-intro{max-width:430px;line-height:1.8;color:#d0c5d4;margin-top:30px}.dv-tour-events{padding:40px 0 105px}.dv-tour-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #393040;padding-bottom:20px}.dv-tour-tab{background:transparent;color:#d6cadd;border:1px solid transparent;padding:13px 20px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer}.dv-tour-tab.active,.dv-tour-tab:hover{background:var(--pink);color:#150814}.dv-tour-disclaimer{margin:25px 0;padding:17px 22px;background:#281a2d;border-left:3px solid var(--pink);font-size:13px;line-height:1.7;color:#eee}.dv-tour-row{display:grid;grid-template-columns:75px 110px minmax(0,1fr) 205px;align-items:center;gap:26px;border-bottom:1px solid #2c2634;padding:20px 0;transition:background .25s}.dv-tour-row:hover{background:#15101c}.dv-tour-row[hidden]{display:none!important}.dv-tour-day{text-align:center}.dv-tour-day strong{display:block;font-size:37px;line-height:1;font-weight:600}.dv-tour-day span,.dv-tour-day small{display:block;letter-spacing:2px;color:#c4b6ca;font-size:12px;margin-top:5px}.dv-tour-thumb{width:110px;height:76px;background:linear-gradient(135deg,#2d1535a8,#e64a9759),url('assets/hero.webp') center/cover;border-radius:2px}.dv-tour-info h2{font-size:21px;margin:0 0 5px;letter-spacing:-.04em}.dv-tour-info p{margin:0 0 5px;color:#d7c7dc}.dv-tour-info small{color:#8f849b}.dv-tour-action{text-align:right}.dv-tour-ticket{display:inline-block;border:1px solid var(--pink);padding:13px 17px;color:#ff6abb;font-size:11px;letter-spacing:1px}.dv-tour-ticket:hover{background:var(--pink);color:#100a13}.dv-tour-badge{font-size:10px;letter-spacing:1.2px;color:#bcb0c5}.dv-tour-empty{padding:70px 0;text-align:center}.dv-tour-empty h2{font-size:clamp(28px,5vw,55px);letter-spacing:-.05em}.dv-tour-empty a{color:var(--pink)}.dv-tour-banner{padding:85px 0;background:linear-gradient(90deg,#100b19dd,#2d122d99),url('assets/dj-hero.webp') center/cover}.dv-tour-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:25px}.dv-tour-banner h2{font-size:clamp(36px,5vw,68px);line-height:1.02;letter-spacing:-.06em;margin:14px 0}.dv-tour-book{text-align:center;padding:110px 0;background:radial-gradient(ellipse at bottom,#5e174e 0%,#0c0915 70%)}.dv-tour-book h2{font-size:clamp(55px,9vw,115px);line-height:.9;letter-spacing:-.07em;margin:20px 0}.dv-tour-book h2 span{color:var(--pink)}.dv-tour-book p{color:#c2b3c7;margin-bottom:30px}
@media(max-width:850px){.dv-tour-row{grid-template-columns:55px 75px minmax(0,1fr);gap:12px}.dv-tour-thumb{width:75px;height:65px}.dv-tour-action{grid-column:3;text-align:left}.dv-tour-hero{min-height:520px}.dv-tour-hero-inner{padding:140px 0 65px}.dv-tour-banner .wrap{display:block}.dv-tour-banner .btn{margin-top:15px}.navlinks{gap:10px}.navlinks a{letter-spacing:1px}}@media(max-width:480px){.dv-tour-row{grid-template-columns:48px minmax(0,1fr)}.dv-tour-thumb{display:none}.dv-tour-action{grid-column:2}.dv-tour-tabs{gap:3px}.dv-tour-tab{padding:12px 10px;font-size:10px}.dv-tour-strap{letter-spacing:.2em}.dv-tour-hero h1{font-size:60px}.dv-tour-events{padding-bottom:65px}}

/* v3.2 — Tour page design and site-wide navigation/footer */
.dv-site-nav{padding:20px 0;z-index:50}.dv-nav-inner{width:min(1220px,90%);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:25px}.dv-site-nav .brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.dv-brand-sub{font-size:8px;font-weight:600;letter-spacing:2px;white-space:nowrap;color:#bbb0c5}.dv-site-nav .navlinks{gap:23px}.dv-site-nav .navlinks a{font-size:10px;letter-spacing:1.3px}.dv-site-nav .navlinks a[aria-current=page]{color:var(--pink);border-bottom:2px solid var(--pink);padding-bottom:9px}.dv-nav-social{display:flex;gap:15px;font-size:19px}.dv-menu-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}.dv-menu-toggle span{display:block;width:24px;height:2px;background:white;margin:5px}
.dv-site-footer{background:#080910;border-top:1px solid #261b2c;padding:40px 0 22px}.dv-footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid #b8337d;padding-bottom:28px}.dv-footer-brand img{width:180px;height:auto}.dv-footer-main small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:10px}.dv-footer-main nav{display:flex;flex-wrap:wrap;gap:24px}.dv-footer-main nav a{font-size:10px;letter-spacing:1px;text-transform:uppercase}.dv-footer-social{display:flex;gap:14px}.dv-footer-social a{margin:0;font-size:11px}.dv-footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;font-size:11px;letter-spacing:.5px}
.dv-tour-hero{min-height:550px;background:linear-gradient(90deg,rgba(5,6,16,.94),rgba(5,6,16,.58) 48%,rgba(5,6,16,.16)),linear-gradient(0deg,#08070e,transparent 35%),var(--tour-bg) center 38%/cover}.dv-tour-hero-inner{padding:160px 0 75px}.dv-tour-hero h1{font-size:clamp(66px,9vw,130px);margin:18px 0}.dv-tour-hero .kicker{letter-spacing:5px}.dv-tour-hero .kicker:after{content:'';display:block;background:var(--pink);width:45px;height:2px;margin-top:16px}.dv-tour-strap{letter-spacing:.36em}.dv-tour-intro{max-width:400px}.dv-tour-events{padding:20px 0 35px}.dv-tour-row{padding:13px 0;grid-template-columns:72px 112px minmax(0,1fr) 220px}.dv-tour-thumb{height:72px}.dv-tour-tabs{padding-bottom:10px}.dv-tour-info h2{font-size:20px}.dv-tour-banner{background:linear-gradient(90deg,#090816dd,#1a0d1d55),var(--dv-banner-bg) center/cover;padding:50px 0}.dv-tour-banner h2{margin:0;font-size:clamp(30px,4vw,56px)}.dv-tour-banner h2 span,.dv-tour-map-copy h2 span,.dv-tour-connect h2 span{color:var(--pink)}
.dv-tour-map-section{background:#090c16;padding:65px 0}.dv-tour-map-grid{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:center}.dv-tour-map-copy h2{font-size:clamp(44px,5vw,70px);letter-spacing:-.06em;line-height:.97;margin:14px 0}.dv-tour-map-copy p{font-size:14px;line-height:1.8;color:#a8a0b6}.dv-tour-map-copy small{color:#fa92c7}.dv-tour-map-wrap{position:relative;border:1px solid #30203b;overflow:hidden;background:#111521}#dv-tour-map{height:365px;width:100%;background:#10121f}.dv-tour-map-loading{padding:90px 20px;text-align:center;color:#c6b3d0}.dv-map-credit{position:absolute;bottom:4px;left:12px;z-index:500;pointer-events:none;font-size:9px;color:#fff;background:#111a;padding:3px 6px}.leaflet-container{font-family:Inter,Arial,sans-serif!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#18101f!important;color:#fff!important}.leaflet-popup-content strong{color:#ff69b8}.leaflet-popup-content small{display:block;color:#ff99ca}
.dv-tour-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;background:#08070e}.dv-tour-gallery figure{position:relative;margin:0;height:150px;overflow:hidden}.dv-tour-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.dv-tour-gallery figure:hover img{transform:scale(1.08)}.dv-tour-gallery figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#07050cbd);padding:20px 10px 8px;font-size:11px}
.dv-tour-connect{background:linear-gradient(90deg,#090816df,#180b1c70),var(--dv-connect-bg) center/cover;padding:58px 0}.dv-tour-connect .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.dv-tour-connect h2{font-size:clamp(36px,5vw,65px);line-height:1;letter-spacing:-.05em;margin:0}.dv-tour-connect p{font-size:13px;color:#d2c5d3}.dv-tour-connect-action{display:flex;flex-direction:column;gap:14px;align-items:flex-end}.dv-tour-connect-action>a:last-child{font-size:12px;color:#ead2e0}
@media(max-width:1020px){.dv-site-nav .navlinks{gap:12px}.dv-brand-sub{font-size:7px}.dv-footer-main{flex-wrap:wrap}.dv-tour-map-grid{grid-template-columns:210px 1fr}.dv-tour-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dv-site-nav{padding:15px 0}.dv-menu-toggle{display:block}.dv-site-nav .navlinks{display:none;position:absolute;left:0;right:0;top:100%;padding:20px 6%;background:#090713f5;flex-direction:column;align-items:stretch;gap:20px}.dv-site-nav .navlinks.dv-open{display:flex}.dv-site-nav .navlinks a:nth-child(2),.dv-site-nav .navlinks a:nth-child(3){display:block}.dv-site-nav .navlinks a{font-size:12px}.dv-nav-social{justify-content:flex-start}.dv-brand-sub{font-size:6px;letter-spacing:1px}.dv-tour-map-grid{grid-template-columns:1fr;gap:20px}.dv-tour-map-copy h2 br{display:none}#dv-tour-map{height:320px}.dv-tour-connect .wrap{display:block}.dv-tour-connect-action{align-items:flex-start;margin-top:20px}.dv-footer-main nav{gap:14px}.dv-footer-bottom{display:block}.dv-footer-bottom span{display:block;margin:8px 0}.dv-tour-row{grid-template-columns:50px 75px minmax(0,1fr);gap:10px}.dv-tour-action{grid-column:3}.dv-tour-gallery figure{height:125px}}
@media(max-width:480px){.dv-tour-row{grid-template-columns:50px 70px minmax(0,1fr)}.dv-tour-thumb{display:block;width:70px;height:55px}.dv-tour-info h2{font-size:16px}.dv-tour-info p{font-size:12px}.dv-tour-action{grid-column:3}.dv-tour-day strong{font-size:28px}.dv-tour-hero{min-height:500px}.dv-tour-hero-inner{padding-top:145px}.dv-tour-gallery{grid-template-columns:repeat(2,1fr)}.dv-tour-gallery figure{height:115px}.dv-site-nav .brand img.official-logo-nav{width:115px!important;max-width:115px!important}}

@media(min-width:761px){.dv-site-nav .navlinks a{font-size:12px;line-height:1.3}}

/* v3.4 — Tour city photo cards: real image element, not cropped background */
.dv-tour-row{grid-template-columns:75px 156px minmax(0,1fr) 180px;gap:24px;padding:18px 0;min-height:122px}
.dv-tour-thumb{position:relative;display:block;width:156px;height:96px;overflow:hidden;border-radius:7px;background:#161323!important;box-shadow:0 9px 28px rgba(0,0,0,.25);isolation:isolate}
.dv-tour-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;filter:saturate(1.12) contrast(1.06);transition:transform .35s ease,filter .35s ease}
.dv-tour-row:hover .dv-tour-thumb img{transform:scale(1.055);filter:saturate(1.22) contrast(1.07)}
.dv-tour-thumb:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(4,4,10,.18),transparent 70%)}
.dv-tour-thumb-fallback{display:grid;place-items:center;height:100%;font-size:17px;letter-spacing:-.04em;color:#e8d8eb}
.dv-tour-info{min-width:0}
@media(max-width:850px){.dv-tour-row{grid-template-columns:58px 115px minmax(0,1fr);gap:14px}.dv-tour-thumb{width:115px;height:82px}.dv-tour-action{grid-column:3;text-align:left}}
@media(max-width:520px){.dv-tour-row{grid-template-columns:49px 94px minmax(0,1fr);gap:10px;padding:16px 0}.dv-tour-thumb{display:block;width:94px;height:82px}.dv-tour-info h2{font-size:16px}.dv-tour-info p{font-size:12px}.dv-tour-action{grid-column:3}.dv-tour-day strong{font-size:28px}}

/* v3.5 — subtle hover play feedback; no download buttons */
.dv-hover-preview:before{content:'▶ PREVIEW';position:absolute;top:22px;right:22px;z-index:2;padding:10px 14px;border:1px solid #ff64b4;background:#110c19ba;color:#fff;font-size:11px;font-weight:700;letter-spacing:1.6px;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;pointer-events:none}
@media(hover:hover) and (pointer:fine){.dv-hover-preview:hover:before{opacity:1;transform:none}}
.releaseinfo .dv-buy{background:var(--pink);border-color:var(--pink);color:#160713}

/* v3.6 — icon shapes drawn in CSS, no Unicode glyph fallback on iOS */
.dv-css-play{display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid currentColor;margin-right:7px;vertical-align:middle}
.dv-css-arrow{display:inline-block;position:relative;width:12px;height:12px;margin-left:7px;flex:none;vertical-align:middle}
.dv-css-arrow-up:before{content:"";position:absolute;right:1px;top:1px;width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.dv-css-arrow-up:after{content:"";position:absolute;left:1px;bottom:2px;width:11px;height:1.5px;background:currentColor;transform:rotate(-45deg);transform-origin:left center}
.dv-css-arrow-down:before{content:"";position:absolute;left:5px;top:0;width:1.5px;height:10px;background:currentColor}
.dv-css-arrow-down:after{content:"";position:absolute;left:2px;bottom:1px;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}

/* v3.7: icon-free hero actions, iOS font fallback safe */
.hero .actions .btn{font-family:Arial,Helvetica,sans-serif!important;}
.hero .actions .btn::before,.hero .actions .btn::after{content:none!important;display:none!important;}

/* v3.8: hide legacy icon glyphs inside home hero buttons */
.hero .actions .btn{font-family:Arial,Helvetica,sans-serif!important;}
.hero .actions .btn:before,.hero .actions .btn:after{content:none!important;display:none!important;}
