/* The shell retains the expanded header's space while its contents compact. */
.sis-header-shell { position: sticky; top: 0; z-index: 1030; pointer-events: none; }
.sis-header-shell #pageheader { pointer-events: auto; transition: padding 180ms ease, box-shadow 180ms ease; }
.sis-header-shell #pageheader .logo img { transition: max-width 180ms ease; }
.sis-header-shell #pageheader .header_top, .sis-header-shell #pageheader .desktop_nav { transition: padding 180ms ease, box-shadow 180ms ease; }
.sis-header-shell #pageheader .navbar-brand img { transition: width 180ms ease; }
.sis-header-shell #pageheader.is-compact { padding-top: 5px; padding-bottom: 5px; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); }
.sis-header-shell #pageheader.is-compact .logo img { max-width: 96px; }
.sis-header-shell #pageheader.is-compact .header_top, .sis-header-shell #pageheader.is-compact .desktop_nav { padding-top: 10px; padding-bottom: 10px; }
html { scroll-padding-top: var(--sis-header-offset, 125px); }
.sis-back-to-top { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 1020; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid #b0003a; border-radius: 50%; background: #fff; color: #b0003a; box-shadow: 0 2px 8px #0003; font-size: 24px; line-height: 1; cursor: pointer; transition: background-color 180ms ease, color 180ms ease; }
.sis-back-to-top svg { display: block; flex: none; width: 20px; height: 20px; }
.sis-back-to-top[hidden], body.modal-open .sis-back-to-top { display: none; }
.sis-back-to-top:hover { background: #b0003a; color: #fff; }
.sis-back-to-top:focus-visible { outline: 3px solid #35489a; outline-offset: 3px; }
@media (min-width: 601px) { body.admin-bar .sis-header-shell { top: 46px; } }
@media (min-width: 783px) { body.admin-bar .sis-header-shell { top: 32px; } }
@media (min-width: 992px) and (max-width: 1023px) {
    #pageheader .header_top a { font-size: 13px; padding-left: 3px; padding-right: 3px; }
}
@media (max-width: 767px) {
    .sis-header-shell #pageheader.is-compact { padding: 6px 0 0; }
    .sis-header-shell #pageheader.is-compact .navbar-header { padding-bottom: 4px; }
    .sis-header-shell #pageheader.is-compact .navbar-brand img { width: 64px; }
    .sis-header-shell #pageheader.is-compact .navbar-toggle { margin-top: 2px; margin-bottom: 4px; }
    #pageheader .navbar-default .navbar-collapse {
        position: fixed; top: var(--sis-mobile-menu-top, 80px); left: 0; right: 0;
        width: 100%; margin: 0; padding: 0 18px;
        max-height: calc(100dvh - var(--sis-mobile-menu-top, 80px));
        overflow-y: auto; overscroll-behavior: contain;
    }
    #pageheader .navbar-default .navbar-collapse.collapse.in,
    #pageheader .navbar-default .navbar-collapse.collapsing {
        display: flex; flex-direction: column; align-items: center; justify-content: space-evenly;
        height: calc(100dvh - var(--sis-mobile-menu-top, 80px)) !important; padding: 12px 18px;
    }
    #pageheader .navbar-default .navbar-collapse .nav { flex: none; width: 100%; margin: 0; padding: 0; text-align: center; }
    #pageheader .navbar-default .navbar-collapse li a {
        display: flex; align-items: center; justify-content: center; min-height: 48px;
        padding: 10px 14px; text-align: center;
    }
    #pageheader .navbar-default .navbar-collapse .sis-mobile-links a { font-size: 21px; }
    #pageheader .navbar-default .navbar-collapse .sis-mobile-actions li a,
    #pageheader .navbar-default .navbar-collapse .sis-mobile-actions li a.apply_btn {
        display: flex; width: min(250px, 100%); margin: 4px auto; border: 1px solid #fff; border-radius: 3px;
        background: #b20838; color: #fff; font-size: 21px;
    }
    #pageheader .navbar-default .navbar-collapse .sis-mobile-phone li a.tollfree {
        flex-direction: column; gap: 3px; font-size: 21px; line-height: 1.2;
    }
    #pageheader .navbar-default .navbar-collapse .sis-mobile-phone li a.tollfree span { font-size: 20px; }
    /* Bootstrap swaps collapse classes during its height transition. Keep the
       final layout in both states and animate only its visibility. */
    #pageheader .navbar-default .navbar-collapse.collapsing { transition: none; }
    #pageheader .navbar-default .navbar-collapse.collapsing.sis-menu-opening { animation: sis-menu-reveal 180ms ease both; }
    #pageheader .navbar-default .navbar-collapse.collapsing.sis-menu-closing { animation: sis-menu-hide 180ms ease both; }
    .sis-menu-transition-lock #pageheader, .sis-menu-transition-lock #pageheader .navbar-brand img { transition: none; }
    #pageheader .navbar-default .navbar-collapse a:focus-visible, #pageheader .navbar-toggle:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }
    #pageheader .navbar-toggle:focus-visible { outline-color: #b20838; }

}
@keyframes sis-menu-reveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes sis-menu-hide { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    #pageheader .navbar-default .navbar-collapse.collapsing { animation-duration: 1ms; }
    .sis-back-to-top { transition: none; }
    .sis-header-shell #pageheader, .sis-header-shell #pageheader .logo img, .sis-header-shell #pageheader .navbar-brand img, .sis-header-shell #pageheader .header_top, .sis-header-shell #pageheader .desktop_nav { transition: none; }
}

/* Application form program choices retain the native radio state. */
#gform_fields_3 #input_3_17 li {
    position: relative; padding: 0; border: 1px solid #ccc; background: #fff;
}
#gform_fields_3 #input_3_17 li input[type="radio"] {
    display: block; position: absolute; inset: 0; z-index: 1;
    width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer;
}
#gform_fields_3 #input_3_17 li label {
    margin-top: 13px; background-position: right center !important;
}
#gform_fields_3 #input_3_17 li label span { color: #444 !important; bottom: 14px; }
#gform_fields_3 #input_3_17 li:has(input:checked) {
    border-color: #b0003a; box-shadow: inset 0 0 0 2px #b0003a;
}
#gform_fields_3 #input_3_17 li input:checked + label { background-position: left center !important; }
#gform_fields_3 #input_3_17 li input:checked + label span { color: #b0003a !important; }
#gform_fields_3 #input_3_17 li:has(input:focus-visible) { outline: 3px solid #35489a; outline-offset: 3px; }
@media (max-width: 767px) {
    #myModal #input_3_17 { gap: 6px; margin: 8px auto 0; padding: 0; }
    #gform_fields_3 #input_3_17 li {
        width: min(88px, calc((100% - 12px) / 3)) !important;
        height: auto; aspect-ratio: 1; margin: 0 !important;
    }
    #gform_fields_3 #input_3_17 li label { margin-top: 7px; }
    #gform_fields_3 #input_3_17 li label span { bottom: 8px; }
    #myModal #field_3_17 .ginput_container_radio { margin-bottom: 6px; }
}

/* Logo posts and their ACF links remain in their existing order. */
#pagecontent .partners_logo ul {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px 24px; margin: 20px auto 0; padding: 0; max-width: 1000px;
}
#pagecontent .partners_logo li { display: block; width: auto; min-width: 0; }
#pagecontent .partners_logo li a {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 130px; padding: 8px;
}
#pagecontent .partners_logo li img {
    display: block; width: 100%; height: 100%; max-width: 200px;
    object-fit: contain; transition: opacity 180ms ease;
}
#pagecontent .partners_logo li a:hover img { opacity: .8; }
#pagecontent .partners_logo li a:focus-visible { outline: 3px solid #35489a; outline-offset: -3px; }
@media (max-width: 767px) {
    #pagecontent .partners_logo ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
    #pagecontent .partners_logo li a { height: 110px; }
    #pagecontent .partners_logo li img { max-width: 170px; }
}
@media (prefers-reduced-motion: reduce) {
    #pagecontent .partners_logo li img { transition: none; }
}

/* Use a positioned underline so active and hover states never shift the menu. */
#pageheader .desktop_nav a:hover::before, #pageheader .desktop_nav a:focus::before { content: none; }
#pageheader .desktop_nav li > a::after {
    content: ""; position: absolute; left: 15px; right: 15px; bottom: 2px;
    height: 2px; background: #b0003a; opacity: 0; transform: scaleX(.6);
    transition: transform 180ms ease, opacity 180ms ease;
}
#pageheader .desktop_nav li > a:hover::after { opacity: .6; transform: scaleX(.8); }
#pageheader .desktop_nav li:is(.current-menu-item, .current-menu-parent, .current-menu-ancestor, .sis-section-current) > a::after {
    opacity: 1; transform: scaleX(1);
}
#pageheader .desktop_nav a:focus-visible { outline: 2px solid #35489a; outline-offset: 2px; }
@media (max-width: 767px) {
    #pageheader .navbar-default .sis-mobile-links > li > a { position: relative; }
    #pageheader .navbar-default .sis-mobile-links > li > a::after {
        content: ""; position: absolute; left: 50%; bottom: 3px; width: 38px;
        height: 2px; background: #fff; opacity: 0; transform: translateX(-50%);
    }
    #pageheader .navbar-default .sis-mobile-links > li:is(.current-menu-item, .current-menu-parent, .current-menu-ancestor, .sis-section-current) > a::after { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { #pageheader .desktop_nav li > a::after { transition: none; } }

/* Keep the Gravity Forms calendar usable in short mobile viewports. */
:is(#myModal, #myClaim) .gform-datepicker-calendar {
    box-sizing: border-box; width: min(300px, calc(100vw - 32px)); max-width: none;
    max-height: calc(100dvh - 96px); overflow-y: auto; overscroll-behavior: contain;
    padding: 14px; background: #fff; color: #333; font-size: 14px;
    border: 1px solid #d5d5d5; border-radius: 3px; box-shadow: 0 4px 16px #0002;
}
:is(#myModal, #myClaim) .gform-datepicker-calendar table.calendar { width: 100%; table-layout: fixed; border-collapse: collapse; }
:is(#myModal, #myClaim) .gform-datepicker-calendar table.calendar td,
:is(#myModal, #myClaim) .gform-datepicker-calendar table.calendar th { height: 36px; padding: 1px; font-size: 14px; text-align: center; }
:is(#myModal, #myClaim) .gform-datepicker-calendar table.calendar .day span,
:is(#myModal, #myClaim) .gform-datepicker-calendar table.calendar th span {
    display: flex; align-items: center; justify-content: center; width: 34px; height: 34px;
    margin: auto; border-radius: 50%; font-size: 14px;
}
:is(#myModal, #myClaim) .gform-datepicker-calendar select { height: 32px; font-size: 14px; color: #333; }
:is(#myModal, #myClaim) .gform-datepicker-calendar .nav.prev,
:is(#myModal, #myClaim) .gform-datepicker-calendar .nav.next { color: #b0003a; }
:is(#myModal, #myClaim) .gform-datepicker-calendar .day:not(.selected):not(.disabled):hover span { background: #f8e8ed; color: #82002b; }
:is(#myModal, #myClaim) .gform-datepicker-calendar .day.selected span { background-color: #b0003a; border-color: #b0003a; color: #fff; }
:is(#myModal, #myClaim) .gform-datepicker-calendar .monthMessage p { margin: 6px 0 0; color: #666; font-size: 12px; line-height: 1.3; }
:is(#myModal, #myClaim) .gform-datepicker-calendar [role="button"]:focus-visible,
:is(#myModal, #myClaim) .gform-datepicker-calendar select:focus-visible { outline: 2px solid #35489a; outline-offset: 1px; }

/* The native calendar icon has a full-size, high-contrast touch target. */
:is(#myModal, #myClaim) .ginput_container_date .gform-datepicker-toggle {
    display: inline-block; width: 44px; height: 44px; padding: 0; margin: 0;
    vertical-align: middle; background-size: 22px 22px; background-position: center;
    background-repeat: no-repeat; border: 0; cursor: pointer;
}
:is(#myModal, #myClaim) .ginput_container_date .gform-datepicker-toggle:focus-visible {
    outline: 2px solid #35489a; outline-offset: 1px;
}
/* Leave room for the calendar button beside the Claim date input. */
:is(#myModal, #myClaim) .ginput_container_date { display: flex; align-items: center; gap: 4px; }
:is(#myModal, #myClaim) .ginput_container_date .gform-datepicker { flex: 0 1 173px; min-width: 0; width: 173px !important; margin-right: 0 !important; }
:is(#myModal, #myClaim) .ginput_container_date .gform-datepicker-toggle { flex: 0 0 44px; }
#myClaim .ginput_container_date #input_5_10 { flex: 1 1 auto; width: auto !important; }

/* Frontend form text, scoped to Contact, Application and Claim. */
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .gfield_label,
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .gfield:not(#field_3_17) .ginput_container label,
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .gfield_description:not(.validation_message) { color: #555 !important; }
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) input:not([type="submit"]):not([type="button"]),
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) textarea,
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) select { color: #333; }
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) input::placeholder,
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) textarea::placeholder { color: #707070; opacity: 1; }
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .gfield_html p { color: #555; opacity: 1; }
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .gfield_required,
:is(#gform_wrapper_2, #gform_wrapper_3, #gform_wrapper_5) .validation_message { color: #a00030 !important; }
@media (max-width: 359px) {
    #gform_wrapper_2 .gfield--type-turnstile { width: calc(100% + 40px); max-width: none; margin-left: -20px !important; }
}

/* Application-only insured section and responsive radio choices. */
#gform_wrapper_3 #field_3_15 { clear: both; padding-top: 20px !important; margin-top: 0 !important; }
#gform_wrapper_3 #field_3_15 p { margin: 0 0 8px !important; }
#gform_wrapper_3 #field_3_27, #gform_wrapper_3 #field_3_27 .ginput_container_radio { margin-top: 0 !important; }
#gform_wrapper_3 #input_3_27 { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; width: 100%; max-width: none; margin: 0; padding: 0; }
#gform_wrapper_3 #input_3_27 li { float: none; flex: 0 0 auto; width: auto !important; height: auto; margin: 0 !important; }
#gform_wrapper_3 #input_3_27 li input { position: absolute; left: 2px; top: 50%; transform: translateY(-50%); margin: 0; }
#gform_wrapper_3 #input_3_27 li label { position: static; display: block; width: auto; max-width: none !important; margin: 0 !important; white-space: nowrap; }
#gform_wrapper_3 #input_3_27 input:focus-visible + label { outline: 2px solid #35489a; outline-offset: 3px; }
#pagecontent .partners_logo .sis-partners-heading { margin: 24px 0 0; color: #555; text-align: center; font-size: 22px; font-weight: 600; letter-spacing: .04em; }

/* News archive and article styles. */
#pagecontent .sis-news-hero { display: flex; align-items: center; min-height: 220px; padding: 30px 0; }
#pagecontent .sis-news-hero h1 { margin: 0 0 12px; font-family: 'HelveticaNeueCyr-Medium'; font-size: 38px; line-height: 1.15; font-weight: normal; color: #fff; }
#pagecontent .sis-news-hero p { margin: 0; color: #fff; font-size: 19px; line-height: 1.4; }
#pagecontent .blogList > .theme-container { max-width: 880px; }
#pagecontent .sis-news-article { max-width: 850px; margin: 0 0 24px; padding: 24px 28px; background: #fff; border: 1px solid #ddd; border-radius: 4px; }
#pagecontent .blogList .sis-news-title { margin: 0 0 6px; font-size: 25px; line-height: 1.25; }
#pagecontent .sis-news-title a { color: #333; }
#pagecontent .sis-news-title a:hover, #pagecontent .sis-news-title a:focus-visible { color: #ac0034; text-decoration: underline; }
#pagecontent .sis-news-date { display: block; color: #666; font-size: 15px; margin-bottom: 14px; }
#pagecontent .sis-news-excerpt { color: #444; font-size: 17px; line-height: 1.6; margin: 0 0 8px; }
#pagecontent .sis-news-more { color: #ac0034; font-size: 16px; font-weight: 600; }
#pagecontent .sis-news-more:hover { text-decoration: underline; }
#pagecontent .sis-news-more:focus-visible, #pagecontent .sis-news-pagination a:focus-visible { outline: 2px solid #ac0034; outline-offset: 3px; }
#pagecontent .sis-news-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin: 4px 0 36px; }
#pagecontent .sis-news-pagination .page-numbers { display: inline-block; padding: 8px 10px; color: #444; text-decoration: none; }
#pagecontent .sis-news-pagination a:hover { color: #ac0034; text-decoration: underline; }
#pagecontent .sis-news-pagination .current { color: #ac0034; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
#pagecontent .sis-news-title, #pagecontent .sis-single-title { font-family: inherit; font-weight: 500; color: #333; }
#pagecontent .articles .theme-container { max-width: 790px; }
#pagecontent .articles .artilceTitle { border: 0; background: transparent; box-shadow: none; padding: 0; margin: 24px 0 20px; }
#pagecontent .articles .sis-single-title { margin: 0 0 6px; font-size: 30px; line-height: 1.25; }
#pagecontent .articles .sis-news-date { margin: 0; }
#pagecontent .articles .articleContent { max-width: none; margin: 0; }
#pagecontent .articles .articleContent .wp-block-embed.is-type-video iframe,
#pagecontent .articles .articleContent iframe.ifame-video,
#pagecontent .articles .articleContent iframe[src*="youtube.com/embed/"],
#pagecontent .articles .articleContent iframe[src*="youtube-nocookie.com/embed/"],
#pagecontent .articles .articleContent iframe[src*="player.vimeo.com/video/"] {
    display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9;
}
#pagecontent .articles .backToArticle:focus-visible { outline: 2px solid #ac0034; outline-offset: 3px; }
@media (max-width: 600px) {
    #pagecontent .sis-news-hero { min-height: 175px; padding: 24px 0; }
    #pagecontent .sis-news-hero h1 { font-size: 30px; }
    #pagecontent .sis-news-hero p { font-size: 17px; }
    #pagecontent .blogList .sis-news-title { font-size: 22px; }
    #pagecontent .sis-news-article { margin-bottom: 18px; padding: 20px; }
    #pagecontent .articles .sis-single-title { font-size: 25px; }
}
