@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');

:root {
    --main-color: #065E2C;
    --green-color: #136C43;
    --text-color: #6C6C6C;
}

@font-face {
    font-family: Averta;
    src: url("fonts/Averta-Regular.ttf");
    font-weight: normal;
}

@font-face {
    font-family: Averta;
    src: url("fonts/Averta.ttf");
    font-weight: bold;
}

body {
    font-family: Averta;
    margin: auto;
}

body.no-scroll {
    overflow: hidden;
}

.main-content {
    max-width: 1200px;
    padding: 90px 20px 130px;
    margin: auto;
}

.mobile-only {
    display: none;
}

.bg-pattern {
    min-height: 45px;
    background-image: url("https://lacasadetono.mx/wp-content/uploads/2024/05/image-575.svg");
    opacity: 0.1;
}

.modal--hidden {
    display: none;
}

.hidden {
    display: none;
}

.heading {
    color: var(--green-color);
    text-align: center;
    text-transform: uppercase;
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 700;
    line-height: 100%;
    margin-bottom: 25px;
}

.breadcrumb {
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 30px;
    font-family: Averta;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;

    & .breadcrumb__personal {
        color: #6C6C6C;
    }
}

body:has([data-type="ticket"]) {

    & .breadcrumb__personal {
        color: #000;
    }

    & .breadcrumb__ticket {
        color: #000;
        font-weight: 700;
    }
}

body:has([data-type="personal"]) {

    & .breadcrumb__personal {
        color: #000;
        font-weight: 700;
    }

    & .breadcrumb__ticket {
        color: #000;
        font-weight: 400;
    }
}

.notice {
    color: #000;
    text-align: center;
    font-family: Averta;
    font-size: 15px;
    margin-bottom: 30px;

    & b {
        text-transform: uppercase;
    }

    & span {
        color: #044822;
        font-weight: 700;
    }
}

.container {
    max-width: 820px;
    margin: auto;
    display: flex;
    gap: 0px;
    border-radius: 16px;
}

.container--block {
    display: block;
    width: 100%;
    margin: 0;
}

.container__column {
    flex: 1;
    align-content: center;
    background-color: var(--green-color);
    padding: 25px 40px 20px;
    border-radius: 16px 0 0 16px;
}

.container__column--form {
    padding: 35px 25px 40px;
    border-radius: 0 16px 16px 0;
}

.container__column--ticket {
    flex: 0 0 35%;
    background-color: #F9F9F9;
}

.form {

    display: flex;
    flex-direction: column;
    gap: 0px;
    position: relative;

    & select:has(option[value="0"]:checked) {
        color: #999;
    }

    & option {
        background: white;
    }

    & option[value="0"] {
        display: none;
    }

    & ::placeholder {
        color: #999;
    }

    & .total-table {

        border-radius: 9px;
        background-color: transparent;
        border: none;
        letter-spacing: -0.4px;
        font-size: 13px;
        border-collapse: initial;
        border-spacing: 0;

        & tbody {
            background-color: rgba(0, 0, 0, 0.04);
            border: none;
        }

        & .table-heading {
            color: var(--green-color);

            & th {
                font-weight: 400;
                background: #FFF;
            }

            & th:first-of-type {
                border-radius: 9px 0 0 0;
            }

            & th:last-of-type {
                border-radius: 0 9px 0 0;
            }
        }

        & .table-row {
            background-color: transparent;
            color: #FFF;
            text-align: center;
            font-style: normal;
            font-weight: 400;
        }

        & .total-row {
            background-color: transparent;
            text-align: center;
            color: #FFF;

            &.sub {
                background-color: #13623D;
            }

            &:last-of-type td:first-of-type {
                border-radius: 0 0 0 9px;
            }

            &:last-of-type td:last-of-type {
                border-radius: 0 0 9px 0;
            }
        }
    }

}

.form--step-1 {
    gap: 25px;
}

.form__steps-indicator {
    font-size: 15px;
    line-height: 1em;
    letter-spacing: -0.4px;
    color: #BFD32B;
    text-align: right;
    display: inline-block;
    width: fit-content;
    align-self: self-end;
    background-color: rgba(22, 22, 22, 0.13);
    padding: 5px 15px;
    border-radius: 70px;
}

.form--step-3 .form__steps-indicator {
    position: absolute;
    right: 0;
    top: -3px;
}

.form__step {
    display: none;
    flex-direction: column;
    gap: 20px;
}

.form__row {
    display: flex;
    gap: 10px
}

.form__field {
    display: block;
    width: 100%;
}

.form__field--3 {
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.form__field--rfc {
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.form__message {
    display: block;
    color: #FFF;
    font-size: 12px;
    margin-top: 5px;
}

.submit-button,
.submit-button:focus,
.submit-button:focus-visible {
    width: 100%;
    background-color: #FFF;
    border: none;
    border-radius: 82px;
    color: var(--green-color);
    text-align: center;
    font-size: 15px;
    padding: 10px;
    margin-top: 10px;
    font-family: Averta;
    font-weight: 700;
    line-height: 130%;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
}

.submit-button--solid, .submit-button--solid:focus, .submit-button--solid:focus-visible {
    background: var(--main-color);
    color: #FFF;
    padding: 16.5px 20px;
    margin-top: 0;
}

.submit-button--auto, .submit-button--auto:focus, .submit-button--auto:focus-visible {
    padding: 10px 0px;
    width: auto;
    min-width: 190px;
    margin-top: 0;
}

.form__input, .form__input:focus, .form__input:focus-visible {
    margin: 0;
    height: auto;
    padding: 10px 25px 10px 16px;
    border-radius: 5px;
    box-shadow: none;
    border: none;
    color: #000;
    font-family: Averta;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.3em;
}

.form__input--rfc, .form__input--rfc:focus, .form__input--rfc:focus-visible {
    text-align: center;
    margin-bottom: 12px;
}

.form__input--textarea {
    font-size: 14px;
    padding-right: 50px;
}

.form__label {
    color: #FFF;
    font-family: Averta;
    font-size: 15px;
    margin-bottom: 15px;
    letter-spacing: -0.4px;
    line-height: 1em;
}

.form__label--rfc {
    text-align: center;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 0;
}

.form__title {
    color: #FFF;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.4px;
    margin-bottom: 15px;
}

.container--rfc {

    max-width: 860px;
    padding: 25px 35px 35px 20px;
    gap: 30px;
    background-color: var(--green-color);

    & .container__column--ticket {
        max-height: 400px;
        flex: 0 0 40%;
        align-content: center;
        text-align: center;
        background-color: #F9F9F9;
        padding: 30px 35px 50px;
        border-radius: 8px;

        & img {
            margin-bottom: 30px;
            width: 70px;
        }

        & .data-container-title {
            font-family: "Barlow", sans-serif;
            color: #000;
            text-align: center;
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            padding-bottom: 25px;
            margin-bottom: 15px;
            border-bottom: 1px solid #ECECEC;
        }

        & .data-table__row {
            display: flex;
            justify-content: space-between;
            padding-bottom: 15px;
            margin-bottom: 23px;
            border-bottom: 1px solid #ECECEC;
            color: #000;
            font-family: "Barlow", sans-serif;
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;

            &.address {
                flex-direction: column;
                text-align: left;
                border-bottom: none;
                gap: 12px;

                & .address-text {
                    text-transform: none;
                }
            }
        }

        & .data-table__row:last-of-type {
            margin-bottom: 0;
        }
    }

    & .verify-rfc {
        background-color: rgba(22, 22, 22, 0.08);
        border-radius: 13px;
        color: #FFF;
        padding: 15px 15px 20px 15px;
        text-align: center;
        margin-top: 20px;
        margin-bottom: 25px;

        & .single-letters {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
        }

        & .single-letters span {
            flex: 1 0 16.66%;
            box-sizing: border-box;
            margin-bottom: 15px;
            color: #BFD32B;
            text-align: center;
            font-family: "Inter", sans-serif;
            font-size: 16.951px;
            font-weight: 700;
            letter-spacing: -0.452px;
        }
    }

    & h4 {
        font-family: Averta;
        font-size: 15px;
        font-weight: 400;
        letter-spacing: -0.4px;
        margin-bottom: 15px;
    }

    & .sat-link {
        font-size: 15px;
        color: #FFF;

        & a {
            color: #FFF;
            font-weight: 700;
        }
    }

}

.buttons-container {
    display: flex;
    justify-content: space-between;
}

.privacy-policy-container {

    font-size: 14px;
    max-width: 820px;
    margin: auto;

    & .privacy-policy {
        background: #F9F9F9;
        margin-bottom: 32px;
        padding: 22px 30px 17px 45px;
        border-radius: 16px;
    }

    & .privacy-policy-inner {

        max-height: 500px;
        overflow-y: scroll;
        padding-right: 25px;

        &::-webkit-scrollbar {
            width: 4px;
        }

        &::-webkit-scrollbar-track {
            background: #FAFAFA;
        }

        &::-webkit-scrollbar-thumb {
            background-color: var(--main-color);
            border-radius: 20px;
        }
    }

    & h2 {
        font-size: 24px;
    }

}

.ticket-modal-link {
    display: none;
}

@media (max-width: 767px) {

    .main-content {
        padding: 45px 20px;
    }

    .mobile-only {
        display: block;
    }

    .heading {
        font-size: 30px;
        margin-bottom: 20px;
    }

    .breadcrumb {
        margin-bottom: 20px;
        font-size: 12px;
    }

    .notice {
        font-size: 12px;
        margin-bottom: 10px;
    }

    .container {
        gap: 20px;

        & .ticket-modal-link {
            cursor: pointer;
            display: block;
            text-align: center;
            color: #FFF;
            font-family: Averta;
            font-size: 15px;
            font-weight: 400;
            letter-spacing: -0.4px;
        }
    }

    .container--block {
        display: block;
        width: 100%;
        margin: 0;
    }

    .container__column--ticket {
        display: none;
    }

    .container__column--form {
        border-radius: 16px;
    }

    .container--rfc {

        padding: 20px 20px 30px 20px;
        flex-direction: column;
        gap: 30px;

        & .container__column--ticket {
            display: block;
            padding: 30px 20px;

            & img {
                display: none;
            }

            & .data-table__row {
                margin-bottom: 15px;
            }

            & .data-table__row:last-of-type {
                margin-bottom: 0;
                padding-bottom: 0;
                border-bottom: none;
            }
        }

    }

    .form--step-1 {
        gap: 20px;
    }

    .form__step {
        gap: 25px;
    }

    .form__row {
        display: flex;
        flex-direction: column;
        gap: 10px
    }

    .form__label {
        margin-bottom: 10px;
    }

    .form__field--3>:nth-child(1), .form__field--3>:nth-child(3) {
        width: 50%;
    }

    .total-table {
        display: none;
    }

    .total-table.mobile-only {
        display: block;
    }

    .buttons-container {
        margin-top: 10px;
        flex-direction: column;
        gap: 15px;
    }

    .privacy-policy-container {

        font-size: 13px;
        background: #F9F9F9;
        padding: 0 0 25px 0;

        & .privacy-policy {
            padding: 22px 20px 17px 25px;
        }

        & .privacy-policy-inner {
            max-height: 60%;
        }

        & h2,
        h5 {
            font-size: 16px;
        }

        & .submit-button,
        .submit-button:focus,
        .submit-button:focus-visible {
            width: auto;
            font-size: 13px;
            background: var(--main-color);
            color: #FFF;
            padding: 16.5px 10px;
            margin-top: 0;
            margin: 0 20px 0 20px;
        }

    }

    .modal {
        position: fixed;
        z-index: 1;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgba(0, 0, 0, 0.63);
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .modal--hidden {
        display: none;
    }

    .modal__content {
        background-color: #fff;
        padding: 50px 20px;
        position: relative;
        width: 90%;
    }

    .modal__close {
        position: absolute;
        top: 20px;
        right: 20px;
        font-size: 24px;
        cursor: pointer;
    }

    .ticket-slider {
        position: relative;
        overflow: hidden;

        & h2 {
            font-size: 20px;
            text-align: center;
            text-transform: uppercase;
            font-family: "Montserrat", sans-serif;
            color: var(--green-color);
            margin-bottom: 20px;
        }
    }

    .slides {
        display: flex;
        transition: transform 0.5s ease;
    }

    .slide {
        padding: 0px 40px;
        min-width: 100%;
        box-sizing: border-box;
    }

    .slide img {
        width: 100%;
        border-radius: 8px;
    }

    .ticket-slider__prev,
    .ticket-slider__next {
        cursor: pointer;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: auto;
        padding: 0;
        margin-top: -22px;
        color: #FFF;
        font-weight: bold;
        font-size: 24px;
        transition: 0.6s ease;
        border-radius: 0 3px 3px 0;
        user-select: none;
    }

    .ticket-slider__next {
        right: 0;
        border-radius: 3px 0 0 3px;
    }

}

/* =========================================================================
 * Banners administrables desde el panel de soporte
 * ========================================================================= */
.banner {
	border-radius: 6px;
	padding: 12px 16px;
	margin: 0 auto 14px;
	max-width: 900px;
	border: 1px solid transparent;
	font-size: 15px;
	line-height: 1.5;
}
.banner__titulo { font-weight: 700; }
.banner--info   { background: #eaf2fa; border-color: #c6dcf0; color: #1a4d7c; }
.banner--aviso  { background: #fdf6e8; border-color: #eedcb4; color: #7a4e06; }
.banner--exito  { background: #ecf8f1; border-color: #bfe3d0; color: #14603a; }
.banner--alerta { background: #fdeceb; border-color: #f3c3c0; color: #8c1e17; }

/* Banners con imagen */
.banner--con-imagen { padding: 0; overflow: hidden; }
.banner__imagen { display: block; width: 100%; height: auto; max-width: 100%; }
.banner--con-imagen .banner__cuerpo { padding: 10px 16px; }
.banner__enlace { display: block; text-decoration: none; color: inherit; }
.banner__enlace:hover { opacity: .93; }
