/*!
 * Glow — WordPress additions to the design: the cart, icons in place of the
 * design's emoji, inner pages, and the booking platform's pages on a dark sky.
 */

/* ---------- accessibility ---------- */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:999;padding:.7em 1.2em;background:var(--pk);color:#fff;border-radius:12px;font-weight:700}
:focus-visible{outline:3px solid var(--cy);outline-offset:3px}

/* ---------- icons where the design used emoji ---------- */
.topbar .ic{width:14px;height:14px;vertical-align:-2px;color:var(--sun)}
.topbar a{color:inherit;text-decoration:none}
.nav-phone .ic,.cbtns .ic{width:16px;height:16px}
.em .ic{width:28px;height:28px;color:var(--cy);filter:drop-shadow(0 0 12px rgba(139,92,246,.9))}
.fcontact .ic{width:15px;height:15px;vertical-align:-2px;color:var(--pk);margin-right:4px}
.fsoc{display:flex;gap:10px;margin:0 0 20px}
.fsoc a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--glass);border:1px solid var(--line);color:var(--tx)}
.fsoc a:hover{border-color:rgba(34,211,238,.6)}
.fsoc .ic{width:17px;height:17px}

/* ---------- header ---------- */
.navcart{position:relative;width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:var(--glass);color:var(--tx);display:grid;place-items:center;cursor:pointer;flex:none;transition:.2s}
.navcart:hover{border-color:rgba(34,211,238,.6);color:#fff}
.navcart .ic{width:19px;height:19px}
.navcart b{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--pk);color:#fff;font-size:11px;line-height:20px;text-align:center;transform:scale(0);transition:transform .25s ease}
.navcart b.has{transform:scale(1)}
.mtag{background:rgba(20,14,66,.78);color:#fff}
@media(max-width:1180px){.nav-phone{display:none}}
@media(min-width:901px) and (max-width:1100px){.menu>li>a{padding:9px 10px;font-size:13.5px}}

/* ---------- home ---------- */
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--cy)}
a.mini{text-decoration:none;color:var(--tx)}
.price-call{font-size:17px}
.about-title{margin-bottom:26px}
.faq-sub{margin-top:12px}
.stats{flex-wrap:wrap}
.stat span{display:block}

/* =====================================================================
   Inner pages, blog and the booking platform's pages
   ===================================================================== */
.pagehead{padding:clamp(40px,6vw,80px) 0 clamp(30px,4vw,54px);border-bottom:1px solid var(--line)}
.pagehead--io{padding:14px 0 4px;border-bottom:0}
.pagehead p{color:var(--mut);max-width:60ch;margin:.4em 0 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45em;font-size:13px;color:var(--mut)}
.crumbs li+li::before{content:"›";content:"›" / '';margin-right:.45em;opacity:.6}
.crumbs a{color:var(--cy);text-decoration:none}
.crumbs [aria-current]{color:var(--tx)}
.pagebody{padding-block:clamp(28px,4vw,54px) clamp(54px,6vw,90px)}
.pagebody--wide{padding:0}
.prt-page .entry-content{color:var(--mut);font-size:16px}
.prt-page .entry-content>*+*{margin-top:1em}
.prt-page .entry-content h2,.prt-page .entry-content h3{color:#fff;font-size:clamp(22px,2.6vw,30px);margin:1.5em 0 .5em}
.prt-page .entry-content strong{color:#fff}
.prt-page .entry-content a{color:var(--cy)}
.prt-page .entry-content img{border-radius:16px;height:auto}
.pager .nav-links{display:flex;gap:8px;justify-content:center;margin-top:40px}
.pager .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border-radius:999px;background:var(--glass);border:1px solid var(--line);color:var(--tx);text-decoration:none}
.pager .page-numbers.current{background:var(--gbtn);border-color:transparent}
.post-navigation{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.post-navigation .nav-links{display:flex;justify-content:space-between;gap:20px}
.post-navigation a{color:var(--cy);text-decoration:none}
.search-form{display:flex;gap:8px;max-width:460px}
.search-form label{flex:1}
.search-form .search-field{width:100%;padding:13px 18px;border:1px solid var(--line);border-radius:999px;background:var(--glass);color:var(--tx);font:inherit}
.search-form .search-submit{border:0;border-radius:999px;padding:13px 22px;background:var(--gbtn);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.comments{margin-top:48px;color:var(--mut)}
.comments input,.comments textarea{background:var(--glass);border:1px solid var(--line);color:var(--tx);border-radius:12px;padding:10px 14px}

/* The platform's pages: full width for their own grids, readable on the dark sky. */
.prt-io-page .pagebody{padding-top:6px}
.prt-io-page .prt-io .elementor-section-boxed>.elementor-container{max-width:var(--max)}
.prt-io-page .entry-content{color:var(--tx)}

/* Four stats on one row, whatever the label length. */
.stats{display:grid!important;grid-template-columns:repeat(4,auto);justify-content:start;column-gap:30px;row-gap:14px}
.stat b{white-space:nowrap}
/* A stat typed as words rather than a number ("Same-day delivery") wraps, and the hero's columns never grow past the screen (round 17). */
.stat b.is-long{white-space:normal;font-size:22px;line-height:1.2}
.hgrid>*{min-width:0}
.stats>.stat{min-width:0}
.stat span{overflow-wrap:anywhere}
@media(max-width:620px){.stats{grid-template-columns:repeat(2,minmax(0,auto))}}
@media(max-width:620px){.stats{grid-template-columns:repeat(2,auto)}}
.fcontact{margin-bottom:24px!important}
.fbrand .btn-p{color:#fff}

/* The header stays one tidy line at every width. */
.logo>span:last-child{white-space:nowrap}
.navcta .btn{white-space:nowrap}
@media(max-width:1100px){.logo small{display:none}}
@media(min-width:901px) and (max-width:1000px){.menu>li>a{padding:8px 8px;font-size:13px}.navcta{gap:8px}}
@media(max-width:600px){
  .nav-book{display:none}
  .topbar .wrap>span:first-child{display:none}
  .topbar .wrap{justify-content:center}
}
/* The open phone menu is solid enough to read over the hero. */
@media(max-width:900px){.menu{background:rgba(20,14,66,.985)!important}}
@media(min-width:700px) and (max-width:1080px){.prods{grid-template-columns:repeat(3,1fr)}}
@media(min-width:621px) and (max-width:1080px){.evts{grid-template-columns:repeat(6,1fr)}.evts>*{grid-column:span 2}.evts>*:nth-child(n+4){grid-column:span 3}}
@media(min-width:901px) and (max-width:1180px){.stats{grid-template-columns:repeat(2,auto)}}

.has-mega.is-closed .mega{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.cat:focus-visible p{opacity:1;max-height:none;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* 320px (400% zoom): the logo gives way so the menu button stays on screen. */
@media(max-width:380px){.logo{min-width:0;flex:1 1 auto}.logo>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.navcta{gap:6px}.navcart{width:38px;height:38px}}

/* The trust line sits after the heading (out of the h1), sized as in the design. */
.hero-thin{font-weight:200;color:var(--mut);font-size:clamp(22px,2.9vw,39px);line-height:1.3;letter-spacing:-.01em;margin:-6px 0 20px}

html{scroll-padding-top:136px}
@media(max-width:900px){html{scroll-padding-top:150px}}
/* A long business name wraps to two lines and gives way, never pushing the buttons off. */
body>header .logo{flex:0 1 auto;min-width:0}
body>header .logo>span:last-child{white-space:normal;max-width:240px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}

/* ---------- round 24 ---------- */
.menu-cta{display:none}
@media(max-width:900px){.menu-cta{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 4px}.menu-cta .btn{flex:1 1 140px;justify-content:center}}
@media(max-width:620px){.stat span{max-width:16ch}}
.search-form .search-field::placeholder{color:var(--mut);opacity:1}
/* The booking plugin's buttons in Glow's gradient, not a lone crimson. */
body.prt .wdz-browse__add, body.prt .ioDateRangeHeader, body.prt .pageDateRangeWrapper .elementor-button,
body.prt .io_product_infobox .io_button, body.prt .io_form .btn-success { background: var(--gbtn) !important; border: 0 !important; color: #fff !important; }
.single-post .pagehead .wrap{max-width:800px}

/* round 28 */
.menu .menu-cta .btn-p{color:#fff}
.menu-cta .btn-g{white-space:nowrap}

/* round 29 */
.is-closed > .mega, .is-closed .mega { transition: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
/* ---------- rounds 34/35 ---------- */
@media (max-width:900px){.menu-cta .ic,.menu-cta svg{width:18px;height:18px;flex:none}}
@media (min-width:621px) and (max-width:900px){.steps{grid-template-columns:repeat(3,1fr)!important;gap:14px}}
.step .ph img{object-position:center 25%}
.hero-thin{font-size:clamp(17px,2vw,26px)}

/* =====================================================================
   Page sections (parts/section-*.php): the home page's spacing for every
   section, wherever it is placed, and the sections the home page lacks.
   ===================================================================== */
.gsec{padding:92px 0}
.gsec--tight{padding:46px 0}
@media(max-width:620px){.gsec{padding:62px 0}.gsec--tight{padding:30px 0}}
.shead--c{margin-left:auto;margin-right:auto;text-align:center}
/* Sections re-drawn in the Elementor editor never get the scroll reveal. */
.elementor-editor-active .reveal{opacity:1!important;transform:none!important}
/* A shared neon edge for glass panels. */
.gph__panel::before,.gstats::before,.gtext__box::before,.gform-card::before,.garea::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,var(--cy),var(--vio) 28%,var(--pk) 54%,var(--sun) 78%,var(--mint));opacity:.9}

/* ---------- events with fewer than five tiles fill the row ---------- */
@media(min-width:1081px){.evts--4{grid-template-columns:repeat(4,1fr)}.evts--3{grid-template-columns:repeat(3,1fr)}.evts--2{grid-template-columns:repeat(2,1fr)}.evts--1{grid-template-columns:minmax(0,420px)}}
@media(min-width:621px) and (max-width:1080px){.evts--4>*,.evts--2>*{grid-column:span 3!important}.evts--3>*{grid-column:span 2!important}}

/* ---------- FAQ (also when it is not the page's first) ---------- */
.gfaq details{border:1px solid var(--line);border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin-bottom:12px;transition:.3s;overflow:hidden}
.gfaq details[open]{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.1)}
.gfaq summary{padding:19px 24px;cursor:pointer;font-weight:600;font-size:15.3px;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.gfaq summary::-webkit-details-marker{display:none}
.gfaq summary::after{content:'+';content:'+' / '';font-size:24px;font-weight:300;color:var(--cy);transition:.3s;line-height:1}
.gfaq details[open] summary::after{transform:rotate(45deg)}
.gfaq details p{padding:0 24px 20px;color:var(--mut);font-size:14.4px;font-weight:300}
.gfaq summary:hover{color:#fff}
.faqone{max-width:860px;margin:0 auto}

/* ---------- page header ---------- */
.gph{padding:34px 0 0}
.gph__panel{position:relative;isolation:isolate;overflow:hidden;border-radius:36px;border:1px solid var(--line);
  background:linear-gradient(150deg,rgba(139,92,246,.26),rgba(56,189,248,.08) 52%,rgba(244,114,182,.16)),rgba(var(--inkDeep),.55);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  padding:clamp(46px,6.4vw,92px) clamp(24px,5vw,72px) clamp(46px,6vw,86px);box-shadow:0 40px 90px -50px rgba(8,4,40,.9)}
.gph--img .gph__panel{background:linear-gradient(100deg,rgba(20,14,66,.95) 0%,rgba(30,22,96,.86) 42%,rgba(91,45,190,.45) 75%,rgba(244,114,182,.28) 100%),var(--gph-img) center/cover}
.gph__orb{position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;pointer-events:none;animation:drift 20s ease-in-out infinite}
.gph__orb--1{width:340px;height:340px;background:var(--bubble);opacity:.34;top:-140px;right:6%}
.gph__orb--2{width:280px;height:280px;background:#38BDF8;opacity:.26;bottom:-150px;left:-60px;animation-delay:-8s}
.gph__orb--3{width:180px;height:180px;background:var(--sun);opacity:.2;top:30%;right:28%;animation-delay:-14s}
.gph--img .gph__orb{opacity:.18}
.gph__ring{position:absolute;right:-110px;top:50%;width:440px;height:440px;margin-top:-220px;border-radius:50%;z-index:-1;pointer-events:none;
  border:1px dashed rgba(255,255,255,.16);animation:gspin 60s linear infinite}
.gph__ring::before,.gph__ring::after{content:'';position:absolute;border-radius:50%}
.gph__ring::before{inset:70px;border:1px solid rgba(34,211,238,.22)}
.gph__ring::after{width:14px;height:14px;top:62px;left:62px;background:var(--cy);box-shadow:0 0 18px var(--cy)}
@keyframes gspin{to{transform:rotate(360deg)}}
.gph__in{position:relative;max-width:780px}
.gph__crumbs{margin-bottom:24px}
.gph__crumbs ol{font-size:13px}
.gph__crumbs [aria-current]{color:#fff}
.gph .eyebrow{margin-bottom:20px}
.gph__title{font-size:clamp(38px,5.2vw,66px);margin-bottom:0;text-wrap:balance}
.gph__lede{margin:18px 0 0;max-width:600px;font-size:17.5px;color:#C9CBEF}
.gph__btns{margin:32px 0 0}
/* The phone number stays on one line; the button's own words (an editor's field) wrap on a phone rather than run off the panel (round 17). */
.gph__btns .btn-g{white-space:nowrap}
.gph__btns .btn{max-width:100%}
.gph__btns .ic,.gcontact .btn .ic{width:16px;height:16px;flex:none}
@media(max-width:620px){.gph{padding-top:18px}.gph__panel{border-radius:26px}.gph__ring{width:300px;height:300px;margin-top:-150px;right:-150px;opacity:.6}.gph__lede{font-size:16px}}

/* ---------- ticker ---------- */
.gticker{position:relative;z-index:2;overflow:hidden;padding:17px 0;border-block:1px solid var(--line);
  background:linear-gradient(90deg,rgba(139,92,246,.2),rgba(34,211,238,.12) 50%,rgba(244,114,182,.2));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.gticker__track{display:flex;width:max-content;animation:gtick 42s linear infinite}
/* Hover pauses it where there is a real pointer; on touch :hover sticks after a tap, which kept it paused after the
   pause button said "playing" (round 11). */
@media(hover:hover){.gticker:hover .gticker__track{animation-play-state:paused}}
.gticker__set{display:flex;flex:none}
.gticker span{display:inline-flex;align-items:center;gap:14px;padding:0 28px;font-weight:600;font-size:15px;letter-spacing:.01em;white-space:nowrap;color:var(--tx)}
.gticker .ic{width:18px;height:18px;flex:none;color:var(--sun);filter:drop-shadow(0 0 8px rgba(251,191,36,.8))}
@keyframes gtick{to{transform:translateX(-50%)}}

/* ---------- stats ---------- */
.gstats{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(4,1fr);border-radius:28px;border:1px solid var(--line);
  background:linear-gradient(150deg,rgba(255,255,255,.08),rgba(255,255,255,.03));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.gstats--3{grid-template-columns:repeat(3,1fr)}.gstats--2{grid-template-columns:repeat(2,1fr)}.gstats--1{grid-template-columns:1fr}
.gstats__i{padding:36px 24px;text-align:center;min-width:0}
.gstats__i+.gstats__i{border-left:1px solid var(--line)}
.gstats__i b,.gnums__i b{display:block;font-size:clamp(34px,3.6vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.1;
  background:linear-gradient(120deg,#fff,var(--cy) 62%,#F9A8D4);-webkit-background-clip:text;background-clip:text;color:transparent}
.gstats__i span,.gnums__i>span:last-child{display:block;margin-top:9px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);font-weight:500}
@media(max-width:760px){
  .gstats--4,.gstats--2{grid-template-columns:1fr 1fr}.gstats--3{grid-template-columns:1fr}
  .gstats--4 .gstats__i:nth-child(odd){border-left:0}.gstats--4 .gstats__i:nth-child(n+3){border-top:1px solid var(--line)}
  .gstats--3 .gstats__i+.gstats__i{border-left:0;border-top:1px solid var(--line)}
  .gstats__i{padding:26px 14px}
  .gstats__i b{font-size:clamp(26px,7.4vw,34px)}
}

/* ---------- reviews: rating strip ---------- */
.gnums{display:flex;flex-wrap:wrap;gap:14px;margin:-16px 0 30px}
.gnums__i{flex:1 1 200px;padding:22px 26px;border-radius:22px;border:1px solid var(--line);background:linear-gradient(var(--glass),var(--glass)),rgba(var(--inkDeep),.4);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.gnums__i b{font-size:clamp(30px,3vw,38px)}
.gnums__i .stars{margin:4px 0 0;font-size:13px}

/* Four, five… reviews: centred rows of three instead of a ragged last row. */
@media(min-width:901px){.revs--wrap{display:flex;flex-wrap:wrap;justify-content:center}.revs--wrap>.rev{flex:0 1 calc((100% - 44px)/3)}}

/* ---------- how it works ---------- */
.ghow{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;position:relative}
.ghow--4{grid-template-columns:repeat(4,1fr)}.ghow--2{grid-template-columns:repeat(2,1fr);max-width:860px;margin:0 auto}.ghow--1{grid-template-columns:1fr;max-width:480px;margin:0 auto}
.ghow__i{position:relative;z-index:1;text-align:center;margin-top:44px;padding:0 26px 34px;border-radius:26px;border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(42,29,120,.9),rgba(30,22,96,.75));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:.4s cubic-bezier(.2,.8,.2,1)}
.ghow__i:hover{transform:translateY(-8px);border-color:rgba(34,211,238,.5);box-shadow:0 30px 60px -30px rgba(124,58,237,.7)}
.ghow__ic{position:relative;display:grid;place-items:center;width:88px;height:88px;margin:-44px auto 22px;border-radius:28px;transform:rotate(-6deg);
  background:linear-gradient(135deg,var(--vio),var(--cy));box-shadow:0 0 34px rgba(139,92,246,.6),inset 0 1px 0 rgba(255,255,255,.35)}
.ghow__i:nth-child(3n+2) .ghow__ic{background:linear-gradient(135deg,#DB2777,var(--vio));box-shadow:0 0 34px rgba(244,114,182,.5),inset 0 1px 0 rgba(255,255,255,.35)}
.ghow__i:nth-child(3n) .ghow__ic{background:linear-gradient(135deg,#0891B2,#7C3AED);box-shadow:0 0 34px rgba(34,211,238,.5),inset 0 1px 0 rgba(255,255,255,.35)}
.ghow__ic .ic{width:38px;height:38px;color:#fff;transform:rotate(6deg)}
.ghow__ic b{position:absolute;top:-10px;right:-10px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;transform:rotate(6deg);
  font-size:13px;font-weight:800;color:#fff;background:var(--ink);border:2px solid var(--pk);box-shadow:0 0 14px rgba(244,114,182,.6)}
.ghow h3{font-size:19px;font-weight:600;letter-spacing:-.015em;margin-bottom:8px}
.ghow p{color:var(--mut);font-size:14.6px;font-weight:300}
@media(max-width:1080px){.ghow--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.ghow,.ghow--2,.ghow--4{grid-template-columns:1fr;max-width:520px;margin:0 auto;gap:8px}}

/* ---------- service area ---------- */
.garea{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  border-radius:36px;border:1px solid var(--line);padding:clamp(28px,5vw,64px);
  background:linear-gradient(150deg,rgba(56,189,248,.13),rgba(139,92,246,.15) 50%,rgba(244,114,182,.11)),rgba(var(--inkDeep),.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.garea::after{content:'';position:absolute;z-index:-1;width:420px;height:420px;border-radius:50%;background:var(--vio);filter:blur(130px);opacity:.3;right:-80px;bottom:-160px}
.garea .shead{margin-bottom:28px}
.gpills{display:flex;flex-wrap:wrap;gap:10px}
.gpills a,.gpills span{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:500;color:var(--tx);
  background:rgba(var(--inkDeep),.55);border:1px solid var(--line);transition:.25s}
.gpills .ic{width:15px;height:15px;color:var(--pk);flex:none}
.gpills a:hover{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.12);transform:translateY(-2px);color:#fff}
.garea__note{margin-top:24px;color:var(--mut);font-size:14.5px;font-weight:300}
.garea__note a{color:var(--cy);font-weight:600;white-space:nowrap}
.gradar{position:relative;width:100%;max-width:440px;aspect-ratio:1;margin:0 auto;border-radius:50%;
  background:radial-gradient(circle,rgba(139,92,246,.32) 0%,rgba(30,22,96,.35) 55%,transparent 71%)}
.gradar::before,.gradar::after{content:'';position:absolute;border-radius:50%;pointer-events:none}
.gradar::before{inset:0;border:1px dashed rgba(255,255,255,.2)}
.gradar::after{inset:24%;border:1px solid rgba(255,255,255,.14)}
.gradar__ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(34,211,238,.5);opacity:0;animation:gping 4.5s ease-out infinite;animation-delay:calc(var(--k) * -1.5s)}
@keyframes gping{0%{transform:scale(.22);opacity:.9}100%{transform:scale(1);opacity:0}}
.gradar__sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(34,211,238,.32),transparent 24%);animation:gspin 7s linear infinite}
.gradar__core{position:absolute;left:50%;top:50%;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:24px;padding:4px;z-index:2;
  background:linear-gradient(135deg,var(--vio),var(--cy));box-shadow:0 0 44px rgba(139,92,246,.85)}
.gradar__core img{width:100%;height:100%;object-fit:contain;border-radius:20px;background:#fff}
/* A long town name (decorative copy; the pills carry the full list) ends in an ellipsis instead of running off the card (round 17). */
.gradar__town{position:absolute;z-index:3;transform:translate(-50%,-50%);padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;max-width:16em;overflow:hidden;text-overflow:ellipsis;
  background:rgba(var(--inkDeep),.88);border:1px solid rgba(34,211,238,.42);color:var(--tx);box-shadow:0 12px 26px -12px rgba(0,0,0,.8);
  animation:gbob 6s ease-in-out infinite;animation-delay:calc(var(--k) * -1.1s)}
.gradar__town::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:1px;background:var(--lime);box-shadow:0 0 10px var(--lime)}
@keyframes gbob{50%{transform:translate(-50%,calc(-50% - 8px))}}
@media(max-width:900px){.garea{grid-template-columns:1fr;gap:40px}.gradar{max-width:360px}}
@media(max-width:620px){.garea{border-radius:28px}.gradar{max-width:300px}.gradar__town{font-size:11px;padding:5px 10px;max-width:11em}.gradar__core{width:66px;height:66px;margin:-33px 0 0 -33px;border-radius:18px}.gradar__core img{border-radius:15px}}

/* ---------- contact ---------- */
.gcontact{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.gcontact .shead{margin-bottom:30px}
.gtiles{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gtiles li{display:flex;gap:14px;align-items:center;min-width:0;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.gtiles__ic{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,rgba(139,92,246,.45),rgba(34,211,238,.28));box-shadow:0 0 20px -4px rgba(139,92,246,.6)}
.gtiles__ic .ic{width:20px;height:20px;color:#fff}
.gtiles li>span:last-child{min-width:0;font-size:14.5px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}
.gtiles small{display:block;margin-bottom:2px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);font-weight:600}
.gtiles a:hover{color:var(--cy)}
.gtiles .is-wide{grid-column:1/-1}
.gcontact__soc{margin:18px 0 0}
.gmap{margin-top:18px;height:270px;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(circle at 50% 50%,rgba(139,92,246,.32),transparent 62%),var(--glass)}
.gmap iframe{display:block;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(200deg) saturate(.75) brightness(.95)}
.gform-card{position:relative;overflow:hidden;isolation:isolate;border-radius:30px;padding:clamp(26px,3.4vw,40px);border:1px solid rgba(139,92,246,.45);
  background:linear-gradient(160deg,rgba(139,92,246,.24),rgba(30,22,96,.6) 62%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 40px 80px -36px rgba(124,58,237,.75)}
.gform-card::after{content:'';position:absolute;z-index:-1;width:300px;height:300px;border-radius:50%;background:var(--bubble);filter:blur(110px);opacity:.25;top:-120px;right:-90px}
.gform-card .klabel{margin-bottom:10px}
.gform-card h3{font-size:clamp(24px,2.4vw,30px);font-weight:700;letter-spacing:-.025em;line-height:1.2;margin-bottom:8px}
.gform-card>p{color:var(--mut);font-weight:300;margin-bottom:24px}
.gform{position:relative;display:grid;gap:15px}
.gform label{display:grid;gap:7px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#DCDDF6}
.gform input,.gform textarea{width:100%;font:inherit;font-size:15px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--tx);
  background:rgba(var(--inkDeep),.62);border:1px solid rgba(255,255,255,.34);border-radius:14px;padding:13px 16px;transition:border-color .25s,box-shadow .25s}
.gform input:hover,.gform textarea:hover{border-color:rgba(255,255,255,.5)}
.gform input:focus,.gform textarea:focus{outline:none;border-color:var(--cy);box-shadow:0 0 0 3px rgba(34,211,238,.28)}
.gform textarea{resize:vertical;min-height:124px}
/* Touch screens (round 19, cross-browser): iOS Safari zooms the page into any field set under 16px when it is tapped. */
@media (pointer:coarse){.gform input,.gform textarea{font-size:16px}}
.gform .btn{justify-content:center;width:100%;margin-top:6px;font-size:15px;padding:15px 26px}
.gform .prt-contact-status{margin:0;font-weight:600;color:var(--lime)}
.gform .prt-contact-status:empty{display:none}
@media(max-width:900px){.gcontact{grid-template-columns:1fr;gap:40px}}
@media(max-width:520px){.gtiles{grid-template-columns:1fr}.gmap{height:230px}}

/* ---------- text block ---------- */
.gtext{max-width:920px;margin:0 auto}
.gtext--split{max-width:none;display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center}
.gtext__box{position:relative;overflow:hidden;border-radius:30px;border:1px solid var(--line);background:linear-gradient(var(--glass),var(--glass)),rgba(var(--inkDeep),.45);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:clamp(28px,4.4vw,56px)}
.gtext .shead{margin-bottom:24px}
.gtext__body{color:var(--mut);font-size:16px;font-weight:300;line-height:1.75}
.gtext__body>*+*{margin-top:1em}
.gtext__body :is(strong,b){color:#fff;font-weight:600}
.gtext__body a{color:var(--cy);text-decoration:underline;text-underline-offset:3px}
.gtext__body :is(h2,h3,h4){color:#fff;font-weight:600;letter-spacing:-.02em;line-height:1.25;font-size:clamp(20px,2.2vw,26px);margin-top:1.4em}
.gtext__body ul,.gtext__body ol{list-style:none;display:grid;gap:12px;padding:0}
.gtext__body ol{counter-reset:gli}
.gtext__body li{position:relative;padding-left:38px;color:#D3D4F2}
.gtext__body ul>li::before,.gtext__body ol>li::before{content:'\2713';content:'\2713' / '';position:absolute;left:0;top:.15em;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;
  font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--vio),#0891B2);box-shadow:0 0 14px rgba(139,92,246,.55)}
.gtext__body ol>li{counter-increment:gli}
.gtext__body ol>li::before{content:counter(gli)}
.gtext__ph{border-radius:30px;border:1px solid var(--line);aspect-ratio:4/5;box-shadow:0 40px 80px -36px rgba(124,58,237,.7);animation:float 8s ease-in-out infinite}
@media(max-width:900px){.gtext--split{grid-template-columns:1fr;gap:32px}.gtext__ph{aspect-ratio:16/11;animation:none}}

@media(prefers-reduced-motion:reduce){
  .gticker__track,.gph__orb,.gph__ring,.gradar__ring,.gradar__sweep,.gradar__town,.gtext__ph{animation:none!important}
  .gticker{overflow-x:auto}
}

/* =====================================================================
   Inner-page audit fixes
   ===================================================================== */
/* Stacked sections on one shared sky: half the padding each, so two sections
   meet with one section's worth of space (each sits in its own Elementor
   section/container, so this is set per section, not on siblings). */
.prt-sections .gsec{padding:46px 0}
.prt-sections .gsec--tight{padding:22px 0}
@media(max-width:620px){.prt-sections .gsec{padding:34px 0}.prt-sections .gsec--tight{padding:18px 0}}
/* A full-width glass panel right after the page header: close up, and no
   second rainbow edge, so it reads as content, not a second hero. */
.prt-sections>.gph+.gsec,
.prt-sections .elementor>:has(.gph)+* .gsec{padding-top:26px}
.prt-sections>.gph+.gsec .garea::before,
.prt-sections .elementor>:has(.gph)+* .garea::before{display:none}

/* Contact: map under the tiles on wide screens; after the form on phones. */
.gcontact{gap:18px 52px}
.gcontact__info{grid-column:1;grid-row:1}
.gform-card{grid-column:2;grid-row:1/span 2}
.gcontact>.gmap{grid-column:1;grid-row:2;margin-top:0}
@media(max-width:900px){.gcontact{gap:32px}.gcontact__info,.gform-card,.gcontact>.gmap{grid-column:1;grid-row:auto}}

/* Reviews numbers: two by two below the full width, never 3+1 or a column of four. */
@media(max-width:1080px){.gnums{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:380px){.gnums__i{padding:18px 16px}}

/* CTA: a white button on the violet-to-pink wash (#4c1d95 on #fff, 10.6:1). */
.cta .btn-p{background:#fff;color:#4c1d95;box-shadow:0 14px 34px -12px rgba(30,10,80,.7)}
.cta .btn-p:hover{color:#3b0f7a;box-shadow:0 18px 44px -12px rgba(30,10,80,.8)}

/* FAQ: the photo centres on the questions and stays short beside a few. */
.faqgrid{align-items:center}
.faqvis{height:auto;aspect-ratio:16/10}

/* Radar towns with a page are links, like their pills. */
a.gradar__town{text-decoration:none;cursor:pointer}
a.gradar__town:hover{border-color:var(--cy);color:#fff}

/* Touch targets: footer links and social icons at least 44px on touch screens
   (phones, and tablets that get the desktop footer). */
.fsoc a{width:44px;height:44px}
@media(max-width:900px),(pointer:coarse){
  .fcol ul{gap:0}
  .fcol ul a{display:inline-flex;align-items:center;min-height:44px}
  .fcol ul li{min-height:44px;display:flex;align-items:center}
  .areas a{display:inline-flex;align-items:center;min-height:44px;padding:6px 16px}
  .fbot a{display:inline-flex;align-items:center;min-height:44px}
  .fbot{align-items:center}
}
/* QA: the mega panel stays open while the pointer crosses the gap below the menu item. */
.mega::before{content:"";position:absolute;left:0;right:0;top:-28px;height:30px}

/* =====================================================================
   Polish round (2026-10-02)
   ===================================================================== */

/* ---------- footer: the brand reads as the logo, not as a link ---------- */
.fbrand .logo{font-size:19px;font-weight:800;color:#fff;letter-spacing:-.02em}
.fbrand .logo small{font-weight:400}
/* The header keeps the name on one line (cut with … on small phones); the footer has room, so a long business name wraps there in full (round 17). */
.fbrand .logo>span:last-child{white-space:normal;overflow:visible;text-overflow:clip;min-width:0}
@media(max-width:620px){
  /* Inventory and Company side by side: half the scroll to reach the bottom. */
  .fgrid{grid-template-columns:1fr 1fr;column-gap:20px;row-gap:34px}
  .fgrid>.fbrand,.fgrid>.fcol:last-child{grid-column:1/-1}
  .fcol ul li,.fcol ul a{min-height:40px}
  .fcol a,.fcol li{font-size:14.5px}
}

/* ---------- template page headers (blog, search, posts, 404, plain pages) ---------- */
.gph--tpl .gph__title{font-size:clamp(34px,4.6vw,58px)}
.gph__search{margin-top:26px}
.gph__search .search-form{max-width:480px}
.gph--404 .gph__title{font-size:clamp(36px,5.4vw,68px)}

/* ---------- pager ---------- */
.pager .page-numbers{transition:.25s}
.pager a.page-numbers:hover{border-color:rgba(34,211,238,.6);color:#fff}

/* ---------- search form ---------- */
.search-form .search-field{transition:border-color .25s,box-shadow .25s}
.search-form .search-field:focus{outline:none;border-color:var(--cy);box-shadow:0 0 0 3px rgba(34,211,238,.25)}
.search-form .search-submit{box-shadow:0 10px 30px -10px rgba(139,92,246,.85);transition:.25s}
.search-form .search-submit:hover{transform:translateY(-1px)}
@media(max-width:420px){.search-form{flex-direction:column}.search-form .search-submit{width:100%}}

/* ---------- previous / next post ---------- */
.post-navigation .nav-links{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.post-navigation .nav-links>div{min-width:0}
.post-navigation a{display:block;height:100%;padding:18px 22px;border-radius:20px;border:1px solid var(--line);background:var(--glass);color:#fff;font-weight:600;line-height:1.35;transition:.3s}
.post-navigation a:hover{border-color:rgba(34,211,238,.55);transform:translateY(-3px)}
.post-navigation .nav-next{grid-column:2;text-align:right}
@media(max-width:620px){.post-navigation .nav-links{grid-template-columns:1fr}.post-navigation .nav-next{grid-column:1}}

/* ---------- comments ---------- */
.comments h2,.comments h3{color:#fff;font-size:24px;margin-bottom:14px}
.comments input:not([type=submit]):not([type=checkbox]),.comments textarea{width:100%;font:inherit}
.comments :is(input,textarea):focus{outline:none;border-color:var(--cy)}

/* =====================================================================
   Booking platform pages on the night sky: BookFlow's browse cards and
   item calendar become Glow's glass cards instead of white boxes.
   ===================================================================== */
html body.prt-glow .wdz-browse__card{background:linear-gradient(180deg,rgba(42,29,120,.92),rgba(30,22,96,.86))!important;border:1px solid var(--line)!important;border-radius:26px!important;
  color:var(--tx)!important;box-shadow:0 26px 50px -30px rgba(8,4,40,.95)!important;transition:transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s,border-color .42s}
html body.prt-glow .wdz-browse__card:hover{transform:translateY(-8px);border-color:rgba(139,92,246,.6)!important;box-shadow:0 34px 70px -26px rgba(124,58,237,.65)!important}
html body.prt-glow .wdz-browse__card-img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
html body.prt-glow .wdz-browse__card:hover .wdz-browse__card-img{transform:scale(1.05)}
html body.prt-glow .wdz-browse__card-body{position:relative;background:inherit;padding:18px 20px 20px!important;gap:8px!important}
html body.prt-glow .wdz-browse__card-name,html body.prt-glow .wdz-browse__card-name a{color:#fff!important;font-size:17px!important;font-weight:600!important;letter-spacing:-.015em;text-decoration:none!important}
html body.prt-glow .wdz-browse__card:hover .wdz-browse__card-name a{color:var(--cy)!important}
html body.prt-glow .wdz-browse__card-price{color:var(--lime)!important;font-size:21px!important;font-weight:800!important;letter-spacing:-.03em}
html body.prt-glow .wdz-browse__card-actions{margin-top:6px!important;padding-top:14px;border-top:1px solid var(--line)}
html body.prt-glow .wdz-browse__qty{border:1px solid var(--line)!important;border-radius:999px!important;background:rgba(var(--inkDeep),.6)!important}
html body.prt-glow .wdz-browse__qty button{background:transparent!important;color:var(--tx)!important;width:34px}
html body.prt-glow .wdz-browse__qty button:hover{color:var(--cy)!important}
html body.prt-glow .wdz-browse__qty input{background:transparent!important;color:#fff!important;font-weight:600}
html body.prt-glow .wdz-browse__add{border-radius:999px!important;font-weight:600!important;box-shadow:0 10px 30px -12px rgba(139,92,246,.9)}
html body.prt-glow .wdz-browse__card.is-unavailable .wdz-browse__add{background:rgba(255,255,255,.08)!important;color:var(--mut)!important;box-shadow:none}

/* Item calendar: a violet glass card with neon day cells. */
html body.prt-glow .wdz-itemcal{--wdz-ic-ink:#F3F2FF;--wdz-ic-muted:#B8BAE6;--wdz-ic-line:rgba(255,255,255,.14);--wdz-ic-open:rgba(52,211,153,.1);--wdz-ic-open-bd:rgba(52,211,153,.42)}
html body.prt-glow .wdz-itemcal__card{position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(139,92,246,.26),rgba(30,22,96,.78) 58%)!important;border:1px solid rgba(139,92,246,.45)!important;
  box-shadow:0 40px 80px -36px rgba(124,58,237,.75)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html body.prt-glow .wdz-itemcal__card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cy),var(--vio) 28%,var(--pk) 54%,var(--sun) 78%,var(--mint));opacity:.9}
html body.prt-glow .wdz-itemcal .wdz-itemcal__title{color:#fff!important;letter-spacing:-.025em}
html body.prt-glow .wdz-itemcal :is(p,small,span){color:var(--mut)}
html body.prt-glow .wdz-itemcal .wdz-itemcal__month{color:#fff!important}
html body.prt-glow .wdz-itemcal__nav{background:var(--glass)!important;border-color:var(--line)!important;color:#fff!important}
html body.prt-glow .wdz-itemcal__nav:hover:not(:disabled){background:var(--vio)!important;border-color:var(--vio)!important}
html body.prt-glow .wdz-itemcal .wdz-itemcal__wd span{color:var(--mut);font-size:11px} /* round 8: #9496C8 at 9.6px was 4.1-4.3:1 */
html body.prt-glow .wdz-itemcal__cell{background:rgba(255,255,255,.05);color:var(--tx)}
html body.prt-glow .wdz-itemcal__cell .wdz-itemcal__dnum{color:inherit!important}
html body.prt-glow .wdz-itemcal__cell.is-empty{background:transparent}
html body.prt-glow .wdz-itemcal__cell.is-open{color:#A7F3D0}
html body.prt-glow .wdz-itemcal__cell.is-open:hover{border-color:var(--mint);background:rgba(52,211,153,.2);box-shadow:0 8px 22px -8px rgba(52,211,153,.55)}
html body.prt-glow .wdz-itemcal__cell.is-past{background:transparent;color:rgba(255,255,255,.22)}
html body.prt-glow .wdz-itemcal__cell.is-unconfirmed{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.26);color:var(--tx)}
html body.prt-glow .wdz-itemcal__cell.is-booked{background:repeating-linear-gradient(-45deg,rgba(244,114,182,.13),rgba(244,114,182,.13) 5px,rgba(244,114,182,.05) 5px,rgba(244,114,182,.05) 10px);color:rgba(255,255,255,.38)}
html body.prt-glow .wdz-itemcal__cell.is-selected{background:var(--gbtn)!important; /* round 8: violet-to-pink left the white day number at 3.4:1 */ border-color:transparent!important;box-shadow:0 10px 26px -8px rgba(244,114,182,.7)}
html body.prt-glow .wdz-itemcal__dot--booked{background:repeating-linear-gradient(-45deg,rgba(244,114,182,.5),rgba(244,114,182,.5) 3px,rgba(244,114,182,.18) 3px,rgba(244,114,182,.18) 6px);border-color:rgba(244,114,182,.45)}
html body.prt-glow .wdz-itemcal__dot--unconfirmed{background:transparent;border-color:rgba(255,255,255,.4)}
html body.prt-glow .wdz-itemcal__dot--sel{background:var(--gbtn)}
html body.prt-glow .wdz-itemcal__panel{background:rgba(var(--inkDeep),.55)!important;border:1px solid var(--line)!important}
html body.prt-glow .wdz-itemcal__picon{color:var(--cy);opacity:.9}
html body.prt-glow .wdz-itemcal .wdz-itemcal__pcall a{color:var(--cy)!important;text-decoration:none}
html body.prt-glow .wdz-itemcal .wdz-itemcal__pbadge--ok{color:#6EE7B7}
html body.prt-glow .wdz-itemcal .wdz-itemcal__pbadge--no{color:#FDA4AF}
html body.prt-glow .wdz-itemcal .wdz-itemcal__price{color:var(--lime)}
html body.prt-glow .wdz-itemcal__book{background:var(--gbtn)!important;color:#fff!important;border-radius:999px!important;box-shadow:0 12px 30px -10px rgba(139,92,246,.85)!important}
html body.prt-glow .wdz-itemcal__spin{border-color:rgba(255,255,255,.18);border-top-color:var(--cy)}

/* Item page: the platform's buttons as Glow pills, its copy as light body text. */
html body.prt-glow .io_product_infobox :is(#bookNowBtn,#checkDeliveryButton,#calcPriceOpenMap){border-radius:999px!important;text-decoration:none!important;padding:13px 26px!important;font-weight:600!important;
  background:var(--gbtn)!important;box-shadow:0 10px 34px -10px rgba(139,92,246,.85)!important;transition:transform .3s,box-shadow .3s}
html body.prt-glow .io_product_infobox :is(#checkDeliveryButton,#calcPriceOpenMap){background:var(--glass)!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:none!important}
html body.prt-glow .io_product_infobox :is(#bookNowBtn,#checkDeliveryButton,#calcPriceOpenMap):hover{transform:translateY(-2px)}
html body.prt-glow .io_product_infobox .io_product_desc{font-size:15.5px!important;font-weight:300!important;line-height:1.8!important;color:#CFD0EE!important}
html body.prt-glow .io_product_infobox .io_product_subtitle{font-size:20px!important;letter-spacing:-.015em}

/* Elementor's ".elementor a{box-shadow:none}" outranks a single class and was
   removing the glow from buttons inside page sections. Restate it one step stronger. */
.elementor .btn-p{box-shadow:0 10px 34px -10px rgba(139,92,246,.85)}
.elementor .btn-p:hover{box-shadow:0 18px 44px -12px rgba(244,114,182,.8)}

/* =====================================================================
   Feedback round 3 (2026-10-06)
   ===================================================================== */

/* ---------- categories: the photo uncovered, the name on glass below it ---------- */
.cat{height:auto;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(42,29,120,.92),rgba(30,22,96,.86))}
.cat::before{display:none}
.cat .ph{position:relative;inset:auto;flex:none;aspect-ratio:4/3}
.cat .ph img{transform:none}
.cat:hover .ph img{transform:scale(1.06)}
.cinner{position:relative;left:auto;right:auto;bottom:auto;flex:1;display:flex;flex-direction:column;padding:18px 20px 20px}
.cat h3{font-size:17.5px}
.cat p{max-height:none;opacity:1;overflow:hidden;margin-bottom:12px;color:var(--mut);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.cat:hover p{max-height:none;margin-bottom:12px}
.cat .go{margin-top:auto}
.cat:hover .go{color:#fff}
@media(prefers-reduced-motion:reduce){.cat:hover .ph img{transform:none}}

/* ---------- about collage: a wide photo on top, a tall one beside two short ---------- */
.collage{grid-template-rows:none}
.collage .ph{grid-row:auto}
.collage--full{grid-template-areas:"a a" "b c" "b d";grid-template-rows:240px 170px 170px}
.collage--full .c-a{grid-area:a}.collage--full .c-b{grid-area:b}.collage--full .c-c{grid-area:c}.collage--full .c-d{grid-area:d}
.collage--n3{grid-template-areas:"a a" "b c";grid-template-rows:240px 200px}
.collage--n3>:nth-child(1){grid-area:a}.collage--n3>:nth-child(2){grid-area:b}.collage--n3>:nth-child(3){grid-area:c}
.collage--n2 .ph{aspect-ratio:4/5}
.collage--n1{grid-template-columns:1fr}.collage--n1 .ph{aspect-ratio:4/3}
.collage .ph img{object-position:center 35%}
.collage--full .c-b img{object-position:center 22%}
@media(max-width:620px){.collage--full{grid-template-rows:190px 125px 125px}.collage--n3{grid-template-rows:190px 150px}}

/* ---------- menu: Service Area and Company panels ---------- */
.menu-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;border:0;background:none;cursor:pointer;
  font:inherit;font-size:14px;font-weight:500;color:var(--mut);transition:.25s}
.menu-btn:hover,.has-mega:hover>.menu-btn,.has-mega.open>.menu-btn,.has-mega:focus-within>.menu-btn{color:#fff;background:var(--glass)}
.has-mega:hover>[aria-controls] .chev,.has-mega.open>[aria-controls] .chev{transform:rotate(-135deg) translate(-2px,-1px);opacity:1}
.mtowns{position:relative;z-index:2;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 24px 24px}
.mtowns a,.mtown-plain{display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:16px;border:1px solid var(--line);
  background:rgba(255,255,255,.04);font-size:14.5px;font-weight:500;color:var(--tx);transition:.25s}
.mtowns .ic{width:17px;height:17px;flex:none;color:var(--pk);transition:.25s}
.mtowns a:hover,.mtowns a:focus-visible{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.1);color:#fff;transform:translateY(-2px)}
.mtowns a:hover .ic{color:var(--cy)}
.mtowns a[aria-current]{border-color:rgba(244,114,182,.6);background:rgba(244,114,182,.12)}
.mfoot .quick a{color:var(--cy)}
/* Company: a compact list under its own button. */
.has-drop{position:relative}
.has-drop .mega{left:50%;right:auto;width:340px;margin-left:-170px}
.mlinks{position:relative;z-index:2;list-style:none;display:grid;gap:2px;padding:14px}
.mlinks a{display:flex;align-items:center;gap:13px;padding:10px 12px;border-radius:14px;transition:.2s}
.mlinks a:hover,.mlinks a:focus-visible{background:rgba(255,255,255,.07)}
.mlinks a[aria-current]{background:rgba(139,92,246,.18)}
.mlinks__ic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,rgba(139,92,246,.45),rgba(34,211,238,.28))}
.mlinks__ic .ic{width:18px;height:18px;color:#fff}
.mlinks b{display:block;font-size:14.5px;font-weight:600;color:var(--tx);line-height:1.3}
.mlinks em{display:block;font-style:normal;font-size:12px;color:var(--mut);font-weight:300;line-height:1.4;margin-top:1px}
.mlinks a:hover b{color:#fff}
@media(max-width:1180px){.mtowns{grid-template-columns:repeat(3,1fr);padding:14px 18px 20px}}
@media(max-width:900px){
  .menu-btn{display:flex;justify-content:space-between;width:100%;padding:12px 14px;font-size:15px;border-radius:14px}
  .has-drop{position:static}
  .has-drop .mega{width:auto;margin-left:0}
  .mtowns{grid-template-columns:1fr 1fr;gap:8px;padding:12px}
  .mtowns a,.mtown-plain{padding:11px 12px;font-size:14px;min-height:44px}
  .mlinks{padding:8px}
  .mlinks em{display:none}
  .mlinks a{min-height:44px;padding:8px 10px}
  .mlinks__ic{width:32px;height:32px;border-radius:10px}
  .has-area .mfoot .quick,.has-area .mfoot .qlab{display:inline-flex;gap:8px}
}
@media(prefers-reduced-motion:reduce){.mtowns a,.mlinks a{transition:none}.mtowns a:hover{transform:none}}

/* ---------- reviews slider (core's data-prt-slider; Glow's own controls) ---------- */
.gslider{position:relative}
.revs--slider{display:flex;--prt-slides:3;--prt-gap:22px;padding:8px 2px 14px;margin:-8px -2px 0}
.revs--slider>.rev{display:flex;flex-direction:column}
.revs--slider>.rev:hover{transform:none}
.revs--slider>.rev .who{margin-top:auto}
.revs--slider:focus-visible{outline:3px solid var(--cy);outline-offset:6px;border-radius:24px}
.gslider__bar{display:flex;align-items:center;gap:16px;margin-top:22px}
.gslider:has(.revs--slider.is-static) .gslider__bar{display:none}
.gslider__dots{display:flex;flex-wrap:wrap;gap:4px;flex:1;justify-content:center}
.gslider .prt-slider__dot{width:28px;height:28px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center}
.gslider .prt-slider__dot::before{content:'';width:9px;height:9px;border-radius:99px;background:rgba(255,255,255,.46);box-shadow:none;transition:.3s}
.gslider .prt-slider__dot:hover::before{background:rgba(255,255,255,.75)}
.gslider .prt-slider__dot.is-active::before{width:26px;background:linear-gradient(90deg,var(--cy),var(--pk))}
.gslider__arrows{display:flex;gap:10px}
.gslider__btn{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--tx);
  border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:.25s}
.gslider__btn:hover{border-color:rgba(34,211,238,.6);color:#fff;background:rgba(34,211,238,.12)}
.gslider__btn:disabled{opacity:.4;cursor:default}
.gslider__btn[hidden]{display:none}
.gslider__btn .ic,.gslider__btn svg{width:19px;height:19px}
.gslider__toggle svg{width:15px;height:15px}
[data-prt-prev] .ic{transform:scaleX(-1)}
@media(max-width:1080px){.revs--slider{--prt-slides:2}}
@media(max-width:700px){.revs--slider{--prt-slides:1;--prt-gap:14px}.gslider__bar{gap:10px;flex-wrap:wrap;justify-content:space-between}.gslider__dots{order:-1;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.gslider .prt-slider__dot::before,.gslider__btn{transition:none}}

/* ---------- category pages: the whole BookFlow card opens the rental ---------- */
/* BookFlow stretches the name link over the card; the body must not be the
   link's positioned box, or only the text area is clickable. Quantity and
   Add to Cart sit above the stretched link. */
html body.prt-glow .wdz-browse__card{position:relative;cursor:pointer}
html body.prt-glow .wdz-browse__card-body{position:static!important}
html body.prt-glow .wdz-browse__card-name a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
html body.prt-glow .wdz-browse__card-actions{position:relative;z-index:2;cursor:default}
html body.prt-glow .wdz-browse__card:has(.wdz-browse__card-name a:focus-visible){outline:3px solid var(--cy);outline-offset:3px}
html body.prt-glow .wdz-browse__card-name a:focus-visible{outline:0}
/* Phones: categories two to a row (one per row made the list very long), reviews dots on their own row. */
@media(max-width:620px){
  .cats{grid-template-columns:1fr 1fr;gap:12px}
  .cat p{display:none}
  .cinner{padding:12px 13px 14px}
  .cat h3{font-size:15px;line-height:1.25;margin-bottom:8px}
  .cat .go{font-size:10px;letter-spacing:.12em}
}

/* =====================================================================
   Polish pass 2026-10-06
   ===================================================================== */
/* Buttons: the same violet-to-pink, a shade deeper so white text reads
   at 4.5:1 or better across the whole pill (the bright pink end was 2.7:1). */
:root{--gbtn:linear-gradient(120deg,#7c3aed,#c026d3 58%,#db2777);
  --gpanel:linear-gradient(135deg,#6d28d9 0%,#8b26c9 48%,#be185d 100%)}
.btn-p{background:var(--gbtn)}

/* Mega menus: fully opaque (a nested backdrop blur does not work under the
   blurred header, so the old 95% panel let headings show through). */
body>header .mpanel{background:linear-gradient(155deg,#140e42,#261a72);backdrop-filter:none;-webkit-backdrop-filter:none}

/* The shared page sections, in Glow's look rather than the core defaults:
   gradient pills instead of a lone crimson, glass ghosts, neon panels. */
.prts .prts-btn:not(.prts-btn--ghost),body .prt-blog-btn--primary,body .prt-blog-btn--small{background:var(--gbtn);border-color:transparent;color:#fff;box-shadow:0 10px 30px -12px rgba(139,92,246,.85)}
.prts .prts-btn:not(.prts-btn--ghost):hover{filter:none;transform:translateY(-2px)}
.prts .prts-btn{transition:transform .25s,border-color .25s,background .25s}
.prts .prts-btn--ghost{background:var(--glass);border:1px solid var(--line);color:var(--tx);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.prts .prts-btn--ghost:hover{border-color:rgba(34,211,238,.6);color:#fff}
body .prts-band__list,body .prts-fqcard,body .prts-rfeat__box,body .prts-ctabox,body .prts-strip.is-bold .prts-strip__box,body .prt-blog-news__in{
  background:var(--gpanel);border:1px solid rgba(255,255,255,.16);box-shadow:0 40px 80px -40px rgba(124,58,237,.75),inset 0 1px 0 rgba(255,255,255,.12)}
body .prts-values__card,body .prts-minirev__card,body .prts-box{background:var(--glass);border-color:var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
/* FAQ page: its header and topic bar match the glass page headers. */
body .prts-fqhero{position:relative;background:linear-gradient(150deg,rgba(139,92,246,.22),rgba(56,189,248,.07) 52%,rgba(244,114,182,.14)),rgba(var(--inkDeep),.45);border-bottom:1px solid var(--line)}
body .prts-fqhero::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cy),var(--vio) 28%,var(--pk) 54%,var(--sun) 78%,var(--mint));opacity:.9}
body .prts-fqtabs{background:rgba(var(--inkR),.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}

/* Item page: the details card hugs its content instead of stretching into an
   empty box beside the taller calendar. */
@media(min-width:1025px){html body.prt .prt-item>.simpleCart_ioShelfItem.wdz-itemcal-row>.io_product_infobox{align-self:start!important}}

/* Text + photo: the photo matches the text panel's height. */
@media(min-width:901px){.gtext--split{align-items:stretch}.gtext__ph{aspect-ratio:auto;min-height:340px}}

/* Inventory grid: 4, 8, 12… categories fill rows of four on wide screens
   instead of leaving an orphan pair under rows of three. */
@media(min-width:1100px){html body.prt .io_catdiv2:not(.list-view):has(> :nth-child(4n):last-child){grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:22px!important}}
/* About stats band: two by two on phones instead of a tall single column. */
@media(max-width:600px){body .prts-band__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}body .prts-band__list b{font-size:2rem}}
/* Item page, one column (≤1024px): the details card and the calendar line up
   with the photo above them rather than three different widths. */
@media(min-width:621px) and (max-width:1024px){html body.prt .prt-item>.simpleCart_ioShelfItem.wdz-itemcal-row>.io_product_infobox,html body.prt .prt-item>.simpleCart_ioShelfItem.wdz-itemcal-row>.wdz-itemcal{width:100%!important;max-width:720px!important;margin-left:auto!important;margin-right:auto!important;justify-self:center}}
/* Inventory grid on phones: one full-width column (it was a 224px box holding
   a 250px card, leaving wide empty sides). */
@media(max-width:560px){html body.prt .io_catdiv2:not(.list-view){width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;grid-template-columns:minmax(0,1fr)!important}
  html body.prt .io_catdiv2:not(.list-view)>.io_item2_listcat{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
  html body.prt .io_catdiv2:not(.list-view) .cat_div,html body.prt .io_catdiv2:not(.list-view) .cat_img{width:100%!important}}

/* ---------- Round 1 (desktop rhythm) ---------- */
/* Section spacing on the built pages: Glow's own sections there are 46px top
   and bottom (92px between two), so the shared ones use the same instead of
   the full 92px each, which left 180-245px gaps between them. */
.prt-sections{--prt-section-y:46px}
@media(max-width:620px){.prt-sections{--prt-section-y:34px}}
/* The shared sections speak Glow: the pink kicker over a heading and the neon
   gradient on its accent words, like the home page (they were solid violet). */
.prts .prts-eyebrow{font-size:12px;letter-spacing:.22em;font-weight:600;color:var(--pk);margin-bottom:14px}
.prts :is(h1,h2):not(.prts-ctabox h2) em,.pe-row h3 em,.prts-strip:not(.is-bold) .prts-strip__title em{
  background:linear-gradient(100deg,var(--cy),var(--vio) 45%,var(--pk));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Event pages' rental picks: Add to Cart is a Glow gradient pill, not a square violet block. */
.pe-pick__actions .prt-atc:not([class*="btn"]){background:var(--gbtn);border:0;border-radius:999px;padding:11px 20px;color:#fff;
  box-shadow:0 10px 30px -12px rgba(139,92,246,.85);transition:transform .25s}
.pe-pick__actions .prt-atc:not([class*="btn"]):hover{filter:none;transform:translateY(-2px)}
.pe-pick__actions .prt-atc:focus-visible{outline:3px solid var(--cy);outline-offset:3px}
/* Review slider: the snap point respects the 2px side padding, so the cards
   line up with the heading and the controls (they sat 2px left of the grid). */
.revs--slider{scroll-padding-inline:2px}

/* =====================================================================
   Round 2 (phones, 320-414)
   ===================================================================== */
/* Core sections and the blog use the theme's own side gutter (core reads --prt-gutter). */
body{--prt-gutter:28px}
@media(max-width:620px){body{--prt-gutter:18px}}
@media(max-width:900px){
  /* Menu button: a 46px square (it was 40px wide), with a close cross while the menu is open. */
  .burger{display:grid;place-items:center;width:46px;height:46px;padding:0;font-size:17px;line-height:1}
  /* "View all inventory" / "See the service area" under the phone menu's panels. */
  .mall{display:inline-flex;align-items:center;min-height:44px}
  .mtag{font-size:9px}
}
@media(max-width:620px){
  /* Only the menu bar stays stuck while scrolling: the hours/phone line scrolls away
     with the page, so the stuck header is 77px instead of 116px. */
  .topbar{padding:0}
  .topbar .wrap{height:38px;flex-wrap:nowrap;font-size:13px}
  .topbar .wrap>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body>header{top:-39px}
  html{scroll-padding-top:104px}
  /* Hero: less air above the badge and under the photos, so the heading starts in the first screen. */
  .hero{padding:36px 0 52px}
  .hgrid .eyebrow{letter-spacing:.12em;line-height:1.5;border-radius:18px}
  /* Footer lists: 44px rows (they were 40px). */
  .fcol ul li,.fcol ul a{min-height:44px}
  .fcol ul a{min-width:44px}
  /* Rental cards: the name and Book It are 44px targets; small print up to a readable size. */
  .cbody h3 a{display:block;padding:10px 0;margin:-10px 0}
  .mini{display:inline-flex;align-items:center;min-height:44px}
  .cbody .meta span{font-size:13px}
  .price small,.einner>span:last-child{font-size:11.5px}
  .cat .go{font-size:11px;letter-spacing:.08em}
  .sbody p{font-size:14.5px}
  .who span{font-size:13px}
  /* Breadcrumbs: 14px, with a 44px tap area that the negative margin takes back. */
  .crumbs ol{font-size:14px}
  .crumbs a{display:inline-block;padding:12px 2px;margin:-12px -2px}
  /* Contact tiles: the whole tile is the phone / email link. */
  .gtiles li{position:relative}
  .gtiles li a::after{content:"";position:absolute;inset:0;border-radius:inherit}
  .gtiles small{font-size:11.5px}
  /* Review slider: all the dots on one row (12 dots wrapped to two), each a 44px-tall target. */
  .gslider__dots{flex-wrap:nowrap;gap:0;min-width:0}
  .gslider .prt-slider__dot{flex:0 1 28px;width:auto;min-width:0;height:44px}
}
/* At 320px the cart button keeps its 44px (the logo name gives way instead). */
@media(max-width:380px){.navcart{width:44px;height:44px}body>header .bar{gap:12px}body>header .logo{gap:9px}}

/* =====================================================================
   Round 3 (tablets, 768-1180 portrait and landscape)
   ===================================================================== */
/* Landscape tablets: like phones, only the menu bar stays stuck; the hours/phone line
   scrolls away (the stuck header was 121px of a 768px-tall screen, now 82px). */
@media(min-width:621px) and (max-width:1180px){
  .topbar{padding:0}
  .topbar .wrap{height:38px;flex-wrap:nowrap}
  .topbar .wrap>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body>header{top:-39px}
  html{scroll-padding-top:112px}
}
/* Small print on tablets: the same floors as phones (labels were 10-10.5px). */
@media(min-width:621px) and (max-width:1180px){
  .price small,.einner>span:last-child{font-size:11.5px}
  .pill,div.tag .k{font-size:11px}
  .logo small{font-size:10.5px}
  .cbody .meta span{font-size:13px}
  .sbody p{font-size:14.5px}
  .who span{font-size:13px}
}
/* Categories: four across down to the burger breakpoint (two across made four rows of
   300px cards on a landscape tablet). */
@media(min-width:901px) and (max-width:1080px){.cats{grid-template-columns:repeat(4,1fr);gap:16px}}
/* How it works: three across on portrait tablets instead of one 520px column. */
@media(min-width:700px) and (max-width:900px){
  .ghow{grid-template-columns:repeat(3,1fr);max-width:none;gap:16px}
  .ghow__i{padding:0 16px 26px}
  .ghow h3{font-size:17px}
}
/* FAQ: on one column the photo is a wide band, not a 440px block above the questions. */
@media(min-width:621px) and (max-width:900px){.faqvis{aspect-ratio:21/9}}
/* Item page: "$250.00" and "per day" ran together in the three-column layout (1101-1180). */
body.prt .io_product_infobox .io_product_price_box{grid-template-columns:auto auto!important;justify-content:start;align-items:baseline;column-gap:.5em}
/* Touch screens with the desktop layout (landscape tablets): 44px targets. */
@media(pointer:coarse){
  .menu>li>a,.menu-btn{min-height:44px}
  .mall{display:inline-flex;align-items:center;min-height:44px}
  .mfoot .quick a{position:relative}
  .mfoot .quick a::after{content:"";position:absolute;left:0;right:0;top:-5px;bottom:-5px}
  .fcol ul a{min-width:44px}
  .cbody h3 a{display:block;padding:10px 0;margin:-10px 0}
  .mini{display:inline-flex;align-items:center;min-height:44px}
  .crumbs a{display:inline-block;padding:12px 2px;margin:-12px -2px}
  .gtiles li{position:relative}
  .gtiles li a::after{content:"";position:absolute;inset:0;border-radius:inherit}
  .gslider .prt-slider__dot{height:44px}
}

/* =====================================================================
   Round 4 (keyboard)
   ===================================================================== */
/* Focus alone no longer opens a menu panel: Tab goes Inventory > Service Area > Company >
   phone, cart, Book Now (8 stops from the skip link to Book Now instead of 40). Enter, Space or Arrow Down
   opens a panel (theme.js adds .open); hover still opens it for the mouse. */
@media(min-width:901px){
  .has-mega:focus-within:not(:hover):not(.open) .mega{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px)}
  .has-mega.open>[aria-controls] .chev{transform:rotate(-135deg) translate(-2px,-1px);opacity:1}
}

/* =====================================================================
   Round 6 (colour and states)
   ===================================================================== */
/* CTA band: the sky-blue middle of the gradient left white text at 2.4-2.7:1 over the photo.
   Same violet > blue > pink sweep, deeper shades (white text 5.9-7.1:1 on each stop). */
.cta::before{background:linear-gradient(120deg,rgba(109,40,217,.94),rgba(3,105,161,.92) 50%,rgba(190,24,93,.93))}
.cta :focus-visible{outline-color:#fff}
/* "How it works" numbers: white on violet > cyan was 2.4:1 at the cyan end. */
.step .n{background:linear-gradient(135deg,#6d28d9,#0e7490)}
/* Review initials: `.who span` (the muted meta line) also matched the avatar, so the initials
   were lavender 12px on the violet > pink disc (1.7:1). */
.who .av{color:#fff;font-size:15px;background:var(--gbtn)}
/* Footer Book Now: the footer's cyan link hover turned the button text cyan on the gradient (2.6:1). */
.fcol a.btn-p:hover,.fcol a.btn-p:focus-visible{color:#fff}
/* Phones: the five 500-600px aurora blobs fill a small screen, so the hero and page headers sat on a
   pale lilac haze and the muted lines (lede, "Setup and takedown…", crumbs) fell to 2.3-3.3:1.
   The same haze sits behind glass cards and core sections on every screen as you scroll
   (muted copy 2.7-3.9:1, violet links 2.2-3.3:1 where a blob passes behind), so the aurora is a
   step dimmer everywhere (most on phones), the muted lavender a step lighter, and core's
   brand-violet text in the page sections uses the lighter violet. */
.aurora{opacity:.62}
@media(max-width:1100px){.aurora{opacity:.5}}
@media(max-width:760px){.aurora{opacity:.4}}
:root{--mut:#C4C6EC}
.prts,.prt-blog,.prt-rel,.gslider{--prt-primary-text:#C4B5FD}
/* Small pink/violet/cyan labels over the blob-tinted bands were 3.5-3.7:1 (11.5-13px caps):
   the lighter tint of the same colours (4.5:1+ on the lightest band). */
.klabel,.prts .prts-eyebrow{color:#F9A8D4}
.prts .prts-chips__label{color:#C4B5FD}
.crumbs a{color:#67E8F9}
/* Newsletter panel (violet > pink): the brand-violet ring vanished on it. */
.prt-blog-news :focus-visible{outline-color:#fff}
/* Photo page headers on phones/tablets: the copy spans the whole panel, so its right half sat on
   the lightly washed photo (lede and eyebrow 3.3:1 over a bright inflatable). Even wash there. */
@media(max-width:900px){.gph--img .gph__panel{background:linear-gradient(170deg,rgba(20,14,66,.93) 0%,rgba(30,22,96,.86) 55%,rgba(91,45,190,.62) 100%),var(--gph-img) center/cover}}
/* Cyan eyebrow pills over the orbs/haze (3.5-3.9:1 at 12px caps): the lighter cyan. The glass
   phone button on a photo header gets a darker glass so its white label holds over the picture. */
.eyebrow{color:#67E8F9}
.gph--img .btn-g{background:rgba(20,14,66,.6)}
.ctop .badge{color:#D9F99D}
/* Skip link: white on the flat pink was 2.7:1; the button gradient (4.6:1+). */
.skip:focus{background:var(--gbtn)}

/* ===== Round 7 (performance) =====
   Poppins' stand-in while its files load: Arial scaled to Poppins' width (measured: 111% regular, 107% bold) with
   Poppins' line metrics, so when the real font arrives headings and the page-header panel keep their size instead of
   re-wrapping and pushing the page down (the panel's orbs and ring moved with it: CLS up to 0.25 on a slow phone). */
@font-face{font-family:'Poppins Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('Helvetica'),local('Roboto');font-weight:100 549;size-adjust:111%;ascent-override:94.6%;descent-override:31.5%;line-gap-override:9%}
@font-face{font-family:'Poppins Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold'),local('Roboto Bold');font-weight:550 749;size-adjust:107%;ascent-override:98.1%;descent-override:32.7%;line-gap-override:9.3%}
/* Round 8: Poppins ExtraBold/Black run 1.6-2.7% wider than its Bold (measured on headline strings), so one bold face left the
   800/900 headings narrower in the fallback: the FAQ and Reviews page-header h1 sat on one line and jumped to two (66px) when
   Poppins arrived. Each weight band gets its own scale; the line metrics are Poppins' own, divided by the scale. */
@font-face{font-family:'Poppins Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold'),local('Roboto Bold');font-weight:750 849;size-adjust:108.7%;ascent-override:96.6%;descent-override:32.2%;line-gap-override:9.2%}
@font-face{font-family:'Poppins Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold'),local('Roboto Bold');font-weight:850 900;size-adjust:109.7%;ascent-override:95.7%;descent-override:31.9%;line-gap-override:9.1%}
body{font-family:'Poppins','Poppins Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
/* Page-header photo: a 1200px copy on phones (glow_header_photo() preloads the same file per width). */
@media(max-width:620px){.gph--img .gph__panel{background:linear-gradient(170deg,rgba(20,14,66,.93) 0%,rgba(30,22,96,.86) 55%,rgba(91,45,190,.62) 100%),var(--gph-img-s,var(--gph-img)) center/cover}}
/* Phones: six favourites, not nine. Stacked one per row the nine ran ~4,000px, and each card's photo is the booking
   platform's 750px PNG (~760KB): the last three alone were 2.3MB on a phone. Hidden cards' lazy photos never load. */
@media(max-width:620px){.prods>.card:nth-child(n+7){display:none}}

/* ===== Round 8 (booking flow) ===== */
/* Inventory panel photos are held in data-* until the menu is used (glow_defer_img()); the <noscript> copy shows without JS. */
.mshot img[data-src]{display:none}
/* Item page on phones: the price box and the booking buttons fill the details card, under its centred title, instead of
   hanging left at their own width (228/136/180px of 310). */
@media(max-width:620px){
  html body.prt .prt-item .io_product_infobox .io_product_price_box{width:100%!important;box-sizing:border-box;justify-content:center}
  html body.prt .prt-item .io_product_infobox div:has(>[class*="add_cart_"]){flex:1 1 100%;width:100%}
  html body.prt .prt-item .io_product_infobox :is([class*="add_cart_"],.delivery_charge_check_container,[class*="check_delivery_"]){width:100%}
  html body.prt .prt-item .io_product_infobox :is(#bookNowBtn,#checkDeliveryButton,#calcPriceOpenMap,.item_add_set_date){display:flex!important;width:100%!important;justify-content:center;align-items:center;gap:8px;box-sizing:border-box}
}

/* ===== Round 9 (typography) ===== */
/* Headings break into even lines instead of leaving one word behind ("planning?", "answers", "rental?" at 1440; FAQ
   questions, event-pick names and blog titles at 390); running text avoids a lone last word. Longhands on purpose: the
   `text-wrap` shorthand would also reset a `white-space:nowrap` set elsewhere. :where() keeps any explicit rule winning. */
:where(h1,h2,h3,h4,h5,h6,summary,.prts-fqq,.pe-pick__name,.hero-thin,.prts-strip__title,.stat span){text-wrap-style:balance}
:where(p,li,dd,blockquote,figcaption,.lede,.sub,.catDescriptionIO,.io_cat_description,.io_cat_longdescription){text-wrap-style:pretty}
/* Measure: centred intros ran 87-139 characters a line. */
.ctop .sub{max-width:52ch;margin-inline:auto}
body.prt .prt-io .entry-content>center p{max-width:64ch;margin-inline:auto;font-weight:400;color:var(--mut);font-size:16.5px;line-height:1.7}
body.prt .prt-io .entry-content>center p strong{font-weight:inherit}
body.prt .prt-io .entry-content>center p br{display:none}
body.prt .prt-io .entry-content>center p{text-wrap-style:balance}
/* Weights: the hero's thin line asked for 200, which is not bundled (the browser drew 300); say 300. Core's big numbers
   (about stats/band, story badge, review scores, package prices) were plain bold 700 next to Glow's 800 stats. */
h1 .thin,.hero-thin{font-weight:300}
.prts :is(.prts-stat b,.prts-band__list b,.prts-story__badge b,.prts-minirev__score>b,.pe-pack__price b,.prts-rsum__score>b){font-weight:800;letter-spacing:-.03em}
/* Leading: two-line FAQ questions (phones) sat at the body's 1.65; the light hero line at 1.3 on three phone lines. */
#faq summary,.gfaq summary{line-height:1.4}
@media(max-width:620px){.hero-thin{line-height:1.4}}
/* Item page, three columns (>1100px): the details column is ~270px, so a 35px title took four lines for "Party Palace Double
   Lane Combo - Wet or Dry" and the calendar's 30px heading four more beside it. Smaller title; the calendar heading steps
   below it. */
@media(min-width:1101px){
  html body.prt .prt-item .io_product_title{font-size:clamp(26px,2.1vw,30px)!important;line-height:1.12!important}
  html body.prt-glow .wdz-itemcal .wdz-itemcal__title{font-size:22px!important;line-height:1.2!important}
}
/* Hero trust line: one inline-block per point, so phones break between points, not inside "Fully insured". */
.hero-thin__i{display:inline-block}
/* Counts inside core's 800 labels (FAQ tabs, safety checklist, review filters) computed "bolder" = 900, the only Black text in
   Glow, so /faq/, /safety/ and /testimonials/ fetched poppins-900 for a few digits. Pinned to 800 (as B did for Splash). */
.prts :is(.prts-fqtabs a b,.prts-check__count b,.prts-rwall__filters button b){font-weight:800}

/* ===== Round 10 (imagery) ===== */
/* Cover photos fill their frames on Elementor-built pages (home, about, events, safety, FAQ, reviews, towns): Elementor's
   `.elementor img{height:auto;border-radius:0}` loads after this sheet and our own `.prt-page .entry-content img` (0,2,1)
   both beat `.ph img`, so hero/about/clean/events/FAQ/CTA photos stopped partway down with the gradient showing below. */
body .ph img,.prt-page .entry-content .ph img{height:100%;border-radius:0}
body .gradar__core img,.prt-page .entry-content .gradar__core img{height:100%;border-radius:20px}
@media(max-width:620px){body .gradar__core img,.prt-page .entry-content .gradar__core img{border-radius:15px}}
/* People photos in the FAQ and text frames: Site content's portrait family photo (and the jumping kids) lost their heads
   to a centred crop on event and town pages. Weight the crop toward the top third, like the About collage does. */
.faqvis img,.gtext__ph img{object-position:center 25%}

/* ===== Round 11 (motion & interaction) ===== */
/* Ticker: a pause button at the right end of the band (hover still pauses it). The points fade out before they reach
   it; with reduced motion the band is still, so the button and the fade go. */
.gticker__view{overflow:hidden;
  --gt-btn:calc(max(18px,(100% - var(--max)) / 2 + 28px) + 44px);
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--gt-btn) - 96px),transparent calc(100% - var(--gt-btn) - 12px));
  mask-image:linear-gradient(90deg,#000 calc(100% - var(--gt-btn) - 96px),transparent calc(100% - var(--gt-btn) - 12px))}
.gticker.is-paused .gticker__track{animation-play-state:paused}
.gticker__pause{position:absolute;z-index:2;top:50%;right:max(18px,calc((100% - var(--max)) / 2 + 28px));transform:translateY(-50%);
  width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;color:#fff;
  border:1px solid rgba(255,255,255,.22);background:rgba(var(--inkDeep),.72);box-shadow:0 0 18px -4px rgba(34,211,238,.45);
  transition:border-color .25s,background-color .25s,box-shadow .25s,transform .12s}
.gticker__pause:hover{border-color:rgba(34,211,238,.7);background:rgba(34,211,238,.16);box-shadow:0 0 22px -2px rgba(34,211,238,.6)}
.gticker__pause:active{transform:translateY(-50%) scale(.92)}
.gticker__pause svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.gticker__pause .tp-play{display:none;fill:currentColor;stroke-width:1.5}
.gticker__pause[aria-pressed="true"] .tp-pause{display:none}
.gticker__pause[aria-pressed="true"] .tp-play{display:block}
@media(prefers-reduced-motion:reduce){
  .gticker__pause{display:none}
  .gticker__view{-webkit-mask-image:none;mask-image:none;overflow-x:auto}
}
/* Hover/press transitions name their properties instead of `all`, so nothing that changes size or spacing (a resize, a
   class swap) is ever animated; only colour, shadow, opacity and transform glide. */
.menu>li>a,.menu-btn,.chev,.btn,.mshot::before,.mshot::after,.mmeta b,.mmeta em,.quick a,.mall,.cat,.cat::after,.cat p,
.card,.heart,.mini,.evt,.rev,#faq details,#faq summary::after,.gfaq details,.gfaq summary::after,.fcol a,.fcol li,.areas a,
.navcart,.pager .page-numbers,.search-form .search-submit,.post-navigation a,.mtowns a,.mtowns .ic,.mlinks a,
.gslider__btn,.gpills a,.ghow__i,.fsoc a,.logo,.cat .ph img,.card .ph img,.evt .ph img{
  transition-property:color,background-color,border-color,box-shadow,opacity,transform,filter}
.js .reveal{transition-property:opacity,transform}
/* Press feedback: buttons sink back a touch while pressed (they lift on hover). */
.btn:active,.navcart:active,.burger:active,.gslider__btn:active:not(:disabled){transform:translateY(0) scale(.97);transition-duration:.08s}
/* Hover cues that were missing: the top-bar phone number, breadcrumb links, the platform's "Set Event Date". */
.topbar a[href^="tel:"]:hover b{color:#fff;text-decoration:underline;text-underline-offset:3px}
.crumbs a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
body.prt .pageDateRangeWrapper .elementor-button{transition:transform .3s,box-shadow .3s!important}
body.prt .pageDateRangeWrapper .elementor-button:hover{transform:translateY(-2px)!important;box-shadow:0 18px 44px -12px rgba(244,114,182,.8)!important}
body.prt .pageDateRangeWrapper .elementor-button:active{transform:translateY(0) scale(.97)!important}
/* Reduced motion on every page: Elementor-built pages already drop all transitions (Elementor's own `html *` rule);
   the platform, blog, search and 404 pages kept 0.25–0.3s hover slides. Same rule here, so every page behaves alike. */
@media(prefers-reduced-motion:reduce){
  /* :is(html,#prt-rm) counts as an id, so this also beats the class-based !important transitions on the platform's
     buttons (core, plugin and this theme's own); it only ever matches through html. */
  :is(html,#prt-rm) *,:is(html,#prt-rm) *::before,:is(html,#prt-rm) *::after{transition-delay:0s!important;transition-duration:0s!important}
}
/* Touch screens: :hover sticks to whatever was tapped, so a card or pill stayed lifted and its photo zoomed (back on the
   page, or under the finger while scrolling). No lift/zoom there; colour and border cues stay. Link cards give a small
   press instead. */
@media(hover:none){
  .mcard:hover,.cat:hover,.card:hover,.evt:hover,.rev:hover,.ghow__i:hover,.gpills a:hover,.post-navigation a:hover,
  .mtowns a:hover,html body.prt-glow .wdz-browse__card:hover{transform:none}
  .mcard:hover .mshot img,.card:hover .ph img,.evt:hover .ph img,
  html body.prt-glow .wdz-browse__card:hover .wdz-browse__card-img{transform:none}
  .cat:active,.evt:active,.mcard:active{transform:scale(.985);transition-duration:.08s}
}

/* ——— Round 12 polish (inner pages + lead notes) ——— */
/* "Pause animations" (WCAG 2.2.2, as Splash): the aurora blobs, clouds, foam, confetti, balloons, page-header orbs and
   ring, hero photos, radar, ticker never stopped. The footer button and the ticker's own button still them all; the
   choice is remembered from page to page (html.gl-still, set before the page paints by the head script). */
.gl-still :is(.blob,.cloud,.foambank,.foam i,.confetti i,.balloons span,.dot,.hbig,.hsm,.t1,.t2,.gph__orb,.gph__ring,
  .gticker__track,.gradar__ring,.gradar__sweep,.gradar__town,.gtext__ph){animation-play-state:paused!important}
.fmotion{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--glass);color:var(--mut);font:inherit;font-size:13px;font-weight:400;
  transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
.fmotion:hover{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.12);color:#fff}
.fmotion:active{transform:scale(.97);transition-duration:.08s}
.fmotion svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.fmotion .tp-play{display:none;fill:currentColor;stroke-width:1.5}
/* Its words say what it will do ("Pause animations" / "Play animations"). */
.fmotion .fm-play,.fmotion[data-still="true"] .fm-pause,.fmotion[data-still="true"] .tp-pause{display:none}
.fmotion[data-still="true"] .fm-play,.fmotion[data-still="true"] .tp-play{display:block}
.fmotion[hidden]{display:none}
.fbot{align-items:center}
.fbot .fmotion{margin-left:auto}
@media(max-width:620px){.fbot{justify-content:center;text-align:center}.fbot .fmotion{margin-inline:auto}}
/* Reduced motion: nothing loops, so there is nothing to pause. */
@media(prefers-reduced-motion:reduce){.fmotion{display:none!important}}
/* Lead note R12: transitions that still animated layout or "all" — the slider dot's pill (width now changes at once,
   colour still fades), the menu photos and their overlays, the menu card arrow. */
.gslider .prt-slider__dot::before{transition-property:background-color,opacity,box-shadow}
.mshot{transition-property:box-shadow,border-color,transform,opacity}
.mshot::before,.mshot::after{transition-property:opacity,background-color}
.mmeta b i{transition-property:opacity,transform,color}
.mmeta em{transition-property:color,opacity}
/* Phones: at the very end of the page FrontDesk's chat bubble sits over the bottom-right corner, which covered the
   right end of "Pause animations" at 320px. The footer ends below the bubble when FrontDesk is on the page. */
@media(max-width:620px){body:has(#wdz-frontdesk-root) .fbot{padding-bottom:92px}}
/* Two by two on phones: when one label wraps to more lines, both figures in that row stay on one line (top-aligned). */
@media(max-width:600px){body .prts-band__list li{align-content:start}}
/* ===== Round 13 polish: service area hub + town pages ===== */
/* The shared towns-and-map section (/service-area/ and every town page) showed Google's bright daytime map in the
   dark theme; it now gets the same night treatment as Glow's contact map, on a dark ground while it loads. */
.prts-amap__map{background:#151233;border-color:var(--line)}
.prts-amap__map iframe{filter:invert(.9) hue-rotate(200deg) saturate(.75) brightness(.95)}
/* Footer towns: a town without a page is a plain chip (it linked to the page you were on); on a town page that
   town's chip is marked as the current page. */
.areas span{font-size:12.5px;padding:6px 13px;border-radius:999px;background:var(--glass);border:1px solid var(--line)}
.areas a[aria-current]{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.12);color:#fff}
@media(max-width:900px),(pointer:coarse){.areas span{display:inline-flex;align-items:center;min-height:44px;padding:6px 16px}}
/* ===== Round 14 polish: blog, search, 404, empty states ===== */
/* A post with no photo showed a flat navy panel (the featured card's left half, ~650×860 of nothing): it now gets a
   neon picture of its own (pink and cyan glows over violet, a soft dot grid) with the icon in a glass tile. The three
   cards of a row turn the glows round so a row of photo-less posts does not look copied. */
.prt-blog-card__ph,.prt-blog-feature__ph{position:relative;isolation:isolate;overflow:hidden;color:#fff;
  background:radial-gradient(90% 80% at 12% 8%,rgba(244,114,182,.55),transparent 60%),radial-gradient(90% 80% at 92% 96%,rgba(34,211,238,.42),transparent 60%),linear-gradient(150deg,#4c1d95,#241a6b 70%)}
.prt-blog-card:nth-child(3n+2) .prt-blog-card__ph{background:radial-gradient(90% 80% at 90% 10%,rgba(34,211,238,.5),transparent 60%),radial-gradient(90% 80% at 10% 95%,rgba(139,92,246,.6),transparent 60%),linear-gradient(200deg,#3b1d8f,#241a6b 70%)}
.prt-blog-card:nth-child(3n+3) .prt-blog-card__ph{background:radial-gradient(90% 80% at 50% 0,rgba(251,191,36,.38),transparent 60%),radial-gradient(90% 80% at 85% 100%,rgba(244,114,182,.5),transparent 60%),linear-gradient(170deg,#4c1d95,#241a6b 70%)}
.prt-blog-card__ph::before,.prt-blog-feature__ph::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(rgba(255,255,255,.2) 1px,transparent 1.6px) 0 0/18px 18px;
  -webkit-mask:radial-gradient(closest-side,#000,transparent);mask:radial-gradient(closest-side,#000,transparent)}
.prt-blog-card__ph .ic,.prt-blog-feature__ph .ic{box-sizing:border-box;width:1.75em;height:1.75em;padding:.42em;border-radius:.5em;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);box-shadow:0 0 0 6px rgba(255,255,255,.04),0 0 46px rgba(139,92,246,.75);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.prt-blog-card__ph{font-size:2.2rem}
.prt-blog-card:hover .prt-blog-card__ph .ic,.prt-blog-feature__card:hover .prt-blog-feature__ph .ic{transform:translateY(-4px) rotate(-6deg)}
/* No results / empty archive (core's card: icon, title, advice, rental pills, buttons): a glass panel with the icon
   in a neon tile, like Glow's other boxes, instead of a flat surface card. */
.prt-blog-empty{border-radius:28px;border-color:var(--line);box-shadow:0 30px 70px -36px rgba(124,58,237,.65);
  background:linear-gradient(var(--glass),var(--glass)),rgba(var(--inkDeep),.45);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.prt-blog-empty__ic{width:64px;height:64px;border-radius:20px;color:#fff;transform:rotate(-6deg);
  background:linear-gradient(135deg,var(--vio),var(--cy));box-shadow:0 0 34px rgba(139,92,246,.6)}
.prt-blog-empty__ic .ic{transform:rotate(6deg)}
.prt-blog-empty__text{color:var(--mut)}

/* Round 17 (editing): a cleaning-steps list of 1, 2 or 4 (Elementor repeater / Site content) stays balanced:
   centred cards for 1-2 instead of holes in a 3-column grid, four across on wide screens instead of 3 + 1. */
@media(min-width:621px){.steps--1,.steps--2{grid-template-columns:repeat(var(--gst-n),minmax(0,380px))!important;justify-content:center}.steps--1{--gst-n:1}.steps--2{--gst-n:2}}
@media(min-width:1081px){.steps--4{grid-template-columns:repeat(4,1fr)}}
@media(min-width:621px) and (max-width:1080px){.steps--4{grid-template-columns:repeat(2,1fr)!important}}

/* ===== Round 18 (resilience: missing, long and odd data) ===== */
/* A word longer than its box (a long town, e-mail address or pasted URL in Site content) breaks instead of
   widening the page. Text that fits is unchanged; the header's menu and buttons keep their one-line rules. */
body{overflow-wrap:anywhere}
.menu>li>a,.menu-btn,.navcta .btn{overflow-wrap:normal}
/* The hours/phone strip: on the one-line bars (≤1180px) long hours give way (…) and the number stays whole. */
@media(max-width:1180px){
  .topbar .wrap>.tb-r{display:flex;align-items:baseline;min-width:0;max-width:100%}
  .tb-hours{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .tb-sep{flex:none;white-space:pre}
  .tb-r>a{flex:none;max-width:100%;overflow:hidden;text-overflow:ellipsis}
}
/* No trust point, hours or phone: the header has no strip to scroll away, so it sticks at the top. */
body>header.no-tb{top:0!important}
@media(max-width:600px){body>header.no-tbr .topbar{display:none}body>header.no-tbr{top:0!important}}
/* No photos at all: the hero copy and the about story take the row instead of leaving an empty half; a rental
   with no photo (core's tile) shows the card's neon gradient behind its balloon mark. */
@media(min-width:901px){.hgrid--solo,.about--solo{grid-template-columns:minmax(0,820px)}}
.ph img[src*="prt-noimg"]{background-color:transparent;opacity:.9}
/* A long category name on a rental card's photo stays one line (…), not a band across the picture. */
.card .pill{max-width:calc(100% - 28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* JavaScript off (or blocked): the phone menu button could not open anything. The main links sit in a row under
   the bar instead (Inventory, Service Area, the site's own menu items); the Company pages are in the footer. */
@media(max-width:900px){
  :is(html:not(.js),html.no-menujs) .burger{display:none}
  :is(html:not(.js),html.no-menujs) body>header .bar{flex-wrap:wrap;row-gap:4px}
  :is(html:not(.js),html.no-menujs) .menu{display:flex;position:static;order:5;flex:1 1 100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px;
    padding:0 0 10px;border:0;border-radius:0;background:none!important;box-shadow:none;max-height:none;overflow:visible;-webkit-backdrop-filter:none;backdrop-filter:none}
  :is(html:not(.js),html.no-menujs) .menu>li>a{padding:10px 14px;font-size:14px;min-height:44px;align-items:center}
  :is(html:not(.js),html.no-menujs) .menu :is(.mega,.chev),:is(html:not(.js),html.no-menujs) .menu>:is(.has-drop,.menu-cta){display:none}
}
/* Round 20 (premium pass): plain pages (town pages written by WDZ Toolkit, pages pasted from an
   older site) read in one comfortable column instead of a 1160px line. */
.wrap.pagebody>.prt-page>.prt-page__body{max-width:860px;margin-inline:auto}
.wrap.pagebody .prt-page__body>.wdz-entry-faq{max-width:none;margin-inline:0}
/* Round 20: WDZ Toolkit's town/blog copy (.wdz-entry-content) and its town FAQ (.wdz-entry-faq) force #222 text
   and navy headings with !important "for dark themes" — on Glow's night sky that is dark on dark. Back to the theme's
   own inks and lines. */
html body.prt :is(.wdz-entry-content,.wdz-entry-faq),html body.prt :is(.wdz-entry-content,.wdz-entry-faq) :is(p,li,ul,ol,span,div){color:var(--mut)!important}
html body.prt :is(.wdz-entry-content,.wdz-entry-faq) :is(strong,h2,h3,h4),html body.prt .wdz-ai-faq__title{color:#fff!important}
html body.prt :is(.wdz-entry-content,.wdz-entry-faq) a{color:var(--cy)!important}
html body.prt :is(.wdz-entry-content,.wdz-entry-faq) a:hover{color:#fff!important}
html body.prt .wdz-entry-faq,html body.prt .wdz-entry-faq h3{border-top-color:var(--line)}
html body.prt .wdz-ai-faq__content>h3:first-child{border-top:0}
/* Round 20: the blog's hero and an article's header were core's opaque navy slab, cut straight across the
   night sky with a hard seam; they now take the same glassy band as the FAQ hero. */
body .prt-blog-hero,body header.prt-blog-art{position:relative;background:linear-gradient(150deg,rgba(139,92,246,.22),rgba(56,189,248,.07) 52%,rgba(244,114,182,.14)),rgba(var(--inkDeep),.45);border-bottom:1px solid var(--line)}
body .prt-blog-hero::before,body header.prt-blog-art::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cy),var(--vio) 28%,var(--pk) 54%,var(--sun) 78%,var(--mint));opacity:.9;pointer-events:none}
