:root {
    --primary-blue: #0073A4;
    --white: #ffffff;
}

/* General */
body {
    margin: 0;
    color: var(--primary-blue);
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: var(--white);
}

/* Navbar */
.navbar {
    background-color: var(--white);
    transition: background-color 0.3s ease;
    padding-top: 0.3rem;
    /* Más altura */
    padding-bottom: 0.1rem;
}

/* Ajuste del logo más a la izquierda */
.navbar .navbar-brand {
    color: var(--white) !important;
    font-weight: bold;
    margin-left: 0;
    /* 🔹 Elimina margen izquierdo extra */
    padding-left: 0;
    /* 🔹 Quita relleno interno para acercarlo al borde */
}

/* Enlaces del menú */
.navbar .nav-link {
    color: var(--primary-blue) !important;
    transition: color 0.3s ease, border-bottom 0.3s ease;
    border-bottom: 2px solid transparent;
    padding-bottom: 5px;
    font-size: 1.15rem;
    /* Texto un poco más grande */
    font-weight: 500;
    padding-left: 2rem;
    /* Mucho más espacio entre enlaces */
    padding-right: 2rem;
    letter-spacing: 0.9px;
    /* Más elegante */
}

.navbar .nav-link:hover {
    color: #99b9c7 !important;
    border-bottom: 2px solid #0073A4;
}

/* Logo dentro de la barra */
.navbar .navbar-logo {
    height: 100px;
    /* Logo más grande */
    width: 355px;
}

/* Hero con corte diagonal y video */
.hero {
    position: relative;
    height: 80vh;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 100% 85%, 0% 100%);
}

.hero video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: 150%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 0;
}

.hero .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

.hero .content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    height: 100%;
    padding: 2rem;
    color: var(--white);
}

.hero h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.hero p {
    font-size: 1.2rem;
    max-width: 600px;
    margin-bottom: 1.5rem;
}


/* =========================
   HERO2 GENERAL
========================= */
.hero2 {
    position: relative;
    height: 85vh;
    width: 100%;
    overflow: hidden;

    /* 🔥 corte diagonal optimizado */
    clip-path: polygon(0 0, 100% 0, 100% 75%, 0 100%);
}

/* =========================
   VIDEO
========================= */
.hero2 video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 0;
}

/* =========================
   OVERLAY
========================= */
.hero2 .overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1;
}

/* =========================
   CONTENIDO
========================= */
.hero2 .content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* =========================
   CAJA SUPERIOR (FLOAT)
========================= */
.hero2 .hero-top-text {
    position: absolute;

    top: 5%;
    right: 40px;
    left: auto;

    max-width: 480px;

    background-color: #5C5C5C;
    color: white;

    padding: 18px 22px;
    border-radius: 12px;

    font-size: 1.1rem;
    line-height: 1.6;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);

    z-index: 5;

    animation: floatHero 3s ease-in-out infinite;
}

/* Animación flotante */
@keyframes floatHero {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }

    100% {
        transform: translateY(0);
    }
}

/* =========================
   CAJA BLANCA (TITULO)
========================= */
.hero2 .hero-box {
    background: white;
    padding: 18px 25px;
    width: 325px;

    margin-top: 80px;
    /* 🔥 SUBIDA CLAVE */

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    border-radius: 6px;

    animation: fadeInUp 1s ease;
    animation: floatHero 3s ease-in-out infinite;
}

.hero2 .hero-box h1 {
    color: #0073A4;
    font-weight: 700;
}

/* =========================
   CAJA AZUL
========================= */
.hero2 .hero-blue-box {
    background: linear-gradient(135deg, #0073A4, #005f86);
    color: white;

    padding: 25px;
    width: 100%;
    max-width: 750px;

    margin-top: 10px;

    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);

    animation: fadeInUp 1.3s ease;
    animation: floatHero 3s ease-in-out infinite;
}

/* GRID INTERNO */
.hero-blue-box .row {
    display: flex;
    align-items: center;
}

/* TEXTO */
.hero-blue-box .col-lg-8 {
    flex: 0 0 65%;
}

/* CONTACTO */
.hero-blue-box .col-lg-4 {
    flex: 0 0 35%;
    display: flex;
    justify-content: flex-end;
}

/* =========================
   LISTA
========================= */
.hero-list {
    padding-left: 20px;
    margin: 0;
}

.hero-list li {
    margin-bottom: 12px;
    line-height: 1.5;
    font-size: 14.5px;
}

/* =========================
   TAXLEGAL IA DESTACADO
========================= */
.taxlegal-ia {
    color: #ff7a00;
    font-weight: 700;
}

/* =========================
   CONTACTO BOX
========================= */
.contact-box {
    background: white;
    color: #333;

    padding: 20px;
    border-radius: 10px;

    width: 100%;
    max-width: 260px;

    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);

    text-align: center;

    margin-right: 15px;

    transition: transform 0.3s ease;
}

.contact-box:hover {
    transform: translateY(-5px);
}

.contact-box h5 {
    color: #0073A4;
    font-weight: 700;
    margin-bottom: 10px;
}

.contact-box p {
    font-size: 14px;
    margin-bottom: 15px;
}

/* BOTÓN */
.btn-contact {
    background: #ff7a00;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 25px;
    font-weight: 600;
    transition: 0.3s;
}

.btn-contact:hover {
    background: #e66900;
}

/* =========================
   ANIMACIÓN ENTRADA
========================= */
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =========================
   RESPONSIVE
========================= */
@media(max-width:992px) {

    .hero-blue-box .row {
        flex-direction: column;
    }

    .hero-blue-box .col-lg-8,
    .hero-blue-box .col-lg-4 {
        flex: 100%;
        max-width: 100%;
    }

    .contact-box {
        margin-top: 20px;
        margin-right: 0;
    }

    .hero2 .hero-top-text {
        right: 20px;
        left: 20px;
        max-width: 90%;
    }
}

@media(max-width:768px) {

    .hero2 {
        height: 75vh;
    }

    .hero2 .hero-box,
    .hero2 .hero-blue-box {
        width: 90%;
    }
}

/* Botón */
.btn-primary {
    background-color: var(--primary-blue);
    border: none;
}

.btn-primary:hover {
    background-color: #005a80;
}

/* Footer */
footer {
    background-color: var(--primary-blue);
    color: var(--white);
}

footer a {
    color: var(--white);
    text-decoration: underline;
}

footer a:hover {
    color: #cce8f4;
}

/* IA */

.ia-section {

    background: linear-gradient(135deg, #FFFF, #FFFF);

    padding: 80px 0;

}

.ia-header h1 {

    color: #0073A4;
    font-weight: 700;

}

.ia-header p {

    color: #5C5C5C;
    max-width: 700px;
    margin: auto;

}

.ia-chat-container {

    background: white;

    border-radius: 12px;

    padding: 25px;

    margin-top: 30px;

    height: 350px;

    overflow-y: auto;

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);

}

.ia-message-bot {

    background: #f1f7fb;

    padding: 15px;

    border-radius: 10px;

    margin-bottom: 15px;

}

.ia-input-container {

    display: flex;

    gap: 10px;

    margin-top: 20px;

}

.btn-ia {

    background: #0073A4;

    color: white;

    border: none;

    padding: 10px 20px;

}

.btn-ia:hover {

    background: #005b82;

}

.ia-sugerencias {

    margin-top: 20px;

}

.ia-sugerencias button {

    margin: 5px;

    border: 1px solid #0073A4;

    background: white;

    color: #0073A4;

    padding: 6px 12px;

    border-radius: 6px;

}

/* MENSAJE IA */

.ia-message-bot {

    background: #f5f7fa;

    border-left: 5px solid #0073A4;

    padding: 20px;

    margin-bottom: 20px;

    border-radius: 10px;

    font-size: 15px;

    line-height: 1.6;

    color: #4a4a4a;

}

/* TITULO IA */

.ia-bot-title {

    color: #0073A4;

    font-weight: 700;

    margin-bottom: 10px;

    font-size: 15px;

}

/* TEXTO IA */

.ia-bot-text {

    color: #5a5a5a;

}

/* SUBTITULOS */

.ia-bot-text h4 {

    color: #0073A4;

    font-size: 16px;

    margin-top: 15px;

}

/* LISTAS */

.ia-bot-text li {

    margin-left: 20px;

    margin-bottom: 5px;

}

/* CONTENEDOR CHAT */

.ia-chat-container {

    background: #ffffff;

    border-radius: 12px;

    padding: 25px;

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);

    max-height: 500px;

    overflow-y: auto;

    margin-bottom: 20px;

}

/* MENSAJE USUARIO */

.ia-message-user {

    background: #0073A4;

    color: white;

    padding: 14px 18px;

    border-radius: 18px 18px 4px 18px;

    max-width: 70%;

    margin-left: auto;

    margin-bottom: 15px;

    font-size: 14px;

}

/* MENSAJE IA */

.ia-message-bot {

    background: #f4f6f9;

    color: #4a4a4a;

    padding: 18px;

    border-radius: 18px 18px 18px 4px;

    max-width: 75%;

    margin-bottom: 15px;

    border-left: 4px solid #0073A4;

}

/* TITULO IA */

.ia-bot-title {

    font-weight: 700;

    color: #0073A4;

    margin-bottom: 8px;

}

/* LISTAS */

.ia-message-bot li {

    margin-left: 20px;

}

/* INDICADOR ESCRIBIENDO */

.typing {

    display: flex;

    gap: 4px;

}

.typing span {

    width: 6px;

    height: 6px;

    background: #0073A4;

    border-radius: 50%;

    animation: typing 1.2s infinite;

}

.typing span:nth-child(2) {

    animation-delay: 0.2s;

}

.typing span:nth-child(3) {

    animation-delay: 0.4s;

}

@keyframes typing {

    0% {
        opacity: 0
    }

    50% {
        opacity: 1
    }

    100% {
        opacity: 0
    }

}

.taxlegal-ia {
    color: #ff7a00 !important;
    font-weight: 700 !important;
}

.nav-link.taxlegal-ia {
    color: #ff7a00 !important;
    font-weight: 700;
}

.ia-message-user {
    background: #0073A4;
    color: white;
    padding: 10px 15px;
    border-radius: 12px;
    margin: 10px;
    max-width: 70%;
    margin-left: auto;
}

.ia-message-bot {
    background: #f5f5f5;
    color: #222;
    padding: 10px 15px;
    border-radius: 12px;
    margin: 10px;
    max-width: 70%;
}

.ia-bot-title {
    margin-bottom: 5px;
}

.typing span {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 2px;
    background: #ff7a00;
    border-radius: 50%;
    animation: blink 1.4s infinite both;
}

.typing span:nth-child(2) {
    animation-delay: 0.2s;
}

.typing span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes blink {
    0% {
        opacity: 0.2;
    }

    20% {
        opacity: 1;
    }

    100% {
        opacity: 0.2;
    }
}

