



.sm27-contact-page,
.sm27-contact-page * {

    box-sizing:
        border-box;

}


.sm27-contact-page {

    --contact-red:
        #5A1725;

    --contact-red-dark:
        #5A1725;

    --contact-text:
        #111318;

    --contact-muted:
        #6d7178;

    --contact-glass:
        rgba(255,255,255,.73);

    --contact-glass-strong:
        rgba(255,255,255,.88);

    --contact-shadow:
        0 24px 80px
        rgba(15,18,24,.11);

    --contact-shadow-soft:
        0 12px 35px
        rgba(15,18,24,.07);

    --contact-ease:
        cubic-bezier(.22,1,.36,1);

    position:
        relative;

    isolation:
        isolate;

    overflow:
        clip;

    color:
        var(--contact-text);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Display",
        "SF Pro Text",
        Inter,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    -webkit-font-smoothing:
        antialiased;

    text-rendering:
        optimizeLegibility;

    background:

        radial-gradient(
            circle at 10% 12%,
            rgba(134,31,42,.07),
            transparent 28%
        ),

        radial-gradient(
            circle at 92% 18%,
            rgba(134,31,42,.05),
            transparent 25%
        ),

        linear-gradient(
            180deg,
            #f5f5f7 0%,
            #f1f1f3 100%
        );

}


.sm27-contact-page a {

    text-decoration:
        none;

}






#sm27SuccessOverlay {

    position:
        fixed;

    inset:
        0;

    z-index:
        2147483647;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        20px;

    background:
        rgba(255,255,255,.28);

    backdrop-filter:
        blur(20px)
        saturate(155%);

    -webkit-backdrop-filter:
        blur(20px)
        saturate(155%);

    opacity:
        0;

    visibility:
        hidden;

    pointer-events:
        none;

    transition:

        opacity .18s ease,

        visibility .18s ease;

}


#sm27SuccessOverlay.show {

    opacity:
        1;

    visibility:
        visible;

}






.sm27-success-card {

    position:
        relative;

    width:
        min(
            265px,
            calc(100vw - 40px)
        );

    min-height:
        235px;

    padding:
        32px 25px 27px;

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(255,255,255,.85);

    border-radius:
        30px;

    background:

        linear-gradient(
            145deg,
            rgba(255,255,255,.86),
            rgba(255,255,255,.60)
        ),

        rgba(255,255,255,.70);

    box-shadow:

        0 35px 90px
        rgba(0,0,0,.20),

        0 12px 30px
        rgba(0,0,0,.08),

        inset 0 1px 0
        rgba(255,255,255,1);

    backdrop-filter:
        blur(35px)
        saturate(180%);

    -webkit-backdrop-filter:
        blur(35px)
        saturate(180%);

    transform:
        translateY(25px)
        scale(.82);

    opacity:
        0;

}


#sm27SuccessOverlay.show
.sm27-success-card {

    animation:
        successCardIn
        .46s
        cubic-bezier(.16,1,.3,1)
        forwards;

}


#sm27SuccessOverlay.hide
.sm27-success-card {

    animation:
        successCardOut
        .22s
        cubic-bezier(.4,0,1,1)
        forwards;

}


@keyframes successCardIn {

    0% {

        opacity:
            0;

        transform:
            translateY(25px)
            scale(.82);

        filter:
            blur(8px);

    }

    55% {

        opacity:
            1;

        transform:
            translateY(-4px)
            scale(1.035);

        filter:
            blur(0);

    }

    100% {

        opacity:
            1;

        transform:
            translateY(0)
            scale(1);

        filter:
            blur(0);

    }

}


@keyframes successCardOut {

    from {

        opacity:
            1;

        transform:
            translateY(0)
            scale(1);

        filter:
            blur(0);

    }

    to {

        opacity:
            0;

        transform:
            translateY(-8px)
            scale(.94);

        filter:
            blur(5px);

    }

}






.sm27-success-icon-wrap {

    position:
        relative;

    width:
        100px;

    height:
        100px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

}






.sm27-success-glow {

    position:
        absolute;

    inset:
        50%;

    width:
        88px;

    height:
        88px;

    border-radius:
        50%;

    transform:
        translate(-50%,-50%);

    background:
        rgba(128,0,0,.08);

    box-shadow:
        0 0 45px
        rgba(128,0,0,.15);

    opacity:
        0;

}


#sm27SuccessOverlay.show
.sm27-success-glow {

    animation:
        successGlow
        .8s
        ease-out
        .05s
        forwards;

}


@keyframes successGlow {

    0% {

        transform:
            translate(-50%,-50%)
            scale(.55);

        opacity:
            0;

    }

    35% {

        opacity:
            1;

    }

    100% {

        transform:
            translate(-50%,-50%)
            scale(1.15);

        opacity:
            .65;

    }

}






.sm27-success-ring {

    position:
        absolute;

    top:
        50%;

    left:
        50%;

    width:
        68px;

    height:
        68px;

    border:
        1.5px solid
        rgba(134,31,42,.17);

    border-radius:
        50%;

    transform:
        translate(-50%,-50%)
        scale(.6);

    opacity:
        0;

}


#sm27SuccessOverlay.show
.sm27-success-ring:nth-child(1) {

    animation:
        successRing
        .95s
        cubic-bezier(.16,1,.3,1)
        .08s
        forwards;

}


#sm27SuccessOverlay.show
.sm27-success-ring:nth-child(2) {

    animation:
        successRing
        .95s
        cubic-bezier(.16,1,.3,1)
        .22s
        forwards;

}


#sm27SuccessOverlay.show
.sm27-success-ring:nth-child(3) {

    animation:
        successRing
        .95s
        cubic-bezier(.16,1,.3,1)
        .36s
        forwards;

}


@keyframes successRing {

    0% {

        transform:
            translate(-50%,-50%)
            scale(.55);

        opacity:
            0;

    }

    25% {

        opacity:
            .45;

    }

    100% {

        transform:
            translate(-50%,-50%)
            scale(1.62);

        opacity:
            0;

    }

}






.sm27-success-icon {

    position:
        relative;

    z-index:
        10;

    width:
        70px;

    height:
        70px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(255,255,255,.94);

    border-radius:
        50%;

    background:

        linear-gradient(
            145deg,
            rgba(255,255,255,.96),
            rgba(255,248,249,.72)
        );

    color:
        #741722;

    font-size:
        27px;

    box-shadow:

        0 15px 36px
        rgba(134,31,42,.15),

        0 0 0 6px
        rgba(134,31,42,.035),

        inset 0 1px 0
        rgba(255,255,255,1);

    transform:
        scale(.35);

    opacity:
        0;

}


#sm27SuccessOverlay.show
.sm27-success-icon {

    animation:
        successIcon
        .5s
        cubic-bezier(.16,1,.3,1)
        .08s
        forwards;

}


@keyframes successIcon {

    0% {

        transform:
            scale(.35);

        opacity:
            0;

    }

    55% {

        transform:
            scale(1.13);

        opacity:
            1;

    }

    78% {

        transform:
            scale(.96);

    }

    100% {

        transform:
            scale(1);

        opacity:
            1;

    }

}






.sm27-success-icon i {

    opacity:
        0;

    transform:
        scale(.25)
        rotate(-22deg);

}


#sm27SuccessOverlay.show
.sm27-success-icon i {

    animation:
        successCheck
        .32s
        cubic-bezier(.16,1,.3,1)
        .32s
        forwards;

}


@keyframes successCheck {

    0% {

        opacity:
            0;

        transform:
            scale(.25)
            rotate(-22deg);

    }

    70% {

        opacity:
            1;

        transform:
            scale(1.12)
            rotate(4deg);

    }

    100% {

        opacity:
            1;

        transform:
            scale(1)
            rotate(0);

    }

}






.sm27-success-title {

    margin-top:
        15px;

    color:
        #171719;

    font-size:
        20px;

    font-weight:
        850;

    letter-spacing:
        -.03em;

    opacity:
        0;

    transform:
        translateY(8px);

}


#sm27SuccessOverlay.show
.sm27-success-title {

    animation:
        successText
        .35s
        cubic-bezier(.16,1,.3,1)
        .28s
        forwards;

}


.sm27-success-subtitle {

    margin-top:
        5px;

    color:
        rgba(35,35,38,.55);

    font-size:
        11.5px;

    font-weight:
        600;

    text-align:
        center;

    line-height:
        1.4;

    opacity:
        0;

    transform:
        translateY(8px);

}


#sm27SuccessOverlay.show
.sm27-success-subtitle {

    animation:
        successText
        .35s
        cubic-bezier(.16,1,.3,1)
        .34s
        forwards;

}


@keyframes successText {

    from {

        opacity:
            0;

        transform:
            translateY(8px);

    }

    to {

        opacity:
            1;

        transform:
            translateY(0);

    }

}






.sm27-contact-hero {

    position:
        relative;

    isolation:
        isolate;

    overflow:
        hidden;

    min-height:
        clamp(
            380px,
            45vw,
            540px
        );

    display:
        flex;

    align-items:
        flex-end;

    background:
        #170607;

    border-radius:
        0 0 42px 42px;

}


.sm27-contact-hero::before {

    content:
        "";

    position:
        absolute;

    inset:
        0;

    z-index:
        -2;

    background:

        radial-gradient(
            circle at 72% 20%,
            rgba(255,255,255,.18),
            transparent 23%
        ),

        linear-gradient(
            180deg,
            rgba(7,0,0,.06) 0%,
            rgba(7,0,0,.12) 28%,
            rgba(7,0,0,.48) 63%,
            rgba(7,0,0,.94) 100%
        ),

        linear-gradient(
            90deg,
            rgba(84,4,13,.28),
            transparent 54%,
            rgba(0,0,0,.16)
        );

}


.sm27-contact-hero-inner {

    position:
        relative;

    z-index:
        2;

    width:
        min(
            1200px,
            calc(100% - 56px)
        );

    margin:
        0 auto;

    padding:
        130px 0 54px;

}


.sm27-contact-hero-glass {

    width:
        min(
            880px,
            100%
        );

    padding:
        32px 34px;

    border:
        1px solid
        rgba(255,255,255,.23);

    border-radius:
        28px;

    background:
        rgba(30,8,8,.32);

    box-shadow:
        0 24px 66px
        rgba(0,0,0,.25);

    backdrop-filter:
        blur(24px)
        saturate(145%);

    -webkit-backdrop-filter:
        blur(24px)
        saturate(145%);

}


.sm27-contact-hero-kicker {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    min-height:
        33px;

    padding:
        0 13px;

    border:
        1px solid
        rgba(255,255,255,.25);

    border-radius:
        999px;

    background:
        rgba(255,255,255,.11);

    color:
        rgba(255,255,255,.94);

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        .11em;

    text-transform:
        uppercase;

}


.sm27-contact-hero-title {

    margin:
        16px 0 0;

    color:
        #fff;

    font-size:
        clamp(
            2.4rem,
            5vw,
            4.2rem
        );

    font-weight:
        820;

    line-height:
        .96;

    letter-spacing:
        -.06em;

}


.sm27-contact-hero-description {
    max-width: 650px;
    margin: 16px 0 0;
    color: rgba(255,255,255,.88);
    font-size: 15px;
    line-height: 1.72;
}

.sm27-contact-breadcrumbs {

    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    margin-top:
        18px;

    color:
        rgba(255,255,255,.64);

    font-size:
        11px;

    font-weight:
        700;

}


.sm27-contact-breadcrumbs a {

    color:
        #fff !important;

}






.sm27-contact-section {

    position:
        relative;

    padding:
        64px 0 96px;

}


.sm27-contact-container {

    width:
        min(
            1200px,
            calc(100% - 56px)
        );

    margin:
        0 auto;

}


.sm27-contact-grid {

    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:
        28px;

    align-items:
        stretch;

}


.sm27-contact-card {

    position:
        relative;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        space-between;

    padding:
        38px;

    border:
        1px solid
        rgba(255,255,255,.84);

    border-radius:
        28px;

    background:
        var(--contact-glass);

    box-shadow:

        var(--contact-shadow-soft),

        inset 0 1px 0
        rgba(255,255,255,.94);

    backdrop-filter:
        blur(24px)
        saturate(135%);

    -webkit-backdrop-filter:
        blur(24px)
        saturate(135%);

    transition:

        transform .45s
        var(--contact-ease),

        box-shadow .45s
        var(--contact-ease),

        border-color .45s
        var(--contact-ease),

        background .45s
        var(--contact-ease);

}


.sm27-contact-card:hover {

    transform:
        translateY(-4px);

    border-color:
        rgba(255,255,255,.98);

    background:
        var(--contact-glass-strong);

    box-shadow:

        var(--contact-shadow),

        inset 0 1px 0
        rgba(255,255,255,.98);

}


.sm27-card-heading {

    margin:
        0 0 12px;

    color:
        var(--contact-red);

    font-size:
        1.35rem;

    font-weight:
        820;

    letter-spacing:
        -.02em;

}


.sm27-card-desc {

    color:
        var(--contact-muted);

    font-size:
        14px;

    line-height:
        1.6;

    margin:
        0 0 24px;

}






.sm27-info-list {

    list-style:
        none;

    padding:
        0;

    margin:
        0;

}


 .sm27-info-item {

    margin-bottom:
        14px;

}


.sm27-info-item:last-child {

    margin-bottom:
        0;

}


.sm27-info-link {

    width:
        100%;

    min-height:
        58px;

    display:
        flex;

    align-items:
        center;

    gap:
        14px;

    padding:
        9px 11px;

    border:
        1px solid
        rgba(134,31,42,.08);

    border-radius:
        16px;

    color:
        var(--contact-text) !important;

    background:
        rgba(255,255,255,.38);

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.72);

    transition:
        transform .25s
        var(--contact-ease),

        border-color .25s
        var(--contact-ease),

        background .25s
        var(--contact-ease),

        box-shadow .25s
        var(--contact-ease);

}


.sm27-info-link:hover {

    color:
        var(--contact-text) !important;

    transform:
        translateX(3px);

    border-color:
        rgba(134,31,42,.17);

    background:
        rgba(255,255,255,.78);

    box-shadow:
        0 9px 22px
        rgba(134,31,42,.07),

        inset 0 1px 0
        rgba(255,255,255,.92);

}


.sm27-info-link:focus-visible {

    outline:
        3px solid
        rgba(134,31,42,.16);

    outline-offset:
        2px;

}


.sm27-info-icon {

    flex:
        0 0 40px;

    width:
        40px;

    height:
        40px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(255,255,255,.82);

    border-radius:
        13px;

    background:
        linear-gradient(
            145deg,
            rgba(134,31,42,.11),
            rgba(134,31,42,.045)
        );

    color:
        var(--contact-red);

    font-size:
        14px;

    box-shadow:
        0 6px 14px
        rgba(134,31,42,.10),

        inset 0 1px 0
        rgba(255,255,255,.94);

}


.sm27-info-value {

    min-width:
        0;

    flex:
        1;

    color:
        var(--contact-text);

    font-size:
        14px;

    font-weight:
        650;

    line-height:
        1.55;

    overflow-wrap:
        anywhere;

}


.sm27-info-link-address {

    align-items:
        flex-start;

}


.sm27-info-link-address .sm27-info-icon {

    margin-top:
        1px;

}






.sm27-form-group {

    margin-bottom:
        18px;

}


.sm27-form-row {

    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:
        14px;

}


.sm27-control {

    width:
        100%;

    min-height:
        48px;

    padding:
        12px 16px;

    border:
        1px solid
        rgba(0,0,0,.1);

    border-radius:
        14px;

    background:
        rgba(255,255,255,.85);

    color:
        var(--contact-text);

    font-family:
        inherit;

    font-size:
        13.5px;

    outline:
        none;

    transition:
        all .2s ease;

}


.sm27-control:focus {

    border-color:
        rgba(134,31,42,.35);

    background:
        #fff;

    box-shadow:
        0 0 0 4px
        rgba(134,31,42,.08);

}


textarea.sm27-control {

    min-height:
        120px;

    resize:
        vertical;

    line-height:
        1.6;

}


.sm27-form-help {

    margin-top:
        7px;

    color:
        rgba(109,113,120,.86);

    font-size:
        10.5px;

    line-height:
        1.45;

}






.sm27-btn-submit {

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    width:
        100%;

    min-height:
        48px;

    padding:
        0 22px;

    border:
        none;

    border-radius:
        14px;

    background:
        linear-gradient(
            135deg,
            var(--contact-red),
            var(--contact-red-dark)
        );

    color:
        #fff !important;

    font-family:
        inherit;

    font-size:
        13.5px;

    font-weight:
        800;

    cursor:
        pointer;

    box-shadow:
        0 10px 24px
        rgba(134,31,42,.22);

    transition:
        transform .25s
        var(--contact-ease),

        filter .25s ease;

}


.sm27-btn-submit:hover {

    transform:
        translateY(-2px);

    filter:
        brightness(1.05);

}


.sm27-btn-submit:disabled {

    opacity:
        .65;

    cursor:
        wait;

    transform:
        none;

}






.sm27-map-card {

    margin-top:
        28px;

    padding:
        38px;

    border:
        1px solid
        rgba(255,255,255,.84);

    border-radius:
        28px;

    background:
        var(--contact-glass);

    box-shadow:

        var(--contact-shadow-soft),

        inset 0 1px 0
        rgba(255,255,255,.94);

    backdrop-filter:
        blur(24px)
        saturate(135%);

    -webkit-backdrop-filter:
        blur(24px)
        saturate(135%);

}


.sm27-map-head {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    flex-wrap:
        wrap;

    gap:
        16px;

    margin-bottom:
        22px;

}


.sm27-map-title {

    margin:
        0;

    color:
        var(--contact-red);

    font-size:
        1.2rem;

    font-weight:
        820;

    letter-spacing:
        -.01em;

}


/* Keep the map action legible above the legacy global a:hover rule. */
.sm27-public-body .sm27-btn-direction {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 14px;
    background: var(--contact-red);
    color: #fff !important;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 8px 20px rgba(134,31,42,.2);
    transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.sm27-public-body .sm27-btn-direction:hover,
.sm27-public-body .sm27-btn-direction:focus-visible {
    transform: translateY(-2px);
    background: #761f32;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(90,23,37,.25);
}

.sm27-public-body .sm27-btn-direction:focus-visible {
    outline: 3px solid var(--contact-red);
    outline-offset: 3px;
}

.sm27-public-body .sm27-btn-direction :is(i, span) {
    color: inherit;
}

.sm27-map-frame {

    width:
        100%;

    height:
        450px;

    border:
        0;

    border-radius:
        20px;

    box-shadow:
        0 12px 30px
        rgba(0,0,0,.08);

}






@media (max-width:992px) {

    .sm27-contact-grid {

        grid-template-columns:
            1fr;

        gap:
            20px;

    }


    .sm27-contact-hero {

        min-height:
            380px;

        border-radius:
            0 0 28px 28px;

    }


    .sm27-contact-hero-inner,
    .sm27-contact-container {

        width:
            min(
                calc(100% - 30px),
                760px
            );

    }


    .sm27-contact-hero-glass {

        padding:
            24px 20px;

        border-radius:
            22px;

    }


    .sm27-contact-card,
    .sm27-map-card {

        padding:
            26px 20px;

        border-radius:
            22px;

    }

}


@media (max-width:575px) {

    .sm27-contact-hero-inner,
    .sm27-contact-container {

        width:
            calc(
                100% - 22px
            );

    }


    .sm27-contact-hero-title {

        font-size:
            2.2rem;

    }


    .sm27-contact-card,
    .sm27-map-card {

        padding:
            20px 16px;

    }


    .sm27-form-row {

        grid-template-columns:
            1fr;

        gap:
            0;

    }


    .sm27-map-frame {

        height:
            350px;

    }


    .sm27-success-card {

        width:
            min(
                250px,
                calc(100vw - 36px)
            );

        min-height:
            220px;

        border-radius:
            28px;

    }


    .sm27-success-icon-wrap {

        width:
            90px;

        height:
            90px;

    }


    .sm27-success-icon {

        width:
            66px;

        height:
            66px;

        font-size:
            24px;

    }

}






@media (prefers-reduced-motion: reduce) {

    #sm27SuccessOverlay *,
    .sm27-contact-card,
    .sm27-btn-submit,
    .sm27-btn-direction {

        animation:
            none !important;

        transition:
            none !important;

    }

}
