/* CIRMI shell styles: shared footer, tooltip and content components. */

/* Общие интерактивные элементы шапки и подвала. */
.cirmi-social-icon-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Футер использует те же полноцветные SVG, что и новая шапка. */
.bottom-footer .social.cirmi-footer-messengers,
.footer .social.cirmi-footer-messengers {
    gap: 16px !important;
}

.bottom-footer .social li a.cirmi-footer-messenger,
.footer .social li a.cirmi-footer-messenger {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 2px solid transparent !important;
    border-radius: 50% !important;
    background-color: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    transition: border-color .18s ease, background-color .18s ease,
                box-shadow .18s ease, transform .18s ease !important;
}

.bottom-footer .social li a.cirmi-footer-messenger .cirmi-social-icon-img,
.footer .social li a.cirmi-footer-messenger .cirmi-social-icon-img {
    display: block !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    max-width: 38px !important;
    max-height: 38px !important;
    object-fit: contain !important;
    filter: none !important;
    -webkit-filter: none !important;
    transform: none !important;
    transition: transform .18s ease !important;
}

.bottom-footer .social li a.cirmi-footer-messenger:hover,
.bottom-footer .social li a.cirmi-footer-messenger:focus-visible,
.footer .social li a.cirmi-footer-messenger:hover,
.footer .social li a.cirmi-footer-messenger:focus-visible {
    border-color: #ffcc00 !important;
    background-color: rgba(255, 204, 0, .08) !important;
    box-shadow: 0 0 0 1px rgba(255, 204, 0, .16), 0 0 18px rgba(255, 204, 0, .34) !important;
    transform: translateY(-2px) scale(1.06) !important;
    outline: none !important;
}

.bottom-footer .social li a.cirmi-footer-messenger:hover .cirmi-social-icon-img,
.bottom-footer .social li a.cirmi-footer-messenger:focus-visible .cirmi-social-icon-img,
.footer .social li a.cirmi-footer-messenger:hover .cirmi-social-icon-img,
.footer .social li a.cirmi-footer-messenger:focus-visible .cirmi-social-icon-img {
    filter: none !important;
    -webkit-filter: none !important;
    transform: scale(1.04) !important;
}

/* ============================================================
   CIRMI 7.1.1: единая система подсказок без двойного вывода
   ============================================================ */

/*
 * В старых версиях темы подсказки одновременно создавались CSS-псевдоэлементами
 * и JavaScript. Полностью отключаем все псевдо-подсказки для атрибута
 * data-cirmi-tooltip. Видимой остаётся только одна подсказка .cirmi-ui-tooltip.
 */
[data-cirmi-tooltip]::before,
[data-cirmi-tooltip]::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.cirmi-ui-tooltip {
    --cirmi-tooltip-arrow-left: 50%;
    position: fixed !important;
    z-index: 1300 !important;
    width: max-content;
    max-width: min(320px, calc(100vw - 20px));
    padding: 10px 14px;
    border: 1px solid rgba(0, 31, 61, .12);
    border-radius: 10px;
    background: #ffcc00;
    color: #071b2d;
    font-family: 'Roboto', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: .01em;
    text-align: center;
    white-space: normal;
    box-shadow: 0 14px 34px rgba(87, 68, 0, .26);
    opacity: 0;
    visibility: hidden;
    transform: translateY(0) scale(.97);
    transform-origin: center;
    transition: opacity .15s ease, visibility .15s ease, transform .15s ease;
    pointer-events: none;
}

.cirmi-ui-tooltip.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.cirmi-ui-tooltip::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    left: var(--cirmi-tooltip-arrow-left);
    width: 10px;
    height: 10px;
    background: #ffcc00;
    border: 0;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) rotate(45deg);
    pointer-events: none;
}

.cirmi-ui-tooltip.is-above::before {
    top: auto;
    bottom: -5px;
}

.cirmi-ui-tooltip.is-below::before {
    top: -5px;
    bottom: auto;
}

/* Аккуратный общий hover без скачков размера и повторных плашек. */
.bottom-footer .social a,
.footer .social a {
    transition: background-color .16s ease, border-color .16s ease,
                color .16s ease, box-shadow .16s ease, transform .16s ease !important;
}

.bottom-footer .social a:hover,
.bottom-footer .social a:focus-visible,
.footer .social a:hover,
.footer .social a:focus-visible {
    transform: translateY(-1px) !important;
}

@media (hover: none), (pointer: coarse) {
    .cirmi-ui-tooltip {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
	.cirmi-ui-tooltip,
	.bottom-footer .social a,
    .footer .social a {
        transition: none !important;
    }
}

/* ============================================================
   CIRMI 7.1.2: окончательное устранение двойных подсказок
   ============================================================ */
[data-cirmi-ui-tooltip]::before,
[data-cirmi-ui-tooltip]::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* ============================================================
   CIRMI 7.2.0: reliable and accessible service navigation
   ============================================================ */
.cirmi-service-tabs .service-link-widget a[role="tab"] {
    position: relative;
    z-index: 1;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.cirmi-service-tabs .service-link-widget a[role="tab"]:focus-visible {
    outline: 3px solid rgba(255, 204, 0, .42);
    outline-offset: 2px;
}

.cirmi-service-tabs .tab-content > .tab-pane[hidden] {
    display: none !important;
}

.cirmi-service-tabs .tab-content > .tab-pane.active {
    display: block;
}

/* ============================================================
   CIRMI 7.2.1: stable service switching and registry shell
   ============================================================ */

/* Panel animation must not imitate vertical movement. A calm fade is
   enough and cannot be mistaken for the page jumping. */
.cirmi-service-tabs .tab-content > .tab-pane {
    animation: cirmi-service-panel-fade .16s ease both;
    scroll-margin-top: 0 !important;
}

@keyframes cirmi-service-panel-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .cirmi-service-tabs .tab-content > .tab-pane {
        animation: none;
    }
}

/* Unified corporate footer typography.
   Registry card styles must never shrink the footer. The selectors cover
   the legacy Text widget, Navigation Menu widget and the theme's custom
   link widget, so Quick Links look identical on pages, archives and single
   registry records. */
footer.footer {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

footer.footer .footer-widget .title h2 {
    font-size: 24px !important;
    line-height: 50px !important;
    font-weight: 600 !important;
}

footer.footer .footer-widget.about-widget p {
    font-size: 18px !important;
    line-height: 30px !important;
}

footer.footer .footer-widget.link-widget .links li a,
footer.footer .footer-widget.widget_text .links li a,
footer.footer .footer-widget.widget_text .textwidget > ul > li > a,
footer.footer .footer-widget.widget_text .textwidget a:not(.thm-btn),
footer.footer .footer-widget.widget_nav_menu ul.menu > li > a,
footer.footer .footer-widget.widget_pages > ul > li > a,
footer.footer .footer-widget ul.menu > li > a,
footer.footer .footer-widget ul.links > li > a {
    display: block !important;
    width: auto !important;
    color: #ffffff !important;
    font-size: 19px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    transition: color .18s ease !important;
}

footer.footer .footer-widget.link-widget .links li a:hover,
footer.footer .footer-widget.link-widget .links li a:focus-visible,
footer.footer .footer-widget.widget_text .links li a:hover,
footer.footer .footer-widget.widget_text .links li a:focus-visible,
footer.footer .footer-widget.widget_text .textwidget > ul > li > a:hover,
footer.footer .footer-widget.widget_text .textwidget > ul > li > a:focus-visible,
footer.footer .footer-widget.widget_text .textwidget a:not(.thm-btn):hover,
footer.footer .footer-widget.widget_text .textwidget a:not(.thm-btn):focus-visible,
footer.footer .footer-widget.widget_nav_menu ul.menu > li > a:hover,
footer.footer .footer-widget.widget_nav_menu ul.menu > li > a:focus-visible,
footer.footer .footer-widget.widget_pages > ul > li > a:hover,
footer.footer .footer-widget.widget_pages > ul > li > a:focus-visible,
footer.footer .footer-widget ul.menu > li > a:hover,
footer.footer .footer-widget ul.menu > li > a:focus-visible,
footer.footer .footer-widget ul.links > li > a:hover,
footer.footer .footer-widget ul.links > li > a:focus-visible {
    color: #ffcc00 !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    outline: none;
}

footer.footer .footer-widget.contact-widget .content h3 {
    font-size: 16px !important;
    line-height: 22px !important;
}

footer.footer a,
.bottom-footer a {
    text-decoration: none !important;
}

.bottom-footer p {
    font-size: 16px !important;
    line-height: 30px !important;
}

@media (max-width: 991px) {
    footer.footer .footer-widget.link-widget .links li a,
    footer.footer .footer-widget.widget_text .links li a,
    footer.footer .footer-widget.widget_text .textwidget > ul > li > a,
    footer.footer .footer-widget.widget_text .textwidget a:not(.thm-btn),
    footer.footer .footer-widget.widget_nav_menu ul.menu > li > a,
    footer.footer .footer-widget.widget_pages > ul > li > a,
    footer.footer .footer-widget ul.menu > li > a,
    footer.footer .footer-widget ul.links > li > a {
        font-size: 18px !important;
    }
}

@media (max-width: 767px) {
    footer.footer .footer-widget .title h2 {
        font-size: 21px !important;
        line-height: 44px !important;
    }

    footer.footer .footer-widget.link-widget .links li a,
    footer.footer .footer-widget.widget_text .links li a,
    footer.footer .footer-widget.widget_text .textwidget > ul > li > a,
    footer.footer .footer-widget.widget_text .textwidget a:not(.thm-btn),
    footer.footer .footer-widget.widget_nav_menu ul.menu > li > a,
    footer.footer .footer-widget.widget_pages > ul > li > a,
    footer.footer .footer-widget ul.menu > li > a,
    footer.footer .footer-widget ul.links > li > a,
    footer.footer .footer-widget.contact-widget .content h3 {
        font-size: 16px !important;
    }
}

/* ============================================================
   CIRMI 7.2.4: testimonials and stable service tabs
   ============================================================ */
.single-sidebar-box.testimonials-widget .cirmi-testimonial-author {
    display: block;
    line-height: 1.25;
}

.single-sidebar-box.testimonials-widget .cirmi-testimonial-author b {
    display: block;
}

.single-sidebar-box.testimonials-widget .cirmi-testimonial-designation {
    display: block;
    margin-top: 3px;
    color: inherit;
    font-style: normal;
    font-weight: 500;
}

/* Переключение услуг не меняет URL, фокус панели и позицию страницы. */
.cirmi-service-tabs,
.cirmi-service-tabs .service-link-widget,
.cirmi-service-tabs .cirmi-service-tabs__content,
.cirmi-service-tabs .tab-content,
.cirmi-service-tabs .tab-pane {
    overflow-anchor: none !important;
}

/* ============================================================
   CIRMI 7.2.5: static service tabs without hash scrolling
   ============================================================ */
.cirmi-service-tabs .service-link-widget ul li .cirmi-service-tab-button,
.cirmi-service-tabs .service-link-widget ul li button[data-cirmi-service-tab] {
    width: 100%;
    min-height: 45px;
    display: block;
    margin: 0;
    padding: 0 10px 0 7px;
    border: 0;
    border-left: 5px solid #ff0000;
    border-radius: 0;
    background: #ddd;
    color: #000;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 45px;
    text-align: left;
    text-transform: none;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.cirmi-service-tabs .service-link-widget ul li.active .cirmi-service-tab-button,
.cirmi-service-tabs .service-link-widget ul li.active button[data-cirmi-service-tab] {
    border-left-color: #ffcc00;
    background: #002f55;
    color: #ffcc00;
}

.cirmi-service-tabs .service-link-widget ul li .cirmi-service-tab-button:hover,
.cirmi-service-tabs .service-link-widget ul li .cirmi-service-tab-button:focus-visible,
.cirmi-service-tabs .service-link-widget ul li button[data-cirmi-service-tab]:hover,
.cirmi-service-tabs .service-link-widget ul li button[data-cirmi-service-tab]:focus-visible {
    border-left-color: #ffcc00;
    background: #002f55;
    color: #fff;
    outline: 0;
}

.cirmi-service-tabs .service-link-widget ul li.active .cirmi-service-tab-button:hover,
.cirmi-service-tabs .service-link-widget ul li.active .cirmi-service-tab-button:focus-visible,
.cirmi-service-tabs .service-link-widget ul li.active button[data-cirmi-service-tab]:hover,
.cirmi-service-tabs .service-link-widget ul li.active button[data-cirmi-service-tab]:focus-visible {
    color: #ffcc00;
}

/* The active panel starts at the same top edge; switching it must never create
   an anchor target or browser focus target capable of moving the page. */
.cirmi-service-tabs .tab-pane,
.cirmi-service-tabs .tab-pane[role="tabpanel"] {
    scroll-margin: 0 !important;
    overflow-anchor: none !important;
}

/* ============================================================
   CIRMI 7.7.1: resilient full-colour messenger actions
   ============================================================ */
.subscription .cirmi-subscription-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 12px 16px;
    min-width: 0;
}

.subscription .cirmi-subscription-actions > button {
    flex: 1 1 190px;
    min-width: 0;
    min-height: 55px;
    margin: 0;
    padding: 0 28px;
    line-height: 1.2;
}

.subscription ul.social.cirmi-subscription-messengers {
    display: flex !important;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    line-height: 1;
}

.subscription ul.social.cirmi-subscription-messengers > li {
    position: relative;
    display: block;
    width: 46px;
    height: 46px;
    margin: 0 !important;
    padding: 0;
    list-style: none;
}

.subscription ul.social.cirmi-subscription-messengers > li > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin: 0;
    padding: 4px;
    overflow: visible;
    border: 2px solid transparent;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
    line-height: 1;
    transform: none;
    transition: border-color .18s ease, background-color .18s ease,
                box-shadow .18s ease, transform .18s ease;
}

.subscription .cirmi-subscription-messenger-icon {
    display: block !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px;
    min-height: 38px;
    max-width: 38px !important;
    max-height: 38px !important;
    object-fit: contain;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    -webkit-filter: none !important;
    transform: none;
    transition: transform .18s ease;
}

/* CSS-level fallback: even if an optimisation plugin rewrites the image src,
   the same full-colour icon remains visible inside the image box. */
.cirmi-site-header__social--telegram img {
    background-image: url("../img/resources/telegram.svg") !important;
}

.cirmi-site-header__social--whatsapp img {
    background-image: url("../img/resources/whatsapp.svg") !important;
}

.cirmi-site-header__social--max img {
    background-image: url("../img/resources/max.svg") !important;
}

.cirmi-footer-messenger--telegram .cirmi-social-icon-img,
.cirmi-subscription-messenger--telegram .cirmi-subscription-messenger-icon {
    background-image: url("../img/resources/telegram.svg") !important;
}

.cirmi-footer-messenger--whatsapp .cirmi-social-icon-img,
.cirmi-subscription-messenger--whatsapp .cirmi-subscription-messenger-icon {
    background-image: url("../img/resources/whatsapp.svg") !important;
}

.cirmi-footer-messenger--max .cirmi-social-icon-img,
.cirmi-subscription-messenger--max .cirmi-subscription-messenger-icon {
    background-image: url("../img/resources/max.svg") !important;
}

.cirmi-site-header__social--telegram img,
.cirmi-site-header__social--whatsapp img,
.cirmi-site-header__social--max img,
.cirmi-footer-messenger--telegram .cirmi-social-icon-img,
.cirmi-footer-messenger--whatsapp .cirmi-social-icon-img,
.cirmi-footer-messenger--max .cirmi-social-icon-img,
.cirmi-subscription-messenger--telegram .cirmi-subscription-messenger-icon,
.cirmi-subscription-messenger--whatsapp .cirmi-subscription-messenger-icon,
.cirmi-subscription-messenger--max .cirmi-subscription-messenger-icon {
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

.cirmi-site-header__social img {
    opacity: 1 !important;
    visibility: visible !important;
}

.subscription ul.social.cirmi-subscription-messengers > li > a:hover,
.subscription ul.social.cirmi-subscription-messengers > li > a:focus-visible {
    border-color: #ffcc00;
    background: rgba(255, 204, 0, .08);
    box-shadow: 0 0 0 1px rgba(255, 204, 0, .14), 0 0 16px rgba(255, 204, 0, .28);
    color: inherit;
    outline: 0;
    transform: translateY(-2px);
}

.subscription ul.social.cirmi-subscription-messengers > li > a:hover .cirmi-subscription-messenger-icon,
.subscription ul.social.cirmi-subscription-messengers > li > a:focus-visible .cirmi-subscription-messenger-icon {
    transform: scale(1.04);
}

/* ============================================================
   CIRMI 7.7.0: deterministic responsive service grids
   ============================================================ */
.our-services .cirmi-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 42px 30px;
    margin-right: 0;
    margin-left: 0;
}

.our-services .cirmi-service-grid::before,
.our-services .cirmi-service-grid::after,
.our-services .cirmi-service-caption-grid::before,
.our-services .cirmi-service-caption-grid::after {
    display: none;
    content: none;
}

.our-services .cirmi-service-grid > .cirmi-service-grid__item {
    float: none;
    width: auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0;
    border-top: 0;
}

.our-services.service-page .cirmi-service-grid > .has-divider {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.our-services .cirmi-service-grid .single-our-service {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-width: 0;
}

.our-services .cirmi-service-grid .single-our-service > .img-box {
    position: relative;
    width: 100%;
    aspect-ratio: 37 / 22;
    overflow: hidden;
    background: #dce4eb;
}

.our-services .cirmi-service-grid .single-our-service > .img-box > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    object-fit: cover;
}

.our-services .cirmi-service-grid .single-our-service > a {
    display: block;
    min-width: 0;
    text-align: center;
}

.our-services .cirmi-service-grid .single-our-service h3 {
    margin: 18px 0 10px;
    font-size: clamp(20px, 1.65vw, 27px);
    line-height: 1.2;
    overflow-wrap: anywhere;
}

/*
 * On the three-column desktop grid every service name should read as one
 * confident line.  The smaller type is limited to wide layouts only, so
 * tablet and mobile titles remain comfortably readable.
 */
@media (min-width: 1200px) {
    .our-services .cirmi-service-grid .single-our-service h3 {
        min-height: 26px;
        margin-top: 16px;
        font-size: clamp(18px, 1.2vw, 20px);
        line-height: 1.28;
        letter-spacing: -.015em;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
}

.our-services .cirmi-service-grid .single-our-service p {
    overflow-wrap: anywhere;
}

.our-services .cirmi-service-grid .img-box:focus-within .overlay {
    opacity: 1;
}

.our-services .cirmi-service-caption-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 30px;
}

.our-services .cirmi-service-caption-grid > .cirmi-service-caption-grid__item {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.our-services .cirmi-service-caption-grid .single-our-service-caption-box {
    height: 100%;
    padding-top: 0;
}

.our-services .cirmi-service-caption-grid .img-box img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 1199px) {
    .our-services .cirmi-service-grid,
    .our-services .cirmi-service-caption-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .subscription .cirmi-subscription-action-label {
        display: none;
    }

    .subscription .cirmi-subscription-actions {
        align-items: stretch;
        gap: 14px;
    }

    .subscription .cirmi-subscription-actions > button {
        flex-basis: 100%;
        width: 100%;
    }

    .subscription ul.social.cirmi-subscription-messengers {
        width: 100%;
        justify-content: center;
    }

    .our-services .cirmi-service-grid,
    .our-services .cirmi-service-caption-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .our-services .cirmi-service-grid .single-our-service h3 {
        margin-top: 15px;
        font-size: clamp(21px, 6vw, 27px);
    }
}

/* Touch devices cannot reveal a hover-only CTA. Keep the photo unobscured and
   expose one compact, finger-friendly action at its bottom edge. */
@media (max-width: 767px), (hover: none), (pointer: coarse) {
    .our-services .cirmi-service-grid .single-our-service .img-box .overlay {
        top: auto;
        left: 0;
        right: 0;
        bottom: 0;
        height: auto;
        padding: 12px;
        border: 0;
        background: linear-gradient(180deg, transparent 0%, rgba(0, 23, 45, .86) 100%);
        opacity: 1;
        pointer-events: none;
    }

    .our-services .cirmi-service-grid .single-our-service .img-box .overlay .box,
    .our-services .cirmi-service-grid .single-our-service .img-box .overlay .box .box-content {
        display: block;
        width: 100%;
        height: auto;
        text-align: center;
    }

    .our-services .cirmi-service-grid .single-our-service .img-box .overlay .box .box-content a {
        top: 0;
        max-width: 100%;
        min-height: 44px;
        padding: 12px 18px;
        border-radius: 8px;
        font-size: 14px;
        line-height: 1.2;
        white-space: normal;
        pointer-events: auto;
    }

    .our-services .cirmi-service-grid .single-our-service .img-box .overlay .box .box-content a::before,
    .our-services .cirmi-service-grid .single-our-service .img-box .overlay .box .box-content a::after {
        display: none;
        content: none;
    }
}

@media (hover: none), (pointer: coarse) {
    .subscription ul.social.cirmi-subscription-messengers > li > a:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .subscription ul.social.cirmi-subscription-messengers > li > a,
    .subscription .cirmi-subscription-messenger-icon {
        transition: none;
    }
}

/* ============================================================
   CIRMI 7.8.1: premium experience without legacy-layout conflicts
   ============================================================ */
.scroll-to-top:focus-visible {
    outline: 3px solid #ffcc00;
    outline-offset: 3px;
}

.thm-unit-test :where(p, li),
.wpb_text_column :where(p, li),
.single-blog-post .content-box :where(p, li) {
    text-wrap: pretty;
}

.thm-unit-test :where(a:not(.thm-btn), p a),
.wpb_text_column :where(a:not(.thm-btn), p a),
.single-blog-post .content-box :where(a:not(.thm-btn), p a) {
    text-decoration-thickness: 1px;
    text-underline-offset: .16em;
}

.thm-unit-test :where(table),
.wpb_text_column :where(table),
.single-blog-post .content-box :where(table) {
    scrollbar-color: #a8bac8 #edf3f7;
    scrollbar-width: thin;
}

.thm-unit-test :where(table)::-webkit-scrollbar,
.wpb_text_column :where(table)::-webkit-scrollbar,
.single-blog-post .content-box :where(table)::-webkit-scrollbar {
    height: 9px;
}

.thm-unit-test :where(table)::-webkit-scrollbar-thumb,
.wpb_text_column :where(table)::-webkit-scrollbar-thumb,
.single-blog-post .content-box :where(table)::-webkit-scrollbar-thumb {
    border: 2px solid #edf3f7;
    border-radius: 999px;
    background: #8fa6b7;
}

/* Calm, consistent premium form surface for CF7 and legacy shortcodes. */
:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form) :where(label) {
    display: inline-block;
    margin: 0 0 7px;
    color: #173149;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form)
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) {
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 12px 14px;
    border: 1.5px solid #b9cad8 !important;
    border-radius: 12px;
    color: #172d42;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .99) 0%, #f8fbfd 100%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        inset 0 -1px 0 rgba(0, 54, 95, .025),
        0 5px 14px rgba(0, 47, 85, .055);
    font: 400 16px/1.4 Roboto, Arial, sans-serif;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease,
        transform .18s ease;
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form)
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea):hover {
    border-color: #d8ad16 !important;
    background: #fff !important;
    box-shadow:
        inset 0 0 0 2px rgba(255, 204, 0, .52),
        inset 0 1px 0 rgba(255, 255, 255, .98),
        0 7px 17px rgba(0, 47, 85, .09);
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form)
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea):focus {
    border-color: #0b668f !important;
    background: #fff !important;
    box-shadow:
        inset 0 0 0 2px rgba(255, 204, 0, .72),
        0 0 0 3px rgba(8, 116, 176, .11),
        0 9px 20px rgba(0, 47, 85, .09);
    outline: 0;
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form) textarea {
    min-height: 132px;
    resize: vertical;
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form)
    :where(button[type="submit"], input[type="submit"]) {
    min-height: 52px;
    padding: 13px 24px;
    border: 1px solid #e0ae00 !important;
    border-radius: 9px;
    color: #09253c !important;
    background: linear-gradient(180deg, #ffd936 0%, #ffc400 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 10px 22px rgba(0, 47, 85, .12);
    font-size: 16px;
    line-height: 1.25;
    font-weight: 900;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

:where(.wpcf7-form, .home-contact-form, form.contact-form, .reply-box form)
    :where(button[type="submit"], input[type="submit"]):hover {
    color: #fff !important;
    border-color: #00365f !important;
    background: #00365f !important;
    box-shadow: 0 12px 26px rgba(0, 47, 85, .22);
    transform: translateY(-1px);
}

.wpcf7-form.is-cirmi-submitting :where(button[type="submit"], input[type="submit"]) {
    cursor: wait;
    opacity: .78;
}

.wpcf7-form-control-wrap {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
}

/*
 * Legacy FactoryPress rules add a margin below every input. Contact Form 7
 * inserts its validation message inside the control wrapper, so that margin
 * visually detaches the message from the field. Keep the message anchored to
 * its own control and centre the arrow/text under the corresponding field.
 */
.home-contact-form .wpcf7-form-control-wrap
    > :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea),
.pum-container .wpcf7-form-control-wrap
    > :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) {
    margin-bottom: 0 !important;
}

.wpcf7-form-control-wrap > .wpcf7-not-valid-tip,
.wpcf7-not-valid-tip {
    display: block;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 2px 0 0 !important;
    padding: 0 4px;
    color: #b42318;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
    box-sizing: border-box;
}

.wpcf7 form .wpcf7-response-output {
    margin: 18px 0 0;
    padding: 12px 14px;
    border: 1px solid #cbd8e3;
    border-radius: 9px;
    color: #173149;
    background: #f7fafc;
    font-size: 14px;
    line-height: 1.5;
}

.wpcf7 form.sent .wpcf7-response-output {
    border-color: #8cc9a5;
    background: #f0fbf4;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
    border-color: #e8b4ae;
    background: #fff6f5;
}

/* Stable, keyboard-friendly premium accordions. */
.accrodion-grp {
    overflow: hidden;
    border: 1px solid #e0e8ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(0, 47, 85, .08);
}

.accrodion-grp .accrodion {
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid #e8eef3;
    background: #fff;
}

.accrodion-grp .accrodion:last-child {
    border-bottom: 0;
}

.accrodion-grp .accrodion-title {
    min-height: 68px;
    padding: 11px 18px;
    display: flex;
    align-items: center;
    background: #fff;
    transition: background-color .18s ease;
}

.accrodion-grp .accrodion-title:hover,
.accrodion-grp .accrodion-title:focus-visible,
.accrodion-grp .accrodion.active > .accrodion-title {
    background: #f7fafc;
}

.accrodion-grp .accrodion-title:focus-visible {
    position: relative;
    z-index: 2;
    outline: 3px solid rgba(255, 196, 0, .9);
    outline-offset: -3px;
}

.accrodion-grp .accrodion-title h4 {
    width: 100%;
    display: flex;
    align-items: center;
    color: #00365f;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 800;
}

.accrodion-grp .accrodion-title h4::before,
.accrodion-grp .accrodion.active .accrodion-title h4::before {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin: 0 14px 0 0;
    border-radius: 9px;
    line-height: 42px;
}

.accrodion-grp .accrodion-content {
    padding: 0 20px 20px 74px;
}

.accrodion-grp .accrodion-content p {
    margin: 0 !important;
    color: #29455d;
    font-size: 16px;
    line-height: 1.62;
}

/* Fallback glyphs prevent empty hexagons when an editor leaves icon blank. */
.our-features .single-our-feature .icon-box.is-cirmi-empty::after {
    content: "\f00c";
    position: absolute;
    z-index: 2;
    inset: 0;
    display: grid;
    place-items: center;
    color: #00365f;
    font-family: FontAwesome;
    font-size: 34px;
    line-height: 1;
}

.our-features > .container > .row > [class*="col-"]:nth-child(1)
    .single-our-feature .icon-box.is-cirmi-empty::after {
    content: "\f002";
}

.our-features > .container > .row > [class*="col-"]:nth-child(2)
    .single-our-feature .icon-box.is-cirmi-empty::after {
    content: "\f132";
}

.our-features > .container > .row > [class*="col-"]:nth-child(3)
    .single-our-feature .icon-box.is-cirmi-empty::after {
    content: "\f046";
}

.no-container.our-features .single-our-feature .icon-box.is-cirmi-empty::after {
    color: #ffbf00;
}

/*
 * Restore the original varied visual language for incomplete three-card
 * feature rows. The outer hexagon remains the theme's native Flaticon shape;
 * only the duplicated/empty inner symbol is replaced.
 */
.single-our-feature .icon-box.cirmi-feature-icon--restored {
    position: relative;
}

.single-our-feature .icon-box.cirmi-feature-icon--restored > :where(i, span, img, svg) {
    opacity: 0 !important;
    visibility: hidden !important;
}

.single-our-feature .icon-box.cirmi-feature-icon--restored::after {
    content: "" !important;
    position: absolute;
    z-index: 3;
    top: 22px;
    left: 22px;
    width: 54px;
    height: 54px;
    display: block;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
}

.single-our-feature .icon-box.cirmi-feature-icon--clock::after {
    background-image: url("icons/cirmi-feature-clock.svg");
}

.single-our-feature .icon-box.cirmi-feature-icon--award::after {
    background-image: url("icons/cirmi-feature-award.svg");
}

.single-our-feature .icon-box.cirmi-feature-icon--certificate::after {
    background-image: url("icons/cirmi-feature-certificate.svg");
}

@media (min-width: 768px) {
    /*
     * The service shortcode also carries the historical `our-features` class.
     * Never turn its Bootstrap sidebar/content grid into a flex card row.
     */
    .our-features:not(.cirmi-service-tabs) > .container > .row {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
    }

    .our-features:not(.cirmi-service-tabs) > .container > .row > [class*="col-"] {
        display: flex;
    }

    .our-features:not(.cirmi-service-tabs) > .container > .row > [class*="col-"] > .single-our-feature {
        width: 100%;
        height: 100%;
    }
}

/*
 * Desktop service pages use a legacy Bootstrap float grid. These explicit
 * guards keep the sidebar vertical even if a page builder or cache bundle
 * injects a broad flex rule for feature sections.
 */
@media (min-width: 992px) {
    .cirmi-service-tabs > .container > .row {
        display: block;
    }

    .cirmi-service-tabs > .container > .row::before,
    .cirmi-service-tabs > .container > .row::after {
        content: "";
        display: table;
    }

    .cirmi-service-tabs > .container > .row::after {
        clear: both;
    }

    .cirmi-service-tabs > .container > .row > .col-md-3,
    .cirmi-service-tabs > .container > .row > .col-md-9 {
        display: block;
        min-width: 0;
    }

    .cirmi-service-tabs > .container > .row > .col-md-3 > .single-sidebar-box {
        width: 100%;
        max-width: 100%;
        float: none;
        clear: both;
    }
}

.cirmi-service-tabs .broucher-widgets > a {
    width: 100%;
    display: table;
    table-layout: fixed;
}

.cirmi-service-tabs .broucher-widgets .icon-box {
    width: 50px;
}

.cirmi-service-tabs .broucher-widgets .text-box {
    width: auto;
    padding-right: 10px;
}

.cirmi-service-tabs .testimonials-widget,
.cirmi-service-tabs .testimonial-carousel,
.cirmi-service-tabs .single-testi-carousel,
.cirmi-service-tabs .single-testi-carousel .box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.cirmi-service-tabs .single-testi-carousel .box {
    overflow-wrap: anywhere;
}

.cirmi-service-tabs .testimonials-widget .single-testi-carousel img {
    width: auto;
    max-width: 72px;
    height: auto;
}

/* Accessible replacement for the legacy clickable div. */
.scroll-to-top {
    width: 48px;
    height: 48px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 215, 64, .72);
    border-radius: 50%;
    color: #ffcc00;
    background:
        linear-gradient(145deg, rgba(10, 69, 108, .76), rgba(0, 31, 61, .60));
    -webkit-backdrop-filter: blur(16px) saturate(155%);
    backdrop-filter: blur(16px) saturate(155%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .22),
        inset 0 -1px 0 rgba(0, 16, 34, .20),
        0 12px 28px rgba(0, 35, 67, .22);
    line-height: 1;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .18s ease, visibility .18s ease, transform .18s ease,
                color .18s ease, border-color .18s ease,
                background .18s ease, box-shadow .18s ease;
}

.scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.scroll-to-top.is-visible:hover {
    color: #00365f;
    border-color: rgba(255, 226, 112, .96);
    background:
        linear-gradient(145deg, rgba(255, 222, 82, .96), rgba(255, 196, 0, .90));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .65),
        0 0 0 5px rgba(255, 204, 0, .12),
        0 18px 38px rgba(0, 35, 67, .30),
        0 0 28px rgba(255, 204, 0, .34);
    transform: translateY(-3px) scale(1.03);
}

.scroll-to-top .icon {
    display: block;
    font-size: 30px;
    line-height: 46px;
}

/* ============================================================
   CIRMI 8.0.0: refined premium image CAPTCHA and request forms
   ============================================================ */

/*
 * The contact shortcode keeps its own scope so desktop compaction cannot
 * leak into ordinary CF7 forms in articles, the footer or third-party cards.
 */
.cirmi-contact-request {
    clear: both;
    position: relative;
}

/*
 * Keep a four-column CSS fallback on the CAPTCHA itself. JavaScript also moves
 * the four visible labels into .cirmi-captcha-options, but this fallback keeps
 * the row horizontal before JavaScript runs and across older plugin markup.
 */
.captcha-image {
    width: 100% !important;
    max-width: none !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, 46px) !important;
    grid-auto-flow: row !important;
    align-items: center !important;
    justify-content: center !important;
    column-gap: clamp(12px, 4vw, 24px) !important;
    row-gap: 5px !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    color: #46596d;
    background: transparent !important;
    box-shadow: none !important;
    text-align: center !important;
    box-sizing: border-box;
}

.captcha-image :where(.cf7ic_instructions, .cirmi-captcha-instruction, p) {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    color: #46596d !important;
    font-size: clamp(15px, 1.15vw, 19px) !important;
    line-height: 1.32 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    box-sizing: border-box;
}

.captcha-image .cirmi-captcha-target {
    color: #00365f !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}

.captcha-image .cirmi-captcha-options {
    grid-column: 1 / -1 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(12px, 4vw, 24px) !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    isolation: isolate;
    box-sizing: border-box;
}

/*
 * Flatten every known plugin wrapper that is not the canonical option row.
 * This is both a pre-JavaScript fallback and protection against wrappers that
 * the plugin inserts again after an AJAX refresh.
 */
.captcha-image
    :where(.cf7ic-icon-wrapper, .captcha-icon-wrapper, .wpcf7-list-item, .cirmi-captcha-residual):not(.cirmi-captcha-options) {
    display: contents !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.captcha-image label {
    position: relative;
    flex: 0 0 46px !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    border: 1px solid rgba(112, 142, 165, .72) !important;
    border-radius: 50% !important;
    outline: 0 !important;
    color: #4a5b70 !important;
    background:
        linear-gradient(145deg, rgba(246, 249, 252, .99), rgba(225, 234, 241, .98)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .92),
        inset 0 -1px 0 rgba(0, 45, 78, .05),
        0 6px 15px rgba(0, 39, 73, .13) !important;
    cursor: pointer;
    vertical-align: middle;
    float: none !important;
    inset: auto !important;
    overflow: hidden;
    box-sizing: border-box;
    transition: color .16s ease, background .16s ease,
                border-color .16s ease, box-shadow .16s ease,
                transform .16s ease;
}

.captcha-image :where(input[type="radio"], input[type="checkbox"]) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    opacity: 0 !important;
    white-space: nowrap !important;
}

.captcha-image label :where(i, svg),
.captcha-image.cirmi-captcha-ready
    :where(.cf7ic-icon-wrapper, .cirmi-captcha-options)
    label > :where(i, svg) {
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    min-height: 25px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    outline: 0 !important;
    color: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 25px !important;
    line-height: 1 !important;
    fill: currentColor;
    transform: none !important;
}

.captcha-image label:hover {
    color: #006a86 !important;
    border-color: rgba(207, 157, 0, .82) !important;
    background: #fff8d8 !important;
    box-shadow:
        inset 0 0 0 2px rgba(255, 196, 0, .92),
        inset 0 1px 0 rgba(255, 255, 255, .92),
        0 10px 22px rgba(0, 54, 95, .19) !important;
    transform: translateY(-2px) !important;
}

.captcha-image label:has(input:checked),
.captcha-image label.is-cirmi-selected {
    color: #004a72 !important;
    border-color: #d7aa00 !important;
    background: #fff3bf !important;
    box-shadow:
        inset 0 0 0 2px #ffcc00,
        0 0 0 2px rgba(255, 204, 0, .42),
        0 9px 18px rgba(0, 39, 73, .12) !important;
}

.captcha-image label:has(input:focus-visible),
.captcha-image label:focus-within {
    box-shadow:
        0 0 0 3px rgba(8, 116, 176, .24),
        0 8px 18px rgba(0, 39, 73, .11) !important;
}

/* Fallback for markup where the visible icon directly follows the radio. */
.captcha-image input:checked + :where(i, svg) {
    color: #07385d !important;
}

.cirmi-contact-request .home-contact-form .wpcf7-quiz {
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

@media (min-width: 992px) {
    .cirmi-contact-request > .container > .row {
        display: flex;
        align-items: flex-start;
    }

    .cirmi-contact-request .home-contact-form {
        margin-top: 0;
        padding: 18px 20px 12px;
        border: 1px solid rgba(184, 202, 216, .68);
        border-radius: 14px;
        background:
            linear-gradient(145deg, rgba(255, 255, 255, .985), rgba(247, 251, 253, .98));
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .94),
            0 14px 34px rgba(0, 38, 71, .115);
    }

    .cirmi-contact-request .home-contact-form :where(.row) {
        margin-right: -7px;
        margin-left: -7px;
    }

    .cirmi-contact-request .home-contact-form :where([class*="col-"]) {
        padding-right: 7px;
        padding-left: 7px;
    }

    .cirmi-contact-request .home-contact-form
        :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select) {
        min-height: 42px;
        height: 42px;
        padding: 8px 12px;
    }

    .cirmi-contact-request .home-contact-form textarea {
        min-height: 92px;
        height: 92px;
        padding: 9px 12px;
    }

    .cirmi-contact-request .home-contact-form
        :where(button[type="submit"], input[type="submit"]) {
        min-height: 42px;
        margin-top: 8px;
        padding: 8px 18px;
    }

    .cirmi-contact-request .home-contact-form :where(p) {
        margin-bottom: 8px;
    }

    .cirmi-contact-request .home-contact-form :where(.wpcf7-spinner) {
        margin-top: 8px;
        margin-bottom: 0;
    }

    .cirmi-contact-request .captcha-image {
        margin-top: 4px !important;
        gap: 3px !important;
    }

    .cirmi-contact-request .captcha-image
        :where(.cf7ic_instructions, .cirmi-captcha-instruction, p) {
        margin: 0 !important;
        padding: 0 !important;
        font-size: 14px !important;
        line-height: 1.26 !important;
    }

    .cirmi-contact-request .captcha-image
        :where(.cf7ic-icon-wrapper, .cirmi-captcha-options) {
        grid-template-columns: repeat(4, 46px) !important;
        column-gap: 19px !important;
        row-gap: 8px !important;
    }

    .cirmi-contact-request .captcha-image label {
        flex-basis: 46px !important;
        width: 46px !important;
        min-width: 46px !important;
        max-width: 46px !important;
        height: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;
    }

    .cirmi-contact-request .captcha-image label :where(i, svg) {
        width: 25px !important;
        height: 25px !important;
        min-width: 25px !important;
        min-height: 25px !important;
        font-size: 25px !important;
    }
}

/*
 * The request popup can use a different Popup Maker ID on different pages.
 * JavaScript adds .cirmi-request-popup to the container that actually holds
 * Image CAPTCHA; :has() is a no-flash fallback in current browsers.
 */
.pum-container.cirmi-request-popup,
.pum-container:has(.captcha-image) {
    left: 50% !important;
    width: min(760px, calc(100vw - 32px)) !important;
    min-width: 0 !important;
    max-width: 760px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 32px) !important;
    max-height: calc(100dvh - 32px) !important;
    margin-left: 0 !important;
    padding: 15px 17px 12px !important;
    overflow: visible !important;
    border: 1px solid rgba(181, 200, 215, .75) !important;
    border-radius: 18px !important;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(247, 251, 253, .985)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        0 24px 58px rgba(0, 31, 58, .24) !important;
    box-sizing: border-box !important;
    transform: translateX(-50%) !important;
}

.pum-container.cirmi-request-popup .pum-content,
.pum-container:has(.captcha-image) .pum-content {
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 68px) !important;
    max-height: calc(100dvh - 68px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

.pum-container.cirmi-request-popup .wpcf7-form,
.pum-container:has(.captcha-image) .wpcf7-form {
    height: auto !important;
    min-height: 0 !important;
}

.pum-container.cirmi-request-popup .wpcf7-form :where(p),
.pum-container:has(.captcha-image) .wpcf7-form :where(p) {
    margin: 0 0 7px !important;
}

.pum-container.cirmi-request-popup .wpcf7-form
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select),
.pum-container:has(.captcha-image) .wpcf7-form
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select) {
    min-height: 40px;
    height: 40px;
    padding: 7px 11px;
    font-size: 15px;
}

.pum-container.cirmi-request-popup .wpcf7-form textarea,
.pum-container:has(.captcha-image) .wpcf7-form textarea {
    min-height: 88px;
    height: 88px;
    padding: 8px 11px;
    font-size: 15px;
}

.pum-container.cirmi-request-popup .wpcf7-form
    :where(button[type="submit"], input[type="submit"]),
.pum-container:has(.captcha-image) .wpcf7-form
    :where(button[type="submit"], input[type="submit"]) {
    min-height: 42px;
    margin-top: 3px;
    padding: 8px 18px;
    font-size: 17px;
}

.pum-container.cirmi-request-popup .captcha-image,
.pum-container:has(.captcha-image) .captcha-image {
    margin-top: 4px !important;
    gap: 3px !important;
}

.pum-container.cirmi-request-popup .captcha-image
    :where(.cf7ic_instructions, .cirmi-captcha-instruction, p),
.pum-container:has(.captcha-image) .captcha-image
    :where(.cf7ic_instructions, .cirmi-captcha-instruction, p) {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    line-height: 1.24 !important;
}

.pum-container.cirmi-request-popup .captcha-image
    :where(.cf7ic-icon-wrapper, .cirmi-captcha-options),
.pum-container:has(.captcha-image) .captcha-image
    :where(.cf7ic-icon-wrapper, .cirmi-captcha-options) {
    grid-template-columns: repeat(4, 46px) !important;
    column-gap: 19px !important;
    row-gap: 8px !important;
}

.pum-container.cirmi-request-popup .captcha-image label,
.pum-container:has(.captcha-image) .captcha-image label {
    flex-basis: 46px !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
}

.pum-container.cirmi-request-popup .captcha-image label :where(i, svg),
.pum-container:has(.captcha-image) .captcha-image label :where(i, svg) {
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    min-height: 25px !important;
    font-size: 25px !important;
}

/*
 * Popup Maker reuses the same CF7 fields. Give the controls enough edge
 * definition to remain visible against the white modal without a loud halo.
 */
.pum-container .wpcf7-form
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) {
    border-color: #b7c9d7 !important;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .99), #f8fbfd) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        0 5px 14px rgba(0, 47, 85, .055) !important;
    outline: 0 !important;
}

.pum-container .wpcf7-form
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea):hover {
    border-color: #d8ad16 !important;
    background: #fff !important;
    box-shadow:
        inset 0 0 0 2px rgba(255, 204, 0, .52),
        inset 0 1px 0 rgba(255, 255, 255, .98),
        0 7px 17px rgba(0, 47, 85, .09) !important;
}

.pum-container .wpcf7-form
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea):focus {
    border-color: #0b668f !important;
    background: #fff !important;
    box-shadow:
        inset 0 0 0 2px rgba(255, 204, 0, .72),
        0 0 0 3px rgba(8, 116, 176, .10),
        0 9px 20px rgba(0, 47, 85, .09) !important;
    outline: 0 !important;
}

@media (max-width: 767px) {
    .pum-container.cirmi-request-popup,
    .pum-container:has(.captcha-image) {
        width: calc(100vw - 18px) !important;
        max-height: calc(100vh - 18px) !important;
        max-height: calc(100dvh - 18px) !important;
        padding: 12px 12px 10px !important;
        border-radius: 15px !important;
    }

    .pum-container.cirmi-request-popup .pum-content,
    .pum-container:has(.captcha-image) .pum-content {
        max-height: calc(100vh - 46px) !important;
        max-height: calc(100dvh - 46px) !important;
    }

    .pum-container.cirmi-request-popup .wpcf7-form
        :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select),
    .pum-container:has(.captcha-image) .wpcf7-form
        :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select) {
        min-height: 42px;
        height: 42px;
        font-size: 16px;
    }

    .pum-container.cirmi-request-popup .wpcf7-form textarea,
    .pum-container:has(.captcha-image) .wpcf7-form textarea {
        min-height: 82px;
        height: 82px;
        font-size: 16px;
    }

    .pum-container.cirmi-request-popup .captcha-image
        :where(.cf7ic-icon-wrapper, .cirmi-captcha-options),
    .pum-container:has(.captcha-image) .captcha-image
        :where(.cf7ic-icon-wrapper, .cirmi-captcha-options) {
        grid-template-columns: repeat(4, 46px) !important;
        column-gap: 12px !important;
        row-gap: 7px !important;
    }
}

/* Premium 404 page: one clear destination, no competing actions. */
.cirmi-404 {
    --cirmi-404-navy: #032f52;
    --cirmi-404-navy-deep: #041f37;
    --cirmi-404-gold: #ffca0a;
    --cirmi-404-gold-deep: #dca900;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: clamp(520px, calc(100vh - 265px), 760px);
    padding: clamp(70px, 8vw, 112px) 18px;
    display: grid;
    place-items: center;
    color: #182f43;
    background:
        radial-gradient(circle at 10% 18%, rgba(255, 202, 10, .20), transparent 31%),
        radial-gradient(circle at 88% 22%, rgba(27, 105, 157, .13), transparent 33%),
        linear-gradient(145deg, #ffffff 0%, #f7fafc 52%, #edf4f8 100%);
    font-family: Roboto, Arial, sans-serif;
    text-align: center;
}

.cirmi-404::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    background-image:
        linear-gradient(rgba(3, 47, 82, .027) 1px, transparent 1px),
        linear-gradient(90deg, rgba(3, 47, 82, .027) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .45), transparent 76%);
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .45), transparent 76%);
}

.cirmi-404::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: min(68vw, 760px);
    aspect-ratio: 1;
    left: 50%;
    top: 44%;
    border: 1px solid rgba(3, 47, 82, .07);
    border-radius: 50%;
    box-shadow:
        0 0 0 72px rgba(3, 47, 82, .018),
        0 0 0 144px rgba(255, 202, 10, .018);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.cirmi-404-box {
    position: relative;
    z-index: 1;
    width: min(100%, 720px);
    margin: 0 auto;
    padding: clamp(42px, 5vw, 64px) clamp(22px, 6vw, 72px) clamp(46px, 5vw, 66px);
    overflow: hidden;
    border: 1px solid rgba(126, 156, 178, .42);
    border-radius: 26px;
    background:
        radial-gradient(circle at 50% 0, rgba(255, 202, 10, .07), transparent 38%),
        rgba(255, 255, 255, .87);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        0 32px 80px rgba(3, 36, 63, .14),
        0 8px 24px rgba(3, 36, 63, .07);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.cirmi-404-box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(230px, 46%);
    height: 4px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, transparent, var(--cirmi-404-gold) 22%, var(--cirmi-404-gold) 78%, transparent);
    transform: translateX(-50%);
}

.cirmi-404-code {
    margin: 0 0 14px;
    color: var(--cirmi-404-navy);
    font-size: clamp(104px, 12vw, 168px);
    line-height: .78;
    font-weight: 950;
    letter-spacing: -.065em;
    text-shadow: 0 14px 30px rgba(3, 47, 82, .12);
}

.cirmi-404-kicker {
    margin: 0 0 12px;
    color: #806000;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.cirmi-404-title {
    max-width: 560px;
    margin: 0 auto clamp(26px, 3vw, 36px);
    color: var(--cirmi-404-navy-deep);
    font-size: clamp(28px, 3.2vw, 42px);
    line-height: 1.12;
    font-weight: 900;
    letter-spacing: -.025em;
}

.cirmi-404-btn {
    min-width: min(100%, 270px);
    min-height: 56px;
    padding: 15px 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid var(--cirmi-404-gold-deep);
    border-radius: 11px;
    color: var(--cirmi-404-navy-deep) !important;
    background: linear-gradient(180deg, #ffdc4b 0%, var(--cirmi-404-gold) 72%, #f4b900 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .78),
        0 15px 28px rgba(3, 47, 82, .15),
        0 4px 9px rgba(155, 109, 0, .12);
    font-size: 16px;
    line-height: 1.25;
    font-weight: 900;
    letter-spacing: .01em;
    text-decoration: none !important;
    transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.cirmi-404-btn::after {
    content: "\2192";
    font-size: 20px;
    line-height: 1;
    transition: transform .2s ease;
}

.cirmi-404-btn:hover,
.cirmi-404-btn:focus-visible {
    color: var(--cirmi-404-navy-deep) !important;
    border-color: #c89500;
    background: linear-gradient(180deg, #ffe269 0%, #ffd01e 72%, #f7bd00 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .86),
        0 18px 36px rgba(3, 47, 82, .20),
        0 5px 12px rgba(155, 109, 0, .15);
    transform: translateY(-2px);
}

.cirmi-404-btn:hover::after,
.cirmi-404-btn:focus-visible::after {
    transform: translateX(3px);
}

.cirmi-404-btn:focus-visible {
    outline: 3px solid rgba(3, 47, 82, .72);
    outline-offset: 4px;
}

.cirmi-404-btn:active {
    transform: translateY(0);
}

@media (max-width: 767px) {
    .accrodion-grp {
        border-radius: 11px;
    }

    .accrodion-grp .accrodion-title {
        min-height: 60px;
        padding: 9px 12px;
    }

    .accrodion-grp .accrodion-title h4 {
        font-size: 16px !important;
        line-height: 1.4;
    }

    .accrodion-grp .accrodion-title h4::before,
    .accrodion-grp .accrodion.active .accrodion-title h4::before {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        margin-right: 10px;
        line-height: 38px;
    }

    .accrodion-grp .accrodion-content {
        padding: 0 14px 17px 60px;
    }

    .accrodion-grp .accrodion-content p {
        font-size: 15px !important;
        line-height: 1.55;
        text-align: left !important;
    }

    .cirmi-404 {
        min-height: clamp(470px, calc(100vh - 220px), 650px);
        padding: 44px 12px 54px;
    }

    .cirmi-404-box {
        padding: 38px 20px 42px;
        border-radius: 20px;
    }

    .cirmi-404-code {
        margin-bottom: 13px;
        font-size: clamp(94px, 31vw, 132px);
    }

    .cirmi-404-title {
        font-size: clamp(26px, 8vw, 34px);
    }

    .cirmi-404-btn {
        width: min(100%, 320px);
    }
}
