/* =========================================================
   Personalizaciones de la tienda (CSS propio)
   Sobrescribe app.css al cargarse después.
   ========================================================= */

/* Ejemplo: personaliza el color principal aquí */
:root {
    /* --color-primary: #2563eb;  // descomenta para cambiar color principal */
}

/* =========================================================
   Tema Kostel Group (k-*)
   ========================================================= */
:root {
    --k-primary: #0b3d6e;
    --k-primary-dark: #072a4e;
    --k-accent: #e8b52a;
    --k-accent-title: #9d0004;
    --k-accent-soft: #fbf3dd;
    --k-bg-soft: #f5f8fc;
    --k-border: #e3e8ef;
    --k-text-muted: #5b6b7c;
    --k-radius: 14px;
    --k-shadow: 0 10px 30px rgba(11, 61, 110, .10);
    --k-shadow-lg: 0 18px 48px rgba(11, 61, 110, .16);
}

body.k-body { font-family: 'Archivo', Roboto, system-ui, sans-serif; }

html, body { overflow-x: hidden; }

/* ---------- Hero ---------- */
.k-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(120deg, var(--k-primary-dark) 0%, var(--k-primary) 55%, #14518f 100%);
    padding: 92px 0 84px;
}
.k-hero--page { padding: 84px 0 72px; }
.k-hero--short { padding: 64px 0 56px; }
.k-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
}
.k-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7, 42, 78, .86) 0%, rgba(7, 42, 78, .55) 60%, rgba(7, 42, 78, .35) 100%);
}
.k-hero__overlay {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 85% 20%, rgba(232, 181, 42, .18) 0, transparent 42%),
        radial-gradient(circle at 10% 90%, rgba(255, 255, 255, .08) 0, transparent 40%);
    pointer-events: none;
}
.k-hero__content { position: relative; max-width: 720px; }
.k-hero__logo { max-width: 180px; height: auto; margin-bottom: 20px; filter: brightness(0) invert(1); }
.k-hero__kicker {
    display: inline-block;
    letter-spacing: .28em;
    font-size: .78rem;
    font-weight: 700;
    color: var(--k-accent);
    margin: 0 0 14px;
    text-transform: uppercase;
}
.k-hero h1 {
    font-size: clamp(2rem, 4.4vw, 3.4rem);
    line-height: 1.3;
    margin: 0 0 18px;
    letter-spacing: -.02em;
}
.k-hero p { font-size: 1.12rem; opacity: .92; max-width: 560px; margin: 0; }
.k-hero__actions { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.k-hero__actions .btn { border-radius: 999px; font-weight: 700; }

/* ---------- Encabezados ---------- */
h1, h2, h3, h4, h5, h6 { line-height: 1.3; }

/* ---------- Secciones ---------- */
.k-section { padding: 76px 0; }
.k-section-title {
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 0 0 8px;
    color: var(--k-primary);
}
.k-section-lead { color: var(--k-text-muted); margin: 0 0 36px; max-width: none; }
.k-section-title.title-animation { font-size: 1.1em; }
.flex-between { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.flex-between .k-section-title { margin: 0; }

/* ---------- Banners ---------- */
.k-banners { padding: 34px 0 0; }
.ml-banner-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }

/* ---------- Divisiones ---------- */
.k-divisions { padding: 76px 0; }
.k-divisions-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.k-division-card {
    display: flex;
    flex-direction: column;
    border-radius: var(--k-radius);
    overflow: hidden;
    border: 1px solid var(--k-border);
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: transform .25s ease, box-shadow .25s ease;
}
.k-division-card:hover { transform: translateY(-4px); box-shadow: var(--k-shadow); color: inherit; }
.k-division-card__media { aspect-ratio: 16/8; overflow: hidden; background: var(--k-bg-soft); }
.k-division-card__media img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s ease; }
.k-division-card:hover .k-division-card__media img { transform: scale(1.05); }
.k-division-card__placeholder { display: grid; place-items: center; height: 100%; font-size: 3rem; color: var(--k-primary); background: linear-gradient(135deg, var(--k-primary), var(--k-accent)); }
.k-division-card__body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.k-division-card__body h3 { color: var(--k-primary); margin: 0 0 8px; font-size: 1.4rem; }
.k-division-card__body p { color: var(--k-text-muted); margin: 0 0 16px; flex: 1; }

/* ---------- Servicios ---------- */
.k-services { padding: 76px 0; }
.k-cards-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.k-service-card {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    padding: 26px;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.k-service-card:hover { transform: translateY(-4px); box-shadow: var(--k-shadow); border-color: var(--k-accent); color: inherit; }
.k-service-card__icon {
    font-size: 1.9rem;
    width: 58px; height: 58px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--k-accent-soft);
    margin-bottom: 16px;
}
.k-service-card h3 { color: var(--k-primary); margin: 0 0 8px; font-size: 1.12rem; }
.k-service-card p { color: var(--k-text-muted); margin: 0 0 16px; font-size: .93rem; flex: 1; }

/* Lista de servicios en división */
.k-service-list { display: grid; gap: 16px; }
.k-service-row {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    padding: 20px 24px;
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.k-service-row:hover { transform: translateX(4px); box-shadow: var(--k-shadow); border-color: var(--k-accent); color: inherit; }
.k-service-row__icon {
    font-size: 1.4rem;
    width: 50px; height: 50px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--k-accent-soft);
}
.k-service-row__body { flex: 1; }
.k-service-row__body h3 { color: var(--k-primary); margin: 0 0 4px; font-size: 1.1rem; }
.k-service-row__body p { color: var(--k-text-muted); margin: 0; font-size: .93rem; }

/* ---------- Infraestructura ---------- */
.k-infra { padding: 76px 0; background: linear-gradient(135deg, var(--k-primary-dark), var(--k-primary)); color: #fff; }
.k-infra .k-section-title { color: #fff; }
.k-infra-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 30px; }
.k-infra-stat {
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: var(--k-radius);
    padding: 26px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.k-infra-stat__num { font-size: 1.5rem; font-weight: 800; color: var(--k-accent); }
.k-infra-stat__label { opacity: .85; font-size: .95rem; }
.k-infra-cta { margin-top: 30px; }
.k-infra-cta .btn { border-radius: 999px; font-weight: 700; }

/* ---------- Productos (carrusel) ---------- */
.k-products { padding: 76px 0; }
.k-carousel { position: relative; }
.k-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 31%;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 6px 2px 14px;
    cursor: grab;
}
.k-carousel__track::-webkit-scrollbar { display: none; }
.k-carousel__track:active { cursor: grabbing; }
.k-carousel__track > * { scroll-snap-align: start; min-width: 0; }
.k-carousel__arrow {
    position: absolute;
    top: 38%;
    transform: translateY(-50%);
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 1px solid var(--k-border);
    background: #fff;
    box-shadow: var(--k-shadow);
    color: var(--k-primary);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    display: grid;
    place-items: center;
    z-index: 3;
}
.k-carousel__arrow:disabled { opacity: .35; cursor: default; }
.k-carousel__arrow.prev { left: -8px; }
.k-carousel__arrow.next { right: -8px; }

/* ---------- Taller 2 (Ciudad de la Costa en home) ---------- */
.k-workshop2 { padding: 76px 0; }
.k-workshop2__grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 44px;
    align-items: center;
}
.k-workshop2__media { border-radius: var(--k-radius); overflow: hidden; box-shadow: var(--k-shadow-lg); }
.k-workshop2__media img { width: 100%; display: block; }
.k-workshop2__placeholder { aspect-ratio: 4/3; display: grid; place-items: center; font-weight: 800; color: var(--k-primary); background: var(--k-accent-soft); }
.k-workshop2__body p { color: var(--k-text-muted); }
.k-workshop2__body .btn { border-radius: 999px; font-weight: 700; margin-top: 6px; }
.k-workshop2__meta { display: flex; flex-wrap: wrap; gap: 14px 26px; margin-top: 22px; color: var(--k-text-muted); font-weight: 600; }
.k-kicker {
    display: inline-block;
    letter-spacing: .26em;
    font-size: .74rem;
    font-weight: 700;
    color: var(--k-accent-title);
    margin: 0 0 10px;
    text-transform: uppercase;
}

/* ---------- Tech (GITA) ---------- */
.k-tech { padding: 76px 0; }
.k-tech-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.k-tech-card {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    padding: 28px;
    transition: box-shadow .25s ease, transform .25s ease;
}
.k-tech-card:hover { box-shadow: var(--k-shadow); transform: translateY(-4px); }
.k-tech-card h3 { color: var(--k-primary); margin: 0 0 10px; font-size: 1.12rem; }
.k-tech-card p { color: var(--k-text-muted); margin: 0; font-size: .95rem; }
.k-article { max-width: 860px; }
.page-nosotros .k-section { padding: 20px 0; }
.k-article__list { margin: 14px 0; padding-left: 22px; color: var(--k-text-muted); }
.k-article__list li { list-style: disc; margin: 6px 0; }
.k-tel-icon { display: inline-block; width: 20px; color: #9d0004; margin-right: 4px; text-align: center; }
.k-article__lead { font-size: 1.15rem; color: var(--k-text-muted); margin: 0 0 26px; }
.k-article h2 { margin-top: 34px; }
.k-article p { color: var(--k-text-muted); }
.k-article strong { color: var(--k-primary); }
.k-features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 20px 0 0; }
.k-feature {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: 12px;
    padding: 14px 18px;
    color: var(--k-text-muted);
}
.k-feature__check { color: var(--k-accent); font-weight: 900; flex-shrink: 0; }

/* ---------- Logos (aseguradoras / clientes) ---------- */
.k-insurance, .k-clients { padding: 76px 0; }
.k-logos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 16px;
    align-items: center;
}
.k-logo {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: 12px;
    padding: 16px;
    display: grid;
    place-items: center;
    min-height: 74px;
}
.k-logo img { max-height: 60px; max-width: 100%; object-fit: contain; }
.k-logo span { font-weight: 800; color: var(--k-primary); text-align: center; }

/* ---------- Certificaciones ---------- */
.k-certs { padding: 76px 0; }
.k-certs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.k-cert {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(11, 61, 110, .08);
    border-radius: 18px;
    padding: 18px 18px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-shadow: 0 10px 30px rgba(11, 61, 110, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.k-cert:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(11, 61, 110, .12); border-color: rgba(11, 61, 110, .14); }
.k-cert img { height: 42px; width: auto; object-fit: contain; margin: 0 auto 2px; filter: saturate(.96); }
.k-cert span {
    font-size: .78rem;
    color: #9d0004;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.k-cert p { font-size: .82rem; color: var(--k-text-muted); margin: 0; line-height: 1.45; }

/* ---------- Testimonios ---------- */
.k-testimonials { padding: 76px 0; }
.k-testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.k-testimonial {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    padding: 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.k-testimonial__stars { position: relative; color: var(--k-accent); font-size: 1.1rem; line-height: 1; }
.k-testimonial__stars span { position: absolute; inset: 0; color: #d7dde4; overflow: hidden; }
.k-testimonial > p { color: var(--k-text-muted); flex: 1; margin: 0; }
.k-testimonial__author { display: flex; gap: 12px; align-items: center; }
.k-testimonial__author strong { color: var(--k-primary); display: block; }
.k-testimonial__author div { display: flex; flex-direction: column; }
.k-testimonial__author div span { font-size: .85rem; color: var(--k-text-muted); }
.k-testimonial__avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.k-badge-google { color: #4285f4; font-weight: 700; font-size: .78rem !important; }

/* ---------- Videos ---------- */
.k-videos { padding: 76px 0; }
.k-videos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.k-video { display: flex; flex-direction: column; gap: 10px; }
.k-video__thumb {
    display: block;
    position: relative;
    border-radius: var(--k-radius);
    overflow: hidden;
    aspect-ratio: 16/9;
    background: var(--k-primary-dark);
}
.k-video__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.k-video__thumb:hover img { transform: scale(1.04); }
.k-video__play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 2rem;
}
.k-video__frame { position: relative; border-radius: var(--k-radius); overflow: hidden; aspect-ratio: 16/9; background: #000; }
.k-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.k-video h3 { color: var(--k-primary); margin: 0; font-size: 1.05rem; }
.k-video .muted { color: var(--k-text-muted); margin: 0; font-size: .9rem; }

/* ---------- CTA ---------- */
.k-cta { padding: 76px 0; }
.k-cta__actions { display: flex; gap: 14px; margin-top: 22px; flex-wrap: wrap; }
.k-cta__actions .btn { border-radius: 999px; font-weight: 700; }
.k-cta h2, .k-cta h3 { margin: 0; }
.k-cta p { margin: 6px 0 0; opacity: .9; }

/* ---------- Talleres (grid) ---------- */
.k-workshops-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.k-workshop-card {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.k-workshop-card:hover { transform: translateY(-4px); box-shadow: var(--k-shadow); }
.k-workshop-card__media { aspect-ratio: 16/9; overflow: hidden; display: block; background: var(--k-bg-soft); }
.k-workshop-card__media img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s ease; }
.k-workshop-card:hover .k-workshop-card__media img { transform: scale(1.05); }
.k-workshop-card__placeholder { display: grid; place-items: center; height: 100%; font-weight: 800; color: var(--k-primary); background: var(--k-accent-soft); }
.k-workshop-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.k-workshop-card__body h3 { color: var(--k-primary); margin: 0 0 6px; }
.k-workshop-card__body p { color: var(--k-text-muted); margin: 0 0 8px; }
.k-workshop-card__body .k-link-arrow { margin-top: auto; padding-top: 10px; }

/* ---------- Taller (detalle) ---------- */
.k-workshop-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.k-workshop-detail__media { border-radius: var(--k-radius); overflow: hidden; box-shadow: var(--k-shadow-lg); aspect-ratio: 1/1; background: var(--k-bg-soft); }
.k-workshop-detail__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.k-workshop-detail__body p { color: var(--k-text-muted); }
.k-workshop-detail__body h3 { color: var(--k-primary); margin: 22px 0 10px; }
.k-check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; color: var(--k-text-muted); }
.k-check-list li { display: flex; gap: 8px; align-items: flex-start; }
.k-contact-box { display: flex; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.k-contact-box .btn { border-radius: 999px; font-weight: 700; }
.k-workshop-map { margin-top: 40px; }
.k-workshop-map iframe { width: 100%; height: 400px; border: 0; border-radius: var(--k-radius); box-shadow: var(--k-shadow); }

/* ---------- Otras sucursales (lista minimalista) ---------- */
.k-workshop-branches { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 20px; }
.k-workshop-branch {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 18px; border-radius: var(--k-radius);
    background: #fff; border: 1px solid var(--k-border);
    text-decoration: none; transition: box-shadow .2s ease, border-color .2s ease;
}
.k-workshop-branch:hover { border-color: var(--k-primary); box-shadow: var(--k-shadow); }
.k-workshop-branch__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.k-workshop-branch__name { font-weight: 700; color: var(--k-primary); font-size: .95rem; }
.k-workshop-branch__addr { color: var(--k-text-muted); font-size: 1.3rem; }
.k-workshop-branch__addr i { margin-right: 4px; }
.k-workshop-branch__city { color: var(--k-text-muted); font-size: 1.4rem; }
.k-workshop-branch__arrow { flex-shrink: 0; color: var(--k-text-muted); font-size: .75rem; transition: transform .2s ease, color .2s ease; }
.k-workshop-branch:hover .k-workshop-branch__arrow { color: var(--k-primary); transform: translateX(3px); }

/* -- Otras sucursales (solo página taller, minimalista) -- */
.k-branch-other .k-section-title { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--k-text-muted); margin-bottom: 14px; }
.k-branch-other .k-workshop-branches { grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 0; }
.k-branch-other .k-workshop-branch { background: #fff; border: 1px solid var(--k-border); border-radius: var(--k-radius); padding: 14px 16px; gap: 10px; justify-content: flex-start; }
.k-branch-other .k-workshop-branch:hover { box-shadow: var(--k-shadow); border-color: var(--k-primary); }
.k-branch-other .k-workshop-branch__name { font-size: 1.05rem; font-weight: 600; }
.k-branch-other .k-workshop-branch__addr { font-size: 1rem; }
.k-branch-other .k-workshop-branch__addr i { font-size: .55rem; }
.k-branch-other .k-workshop-branch__city { font-size: .7rem; }
.k-branch-other .k-workshop-branch__arrow { font-size: .45rem; }
.k-branch-other .k-workshop-branch__thumb { width: 80px; height: 80px; object-fit: cover; border-radius: var(--k-radius); flex-shrink: 0; }

/* ---------- Galería ---------- */
.k-gallery-block { margin-bottom: 26px; }
.k-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.k-gallery-item {
    display: block;
    border-radius: var(--k-radius);
    overflow: hidden;
    aspect-ratio: 4/3;
    position: relative;
    cursor: zoom-in;
    background: var(--k-bg-soft);
}
.k-gallery-item img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s ease; }
.k-gallery-item:hover img { transform: scale(1.05); }
.k-gallery-item::after {
    content: "\1F50D";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.6rem;
    background: rgba(7, 42, 78, .35);
    opacity: 0;
    transition: opacity .25s ease;
}
.k-gallery-item:hover::after { opacity: 1; }

/* ---------- Lightbox ---------- */
.k-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(4, 16, 30, .94);
    display: none;
    align-items: center;
    justify-content: center;
}
.k-lightbox.is-open { display: flex; }
.k-lightbox__frame { max-width: 92vw; max-height: 86vh; margin: 0; text-align: center; }
.k-lightbox__frame img { max-width: 92vw; max-height: 76vh; object-fit: contain; border-radius: 8px; }
.k-lightbox__frame figcaption { color: #cfd8e3; padding-top: 12px; }
.k-lightbox__close {
    position: absolute;
    top: 18px; right: 22px;
    background: none;
    border: none;
    color: #fff;
    font-size: 2.4rem;
    cursor: pointer;
    line-height: 1;
}
.k-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px; height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
}
.k-lightbox__nav--prev { left: 18px; }
.k-lightbox__nav--next { right: 18px; }

/* ---------- Contacto ---------- */
.k-contact-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; }
.k-contact-info { display: flex; flex-direction: column; gap: 0; }
.k-contact-card {
    background: #fff;
    border: 1px solid var(--k-border);
    border-radius: var(--k-radius);
    padding: 22px 24px;
    margin-bottom: 14px;
}
.k-contact-card h3 { margin: 0 0 10px; color: var(--k-primary); }
.k-contact-card p { margin: 4px 0; color: var(--k-text-muted); }
.k-contact-card a { color: var(--k-primary); font-weight: 700; }
.k-contact-form { background: #fff; border: 1px solid var(--k-border); border-radius: var(--k-radius); padding: 30px; box-shadow: var(--k-shadow); }
.k-contact-form .form-group { margin-bottom: 16px; }
.k-contact-form label { font-weight: 600; color: var(--k-primary); }

/* ---------- Links ---------- */
.k-link-arrow { font-weight: 700; color: var(--k-primary); }
.k-link-arrow:hover { color: var(--k-accent); }

/* ---------- Logos densos (clientes) ---------- */
.k-logos--dense { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
.k-logos--dense .k-logo { min-height: 64px; padding: 12px; }

/* ---------- Botón flotante WhatsApp ---------- */
.whatsapp-float {
    position: fixed;
    bottom: 22px;
    right: 22px;
    z-index: 1000;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 10px 26px rgba(37, 211, 102, .45);
    transition: transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float:hover { transform: translateY(-3px) scale(1.04); color: #fff; box-shadow: 0 14px 32px rgba(37, 211, 102, .55); }

/* ---------- Nav ---------- */
.main-nav { background: #2d5eab; }
.main-nav ul li { position: relative; }
.main-nav ul { gap: 2px; }
.main-nav ul li a { padding: 8px 8px; font-size: 0.8rem; color: #ffffff; }
.main-nav ul li a:hover { background: #033469; }

/* =========================================================
   Responsive — Breakpoints clave:
   36rem (576px) / 48rem (768px) / 62rem (992px) / 75rem (1200px) / 87.5rem (1400px)
   ========================================================= */

/* --- Monitores grandes (>= 1400px) --- */
@media (min-width: 87.5rem) { /* 1400px */
    .container { max-width: 1320px; }
}

/* --- Desktop tradicional (>= 1200px) — estilos base ya aplicados --- */
/* (sin cambios: grids y layout base cubren 1200px+) */

/* --- Laptops / tablets horizontales (<= 992px) --- */
@media (max-width: 62rem) { /* 992px */
    .main-nav { display: none; }
    .k-divisions-grid, .k-cards-row, .k-tech-grid, .k-certs-grid, .k-testimonials-grid, .k-videos-grid, .k-gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .k-workshops-grid { grid-template-columns: 1fr; }
    .k-workshop2__grid, .k-workshop-detail, .k-contact-layout { grid-template-columns: 1fr; gap: 30px; }
    .k-workshop-map { margin-top: 20px; }
    .k-workshop-branches { grid-template-columns: 1fr; }
    .k-branch-other .k-workshop-branches { grid-template-columns: 1fr; }
    .k-infra-grid { grid-template-columns: repeat(2, 1fr); }
    .ml-banner-grid { grid-template-columns: 1fr; }
    .k-carousel__track { grid-auto-columns: 45%; }
    .k-social-grid { grid-template-columns: repeat(3, 1fr); }
}

/* --- Tablets / pantallas medianas (<= 768px) --- */
@media (max-width: 48rem) { /* 768px */
    .header-info { display: none; }
    .drawer { width: 100%; max-width: 100vw; }
    .k-section { padding: 60px 0; }
    .table { display: block; width: 100%; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
    .cart-summary { width: 100% !important; max-width: none !important; }
    .flex-between .k-section-title { width: 100%; }
}

/* --- Móviles grandes en horizontal / tablets chicas (<= 576px) --- */
@media (max-width: 36rem) { /* 576px */
    .k-section { padding: 52px 0; }
    .k-divisions-grid, .k-cards-row, .k-tech-grid, .k-certs-grid, .k-testimonials-grid, .k-videos-grid, .k-gallery-grid, .k-features-grid { grid-template-columns: 1fr; }
    .k-infra-grid { grid-template-columns: 1fr; }
    .k-carousel__track { grid-auto-columns: 84%; }
    .k-hero__actions, .k-cta__actions, .k-contact-box { flex-direction: column; }
    .k-hero__actions .btn, .k-cta__actions .btn, .k-contact-box .btn { width: 100%; }
    .k-social-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   Productos home en móvil — tarjetas horizontales 50/50 (imagen | texto)
   Solo se aplica en la home (sección .k-products) y solo en móvil.
   El desktop mantiene el carrusel vertical actual sin cambios.
   ========================================================= */
.card-desc { display: none; }
@media (max-width: 36rem) { /* 576px: móviles */
    .k-products .k-carousel__track { grid-auto-columns: 88%; }
    .k-products .k-carousel__arrow { display: none; }
    .k-products .card {
        display: flex; flex-direction: row; align-items: stretch;
        border-radius: 14px; overflow: hidden; box-shadow: 0 6px 22px rgba(11, 61, 110, .10);
    }
    .k-products .card-img {
        flex: 1 1 48%; max-width: 48%; aspect-ratio: 1/1;
        background: var(--k-bg-soft);
    }
    .k-products .card-body {
        flex: 1 1 52%; display: flex; flex-direction: column;
        justify-content: center; gap: 6px; padding: 16px 18px;
    }
    .k-products .card-desc {
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
        overflow: hidden; font-size: .82rem; line-height: 1.45; color: var(--k-text-muted); margin: 0;
    }
    .k-products .card-cat { margin-bottom: 2px; }
    .k-products .card-title { font-size: .95rem; line-height: 1.25; }
    .k-products .card-body .price { font-size: 1.05rem; }
    .k-products .card-body .price-old { font-size: .8rem; }
    .k-products .card-actions { margin-top: auto; }
    .k-products .card-actions .btn { padding: 8px 12px; font-size: .8rem; white-space: nowrap; }
    .k-products .card-body .wish-icon { top: 8px; right: 8px; }
}

/* ===== Sección redes sociales (Fase G) ===== */
.k-social { background: var(--color-bg-soft); }
.k-social-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    margin-top: 28px;
}
.k-social-card {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 1;
    background: #e5e7eb;
}
.k-social-card img { width: 100%; height: 100%; object-fit: contain; transition: transform .35s ease; }
.k-social-card:hover img { transform: scale(1.06); }
.k-social-card__text { padding: 14px; font-size: .9rem; color: #374151; }
.k-social-card__platform {
    position: absolute;
    left: 8px; bottom: 8px;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: .68rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 999px;
}
/* ===== Widget Google Reviews ===== */
.k-reviews-widget { margin-top: 48px; }
.k-reviews-widget iframe { width: 100% !important; }
.k-svc-testimonials__shell {
    padding: 12px;
    border: 1px solid rgba(157, 0, 4, .12);
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.92)),
        linear-gradient(135deg, rgba(157, 0, 4, .05), rgba(209, 158, 22, .04));
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}
.k-svc-testimonials__head {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    text-align: center;
    gap: 12px;
}
.k-svc-testimonials__rating {
    text-align: right;
    min-width: 120px;
    padding: 8px 12px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 4px 10px rgba(15, 23, 42, .05);
}
.k-svc-testimonials__rating strong {
    display: block;
    font-size: 1.2rem;
    line-height: 1;
    color: var(--k-primary);
}
.k-svc-testimonials__rating span {
    display: block;
    margin-top: 1px;
    color: #d19e16;
    letter-spacing: .12em;
    font-size: .7rem;
}
.k-svc-testimonials__rating small {
    display: block;
    margin-top: 1px;
    color: var(--k-text-muted);
    font-size: .65rem;
}
.k-svc-testimonials__actions { margin-top: 10px; text-align: center; width: 100%; }
.k-svc-testimonials__carousel {
    position: relative;
    display: block;
    padding-top: 0;
}
.testimonial-one__single-inner {
    position: relative;
    display: block;
}
.testimonial-one__single {
    position: relative;
    display: block;
    background-color: #fff;
    padding: 18px 16px 14px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
    min-height: 100%;
}
.testimonial-one__img {
    position: absolute;
    top: -24px;
    right: 30px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    z-index: 1;
}
.testimonial-one__img--initial {
    display: grid;
    place-items: center;
    background: var(--k-accent-soft);
    color: var(--k-primary);
    font-weight: 800;
    font-size: .85rem;
    line-height: 1;
    overflow: visible;
}
.testimonial-one__img--initial span {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--k-accent-soft);
    box-shadow: 0 6px 14px rgba(15, 23, 42, .08);
}
.testimonial-one__rating {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 3px;
    left: 50%;
    bottom: -24px;
    transform: translateX(-50%);
    white-space: nowrap;
}
.testimonial-one__rating--inline {
    position: static;
    justify-content: flex-start;
    transform: none;
    left: auto;
    bottom: auto;
    margin-top: 10px;
}
.testimonial-one__rating span {
    position: relative;
    display: inline-block;
    font-size: 16px;
    color: var(--k-accent);
}
.testimonial-one__client-info {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 12px;
}
.testimonial-one__client-content {
    position: relative;
    display: block;
}
.testimonial-one__client-name {
    font-size: 16px;
    font-weight: 700;
    line-height: 18px;
    margin: 0;
    color: var(--k-primary);
}
.testimonial-one__client-sub-title {
    margin: 4px 0 0;
    color: var(--k-text-muted);
    font-size: .75rem;
}
.testimonial-one__text {
    position: relative;
    margin: 0;
    color: var(--k-text-muted);
    font-size: .82rem;
    line-height: 1.5;
}
.testimonial-one__nav {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
}
.testimonial-one__nav .swiper-button-prev1,
.testimonial-one__nav .swiper-button-next1 {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(15, 23, 42, .12);
    background: #fff;
    color: var(--k-primary);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: .2s ease;
}
.testimonial-one__nav .swiper-button-prev1:hover,
.testimonial-one__nav .swiper-button-next1:hover {
    background: var(--k-primary);
    color: #fff;
}
.testimonial-one__nav .swiper-button-prev1 i,
.testimonial-one__nav .swiper-button-next1 i {
    font-size: .7rem;
}
.k-svc-testimonials__panel {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 24px;
    background: #fff;
}
.k-svc-testimonials__panel--empty { text-align: center; }
.k-svc-testimonials__empty {
    margin: 0;
    color: var(--k-text-muted);
}
.k-svc-testimonials__meta {
    margin: 8px 0 0;
    color: var(--k-text-muted);
}
.k-svc-testimonials__linkbox {
    margin-top: 32px;
    padding: 18px 22px;
    border: 1px solid rgba(157, 0, 4, .18);
    border-radius: 18px;
    background: rgba(157, 0, 4, .04);
}
.k-svc-testimonials__linkbox a {
    color: var(--k-primary);
    font-weight: 700;
    text-decoration: none;
}
.k-svc-testimonials__linkbox a:hover { color: #9d0004; }

/* =========================================================
   KOSTEL 2026 — Actualización de tema (inspirada en servixa)
   Adaptada a la identidad, información y estructura actuales.
   Solo presentación; NO cambia contenidos ni colores de marca.
   ========================================================= */

:root {
    --k-font: 'Archivo', Roboto, system-ui, sans-serif;
    --k-ease: cubic-bezier(.22, .61, .36, 1);
    --k-gold-dark: #d19e16;
    --k-cta-dark: #0d1b2a;
}

body.k-body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

html { font-size: 18px; }

/* ---------- Scroll reveal (progressive enhancement) ---------- */
.text-accent { color: var(--k-accent); }
html.js [data-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .7s var(--k-ease), transform .7s var(--k-ease);
    will-change: opacity, transform;
}
html.js [data-reveal="left"] { transform: translateX(-100%); }
html.js [data-reveal="right"] { transform: translateX(100%); }
html.js [data-reveal="zoom"] { transform: scale(.94); }
html.js [data-reveal].is-revealed { opacity: 1; transform: none; }

/* ---------- Título animado estilo servixa (GSAP SplitText) ---------- */
.title-animation { perspective: 400px; }
.title-animation .split-line { display: block; }
.title-animation .char,
.title-animation .word { display: inline-block; }
.sec-title-animation .title-animation .char { will-change: transform, opacity; }

/* ---------- Section head (kicker + título) ---------- */
.k-section-head { margin-bottom: 20px; max-width: none; }
.k-section-head .k-kicker { margin-bottom: 12px; }
.k-section-head .k-section-title { margin-bottom: 5px; }
.k-section-head .k-section-lead { margin-bottom: 0; }
.k-section-head { text-align: center; }
.k-section-head .k-kicker,
.k-section-head .k-section-title,
.k-section-head .k-section-lead { margin-left: auto; margin-right: auto; }
.k-section-head--center { text-align: center; margin-left: auto; margin-right: auto; }
.k-section-head--center .k-section-lead { margin-left: auto; margin-right: auto; }

/* ---------- Botones de marca (pill + estados) ---------- */
.btn-primary {
    background: var(--k-accent);
    color: var(--k-primary-dark);
    transition: background .25s ease, box-shadow .25s ease, transform .2s ease;
    box-shadow: 0 6px 18px rgba(232, 181, 42, .35);
}
.btn-primary:hover {
    background: var(--k-gold-dark);
    color: var(--k-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(232, 181, 42, .42);
}
.btn-outline {
    background: transparent;
    color: var(--k-primary);
    border: 1.5px solid var(--k-primary);
    transition: background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
}
.btn-outline:hover {
    background: var(--k-primary);
    color: #fff;
    border-color: var(--k-primary);
    transform: translateY(-2px);
}
.k-hero .btn-outline, .k-infra .btn-outline, .k-cta__inner .btn-outline {
    color: #fff;
    border-color: rgba(255, 255, 255, .7);
}
.k-hero .btn-outline:hover, .k-infra .btn-outline:hover, .k-cta__inner .btn-outline:hover {
    background: #fff;
    color: var(--k-primary-dark);
    border-color: #fff;
}
.btn-disabled {
    background: var(--k-border);
    color: var(--k-text-muted);
    cursor: not-allowed;
    box-shadow: none;
}
.btn-disabled:hover {
    background: var(--k-border);
    color: var(--k-text-muted);
    transform: none;
    box-shadow: none;
}

/* ---------- Header sticky ---------- */
.k-sticky-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 120;
}
body { padding-top: var(--k-header-h, 0); }
.site-header { padding: 0; transition: box-shadow .3s ease; }
.site-header.is-sticky { box-shadow: 0 8px 24px rgba(11, 61, 110, .12); }
.site-header .container { color: #144a78; }
.logo { display: inline-flex; align-items: center; line-height: 1; }
.logo .logo-img { height: 57px; width: auto; max-height: 57px; display: block; object-fit: contain; }
.drawer__logo { height: 36px; width: auto; max-height: 36px; object-fit: contain; }

/* ---------- Drawer mobile: modernización ---------- */
@media (max-width: 767px) {
    /* Panel: gradiente sofisticado con profundidad */
    .drawer {
        background:
            radial-gradient(ellipse at 20% 0%, rgba(232, 181, 42, .06) 0%, transparent 50%),
            linear-gradient(160deg, #2d5eab 0%, #1b4480 40%, #0f2f5e 100%);
    }

    /* Header: blanco */
    .drawer__header {
        background: #fff;
        border-bottom: 1px solid var(--k-border);
        box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
        padding: 18px 20px;
    }
    .header-info { display: none !important; }
    .drawer__title {
        color: var(--k-primary);
    }
    .drawer__logo {
        filter: none;
        height: 100px;
        max-height: 100px;
    }
    .drawer__close {
        color: var(--k-primary);
        transition: box-shadow .2s ease, background .2s ease;
    }
    .drawer__close:hover {
        background: var(--k-bg-soft);
        box-shadow: none;
    }

    /* Links: texto blanco sobre gradiente azul */
    .drawer-menu {
        background: transparent;
    }
    .drawer-menu__link {
        font-size: 1.2rem;
        padding: 16px 20px;
        letter-spacing: .01em;
        color: #fff;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
        transition: background .2s ease, color .2s ease, padding-left .2s ease;
    }
    .drawer-menu__item:last-child .drawer-menu__link {
        border-bottom: none;
    }

    /* Hover: resalte sutil */
    .drawer-menu__link:hover {
        background: rgba(255, 255, 255, .10);
        color: #fff;
        border-left: 3px solid var(--k-accent);
        padding-left: 24px;
    }

    /* Item activo: borde inferior dorado */
    .drawer-menu__link.is-active {
        background: #033469;
        color: #fff;
        font-weight: 600;
        border-left: none;
        border-bottom: 3px solid var(--k-accent);
        padding-left: 20px;
    }

    /* Sub-menus: fondo más oscuro */
    .drawer-menu__sub {
        background: rgba(0, 0, 0, .10);
    }
    .drawer-menu__sub .drawer-menu__link {
        padding-left: 48px;
        font-weight: 500;
        color: rgba(255, 255, 255, .90);
    }
    .drawer-menu__sub .drawer-menu__link:hover {
        background: rgba(255, 255, 255, .10);
        color: #fff;
    }
    .drawer-menu__sub .drawer-menu__sub .drawer-menu__link {
        padding-left: 72px;
        font-size: 1.05rem;
        font-weight: 400;
        color: rgba(255, 255, 255, .75);
    }
}
/* ---------- Fin drawer mobile modernización ---------- */

/* ---------- Drawer sucursales ---------- */
.drawer-workshops { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,.12); }
.drawer-workshops__label {
    display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: rgba(255,255,255,.5); margin-bottom: 10px;
}
.drawer-workshops__list { display: flex; flex-wrap: wrap; gap: 8px; }
.drawer-workshops__btn {
    padding: 6px 14px; border-radius: 5px; font-size: 1.3rem; font-weight: 600;
    text-decoration: none; white-space: nowrap;
    color: #fff; border: 1px solid rgba(255,255,255,.3);
    transition: all .2s ease;
}
.drawer-workshops__btn:hover { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.5); }

.logo span { color: var(--k-accent); }
/* ---------- Header info (central + sucursales) ---------- */
.header-info { display: flex; align-items: center; gap: 16px; flex: 1; justify-content: center; flex-wrap: wrap; }
.header-info__detail {
    font-size: .78rem; color: var(--k-text-muted, #666); white-space: nowrap;
}
.header-info__detail strong { color: var(--k-primary-dark, #033469); font-weight: 700; }
.header-info__branches {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    font-size: .78rem;
}
.header-info__branches strong { color: var(--k-primary-dark, #033469); font-weight: 700; white-space: nowrap; }
.header-info__btn {
    padding: 4px 12px; border-radius: 5px; font-size: .72rem; font-weight: 600;
    text-decoration: none; white-space: nowrap; letter-spacing: .03em; text-transform: uppercase;
    color: var(--k-primary-dark, #033469); background: transparent;
    border: 1px solid rgba(3,52,105,.3);
    transition: all .25s ease;
}
.header-info__btn:hover {
    background: var(--k-primary-dark, #033469); color: #fff;
    border-color: var(--k-primary-dark, #033469);
}
.header-info__btn.is-active {
    background: var(--k-primary-dark, #033469); color: #fff;
    border-color: var(--k-primary-dark, #033469);
    border-bottom: 3px solid var(--k-accent);
}
.cart-badge { background: var(--k-accent); color: var(--k-primary-dark); }

/* ---------- Nav: subrayado animado + activo ---------- */
.main-nav ul li a { position: relative; }
.main-nav ul li a::after {
    content: "";
    position: absolute;
    left: 14px; right: 14px; bottom: 6px;
    height: 2px;
    background: var(--k-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s var(--k-ease);
}
.main-nav ul li a:hover::after { transform: scaleX(1); }
.main-nav ul li a.is-active {
    color: #fff; font-weight: 600; background: #033469;
    border-bottom: 3px solid var(--k-accent);
}
.main-nav ul li a.is-active::after { display: none; }

/* ---------- Hero: fade cross + Ken Burns + entrada ---------- */
.k-hero__bg { transform: none; }
.k-hero__slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1.1s ease;
}
.k-hero__slide.is-active { opacity: 1; animation: kKenBurns 7s ease-out forwards; }
@keyframes kKenBurns {
    0% { transform: scale(1.04); }
    100% { transform: scale(1.12); }
}
.k-hero__content > * { animation: kHeroUp .7s var(--k-ease) both; }
.k-hero__content > *:nth-child(2) { animation-delay: .12s; }
.k-hero__content > *:nth-child(3) { animation-delay: .24s; }
.k-hero__content > *:nth-child(4) { animation-delay: .36s; }
@keyframes kHeroUp {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}
.k-hero__shape { position: absolute; pointer-events: none; border-radius: 50%; }
.k-hero__shape--1 {
    top: -120px; right: -80px; width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(232, 181, 42, .35), transparent 65%);
    animation: kFloat 12s ease-in-out infinite;
}
.k-hero__shape--2 {
    bottom: -180px; left: -120px; width: 420px; height: 420px;
    border: 2px dashed rgba(232, 181, 42, .28);
    animation: kRotate 45s linear infinite;
}
@keyframes kFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
@keyframes kRotate { to { transform: rotate(360deg); } }

/* ---------- Fondo alterno de sección (utilidad) ---------- */
.k-bg-soft { background: var(--k-bg-soft); }

/* ---------- Cards de servicio: ícono círculo + contador + hover ---------- */
.k-service-card { position: relative; }
.k-service-card__icon {
    border-radius: 50%;
    color: var(--k-primary);
    transition: background .3s ease, color .3s ease, transform .3s ease;
}
.k-service-card:hover .k-service-card__icon {
    background: var(--k-accent);
    color: var(--k-primary-dark);
    transform: translateY(-3px);
}
.k-service-card__count {
    position: absolute;
    top: 16px; right: 22px;
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1;
    color: rgba(11, 61, 110, .08);
    transition: color .3s ease;
    pointer-events: none;
}
.k-service-card:hover .k-service-card__count { color: rgba(232, 181, 42, .22); }
.k-service-card:hover .k-link-arrow { color: var(--k-accent); }
.k-link-arrow { transition: color .25s ease; }

/* ---------- Divisiones: borde acento en hover ---------- */
.k-division-card { transition: transform .3s var(--k-ease), box-shadow .3s var(--k-ease), border-color .3s ease; }
.k-division-card:hover { border-color: var(--k-accent); }

/* ---------- Contadores ---------- */
.k-counter { font-variant-numeric: tabular-nums; }

/* ---------- Marquee de logos (aseguradoras / clientes) ---------- */
.k-marquee { overflow: hidden; margin-top: 20px; margin-bottom: 40px; }
.k-marquee__track {
    display: flex;
    gap: 16px;
    width: max-content;
    will-change: transform;
    animation: kMarquee 10s linear infinite;
}
.k-marquee:hover .k-marquee__track { animation-play-state: paused; }
.k-marquee__group { display: flex; gap: 16px; align-items: center; flex-shrink: 0; }
.k-marquee__group .k-logo { flex-shrink: 0; background: #fff; padding: 4px; }
.k-marquee__group a.k-logo { display: block; text-decoration: none; color: inherit; }
@keyframes kMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .k-marquee__track { animation: kMarquee 10s linear infinite !important; } }

/* ---------- Videos: botón play con ripple ---------- */
.k-play-btn {
    position: relative;
    width: 72px; height: 72px;
    border-radius: 50%;
    background: #fff;
    color: var(--k-primary);
    display: grid;
    place-items: center;
    font-size: 1.3rem;
    padding-left: 4px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
    transition: background .3s ease, color .3s ease, transform .3s ease;
}
.k-play-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .85);
    animation: kRipple 2s ease-out infinite;
}
@keyframes kRipple {
    0% { transform: scale(1); opacity: .8; }
    100% { transform: scale(1.7); opacity: 0; }
}
.k-video__thumb:hover .k-play-btn { background: var(--k-accent); color: var(--k-primary-dark); }

/* ---------- Testimonios: avatar con iniciales ---------- */
.k-testimonial__avatar--initial {
    display: grid;
    place-items: center;
    background: var(--k-accent-soft);
    color: var(--k-primary);
    font-weight: 800;
}

/* ---------- CTA final: panel oscuro con brillo dorado ---------- */
.k-cta { padding-bottom: 96px; }
.k-cta__inner {
    position: relative;
    border-radius: 18px;
    padding: 56px 40px;
    text-align: center;
    background: linear-gradient(135deg, var(--k-cta-dark) 0%, #0f172a 100%);
    color: #fff;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(4, 16, 30, .35);
}
.k-cta__inner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 15% 120%, rgba(232, 181, 42, .22), transparent 45%),
        radial-gradient(circle at 85% -20%, rgba(232, 181, 42, .14), transparent 40%);
}
.k-cta__inner > * { position: relative; }
.k-cta__inner p { margin: 6px 0 0; opacity: .9; }
.k-cta__actions { justify-content: center; }

/* ---------- Flechas del carrusel: hover dorado ---------- */
.k-carousel__arrow { transition: background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease; }
.k-carousel__arrow:hover:not(:disabled) { background: var(--k-accent); color: var(--k-primary-dark); border-color: var(--k-accent); }

/* ---------- Fondo de la sección social (variable de marca) ---------- */
.k-social { background: var(--k-bg-soft); }

/* ---------- Respetar preferencias de movimiento ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    html.js [data-reveal],
    html.js [data-reveal="left"],
    html.js [data-reveal="right"],
    html.js [data-reveal="zoom"] { opacity: 1; transform: none; }
    .k-hero__slide.is-active { animation: none; }
}

/* ---------- Responsive KOSTEL 2026 ---------- */
@media (max-width: 48rem) { /* 768px */
    .k-cta { padding-bottom: 72px; }
    .k-cta__inner { padding: 44px 24px; }
    .k-play-btn { width: 60px; height: 60px; }
}
@media (max-width: 36rem) { /* 576px */
    .k-section-head { margin-bottom: 20px; }
    .k-cta__inner { padding: 40px 18px; }
    .k-hero__shape--2 { display: none; }
}

/* =========================================================
   KOSTEL 2026 · Home renovado (paradigma servixa)
   Hero split/video, sobre el taller, proceso, talleres, etc.
   ========================================================= */

/* ---------- Hero: variantes ---------- */
.k-hero--split { padding: 96px 0 0; }
.k-hero--slider { padding-bottom: 0; }
.k-hero--slider .k-hero__content { padding: 96px 0 92px; }
.k-hero--video,
.k-hero--youtube {
    padding: 0;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.k-hero--video .k-hero__content,
.k-hero--youtube .k-hero__content { padding: 120px 0 110px; }
.k-hero--video .k-hero__content h1,
.k-hero--video .k-hero__content p,
.k-hero--youtube .k-hero__content h1,
.k-hero--youtube .k-hero__content p {
    text-shadow: 0 2px 20px rgba(7, 42, 78, .9), 0 1px 3px rgba(7, 42, 78, .6);
}

/* ---- Hero YouTube: posicionamiento configurable del contenido ---- */
.k-hero--youtube.k-hero--svc-youtube {
    align-items: flex-start;
}
/* Verticales — usar margin auto para posicionar el flex-item */
.k-hero--youtube .k-hero__content--top-left,
.k-hero--youtube .k-hero__content--top-center,
.k-hero--youtube .k-hero__content--top-right    { margin-top: 0; margin-bottom: auto; padding-top: 48px; padding-bottom: 48px; }
.k-hero--youtube .k-hero__content--center-left,
.k-hero--youtube .k-hero__content--center-center,
.k-hero--youtube .k-hero__content--center-right  { margin-top: auto; margin-bottom: auto; }
.k-hero--youtube .k-hero__content--bottom-left,
.k-hero--youtube .k-hero__content--bottom-center,
.k-hero--youtube .k-hero__content--bottom-right  { margin-top: auto; margin-bottom: 0; padding-top: 48px; padding-bottom: 48px; }
/* Horizontales */
.k-hero--youtube .k-hero__content--top-left,
.k-hero--youtube .k-hero__content--center-left,
.k-hero--youtube .k-hero__content--bottom-left   { margin-left: 1.5em; margin-right: auto; }
.k-hero--youtube .k-hero__content--top-center,
.k-hero--youtube .k-hero__content--center-center,
.k-hero--youtube .k-hero__content--bottom-center { margin-left: auto; margin-right: auto; }
.k-hero--youtube .k-hero__content--top-right,
.k-hero--youtube .k-hero__content--center-right,
.k-hero--youtube .k-hero__content--bottom-right  { margin-left: auto; margin-right: 1.5em; }
/* Centro-centro: alinear texto al centro */
.k-hero--youtube .k-hero__content--center-center {
    text-align: center;
}
/* Top-center y bottom-center: centrar texto */
.k-hero--youtube .k-hero__content--top-center,
.k-hero--youtube .k-hero__content--bottom-center {
    text-align: center;
}
/* Derecha: alinear texto */
.k-hero--youtube .k-hero__content--top-right,
.k-hero--youtube .k-hero__content--center-right,
.k-hero--youtube .k-hero__content--bottom-right {
    text-align: right;
}
.k-svc-hero-content-mobile { display: none; }
.k-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.k-hero__youtube {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    background-size: cover;
    background-position: center;
}
.k-hero__youtube iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100%, 177.78vh);
    width: max(100%, 177.78svh);
    height: max(100%, 56.25vw);
    height: max(100%, 56.25svw);
    transform: translate(-50%, -50%);
    border: 0;
}

/* Split: contenido izquierda + marco de imagen derecha */
.k-hero__content-wrap {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 48px;
    align-items: center;
    padding-bottom: 72px;
}
.k-hero--split .k-hero__content { max-width: none; }
.k-hero__media { position: relative; }
.k-hero__frame {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    border: 4px solid rgba(232, 181, 42, .4);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .45);
}
.k-hero__frame img { width: 100%; aspect-ratio: 4/3; object-fit: contain; display: block; }
.k-hero__badge {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 16px;
    box-shadow: var(--k-shadow-lg);
    padding: 14px 18px;
    text-align: center;
    z-index: 2;
}
.k-hero__badge strong { font-size: 1.35rem; line-height: 1; color: var(--k-primary); }
.k-hero__badge span {
    font-size: .68rem;
    font-weight: 700;
    color: var(--k-text-muted);
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-top: 5px;
}
.k-hero__badge--1 { top: -22px; left: -18px; animation: kFloat 8s ease-in-out infinite; }
.k-hero__badge--1 strong { color: var(--k-accent); }
.k-hero__badge--2 { bottom: -22px; right: -18px; animation: kFloat 8s ease-in-out 1.3s infinite; }

/* Chips de confianza (barra inferior del hero) */
.k-hero__chips {
    position: relative;
    z-index: 3;
    background: rgba(7, 42, 78, .55);
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding: 14px 0;
}
.k-hero__chips-inner {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 28px;
}
.k-hero__chip { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 600; font-size: .92rem; }
.k-hero__chip-icon {
    display: grid;
    place-items: center;
    width: 34px; height: 34px;
    border-radius: 50%;
    background: rgba(232, 181, 42, .2);
    color: var(--k-accent);
    font-size: 1rem;
}

/* ---------- Sobre el taller ---------- */
.k-about { padding: 84px 0; }
.k-about__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.k-about__media { position: relative; margin-bottom: 46px; }
.k-about__img-main { border-radius: 18px; overflow: hidden; box-shadow: var(--k-shadow-lg); aspect-ratio: 4/3.1; background: var(--k-bg-soft); }
.k-about__img-main img { width: 100%; height: 100%; object-fit: contain; display: block; }
.k-about__img-sub {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 46%;
    border-radius: 16px;
    overflow: hidden;
    border: 6px solid #fff;
    box-shadow: var(--k-shadow-lg);
    background: var(--k-bg-soft);
}
.k-about__img-sub img { width: 100%; aspect-ratio: 4/3; object-fit: contain; display: block; }
.k-about__placeholder { display: grid; place-items: center; height: 100%; font-weight: 800; color: var(--k-primary); background: var(--k-accent-soft); }
.k-odometer {
    position: absolute;
    left: -18px;
    bottom: 40px;
    background: var(--k-primary-dark);
    color: #fff;
    border-radius: 16px;
    padding: 18px 22px;
    display: flex;
    flex-direction: column;
    box-shadow: var(--k-shadow-lg);
    border: 1px solid rgba(232, 181, 42, .45);
}
.k-odometer .k-counter { font-size: 2.2rem; font-weight: 800; color: var(--k-accent); line-height: 1; font-variant-numeric: tabular-nums; }
.k-odometer__unit { font-size: 1.05rem; font-weight: 700; margin-top: 2px; }
.k-odometer__label { font-size: .76rem; opacity: .85; text-transform: uppercase; letter-spacing: .07em; margin-top: 4px; }
.k-about__text { color: var(--k-text-muted); font-size: 1.05rem; margin: 0 0 22px; }
.k-about .k-check-list { margin: 0 0 24px; }
.k-check-list__mark { color: var(--k-accent); font-weight: 900; flex-shrink: 0; }
.k-about__trust { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; color: var(--k-text-muted); font-weight: 600; }
.k-about__stars { color: var(--k-accent); letter-spacing: 2px; font-size: 1.05rem; }
.k-about__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.k-about__actions .btn { border-radius: 999px; font-weight: 700; }

/* ---------- Divisiones: mini lista de servicios ---------- */
.k-division-card__services {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: grid;
    gap: 6px;
}
.k-division-card__services a { color: var(--k-text-muted); font-size: .9rem; transition: color .2s ease; }
.k-division-card__services a:hover { color: var(--k-accent); }

/* ---------- Talleres: metas en la card ---------- */
.k-workshop-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 2px 0 14px;
}
.k-workshop-card__meta span {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--k-primary);
    background: var(--k-accent-soft);
    border-radius: 999px;
    padding: 4px 10px;
}

/* ---------- Responsive del home renovado ---------- */
@media (max-width: 62rem) { /* 992px */
    .k-hero__content-wrap { grid-template-columns: 1fr; gap: 44px; }
    .k-hero__media { max-width: 560px; }
    .k-about__grid { grid-template-columns: 1fr; gap: 20px; }
    .k-about__media { margin-bottom: 60px; }
    .k-hero__chips-inner { justify-content: center; }
}
@media (max-width: 48rem) { /* 768px */
    .k-about__actions { flex-direction: column; }
    .k-about__actions .btn { width: 100%; }
    .k-hero--video,
    .k-hero--youtube { min-height: 0; height: auto; padding-bottom: 56.25%; overflow: hidden; }
    .k-hero__video { object-fit: cover; }
    .k-hero__youtube iframe { width: 100%; height: 100%; top: 0; left: 0; transform: none; }
    .k-hero--svc-youtube .k-hero__content { display: none; }
    .k-svc-hero-content-mobile { display: block; padding: 0 15px 40px; }
    .k-svc-hero-content-mobile .k-hero__kicker { font-size: .8rem; text-transform: uppercase; color: var(--k-accent-title); letter-spacing: 1px; margin-bottom: 0; }
    .k-svc-hero-content-mobile .k-svc-hero-content-mobile__title { font-size: 1.8rem; color: var(--k-primary); margin-bottom: 8px; margin-top: 8px; font-weight: 700; }
    .k-svc-hero-content-mobile p { color: var(--k-text-muted); font-size: .95rem; }
    .k-hero--video .k-hero__content,
    .k-hero--youtube .k-hero__content { position: relative; z-index: 2; padding: 48px 0 40px; }
}
@media (max-width: 36rem) { /* 576px */
    .k-about__img-sub { right: 0; width: 52%; }
    .k-odometer { left: 0; bottom: 26px; padding: 14px 16px; }
    .k-odometer .k-counter { font-size: 1.8rem; }
    .k-hero__badge--1 { left: -6px; }
    .k-hero__badge--2 { right: -6px; }
    .k-hero__chip { font-size: .82rem; }
    .k-hero__chips-inner { justify-content: flex-start; gap: 10px 18px; }
    .k-hero--video .k-hero__content,
    .k-hero--youtube .k-hero__content { padding: 50px 15px 0; }
}

/* =========================================================
   KOSTEL 2026 · Home — paradigma editorial 10 módulos
   (división map, tienda, infraestructura, mosaico, confianza,
    tecnología 2col y CTA final con fotografía de fondo)
   ========================================================= */

/* Hero split: más altura para dar protagonismo a la fotografía */
.k-hero--split {
    min-height: 90vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ---------- 2. Divisiones — placas de taller (metal & HVAC) ---------- */
.k-divisions-zone { position: relative; }
.k-divisions-map { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.k-divisions-map .k-dv:last-child { margin-top: 84px; }

.k-dv {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 470px;
    padding: 30px 32px 32px;
    border-radius: 6px;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
    box-shadow:
        inset 0 0 0 1px rgba(0, 0, 0, .3),
        inset 0 2px 6px rgba(255, 255, 255, .08),
        inset 0 -3px 10px rgba(0, 0, 0, .45),
        0 18px 40px rgba(9, 26, 46, .18);
    transition: transform .35s var(--k-ease), box-shadow .35s var(--k-ease);
}
.k-dv:hover {
    transform: translateY(-6px);
    box-shadow:
        inset 0 0 0 1px rgba(0, 0, 0, .3),
        inset 0 2px 6px rgba(255, 255, 255, .08),
        inset 0 -3px 10px rgba(0, 0, 0, .45),
        0 30px 60px rgba(9, 26, 46, .3);
}

/* Acero cepillado — taller automotriz */
.k-dv--mec {
    background:
        linear-gradient(rgba(11, 61, 110, .42), rgba(11, 61, 110, .42)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 3px),
        linear-gradient(180deg, #33383f 0%, #23272d 55%, #16181d 100%);
}
/* Metal galvanizado acanalado — ducto de climatización */
.k-dv--hvac {
    color: var(--k-primary-dark);
    background:
        repeating-linear-gradient(0deg,
            rgba(255, 255, 255, .5) 0 2px,
            rgba(11, 61, 110, .1) 2px 4px,
            rgba(0, 0, 0, .2) 4px 6px,
            rgba(255, 255, 255, .09) 6px 8px,
            transparent 8px 15px),
        linear-gradient(180deg, #cdd4dc 0%, #aeb7c1 60%, #98a1ac 100%);
    background-size: auto 15px, auto;
}

.k-dv__plate {
    position: absolute;
    top: 22px;
    left: 26px;
    right: 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid rgba(232, 181, 42, .5);
    padding-bottom: 12px;
    z-index: 2;
}
.k-dv__mfg {
    font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
    font-size: .74rem;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--k-accent);
}
.k-dv__num {
    font-size: 4.6rem;
    font-weight: 900;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(232, 181, 42, .55);
    transition: color .3s ease, -webkit-text-stroke-color .3s ease;
}
.k-dv:hover .k-dv__num { color: rgba(232, 181, 42, .9); -webkit-text-stroke-color: transparent; }

.k-dv__rivets {
    position: absolute;
    inset: 14px;
    pointer-events: none;
    z-index: 2;
    background:
        radial-gradient(circle, #e8b52a 0 2px, rgba(0, 0, 0, .55) 2.5px 3.5px, transparent 4px) 0 0/14px 14px,
        radial-gradient(circle, #e8b52a 0 2px, rgba(0, 0, 0, .55) 2.5px 3.5px, transparent 4px) 100% 0/14px 14px,
        radial-gradient(circle, #e8b52a 0 2px, rgba(0, 0, 0, .55) 2.5px 3.5px, transparent 4px) 0 100%/14px 14px,
        radial-gradient(circle, #e8b52a 0 2px, rgba(0, 0, 0, .55) 2.5px 3.5px, transparent 4px) 100% 100%/14px 14px;
    background-repeat: no-repeat;
}
.k-dv__sheen { display: none; }
.k-dv--hvac .k-dv__sheen { display: none; }

.k-dv__body { position: relative; z-index: 3; }
.k-dv__name {
    font-size: 2.1rem;
    font-weight: 800;
    letter-spacing: -.01em;
    text-transform: uppercase;
    margin: 0 0 8px;
}
.k-dv__desc { margin: 0 0 18px; font-size: .95rem; opacity: .85; max-width: 46ch; }

.k-dv__rows { display: grid; margin: 0 0 22px; }
.k-dv__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 0;
    border-bottom: 1px dashed rgba(232, 181, 42, .45);
    font-size: .9rem;
}
.k-dv--hvac .k-dv__row { border-bottom-color: rgba(11, 61, 110, .35); }
.k-dv__idx {
    font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
    font-size: .7rem;
    letter-spacing: .18em;
    color: var(--k-accent);
    white-space: nowrap;
}
.k-dv__label { font-weight: 600; text-align: right; }

.k-dv__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-top: 26px; }
.k-dv__led {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    opacity: .85;
}
.k-dv__led i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #a7f3d0, #16a34a);
    box-shadow: 0 0 9px rgba(74, 222, 128, .8);
    animation: kPulse 2.2s ease-in-out infinite;
}
.k-dv__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    font-size: .9rem;
    color: #0a1f38;
    background: linear-gradient(180deg, #f0c23a, #cf9d1e);
    border-radius: 3px;
    padding: 11px 18px;
    box-shadow: 0 2px 0 rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .45);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.k-dv:hover .k-dv__cta { transform: translateY(-2px); box-shadow: 0 5px 0 rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5); filter: brightness(1.05); }
.k-dv__arr { display: inline-block; transition: transform .3s ease; }
.k-dv:hover .k-dv__arr { transform: translateX(4px); }

@keyframes kSheen {
    0%, 55% { transform: translateX(-130%) skewX(-18deg); }
    80%, 100% { transform: translateX(130%) skewX(-18deg); }
}
@keyframes kImgSheen {
    0% { left: -120%; }
    35% { left: 120%; }
    100% { left: 120%; }
}
.k-img-sheen { position: relative; overflow: hidden; isolation: isolate; }
.k-img-sheen.k-img-sheen::before { display: none; }
.k-img-sheen.slow.k-img-sheen::before,
.k-img-sheen.fast.k-img-sheen::before { display: none; }
@keyframes kPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .35; }
}

/* ---------- 3. Tienda — fallback de categorías ---------- */
.k-products__more { margin-top: 30px; text-align: center; }

/* ---------- 5. Infraestructura — banda monumental ---------- */
.k-infra { position: relative; padding: 96px 0; color: #fff; overflow: hidden; }
.k-infra__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.k-infra__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 42, 78, .9), rgba(11, 61, 110, .94)); }
.k-infra__content { position: relative; z-index: 1; }
.k-infra .k-kicker { color: var(--k-accent-title); }
.k-infra .k-section-title { color: #fff; }
.k-infra .k-section-lead { color: rgba(255, 255, 255, .85); }
.k-infra__items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 40px; }
.k-infra__item {
    text-align: center;
    padding: 28px 18px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 14px;
    background: rgba(255, 255, 255, .06);
}
.k-infra__num { display: block; font-size: 1.9rem; font-weight: 800; color: var(--k-accent); line-height: 1.1; font-variant-numeric: tabular-nums; }
.k-infra__label { display: block; margin-top: 8px; color: rgba(255, 255, 255, .85); font-size: .92rem; }

/* ---------- 6. Galería — mosaico de proporciones mixtas ---------- */
.k-gallery-grid.k-mosaic {
    grid-template-columns: 1.6fr 1fr 1fr;
    grid-auto-rows: 220px;
    grid-auto-flow: dense;
    gap: 14px;
}
.k-mosaic__item {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 12px;
    background: var(--k-bg-soft);
}
.k-mosaic__item--0 { grid-row: span 2; }
.k-mosaic__item img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s var(--k-ease); }
.k-mosaic__item:hover img { transform: scale(1.05); }
.k-mosaic__caption {
    position: absolute;
    left: 12px; bottom: 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(7, 42, 78, .72);
    color: #fff;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* ---------- 7. Confianza ---------- */
.k-trust .k-certs-grid { margin-bottom: 34px; }
.k-trust__clients { margin-top: 12px; }
.k-trust__label {
    text-align: center;
    color: var(--k-text-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .82rem;
    margin: 0 0 18px;
}

/* ---------- 9. Tecnología — layout 2 columnas ---------- */
.k-tech-grid { grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: center; }
.k-tech__media { position: relative; border-radius: 18px; overflow: hidden; box-shadow: var(--k-shadow-lg); background: var(--k-bg-soft); }
.k-tech__media img { width: 100%; aspect-ratio: 4/3; object-fit: contain; display: block; }
.k-tech__stamp {
    position: absolute;
    left: 16px; bottom: 16px;
    display: flex;
    flex-direction: column;
    background: rgba(7, 42, 78, .85);
    color: #fff;
    border-radius: 12px;
    padding: 12px 16px;
    border: 1px solid rgba(232, 181, 42, .4);
}
.k-tech__stamp strong { color: var(--k-accent); font-size: 1.1rem; }
.k-tech__stamp span { font-size: .78rem; opacity: .9; }
.k-tech__body .k-section-head { margin-bottom: 22px; }
.k-tech__list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 16px; }
.k-tech__list li { display: flex; gap: 14px; align-items: flex-start; }
.k-tech__icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 46px; height: 46px;
    border-radius: 50%;
    background: var(--k-accent-soft);
    font-size: 1.2rem;
}
.k-tech__list strong { color: var(--k-primary); display: block; margin-bottom: 2px; }
.k-tech__list p { color: var(--k-text-muted); margin: 0; font-size: .93rem; }
.k-tech__body .btn { border-radius: 999px; font-weight: 700; }

/* ---------- 10. CTA final — fotografía de fondo + talleres ---------- */
.k-cta--final { position: relative; padding: 0; overflow: hidden; }
.k-cta--final .k-cta__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.k-cta--final .k-cta__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 42, 78, .86), rgba(7, 42, 78, .94)); }
.k-cta--final .k-cta__content { position: relative; z-index: 1; padding: 90px 0; }
.k-cta--final .k-cta__inner {
    background: transparent;
    border: none;
    padding: 0;
    text-align: center;
    box-shadow: none;
}
.k-cta--final .k-cta__inner::before { display: none; }
.k-cta--final .k-cta__inner h2 { color: #fff; }
.k-cta--final .k-cta__inner p { color: rgba(255, 255, 255, .85); }
.k-cta--final .k-cta__actions { justify-content: center; }
.k-cta--final .k-cta__actions .btn-outline { border-color: rgba(255, 255, 255, .55); color: #fff; }
.k-cta--final .k-cta__actions .btn-outline:hover { border-color: var(--k-accent); background: rgba(232, 181, 42, .15); color: #fff; }
.k-cta__workshops { margin-top: 34px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.k-cta__workshop {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 12px;
    padding: 12px 18px;
    color: #fff;
    text-align: left;
    transition: border-color .2s ease, background .2s ease;
}
.k-cta__workshop:hover { border-color: var(--k-accent); background: rgba(255, 255, 255, .12); color: #fff; }
.k-cta__workshop strong { font-size: .95rem; }
.k-cta__workshop span { font-size: .8rem; color: rgba(255, 255, 255, .75); }

/* ---------- Responsive del home editorial ---------- */
@media (max-width: 62rem) { /* 992px */
    .k-divisions-map { grid-template-columns: 1fr; gap: 20px; }
    .k-divisions-map .k-dv:last-child { margin-top: 0; }
    .k-dv { min-height: 360px; }
    .k-infra__items { grid-template-columns: repeat(2, 1fr); }
    .k-tech-grid { grid-template-columns: 1fr; gap: 30px; }
    .k-gallery-grid.k-mosaic { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 48rem) { /* 768px */
    .k-infra { padding: 72px 0; }
}
@media (max-width: 36rem) { /* 576px */
    .k-dv { min-height: 320px; padding: 26px 20px; }
    .k-infra__items { grid-template-columns: 1fr; }
    .k-gallery-grid.k-mosaic { grid-template-columns: 1fr; grid-auto-rows: 200px; }
    .k-mosaic__item--0 { grid-row: span 1; }
    .k-cta--final .k-cta__content { padding: 60px 0; }
    .k-cta__actions { flex-direction: column; align-items: stretch; }
}

/* =========================================================
   CLON presentación index2.html — home Kostel
   ========================================================= */
.k-s2-highlight { color: var(--k-accent-title); }

/* ---------- 1. Dos divisiones — estilo FAQ servixa (2 enlaces) ---------- */
.k-s2-divs { padding: 50px 0; background: #fff; overflow: hidden; }
.k-s2-divs__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; }

.k-kicker--deco { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.k-kicker--deco__border { position: relative; display: block; width: 40px; height: 1px; border-top: 1px solid var(--k-accent-title); }
.k-kicker--deco__border i {
    position: absolute; top: 50%; right: -1px; transform: translateY(-50%);
    width: 8px; height: 8px; border-radius: 50%; background: var(--k-accent-title);
}
.k-kicker--deco__border--right { transform: scaleX(-1); }

.k-s2-divs__links { display: grid; gap: 18px; margin-top: 32px; }
.k-s2-divs__link {
    display: flex; align-items: center; gap: 16px; color: inherit;
    padding: 18px 20px; border: 1px solid var(--k-primary); border-radius: var(--k-radius);
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.k-s2-divs__link:hover { transform: translateY(-3px); box-shadow: var(--k-shadow); border-color: var(--k-accent); color: inherit; }
.k-s2-divs__link-icon {
    flex-shrink: 0; width: 52px; height: 52px; border-radius: 50%;
    display: grid; place-items: center; color: var(--k-primary); background: var(--k-accent-soft);
}
.k-s2-divs__link-icon svg { width: 26px; height: 26px; }
.k-s2-divs__link-body { flex: 1; min-width: 0; }
.k-s2-divs__link-body strong { display: block; color: var(--k-primary); font-size: 1.08rem; margin-bottom: 4px; }
.k-s2-divs__link-body small { display: block; color: var(--k-text-muted); font-size: .9rem; line-height: 1.45; }
.k-s2-divs__link-arrow {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
    display: grid; place-items: center; color: var(--k-primary);
    background: var(--k-accent-soft); font-size: 1.1rem;
    transition: transform .2s ease, background .2s ease, color .2s ease;
}
.k-s2-divs__link:hover .k-s2-divs__link-arrow { transform: translateX(4px); background: var(--k-accent); color: var(--k-primary-dark); }

.k-s2-divs__right { position: relative; margin-left: 70px; }
.k-s2-divs__img-box { position: relative; display: block; }
.k-s2-divs__img { position: relative; max-width: 420px; width: 100%; margin: 0 auto; }
.k-s2-divs__img img { width: 100%; border-radius: var(--k-radius); box-shadow: var(--k-shadow-lg); }
@keyframes kFloat { 0%, 100% { transform: translateY(-20px); } 50% { transform: translateY(-10px); } }
.k-float { animation: kFloat 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .k-float { animation: none; } }

/* ---------- 2. Strip (marquesina de texto — sliding-text-two) ---------- */
.k-s2-strip {
    overflow: hidden; padding: 2px; color: #fff;
    background: linear-gradient(120deg, var(--k-primary-dark) 0%, var(--k-primary) 55%, #14518f 100%);
    margin-top: 2rem;
}
.k-s2-strip__track {
    display: flex; width: max-content; will-change: transform;
    animation: kS2Marquee 30s linear infinite !important;
}
.k-s2-strip__list { position: relative; display: flex; align-items: center; flex-wrap: nowrap; margin: 0; padding: 0; list-style: none; }
.k-s2-strip__list li { position: relative; display: flex; align-items: center; gap: 30px; }
.k-s2-strip__list li + li { margin-left: 20px; }
.k-s2-strip__icon { display: flex; align-items: center; }
.k-s2-strip__icon svg { width: 34px; height: 34px; color: var(--k-accent); flex: none; }
.k-s2-strip__list h2 {
    display: flex; align-items: center; margin: 0;
    font-size: 1rem; line-height: 1.3em; font-weight: 700; text-transform: uppercase;
    color: var(--k-accent); white-space: nowrap;
}
@keyframes kS2Marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .k-s2-strip__track { animation: kS2Marquee 30s linear infinite !important; } }

/* ---------- 3. About ---------- */
.k-s2-about { padding: 24px 0 30px; background: #fff; }
.k-s2-about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.k-s2-about__grid--reversed { grid-template-columns: 1fr 1fr; }
.k-s2-about__grid--reversed .k-s2-about__media { order: 2; }
.k-s2-about__grid--reversed .k-s2-about__body { order: 1; }
.k-s2-about__body .k-section-head { text-align: left; }
.k-s2-about__body .k-section-head .k-kicker,
.k-s2-about__body .k-section-head .k-section-title,
.k-s2-about__body .k-section-head .k-section-lead,
.k-s2-about__body .k-section-head .k-s2-about__subtitle { margin-left: 0; margin-right: 0; }
.k-s2-about__media { position: relative; }
.k-s2-about__img1 { aspect-ratio: 4/3; border-radius: var(--k-radius); overflow: hidden; box-shadow: var(--k-shadow-lg); }
.k-s2-about__img1 img { width: 100%; height: 100%; object-fit: cover; display: block; }
.k-s2-about__img2 img { width: 100%; height: 100%; object-fit: contain; display: block; }
.k-s2-about__img2 {
    position: absolute; right: -30px; bottom: -20px; width: 46%;
    border: 6px solid #fff; border-radius: var(--k-radius); overflow: hidden;
    box-shadow: var(--k-shadow-lg); aspect-ratio: 1 / 1;
}
/* About con 3 imágenes: img1 full-width arriba, img2+img3 al 50% debajo */
.k-s2-about__stacked { display: flex; flex-direction: column; gap: 10px; }
.k-s2-about__stacked-main {
    aspect-ratio: 16/9; border-radius: var(--k-radius); overflow: hidden;
    box-shadow: var(--k-shadow-lg);
}
.k-s2-about__stacked-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.k-s2-about__stacked-item {
    aspect-ratio: 4/3; border-radius: var(--k-radius); overflow: hidden;
    box-shadow: var(--k-shadow-lg);
}
.k-s2-about__stacked img { width: 100%; height: 100%; object-fit: contain; display: block; }
@media (max-width: 767.98px) { .k-s2-about__stacked-row { grid-template-columns: 1fr; } }
/* About sin sombra (img_shadow = 0 desde admin) */
.k-s2-about--no-shadow .k-s2-about__img1,
.k-s2-about--no-shadow .k-s2-about__img2,
.k-s2-about--no-shadow .k-s2-about__stacked-main,
.k-s2-about--no-shadow .k-s2-about__stacked-item { box-shadow: none; }
.k-s2-about__play {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 84px; height: 84px; border-radius: 50%; border: none; cursor: pointer;
    background: var(--k-accent); color: var(--k-primary-dark);
    display: grid; place-items: center; box-shadow: 0 8px 24px rgba(0,0,0,.28);
    transition: transform .25s ease, box-shadow .25s ease;
}
.k-s2-about__play:hover { transform: translate(-50%, -50%) scale(1.08); }
.k-s2-about__play .k-s2-play { font-size: 1.3rem; margin-left: 4px; }
.k-s2-about__text { color: var(--k-text-muted); font-size: 1.05rem; margin: 0 0 26px; }
.k-s2-about__points { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.k-s2-about__points li { display: flex; gap: 12px; align-items: center; opacity: 0; transform: translateY(16px); animation: fadeInUp .5s ease forwards; }
.k-s2-about__points li:nth-child(1) { animation-delay: .1s; }
.k-s2-about__points li:nth-child(2) { animation-delay: .25s; }
.k-s2-about__points li:nth-child(3) { animation-delay: .4s; }
.k-s2-about__points li:nth-child(4) { animation-delay: .55s; }
@keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }
.k-s2-about__p-icon {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
    display: grid; place-items: center; color: #FFFFFF; background: #9d0004;
}
.k-s2-about__p-icon svg { width: 20px; height: 20px; }
.k-s2-about__p-icon i { font-size: 18px; }
.k-s2-about__points h4 { color: var(--k-primary); margin: 0 0 2px; font-size: 1rem; }
.k-s2-about__points p { color: var(--k-text-muted); margin: 0; font-size: .9rem; }
.k-s2-about__points li.k-s2-about__item--no-text h4 { margin: 0; }
.k-s2-about__subtitle { font-size: 1.25rem; font-weight: 600; color: var(--k-primary); margin: 0 0 40px; }
.k-s2-about__points li.k-s2-about__item--no-text .k-s2-about__p-icon {
    width: 25px; height: 25px;
}
.k-s2-about__points li.k-s2-about__item--no-text .k-s2-about__p-icon i { font-size: 14px; }
.k-s2-about__points li.k-s2-about__item--no-text .k-s2-about__p-icon svg { width: 14px; height: 14px; }

/* ---------- 4. Sectores del taller (team-one servixa, vanilla) ---------- */
.k-s2-team2 { padding: 30px 0 0; background: #fff; text-align: center; }
.k-s2-team2 .container { max-width: none; margin: 0; padding: 0 5px; }
.k-s2-team2 .k-section-head { margin-bottom: 5px; }
.k-s2-team2__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; max-width: none; margin: 0; --k-team2-cols: 4; --k-team2-gap: 5px; }
.k-s2-team2--cols-2 .k-s2-team2__grid { --k-team2-cols: 2; }
.k-s2-team2--cols-3 .k-s2-team2__grid { --k-team2-cols: 3; }
.k-s2-team2--cols-4 .k-s2-team2__grid { --k-team2-cols: 4; }
.k-s2-team2--cols-5 .k-s2-team2__grid { --k-team2-cols: 5; }
.k-s2-team2--cols-6 .k-s2-team2__grid { --k-team2-cols: 6; }
.k-s2-team2__single { flex: 1 1 calc((100% - (var(--k-team2-gap) * (var(--k-team2-cols) - 1))) / var(--k-team2-cols)); max-width: none; min-width: 0; }
.k-s2-team2__single { position: relative; display: block; }
.k-s2-team2__img-box { position: relative; display: block; z-index: 1; }
.k-s2-team2__img {
    position: relative; display: block; overflow: hidden;
    border-radius: 4px;
    background: var(--k-primary-dark);
}
.k-s2-team2__img::before {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1;
    background: rgba(7, 42, 78, .6); opacity: 0;
    transition: opacity .7s ease; pointer-events: none;
}
.k-s2-team2__single:hover .k-s2-team2__img::before { opacity: 0; }
.k-s2-team2__img img {
    width: 100%; object-fit: cover; display: block;
    transform: scale3d(1, 1, 1);
    transition: transform 1s ease;
}
.k-s2-team2__single:hover .k-s2-team2__img img { transform: scale(1.05); }
.k-s2-team2__arrow {
    position: absolute; bottom: 0; right: 0; z-index: 2;
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 10px 0 4px 0;
    color: #072a4e; background: #e8b52a;
}
.k-s2-team2__arrow svg { width: 18px; height: 18px; }
.k-s2-team2__single:hover .k-s2-team2__arrow { background: #e8b52a; color: #072a4e; }
.k-s2-team2__content {
    position: relative; display: block; text-align: center;
    background: #fff; box-shadow: 0 10px 60px rgba(0, 0, 0, .09);
    padding: 96px 20px 24px; margin-top: -84px;
    border-radius: 0 0 18px 18px;
}
.k-s2-team2__title { display: block; margin: 0; font-size: .9375rem; font-weight: 700; line-height: 1.35; color: var(--k-primary-dark); }

/* ---------- 5. Sucursales (feature-one servixa) ---------- */
.k-s2-suc { padding: 24px 0 40px; background: #fff; }
.k-s2-suc__grid { display: grid; grid-template-columns: 1fr; gap: 22px; justify-items: center; }
.k-s2-suc__item { position: relative; width: 80%; }
.k-s2-suc__card {
    position: relative; overflow: hidden; border-radius: var(--k-radius);
    border-bottom: 3px solid #8a8a8a;
    background: linear-gradient(135deg, #c0c0c0 0%, #ffffff 50%, #a8a8a8 100%);
    padding: 20px 22px; color: #222;
}
.k-s2-suc__card--clima {
    border-bottom-color: var(--k-primary);
    background: linear-gradient(135deg, var(--k-primary-dark) 0%, rgb(75 136 200) 100%);
}
.k-s2-suc__card--clima .k-s2-suc__tag { color: var(--k-accent); }
.k-s2-suc__card--clima .k-s2-suc__title { color: #fff; }
.k-s2-suc__card--clima .k-s2-suc__text { color: rgba(255, 255, 255, .85); }
.k-s2-suc__bg {
    position: absolute; inset: 0; opacity: .7;
    background: linear-gradient(135deg, #c0c0c0 0%, #ffffff 50%, #a8a8a8 100%);
    z-index: 0;
}
/* Fondo propio para tarjetas de Climatización: no hereda el gris de Sucursales */
.k-s2-suc__card--clima .k-s2-suc__bg {
    background: linear-gradient(135deg, var(--k-primary-dark) 0%, rgb(75 136 200) 100%);
}
.k-s2-suc__inner { position: relative; z-index: 1; display: flex; align-items: center; gap: 18px; }
.k-s2-suc__thumb {
    flex: 0 0 180px; width: 180px; height: 180px; border-radius: 12px;
    overflow: hidden; border: 2px solid #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
    background: rgba(255, 255, 255, .5);
}
.k-s2-clima .k-s2-suc__grid { grid-template-columns: repeat(3, 1fr); }
.k-s2-clima .k-s2-suc__item { width: 100%; }
.k-s2-clima .k-s2-suc__inner { flex-direction: column; }
.k-s2-clima .k-s2-suc__thumb { flex: 0 0 auto; width: 100%; height: auto; display: block; text-decoration: none; color: inherit; }
.k-s2-clima .k-s2-suc__thumb img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; }
.k-s2-suc__thumb img { width: 180px; height: 180px; object-fit: contain; display: block; }
.k-s2-suc__info { flex: 1; min-width: 0; }
.k-s2-suc__tag { display: block; color: #9d0004; font-size: .9rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 2px; }
.k-s2-suc__title { color: #0b3d6e; margin: 0 0 6px; font-size: 1.35rem; line-height: 1.3; font-weight: 800; }
.k-s2-suc__text { color: #444; margin: 0; font-size: 1.2rem; }
.k-s2-suc__hours { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.k-s2-suc__hours span { color: #666; font-size: .85rem; line-height: 1.4; }
.k-s2-suc__link {
    display: inline-block; margin-top: 10px;
    color: var(--k-primary); font-weight: 700; font-size: .9rem;
}
.k-s2-suc__link span { display: inline-block; transition: transform .2s ease; }
.k-s2-suc__card:hover .k-s2-suc__link span { transform: translateX(4px); }
.k-s2-suc__arrow {
    position: absolute; bottom: 0; right: 0; z-index: 2;
}
.k-s2-suc__arrow a {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 10px 0 12px 0;
    color: var(--k-primary-dark); background: #ffffff;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}
.k-s2-suc__arrow a svg { width: 18px; height: 18px; transition: transform .25s ease; }
.k-s2-suc__item:hover .k-s2-suc__arrow a { background: #fff; color: var(--k-primary-dark); }
.k-s2-suc__item:hover .k-s2-suc__arrow a svg { transform: translateX(3px); }

/* ---------- 5. Climatización Integral (project-one servixa, vanilla) ---------- */
.k-s2-clima { padding: 40px 0 50px; margin-top: 20px; }
.k-s2-clima__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.k-s2-clima__card { position: relative; display: block; }
.k-s2-clima__card--wide { grid-column: span 1; }
.k-s2-clima__card--banner { grid-column: 1 / -1; }
.k-s2-clima__media {
    position: relative; display: block; overflow: hidden;
    border-radius: 18px;
    background: #2a2a2a;
    aspect-ratio: 16 / 10;
}
.k-s2-clima__media::after {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg, rgba(30, 30, 30, 0) 30%, rgba(30, 30, 30, .92) 100%);
    border-radius: inherit;
}
.k-s2-clima__media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.k-s2-clima__arrow {
    position: absolute; top: 16px; right: 16px; z-index: 3;
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 12px;
    color: var(--k-primary-dark); background: #ffffff;
    transition: background .25s ease, color .25s ease;
}
.k-s2-clima__arrow svg { width: 20px; height: 20px; }
.k-s2-clima__card:hover .k-s2-clima__arrow { background: rgba(42, 42, 42, .85); color: #fff; }
.k-s2-clima__body {
    position: absolute; bottom: 8px; left: 8px; right: 8px; z-index: 2;
    display: block;
    background: rgba(255, 255, 255, .9); border-radius: 12px; padding: 10px 12px;
    backdrop-filter: blur(4px);
}
.k-s2-clima__tag-and-line { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.k-s2-clima__tag { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--k-accent-title); }
.k-s2-clima__line { flex: 1; height: 1px; background: var(--k-primary); opacity: .25; }
.k-s2-clima__title { margin: 0 0 2px; font-size: 1rem; font-weight: 800; line-height: 1.25; }
.k-s2-clima__card--wide .k-s2-clima__title { font-size: 1.2rem; }
.k-s2-clima__card--banner .k-s2-clima__title { font-size: 1.25rem; }
.k-s2-clima__title a { color: var(--k-primary-dark); }
.k-s2-clima__title a:hover { color: var(--k-accent-title); }
.k-s2-clima__text { margin: 0; font-size: .8rem; line-height: 1.4; color: #4a4a4a; }
.k-s2-clima__card--banner .k-s2-clima__media { aspect-ratio: 999 / 255; }
.k-s2-clima__card--banner .k-s2-clima__body { max-width: 560px; }
.k-s2-clima__grid .k-marquee { grid-column: 1 / -1; margin-top: 0; }
.k-s2-clima__clients-head { grid-column: 1 / -1; text-align: center; margin-top: auto; margin-bottom: 8px; }
.k-s2-clima__clients-title { display: inline-block; margin: 0 0 6px; letter-spacing: .26em; font-size: .74rem; font-weight: 700; color: var(--k-accent-title); text-transform: uppercase; line-height: 1.4; }
.k-s2-clima__clients-lead { margin: 0; font-size: 1.1rem; line-height: 1.5; color: var(--k-text-muted); max-width: none; margin-left: auto; margin-right: auto; }
.k-s2-clima__service { grid-column: 1 / -1; background: #fff; border: 1px solid var(--k-border); border-radius: 18px; padding: 40px 20px; margin-top: auto; }
.k-s2-clima__service-head { text-align: center; margin-bottom: 5px; }
.k-s2-clima__service-head .k-kicker { margin-bottom: 0; }
.k-s2-clima__service-note { text-align: center; margin: 8px auto; padding: 0; max-width: none; }
.k-s2-clima__service-head .k-kicker { margin-bottom: 0; }
.k-s2-clima__service-brands { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.k-s2-clima__service-brands .k-logo { flex: 1 1 160px; max-width: 220px; min-width: 0; min-height: 74px; }

/* ---------- 5. Video ---------- */
.k-s2-vid { position: relative; padding: 80px 0; color: #fff; overflow: hidden; }
.k-s2-vid__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.k-s2-vid__overlay { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(7,42,78,.88) 0%, rgba(11,61,110,.72) 100%); }
.k-s2-vid__content { position: relative; z-index: 1; }
.k-s2-vid__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.k-s2-vid__title { font-size: 2.6rem; line-height: 1.3; margin: 0 0 26px; font-weight: 800; }
.k-s2-vid__play {
    width: 96px; height: 96px; border-radius: 50%; border: none; cursor: pointer;
    background: var(--k-accent); color: var(--k-primary-dark);
    display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.3);
    transition: transform .25s ease, box-shadow .25s ease;
}
.k-s2-vid__play:hover { transform: scale(1.08); }
.k-s2-vid__play .k-s2-play { font-size: 1.5rem; margin-left: 5px; }
.k-s2-vid__caption { margin: 26px 0 0; font-size: 1rem; color: rgba(255,255,255,.85); font-style: italic; }

/* ---------- 8. Contadores (Counter One servixa) ---------- */
.k-s2-count { padding: 30px 0 24px; background: linear-gradient(0deg, rgba(7, 42, 78, 0) 0%, rgba(232, 181, 42, 0.07) 50%, rgba(7, 42, 78, 0) 100%); }
.k-s2-count__grid { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 10px; row-gap: 20px; }
.k-s2-count__item { position: relative; text-align: center; }
.k-s2-count__icon {
    position: relative; display: flex; align-items: center; justify-content: center;
    height: 56px; width: 56px; margin: 0 auto; background: var(--k-primary);
    border-radius: 50%; z-index: 5; transition: background .5s ease;
}
.k-s2-count__icon::before {
    content: ""; position: absolute; top: -6px; left: -6px; right: -6px; bottom: -6px;
    background: rgba(7, 42, 78, .18); border-radius: 50%; z-index: -1; transition: background .5s ease;
}
.k-s2-count__icon span { position: relative; display: inline-block; font-size: 30px; color: #fff; transition: transform .5s linear; }
.k-s2-count__item:hover .k-s2-count__icon { background: var(--k-primary-dark); }
.k-s2-count__item:hover .k-s2-count__icon::before { background: rgba(232, 181, 42, .35); }
.k-s2-count__item:hover .k-s2-count__icon span { transform: scale(.9); }
.k-s2-count__content {
    position: relative; background: #fff; padding: 20px 10px 20px;
    border-radius: 16px; box-shadow: 0 0 60px 0 rgba(4, 23, 26, .10); margin-top: -28px; z-index: 1;
}
.k-s2-count__num { display: flex; align-items: center; justify-content: center; margin-top: 25px; }
.k-s2-count__num h3 { font-size: 2.4rem; font-weight: 700; line-height: 1; color: var(--k-primary); font-variant-numeric: tabular-nums; transition: color .5s ease; margin: 0; }
.k-s2-count__num span { font-size: 2.4rem; font-weight: 700; line-height: 1; color: var(--k-primary); transition: color .5s ease; }
.k-s2-count__label { font-size: .9rem; color: var(--k-text-dark, #0f172a); font-weight: 600; margin: 0; transition: color .5s ease; }
.k-s2-count__item:hover .k-s2-count__num h3,
.k-s2-count__item:hover .k-s2-count__num span { color: var(--k-accent); }

/* ---------- 9. Precios / productos ---------- */
.k-s2-price { padding: 96px 0; background: #fff; }
.k-s2-price__cols { display: grid; grid-template-columns: 1fr auto 1fr; gap: 46px; align-items: center; }
.k-s2-price__list { display: grid; gap: 14px; }
.k-s2-price__row {
    display: flex; align-items: center; gap: 14px; padding: 16px 20px;
    border: 1px solid var(--k-border); border-radius: var(--k-radius); background: #fff; color: inherit;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.k-s2-price__row:hover { transform: translateX(4px); border-color: var(--k-accent); box-shadow: var(--k-shadow); color: inherit; }
.k-s2-price__name { font-weight: 700; color: var(--k-primary); }
.k-s2-price__dash { flex: 1; border-top: 1px dashed var(--k-border); }
.k-s2-price__value { font-weight: 800; color: var(--k-accent); font-variant-numeric: tabular-nums; white-space: nowrap; }
.k-s2-price__media { text-align: center; }
.k-s2-price__media img { width: 100%; max-width: 340px; border-radius: var(--k-radius); box-shadow: var(--k-shadow-lg); }
.k-s2-price__media .btn { margin-top: 24px; }

/* ---------- 10. Testimonios ---------- */
.k-s2-test { padding: 76px 0; }
.k-s2-test__card {
    display: flex; flex-direction: column; gap: 16px; min-height: 260px;
    padding: 28px; background: #fff; border: 1px solid var(--k-border); border-radius: var(--k-radius);
}
.k-s2-test__head { display: flex; align-items: center; gap: 12px; }
.k-s2-test__avatar {
    width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
    font-weight: 800; color: var(--k-primary); background: var(--k-accent-soft); font-size: 1.05rem;
    object-fit: cover; flex-shrink: 0;
}
.k-s2-test__head strong { color: var(--k-primary); display: block; }
.k-s2-test__head small { color: var(--k-text-muted); font-size: .82rem; }
.k-s2-test__head .k-badge-google { margin-top: 3px; }
.k-s2-test__card p { color: var(--k-text-muted); margin: 0; flex: 1; }
.k-s2-test__stars { color: var(--k-accent); letter-spacing: 2px; }

/* ---------- 11. Agendar turno ---------- */
.k-s2-appt { position: relative; padding: 60px 0; color: #fff; overflow: hidden; }
.k-s2-appt__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.k-s2-appt__overlay { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(7,42,78,.94) 0%, rgba(11,61,110,.8) 100%); }
.k-s2-appt__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; }
.k-s2-appt__left .k-section-title { color: #fff; }
.k-s2-appt__form { display: grid; gap: 14px; }
.k-s2-appt__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.k-s2-appt .form-control {
    width: 100%; padding: 13px 16px; border-radius: 10px; border: 1px solid rgba(255,255,255,.28);
    background: rgba(255,255,255,.08); color: #fff; font-size: .98rem;
}
.k-s2-appt .form-control::placeholder { color: rgba(255,255,255,.62); }
.k-s2-appt .form-control:focus { outline: none; border-color: var(--k-accent); background: rgba(255,255,255,.14); }
.k-s2-appt select.form-control option { color: var(--k-primary-dark); }
.k-s2-appt input[type='date'].form-control { color-scheme: dark; }
.k-s2-appt__btn { width: 100%; border-radius: 999px; }
.k-s2-appt__btn span { display: inline-block; transition: transform .2s ease; }
.k-s2-appt__btn:hover span { transform: translateX(4px); }
.k-s2-appt__right { display: grid; gap: 22px; }
.k-s2-appt__right img { width: 100%; border-radius: var(--k-radius); box-shadow: var(--k-shadow-lg); }
.k-s2-appt__info { padding: 26px; border-radius: var(--k-radius); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); }
.k-s2-appt__info h3 { margin: 0 0 16px; font-size: 1.1rem; }
.k-s2-appt__info ul { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.k-s2-appt__info li { display: flex; align-items: flex-start; gap: 12px; font-size: .96rem; }
.k-s2-appt__info a { color: #fff; }
.k-s2-appt__info a:hover { color: var(--k-accent); }
.k-s2-appt__i-icon { color: var(--k-accent); flex-shrink: 0; }
.k-s2-appt__info .btn-outline { border-color: rgba(255,255,255,.5); color: #fff; border-radius: 999px; }
.k-s2-appt__info .btn-outline:hover { border-color: var(--k-accent); color: var(--k-accent); }

/* ---------- Modal de video ---------- */
.k-vmodal {
    position: fixed; inset: 0; z-index: 1200; display: none; align-items: center; justify-content: center;
    background: rgba(7,20,38,.92); padding: 24px;
}
.k-vmodal.is-open { display: flex; }
.k-vmodal__box { position: relative; width: min(920px, 94vw); }
.k-vmodal__close {
    position: absolute; top: -46px; right: 0; background: none; border: none; color: #fff;
    font-size: 1.7rem; line-height: 1; cursor: pointer; padding: 6px;
}
.k-vmodal__close:hover { color: var(--k-accent); }
.k-vmodal__frame { position: relative; aspect-ratio: 16/9; border-radius: 10px; overflow: hidden; background: #000; }
.k-vmodal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Responsive clon ---------- */
@media (max-width: 62rem) { /* 992px */
    .k-s2-divs__grid { grid-template-columns: 1fr; gap: 80px; }
    .k-s2-divs__right { margin-left: 0; max-width: 480px; margin-right: auto; }
    .k-s2-divs__img { max-width: 380px; }
    .k-s2-about__grid { grid-template-columns: 1fr; gap: 70px; }
    .k-s2-about__grid--reversed .k-s2-about__media,
    .k-s2-about__grid--reversed .k-s2-about__body { order: unset; }
    .k-s2-about__img2 { right: 0; bottom: 0; }
    .k-s2-price__cols { grid-template-columns: 1fr; }
    .k-s2-price__media { order: 1; margin: 10px auto; }
    .k-s2-appt__grid { grid-template-columns: 1fr; gap: 48px; }
    .k-s2-count__grid { grid-template-columns: repeat(2, 1fr); column-gap: 10px; row-gap: 24px; }
}
@media (max-width: 48rem) { /* 768px */
    .k-s2-team2 { padding: 20px 0 0; }
    .k-s2-team2__grid { flex-direction: column; align-items: stretch; }
    .k-s2-team2__single { width: 100%; }
    .k-s2-suc { padding: 40px 0; }
    .k-s2-suc__grid { grid-template-columns: 1fr; }
    .k-s2-suc__item { width: 100%; }
    .k-s2-clima { padding: 40px 0 50px; }
.k-s2-clima__grid { grid-template-columns: 1fr; }
    .k-s2-clima__card--wide,
.k-s2-clima__card--banner { grid-column: 1 / -1; }
    .k-s2-clima__card--banner .k-s2-clima__media { aspect-ratio: 999 / 255; }
    .k-s2-clima__card--banner .k-s2-clima__body { max-width: none; }
    .k-s2-divs { padding: 40px 0; }
    .k-s2-about { padding: 40px 0 24px; }
    .k-s2-about__media { margin-bottom: 20px; }
    .k-s2-about__img2 { width: 52%; }
    .k-s2-about__play { width: 68px; height: 68px; }
    .k-s2-vid { padding: 60px 0; }
    .k-s2-vid__title { font-size: 2.1rem; }
    .k-s2-appt__row { grid-template-columns: 1fr; }
    .k-s2-strip { padding: 4px 0 3px; }
    .k-s2-about__text { font-size: 1.2em; }
    .k-s2-about__points p { font-size: 1.1em; }
    .k-kicker { font-size: 1rem; line-height: 1.2rem; }
    .k-s2-clima__clients-title { font-size: 1rem; }
    .k-s2-about__points h4 { font-size: 1.4rem; }
    .k-s2-suc__inner { flex-direction: column; }
    .k-s2-suc__thumb { flex: 0 0 auto; width: 100%; height: auto; }
    .k-s2-clima .k-s2-suc__thumb { width: 100%; }
    .k-s2-strip { margin-top: 2rem; padding: 10px; }
    .k-s2-team2__title { font-size: 1.3rem; }
    .k-section-title.title-animation { font-size: 1.1em; text-align: center; }
    .k-s2-team2__single:hover .k-s2-team2__img::before { opacity: 0; }
    .k-s2-team2__single:hover .k-s2-team2__img img { transform: none; }
    .k-s2-about__points li { flex-direction: column; text-align: center; }
    .k-s2-about__p-icon { width: 60px; height: 60px; background: #9d0004; color: #FFFFFF; }
    .k-s2-about__p-icon svg { width: 30px; height: 30px; }
    .k-s2-about__text { text-align: center; }
    .k-s2-suc__arrow a { width: 40px; height: 40px; }
    .k-s2-suc__arrow a svg { width: 22px; height: 22px; }
}
@media (max-width: 36rem) { /* 576px */
    .k-s2-divs { padding: 40px 0; }
    .k-s2-divs__grid { gap: 60px; }
    .k-s2-divs__link { padding: 16px; }
    .k-s2-divs__link-icon { width: 46px; height: 46px; }
    .k-s2-divs__link-arrow { display: none; }
    .k-s2-count__grid { grid-template-columns: 1fr 1fr; }
    .k-s2-count__num h3,
    .k-s2-count__num span { font-size: 2rem; }
    .k-s2-price__cols { gap: 34px; }
    .k-s2-vid__title { font-size: 1.7rem; }
    .k-s2-vid__play { width: 76px; height: 76px; }
    .k-s2-appt { padding: 50px 0; }
}
@media (max-width: 768px) {
    .container { padding-left: 15px; padding-right: 15px; }
    .k-s2-about__body .k-kicker { display: none; }
}

/* =========================================================
   Appointment / WhatsApp CTA
   ========================================================= */
.k-appointment {
    position: relative;
    padding: 96px 0;
    overflow: hidden;
    color: #fff;
}
.k-appointment__bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
}
.k-appointment__bg::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(7, 42, 78, .92) 0%, rgba(11, 61, 110, .85) 100%);
}
.k-appointment__overlay {
    position: absolute; inset: 0;
    background-image: radial-gradient(circle at 80% 30%, rgba(232, 181, 42, .15) 0, transparent 50%);
    pointer-events: none;
}
.k-appointment__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: center;
}
.k-appointment__left { position: relative; z-index: 1; }
.k-appointment__shape {
    position: absolute; top: -40px; left: -30px; width: 120px; height: 120px;
    background-size: contain; background-repeat: no-repeat; opacity: .12;
}
.k-appointment__content { position: relative; z-index: 1; }
.k-appointment__tagline {
    font-size: .8rem; text-transform: uppercase; letter-spacing: 2px;
    color: var(--k-accent); margin-bottom: 8px; font-weight: 700;
}
.k-appointment__title {
    font-size: 2.2rem; font-weight: 800; line-height: 1.2; margin-bottom: 14px;
    text-shadow: 0 2px 20px rgba(0, 0, 0, .3);
}
.k-appointment__text {
    font-size: 1.05rem; color: rgba(255, 255, 255, .85); margin-bottom: 8px;
    max-width: 480px; line-height: 1.6;
}
.k-appointment__subtitle {
    font-size: 1.6rem; font-weight: 800; color: #fff; margin: 0 0 28px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .3);
}
.k-appointment__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.k-appointment__btn {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 28px; border-radius: 50px; font-weight: 700; font-size: 1rem;
    text-decoration: none; transition: transform .25s ease, box-shadow .25s ease;
}
.k-appointment__btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.k-appointment__btn--whatsapp {
    background: #25d366; color: #fff;
}
.k-appointment__btn--phone {
    background: #fff; color: var(--k-primary);
}
.k-appointment__right {
    position: relative; z-index: 1; display: flex; align-items: center; justify-content: center;
}
.k-appointment__img {
    position: relative; z-index: 1;
}
.k-appointment__img img {
    width: 100%; max-width: 380px; height: auto;
    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .3));
    animation: floatAppt 4s ease-in-out infinite;
}
@keyframes floatAppt {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}
.k-appointment__shape-1 {
    position: absolute; top: 10%; right: 0; width: 80px; height: 80px;
    background-size: contain; background-repeat: no-repeat;
    animation: floatAppt 5s ease-in-out infinite .5s;
}
@media (max-width: 48rem) {
    .k-appointment { padding: 60px 0; }
    .k-appointment__grid { grid-template-columns: 1fr; }
    .k-appointment__title { font-size: 1.6rem; }
    .k-appointment__right { margin-top: 40px; }
    .k-appointment__btns { flex-direction: column; }
    .k-appointment__btn { width: 100%; justify-content: center; }
}

/* =========================================================
   SERVICE PAGE — k-svc-* (adaptado de Servixa about.html)
   ========================================================= */

/* --- 1. About One --- */
.k-svc-about { padding: 70px 0; background: #fff; }
.k-svc-about__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.k-svc-about__img-box { position: relative; }
.k-svc-about__img-box--triple { display: flex; flex-direction: column; gap: 14px; }
.k-svc-about__img { border-radius: 18px; overflow: hidden; min-height: 120px; }
.k-svc-about__img img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: contain; display: block; border-radius: 18px; }
.k-svc-about__img-box--triple .k-svc-about__img img { aspect-ratio: 4/2; object-fit: cover; }
.k-svc-about__img-two {
    position: absolute; bottom: -30px; right: -20px; width: 55%; border-radius: 14px;
    overflow: hidden; border: 6px solid #fff; box-shadow: var(--k-shadow-lg);
}
.k-svc-about__img-two img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: 14px; }
.k-svc-about__img-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.k-svc-about__img-box--triple .k-svc-about__img-two,
.k-svc-about__img-box--triple .k-svc-about__img-three {
    position: static;
    width: 100%;
    border: 0;
    box-shadow: none;
}
.k-svc-about__img-box--triple .k-svc-about__img-two img,
.k-svc-about__img-box--triple .k-svc-about__img-three img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
    border-radius: 14px;
}
.k-svc-about__tagline { margin-bottom: 12px; }
.k-svc-about__title { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; color: var(--k-primary); margin: 0 0 16px; letter-spacing: -.02em; }
.k-svc-about__text { font-size: 1.02rem; line-height: 1.75; color: var(--k-text-muted); margin-bottom: 24px; }
.k-svc-about__points { display: flex; flex-direction: column; gap: 18px; margin-bottom: 28px; }
.k-svc-about__point { display: flex; gap: 14px; align-items: flex-start; }
.k-svc-about__point-icon { flex-shrink: 0; width: 44px; height: 44px; background: var(--k-accent-soft); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.k-svc-about__point-check { color: var(--k-accent); font-weight: 700; font-size: 1.1rem; }
.k-svc-about__point-content h4 { font-size: .95rem; font-weight: 700; margin: 0 0 4px; color: var(--k-primary); }
.k-svc-about__point-content p { font-size: .88rem; color: var(--k-text-muted); margin: 0; line-height: 1.5; }
.k-svc-about__checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin-bottom: 28px; }
.k-svc-about__check-item { display: flex; gap: 8px; align-items: center; }
.k-svc-about__check-icon { color: var(--k-accent); font-weight: 700; font-size: .9rem; flex-shrink: 0; }
.k-svc-about__check-item p { font-size: .88rem; color: var(--k-primary); font-weight: 600; margin: 0; }
.k-svc-about__btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; background: var(--k-primary-dark); color: #fff; border-radius: 8px; text-decoration: none; font-weight: 700; font-size: .95rem; margin: 20px 0 28px; transition: transform .2s ease; }
.k-svc-about__btn:hover { transform: translateY(-2px); color: inherit; }
.k-svc-about__btn-icon { font-size: 1.1rem; }
.k-svc-about--reversed .k-svc-about__grid { grid-template-columns: 1fr 1.1fr; }
.k-svc-about--reversed .k-svc-about__left { order: 2; }
.k-svc-about--reversed .k-svc-about__right { order: 1; }
.k-svc-about__btn-box { display: flex; gap: 12px; flex-wrap: wrap; }

/* --- 1b. Before / After --- */
.k-svc-before-after { padding: 70px 0; background: #fff; }
.k-svc-before-after__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.k-svc-before-after--reversed .k-svc-before-after__grid { grid-template-columns: 1fr 1.05fr; }
.k-svc-before-after--reversed .k-svc-before-after__left { order: 2; }
.k-svc-before-after--reversed .k-svc-before-after__right { order: 1; }
.k-svc-before-after__img-box { position: relative; }
.k-svc-before-after__slider {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: var(--k-shadow-lg);
    aspect-ratio: 1 / 1;
    --ba: 50%;
    background: #fff;
}
.k-svc-before-after__pane,
.k-svc-before-after__pane-inner {
    position: absolute;
    inset: 0;
    background: #fff;
}
.k-svc-before-after__pane img,
.k-svc-before-after__pane-inner img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}
.k-svc-before-after__pane--after {
    clip-path: inset(0 0 0 var(--ba));
    -webkit-clip-path: inset(0 0 0 var(--ba));
}
.k-svc-before-after__handle {
    position: absolute;
    top: 0;
    left: calc(var(--ba) - 1px);
    width: 2px;
    height: 100%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(0,0,0,.08);
    z-index: 3;
}
.k-svc-before-after__handle::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 54px;
    height: 54px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.k-svc-before-after__handle::after {
    content: "↔";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--k-primary);
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1;
}
.k-svc-before-after__range {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
    z-index: 4;
    touch-action: none;
}
.k-svc-before-after__label {
    position: absolute; left: 12px; top: 12px; padding: 6px 10px; border-radius: 999px;
    background: rgba(11, 61, 110, .88); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase;
}
.k-svc-before-after__pane--after .k-svc-before-after__label { left: auto; right: 12px; }
.k-svc-before-after__img--after .k-svc-before-after__label { background: rgba(157, 0, 4, .88); }
.k-svc-before-after__points { margin-bottom: 22px; }

/* --- 1c. Products --- */
.k-svc-products { padding: 30px 0; background: var(--k-bg-soft); }

/* ---------- Promo-Pack (basado en pricing-two de servixa) ---------- */
.k-promo-pack { padding: 40px 0; background: var(--k-primary); }
.k-promo-pack .k-section-head { margin-bottom: 5px; }
.k-promo-pack__tagline { color: var(--k-accent); }
.k-promo-pack__subtitle { margin: 5px 0 20px; font-size: 1.3rem; font-weight: 700; letter-spacing: .04em; color: var(--k-accent); }
.k-promo-pack .k-section-title { color: #fff; }
.k-promo-pack .k-section-title span { color: var(--k-accent); }
.k-promo-pack__grid {
    display: grid; grid-template-columns: 1fr .9fr 1fr; gap: 24px;
    align-items: center;
}
.k-promo-pack__list { list-style: none; margin: 0; padding: 0; display: block; }
.k-promo-pack__item { position: relative; display: flex; align-items: center; }
.k-promo-pack__item + .k-promo-pack__item { margin-top: 5px; }
.k-promo-pack__icon {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 5px solid var(--k-accent);
}
.k-promo-pack__icon span { font-size: 30px; line-height: 1; }
.k-promo-pack__pill {
    position: relative; flex: 1;
    background: var(--k-accent);
    padding: 14px 20px;
}
.k-promo-pack__pill--left { margin-left: -32px; padding-left: 48px; border-radius: 0 30px 30px 0; }
.k-promo-pack__pill--right { margin-right: -32px; padding-right: 48px; border-radius: 30px 0 0 30px; text-align: right; }
.k-promo-pack__list--right .k-promo-pack__item { flex-direction: row-reverse; }
.k-promo-pack__pill-title { margin: 0; font-size: 16px; font-weight: 600; color: var(--k-primary-dark); line-height: 1.35; }
.k-promo-pack__pill-text { display: block; margin-top: 2px; font-size: 13px; color: rgba(7, 42, 78, .75); line-height: 1.4; }
.k-promo-pack__media { position: relative; z-index: 0; display: flex; align-items: center; justify-content: center; }
.k-promo-pack__media::before {
    content: ""; position: absolute; left: 50%; top: 50%;
    width: 100%; padding-top: 100%; transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, .06); border-radius: 50%;
}
.k-promo-pack__media img {
    position: relative; z-index: 1; width: 100%; max-width: 340px;
    display: block; margin: 0 auto; object-fit: contain;
    filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35));
}
.k-promo-pack__item:hover .k-promo-pack__icon span { color: var(--k-accent-title); transition: color .3s; }
@media (max-width: 62rem) {
    .k-promo-pack__grid { grid-template-columns: 1fr; gap: 32px; }
    .k-promo-pack__media { order: -1; }
    .k-promo-pack__media img { max-width: 260px; }
}
@media (max-width: 36rem) {
    .k-promo-pack__pill--left { padding-left: 40px; }
    .k-promo-pack__pill--right { padding-right: 40px; }
    .k-promo-pack__icon span { font-size: 26px; }
}
.k-promo-pack__btn-wrap { text-align: center; margin-top: 32px; }
.k-promo-pack__btn {
    display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px;
    border-radius: 8px; font-weight: 700; text-decoration: none; transition: transform .2s, box-shadow .2s;
    background: #fff; color: var(--k-primary);
}
.k-promo-pack__btn:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.2); }
.k-promo-pack__btn-icon i { font-size: 1rem; }

/* =========================
   CUADRÍCULA
========================= */
.k-cuadricula { padding: 60px 0; }
.k-cuadricula .k-section-head { margin-left: auto; margin-right: auto; }
.k-cuadricula-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }
.k-cuadricula-item { display: flex; align-items: flex-start; gap: 20px; }
.k-cuadricula-icon {
    width: 20%; flex: 0 0 20%;
    display: flex; justify-content: right;
}
.k-cuadricula-icon__circle {
    width: 34px; height: 34px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--k-bg-soft, #f2f6fb);
    color: var(--k-accent);
    overflow: hidden;
    flex-shrink: 0;
}
.k-cuadricula-icon__circle i, .k-cuadricula-icon__circle span { font-size: 1rem; line-height: 1; }
.k-cuadricula-icon__circle img { width: 100%; height: 100%; object-fit: contain; display: block; }
.k-cuadricula-icon__img { display: block; width: auto; max-width: 80px; height: auto; object-fit: contain; }
.k-cuadricula-content { width: 80%; flex: 0 0 80%; }
.k-cuadricula-content h3 { margin: 0 0 10px; font-size: 1.1rem; font-weight: 700; color: var(--k-primary-dark); }
.k-cuadricula-content p { margin: 0; line-height: 1.6; }
@media (max-width: 767px) {
    .k-cuadricula-grid { grid-template-columns: 1fr; gap: 30px; }
}


.k-svc-products__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }

/* --- 2. Services Grid --- */
.k-svc-services { padding: 40px 0; background: #ecedee; }
.k-svc-services__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 40px; flex-wrap: wrap; }
.k-svc-services__head .k-section-title { margin: 8px 0 0; }
.k-svc-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.k-svc-services__card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--k-shadow); transition: transform .3s, box-shadow .3s; }
.k-svc-services__card:hover { transform: translateY(-6px); box-shadow: var(--k-shadow-lg); }
.k-svc-services__card-img { position: relative; overflow: hidden; }
.k-svc-services__card-img img { width: 100%; aspect-ratio: 1/1; object-fit: contain; display: block; transition: transform .5s; }
.k-svc-services__card:hover .k-svc-services__card-img img { transform: scale(1.05); }
.k-svc-services__card-icon {
    position: absolute; bottom: 12px; left: 12px; width: 48px; height: 48px;
    background: var(--k-accent); border-radius: 12px; display: flex; align-items: center;
    justify-content: center; font-size: 1.4rem;
}
.k-svc-services__card-content { padding: 20px; }
.k-svc-services__card-content h3 { font-size: 1.05rem; font-weight: 700; margin: 0 0 8px; }
.k-svc-services__card-content h3 a { color: var(--k-primary); text-decoration: none; }
.k-svc-services__card-content h3 a:hover { color: var(--k-accent); }
.k-svc-services__card-content p { font-size: .88rem; color: var(--k-text-muted); line-height: 1.6; margin: 0 0 12px; }
.k-svc-services__card-link { font-size: .85rem; font-weight: 700; color: var(--k-accent); text-decoration: none; }
.k-svc-services__card-link:hover { color: var(--k-primary); }

/* --- 3. Marquee --- */
.k-svc-marquee { padding: 28px 0; background: var(--k-primary-dark); overflow: hidden; }
.k-svc-marquee__inner { overflow: hidden; }
.k-svc-marquee__track { display: flex; gap: 60px; animation: kMarquee 20s linear infinite; width: max-content; }
.k-svc-marquee__item { display: flex; align-items: center; gap: 16px; white-space: nowrap; }
.k-svc-marquee__item h2 { font-size: 1.3rem; font-weight: 700; color: #fff; margin: 0; }
.k-svc-marquee__icon { color: var(--k-accent); font-size: 1.2rem; }
@keyframes kMarquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* --- 4. Why Choose --- */
.k-svc-why { padding: 80px 0; background: #fff; }
.k-svc-why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.k-svc-why__text { font-size: 1.02rem; line-height: 1.75; color: var(--k-text-muted); margin: 16px 0 28px; }
.k-svc-why__points { display: flex; flex-direction: column; gap: 20px; margin-bottom: 28px; }
.k-svc-why__point { display: flex; gap: 14px; align-items: flex-start; }
.k-svc-why__point-icon { flex-shrink: 0; font-size: 1.6rem; width: 48px; height: 48px; background: var(--k-accent-soft); border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.k-svc-why__point-content h4 { font-size: .95rem; font-weight: 700; margin: 0 0 4px; color: var(--k-primary); }
.k-svc-why__point-content p { font-size: .88rem; color: var(--k-text-muted); margin: 0; line-height: 1.5; }
.k-svc-why__call { display: flex; align-items: center; gap: 14px; padding: 16px 20px; background: var(--k-bg-soft); border-radius: 12px; }
.k-svc-why__call-icon { font-size: 1.6rem; }
.k-svc-why__call p { font-size: .85rem; color: var(--k-text-muted); margin: 0; }
.k-svc-why__call h4 { font-size: 1.1rem; font-weight: 800; margin: 0; }
.k-svc-why__call h4 a { color: var(--k-primary); text-decoration: none; }
.k-svc-why__right { display: flex; justify-content: center; }
.k-svc-why__img { max-width: 100%; }
.k-svc-why__img img { width: 100%; max-width: 480px; border-radius: 18px; }

/* --- 5. Brands --- */
.k-svc-brands { padding: 48px 0; background: #f8f8f8; border-top: 1px solid var(--k-border); border-bottom: 1px solid var(--k-border); }
.k-svc-brands__inner { overflow: hidden; }
.k-svc-brands__carousel { display: flex; gap: 36px; align-items: center; justify-content: center; flex-wrap: wrap; }
.k-svc-brands__item { flex: 0 0 auto; }
.k-svc-brands__item-inner { padding: 16px 24px; background: #fff; border-radius: 10px; display: flex; align-items: center; justify-content: center; min-width: 120px; height: 64px; transition: box-shadow .3s; }
.k-svc-brands__item-inner:hover { box-shadow: var(--k-shadow); }
.k-svc-brands__item-inner img { max-width: 100%; max-height: 40px; object-fit: contain; filter: grayscale(30%); transition: filter .3s; }
.k-svc-brands__item-inner:hover img { filter: grayscale(0); }

/* --- 6. Team --- */
.k-svc-team { padding: 80px 0; background: #fff; }
.k-svc-team__head { text-align: center; margin-bottom: 40px; }
.k-svc-team__head .k-section-title { margin: 8px auto 0; max-width: 600px; }
.k-svc-team__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.k-svc-team__card { text-align: center; border-radius: 16px; overflow: hidden; background: #fafafa; transition: transform .3s, box-shadow .3s; }
.k-svc-team__card:hover { transform: translateY(-6px); box-shadow: var(--k-shadow-lg); }
.k-svc-team__card-img { overflow: hidden; }
.k-svc-team__card-img img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform .5s; }
.k-svc-team__card:hover .k-svc-team__card-img img { transform: scale(1.05); }
.k-svc-team__card-content { padding: 16px; }
.k-svc-team__card-content h3 { font-size: 1rem; font-weight: 700; margin: 0 0 4px; color: var(--k-primary); }
.k-svc-team__card-content p { font-size: .82rem; color: var(--k-accent); font-weight: 600; margin: 0; }

/* --- 7. Video --- */
.k-svc-video {
    position: relative; padding: 100px 0; overflow: hidden; text-align: center; color: #fff;
    display: flex; align-items: center; justify-content: center;
}
.k-svc-video__bg {
    position: absolute; inset: 0; background-size: cover; background-position: center;
    background-attachment: fixed; transform: scale(1.03);
}
.k-svc-video__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(7,42,78,.82) 0%, rgba(7,42,78,.88) 100%);
}
.k-svc-video__inner { position: relative; z-index: 1; max-width: 700px; margin: 0 auto; }
.k-svc-video__play {
    display: inline-flex; align-items: center; justify-content: center;
    width: 72px; height: 72px; background: var(--k-accent); border-radius: 50%;
    text-decoration: none; margin-bottom: 24px; transition: transform .3s;
}
.k-svc-video__play:hover { transform: scale(1.1); }
.k-svc-video__play span { font-size: 1.6rem; color: var(--k-primary-dark); margin-left: 4px; }
.k-svc-video__title { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 300; line-height: 1.6; margin-bottom: 28px; }

/* --- 8. Gallery --- */
.k-svc-gallery__head { margin-bottom: 40px; }
.k-svc-gallery__head .k-section-title { margin: 8px 0 0; }

/* --- 9. Testimonials --- */
.k-svc-testimonials { padding: 20px 0; background: #fff; }
.k-svc-testimonials__head { margin-bottom: 10px; }
.k-svc-testimonials__head .k-section-title { margin: 4px 0 0; }
.k-svc-testimonials__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.k-svc-testimonials__card { border-radius: 10px; overflow: hidden; }
.k-svc-testimonials__card-inner { padding: 14px; background: var(--k-bg-soft); border-radius: 10px; height: 100%; display: flex; flex-direction: column; }
.k-svc-testimonials__card-author { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.k-svc-testimonials__card-img { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.k-svc-testimonials__card-img img { width: 100%; height: 100%; object-fit: cover; }
.k-svc-testimonials__card-author h4 { font-size: .75rem; font-weight: 700; margin: 0; color: var(--k-primary); }
.k-svc-testimonials__card-author p { font-size: .65rem; color: var(--k-text-muted); margin: 0; }
.k-svc-testimonials__card-text { font-size: .75rem; line-height: 1.5; color: var(--k-text-muted); flex: 1; font-style: italic; }
.k-svc-testimonials__card-stars { color: var(--k-accent); font-size: .7rem; margin-top: 8px; letter-spacing: 1px; }

/* --- 10. Contact --- */
.k-svc-contact { position: relative; padding: 80px 0; overflow: hidden; color: #fff; }
.k-svc-contact__bg-color { position: absolute; inset: 0; }
.k-svc-contact__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.k-svc-contact__bg::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(7,42,78,.92) 0%, rgba(11,61,110,.88) 100%);
}
.k-svc-contact__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; }
.k-svc-contact__left .k-kicker { color: rgba(255,255,255,.6); }
.k-svc-contact__left .k-section-title { color: #fff; margin: 8px 0 28px; }
.k-svc-contact__form { display: flex; flex-direction: column; gap: 14px; }
.k-svc-contact__form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.k-svc-contact__form input, .k-svc-contact__form textarea {
    width: 100%; padding: 14px 18px; border-radius: 10px; border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.1); color: #fff; font-size: .92rem; font-family: inherit;
    outline: none; transition: border-color .3s;
}
.k-svc-contact__form input::placeholder, .k-svc-contact__form textarea::placeholder { color: rgba(255,255,255,.5); }
.k-svc-contact__form input:focus, .k-svc-contact__form textarea:focus { border-color: var(--k-accent); }
.k-svc-contact__form textarea { resize: vertical; min-height: 100px; }
.k-svc-contact__info-card {
    background: rgba(255,255,255,.1); backdrop-filter: blur(10px); border-radius: 16px;
    padding: 32px; border: 1px solid rgba(255,255,255,.15);
}
.k-svc-contact__info-card h3 { font-size: 1.2rem; font-weight: 700; margin: 0 0 8px; }
.k-svc-contact__info-card > p { font-size: .92rem; opacity: .8; margin: 0 0 24px; line-height: 1.6; }
.k-svc-contact__info-list { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 18px; }
.k-svc-contact__info-list li { display: flex; gap: 14px; align-items: flex-start; }
.k-svc-contact__info-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: 2px; }
.k-svc-contact__info-list p { font-size: .92rem; margin: 0; opacity: .9; }
.k-svc-contact__info-list a { color: #fff; text-decoration: none; }
.k-svc-contact__info-list a:hover { color: var(--k-accent); }

/* --- Shared landing --- */
.k-svc-about .k-kicker, .k-svc-before-after .k-kicker, .k-svc-services .k-kicker, .k-svc-why .k-kicker,
.k-svc-team .k-kicker, .k-svc-gallery .k-kicker, .k-svc-testimonials .k-kicker {
    display: inline-block;
    letter-spacing: .22em;
    font-size: .65rem;
    font-weight: 700;
    color: #9d0004;
    text-transform: uppercase;
    margin: 0;
}
.k-svc-about .k-section-title, .k-svc-before-after .k-section-title, .k-svc-services .k-section-title,
.k-svc-why .k-section-title, .k-svc-gallery .k-section-title,
.k-svc-testimonials .k-section-title {
    font-size: 1.1rem; font-weight: 700;
    letter-spacing: -.01em; margin: 4px 0 0; color: var(--k-primary);
}
.k-svc-about .k-section-title span, .k-svc-before-after .k-section-title span, .k-svc-services .k-section-title span,
.k-svc-why .k-section-title span, .k-svc-gallery .k-section-title span,
.k-svc-testimonials .k-section-title span { color: #9d0004; }
.k-svc-services__card-content h3 a:hover { color: #9d0004; }

/* --- Responsive mobile --- */
@media (max-width: 48rem) {
    .k-svc-about__grid { grid-template-columns: 1fr; }
    .k-svc-about__img-box:not(.k-svc-about__img-box--triple) .k-svc-about__img-two { display: none; }
    .k-svc-about__img-box--triple .k-svc-about__img-grid { grid-template-columns: 1fr; }
    .k-svc-about__checklist { grid-template-columns: 1fr; }
    .k-svc-before-after__grid { grid-template-columns: 1fr; }
    .k-svc-services__grid { grid-template-columns: 1fr; }
    .k-svc-products__grid { grid-template-columns: 1fr; }
    .k-svc-why__grid { grid-template-columns: 1fr; }
    .k-svc-why__right { margin-top: 20px; }
    .k-svc-team__grid { grid-template-columns: 1fr 1fr; }
    .k-svc-testimonials__grid { grid-template-columns: 1fr; }
    .k-svc-contact__grid { grid-template-columns: 1fr; }
    .k-svc-contact__form-row { grid-template-columns: 1fr; }
    .k-svc-services__head { flex-direction: column; align-items: flex-start; }
    .k-svc-testimonials__shell { padding: 16px; }
    .k-svc-testimonials__head { flex-direction: column; align-items: center; }
    .k-svc-testimonials__rating { text-align: left; min-width: 0; width: 100%; }
    .testimonial-one__single { padding: 24px 18px 18px; }
    .testimonial-one__img { right: 20px; }
    .k-svc-video__bg { background-attachment: scroll; }
    .k-svc-gallery__prev,
    .k-svc-gallery__next { width: 32px; height: 32px; font-size: 13px; }
}

/* --- Gallery Section --- */
.k-svc-gallery { padding: 70px 0; }
.k-svc-gallery__title { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; color: var(--k-primary); margin: 0 0 12px; text-align: center; }
.k-svc-gallery__text { font-size: 1.02rem; line-height: 1.75; color: var(--k-text-muted); margin-bottom: 28px; text-align: center; }

/* --- Gallery Swiper --- */
.k-svc-gallery__swiper {
    position: relative;
    overflow: hidden;
    padding: 0 0 40px;
}
.k-svc-gallery__swiper .swiper-wrapper {
    transition-timing-function: cubic-bezier(.25,.1,.25,1);
}
.k-svc-gallery__slide {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
}
.k-svc-gallery__slide img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
.k-svc-gallery__slide:hover img {
    transform: scale(1.04);
}
.k-svc-gallery__caption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.6));
    color: #fff;
    font-size: .82rem;
    font-weight: 600;
    padding: 20px 14px 12px;
    z-index: 2;
}
/* Nav arrows */
.k-svc-gallery__prev,
.k-svc-gallery__next {
    position: absolute;
    top: calc(50% - 20px);
    transform: translateY(-50%);
    width: 44px; height: 44px;
    border: none;
    border-radius: 8px;
    background: rgba(11,61,110,.85);
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .3s;
    z-index: 5;
}
.k-svc-gallery__prev { left: 10px; }
.k-svc-gallery__next { right: 10px; }
.k-svc-gallery__prev:hover,
.k-svc-gallery__next:hover {
    background: rgba(26,26,46,.95);
}
/* Pagination */
.k-svc-gallery__pagination {
    position: absolute;
    bottom: 0;
    left: 0; right: 0;
    display: flex;
    justify-content: center;
    gap: 6px;
}
.k-svc-gallery__pagination .swiper-pagination-bullet {
    width: 8px; height: 8px;
    background: var(--k-primary);
    opacity: .25;
    transition: opacity .3s, transform .3s;
}
.k-svc-gallery__pagination .swiper-pagination-bullet-active {
    opacity: 1;
    transform: scale(1.3);
}
@media (max-width: 768px) {
    .k-svc-gallery__prev,
    .k-svc-gallery__next { width: 36px; height: 36px; font-size: 14px; }
    .k-svc-gallery__prev { left: 6px; }
    .k-svc-gallery__next { right: 6px; }
}

/* =========================================================
   ABOUT + GALLERY — Sección combinada texto + carousel
   ========================================================= */
.k-about-gallery { padding: 60px 0; background: #fff; }
.k-about-gallery__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: center; }
.k-about-gallery__grid--reversed { grid-template-columns: 1.15fr 1fr; }
.k-about-gallery__grid--reversed .k-about-gallery__media { order: 1; }
.k-about-gallery__grid--reversed .k-about-gallery__body { order: 2; }
.k-about-gallery__body .k-section-head { text-align: left; }
.k-about-gallery__body .k-section-head .k-kicker,
.k-about-gallery__body .k-section-head .k-section-title,
.k-about-gallery__body .k-section-head .k-section-lead,
.k-about-gallery__body .k-section-head .k-about-gallery__subtitle { margin-left: 0; margin-right: 0; }
.k-about-gallery__text { color: var(--k-text-muted); font-size: 1.05rem; margin: 0 0 26px; }
.k-about-gallery__subtitle { font-size: 1.25rem; font-weight: 600; color: var(--k-primary); margin: 0 0 40px; }
.k-about-gallery__points { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.k-about-gallery__points li { display: flex; gap: 12px; align-items: center; opacity: 0; transform: translateY(16px); animation: fadeInUp .5s ease forwards; }
.k-about-gallery__points li:nth-child(1) { animation-delay: .1s; }
.k-about-gallery__points li:nth-child(2) { animation-delay: .25s; }
.k-about-gallery__points li:nth-child(3) { animation-delay: .4s; }
.k-about-gallery__points li:nth-child(4) { animation-delay: .55s; }
.k-about-gallery__p-icon {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
    display: grid; place-items: center; background: var(--k-primary); color: #fff;
}
.k-about-gallery__p-icon svg { width: 20px; height: 20px; }
.k-about-gallery__p-icon i { font-size: 18px; }
.k-about-gallery__points h4 { color: var(--k-primary); margin: 0 0 2px; font-size: 1rem; }
.k-about-gallery__points p { color: var(--k-text-muted); margin: 0; font-size: .9rem; }
.k-about-gallery__points li.k-about-gallery__item--no-text h4 { margin: 0; }
.k-about-gallery__points li.k-about-gallery__item--no-text .k-about-gallery__p-icon { width: 25px; height: 25px; }
.k-about-gallery__points li.k-about-gallery__item--no-text .k-about-gallery__p-icon i { font-size: 14px; }
.k-about-gallery__btn {
    display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px;
    border-radius: 8px; font-weight: 700; text-decoration: none; transition: transform .2s, box-shadow .2s;
}
.k-about-gallery__btn:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.k-about-gallery__btn-icon i { font-size: 1rem; }

/* Carousel column */
.k-about-gallery__media { position: relative; min-width: 0; }
.k-about-gallery__swiper { position: relative; overflow: hidden; padding: 0 0 40px; min-width: 0; }
.k-about-gallery__swiper .swiper-wrapper { transition-timing-function: cubic-bezier(.25,.1,.25,1); }
.k-about-gallery__slide {
    position: relative; display: block; border-radius: 12px; overflow: hidden;
}
.k-about-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.k-about-gallery__slide:hover img { transform: scale(1.04); }
.k-about-gallery--no-shadow .k-about-gallery__slide { box-shadow: none; }
.k-about-gallery__caption {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.6));
    color: #fff; font-size: .82rem; font-weight: 600;
    padding: 20px 14px 12px; z-index: 2;
}
.k-about-gallery__prev,
.k-about-gallery__next {
    position: absolute; top: calc(50% - 20px); transform: translateY(-50%);
    width: 44px; height: 44px; border: none; border-radius: 8px;
    background: rgba(11,61,110,.85); color: #fff; font-size: 16px;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background .3s; z-index: 5;
}
.k-about-gallery__prev { left: 10px; }
.k-about-gallery__next { right: 10px; }
.k-about-gallery__prev:hover,
.k-about-gallery__next:hover { background: rgba(26,26,46,.95); }
.k-about-gallery__pagination {
    position: absolute; bottom: 0; left: 0; right: 0;
    display: flex; justify-content: center; gap: 6px;
}
.k-about-gallery__pagination .swiper-pagination-bullet {
    width: 8px; height: 8px; background: var(--k-primary);
    opacity: .25; transition: opacity .3s, transform .3s;
}
.k-about-gallery__pagination .swiper-pagination-bullet-active {
    opacity: 1; transform: scale(1.3);
}

/* Responsive */
@media (max-width: 992px) {
    .k-about-gallery__grid { grid-template-columns: 1fr; gap: 40px; }
    .k-about-gallery__grid .k-about-gallery__media,
    .k-about-gallery__grid--reversed .k-about-gallery__media { order: -1; }
    .k-about-gallery__grid .k-about-gallery__body,
    .k-about-gallery__grid--reversed .k-about-gallery__body { order: 0; }
}
/* --- Products mobile slider --- */
@media (max-width: 768px) {
    .k-svc-products { overflow: hidden; }
    .k-svc-products__grid {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 14px;
        padding: 0 16px 16px;
        margin: 0 -16px;
    }
    .k-svc-products__grid::-webkit-scrollbar { display: none; }
    .k-svc-products__grid > .card {
        flex: 0 0 72%;
        scroll-snap-align: start;
        min-width: 0;
    }
}
@media (max-width: 768px) {
    .k-about-gallery { padding: 40px 0; }
    .k-about-gallery__media { margin-bottom: 20px; }
    .k-about-gallery__points li { flex-direction: column; text-align: center; margin-top: 30px; }
    .k-about-gallery__p-icon { width: 60px; height: 60px; }
    .k-about-gallery__p-icon svg { width: 30px; height: 30px; }
    .k-about-gallery__text { text-align: center; font-size: 1.4rem; }
    .k-about-gallery__subtitle { text-align: center; }
    .k-about-gallery__points h4 { margin: 0 0 5px; font-size: 1.5rem; }
    .k-about-gallery__points p { font-size: 1.5rem; }
    .k-about-gallery__p-icon i { font-size: 1.6rem; }
    .k-about-gallery__prev,
    .k-about-gallery__next { width: 36px; height: 36px; font-size: 14px; }
    .k-about-gallery__prev { left: 6px; }
    .k-about-gallery__next { right: 6px; }
}

.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: -8px;
    left: 0;
    width: 100%;
}

/* =========================================================
   PRODUCTOS — Estilo Servixa (listing page)
   CSS Grid layout (sin Bootstrap)
   ========================================================= */

/* --- Section wrapper --- */
.product { padding: 60px 0; background: #fff; }

/* --- Main layout: content + sidebar --- */
.product-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 32px;
    align-items: start;
}

/* --- Product grid (3 columns) --- */
.product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

/* --- Product list --- */
.product-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* --- Showing result bar --- */
.product__showing-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}
.product__showing-text {
    margin: 0;
    font-size: .95rem;
    color: var(--k-text-muted, #5b6b7c);
}
.product__showing-sort .select-box select {
    appearance: none;
    -webkit-appearance: none;
    padding: 10px 36px 10px 16px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 10px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%235b6b7c'/%3E%3C/svg%3E") no-repeat right 14px center;
    font-size: .9rem;
    color: var(--k-text, #1a1a2e);
    cursor: pointer;
    min-width: 200px;
}

/* --- Grid / List toggle tabs --- */
.product__all-tab-button { margin-bottom: 24px; }
.tabs-button-box {
    display: flex;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.tab-btn-item {
    width: 42px; height: 42px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 8px;
    cursor: pointer;
    transition: .25s ease;
    background: #fff;
    color: var(--k-text-muted, #5b6b7c);
}
.tab-btn-item:hover,
.tab-btn-item.active-btn-item {
    background: var(--k-primary, #0b3d6e);
    border-color: var(--k-primary, #0b3d6e);
    color: #fff;
}
.product__all-tab-button-icon { font-size: 1rem; }

/* --- Tabs content --- */
.tabs-content-box { position: relative; }
.tab-content-box-item { display: none; }
.tab-content-box-item.tab-content-box-item-active { display: block; }

/* --- Single Product Style 1 (Grid) --- */
.single-product-style1 {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 6px 24px rgba(15, 23, 42, .06);
    transition: box-shadow .3s, transform .3s;
}
.single-product-style1:hover {
    box-shadow: 0 12px 36px rgba(15, 23, 42, .12);
    transform: translateY(-4px);
}
.single-product-style1__img {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1/1;
    background: #f7f8fa;
}
.single-product-style1__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.single-product-style1:hover .single-product-style1__img img {
    transform: scale(1.05);
}
.single-product-style1__overlay {
    position: absolute;
    top: 14px; left: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 2;
}
.single-product-style1__overlay li p {
    background: var(--k-primary, #0b3d6e);
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 6px;
    margin: 0;
}
.single-product-style1__info {
    position: absolute;
    bottom: 14px; right: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity .3s, transform .3s;
    z-index: 2;
}
.single-product-style1:hover .single-product-style1__info {
    opacity: 1;
    transform: translateX(0);
}
.single-product-style1__info li button,
.single-product-style1__info li a {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    background: #fff;
    border: none;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
    color: var(--k-primary, #0b3d6e);
    font-size: 1rem;
    cursor: pointer;
    transition: .25s;
    text-decoration: none;
    padding: 0;
}
.single-product-style1__info li button:hover,
.single-product-style1__info li a:hover {
    background: var(--k-primary, #0b3d6e);
    color: #fff;
}
.single-product-style1__content {
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.single-product-style1__content-left h4 {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.single-product-style1__content-left h4 a {
    color: var(--k-text, #1a1a2e);
    text-decoration: none;
    transition: color .2s;
}
.single-product-style1__content-left h4 a:hover {
    color: var(--k-primary, #0b3d6e);
}
.single-product-style1__content-left p {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--k-primary, #0b3d6e);
}
.single-product-style1__content-left p del {
    color: #aaa;
    font-weight: 400;
    font-size: .85rem;
    margin-right: 4px;
}

/* --- Single Product Style 2 (List) --- */
.single-product-style2 {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 6px 24px rgba(15, 23, 42, .06);
    transition: box-shadow .3s;
}
.single-product-style2:hover {
    box-shadow: 0 12px 36px rgba(15, 23, 42, .12);
}
.single-product-style2__img {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1/1;
    background: #f7f8fa;
}
.single-product-style2__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.single-product-style2__content {
    padding: 20px 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}
.single-product-style2__text h4 {
    margin: 0 0 6px;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.single-product-style2__text h4 a {
    color: var(--k-text, #1a1a2e);
    text-decoration: none;
}
.single-product-style2__text h4 a:hover {
    color: var(--k-primary, #0b3d6e);
}
.single-product-style2__text p {
    margin: 0 0 12px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--k-primary, #0b3d6e);
}
.single-product-style2__text p del {
    color: #aaa;
    font-weight: 400;
    font-size: .85rem;
    margin-right: 4px;
}
.single-product-style2__info {
    display: flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.single-product-style2__info li button,
.single-product-style2__info li a {
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    background: var(--k-bg-soft, #f5f8fc);
    border: none;
    border-radius: 50%;
    color: var(--k-primary, #0b3d6e);
    font-size: .95rem;
    cursor: pointer;
    transition: .25s;
    text-decoration: none;
    padding: 0;
}
.single-product-style2__info li button:hover,
.single-product-style2__info li a:hover {
    background: var(--k-primary, #0b3d6e);
    color: #fff;
}

/* --- Sidebar --- */
.product-sidebar {
    position: sticky;
    top: 100px;
}
.product__sidebar-box {
    margin-bottom: 28px;
    padding: 28px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(15, 23, 42, .05);
}
.product__sidebar-box:last-child { margin-bottom: 0; }
.product__sidebar-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--k-primary, #0b3d6e);
    color: var(--k-text, #1a1a2e);
}

/* --- Category tree --- */
.category-tree { padding: 0; margin: 0; list-style: none; }
.category-tree__item {
    position: relative;
    border-bottom: 1px solid rgba(15, 23, 42, .05);
}
.category-tree__item:last-child { border-bottom: none; }
.category-tree__item > a,
.category-tree__item > .category-tree__toggle {
    display: inline-block;
    vertical-align: middle;
}
.category-tree__item > a {
    color: var(--k-text, #1a1a2e);
    text-decoration: none;
    font-size: .92rem;
    transition: color .2s;
    padding: 8px 0;
}
.category-tree__item > a:hover,
.category-tree__item.active > a {
    color: var(--k-primary, #0b3d6e);
    font-weight: 600;
}
.category-tree__toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px;
    background: none;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 6px;
    cursor: pointer;
    transition: .25s;
    color: var(--k-text-muted, #5b6b7c);
    font-size: .7rem;
    padding: 0;
    vertical-align: middle;
    margin-left: 6px;
}
.category-tree__toggle:hover {
    border-color: var(--k-primary, #0b3d6e);
    color: var(--k-primary, #0b3d6e);
}
.category-tree__item.has-children.open > .category-tree__toggle i {
    transform: rotate(180deg);
}
.category-tree__sub {
    display: none;
    padding-left: 18px;
    margin: 0;
    list-style: none;
}
.category-tree__item.open > .category-tree__sub {
    display: block;
}

/* --- Pagination (Servixa style) --- */
.styled-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid rgba(15, 23, 42, .08);
    list-style: none;
    padding-left: 0;
}
.styled-pagination li a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px; height: 40px;
    padding: 0 12px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 600;
    color: var(--k-text, #1a1a2e);
    text-decoration: none;
    transition: .25s;
}
.styled-pagination li a:hover,
.styled-pagination li.active a {
    background: var(--k-primary, #0b3d6e);
    border-color: var(--k-primary, #0b3d6e);
    color: #fff;
}

/* --- Responsive productos --- */
@media (max-width: 992px) {
    .product-layout {
        grid-template-columns: 1fr;
    }
    .product-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .product-sidebar {
        position: static;
        order: -1;
    }
}
@media (max-width: 640px) {
    .product-grid {
        grid-template-columns: 1fr;
    }
    .product__showing-result {
        flex-direction: column;
        align-items: flex-start;
    }
    .product__showing-sort .select-box select {
        min-width: 100%;
    }
    .single-product-style1__info {
        opacity: 1;
        transform: none;
    }
    .single-product-style2 {
        display: flex;
        flex-direction: row;
    }
    .single-product-style2__img {
        width: 120px;
        min-height: 120px;
        aspect-ratio: auto;
    }
}

/* =========================
   MOBILE ADJUSTMENTS (a pedido)
========================= */
body.catalog-mode .price,
body.catalog-mode .price-old,
body.catalog-mode .card-actions,
body.catalog-mode .qty-control,
body.catalog-mode [data-add-to-cart],
body.catalog-mode .single-product-style1__info li:nth-child(2),
body.catalog-mode .single-product-style2__info li:nth-child(2) {
    display: none !important;
}
body.catalog-mode .header-actions .cart-link {
    display: none !important;
}
body.catalog-mode option[value="price_asc"],
body.catalog-mode option[value="price_desc"] {
    display: none !important;
}
@media (max-width: 48rem) {
    .k-s2-about {
        padding: 40px 0;
    }
    .k-s2-about__p-icon {
        width: 44px;
        height: 44px;
    }
}
@media (max-width: 767px) {
    .k-s2-about__grid {
        gap: 0px;
    }
    .header-phone-text {
        font-size: 1rem;
    }
    .k-s2-clima__service-brands {
        gap: 12px;
    }
    .k-s2-clima__service-brands .k-logo {
        flex: 0 0 calc(50% - 6px);
        max-width: calc(50% - 6px);
        min-height: 60px;
    }
    .k-s2-about__img2 {
        right: 15px;
        bottom: 15px;
        width: 50%;
    }
    .k-s2-about__points h4 {
        font-size: 1.1em;
    }
    .k-s2-about__p-icon i { font-size: 1.5rem; }
    .k-s2-about__points li.k-s2-about__item--no-text .k-s2-about__p-icon {
        width: 35px;
        height: 35px;
    }
    .k-s2-about__points li.k-s2-about__item--no-text .k-s2-about__p-icon i { font-size: 1.1rem; }
    .k-s2-about__points li {
        margin-top: 15px;
        gap: 4px;
    }
    .k-s2-about__points p {
        font-size: 1.1em;
    }
    .footer-widget-two__link a {
        font-size: 1rem;
    }
    .footer-widget-two__title {
        font-size: 1rem;
    }
    .footer-widget-two__about-text {
        font-size: 1.2rem;
    }
    .footer-widget-two__contact li {
        justify-content: center;
        font-size: 1rem;
    }
    .site-footer-two__bottom-text {
        font-size: 1.2rem;
    }
    .site-footer-two__bottom-menu a {
        font-size: 1rem;
    }
    p, .product-detail .desc, .product-detail .meta, .product-detail .sku, .card-title, .card-cat, .price-old, .hero-content p, .hero-kicker {
        font-size: 1.2em;
    }
    .k-s2-suc__thumb img {
        width: 100%;
        height: auto;
    }
    .k-s2-suc__hours span {
        color: #333;
        font-size: 1.2rem;
        line-height: 1.4;
    }
    .k-s2-clima .k-s2-suc__grid {
        grid-template-columns: repeat(1, 1fr);
    }
    .site-footer-two {
        text-align: center;
        padding-bottom: 90px;
    }
    .site-footer-two__social {
        justify-content: center;
    }
    .site-footer-two__bottom-menu {
        justify-content: center;
    }
    .footer-widget-two__contact li {
        justify-content: center;
    }
    .k-cert p {
        font-size: 1.4rem;
    }
    .k-cert span {
        font-size: 1.2rem;
    }
    .k-cert img {
        height: 60px;
    }
    .k-hero p {
        font-size: 1.5rem;
    }
    .k-s2-suc__text {
        font-size: 1.3rem;
    }
    .drawer__logo {
        height: 100px;
        max-height: 100px;
    }
    .k-s2-suc__bg {
        position: absolute;
        inset: 0;
        opacity: .7;
        background: linear-gradient(135deg, #ffffff 0%, #d8d8d8 50%, #ffffff 100%);
        z-index: 0;
    }
    .k-s2-about {
        padding: 40px 0;
    }
    .k-svc-hero-content-mobile {
        padding: 0 15px 20px;
        text-align: center;
    }
    .k-svc-hero-content-mobile .k-svc-hero-content-mobile__title {
        text-align: center;
        font-size: 1.3em;
    }
    .k-svc-hero-content-mobile p {
        font-size: 1.1em;
        text-align: center;
    }
    .k-svc-before-after .k-svc-about__title,
    .k-svc-before-after .k-svc-about__text {
        text-align: center;
    }
    .k-s2-about__subtitle {
        font-size: 1.4rem;
        text-align: center;
    }
    .k-promo-pack__pill-title {
        font-size: 1.1rem;
    }
    .k-svc-about__btn {
        display: flex;
        width: fit-content;
        margin: 20px auto 28px;
        font-size: 1.2rem;
    }
    .k-cuadricula-item {
        flex-direction: column;
        gap: 20px 0;
    }
    .k-cuadricula-icon,
    .k-cuadricula-content {
        width: 100%;
        flex: auto;
        text-align: center;
    }
    .k-cuadricula-icon {
        justify-content: center;
    }
    .k-cuadricula-content p {
        font-size: 1.4rem;
    }
    .k-article p {
        font-size: 1.4rem;
    }
    .k-svc-about__btn-box {
        justify-content: center;
    }
    .k-svc-services__card-content p {
        font-size: 1.2rem;
        line-height: 1.4;
    }
    .testimonial-one__text {
        line-height: 1.3;
    }
    .k-svc-about__text {
        font-size: 1.3rem;
        line-height: 1.4;
    }
    .k-svc-about__point-content p {
        font-size: 1.2rem;
        line-height: 1.4;
    }
    .k-svc-about__point-content h4 {
        font-size: 1.3rem;
    }
    body {
        line-height: 1.4;
    }
    .k-s2-clima__service-note {
        font-size: 1.2rem;
    }
    .k-section-lead {
        font-size: 1.1em;
    }
    .k-section-title.title-animation {
        font-size: 1.3em;
    }
    .k-s2-about__text {
        font-size: 1.1em;
    }
    .k-about-gallery__text {
        font-size: 1.1em;
    }
    .k-about-gallery__points h4 {
        font-size: 1.2em;
    }
    .k-about-gallery__points p {
        font-size: 1.1em;
    }
    .k-kicker {
        font-size: .9em;
        line-height: 1.3em;
    }
    .k-svc-about .k-kicker, .k-svc-before-after .k-kicker, .k-svc-services .k-kicker, .k-svc-why .k-kicker,
    .k-svc-team .k-kicker, .k-svc-gallery .k-kicker, .k-svc-testimonials .k-kicker {
        font-size: .8em;
    }
    .testimonial-one__client-name {
        font-size: .9em;
    }
    .testimonial-one__client-sub-title {
        font-size: .9em;
    }
    .testimonial-one__text {
        font-size: .9em;
    }
    .k-s2-clima__clients-lead {
        font-size: 1.1em;
    }
}

/* ---------- Home y Servicios: todas las imágenes con border-radius 5px ---------- */
body.k-page-home main img,
body.k-page-service main img { border-radius: 5px; }
body.k-page-home main :has(> img),
body.k-page-service main :has(> img) { border-radius: 5px; }
/* avatares / elementos redondos que deben seguir circulares */
body.k-page-home main .k-testimonial__avatar,
body.k-page-service main .k-testimonial__avatar,
body.k-page-home main .k-s2-test__avatar,
body.k-page-service main .k-s2-test__avatar,
body.k-page-home main .k-svc-testimonials__card-img,
body.k-page-service main .k-svc-testimonials__card-img,
body.k-page-home main .testimonial-one__img,
body.k-page-service main .testimonial-one__img { border-radius: 50%; }
