/* Site discovery. Scoped to the landing pages; shared shell lives in console.css. */
.gv-landing{position:relative;isolation:isolate;display:grid;place-items:center;min-height:700px;min-height:max(700px,calc(100svh - 64px));overflow:hidden;background:#e8eceb;color:#152641;view-transition-name:site-stage}
.gv-landing__map,.gv-landing__veil{position:absolute;inset:0;z-index:-2}
.gv-landing__map{background:#e7ece8;pointer-events:none}
.gv-landing__map .maplibregl-canvas{outline:none}
.gv-landing__map .maplibregl-control-container,.gv-landing__map .leaflet-control-container{display:none}
.gv-landing__map.leaflet-container{font-family:inherit;background:#e7ece8}
.gv-landing__map .leaflet-tile{max-width:none!important;max-height:none!important}
.gv-landing__veil{z-index:-1;background:radial-gradient(ellipse at 50% 40%,rgba(249,251,250,.96) 0%,rgba(249,251,250,.88) 23%,rgba(245,248,247,.61) 53%,rgba(236,244,241,.19) 100%),linear-gradient(0deg,#f4f7fb 0%,transparent 25%,rgba(249,250,250,.24) 100%)}
.gv-landing__content{width:min(100% - 48px,960px);padding:76px 0 130px;text-align:center;z-index:1}
.gv-landing__eyebrow{display:flex;justify-content:center;align-items:center;gap:9px;font-size:13px;font-weight:500;letter-spacing:.012em;color:#53776e;margin-bottom:25px}
.gv-landing__eyebrow>span{height:6px;width:6px;border-radius:50%;background:#389580;box-shadow:0 0 0 4px #3895800b}
.gv-landing__title{margin:0;color:#202623;font-size:clamp(43px,5.45vw,76px);font-weight:650;line-height:1.08;letter-spacing:-.057em;text-wrap:balance}
.gv-landing__title>span{display:inline-block;background:linear-gradient(105deg,#187468 4%,#31828a 57%,#476a99 100%);background-clip:text;-webkit-background-clip:text;color:transparent;padding-bottom:5px}
.gv-landing__intro{margin:24px 0 33px;font-size:18px;line-height:1.55;letter-spacing:-.012em;color:#65716c}
.gv-mobile-break{display:none}
.gv-search{max-width:644px;margin:0 auto;text-align:left;border:1px solid #ffffffc9;border-radius:23px;background:#ffffffe3;box-shadow:0 12px 45px #1e443217,0 1px 4px #1e44320b;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:9px 10px 0;transition:box-shadow .25s,border-color .25s}
.gv-search:focus-within{border-color:#1f86783b;box-shadow:0 15px 50px #1e443219,0 0 0 3px #268d790a}
.gv-search__main{display:flex;align-items:center;gap:12px;min-height:58px;padding-left:13px}
.gv-search__icon{flex:0 0 22px;width:22px;height:22px;color:#83928b}
.gv-search__main>input{min-width:0;width:100%;flex:1;background:transparent;border:0;border-radius:0;outline:none;color:#152641;padding:16px 0;font:inherit;font-size:18px;letter-spacing:-.018em;text-transform:uppercase}
.gv-search__main>input::placeholder{color:#919994;opacity:1;text-transform:none;letter-spacing:-.018em}
.gv-search__main>input:focus-visible{box-shadow:none}
.gv-search__submit{display:inline-flex;align-items:center;justify-content:center;gap:11px;flex:0 0 auto;min-height:52px;border:0;border-radius:16px;background:#c3f84a;color:#152641;padding:0 22px;font:inherit;font-size:14px;font-weight:600;letter-spacing:-.01em;text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:0 2px 4px #136cfc1c;transition:background .18s,transform .18s,box-shadow .18s}
.gv-search__submit:hover{background:#b5ee33;box-shadow:0 4px 12px #1526412e;transform:translateY(-1px);color:#152641}
.gv-search__submit:active{transform:scale(.985)}
.gv-search__submit:focus-visible,.gv-landing__motion:focus-visible,.gv-search__options>summary:focus-visible{outline:3px solid #136cfc;outline-offset:4px}
.gv-search__submit:disabled{background:#99a3ad;box-shadow:none;cursor:default;transform:none}
.gv-search__submit>svg{width:18px;height:18px}
.gv-search__spinner{display:none;width:17px;height:17px;flex:none;border:2px solid #1526413d;border-top-color:#152641;border-radius:50%;animation:gv-search-spin .8s linear infinite}
.gv-search.is-busy .gv-search__spinner{display:block}
.gv-search.is-busy [data-submit-arrow]{display:none}
.gv-search.is-busy .gv-search__submit{background:#d4fa7a;min-width:186px}
.gv-search__options{border-top:1px solid #244d3210;margin:8px 10px 0}
.gv-search__options>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;font-size:11px;font-weight:500;color:#78847e;cursor:pointer;padding:6px 3px}
.gv-search__options>summary::-webkit-details-marker{display:none}
.gv-search__options>summary>svg{width:14px;height:14px;transition:transform .2s}
.gv-search__options[open]>summary>svg{transform:rotate(180deg)}
.gv-search__fields{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;padding:5px 3px 15px}
.gv-search__project{grid-column:1/-1}
.gv-search__optional{font-weight:400;color:#78847e;margin-left:4px}
.gv-search__details-help{font-size:11px;line-height:1.5;color:#64736b;margin:0;padding:0 3px 15px}
/* Approver-only competition rebuild toggle. Sits inside the collapsed options
   block with the asset fields, so it inherits their spacing. */
.gv-search__toggle{padding:0 3px 4px}
.gv-search__toggle label{display:flex;align-items:flex-start;gap:8px;font-size:12px;
  line-height:1.45;color:#3b4a42;cursor:pointer}
.gv-search__toggle input[type="checkbox"]{width:15px;height:15px;margin:1px 0 0;flex:none;
  accent-color:#c0392b;cursor:pointer}
.gv-search__toggle span{display:block;color:#7a8a81;font-size:11px}
.gv-search__fields label{display:block;font-size:11px;font-weight:550;color:#576860;margin-bottom:7px}
.gv-search__fields label>span{color:#8a948e;font-weight:400;margin-left:4px}
.gv-search__fields input,.gv-search__fields select{font:inherit;font-size:13px;color:#313b35;background:#f6f8f6;border:1px solid #e3e8e3;border-radius:9px;min-width:0;width:100%;min-height:44px;padding:9px 11px;outline:none}
.gv-search__fields input:focus-visible,.gv-search__fields select:focus-visible{outline:2px solid #136cfc;outline-offset:2px}
.gv-search__feedback{margin:0 -10px;padding:0 22px 14px;color:#77857c;font-size:11px;line-height:1.5;min-height:30px}
.gv-search__feedback.is-error{color:#b42332;font-size:12px}
.gv-landing__journey{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:40px;font-size:12px;letter-spacing:.005em;color:#64796f}
.gv-landing__journey>span:not(.gv-landing__journey-line){display:flex;align-items:center;gap:7px}
.gv-landing__journey i{font-style:normal;font-size:9px;font-variant-numeric:tabular-nums;color:#9aada3}
.gv-landing__journey-line{width:31px;height:1px;background:#98b6a743}
.gv-landing__map-meta{position:absolute;bottom:48px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#72877c;font-size:11px}
.gv-landing__place{display:flex;align-items:center;gap:7px}
.gv-landing__place-dot{width:5px;height:5px;border-radius:50%;background:#7b9e88}
.gv-landing__motion{display:flex;align-items:center;gap:7px;min-height:44px;border:1px solid #76938227;border-radius:20px;padding:0 12px;background:#ffffff5e;color:#667e71;font:inherit;font-size:10px;cursor:pointer;backdrop-filter:blur(10px)}
.gv-landing__motion>svg{height:12px;width:12px}
.gv-landing__motion [hidden]{display:none}
.gv-landing__motion:disabled{opacity:.5;cursor:default}
.gv-landing__credit{position:absolute;bottom:18px;left:40px;right:40px;text-align:right;color:#7b8b83;font-size:9px;line-height:1.4}
.gv-landing__credit a{color:inherit}
.gv-landing__fallback-note{position:absolute;left:40px;bottom:17px;font-size:9px;line-height:1.4;margin:0;color:#7b8b83}
.gv-landing__welcome>p{font-size:12px;color:#77857c;margin:18px 0 0}
.gv-landing__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gv-landing__marker{width:18px;height:18px;position:relative}
.gv-landing__marker:before{content:"";position:absolute;inset:0;border-radius:50%;background:#1678c4;border:3px solid white;box-shadow:0 2px 15px #1778c46b}
.gv-landing__marker:after{content:"";position:absolute;inset:-13px;border-radius:50%;border:1px solid #1678c440;animation:gv-location-pulse 2s ease-out infinite}
.gv-landing.is-arriving .gv-landing__veil{opacity:.62;transition:opacity 1.2s}
.gv-landing.is-arriving .gv-landing__eyebrow,.gv-landing.is-arriving .gv-landing__intro,.gv-landing.is-arriving .gv-landing__journey{opacity:.5;transition:opacity .7s}
.gv-static-tile{position:absolute;width:256px;height:256px;max-width:none;user-select:none;pointer-events:none}
/* Sign in stays within the user's existing postcode journey. */
.gv-login{position:fixed;inset:0;margin:auto;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #ffffffb8;border-radius:28px;background:#fbfcfb;color:#152641;padding:38px;box-shadow:0 35px 130px #142c3433;outline:none}
.gv-login[open]{animation:gv-login-enter .3s cubic-bezier(.22,1,.36,1) both}
.gv-login::backdrop{background:#1a302a35;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.gv-login__close{position:absolute;right:15px;top:15px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:#5b6b82;cursor:pointer}
.gv-login__close:hover{background:#e9eeeb}
.gv-login__close>svg{width:22px;height:22px}
.gv-login__mark{width:31px;height:31px;color:#136cfc;margin:3px 0 21px}
.gv-login__mark svg{height:100%;width:100%}
.gv-login h2{font-size:29px;line-height:1.15;font-weight:620;letter-spacing:-.04em;margin:0 0 13px}
.gv-login>p{font-size:14px;line-height:1.65;color:#6e7972;margin:0 0 28px}
.gv-login>p strong{font-weight:500;color:#49685b}
.gv-login__form{display:flex;flex-direction:column;gap:8px}
.gv-login__form label{font-size:12px;color:#506056;font-weight:550;margin-top:9px}
.gv-login__form>input:not([type=hidden]),.gv-login__form>select{width:100%;min-height:48px;border:1px solid #dae2dc;border-radius:12px;padding:11px 13px;font:inherit;font-size:16px;background:#fff;color:#273d31}
.gv-login__form>.gv-search__submit{width:100%;margin-top:16px}
.gv-login__error{color:#b42332;background:#fff0f1;border:1px solid #f6dde0;border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.5;margin-top:9px}
.gv-login__help{font-size:11px;color:#839087;line-height:1.65;margin:8px 0 0}
@keyframes gv-login-enter{from{opacity:0;transform:translateY(15px) scale(.985)}to{opacity:1;transform:none}}
@keyframes gv-search-spin{to{transform:rotate(360deg)}}
@keyframes gv-location-pulse{0%{transform:scale(.65);opacity:.85}100%{transform:scale(1.8);opacity:0}}
@media(min-width:1500px){.gv-landing__content{padding-top:100px}.gv-landing__title{font-size:82px}}
@media(max-width:900px){.gv-landing__title{font-size:58px}.gv-landing__content{width:min(100% - 56px,800px)}.gv-landing__map-meta{left:28px;right:28px}.gv-landing__credit{right:28px;left:28px}.gv-landing__fallback-note{left:28px}}
@media(max-width:600px){.gv-landing{min-height:max(740px,calc(100svh - 64px))}.gv-landing__content{width:calc(100% - 36px);padding:65px 0 122px}.gv-landing__eyebrow{font-size:11px;margin-bottom:24px}.gv-landing__title{font-size:clamp(35px,8.9vw,51px);line-height:1.1;letter-spacing:-.055em}.gv-landing__intro{font-size:15px;line-height:1.6;margin:21px 0 30px}.gv-mobile-break{display:block}.gv-search{max-width:430px;border-radius:22px;padding:8px 9px 0}.gv-search__main{flex-wrap:wrap;gap:0 11px;padding:0 3px}.gv-search__icon{margin-left:11px;width:20px;flex-basis:20px}.gv-search__main>input{font-size:17px;padding:18px 0;flex-basis:calc(100% - 54px)}.gv-search__submit{width:100%;min-height:48px;border-radius:13px;font-size:14px}.gv-search__options{margin-top:10px}.gv-search__feedback{padding:0 20px 15px;font-size:10px}.gv-search__fields{grid-template-columns:1fr;gap:13px}.gv-search__fields input,.gv-search__fields select{font-size:16px}.gv-landing__journey{margin-top:29px;gap:11px;font-size:10px}.gv-landing__journey-line{width:19px}.gv-landing__journey i{font-size:8px}.gv-landing__map-meta{left:20px;right:20px;bottom:56px;font-size:9px}.gv-landing__motion{padding:0 10px;min-height:44px;font-size:9px}.gv-landing__credit{bottom:18px;left:20px;right:20px;font-size:8px}.gv-landing__fallback-note{bottom:32px;left:20px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.gv-landing *, .gv-search *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gv-landing__marker:after{transform:scale(1.1);opacity:.5}.gv-search__submit:hover{transform:none}}

@media(max-width:600px){.gv-login{padding:31px 25px;border-radius:25px}.gv-login h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.gv-login[open]{animation:none}}
