/* ============================================================
   BLOG THEME — aligns the blog header, footer, fonts and accent
   colours with the main website (assets/css/style.css).
   Loaded LAST so it layers on top of the blog's Bootstrap theme
   without disturbing the article/grid layout.
   ============================================================ */

:root{
    --font:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
    --font-display:'Fraunces',Georgia,serif;
    --blue:#1B6FD8;
    --navy:#0A1628;
    /* Remap the blog's brand accent to the main-site blue */
    --brand:#1B6FD8;
}

/* ── Match main-site typography ─────────────────────────────── */
body{
    font-family:var(--font);
    -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6{
    font-family:var(--font-display);
}
.text-primary{color:var(--blue)!important;}

/* ============================================================
   NAVBAR (from assets/css/style.css)
   ============================================================ */
.site-header{
    position:sticky; top:0; z-index:1000;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(10,22,40,.06);
    transition:box-shadow .25s ease;
}
.site-header.is-scrolled{ box-shadow:0 4px 24px rgba(10,22,40,.1); }
.site-nav{ width:100%; }
.site-header .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
    height:72px; gap:24px; max-width:1240px; margin:0 auto; padding:0 24px; width:100%;
}
.nav-logo img{ height:48px; width:auto; display:block; }
.nav-links{
    display:flex; align-items:center; gap:4px;
    list-style:none; margin:0; padding:0; flex:1; justify-content:center;
}
.nav-link{
    display:inline-flex; align-items:center; gap:4px;
    padding:8px 14px; font-size:.88rem; font-weight:600;
    color:#374151; text-decoration:none; border-radius:8px;
    transition:background .2s,color .2s; white-space:nowrap;
}
.nav-link:hover,.nav-link.active{ background:#F0F6FF; color:#1B6FD8; }
.nav-dropdown{ position:relative; }
.nav-dropdown-menu{
    display:none; position:absolute; top:calc(100% + 8px); left:0;
    background:#fff; border:1px solid rgba(10,22,40,.08);
    border-radius:16px; padding:8px; list-style:none; margin:0;
    min-width:220px; box-shadow:0 12px 40px rgba(10,22,40,.12); z-index:100;
}
.nav-dropdown:hover .nav-dropdown-menu{ display:block; }
.nav-dropdown-menu li a{
    display:block; padding:10px 14px; font-size:.86rem; font-weight:500;
    color:#374151; text-decoration:none; border-radius:10px; transition:background .15s,color .15s;
}
.nav-dropdown-menu li a:hover{ background:#F0F6FF; color:#1B6FD8; }
.nav-cta{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.nav-phone{
    display:flex; align-items:center; gap:6px; font-size:.84rem;
    font-weight:700; color:#0A1628; text-decoration:none; white-space:nowrap;
}
.nav-phone:hover{ color:#1B6FD8; }
.btn-nav-cta{
    display:inline-flex; align-items:center;
    background:linear-gradient(135deg,#1B6FD8,#2EC4B6); color:#fff !important;
    font-size:.84rem; font-weight:700; padding:10px 20px; border-radius:10px;
    text-decoration:none; white-space:nowrap; border:none;
    box-shadow:0 4px 16px rgba(27,111,216,.3); transition:transform .2s,box-shadow .2s;
}
.btn-nav-cta:hover{ transform:translateY(-1px); box-shadow:0 6px 20px rgba(27,111,216,.4); }
.nav-hamburger{
    display:none; flex-direction:column; justify-content:center;
    align-items:center; gap:5px; width:44px; height:44px;
    background:none; border:1.5px solid rgba(10,22,40,.12);
    border-radius:10px; cursor:pointer; padding:0; flex-shrink:0; transition:background .2s;
}
.nav-hamburger:hover{ background:#F0F6FF; border-color:#1B6FD8; }
.ham-line{
    display:block; width:20px; height:2px; background:#0A1628;
    border-radius:2px; transition:transform .3s ease,opacity .3s ease;
}
.nav-hamburger.is-active .ham-line:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-hamburger.is-active .ham-line:nth-child(2){ opacity:0; transform:scaleX(0); }
.nav-hamburger.is-active .ham-line:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Overlay */
.mobile-nav-overlay{
    position:fixed; inset:0; background:rgba(10,22,40,.55);
    z-index:1001; backdrop-filter:blur(2px);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s ease,visibility .3s ease;
}
.mobile-nav-overlay.is-open{ opacity:1; visibility:visible; pointer-events:auto; }

/* Drawer */
.mobile-nav{
    position:fixed; top:0; right:0; width:300px; max-width:88vw;
    height:100vh; height:100dvh; background:#fff; z-index:1002;
    display:flex; flex-direction:column;
    box-shadow:-8px 0 40px rgba(10,22,40,.25);
    transform:translateX(110%); visibility:hidden;
    transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s .35s;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.mobile-nav.is-open{
    transform:translateX(0); visibility:visible;
    transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s 0s;
}
body.nav-open{ overflow:hidden !important; }
.mobile-nav-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 20px; border-bottom:1px solid #F3F4F6; flex-shrink:0;
}
.mobile-nav-header .nav-logo img{ height:40px; }
.mobile-nav-close{
    width:40px; height:40px; border:1px solid #E5E7EB; border-radius:10px;
    background:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
    color:#374151; transition:background .2s,color .2s;
}
.mobile-nav-close:hover{ background:#FEF2F2; color:#EF4444; border-color:#FCA5A5; }
.mobile-nav-links{ list-style:none; margin:0; padding:12px 0; flex:1; }
.mobile-nav-links > li > a{
    display:block; padding:14px 20px; font-size:1rem; font-weight:600;
    color:#111827; text-decoration:none; transition:background .15s,color .15s,padding-left .15s;
}
.mobile-nav-links > li > a:hover{ background:#F0F6FF; color:#1B6FD8; padding-left:28px; }
.mobile-nav-group-btn{
    display:flex; align-items:center; justify-content:space-between; width:100%;
    padding:14px 20px; font-size:1rem; font-weight:600; color:#111827;
    background:none; border:none; cursor:pointer; text-align:left; transition:background .15s,color .15s;
}
.mobile-nav-group-btn:hover{ background:#F0F6FF; color:#1B6FD8; }
.mobile-nav-group-btn svg{ transition:transform .25s ease; flex-shrink:0; }
.mobile-nav-group-btn.is-open svg{ transform:rotate(180deg); }
.mobile-nav-submenu{
    list-style:none; margin:0; padding:0;
    max-height:0; overflow:hidden; transition:max-height .3s ease; background:#F9FAFB;
}
.mobile-nav-submenu li a{
    display:block; padding:12px 20px 12px 32px; font-size:.9rem; font-weight:500;
    color:#374151; text-decoration:none; border-bottom:1px solid #F3F4F6; transition:background .15s,color .15s;
}
.mobile-nav-submenu li:last-child a{ border-bottom:none; }
.mobile-nav-submenu li a:hover{ background:#EFF6FF; color:#1B6FD8; }
.mobile-nav-footer{
    padding:16px 20px 32px; border-top:1px solid #F3F4F6;
    display:flex; flex-direction:column; gap:12px; flex-shrink:0;
}
.mobile-nav-phone{
    display:flex; align-items:center; gap:8px; font-size:.95rem; font-weight:700;
    color:#0A1628; text-decoration:none; padding:12px 16px; background:#F0F6FF;
    border-radius:12px; transition:background .2s;
}
.mobile-nav-phone:hover{ background:#DBEAFE; }
.btn-mobile-cta{
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#1B6FD8,#2EC4B6); color:#fff !important;
    font-size:.95rem; font-weight:700; padding:14px 20px;
    border-radius:12px; text-decoration:none; box-shadow:0 4px 16px rgba(27,111,216,.3);
}

/* ── RESPONSIVE NAVBAR ─────────────────────────────────────── */
@media (min-width:769px){
    .nav-hamburger{ display:none !important; }
    .mobile-nav{ display:none !important; }
    .mobile-nav-overlay{ display:none !important; }
    .nav-links{ display:flex !important; }
    .nav-cta{ display:flex !important; }
}
@media (max-width:768px){
    .nav-links{ display:none !important; }
    .nav-cta{ display:none !important; }
    .nav-dropdown-menu{ display:none !important; }
    .nav-hamburger{ display:flex !important; }
    .site-header .nav-inner{ height:64px !important; }
    .nav-logo img{ height:40px !important; }
    .mobile-nav{ display:flex !important; }
    .mobile-nav-overlay{ display:block !important; }
}
@media (max-width:480px){
    .site-header .nav-inner{ padding:0 14px !important; }
    .nav-logo img{ height:36px !important; }
}

/* ============================================================
   FOOTER CTA STRIP (from assets/css/style.css)
   ============================================================ */
.ft-cta-strip{background:linear-gradient(135deg,#1B6FD8 0%,#1558B0 50%,#1248A0 100%);padding:22px 0 26px;position:relative;overflow:visible;}
.ft-cta-strip::before{content:'';position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none;}
.ft-cta-strip::after{content:'';position:absolute;bottom:-24px;left:0;right:0;height:24px;background:linear-gradient(180deg,rgba(7,23,41,.6),rgba(7,23,41,0));pointer-events:none;z-index:2;}
.ft-cta-strip .container{max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px;width:100%;}
.ft-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1;}
.ft-cta-text h3{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 3px;}
.ft-cta-text p{font-size:.82rem;color:rgba(255,255,255,.68);margin:0;max-width:360px;line-height:1.45;}
.ft-cta-buttons{display:flex;gap:10px;flex-shrink:0;align-items:center;}
.ft-cta-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border-radius:10px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .25s;border:1.5px solid transparent;}
.ft-cta-call{background:transparent;color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.25);backdrop-filter:blur(4px);}
.ft-cta-call:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);color:#fff;transform:translateY(-2px);}
.ft-cta-wa{background:#22C55E;color:#fff;box-shadow:0 4px 14px rgba(34,197,94,.25);}
.ft-cta-wa:hover{background:#16A34A;transform:translateY(-2px);box-shadow:0 8px 24px rgba(34,197,94,.35);}
.ft-cta-book{background:#fff;color:#1B6FD8;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,.12);}
.ft-cta-book:hover{background:#F0F7FF;transform:translateY(-2px);box-shadow:0 8px 28px rgba(27,111,216,.2);}

/* ============================================================
   MAIN FOOTER — Dark Navy Premium (from assets/css/style.css)
   ============================================================ */
.site-footer{background:linear-gradient(160deg,#071729 0%,#0B2244 40%,#0D2A57 80%,#0F3264 100%)!important;color:rgba(255,255,255,.75)!important;border-top:none;padding:0;position:relative;overflow:hidden;margin-top:0;}
.site-footer::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.015) 1px,transparent 0);background-size:32px 32px;pointer-events:none;}
.ft-glow-1{position:absolute;top:-150px;left:-100px;width:450px;height:450px;border-radius:50%;background:radial-gradient(circle,rgba(27,111,216,.1) 0%,transparent 60%);pointer-events:none;}
.ft-glow-2{position:absolute;bottom:-100px;right:-60px;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(46,196,182,.06) 0%,transparent 60%);pointer-events:none;}
.site-footer .ft-container{position:relative;z-index:1;padding-top:96px;max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px;width:100%;}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1.3fr;gap:44px;padding-bottom:48px;align-items:start;}
.ft-col{display:flex;flex-direction:column;}
.ft-brand-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.35);margin-bottom:14px;}
.ft-logo{display:inline-block;margin-bottom:14px;}
.ft-logo img{height:44px;width:auto;display:block;object-fit:contain;filter:brightness(0) invert(1);}
.ft-desc{font-size:.84rem;color:rgba(255,255,255,.55);line-height:1.72;margin:0 0 18px;max-width:280px;}
.ft-trust-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.ft-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);font-size:.7rem;color:rgba(255,255,255,.55);backdrop-filter:blur(4px);transition:border-color .2s;}
.ft-badge:hover{border-color:rgba(255,255,255,.18);}
.ft-badge strong{color:#fff;font-size:.76rem;font-weight:700;}
.ft-badge svg{flex-shrink:0;}
.ft-social{display:flex;gap:10px;}
.ft-social-btn{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);transition:all .28s;text-decoration:none;}
.ft-social-btn:hover{background:rgba(27,111,216,.2);border-color:rgba(27,111,216,.4);color:#7EC8F8;transform:translateY(-2px);box-shadow:0 6px 20px rgba(27,111,216,.15);}
.ft-heading{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:#fff;margin:0 0 18px;letter-spacing:-.01em;position:relative;padding-bottom:10px;min-height:1.2em;}
.ft-heading::after{content:'';position:absolute;bottom:0;left:0;width:24px;height:2px;background:linear-gradient(90deg,#1B6FD8,rgba(27,111,216,.2));border-radius:2px;}
.ft-brand .ft-brand-label{margin-bottom:12px;}
.ft-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.ft-links a{font-size:.84rem;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s,padding-left .2s;display:inline-flex;align-items:center;gap:0;line-height:1.4;}
.ft-links a::before{content:'';width:0;height:1px;background:#7EC8F8;transition:width .2s;margin-right:0;}
.ft-links a:hover{color:#7EC8F8;padding-left:0;}
.ft-links a:hover::before{width:12px;margin-right:6px;}
.ft-contact-card{background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:18px;backdrop-filter:blur(4px);margin-top:-2px;}
.ft-contact-row{display:flex;align-items:flex-start;gap:12px;}
.ft-contact-row p{margin:0;font-size:.82rem;color:rgba(255,255,255,.6);line-height:1.55;}
.ft-contact-row a{font-size:.84rem;color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s;}
.ft-contact-row a:hover{color:#7EC8F8;}
.ft-icon-circle{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;background:rgba(27,111,216,.12);color:#7EC8F8;}
.ft-icon-circle:hover{transform:scale(1.08);}
.ft-icon-green{background:rgba(46,196,182,.1);color:#2EC4B6;}
.ft-icon-blue{background:rgba(27,111,216,.1);color:#7EC8F8;}
.ft-icon-amber{background:rgba(245,158,11,.1);color:#F59E0B;}
.ft-contact-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.35);margin-bottom:3px;margin-top:8px;}
.ft-contact-label:first-child{margin-top:0;}
.ft-hours{font-size:.84rem;color:rgba(255,255,255,.7);font-weight:500;}
.ft-directions{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.8rem;font-weight:600;color:#7EC8F8;text-decoration:none;transition:gap .2s,color .2s;}
.ft-directions:hover{gap:10px;color:#fff;}
.ft-trust-row{display:flex;align-items:center;justify-content:center;gap:36px;padding:22px 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin-top:4px;}
.ft-trust-item{display:flex;flex-direction:column;align-items:center;text-align:center;}
.ft-trust-item strong{font-size:1.1rem;font-weight:800;color:#fff;letter-spacing:-.02em;}
.ft-trust-item span{font-size:.68rem;color:rgba(255,255,255,.35);margin-top:2px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;}
.ft-trust-sep{width:1px;height:28px;background:rgba(255,255,255,.08);}
.ft-bottom{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;background:rgba(0,0,0,.2);margin:16px -28px 0;border-top:1px solid rgba(255,255,255,.04);}
.ft-bottom p{margin:0;font-size:.75rem;color:rgba(255,255,255,.3);}
.ft-credit{display:inline-block;}
.ft-credit a{color:rgba(255,255,255,.5);font-weight:600;text-decoration:none;transition:color .2s;}
.ft-credit a:hover{color:#7EC8F8;}
.ft-bottom-links{display:flex;gap:20px;}
.ft-bottom-links a{font-size:.75rem;color:rgba(255,255,255,.3);text-decoration:none;transition:color .2s;}
.ft-bottom-links a:hover{color:rgba(255,255,255,.65);}

/* Back to top */
.back-to-top{position:fixed;bottom:24px;left:24px;width:40px;height:40px;border-radius:50%;background:#1B6FD8;color:#fff;border:none;font-size:1.1rem;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s;z-index:997;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(27,111,216,.3);}
.back-to-top.visible{opacity:1;visibility:visible;}
.back-to-top:hover{background:#155BB0;transform:translateY(-3px);}

/* ── FOOTER RESPONSIVE (from assets/css/responsive.css) ─────── */
@media(max-width:1024px){
    .ft-grid{grid-template-columns:1.5fr 1fr 1fr!important;gap:36px!important;}
    .ft-contact-col{grid-column:1/-1;}
    .ft-contact-card{flex-direction:row;flex-wrap:wrap;gap:20px;}
    .ft-contact-row{flex:1 1 calc(50% - 10px);}
    .ft-cta-inner{flex-direction:column;text-align:center;gap:20px;}
    .ft-cta-text p{max-width:100%;}
}
@media(max-width:768px){
    .ft-grid{grid-template-columns:1fr 1fr!important;gap:28px!important;}
    .ft-brand{grid-column:1/-1;}
    .ft-contact-col{grid-column:1/-1;}
    .ft-contact-card{flex-direction:column;padding:20px 16px!important;}
    .ft-contact-row{flex:none;}
    .ft-cta-buttons{flex-direction:column;width:100%;max-width:320px;}
    .ft-cta-btn{justify-content:center;width:100%;}
    .ft-trust-row{flex-wrap:wrap;gap:16px;justify-content:center;padding:20px 16px!important;}
    .ft-trust-sep{display:none!important;}
    .ft-bottom{flex-direction:column;gap:10px;text-align:center;margin:16px -16px 0!important;padding:18px 16px!important;}
    .ft-cta-strip{padding:24px 0!important;overflow:hidden;}
    .ft-cta-inner{padding:0 4px;}
    .site-footer .ft-container{padding-top:40px!important;}
    .site-footer{overflow-x:hidden!important;}
}
@media(max-width:480px){
    .ft-grid{grid-template-columns:1fr!important;gap:20px!important;}
    .site-footer .ft-container{padding-top:32px!important;}
    .ft-trust-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;text-align:center!important;padding:18px 12px!important;border-radius:14px!important;}
    .ft-trust-sep{display:none!important;}
    .ft-trust-item strong{font-size:1.4rem!important;}
    .ft-trust-item span{font-size:.62rem!important;}
    .ft-social{justify-content:center;}
    .ft-trust-badges{justify-content:center;}
    .ft-contact-card{padding:16px 14px!important;gap:14px!important;}
    .ft-contact-row{gap:10px!important;}
    .ft-icon-circle{width:30px!important;height:30px!important;min-width:30px!important;border-radius:8px!important;}
    .ft-contact-row p{font-size:.8rem!important;}
    .ft-contact-row a{font-size:.8rem!important;}
    .ft-contact-label{font-size:.64rem!important;}
    .ft-directions{font-size:.76rem!important;}
    .ft-bottom{margin:12px -12px 0!important;padding:16px 12px!important;}
    .ft-bottom p{font-size:.7rem!important;}
    .ft-bottom-links{gap:14px!important;flex-wrap:wrap!important;justify-content:center!important;}
    .ft-bottom-links a{font-size:.7rem!important;}
    .ft-heading{font-size:.88rem!important;margin-bottom:14px!important;}
    .ft-links{gap:8px!important;}
    .ft-links a{font-size:.82rem!important;}
    .ft-desc{font-size:.8rem!important;}
    .ft-logo img{height:40px!important;}
    .ft-brand-label{font-size:.6rem!important;}
    .ft-badge{font-size:.65rem!important;padding:4px 10px!important;}
    .ft-cta-text h3{font-size:1rem!important;}
    .ft-cta-text p{font-size:.78rem!important;}
    .ft-cta-btn{font-size:.78rem!important;padding:9px 16px!important;}
}
