/* City landing pages (/en/<city>/, /fr/<city>/) - Liquid Glass, same system as the home page.
   Loads after theme-silas3 / glass-a / glass-fix. White canvas, Larken serif, silver-blue glass buttons, graphite bands. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:root{
  --cp-ink:#141414;--cp-steel:#5f7a90;--cp-steel-hi:#b0c4d4;--cp-steel-lo:#243645;--cp-dark:#161718;--cp-dark2:#1f2123;
  --cp-ease:cubic-bezier(.22,1,.36,1);--cp-spring:cubic-bezier(.34,1.56,.64,1);
  --cp-spec:radial-gradient(120% 90% at var(--mx,50%) var(--my,-10%),rgba(255,255,255,.55),rgba(255,255,255,0) 55%);
  --cp-spec-d:radial-gradient(120% 90% at var(--mx,50%) var(--my,-10%),rgba(255,255,255,.22),rgba(255,255,255,0) 58%);
}
html{scroll-behavior:smooth;scroll-padding-top:84px}
.cp-body{background:#fff}
.cp-nav{display:none}
@media (min-width:1000px){.cp-nav{display:flex}}

/* ---------- reveal ---------- */
html.cp-js .cp-rv{opacity:0;transform:translateY(26px);filter:blur(6px);transition:opacity .8s var(--cp-ease),transform .9s var(--cp-ease),filter .8s var(--cp-ease);transition-delay:calc(var(--i,0)*90ms)}
html.cp-js .cp-rv.in{opacity:1;transform:none;filter:none}

/* ---------- glass surfaces ---------- */
.cp-glass,.cp-glass-dark{position:relative;isolation:isolate;overflow:hidden}
.cp-glass{
  background:var(--cp-spec),linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.58));
  border:1px solid rgba(0,0,0,.09);border-radius:20px;
  -webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);
  box-shadow:inset 0 1px 0 #fff,inset 0 -10px 16px -12px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.04),0 18px 34px -24px rgba(0,0,0,.35);
}
.cp-glass-dark{
  background:var(--cp-spec-d),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.26);border-radius:20px;color:#f5f5f5;
  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -10px 16px -12px rgba(0,0,0,.45),0 18px 34px -18px rgba(0,0,0,.7);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .cp-glass{background:#fff}.cp-glass-dark{background:#2a2c2e}
}
@media (prefers-reduced-transparency:reduce){
  .cp-glass{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
  .cp-glass-dark{background:#2a2c2e;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* ---------- hero ---------- */
.cp-hero{position:relative;padding-block:clamp(2.5rem,2rem + 4vw,5.5rem) clamp(2rem,1rem + 3vw,4rem);text-align:center;overflow:hidden}
.cp-hero__glow{position:absolute;inset:-10% -10% auto;height:70%;background:radial-gradient(50% 60% at 30% 20%,rgba(141,164,184,.28),transparent 70%),radial-gradient(40% 50% at 78% 10%,rgba(176,196,212,.3),transparent 70%);filter:blur(10px);pointer-events:none;animation:cpGlow 14s ease-in-out infinite alternate}
@keyframes cpGlow{to{transform:translate3d(3%,4%,0) scale(1.08)}}
.cp-hero .wrap{position:relative}
.cp-hero .eyebrow{display:inline-flex;margin-bottom:1.25rem;padding:.4rem .95rem;border-radius:999px;background:var(--cp-spec),linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.55));border:1px solid rgba(0,0,0,.09);box-shadow:inset 0 1px 0 #fff,0 6px 14px -10px rgba(0,0,0,.3)}
.cp-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,1rem + 6.4vw,6.4rem);line-height:1;letter-spacing:-.03em;max-width:15ch;margin:0 auto 1.25rem;text-wrap:balance}
.cp-lead{max-width:60ch;margin:0 auto 1.75rem;font-size:var(--fs-lead);color:var(--ink-soft);text-wrap:pretty}
.cp-cta{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;align-items:center}
.cp-cta--c{margin-top:1.25rem}
.cp-cta .btn,.cp-offer .btn,.cp-center .btn,.cp-calc__cta,.cp-detail__b{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.75rem;text-decoration:none;font-weight:600}
.cp-call{color:var(--ink)}
.cp-trust{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1.6rem 0 0;padding:0}
.cp-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.875rem;color:var(--ink);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.5));border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 6px 12px -10px rgba(0,0,0,.3);transition:transform .35s var(--cp-spring)}
.cp-chip:hover{transform:translateY(-2px)}
.cp-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cp-steel);box-shadow:0 0 0 3px rgba(95,122,144,.2)}
.cp-hero__fig{position:relative;margin:clamp(2rem,1rem + 3vw,3.5rem) auto 0;max-width:1240px;border-radius:28px;overflow:hidden;background:#d8dde1;box-shadow:0 40px 70px -40px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.06)}
.cp__img{display:block;width:100%;height:auto}
.cp__img--hero{max-height:72vh;object-fit:cover;transform:translate3d(0,var(--py,0),0) scale(1.08);transition:transform .2s linear}
.cp-hero__shade{position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(180deg,transparent,rgba(10,12,14,.55));pointer-events:none}
.cp-hero__stats{position:absolute;left:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem);bottom:clamp(.75rem,2vw,1.5rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.cp-stat{padding:.85rem 1rem;text-align:left;color:var(--ink);transition:transform .45s var(--cp-spring)}
.cp-stat:hover{transform:translateY(-4px)}
.cp-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,1rem + 1.8vw,2.5rem);line-height:1;letter-spacing:-.02em}
.cp-stat span{display:block;margin-top:.3rem;font-size:.8rem;color:var(--ink-soft);line-height:1.25}
@media (max-width:640px){.cp-stat--hide-s{display:none}.cp-hero__stats{grid-template-columns:1fr 1fr}.cp-stat{padding:.65rem .75rem}}
.cp-hero__fig picture,.cp-slide picture{display:block;width:100%;height:100%}

/* ---------- offer band ---------- */
.cp-offer{background:linear-gradient(180deg,#232527,#161718);color:var(--on-dark);padding-block:1.5rem;position:relative;border-block:1px solid rgba(255,255,255,.08)}
.cp-offer__row{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.cp-offer__h{margin:0;font-family:var(--serif);font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);line-height:1.15}
.cp-offer__p{margin:.25rem 0 0;color:var(--on-dark-soft);font-size:.9375rem}

/* ---------- sections ---------- */
.cp-sec{padding-block:clamp(3.5rem,2rem + 5vw,7rem);position:relative}
.cp-sec--tight{padding-block:clamp(2.5rem,2rem + 2vw,4rem)}
.cp-sec h2,.cp-final h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,1.2rem + 3vw,3.75rem);line-height:1.04;letter-spacing:-.022em;margin:.5rem 0 1.25rem;text-wrap:balance}
.cp-sec h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);line-height:1.15;margin:0 0 .4rem}
.cp-narrow{max-width:780px}
.cp-sub{max-width:64ch;color:var(--ink-soft);font-size:1.0625rem;line-height:1.6;margin:0 0 2rem}
.cp-center{text-align:center}
.cp-center .btn{margin-top:2rem}
.cp-fine{margin:1.25rem 0 0;font-size:.875rem;color:var(--ink-soft)}
.cp-fine a{color:inherit}
.cp-intro__grid{display:grid;gap:1.5rem 4rem;grid-template-columns:1fr}
@media (min-width:900px){.cp-intro__grid{grid-template-columns:1fr 1.1fr;align-items:start}}
.cp-intro__txt p{font-size:1.125rem;line-height:1.7;color:var(--ink);margin:0 0 1.1rem}
.cp-intro h2{margin-top:.25rem}

/* ---------- map section (graphite band so the glass has something to refract) ---------- */
.cp-mapsec{color:#f5f5f5;background:radial-gradient(60% 50% at 18% 0%,rgba(141,164,184,.26),transparent 70%),radial-gradient(50% 45% at 92% 100%,rgba(95,122,144,.3),transparent 70%),linear-gradient(180deg,#1c1e20,#121314);overflow:hidden}
.cp-mapsec .eyebrow{color:var(--cp-steel-hi)}
.cp-mapsec .cp-sub{color:#b8b8b8}
.cp-mapsec h2{color:#fff}
.cp-mapgrid{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media (min-width:980px){.cp-mapgrid{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:stretch}}
.cpm__wrap{position:relative;border-radius:28px;overflow:hidden;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 40px 70px -40px #000;aspect-ratio:1000/760;min-height:320px}
.cpm{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:manipulation;--fs:14px}
.cpm__land{fill:rgba(255,255,255,.045);stroke:rgba(255,255,255,.1);stroke-width:calc(1px * var(--k,1));vector-effect:non-scaling-stroke}
.cpm__r{cursor:pointer;outline:none;vector-effect:non-scaling-stroke;transition:fill .35s,stroke .35s,filter .35s,opacity .6s var(--cp-ease)}
.cpm__r--free{fill:rgba(141,164,184,.26);stroke:rgba(190,208,222,.75);stroke-width:1.2px}
.cpm__r--quote{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.4);stroke-width:1px;stroke-dasharray:4 3}
path.cpm__r{vector-effect:non-scaling-stroke}
.cpm__r:hover,.cpm__r.hov,.cpm__r:focus-visible{fill:rgba(190,208,222,.5);stroke:#fff;filter:drop-shadow(0 0 10px rgba(176,196,212,.65))}
.cpm__r.is-sel{fill:rgba(205,222,235,.68);stroke:#fff;stroke-width:1.8px;stroke-dasharray:none;filter:drop-shadow(0 0 16px rgba(190,208,222,.9))}
.cpm__dot circle:first-child{fill:rgba(141,164,184,.3);stroke:rgba(190,208,222,.8);stroke-width:1.2px;transform-box:fill-box;transform-origin:center;transition:transform .35s var(--cp-spring)}
.cpm__dot .cpm__core{fill:#fff}
.cpm__dot:hover circle:first-child,.cpm__dot.is-sel circle:first-child{transform:scale(1.5)}
html.cp-js .cpm__wrap:not(.drawn) .cpm__r{opacity:0}
html.cp-js .cpm__wrap.drawn .cpm__r{opacity:1;transition-delay:var(--d,0ms)}
.cpm__ring{fill:none;stroke:rgba(255,255,255,.35);stroke-width:1.2px;stroke-dasharray:3 7;vector-effect:non-scaling-stroke;animation:cpDash 40s linear infinite}
@keyframes cpDash{to{stroke-dashoffset:-400}}
.cpm__pinc{fill:#fff;stroke:var(--cp-steel);stroke-width:2px;vector-effect:non-scaling-stroke}
.cpm__pulse{fill:rgba(176,196,212,.5);transform-box:fill-box;transform-origin:center;animation:cpPulse 2.6s ease-out infinite}
@keyframes cpPulse{from{transform:scale(.4);opacity:.9}to{transform:scale(3.4);opacity:0}}
.cpm__pin{pointer-events:none}
.cpm__lbl{font-family:var(--sans,Geist,system-ui,sans-serif);font-size:var(--fs);font-weight:600;fill:#fff;paint-order:stroke;stroke:rgba(10,12,14,.85);stroke-width:calc(var(--fs) * .28);stroke-linejoin:round;cursor:pointer;transition:opacity .3s;letter-spacing:.01em}
.cpm__lbl.off{opacity:0;pointer-events:none}
.cpm__lbl.hov,.cpm__lbl.sel{opacity:1;fill:#fff}
.cpm__lbl.cpm__t--valley,.cpm__lbl.cpm__t--papineau,.cpm__lbl.cpm__t--pontiac{font-weight:500;fill:#d3dbe2}
.cpm__lbl.hov.off,.cpm__lbl.sel.off{opacity:1}
.cpm__tabs{position:absolute;z-index:3;top:12px;left:12px;display:flex;gap:2px;padding:4px;border-radius:999px}
.cpm__tabs button,.cpm__reset{font:inherit;font-size:.8125rem;font-weight:600;color:#e6e6e6;background:transparent;border:0;border-radius:999px;padding:.45rem .9rem;cursor:pointer;transition:background .25s,color .25s,transform .3s var(--cp-spring)}
.cpm__tabs button.is-on{background:linear-gradient(180deg,#fff,#d9dde0);color:#141414;box-shadow:0 4px 10px -4px rgba(0,0,0,.6)}
.cpm__tabs button:not(.is-on):hover{background:rgba(255,255,255,.14)}
.cpm__reset{position:absolute;z-index:3;top:12px;right:12px;border-radius:999px;border:1px solid rgba(255,255,255,.26)}
.cpm__reset[hidden]{display:none}
.cpm__reset:hover{transform:scale(1.04)}
.cpm__tip{position:absolute;z-index:4;transform:translate(-50%,-100%);padding:.4rem .75rem;border-radius:12px;font-size:.8125rem;font-weight:600;white-space:nowrap;pointer-events:none}
.cpm__tip[hidden]{display:none}
.cpm__legend{position:absolute;z-index:2;left:14px;bottom:12px;display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.75rem;color:#cfd6dc}
.cpm__legend span{display:inline-flex;align-items:center;gap:.4rem}
.cpm__legend i{width:14px;height:10px;border-radius:3px;display:inline-block}
.lg-free{background:rgba(141,164,184,.55);border:1px solid rgba(190,208,222,.9)}
.lg-quote{border:1px dashed rgba(255,255,255,.55);background:rgba(255,255,255,.07)}
.cp-detail{padding:1.6rem;display:flex;flex-direction:column;gap:.5rem;align-self:stretch}
.cp-detail.pop .cp-detail__n,.cp-detail.pop .cp-detail__d{animation:cpPop .55s var(--cp-ease) both}
.cp-detail.pop .cp-detail__d{animation-delay:.06s}
@keyframes cpPop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cp-detail__k{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--cp-steel-hi)}
.cp-detail__k--quote{color:#e8d9b5}
.cp-detail__n{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,1.4rem + 1.6vw,2.9rem);line-height:1.05;margin:.2rem 0 .3rem;color:#fff}
.cp-detail__d{margin:0;color:#d4d8dc;line-height:1.6;font-size:1rem}
.cp-detail__b{margin-top:auto;align-self:flex-start}
.cp-detail__b[hidden]{display:none}
.cpl{margin-top:1.5rem;display:grid;gap:1rem 2rem}
@media (min-width:900px){.cpl{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.cpl__h{margin:0 0 .5rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#9aa6b0;font-weight:600}
.cpl__row{display:flex;flex-wrap:wrap;gap:.45rem}
.cp-pill{font:inherit;font-size:.875rem;font-weight:500;color:#f1f1f1;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .95rem;border-radius:999px;cursor:pointer;background:var(--cp-spec-d),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 12px -8px rgba(0,0,0,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .35s var(--cp-spring),background .25s,color .25s,border-color .25s;min-height:40px}
.cp-pill i{width:8px;height:8px;border-radius:50%;background:var(--cp-steel-hi);box-shadow:0 0 0 3px rgba(176,196,212,.2)}
.cp-pill--quote i{background:transparent;border:1.5px dashed #d8d8d8;box-shadow:none}
.cp-pill:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.6)}
.cp-pill.is-on{background:linear-gradient(180deg,#fff,#d9dde0);color:#141414;border-color:#fff}
.cp-pill:focus-visible,.cpm__tabs button:focus-visible,.cpm__reset:focus-visible,.cp-arrow:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* ---------- gallery ---------- */
.cp-worksec{background:linear-gradient(180deg,#fff,#f4f5f6);overflow:hidden}
.cp-worksec__head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}
.cp-arrows{display:none;gap:.5rem;margin-bottom:2rem}
@media (min-width:900px){.cp-arrows{display:flex}}
.cp-arrow{width:52px;height:52px;border-radius:50%;font-size:1.7rem;line-height:1;color:#fff;cursor:pointer;display:grid;place-items:center;padding:0 0 .2rem;background:var(--cp-spec-d),linear-gradient(180deg,#3a3d40,#1b1c1e);border:1px solid rgba(255,255,255,.25);transition:transform .35s var(--cp-spring)}
.cp-arrow:hover{transform:scale(1.08)}
.cp-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.5rem max(1.25rem,calc((100vw - 1240px)/2)) 1.5rem;-webkit-overflow-scrolling:touch;outline:none}
.cp-track::-webkit-scrollbar{display:none}
.cp-slide{flex:0 0 min(82vw,520px);margin:0;position:relative;border-radius:24px;overflow:hidden;scroll-snap-align:center;background:#d9dde0;aspect-ratio:4/3;box-shadow:0 30px 50px -34px rgba(0,0,0,.6);transition:transform .6s var(--cp-ease)}
.cp-slide:hover{transform:translateY(-6px)}
.cp-slide__b{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.cp-slide .cp__img{height:100%;object-fit:cover;transition:transform 1.1s var(--cp-ease)}
.cp-slide:hover .cp__img{transform:scale(1.06)}
.cp-slide figcaption{position:absolute;left:.8rem;bottom:.8rem;padding:.4rem .85rem;font-size:.8125rem;border-radius:999px;pointer-events:none}
.cp-lb{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:rgba(8,9,10,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;transition:opacity .25s}
.cp-lb[hidden]{display:none}
.cp-lb.on{opacity:1}
.cp-lb__img{max-width:min(94vw,1500px);max-height:88vh;border-radius:18px;box-shadow:0 40px 90px -20px #000;transform:scale(.96);transition:transform .35s var(--cp-ease)}
.cp-lb.on .cp-lb__img{transform:none}
.cp-lb__x,.cp-lb__n{position:absolute;width:48px;height:48px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 .15rem}
.cp-lb__x{top:max(14px,env(safe-area-inset-top));right:14px}
.cp-lb__n--p{left:14px;top:50%}.cp-lb__n--n{right:14px;top:50%}
body.cp-lock{overflow:hidden}

/* ---------- calculator ---------- */
.cp-calcsec{background:#fff}
.cp-calc{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:.5rem}
@media (min-width:960px){.cp-calc{grid-template-columns:1.25fr 1fr;align-items:start}.cp-calc__sum{position:sticky;top:96px}}
.cp-calc__list{display:grid;gap:.6rem}
.cp-svc.service-card,.cp-first{position:relative;isolation:isolate;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;padding:1rem 1.15rem;border-radius:18px;cursor:pointer;margin:0;min-height:0;
  background:var(--cp-spec),linear-gradient(180deg,#fff,#f6f7f8);border:1px solid rgba(0,0,0,.1);box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,.04),0 14px 24px -22px rgba(0,0,0,.4);transition:transform .4s var(--cp-spring),border-color .25s,box-shadow .3s,background .3s;overflow:hidden}
.cp-svc.service-card:hover,.cp-first:hover{transform:translateY(-2px);border-color:var(--cp-steel)}
.cp-svc.service-card.is-on,.cp-first.is-on{border-color:var(--cp-steel);box-shadow:inset 0 0 0 1px var(--cp-steel),0 14px 26px -20px rgba(36,54,69,.55);background:var(--cp-spec),linear-gradient(180deg,#fff,#eef2f5)}
.cp-svc input,.cp-first input{position:absolute;opacity:0;pointer-events:none}
.cp-svc__box{width:24px;height:24px;border-radius:8px;border:1.5px solid #b9bfc4;background:#fff;display:grid;place-items:center;transition:background .25s,border-color .25s,transform .35s var(--cp-spring)}
.cp-svc__box:after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0) translate(-1px,-1px);transition:transform .3s var(--cp-spring)}
.is-on>.cp-svc__box,.cp-svc.is-on .cp-svc__box{background:linear-gradient(180deg,#7f98ad,#4f6577);border-color:#4f6577}
.is-on>.cp-svc__box:after{transform:rotate(45deg) scale(1) translate(-1px,-1px)}
.cp-svc input:focus-visible~.cp-svc__box,.cp-first input:focus-visible~.cp-svc__box{outline:2px solid var(--cp-steel);outline-offset:2px}
.cp-svc__t,.cp-first>span:last-child{display:grid;gap:.15rem;min-width:0}
.cp-svc__t .service-card__name,.cp-first b{font-weight:600;font-size:1.0625rem;color:var(--ink)}
.cp-svc__t small,.cp-first small{color:var(--ink-soft);font-size:.875rem;line-height:1.4}
.cp-svc__p{font-family:var(--serif);font-size:1.5rem;white-space:nowrap}
.cp-first{grid-template-columns:auto 1fr;background:var(--cp-spec),linear-gradient(180deg,#eef2f5,#e6ecf1)}
.cp-calc__sum{padding:1.6rem;background:var(--cp-spec-d),linear-gradient(165deg,#3a3d40 0%,#181919 58%,#222426 100%);border-color:rgba(255,255,255,.2)}
.cp-calc__k{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--cp-steel-hi)}
.cp-calc__amt{margin:.3rem 0 .2rem}
.cp-calc__amt .est-summary__amt{font-family:var(--serif);font-size:clamp(3.6rem,2.8rem + 3vw,5.4rem);line-height:1;letter-spacing:-.03em;color:#fff;background:none;-webkit-text-fill-color:currentColor;font-variant-numeric:tabular-nums}
.cp-calc__save{margin:0 0 .8rem;display:inline-block;padding:.25rem .7rem;border-radius:999px;background:rgba(176,196,212,.2);border:1px solid rgba(176,196,212,.5);font-size:.8125rem;font-weight:600;color:#e6eef5;animation:cpPop .5s var(--cp-ease)}
.cp-calc__save[hidden]{display:none}
.cp-calc__cta{width:100%;margin-top:.6rem}
.cp-calc__aside{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.16)}
.cp-calc__aside h3{color:#fff;font-size:1.25rem}
.cp-calc__aside p{margin:0;color:#c9ced2;line-height:1.55;font-size:.9375rem}
.cp-price-more{display:grid;gap:1rem;margin-top:1.25rem;grid-template-columns:1fr}
@media (min-width:800px){.cp-price-more{grid-template-columns:1fr 1fr}}
.cp-ex{padding:1.4rem 1.5rem}
.cp-ex p{margin:0;color:var(--ink-soft);line-height:1.6}
.cp-pk{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.4rem}
.cp-pk li{display:grid;grid-template-columns:1fr auto;gap:.1rem .75rem;padding:.65rem 0;border-top:1px solid rgba(0,0,0,.1)}
.cp-pk li span:last-child{grid-column:1/-1;color:var(--ink-soft);font-size:.875rem}
.cp-pk__price{font-family:var(--serif);font-size:1.3rem}

/* ---------- how it works ---------- */
.cp-how{background:linear-gradient(180deg,#f4f5f6,#fff)}
.cp-steps-wrap{position:relative;margin-top:2.5rem}
.cp-steps{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));position:relative}
.cp-steps li{padding-top:2.4rem;position:relative}
.cp-steps li:before{content:"";position:absolute;top:calc(.7rem - 7px);left:0;width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid var(--cp-steel);box-shadow:0 0 0 5px #fff,0 0 0 6px rgba(95,122,144,.25)}
.cp-steps p{margin:0;color:var(--ink-soft);line-height:1.55}
.cp-step__n{font-family:var(--serif);font-size:1.1rem;color:var(--cp-steel);display:block;margin-bottom:.25rem}
.cp-steps__line{position:absolute;left:0;right:0;top:.7rem;height:2px;background:rgba(0,0,0,.1);border-radius:2px;overflow:hidden}
.cp-steps__line i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#b0c4d4,#5f7a90);transition:transform .2s linear}
@media (max-width:700px){.cp-steps__line{display:none}.cp-steps li{padding-left:1.8rem;padding-top:0}.cp-steps li:before{top:.35rem}}

/* ---------- faq ---------- */
.cp-faq{background:#fff}
.cp-faq details{margin:0 0 .7rem;padding:0;border-radius:18px}
.cp-faq summary{cursor:pointer;font-weight:600;font-size:1.0625rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.3rem;min-height:var(--tap)}
.cp-faq summary::-webkit-details-marker{display:none}
.cp-faq summary:after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;line-height:1;background:linear-gradient(180deg,#fff,#e8ebed);border:1px solid rgba(0,0,0,.1);transition:transform .4s var(--cp-spring)}
.cp-faq details[open] summary:after{transform:rotate(45deg)}
.cp-faq details p{margin:0;padding:0 1.3rem 1.2rem;color:var(--ink-soft);line-height:1.65;animation:cpPop .5s var(--cp-ease)}
.cp-faq details[open]{border-color:var(--cp-steel)}

/* ---------- other cities ---------- */
.cp-more{background:linear-gradient(180deg,#fff,#f4f5f6)}
.cp-cities{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
.cp-city{display:inline-flex;align-items:center;gap:.8rem;padding:1rem 1.5rem;border-radius:999px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.5rem;transition:transform .4s var(--cp-spring)}
.cp-city i{font-style:normal;font-family:var(--sans,inherit);transition:transform .4s var(--cp-spring)}
.cp-city:hover{transform:translateY(-3px)}
.cp-city:hover i{transform:translateX(5px)}

/* ---------- final CTA ---------- */
.cp-final{position:relative;background:linear-gradient(180deg,#1c1e20,#101112);color:var(--on-dark);padding-block:clamp(3.5rem,2rem + 5vw,6.5rem);text-align:center;overflow:hidden}
.cp-final__glow{position:absolute;inset:-30% 10% auto;height:120%;background:radial-gradient(50% 50% at 50% 30%,rgba(141,164,184,.38),transparent 70%);filter:blur(20px);animation:cpGlow 12s ease-in-out infinite alternate;pointer-events:none}
.cp-final .wrap{position:relative}
.cp-final h2{color:#fff}
.cp-lead2{color:var(--on-dark-soft);margin:0 0 .5rem;font-size:var(--fs-lead)}
.cp-final .btn--ghost,.cp-ghost-dark{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.75rem;border-radius:999px;text-decoration:none;font-weight:600;color:#fff}
.cp-final .btn--book{background:var(--lg-spec),linear-gradient(180deg,#fff,#f2f2f2 40%,#dedede);color:#141414;border-color:#fff}

/* ---------- sticky bar (phones) ---------- */
.cp-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:0 .75rem calc(.75rem + env(safe-area-inset-bottom));transform:translateY(130%);transition:transform .5s var(--cp-ease);pointer-events:none}
.cp-sticky.on{transform:none}
.cp-sticky__in{pointer-events:auto;display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem .55rem 1.1rem;border-radius:999px;font-weight:600;font-size:.9375rem;background:var(--cp-spec-d),linear-gradient(180deg,rgba(40,42,44,.82),rgba(20,21,22,.78))}
.cp-sticky__in span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-sticky .btn{min-height:44px;padding:0 1.1rem;font-size:.9375rem;text-decoration:none;display:inline-flex;align-items:center}
@media (min-width:900px){.cp-sticky{display:none}}
@media (max-width:899px){.footer{padding-bottom:5rem}}

.header__actions .lang{text-decoration:none}
.footer a{text-decoration:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.cp-js .cp-rv{opacity:1;transform:none;filter:none;transition:none}
  .cp-hero__glow,.cp-final__glow,.cpm__ring,.cpm__pulse{animation:none}
  .cp__img--hero{transform:none}
}

/* map markers keep a constant on-screen size while the viewBox zooms */
.cpm__dot circle:first-child{r:calc(9px * var(--k,1) * 1.9)}
.cpm__dot .cpm__core{r:calc(3.2px * var(--k,1) * 1.9)}
.cpm__pulse{r:calc(10px * var(--k,1) * 1.9)}
.cpm__pinc{r:calc(5px * var(--k,1) * 1.9)}
.cpm__pinc{stroke-width:2px}
