/* Lince Salisbury brand (LS_Brand/LS_BrandIdentity.html): SemplicitaLince, Primary Blue and Navy on white and off-white.
   Layout: navy masthead, step rail, then a two-column working area (form left, live range right) that stacks on phones. */
@font-face{font-family:"SemplicitaLince";font-weight:300;font-style:normal;font-display:swap;src:url("fonts/SemplicitaLince-Light.otf") format("opentype")}
@font-face{font-family:"SemplicitaLince";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/SemplicitaLince-Regular.otf") format("opentype")}
@font-face{font-family:"SemplicitaLince";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/SemplicitaLince-Medium.otf") format("opentype")}
@font-face{font-family:"SemplicitaLince";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/SemplicitaLince-SemiBold.otf") format("opentype")}

:root{
  /* Brand palette */
  --blue:#0f68e4; --navy:#072d63; --mid:#0b4ba3; --berry:#b8005e; --teal:#4fbbc2; --amber:#f7aa36; --grey:#bababa;
  --offwhite:#f2f3f6; --rule:#dde0e8; --white:#ffffff;
  /* Roles */
  --bg:var(--offwhite); --surface:var(--white); --fg:var(--navy); --muted:rgba(7,45,99,.7); --line:var(--rule);
  --accent:var(--blue); --accent-soft:rgba(15,104,228,.07); --accent-fg:var(--white);
  --font:"SemplicitaLince",Helvetica,Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-weight:300;font-size:15px;line-height:1.65;padding-bottom:48px;-webkit-font-smoothing:antialiased}
b,strong{font-weight:600}
.wrap{max-width:1080px;margin:0 auto;padding-inline:16px}

/* Masthead: navy band with the circle logo, as the brand section headers */
.masthead{background:var(--navy);border-bottom:3px solid var(--blue);color:var(--white)}
.masthead .wrap{display:flex;gap:24px;align-items:center;padding-block:32px 30px}
.logo{width:72px;height:72px;flex-shrink:0;display:block}
.embedded .logo{display:none}
h1{font-weight:600;font-size:clamp(26px,4vw,36px);line-height:1.1;letter-spacing:-.01em;margin:8px 0 0;text-wrap:balance}
.sub{color:rgba(255,255,255,.7);margin:10px 0 0;max-width:62ch}
@media (max-width:560px){.masthead .wrap{flex-direction:column;align-items:flex-start;gap:16px;padding-block:24px}.logo{width:56px;height:56px}}

/* Eyebrow label: short rule plus spaced capitals */
.eyebrow,.group-h,.est h3{display:flex;align-items:center;gap:10px;font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0}
.eyebrow::before,.group-h::before,.est h3::before{content:"";width:24px;height:2px;background:currentColor;flex-shrink:0}
.masthead .eyebrow{color:var(--teal)}

.rail{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:24px 0}
.rail li{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-radius:2px;background:var(--surface);color:var(--muted);cursor:pointer;border:1px solid var(--line)}
.rail li.on{background:var(--navy);border-color:var(--navy);color:var(--white)}
.rail li.done{border-color:var(--blue);color:var(--blue)}

.grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:28px}
@media (max-width:560px){.panel{padding:20px}}
.panel h2{font-weight:600;font-size:26px;line-height:1.15;margin:0 0 6px}
.panel .lede{color:var(--muted);margin:0 0 20px}
.q{display:grid;gap:8px;padding-block:16px;border-top:1px solid var(--line)}
.q:first-of-type{border-top:0;padding-top:0}
.q > label.qt,.q > .qt{font-weight:400;font-size:16px}
.hint{color:var(--muted);font-size:13px;font-weight:400;margin:0}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:inline-block;padding:9px 14px;border:1px solid var(--line);border-radius:2px;background:var(--surface);cursor:pointer;font-size:14px;font-weight:400}
.opt span:hover{border-color:var(--blue)}
.opt input:checked + span{border-color:var(--blue);background:var(--accent-soft);color:var(--navy);box-shadow:inset 3px 0 0 var(--blue)}
.opt input:focus-visible + span{outline:2px solid var(--blue);outline-offset:2px}
.stack .opt span{display:block}
.stack{display:grid;gap:8px}
select,input[type=text],input[type=email],input[type=tel],input[type=number]{font:inherit;font-weight:400;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:9px 10px;max-width:100%}
select:focus-visible,input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input[type=checkbox]{accent-color:var(--blue)}
.svc{border:1px solid var(--line);border-radius:2px;padding:12px 14px;display:grid;gap:10px}
.svc + .svc{margin-top:8px}
.svc > label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-weight:400}
.svc > label input{margin-top:5px}
.svc .what{color:var(--muted);font-size:13px;font-weight:400;display:block}
.svc .more{display:flex;flex-wrap:wrap;gap:10px 16px;padding-left:26px;font-size:14px}
.svc .more label{display:grid;gap:4px}
.group-h{margin:24px 0 10px}
.nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
button{font:inherit;font-weight:500;letter-spacing:.02em;border-radius:2px;padding:11px 20px;cursor:pointer;border:1px solid var(--blue)}
.btn-p{background:var(--blue);color:var(--white)}
.btn-p:hover{background:var(--mid);border-color:var(--mid)}
.btn-s{background:transparent;color:var(--blue)}
.btn-s:hover{background:var(--accent-soft)}
/* Out-of-scope flags and errors use Berry, as the brand guide's "poor fit" callout */
.flag{background:rgba(184,0,94,.05);border-left:3px solid var(--berry);color:var(--navy);padding:12px 14px;font-size:14px}
.est{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
.est h3{margin:0 0 12px}
.big{font-weight:600;font-size:30px;line-height:1.15;letter-spacing:-.01em;color:var(--navy)}
.big small{font-size:13px;color:var(--muted);font-weight:300;letter-spacing:0}
.num{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
table.lines{width:100%;border-collapse:collapse;font-size:14px}
table.lines td{padding:10px 0;border-top:1px solid var(--line);vertical-align:top;font-weight:400}
table.lines td:last-child{text-align:right;padding-left:12px;font-weight:500}
table.lines tr.sub td{font-weight:600;border-top:2px solid var(--navy)}
table.lines .why{display:block;color:var(--muted);font-size:12.5px;font-weight:400;margin-top:2px}
/* "We'll confirm": Amber for attention, navy text for contrast */
.pill{display:inline-block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:2px;background:rgba(247,170,54,.22);color:var(--navy);font-weight:500}
.disc{border-left:3px solid var(--blue);background:var(--accent-soft);padding:14px 16px;font-size:13.5px;margin-top:20px}
.tbl-wrap{overflow-x:auto}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.two label{font-weight:400}
.cta{margin-top:24px;padding:28px;border-radius:2px;background:var(--navy);color:var(--white);border-bottom:3px solid var(--blue)}
.cta .eyebrow{color:var(--teal);margin-bottom:10px}
.cta h3{font-weight:600;font-size:22px;margin:0 0 8px;text-wrap:balance}
.cta p{margin:0 0 18px;max-width:62ch;color:rgba(255,255,255,.75)}
.cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.cta .btn-p{background:var(--blue);border-color:var(--blue);color:var(--white)}
.cta .btn-p:hover{background:var(--white);border-color:var(--white);color:var(--navy)}
.cta .btn-s{color:var(--white);border-color:rgba(255,255,255,.55)}
.cta .btn-s:hover{background:rgba(255,255,255,.08)}
.cta button:focus-visible{outline-color:var(--teal)}
.est a,.privacy-link{color:var(--blue);font-weight:500}
@media (prefers-reduced-motion:no-preference){.step{animation:fade .18s ease-out}@keyframes fade{from{opacity:.4}to{opacity:1}}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.est.busy .big{opacity:.55;transition:opacity .15s}
button[disabled]{opacity:.6;cursor:progress}
/* Privacy notice page */
.notice{max-width:760px;margin:24px 0 0}
.notice h2{margin-top:28px}
.notice h2:first-of-type{margin-top:8px}
.notice ul{padding-left:20px}
.notice li{margin-bottom:6px}
.notice a{color:var(--blue);font-weight:500}
.notice .draft{border-left:3px solid var(--amber);background:rgba(247,170,54,.12);padding:12px 14px;margin:0 0 8px}
.notice .ph{background:rgba(247,170,54,.22);padding:2px 6px}
