:root{--cp-ink:#20263a;--cp-muted:#7c8292;--cp-line:#e9ebf2;--cp-blue:var(--gy-brand,#1d4ed8)}body:has(.cp-page){background:#f7f8fc!important}.cp-page{max-width:1280px;margin:auto;padding:34px 40px 64px;color:var(--cp-ink)}.cp-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px;font-size:12px;color:#9298a6}.cp-topline a{font-size:16px;font-weight:750;color:#263754}.cp-topline span{background:#eef1f8;border:1px solid #e4e8f1;border-radius:30px;padding:6px 11px}.cp-heading{margin-bottom:28px}.cp-heading h1{font-size:clamp(28px,3.5vw,42px);letter-spacing:-1.5px;font-weight:800;line-height:1.18;margin:0 0 12px}.cp-heading p{font-size:16px;line-height:1.75;color:var(--cp-muted);max-width:740px}.cp-calculator{display:grid;grid-template-columns:450px minmax(0,1fr);background:#fff;border:1px solid var(--cp-line);border-radius:18px;box-shadow:0 12px 35px #202d4d08,0 2px 5px #202d4d04;overflow:hidden;min-height:500px}.cp-controls{padding:26px 24px;position:relative;z-index:2;min-width:0;display:flex;flex-direction:column;gap:20px}.cp-input-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cp-controls label,.cp-controls legend{display:block;font-size:11px;font-weight:700;line-height:1.5;color:#515767}.cp-controls select,.cp-controls input{font:inherit;font-size:12px;color:#424a5c;background:#fff;border:1px solid #e3e6ee;box-shadow:0 1px 2px #17233a03;border-radius:8px;width:100%;min-width:0;height:42px;margin-top:8px;padding:0 10px}.cp-controls select{padding-right:22px}.cp-controls input:focus,.cp-controls select:focus{outline:2px solid #8db0ff;outline-offset:2px}.cp-search-wrap{position:relative}.cp-search-wrap svg{position:absolute;top:21px;left:11px;width:16px;height:16px;color:#9ca4b3;pointer-events:none}.cp-search-wrap input{padding-left:33px}.cp-place-field{position:relative;min-width:0}.cp-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 12px 35px #18244024;list-style:none;border:1px solid var(--cp-line);border-radius:10px;padding:5px;margin-top:6px;max-height:260px;overflow:auto;z-index:10}.cp-suggestions button{width:100%;text-align:left;border:0;background:#fff;padding:10px 9px;font:inherit;font-size:12px;cursor:pointer;border-radius:6px;display:flex;justify-content:space-between;gap:6px;color:#30374a}.cp-suggestions button span{color:#9298a6;font-size:11px}.cp-suggestions button:hover,.cp-suggestions button:focus{background:#eff4ff;outline:none;color:var(--cp-blue)}.cp-suggestions .cp-no-match{padding:9px;font-size:12px;color:#858c9b}.cp-size-field{border:0;margin:0;padding:0;min-width:0}.cp-size-buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.cp-size-buttons button{min-width:37px;height:38px;border:1px solid #e7e9ef;border-radius:9px;background:#fff;font-size:12px;font-weight:650;color:#51586a;cursor:pointer;padding:0 9px;box-shadow:0 2px 3px #172c4b03;transition:background .16s,color .16s,transform .16s}.cp-size-buttons button:hover{border-color:#a3baff}.cp-size-buttons button[aria-pressed=true]{background:#20273e;border-color:#20273e;color:#fff;box-shadow:0 4px 8px #20273e16}.cp-size-buttons button:active{transform:translateY(1px)}.cp-custom-size{font-size:11px;margin-top:10px;color:#969baa}.cp-custom-size summary{cursor:pointer;width:fit-content}.cp-custom-size label{margin-top:9px;max-width:130px}.cp-custom-size input{height:36px;margin-top:5px}.cp-extras{border-top:1px solid #f0f1f6;border-bottom:1px solid #f0f1f6;padding:12px 0;margin-top:-6px}.cp-extras summary{display:flex;justify-content:space-between;cursor:pointer;font-size:12px;font-weight:600;color:#687086;list-style:none}.cp-extras summary::-webkit-details-marker{display:none}.cp-extras summary span{font-size:17px;line-height:1}.cp-extras[open] summary span{transform:rotate(45deg)}#cp-extras{display:grid;gap:10px;padding-top:13px}.cp-extras label{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:500}.cp-extras input{width:15px;height:15px;margin:0;accent-color:var(--cp-blue);box-shadow:none}.cp-extras label span{margin-left:auto;color:#858d9b;white-space:nowrap}.cp-result{background:#20273e;border-radius:12px;color:#fff;padding:17px 16px;min-height:125px;box-shadow:0 3px 8px #20273e0b}.cp-result-heading{display:flex;align-items:start;gap:8px;justify-content:space-between}.cp-result h2{font-size:15px;line-height:1.5;font-weight:700;letter-spacing:-.25px}.cp-result-heading>span{flex-shrink:0;padding:5px 7px;border-radius:5px;background:#ffffff10;color:#cfbb86;font-size:9px;font-weight:650;line-height:1.4}.cp-result-heading>span.cp-status-ready{background:#619e8624;color:#a9dcc4}.cp-result-empty{display:flex;align-items:start;gap:10px;margin-top:14px}.cp-result-empty svg{width:19px;height:19px;color:#7f95c8;flex-shrink:0;margin-top:2px}.cp-result-empty p{font-size:11px;line-height:1.8;color:#b4bed4}.cp-place-result{font-size:11px;color:#b9c6e0;margin-top:9px}.cp-travel{display:flex;gap:18px;border-bottom:1px solid #ffffff15;padding:14px 0;margin-bottom:14px}.cp-travel div{display:flex;gap:6px;align-items:center;font-size:11px;color:#c9d3e6}.cp-travel svg{width:15px;height:15px;color:#8eabed}.cp-price-row{display:grid;gap:5px}.cp-price-row>span{font-size:10px;color:#b3bed5}.cp-price-row strong{font-size:26px;letter-spacing:-.8px;font-weight:750;line-height:1.35}.cp-breakdown{font-size:10px;line-height:1.8;color:#a9b6d0;margin-top:9px}.cp-note{font-size:10px;line-height:1.8;color:#8990a0;margin:-8px 0 -8px}.cp-quote{display:flex;justify-content:center;align-items:center;gap:12px;background:var(--cp-blue);color:#fff;font-size:13px;font-weight:700;border-radius:11px;min-height:46px;padding:12px 16px;box-shadow:0 5px 12px #1d4ed828;margin-top:auto;transition:background .15s,box-shadow .15s}.cp-quote:hover{background:var(--gy-brand-hover,#1e40af);box-shadow:0 6px 16px #1d4ed830}.cp-quote svg{width:18px;height:18px}.cp-map-panel{position:relative;min-height:500px;background:#eef2f0;min-width:0}.cp-map{position:absolute;inset:0;z-index:0;background:#eef2f0}.cp-map .leaflet-tile-pane{filter:grayscale(.65) saturate(.5);opacity:.65}.cp-map .leaflet-container{font-family:inherit}.cp-map .leaflet-control-attribution{font-size:9px;background:#ffffffd9;color:#7d8790}.cp-map .leaflet-control-attribution a{color:#778a9a}.cp-map .leaflet-control-zoom{border:1px solid #d6dde4;box-shadow:0 2px 6px #263f510c;margin:20px}.cp-map .leaflet-control-zoom a{color:#506077;width:28px;height:28px;line-height:28px;font-size:20px}.cp-map-caption{position:absolute;z-index:400;left:68px;top:18px;background:#ffffffea;border:1px solid #e3e8ee;border-radius:10px;padding:8px 12px;box-shadow:0 3px 12px #172d4b07;pointer-events:none;display:grid;gap:3px}.cp-map-caption span{font-size:9px;color:#929aa8;text-transform:uppercase;letter-spacing:1px}.cp-map-caption strong{font-size:12px;color:#54647a;font-weight:650}.cp-map-legend{position:absolute;bottom:30px;left:18px;z-index:400;padding:12px 14px;background:#fffffff0;border:1px solid #e8ebef;border-radius:10px;box-shadow:0 3px 12px #243c5308;display:grid;gap:9px;pointer-events:none}.cp-map-legend span{display:flex;align-items:center;gap:8px;font-size:10px;color:#8892a2}.cp-map-legend i{width:10px;height:10px;border-radius:50%;border:2px solid #5a79cc;background:#fff}.cp-map-legend .cp-legend-origin{background:var(--cp-blue);border-color:var(--cp-blue)}.cp-origin-icon{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border-radius:10px;box-shadow:0 5px 20px #20344b23;border:1px solid #e1e7f0;white-space:nowrap;width:max-content!important;height:42px!important}.cp-origin-icon i{display:block;width:13px;height:13px;background:var(--cp-blue);border:2px solid #fff;box-shadow:0 0 0 4px #aebffc70;border-radius:50%}.cp-origin-icon img{height:24px;width:auto;max-width:90px;object-fit:contain}.cp-origin-icon span{font-size:12px;font-weight:750;color:#334665}.cp-map-fallback{position:absolute;z-index:450;top:80px;left:20px;right:20px;background:#fffffff2;border:1px solid #e0e6ef;border-radius:10px;padding:12px;font-size:12px;line-height:1.7;color:#68778c;pointer-events:none}.cp-distance-note{font-size:10px;line-height:1.8;color:#a0a7b4;margin:15px 0;text-align:right}.cp-empty{padding:30px;background:#fff;border:1px solid var(--cp-line);border-radius:15px}.cp-empty h2{font-size:18px;font-weight:700;margin-bottom:10px}.cp-page [hidden],.gy-calculator [hidden]{display:none!important}.cp-page a:focus-visible,.cp-page button:focus-visible,.cp-page summary:focus-visible{outline:2px solid #759fff;outline-offset:3px;border-radius:8px}@media(min-width:1450px){.cp-page{padding-top:54px}.cp-topline{margin-bottom:48px}.cp-calculator{min-height:530px}.cp-map-panel{min-height:530px}}@media(max-width:1050px){.cp-calculator{grid-template-columns:410px minmax(0,1fr)}.cp-page{padding:25px 24px 45px}.cp-heading h1{font-size:34px}}@media(max-width:800px){.cp-calculator{grid-template-columns:1fr}.cp-map-panel{min-height:350px;order:2}.cp-controls{padding:24px;gap:20px}.cp-heading h1{font-size:32px;letter-spacing:-1px}.cp-heading p{font-size:14px}.cp-topline{margin-bottom:27px}.cp-distance-note{text-align:left}.cp-calculator{border-radius:15px}.cp-map-caption{left:66px}.cp-map .leaflet-control-zoom{margin:18px}.cp-result h2{font-size:16px}.cp-result-empty p{font-size:12px}.cp-note{font-size:11px}}@media(max-width:440px){.cp-page{padding:20px 16px 36px}.cp-topline{font-size:10px}.cp-topline a{font-size:14px}.cp-heading h1{font-size:29px}.cp-controls{padding:22px 18px}.cp-input-row{gap:10px}.cp-controls select,.cp-controls input{font-size:11px}.cp-controls label{font-size:10px}.cp-size-buttons{gap:6px}.cp-size-buttons button{min-width:36px;padding:0 8px}.cp-map-panel{min-height:320px}.cp-topline{margin-bottom:24px}.cp-price-row strong{font-size:25px}}@media(prefers-reduced-motion:reduce){.cp-page *{transition:none!important;scroll-behavior:auto!important}}

.cp-origin-icon>div{display:flex;align-items:center;gap:8px}

/* Keep the complete calculator visible on ordinary desktop displays. */
@media(min-width:801px){.cp-page{position:relative;padding-top:46px}.cp-topline{position:absolute;right:40px;top:13px;margin:0;gap:15px;font-size:10px}.cp-topline a{font-size:11px}.cp-topline span{padding:3px 8px}.cp-heading{margin-bottom:26px}.cp-controls{padding:24px;gap:16px}.cp-size-field{position:relative}.cp-custom-size{margin-top:0}.cp-custom-size summary{position:absolute;right:0;top:1px;font-size:10px}.cp-extras{padding:9px 0}.cp-controls label,.cp-controls legend{font-size:12px}.cp-controls select,.cp-controls input{font-size:13px}.cp-result-empty p{font-size:12px;line-height:1.7}.cp-map-panel{background:#f7f8f4}.cp-map{background:#f7f8f4}.cp-map .leaflet-tile-pane{filter:grayscale(.4) saturate(.55) brightness(1.03);opacity:.72}}

@media(max-width:440px){.cp-input-row{grid-template-columns:1fr;gap:17px}.cp-controls label,.cp-controls legend{font-size:12px}.cp-controls select,.cp-controls input{font-size:16px;height:44px}.cp-search-wrap svg{top:22px}.cp-place-field input{padding-left:34px}.cp-extras input{width:16px;height:16px}.cp-controls .cp-custom-size input{font-size:16px}.cp-extras label{font-size:12px}}

/* Distance rings and compact key, matching the calculator reference. */
.cp-map-legend span{font-size:11px;color:#67748b}.cp-map-legend .cp-legend-radius{width:20px;height:0;border:0;border-top:2px dashed #5873c9;border-radius:0;background:transparent}.cp-radius-ring{stroke:#5873c9;stroke-width:1.8;stroke-opacity:.85;fill:none}

.cp-map-legend .cp-legend-canton{width:20px;height:0;border:0;border-top:2px solid #3757bd;border-radius:0;background:transparent}

.cp-result #cp-status{font-size:10px;max-width:170px;white-space:normal;text-align:center}.cp-status-outside{color:#ffe0a6!important;background:#f59e0b25!important}.cp-area-note{font-size:11px;line-height:1.6;color:#f5deb4;margin-top:12px;padding-top:10px;border-top:1px solid #ffffff20}.cp-target-icon{background:transparent;border:0}.cp-target-label{display:flex;align-items:center;gap:8px;height:38px;white-space:nowrap}.cp-target-label>i{position:relative;display:block;flex-shrink:0;width:28px;height:28px;border:5px solid #fff;background:#3d59c6;border-radius:50%;box-shadow:0 0 0 6px #3d59c633}.cp-target-label>i:before,.cp-map-focused .cp-origin-icon i:before{content:'';position:absolute;inset:-10px;border:2px solid #5475d288;border-radius:50%;animation:cp-pulse 2.3s ease-out infinite;pointer-events:none}.cp-target-label>span{background:#fff;border-radius:7px;padding:7px 11px;color:#253454;font-size:12px;font-weight:700;box-shadow:0 3px 12px #172e5430;animation:cp-label-in .35s ease-out}.cp-route-arc{animation:cp-route-flow 1.3s linear infinite}.cp-origin-icon i{position:relative}.cp-legend-target{display:none!important}.cp-map-panel:has(.cp-map-focused) .cp-legend-overview{display:none}.cp-map-panel:has(.cp-map-focused) .cp-legend-target{display:flex!important}.cp-legend-target b{font-weight:400}@keyframes cp-pulse{0%{transform:scale(.65);opacity:.9}100%{transform:scale(1.7);opacity:0}}@keyframes cp-route-flow{to{stroke-dashoffset:-34}}@keyframes cp-label-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cp-route-arc,.cp-target-label>span,.cp-target-label>i:before,.cp-map-focused .cp-origin-icon i:before{animation:none}}

.cp-map{background:#f3f6fa}.cp-map .leaflet-tile-pane{filter:none;opacity:1}.cp-map .maplibregl-canvas{outline:none}.cp-map-caption{border:1px solid #ffffffd9;background:#ffffffeb;box-shadow:0 6px 22px #23355d0b;border-radius:12px}.cp-map-legend{border-color:#e5eaf2;box-shadow:0 6px 20px #21365e0b;border-radius:12px}.cp-map .leaflet-control-zoom{border:1px solid #e0e6f0!important;box-shadow:0 4px 14px #23355d0c;border-radius:10px;overflow:hidden}.cp-map .leaflet-control-zoom a{color:#344466;border-color:#edf0f5}.cp-price-row strong{font-size:29px}

/* Homepage: match the existing price section, without changing other page styles. */
.gy-calculator{margin-top:56px;scroll-margin-top:95px;color:var(--cp-ink)}.gy-calculator .cp-heading{margin-bottom:28px}.gy-calculator .cp-heading h2{font-size:clamp(28px,3vw,40px);font-weight:800;line-height:1.2;letter-spacing:-1.2px;color:#202536}.gy-calculator .cp-heading p{max-width:760px;font-size:16px;color:#7b8190;line-height:1.7;margin-top:12px}.gy-calculator .cp-calculator{border-radius:18px;box-shadow:0 10px 32px #23355d0b}.gy-calculator .cp-quote{background:var(--gy-brand);box-shadow:0 6px 16px #23355d1c}.gy-calculator .cp-quote:hover{background:var(--gy-brand-hover)}.gy-calculator .cp-map-panel{min-height:500px}.gy-calculator .cp-distance-note{line-height:1.7}.gy-calculator .cp-result h3{font-size:18px;font-weight:750;letter-spacing:-.5px}.gy-calculator .cp-controls{padding:26px 24px}.gy-calculator .cp-result{margin-top:16px}.gy-calculator .cp-price-row{padding-top:14px;margin-top:14px}@media(max-width:800px){.gy-calculator{margin-top:36px}.gy-calculator .cp-map-panel{min-height:350px}.gy-calculator .cp-heading{margin-bottom:22px}}@media(max-width:440px){.gy-calculator .cp-controls{padding:22px 18px}.gy-calculator .cp-map-panel{min-height:320px}}

.cp-result-heading h3{font-size:18px;font-weight:750;letter-spacing:-.5px;line-height:1.3}.gy-quote{scroll-margin-top:95px}

.gy-calculator a:focus-visible,.gy-calculator button:focus-visible,.gy-calculator summary:focus-visible{outline:2px solid #7596ee;outline-offset:3px}

.gy-calculator-section{max-width:1200px;margin:0 auto;padding:54px 24px 70px;scroll-margin-top:90px}.gy-calculator-section .gy-calculator{margin-top:0}@media(max-width:800px){.gy-calculator-section{padding:38px 20px 50px}}

/* Compact calculator with room for the selected-place result. */
.cp-controls{gap:12px}.cp-result{padding:16px;margin-top:8px}.cp-note{margin:0;line-height:1.5}.cp-quote{min-height:46px}.gy-calculator .cp-controls{padding:20px}.gy-calculator .cp-result{margin-top:8px}.gy-calculator .cp-price-row{padding-top:10px;margin-top:10px}.gy-calculator .cp-map-panel{min-height:420px}.gy-calculator .cp-heading{margin-bottom:22px}.gy-calculator-section{padding-top:40px;padding-bottom:50px}
@media(max-width:800px){.gy-calculator .cp-map-panel{min-height:300px}.gy-calculator .cp-controls{padding:18px}.gy-calculator-section{padding-top:30px;padding-bottom:38px}}

/* Remove the old fixed card height; content determines the compact height. */
.cp-calculator,.gy-calculator .cp-calculator{min-height:0}
.cp-map-panel,.gy-calculator .cp-map-panel{min-height:360px}
.cp-controls,.gy-calculator .cp-controls{padding:18px;gap:10px}
.cp-result,.gy-calculator .cp-result{min-height:0;padding:13px 14px;margin-top:0}
.cp-result-empty{margin-top:8px}.cp-result-empty p{line-height:1.5}
.cp-travel{padding:8px 0;margin-bottom:0}.cp-place-result{margin-top:6px}
.cp-price-row,.gy-calculator .cp-price-row{padding-top:8px;margin-top:8px}
.cp-breakdown{margin-top:5px;line-height:1.5}
.cp-size-buttons{margin-top:6px}.cp-size-buttons button{height:34px}
.cp-controls select,.cp-controls input{margin-top:5px}
.cp-quote{margin-top:0;min-height:42px;padding:10px 14px}
@media(max-width:800px){.cp-map-panel,.gy-calculator .cp-map-panel{min-height:260px}.cp-controls,.gy-calculator .cp-controls{padding:16px}.cp-controls input,.cp-controls select{font-size:16px}}
