/* =============================================================================
   PTS Header — 2026 redesign
   Sits on top of Bootstrap 5. Only styles things Bootstrap doesn't cover.
   ============================================================================= */

:root {
    --pts-navy:        #0d1f3c;
    --pts-red:         #e8291c;
    --pts-offwhite:    #f5f4f2;
    --pts-text:        #1a1a2e;
    --pts-muted:       #6b7280;
    --pts-white:       #ffffff;
    --pts-border:      #e2e4e9;
    --pts-font-head:   'Bricolage Grotesque', sans-serif;
    --pts-font-body:   'Source Sans 3', sans-serif;
    --pts-topbar-h:    44px;
    --pts-navbar-h:    68px;
    --pts-header-h:    calc(var(--pts-topbar-h) + var(--pts-navbar-h));
    --pts-radius:      50px;
    --pts-transition:  0.2s ease;
}

/* ── Offset page content below fixed header ────────────────────────────────── */
.content {
    padding-top: var(--pts-header-h) !important;
}

/* ── Header shell ──────────────────────────────────────────────────────────── */
.pts-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1030; /* same tier as Bootstrap fixed-top */
    font-family: var(--pts-font-body);
}

.pts-header.is-scrolled {
    box-shadow: 0 2px 16px rgba(0,0,0,.08);
}

/* ── Top bar ───────────────────────────────────────────────────────────────── */
.pts-topbar {
    background: var(--pts-navy);
    height: var(--pts-topbar-h);
    display: flex;
    align-items: center;
}

/* Social icons widget */
.pts-topbar__social ul.social {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    align-items: center;
    gap: 14px;
}
.pts-topbar__social ul.social li { margin: 0; padding: 0; }
.pts-topbar__social ul.social a,
.pts-topbar__social a {
    color: rgba(255,255,255,.8) !important;
    font-size: 14px;
    text-decoration: none;
    transition: color var(--pts-transition);
}
.pts-topbar__social a:hover { color: #fff !important; }

/* Phone */
.pts-topbar__phone {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.pts-topbar__phone i { font-size: 11px; opacity: .7; }
.pts-topbar__phone a { color: #fff !important; text-decoration: none; }
.pts-topbar__phone a:hover { opacity: .8; }

/* ── Main navbar ───────────────────────────────────────────────────────────── */
.pts-navbar {
    background: #fff;
    border-bottom: 1px solid var(--pts-border);
    min-height: var(--pts-navbar-h);
    padding-top: 0;
    padding-bottom: 0;
}

/* Logo */
.pts-navbar__brand img {
    height: 34px;
    width: auto;
}

/* ── Desktop nav items ─────────────────────────────────────────────────────── */
.pts-nav__list {
    gap: 2px;
}

/* Override Bootstrap's .nav-link defaults */
.pts-nav__list .pts-nav__item .pts-nav__link {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 0.9em;
    font-weight: 600;
    color: var(--pts-text) !important;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1;
    transition: background var(--pts-transition), color var(--pts-transition);
}

.pts-nav__list .pts-nav__item .pts-nav__link:hover,
.pts-nav__list .pts-nav__item.is-open .pts-nav__link {
    background: var(--pts-offwhite);
    color: var(--pts-red) !important;
}

.pts-nav__list .pts-nav__item.is-current .pts-nav__link {
    color: var(--pts-red) !important;
}

.pts-nav__chevron {
    color: var(--pts-muted);
    flex-shrink: 0;
    transition: transform var(--pts-transition);
}
.pts-nav__item.is-open .pts-nav__chevron {
    transform: rotate(180deg);
}

/* ── CTA pill button ───────────────────────────────────────────────────────── */
.pts-navbar__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    background: var(--pts-red);
    color: #fff !important;
    font-family: var(--pts-font-body);
    font-size: 14px;
    font-weight: 700;
    border-radius: var(--pts-radius);
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1;
    transition: background var(--pts-transition), transform var(--pts-transition);
}
.pts-navbar__cta:hover {
    background: #c42316;
    color: #fff !important;
    transform: translateY(-1px);
}

/* ── Custom hamburger (replaces Bootstrap's default toggler) ───────────────── */
.pts-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 0;
    background: transparent;
    border: 1.5px solid var(--pts-border);
    border-radius: 8px;
    cursor: pointer;
    flex-shrink: 0;
}
.pts-hamburger span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--pts-text);
    border-radius: 2px;
}

/* ── Mega menu panel ───────────────────────────────────────────────────────── */
/* Panels live outside the navbar as siblings, positioned via fixed */
.pts-mega {
    display: none;
    position: fixed;
    top: var(--pts-header-h);
    left: 0; right: 0;
    z-index: 1029;
    background: var(--pts-offwhite);
    border-top: 1px solid var(--pts-border);
    box-shadow: 0 16px 48px rgba(0,0,0,.10);
}
.pts-mega.is-open {
    display: block;
}
.pts-mega__inner {
    max-width: 1320px; /* matches Bootstrap's xxl container */
    margin: 0 auto;
    padding: 36px 24px 40px;
}
.pts-mega__list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 40px;
    align-items: flex-start;
}
.pts-mega__item { margin: 0; padding: 0; }

.pts-mega__link {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--pts-navy) !important;
    text-decoration: none !important;
    padding: 5px 0;
    white-space: nowrap;
    transition: color var(--pts-transition);
}
.pts-mega__link:hover { color: var(--pts-red) !important; }

/* Column-head item */
.pts-mega__item--col {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 160px;
}
.pts-mega__col-head {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--pts-muted);
    padding-bottom: 8px;
    border-bottom: 1px solid var(--pts-border);
    white-space: nowrap;
}
.pts-mega__sub {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pts-mega__sub-item { margin: 0; padding: 0; }
.pts-mega__sub-link {
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: var(--pts-text) !important;
    text-decoration: none !important;
    padding: 3px 0;
    transition: color var(--pts-transition);
}
.pts-mega__sub-link:hover { color: var(--pts-red) !important; }

/* Featured dark card */
.pts-mega__item--featured { margin-left: auto; }
.pts-mega__featured {
    background: var(--pts-navy);
    border-radius: 12px;
    padding: 28px 28px 24px;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 220px;
    max-width: 280px;
}
.pts-mega__featured-title {
    font-family: var(--pts-font-head);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: #fff;
}
.pts-mega__featured-desc {
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255,255,255,.7);
    margin: 0;
    flex: 1;
}
.pts-mega__featured-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 9px 18px;
    background: var(--pts-red);
    color: #fff !important;
    font-size: 13px;
    font-weight: 700;
    border-radius: var(--pts-radius);
    text-decoration: none !important;
    align-self: flex-start;
    transition: background var(--pts-transition);
}
.pts-mega__featured-cta:hover { background: #c42316; }

/* ── Breadcrumb strip ──────────────────────────────────────────────────────── */
.pts-breadcrumb {
    background: #fff;
    border-top: 1px solid var(--pts-border);
    padding: 8px 0;
    font-size: 13px;
    color: var(--pts-muted);
}
.pts-breadcrumb a { color: var(--pts-muted) !important; text-decoration: none; }
.pts-breadcrumb a:hover { color: var(--pts-red) !important; }

/* ── Bootstrap offcanvas overrides ────────────────────────────────────────── */
#pts-offcanvas {
    width: min(340px, 90vw);
}
#pts-offcanvas .offcanvas-header {
    padding: 16px 20px;
}
#pts-offcanvas .offcanvas-body {
    padding: 16px 20px 32px;
}

/* ── Mobile nav list ───────────────────────────────────────────────────────── */
.pts-mobile-nav { margin: 0; padding: 0; }
.pts-mobile-item {
    border-bottom: 1px solid var(--pts-border);
    margin: 0;
}
.pts-mobile-item__wrap {
    display: flex;
    align-items: center;
}
.pts-mobile-link {
    flex: 1;
    display: block;
    padding: 13px 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--pts-navy) !important;
    text-decoration: none !important;
    transition: color var(--pts-transition);
}
.pts-mobile-link:hover { color: var(--pts-red) !important; }
.pts-mobile-item.is-current .pts-mobile-link { color: var(--pts-red) !important; }

.pts-mobile-toggle {
    width: 36px; height: 36px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--pts-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform var(--pts-transition), color var(--pts-transition);
}
.pts-mobile-item.is-open .pts-mobile-toggle {
    transform: rotate(180deg);
    color: var(--pts-red);
}

.pts-mobile-sub {
    list-style: none;
    margin: 0;
    padding: 0 0 0 12px;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
}
.pts-mobile-item.is-open > .pts-mobile-sub { max-height: 800px; }
.pts-mobile-sub .pts-mobile-link {
    font-size: 14px;
    font-weight: 400;
    color: var(--pts-text) !important;
    padding: 9px 0;
}

/* ── Responsive tweaks ─────────────────────────────────────────────────────── */
@media (max-width: 575px) {
    .pts-topbar__social { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .pts-mobile-sub,
    .pts-nav__chevron,
    .pts-mobile-toggle { transition: none; }
}