:root{
    --hero-blue:      #1f78b9;
    --hero-blue-soft: #2c8ac9;
    --hero-blue-deep: #0b4a79;
    --heading-light:  #a9cde6;
    --wave-light:     #cfe4f3;
}


/* ============================= HERO ============================= */
.subfooterhero{
    position:relative;
    min-height:106vh;
    background:radial-gradient(1300px 620px at 50% 22%, var(--hero-blue-soft) 0%, var(--hero-blue) 58%, #1d74b4 100%);
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

/* ---------- Top waves ---------- */
.subfooterhero-waves{
    position:absolute;
    top:-2px;
    left:-4%;
    width:108%;
    height:130px;
    animation:waveDrift 9s ease-in-out infinite alternate;
    pointer-events:none;
}
.subfooterhero-waves .w2{ animation:waveDrift 7s ease-in-out infinite alternate-reverse; }
@keyframes waveDrift{
    from{ transform:translateX(0); }
    to  { transform:translateX(-26px); }
}

/* ---------- Background silhouettes ---------- */
.silhouette{
    position:absolute;
    bottom:0;
    pointer-events:none;
    z-index:1;
}
.silhouette-left { left:-10px;  width:min(30vw, 420px); opacity:.55; }
.silhouette-right{ right:-10px; width:min(36vw, 520px); opacity:.55; }

/* ---------- Hero content ---------- */
.subfooterhero-content{
    position:relative;
    z-index:3;
    padding-top:170px;
    padding-bottom:56px;
    flex:1 0 auto;
}

.subfooterhero-tagline{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    color:#eaf4fb;
    font-size:13px;
    font-weight:600;
    letter-spacing:4.5px;
    text-transform:uppercase;
}
.subfooterhero-tagline::before,
.subfooterhero-tagline::after{
    content:"";
    display:block;
    width:38px;
    height:1.5px;
    background:rgba(255,255,255,.75);
}

.subfooterhero-title{
    color:#ffffff;
    font-weight:800;
    font-size:clamp(34px, 4.6vw, 60px);
    line-height:1.12;
    text-align:center;
    margin:18px auto 0;
    max-width:1100px;
}
.subfooterhero-title .light{ color:var(--heading-light); }

.subfooterhero-sub{
    color:rgba(255,255,255,.93);
    font-size:16px;
    font-weight:400;
    max-width:780px;
    margin:20px auto 0;
    text-align:center;
    line-height:1.7;
}

/* ---------- Side notes ---------- */
.script-note{
    position:absolute;
    left:4%;
    bottom:190px;
    width:210px;
    z-index:2;
    color:#ffffff;
    font-family:'Caveat', cursive;
    font-size:36px;
    font-weight:600;
    line-height:1.12;
}
.script-note > div{ transform:rotate(-4deg); }
.script-note svg{ display:block; margin-top:2px; }

.trusted-note{
    position:absolute;
    right:4.5%;
    bottom:351px;
    width:180px;
    z-index:2;
    color:#ffffff;
    text-align:left;
    font-size:14px;
    font-weight:700;
    letter-spacing:.4px;
    line-height:1.65;
    text-transform:uppercase;
    padding-left:18px;
    border-left:2px solid rgba(255,255,255,.5);
}
.trusted-note::after{
    content:"";
    display:block;
    width:42px;
    height:2px;
    background:rgba(255,255,255,.7);
    margin-top:16px;
}

/* ---------- CTA buttons ---------- */
.subfooterhero-ctas{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:26px;
    flex-wrap:wrap;
    margin-top:36px;
}
.btn-quote,
.btn-call{
    display:inline-flex;
    align-items:center;
    gap:12px;
    border-radius:60px;
    padding:16px 36px;
    font-size:15px;
    font-weight:700;
    letter-spacing:.6px;
    text-transform:uppercase;
    text-decoration:none;
    transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
    will-change:transform;
}
.btn-quote{
    background:#ffffff;
    color:#1d74b4;
    box-shadow:0 10px 24px rgba(6,48,84,.28);
}
.btn-quote .bi{ font-size:19px; }
.btn-quote:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 32px rgba(6,48,84,.36);
    color:#155e96;
}
.btn-call{
    border:2px solid #ffffff;
    color:#ffffff;
    background:rgba(255,255,255,.04);
    letter-spacing:1px;
}
.btn-call .bi{ font-size:19px; }
.btn-call:hover{
    background:#ffffff;
    color:#1d74b4;
    transform:translateY(-4px);
}

.subfooterhero-help{
    text-align:center;
    color:rgba(255,255,255,.85);
    font-size:13.5px;
    margin-top:20px;
}

/* ---------- Services row ---------- */
.services-row{
    margin-top:64px;
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}
.service-col{
    text-align:center;
    padding:8px 26px;
}
@media (min-width:992px){
    .service-col + .service-col{ border-left:1px solid rgba(255,255,255,.26); }
}
.service-icon{
    width:78px;
    height:78px;
    margin:0 auto 16px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.15);
    border:1.5px solid rgba(255,255,255,.5);
    box-shadow:inset 0 0 0 6px rgba(255,255,255,.05), 0 8px 18px rgba(6,48,84,.18);
    animation:floaty 4.2s ease-in-out infinite;
}
.service-col:nth-child(2) .service-icon{ animation-delay:.6s; }
.service-col:nth-child(3) .service-icon{ animation-delay:1.2s; }
.service-col:nth-child(4) .service-icon{ animation-delay:1.8s; }
@keyframes floaty{
    0%,100%{ transform:translateY(0); }
    50%    { transform:translateY(-9px); }
}
.service-icon svg{ width:32px; height:32px; stroke:#fff; }

.service-title{
    color:#ffffff;
    font-weight:700;
    font-size:16.5px;
    margin-bottom:6px;
}
.service-desc{
    color:rgba(255,255,255,.82);
    font-size:13.5px;
    line-height:1.55;
    max-width:230px;
    margin:0 auto;
}

/* ---------- Trust bar ---------- */
.trust-bar{
    position:relative;
    z-index:3;
    background:var(--hero-blue-deep);
    padding:22px 0;
}
.trust-item{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    color:#ffffff;
    font-size:14.5px;
    font-weight:500;
    padding:4px 10px;
}
.trust-item .bi{ font-size:23px; }
@media (min-width:992px){
    .trust-col + .trust-col{ border-left:1px solid rgba(255,255,255,.16); }
}

/* ---------- Responsive ---------- */
@media (max-width:1199.98px){
    .script-note{ display:none; }
    .trusted-note{ display:none; }
}
@media (max-width:767.98px){
    .subfooterhero-content{ padding-top:140px; }
    .subfooterhero-waves{ height:80px; }
    .trust-item{ justify-content:flex-start; }
}