/* ===== Legacy Protection Solutions brand tokens (exact hex per brand spec) ===== */
:root{
  --ink:#0D1117;      /* near-black: body text, mono variant */
  --navy:#132A45;     /* primary: shield body, headers, key surfaces */
  --steel:#2E5C8A;    /* accent: tagline, links, CTA fills, active states */
  --slate:#64707E;    /* secondary text, dividers, captions (light grounds only) */
  --fog:#E8ECF0;      /* section backgrounds, cards; also text on navy */
  --white:#ffffff;
  --gray-line:#dde2e8;
  --radius:10px;
  --shadow:0 10px 30px rgba(19,42,69,0.14);
  --maxw:1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Barlow',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
}
h1,h2,h3{
  font-family:'Barlow Condensed',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-weight:600;
  line-height:1.15;
  letter-spacing:.01em;
  margin:0 0 .5em;
  color:var(--navy);
}
p{margin:0 0 1em;color:var(--slate);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.section{padding:72px 0;}
.section-alt{background:var(--fog);}
.eyebrow{
  font-family:'Barlow Condensed',sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  font-weight:600;
  color:var(--steel);
  margin-bottom:10px;
  display:block;
}
.tagline{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--steel);
  font-size:.95rem;
  margin:0 0 18px;
}
.hero .tagline{color:#a9c3dd;}
.btn{
  display:inline-block;
  padding:14px 28px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  cursor:pointer;
  border:2px solid transparent;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--white);color:var(--navy);box-shadow:var(--shadow);}
.btn-primary:hover{background:var(--fog);}
.btn-accent{background:var(--steel);color:var(--white);box-shadow:var(--shadow);}
.btn-accent:hover{background:var(--navy);}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn-outline-light{border-color:rgba(255,255,255,.5);color:var(--white);background:transparent;}
.btn-outline-light:hover{background:rgba(255,255,255,.12);}
.btn-lg{padding:18px 38px;font-size:1.05rem;}

/* ===== Header / nav ===== */
header.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--gray-line);
}
.nav-wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 24px;max-width:var(--maxw);margin:0 auto;
}
.brand{display:flex;align-items:center;}
.brand img{height:88px;width:auto;display:block;}
nav.links a{margin-left:26px;font-weight:600;font-size:.92rem;color:var(--navy);}
nav.links a:hover{color:var(--steel);}
nav.links a.active{color:var(--steel);text-decoration:underline;text-decoration-color:var(--steel);text-underline-offset:4px;}
.mobile-toggle{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--navy);}

@media (max-width:900px){
  nav.links{
    display:none;flex-direction:column;position:absolute;top:100px;left:0;right:0;
    background:var(--white);border-bottom:1px solid var(--gray-line);padding:16px 24px;
  }
  nav.links.open{display:flex;}
  nav.links a{margin:10px 0 0 0;}
  .mobile-toggle{display:block;}
}

/* ===== Hero ===== */
.hero{
  background:linear-gradient(135deg,var(--ink) 0%,var(--navy) 100%);
  color:var(--white);
  padding:90px 0;
}
.hero .container{display:flex;align-items:center;gap:56px;flex-wrap:wrap;}
.hero-copy{flex:1 1 460px;}
.hero-copy .eyebrow{color:var(--fog);}
.hero h1{color:var(--white);font-size:2.6rem;}
.hero p.lead{color:#d4dae3;font-size:1.15rem;max-width:520px;}
.trust-row{display:flex;gap:28px;margin-top:30px;flex-wrap:wrap;color:var(--fog);font-size:.88rem;}
.trust-row .tick{color:var(--fog);margin-right:6px;}

/* ===== Hero icon: shield only, sized to fill the space ===== */
.hero-icon{flex:0 0 280px;display:flex;align-items:center;justify-content:center;}
.hero-icon svg{width:220px;height:220px;}

/* ===== Cards / grid ===== */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:1fr;} .grid-2{grid-template-columns:1fr;}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr;}}

.card{
  background:var(--white);border:1px solid var(--gray-line);border-radius:var(--radius);
  padding:28px;box-shadow:0 2px 8px rgba(19,42,69,.05);transition:box-shadow .2s ease,transform .2s ease;
}
.card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}
.card h3{font-size:1.15rem;margin-bottom:8px;}
.card .tag{
  display:inline-block;background:var(--fog);color:var(--steel);font-weight:700;
  font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:6px;margin-bottom:14px;
}
.card a.card-link{font-weight:700;color:var(--steel);font-size:.9rem;}

/* ===== Benefit list ===== */
ul.check-list{list-style:none;padding:0;margin:0 0 24px;}
ul.check-list li{
  position:relative;padding-left:30px;margin-bottom:14px;color:var(--ink);font-weight:500;
}
ul.check-list li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:var(--white);background:var(--navy);
  width:20px;height:20px;border-radius:50%;
  font-size:.72rem;display:flex;align-items:center;justify-content:center;
}

/* ===== Trust statement cards ===== */
.quote-card{
  background:var(--white);border-left:4px solid var(--steel);
  padding:24px 28px;border-radius:8px;box-shadow:0 2px 8px rgba(19,42,69,.06);
}
.quote-card p{color:var(--slate);}
.quote-card strong{color:var(--navy);}

/* ===== Booking section: sequential form -> schedule flow ===== */
.booking-section{background:var(--navy);color:var(--white);text-align:center;}
.booking-section h2{color:var(--white);}
.booking-section p{color:var(--fog);}
.booking-flow{
  max-width:520px;margin:36px auto 0;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius);padding:32px;
}
.calendly-inline-widget{min-width:280px;height:680px;border-radius:var(--radius);overflow:hidden;background:var(--white);margin-top:8px;}

.lead-form{display:flex;flex-direction:column;gap:12px;}
.lead-form input,.lead-form select{
  padding:12px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.96);color:var(--ink);font-size:.95rem;font-family:inherit;
}
.lead-form input::placeholder{color:var(--slate);}
.lead-form button{margin-top:4px;}

.phone-input{
  display:flex;align-items:center;gap:0;
  border-radius:8px;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.96);overflow:hidden;
}
.phone-input .phone-country{
  -webkit-appearance:none;appearance:none;
  border:none;background:transparent;border-right:1px solid var(--gray-line);
  padding:12px 8px 12px 14px;max-width:96px;
  font-size:.95rem;color:var(--ink);font-family:inherit;cursor:pointer;
}
.phone-input input[type="tel"]{
  border:none;background:transparent;padding:12px 14px 12px 10px;
  flex:1;font-size:.95rem;color:var(--ink);font-family:inherit;
}
.phone-input input[type="tel"]:focus,
.phone-input .phone-country:focus{outline:none;}
.hidden-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.form-success{
  background:rgba(232,236,240,.14);border:1px solid rgba(232,236,240,.4);
  border-radius:8px;padding:20px;color:var(--white);margin-bottom:8px;
}
.form-success strong{color:var(--fog);}

.step-indicator{display:flex;gap:8px;margin-bottom:20px;}
.step-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.22);transition:background .2s ease;}
.step-dot.active{background:var(--fog);}
.form-step{display:flex;flex-direction:column;gap:12px;}
.form-step[hidden]{display:none;}
.step-buttons{display:flex;gap:12px;margin-top:4px;}
.step-buttons .btn{flex:1;}

/* ===== Simple one-step forms (survey, referral) on light backgrounds ===== */
.simple-form{display:flex;flex-direction:column;gap:14px;max-width:560px;margin:28px auto 0;}
.simple-form label.field-label{font-weight:600;color:var(--navy);font-size:.9rem;margin-bottom:-6px;}
.simple-form input,.simple-form select,.simple-form textarea{
  padding:12px 14px;border-radius:8px;border:1px solid var(--gray-line);
  background:var(--white);color:var(--ink);font-size:.95rem;font-family:inherit;
}
.simple-form textarea{resize:vertical;min-height:90px;}
.simple-form input::placeholder,.simple-form textarea::placeholder{color:var(--slate);}
.simple-form .phone-input{border-color:var(--gray-line);}
.simple-form .phone-input .phone-country{border-right-color:var(--gray-line);}
.simple-form button{margin-top:4px;align-self:flex-start;}

.radio-row{display:flex;gap:10px;flex-wrap:wrap;}
.radio-pill{position:relative;display:inline-block;cursor:pointer;}
.radio-pill input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.radio-pill span{
  display:inline-block;border:1px solid var(--gray-line);border-radius:999px;
  padding:10px 18px;font-size:.88rem;font-weight:600;color:var(--navy);transition:background .15s ease,color .15s ease;
}
.radio-pill input:checked + span{background:var(--navy);color:var(--white);border-color:var(--navy);}

.simple-form-success{
  background:var(--fog);border:1px solid var(--gray-line);border-radius:8px;
  padding:24px;color:var(--navy);max-width:560px;margin:28px auto 0;text-align:center;
}
.simple-form-success strong{display:block;font-size:1.1rem;margin-bottom:6px;}
.simple-form-success p{color:var(--slate);margin:0;}

/* ===== Footer ===== */
footer{background:var(--navy);color:var(--fog);padding:40px 0;font-size:.88rem;}
footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
footer .brand img{height:60px;}
footer a{color:var(--fog);}
footer .legal-footer{
  max-width:var(--maxw);margin:24px auto 0;padding:20px 24px 0;border-top:1px solid rgba(232,236,240,.15);
  font-size:.8rem;line-height:1.6;color:var(--fog);
}
footer .disclosure{max-width:var(--maxw);margin:16px auto 0;padding:0 24px;font-size:.75rem;color:var(--fog);opacity:.75;}

/* ===== Sticky mobile CTA ===== */
.sticky-cta{
  position:fixed;bottom:0;left:0;right:0;background:var(--navy);
  padding:14px 20px;text-align:center;z-index:60;display:none;
}
.sticky-cta a{color:var(--white);font-weight:700;}
@media (max-width:700px){.sticky-cta{display:block;} body{padding-bottom:64px;}}

.center{text-align:center;}
.max-60{max-width:640px;margin:0 auto;}

/* ===== Thank-you modal ===== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(13,17,23,.62);
  display:flex;align-items:center;justify-content:center;
  z-index:200;padding:20px;
}
.modal-box{
  background:var(--white);border-radius:var(--radius);
  max-width:480px;width:100%;padding:36px 32px;position:relative;
  box-shadow:0 20px 60px rgba(13,17,23,.35);
  max-height:90vh;overflow-y:auto;text-align:center;
}
.modal-close{
  position:absolute;top:14px;right:14px;background:none;border:none;
  font-size:1.5rem;line-height:1;cursor:pointer;color:var(--slate);padding:4px;
}
.modal-box h3{color:var(--navy);margin-bottom:10px;}
.modal-box p{color:var(--slate);}
.modal-actions{margin-top:20px;}
.modal-fallback{font-size:.85rem;color:var(--slate);margin-top:18px;text-align:center;}
.modal-box .calendly-inline-widget{height:600px;margin-top:8px;}
