/*!
 * Marquee — WordPress additions to the design: the cart, icons in place of the
 * design's emoji, inline styles moved out of the markup, inner pages, and the
 * booking platform's pages.
 */

/* ---------- accessibility ---------- */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:999;padding:.7em 1.2em;background:var(--ink);color:#fff;border-radius:var(--r-sm);font-weight:700}
.nav-link:focus-visible,.btn:focus-visible,.cities a:focus-visible,.faq summary:focus-visible,.drop a:focus-visible,.hdr-cart:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* ---------- header ---------- */
.util .ic,.hero .ic{width:15px;height:15px;vertical-align:-2px;margin-right:4px}
.util span{display:inline-flex;align-items:center}
.drop-all{grid-column:1/-1}
.drop-all a{background:var(--blue-lt);color:var(--blue-dk);font-weight:700;text-align:center}
.hdr-cart{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:border-color .2s,color .2s}
.hdr-cart:hover{border-color:var(--blue);color:var(--blue)}
.hdr-cart .ic{width:20px;height:20px}
.hdr-cart b{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--orange);color:#fff;font:700 .7rem/20px var(--disp);text-align:center;transform:scale(0);transition:transform .25s ease}
.hdr-cart b.has{transform:scale(1)}
.nav-mobile-cta{display:none}
@media (max-width:900px){
  :root{--prt-mobile-bar:74px}
  .hdr-phone{display:none}
  .hdr-cta{margin-left:auto}
  .burger{margin-left:0}
  .nav-mobile-cta{display:block;padding:18px 0 6px}
  .nav-mobile-cta .btn{width:100%}
}

/* ---------- home ---------- */
.hero-note a{color:#fff;font-weight:700}
.promise-title{font-size:clamp(2rem,4vw,2.8rem)}
.promise-text{margin-top:18px;color:var(--muted)}
.area-text{margin-top:16px;color:var(--muted);max-width:52ch}
.area-btns{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.revs-more{text-align:center;margin-top:34px}
.cities a.cities-all{background:var(--ink);color:#fff;border-color:var(--ink)}
.feat .ic .ic,.feat .ic svg{width:22px;height:22px;color:var(--blue)}
.cstep .ic{stroke-width:1.6}
.aud .shot,.cats .shot{text-decoration:none;color:#fff}

/* ---------- footer ---------- */
.ft-brand img{max-height:90px;width:auto}
.ft-contact .ic{width:18px;height:18px;flex-shrink:0;margin-top:3px;color:var(--orange)}
.ft-phone{color:#fff;font-size:1.1rem}
.ft-book{margin-top:20px}
.socials a .ic{width:17px;height:17px}
.ft-links{list-style:none;display:flex!important;flex-wrap:wrap;gap:14px;margin:0;padding:0}
.mbar .ic{width:15px;height:15px;vertical-align:-2px}

/* =====================================================================
   Inner pages, blog and the booking platform's pages
   ===================================================================== */
.pagehead{background:var(--mist);border-bottom:1px solid var(--line);padding:clamp(34px,5vw,60px) 0 clamp(26px,4vw,44px)}
.pagehead--io{padding:16px 0 4px;background:#fff;border-bottom:0}
.pagehead__title{font-size:clamp(2rem,4.6vw,3.1rem);margin:.25em 0 .15em}
.pagehead p{color:var(--muted);max-width:60ch;margin:.4em 0 0}
.pagehead__btns{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0!important}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4em;font-size:.86rem;font-weight:600;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.4em;color:var(--line)}
.crumbs a{color:var(--blue);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}
.pagebody{padding-block:clamp(26px,4vw,50px) clamp(50px,6vw,84px)}
.pagebody--wide{padding:0}
.pagebody--read{max-width:780px}
.prt-page .entry-content{font-size:1.04rem}
.prt-page .entry-content>*+*{margin-top:1em}
.prt-page .entry-content h2,.prt-page .entry-content h3{margin:1.5em 0 .5em}
.prt-page .entry-content a{color:var(--blue)}
.prt-page .entry-content img{border-radius:var(--r-md);height:auto}
.post__img{margin:0 0 26px}
.post__img img{width:100%;height:auto;border-radius:var(--r-lg)}
.postgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:24px}
.postcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .25s ease,box-shadow .25s ease}
.postcard:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.postcard__img img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.postcard__body{padding:20px 22px 24px}
.postcard .card__cat{font-family:var(--disp);font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.postcard__title{font-size:1.28rem;margin:.35em 0 .4em;line-height:1.2}
.postcard__title a{text-decoration:none}
.postcard__title a:hover{color:var(--blue)}
.postcard p{color:var(--muted);margin:0;font-size:.97rem}
.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:var(--r-pill);background:#fff;border:1px solid var(--line);font-family:var(--disp);font-weight:700;text-decoration:none}
.pager .page-numbers.current{background:var(--blue);border-color:var(--blue);color:#fff}
.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{text-decoration:none;font-family:var(--disp);font-weight:700}
.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:var(--r-pill);font:inherit}
.search-form .search-submit{border:0;border-radius:var(--r-pill);padding:13px 22px;background:var(--blue);color:#fff;font-family:var(--disp);font-weight:700;cursor:pointer}
.comments{margin-top:48px}
.comment-list{padding-left:1.2em}

/* The platform's pages: full width for their own grids. */
.prt-io-page .pagebody{padding-top:6px}
.prt-io-page .prt-io .elementor-section-boxed>.elementor-container{max-width:var(--wrap)}

/* ---------- audit fixes ---------- */
/* The header stays on one line from the burger breakpoint up. */
@media (min-width:901px) and (max-width:1180px){
  .hdr-phone{display:none}
  .hdr .wrap{gap:14px}
  .nav{gap:0}
  .nav-link{padding-inline:9px;font-size:.93rem}
  .logo-txt span{display:none}
}
/* The closed phone menu is hidden, not only moved aside, so keyboard and
   screen-reader users do not wander through it. */
@media (max-width:900px){
  .nav{visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
  .nav.open{visibility:visible;transition:transform .25s ease}
}
/* Focus stays visible on the dark and blue bands. */
.hero :focus-visible,.clean :focus-visible,.cta :focus-visible,.ft :focus-visible,.util :focus-visible,.mbar :focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.cstep small{display:block}
/* The phone menu opens below the header wherever the header sits. */
@media (max-width:900px){.nav{top:var(--nav-top,var(--head-h))}}
/* Five audience cards: 3 + 2 on tablets instead of 4 + 1. */
@media (min-width:561px) and (max-width:1100px){.aud{grid-template-columns:repeat(6,1fr)}.aud>*{grid-column:span 2}.aud>*:nth-child(n+4){grid-column:span 3}}
.drop{max-width:calc(100vw - 32px)}

/* Without the script, tiles show their pictures straight away. */
html:not(.js) .shot{--img:var(--img-src)!important}
/* The utility bar keeps one height while fonts arrive (no layout shift). */
.util .wrap{flex-wrap:nowrap;min-height:38px;overflow:hidden}
.util-l,.util-r{white-space:nowrap}

/* Focus ring: ink on light areas (the design's yellow stays on the dark ones). */
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.hero :focus-visible,.clean :focus-visible,.cta :focus-visible,.ft :focus-visible,.util :focus-visible,.mbar :focus-visible{outline-color:var(--sun)}
@media(max-width:360px){.logo{min-width:0;flex-shrink:1}.logo-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.hdr .wrap{gap:10px}.hdr-cart{width:38px;height:38px}.mbar a{padding:12px 4px;font-size:.85rem}}
/* A long business name wraps to two lines and gives way, never pushing the buttons off. */
.hdr .logo{flex-shrink:1;min-width:0}
.hdr .logo-txt{max-width:260px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hdr .logo-txt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- round 22 ---------- */
.cat-body .cat-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.cat-body .cat-from{display:block;margin-top:6px;font-weight:700;color:#fff}
.cstep small{display:block;line-height:1.45}
h1 em,h2 em{padding-right:.08em}
/* Burger: three lines become an X while the menu is open; it sits beside the cart. */
@media (max-width:900px){
  .hdr .burger{margin-left:auto}
  .hdr-cta{margin-left:6px}
  .burger span{transition:transform .25s ease,opacity .2s ease}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .stats{grid-template-columns:repeat(2,1fr)}
  body{padding-bottom:0}
  .ft{padding-bottom:74px}
}
@media (max-width:560px){
  .trustbar i{display:none}
  .trustbar{gap:6px 12px}
  .aud>*:last-child:nth-child(odd){grid-column:1/-1}
}
.aud .shot{aspect-ratio:4/5}

/* round 29 */
.nav-landmark{display:contents}
@media (max-width:560px){.util .wrap{justify-content:center;row-gap:4px}}
/* ---------- rounds 34/35 ---------- */
@media (min-width:561px) and (max-width:900px){.steps{grid-template-columns:repeat(3,1fr);gap:16px}.feats{grid-template-columns:repeat(2,1fr)}}
@media (min-width:700px) and (max-width:1100px){.revs{grid-template-columns:repeat(3,1fr)}}
@media (min-width:901px) and (max-width:1180px){.cats{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.trustbar{flex-direction:column;align-items:flex-start}.trustbar i{display:none}}
@media (min-width:901px) and (max-width:1180px){.nav-link{min-height:44px;display:inline-flex;align-items:center}}

/* =====================================================================
   Sections for inner pages (parts/section-*.php)
   ===================================================================== */
/* Two light sections of the same tone in a row share one background:
   a hairline marks the change instead of doubled padding. Works for
   sections side by side and inside Elementor's containers. */
.sec-w+.sec-w,.sec-m+.sec-m,
:is(.e-con,.elementor-top-section):has(.sec-w)+:is(.e-con,.elementor-top-section) .sec-w,
:is(.e-con,.elementor-top-section):has(.sec-m)+:is(.e-con,.elementor-top-section) .sec-m{padding-top:0}
.sec-w+.sec-w>.wrap::before,.sec-m+.sec-m>.wrap::before,
:is(.e-con,.elementor-top-section):has(.sec-w)+:is(.e-con,.elementor-top-section) .sec-w>.wrap::before,
:is(.e-con,.elementor-top-section):has(.sec-m)+:is(.e-con,.elementor-top-section) .sec-m>.wrap::before{content:"";display:block;height:1px;background:var(--line);margin-bottom:84px}
/* Two dark bands in a row: a faint line between them. */
.sec-d+.sec-d,:is(.e-con,.elementor-top-section):has(.sec-d)+:is(.e-con,.elementor-top-section) .sec-d{box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
@media (max-width:900px){
  .sec-w+.sec-w>.wrap::before,.sec-m+.sec-m>.wrap::before,
  :is(.e-con,.elementor-top-section):has(.sec-w)+:is(.e-con,.elementor-top-section) .sec-w>.wrap::before,
  :is(.e-con,.elementor-top-section):has(.sec-m)+:is(.e-con,.elementor-top-section) .sec-m>.wrap::before{margin-bottom:62px}
}

/* ---------- page header: a shorter hero ---------- */
.phead{position:relative;color:#fff;isolation:isolate;overflow:hidden;
  background-image:
    linear-gradient(104deg,rgba(10,20,36,.96) 0%,rgba(10,20,36,.88) 46%,rgba(10,20,36,.5) 100%),
    var(--hero-img,none),
    linear-gradient(150deg,#12304F,#0D1A2D);
  background-size:cover,cover,cover;background-position:center;background-repeat:no-repeat}
.phead::before{content:"";position:absolute;z-index:-1;top:-220px;right:-160px;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(18,87,227,.5),transparent 68%)}
.phead.has-img::before{opacity:.55}
.phead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--orange),var(--sun) 60%,var(--blue))}
.phead .wrap{padding-top:30px;padding-bottom:clamp(68px,8vw,104px)}
.phead-crumbs{margin-bottom:clamp(40px,6vw,72px)}
.phead-crumbs ol{display:inline-flex;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:7px 16px;border-radius:var(--r-pill);color:#C7D4E6;font-size:.84rem;backdrop-filter:blur(6px)}
.phead-crumbs a{color:#fff}
.phead-crumbs li+li::before{color:rgba(255,255,255,.35)}
.phead-crumbs [aria-current]{color:#A8BACF}
.phead-inner{max-width:800px}
.phead h1{font-size:clamp(2.4rem,5.4vw,4rem);line-height:1.04;margin-bottom:20px;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.phead h1 em{font-style:italic;color:var(--sun)}
.phead-sub{font-size:clamp(1.05rem,1.8vw,1.24rem);color:#D3DFEF;max-width:60ch}
.phead .hero-btns{margin-top:32px}
.phead .btn .ic{width:18px;height:18px;margin:0}
.phead-note{margin-top:24px}
.phead-note a{color:#fff;font-weight:700}

/* ---------- ticker ---------- */
.mq-ticker{background:var(--sun);color:var(--ink);overflow:hidden;border-bottom:1px solid rgba(13,26,45,.1)}
.mq-ticker-track{display:flex;width:max-content;animation:mq-tick 42s linear infinite}
.mq-ticker:hover .mq-ticker-track{animation-play-state:paused}
.mq-ticker-list{display:flex;justify-content:space-around;min-width:100vw;list-style:none;margin:0;padding:0}
.mq-ticker-list li{display:flex;align-items:center;gap:12px;padding:15px 30px 15px 0;font-family:var(--disp);font-weight:800;
  font-size:1rem;letter-spacing:.01em;white-space:nowrap}
.mq-ticker-list .ic{width:18px;height:18px;color:var(--orange-dk);fill:currentColor}
@keyframes mq-tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .mq-ticker-track{animation:none;width:auto}
  .mq-ticker-list{flex-wrap:wrap;justify-content:center;gap:0 6px;min-width:0;width:100%;padding:6px 16px}
  .mq-ticker-list li{padding:8px 14px}
  .mq-ticker-list[aria-hidden]{display:none}
}

/* ---------- stats band ---------- */
.mq-stats{background:linear-gradient(160deg,var(--ink) 0%,#12304F 100%);color:#fff;position:relative;overflow:hidden}
.mq-stats::before{content:"";position:absolute;bottom:-260px;left:-160px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(18,87,227,.36),transparent 68%)}
.mq-stats .wrap{position:relative}
.mq-stats .stats{margin-top:0}

/* ---------- featured rentals ---------- */
.rent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:22px}
@media (min-width:901px){.rent-grid{grid-template-columns:repeat(3,1fr)}}
.rent{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  text-decoration:none;box-shadow:var(--sh-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.rent:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:#cfdbec}
.rent-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 100%,color-mix(in srgb,var(--c1,var(--blue)) 16%,#fff) 0%,var(--mist) 62%)}
.rent-img img{width:100%;height:100%;object-fit:contain;padding:14px 16px 10px;transition:transform .3s ease}
.rent--photo .rent-img img{object-fit:cover;padding:0}
.rent:hover .rent-img img{transform:scale(1.04)}
.rent-body{display:flex;flex-direction:column;gap:12px;padding:18px 20px 20px;flex:1}
.rent-body>b{font-family:var(--disp);font-weight:800;font-size:1.14rem;letter-spacing:-.01em;line-height:1.25}
.rent-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.rent-price{font-size:.88rem;color:var(--muted)}
.rent-price strong{font-family:var(--disp);font-size:1.18rem;font-weight:800;color:var(--ink);margin-left:2px}
.rent-go{display:inline-flex;align-items:center;gap:6px;font-family:var(--disp);font-weight:700;font-size:.9rem;color:var(--blue);white-space:nowrap}
.rent-go .ic{width:16px;height:16px;transition:transform .18s ease}
.rent:hover .rent-go .ic{transform:translateX(3px)}
@media (max-width:560px){
  .rent-grid{grid-template-columns:1fr 1fr;gap:12px}
  .rent-body{padding:12px 13px 14px;gap:8px}
  .rent-body>b{font-size:.98rem}
  .rent-meta{flex-direction:column;align-items:flex-start;gap:4px;padding-top:10px}
  .rent-price strong{font-size:1.04rem}
  .rent-img img{padding:10px}
}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:start}
.contact-lead .sec-head{margin-bottom:30px}
.ways{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ways li{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px;box-shadow:var(--sh-1);min-width:0}
.ways li>span:last-child{min-width:0;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.ways small{display:block;font-family:var(--disp);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.ways a{text-decoration:none}
.ways a:hover{color:var(--blue)}
.ic-box{flex:none;width:44px;height:44px;border-radius:12px;background:var(--blue-lt);color:var(--blue);display:grid;place-items:center}
.ic-box .ic{width:20px;height:20px}
.contact-map{display:block;width:100%;height:280px;border:0;border-radius:var(--r-lg);margin-top:22px;box-shadow:var(--sh-1);background:var(--mist)}
.contact-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(26px,3.4vw,42px);box-shadow:var(--sh-2);overflow:hidden}
.contact-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--blue),var(--orange))}
.contact-card h3{font-size:1.65rem;margin-bottom:8px}
.contact-card>p{color:var(--muted);margin-bottom:26px}
.mq-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mq-form>label{display:grid;gap:7px;font-family:var(--disp);font-weight:600;font-size:.92rem;min-width:0}
.mq-form>label:nth-of-type(n+3),.mq-form>button,.mq-form>.prt-contact-status{grid-column:1/-1}
.mq-form :is(input,textarea){font:inherit;font-family:var(--body);font-weight:400;font-size:1rem;width:100%;padding:13px 16px;
  border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--mist);color:var(--ink);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.mq-form textarea{resize:vertical;min-height:132px}
.mq-form :is(input,textarea):hover{border-color:#c9d6e8}
.mq-form :is(input,textarea):focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px var(--blue-lt)}
.mq-form .btn{width:100%;margin-top:6px;margin-bottom:6px}
.mq-form .btn[disabled]{opacity:.7;cursor:wait}
@media (max-width:1040px){.contact-grid{grid-template-columns:1fr;gap:38px}}
@media (max-width:560px){.mq-form,.ways{grid-template-columns:1fr}.mq-form>label{grid-column:1/-1}}

/* ---------- text block ---------- */
.text-one{max-width:820px}
.text-cols{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,80px);align-items:start}
.text-cols .text-head{margin-bottom:0}
.text-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:center}
.text-split .text-head,.text-one .text-head{margin-bottom:26px}
.text-head h2{font-size:clamp(2rem,4vw,2.8rem)}
.text-body{font-size:1.06rem;color:#3B4B63}
.text-body>*+*{margin-top:1em}
.text-body a{color:var(--blue);font-weight:600}
.text-body h2,.text-body h3{margin-top:1.5em;font-size:1.4rem}
.text-body ul{list-style:none;padding:0;display:grid;gap:12px}
.text-body ul li{position:relative;padding-left:40px}
.text-body ul li::before{content:"\2713";position:absolute;left:0;top:-.05em;width:27px;height:27px;border-radius:50%;
  background:#E7F7EC;color:#15A34A;font-weight:800;font-size:.84rem;display:grid;place-items:center}
.text-body ol{padding-left:1.3em;display:grid;gap:10px}
.text-body blockquote{margin:1.4em 0;padding:4px 0 4px 20px;border-left:4px solid var(--sun);font-family:var(--disp);font-size:1.2rem;color:var(--ink)}
.text-photo{position:relative;margin:0 14px 14px 0}
.text-photo::before{content:"";position:absolute;right:-14px;bottom:-14px;width:62%;height:62%;border-radius:var(--r-lg);background:var(--sun)}
.text-photo img{position:relative;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--sh-2)}
@media (max-width:900px){.text-cols,.text-split{grid-template-columns:1fr;gap:28px}}

/* ---------- smaller additions to the home sections ---------- */
.promise-grid--solo{grid-template-columns:1fr;max-width:780px}
.clean-grid--solo{grid-template-columns:1fr;max-width:720px}
.cities span{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:11px 20px;font-family:var(--disp);font-weight:600;font-size:.95rem;box-shadow:var(--sh-1)}
.rev-score{display:flex;width:fit-content;align-items:center;gap:8px;margin:-18px auto 34px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-pill);padding:9px 20px;box-shadow:var(--sh-1);font-size:.93rem;color:var(--muted)}
.rev-score .stars{margin:0;font-size:1rem}
.rev-score b{font-family:var(--disp);font-size:1.1rem;color:var(--ink)}
.mq-rentals .revs-more{margin-top:38px}
.phead :focus-visible,.mq-stats :focus-visible{outline-color:var(--sun)}
.ways li>span:last-child{overflow-wrap:break-word}
/* More than three reviews: the last row sits centred. */
.revs:has(>.rev:nth-child(4)){display:flex;flex-wrap:wrap;justify-content:center}
.revs:has(>.rev:nth-child(4))>.rev{flex:0 1 calc((100% - 44px)/3);min-width:min(100%,290px)}
@media (max-width:1100px){.revs:has(>.rev:nth-child(4))>.rev{flex-basis:calc((100% - 22px)/2)}}
@media (max-width:640px){.revs:has(>.rev:nth-child(4))>.rev{flex-basis:100%}}
@media (max-width:560px){.contact-map{height:220px}}

/* ---------- inner-page audit ---------- */
/* Event cards show their whole line; the text sits on a deeper fade. */
.aud-body small{display:block;overflow:visible;line-height:1.45}
.aud a::after{background:linear-gradient(to top,rgba(7,15,27,.95) 8%,rgba(7,15,27,.6) 44%,rgba(7,15,27,.06) 76%)}
/* An odd last event card is meant: on tablets 3 + 2 (above), on phones the
   last one becomes a wide banner instead of a lone tall tile. */
@media (max-width:560px){.aud>*:last-child:nth-child(odd){aspect-ratio:16/9}}
/* Category photos: a lighter wash, dark only behind the words. */
.cat::after{background:linear-gradient(transparent 35%,rgba(10,20,40,.85))}
.cat.shot::before{opacity:calc(var(--tint) * .6)}
/* Contact: four tiles in an even 2 x 2, the map clear of them. */
.ways li{grid-column:auto}
.ways+.contact-map{margin-top:22px}
.ways a[href^="mailto:"]{font-size:.92rem;overflow-wrap:break-word}
/* Service area: the closing "call us" chip, like the towns. */
.cities a.cities-call{display:inline-flex;align-items:center;gap:7px;color:var(--blue-dk);font-weight:700}
.cities-call .ic{width:16px;height:16px;color:var(--orange)}
.cities a.cities-call:hover .ic{color:#fff}
/* Safety & cleaning straight under the dark page header: drawn light. */
.clean--light{background:var(--mist);color:var(--ink)}
.clean--light::before{background:radial-gradient(circle,rgba(18,87,227,.12),transparent 68%)}
.clean--light .eyebrow.on-dark{color:var(--blue)}
.clean--light .clean-lead h2 em{color:var(--orange)}
.clean--light .clean-lead p{color:var(--muted)}
.clean--light .cstep{background:#fff;border-color:var(--line);box-shadow:var(--sh-1)}
.clean--light .cstep .num{color:var(--orange)}
.clean--light .cstep svg{stroke:var(--blue)}
.clean--light .cstep small{color:var(--muted)}
.clean--light :focus-visible{outline-color:var(--ink)}
.cat-body{text-shadow:0 1px 10px rgba(0,0,0,.6)}
/* A single review reads as a quote, not a full-width strip. */
.revs:has(>.rev:only-child){grid-template-columns:minmax(0,760px);justify-content:center}
/* Tablets: the two wide cards under the row of three are landscape, not giant portraits. */
@media (min-width:561px) and (max-width:1100px){.aud>*:nth-child(n+4){aspect-ratio:16/10}}

/* =====================================================================
   Polish pass (2026-10-02)
   ===================================================================== */
/* Section eyebrows: the intro rule (.sec-head p) was turning them into
   grey body text with a top margin. They are the design's small blue label. */
.sec-head .eyebrow{margin:0 0 14px;color:var(--blue);font-size:.78rem;max-width:none}
/* Every light-section heading uses the orange italic accent, not just some. */
.promise-title em,.text-head h2 em{font-style:italic;color:var(--orange);font-weight:800}

/* Hero trust strip: a tick before each promise; on phones, small chips. */
.trustbar span{display:inline-flex;align-items:center;gap:7px}
.trustbar .ic{width:15px;height:15px;color:var(--sun);stroke-width:2.6;flex:none;margin:0}
@media (max-width:560px){
  .trustbar{flex-direction:row;flex-wrap:wrap;gap:8px;padding:0;background:none;border:0;backdrop-filter:none;margin-bottom:22px}
  .trustbar span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:6px 12px;border-radius:var(--r-pill);font-size:.8rem;backdrop-filter:blur(8px)}
}

/* Mobile menu: a call button under Book Now. */
.nav-mobile-call{display:none}
@media (max-width:900px){
  .nav-mobile-cta .nav-mobile-call{display:flex;margin-top:12px}
  .nav-mobile-call .ic{width:17px;height:17px}
}

/* Phones: service-area buttons share the row instead of stacking ragged. */
@media (max-width:560px){
  .area-btns .btn{flex:1 1 0;padding-inline:14px}
}

/* Phones: reviews become a swipeable row (the next card peeking)
   instead of a very long stack. */
@media (max-width:640px){
  .revs:has(>.rev:nth-child(2)){display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;
    margin-inline:-20px;padding:4px 20px 18px;scroll-padding-inline:20px;scrollbar-width:none;justify-content:flex-start}
  .revs:has(>.rev:nth-child(2))::-webkit-scrollbar{display:none}
  .revs:has(>.rev:nth-child(2))>.rev{flex:0 0 84%!important;min-width:0!important;scroll-snap-align:start}
  .rev{padding:24px 22px}
}
.revs-dots{display:none}
@media (max-width:640px){
  .revs-dots{display:flex;justify-content:center;gap:7px;margin-top:2px}
  .revs-dots i{width:7px;height:7px;border-radius:50%;background:#C9D6E8;transition:background .2s,width .2s}
  .revs-dots i.on{background:var(--blue);width:20px;border-radius:99px}
}

/* Phones: the cleaning steps read as a compact list (icon beside the words). */
@media (max-width:640px){
  .clean-steps{gap:12px}
  .cstep{display:grid;grid-template-columns:48px 1fr;column-gap:16px;text-align:left;padding:18px;align-items:start}
  .cstep svg,.cstep .ic{grid-row:1/4;grid-column:1;width:44px;height:44px;margin:2px 0 0}
  .cstep .num{grid-column:2;margin-bottom:4px}
  .cstep b,.cstep small{grid-column:2}
}

/* ---------- headers for blog, posts, search and 404 (the page-header look) ---------- */
.phead--sm .wrap{padding-bottom:clamp(52px,6vw,80px)}
.phead--sm .phead-crumbs{margin-bottom:clamp(30px,4.5vw,52px)}
.phead--sm h1{font-size:clamp(2.2rem,4.6vw,3.4rem)}
.phead--post h1{font-size:clamp(2rem,4vw,3rem);max-width:24ch}
.phead--post .phead-inner{max-width:900px}
.post-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:#B9C9DE;font-size:.92rem;font-weight:500}
.post-meta span{display:inline-flex;align-items:center;gap:7px}
.post-meta .ic{width:16px;height:16px;color:var(--sun)}
.phead-crumbs li[aria-current]{max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phead-search{margin-top:28px}
.phead .search-form{max-width:520px}
.phead .search-form .search-field{background:#fff;border-color:transparent;color:var(--ink);padding:15px 22px}
.phead .search-form .search-submit{background:var(--orange);box-shadow:0 4px 0 var(--orange-dk);padding:13px 26px}
.phead .search-form .search-submit:hover{background:var(--orange-dk)}
.phead--404 .wrap{padding-bottom:clamp(80px,10vw,128px)}
.phead--404 .hero-btns{margin-top:30px}
.search-form .search-field:focus{outline:none;box-shadow:0 0 0 4px rgba(255,197,49,.55)}
@media (max-width:560px){
  .phead-crumbs li[aria-current]{max-width:18ch}
  .phead .search-form{flex-wrap:wrap}
  .phead .search-form .search-submit{flex:1}
}

/* ---------- blog cards ---------- */
.postgrid{align-items:stretch}
.postcard{position:relative;display:flex;flex-direction:column}
.postcard__img{display:block;overflow:hidden}
.postcard__img img{transition:transform .35s ease}
.postcard:hover .postcard__img img{transform:scale(1.04)}
.postcard__img--none{aspect-ratio:16/10;display:grid;place-items:center;background:linear-gradient(140deg,var(--c1,var(--blue)),var(--c2,var(--blue-dk)));position:relative}
.postcard__img--none::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.22),transparent 60%)}
.postcard .postcard__img--none img{width:auto;height:46%;aspect-ratio:auto;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25));position:relative}
.postcard__body{display:flex;flex-direction:column;flex:1}
.postcard__title a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.postcard__title a:focus-visible{outline:none}
.postcard:has(.postcard__title a:focus-visible){outline:3px solid var(--ink);outline-offset:3px}
.postcard__more{margin-top:auto;padding-top:16px;display:inline-flex;align-items:center;gap:6px;font-family:var(--disp);font-weight:700;font-size:.92rem;color:var(--blue)}
.postcard__more .ic{width:16px;height:16px;transition:transform .18s ease}
.postcard:hover .postcard__more .ic{transform:translateX(3px)}
.empty-state{max-width:560px;margin:0 auto;text-align:center;padding:30px 0}
.empty-state p{color:var(--muted);margin-bottom:22px;font-size:1.08rem}
.pager .page-numbers:not(.current):hover{border-color:var(--blue);color:var(--blue)}

/* ---------- single post ---------- */
.pagebody--read{padding-top:clamp(34px,5vw,56px)}
.post__img img{box-shadow:var(--sh-2)}
.prt-page .entry-content h2{font-size:clamp(1.5rem,2.6vw,1.95rem)}
.prt-page .entry-content h3{font-size:1.3rem}
.prt-page .entry-content :is(ul,ol){padding-left:1.3em}
.prt-page .entry-content li+li{margin-top:.4em}
.prt-page .entry-content blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:4px solid var(--sun);font-family:var(--disp);font-size:1.18rem}
.post-cta{position:relative;overflow:hidden;margin-top:52px;padding:clamp(28px,4vw,40px);border-radius:var(--r-lg);color:#fff;
  background:linear-gradient(150deg,var(--ink) 0%,#12304F 100%);display:flex;flex-wrap:wrap;gap:22px 32px;align-items:center;justify-content:space-between}
.post-cta::before{content:"";position:absolute;top:-140px;right:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(18,87,227,.5),transparent 68%)}
.post-cta>*{position:relative}
.post-cta .eyebrow{margin-bottom:8px}
.post-cta h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:8px}
.post-cta h2 em{font-style:italic;color:var(--sun)}
.post-cta p:not(.eyebrow){color:#BFD0E6;max-width:42ch}
.post-cta__btns{display:flex;flex-wrap:wrap;gap:12px}
.post-cta__btns .ic{width:17px;height:17px}
.post-cta :focus-visible{outline-color:var(--sun)}
@media (max-width:560px){.post-cta__btns{width:100%}.post-cta__btns .btn{flex:1 1 100%}}
.post-navigation{border-top:0;padding-top:0}
.post-navigation .nav-links>div{flex:1;max-width:100%}
.post-navigation a{display:block;height:100%;padding:18px 22px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-1);transition:border-color .18s ease,transform .18s ease}
.post-navigation a:hover{border-color:var(--blue);transform:translateY(-2px);color:var(--blue)}
.post-navigation .nav-next{text-align:right}
.post-navigation .nav-subtitle{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}

/* ---------- booking platform pages ---------- */
/* Links in page content are underlined (core), but the platform's buttons
   and card titles are not links in running text. */
.entry-content :is(.elementor-button,.io_button,.item_add,.rentNameIO_button,.view-product-button,.wdz-browse a,.io_item2_listcat a,.io_product_title a){text-decoration:none!important}
/* Item page buttons in the theme's pill shape. */
.prt .io_product_infobox .elementor-button.io_button{border-radius:var(--r-pill)!important;padding:12px 22px!important;font-size:.95rem!important;display:inline-flex!important;align-items:center;gap:8px;transition:transform .16s ease,filter .16s ease}
.prt .io_product_infobox .elementor-button.io_button:hover{transform:translateY(-2px)}
.prt .io_product_infobox #checkDeliveryButton{background:var(--blue)!important}
/* Item specs: a clean two-column list instead of boxed chips. */
.prt .io_product_infobox .io_product_detail_box{display:flex!important;justify-content:space-between;align-items:baseline;gap:16px;width:100%!important;
  border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0!important;margin:0!important}
.prt .io_product_infobox .io_product_detail_box p{background:transparent!important;padding:0!important;margin:0!important;border:0!important}
.prt .io_product_infobox .io_product_detail_box p:first-child{font-size:.9rem!important;font-weight:600!important;color:var(--muted)!important}
.prt .io_product_infobox .io_product_detail_box p:last-child{font-family:var(--disp)!important;font-weight:700!important;color:var(--ink)!important;text-align:right}
/* Inventory page: the category cards use the whole width. */
@media (min-width:1001px){.prt .io_catdiv2:not(.list-view){grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;gap:22px!important;max-width:none!important;width:100%!important}}
@media (max-width:599px){
  .prt .io_catdiv2:not(.list-view){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:16px 0!important}
  .prt .io_item2_listcat .cat_div_inner{padding:10px 12px 14px!important}
  .prt .io_item2_listcat .rentNameIO{font-size:1rem!important}
  .prt .catDescriptionIO_small{font-size:.84rem!important;-webkit-line-clamp:2;line-clamp:2}
}
.prt .io_catdiv2:not(.list-view) .io_item2_listcat{width:auto!important;max-width:none!important;margin:0!important}
/* The "for Rent" half of platform headings: the theme's accent. */
.prt .io_forrent{color:var(--orange)!important;font-style:italic}
/* Intro copy the platform centres in bold: lighter, on a readable measure. */
.prt-io .entry-content center>p{max-width:76ch;margin-inline:auto;color:#3B4B63}
.prt-io .entry-content center>p strong{font-weight:500}
.prt .io_product_infobox .io_product_detail_box:not(.io_product_detail_box ~ .io_product_detail_box){margin-top:16px!important;border-top:1px solid var(--line)!important}

/* ---------- polish pass, round 2 ---------- */
/* Inventory grid: flush with the page edges like everything else. */
@media (min-width:1001px){.prt .io_catdiv2:not(.list-view){margin-left:0!important;margin-right:0!important}}
@media (max-width:599px){.prt .io_catdiv2:not(.list-view) .catDescriptionIO_small{-webkit-line-clamp:2!important;line-clamp:2!important;max-height:calc(2 * 1.55em)!important}}
/* The platform's closing service-area line: centred and quiet, like a footnote. */
.prt .io_landingpages{text-align:center;color:var(--muted);max-width:72ch;margin-left:auto!important;margin-right:auto!important}
/* Search box in the dark header: field and button stay on one line on phones. */
@media (max-width:560px){
  .phead .search-form{flex-wrap:nowrap}
  .phead .search-form label{flex:1 1 auto;min-width:0}
  .phead .search-form .search-submit{flex:none;padding:13px 18px}
}
/* Phones: category photo cards are wide banners, not tall squares. */
@media (max-width:560px){
  .cats{gap:14px}
  .cats .cat{aspect-ratio:16/10}
  .cat-body{padding:18px}
  .cat-body .cat-desc{-webkit-line-clamp:2}
}
/* Phones: feature cards put the icon beside the heading. */
@media (max-width:640px){
  .feats{gap:12px}
  .feat{display:grid;grid-template-columns:46px 1fr;column-gap:16px;padding:20px}
  .feat>.ic{grid-row:1/3;margin:0}
  .feat h3{align-self:center;margin-bottom:4px}
  .feat p{grid-column:2}
}
/* The category blurb is clamped to whole lines (the editor widget's own display was winning). */
.prt .io_catdiv2 .io_item2_listcat .catDescriptionIO_small{display:-webkit-box!important;-webkit-box-orient:vertical!important;padding-top:0!important;padding-bottom:0!important;height:auto!important;min-height:0!important;overflow:hidden!important;max-height:calc(3 * 1.55em)!important}
@media (max-width:599px){.prt .io_catdiv2 .io_item2_listcat .catDescriptionIO_small{-webkit-line-clamp:2!important;line-clamp:2!important;max-height:calc(2 * 1.55em)!important}}

/* Elementor's ".elementor a{box-shadow:none}" outranks a single class and was
   flattening the 3D buttons inside page sections. Restate them one step stronger. */
.elementor .btn-primary{box-shadow:0 6px 0 var(--orange-dk)}
.elementor .btn-primary:hover{box-shadow:0 4px 0 var(--orange-dk)}
.elementor .btn-blue{box-shadow:0 6px 0 var(--blue-dk)}
.elementor .btn-blue:hover{box-shadow:0 4px 0 var(--blue-dk)}
.elementor .btn-outline{box-shadow:var(--sh-1)}
