/* Swift Fibre Coverage Checker — matches the Swift Fibre site design */
:root{
	--sfc-navy:#00264D;
	--sfc-navy-2:#0B3A68;
	--sfc-line-dark:#1D4F80;
	--sfc-field-dark:#2E6199;
	--sfc-blue:#004D99;
	--sfc-accent:#269DD9;
	--sfc-ink-2:#3D5266;
	--sfc-line:#D3DEE4;
	--sfc-soft:#F0F4F6;
	--sfc-ok-bg:#E3F5E6;
	--sfc-ok-ink:#0B6B1F;
	--sfc-soon-bg:#FFF1D6;
	--sfc-soon-ink:#7A4600;
	--sfc-display:'Bricolage Grotesque',system-ui,sans-serif;
	--sfc-mono:'IBM Plex Mono',ui-monospace,monospace;
}

/* ---------- Address bar (shortcode) ---------- */
.sfc,.sfc *,.sfc-pop,.sfc-pop *,.sfc-modal,.sfc-modal *{box-sizing:border-box}
.sfc{font-family:inherit;width:100%}
.sfc-form{display:flex;flex-direction:column;gap:12px;margin:0}
.sfc-label{font-size:15px;font-weight:600;line-height:1.3}
.sfc-row{display:flex;gap:12px}
.sfc-input{flex:1 1 auto;min-width:0;height:56px;padding:0 18px;border-radius:12px;font:inherit;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}
.sfc-btn{flex:0 0 auto;height:56px;padding:0 26px;border:0;border-radius:12px;font:inherit;font-size:16px;font-weight:600;cursor:pointer;white-space:nowrap;transition:filter .15s}
.sfc-btn:hover{filter:brightness(1.07)}
.sfc-btn:disabled{cursor:progress;filter:saturate(.6)}
.sfc-btn:focus-visible,.sfc-input:focus-visible{outline:3px solid var(--sfc-accent);outline-offset:2px}

/* hero: dark card on navy */
.sfc--hero{background:var(--sfc-navy-2);border:1px solid var(--sfc-line-dark);border-radius:20px;padding:24px;max-width:580px}
.sfc--hero .sfc-label{color:#fff}
.sfc--hero .sfc-input{background:var(--sfc-navy);border:1px solid var(--sfc-field-dark);color:#fff}
.sfc--hero .sfc-input::placeholder{color:#8FA7BF}
.sfc--hero .sfc-btn{background:var(--sfc-accent);color:var(--sfc-navy)}

/* cta: on accent band */
.sfc--cta{max-width:720px}
.sfc--cta .sfc-label{color:var(--sfc-navy)}
.sfc--cta .sfc-input{height:60px;border-radius:14px;border:2px solid var(--sfc-navy);background:#fff;color:var(--sfc-navy);font-size:17px}
.sfc--cta .sfc-btn{height:60px;border-radius:14px;background:var(--sfc-navy);color:#fff;font-size:17px;padding:0 30px}

/* plain: on white */
.sfc--plain .sfc-label{color:var(--sfc-navy)}
.sfc--plain .sfc-input{height:48px;border:1px solid #B7C8D9;background:#fff;color:var(--sfc-navy)}
.sfc--plain .sfc-input:focus{border-color:var(--sfc-blue);box-shadow:0 0 0 3px rgba(0,77,153,.15)}
.sfc--plain .sfc-btn{height:48px;background:var(--sfc-blue);color:#fff}
.sfc-inline{margin-top:20px}

@media (max-width:560px){
	.sfc-row{flex-direction:column}
	.sfc-btn{width:100%}
	.sfc--hero{padding:18px}
}

/* ---------- Suggestions ---------- */
.sfc-pop{position:absolute;z-index:100050;background:#fff;border:1px solid var(--sfc-line);border-radius:14px;box-shadow:0 18px 44px rgba(0,38,77,.2);overflow:hidden;font-family:'IBM Plex Sans',system-ui,sans-serif;color:var(--sfc-navy)}
.sfc-pop[hidden]{display:none}
.sfc-list{list-style:none;margin:0;padding:6px;max-height:320px;overflow:auto}
.sfc-list:empty{display:none}
.sfc-opt{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:10px;cursor:pointer;line-height:1.3;margin:0}
.sfc-opt svg{flex:0 0 auto;margin-top:1px;color:var(--sfc-blue)}
.sfc-opt[aria-selected=true]{background:var(--sfc-soft)}
.sfc-opt-main{display:block;font-weight:600;font-size:15px}
.sfc-opt-sub{display:block;font-size:13px;color:var(--sfc-ink-2);margin-top:2px}
.sfc-pop-msg{margin:0;padding:12px 16px;font-size:14px;color:var(--sfc-ink-2)}
.sfc-pop-msg:empty{display:none}

/* ---------- Modal ---------- */
html.sfc-lock{overflow:hidden}
.sfc-modal{position:fixed;inset:0;z-index:100001;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto}
.sfc-modal[hidden]{display:none}
.sfc-overlay{position:fixed;inset:0;background:rgba(0,26,52,.62)}
.sfc-dialog{position:relative;width:100%;max-width:1180px;background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(0,20,40,.35);padding:40px;font-family:'IBM Plex Sans',system-ui,sans-serif;color:var(--sfc-navy);animation:sfc-in .18s ease-out}
@keyframes sfc-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sfc-dialog{animation:none}}
.sfc-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:0;border-radius:999px;background:var(--sfc-soft);color:var(--sfc-navy);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sfc-close:hover{background:#E0E8EC}
@media (max-width:560px){.sfc-dialog{padding:28px 20px;border-radius:20px}.sfc-modal{padding:12px}}

/* ---------- Results ---------- */
.sfc-result-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.sfc-result{color:var(--sfc-navy);font-family:'IBM Plex Sans',system-ui,sans-serif}
.sfc-result-head{display:flex;flex-direction:column;gap:10px}
.sfc-address{display:flex;gap:8px;align-items:flex-start;margin:0;font-family:var(--sfc-mono);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--sfc-ink-2);line-height:1.45}
.sfc-address svg{flex:0 0 auto;color:var(--sfc-blue)}
.sfc-result-title{margin:0;font-family:var(--sfc-display);font-weight:800;font-size:40px;line-height:1.02;letter-spacing:-.03em;color:var(--sfc-navy);outline:none}
.sfc-result-sub{margin:0;font-size:17px;line-height:1.5;color:var(--sfc-ink-2)}
.sfc-result-sub:empty{display:none}
@media (max-width:560px){.sfc-result-title{font-size:30px}}

.sfc-group{display:flex;flex-direction:column;gap:10px}
.sfc-group-title{margin:0;font-family:var(--sfc-mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sfc-ink-2)}
.sfc-cards{display:flex;flex-direction:column;gap:10px}
.sfc-card{display:flex;align-items:center;gap:16px;min-height:76px;padding:16px 20px;border:1px solid #C5D2D9;border-radius:16px;background:#fff;color:var(--sfc-navy);text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.sfc-card:hover{border-color:var(--sfc-blue);box-shadow:0 8px 24px rgba(0,38,77,.1)}
a.sfc-card:focus-visible{outline:3px solid var(--sfc-accent);outline-offset:2px}
.sfc-card-icon{flex:0 0 auto;width:48px;height:48px;border-radius:12px;background:var(--sfc-navy);color:var(--sfc-accent);display:flex;align-items:center;justify-content:center}
.sfc-card--soon .sfc-card-icon{background:var(--sfc-soft);color:var(--sfc-ink-2)}
.sfc-card-main{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
.sfc-card-name{font-family:var(--sfc-display);font-weight:800;font-size:22px;line-height:1.1}
.sfc-card-type{font-size:14px;color:var(--sfc-ink-2)}
.sfc-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600}
.sfc-badge--ok{background:var(--sfc-ok-bg);color:var(--sfc-ok-ink)}
.sfc-badge--soon{background:var(--sfc-soon-bg);color:var(--sfc-soon-ink)}
.sfc-card-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px;color:var(--sfc-blue)}
@media (max-width:560px){
	.sfc-card{flex-wrap:wrap;gap:12px}
	.sfc-card-main{flex-basis:calc(100% - 64px)}
	.sfc-card-cta{margin-left:auto}
}

.sfc-result{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:32px;align-items:start}
.sfc-result--nomap{grid-template-columns:1fr}
.sfc-result-body{display:flex;flex-direction:column;gap:22px}
.sfc-result-side{display:flex;flex-direction:column;gap:10px;position:sticky;top:0}
.sfc-map{height:560px;max-height:70vh;min-height:360px;border-radius:18px;border:1px solid var(--sfc-line);overflow:hidden;background:#1d2a33;z-index:0}
.sfc-result.is-updating .sfc-result-main{opacity:.55;transition:opacity .15s}
.sfc-map-hint{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:14px;line-height:1.45;color:var(--sfc-navy);font-weight:500}
.sfc-map-hint svg{flex:0 0 auto;margin-top:1px;color:var(--sfc-blue)}
.sfc-coords{margin:0;font-family:var(--sfc-mono);font-size:12px;color:var(--sfc-ink-2)}
.sfc-pin{background:none;border:0;cursor:grab;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}
.sfc-pin:active{cursor:grabbing}
.sfc-map .leaflet-control-layers{border-radius:10px;border:0;box-shadow:0 4px 14px rgba(0,0,0,.25);font:500 13px/1.4 'IBM Plex Sans',system-ui,sans-serif}
.sfc-map .leaflet-control-layers-base label{padding:2px 0}
.sfc-refine{display:flex;flex-direction:column;gap:8px;margin:0;padding-right:52px}
.sfc-refine-label{font-size:14px;font-weight:600;color:var(--sfc-navy)}
.sfc-refine .sfc-input{height:50px;border:1px solid #B7C8D9;background:#fff;color:var(--sfc-navy)}
.sfc-refine .sfc-input:focus{border-color:var(--sfc-blue);box-shadow:0 0 0 3px rgba(0,77,153,.15)}
.sfc-refine .sfc-btn{height:50px}
.sfc-note{display:flex;gap:10px;align-items:flex-start;margin:4px 0 0;padding:12px 14px;border-radius:12px;font-size:15px;line-height:1.45;background:var(--sfc-soft);color:var(--sfc-navy)}
.sfc-note svg{flex:0 0 auto;margin-top:1px}
.sfc-note--street,.sfc-note--area{background:var(--sfc-soon-bg);color:var(--sfc-soon-ink)}
.sfc-fine{margin:0;font-size:13px;line-height:1.5;color:var(--sfc-ink-2)}
@media (max-width:760px){
	.sfc-map{height:380px;min-height:300px}
	.sfc-result-side{position:static}
	.sfc-refine{padding-right:0;margin-top:40px}
}

.sfc-interest{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:18px;background:var(--sfc-soft)}
.sfc-interest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:640px){.sfc-interest-grid{grid-template-columns:1fr}}
.sfc-field{display:flex;flex-direction:column;gap:6px}
.sfc-field label{font-size:14px;font-weight:600}
.sfc-field input{height:48px;padding:0 14px;border:1px solid #B7C8D9;border-radius:10px;background:#fff;font:inherit;font-size:16px;color:var(--sfc-navy)}
.sfc-field input:focus{outline:3px solid var(--sfc-accent);outline-offset:1px;border-color:var(--sfc-blue)}
.sfc-interest-foot{display:flex;gap:16px;align-items:center;justify-content:space-between}
@media (max-width:640px){.sfc-interest-foot{flex-direction:column;align-items:stretch}}
.sfc-btn--dark{height:48px;background:var(--sfc-navy);color:#fff}
.sfc-form-status{margin:0;color:#A1261B;font-size:14px}
.sfc-form-status:empty{display:none}
.sfc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.sfc-thanks{display:flex;gap:10px;align-items:center;margin:0;padding:18px 20px;border-radius:16px;background:var(--sfc-ok-bg);color:var(--sfc-ok-ink);font-weight:600}

.sfc-result-foot{display:flex;justify-content:flex-start;border-top:1px solid var(--sfc-line);padding-top:18px}
.sfc-link{border:0;background:none;padding:10px 0;font:inherit;font-weight:600;font-size:15px;color:var(--sfc-blue);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
