/* Extend the original Freedom Insurance design without replacing its identity. */
body { color: #50565c; margin-top: 0; }
:focus-visible { outline: 3px solid #e5a92e !important; outline-offset: 4px; }
.skip-link { position: fixed; top: -80px; left: 12px; z-index: 11000; background: white; color: #05558b; padding: 12px 18px; }
.skip-link:focus { top: 10px; }
.current-page { text-decoration: underline !important; text-underline-offset: 6px; font-weight: 600; }
.drp-arrow, .scroll-to-top { border: 0; cursor: pointer; }
[hidden] { display: none !important; }
.scroll-to-top { padding: 0; }
form label { display: block; font-size: 14px; font-weight: 600; margin: 0 0 5px; padding: 0; border-radius: 0; background: transparent; color: #343a40; }
form label::after { content: none; }
form .form-control { min-height: 44px; font-size: 16px; }
form textarea.form-control { min-height: 94px; }
form .form-intro, .form-intro { font-size: 15px; line-height: 1.6; }
form .form-status { padding: 12px 14px; border-left: 3px solid #05558b; background: #f0f6fa; color: #293d4c; }
.quote-pop .modal-body { padding: 30px; }
.quote-pop .quote-form { padding-top: 20px; }
.quote-pop .sub-head { padding-right: 24px; }
.quote-pop .form-group { margin-bottom: 12px; }
.quote-pop .submission-note { margin-bottom: 0; }
.content-section { padding: 64px 0; }
.content-intro { max-width: 760px; margin: 0 auto 36px; text-align: center; }
.content-intro p { font-size: 18px; line-height: 1.75; }
.content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.content-card { border-bottom: 3px solid #bd373b; background: #fff; box-shadow: 0 6px 24px #0b325012; display: flex; flex-direction: column; }
.content-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.content-card-body { padding: 24px; flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
.content-card h2, .content-card h3 { color: #05558b; font-size: 25px; margin: 0 0 12px; line-height: 1.35; }
.content-card p { flex: 1; }
.content-card a { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.content-detail { max-width: 860px; margin: auto; }
.content-detail h2 { color: #05558b; font-size: 28px; margin: 32px 0 16px; }
.content-detail h3 { font-size: 23px; color: #05558b; }
.content-detail p, .content-detail li { line-height: 1.8; }
.content-detail ul, .content-detail ol { padding-left: 24px; margin: 16px 0 24px; }
.content-detail li { margin-bottom: 9px; }
.content-detail a:not(.btn-main), .resource-links a { color: #05558b; text-decoration: underline; text-underline-offset: 3px; }
.detail-image { width: 100%; height: 280px; object-fit: cover; margin-bottom: 10px; }
.service-next { padding: 28px 32px; background: #f0f5f8; border-left: 4px solid #bd373b; margin-top: 32px; }
.service-next h2 { margin-top: 0; }
.service-next .btn-main { margin-right: 10px; margin-bottom: 8px; }
.coverage-note { font-size: 14px; color: #5c6369; margin-top: 24px; }
.article-nav { display: flex; gap: 14px 24px; flex-wrap: wrap; margin-bottom: 36px; border-bottom: 1px solid #dce4e9; padding-bottom: 24px; }
.guide-article { padding-bottom: 30px; border-bottom: 1px solid #dce4e9; margin-bottom: 36px; scroll-margin-top: 160px; }
.guide-number { color: #bd373b; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
main [id] { scroll-margin-top: 145px; }
@media(min-width:1200px) {
 .dropdown:focus-within > .dropdown-menu { right: 0; opacity: 1; transform: translateY(0); visibility: visible; }
 .navbar-nav .dropdown-menu { min-width: 265px; }
 .nav-item { margin-left: 28px; }
}
@media(max-width:1199px) {
 .navigation-area, .navigation-area.menu-fix { position: relative; top: auto; background: #05558b; }
 .navigation-area.menu-fix { padding: 0; }
 .navigation-area.menu-fix .tp-area { display: block; }
 .navigation-area.menu-fix .logo-area img { width: 110px; }
 .navbar-collapse { padding: 20px 10px; width: min(320px, 82vw); }
 .dropdown-item, .nav-link { font-size: 16px; }
 .nav-item .current-page { color: #fff; }
 .drp-arrow { min-height: 44px; }
 .navbar-toggler { min-height: 44px; min-width: 44px; padding: 8px 6px; }
 .custom-nav-icon { position: relative; display: block; width: 32px; height: 24px; }
 .inner-banner-caption { margin-top: 0; }
 .content-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:991px) {
 .quote-illustration { display: none; }
 .quote-pop .modal-dialog { max-width: 600px; margin: 20px auto; }
}
@media(max-width:767px) {
 .content-section { padding: 40px 0; }
 .content-grid { grid-template-columns: 1fr; gap: 24px; }
 .inner-banner-caption h1 { font-size: 28px; line-height: 1.3; overflow-wrap: break-word; }
 .inner-banner-caption h3 { font-size: 18px; line-height: 1.5; }
 .inner-banner-bg { min-height: 230px; }
 .contact-sidebar { padding: 32px 20px; }
 .quote-pop .modal-dialog { margin: 12px; }
 .quote-pop .modal-body { padding: 24px 18px; }
 .quote-pop .quote-form { padding-top: 28px; }
 .service-next { padding: 24px; }
 .detail-image { height: 220px; }
 .content-intro p { font-size: 16px; }
 .tp-call-panel { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 14px; }
 .tp-call-panel .top-call-btns { margin: 0; font-size: 14px; }
}
@media(prefers-reduced-motion:reduce) {
 *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
