/* Essex Silent Disco — neon after-dark theme (colours from the logo) */
:root{
  --bg:#050407;--bg-2:#0c0a12;--bg-3:#14111d;
  --tx:#f5f2fb;--tx-soft:#aaa3bb;--rule:rgba(245,242,251,.13);
  --cyan:#12e6f8;--violet:#8b5cf6;--magenta:#f04bf5;
  --grad:linear-gradient(90deg,var(--cyan),var(--violet) 50%,var(--magenta));
  --acc:var(--cyan);
  --disp:"Bricolage Grotesque",system-ui,sans-serif;--ser:"Instrument Serif",Georgia,serif;--mono:"JetBrains Mono",ui-monospace,monospace;
  --e:cubic-bezier(.7,0,.2,1);
}
body[data-ch="2"]{--acc:var(--violet)} body[data-ch="3"]{--acc:var(--magenta)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font-family:var(--disp);font-weight:300;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--magenta);color:#fff}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:999;background:#fff;color:#000;padding:10px}
.mono{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.ser{font-family:var(--ser);font-weight:400;font-style:italic;letter-spacing:-.01em}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.pad{padding-inline:max(16px,3vw)}
.acc{color:var(--acc);transition:color .8s}
p a{text-decoration:underline;text-decoration-color:var(--magenta);text-underline-offset:3px}

/* ticker */
.ticker{background:var(--grad);color:#07040c;overflow:hidden;white-space:nowrap;padding:9px 0;font-weight:500}
.ticker div{display:inline-flex;gap:40px;animation:tk 34s linear infinite}
.ticker span::before{content:"✦";margin-right:12px}
@keyframes tk{to{transform:translateX(-50%)}}

/* header */
header.top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding-block:12px;border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:40;background:rgba(5,4,7,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em}
.brand img{height:54px;width:auto}
.menu{display:flex;gap:24px;justify-content:center}
.menu a{color:var(--tx-soft);transition:color .3s}
.menu a:hover{color:var(--tx)}
.menu a[aria-current]{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hcta{display:flex;gap:8px}
.pill{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--rule);border-radius:999px;padding:11px 18px;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;transition:all .35s var(--e);white-space:nowrap}
.pill svg{width:16px;height:16px}
.pill.solid{background:var(--grad);color:#07040c;border:0;font-weight:500}
.pill:hover{border-color:var(--acc);box-shadow:0 0 24px -4px var(--acc)}
@media(max-width:1080px){.menu{display:none}header.top{grid-template-columns:1fr auto}}
@media(max-width:520px){.hcta .pill:not(.solid){display:none}.brand img{height:44px}}

/* partner strip */
.partner-strip{display:flex;align-items:center;gap:16px;padding-block:10px;border-bottom:1px solid var(--rule);background:var(--bg-2);color:var(--tx-soft);flex-wrap:wrap}
.partner-strip img{height:34px;width:auto}
.partner-strip b{font-weight:800;color:var(--tx)}
.partner-strip:hover{color:var(--tx)}
@media(max-width:760px){.hide-s{display:none}}
.crumbs{padding-block:14px;color:var(--tx-soft);border-bottom:1px solid var(--rule)}
.crumbs span{opacity:.5;margin:0 6px}.crumbs a:hover{color:var(--tx)}

/* hero */
.hero{position:relative;padding-top:4vw;border-bottom:1px solid var(--rule);overflow:hidden;isolation:isolate}
.hero::before,.hero::after{content:"";position:absolute;width:55vw;height:55vw;border-radius:50%;filter:blur(110px);opacity:.28;z-index:-1;animation:drift 16s ease-in-out infinite alternate}
.hero::before{background:var(--cyan);left:-18vw;top:-10vw}
.hero::after{background:var(--magenta);right:-18vw;bottom:-25vw;animation-delay:-8s}
@keyframes drift{to{transform:translate(5vw,4vw) scale(1.1)}}
.hero-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--tx-soft)}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:3vw;align-items:center}
.mega{font-weight:800;font-size:clamp(4rem,14vw,15.5rem);line-height:.82;letter-spacing:-.065em;margin:3vw 0 0;text-transform:uppercase}
.mega .row{display:flex;align-items:center;gap:2vw;white-space:nowrap}
.mega .ser{text-transform:none;font-weight:400;letter-spacing:-.04em;font-size:.82em}
.mega .up{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgba(240,75,245,.45));padding-right:.04em}
.mega-s{font-size:clamp(3rem,8.5vw,9rem);text-transform:none;letter-spacing:-.055em}
.hero-logo{width:100%;max-width:500px;justify-self:end;filter:drop-shadow(0 0 40px rgba(139,92,246,.45))}

.hero-foot{display:grid;grid-template-columns:1.1fr 1fr;gap:3vw;align-items:end;padding-block:3vw 2.6vw}
.hero-foot p{font-size:clamp(1.05rem,1.5vw,1.35rem);max-width:44ch;color:var(--tx-soft)}
.hero-foot p strong{color:var(--tx);font-weight:500}
.big-btns{display:flex;flex-wrap:wrap;gap:10px}
.bb{display:inline-flex;align-items:center;gap:14px;padding:20px 28px;border-radius:999px;font-weight:500;font-size:1.05rem;transition:transform .4s var(--e),box-shadow .4s;cursor:pointer;border:0;font-family:var(--disp);color:inherit;background:none}
.bb svg{width:22px;height:22px}
.bb.wa{background:var(--grad);color:#07040c}
.bb.wa:hover{transform:translateY(-3px) rotate(-1.5deg);box-shadow:0 18px 50px -12px var(--magenta)}
.bb.call{border:1px solid var(--rule)}
.bb.call:hover{border-color:var(--cyan);box-shadow:0 0 30px -6px var(--cyan);transform:rotate(1.5deg)}
@media(max-width:900px){.hero-grid,.hero-foot{grid-template-columns:1fr}.hero-logo{justify-self:center;max-width:300px;order:-1;margin-top:20px}}
.answer{border-left:2px solid var(--magenta);padding-left:18px}

.now{padding-block:22px;border-bottom:1px solid var(--rule);display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--bg-2)}
.now .ser{font-size:clamp(1.5rem,3vw,2.5rem)}
.eqmini{display:inline-flex;gap:3px;align-items:flex-end;height:18px}
.eqmini i{width:3px;background:var(--acc);height:30%;animation:eq .7s ease-in-out infinite alternate;transition:background .8s}
.eqmini i:nth-child(2){animation-delay:-.3s}.eqmini i:nth-child(3){animation-delay:-.5s}.eqmini i:nth-child(4){animation-delay:-.1s}
@keyframes eq{to{height:100%}}

/* sections */
.sec{border-bottom:1px solid var(--rule)}
.sec-head{padding-block:clamp(60px,9vw,130px) clamp(30px,4vw,60px);max-width:1200px}
.sec-head p{margin-top:22px;color:var(--tx-soft);font-size:1.1rem;max-width:62ch}
.h2{font-weight:800;font-size:clamp(2.5rem,6.6vw,7rem);line-height:.9;letter-spacing:-.05em}
.h2 .ser{font-weight:400;letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
.prose{max-width:70ch;color:var(--tx-soft);font-size:1.08rem;display:grid;gap:18px;padding-bottom:clamp(50px,7vw,100px)}
.prose strong{color:var(--tx);font-weight:500}
.prose h3{color:var(--tx);font-weight:800;font-size:1.6rem;letter-spacing:-.03em;margin-top:12px}

/* bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(200px,auto);gap:12px;padding-bottom:clamp(60px,8vw,110px)}
.tile{border:1px solid var(--rule);border-radius:22px;padding:28px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:20px;background:var(--bg-2)}
.tile h3{font-weight:800;font-size:clamp(1.5rem,2.4vw,2.2rem);letter-spacing:-.035em;line-height:.98}
.tile p{color:var(--tx-soft);max-width:46ch}
.t-a{grid-column:span 7;grid-row:span 2;background:radial-gradient(circle at 85% 15%,rgba(139,92,246,.35),transparent 55%),var(--bg-3)}
.t-a h3{font-size:clamp(2.4rem,5vw,4.8rem)}
.t-a>div{position:relative;z-index:1;max-width:72%}
.t-b{grid-column:span 5;background:var(--grad);color:#07040c}
.t-b p{color:#07040c}
.t-c{grid-column:span 5}
.t-d,.t-e,.t-f{grid-column:span 4}
.glowhp{position:absolute;right:28px;top:28px;width:30%}
@media(max-width:900px){.bento>*{grid-column:1/-1!important;grid-row:auto!important}.t-a>div{max-width:none}.glowhp{position:static;width:46%;margin-left:auto}}

/* occasions index */
.idx{list-style:none;padding-bottom:clamp(50px,7vw,100px)}
.idx li{border-top:1px solid var(--rule)}
.idx li:last-child{border-bottom:1px solid var(--rule)}
.idx a{display:grid;grid-template-columns:80px 1fr 1.2fr 60px;align-items:center;gap:3vw;padding-block:26px;position:relative;isolation:isolate}
.idx a::before{content:"";position:absolute;inset:0 calc(-1*max(16px,3vw));background:var(--grad);clip-path:inset(50% 0 50% 0);transition:clip-path .5s var(--e);z-index:-1}
.idx a:hover{color:#07040c}
.idx a:hover::before{clip-path:inset(0)}
.idx h3{font-weight:800;font-size:clamp(2rem,5vw,4.6rem);letter-spacing:-.05em;line-height:.92}
.idx p{color:var(--tx-soft);transition:color .3s}
.idx a:hover p{color:#07040c}
.idx .arr{font-size:2.4rem;transition:transform .5s var(--e);justify-self:end}
.idx a:hover .arr{transform:rotate(-45deg)}
@media(max-width:800px){.idx a{grid-template-columns:1fr;gap:6px}.idx .arr{display:none}}

/* points grid */
.points{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-bottom:clamp(50px,7vw,100px)}
.pt{border:1px solid var(--rule);border-radius:20px;padding:26px;background:var(--bg-2)}
.pt h3{font-weight:800;font-size:1.45rem;letter-spacing:-.03em;margin-bottom:10px}
.pt h3::before{content:"";display:block;width:34px;height:4px;border-radius:4px;background:var(--grad);margin-bottom:18px}
.pt p{color:var(--tx-soft)}
@media(max-width:1000px){.points{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.points{grid-template-columns:1fr}}

/* tickets */
.tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-bottom:clamp(60px,8vw,110px)}
.tk{border:1px solid var(--rule);border-radius:22px;display:flex;flex-direction:column;position:relative;background:var(--bg-2)}
.tk-top{padding:30px 28px 26px;border-bottom:2px dashed var(--rule);position:relative}
.tk-top::before,.tk-top::after{content:"";position:absolute;bottom:-13px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1px solid var(--rule)}
.tk-top::before{left:-13px}.tk-top::after{right:-13px}
.tk h3{font-weight:800;font-size:clamp(2rem,3.4vw,3rem);letter-spacing:-.045em;line-height:.9;margin-top:16px}
.tk h3 .ser{font-weight:400}
.tk-body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.tk ul{list-style:none;display:grid;gap:10px;margin-bottom:30px;color:var(--tx-soft)}
.tk li{display:flex;gap:10px}
.tk li::before{content:"↳";color:var(--cyan)}
.tk .pill{margin-top:auto;justify-content:center;padding:16px}
.tk.hot{border:1px solid transparent;background:linear-gradient(var(--bg-3),var(--bg-3)) padding-box,var(--grad) border-box;box-shadow:0 30px 80px -40px var(--magenta)}
.tk.hot .pill{background:var(--grad);color:#07040c;border:0}
.tk .tag{position:absolute;top:22px;right:22px;background:var(--grad);color:#07040c;padding:5px 10px;border-radius:99px}
@media(max-width:900px){.tickets{grid-template-columns:1fr}}

/* statement */
.statement{padding-block:clamp(80px,12vw,180px);border-bottom:1px solid var(--rule);background:radial-gradient(ellipse at 20% 100%,rgba(18,230,248,.15),transparent 55%),radial-gradient(ellipse at 90% 0%,rgba(240,75,245,.18),transparent 50%)}
.statement p{font-weight:300;font-size:clamp(2rem,5vw,5.2rem);line-height:1.02;letter-spacing:-.045em;max-width:20ch}
.statement .ser{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.statement .mono{display:block;margin-top:40px;color:var(--tx-soft)}

/* extras (Hire Essex) */
.xgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding-bottom:clamp(60px,8vw,110px)}
.x{border:1px solid var(--rule);border-radius:20px;padding:26px;background:var(--bg-2);display:flex;flex-direction:column;gap:12px;transition:transform .4s var(--e),border-color .4s}
.x:hover{transform:translateY(-4px);border-color:var(--magenta)}
.x .mono{color:var(--cyan)}
.x h3{font-weight:800;font-size:1.7rem;letter-spacing:-.035em;line-height:1}
.x p{color:var(--tx-soft)}
.he-band{border-bottom:1px solid var(--rule);padding-block:clamp(60px,8vw,110px);background:var(--bg-2)}
.he-band-in{display:grid;grid-template-columns:1.3fr .7fr;gap:4vw;align-items:center}
.he-band p{color:var(--tx-soft);font-size:1.12rem;max-width:56ch;margin-top:22px}
.he-band .mono{color:var(--cyan)}
.he-logo-card{background:#fff;color:#111;border-radius:24px;padding:40px 30px;display:grid;place-items:center;gap:18px;text-align:center;transition:transform .5s var(--e),box-shadow .5s}
.he-logo-card img{max-height:110px;width:auto}
.he-logo-card:hover{transform:rotate(-2deg) scale(1.02);box-shadow:0 30px 80px -30px var(--cyan)}
@media(max-width:860px){.he-band-in{grid-template-columns:1fr}}

/* areas */
.regions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}
.region{padding:30px max(16px,2vw) 50px;border-right:1px solid var(--rule)}
.region:last-child{border-right:0}
.region h3{font-weight:800;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.05em;line-height:.9;margin-bottom:14px}
.region h3 a:hover{color:var(--cyan)}
.region>p{color:var(--tx-soft);margin-bottom:20px}
.townlist{list-style:none;columns:2;column-gap:18px}
.townlist li{break-inside:avoid;border-bottom:1px solid var(--rule)}
.townlist a{display:flex;justify-content:space-between;padding:9px 0;font-size:.95rem;color:var(--tx-soft)}
.townlist a:hover{color:var(--tx)}
.townlist a span{color:var(--magenta)}
@media(max-width:900px){.regions{grid-template-columns:1fr}.region{border-right:0;border-bottom:1px solid var(--rule)}}
@media(max-width:420px){.townlist{columns:1}}
.nearby{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:40px}
.nearby a,.nearby span{border:1px solid var(--rule);border-radius:99px;padding:9px 16px;font-size:.92rem;color:var(--tx-soft)}
.nearby a:hover{border-color:var(--cyan);color:var(--tx)}

/* faq */
.faq{max-width:1100px;padding-bottom:clamp(60px,8vw,110px)}
.faq details{border-top:1px solid var(--rule)}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;gap:20px;font-weight:500;font-size:clamp(1.15rem,2vw,1.55rem);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:20px;height:20px;flex:none;border-radius:50%;border:1px solid var(--tx-soft);transition:all .4s var(--e);margin-top:5px}
.faq details[open] summary::after{background:var(--grad);border-color:transparent;box-shadow:0 0 18px var(--magenta)}
.faq p{padding:0 50px 26px 0;color:var(--tx-soft);max-width:72ch}

/* enquiry */
.enq{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule)}
.enq-l{background:var(--grad);color:#07040c;padding:clamp(40px,6vw,90px) max(16px,3vw);display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.enq-l .h2{font-size:clamp(3rem,6.6vw,6.6rem)}
.enq-l .h2 .ser{background:none;color:#07040c;-webkit-background-clip:initial;background-clip:initial}
.enq-l .pill.solid{background:#07040c;color:#fff}
.dial{display:block;font-weight:800;font-size:clamp(2.2rem,5vw,4.4rem);letter-spacing:-.05em;line-height:1}
.dial:hover{text-decoration:underline;text-decoration-thickness:4px}
.enq-r{padding:clamp(40px,6vw,90px) max(16px,3vw)}
form{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px}
.f{display:flex;flex-direction:column;gap:6px}
.f.full{grid-column:1/-1}
.f>label{color:var(--tx-soft)}
input,select,textarea{font:inherit;font-size:1.15rem;background:transparent;border:0;border-bottom:1px solid var(--tx-soft);padding:10px 0;color:var(--tx);outline:none;border-radius:0;width:100%;color-scheme:dark}
select option{background:var(--bg)}
input:focus,select:focus,textarea:focus{border-color:var(--cyan)}
textarea{min-height:90px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-block;border:1px solid var(--rule);border-radius:99px;padding:8px 14px;font-size:.9rem;cursor:pointer;transition:all .3s}
.chip input:checked+span{background:var(--grad);color:#07040c;border-color:transparent}
.chip input:focus-visible+span{outline:2px solid var(--cyan)}
form button{grid-column:1/-1;justify-content:center}
@media(max-width:900px){.enq{grid-template-columns:1fr}form{grid-template-columns:1fr}}

/* footer */
footer{padding-top:60px;overflow:hidden}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding-bottom:50px}
.fgrid div{display:flex;flex-direction:column;gap:9px}
.fgrid .mono{color:var(--cyan);margin-bottom:6px}
.fgrid a{color:var(--tx-soft);font-size:.95rem}
.fgrid a:hover{color:var(--tx)}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
.fbig{font-weight:800;font-size:clamp(4rem,21vw,24rem);letter-spacing:-.07em;line-height:.8;text-transform:uppercase;white-space:nowrap;margin-bottom:-1vw;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.frow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-block:24px;border-top:1px solid var(--rule);color:var(--tx-soft)}
.frow a:hover{color:var(--tx)}

/* mobile bar */
.mbar{display:none}
@media(max-width:620px){
  body{padding-bottom:60px}
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60;border-top:1px solid var(--rule)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 0;font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
  .mbar a:first-child{background:var(--bg-3)}
  .mbar a:last-child{background:#25d366;color:#04210f;font-weight:500}
  .mbar svg{width:18px;height:18px}
}

.rv{opacity:0;transform:translateY(30px);transition:opacity .9s var(--e),transform .9s var(--e)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
@media(max-width:600px){.hero-logo{max-width:200px;margin-top:10px}.hero-meta span:not(:first-child){display:none}.mega{margin-top:10px}}

/* video hero */
.hero-video{min-height:min(100svh,980px);display:flex;flex-direction:column;justify-content:space-between}
.hero-video::before,.hero-video::after{display:none}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-video>.hero-meta,.hero-video>.hero-grid,.hero-video>.hero-foot{position:relative}
.hero-video{background:linear-gradient(90deg,rgba(5,4,7,.88) 0%,rgba(5,4,7,.55) 55%,rgba(5,4,7,.7) 100%)}
.hero-video .hero-bg{z-index:-1}
.hero-video{isolation:isolate}
.hero-video .hero-shade{display:none}
.hero-video .hero-foot p{color:#d9d3e6}
.hero-video{background:#050407}
.hero-video .hero-bg{z-index:-2}
.hero-video::after{display:block;content:"";position:absolute;inset:0;width:auto;height:auto;border-radius:0;filter:none;opacity:1;animation:none;z-index:-1;background:linear-gradient(90deg,rgba(5,4,7,.9) 0%,rgba(5,4,7,.5) 55%,rgba(5,4,7,.65) 100%),linear-gradient(0deg,#050407 0%,transparent 30%)}
@media(max-width:900px){.hero-video::after{background:linear-gradient(180deg,rgba(5,4,7,.55),rgba(5,4,7,.85) 60%,#050407)}}
.hero-logo{height:auto}
