@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

:root{
    --primary-color:#BE202E; /* Solo una parte de mi logotipo */
    --primary-color-dark:#384E57; /* Letras de mi logotipo */
    --card-background-color: #f9f9f9; /* Color de la figura de mi logotipo */
    --accent_color: #EEBD58; /* Color adicional de mi logotipo */
    --text-dark:#333333;
    --text-light:#737268;
    --white:#ffffff;
    --max-width:75rem;
    --header-font:"Bebas Neue", sans-serif;
    --body-font: "Poppins", sans-serif;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    scrollbar-width: 0;
}

html {
    font-size: 100%;
    scroll-behavior: smooth;
}

#backToTop {
    position: fixed;
    bottom: 1.5rem;
    right: 1rem;
    padding: .5rem .6rem;
    font-size: 1.25rem;
    background: var(--primary-color);
    color: white;
    border-radius: 20%;
    border: none;
    display: none;
    z-index: 999;
    transition: background-color .3s, transform .2s;
}
#backToTop:hover {
    background-color: var(--accent_color);
    color: var(--primary-color-dark);
    transform: scale(1.1);
}

a:focus, button:focus {
    outline: 2px dashed var(--accent_color);
    outline-offset: 2px;
}

/* Cambiador de fuente */
.font-changer {
    display: flex;
    gap: .5rem;
    position: fixed;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    top: 50%;
    right: 0;
    z-index: 999;
    background-color: rgba(255, 255, 255, .8);
    backdrop-filter: blur(4px);
    border-top-left-radius: .5rem;
    border-bottom-left-radius: .5rem;
    padding: .3rem .6rem;
    box-shadow: -.125rem 0 .5rem rgba(0, 0, 0, .1);
}

.font-modifier {
    font-size: 1rem;
    font-weight: bold;
    padding: .4rem .6rem;
    border: none;
    background-color: transparent;
    cursor: pointer;
    color: var(--text-dark, #333);
    transition: .3s;
}

.font-modifier:hover {
    background-color: var(--accent_color);
    color: var(--primary-color);
    border-radius: .25rem;
}

/* Tour */ 
.tour-launcher {
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    z-index: 999;
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(4px);
    border-top-right-radius: .5rem;
    border-bottom-right-radius: .5rem;
    padding: .5rem .75rem;
    font-weight: bold;
    font-size: 1rem;
    box-shadow: .125rem 0 .5rem rgba(0, 0, 0, .1);
    cursor: pointer;
    transition: 0.3s ease;
}

.tour-launcher:hover,
.tour-launcher:focus {
    background-color: var(--accent_color, #0d6efd);
    color: var(--primary-color);
    outline: none;
}

/* MODO OSCURO */
/*
body.dark-mode {
  --background-darkmode: black;
  --text: #f0f0f0;
  --accent: #6fa8dc;
  --primary-color: #0a3c5d;
  --card-bg: #1e1e1e;
}

body {
  background-color: var(--background-darkmode);
  color: var(--text);
  transition: background-color 0.4s ease, color 0.4s ease;
}
  */

html::before {
    position: fixed;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("/landpage/assets/Traveling_Doodles_Background.png");
    background-repeat: repeat;
    background-size: 160rem auto;
    background-position: center;
    opacity: 0.04;
    z-index: -20;
    pointer-events: none;
}

body {
    font-family: "Poppins", sans-serif;
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-y: scroll;
    overflow-x: scroll;
    position: relative;
    z-index: 0;
    transition: background-color .3s ease, color .3s ease;
    font-size: 1rem;
}

h1 {
    font-size: 2rem;
}

img {
    display: flex;
    width: 100%;
}

a {
    text-decoration: none;
    transition: .3s;
}

body::-webkit-scrollbar {
    display: none;
}

/* NAV */ 

nav {
    position: fixed;
    isolation: isolate;
    width: 100%;
    z-index: 9;
}

.nav__header {
    padding: 1rem;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--primary-color);
}

.nav__logo a {
    font-size: 1.75rem;
    font-weight: 400;
    font-family: var(--header-font);
    color: var(--white);
    transition: color .3s;
}

.nav__logo a:hover {
    color: var(--accent_color);
}

.logo-img {
    height: 3rem;
    width: auto;
    display: block;
}

.nav__logo a span {
    /* font-weight: 700;*/
    color: var(--accent_color);
}

.nav__menu__btn {
    font-size: 1.5rem;
    color: var(--white);
    cursor: pointer;
}

.nav__links {
    position: absolute;
    top: 64px;
    left: 0;
    width: 100%;
    padding: 2rem;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2rem;
    background-color: var(--primary-color);
    transition: .5s;
    z-index: -1;
    transform: translateY(-100%);
}

.nav__links.open {
    transform: translateY(0);
}

.nav__links a{
    font-weight: 500;
    color: var(--white);
}

.nav__links a:hover{
    color: var(--text-dark);
}

.nav__btns{
    display: none;
}

/* HEADER */

.header__container{
    max-width: var(--max-width);
    margin: auto;
    padding-block: 8rem 2rem;
    padding-inline: 1rem;
    display: grid;
    gap: 2rem;
    overflow-x: hidden;
}

.header__image {
    position: relative;
    isolation: isolate;
}

.header__image img {
    max-width: 32.5rem;
    margin-inline: auto;
}

.header__image__card {
    position: absolute;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--text-dark);
    background-color: var(--white);
    white-space: nowrap;
    border-radius: 0.313rem;
    box-shadow: 0 .25rem .625rem rgba(0, 0, 0, .5);
    z-index: 1;
}

.header__image__card span {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--primary-color);
}

.header__image__card-1 {
    top: 15%;
    left: 1rem;
    transform: translate(-50%, -50%);
}

.header__image__card-2 {
    top: 10%;
    right: 2rem;
    transform: translateY(-50%);
}

.header__image__card-3 {
    top: 75%;
    left: 0;
    transform: translateY(-50%);
    transform: translateX(-10%);
}

.header__image__card-4 {
    top: 90%;
    right: 0;
    transform: translate(-10%);
}

.header__content h1 {
    margin-bottom: 1rem;
    font-size: 4.5rem;
    font-weight: 400;
    font-family: var(--header-font);
    color: var(--primary-color-dark);
    line-height: 1.2;
    text-align: center;
}

.header__content h1 span {
    color: var(--primary-color);
}

.header__content p {
    margin-bottom: 2rem;
    font-size: 1.125rem;
    font-weight: 300;
    columns: var(--text-dark);
    line-height: 1.75rem;
    text-align: center;
}

.header__content p span {
    color: var(--primary-color);
    font-weight: 550;
}

.header__content form {
    margin-bottom: 4rem;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    gap: 1rem 0;
    border-radius: calc(1rem + 10px);
    box-shadow: 0 .25rem .625rem rgba(0, 0, 0, .5);
}

.header__content .input__row {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.header__content .input__group {
    flex: 1;
}

.header__content .input__group h5 {
    margin-bottom: .313rem;
    font-size: .9rem;
    font-weight: 500;
    color: var(--text-light);
}

.header__content .input__group > div {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.header__content input {
    width: 100%;
    outline: none;
    border: none;
    font-size: 1rem;
    background-color: transparent;
}

.header__content input::placeholder {
    font-weight: 600;
    color: var(--text-dark);
}

.header__content .input__group span {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--primary-color);
}

.header__content button {
    width: 100%;
    padding: 1rem 2rem;
    outline: none;
    border: none;
    font-size: 1rem;
    white-space: nowrap;
    color: var(--white);
    background-color: var(--primary-color);
    border-radius: .625rem;
    transition: .3s;
    cursor: pointer;
}

.header__content button:hover {
    background-color: var(--primary-color-dark);
}

.header__content .bar {
    font-size: .9rem;
    color: var(--text-light);
    text-align: center;
}

/* BOTONES */

.btn-contacto {
    display: inline-block;
    padding: 1rem 2rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--white);
    background-color: var(--primary-color);
    border: none;
    border-radius: .625rem;
    cursor: pointer;
    text-align: center;
    transition: background-color .3s ease, transform .2s ease;
}

.btn-contacto:hover {
    background-color: var(--accent_color);
    color: var(--primary-color-dark);
    transform: translateY(-.5rem);
}

/* SECTION SERVICIOS */

.section__servicios {
    padding: 4rem 1rem;
    max-width: var(--max-width);
    margin: auto;
    text-align: center;
}

.section__title {
    text-align: center;
    font-family: var(--header-font);
    font-size: 3rem;
    color: var(--primary-color);
    margin-bottom: 2rem;
}

.servicios__lista {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    display: grid;
    gap: 1.5rem;
    max-width: fit-content;
    text-align: left;
}

.servicios__lista li {
    font-size: 1.125rem;
    color: var(--text-dark);
    font-weight: 600;
    background-color: var(--card-background-color);
    padding: 1rem 1.5rem;
    border-left: 0.375rem solid var(--primary-color);
    border-radius: .5rem;
    box-shadow: 0 .25rem .625rem rgba(0, 0, 0, .5);
    transition: background-color .3s ease, transform .2s ease;
}

.servicios__lista li a {
    color: var(--primary-color-dark);
}

.servicios__lista li a:visited {
    color: var(--primary-color-dark);
}

.servicios__lista li:hover {
    background-color: var(--accent_color);
    color: var(--primary-color-dark);
    transform: translateY(-.5rem);
}

/* SECTION NOSOTROS */

.section__nosotros {
    background-color: var(--primary-color-dark);
    color: var(--white);
    padding: 4rem 1rem;
    text-align: center;
}

.section__nosotros .section__title {
    font-family: var(--header-font);
    font-size: 3rem;
    color: var(--accent_color);
    margin-bottom: 1.5rem;
}

.section__nosotros .section__texto {
    font-family: var(--body-font);
    font-size: 1.125rem;
    max-width: 43.75rem;
    margin: 0 auto;
    line-height: 1.75rem;
    color: var(--white);
    justify-content: center;
}

/* SECTION TESTIMONIOS */

.section__testimonios  {
    position: relative;
    overflow: hidden;
    padding: 4rem 1rem;
}

.testimonial__carousel {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    height: 18.75rem;
}

.testimonial__card {
    position: absolute;
    opacity: 0;
    transform: scale(.8) rotateY(60deg);
    transition: all .6s ease;
    background-color: var(--white);
    padding: 1.5rem;
    max-width: var(--max-width);
    border-radius: 1rem;
    box-shadow: 0 .25rem .625rem rgba(0, 0, 0, .5);
    z-index: 1;
}

.testimonial__card.active {
    opacity: 1;
    transform: scale(1) rotateY(0deg);
    z-index: 2;
}

.testimonial__card p {
    font-size: 1.25rem;
    line-height: 1.8rem;
}

.testimonial-footer {
    margin-top: 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--primary-color-dark);
}

.carousel__controls {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin-top: 2rem;
    z-index: 3;
    position: relative;
}
.carousel__controls button {
    background-color: var(--accent_color);
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
    color: white;
    transition: background-color 0.3s;
}

.carousel__controls button:hover {
    transform: scale(1.2);
    background-color: var(--primary-color-dark);
}

/* SECTION CONTACT FORM */

.wizard__inicio {
    min-height: 50vh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem 1rem;
    transition: all 0.4s ease-in-out;
}

.wizard__card {
    width: 100%;
    max-width: 500px;
    background: white;
    padding: 2rem;
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    text-align: center;
    animation: fadeInUp 0.6s ease forwards;
}

.wizard__card .section__title {
    font-size: 3rem;
    margin-top: 1rem;
    color: var(--primary-color);
}

.wizard__card .section__texto {
    font-size: 1rem;
    margin: 1rem 0 2rem;
    color: var(--text-light);
}

.wizard__opciones {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

#wizard__inicio {
    position: relative;
}

#success-message {
    margin-top: 2rem;
    text-align: center;
}

input[type="text"],
input[type="email"],
input[type="tel"] {
    width: 100%;
    padding: 0.75rem;
    margin: 0.5rem 0 1rem;
    border: 1px solid #ccc;
    border-radius: 0.5rem;
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.3s ease;
}

label[type="nombre"],
label[type="empresa"],
label[type="email"],
label[type="número"] {
    position:absolute;
    left: 50px;
    top: 65px;
    background: #fff;
    padding: 0px 5px;
    transition: transform .3s ease, color .3s ease;
}

input:focus+label {
    border-color: var(--primary-color);
    outline: none;
    box-shadow: 0 0 0 2px rgba(190, 32, 46, 0.2);
}

.whatsapp-radios {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.whatsapp-radios label {
    font-weight: 500;
    color: var(--primary-color-dark);
    cursor: pointer;
}

.btn-opcion {
    padding: 1rem 2rem;
    border-radius: .625rem;
    background-color: var(--primary-color-dark);
    color: var(--white);
    font-weight: 600;
    text-align: center;
    font-size: 1rem;
    border: none;
    cursor: pointer;
    transition: background-color .3s ease, transform .2s ease;
}

.btn-opcion:hover {
    background-color: var(--accent_color);
    color: var(--primary-color-dark);
    transform: translateY(-.5rem);
}

/* AVISO DE PRIVACIDAD */

.aviso__privacidad {
    font-size: .7rem;
    color: var(--primary-color-dark);
    margin-top: 1rem;
    text-align: justify;
    line-height: 1.5rem;
    padding: 1rem;
    background-color: rgba(255, 255, 255, .08);
    border-radius: .5rem;
}

.aviso__privacidad a {
    color: var(--primary-color);
    text-decoration: underline;
}

.aviso__privacidad a:hover {
    color: var(--primary-color-dark);
}

.terminos__grupo {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: 1rem 0;
    font-size: .85rem;
    text-align: left;
    color: var(--primary-color-dark);
}

.terminos__grupo input[type="checkbox"] {
    margin-top: .2rem;
    accent-color: var(--primary-color);
}

.btn-opcion[disabled] {
    background-color: #ccc;
    color: #666;
    cursor: not-allowed;
    transform: none;
}

.success__container {
    text-align: center;
    max-width: 300px;
    margin: 2rem auto;
    animation: fadeInUp .6s ease forwards;
}

.success__titulo {
    font-size: 1.5rem;
    margin-top: 1rem;
    color: var(--primary-color);
}

.success__texto {
    color: var(--primary-color-dark);
    font-size: 1rem;
    line-height: 1.6;
}

.fade {
    opacity: 0;
    transition: opacity 0.6s ease;
    pointer-events: none;
    position: absolute;
    width: 100%;
    transform: scale(.95);
    transition: all .6s ease;
}

.fade.show {
    opacity: 1;
    pointer-events: auto;
    position: relative;
    transform: scale(1);
    opacity: 1;
}

.footer {
    background-color: #f8f8f8;
    padding: 3rem 1rem 1rem;
    color: #333;
    font-family: 'Source Sans 3', sans-serif;
}

.footer__contenedor {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: var(--max-width);
    margin: auto;
    gap: 2rem;
}

.footer__col {
    flex: 1 1 300px;
    min-width: 250px;
}

.footer__slogan {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
    text-align: center;
}

.footer__redes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.footer__redes img {
    width: 2rem;
    height: 2rem;
    transition: transform 0.3s, filter 0.3s;
}

.footer__redes a:hover img {
    filter: none;
    transform: scale(1.2);
}

.footer__mapa ul {
    list-style: none;
    padding: 0;
    margin-top: 1rem;
}

.footer__mapa ul li {
    margin: 0.3rem 0;
}

.footer__mapa ul li a {
    text-decoration: none;
    color: #333;
}

.footer__mapa ul li a:hover {
    text-decoration: underline;
}

.footer__creditos {
    text-align: center;
    font-size: 0.85rem;
    margin-top: 2rem;
    color: #777;
}

.modal-thanks {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.modal-thanks__content {
    background-color: white;
    padding: 2rem;
    border-radius: 1rem;
    max-width: 400px;
    width: 90%;
    text-align: center;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

.modal-thanks__content h2 {
    color: var(--primary-color);
    margin-bottom: 1rem;
}

.modal-thanks__content p {
    color: var(--text-dark);
    margin-bottom: 1.5rem;
}

.btn-cerrar {
    padding: 0.75rem 1.5rem;
    background-color: var(--primary-color-dark);
    color: white;
    border: none;
    border-radius: .5rem;
    font-size: 1rem;
    cursor: pointer;
}

.btn-cerrar:hover {
    background-color: var(--accent_color);
    color: var(--primary-color-dark);
}


/* en-construccion */

a.en-construccion {
    opacity: .6;
    cursor: not-allowed;
    pointer-events: auto;
}

.toast-construccion {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #1e1e1e;
    color: #fff;
    padding: 12px 20px;
    border-radius: 6px;
    font-size: 0.9rem;
    opacity: 0;
    pointer-events: none;
    z-index: 9999;
    transition: opacity 0.3s ease-in-out;
}

.toast-construccion.mostrar {
    opacity: 0.95;
}

/* GALERIA DE FOTOS */

.galeria__grid {
    column-count: 3;
    column-gap: 1rem;
    padding: 1rem;
}

.galeria__grid a {
    display: inline-block;
    margin-bottom: 1rem;
    transition: transform 0.3s;
    border-radius: 0.5rem;
    overflow: hidden;
}

.galeria__grid a:hover {
    transform: scale(1.03);
}

.galeria__grid img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* GALERÍA */

.galeria {
    padding: 4rem 1rem;
    text-align: center;
}

.galeria__grid {
    column-count: 3;
    column-gap: 1rem;
    padding: 2rem 1rem;
}

.galeria__grid figure {
    display: inline-block;
    margin-bottom: 1rem;
    transition: transform 0.3s;
    break-inside: avoid;
}

.galeria__grid img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0.75rem;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.galeria__grid figure:hover {
    transform: scale(1.03);
}

.galeria__grid figcaption {
    font-size: 0.9rem;
    margin-top: 0.3rem;
    color: #555;
    font-style: italic;
}



@media (width > 768px) {
    
    nav{
        position: static;
        padding-block: 2rem 0;
        padding-inline: 1rem;
        max-width: var(--max-width);
        margin-inline: auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 2rem;
    }

    .nav__header{
        flex: 1;
        padding: 0;
        background-color: transparent;
    }

    .nav__logo a{
        color: var(--text-dark);
    }

    .nav__logo a span{
        color: var(--primary-color);
    }

    .nav__menu__btn{
        display: none;
    }

    .nav__links{
        position: static;
        padding: 0;
        flex-direction: row;
        background-color: transparent;
        transform: none;
    }

    .nav__links a{
        padding-bottom: .313rem;
        color: var(--text-dark);
        border-bottom: .25rem solid transparent;
    }

    .nav__links a:hover{
        border-color: var(--primary-color);
    }

    .nav__btns {
        display: flex;
        flex: 1;
    }

    .nav__btns .btn{
        padding: .75rem 1.5rem;
        outline: none;
        border: none;
        font-size: 1rem;
        white-space: nowrap;
        border-radius: .625rem;
        transition: .3s;
        cursor: pointer;
    }

    .sign__up {
        color: var(--text-dark);
        background-color: transparent;
    }

    .sign__up:hover {
        color: var(--primary-color);
    }

    .sign__in {
        color: var(--white);
        background-color: var(--primary-color);
    }

    .sign__in:hover {
        background-color: var(--primary-color-dark);
    }

    .header__container {
        padding-block: 2rem;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
    }
    
    .header__image {
        grid-area: 1/2/2/3;
    }

    .header__content :is(h1, p ,.bar) {
        text-align: left;
    }
}