/**
 * Pentor Reusable UI
 * Scoped presentation for the contact rail and language dropdown widgets.
 */

.elementor-widget-pentor-contact-rail {
    position: static;
}

body.elementor-editor-active .elementor-widget-pentor-contact-rail.prui-contact-host--editor-overlay {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    width: 0 !important;
    max-width: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    z-index: 99999 !important;
}

body.elementor-editor-active .elementor-widget-pentor-language-dropdown.prui-language-host--editor-source {
    display: none !important;
}

body.elementor-editor-active .elementor-widget-pentor-language-dropdown.prui-language-host--editor-clone {
    display: block !important;
}

.prui-language-target--active {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
}

.prui-language-target--active > .prui-language-host--header {
    flex: 0 1 auto;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
}

#pentor-language-switcher[data-prui-replaced="true"] {
    display: none !important;
}

@media (min-width: 1025px) {
    header .prui-language-header-row--active.elementor-container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 1320px !important;
        margin-inline: auto !important;
    }

    header .prui-language-target-column--active.elementor-column {
        flex: 0 0 282px !important;
        width: 282px !important;
        max-width: 282px !important;
    }

    header .prui-language-target--active > .elementor-widget-button {
        flex: 0 0 auto !important;
        align-self: center !important;
        width: max-content !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    header .prui-language-target--active > .elementor-widget-button .elementor-button-wrapper {
        width: max-content !important;
        max-width: 100% !important;
    }

    header .prui-language-target--active > .prui-language-host--header {
        flex: 0 1 auto;
        width: auto !important;
        max-width: 100% !important;
    }

    header .prui-language-host--header .prui-language {
        --prui-language-min-width: 132px;
        --prui-language-trigger-padding-x: 10px;
        --prui-language-trigger-gap: 7px;
        width: 132px;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    header .prui-language-host--header .prui-language__menu {
        width: 185px;
        min-width: 185px;
    }
}

.prui-contact-rail {
    --prui-rail-width: 112px;
    --prui-rail-padding-block: 22px;
    --prui-rail-padding-inline: 12px;
    --prui-rail-gap: 22px;
    --prui-rail-background: #ffffff;
    --prui-rail-radius: 22px;
    --prui-rail-border-color: rgba(15, 23, 42, 0.04);
    --prui-rail-border-width: 1px;
    --prui-rail-shadow: 0 12px 34px rgba(15, 23, 42, 0.10);
    --prui-rail-top: 50%;
    --prui-rail-right: 18px;
    --prui-rail-z-index: 10;
    --prui-item-min-height: 70px;
    --prui-icon-box-size: 48px;
    --prui-icon-size: 28px;
    --prui-icon-color: #ffffff;
    --prui-icon-background: #ed1c24;
    --prui-label-color: #171717;
    --prui-secondary-color: #171717;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: min(var(--prui-rail-widget-width, var(--prui-rail-width)), 100%);
    padding: var(--prui-rail-padding-block) var(--prui-rail-padding-inline);
    gap: var(--prui-rail-gap);
    background: var(--prui-rail-background);
    border: var(--prui-rail-border-width) solid var(--prui-rail-border-color);
    border-radius: var(--prui-rail-radius);
    box-shadow: var(--prui-rail-shadow);
    isolation: isolate;
}

.prui-contact-rail,
.prui-contact-rail * {
    box-sizing: border-box;
}

.prui-contact-rail--overlay {
    position: fixed;
    top: var(--prui-rail-widget-top, var(--prui-rail-top));
    right: var(--prui-rail-widget-right, var(--prui-rail-right));
    z-index: var(--prui-rail-z-index);
    transform: translateY(-50%);
}

.prui-contact-rail--inline {
    position: relative;
    margin-inline: auto;
}

.prui-global-contact-host {
    position: relative;
    z-index: 999;
}

.prui-contact-rail--global {
    --prui-rail-z-index: 999;
}

.prui-contact-rail__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    min-height: max(44px, var(--prui-item-min-height));
    gap: 8px;
    color: var(--prui-label-color);
    text-align: center;
    text-decoration: none;
    border-radius: 14px;
    outline: 0;
    -webkit-tap-highlight-color: transparent;
    transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.prui-contact-rail__item:hover {
    color: var(--prui-label-color);
    text-decoration: none;
    transform: translateY(-2px);
}

.prui-contact-rail__item:focus-visible {
    color: var(--prui-label-color);
    outline: 3px solid rgba(237, 28, 36, 0.32);
    outline-offset: 4px;
}

.prui-contact-rail__icon {
    display: inline-flex;
    flex: 0 0 var(--prui-contact-icon-circle-size, var(--prui-icon-box-size));
    align-items: center;
    justify-content: center;
    width: var(--prui-contact-icon-circle-size, var(--prui-icon-box-size));
    height: var(--prui-contact-icon-circle-size, var(--prui-icon-box-size));
    overflow: hidden;
    color: var(--prui-item-icon-color, var(--prui-contact-icon-color, var(--prui-icon-color)));
    background: var(--prui-item-icon-background, var(--prui-global-icon-background, var(--prui-type-icon-background, var(--prui-icon-background))));
    border-radius: 999px;
    line-height: 1;
}

.prui-contact-rail__item--line .prui-contact-rail__icon,
.prui-contact-rail__item--phone .prui-contact-rail__icon {
    --prui-type-icon-background: #08aa3d;
}

.prui-contact-rail__item--chat .prui-contact-rail__icon {
    --prui-type-icon-background: #f62e78;
}

.prui-contact-rail__icon i,
.prui-contact-rail__icon svg {
    display: block;
    width: var(--prui-contact-icon-size, var(--prui-icon-size));
    height: var(--prui-contact-icon-size, var(--prui-icon-size));
    color: inherit;
    fill: currentColor;
    font-size: var(--prui-contact-icon-size, var(--prui-icon-size));
    line-height: 1;
}

.prui-contact-rail__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.prui-contact-rail__copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    gap: 1px;
}

.prui-contact-rail__label,
.prui-contact-rail__secondary {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.prui-contact-rail__item--phone .prui-contact-rail__label {
    font-size: 12px;
    white-space: nowrap;
}

.prui-contact-rail__label {
    color: var(--prui-label-color);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
}

.prui-contact-rail__secondary {
    color: var(--prui-secondary-color);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
}

.prui-contact-rail__label:empty,
.prui-contact-rail__secondary:empty,
.prui-contact-rail__copy:empty {
    display: none;
}

.prui-language {
    --prui-language-min-width: 185px;
    --prui-language-trigger-height: 44px;
    --prui-language-trigger-padding-x: 14px;
    --prui-language-trigger-gap: 10px;
    --prui-language-trigger-background: #ffffff;
    --prui-language-trigger-color: #111827;
    --prui-language-trigger-border-color: #e6e7eb;
    --prui-language-trigger-border-width: 1px;
    --prui-language-trigger-radius: 7px;
    --prui-language-menu-background: #f5e7ea;
    --prui-language-menu-color: #111827;
    --prui-language-menu-radius: 2px;
    --prui-language-menu-shadow: 0 12px 28px rgba(15, 23, 42, 0.15);
    --prui-language-option-hover: rgba(255, 255, 255, 0.66);
    --prui-language-accent: #c70024;
    --prui-language-flag-width: 24px;
    position: relative;
    display: inline-block;
    width: min(100%, var(--prui-language-min-width));
    min-width: min(100%, var(--prui-language-min-width));
    color: var(--prui-language-trigger-color);
    font-size: 14px;
    line-height: 1.3;
    text-align: start;
}

.prui-language,
.prui-language * {
    box-sizing: border-box;
}

.prui-language__trigger {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: max(44px, var(--prui-language-trigger-height));
    padding: 6px var(--prui-language-trigger-padding-x);
    gap: var(--prui-language-trigger-gap);
    color: var(--prui-language-trigger-color);
    background: var(--prui-language-trigger-background);
    border: var(--prui-language-trigger-border-width) solid var(--prui-language-trigger-border-color);
    border-radius: var(--prui-language-trigger-radius);
    box-shadow: none;
    font: inherit;
    line-height: inherit;
    text-align: start;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.prui-language__trigger:hover {
    color: var(--prui-language-trigger-color);
    background: var(--prui-language-trigger-background);
    border-color: var(--prui-language-accent);
}

.prui-language__trigger:focus-visible,
.prui-language__option:focus-visible {
    outline: 3px solid rgba(199, 0, 36, 0.28);
    outline-offset: 2px;
}

.prui-language__current-flag,
.prui-language__flag {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: var(--prui-language-flag-width);
    min-height: 18px;
    overflow: hidden;
    font-size: 20px;
    line-height: 1;
}

.prui-language__current-flag img,
.prui-language__flag img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 20px;
    object-fit: cover;
}

.prui-language__flag-art {
    display: block;
    width: 24px;
    height: 16px;
    overflow: hidden;
    background-color: #e8e8e8;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 1px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.22) inset;
}

.prui-language__flag-art--th {
    background: linear-gradient(
        to bottom,
        #a51931 0 16.667%,
        #f4f5f8 16.667% 33.333%,
        #2d2a4a 33.333% 66.667%,
        #f4f5f8 66.667% 83.333%,
        #a51931 83.333% 100%
    );
}

.prui-language__flag-art--en {
    background:
        linear-gradient(33deg, transparent 43%, #ffffff 43% 57%, transparent 57%),
        linear-gradient(-33deg, transparent 43%, #ffffff 43% 57%, transparent 57%),
        linear-gradient(33deg, transparent 48%, #c8102e 48% 52%, transparent 52%),
        linear-gradient(-33deg, transparent 48%, #c8102e 48% 52%, transparent 52%),
        linear-gradient(90deg, transparent 38%, #ffffff 38% 62%, transparent 62%),
        linear-gradient(transparent 32%, #ffffff 32% 68%, transparent 68%),
        linear-gradient(90deg, transparent 44%, #c8102e 44% 56%, transparent 56%),
        linear-gradient(transparent 40%, #c8102e 40% 60%, transparent 60%),
        #012169;
}

.prui-language__current-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prui-language__chevron {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-inline-start: auto;
    color: var(--prui-language-accent);
    transition: transform 160ms ease;
}

.prui-language__chevron::before {
    width: 50%;
    height: 50%;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: translateY(-2px) rotate(45deg);
}

.prui-language.is-open .prui-language__chevron {
    transform: rotate(180deg);
}

.prui-language__menu {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    z-index: 999;
    display: grid;
    width: max(100%, 185px);
    max-width: min(320px, calc(100vw - 24px));
    margin: 0;
    padding: 7px 0;
    gap: 0;
    color: var(--prui-language-menu-color);
    background: var(--prui-language-menu-background);
    border: 0;
    border-radius: var(--prui-language-menu-radius);
    box-shadow: var(--prui-language-menu-shadow);
    list-style: none;
}

.prui-language__menu[hidden] {
    display: none !important;
}

.prui-language__menu li {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
}

.prui-language__option {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: 8px 14px;
    gap: 11px;
    color: var(--prui-language-menu-color);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font: inherit;
    line-height: 1.3;
    text-align: start;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.prui-language__option:hover,
.prui-language__option:focus-visible,
.prui-language__option.is-active {
    color: var(--prui-language-menu-color);
    background: var(--prui-language-option-hover);
}

.prui-language__option.is-active {
    font-weight: 700;
}

.prui-language__option.is-active::after {
    margin-inline-start: auto;
    color: var(--prui-language-accent);
    content: "\2713";
    font-weight: 700;
}

.prui-language__option-label {
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 767px) {
    .prui-contact-rail,
    .prui-contact-rail--overlay,
    .prui-contact-rail--inline {
        position: relative;
        inset: auto;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: min(var(--prui-rail-widget-width, 100%), 100%);
        max-width: 100%;
        padding: 14px;
        gap: 10px;
        transform: none;
    }

    .prui-contact-rail--mobile-vertical {
        display: flex;
        flex-direction: column;
    }

    .prui-contact-rail--mobile-compact .prui-contact-rail__copy {
        display: none;
    }

    .prui-contact-rail__item {
        min-height: 74px;
        padding: 4px;
        gap: 6px;
    }

    .prui-contact-rail__label,
    .prui-contact-rail__secondary {
        font-size: 13px;
    }

    .prui-language {
        width: min(100%, var(--prui-language-min-width));
    }

    .prui-language__menu {
        right: 0;
        left: auto;
    }

    .prui-contact-rail--global {
        position: fixed;
        right: auto;
        bottom: 10px;
        left: 50%;
        z-index: 999;
        width: min(520px, calc(100vw - 20px));
        padding: 10px 12px;
        gap: 8px;
        border-radius: 18px;
        transform: translateX(-50%);
    }

    .prui-contact-rail--global .prui-contact-rail__item {
        min-height: 62px;
    }

    .prui-contact-rail--global .prui-contact-rail__icon {
        --prui-contact-icon-circle-size: 40px;
        --prui-contact-icon-size: 23px;
    }
}

@media (max-width: 479px) {
    .prui-contact-rail,
    .prui-contact-rail--overlay,
    .prui-contact-rail--inline {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
    }

    .prui-contact-rail--mobile-horizontal,
    .prui-contact-rail--mobile-compact {
        grid-template-columns: repeat(3, minmax(82px, 1fr));
    }

    .prui-contact-rail__copy {
        gap: 0;
    }

    .prui-contact-rail__label,
    .prui-contact-rail__secondary {
        font-size: 12px;
    }

    .prui-language__trigger {
        padding-inline: 10px;
        gap: 8px;
    }

    .prui-language__menu {
        max-width: calc(100vw - 16px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .prui-contact-rail__item,
    .prui-language__trigger,
    .prui-language__chevron {
        scroll-behavior: auto;
        transition: none;
    }
}
