/* ============================================================
   Kuvi Solutions – Tema personalizado
   Paleta de marca: lila, naranja, azul pálido y gris oscuro
   Se carga después de styles.css (Bootstrap + tema Creative)
   ============================================================ */

:root {
    --kuvi-lila: #bd75e2;
    --kuvi-lila-dark: #9b4dca;
    --kuvi-lila-soft: #f3e8fb;
    --kuvi-naranja: #f4623a;
    --kuvi-ice: #d8e0ec;
    --kuvi-dark: #1f2231;
    --kuvi-dark-2: #2b2f42;
    --kuvi-gray: #6c757d;
    --kuvi-text: #3a3f52;
}

html {
    scroll-padding-top: 4.5rem;
}

body {
    font-family: "Merriweather Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--kuvi-text);
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

/* ---------- Botones ---------- */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--kuvi-lila);
    --bs-btn-border-color: var(--kuvi-lila);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kuvi-lila-dark);
    --bs-btn-hover-border-color: var(--kuvi-lila-dark);
    --bs-btn-focus-shadow-rgb: 189, 117, 226;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kuvi-lila-dark);
    --bs-btn-active-border-color: var(--kuvi-lila-dark);
}

.btn-accent {
    background-color: var(--kuvi-naranja);
    border-color: var(--kuvi-naranja);
    color: #fff;
}
.btn-accent:hover, .btn-accent:focus {
    background-color: #d94e28;
    border-color: #d94e28;
    color: #fff;
}

.btn-xl {
    padding: 1.1rem 2.4rem;
    border-radius: 10rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ---------- Encabezados de sección ---------- */
.section-heading h2 {
    color: var(--kuvi-dark);
    font-size: 2rem;
}
.section-heading .lead {
    color: var(--kuvi-gray);
}
hr.divider {
    background-color: var(--kuvi-lila);
}

/* ---------- Hero ---------- */
header.masthead {
    position: relative;
    background-image: url(../assets/img/bg.png);
    background-size: cover;
    background-position: center;
}
header.masthead::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(31, 34, 49, 0.94) 0%, rgba(98, 0, 234, 0.78) 100%);
}
header.masthead > .container {
    position: relative;
    z-index: 1;
}
.hero-eyebrow {
    display: inline-block;
    padding: 0.45rem 1.2rem;
    margin-bottom: 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 10rem;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.08);
}
header.masthead h1 {
    color: #fff;
    font-size: 2.6rem;
    line-height: 1.15;
}
header.masthead h1 .text-accent {
    color: var(--kuvi-lila);
}
header.masthead p.lead {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.1rem;
}
.hero-logo {
    display: block;
    width: 280px;
    max-width: 75%;
    margin: 0 auto 1.75rem;
    filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.35));
}
.hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 2.5rem;
}
.hero-badges .badge-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1.1rem;
    border-radius: 10rem;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
}
@media (min-width: 992px) {
    header.masthead h1 {
        font-size: 3.4rem;
    }
}

/* ---------- Servicios ---------- */
.service-card {
    height: 100%;
    padding: 2rem;
    background: #fff;
    border: 1px solid #e9edf4;
    border-radius: 1rem;
    box-shadow: 0 0.25rem 1rem rgba(31, 34, 49, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.service-card:hover {
    transform: translateY(-6px);
    border-color: var(--kuvi-lila);
    box-shadow: 0 0.75rem 1.75rem rgba(189, 117, 226, 0.22);
}
.service-card .icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1.25rem;
    border-radius: 0.9rem;
    background: var(--kuvi-lila-soft);
    color: var(--kuvi-lila-dark);
    font-size: 1.6rem;
}
.service-card h4 {
    font-size: 1.15rem;
    color: var(--kuvi-dark);
    margin-bottom: 0.6rem;
}
.service-card p {
    margin-bottom: 0;
    font-size: 0.95rem;
    color: var(--kuvi-gray);
}

/* ---------- Casos de éxito (video) ---------- */
#casos {
    background-color: #f6f8fc;
}
.case-card {
    height: 100%;
    background: #fff;
    border: 1px solid #e9edf4;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 0.25rem 1rem rgba(31, 34, 49, 0.06);
}
.case-card .video-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--kuvi-dark);
}
.case-card .video-wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.case-card .case-body {
    padding: 1.75rem;
}
.case-card .case-tag {
    display: inline-block;
    padding: 0.3rem 0.9rem;
    margin-bottom: 0.9rem;
    border-radius: 10rem;
    background: var(--kuvi-lila-soft);
    color: var(--kuvi-lila-dark);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.case-card h4 {
    font-size: 1.2rem;
    color: var(--kuvi-dark);
    margin-bottom: 0.6rem;
}
.case-card p {
    margin-bottom: 0;
    color: var(--kuvi-gray);
    font-size: 0.95rem;
}

/* ---------- Proceso ---------- */
.process-step {
    height: 100%;
    text-align: center;
    padding: 2rem 1.5rem;
}
.process-step .step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1.25rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--kuvi-lila) 0%, var(--kuvi-lila-dark) 100%);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
}
.process-step h4 {
    font-size: 1.05rem;
    color: var(--kuvi-dark);
    margin-bottom: 0.5rem;
}
.process-step p {
    margin-bottom: 0;
    color: var(--kuvi-gray);
    font-size: 0.92rem;
}

/* ---------- Contacto ---------- */
#contacto {
    background: linear-gradient(135deg, var(--kuvi-dark) 0%, var(--kuvi-dark-2) 100%);
}
#contacto h2 {
    color: #fff;
}
#contacto .lead {
    color: rgba(255, 255, 255, 0.75);
}
#contacto .form-floating > .form-control {
    border-radius: 0.75rem;
    border: 1px solid #dee2e6;
    background-color: #fff;
}
#contacto .form-floating > label {
    color: var(--kuvi-gray);
}
.contact-info {
    color: rgba(255, 255, 255, 0.8);
}
.contact-info .info-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    margin-bottom: 1rem;
}
.contact-info .info-item i {
    color: var(--kuvi-lila);
    font-size: 1.25rem;
}
.contact-info a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
}
.contact-info a:hover {
    color: var(--kuvi-lila);
}

/* ---------- Navbar ---------- */
#mainNav .navbar-nav .nav-item .nav-link.active {
    color: var(--kuvi-lila) !important;
}
@media (min-width: 992px) {
    #mainNav.navbar-shrink .navbar-brand:hover {
        color: var(--kuvi-lila);
    }
}

/* ---------- Footer ---------- */
footer.bg-dark {
    background-color: var(--kuvi-dark) !important;
}
