/* Provident theme — design tokens mirrored from the reference build */
:root{
  --navy-deep:#0f1b3d;
  --navy:#1e3a5f;
  --navy-mid:#3b6fa0;
  --sky:#e8edf3;
  --ink:#0d1526;
  --cream:#fdfdfb;
  --bg:#fdfdfb;
  --fg:#0f1b3d;
  --card:#ffffff;
  --muted:#f4f5f7;
  --muted-fg:#5b6577;
  --border:#e3e6ec;
  --radius:0.75rem;
  --maxw:80rem;
  --font-sans:"Work Sans",ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-serif:"Instrument Serif",ui-serif,Georgia,serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:400;letter-spacing:-0.01em;margin:0;line-height:1.1}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button{font:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.muted{color:var(--muted-fg)}
.serif{font-family:var(--font-serif)}
.italic{font-style:italic}
.center{text-align:center}
.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--navy-mid);margin:0}
.section{border-bottom:1px solid rgba(227,230,236,.7);background:var(--bg)}
.section--tint{background:rgba(232,237,243,.35)}
.section--navy{background:var(--navy-deep);color:var(--cream)}
.section .wrap{padding-top:5rem;padding-bottom:5rem}
.h2{font-size:2.25rem;line-height:1.1;margin-top:.75rem}
.h2--center{margin-left:auto;margin-right:auto;max-width:38rem;text-align:center}
@media(min-width:768px){.h2{font-size:3rem}}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(227,230,236,.7);background:rgba(253,253,251,.92);backdrop-filter:blur(8px)}
.site-header .bar{display:flex;height:4rem;align-items:center;justify-content:space-between;max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.brand img,.brand .custom-logo{height:3.5rem;width:auto}
.brand-text{font-family:var(--font-serif);font-size:1.5rem}
.mainnav{display:none;align-items:center;gap:1.75rem;font-size:.875rem}
@media(min-width:1024px){.mainnav{display:flex}}
.mainnav a{transition:color .15s}
.mainnav a:hover{color:var(--navy-mid)}
.mainnav .menu,.mainnav .sub-menu{display:flex;align-items:center;gap:1.75rem}
.mainnav li{position:relative}
.mainnav .sub-menu{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;flex-direction:column;align-items:stretch;gap:0;width:15rem;margin-top:.5rem;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 18px 40px -24px rgba(15,27,61,.5);z-index:50}
.mainnav li:hover>.sub-menu,.mainnav li:focus-within>.sub-menu{display:flex}
.mainnav .sub-menu a{display:block;padding:.5rem .75rem;border-radius:.5rem}
.mainnav .sub-menu a:hover{background:var(--muted)}
.header-cta{display:flex;align-items:center;gap:1rem}
.header-cta .plain{display:none;font-size:.875rem}
@media(min-width:640px){.header-cta .plain{display:inline}}
.menu-toggle{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border);background:transparent;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;cursor:pointer}
@media(min-width:1024px){.menu-toggle{display:none}}
.mobile-nav{display:none;border-top:1px solid var(--border);background:var(--bg);padding:1rem 1.5rem}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;padding:.6rem 0;font-size:.95rem;border-bottom:1px solid rgba(227,230,236,.6)}
.mobile-nav .sub-menu a{padding-left:1rem;color:var(--muted-fg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.6rem 1.1rem;font-size:.875rem;font-weight:500;transition:opacity .15s,background .15s,border-color .15s;cursor:pointer;border:1px solid transparent}
.btn--primary{background:var(--navy-deep);color:var(--cream)}
.btn--primary:hover{opacity:.9}
.btn--light{background:var(--cream);color:var(--navy-deep)}
.btn--outline{border-color:var(--border);color:var(--fg)}
.btn--outline:hover{border-color:var(--navy-mid);color:var(--navy-mid)}
.btn--ghost-light{border-color:rgba(253,253,251,.25);color:var(--cream)}
.btn--ghost-light:hover{background:rgba(253,253,251,.1)}
.btn--lg{padding:.85rem 1.5rem;font-size:.95rem;font-weight:600}
.btn--block{width:100%}

/* ---------- hero ---------- */
.hero{overflow:hidden;background:var(--bg)}
.hero .grid{display:grid;grid-template-columns:1fr;gap:3rem;max-width:var(--maxw);margin:0 auto;padding:3.5rem 1.5rem 5rem}
@media(min-width:1024px){.hero .grid{grid-template-columns:1fr .95fr;gap:4rem;padding-top:5rem}}
.pill{display:inline-flex;width:fit-content;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:999px;padding:.375rem 1rem;font-size:.75rem;background:var(--bg)}
.hero h1{margin-top:1.5rem;font-size:3rem;line-height:1.05}
@media(min-width:768px){.hero h1{font-size:3.75rem}}
@media(min-width:1024px){.hero h1{font-size:4.5rem}}
.hero h1 .accent{font-style:italic;color:var(--navy-mid)}
.hero .lede{margin-top:1.5rem;max-width:32rem;font-size:1.125rem;line-height:1.7;color:var(--muted-fg)}
.trust-row{display:flex;flex-wrap:wrap;gap:2rem;margin-top:2rem;font-size:.875rem}
.trust-row .item{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}
.trust-row .t1{font-weight:500;line-height:1.2}
.trust-row .t2{color:var(--muted-fg);line-height:1.2}
.stars{display:flex;align-items:center;gap:.75rem;margin-top:2rem}
.stars .s{display:flex;gap:2px;color:#f6b73c}
.rating{font-weight:600}

/* ---------- quote widget ---------- */
.qcard{border:1px solid var(--border);background:var(--card);border-radius:1.5rem;padding:1.75rem;box-shadow:0 24px 60px -34px rgba(15,27,61,.45)}
@media(min-width:768px){.qcard{padding:2rem}}
.qcard .top{display:flex;align-items:center;justify-content:space-between}
.chip-live{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;background:var(--sky);padding:.2rem .6rem;font-size:.75rem}
.dot{height:6px;width:6px;border-radius:999px;background:#10b981;display:inline-block}
.qcard h3{margin-top:.5rem;font-size:1.75rem}
@media(min-width:768px){.qcard h3{font-size:2rem}}
.qcard .sub{margin-top:.5rem;font-size:.875rem;color:var(--muted-fg)}
.field{display:block;margin-top:1rem}
.field .lbl{display:flex;justify-content:space-between;font-size:.75rem;font-weight:500;margin-bottom:.4rem}
.field select,.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea{width:100%;border:1px solid var(--border);background:var(--bg);border-radius:.75rem;padding:.75rem 1rem;font-size:.875rem;font-family:inherit;color:var(--fg);outline:none}
.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--navy-mid);box-shadow:0 0 0 3px rgba(59,111,160,.15)}
.field input[type=range]{width:100%;accent-color:var(--navy-mid)}
.qcard .cta{margin-top:1.5rem;border-radius:1rem;background:var(--navy-deep);padding:1.25rem;color:var(--cream)}
.qcard .cta .btn{border-radius:.75rem;width:100%}
.qcard .fine{margin-top:.75rem;text-align:center;font-size:11px;color:rgba(253,253,251,.65);display:flex;justify-content:center;align-items:center;gap:.35rem}

/* ---------- marquee ---------- */
.marquee{border-top:1px solid rgba(227,230,236,.7);border-bottom:1px solid rgba(227,230,236,.7);padding:1rem 0;background:var(--bg)}
.marquee .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em}
.marquee span.i{display:flex;align-items:center;gap:.75rem}
.marquee .bullet{height:4px;width:4px;border-radius:999px;background:rgba(15,27,61,.4)}

/* ---------- cards / grids ---------- */
.grid-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:3rem}
@media(min-width:768px){.grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.grid-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pcard{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--border);background:var(--card);border-radius:1rem;padding:1.5rem;transition:transform .15s,border-color .15s,box-shadow .15s}
.pcard:hover{transform:translateY(-2px);border-color:rgba(59,111,160,.35);box-shadow:0 16px 32px -22px rgba(15,27,61,.5)}
.pcard .name{margin-top:1rem;font-size:1rem;font-weight:500;line-height:1.35}
.pcard .more{margin-top:.75rem;font-size:.875rem;font-weight:500;color:var(--navy-mid);opacity:0;transition:opacity .15s;display:inline-flex;gap:.25rem;align-items:center}
.pcard:hover .more{opacity:1}
.grid-3{display:grid;gap:1.25rem;margin-top:3.5rem}
@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.grid-2{display:grid;gap:1.25rem;margin-top:2rem}
@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ccard{display:flex;flex-direction:column;border:1px solid var(--border);background:var(--card);border-radius:1.5rem;padding:1.75rem;transition:border-color .15s,box-shadow .15s}
.ccard:hover{border-color:rgba(59,111,160,.3);box-shadow:0 16px 32px -22px rgba(15,27,61,.4)}
.icon-badge{display:inline-flex;height:2.75rem;width:2.75rem;align-items:center;justify-content:center;border-radius:.75rem;background:var(--navy-deep);color:var(--cream)}
.ccard h3{margin-top:1.5rem;font-size:1.5rem}
.ccard p{margin-top:.75rem;font-size:.875rem;line-height:1.7;color:var(--muted-fg)}
.ccard ul{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:1.25rem;font-size:.875rem;display:flex;flex-direction:column;gap:.5rem}
.ccard li{display:flex;gap:.5rem;align-items:center}
.ccard li svg{color:var(--navy-mid);flex:0 0 auto}

/* ---------- comparison ---------- */
.compare{margin-top:3rem;overflow:hidden;border:1px solid var(--border);border-radius:1.5rem}
.crow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr)}
.chead{background:var(--navy-deep);color:var(--cream)}
.chead .c1{padding:1.25rem;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(253,253,251,.7)}
.chead .c2,.chead .c3{border-left:1px solid rgba(253,253,251,.15);padding:1.25rem;text-align:center}
.chead .c2{font-family:var(--font-serif);font-size:1.125rem}
.chead .c3{font-size:.875rem;color:rgba(253,253,251,.75)}
.crow .l{padding:1.25rem;font-size:.875rem}
.crow .v{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--border);padding:1.25rem}
.crow.alt{background:rgba(232,237,243,.45)}
.crow.base{background:var(--card)}
.tick{color:var(--navy-mid)}
.tick--dim{color:rgba(91,101,119,.6)}

/* ---------- steps ---------- */
.steps{display:grid;gap:2.5rem;margin-top:3.5rem}
@media(min-width:768px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step .n{font-family:var(--font-serif);font-size:3.75rem;line-height:1;color:var(--navy-mid)}
.step h3{margin-top:1.25rem;font-size:1.5rem}
.step p{margin-top:.75rem;max-width:24rem;font-size:.875rem;line-height:1.7;color:rgba(253,253,251,.7)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}

/* ---------- chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.5rem}
.chip{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.5rem 1rem;font-size:.875rem;transition:border-color .15s,color .15s}
.chip:hover{border-color:var(--navy-mid);color:var(--navy-mid)}

/* ---------- testimonials ---------- */
.tcard{border:1px solid var(--border);background:var(--card);border-radius:1.5rem;padding:1.75rem}
.tcard blockquote{margin:1.25rem 0 0;font-family:var(--font-serif);font-size:1.25rem;line-height:1.35}
.tcard .who{margin-top:1.25rem;font-size:.875rem}
.tcard .who .n{font-weight:600}
.tcard .who .r{color:var(--muted-fg)}

/* ---------- cta band ---------- */
.cta-band .wrap{padding:5rem 1.5rem}
.cta-inner{border-radius:2rem;background:var(--navy-deep);color:var(--cream);padding:2.5rem}
@media(min-width:768px){.cta-inner{padding:3.5rem}}
.cta-inner h2{max-width:36rem;font-size:2rem;line-height:1.15}
@media(min-width:768px){.cta-inner h2{font-size:3rem}}
.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* ---------- page hero ---------- */
.page-hero{border-bottom:1px solid rgba(227,230,236,.7);background:var(--bg)}
.page-hero .wrap{padding:4rem 1.5rem}
.page-hero h1{margin-top:1rem;max-width:48rem;font-size:2.5rem;line-height:1.1}
@media(min-width:768px){.page-hero h1{font-size:3.75rem}}
.page-hero .sub{margin-top:1.25rem;max-width:40rem;font-size:1.125rem;line-height:1.7;color:var(--muted-fg)}
.breadcrumbs{font-size:.8rem;color:var(--muted-fg);margin-bottom:.5rem}
.breadcrumbs a:hover{color:var(--fg)}

/* ---------- content / entry ---------- */
.entry .wrap{padding:4rem 1.5rem;max-width:52rem}
.entry h2{font-size:1.9rem;margin-top:2.5rem}
.entry h3{font-size:1.4rem;margin-top:2rem}
.entry p{margin-top:1rem;line-height:1.8;color:#26324a}
.entry ul,.entry ol{margin-top:1rem;padding-left:1.25rem;list-style:disc;color:#26324a}
.entry li{margin-top:.4rem}
.entry a{color:var(--navy-mid);text-decoration:underline}
.entry img{border-radius:1rem;margin-top:1.5rem}
.post-list{display:grid;gap:1.25rem;margin-top:2.5rem}
@media(min-width:768px){.post-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.post-card{border:1px solid var(--border);background:var(--card);border-radius:1.25rem;padding:1.5rem;transition:border-color .15s}
.post-card:hover{border-color:rgba(59,111,160,.35)}
.post-card h3{font-size:1.4rem}
.post-card .meta{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-fg)}
.post-card p{margin-top:.75rem;color:var(--muted-fg);font-size:.9rem}

/* ---------- forms ---------- */
.form-card{border:1px solid var(--border);background:var(--card);border-radius:1.5rem;padding:1.75rem;max-width:40rem}
.form-card .row{display:grid;gap:1rem}
@media(min-width:640px){.form-card .row--2{grid-template-columns:1fr 1fr}}
.notice{border-radius:.9rem;padding:1rem 1.25rem;font-size:.9rem;margin-bottom:1.25rem}
.notice--ok{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35)}
.notice--err{background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.3)}
.steps-bar{display:flex;gap:.5rem;margin-bottom:1.5rem}
.steps-bar .s{flex:1;height:4px;border-radius:999px;background:var(--border)}
.steps-bar .s.on{background:var(--navy-mid)}

/* ---------- faq ---------- */
.faq{border-bottom:1px solid var(--border);padding:1.25rem 0}
.faq summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin-top:.75rem;color:var(--muted-fg);font-size:.95rem;line-height:1.7}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid rgba(227,230,236,.7);background:var(--bg)}
.site-footer .wrap{padding:3.5rem 1.5rem}
.fgrid{display:grid;gap:2.5rem}
@media(min-width:768px){.fgrid{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.fgrid .about p{margin-top:1rem;max-width:20rem;font-size:.875rem;color:var(--muted-fg)}
.fcol .t{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em}
.fcol ul{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:var(--muted-fg)}
.fcol a:hover{color:var(--fg)}
.fbottom{margin-top:3rem;border-top:1px solid var(--border);padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;font-size:.75rem;color:var(--muted-fg)}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.alignwide{max-width:60rem}
.aligncenter{margin-left:auto;margin-right:auto}

/* -------------------------------------------------- Narrow container */
.wrap--narrow { max-width: 46rem; }

/* -------------------------------------------------- Form rows */
.field-row { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .field-row { grid-template-columns: 1fr 1fr; } }

/* -------------------------------------------------- Quote wizard */
.wizard {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 18px;
	padding: 1.75rem;
	box-shadow: 0 18px 40px -30px rgba(4, 18, 44, .45);
}
@media (min-width: 700px) { .wizard { padding: 2.5rem; } }

.wizard-steps {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.5rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0 0 1.5rem;
	border-bottom: 1px solid var(--border);
}
.wizard-steps li {
	display: flex; align-items: center; gap: .55rem;
	font-size: .85rem; font-weight: 500; color: #7c8598;
}
.wizard-steps li span {
	display: grid; place-items: center;
	width: 1.65rem; height: 1.65rem; border-radius: 999px;
	background: #eef1f6; color: #7c8598;
	font-size: .78rem; font-weight: 600;
}
.wizard-steps li.is-active { color: var(--navy-deep); }
.wizard-steps li.is-active span { background: var(--navy-deep); color: var(--cream); }
.wizard-steps li.is-done span { background: #17795e; color: #fff; }

.wizard-panel { display: none; flex-direction: column; gap: 1.1rem; }
.wizard-panel.is-active { display: flex; }
.wizard-nav { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.wizard-nav .btn { flex: 1 1 auto; }

/* -------------------------------------------------- FAQ */
.faq-list { display: flex; flex-direction: column; gap: .75rem; }
.faq-list .faq { border: 1px solid var(--border); border-radius: 14px; background: #fff; }

/* -------------------------------------------------- Contact info list */
.info-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 2rem; }
.info-list .info {
	display: flex; gap: .85rem; align-items: flex-start;
	padding: 1rem 1.1rem; border: 1px solid var(--border); border-radius: 14px; background: #fff;
}
.info-list .info svg { color: var(--navy-mid); flex: none; margin-top: .15rem; }
.info-list .t { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #7c8598; }
.info-list .v { display: block; font-weight: 500; color: var(--navy-deep); }

/* -------------------------------------------------- Editorial content */
.prose { color: #26324a; line-height: 1.8; }
.prose > * + * { margin-top: 1.15rem; }
.prose h2, .prose h3, .prose h4 {
	font-family: var(--font-serif); font-weight: 400; color: var(--navy-deep);
	line-height: 1.2; margin-top: 2.25rem;
}
.prose h2 { font-size: 1.9rem; }
.prose h3 { font-size: 1.45rem; }
.prose a { color: var(--navy-mid); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.25rem; }
.prose li + li { margin-top: .4rem; }
.prose blockquote {
	border-left: 3px solid var(--navy-mid); padding-left: 1.25rem;
	font-family: var(--font-serif); font-size: 1.25rem; color: var(--navy-deep);
}
.prose img { max-width: 100%; height: auto; border-radius: 14px; }
.prose code { background: #eef1f6; padding: .15em .4em; border-radius: 5px; font-size: .9em; }

.post-hero { margin: 0 0 2.25rem; }
.post-hero img { width: 100%; height: auto; border-radius: 18px; display: block; }

/* -------------------------------------------------- Pagination */
.pagination { margin-top: 3rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.pagination .page-numbers {
	display: grid; place-items: center; min-width: 2.4rem; height: 2.4rem; padding: 0 .6rem;
	border: 1px solid var(--border); border-radius: 10px; background: #fff;
	color: var(--navy-deep); font-size: .9rem; text-decoration: none;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background: var(--navy-deep); color: var(--cream); border-color: var(--navy-deep); }
.pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
