:root {
    --tig-deep-royal-blue: #03338B;
    --tig-secondary-orange: #E17A2C;
    --tig-cta-red: #EE0907;
    --tig-light-background: #F4F5F6;
    --tig-light-sky-blue: #B0D8E6;
    --tig-primary-text: #030303;
    --tig-muted-text: #3f4b57;
    --public-navy: var(--tig-deep-royal-blue);
    --public-blue: var(--tig-deep-royal-blue);
    --public-cyan: var(--tig-light-sky-blue);
    --public-orange: var(--tig-secondary-orange);
    --public-red: var(--tig-cta-red);
    --public-surface: #ffffff;
    --public-light: var(--tig-light-background);
    --public-muted: var(--tig-muted-text);
}

.public-site {
    color: var(--tig-primary-text);
    background: var(--tig-light-background);
    overflow-x: hidden;
}
.public-site .text-secondary { color: var(--tig-muted-text) !important; }
.public-site .text-primary, .public-site .text-info, .public-site .text-success { color: var(--tig-deep-royal-blue) !important; }
.public-site .text-warning { color: var(--tig-secondary-orange) !important; }
.public-site .text-danger { color: var(--tig-cta-red) !important; }
.public-site .bg-light { background-color: var(--tig-light-background) !important; }
.public-site .public-navbar {
    background: rgba(255,255,255,.97);
    border-bottom: 1px solid rgba(3,51,139,.14);
    box-shadow: 0 8px 24px rgba(3,51,139,.08);
}
.public-navbar .nav-link { color: var(--tig-deep-royal-blue); font-weight: 600; }
.public-navbar .nav-link:hover, .public-navbar .nav-link:focus { color: var(--tig-cta-red); }
.public-navbar .navbar-toggler { border-color: rgba(3,51,139,.35); }
.public-navbar .navbar-toggler-icon { filter: hue-rotate(170deg) saturate(2); }
.public-brand-mark {
    display:inline-grid;
    place-items:center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius:.75rem;
    color:#fff;
    background: linear-gradient(135deg,var(--tig-deep-royal-blue),rgba(176,216,230,.95));
    box-shadow:0 7px 15px rgba(3,51,139,.25);
}
.public-brand-mark-dark {
    background: linear-gradient(135deg,var(--tig-secondary-orange),var(--tig-cta-red));
    box-shadow:none;
}
.skip-link { z-index: 2000; }
.public-hero {
    position:relative;
    overflow:hidden;
    background: radial-gradient(circle at 88% 12%, rgba(176,216,230,.75), transparent 32%), linear-gradient(135deg,rgba(176,216,230,.55) 0%,#ffffff 54%,rgba(225,122,44,.10) 100%);
    padding: 5rem 0 4.5rem;
}
.public-hero::after { content:""; position:absolute; inset:auto -10% -60% 35%; height:28rem; border-radius:50%; background:rgba(225,122,44,.14); transform:rotate(-8deg); }
.public-hero > .container { position:relative; z-index:1; }
.eyebrow-public { letter-spacing:.16em; text-transform:uppercase; color:var(--tig-deep-royal-blue); font-size:.74rem; font-weight:800; }
.public-hero h1 { color:var(--tig-deep-royal-blue); font-size:clamp(2.5rem,6vw,5.2rem); line-height:1.02; letter-spacing:-.055em; }
.public-hero-card { background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.9); border-radius:1.5rem; box-shadow:0 24px 60px rgba(3,51,139,.15); backdrop-filter: blur(12px); }
.public-stat { border-left:3px solid var(--tig-secondary-orange); padding-left:1rem; }
.public-section { padding: 4.5rem 0; }
.public-section-soft { background:rgba(176,216,230,.24); }
.public-site .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--tig-deep-royal-blue);
    --bs-btn-border-color: var(--tig-deep-royal-blue);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--tig-cta-red);
    --bs-btn-hover-border-color: var(--tig-cta-red);
    --bs-btn-active-bg: var(--tig-cta-red);
    --bs-btn-active-border-color: var(--tig-cta-red);
}
.public-site .public-navbar .btn-primary,
.public-site .public-hero .btn-primary,
.public-site a[href*="quote/index.php"].btn-warning,
.public-site .public-cta .btn-warning,
.public-site .tracking-panel a.btn-warning,
.public-site form[action*="quote/index.php"] .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--tig-cta-red);
    --bs-btn-border-color: var(--tig-cta-red);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--tig-deep-royal-blue);
    --bs-btn-hover-border-color: var(--tig-deep-royal-blue);
    --bs-btn-active-bg: var(--tig-deep-royal-blue);
    --bs-btn-active-border-color: var(--tig-deep-royal-blue);
}
.public-site .btn-warning {
    --bs-btn-color: #030303;
    --bs-btn-bg: var(--tig-secondary-orange);
    --bs-btn-border-color: var(--tig-secondary-orange);
    --bs-btn-hover-color: #030303;
    --bs-btn-hover-bg: var(--tig-light-sky-blue);
    --bs-btn-hover-border-color: var(--tig-light-sky-blue);
}
.public-site .tracking-panel button.btn-warning { --bs-btn-color: #030303; --bs-btn-bg: var(--tig-secondary-orange); --bs-btn-border-color: var(--tig-secondary-orange); }
.public-site .btn-outline-primary { --bs-btn-color: var(--tig-deep-royal-blue); --bs-btn-border-color: var(--tig-deep-royal-blue); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--tig-deep-royal-blue); --bs-btn-hover-border-color: var(--tig-deep-royal-blue); }
.public-site .btn-outline-dark { --bs-btn-color: var(--tig-primary-text); --bs-btn-border-color: var(--tig-primary-text); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--tig-deep-royal-blue); --bs-btn-hover-border-color: var(--tig-deep-royal-blue); }
.service-card { position:relative; border:1px solid rgba(3,51,139,.12); border-radius:1.1rem; background:#fff; box-shadow:0 12px 32px rgba(3,51,139,.07); transition:transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform:translateY(-5px); box-shadow:0 20px 42px rgba(3,51,139,.16); }
.service-icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:1rem; color:var(--tig-deep-royal-blue); background:rgba(176,216,230,.55); font-size:1.4rem; }
.public-image-placeholder { min-height:14rem; display:grid; place-items:center; color:var(--tig-deep-royal-blue); background:linear-gradient(135deg,rgba(176,216,230,.72),rgba(225,122,44,.12)); }
.public-image { width:100%; height:100%; object-fit:cover; }
.tracking-panel { background:var(--tig-deep-royal-blue); color:#fff; border-radius:1.25rem; box-shadow:0 20px 48px rgba(3,51,139,.24); }
.tracking-panel .form-control { min-height:3.25rem; }
.tracking-panel .form-control:focus { border-color:var(--tig-light-sky-blue); box-shadow:0 0 0 .25rem rgba(176,216,230,.32); }
.process-step { position:relative; padding-left:3.4rem; }
.process-step .step-number { position:absolute; left:0; top:0; display:grid; place-items:center; width:2.45rem; height:2.45rem; border-radius:50%; background:var(--tig-secondary-orange); color:var(--tig-primary-text); font-weight:800; }
.public-cta { background:linear-gradient(135deg,var(--tig-deep-royal-blue),rgba(3,51,139,.92)); color:#fff; border-radius:1.4rem; box-shadow:0 22px 50px rgba(3,51,139,.25); }
.public-footer { background:var(--tig-deep-royal-blue); color:#fff; }
.public-footer a { color:rgba(255,255,255,.84); text-decoration:none; }
.public-footer a:hover, .public-footer a:focus { color:var(--tig-secondary-orange); }
.footer-links li { margin-bottom:.6rem; }
.public-form-card { border:0; border-radius:1.25rem; box-shadow:0 16px 40px rgba(3,51,139,.10); }
.public-site .form-control:focus, .public-site .form-select:focus { border-color:var(--tig-deep-royal-blue); box-shadow:0 0 0 .25rem rgba(3,51,139,.18); }
.public-breadcrumb { background:rgba(176,216,230,.35); }
.public-site .badge.text-bg-warning { color:var(--tig-primary-text) !important; background-color:var(--tig-secondary-orange) !important; }
.public-site .badge.text-bg-info { color:var(--tig-primary-text) !important; background-color:var(--tig-light-sky-blue) !important; }
.public-site .alert-danger { color:#7d0705; background-color:rgba(238,9,7,.10); border-color:rgba(238,9,7,.30); }
.public-site .alert-warning { color:#5d3213; background-color:rgba(225,122,44,.16); border-color:rgba(225,122,44,.34); }
.public-site .alert-success { color:var(--tig-deep-royal-blue); background-color:rgba(176,216,230,.35); border-color:rgba(3,51,139,.24); }
.public-site .alert-info { color:var(--tig-deep-royal-blue); background-color:rgba(176,216,230,.35); border-color:rgba(3,51,139,.20); }
.service-card-image { display:block; width:100%; height:10rem; object-fit:cover; border-radius:.85rem; background:rgba(176,216,230,.45); }
.service-detail-image { width:4.5rem; height:4.5rem; object-fit:cover; border-radius:1rem; box-shadow:0 10px 24px rgba(3,51,139,.16); }
.service-description p { margin-bottom:1.25rem; }
.service-description ul, .service-description ol { padding-left:1.35rem; }
@media (max-width: 767.98px) {
    .public-hero { padding: 3.6rem 0 3.2rem; }
    .public-section { padding: 3.2rem 0; }
    .public-hero h1 { font-size:clamp(2.55rem,13vw,4.4rem); }
    .public-navbar .btn { margin-top:.55rem; }
}
@media (max-width: 575.98px) {
    .public-site .container { --bs-gutter-x: 1.35rem; }
    .public-hero-card, .public-form-card, .tracking-panel { border-radius:1rem; }
    .service-card-image { height:8.5rem; }
    .service-detail-image { width:3.75rem; height:3.75rem; }
}

/* Milestone 16.2.2 footer redesign */
.public-footer {
    background: linear-gradient(135deg, var(--tig-deep-royal-blue) 0%, #022665 100%);
    color: #fff;
    border-top: 4px solid var(--tig-secondary-orange);
}
.public-footer .container { position: relative; }
.public-footer .footer-brand { letter-spacing: -.02em; }
.public-footer .site-logo--footer { max-height: 3.2rem; width: auto; }
.public-footer .footer-description { max-width: 20rem; line-height: 1.7; }
.public-footer .footer-heading {
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: 1.15rem;
    text-transform: uppercase;
}
.public-footer .footer-links li { margin-bottom: .7rem; }
.public-footer .footer-links a,
.public-footer .footer-contact a,
.public-footer .footer-legal a { color: rgba(255,255,255,.78); }
.public-footer .footer-links a:hover,
.public-footer .footer-links a:focus,
.public-footer .footer-contact a:hover,
.public-footer .footer-contact a:focus,
.public-footer .footer-legal a:hover,
.public-footer .footer-legal a:focus { color: #fff; text-decoration: underline; text-decoration-color: var(--tig-secondary-orange); text-underline-offset: .2em; }
.public-footer .footer-social-link {
    display: inline-grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.08);
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.public-footer .footer-social-link:hover,
.public-footer .footer-social-link:focus { background: var(--tig-secondary-orange); border-color: var(--tig-secondary-orange); color: var(--tig-primary-text); transform: translateY(-2px); text-decoration: none; }
.public-footer .footer-contact p { display: flex; align-items: flex-start; gap: .15rem; margin-bottom: .75rem; line-height: 1.55; }
.public-footer .footer-contact p > i { flex: 0 0 auto; margin-top: .2rem; }
.public-footer .footer-newsletter { border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.1rem; }
.public-footer .footer-newsletter .form-control { min-height: 2.8rem; border: 0; }
.public-footer .footer-newsletter .form-control:focus { border-color: var(--tig-light-sky-blue); box-shadow: 0 0 0 .2rem rgba(176,216,230,.28); }
.public-footer .footer-newsletter .btn-warning { color: var(--tig-primary-text); font-weight: 700; }
.public-footer .footer-divider { border-color: rgba(255,255,255,.2); margin: 2.5rem 0 1.25rem; opacity: 1; }
.public-footer .footer-bottom { line-height: 1.5; }
.public-footer .footer-legal { justify-content: flex-end; }
@media (max-width: 767.98px) {
    .public-footer .footer-heading { margin-top: .4rem; }
    .public-footer .footer-legal { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
    .public-footer .footer-newsletter .input-group { display: flex; flex-wrap: wrap; gap: .5rem; }
    .public-footer .footer-newsletter .form-control,
    .public-footer .footer-newsletter .btn-warning { flex: 1 1 100%; width: 100%; border-radius: .375rem !important; }
}

/* End Milestone 16.2.2 footer redesign */

/* Milestone Blog Article & Featured Image Styling */
.blog-article {
    max-width: 800px;
    margin: 0 auto;
}
.blog-content p {
    margin-bottom: 1.25rem;
    line-height: 1.8;
    color: var(--tig-primary-text);
    font-size: 1.05rem;
}
.blog-content h2 {
    font-size: 1.75rem;
    font-weight: 700;
    margin-top: 2.25rem;
    margin-bottom: 1rem;
    color: var(--tig-deep-royal-blue);
    letter-spacing: -.01em;
}
.blog-content h3 {
    font-size: 1.35rem;
    font-weight: 700;
    margin-top: 1.75rem;
    margin-bottom: 0.75rem;
    color: var(--tig-deep-royal-blue);
}
.blog-content h4 {
    font-size: 1.15rem;
    font-weight: 700;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--tig-primary-text);
}
.blog-content ul,
.blog-content ol {
    margin-bottom: 1.25rem;
    padding-left: 1.5rem;
    line-height: 1.7;
}
.blog-content li {
    margin-bottom: 0.5rem;
    color: var(--tig-primary-text);
}
.blog-content img {
    max-width: 100%;
    height: auto;
    border-radius: 0.85rem;
    margin: 1.5rem 0;
    box-shadow: 0 0.5rem 1.5rem rgba(3, 51, 139, 0.10);
}
.blog-content blockquote {
    padding: 1.15rem 1.35rem;
    margin: 1.5rem 0;
    border-left: 4px solid var(--tig-secondary-orange);
    background: rgba(176, 216, 230, 0.22);
    border-radius: 0 0.75rem 0.75rem 0;
    font-style: italic;
    color: var(--tig-primary-text);
}
.blog-content table {
    width: 100%;
    margin-bottom: 1.5rem;
    border-collapse: collapse;
}
.blog-content th,
.blog-content td {
    padding: 0.75rem;
    border: 1px solid #dbe5ef;
}
.blog-content th {
    background: var(--tig-light-background);
    font-weight: 700;
    color: var(--tig-deep-royal-blue);
}
.blog-card-img {
    width: 100%;
    height: 12rem;
    object-fit: cover;
    object-position: center;
    background: #f4f5f6;
}
