/*
 * ALZAYAT Divi 5 polish layer.
 * Semantic selectors only. Preserves the production black / white / red identity.
 */

:root {
    --alz-red: #e41c26;
    --alz-red-dark: #bd1119;
    --alz-ink: #171717;
    --alz-muted: #62666d;
    --alz-surface: #ffffff;
    --alz-surface-soft: #f7f7f6;
    --alz-border: #e7e7e7;
    --alz-radius-sm: 6px;
    --alz-radius-md: 10px;
    --alz-shadow-sm: 0 6px 20px rgba(0, 0, 0, 0.07);
    --alz-shadow-menu: 0 18px 48px rgba(0, 0, 0, 0.14);
}

/* Header hierarchy */
.top-bar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.top-bar .et_pb_row,
.main-menu .et_pb_row {
    align-items: center;
}

.top-bar a {
    transition: opacity 160ms ease, color 160ms ease;
}

.top-bar a:hover {
    opacity: 0.82;
}

.main-menu {
    border-bottom: 1px solid var(--alz-border);
    box-shadow: var(--alz-shadow-sm);
}

.main-menu .et_pb_row {
    width: min(94%, 1320px);
    max-width: 1320px;
}

.desktop-nav .et-menu > li > a {
    font-weight: 600;
    letter-spacing: 0.015em;
    transition: color 160ms ease, opacity 160ms ease;
}

.desktop-nav .et-menu > li > a:hover,
.desktop-nav .et-menu > li.current-menu-item > a,
.desktop-nav .et-menu > li.current-menu-ancestor > a {
    color: var(--alz-red);
    opacity: 1;
}

/* Desktop dropdowns */
.main-menu .et-menu-nav > ul > li > ul.sub-menu {
    padding: 10px 0;
    background: var(--alz-surface);
    border: 1px solid var(--alz-border);
    border-top: 3px solid var(--alz-red);
    border-radius: 0 0 var(--alz-radius-md) var(--alz-radius-md);
    box-shadow: var(--alz-shadow-menu);
}

.main-menu .sub-menu li {
    padding: 0;
}

.main-menu .sub-menu a {
    width: 100%;
    padding: 10px 16px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--alz-ink);
    transition: background-color 140ms ease, color 140ms ease;
}

.main-menu .sub-menu a:hover {
    background: var(--alz-surface-soft);
    color: var(--alz-red);
    opacity: 1;
}

/* Search */
.main-menu .et_pb_menu__search-input {
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--alz-border);
    border-radius: var(--alz-radius-sm);
    background: var(--alz-surface);
}

/* Buttons: same red identity, cleaner interaction */
.et_pb_button,
.wpcf7-submit {
    border-radius: var(--alz-radius-sm);
    transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease, color 150ms ease;
}

.et_pb_button:hover,
.wpcf7-submit:hover {
    transform: translateY(-1px);
}

/* Forms */
.join-form input:not([type="submit"]),
.join-form select,
.join-form textarea,
.footer-form input:not([type="submit"]),
.footer-form select,
.footer-form textarea {
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid #d8dadd;
    border-radius: var(--alz-radius-sm);
    background: #fff;
    color: var(--alz-ink);
    box-shadow: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.join-form textarea,
.footer-form textarea {
    min-height: 92px;
}

.join-form input:focus,
.join-form select:focus,
.join-form textarea:focus,
.footer-form input:focus,
.footer-form select:focus,
.footer-form textarea:focus {
    border-color: var(--alz-red);
    box-shadow: 0 0 0 3px rgba(228, 28, 38, 0.12);
}

/* Footer */
.cc-footer {
    border-top: 3px solid var(--alz-red);
}

.cc-footer .footer-links a {
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: color 150ms ease, text-decoration-color 150ms ease;
}

.cc-footer .footer-links a:hover {
    text-decoration: underline;
    text-decoration-color: currentColor;
}

/* Strong, consistent keyboard visibility */
:where(a, button, input, select, textarea, .mobile_menu_bar):focus-visible {
    outline: 3px solid var(--alz-red);
    outline-offset: 3px;
}

/* Let keyboard focus open the Polylang dropdown at every screen width. */
.top-bar-lang .et-menu li:focus-within > ul.sub-menu,
.top-bar-lang .nav li:focus-within > ul.sub-menu {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
    pointer-events: auto !important;
    z-index: 2000;
}

.top-bar-lang .et-menu li > a:focus-visible,
.top-bar-lang .nav li > a:focus-visible {
    outline: 3px solid var(--alz-red) !important;
    outline-offset: 3px;
}

/* Divi 5 native mobile navigation */
@media (max-width: 1180px) {
    .main-menu .et_pb_row {
        width: 94%;
    }

    .main-menu .et_mobile_menu {
        left: 50% !important;
        width: min(94vw, 720px) !important;
        margin-top: 10px;
        padding: 6px !important;
        transform: translateX(-50%);
        background: #fff !important;
        border: 1px solid var(--alz-border) !important;
        border-top: 3px solid var(--alz-red) !important;
        border-radius: 12px !important;
        box-shadow: 0 18px 48px rgba(0, 0, 0, 0.16) !important;
        overflow-y: auto;
        max-height: min(72vh, 680px);
    }

    .main-menu .et_mobile_menu > li {
        margin: 0 !important;
        border-bottom: 1px solid #ededed;
        background: transparent !important;
    }

    .main-menu .et_mobile_menu > li:last-child {
        border-bottom: 0;
    }

    .main-menu .et_mobile_menu > li > a {
        min-height: 52px;
        padding: 15px 58px 15px 14px !important;
        display: flex !important;
        align-items: center;
        background: transparent !important;
        color: var(--alz-ink) !important;
        font-size: 17px;
        font-weight: 600;
        line-height: 1.25;
    }

    .main-menu .et_mobile_menu > li.current-menu-item > a,
    .main-menu .et_mobile_menu > li.current-menu-ancestor > a {
        color: var(--alz-red) !important;
    }

    /* Divi already renders a dedicated + / - button. Hide the old anchor arrow. */
    .main-menu .et_mobile_menu .menu-item-has-children > a::after,
    .main-menu .et_mobile_menu .page_item_has_children > a::after {
        display: none !important;
        content: none !important;
    }

    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.menu-item-has-children,
    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.page_item_has_children {
        grid-template-columns: minmax(0, 1fr) 52px !important;
    }

    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .mobile-toggle {
        width: 48px !important;
        height: 48px !important;
        margin: 2px !important;
        padding: 0 !important;
        border-radius: 8px;
        color: #111 !important;
        background: transparent !important;
        z-index: 5;
    }

    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .mobile-toggle:hover,
    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .mobile-toggle:focus-visible {
        background: #f3f3f3 !important;
    }

    .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .mobile-toggle .et_pb_menu__collapsible-icon::before {
        color: #111 !important;
        font-size: 22px !important;
    }

    /*
     * Compatibility override:
     * an older cached child stylesheet used .visible/.dt-open and could keep
     * Divi 5 submenus hidden even after Divi switched the native open class.
     */
    body.et-db #et-boc .et-l .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.menu-item-has-children > .sub-menu,
    body.et-db #et-boc .et-l .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.page_item_has_children > .children {
        display: none !important;
        visibility: hidden !important;
    }

    body.et-db #et-boc .et-l .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.menu-item-has-children.et_pb_collapsible_menu_open > .sub-menu,
    body.et-db #et-boc .et-l .main-menu .et_pb_menu.et_pb_menu--collapsible-mobile .et_mobile_menu li.page_item_has_children.et_pb_collapsible_menu_open > .children {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        max-height: none !important;
    }

    .main-menu .et_mobile_menu .sub-menu {
        width: 100% !important;
        margin: 0 !important;
        padding: 4px 0 8px 14px !important;
        background: #fafafa !important;
        border-inline-start: 3px solid rgba(228, 28, 38, 0.28);
        box-shadow: none !important;
    }

    .main-menu .et_mobile_menu .sub-menu li {
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    .main-menu .et_mobile_menu .sub-menu a {
        min-height: 44px;
        padding: 11px 52px 11px 14px !important;
        display: flex !important;
        align-items: center;
        background: transparent !important;
        border-bottom: 1px solid #ececec;
        color: #333 !important;
        font-size: 15px;
        font-weight: 500;
        line-height: 1.35;
    }

    .main-menu .et_mobile_menu .sub-menu li:last-child > a {
        border-bottom: 0;
    }

    .mobile_menu_bar {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        border-radius: 50%;
    }

    .mobile_menu_bar:hover {
        background: rgba(0, 0, 0, 0.04);
    }
}

@media (max-width: 767px) {
    .main-menu .et_pb_row {
        width: 94%;
    }

    .top-bar .et_pb_row {
        width: 94%;
    }

    .cc-footer {
        padding-inline: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Desktop header: keep logo, navigation and social icons on one line. */
@media (min-width: 1181px) {
    .main-menu > .et_pb_row:first-of-type {
        width: min(96%, 1380px) !important;
        max-width: 1380px !important;
        display: grid !important;
        grid-template-columns: minmax(145px, 16%) minmax(0, 1fr) auto;
        align-items: center;
        column-gap: clamp(14px, 1.4vw, 24px);
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column {
        width: 100% !important;
        margin: 0 !important;
        float: none !important;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:first-child .et_pb_image {
        margin: 0 !important;
        max-width: 165px;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) {
        min-width: 0;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) .et_pb_menu__wrap {
        justify-content: flex-start !important;
        min-width: 0;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) .et-menu {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: clamp(15px, 1.35vw, 24px);
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) .et-menu > li {
        padding-inline: 0 !important;
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) .et-menu > li > a {
        padding-block: 25px !important;
        font-size: clamp(14px, 1.08vw, 17px);
        line-height: 1.2;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:last-child {
        width: auto !important;
        min-width: max-content;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:last-child .et_pb_social_media_follow {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-end;
        gap: clamp(7px, 0.7vw, 11px);
        margin: 0 !important;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:last-child .et_pb_social_media_follow li {
        margin: 0 !important;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:last-child .et_pb_social_media_follow li a.icon {
        margin: 0 !important;
    }

    /* H4 v2: inline nested lists INSIDE one scroll-contained desktop dropdown. */
    .desktop-nav .et-menu > li > ul.sub-menu {
        min-width: 290px;
        max-width: min(360px, calc(100vw - 32px));
        max-height: calc(100vh - 110px);
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }

    /* Prevent nowrap from spilling translated labels out of the dropdown. */
    .desktop-nav .et-menu > li > ul.sub-menu li,
    .desktop-nav .et-menu > li > ul.sub-menu a {
        white-space: normal !important;
    }

    .desktop-nav .sub-menu a {
        width: auto !important;
        overflow-wrap: anywhere;
        padding: 9px 14px !important;
        font-size: 14px;
        line-height: 1.35;
    }

    .main-menu .desktop-nav .et-menu .sub-menu .sub-menu {
        position: static !important;
        inset: auto !important;
        width: auto !important;
        min-width: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 0 6px !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        visibility: inherit !important;
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }

    .main-menu .desktop-nav .et-menu .sub-menu .sub-menu li {
        padding: 0 !important;
    }

    .main-menu .desktop-nav .et-menu .sub-menu .sub-menu a {
        padding-block: 6px !important;
        padding-inline: 30px 14px !important;
        font-size: 13.5px;
    }

    .main-menu .desktop-nav .et-menu .sub-menu li.menu-item-has-children > a:first-child::after {
        content: none !important;
    }

    .main-menu .desktop-nav .et-menu .sub-menu li.menu-item-has-children > a:first-child {
        font-weight: 600;
    }

    /* Crucial follow-up: Divi makes nested li inline-block. They must stack vertically. */
    .main-menu .desktop-nav .et-menu > li > ul.sub-menu li {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
}

/* Tablet / small-laptop navigation: one deliberate compact mode. */
@media (min-width: 981px) and (max-width: 1180px) {
    /* Anchor the drawer to the hamburger column without horizontal overflow. */
    .main-menu .et_mobile_menu {
        left: auto !important;
        right: 0 !important;
        width: min(calc(100vw - 32px), 720px) !important;
        max-width: none !important;
        transform: none !important;
    }

    /* The Arabic hamburger sits on the opposite viewport edge. */
    html[dir="rtl"] .main-menu .et_mobile_menu {
        left: 0 !important;
        right: auto !important;
    }

    body.et-db #et-boc .et-l .top-bar {
        display: block !important;
        padding: 8px 0 !important;
    }

    body.et-db #et-boc .et-l .top-bar .et_pb_social_media_follow,
    body.et-db #et-boc .et-l .top-bar .et_pb_menu__menu {
        display: flex !important;
    }

    body.et-db #et-boc .et-l .top-bar .et_mobile_nav_menu {
        display: none !important;
    }

    .main-menu > .et_pb_row:first-of-type {
        width: 94% !important;
        max-width: 1180px !important;
        display: grid !important;
        grid-template-columns: minmax(145px, 1fr) auto;
        align-items: center;
        gap: 20px;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column {
        width: auto !important;
        margin: 0 !important;
        float: none !important;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:first-child {
        display: block !important;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:nth-child(2) {
        display: block !important;
        min-width: 58px;
    }

    .main-menu > .et_pb_row:first-of-type > .et_pb_column:last-child {
        display: none !important;
    }

    .main-menu > .et_pb_row:first-of-type .desktop-nav .et_pb_menu__menu {
        display: none !important;
    }

    .main-menu > .et_pb_row:first-of-type .desktop-nav .et_mobile_nav_menu {
        display: block !important;
    }

    .main-menu > .et_pb_row:first-of-type .desktop-nav .et_pb_menu__wrap {
        justify-content: flex-end !important;
    }

    .main-menu > .et_pb_row:first-of-type .et_pb_image {
        max-width: 175px;
        margin: 0 !important;
    }
}

/* Hero hierarchy and long-form readability. */
.home .et_pb_fullwidth_header .header-content {
    width: min(94%, 980px);
    max-width: 980px;
    margin-inline: auto;
}

.home .et_pb_fullwidth_header .et_pb_module_header {
    max-width: 900px;
    margin-inline: auto;
    margin-bottom: clamp(22px, 3vw, 38px);
    font-size: clamp(24px, 2.3vw, 36px) !important;
    line-height: 1.35 !important;
    letter-spacing: clamp(1px, 0.16vw, 2px) !important;
    text-wrap: balance;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.42);
}

.home .et_pb_fullwidth_header .et_pb_header_button_wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.home .et_pb_fullwidth_header .et_pb_button {
    margin: 0 !important;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.single-practice .et-l--body .et_pb_fullwidth_header .header-content,
.single-services .et-l--body .et_pb_fullwidth_header .header-content {
    width: min(92%, 980px);
    max-width: 980px;
    margin-inline: auto;
}

.single-practice .et-l--body .et_pb_fullwidth_header .et_pb_module_header,
.single-services .et-l--body .et_pb_fullwidth_header .et_pb_module_header {
    font-size: clamp(32px, 4.5vw, 58px) !important;
    line-height: 1.12 !important;
    text-wrap: balance;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.40);
}

.et_pb_post_content {
    color: #44484e;
    font-size: clamp(17px, 1.12vw, 19px);
    line-height: 1.78;
}

.et_pb_post_content > :where(p, ul, ol, blockquote, h2, h3, h4) {
    width: min(100%, 78ch);
    margin-inline: auto;
}

.et_pb_post_content > p {
    margin-bottom: 1.15em;
}

.et_pb_post_content > :where(ul, ol) {
    margin-bottom: 1.35em;
    padding-inline-start: 1.45em;
}

.et_pb_post_content > h2 {
    margin-top: 1.8em;
    margin-bottom: 0.55em;
    color: var(--alz-ink);
    font-size: clamp(27px, 2.4vw, 38px);
    line-height: 1.22;
    letter-spacing: -0.015em;
}

.et_pb_post_content > h3 {
    margin-top: 1.55em;
    margin-bottom: 0.45em;
    color: #25282c;
    font-size: clamp(22px, 1.85vw, 30px);
    line-height: 1.28;
}

.et_pb_post_content > h4 {
    margin-top: 1.35em;
    margin-bottom: 0.4em;
    color: #2d3035;
    line-height: 1.35;
}

.et_pb_post_content a {
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

@media (max-width: 767px) {
    .home .et_pb_fullwidth_header .et_pb_header_button_wrapper {
        width: min(100%, 440px);
        margin-inline: auto;
        flex-direction: column;
    }

    .home .et_pb_fullwidth_header .et_pb_button {
        width: 100%;
        padding-inline: 18px !important;
    }

    .et_pb_post_content {
        font-size: 17px;
        line-height: 1.72;
    }

    .et_pb_post_content > :where(p, ul, ol, blockquote, h2, h3, h4) {
        width: min(100%, 92vw);
    }
}

/* Homepage component polish. */
.about-sec {
    padding-block: clamp(44px, 6vw, 84px);
}

.about-sec > .et_pb_row {
    width: min(92%, 1220px);
    max-width: 1220px;
    align-items: center;
}

.cus-ver-slider .et_pb_slide_description,
.cus-ver-slider .et_pb_slider_fullwidth_off .et_pb_slide_description {
    width: min(92%, 620px);
    max-width: 620px;
    padding: clamp(28px, 4vw, 52px) !important;
    background: rgba(255, 255, 255, 0.94);
    border-inline-start: 4px solid var(--alz-red);
    border-radius: 0 var(--alz-radius-md) var(--alz-radius-md) 0;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(5px);
}

.cus-ver-slider .et_pb_slide_description .et_pb_slide_content {
    width: 100%;
    color: #33383e;
    line-height: 1.7;
}

.legal-serv-imgs {
    align-items: stretch;
}

.legal-serv-imgs > .et_pb_column {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--alz-border);
    border-radius: var(--alz-radius-md);
    box-shadow: var(--alz-shadow-sm);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.legal-serv-imgs > .et_pb_column:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.11);
}

.legal-serv-imgs .et_pb_image {
    margin-bottom: 0 !important;
}

.legal-serv-imgs .et_pb_image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.legal-serv-imgs .et_pb_text {
    margin: 0 !important;
    padding-inline: 14px;
}

.legal-serv-imgs .et_pb_text:first-of-type {
    padding-top: 16px;
}

.legal-serv-imgs .et_pb_text:last-child {
    margin-top: auto !important;
    padding-bottom: 16px;
}

.legal-serv-imgs .et_pb_text a {
    color: var(--alz-ink) !important;
    text-underline-offset: 3px;
}

.partners-row {
    width: min(92%, 1180px);
    max-width: 1180px;
    gap: clamp(18px, 3vw, 44px);
    justify-content: center;
}

.partners-row .et_pb_column {
    display: flex;
    align-items: center;
    justify-content: center;
}

.partners-row img {
    max-height: 92px;
    width: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.72;
    transition: filter 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.partners-row a:hover img,
.partners-row img:hover {
    filter: grayscale(0%);
    opacity: 1;
    transform: translateY(-2px);
}

.join-form {
    border: 1px solid var(--alz-border);
    border-top: 4px solid var(--alz-red);
    border-radius: var(--alz-radius-md);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.10);
}

.join-form .wpcf7-submit,
.footer-form .wpcf7-submit {
    min-height: 46px;
    padding: 10px 22px;
    background: var(--alz-red);
    border: 1px solid var(--alz-red);
    color: #fff;
    font-weight: 700;
    box-shadow: none;
}

.join-form .wpcf7-submit:hover,
.footer-form .wpcf7-submit:hover {
    background: var(--alz-red-dark);
    border-color: var(--alz-red-dark);
}

@media (max-width: 980px) {
    .cus-ver-slider .et_pb_slide_description,
    .cus-ver-slider .et_pb_slider_fullwidth_off .et_pb_slide_description {
        width: min(92%, 680px);
        max-width: 92%;
        margin-inline: auto;
        border-inline-start-width: 3px;
    }

    .legal-serv-imgs > .et_pb_column {
        margin-bottom: 18px !important;
    }
}

@media (max-width: 767px) {
    .about-sec {
        padding-block: 36px;
    }

    .partners-row img {
        max-height: 76px;
    }

    .join-form {
        padding: 22px;
        margin-top: 0;
    }
}

/* Navigation accessibility and duplication cleanup. */
@media (max-width: 1180px) {
    .main-menu .et_mobile_menu > li.pll-parent-menu-item {
        display: none !important;
    }
}

@media (min-width: 1181px) {
    .desktop-nav .et-menu li:focus-within > ul.sub-menu {
        visibility: visible !important;
        opacity: 1 !important;
        transform: translateY(0) !important;
        pointer-events: auto;
    }
}

.alz-skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 100000;
    padding: 10px 14px;
    background: #fff;
    color: #111;
    border: 2px solid var(--alz-red);
    border-radius: 6px;
    transform: translateY(-160%);
}

.alz-skip-link:focus {
    transform: translateY(0);
}

/* Theme Builder body templates */
.alz-single-hero-section,
.alz-archive-hero-section {
    padding: 0 !important;
}

.alz-single-hero,
.alz-practice-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}

.alz-single-hero::before,
.alz-practice-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.38));
    pointer-events: none;
}

.alz-single-hero .et_pb_fullwidth_header_container,
.alz-practice-hero .et_pb_fullwidth_header_container {
    position: relative;
    z-index: 1;
    width: min(92%, 1180px);
    min-height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(48px, 8vw, 96px) 0;
}

.alz-single-hero .header-content,
.alz-practice-hero .header-content {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 920px;
}

.alz-single-hero h1,
.alz-practice-hero h1 {
    margin: 0;
    text-wrap: balance;
    text-shadow: 0 2px 18px rgba(0,0,0,.42);
}

.alz-single-content {
    padding: clamp(28px, 5vw, 64px) 0 !important;
    background: #fff;
}

.alz-single-content > .et_pb_row {
    width: min(92%, 1180px) !important;
    max-width: 1180px !important;
}

.alz-single-content .et_pb_post_content {
    color: #333;
    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.78;
}

.alz-single-content .et_pb_post_content :where(h2,h3,h4) {
    color: var(--alz-ink);
    line-height: 1.25;
    margin-top: 1.5em;
    margin-bottom: .55em;
}

.alz-single-content .et_pb_post_content h2 {
    font-size: clamp(26px, 2.2vw, 34px);
}

.alz-single-content .et_pb_post_content h3 {
    font-size: clamp(22px, 1.8vw, 28px);
}

.alz-archive-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--alz-border);
}

.alz-archive-hero .et_pb_fullwidth_header_container {
    width: min(92%, 1180px);
    min-height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(34px, 5vw, 64px) 0;
}

.alz-archive-hero .header-content {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 960px;
}

.alz-archive-hero h1 {
    margin: 0;
    color: var(--alz-ink);
    text-wrap: balance;
}

.alz-archive-results {
    padding: clamp(34px, 5vw, 64px) 0 !important;
    background: #fff;
}

.alz-archive-results > .et_pb_row {
    width: min(92%, 1280px) !important;
    max-width: 1280px !important;
}

.alz-archive-grid .et_pb_ajax_pagination_container {
    gap: clamp(18px, 2vw, 28px);
}

.alz-archive-grid article {
    height: 100%;
    background: #fff;
    border: 1px solid var(--alz-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 26px rgba(0,0,0,.055);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.alz-archive-grid article:hover {
    transform: translateY(-2px);
    border-color: #d8d8d8;
    box-shadow: 0 14px 36px rgba(0,0,0,.09);
}

.alz-archive-grid article .entry-title,
.alz-archive-grid article .post-meta,
.alz-archive-grid article .post-content,
.alz-archive-grid article .post-content-inner {
    padding-inline: 18px;
}

.alz-archive-grid article .entry-title {
    margin-top: 18px;
    line-height: 1.28;
}

.alz-archive-grid article .post-meta {
    color: var(--alz-muted);
    font-size: 13px;
}

.alz-archive-grid article .post-content {
    padding-bottom: 20px;
    color: #444;
}

@media (max-width: 767px) {
    .alz-single-hero .et_pb_fullwidth_header_container,
    .alz-practice-hero .et_pb_fullwidth_header_container {
        width: 90%;
        padding: 40px 0;
    }

    .alz-single-content > .et_pb_row,
    .alz-archive-results > .et_pb_row {
        width: 92% !important;
    }

    .alz-single-content .et_pb_post_content {
        font-size: 16px;
        line-height: 1.72;
    }
}


/* Footer modernization over migrated Divi 4 presets. */
.cc-footer {
    background: #171717 !important;
    color: #e9e9e9;
    font-family: "Open Sans", Arial, sans-serif !important;
}

.cc-footer .et_pb_row {
    width: min(92%, 1240px) !important;
    max-width: 1240px !important;
}

.cc-footer .et_pb_text,
.cc-footer .et_pb_text p,
.cc-footer .et_pb_text a,
.cc-footer .footer-form-heading,
.cc-footer .wpcf7 {
    font-family: "Open Sans", Arial, sans-serif !important;
}

.cc-footer .et_pb_text {
    color: #e1e1e1 !important;
    line-height: 1.65;
}

.cc-footer .et_pb_text a {
    color: #ededed !important;
}

.cc-footer .et_pb_text a:hover {
    color: #ffffff !important;
}

.cc-footer .footer-form-heading {
    margin-bottom: 14px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}

.cc-footer .footer-social-icons {
    padding-top: 20px !important;
}

.cc-footer .footer-social-icons li {
    margin-right: 10px !important;
}

.cc-footer .footer-social-icons a.icon {
    transition: transform 150ms ease, opacity 150ms ease;
}

.cc-footer .footer-social-icons a.icon:hover {
    transform: translateY(-2px);
    opacity: .9;
}

.cc-footer .wpcf7-form {
    display: grid;
    gap: 10px;
}

.cc-footer .wpcf7-form :where(input:not([type="submit"]), select, textarea) {
    width: 100%;
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid #4b4b4b;
    border-radius: 7px;
    background: #242424;
    color: #fff;
}

.cc-footer .wpcf7-form textarea {
    min-height: 96px;
    resize: vertical;
}

.cc-footer .wpcf7-form :where(input:not([type="submit"]), select, textarea):focus {
    border-color: var(--alz-red);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(228,28,38,.18);
}

.cc-footer .wpcf7-submit {
    min-height: 44px;
    padding: 11px 18px;
    border: 0;
    border-radius: 7px;
    background: var(--alz-red);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.cc-footer .wpcf7-submit:hover {
    background: var(--alz-red-dark);
}

/* Keep the footer lead form on the dark surface its text and controls expect. */
.cc-footer .join-form {
    background: #202020 !important;
    color: #f4f4f4 !important;
    border: 1px solid #484848;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .18);
}

.cc-footer .join-form p,
.cc-footer .join-form .footer-form-heading {
    color: #f4f4f4 !important;
}

.cc-footer .join-form .alz-cf7-privacy-link {
    color: #ffd0d5 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.cc-footer .join-form .wpcf7-form :where(input:not([type="submit"]), select, textarea) {
    border-color: #909090;
    background: #303030;
    color: #fff;
}

/* A two-tone focus treatment remains visible on dark and light surfaces. */
.join-form .wpcf7-submit:focus-visible,
.mobile_menu_bar:focus-visible,
.mobile-toggle:focus-visible {
    outline: 3px solid #ac1423 !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

/* H9: Never animate keyboard focus indicators with the inherited transition:all. */
.join-form .wpcf7-submit,
.footer-form .wpcf7-submit {
    transition: background-color 150ms ease, color 150ms ease, transform 150ms ease !important;
}

/* H8: Visible, distinct privacy links in every translated footer form. */
.cc-footer .join-form .alz-cf7-privacy-link {
    text-decoration: none !important;
}

.cc-footer .join-form .alz-cf7-privacy-link a {
    color: #ffffff !important;
    font-weight: 600;
    text-decoration: underline !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Contact page's in-content light form: distinct accessible privacy link. */
.contact-pg .alz-cf7-privacy-link a {
    color: #a3121f !important;
    font-weight: 600;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

@media (max-width: 767px) {
    .cc-footer .et_pb_row {
        width: 90% !important;
    }

    .cc-footer .et_pb_column {
        margin-bottom: 22px;
    }
}


/* 404 Theme Builder template */
.alz-404-hero-section {
    padding: 0 !important;
}

.alz-404-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 190px;
    background: #f7f7f6 !important;
    border-bottom: 1px solid var(--alz-border);
}

.alz-404-hero .et_pb_fullwidth_header_container {
    width: min(92%, 980px);
    min-height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 46px 0;
}

.alz-404-hero .header-content {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 900px;
}

.alz-404-hero h1 {
    margin: 0;
    color: var(--alz-ink) !important;
    font-size: clamp(30px, 4vw, 44px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-align: center;
}

.alz-404-content {
    padding: clamp(38px, 7vw, 80px) 0 !important;
    background: #fff;
}

.alz-404-content > .et_pb_row {
    width: min(90%, 760px) !important;
    max-width: 760px !important;
}

.alz-404-card {
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid var(--alz-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 14px 44px rgba(0,0,0,.07);
}

.alz-404-copy {
    margin: 0 0 24px;
    color: #444;
    font-size: 18px;
    line-height: 1.7;
    text-align: center;
}

.alz-404-search {
    margin: 0;
}

.alz-404-search > label {
    display: block;
    margin-bottom: 8px;
    color: var(--alz-ink);
    font-weight: 700;
}

.alz-404-search-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
}

.alz-404-search input {
    min-width: 0;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #cfd1d4;
    border-radius: 8px;
    font: inherit;
}

.alz-404-search input:focus {
    border-color: var(--alz-red);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(228,28,38,.13);
}

.alz-404-search button {
    min-height: 48px;
    padding: 11px 20px;
    border: 0;
    border-radius: 8px;
    background: var(--alz-red);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.alz-404-home-wrap {
    margin: 22px 0 0;
    text-align: center;
}

.alz-404-home-link {
    color: var(--alz-red);
    font-weight: 700;
    text-decoration: none;
}

.alz-404-home-link:hover {
    text-decoration: underline;
}

@media (max-width: 600px) {
    .alz-404-search-row {
        grid-template-columns: 1fr;
    }
}

/* Single templates: readable fallback when a post/service has no featured image. */
.alz-single-hero,
.alz-practice-hero {
    background-color: #242424 !important;
}

/* Escape-dismissed dropdowns stay closed until focus or the pointer leaves (WCAG 1.4.13). */
.desktop-nav .et-menu li.alz-dropdown-dismissed.alz-dropdown-dismissed ul.sub-menu,
.top-bar-lang .et-menu li.alz-dropdown-dismissed.alz-dropdown-dismissed ul.sub-menu,
.top-bar-lang .nav li.alz-dropdown-dismissed.alz-dropdown-dismissed ul.sub-menu {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Slideshow pause control (WCAG 2.2.2). It sits before the slider: overlaid on the top
   corner on desktop, in normal flow on mobile where the slide text fills the slider. */
.alz-slider-controls {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 8px;
}

.alz-slider-controls .alz-slider-toggle {
    min-width: 44px;
    min-height: 44px;
    padding: 8px 14px;
    border: 2px solid #fff;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}

.alz-slider-controls .alz-slider-toggle:hover {
    background: var(--alz-red);
}

@media (min-width: 981px) {
    .alz-slider-controls {
        position: relative;
        z-index: 30;
        height: 0;
        margin: 0;
    }

    .alz-slider-controls .alz-slider-toggle {
        position: absolute;
        top: 16px;
        inset-inline-end: 16px;
    }
}

/* Modern-format <picture> wrappers must not change Divi's image layout. */
.alz-picture {
    display: contents;
}

/* CSS-07: the dark-surface field rule above ties with the footer :focus rule on specificity
   and comes later, so keyboard focus kept the grey border and showed only an 18% glow. */
.cc-footer .join-form .wpcf7-form :where(input:not([type="submit"]), select, textarea):focus {
    border-color: #fff;
    outline: 3px solid var(--alz-red);
    outline-offset: 2px;
}

/* WCAG 1.4.10 on phones, Russian and Hungarian only: their longest words did not fit, so pages
   scrolled sideways at 320 px. No word is broken; other languages are untouched. */
@media (max-width: 479px) {
    /* Home hero: an 80% container around an 80% text column left 132-153 px for the copy. */
    html:is(:lang(ru), :lang(hu)) .home .et_pb_fullwidth_header .et_pb_fullwidth_header_container {
        width: 100%;
        padding-left: 16px;
        padding-right: 16px;
    }

    html:is(:lang(ru), :lang(hu)) .home .et_pb_fullwidth_header .et_pb_fullwidth_header_container.center .header-content {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    /* Service and practice titles (32 px minimum above): sized to the title box, which is 83% of
       the viewport, so the longest current titles fit ("Dokumentumhitelesítés",
       "Административные"). Re-measure with qa/b6/title-fit.mjs after adding longer titles. */
    html:lang(hu) .single-practice .et-l--body .et_pb_fullwidth_header .et_pb_module_header,
    html:lang(hu) .single-services .et-l--body .et_pb_fullwidth_header .et_pb_module_header {
        font-size: clamp(20px, 6.6vw, 32px) !important;
    }

    html:lang(ru) .single-practice .et-l--body .et_pb_fullwidth_header .et_pb_module_header,
    html:lang(ru) .single-services .et-l--body .et_pb_fullwidth_header .et_pb_module_header {
        font-size: clamp(20px, 7.4vw, 32px) !important;
    }
}

/* WCAG 1.4.10: Contact Form 7 forms placed in post or page content had no width rule, so their
   fields kept the browser's intrinsic size (size="40" inputs about 341 px, cols="40" textareas
   about 334 px) and pages scrolled sideways on phones. Cap each field at its column. Wherever the
   column is already wider than the field, nothing changes. The footer form and the contact-page
   forms (inside .join-form or .footer-form) are sized elsewhere and are not matched. */
:where(.et_pb_post_content, .et-l--post) .wpcf7 :is(input:not([type="submit"], [type="checkbox"], [type="radio"], [type="hidden"]), select, textarea):not(:where(.join-form, .footer-form) *) {
    max-width: 100%;
}
