@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/jakarta-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--green:#3D9C14;--ink:#fff;--soft:#E2E2E2;--sand:#C9C8AB;--bg0:#0C0F0F;--bg1:#121414;--bg2:#1A1C1C;--foot:#020303;--yellow:#E3EC00}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg1);color:var(--ink);font-family:"Plus Jakarta Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
.g{color:var(--green)}
.center{text-align:center}
.wrap{width:min(1050px,100% - 40px);margin:0 auto}
.eyebrow{font-size:14px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:var(--soft);margin-bottom:14px}
.eyebrow.g{color:var(--green)}
h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;font:600 16px/1.2 "Plus Jakarta Sans",sans-serif;border-radius:10px;padding:12px 15px;min-height:46px;cursor:pointer;border:1px solid transparent;transition:filter .15s,background .15s}
.btn:hover{filter:brightness(1.12)}
.btn-green{background:var(--green);color:#fff}
.btn-green-outline{border-color:var(--green);color:var(--green);background:transparent}
.btn-outline{background:#000;border-color:#fff;color:#fff}
.btn-tall{width:140px;min-height:68px}
.btn-full{width:100%}
.center-btn{display:flex;justify-content:center;margin-top:40px}

/* header */
.topbar{position:fixed;inset:0 0 auto;z-index:50;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.bar{height:64px;width:min(1140px,100% - 40px);margin:0 auto;display:flex;align-items:center;gap:24px}
.logo{flex:0 0 auto}
.logo img{width:172px;height:45px}
.nav{display:flex;gap:28px;margin-left:auto;flex-wrap:nowrap}
.nav a{font-size:16px;font-weight:500;letter-spacing:-.2px;color:var(--soft);text-transform:uppercase;white-space:nowrap}
.nav a:hover{color:#fff}
.talk{flex:0 0 auto;min-width:150px;padding:12px 18px;white-space:nowrap;text-transform:uppercase}
.lang{flex:0 0 auto;display:flex;background:rgba(255,255,255,.08);border-radius:999px;padding:3px}
.lang a{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;font-size:14px;font-weight:600;color:var(--soft)}
.lang a img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.lang a.on{background:rgba(255,255,255,.16);color:#fff}
@media (max-width:1400px){.bar{gap:16px}.nav{gap:18px}.nav a{font-size:15px}}
.burger{display:none;margin-left:auto;background:none;border:0;width:40px;height:40px;padding:8px;cursor:pointer}
.burger span{display:block;height:2px;background:#fff;margin:5px 0;border-radius:2px}
.mnav{padding:12px 20px 24px;display:flex;flex-direction:column;gap:6px;background:rgba(0,0,0,.92)}
.mnav[hidden]{display:none}
.mnav>a:not(.btn){padding:12px 0;font-size:18px;font-weight:500;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08)}
.mnav .btn{margin-top:12px;text-transform:uppercase}
.mnav .lang{align-self:flex-start;margin-top:12px}
.mnav .lang a{padding:6px 14px}

/* hero */
.hero{position:relative;min-height:700px;display:flex;align-items:center;overflow:hidden;background:#000}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.45) 55%,rgba(0,0,0,.25) 100%)}
.hero-in{position:relative;z-index:1;padding:120px 0 80px}
.hero h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;max-width:760px}
.lead{font-size:20px;line-height:24px;max-width:617px;margin-top:24px;color:#fff}
.hero-btns{display:flex;gap:16px;align-items:center;margin-top:32px}
.hero-btns .btn-green-outline{width:185px}
.pills{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.pills li{font-size:14px;font-weight:500;letter-spacing:.3px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}

/* how it works */
.how{background:var(--bg0);padding:110px 0 100px}
.how h2{max-width:720px;margin:0 auto}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:64px 0 56px}
.step{display:flex;gap:18px;align-items:flex-start}
.step .ic{width:70px;height:70px;flex:none}
.step h3{font-size:20px;font-weight:700;color:var(--green);text-transform:uppercase;margin:6px 0 8px}
.step p{font-size:16px;line-height:23px;color:var(--soft);max-width:240px}
.frame{background:#070909;border-radius:16px;padding:15px}
.frame img{border-radius:10px;width:100%}

/* applications */
.apps{background:var(--bg1);padding:120px 0}
.app{display:grid;grid-template-columns:1fr 1fr;gap:40px 50px;align-items:center}
.app+.app{margin-top:160px}
.app-right .app-img{order:2}
.app-img img{border-radius:20px;width:100%}
.app h2{margin-bottom:36px}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feat .ic{width:25px;height:25px;margin-bottom:12px}
.feat h4{font-size:18px;font-weight:600;line-height:1.3;margin-bottom:8px}
.feat p{font-size:16px;line-height:23px;color:var(--sand)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}

/* operators */
.ops{background:var(--bg2);padding:120px 0 100px}
.narrow{width:min(890px,100% - 40px)}
.ops-row{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:64px 0 64px;text-align:center}
.ops-row::before{content:"";position:absolute;top:40px;left:16.6%;right:16.6%;height:2px;background:var(--green);opacity:.6}
.op-ic{position:relative;width:80px;height:80px;margin:0 auto 18px;border:2px solid var(--green);border-radius:50%;display:grid;place-items:center;background:var(--bg2)}
.op-ic .ic{width:38px;height:38px}
.op-n{font-size:18px;font-weight:800;color:var(--green)}
.op h3{font-size:18px;font-weight:700;letter-spacing:1px;margin:6px 0 8px}
.op p:last-child{font-size:16px;line-height:23px;color:var(--soft)}
.ops-img{border-radius:20px;width:100%}

/* faq */
.faq{background:var(--bg1);padding:40px 0 120px}
.faq-w{width:min(1000px,100% - 40px)}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 30px;margin-top:48px;align-items:start}
.faq-grid>div{display:flex;flex-direction:column;gap:5px}
.qa{background:rgba(215,226,250,.07);border-radius:5px}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px;font:600 18px/1.35 Inter,sans-serif}
.qa summary::-webkit-details-marker{display:none}
.plus{position:relative;width:16px;height:16px;flex:none}
.plus::before,.plus::after{content:"";position:absolute;background:var(--green);border-radius:1px;transition:transform .2s}
.plus::before{left:0;right:0;top:7px;height:2px}
.plus::after{top:0;bottom:0;left:7px;width:2px}
.qa[open] .plus::after{transform:scaleY(0)}
.qa p{padding:0 20px 20px;font-size:16px;line-height:24px;color:var(--soft)}

/* contact */
.contact{background:var(--bg2);padding:40px 20px 120px;border-top:1px solid rgba(255,255,255,.05)}
.contact-w{width:min(550px,100%);margin:0 auto;text-align:center;padding-top:80px}
.contact h2{margin-bottom:16px}
.muted{font-size:16px;line-height:24px;color:var(--soft)}
.lead-form{text-align:left;margin-top:36px;display:flex;flex-direction:column}
.lead-form label{font-size:14px;font-weight:500;color:var(--soft);margin:0 0 6px}
.lead-form input{font:400 16px "Plus Jakarta Sans",sans-serif;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:12px 14px;margin-bottom:16px}
.lead-form input:focus{outline:2px solid var(--green);outline-offset:1px}
.lead-form .hp{position:absolute;left:-9999px}
.form-status{margin-top:12px;font-size:14px;color:var(--soft)}
.contact .center-btn{margin-top:16px}
.contact .center-btn .btn{width:350px;max-width:100%}
.small{font-size:14px;line-height:20px;color:var(--soft);margin-top:20px}

/* insights */
.insights{background:var(--bg1);padding:80px 0}
.ins-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px}
.ins-head a{color:var(--soft);font-weight:400;font-size:14px}
.card{display:block;width:340px;max-width:100%;background:var(--bg2);border-radius:16px;overflow:hidden}
.card img{width:100%;height:200px;object-fit:cover}
.card h3{font-size:28px;line-height:36px;font-weight:700;color:var(--yellow);padding:16px 20px 22px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* footer */
.foot{background:var(--foot);padding:35px 0 30px}
.foot-in{width:min(1070px,100% - 40px);margin:0 auto;display:flex;justify-content:space-between;gap:40px}
.foot-l img{width:180px;height:47px}
.foot-contact{font-size:14px;margin-top:14px;color:var(--soft)}
.foot-contact .up{text-transform:uppercase;display:block;margin-bottom:4px}
.social{display:flex;gap:12px;margin-top:16px}
.social img{width:22px;height:22px}
.foot-r{text-align:right}
.fl{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 20px;margin-bottom:10px}
.fl a,.fl button{font:500 12px/1.6 "Plus Jakarta Sans",sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--soft);background:none;border:0;padding:0;cursor:pointer}
.fl a:hover,.fl button:hover{color:#fff}
.copy{font-size:12px;text-transform:uppercase;color:#8a8a8a;margin-top:18px;letter-spacing:.5px}
.foot-batt-wrap{background:var(--bg1)}
.foot-batt-link{display:block;width:163px;margin:0 auto}
.foot-batt{width:163px;height:60px}

/* cookie */
.cookie{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:14px;width:340px;max-width:calc(100% - 40px);background:#fff;color:#111;border-radius:12px;padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:14px;line-height:20px}
.cookie a{text-decoration:underline}
.cookie p{flex:1;min-width:0}
.cookie button{flex:none;background:#111;color:#fff;border:0;border-radius:8px;padding:9px 18px;font:600 14px "Plus Jakarta Sans",sans-serif;cursor:pointer}
.cookie[hidden]{display:none}

/* tablet */
@media (max-width:1199px){
  .nav{gap:18px}.nav a{font-size:14px}
  .talk{width:auto}
}
@media (max-width:1023px){
  .nav,.bar>.talk,.bar>.lang{display:none}
  .burger{display:block}
}
/* phone */
@media (max-width:809px){
  h2{font-size:32px;line-height:40px;letter-spacing:-1px}
  .hero{min-height:0}
  .hero-in{padding:120px 0 64px}
  .hero h1{font-size:44px;line-height:46px;letter-spacing:-2px}
  .lead{font-size:18px}
  .hero-btns{flex-direction:column;align-items:stretch}
  .btn-tall,.hero-btns .btn-green-outline{width:100%;min-height:52px}
  .how,.apps,.ops{padding:80px 0}
  .steps{grid-template-columns:1fr;gap:28px;margin:44px 0}
  .step p{max-width:none}
  .app{grid-template-columns:1fr}
  .app-right .app-img{order:0}
  .app+.app{margin-top:96px}
  .feats{grid-template-columns:1fr;gap:22px}
  .btn-row .btn{width:100%}
  .ops-row{grid-template-columns:1fr;gap:36px}
  .ops-row::before{display:none}
  .faq-grid{grid-template-columns:1fr}
  .foot-in{flex-direction:column;align-items:center;text-align:center}
  .foot-l{display:flex;flex-direction:column;align-items:center}
  .foot-r{text-align:center}
  .fl{justify-content:center}
  .cookie{left:16px;right:16px;width:auto}
}

/* ---- pass 2: match live ---- */
.hero h1{max-width:none}
.how h2{max-width:none}
.app{gap:40px 24px}
.app h2{margin-bottom:26px}
.btn-row{margin-top:28px}
.apps{padding:110px 0 90px}
.ops{padding:80px 0 90px}
.op-ic{width:100px;height:100px}
.op-ic .ic{width:48px;height:48px}
.ops-row::before{top:50px}
.op h3{text-transform:uppercase}
.plus{width:20px;height:20px;border-radius:50%;background:var(--green)}
.plus::before,.plus::after{background:#fff}
.plus::before{left:5px;right:5px;top:9px;height:2px}
.plus::after{top:5px;bottom:5px;left:9px;width:2px}
.card h3{padding:0;margin:16px 20px 22px}
.fl a,.fl button{text-transform:none}
.foot-contact .up{display:inline;margin:0}
.foot{padding-bottom:0}
.foot-batt-link{margin:0 auto;padding:0}
.cookie{background:#151818;color:var(--soft);border:1px solid rgba(255,255,255,.08)}
.cookie a{color:var(--green)}
.cookie button{background:#E2E2E2;color:#111}
.burger span{background:var(--green)}
@media (max-width:809px){
  .wrap,.narrow,.faq-w{width:calc(100% - 56px)}
  .bar{width:calc(100% - 48px)}
  .hero h1{font-size:40px;line-height:40px;letter-spacing:-1.8px}
  .hero-in{padding:100px 0 56px}
  .btn-tall,.hero-btns .btn-green-outline{min-height:46px}
  .pills{justify-content:center}
  h2{font-size:28px;line-height:35px}
  .how h2{max-width:300px}
  .ins-head{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:24px}
  .op-ic{width:70px;height:70px;border:0;background:rgba(255,255,255,.05);margin-bottom:12px}
  .op-ic .ic{width:30px;height:30px}
  .ops-row{gap:24px;margin:40px 0 40px}
  .fl:last-of-type{flex-direction:column;align-items:center;gap:10px}
  .foot-contact .up{display:block;margin:0 0 4px}
}
.btn-outline{border-radius:3px}

/* venue ------------------------------------------------------------------
   Agent C. Venue landing pages (templates/venue.py). Everything below is
   scoped to .v so it cannot reach the home page or the other page types.
   Sizes are transcribed from live, measured at 1440 and 390. */
.v{display:flex;flex-direction:column;gap:10px;background:var(--bg0)}
/* venue pages run on --bg0, not the site default --bg1; the 10px gaps
   between bands and the strip under the footer show it. Scoped with
   :has() so the shared footer rules are left alone. */
body:has(main.v){background:var(--bg0)}
body:has(main.v) .foot-batt-wrap{background:var(--bg0)}
body:has(main.v-black),body:has(main.v-black) .foot-batt-wrap{background:#000}
.v-black{background:#000}
.v-wide{width:min(1344px,100% - 96px);margin:0 auto}
.v-col{width:min(820px,100% - 96px);margin:0 auto;display:flex;flex-direction:column;gap:16px}
.v .g{color:var(--green)}
.v-eyebrow{font-size:14px;line-height:20px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:#fff}
.v-eyebrow.g{color:var(--green)}
.v h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.v h4{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.2px;color:#fff}
.v-lead{font-size:20px;line-height:24px;letter-spacing:-.2px;color:var(--sand)}
.v .bg0{background:var(--bg0)}
.v .bg1{background:var(--bg1)}
.v .bg2{background:var(--bg2)}
.v .black,.v .bgb{background:#000}

/* buttons */
.v-btns{display:flex;flex-direction:column;gap:10px;width:340px;max-width:100%}
.v-btns-row{flex-direction:row;width:auto;gap:15px}
.v-btn{display:flex;align-items:center;gap:10px;min-height:46px;padding:12px 15px;
  font:600 16px/22px "Plus Jakarta Sans",sans-serif;letter-spacing:-.2px;color:#fff;border-radius:0}
.v-btn span{flex:1;text-align:center}
.v-btn:hover{filter:brightness(1.12)}
.v-btn-green{background:var(--green)}
.v-btn-dark{background:#000;box-shadow:inset 0 0 0 1px #fff}
.v-btn-ghost{background:transparent;color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.v-btns-row .v-btn{width:215px}
.v-btns-row .v-btn-ghost{width:185px}

/* hero */
.v-hero{position:relative;background:var(--bg0);padding:184px 0 90px;overflow:hidden}
.v-hero-in{width:min(1344px,100% - 96px);margin:0 auto;display:flex;align-items:center;position:relative;z-index:1}
.v-hero-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.v-hero-l>*{width:100%}
.v-hero-l .v-btns{width:340px}
.v-hero h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;color:var(--green)}
.v-hero .v-lead{max-width:640px;color:var(--sand)}
.v-card{flex:0 0 420px;background:var(--bg2);border-radius:20px;padding:36px;display:flex;flex-direction:column;gap:22px}
.v-card-i{display:flex;flex-direction:column;gap:4px}
.v-card-i p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}

/* hero with a full-bleed photograph (festival pages) */
.v-hero-img{background:#000;padding:196px 0 118px}
.v-hero-img .v-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.v-hero-img::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:0}
.v-hero-img .v-hero-in{width:min(1050px,100% - 96px);align-items:flex-end}
.v-hero-img .v-hero-l{gap:35px}
.v-hero-img .v-hero-eye{margin-bottom:-13px}
.v-hero-img h1{color:var(--green)}
.v-hero-img .v-lead{color:#fff;max-width:545px}
.v-stats{flex:0 0 304px;display:flex;flex-direction:column;gap:15px;text-align:right}
.v-stat{display:flex;flex-direction:column;gap:10px}
.v-stat-t{font-size:26px;line-height:26px;font-weight:700;letter-spacing:-1px;color:var(--green)}
.v-stat-x{font-size:14px;line-height:20px;letter-spacing:.3px;text-transform:uppercase;color:#fff}

/* text bands */
.v-band{padding:64px 0}
.v-band.has-img .v-col{gap:24px}
.v-col p{font-size:18px;line-height:24px;letter-spacing:-.2px;color:var(--sand)}
.v-img{width:100%;border-radius:20px}
.v-imgband{padding:0 0 64px}
.v-img-wide{width:min(1104px,100% - 96px);margin:0 auto;border-radius:24px}

/* faq */
.v-faq h2{margin-bottom:0}
.v-qas{width:min(760px,100% - 96px);margin:28px auto 0;display:flex;flex-direction:column;gap:16px}
.v-qa{background:var(--bg2);border-radius:14px;padding:24px 28px}
.v-qa h4{margin-bottom:8px}
.v-qa p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}

/* closing call to action */
.v-cta{padding:72px 0}
.v-cta .v-btns{margin:22px auto 0}

/* features block */
.v-fb{display:grid;grid-template-columns:1fr 1fr;gap:40px 50px;align-items:start;padding:80px 0}
.v-fb-head{display:flex;flex-direction:column;gap:20px}
.v-fb-solo{display:block}
.v-feats{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.v-feat{background:rgba(215,226,250,.07);padding:30px}
.v-feat h4{margin-bottom:10px}
.v-feat p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}
.v-fig{margin:0}
.v-fig-img{width:100%}
.v-figcap{text-align:center;margin-top:12px}
.v-figt{font-size:26px;line-height:30px;font-weight:700;letter-spacing:-.2px;color:#fff;text-align:center}

/* comparison table */
.v-cmp-head-w{padding:80px 0 30px;display:flex;flex-direction:column;gap:20px}
.v-cmp{width:min(1000px,100% - 96px);margin:0 auto}
.v-cmp-row{display:grid;grid-template-columns:249px 249px 249px 249px}
.v-cmp-row p{padding:15px;font-size:16px;line-height:23px;letter-spacing:-.2px;color:#fff}
.v-cmp-lab{color:var(--sand)!important}
.v-cmp-head p{font-size:14px;line-height:20px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:var(--sand)}
.v-cmp-head .own{color:var(--green)}
.v-cmp .own{background:rgba(100,105,0,.1)}
.v-cmp-row:nth-child(odd){background:rgba(215,226,250,.03)}
.v-feats-2{padding:40px 0 80px}

/* pricing */
.v-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px}
.v-price-k{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:var(--green)}
.v-price h4{margin:10px 0}
.v-price-x{font-size:18px;line-height:24px;letter-spacing:-.2px;color:var(--sand)}

/* timeline */
.v-tls{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:50px}
.v-tl{background:rgba(215,226,250,.07);padding:40px 30px 30px;position:relative;display:flex;flex-direction:column;gap:10px}
.v-tl-n{font-size:17px;line-height:20px;font-weight:800;letter-spacing:-.3px;color:#fff}
.v-tl-x{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}
.v-tl-bar{display:block;height:10px;background:rgba(226,226,226,.3);margin:auto -30px -30px}

/* cards and chips */
.v-cards{padding:60px 0;display:flex;flex-direction:column;gap:20px}
.v-chips{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:20px}
.v-chips li{background:var(--green);padding:6px 20px;font-size:12px;line-height:20px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:#fff}
.v-pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:20px}
.v-pcard-img{width:100%;height:280px;object-fit:cover;border-radius:16px}
.v-pcard-t{margin-top:12px;font-size:18px;line-height:24px;font-weight:600;color:#fff}
.v-note{font-size:16px;line-height:23px;color:var(--sand)}

/* contact block */
.v-cn{width:min(650px,100% - 96px);margin:20px auto;background:rgba(215,226,250,.07);padding:50px;
  display:flex;flex-direction:column;gap:10px;text-align:center;align-items:center}
.v-cn h2{margin-bottom:10px}
.v-cn-lead{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand);margin-bottom:20px}
.v-cn .v-btns{width:350px;gap:15px}
.v-cn-small{font-size:14px;line-height:20px;letter-spacing:-.2px;color:#fff;margin-top:15px}

@media (max-width:1023px){
  .v-hero-in{flex-direction:column;align-items:stretch;gap:0}
  .v-card,.v-stats{flex:none}
  .v-stats{text-align:left;margin-top:35px}
  .v-fb,.v-feats,.v-prices,.v-tls,.v-pcards{grid-template-columns:1fr}
  .v-cmp-row{grid-template-columns:1fr}
}
@media (max-width:809px){
  .v-hero h1{font-size:34px;line-height:40px;letter-spacing:-1px}
  .v-hero .v-lead,.v-lead{font-size:18px;line-height:22px;max-width:none}
  .v-hero-l .v-btns,.v-btns{width:100%}
  .v-btns-row{flex-direction:column;width:100%}
  .v-btns-row .v-btn,.v-btns-row .v-btn-ghost{width:100%}
  .v h2{font-size:26px;line-height:35px;letter-spacing:-.7px}
  .v h4{font-size:20px;line-height:28px}
  .v-col p{font-size:16px;line-height:22px}
  .v-card-i p,.v-qa p{font-size:16px;line-height:22px}
  .v-cn{padding:30px}
  .v-cn .v-btns{width:100%}
  .v-fb{padding:60px 0}
}

/* pages D ------------------------------------------------------------------
   rent, charges, insights index + article, legal x4, terms, 404.
   Nothing above this line is touched. Every rule is scoped to a .pg-* page
   class or a .d-* element class, so it cannot reach the home or venue pages.
   Numbers are measured off the live pages at 1440 and 390.
   -------------------------------------------------------------------------- */

/* the live header is in the flow; ours is fixed, so each page type carries the
   offset live leaves above its first section */
.pg{display:block}
/* live leaves a 10px sliver of page background between every band on the help
   pages, including above the first one, which is why the hero starts at 74 */
.pg-help{padding-top:64px;background:var(--bg0)}
.pg-help>section{margin-top:10px}
.pg-index,.pg-post,.pg-terms{padding-top:64px}
/* live lets the legal and 404 sections start at the top of the page, with the
   header overlapping their 150px of padding, so they take no offset */
.pg-legal,.pg-404{padding-top:0}
.pg-index,.pg-post,.pg-terms{background:var(--bg0)}

.d-eyebrow{font-size:14px;line-height:20px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:#fff}
.d-eyebrow-y{color:var(--yellow)}

/* ---- help page: hero with the "how it works" card ---- */
.d-hero{background:var(--bg0);padding:110px 48px 90px}
.d-hero-in{max-width:1344px;margin:0 auto;display:flex;align-items:center}
.d-hero-l{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.d-hero-l h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;color:var(--green)}
.d-hero-lead{font-size:20px;line-height:24px;letter-spacing:-.2px;color:var(--sand);max-width:640px}
.d-hero-btns{display:flex;flex-wrap:wrap;gap:10px}
.d-hero-btns .btn{width:340px;max-width:100%}
.d-card{flex:0 0 420px;width:420px;background:var(--bg2);border-radius:20px;padding:36px;display:flex;flex-direction:column;gap:22px}
.d-step h4{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.2px;color:#fff;margin-bottom:4px}
.d-step p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}

/* live leaves inline links in the body copy undecorated everywhere except the
   legal pages, which underline them */
/* ---- help page: bands ---- */
.d-band{padding:64px 48px}
.d-bg0{background:var(--bg0)}
.d-bg2{background:var(--bg2)}
.d-band-img{padding:0 48px 64px}
.d-img-wide{width:100%;max-width:1104px;margin:0 auto;border-radius:24px}
.d-col{width:min(820px,100%);margin:0 auto;display:flex;flex-direction:column;gap:16px}
.d-col-img{gap:24px}
.d-col h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.d-col p{font-size:18px;line-height:24px;letter-spacing:-.2px;color:var(--sand)}
.d-img-col{width:100%;border-radius:20px}

/* ---- help page: FAQ cards (open, not accordions, as on live) ---- */
.d-faq>h2{max-width:1344px;margin:0 auto;font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.d-qa-list{width:min(760px,100%);margin:28px auto 0;display:flex;flex-direction:column;gap:16px}
.d-qa{background:var(--bg0);border-radius:14px;padding:24px 28px}
.d-qa h4{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.2px;color:#fff;margin-bottom:8px}
.d-qa p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}

/* ---- help page: closing CTA ---- */
.d-cta{padding:72px 48px}
.d-cta>h2{max-width:1344px;margin:0 auto;font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.d-cta-btns{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:22px}
.d-cta-btns .btn{width:340px;max-width:100%}

/* ---- insights index ---- */
.d-idx-hero{padding:120px 80px 60px}
.d-idx-in{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.d-idx-in h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;color:#fff}
.d-idx-lead{font-size:18px;line-height:24px;letter-spacing:-.2px;color:var(--sand);max-width:640px}
.d-idx-cards{padding:40px 80px 120px}
.d-idx-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;align-items:start}
.d-card2{display:block;background:var(--bg2);border-radius:16px;overflow:hidden}
.d-card2 img{width:100%;height:200px;object-fit:cover}
.d-card2-b{padding:24px;display:flex;flex-direction:column;gap:10px}
.d-card2-b h3{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.2px;color:var(--yellow);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.d-card2-b p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--soft)}

/* ---- article / blog post ---- */
.d-post{padding:120px 24px}
.d-post-head{width:min(760px,100%);margin:0 auto;display:flex;flex-direction:column;gap:12px;text-align:center}
.d-post-date{font-size:14px;line-height:20px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;color:var(--yellow)}
.d-post-head h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;color:#fff}
.d-post-img{width:min(900px,100%);height:460px;object-fit:cover;border-radius:24px;margin:40px auto 0}
.d-post-body{width:min(760px,100%);margin:40px auto 0}
.d-post-body>*{margin-top:20px}
.d-post-body>*:first-child{margin-top:0}
.d-post-body h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff;margin-top:0}
.d-post-body h2 strong{font-weight:800}
.d-post-body h3{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.2px;color:var(--yellow)}
.d-post-body p,.d-post-body li{font-size:18px;line-height:24px;letter-spacing:-.2px;color:var(--sand)}
.d-post-body ul{padding-left:23px;margin-bottom:0}
/* live leaves a blank line above every heading after the first in the article
   body; the Spanish charges post does not have one, hence the class */
.d-airy h2:not(:first-child){margin-top:50px}
.pg-post-es .d-airy h2:not(:first-child){margin-top:44px}
.d-post-rule{width:min(760px,100%);margin:40px auto 0;padding-top:32px;border-bottom:1px solid #3C4141}
.pg-post-es .d-post-date{color:#999}
.pg-post-es .d-post-head h1{max-width:600px;margin:0 auto}

/* ---- legal pages ---- */
.d-legal{width:min(750px,100% - 56px);margin:0 auto;padding:150px 0 100px}
.d-legal-head{display:flex;flex-direction:column;gap:15px;margin-bottom:60px}
.d-legal-head h1{font-size:65px;line-height:65px;font-weight:700;letter-spacing:-3px;color:var(--green);text-align:center}
.d-legal-sub{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}
.d-legal-body>*{margin-top:20px}
.d-legal-body>*:first-child{margin-top:0}
.d-legal-body h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.d-legal-body p,.d-legal-body li{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--soft)}
.d-legal-body ul{padding-left:23px;margin-bottom:0}
.d-legal-body a{color:var(--sand);text-decoration:underline}

/* ---- rental terms, one bilingual page ---- */
.d-terms{width:min(820px,100%);margin:0 auto;padding:150px 24px 100px}
.d-terms-part>*{margin-top:8px}
.d-terms-part>*:first-child{margin-top:0}
.d-terms h1,.d-terms h2{font-size:40px;line-height:50px;font-weight:700;letter-spacing:-1.5px;color:#fff}
.d-terms h4{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.2px;color:#fff}
.d-terms p{font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}
.d-terms-lead{font-size:18px !important;line-height:24px !important}
.d-terms-upd{font-size:14px !important;line-height:20px !important;font-weight:500;letter-spacing:.3px !important;text-transform:uppercase;color:#fff !important}
.d-terms-rule{height:1px;background:#3C4141;margin:8px 0}

/* ---- 404 ---- */
.d-404{width:min(1000px,100% - 56px);margin:0 auto;padding:150px 0 120px}
.d-404-box{background:#000;border-radius:20px;padding:80px;min-height:620px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.d-404-n{font-size:300px;line-height:250px;font-weight:800;color:var(--green)}
.d-404-h{font-size:30px;line-height:30px;font-weight:700;color:#fff;margin-top:25px}
.d-404-lead{font-size:20px;line-height:24px;letter-spacing:-.2px;color:var(--sand);max-width:360px;margin-top:10px}
.d-404-btn{width:222px;margin-top:25px}
.d-404-es{font-size:16px;line-height:22px;color:var(--soft);margin-top:14px}
.d-404-es a{color:var(--green);text-decoration:underline}

/* ---- phone ---- */
@media (max-width:809px){
  .d-hero-in{flex-direction:column;align-items:stretch}
  .d-hero-l h1{font-size:34px;line-height:40px;letter-spacing:-1px}
  .d-hero-lead{font-size:18px;line-height:22px}
  .d-hero-btns .btn{width:100%}
  .d-card{flex:0 0 auto;width:100%}
  .d-step h4{font-size:22px;line-height:28px}
  .d-step p{line-height:22px}
  .d-col h2,.d-faq>h2,.d-cta>h2{font-size:26px;line-height:35px;letter-spacing:-.7px}
  .d-col p{font-size:16px;line-height:22px}
  .d-qa h4{font-size:22px;line-height:28px}
  .d-qa p{line-height:22px}
  .d-idx-hero{padding:90px 20px 40px}
  .d-idx-in h1{font-size:34px;line-height:40px;letter-spacing:-1px}
  .d-idx-lead{font-size:16px;line-height:22px}
  .d-idx-cards{padding:24px 20px 80px}
  .d-idx-grid{grid-template-columns:1fr;justify-items:start}
  .d-card2{max-width:340px}
  .d-card2-b h3{font-size:22px;line-height:28px}
  .d-card2-b p{line-height:22px}
  .pg-post-en .d-post{padding:90px 20px}
  .pg-post-en .d-post-img{height:240px}
  .d-post-head h1,.pg-post-es .d-post-head h1{font-size:34px;line-height:40px;letter-spacing:-1px;max-width:none}
  .d-post-body h2{font-size:26px;line-height:35px;letter-spacing:-.7px}
  .d-post-body h3{font-size:22px;line-height:28px}
  .d-post-body p,.d-post-body li{font-size:16px;line-height:22px}
  .d-airy h2:not(:first-child){margin-top:35px}
  .pg-post-es .d-airy h2:not(:first-child){margin-top:42px}
  .d-legal{padding:130px 0 80px}
  .d-legal-head h1{font-size:34px;line-height:40px;letter-spacing:-1px}
  .d-legal-sub,.d-legal-body p,.d-legal-body li{line-height:22px}
  .d-legal-body h2{font-size:26px;line-height:35px;letter-spacing:-.7px}
  /* the Spanish half-title drops to the phone h2 size; the English h1 does not */
  .d-terms h2{font-size:26px;line-height:35px;letter-spacing:-.7px}
  .d-terms h4{font-size:20px;line-height:28px}
  .d-terms p{line-height:22px}
  .d-terms-lead{font-size:16px !important;line-height:22px !important}
  .d-404{padding:130px 0 60px}
  .d-404-box{padding:40px;min-height:375px}
  .d-404-n{font-size:100px;line-height:80px}
  .d-404-h{font-size:24px;line-height:30px}
  /* live gives this line a fixed 260px, which overflows the box padding by a
     few pixels and keeps it on two lines */
  .d-404-lead{font-size:18px;line-height:22px;width:260px;max-width:none}
}

/* venue: the two bespoke festival pages ---------------------------------- */
.v-black{gap:0}
.v-black .v-wide{width:min(1000px,100% - 96px)}
.v-black .v-hero-in{width:min(1000px,100% - 96px)}
.v-w1050 .v-wide,.v-w1050 .v-hero-in{width:min(1050px,100% - 96px)}
.v-black .v-band{padding:0}
.v-hero-img{padding:221px 0 142px}
.v-w1050 .v-hero-img{padding:196px 0 118px}
.v-hero-img h1{color:#fff}
.v-hero-img h1 .g{color:var(--green)}

/* features block, festival pages */
.v-black .v-fb{grid-template-columns:455px 1fr;gap:30px;padding:80px 0;align-items:start}
.v-black .v-fb-head{gap:10px}
.v-black .v-feats{grid-template-columns:1fr 1fr;gap:15px}
.v-fb-center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.v-fb-center .v-fb-head{align-items:center;text-align:center;gap:10px}
.v-fb-center .v-fig{margin-top:30px;width:100%}
.v-fb-split{grid-template-columns:480px 480px;gap:40px}
.v-feats-col{display:flex;flex-direction:column;gap:25px}
.v-fb-r{display:flex;flex-direction:column;gap:30px}
.v-fb-r .v-feats{grid-template-columns:1fr}

/* comparison */
.v-cmp-head-w{padding:80px 0 30px}
.v-cmp{width:min(1000px,100% - 96px);margin:0 auto 80px;background:rgba(215,226,250,.07)}
.v-cmp-row{display:grid;grid-template-columns:repeat(4,1fr)}
.v-cmp-row:nth-child(odd){background:transparent}
.v-cmp-head p{padding:15px}

/* pricing */
.v-black .v-wide.v-price-w{padding:80px 0}
.v-prices{gap:40px;margin-top:50px}

/* timeline */
.v-tl-bar{margin:20px -30px -30px}

/* cards */
.v-cards{padding:80px 0}
.v-cards-c{align-items:center;text-align:center;padding:60px 0}
.v-cards-c .v-chips{justify-content:center;gap:20px}
.v-cards-c h3{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.2px;color:#fff}
.v-cards-c .v-lead{color:#fff;font-size:16px;line-height:23px}
.v-pcard-t{font-size:16px;line-height:23px;font-weight:400;color:var(--sand)}

/* accordion faq (festival pages) */
.v-black .v-faq{padding:80px 0}
.v-black .v-faq .v-eyebrow,.v-black .v-faq h2{text-align:center}
.v-acs{width:min(760px,100% - 96px);margin:40px auto 0;display:flex;flex-direction:column;gap:5px}
.v-ac{background:rgba(215,226,250,.07)}
.v-ac summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;
  align-items:center;padding:22px 20px;font:600 18px/24px "Plus Jakarta Sans",sans-serif;letter-spacing:-.2px;color:#fff}
.v-ac summary::-webkit-details-marker{display:none}
.v-ac .plus{background:transparent;border-radius:0;width:12px;height:12px}
.v-ac .plus::before{left:0;right:0;top:5px;height:1px;background:#fff}
.v-ac .plus::after{top:0;bottom:0;left:5px;width:1px;background:#fff}
.v-ac[open] .plus::after{transform:scaleY(0)}
.v-ac p{padding:0 20px 22px;font-size:16px;line-height:23px;letter-spacing:-.2px;color:var(--sand)}

/* contact */
.v-cn{margin:20px auto 80px}
.v-cn-row{padding:60px 0;display:flex;align-items:center;justify-content:space-between;gap:40px}
.v-cn-row h3{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.2px;color:#fff;margin-top:10px}
.v-cn-row .v-btns{width:310px}
.v-cn-row .v-btn{min-height:50px}

@media (max-width:1023px){
  .v-black .v-fb,.v-fb-split{grid-template-columns:1fr}
  .v-black .v-feats{grid-template-columns:1fr}
  .v-cn-row{flex-direction:column;align-items:flex-start}
  .v-cmp-row{grid-template-columns:1fr}
  .v-cmp-head{display:none}
}
@media (max-width:809px){
  .v-hero-img,.v-w1050 .v-hero-img{padding:150px 0 70px}
  .v-black .v-fb,.v-cards,.v-cards-c,.v-black .v-faq,.v-cmp-head-w{padding:60px 0 30px}
  .v-cn-row .v-btns{width:100%}
}
/* end venue ------------------------------------------------------------- */

/* venue: festival icon artwork and the layouts that carry it ------------- */
.v-ic{height:30px;width:auto;display:block;margin-bottom:25px}
.v-ic-s{height:21px;width:auto;flex:none;margin-top:2px}
.v-dot{display:inline-block;height:8px;width:8px;margin-right:10px;vertical-align:middle}
.v-fb-img{grid-template-columns:395px 1fr;gap:25px;align-items:start}
.v-fb-l{display:flex;flex-direction:column;gap:20px}
.v-fb-l .v-feats{grid-template-columns:1fr;gap:28px}
.v-fb-img .v-fig{margin:0}
.v-checks{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:22px 45px}
.v-checks li{display:flex;gap:16px;font-size:18px;line-height:24px;letter-spacing:-.2px;color:#fff}
.v-cards .v-note{margin-top:30px;font-size:16px;line-height:23px;color:var(--sand)}
.v-w1050 .v-cmp-head-w{padding:80px 0 50px}
.v-w1050 .v-price-w{padding:80px 0}
@media (max-width:1023px){
  .v-fb-img{grid-template-columns:1fr}
  .v-checks{grid-template-columns:1fr}
}

/* venue: "the bottom line" is one box per column, icon beside text ------- */
.v-fb-rows{grid-template-columns:525px 525px;gap:48px;width:min(1098px,100% - 96px)}
.v-fb-box,.v-feats-rows{background:rgba(215,226,250,.07);padding:50px}
.v-feats-rows{background:var(--bg1);display:flex;flex-direction:column;gap:25px}
.v-feat-row{background:none;padding:0;display:grid;grid-template-columns:43px 1fr;gap:15px;align-items:start}
.v-feat-row .v-ic{grid-row:span 2;height:43px;width:43px;padding:12px;margin:0;background:rgba(215,226,250,.07);box-sizing:border-box}
.v-feat-row h4{margin-bottom:6px}
.v-feat-row p{font-size:18px;line-height:24px}
.v-price-w{display:flex;flex-direction:column}
.v-price-w .v-eyebrow,.v-price-w h2{margin-bottom:15px}
.v-price-w .v-lead{max-width:738px}
@media (max-width:1023px){.v-fb-rows{grid-template-columns:1fr}}
@media (max-width:809px){.v-fb-box,.v-feats-rows{padding:30px}}

/* venue: festival pages at phone widths (live uses a 28px gutter here) --- */
.v-feat-row h4{font-size:20px;line-height:24px;margin-bottom:10px}
.v-fb-rows{align-items:stretch}
@media (max-width:809px){
  .v-black .v-wide,.v-black .v-hero-in,
  .v-w1050 .v-wide,.v-w1050 .v-hero-in{width:calc(100% - 56px)}
  .v-black .v-fb{padding:60px 0;gap:40px}
  .v-black .v-fb-head,.v-fb-l,.v-fb-r{gap:15px}
  .v-feats{gap:20px}
  .v-feat{padding:25px}
  .v-ic{height:30px;margin-bottom:15px}
  .v-feat h4{margin-bottom:10px}
  .v-feat p{font-size:16px;line-height:22px}
  .v-feat-row p{font-size:16px;line-height:22px}
  .v-feat-row h4{margin-bottom:8px}
  .v-fb-rows{gap:0;width:calc(100% - 56px)}
  .v-fb-box,.v-feats-rows{padding:40px 30px}
  .v-feats-rows{gap:25px}
  .v-feat-row{grid-template-columns:40px 1fr;gap:15px}
  .v-feat-row .v-ic{height:40px;width:40px;padding:11px}
  .v-tl{padding:30px 25px 25px}
  .v-tl-bar{margin:20px -25px -25px}
  .v-tls,.v-prices{gap:30px}
  .v-checks{gap:20px}
  .v-cards,.v-cards-c,.v-black .v-faq,.v-cmp-head-w,
  .v-w1050 .v-cmp-head-w,.v-w1050 .v-price-w{padding:60px 0}
  .v-black .v-lead{font-size:18px;line-height:22px}
  .v-price-x,.v-note{font-size:16px;line-height:22px}
}

/* venue: timeline chip and bar, and the row cards that must not inherit
   the vertical card padding */
.v-feat.v-feat-row{padding:0;background:none}
.v-fb-box .v-lead{font-size:18px;line-height:24px}
.v-tl{padding:40px 30px 0}
.v-tl-n{position:absolute;left:-10px;top:-10px;width:40px;height:40px;background:var(--green);
  display:grid;place-items:center;font-size:17px;line-height:20px;font-weight:800;letter-spacing:-.3px;color:#fff}
.v-tl-bar{margin:20px -30px 0;height:10px;background:rgba(226,226,226,.3)}
.v-tls{align-items:stretch}
.v-tl .v-tl-bar{margin-top:auto}
.v-tl-x{margin-top:10px}
.v-w1050 .v-tls .v-tl{gap:10px}
@media (max-width:809px){
  .v-black .v-fb.v-fb-rows{gap:0}
  .v-fb-box .v-lead{font-size:16px;line-height:22px}
  .v-tls{grid-template-columns:1fr;align-items:start}
  .v-tl{padding:40px 30px 0}
  .v-tl .v-tl-bar{margin-top:20px}
  .v-tl-bar{margin:20px -30px 0}
  .v-price-k{font-size:35px;line-height:35px;letter-spacing:-.7px}
  .v-prices{gap:40px}
  .v-price-w .v-lead{max-width:none}
  .v-black .v-faq .v-eyebrow,.v-black .v-faq h2{text-align:center}
}

/* venue: timeline wrapper, chip eyebrow, checklist and accordion sizes --- */
.v-sec-w{display:flex;flex-direction:column;padding:80px 0}
.v-sec-w>.v-eyebrow{margin-bottom:15px}
.v-sec-w>h2{margin-bottom:0}
.v-tls{margin-top:50px}
.v-tl-x{margin-top:0}
.v-cards-c .v-eyebrow{background:var(--bg1);padding:6px 20px;margin-bottom:15px}
.v-cards-c h3{margin-bottom:15px}
.v-cards-c .v-chips{margin-top:30px}
@media (max-width:809px){
  .v-w1050 .v-sec-w{padding:60px 0}
  .v-tls{margin-top:45px}
  .v-tl-x{font-size:16px;line-height:22px}
  .v-checks li{font-size:16px;line-height:22px;gap:12px}
  .v-checks{margin-top:47px;gap:20px}
  .v-ic-s{height:19px}
  .v-black .v-faq h2{margin-top:10px}
  .v-acs{margin-top:40px}
  .v-ac summary{padding:22px 20px;font-size:16px;line-height:22px}
  .v-cards-c .v-chips{gap:15px}
  .v-cards-c .v-lead{font-size:16px;line-height:22px}
}

/* venue: line lengths live sets on the festival headings ----------------- */
.v-hero-img h1{max-width:760px}
.v-cmp-head-w h2{max-width:660px}
.v-cmp-head-w .v-lead{max-width:700px}
.v-fb-head h2{max-width:520px}
.v-fb-center .v-fb-head h2,.v-cards h2{max-width:none}
@media (max-width:1023px){.v-hero-img h1,.v-cmp-head-w h2,.v-fb-head h2{max-width:none}}
/* end venue block (agent C) ---------------------------------------------- */

/* venue: card sections stack on explicit margins, not a container gap ---- */
.v-cards{gap:0}
.v-cards>.v-eyebrow{margin-bottom:15px}
.v-cards h2,.v-cards h3{margin-bottom:15px}
.v-cards .v-chips{margin-top:30px}
.v-cards .v-checks{margin-top:47px}
.v-sec-w>h2{text-align:center}
.v-sec-w>.v-eyebrow{text-align:center}
.v-w1050 .v-price-w>h2,.v-w1050 .v-price-w>.v-eyebrow{text-align:left}
@media (max-width:809px){
  .v-cards-c h3{font-size:20px;line-height:28px;margin-bottom:15px}
}

/* venue: festival hero and accordion details that live differs on -------- */
.v-hero-img::after{background:rgba(18,20,20,.8)}
.v-w1050 .v-hero-img::after{background:rgba(0,0,0,.8)}
.v-black:not(.v-w1050) .v-hero-eye{width:auto;align-self:flex-start;border:1px solid rgba(255,255,255,.25);
  border-radius:999px;padding:7px 16px}
.v-btns-row .v-btn,.v-btns-row .v-btn-ghost{width:auto;min-width:160px;white-space:nowrap}
.v-pcard-t{text-align:center}
.v-pcard{border:1px solid rgba(255,255,255,.12);padding:0 0 14px}
.v-pcard-img{border-radius:0}
.v-pcards{gap:9px}
.v-w1050 .v-ac .plus{background:transparent;border-radius:0;width:12px;height:12px}
.v-w1050 .v-ac .plus::before{left:0;right:0;top:5px;height:1px;background:#fff}
.v-w1050 .v-ac .plus::after{top:0;bottom:0;left:5px;width:1px;background:#fff}
.v-black:not(.v-w1050) .v-ac .plus{width:20px;height:20px;border-radius:50%;background:var(--green)}
.v-black:not(.v-w1050) .v-ac .plus::before{left:5px;right:5px;top:9px;height:2px;background:#fff}
.v-black:not(.v-w1050) .v-ac .plus::after{top:5px;bottom:5px;left:9px;width:2px;background:#fff}
@media (max-width:809px){.v-btns-row .v-btn,.v-btns-row .v-btn-ghost{width:100%;white-space:normal}}

/* venue: festival-goers contact row at phone widths */
@media (max-width:809px){
  .v-cn-row{padding:50px 0;gap:20px}
  .v-cn-row h3{font-size:24px;line-height:32px;margin-top:8px}
  .v-pcard{padding:0 0 12px}
}

/* phase E: the shared footer and the back-to-top strip -------------------
   Measured on live with tools/footin.mjs (Playwright, network idle + 2s,
   scrolled to the bottom), not read off a screenshot. Live's footer is the
   same component on all 30 pages and its height depends only on language and
   width: 193 / 251 at 1440 (en / es) and 559 / 597 at 390, always 35px of
   padding top and bottom. The numbers below are that geometry, group by
   group: logo, 20px, contact block, 20px, social row. */
.foot{padding:35px 0}
.foot-in{gap:40px}
.foot-l{flex:none;width:444px}
html[lang="es"] .foot-l{width:187px}
.foot-l>a img{width:180px;height:47px}   /* the logo only: .social img is 22 */
.foot-contact{font-size:14px;line-height:14px;margin-top:20px}
html[lang="es"] .foot-contact{line-height:18px}
html[lang="es"] .foot-contact .up{display:block}
.social{margin-top:20px;gap:12px}
.foot-r{flex:1 1 auto;min-width:0}
.fl{gap:10px 20px;margin-bottom:10px}
.fl a,.fl button{font:500 12px/18px "Plus Jakarta Sans",sans-serif}
/* 20px between the two nav blocks; adjacent margins collapse, so this
   is the larger of the two, not an addition to the 10px above */
.fl:last-of-type{margin-top:20px;margin-bottom:0}
/* live right-aligns the legal row at x=1255 and lets it run back under the
   contact column, 648px wide against the 586px the two-column flex leaves it.
   The negative start margin reproduces that overlap instead of wrapping. */
.foot-r .fl:last-of-type{margin-left:-90px}
.copy{margin-top:20px;line-height:14px}
@media (max-width:809px){
  .foot-in{width:calc(100% - 56px);gap:30px}
  .foot-l{width:auto}
  html[lang="es"] .foot-l{width:auto}
  .foot-l>a img{width:155px;height:41px}
  .foot-contact .up{display:block;margin:0}
  .foot-r{margin-top:0}
  .foot-r .fl:last-of-type{margin-left:0;gap:10px}
  html[lang="es"] .foot-r .fl:last-of-type{gap:15px}
  .copy{line-height:14px}
}
/* the strip: 163x60 battery, page background, present only on the four pages
   that carry it on live (templates/_partials.py::BACK_TO_TOP) */
.foot-batt-wrap{background:var(--bg0)}
.foot-batt-wrap.batt-gap{padding:10px 0 30px}

/* phase E: the home page's own band rhythm, measured against live ---------
   Section classes below are home-only (templates/home.py), so nothing here
   reaches the venue, help, insights or legal pages. Live's numbers come from
   Playwright region dumps at 1440 and 390 on both languages. */
.how{padding:80px 0}                 /* live 80/80, not 110/100 */
.steps{margin:45px 0 61px}           /* live: h2 ends 830, steps start 875,
                                        image starts 1051 at 1440 */
@media (max-width:809px){
  .how{padding:60px 0}               /* live 60/60 at 390 */
  .steps{margin:44px 0;gap:26px}
  .step .ic{width:60px;height:60px}  /* live paints a 53px glyph in a 60 box,
                                        which is what puts the step text at
                                        x=108 and gives it 255px to wrap in */
  .step h3{font-size:18px;line-height:22px}
  .step p{line-height:22px}
  .ops{padding:60px 0}
  .insights{padding:48px 0 81px}
  .insights .card h3{font-size:22px;line-height:28px}
  /* live sets every body line at 390 on a 22px rhythm, not 23 or 23.4; in
     Spanish, where the same copy runs to more lines, that is where the
     page was gaining most of its height */
  .feat p,.op p:last-child,.step p{line-height:22px}
  .feat h4{font-size:18px;line-height:22px}
  .faq{padding:59px 0 79px}          /* live 59/79 at 390, not 40/120 */
}

/* ---- button groups (Jay, 09-23): every button in a group is the same size, labels never overflow.
   Desktop: one row, equal columns sized to the longest label, labels on one line.
   Phone: stacked full width, equal rows sized to the tallest button, labels may wrap. ---- */
.hero-btns,.btn-row,.v-btns.v-btns-row,.v-hero-l .v-btns.v-btns-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:15px;width:max-content;max-width:100%;align-items:stretch}
.hero-btns>.btn,.btn-row>.btn,.v-btns-row>.v-btn{width:auto;min-width:0;min-height:46px;padding-left:20px;padding-right:20px;white-space:nowrap}
.v-btns:not(.v-btns-row){display:grid;grid-auto-rows:1fr}
@media (max-width:809px){
  .hero-btns,.btn-row,.v-btns.v-btns-row,.v-hero-l .v-btns.v-btns-row{grid-auto-flow:row;grid-auto-columns:auto;grid-auto-rows:1fr;width:100%}
  .hero-btns>.btn,.btn-row>.btn,.v-btns-row>.v-btn{white-space:normal;width:100%}
}

/* ---- lead form on venue pages (Jay 09-23) ---- */
.v-form{width:min(550px,100%);margin:28px auto 16px;text-align:left}
.v-form .lead-form{margin-top:0}
.v-cta .v-btns,.v-cn .v-btns{margin-left:auto;margin-right:auto}

/* ---- phone fixes (09-23 mobile audit) ---- */
main a{overflow-wrap:anywhere}                    /* long URLs in legal pages no longer push the page sideways */
.ins-head a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}  /* bigger tap target for View all */

/* ---- header WhatsApp button (Jay 09-23): icon only, label kept for screen readers and hover ---- */
.bar .talk-ic{width:46px;min-width:46px;height:46px;padding:0;gap:0;flex:none}
.bar .talk-ic::before{width:24px!important;height:24px!important;flex-basis:24px!important}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mnav .btn{gap:10px}

/* ---- footer WhatsApp icon + number (Jay 09-23) ----
   The WhatsApp glyph comes from the site-wide rule in custom_code.html (any wa.me link to our number);
   here it is only sized to match the 22px LinkedIn and Instagram icons. */
.social{align-items:center}
.social .foot-wa{display:inline-flex;width:22px;height:22px;gap:0;padding:0}
.social .foot-wa::before{width:22px!important;height:22px!important;flex-basis:22px!important}
.foot-contact a[href*="api.whatsapp.com"]{white-space:nowrap}

/* SEO round 2 (09-23): in-text links on the help pages (rent, charges) read as links */
.d-col p a,.d-qa p a{color:var(--green);text-decoration:underline;text-underline-offset:2px}

/* GEO articles (09-23): "In short" summary box and in-text links in article bodies */
.d-post-body .in-short{background:var(--bg2);border:1px solid #2A2E2E;border-left:4px solid var(--green);border-radius:16px;padding:22px 26px}
.d-post-body .in-short>*{margin-top:10px}
.d-post-body .in-short>*:first-child{margin-top:0}
.d-post-body .in-short p strong{color:#fff;font-size:14px;letter-spacing:.3px;text-transform:uppercase}
.d-post-body .in-short li{margin-top:6px}
.d-post-body ol{padding-left:23px;margin-bottom:0}
.d-post-body li+li{margin-top:8px}
.d-post-body p a,.d-post-body li a{color:var(--green);text-decoration:underline;text-underline-offset:2px}
@media (max-width:809px){.d-post-body .in-short{padding:18px 18px}}

/* ---- chat assistant (site/chat.js). Appended to styles.css by build.py ---- */
/* The launcher takes the WhatsApp float's corner; the float is still injected
   (its tracking stays), just not shown while the chat is present. WhatsApp
   moves into the panel header. */
body.mbc-on .mb-wa-float{display:none!important}
.mbc-launch{position:fixed;right:20px;bottom:calc(20px + var(--mbc-lift,0px));z-index:55;width:58px;height:58px;border-radius:50%;border:0;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.45);transition:transform .15s ease,bottom .2s ease,opacity .15s ease}
.mbc-launch:hover{transform:scale(1.07)}
.mbc-launch:focus-visible,.mbc-panel :focus-visible{outline:2px solid #fff;outline-offset:2px}
.mbc-launch svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mbc-launch.mbc-away{opacity:0;pointer-events:none}
.mbc-launch[aria-expanded="true"]{display:none}
.mbc-panel{position:fixed;right:20px;bottom:calc(20px + var(--mbc-lift,0px));z-index:58;width:380px;height:min(600px,calc(100vh - 110px - var(--mbc-lift,0px)));display:flex;flex-direction:column;background:var(--bg2);color:var(--ink);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.55);overflow:hidden;font:400 15px/1.45 "Plus Jakarta Sans",system-ui,sans-serif;transition:width .2s ease,height .2s ease,bottom .2s ease}
.mbc-panel[hidden]{display:none}
.mbc-panel.mbc-big{width:min(680px,calc(100vw - 40px));height:calc(100vh - 110px - var(--mbc-lift,0px))}
.mbc-head{display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;background:#101212;border-bottom:1px solid rgba(255,255,255,.08)}
.mbc-av{flex:none;width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mbc-av img{width:34px;height:34px}
.mbc-ttl{flex:1;min-width:0;display:flex;flex-direction:column}
.mbc-ttl strong{font-size:15px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbc-ttl span{font-size:12px;color:var(--soft);opacity:.8;line-height:1.3}
.mbc-hbtn{flex:none;width:36px;height:36px;border-radius:10px;border:0;background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mbc-hbtn:hover{background:rgba(255,255,255,.08)}
.mbc-hbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mbc-panel a.mbc-wa{background:#25D366}
.mbc-panel a.mbc-wa:hover{filter:brightness(1.08);background:#25D366}
.mbc-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.mbc-msg{max-width:85%;padding:10px 13px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.mbc-bot{align-self:flex-start;background:#232727;border-bottom-left-radius:4px}
.mbc-me{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px}
.mbc-msg a{color:#7fd35a;text-decoration:underline}
.mbc-me a{color:#fff}
.mbc-dots{display:inline-flex;gap:4px;padding:4px 0}
.mbc-dots i{width:7px;height:7px;border-radius:50%;background:var(--soft);opacity:.4;animation:mbc-b 1s infinite}
.mbc-dots i:nth-child(2){animation-delay:.15s}.mbc-dots i:nth-child(3){animation-delay:.3s}
@keyframes mbc-b{0%,80%,100%{opacity:.25}40%{opacity:1}}
.mbc-chips{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start}
.mbc-chip{font:600 14px/1.2 "Plus Jakarta Sans",sans-serif;color:var(--green);background:transparent;border:1px solid var(--green);border-radius:999px;padding:9px 14px;min-height:40px;cursor:pointer}
.mbc-chip:hover{background:rgba(61,156,20,.14)}
.mbc-acts{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start}
.mbc-act{display:inline-flex;align-items:center;gap:8px;font:600 14px/1.2 "Plus Jakarta Sans",sans-serif;border-radius:10px;padding:10px 14px;min-height:42px;border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer}
.mbc-act.mbc-ghost{background:transparent;color:var(--green)}
.mbc-form{align-self:stretch;display:flex;flex-direction:column;gap:6px;background:#232727;border-radius:14px;padding:14px}
.mbc-form label{font-size:13px;font-weight:500;color:var(--soft)}
.mbc-form input{font:400 15px "Plus Jakarta Sans",sans-serif;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 12px;margin-bottom:6px;min-width:0}
.mbc-form input:focus{outline:2px solid var(--green);outline-offset:1px}
.mbc-form .mbc-hp{position:absolute;left:-9999px;width:1px;height:1px}
.mbc-form button{margin-top:4px;font:600 15px "Plus Jakarta Sans",sans-serif;background:var(--green);color:#fff;border:0;border-radius:10px;min-height:44px;cursor:pointer}
.mbc-form button:disabled{opacity:.6;cursor:default}
.mbc-form p{font-size:13px;color:var(--soft)}
.mbc-in{display:flex;align-items:flex-end;gap:8px;margin:8px 12px 0;padding:6px 6px 6px 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px}
.mbc-in:focus-within{border-color:var(--green)}
.mbc-in textarea{flex:1;min-width:0;resize:none;border:0;background:transparent;color:#fff;font:400 16px/1.4 "Plus Jakarta Sans",sans-serif;padding:8px 0;max-height:120px;outline:none}
.mbc-in textarea::placeholder{color:rgba(226,226,226,.55)}
.mbc-in textarea:disabled{opacity:.5}
.mbc-send{flex:none;width:40px;height:40px;border-radius:10px;border:0;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mbc-send:disabled{opacity:.45;cursor:default}
.mbc-send svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.mbc-disc{margin:6px 14px 12px;font-size:12px;line-height:1.4;color:var(--soft);opacity:.75}
.mbc-disc a{color:var(--soft);text-decoration:underline}
@media (max-width:809px){.mbc-launch{right:16px;bottom:calc(16px + var(--mbc-lift,0px));width:54px;height:54px}}
@media (max-width:1023px){.mbc-exp{display:none}}
@media (max-width:480px){
  .mbc-panel,.mbc-panel.mbc-big{inset:0;width:auto;height:auto;height:100dvh;border-radius:0;border:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
  body.mbc-lock{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){.mbc-launch,.mbc-panel{transition:none}.mbc-dots i{animation:none;opacity:.7}.mbc-launch:hover{transform:none}}
@media print{.mbc-launch,.mbc-panel{display:none}}
/* teaser pop-up next to the launcher */
.mbc-teaser{position:fixed;right:88px;bottom:calc(24px + var(--mbc-lift,0px));z-index:56;max-width:280px;display:flex;align-items:flex-start;gap:4px;background:var(--bg2);color:var(--ink);border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--green);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.5);padding:10px 6px 10px 12px;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease}
.mbc-teaser.mbc-show{opacity:1;transform:none}
.mbc-tt{flex:1;background:none;border:0;color:inherit;text-align:left;font:500 14px/1.4 "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer;padding:0}
.mbc-tx{flex:none;width:26px;height:26px;border:0;background:none;color:var(--soft);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}
.mbc-tx:hover{background:rgba(255,255,255,.08)}
.mbc-tx svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
@media (max-width:809px){.mbc-teaser{right:80px;bottom:calc(20px + var(--mbc-lift,0px));max-width:calc(100vw - 100px)}}
.mbc-teaser.mbc-away{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){.mbc-teaser{transition:none}}
