@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=Open+Sans:wght@300;400;500;600;700&display=swap');

:root {
    --primary:       #071b45;
    --primary-light: #1e3a6e;
    --accent:        #fa0000;
    --accent-light:  #ff4d4d;
    --bg:            #ffffff;
    --text-dark:     #1e293b;
    --text-medium:   #666666;
    --fog:           #c9d3e6;
}

body, p, li, .et_pb_text_inner { font-family: 'Open Sans', sans-serif; }
h1, h2, h3, h4, .et_pb_module_header { font-family: 'Poppins', sans-serif; }

/* ── ADA: skip link ─────────────────────────────────────────────────────── */
.tsi-skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 100000;
    background: var(--primary); color: #fff; padding: 12px 20px;
    border-radius: 0 0 6px 0; text-decoration: none; font-weight: 600;
}
.tsi-skip-link:focus { left: 0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 3px solid var(--accent-light); outline-offset: 2px;
}

/* ── Eyebrow / accent text ─────────────────────────────────────────────── */
.tsi-eyebrow {
    color: var(--accent-light); font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.14em; font-size: 0.8rem; margin-bottom: 12px;
}
.tsi-accent { color: var(--accent-light); }

/* ── Hero ────────────────────────────────────────────────────────────────── */
.tsi-hero-bg {
    background:
        radial-gradient(ellipse 60% 50% at 15% 15%, rgba(250,0,0,.30) 0%, transparent 60%),
        radial-gradient(ellipse 50% 45% at 85% 75%, rgba(30,58,110,.55) 0%, transparent 62%),
        radial-gradient(ellipse 70% 60% at 50% 105%, rgba(30,58,110,.35) 0%, transparent 65%),
        var(--primary);
    background-size: 200% 200%;
    animation: tsi-aurora 18s ease-in-out infinite;
}
.tsi-hero-h1 {
    font-family: 'Poppins', sans-serif; font-weight: 800; color: #fff;
    font-size: clamp(2.5rem, 4.2vw + 1rem, 4.6rem);
    line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 20px;
}
.tsi-hero-h1 .word { display: inline-block; opacity: 0; transform: translateY(100%);
    animation: tsi-word-up .7s cubic-bezier(.16,1,.3,1) forwards; }
.tsi-hero-sub { color: var(--fog); font-size: 1.15rem; line-height: 1.65; max-width: 640px; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.tsi-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 16px 32px; border-radius: 6px; font-weight: 700; font-size: 0.95rem;
    letter-spacing: 0.03em; text-decoration: none; transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease;
}
.tsi-btn-primary { background: var(--accent); color: #fff; box-shadow: 0 10px 30px -8px rgba(250,0,0,.55); }
.tsi-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -8px rgba(250,0,0,.7); color:#fff; }
.tsi-btn-outline {
    position: relative; overflow: hidden; z-index: 1; color: #fff;
    border: 1.5px solid rgba(255,255,255,.55); transition: color .35s ease;
}
.tsi-btn-outline::before {
    content: ''; position: absolute; inset: 0; background: var(--accent);
    transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.16,1,.3,1); z-index: -1;
}
.tsi-btn-outline:hover { color: #fff; }
.tsi-btn-outline:hover::before { transform: scaleX(1); }
.tsi-hero-btns { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 32px; }

/* ── Cards / hover states ────────────────────────────────────────────────── */
.et_pb_blurb, .tsi-trust-card, .tsi-service-card, .tsi-testimonial {
    transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s cubic-bezier(.16,1,.3,1);
}
.et_pb_blurb:hover, .tsi-trust-card:hover, .tsi-service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 20px 40px -12px rgba(0,0,0,.22);
}

/* ── Section rhythm helpers ─────────────────────────────────────────────── */
.tsi-section-tint { background: #f4f7fc; }
.tsi-section-dark  { background: var(--primary); }

/* ── Stats ───────────────────────────────────────────────────────────────── */
.tsi-stat { text-align: center; padding: 12px; }
.tsi-stat-num { display: block; font-family: 'Poppins', sans-serif; font-weight: 800;
    font-size: clamp(2.2rem, 3vw, 3.2rem); color: var(--accent-light); }
.tsi-stat-label { display: block; color: var(--fog); font-size: 0.85rem; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 6px; }

/* ── Testimonial spotlight ──────────────────────────────────────────────── */
.tsi-testimonial { max-width: 760px; margin: 0 auto; text-align: center; padding: 8px 24px; }
.tsi-testimonial blockquote { font-family: 'Poppins', sans-serif; font-size: 1.5rem; line-height: 1.5; color: var(--text-dark); font-weight: 500; margin: 0 0 20px; }
.tsi-testimonial cite { font-style: normal; color: var(--text-medium); font-weight: 600; }

/* ── Marquee (insurance / partner strip) ────────────────────────────────── */
.tsi-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image: linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.tsi-marquee-track { display: flex; gap: 56px; width: max-content; align-items: center; animation: tsi-marquee 26s linear infinite; }
.tsi-marquee:hover .tsi-marquee-track { animation-play-state: paused; }
.tsi-marquee-track span { font-family:'Poppins',sans-serif; font-weight:600; color: var(--text-medium); font-size: 1rem; white-space: nowrap; }

/* ── Scroll reveal ───────────────────────────────────────────────────────── */
.tsi-reveal { opacity: 0; transform: translateY(28px);
    transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1); }
.tsi-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ── Mobile sticky CTA bar ───────────────────────────────────────────────── */
.tsi-mobile-cta { display: none; }
@media (max-width: 767px) {
    .tsi-mobile-cta {
        display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
        background: var(--primary); box-shadow: 0 -4px 20px rgba(0,0,0,.25);
    }
    .tsi-mobile-cta a { flex: 1; text-align: center; padding: 14px 8px; color: #fff; font-weight: 700; font-size: 0.9rem; text-decoration: none; display:flex; align-items:center; justify-content:center; gap:6px; }
    .tsi-mobile-cta .tsi-mcta-btn { background: var(--accent); }
    body { padding-bottom: 58px; }
}

/* ── Compliance footer bar ──────────────────────────────────────────────── */
.tsi-compliance-bar { background: #050f2b; padding: 18px 24px; }
.tsi-compliance-bar p { max-width: 1100px; margin: 0 auto; color: rgba(255,255,255,.55); font-size: 0.72rem; line-height: 1.6; text-align: center; }

/* ── Contact form (native, code module) ─────────────────────────────────── */
.tsi-form-cont { border-radius: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 20px 40px -12px rgba(0,0,0,.15); padding: 40px 36px; background: #fff; }
.tsi-form-row { margin-bottom: 20px; }
.tsi-form-row label { display:block; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--text-dark); margin-bottom:8px; }
.tsi-form-row input, .tsi-form-row textarea {
    width: 100%; border: 1.5px solid #DDE6EF; border-radius: 8px; padding: 14px 16px;
    font-family: 'Open Sans', sans-serif; font-size: 0.95rem; transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.tsi-form-row input:focus, .tsi-form-row textarea:focus { outline:none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(250,0,0,.12); }
.tsi-form-honeypot { position: absolute; left: -9999px; top: -9999px; }
.tsi-form-submit {
    width: 100%; background: var(--accent); color: #fff; font-weight: 700; border: 0; border-radius: 8px;
    padding: 16px; cursor: pointer; font-size: 1rem; transition: transform .3s ease;
}
.tsi-form-submit:hover { transform: translateY(-2px); }
.tsi-form-success { background:#eafbea; border-left:4px solid #2e9e44; padding:16px 20px; border-radius:8px; color:#1c6b2a; font-weight:600; margin-bottom:24px; }
.tsi-form-error { background:#fdeaea; border-left:4px solid #E53E3E; padding:16px 20px; border-radius:8px; color:#a12626; font-weight:600; margin-bottom:24px; }

/* ── Ninja Forms restyle ─────────────────────────────────────────────────── */
.nf-form-cont { border-radius: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 20px 40px -12px rgba(0,0,0,.15); padding: 40px 36px; position: relative; overflow: hidden; background: #fff; }
.nf-field-label label { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dark); }
.nf-field-element input, .nf-field-element textarea, .nf-field-element select {
    border: 1.5px solid #DDE6EF; border-radius: 8px; padding: 14px 16px;
    transition: border-color .2s, box-shadow .2s; font-family: 'Open Sans', sans-serif;
}
.nf-field-element input:focus, .nf-field-element textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(250,0,0,.12); }
.nf-field-element input[type="submit"] {
    width: 100%; background: var(--accent); color: #fff; font-weight: 700; border: 0; border-radius: 8px;
    padding: 16px; cursor: pointer; transition: transform .3s ease;
}
.nf-field-element input[type="submit"]:hover { transform: translateY(-2px); }
.nf-error .nf-field-element input { border-color: #E53E3E; box-shadow: 0 0 0 3px rgba(229,62,62,.12); }

.tsi-cta-gradient { background: linear-gradient(135deg, var(--accent) 0%, var(--primary) 100%); }

.tsi-care-card { background:#fff; border:1px solid rgba(7,27,69,.08); border-radius:16px; padding:36px; box-shadow:0 2px 8px rgba(0,0,0,.05), 0 20px 40px -16px rgba(7,27,69,.15); }
.tsi-care-card h3 { font-family:'Poppins',sans-serif; color:var(--primary); margin-top:0; }
.tsi-care-card ul { list-style:none; margin:0; padding:0; }
.tsi-care-card li { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid rgba(7,27,69,.06); color:var(--text-dark); font-weight:600; }
.tsi-care-card li:last-child { border-bottom:0; }
.tsi-care-card li svg { flex-shrink:0; color:var(--accent); }

.tsi-info-bar { display:flex; flex-wrap:wrap; gap:32px; margin-top:28px; }
.tsi-info-item { display:flex; align-items:center; gap:10px; color:#fff; font-weight:600; font-size:.95rem; }
.tsi-info-item svg { color: var(--accent-light); flex-shrink:0; }

.tsi-map-wrap { border-radius:16px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.06), 0 20px 40px -16px rgba(0,0,0,.18); line-height:0; }
.tsi-map-wrap iframe { width:100%; height:420px; border:0; display:block; }

.tsi-nap-card { background:var(--primary); color:#fff; border-radius:16px; padding:28px 32px; margin-top:20px; }
.tsi-nap-card p { margin:0 0 10px; display:flex; align-items:center; gap:10px; font-weight:600; }
.tsi-nap-card svg { color:var(--accent-light); flex-shrink:0; }

.tsi-photo-card { background:linear-gradient(160deg,#0d2559,var(--primary)); border-radius:16px; padding:56px 32px; text-align:center; color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.06), 0 20px 40px -16px rgba(7,27,69,.3); }
.tsi-photo-card .tsi-photo-initial { width:96px; height:96px; margin:0 auto 20px; border-radius:50%; background:rgba(255,255,255,.1); border:2px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-family:'Poppins',sans-serif; font-size:2.2rem; font-weight:700; }
.tsi-photo-card h3 { font-family:'Poppins',sans-serif; margin:0 0 4px; }
.tsi-photo-card p { color:var(--fog); margin:0; font-size:.9rem; }

.tsi-faq details { background:#fff; border:1px solid rgba(7,27,69,.1); border-radius:12px; margin-bottom:14px; padding:0; overflow:hidden; }
.tsi-faq summary { cursor:pointer; list-style:none; padding:20px 24px; font-family:'Poppins',sans-serif; font-weight:600; color:var(--primary); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.tsi-faq summary::-webkit-details-marker { display:none; }
.tsi-faq summary::after { content:'+'; font-size:1.4rem; color:var(--accent); flex-shrink:0; transition:transform .3s ease; }
.tsi-faq details[open] summary::after { transform:rotate(45deg); }
.tsi-faq .tsi-faq-a { padding:0 24px 20px; color:var(--text-medium); line-height:1.65; }

.tsi-cta-pill { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1.5px solid rgba(7,27,69,.15); border-radius:999px; padding:10px 20px; font-weight:600; color:var(--primary); text-decoration:none; transition:transform .3s ease, box-shadow .3s ease; }
.tsi-cta-pill:hover { transform:translateY(-2px); box-shadow:0 10px 24px -8px rgba(7,27,69,.25); }

/* ── Keyframes ───────────────────────────────────────────────────────────── */
@keyframes tsi-aurora  { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes tsi-word-up { to { opacity: 1; transform: translateY(0); } }
@keyframes tsi-marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes tsi-fade-up { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
