/* ==========================================================
   F.I.T. PLANNING — brand layer over the Crafto "Business" demo
   Swaps the demo's purple for FIT navy + gold. Loaded last.
   ========================================================== */
:root {
    --base-color: #c9a34a;          /* FIT gold (backgrounds, accents) */
    --gold-text: #8a6a1f;           /* darker gold for small text on light bg */
    --gold-light: #ead08f;          /* gold on dark bg */
    --dark-gray: #0a1d33;           /* FIT navy (replaces demo charcoal) */
    --navy-950: #061322;
    --navy-800: #103253;
    --medium-gray: #5d6876;         /* body text, darker than demo for contrast */
    --cream: #f7f3e9;
    --solitude-blue: #f7f3e9;
}
body { color: var(--medium-gray); }

/* ---------- colour utilities remapped ---------- */
.text-base-color { color: var(--gold-text) !important; }
.section-dark .text-base-color, .bg-dark-gray .text-base-color,
footer .text-base-color, .text-white .text-base-color { color: var(--gold-light) !important; }
.bg-solitude-blue { background-color: var(--cream) !important; }
.bg-dark-gray { background-color: var(--dark-gray) !important; }
.bg-dark-slate-blue { background-color: var(--navy-950) !important; }
.bg-extra-medium-slate-blue { background-color: var(--navy-950) !important; }
.bg-base-color-transparent { background-color: rgba(10, 29, 51, .85) !important; }
.bg-gradient-sherpa-blue-black {
    background-image: linear-gradient(90deg, rgba(6,19,34,.94) 0%, rgba(10,29,51,.82) 45%, rgba(10,29,51,.25) 100%);
}
.bg-gradient-solitude-blue-transparent { background-image: linear-gradient(to bottom, var(--cream), #fff); }
.border-color-base-color { border-color: var(--base-color) !important; }

/* ---------- buttons ---------- */
.btn.btn-base-color { background-color: var(--base-color); border-color: var(--base-color); color: var(--dark-gray); }
.btn.btn-base-color:hover, .btn.btn-base-color:focus { background-color: var(--dark-gray); border-color: var(--dark-gray); color: #fff; }
.section-dark .btn.btn-base-color:hover, .bg-dark-gray .btn.btn-base-color:hover { background-color: #fff; border-color: #fff; color: var(--dark-gray); }
.btn.btn-base-color.with-rounded > span { background-color: var(--dark-gray) !important; color: var(--base-color) !important; }
.btn.btn-dark-gray { background-color: var(--dark-gray); border-color: var(--dark-gray); }
.btn.btn-dark-gray:hover { background-color: var(--base-color); border-color: var(--base-color); color: var(--dark-gray); }
.btn.btn-transparent-white-light:hover { color: var(--dark-gray); }

/* ---------- header / brand ---------- */
.fit-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.fit-brand img { width: 46px; height: 46px; max-height: none !important; }
header .navbar-brand.fit-brand img { max-height: 46px; }
.fit-brand-text { display: flex; flex-direction: column; line-height: 1.1; font-family: var(--alt-font); }
.fit-brand-text strong { font-size: 19px; font-weight: 700; letter-spacing: .5px; color: #fff; white-space: nowrap; }
.fit-brand-text small { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gold-light); margin-top: 4px; white-space: nowrap; }
header.sticky .fit-brand-text strong { color: var(--dark-gray); }
header.sticky .fit-brand-text small { color: var(--gold-text); }
.navbar .navbar-nav .nav-link { font-size: 15px; }
.navbar .navbar-nav .nav-item.active > .nav-link { color: var(--gold-light) !important; opacity: 1; }
header.sticky .navbar .navbar-nav .nav-item.active > .nav-link { color: var(--gold-text) !important; }
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu { background-color: var(--dark-gray); min-width: 270px; }
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu li a i { color: var(--base-color); }
.navbar .navbar-nav .dropdown .dropdown-menu.fit-calc-menu { min-width: 330px; }
.navbar .navbar-nav .dropdown .dropdown-menu .dropdown-label { display: block; padding: 14px 30px 4px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold-light); font-weight: 600; }
.navbar .navbar-nav .dropdown .dropdown-menu.fit-calc-menu li a { padding-top: 7px; padding-bottom: 7px; font-size: 14px; }
.header-icon .bg-base-color i { color: var(--dark-gray); }
@media (min-width: 992px) and (max-width: 1399px) {
    .navbar .navbar-nav .nav-link { padding-left: 11px; padding-right: 11px; font-size: 14px; }
}
@media (max-width: 991px) {
    .fit-brand-text strong { color: var(--dark-gray); font-size: 17px; }
    .fit-brand-text small { color: var(--gold-text); font-size: 10px; }
    .fit-brand img { width: 40px; height: 40px; }
    .navbar .navbar-nav .nav-item.active > .nav-link { color: var(--gold-text) !important; }
}

/* ---------- hero ---------- */
.fit-hero-mark { width: min(380px, 80%); filter: drop-shadow(0 30px 60px rgba(0,0,0,.45)); }
.fit-hero-sub { color: var(--gold-light); }
.fit-hero h1 .fw-600 { color: var(--gold-light); }
.page-title-big-typography .fit-eyebrow-dark { color: var(--gold-light); letter-spacing: 3px; }

/* ---------- pills / eyebrows ---------- */
.fit-pill { background: var(--cream); color: var(--gold-text); }
.bg-solitude-blue .fit-pill, .fit-pill.on-cream { background: #fff; }

/* ---------- cards ---------- */
.fancy-text-box-style-02 .feature-box-overlay.bg-base-color { background-color: var(--dark-gray) !important; }
.fit-num { color: var(--base-color) !important; }
.hover-box:hover .fit-num { color: var(--gold-light) !important; }
.fit-card { background: #fff; border-radius: 8px; padding: 40px 35px; height: 100%; box-shadow: 0 20px 50px rgba(10,29,51,.08); border-top: 3px solid var(--base-color); transition: transform .3s ease, box-shadow .3s ease; display: flex; flex-direction: column; }
.fit-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(10,29,51,.14); }
.fit-card p { flex-grow: 1; }
.fit-card .fit-card-icon { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--cream); color: var(--gold-text); font-size: 24px; margin-bottom: 22px; }
.fit-card .fit-card-link { font-weight: 600; color: var(--dark-gray); font-family: var(--alt-font); font-size: 15px; }
.fit-card .fit-card-link:hover { color: var(--gold-text); }
.fit-letter { font-family: var(--alt-font); font-weight: 700; font-size: 64px; line-height: 1; color: var(--base-color); margin-bottom: 18px; display: block; }

/* calculator groups */
.fit-calc-group + .fit-calc-group { margin-top: 70px; }
.fit-calc-group-head { display: flex; align-items: baseline; gap: 16px; border-bottom: 1px solid #e4e0d4; padding-bottom: 14px; margin-bottom: 30px; }
.fit-calc-group-head .num { font-family: var(--alt-font); color: var(--gold-text); font-weight: 600; }

/* pricing-style accordion → navy active panel */
.pricing-table-style-04 .accordion-item.active-accordion { background-color: var(--dark-gray) !important; }
.pricing-table-style-04 .accordion-item.active-accordion .icon-round { background-color: var(--base-color); color: var(--dark-gray) !important; }
.pricing-table-style-04 .fit-duration { color: var(--gold-light); }

/* quote band */
.fit-quote { font-family: var(--alt-font); font-size: 30px; line-height: 1.35; color: var(--dark-gray); font-weight: 500; letter-spacing: -.5px; }
.fit-quote .gold { color: var(--gold-text); }
.section-dark .fit-quote, .bg-dark-gray .fit-quote { color: #fff; }
.bg-dark-gray .fit-quote .gold { color: var(--gold-light); }
@media (max-width: 767px) { .fit-quote { font-size: 23px; } }

/* contact */
.fit-contact-panel { background: var(--dark-gray); color: rgba(255,255,255,.75); }
.fit-contact-panel .label { color: var(--gold-light); font-family: var(--alt-font); font-weight: 600; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; display: block; margin-bottom: 6px; }
.fit-contact-panel a { color: #fff; }
.fit-contact-panel a:hover { color: var(--gold-light); }
.fit-contact-panel .row-hours span { display: inline-block; min-width: 135px; }
.contact-form-style-01 select.form-control { padding-left: 50px; appearance: auto; }
.fit-form-status { font-size: 14px; line-height: 1.6; }
.fit-map { width: 100%; height: 420px; border: 0; display: block; filter: grayscale(.4); }

/* footer */
footer.footer-dark .fit-brand-text strong { color: #fff; }
footer.footer-dark .fit-brand-text small { color: var(--gold-light); }
footer .fit-motto { color: var(--gold-light); font-style: italic; }
footer .fit-disclaimer { border-top: 1px solid rgba(255,255,255,.1); margin-top: 45px; padding-top: 25px; font-size: 14px; line-height: 1.7; }

/* misc */
.fit-img-frame { border-radius: 8px; box-shadow: 0 30px 70px rgba(10,29,51,.18); }
.fit-dark-figure { background: #000; border-radius: 8px; padding: 20px; }
.scroll-progress .scroll-point { background-color: var(--base-color); }
.icon-with-text-style-08 .feature-box-icon i.text-base-color { color: var(--gold-text) !important; }
header .navbar-brand.fit-brand, footer .fit-brand { display: inline-flex !important; flex-direction: row; align-items: center; }
.header-icon .widget-text, .header-icon .widget-text a, .header-button .btn { white-space: nowrap; }
.fit-phone { display: none; }
@media (min-width: 1600px) { .fit-phone { display: inline-block; } }
.fit-card .fs-19 { font-size: 18px; }
@media (max-width: 575px) {
    .fit-hero h1 { font-size: 2.35rem; line-height: 2.6rem; }
    .page-title-extra-large h1 { font-size: 2.6rem; line-height: 2.9rem; }
}
/* photo banners: stronger navy wash so white titles stay readable on bright photos */
.page-title-big-typography .opacity-extra-medium.bg-dark-slate-blue { opacity: .72; }
.page-title-big-typography { background-position: center; }
/* 992–1299px: menu already has Contact & Booking, so drop the header button to keep the bar on one line */
@media (min-width: 992px) and (max-width: 1299px) { header .header-button { display: none; } }
/* embedded calculator frame */
.fit-calc-frame { width: 100%; height: 1500px; border: 0; display: block; overflow: hidden; background: transparent; }
.fit-calc-bar { gap: 10px; border-bottom: 1px solid #e6e1d4; padding-bottom: 18px; }

/* Dynamic Financial Pathway infographic (Protect / Grow / Legacy pages) */
.fit-flow-band { padding-top: 70px; padding-bottom: 60px; background: radial-gradient(ellipse at 50% 0%, #103253 0%, #0a1d33 55%, #061322 100%) !important; }
.fit-flow-figure { position: relative; max-width: 1180px; margin: 0 auto; border-radius: 10px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.fit-flow-figure img { display: block; transition: transform .6s ease; }
.fit-flow-figure:hover img { transform: scale(1.01); }
.fit-flow-zoom { position: absolute; right: 16px; bottom: 16px; background: rgba(6,19,34,.85); color: #fff; font-size: 13px; font-weight: 600; padding: 0 15px; line-height: 34px; border-radius: 100px; }
.fit-flow-steps { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.fit-flow-step { display: inline-flex; align-items: center; gap: 10px; padding: 9px 20px 9px 9px; border-radius: 100px; border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.75) !important; font-family: var(--alt-font); font-size: 15px; font-weight: 500; transition: all .2s; }
.fit-flow-step span { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.1); font-size: 12px; font-weight: 600; }
.fit-flow-step:hover { border-color: var(--base-color); color: #fff !important; }
.fit-flow-step.is-current { background: var(--base-color); border-color: var(--base-color); color: var(--dark-gray) !important; }
.fit-flow-step.is-current span { background: var(--dark-gray); color: var(--gold-light); }
@media (max-width: 767px) { .fit-flow-band { padding-top: 40px; padding-bottom: 40px; } .fit-flow-zoom { display: none; } }

/* dropdowns: open just below the menu text instead of at the bottom edge of the tall header */
@media (min-width: 992px) {
    .navbar .navbar-nav > .nav-item.dropdown > .dropdown-menu { top: calc(50% + 20px) !important; }
}
/* homepage "Protect Today" tab: wide pathway image */
.fit-tab-flow { max-width: none; box-shadow: 0 25px 60px rgba(10,29,51,.22); }
.fit-tab-flow .fit-flow-zoom { top: 12px; bottom: auto; right: 12px; font-size: 12px; line-height: 30px; }
.fit-tab-flow .fit-flow-zoom { opacity: 0; transition: opacity .2s; } .fit-tab-flow:hover .fit-flow-zoom, .fit-tab-flow:focus .fit-flow-zoom { opacity: 1; }
/* homepage maze band: "See the Full Cycle" button near the top of the image */
.skrollr-zoom { position: relative; }
.fit-band-top-btn { position: absolute !important; top: 45px; right: 50px; z-index: 2; }
@media (max-width: 991px) { .fit-band-top-btn { right: 50%; transform: translateX(50%); top: 30px; } }
@media (max-width: 575px) { .fit-band-top-btn { top: 24px; white-space: nowrap; } }
/* hero slide 3 (typewriter): stronger wash so the typed words don't compete with the headline */
.fit-hero-dim .bg-gradient-sherpa-blue-black { opacity: 1 !important; background-image: linear-gradient(90deg, rgba(6,19,34,.93) 0%, rgba(6,19,34,.86) 45%, rgba(10,29,51,.55) 100%) !important; }
@media (max-width: 767px) { .fit-hero-dim .bg-gradient-sherpa-blue-black { background-image: linear-gradient(rgba(6,19,34,.88), rgba(6,19,34,.88)) !important; } }
/* phones: tighter slogan so the menu button stays on the same line as the logo */
@media (max-width: 575px) {
    .fit-brand-text small { font-size: 9.5px; letter-spacing: .5px; }
    .fit-brand-text strong { font-size: 16px; }
    header .navbar > .container-fluid { flex-wrap: nowrap; }
}
