
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy,#1a2a5e);color:#fff;padding:12px 20px;z-index:99999;border-radius:0 0 4px 0;font-weight:600;font-size:14px}
.skip-link:focus{left:0}
:focus-visible{outline:2.5px solid var(--navy);outline-offset:2px}
.btn-hero-primary:focus-visible,.btn-hero-outline:focus-visible{outline:2.5px solid var(--white);outline-offset:2px;box-shadow:0 0 0 4.5px rgba(255,255,255,.35)}
.mobile-menu :focus-visible{outline-color:var(--gold2)}
html{scroll-behavior:smooth}
body{font-family:'Open Sans',sans-serif;color:#333;background:#f4f4f4;font-size:14px}
a{text-decoration:none;color:inherit}
ul{list-style:none}
img{max-width:100%;display:block}

:root{
  --navy:#1a2a5e;--navy2:#0f1d44;--gold:#8f6a0a;--gold2:#e8b820;
  --white:#fff;--light:#f7f8fc;--border:#dde2ee;--text:#444;--muted:#5c5c5c;
}

/* ══ TOP BAR ══ */
.topbar{background:var(--navy2);color:rgba(255,255,255,.85);font-size:12px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.tb-inner{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.tb-tagline{font-style:italic;color:var(--gold2)}
.tb-right{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.tb-right a{color:rgba(255,255,255,.8);font-size:12px;display:flex;align-items:center;gap:5px;transition:color .2s}
.tb-right a:hover{color:var(--gold2)}
.tb-right .sep{color:rgba(255,255,255,.25)}

/* ══ HEADER ══ */
header{background:var(--white);box-shadow:0 2px 8px rgba(0,0,0,.12);position:sticky;top:0;z-index:900}
.header-inner{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:14px}
.logo-mark{width:58px;height:44px;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.logo-mark img{width:100%;height:100%;object-fit:contain;display:block}
.logo-text .firm{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.3rem;color:var(--navy);line-height:1.2}
.logo-text .sub{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:600}
.logo-text .loc{font-size:11px;color:var(--muted)}

/* ── MEGA MENU ── */
nav.main-nav{display:flex;align-items:center;height:100%}
nav.main-nav>ul{display:flex;height:100%}
nav.main-nav>ul>li{position:relative;height:100%;display:flex;align-items:center}
nav.main-nav>ul>li>a{display:flex;align-items:center;gap:4px;padding:0 14px;height:100%;font-size:13px;font-weight:600;color:var(--navy);transition:color .2s,border-bottom-color .25s ease;border-bottom:3px solid transparent;white-space:nowrap}
nav.main-nav>ul>li>a:hover,nav.main-nav>ul>li>a.active{color:var(--gold);border-bottom-color:var(--gold)}
nav.main-nav>ul>li>a .arr{font-size:9px;opacity:.6}
.dropdown{position:absolute;top:100%;left:0;min-width:200px;background:var(--white);box-shadow:0 8px 32px rgba(0,0,0,.14);border-top:2px solid var(--gold);opacity:0;visibility:hidden;transform:translateY(6px);transition:all .22s ease;z-index:999}
.dropdown li a{display:block;padding:9px 18px;font-size:12.5px;color:var(--text);border-bottom:1px solid var(--border);transition:background .15s,color .15s}
.dropdown li:last-child a{border-bottom:none}
.dropdown li a:hover{background:var(--light);color:var(--navy);padding-left:24px}
.dropdown li{position:relative}
.subdrop{position:absolute;left:100%;top:0;min-width:200px;background:var(--white);box-shadow:4px 4px 20px rgba(0,0,0,.12);border-top:2px solid var(--gold2);opacity:0;visibility:hidden;transition:all .2s;z-index:1000}
.subdrop li a{font-size:12px}
.dropdown li:hover>.subdrop{opacity:1;visibility:visible}
nav.main-nav>ul>li:hover>.dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}
.subdrop.show{opacity:1;visibility:visible}
.nav-contact-btn{background:var(--navy);color:var(--white);padding:9px 18px;border-radius:3px;font-size:12.5px;font-weight:600;transition:background .2s;white-space:nowrap;margin-left:10px}
.nav-contact-btn:hover{background:var(--gold)}

/* ── HAMBURGER ── */
.hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:4px;margin-left:10px}
.hamburger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px}

/* ── MOBILE MENU ── */
.mobile-menu{display:none;position:fixed;inset:0;z-index:9000;background:var(--navy2);overflow-y:auto;padding:20px}
.mobile-menu.open{display:block}
.mob-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}
.mob-brand{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.1rem;color:var(--white)}
.mob-brand span{color:var(--gold2)}
.mob-close{background:none;border:1.5px solid rgba(255,255,255,.3);color:var(--white);font-size:1.3rem;cursor:pointer;border-radius:4px;width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.mob-section{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:18px 0 8px;font-weight:700}
.mob-nav a{display:block;padding:13px 0;font-size:1rem;color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.08);font-weight:500}
.mob-nav a:hover{color:var(--gold2)}
.mob-ctas{display:flex;flex-direction:column;gap:10px;margin-top:24px}
.mob-btn-gold{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:var(--white);padding:14px;border-radius:3px;font-weight:700;font-size:.95rem}
.mob-btn-outline{display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.08);color:var(--white);padding:14px;border-radius:3px;font-weight:600;font-size:.95rem;border:1px solid rgba(255,255,255,.2)}
.mob-login-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:16px;margin-top:20px}
.mob-login-title{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700;text-align:center}
.mob-login-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:3px;font-weight:700;font-size:13px;margin-bottom:8px;text-decoration:none}
.mob-login-btn.staff{background:var(--gold);color:var(--white)}
.mob-login-btn.client{background:rgba(255,255,255,.1);color:var(--white);border:1px solid rgba(255,255,255,.2)}
.mob-login-btn svg{width:15px;height:15px;fill:currentColor;flex-shrink:0}

/* ══ HERO ══ */
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--navy2) 0%,var(--navy) 60%,#2a4a8e 100%);min-height:440px;display:flex;align-items:center}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Crect width='80' height='80' fill='none'/%3E%3Cpath d='M0 0h1v80H0zM80 0h1v80H80zM0 0v1h80V0zM0 80v1h80V80z' fill='rgba(255,255,255,0.03)'/%3E%3C/svg%3E");opacity:.4}
.hero-inner{max-width:1280px;margin:0 auto;padding:60px 20px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;position:relative;z-index:2;width:100%}

/* slides — fixed height container so absolute positioning works */
.hero-slides{position:relative;height:300px}
.slide{position:absolute;top:0;left:0;width:100%;opacity:0;transition:opacity .7s ease;pointer-events:none}
.slide.active{opacity:1;pointer-events:auto}
.slide-tag{display:inline-block;background:var(--gold);color:var(--white);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 12px;border-radius:2px;margin-bottom:16px}
.slide h1,.slide h2{font-family:'Roboto',sans-serif;font-weight:700;font-size:clamp(1.8rem,3vw,2.8rem);color:var(--white);line-height:1.18;letter-spacing:-.01em;margin-bottom:14px}
.slide h1 span,.slide h2 span{color:var(--gold2)}
.slide p{color:rgba(255,255,255,.78);font-size:14px;line-height:1.7;max-width:480px;margin-bottom:24px}
.slide-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-hero-primary{background:var(--gold);color:var(--white);padding:11px 26px;border-radius:3px;font-weight:700;font-size:13px;transition:background .2s,transform .15s;display:inline-flex;align-items:center;gap:8px}
.btn-hero-primary:hover{background:var(--gold2);transform:translateY(-1px)}
.btn-hero-outline{border:1.5px solid rgba(255,255,255,.5);color:var(--white);padding:11px 26px;border-radius:3px;font-weight:600;font-size:13px;transition:all .2s}
.btn-hero-outline:hover{background:rgba(255,255,255,.1);border-color:var(--white)}
.slide-dots{position:absolute;bottom:-28px;left:0;display:flex;gap:8px}
.dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:background .2s,transform .2s}
.dot.active{background:var(--gold);transform:scale(1.3)}

/* hero right panel — holds login box on desktop */
.hero-panel{background:rgba(255,255,255,.07);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:6px;overflow:hidden}
.hero-panel .panel-news{padding:20px}
.hero-panel h3{font-family:'Roboto',sans-serif;font-size:1rem;font-weight:700;color:var(--white);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.15);display:flex;align-items:center;gap:8px}
/* The full "What's New" table duplicates the hero panel's news list, so it's
   only needed on mobile where the hero panel itself is hidden (see the
   768px breakpoint below, which switches this back on). */
#whatsNewFull{display:none}
.dot-live{width:8px;height:8px;border-radius:50%;background:#4caf50;animation:pulse 1.4s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.news-list{display:flex;flex-direction:column}
.news-item{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);display:flex;gap:10px;align-items:flex-start}
.news-item:last-child{border-bottom:none}
.news-date{font-size:10px;color:var(--gold2);font-weight:700;white-space:nowrap;margin-top:2px;min-width:68px}
.news-item a{font-size:12px;color:rgba(255,255,255,.8);line-height:1.5;transition:color .15s}
.news-item a:hover{color:var(--gold2)}
.news-fine-print{font-size:10.5px;color:rgba(255,255,255,.4);margin-top:10px;line-height:1.5;font-style:italic}

/* login section inside hero panel */
.panel-login{border-top:1px solid rgba(255,255,255,.12);padding:16px 20px}
.panel-login-title{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700;text-align:center}
.panel-login-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border-radius:3px;font-weight:700;font-size:12.5px;margin-bottom:8px;transition:opacity .15s}
.panel-login-btn:last-child{margin-bottom:0}
.panel-login-btn.staff{background:var(--gold);color:var(--white)}
.panel-login-btn.staff:hover{background:var(--gold2);color:var(--navy2)}
.panel-login-btn.client{background:rgba(255,255,255,.1);color:var(--white);border:1px solid rgba(255,255,255,.2)}
.panel-login-btn.client:hover{background:rgba(255,255,255,.18)}
.panel-login-btn svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}

/* ══ TICKER ══ */
.ticker-bar{background:var(--navy);color:var(--white);display:flex;align-items:stretch;overflow:hidden}
.ticker-label{background:var(--gold);color:var(--white);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:10px 18px;white-space:nowrap;display:flex;align-items:center;gap:6px;flex-shrink:0}
.ticker-wrap{flex:1;overflow:hidden;position:relative}
.ticker-content{display:flex;white-space:nowrap;animation:ticker 40s linear infinite;padding:10px 0}
.ticker-content:hover{animation-play-state:paused}
.ticker-content span{display:inline-block;padding:0 40px;font-size:12.5px;color:rgba(255,255,255,.88);border-right:1px solid rgba(255,255,255,.15)}
.ticker-content span:last-child{border-right:none}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ══ MAIN LAYOUT ══ */
.main-wrap{max-width:1280px;margin:0 auto;padding:30px 20px;display:grid;grid-template-columns:1fr 300px;gap:24px}

/* ══ SECTION TITLES ══ */
.sec-title{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.35rem;color:var(--navy);padding-bottom:10px;margin-bottom:20px;border-bottom:2px solid var(--gold);display:flex;align-items:center;gap:10px}
.sec-title::before{content:'';width:4px;height:22px;background:var(--gold);border-radius:2px;display:inline-block}

/* ══ ABOUT STRIP ══ */
.about-strip{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:6px;padding:26px 30px;margin-bottom:24px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}
.about-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.about-text h2{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.35rem;color:var(--navy);margin-bottom:12px;letter-spacing:-.01em}
.about-text p{font-size:13.5px;color:var(--text);line-height:1.75}
.about-text p strong{color:var(--navy)}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:center;flex-shrink:0}
.about-why{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.about-why span{font-size:12.5px;font-weight:600;color:var(--navy)}
.stat{background:var(--light);border:1px solid var(--border);border-radius:6px;padding:14px 20px}
.stat-num{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.7rem;color:var(--navy)}
.stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}

/* ══ SERVICES ══ */
.services-section{margin-bottom:24px}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.svc-card{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:22px 18px;box-shadow:0 1px 3px rgba(26,42,94,.05);transition:box-shadow .22s,transform .22s,border-color .22s;cursor:pointer}
.svc-card:hover{box-shadow:0 8px 24px rgba(26,42,94,.12);transform:translateY(-3px);border-color:var(--gold)}
.svc-icon{width:46px;height:46px;border-radius:8px;background:var(--light);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.svc-icon svg{width:24px;height:24px;fill:var(--navy)}
.svc-card h3{font-family:'Roboto',sans-serif;font-weight:700;font-size:.95rem;color:var(--navy);margin-bottom:8px}
.svc-card p{font-size:12.5px;color:var(--muted);line-height:1.6;margin-bottom:12px}
.svc-read{font-size:12px;font-weight:700;color:var(--gold);display:inline-flex;align-items:center;gap:4px}
.svc-read:hover{color:var(--navy)}

/* ══ TEAM ══ */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.team-card{background:var(--light);border:1px solid var(--border);border-radius:6px;padding:22px;transition:box-shadow .22s,transform .22s,border-color .22s}
.team-card:hover{box-shadow:0 8px 24px rgba(26,42,94,.1);border-color:var(--gold);transform:translateY(-3px)}
.team-photo{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy2));color:var(--gold2);font-family:'Roboto',sans-serif;font-weight:700;font-size:1.1rem;display:flex;align-items:center;justify-content:center;margin-bottom:14px;flex-shrink:0}
.team-card h3{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.02rem;color:var(--navy);margin-bottom:4px}
.team-role{font-size:12px;color:var(--gold);font-weight:700;margin-bottom:10px}
.team-card p{font-size:12.5px;color:var(--text);line-height:1.7}

/* ══ TESTIMONIALS ══ */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.testi-card{background:var(--light);border:1px solid var(--border);border-radius:6px;padding:20px;position:relative;display:flex;flex-direction:column;transition:box-shadow .22s,transform .22s,border-color .22s}
.testi-card:hover{box-shadow:0 10px 26px rgba(26,42,94,.1);transform:translateY(-3px);border-color:var(--gold)}
.testi-stars{color:var(--gold);font-size:14px;letter-spacing:2px;margin-bottom:10px}
.testi-card p{font-size:13px;color:var(--text);line-height:1.7;font-style:italic;flex:1;margin-bottom:14px}
.testi-name{font-size:12px;font-weight:700;color:var(--navy);border-top:1px solid var(--border);padding-top:10px}
.reviews-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--navy);color:var(--white);border-radius:6px;padding:16px 20px;margin-top:18px}
.reviews-cta span{font-size:13px;font-weight:600;color:rgba(255,255,255,.9)}
.reviews-cta a{font-size:12.5px;font-weight:700;color:var(--gold2);white-space:nowrap;transition:color .15s}
.reviews-cta a:hover{color:var(--white)}

/* ══ ARTICLES / BLOG ══ */
.blog-grid{display:flex;flex-direction:column;gap:12px}
.blog-card{background:var(--light);border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:border-color .2s,box-shadow .22s,transform .22s}
.blog-card:hover{border-color:var(--gold);box-shadow:0 8px 24px rgba(26,42,94,.1);transform:translateY(-3px)}
.blog-card:hover{border-color:var(--gold)}
.blog-card summary{list-style:none;cursor:pointer;padding:18px 20px;position:relative}
.blog-card summary::-webkit-details-marker{display:none}
.blog-card summary h3{font-family:'Roboto',sans-serif;font-weight:700;font-size:.98rem;color:var(--navy);margin-bottom:6px;padding-right:26px}
.blog-excerpt{font-size:12.5px;color:var(--muted);line-height:1.65;margin-bottom:10px}
.blog-toggle{font-size:12px;font-weight:700;color:var(--gold);display:inline-flex;align-items:center;gap:4px}
.blog-card summary::after{content:'+';position:absolute;top:18px;right:20px;width:22px;height:22px;border-radius:50%;background:var(--white);border:1px solid var(--border);color:var(--navy);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.blog-card[open] summary::after{transform:rotate(45deg)}
.blog-card[open] summary{border-bottom:1px solid var(--border)}
.blog-full{padding:4px 20px 20px}
.blog-full p{font-size:13px;color:var(--text);line-height:1.75;margin-bottom:12px}
.blog-full p:last-child{margin-bottom:0}

/* ══ NEWSLETTER SIGNUP ══ */
.nl-box p{font-size:12.5px;color:var(--text);line-height:1.6;padding:14px 18px 0}
.nl-wa-btn{display:flex;align-items:center;justify-content:center;background:#25D366;color:var(--white);margin:12px 18px 0;padding:11px;border-radius:3px;font-weight:700;font-size:12.5px;transition:background .2s}
.nl-wa-btn:hover{background:#1ebe5d}
.nl-divider{text-align:center;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:14px 18px 10px;position:relative}
.nl-box form{display:flex;gap:8px;padding:0 18px 18px}
.nl-input{flex:1;padding:9px 10px;border:1px solid var(--border);border-radius:3px;font-size:12.5px;font-family:inherit;background:var(--white);color:var(--text)}
.nl-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(143,106,10,.25)}
.nl-btn{background:var(--navy);color:var(--white);border:none;padding:9px 16px;border-radius:3px;font-weight:700;font-size:12.5px;cursor:pointer;white-space:nowrap;transition:background .2s}
.nl-btn:hover{background:var(--gold)}
#nlSuccess{margin:0 18px 16px}

/* ══ NEWS TABLE ══ */
.news-section{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px rgba(26,42,94,.05)}
.news-table{width:100%;border-collapse:collapse}
.news-table tr{border-bottom:1px solid var(--border)}
.news-table tr:last-child{border-bottom:none}
.news-table td{padding:9px 6px;vertical-align:top}
.news-table .nd{font-size:11px;color:var(--gold);font-weight:700;white-space:nowrap;padding-right:14px;width:90px}
.news-table .nt a{font-size:13px;color:var(--text);line-height:1.5;transition:color .15s}
.news-table .nt a:hover{color:var(--navy)}
.news-table .nt a::before{content:'› ';color:var(--gold)}

/* ══ SIDEBAR ══ */
.sidebar{display:flex;flex-direction:column;gap:20px;position:sticky;top:84px;align-self:start}
.sb-box{background:var(--white);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 1px 3px rgba(26,42,94,.05)}
.sb-title{background:var(--navy);color:var(--white);font-family:'Roboto',sans-serif;font-weight:700;font-size:.9rem;padding:12px 18px;display:flex;align-items:center;gap:8px}
.sb-title svg{width:16px;height:16px;fill:var(--gold)}
.sb-links li a{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;font-size:12.5px;color:var(--text);border-bottom:1px solid var(--border);transition:all .15s}
.sb-links li:last-child a{border-bottom:none}
.sb-links li a:hover{background:var(--light);color:var(--navy);padding-left:22px}
.sb-links li a .arr{color:var(--gold);font-size:13px}
.sb-why{padding:14px 18px}
.sb-why li{position:relative;padding-left:22px;font-size:12.5px;color:var(--text);line-height:1.6;margin-bottom:10px}
.sb-why li:last-child{margin-bottom:0}
.sb-why li::before{content:'✓';position:absolute;left:0;top:0;color:var(--gold);font-weight:700}
.contact-box .cb-item{padding:12px 18px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}
.contact-box .cb-item:last-child{border-bottom:none}
.cb-icon{width:34px;height:34px;border-radius:50%;background:var(--light);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cb-icon svg{width:16px;height:16px;fill:var(--navy)}
.cb-label{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:3px}
.cb-val{font-size:13px;color:var(--navy);font-weight:600}
.cb-val a:hover{color:var(--gold)}
.cb-sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.wa-sb{background:#e8faf0;border:1px solid #a5d6b8;border-radius:6px;padding:16px;text-align:center}
.wa-sb a{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#25D366;color:var(--white);padding:11px 20px;border-radius:100px;font-weight:700;font-size:13px;transition:background .2s;width:100%}
.wa-sb a:hover{background:#1ebe5d}
.wa-sb a svg{width:19px;height:19px;fill:var(--white)}
.wa-sb p{font-size:11.5px;color:#2e7d52;margin-top:8px}

/* ── sidebar login (shown only on mobile) ── */
.sb-login{background:var(--navy2);border-radius:6px;overflow:hidden;display:none}
.sb-login .sb-title{background:rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.1)}
.sb-login-inner{padding:16px}
.sb-login-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);text-align:center;margin-bottom:14px}
.sb-login-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:3px;font-weight:700;font-size:13px;margin-bottom:8px;transition:opacity .2s}
.sb-login-btn:last-of-type{margin-bottom:0}
.sb-login-btn.staff{background:var(--gold);color:var(--white)}
.sb-login-btn.staff:hover{background:var(--gold2);color:var(--navy2)}
.sb-login-btn.client{background:rgba(255,255,255,.1);color:var(--white);border:1px solid rgba(255,255,255,.2)}
.sb-login-btn.client:hover{background:rgba(255,255,255,.18)}
.sb-login-btn svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}
.sb-login-note{text-align:center;font-size:11px;color:rgba(255,255,255,.3);margin-top:10px}

/* ══ KNOWLEDGE BANK ══ */
.kb-section{background:var(--navy);padding:40px 0;margin-top:10px}
.kb-inner{max-width:1280px;margin:0 auto;padding:0 20px}
.kb-title{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.3rem;color:var(--white);margin-bottom:8px}
.kb-sub{color:rgba(255,255,255,.6);font-size:13.5px;margin-bottom:28px}
.kb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kb-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:20px;transition:background .2s,border-color .2s}
.kb-card:hover{background:rgba(255,255,255,.12);border-color:var(--gold)}
.kb-card h4{font-family:'Roboto',sans-serif;font-weight:700;font-size:.9rem;color:var(--white);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.kb-card h4 svg{width:16px;height:16px;fill:var(--gold)}
.kb-card ul li{margin-bottom:5px}
.kb-card ul li a{font-size:12px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:5px;transition:color .15s}
.kb-card ul li a::before{content:'›';color:var(--gold)}
.kb-card ul li a:hover{color:var(--gold2)}

/* ══ FOOTER ══ */
.site-footer{background:var(--navy2);color:rgba(255,255,255,.65);padding:44px 20px 0}
.footer-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-firm{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.15rem;color:var(--white)}
.footer-tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold2);margin:4px 0 12px}
.footer-brand p{font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.55);margin-bottom:12px}
.footer-cred{font-size:11px;color:rgba(255,255,255,.4)}
.footer-col h4{font-family:'Roboto',sans-serif;font-size:.85rem;color:var(--white);font-weight:700;margin-bottom:14px;letter-spacing:.03em}
.footer-col ul li{margin-bottom:9px}
.footer-col ul li a{font-size:12.5px;color:rgba(255,255,255,.6);transition:color .15s}
.footer-col ul li a:hover{color:var(--gold2)}
.footer-contact li{font-size:12.5px;color:rgba(255,255,255,.6);line-height:1.6}
.footer-bottom{max-width:1280px;margin:0 auto;text-align:center;padding:18px 0;font-size:11.5px;color:rgba(255,255,255,.4)}

/* ══ FLOATING WA ══ */
.wa-float{position:fixed;bottom:24px;right:24px;z-index:9999;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.45);transition:transform .2s,box-shadow .2s}
.wa-float:hover{transform:scale(1.1);box-shadow:0 8px 28px rgba(37,211,102,.6)}
.wa-float svg{width:26px;height:26px;fill:#fff}

/* ══════════ RESPONSIVE ══════════ */
@media(max-width:1024px){
  .main-wrap{grid-template-columns:1fr}
  .sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:static}
  .kb-grid{grid-template-columns:repeat(2,1fr)}
  .testi-grid{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr 1fr;row-gap:28px}
  /* show login in sidebar at tablet, hide in hero */
  .hero-panel .panel-login{display:none}
  .sb-login{display:block}
}

@media(max-width:768px){
  /* top bar hidden on mobile */
  .topbar{display:none}

  /* header */
  .header-inner{height:60px}
  .logo-text .firm{font-size:1.05rem}
  .logo-text .loc{display:none}
  .logo-mark{width:48px;height:36px}
  nav.main-nav{display:none}
  .hamburger{display:flex}
  .nav-contact-btn{display:none}

  /* hero — single column, fixed height for slides */
  .hero{min-height:auto}
  .hero-inner{grid-template-columns:1fr;gap:0;padding:30px 16px 48px}
  .hero-panel{display:none}
  #whatsNewFull{display:block}
  .hero-slides{height:340px}
  .slide h1,.slide h2{font-size:1.65rem;line-height:1.22}
  .slide p{font-size:13px}
  .slide-tag{font-size:10px;padding:3px 10px;margin-bottom:12px}
  .btn-hero-primary,.btn-hero-outline{padding:10px 18px;font-size:12.5px}

  /* main */
  .main-wrap{padding:14px;gap:14px}
  .about-strip{grid-template-columns:1fr;padding:16px}
  .about-stats{display:none}
  .svc-grid{grid-template-columns:1fr 1fr;gap:10px}
  .svc-card{padding:14px 12px}
  .team-grid{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
  .reviews-cta{flex-direction:column;align-items:flex-start;text-align:left}
  .nl-box form{flex-direction:column}
  .footer-inner{grid-template-columns:1fr;gap:26px;padding-bottom:24px}
  .site-footer{padding:32px 16px 0}

  /* sidebar stacks, login shown */
  .sidebar{grid-template-columns:1fr}
  .sb-login{display:block;order:-1} /* shows above services on mobile */

  .kb-grid{grid-template-columns:1fr 1fr}
  .kb-section{padding:24px 0}
}

@media(max-width:480px){
  .hero-slides{height:380px}
  .slide h1,.slide h2{font-size:1.45rem}
  .slide p{font-size:12.5px;margin-bottom:18px}
  .slide-btns{flex-direction:column;gap:8px}
  .btn-hero-primary,.btn-hero-outline{text-align:center;justify-content:center}
  .svc-grid{grid-template-columns:1fr}
  .kb-grid{grid-template-columns:1fr}
  .main-wrap{padding:10px}
}

/* ══ CALCULATOR MODAL ══ */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,29,68,.6);z-index:9500;padding:20px;overflow-y:auto}
.modal-overlay.open{display:flex;align-items:flex-start;justify-content:center}
.modal-box{background:var(--white);border-radius:6px;max-width:620px;width:100%;margin:30px 0;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.modal-head{background:var(--navy);color:var(--white);padding:16px 22px;display:flex;align-items:center;justify-content:space-between}
.modal-head h3{font-family:'Roboto',sans-serif;font-size:1.05rem;font-weight:700}
.modal-close{background:rgba(255,255,255,.12);border:none;color:var(--white);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.modal-close:hover{background:var(--gold)}
.calc-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border);background:var(--light)}
.calc-tab{flex:1;min-width:90px;padding:11px 8px;text-align:center;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;transition:all .15s;background:none}
.calc-tab:hover{color:var(--navy)}
.calc-tab.active{color:var(--navy);border-bottom-color:var(--gold);background:var(--white)}
.modal-body{padding:22px}
.calc-panel{display:none}
.calc-panel.active{display:block}
.calc-row{margin-bottom:14px}
.calc-row label{display:block;font-size:12px;font-weight:700;color:var(--navy);margin-bottom:5px}
.calc-row input,.calc-row select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:3px;font-size:13px;font-family:inherit;color:var(--text);background:var(--white)}
.calc-row input:focus,.calc-row select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(143,106,10,.25)}
.calc-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.calc-check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text);margin-bottom:14px}
.calc-check input{width:auto}
.calc-btn{background:var(--gold);color:var(--white);border:none;padding:11px 20px;border-radius:3px;font-weight:700;font-size:13px;cursor:pointer;width:100%;transition:background .2s}
.calc-btn:hover{background:var(--gold2)}
.calc-result{margin-top:16px;background:var(--light);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:4px;padding:14px 16px;display:none}
.calc-result.show{display:block}
.calc-result-row{display:flex;justify-content:space-between;padding:5px 0;font-size:12.5px;color:var(--text);border-bottom:1px dashed var(--border)}
.calc-result-row:last-child{border-bottom:none}
.calc-result-row.total{font-weight:700;color:var(--navy);font-size:14px;padding-top:8px}
.calc-note{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.5}

/* ══ UTILITY TABLES ══ */
.util-modal .modal-box{max-width:760px}
.util-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border);background:var(--light)}
.util-tab{flex:1;min-width:110px;padding:11px 8px;text-align:center;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;transition:all .15s;background:none}
.util-tab:hover{color:var(--navy)}
.util-tab.active{color:var(--navy);border-bottom-color:var(--gold);background:var(--white)}
.util-panel{display:none}
.util-panel.active{display:block}
.util-scroll{max-height:52vh;overflow-y:auto;border:1px solid var(--border);border-radius:4px}
.util-table{width:100%;border-collapse:collapse;font-size:12px}
.util-table th{position:sticky;top:0;background:var(--navy);color:var(--white);text-align:left;padding:9px 12px;font-weight:600;font-size:11.5px;letter-spacing:.02em}
.util-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text)}
.util-table tr:last-child td{border-bottom:none}
.util-table tr:nth-child(even){background:var(--light)}
.util-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.util-search{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:4px;font-size:12.5px;margin-bottom:10px;font-family:inherit}
.util-search:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(143,106,10,.25)}

/* ══ CONTACT FORM ══ */
.contact-form{padding:16px 18px}
.cf-row{margin-bottom:12px}
.cf-row label{display:block;font-size:11.5px;font-weight:700;color:var(--navy);margin-bottom:4px}
.cf-row input,.cf-row select,.cf-row textarea{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:3px;font-size:12.5px;font-family:inherit;color:var(--text);background:var(--light)}
.cf-row input:focus,.cf-row select:focus,.cf-row textarea:focus{outline:none;border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px rgba(143,106,10,.25)}
.cf-row textarea{resize:vertical;min-height:70px}
.cf-error{color:#c0392b;font-size:11px;margin-top:3px;display:none}
.cf-btns{display:flex;gap:8px;margin-top:4px}
.cf-btn-mail{flex:1;background:var(--navy);color:var(--white);border:none;padding:10px;border-radius:3px;font-weight:700;font-size:12.5px;cursor:pointer;transition:background .2s}
.cf-btn-mail:hover{background:var(--gold)}
.cf-btn-wa{flex:1;background:#25D366;color:var(--white);border:none;padding:10px;border-radius:3px;font-weight:700;font-size:12.5px;cursor:pointer;transition:background .2s}
.cf-btn-wa:hover{background:#1ebe5d}
.cf-success{display:none;background:#e8faf0;border:1px solid #a5d6b8;color:#2e7d52;font-size:12px;padding:10px 12px;border-radius:3px;margin-top:10px;text-align:center}
.cf-success.show{display:block}
@media(max-width:600px){
  .calc-row-2{grid-template-columns:1fr}
  .modal-box{margin:14px 0}
}

/* ══ STANDALONE CONTENT PAGE WRAPPER (multi-page site) ══ */
.page-wrap{max-width:900px;margin:0 auto;padding:40px 20px}
.page-hero{background:var(--navy);color:var(--white);padding:36px 20px;text-align:center}
.page-hero h1{font-family:'Roboto',sans-serif;font-weight:700;font-size:1.9rem;margin-bottom:8px}
.page-hero p{color:rgba(255,255,255,.75);font-size:14px;max-width:640px;margin:0 auto}
.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:18px}
.breadcrumb a{color:var(--gold);font-weight:600}
.service-detail-body ul{padding-left:20px;margin:10px 0 18px}
.service-detail-body li{margin-bottom:6px;font-size:14px;line-height:1.6}
.service-detail-body h3{font-family:'Roboto',sans-serif;font-weight:700;color:var(--navy);margin:20px 0 8px;font-size:1.05rem}
.service-detail-body p{font-size:14.5px;line-height:1.75;margin-bottom:12px}
.service-cta{background:var(--light);border:1px solid var(--border);border-radius:6px;padding:22px;margin-top:22px;text-align:center}
.service-cta a.btn{display:inline-block;margin-top:10px;background:var(--gold);color:var(--navy);font-weight:700;padding:11px 24px;border-radius:3px;text-decoration:none}
.services-index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
@media(max-width:768px){.services-index-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.services-index-grid{grid-template-columns:1fr}.page-hero h1{font-size:1.4rem}}


/* ══════════ NBC AI ASSISTANT ══════════ */
.nbc-ai-launcher{position:fixed;right:22px;bottom:20px;z-index:99998;border:0;border-radius:999px;background:linear-gradient(135deg,#071a36,#123c72);color:#fff;box-shadow:0 14px 36px rgba(3,20,45,.28);padding:13px 18px;display:flex;align-items:center;gap:10px;font:700 14px/1.2 inherit;cursor:pointer;transition:opacity .22s ease,transform .22s ease,box-shadow .22s ease}
.nbc-ai-launcher:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(3,20,45,.34)}
.nbc-ai-launcher:active{transform:translateY(0) scale(.96)}
.nbc-ai-launcher.nbc-hidden{opacity:0;transform:scale(.85);pointer-events:none}
.nbc-ai-launcher .nbc-ai-dot{width:10px;height:10px;border-radius:50%;background:#d4af37;box-shadow:0 0 0 4px rgba(212,175,55,.16);animation:nbcDotPulse 2.4s ease-in-out infinite}
@keyframes nbcDotPulse{0%,100%{box-shadow:0 0 0 4px rgba(212,175,55,.16)}50%{box-shadow:0 0 0 7px rgba(212,175,55,.05)}}
.nbc-ai-panel{position:fixed;right:22px;bottom:82px;width:min(390px,calc(100vw - 24px));height:min(620px,calc(100vh - 110px));z-index:99999;background:#fff;border:1px solid rgba(9,31,63,.12);border-radius:22px;box-shadow:0 24px 70px rgba(2,18,40,.28);overflow:hidden;display:flex;flex-direction:column;font-family:inherit;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px) scale(.96);transform-origin:bottom right;transition:opacity .26s ease,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear .26s}
.nbc-ai-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .26s ease,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear 0s}.nbc-ai-head{background:linear-gradient(135deg,#071a36,#123c72);color:#fff;padding:16px 17px;display:flex;align-items:center;gap:12px}
.nbc-ai-logo{width:40px;height:40px;border-radius:12px;object-fit:cover;background:#fff}.nbc-ai-headtext{min-width:0;flex:1}.nbc-ai-headtext strong{display:block;font-size:15px}.nbc-ai-headtext span{display:block;font-size:12px;opacity:.78;margin-top:3px}
.nbc-ai-close{border:0;background:transparent;color:#fff;font-size:25px;line-height:1;cursor:pointer;padding:4px;transition:transform .18s ease,opacity .18s ease}.nbc-ai-messages{flex:1;overflow:auto;padding:16px;background:#f6f8fb;scroll-behavior:smooth}
.nbc-ai-close:hover{transform:rotate(90deg) scale(1.1);opacity:.85}
.nbc-msg{max-width:86%;padding:11px 13px;border-radius:15px;margin:0 0 10px;font-size:13.5px;line-height:1.48;white-space:pre-wrap;animation:nbcMsgIn .22s ease both}.nbc-msg.bot{background:#fff;color:#172033;border:1px solid #e6eaf0;border-bottom-left-radius:5px}.nbc-msg.user{margin-left:auto;background:#0b2d59;color:#fff;border-bottom-right-radius:5px}
@keyframes nbcMsgIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.nbc-ai-suggestions{display:flex;gap:7px;overflow-x:auto;padding:0 14px 10px;background:#f6f8fb;scrollbar-width:none}.nbc-ai-suggestions button{white-space:nowrap;border:1px solid #d9e0ea;background:#fff;color:#0b2d59;border-radius:999px;padding:8px 11px;font:600 12px inherit;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.nbc-ai-suggestions button:hover{transform:translateY(-2px);border-color:#c8960c;background:#fffaf0}
.nbc-ai-suggestions button:active{transform:scale(.95)}
.nbc-ai-inputbar{border-top:1px solid #e8ebf0;background:#fff;padding:10px;display:flex;gap:8px;align-items:flex-end}.nbc-ai-input{flex:1;resize:none;max-height:110px;min-height:42px;border:1px solid #d9e0e8;border-radius:13px;padding:11px 12px;font:13.5px/1.4 inherit;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.nbc-ai-input:focus{border-color:#123c72;box-shadow:0 0 0 3px rgba(18,60,114,.12)}
.nbc-ai-send{width:42px;height:42px;border:0;border-radius:12px;background:#0b2d59;color:#fff;font-size:18px;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}.nbc-ai-footer{padding:7px 12px 9px;text-align:center;background:#fff;color:#6d7480;font-size:10.5px}.nbc-ai-human{color:#0b2d59;font-weight:700;cursor:pointer;text-decoration:underline}
.nbc-ai-send:hover:not(:disabled){transform:scale(1.06);background:#123c72}
.nbc-ai-send:active:not(:disabled){transform:scale(.92)}
.nbc-ai-send:disabled{opacity:.55;cursor:default;animation:nbcAiPulse 1.1s ease-in-out infinite}
.nbc-typing{display:inline-flex;gap:4px;align-items:center}.nbc-typing i{width:6px;height:6px;background:#8791a0;border-radius:50%;animation:nbcBlink 1.2s infinite}.nbc-typing i:nth-child(2){animation-delay:.15s}.nbc-typing i:nth-child(3){animation-delay:.3s}@keyframes nbcBlink{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media(max-width:600px){.nbc-ai-launcher{right:14px;bottom:14px}.nbc-ai-panel{right:12px;bottom:72px;height:calc(100dvh - 90px);border-radius:18px}}


/* ══════════ MOBILE FLOATING BUTTON OVERLAP FIX ══════════ */
@media (max-width: 600px) {
  .nbc-ai-launcher {
    left: 14px !important;
    right: auto !important;
    bottom: 18px !important;
  }

  .nbc-ai-panel {
    left: 12px !important;
    right: 12px !important;
    bottom: 72px !important;
    width: auto !important;
    height: calc(100dvh - 90px) !important;
    border-radius: 18px !important;
  }
}


/* NBC AI Assistant polish */
@keyframes nbcAiPulse { 0%,100% { opacity:.45 } 50% { opacity:1 } }
.nbc-ai-typing, .ai-typing, .typing-indicator { animation: nbcAiPulse 1.1s ease-in-out infinite; }
@media (max-width: 600px) {
  .chat-messages, .ai-chat-messages, #chatMessages { overscroll-behavior: contain; scroll-behavior: smooth; }
}

/* ══════════ FINAL AI + DESKTOP POLISH ══════════ */
.nbc-ai-input{white-space:nowrap;overflow-x:auto;overflow-y:hidden}
.nbc-ai-hub{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px 12px;background:#f6f8fb;border-bottom:1px solid #e8ebf0}
.nbc-ai-hub button{border:1px solid #dce3ec;background:#fff;color:#0b2d59;border-radius:12px;padding:9px 10px;text-align:left;cursor:pointer;font:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.nbc-ai-hub button:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(11,45,89,.12);border-color:#c8960c}
.nbc-ai-hub button:active{transform:translateY(0) scale(.97)}
.nbc-ai-hub b{font-size:11.5px}.nbc-ai-hub small{display:block;color:#6d7480;font-size:9.5px;line-height:1.25;margin-top:3px}
@media(min-width:601px){
  .nbc-ai-panel{right:24px!important;width:420px!important;max-width:calc(100vw - 48px)!important}
  .nbc-ai-inputbar{align-items:center!important}
  .nbc-ai-input{height:44px!important;min-height:44px!important;max-height:44px!important;line-height:20px!important;padding:11px 12px!important}
  /* Move common WhatsApp floating buttons to the left on desktop */
  .whatsapp-float,.whatsapp-btn,.wa-float,.floating-whatsapp,a[href*="wa.me"].floating,a[href*="api.whatsapp.com"].floating{left:22px!important;right:auto!important}
}
@media(max-width:600px){
  .nbc-ai-hub{grid-template-columns:1fr 1fr}
  .nbc-ai-hub small{display:none}
}

/* Homepage declutter: preserve content/pages, add breathing room and reduce visual density */
.home-clean .main-content{gap:24px}
.home-clean .section-title{margin-bottom:18px}
.home-clean .content-card,.home-clean .service-card{box-shadow:0 4px 16px rgba(10,30,60,.06)}
.home-clean .sidebar-card{margin-bottom:18px}
@media(min-width:901px){
  .home-clean .sidebar .quick-links-card,.home-clean .sidebar [class*="quick-link"]{display:none!important}
}

/* Subscribe + PDF report */
.nbc-subscribe-status{margin-top:8px;color:#e8b820;font-size:12px;line-height:1.4}
.nbc-download-report{margin-top:10px;width:100%;background:#1a2a5e!important;color:#fff!important}
.nbc-download-report:hover{background:#c8960c!important;color:#1a2a5e!important}

/* AI Markdown display fix */
.nbc-msg.bot strong{font-weight:700}.nbc-msg.bot em{font-style:italic}
.nbc-msg.bot ul,.nbc-msg.bot ol{margin:7px 0 7px 20px;padding:0}
.nbc-msg.bot li{margin:4px 0;line-height:1.45}
.nbc-msg.bot .nbc-md-heading{display:block;margin:7px 0 4px;font-size:1.02em}
.nbc-msg.bot .nbc-md-gap{height:7px}.nbc-ai-messages{overflow-y:auto!important}

/* Richer AI message formatting: code, links, quotes, rules */
.nbc-msg.bot code{background:#eef1f7;border-radius:4px;padding:1px 5px;font:12.5px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#0b2d59}
.nbc-msg.bot pre{background:#0f1d2e;color:#e8ecf3;border-radius:10px;padding:10px 12px;margin:7px 0;overflow-x:auto}
.nbc-msg.bot pre code{background:none;padding:0;color:inherit;font-size:12px}
.nbc-msg.bot a{color:#0b2d59;text-decoration:underline;text-underline-offset:2px}
.nbc-msg.bot blockquote{margin:6px 0;padding:4px 10px;border-left:3px solid #c8960c;color:#4a5266;background:#f8f6ef;border-radius:0 6px 6px 0}
.nbc-msg.bot hr{border:0;border-top:1px solid #e3e7ee;margin:9px 0}

/* Streaming reveal: blinking caret at the end of a still-typing bubble;
   tap the bubble to skip straight to the full text. */
.nbc-msg.bot.nbc-streaming{cursor:pointer}
.nbc-cursor{display:inline-block;width:2px;height:1em;vertical-align:-.15em;background:#0b2d59;margin-left:2px;animation:nbcCursorBlink .9s steps(1) infinite}
@keyframes nbcCursorBlink{50%{opacity:0}}

/* Follow-up suggestion chips fade in once a reply finishes streaming */
.nbc-ai-suggestions{transition:opacity .35s ease}

/* ══════════ MICRO-INTERACTIONS ══════════ */

/* tactile press-down feedback on primary buttons */
.calc-btn,.cf-btn-mail,.cf-btn-wa,.btn-hero-primary,.btn-hero-outline{transition:background .2s,transform .15s,box-shadow .2s}
.calc-btn:active,.cf-btn-mail:active,.cf-btn-wa:active,.btn-hero-primary:active,.btn-hero-outline:active{transform:scale(.96)}
.svc-read{display:inline-block;transition:transform .15s ease,color .2s}
.svc-read:hover{transform:translateX(3px)}

/* scroll-reveal: fade + rise as sections enter view. JS toggles .revealed;
   CSS-only fallback (no-js, or IntersectionObserver unsupported) keeps
   everything visible via the .reveal-ready guard set right before use. */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}
.reveal.revealed{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* back-to-top */
.back-to-top{position:fixed;right:22px;bottom:84px;width:42px;height:42px;border-radius:50%;background:var(--navy);color:var(--white);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(15,29,68,.25);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s;z-index:900;cursor:pointer;border:none}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--gold)}
.back-to-top svg{width:18px;height:18px;fill:currentColor}
@media(max-width:600px){.back-to-top{right:14px;bottom:76px;width:38px;height:38px}}
@media(min-width:601px) and (max-width:768px){.back-to-top{bottom:84px}}

/* click-to-copy (phone/email in Contact Us box) */
.copyable{cursor:pointer;position:relative;border-bottom:1px dashed transparent;transition:border-color .15s}
.copyable:hover{border-bottom-color:var(--gold)}
.copy-toast{position:absolute;top:-26px;left:0;background:var(--navy);color:#fff;font-size:10.5px;font-weight:600;padding:4px 8px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease;z-index:5}
.copy-toast.show{opacity:1;transform:translateY(0)}

/* stat numbers get a small pop once their count-up finishes */
.stat-num.counted{animation:statPop .3s ease}
@keyframes statPop{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}
