/*
 Theme Name:   Imbatik
 Theme URI:    https://imbatik.com
 Description:  Tema standalone a medida para la agencia Imbatik. Construido sobre Gutenberg + ACF Blocks. Sin dependencias de temas externos.
 Author:       Pere Cuadros
 Author URI:   https://imbatik.com
 Version:      2.1.1
 Requires at least: 6.0
 Requires PHP: 8.0
 License:      GPL v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  imbatik
 Tags:         custom, gutenberg, acf-blocks, full-site-editing-ready
*/

/* --- Base Typography & Tokens (Colores corporativos Imbatik) --- */
:root {
    --primary: #5C82F2;          /* Azul logo */
    --primary-dark: #3a5fd4;
    --primary-light: #7c9bf5;
    --secondary: #FF7B72;        /* Coral logo */
    --secondary-dark: #e8665e;
    --tertiary: #6FDBA5;          /* Verde logo */
    --tertiary-dark: #4ec88c;
    --accent: #FFD266;            /* Amarillo logo */
    --accent-dark: #e8b94a;
    --dark: #0a0e1a;
    --muted: #4b5563;
    --light: #f3f4f6;
    --white: #ffffff;
    --border: rgba(0,0,0,0.08);
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
    --max-w: 1280px;
    --font-inter: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body {
    font-family: var(--font-inter);
    color: var(--dark);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

/* Utility container — replaces GP's grid-container */
.grid-container {
    max-width: var(--max-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* ==========================================================================
   Smart full-width layout
   Main, article y entry-content NO constriñen — los bloques manejan su propia anchura.
   Solo el CONTENIDO PROSE (texto plano sin bloques) se constraña para legibilidad.
   ========================================================================== */
.site-main,
.site-main > article,
.site-main > article > .entry-content {
    width: 100%;
    max-width: 100%;
}

/* Contenido prose (texto plano, sin bloques de imbatik):
   constrain para legibilidad. Los bloques imbatik ya tienen su propio inner */
.site-main > article > .entry-content > p,
.site-main > article > .entry-content > h1,
.site-main > article > .entry-content > h2,
.site-main > article > .entry-content > h3,
.site-main > article > .entry-content > h4,
.site-main > article > .entry-content > h5,
.site-main > article > .entry-content > h6,
.site-main > article > .entry-content > ul,
.site-main > article > .entry-content > ol,
.site-main > article > .entry-content > blockquote,
.site-main > article > .entry-content > pre,
.site-main > article > .entry-content > table,
.site-main > article > .entry-content > figure,
.site-main > article > .entry-content > .wp-block-image,
.site-main > article > .entry-content > .wp-block-paragraph,
.site-main > article > .entry-content > .wp-block-heading,
.site-main > article > .entry-content > .wp-block-list,
.site-main > article > .entry-content > .wp-block-quote {
    max-width: var(--max-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* Entry-header (título de páginas) también constrained */
.site-main > article > .entry-header {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 32px 24px 0;
}

/* Bloques que deben ir full-width siempre, aunque estén en .entry-content.
   IMPORTANTE: NO tocamos padding aquí. Cada bloque ya tiene su propio
   padding lateral definido en service-page.css (típicamente 24px).
   Tocar padding aquí rompía los laterales en móvil. */
.site-main .sp-hero,
.site-main .sp-section,
.site-main .sp-stats,
.site-main .sp-partners,
.site-main .sp-mentions,
.site-main .sp-cta,
.site-main .sp-logos,
.site-main [class*="alignfull"],
.site-main [class*="alignwide"] {
    width: 100%;
    max-width: 100%;
}


/* ==========================================================================
   Header — TODAS las reglas del header viven INLINE en header.php
   (resilientes a caché). No añadir reglas de #masthead aquí.
   ========================================================================== */


/* ==========================================================================
   Global Conversion CTA (sp-cta)
   ========================================================================== */
.sp-cta {
    background: #0d1117;
    padding: 80px 24px;
    text-align: center;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.sp-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -20%;
    width: 140%;
    height: 200%;
    background: radial-gradient(circle, rgba(40,84,194,0.15) 0%, transparent 70%);
    pointer-events: none;
}
.sp-cta__inner {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}
.sp-cta__title {
    font-size: clamp(32px, 5vw, 48px);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 24px;
    letter-spacing: -0.02em;
}
.sp-cta__desc {
    font-size: 1.125rem;
    color: rgba(255,255,255,0.7);
    margin-bottom: 40px;
    line-height: 1.6;
}
.sp-cta__actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 40px;
}
.sp-cta .btn-white {
    background: #fff;
    color: var(--primary);
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
    box-shadow: 0 10px 30px rgba(255,255,255,0.1);
}
.sp-cta .btn-white:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(255,255,255,0.2);
}
.sp-cta__tagline {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.5);
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* ==========================================================================
   Global Footer — Premium editable
   ========================================================================== */
.site-footer {
    background: linear-gradient(180deg, #0a0e1a 0%, #14182a 50%, #1a1f3a 100%);
    color: #cbd5e1;
    font-family: var(--font-inter);
    position: relative;
    overflow: hidden;
}

/* Decoraciones flotantes con colores corporativos */
.site-footer__deco {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.site-footer__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .25;
}

.site-footer__orb--1 {
    top: -100px;
    left: -50px;
    width: 400px;
    height: 400px;
    background: #5C82F2;
    animation: footer-orb-1 18s ease-in-out infinite;
}

.site-footer__orb--2 {
    top: 30%;
    right: -100px;
    width: 350px;
    height: 350px;
    background: #FF7B72;
    animation: footer-orb-2 22s ease-in-out infinite;
}

.site-footer__orb--3 {
    bottom: -80px;
    left: 40%;
    width: 320px;
    height: 320px;
    background: #6FDBA5;
    animation: footer-orb-3 25s ease-in-out infinite;
    opacity: .18;
}

@keyframes footer-orb-1 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(50px, 60px); }
}
@keyframes footer-orb-2 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-70px, 30px); }
}
@keyframes footer-orb-3 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(40px, -50px); }
}

/* Top section: badges oficiales con logo */
.site-footer__top {
    border-bottom: 1px solid rgba(255,255,255,0.06);
    padding: 36px 24px;
    position: relative;
    z-index: 1;
    text-align: center;
}

.site-footer__top-inner {
    max-width: var(--max-w);
    margin: 0 auto;
}

.site-footer__top-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 20px;
}

.site-footer__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 28px;
}

.site-footer__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 12px;
}

.site-footer__badge img {
    height: 60px;
    width: auto;
    max-width: 160px;
    object-fit: contain;
    filter: grayscale(40%) brightness(1.15);
    opacity: .85;
    transition: all .35s cubic-bezier(0.16, 1, 0.3, 1);
}

a.site-footer__badge:hover img,
.site-footer__badge:hover img {
    filter: grayscale(0%) brightness(1);
    opacity: 1;
    transform: scale(1.05);
}

/* Main widgets */
.footer-widgets {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 72px 24px 48px;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.5fr;
    gap: 48px;
    position: relative;
    z-index: 1;
}

.footer-col--brand { padding-right: 8px; }

.footer-logo {
    height: 40px;
    width: auto;
    margin-bottom: 20px;
    filter: brightness(0) invert(1);
}

.footer-desc {
    font-size: 0.9375rem;
    color: #94a3b8;
    line-height: 1.65;
    margin-bottom: 24px;
}

/* Footer title con dot de color */
.footer-title {
    font-size: 0.8125rem;
    font-weight: 700;
    margin-bottom: 24px;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .1em;
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-title__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    box-shadow: 0 0 12px currentColor;
}

.footer-title__dot--blue { background: #5C82F2; color: #5C82F2; }
.footer-title__dot--coral { background: #FF7B72; color: #FF7B72; }
.footer-title__dot--green { background: #6FDBA5; color: #6FDBA5; }
.footer-title__dot--yellow { background: #FFD266; color: #FFD266; }

.footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col ul li {
    margin-bottom: 12px;
}

.footer-col ul li a {
    color: #94a3b8;
    text-decoration: none;
    transition: all .25s cubic-bezier(0.4, 0, 0.2, 1);
    font-size: 0.9375rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

.footer-col ul li a::before {
    content: '';
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width .3s ease;
}

.footer-col ul li a:hover {
    color: #fff;
    transform: translateX(4px);
}

.footer-col ul li a:hover::before {
    width: 12px;
}

/* OFICINAS - cards por color */
.footer-offices {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer-office {
    padding: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    border-left: 3px solid #5C82F2;
    border-radius: 12px;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.footer-office:hover {
    background: rgba(255,255,255,0.07);
    transform: translateX(4px);
}

.footer-office--blue { border-left-color: #5C82F2; }
.footer-office--coral { border-left-color: #FF7B72; }
.footer-office--green { border-left-color: #6FDBA5; }
.footer-office--yellow { border-left-color: #FFD266; }

.footer-office__name {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.footer-office__emoji {
    font-size: 0.875rem;
}

.footer-office__address {
    font-size: 0.8125rem;
    color: #94a3b8;
    line-height: 1.5;
    margin-bottom: 8px;
}

.footer-office__address a {
    color: inherit;
    text-decoration: none;
    transition: color .2s;
}

.footer-office__address a:hover {
    color: #fff;
}

.footer-office__contact {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8125rem;
    color: #94a3b8;
    text-decoration: none;
    margin-right: 12px;
    transition: color .2s;
}

.footer-office__contact:hover { color: #fff; }

.footer-office__contact .material-symbols-outlined {
    font-size: 14px !important;
    color: inherit;
}

.footer-office--blue .footer-office__contact .material-symbols-outlined { color: #5C82F2; }
.footer-office--coral .footer-office__contact .material-symbols-outlined { color: #FF7B72; }
.footer-office--green .footer-office__contact .material-symbols-outlined { color: #6FDBA5; }
.footer-office--yellow .footer-office__contact .material-symbols-outlined { color: #FFD266; }

/* Social icons con colores corporativos */
.footer-social {
    display: flex;
    gap: 10px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.footer-social a.social-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 50%;
    color: #cbd5e1;
    transition: all .35s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative;
    overflow: hidden;
}

.footer-social a.social-icon::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    opacity: 0;
    transition: opacity .3s ease;
    z-index: -1;
}

.footer-social a.social-icon--blue::before { background: linear-gradient(135deg, #5C82F2, #7c9bf5); }
.footer-social a.social-icon--coral::before { background: linear-gradient(135deg, #FF7B72, #ffb4ae); }
.footer-social a.social-icon--green::before { background: linear-gradient(135deg, #6FDBA5, #a3edc7); }
.footer-social a.social-icon--yellow::before { background: linear-gradient(135deg, #FFD266, #ffe09c); }

.footer-social a.social-icon:hover {
    border-color: transparent;
    color: #fff;
    transform: translateY(-4px) rotate(-6deg);
}

.footer-social a.social-icon--blue:hover { box-shadow: 0 12px 24px rgba(92,130,242,.45); }
.footer-social a.social-icon--coral:hover { box-shadow: 0 12px 24px rgba(255,123,114,.45); }
.footer-social a.social-icon--green:hover { box-shadow: 0 12px 24px rgba(111,219,165,.45); color: #0a0e1a; }
.footer-social a.social-icon--yellow:hover { box-shadow: 0 12px 24px rgba(255,210,102,.45); color: #0a0e1a; }

.footer-social a.social-icon:hover::before {
    opacity: 1;
}

/* Bottom bar */
.footer-bottom-wrap {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 24px;
    background: rgba(0,0,0,0.3);
    position: relative;
    z-index: 1;
    backdrop-filter: blur(10px);
}

.footer-bottom {
    max-width: var(--max-w);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.8125rem;
    color: #64748b;
    gap: 24px;
    flex-wrap: wrap;
}

.footer-bottom-copy { letter-spacing: .01em; }
.footer-bottom-made { font-weight: 500; }

.footer-heart {
    color: #FF7B72;
    display: inline-block;
    animation: heartbeat 1.5s ease-in-out infinite;
    font-size: 1.05em;
}

@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    14% { transform: scale(1.2); }
    28% { transform: scale(1); }
    42% { transform: scale(1.2); }
    70% { transform: scale(1); }
}

.footer-bottom-links ul {
    display: flex;
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.footer-bottom-links ul li a {
    color: #64748b;
    text-decoration: none;
    transition: color .2s ease;
    font-size: 0.8125rem;
}

.footer-bottom-links ul li a:hover {
    color: #fff;
}

@media(max-width: 1024px) {
    .footer-widgets { grid-template-columns: repeat(2, 1fr); gap: 40px; }
    .footer-col--offices { grid-column: span 2; }
    .footer-offices { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
@media(max-width: 640px) {
    .footer-widgets { grid-template-columns: 1fr; gap: 40px; padding: 56px 20px 40px; }
    .footer-col--offices { grid-column: span 1; }
    .footer-offices { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; text-align: center; gap: 14px; }
    .footer-bottom-links ul { justify-content: center; gap: 16px; }
    .site-footer__badges { gap: 16px; }
    .site-footer__badge img { height: 48px; }
}


/* ===================================================
   FULL-WIDTH LAYOUT FOR CASE STUDIES & CUSTOM PAGES
   =================================================== */
.post-type-archive-casos-de-exito #primary,
.post-type-archive-casos-de-exito .site-content,
.single-casos-de-exito #primary,
.single-casos-de-exito .site-content,
.tax-sector #primary,
.tax-sector .site-content,
.tax-servicio-caso #primary,
.tax-servicio-caso .site-content {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.cases-archive, .single-cases {
    width: 100%;
    max-width: 100%;
}

/* ==========================================================================
   IMBATIK HOMEPAGE - Modern Tech Synergy Design
   ========================================================================== */

/* ── Full-width homepage layout ── */
body.home #primary,
body.home .content-area {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}
body.home .imbatik-home-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* The entry-content itself must have no padding so blocks go edge-to-edge */
body.home .inside-article,
body.home .entry-content {
    padding: 0 !important;
    max-width: 100% !important;
}

/* ── Shared tokens ── */
:root {
    --ih-primary: #2854c2;
    --ih-secondary: #a63934;
    --ih-tertiary: #006a45;
    --ih-coral: #ff7b72;
    --ih-green: #008558;
    --ih-surface: #f9f9fc;
    --ih-surface-low: #f3f3f6;
    --ih-surface-container: #eeeef0;
    --ih-on-surface: #1a1c1e;
    --ih-muted: #434653;
    --ih-outline: #c4c6d5;
    --ih-max: 1280px;
    --ih-gap: 24px;
}

/* ── Shared section helpers ── */
.ihome-label-badge {
    display: inline-block;
    font-family: var(--font-inter);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ih-primary);
    margin-bottom: 8px;
}
.ihome-section-title {
    font-family: var(--font-inter) !important;
    font-size: clamp(28px, 3.5vw, 40px) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.01em !important;
    color: var(--ih-on-surface) !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: none !important;
}
.ihome-section-header { text-align: center; margin-bottom: 56px; }
.ihome-body-lg {
    font-family: var(--font-inter);
    font-size: 18px;
    line-height: 1.7;
    color: var(--ih-muted);
}
.ihome-muted { color: var(--ih-muted) !important; }

/* ── Buttons ── */
.ihome-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-inter);
    font-weight: 600;
    font-size: 16px;
    padding: 14px 32px;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    border: none;
}
.ihome-btn--primary {
    background: var(--ih-primary);
    color: #fff !important;
    box-shadow: 0 8px 24px rgba(40, 84, 194, 0.28);
}
.ihome-btn--primary:hover { background: #1e3f9a; transform: translateY(-2px); box-shadow: 0 12px 32px rgba(40,84,194,0.38); }
.ihome-btn--ghost {
    background: transparent;
    color: var(--ih-primary) !important;
    border: 2px solid var(--ih-primary);
}
.ihome-btn--ghost:hover { background: rgba(40,84,194,0.06); }
.ihome-btn--secondary {
    background: var(--ih-secondary);
    color: #fff !important;
    box-shadow: 0 8px 24px rgba(166,57,52,0.28);
}
.ihome-btn--secondary:hover { background: #8a2d29; transform: translateY(-2px); }
.ihome-btn--outline {
    background: transparent;
    color: var(--ih-primary) !important;
    border: 2px solid var(--ih-primary);
    padding: 12px 28px;
}
.ihome-btn--outline:hover { background: var(--ih-primary); color: #fff !important; }

/* ══════════════════════════════════════════════
   HERO SECTION
══════════════════════════════════════════════ */
.ihome-hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 80px 24px;
    background: var(--ih-surface);
}
.ihome-hero__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    z-index: 0;
    animation: ihBlob 6s ease-in-out infinite alternate;
}
.ihome-hero__blob--1 { width: 500px; height: 500px; background: rgba(40,84,194,0.12); top: -10%; right: -8%; }
.ihome-hero__blob--2 { width: 400px; height: 400px; background: rgba(255,123,114,0.1); bottom: -10%; left: -8%; animation-delay: 2s; }
.ihome-hero__blob--3 { width: 300px; height: 300px; background: rgba(111,219,165,0.12); top: 20%; left: 15%; animation-delay: 4s; }
@keyframes ihBlob { from { transform: scale(1) translate(0,0); } to { transform: scale(1.15) translate(20px, -20px); } }

.ihome-hero__inner {
    position: relative;
    z-index: 1;
    max-width: var(--ih-max);
    margin: 0 auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    align-items: center;
}
@media (min-width: 1024px) { .ihome-hero__inner { grid-template-columns: 7fr 5fr; } }

.ihome-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ih-surface-container);
    padding: 6px 16px;
    border-radius: 9999px;
    margin-bottom: 24px;
    font-family: var(--font-inter);
    font-size: 13px;
    font-weight: 600;
    color: var(--ih-muted);
}
.ihome-hero__badge-dot {
    width: 8px; height: 8px;
    background: var(--ih-tertiary);
    border-radius: 50%;
    animation: ihPing 1.5s ease-in-out infinite;
}
@keyframes ihPing { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.5); } }

.ihome-hero__title {
    font-family: var(--font-inter) !important;
    font-size: clamp(40px, 5.5vw, 64px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    color: var(--ih-on-surface) !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    border: none !important;
}
.ihome-hero__title-accent { color: var(--ih-primary); }
.ihome-hero__desc {
    font-family: var(--font-inter);
    font-size: 19px;
    line-height: 1.7;
    color: var(--ih-muted);
    max-width: 600px;
    margin-bottom: 40px;
}
.ihome-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }

.ihome-hero__visual { position: relative; }
.ihome-hero__img-wrap {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 32px 64px rgba(0,0,0,0.16);
    aspect-ratio: 1;
    max-width: 480px;
    margin: 0 auto;
}
.ihome-hero__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ihome-hero__kpi-card {
    position: absolute;
    bottom: -24px;
    right: -16px;
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 16px;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}
.ihome-hero__kpi-icon {
    width: 48px; height: 48px;
    background: var(--ih-green);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
}
.ihome-hero__kpi-icon .material-symbols-outlined { color: #fff; font-size: 24px; }
.ihome-hero__kpi-value { font-family: var(--font-inter); font-size: 24px; font-weight: 700; color: var(--ih-on-surface); margin: 0; }
.ihome-hero__kpi-label { font-family: var(--font-inter); font-size: 13px; color: var(--ih-muted); margin: 0; }

/* ══════════════════════════════════════════════
   ABOUT / QUIÉNES SOMOS
══════════════════════════════════════════════ */
.ihome-about { background: var(--ih-surface); padding: 80px 24px; }
.ihome-about__inner {
    max-width: var(--ih-max); margin: 0 auto;
    display: grid; grid-template-columns: 1fr;
    gap: 48px; align-items: center;
}
@media (min-width: 1024px) { .ihome-about__inner { grid-template-columns: 1fr 1fr; } }
.ihome-about__img-wrap {
    border-radius: 20px; overflow: hidden;
    box-shadow: 0 24px 48px rgba(0,0,0,0.12);
    aspect-ratio: 4/3;
    position: relative;
}
.ihome-about__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ihome-about__content .ihome-label-badge { display: block; margin-bottom: 12px; }
.ihome-about__checklist {
    list-style: none; margin: 24px 0 32px; padding: 0;
    display: flex; flex-direction: column; gap: 12px;
}
.ihome-about__checklist li {
    display: flex; align-items: center; gap: 12px;
    font-family: var(--font-inter); font-size: 16px; color: var(--ih-on-surface);
}
.ihome-about__checklist .material-symbols-outlined { color: var(--ih-primary); font-size: 20px; flex-shrink: 0; }

/* ══════════════════════════════════════════════
   TICKER / CLIENTS
══════════════════════════════════════════════ */
.ihome-clients, .ihome-press {
    padding: 40px 0;
    background: var(--ih-surface);
    border-top: 1px solid var(--ih-outline);
    border-bottom: 1px solid var(--ih-outline);
    overflow: hidden;
}
.ihome-clients__label, .ihome-press__label {
    text-align: center;
    font-family: var(--font-inter);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ih-muted);
    margin-bottom: 28px;
}
.ihome-ticker-wrap { overflow: hidden; white-space: nowrap; }
.ihome-ticker {
    display: inline-flex;
    align-items: center;
    gap: 64px;
    animation: ihScroll 35s linear infinite;
    padding: 0 32px;
    filter: grayscale(1);
    opacity: 0.55;
}
.ihome-ticker:hover { animation-play-state: paused; }
.ihome-ticker__logo { height: 36px; width: auto; object-fit: contain; flex-shrink: 0; }
@keyframes ihScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* ══════════════════════════════════════════════
   SERVICES
══════════════════════════════════════════════ */
.ihome-services { background: var(--ih-surface-low); padding: 80px 24px; }
.ihome-services__inner { max-width: var(--ih-max); margin: 0 auto; }
.ihome-services__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 640px) { .ihome-services__grid { grid-template-columns: repeat(2, 1fr); } }

.ihome-service-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    border-top: 6px solid transparent;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: all 0.3s ease;
}
.ihome-service-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(0,0,0,0.12); }
.ihome-service-card--blue { border-top-color: var(--ih-primary); }
.ihome-service-card--coral { border-top-color: var(--ih-coral); }
.ihome-service-card--green { border-top-color: var(--ih-green); }
.ihome-service-card--dark { border-top-color: #86211f; }
.ihome-service-card__icon {
    width: 80px; height: 80px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 24px;
    transition: transform 0.3s ease;
}
.ihome-service-card:hover .ihome-service-card__icon { transform: scale(1.1); }
.ihome-service-card__icon .material-symbols-outlined { font-size: 36px; }
.ihome-service-card h3 {
    font-family: var(--font-inter) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--ih-on-surface) !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    border: none !important;
}
.ihome-service-card p {
    font-family: var(--font-inter);
    font-size: 16px;
    line-height: 1.7;
    color: var(--ih-muted);
    margin: 0 0 24px;
    max-width: 320px;
}
.ihome-service-card__link {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--font-inter); font-weight: 600; font-size: 15px;
    color: var(--ih-primary) !important; text-decoration: none;
    margin-top: auto;
    transition: gap 0.2s;
}
.ihome-service-card__link:hover { gap: 10px; }
.ihome-service-card__link .material-symbols-outlined { font-size: 18px; }

/* ══════════════════════════════════════════════
   METHODOLOGY
══════════════════════════════════════════════ */
.ihome-methodology { background: var(--ih-surface); padding: 80px 24px; }
.ihome-methodology__inner { max-width: var(--ih-max); margin: 0 auto; }
.ihome-roadmap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    position: relative;
}
@media (min-width: 768px) { .ihome-roadmap { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 768px) {
    .ihome-roadmap::before {
        content: '';
        position: absolute;
        top: 24px;
        left: 0; right: 0;
        height: 2px;
        background: repeating-linear-gradient(to right, var(--ih-outline) 0, var(--ih-outline) 8px, transparent 8px, transparent 18px);
        z-index: 0;
    }
}
.ihome-roadmap__step {
    position: relative; z-index: 1;
    background: #fff;
    border-radius: 16px;
    padding: 28px 24px;
    border: 1px solid rgba(196,198,213,0.3);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    text-align: center;
}
.ihome-roadmap__num {
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-inter); font-weight: 700; font-size: 18px;
    margin: 0 auto 16px;
    box-shadow: 0 0 0 6px rgba(40,84,194,0.1);
}
.ihome-roadmap__step h4 {
    font-family: var(--font-inter) !important;
    font-size: 18px !important; font-weight: 700 !important;
    color: var(--ih-on-surface) !important;
    margin: 0 0 8px !important; padding: 0 !important; border: none !important;
}
.ihome-roadmap__step p {
    font-family: var(--font-inter); font-size: 15px;
    color: var(--ih-muted); margin: 0; line-height: 1.6;
}

/* ══════════════════════════════════════════════
   PARTNERS
══════════════════════════════════════════════ */
.ihome-partners { background: var(--ih-surface-low); padding: 80px 24px; border-top: 1px solid var(--ih-outline); border-bottom: 1px solid var(--ih-outline); }
.ihome-partners__inner { max-width: var(--ih-max); margin: 0 auto; }
.ihome-partners__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (min-width: 768px) { .ihome-partners__grid { grid-template-columns: repeat(6, 1fr); } }
.ihome-partner-logo {
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    filter: grayscale(1);
    opacity: 0.6;
    transition: all 0.3s ease;
}
.ihome-partner-logo:hover { filter: grayscale(0); opacity: 1; }
.ihome-partner-logo img { height: 32px; width: auto; object-fit: contain; }

/* ══════════════════════════════════════════════
   RESULTS / CASOS DE ÉXITO
══════════════════════════════════════════════ */
.ihome-results { background: var(--ih-surface); padding: 80px 24px; }
.ihome-results__inner { max-width: var(--ih-max); margin: 0 auto; }
.ihome-results__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 40px;
}
@media (min-width: 768px) { .ihome-results__grid { grid-template-columns: repeat(3, 1fr); } }
.ihome-result-card {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 4/5;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ihome-result-card:hover { transform: translateY(-8px); box-shadow: 0 24px 48px rgba(0,0,0,0.2); }
.ihome-result-card a { display: block; width: 100%; height: 100%; text-decoration: none; }
.ihome-result-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.ihome-result-card:hover img { transform: scale(1.07); }
.ihome-result-card__overlay {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 32px 24px;
}
.ihome-result-card__metric {
    font-family: var(--font-inter); font-size: 52px; font-weight: 700;
    color: #fff; margin: 0 0 4px; line-height: 1;
}
.ihome-result-card__label {
    font-family: var(--font-inter); font-size: 22px; font-weight: 700;
    color: #fff; margin: 0 0 6px;
}
.ihome-result-card__sub {
    font-family: var(--font-inter); font-size: 15px;
    color: rgba(255,255,255,0.85); margin: 0;
}
.ihome-results__cta { text-align: center; }

/* ══════════════════════════════════════════════
   BLOG
══════════════════════════════════════════════ */
.ihome-blog { background: var(--ih-surface-low); padding: 80px 24px; }
.ihome-blog__inner { max-width: var(--ih-max); margin: 0 auto; }
.ihome-blog__header {
    display: flex; align-items: flex-end; justify-content: space-between;
    margin-bottom: 40px; flex-wrap: wrap; gap: 16px;
}
.ihome-blog__header .ihome-section-title { margin-bottom: 4px !important; }
.ihome-blog__all-link {
    font-family: var(--font-inter); font-size: 15px; font-weight: 600;
    color: var(--ih-primary) !important; text-decoration: none;
    border-bottom: 2px solid var(--ih-primary);
    padding-bottom: 2px;
    white-space: nowrap;
}
.ihome-blog__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) { .ihome-blog__grid { grid-template-columns: repeat(3, 1fr); } }
.ihome-blog-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: all 0.3s ease;
    display: flex; flex-direction: column;
}
.ihome-blog-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,0.12); }
.ihome-blog-card__thumb { aspect-ratio: 16/9; overflow: hidden; }
.ihome-blog-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.ihome-blog-card:hover .ihome-blog-card__thumb img { transform: scale(1.06); }
.ihome-blog-card__body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.ihome-blog-card__cat {
    display: block; font-family: var(--font-inter);
    font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; margin-bottom: 8px;
}
.ihome-blog-card__title {
    font-family: var(--font-inter) !important;
    font-size: 19px !important; font-weight: 700 !important;
    line-height: 1.35 !important;
    color: var(--ih-on-surface) !important;
    margin: 0 0 10px !important; padding: 0 !important; border: none !important;
}
.ihome-blog-card__title a { text-decoration: none; color: inherit !important; transition: color 0.2s; }
.ihome-blog-card:hover .ihome-blog-card__title a { color: var(--ih-primary) !important; }
.ihome-blog-card__excerpt {
    font-family: var(--font-inter); font-size: 15px;
    color: var(--ih-muted); line-height: 1.6;
    margin: 0 0 20px; flex: 1;
}
.ihome-blog-card__link {
    font-family: var(--font-inter); font-size: 14px; font-weight: 600;
    color: var(--ih-primary) !important; text-decoration: none;
    margin-top: auto;
}
.ihome-blog-card__link:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════
   FAQ
══════════════════════════════════════════════ */
.ihome-faq { background: #fff; padding: 80px 24px; }
.ihome-faq__inner {
    max-width: var(--ih-max); margin: 0 auto;
    display: grid; grid-template-columns: 1fr;
    gap: 48px;
}
@media (min-width: 1024px) { .ihome-faq__inner { grid-template-columns: 5fr 7fr; align-items: start; } }
.ihome-faq__intro .ihome-section-title { margin-bottom: 16px !important; text-align: left !important; }
.ihome-faq__intro .ihome-body-lg { margin-bottom: 32px; }
.ihome-faq__list { display: flex; flex-direction: column; gap: 4px; }
.ihome-faq__item {
    border-bottom: 1px solid var(--ih-outline);
    padding-bottom: 4px;
}
.ihome-faq__item summary {
    display: flex; align-items: center; justify-content: space-between;
    font-family: var(--font-inter); font-size: 17px; font-weight: 600;
    color: var(--ih-on-surface);
    padding: 20px 0;
    cursor: pointer;
    list-style: none;
    transition: color 0.2s;
}
.ihome-faq__item summary::-webkit-details-marker { display: none; }
.ihome-faq__item summary::after { content: '+'; font-size: 24px; color: var(--ih-primary); flex-shrink: 0; transition: transform 0.3s; }
.ihome-faq__item[open] summary::after { transform: rotate(45deg); }
.ihome-faq__item summary:hover { color: var(--ih-primary); }
.ihome-faq__item > p {
    font-family: var(--font-inter); font-size: 16px;
    color: var(--ih-muted); line-height: 1.7;
    padding: 0 0 20px;
    margin: 0;
}

/* ══════════════════════════════════════════════
   PRESS (Hablan de nosotros)
══════════════════════════════════════════════ */
.ihome-press { background: var(--ih-surface); padding: 48px 0; }
.ihome-press .ihome-ticker {
    animation-duration: 30s;
}

/* ══════════════════════════════════════════════
   BLOG PREVIEW BLOCK (Homepage)
══════════════════════════════════════════════ */
.sp-blog-preview__header {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    text-align: left !important;
}
.sp-blog-preview__header .sp-section__title { margin-bottom: 4px !important; }
.sp-blog-preview__all-link {
    font-family: var(--font-inter);
    font-size: 15px;
    font-weight: 600;
    color: var(--primary) !important;
    text-decoration: none;
    border-bottom: 2px solid var(--primary);
    padding-bottom: 2px;
    white-space: nowrap;
    transition: opacity 0.2s;
}
.sp-blog-preview__all-link:hover { opacity: 0.75; }
.sp-blog-preview__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) {
    .sp-blog-preview__grid { grid-template-columns: repeat(3, 1fr); }
}
.sp-blog-preview__card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.sp-blog-preview__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}
.sp-blog-preview__thumb {
    aspect-ratio: 16/9;
    overflow: hidden;
}
.sp-blog-preview__thumb img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.4s ease;
}
.sp-blog-preview__card:hover .sp-blog-preview__thumb img {
    transform: scale(1.06);
}
.sp-blog-preview__body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.sp-blog-preview__cat {
    display: block;
    font-family: var(--font-inter);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.sp-blog-preview__title {
    font-family: var(--font-inter) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: #1a1c1e !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: none !important;
}
.sp-blog-preview__title a {
    text-decoration: none;
    color: inherit !important;
    transition: color 0.2s;
}
.sp-blog-preview__card:hover .sp-blog-preview__title a {
    color: var(--primary) !important;
}
.sp-blog-preview__excerpt {
    font-family: var(--font-inter);
    font-size: 15px;
    color: #434653;
    line-height: 1.6;
    margin: 0 0 20px;
    flex: 1;
}
.sp-blog-preview__link {
    font-family: var(--font-inter);
    font-size: 14px;
    font-weight: 600;
    color: var(--primary) !important;
    text-decoration: none;
    margin-top: auto;
}
.sp-blog-preview__link:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════
   HOMEPAGE hm- DESIGN SYSTEM (exact design match)
══════════════════════════════════════════════ */

/* ── Shared vars & helpers ── */
:root {
    --hm-primary:#2854c2; --hm-secondary:#a63934; --hm-tertiary:#006a45;
    --hm-coral:#ff7b72; --hm-green:#008558;
    --hm-surface:#f9f9fc; --hm-surface-low:#f3f3f6;
    --hm-on-surface:#1a1c1e; --hm-muted:#434653; --hm-outline:#c4c6d5;
    --hm-max:1280px;
}
.hm-inner { max-width:var(--hm-max); margin:0 auto; padding:0 24px; width:100%; box-sizing:border-box; }
.hm-label { display:block; font-family:var(--font-inter); font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--hm-primary); margin-bottom:8px; }
.hm-h2 { font-family:var(--font-inter)!important; font-size:clamp(28px,3.5vw,40px)!important; font-weight:700!important; line-height:1.15!important; letter-spacing:-.01em!important; color:var(--hm-on-surface)!important; margin:0 0 16px!important; padding:0!important; border:none!important; }
.hm-body-lg { font-family:var(--font-inter); font-size:18px; line-height:1.7; color:var(--hm-muted); }
.hm-muted { font-family:var(--font-inter); font-size:17px; line-height:1.65; color:var(--hm-muted); margin:0; }
.hm-section-hdr { text-align:center; margin-bottom:56px; }
.hm-section-hdr .hm-label { display:block; }

/* ── Buttons ── */
.hm-btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-inter); font-weight:600; font-size:16px; padding:14px 32px; border-radius:9999px; text-decoration:none; transition:all .25s cubic-bezier(.4,0,.2,1); cursor:pointer; border:none; line-height:1; }
.hm-btn--primary { background:var(--hm-primary); color:#fff!important; box-shadow:0 8px 24px rgba(40,84,194,.28); }
.hm-btn--primary:hover { background:#1e3f9a; transform:translateY(-2px); }
.hm-btn--outline { background:transparent; color:var(--hm-primary)!important; border:2px solid var(--hm-primary); }
.hm-btn--outline:hover { background:var(--hm-primary); color:#fff!important; }
.hm-btn--secondary { background:var(--hm-secondary); color:#fff!important; box-shadow:0 8px 24px rgba(166,57,52,.28); }
.hm-btn--secondary:hover { background:#8a2d29; transform:translateY(-2px); }
.hm-btn--white { background:#fff; color:var(--hm-primary)!important; box-shadow:0 8px 32px rgba(0,0,0,.2); }
.hm-btn--white:hover { background:#f0f0f3; transform:translateY(-2px); }
.hm-btn--outline-white { background:transparent; color:#fff!important; border:2px solid rgba(255,255,255,.6); }
.hm-btn--outline-white:hover { background:rgba(255,255,255,.1); }

/* ══ HERO ══ */
.hm-hero { position:relative; min-height:90vh; display:flex; align-items:center; overflow:hidden; padding:80px 0; background:var(--hm-surface); }
.hm-blob { position:absolute; border-radius:50%; filter:blur(80px); z-index:0; animation:hmBlob 6s ease-in-out infinite alternate; pointer-events:none; }
.hm-blob--1 { width:500px; height:500px; background:rgba(40,84,194,.12); top:-10%; right:-8%; }
.hm-blob--2 { width:400px; height:400px; background:rgba(255,123,114,.10); bottom:-10%; left:-8%; animation-delay:2s; }
.hm-blob--3 { width:300px; height:300px; background:rgba(111,219,165,.12); top:20%; left:15%; animation-delay:4s; }
@keyframes hmBlob { from{transform:scale(1) translate(0,0)} to{transform:scale(1.15) translate(20px,-20px)} }
.hm-hero .hm-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){.hm-hero .hm-inner{grid-template-columns:7fr 5fr}}
.hm-hero__badge { display:inline-flex; align-items:center; gap:8px; background:#eeeef0; padding:6px 16px; border-radius:9999px; margin-bottom:24px; font-family:var(--font-inter); font-size:13px; font-weight:600; color:var(--hm-muted); }
.hm-badge-dot { width:8px; height:8px; background:var(--hm-green); border-radius:50%; animation:hmPing 1.5s ease-in-out infinite; }
@keyframes hmPing { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.5)} }
.hm-hero__title { font-family:var(--font-inter)!important; font-size:clamp(36px,5.5vw,62px)!important; font-weight:700!important; line-height:1.06!important; letter-spacing:-.02em!important; color:var(--hm-on-surface)!important; margin:0 0 24px!important; padding:0!important; border:none!important; }
.hm-accent { color:var(--hm-primary); }
.hm-hero__desc { font-family:var(--font-inter); font-size:18px; line-height:1.7; color:var(--hm-muted); max-width:600px; margin-bottom:40px; }
.hm-hero__btns { display:flex; flex-wrap:wrap; gap:16px; }
.hm-hero__visual { position:relative; }
.hm-hero__img-wrap { border-radius:24px; overflow:hidden; box-shadow:0 32px 64px rgba(0,0,0,.16); aspect-ratio:1; max-width:480px; margin:0 auto; }
.hm-hero__img-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
.hm-kpi-card { position:absolute; bottom:-24px; right:-16px; background:rgba(255,255,255,.88); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.4); border-radius:16px; padding:20px 24px; display:flex; align-items:center; gap:16px; box-shadow:0 16px 40px rgba(0,0,0,.12); }
.hm-kpi-card__icon { width:48px; height:48px; background:var(--hm-green); border-radius:12px; display:flex; align-items:center; justify-content:center; }
.hm-kpi-card__icon .material-symbols-outlined { color:#fff; font-size:24px; }
.hm-kpi-card__num { font-family:var(--font-inter); font-size:24px; font-weight:700; color:var(--hm-on-surface); margin:0; }
.hm-kpi-card__lbl { font-family:var(--font-inter); font-size:13px; color:var(--hm-muted); margin:0; }
@media(max-width:767px){.hm-kpi-card{right:8px;bottom:-16px;}}

/* ══ ABOUT ══ */
.hm-about { background:var(--hm-surface); padding:80px 0; }
.hm-about .hm-inner { display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){.hm-about .hm-inner{grid-template-columns:1fr 1fr}}
.hm-about__img-wrap { border-radius:20px; overflow:hidden; box-shadow:0 24px 48px rgba(0,0,0,.12); aspect-ratio:4/3; }
.hm-about__img-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
.hm-checklist { list-style:none; margin:24px 0 32px; padding:0; display:flex; flex-direction:column; gap:12px; }
.hm-checklist li { display:flex; align-items:center; gap:12px; font-family:var(--font-inter); font-size:16px; color:var(--hm-on-surface); }
.hm-checklist .material-symbols-outlined { color:var(--hm-primary); font-size:20px; flex-shrink:0; }

/* ══ SERVICES ══ */
.hm-services { background:var(--hm-surface-low); padding:80px 0; }
.hm-services__grid { display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:640px){.hm-services__grid{grid-template-columns:repeat(2,1fr)}}
.hm-svc-card { background:#fff; border-radius:20px; padding:40px 36px; border-top:8px solid transparent; box-shadow:0 4px 16px rgba(0,0,0,.06); display:flex; flex-direction:column; align-items:center; text-align:center; transition:all .3s ease; }
.hm-svc-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(0,0,0,.12); }
.hm-svc-card--blue { border-top-color:var(--hm-primary); }
.hm-svc-card--coral { border-top-color:var(--hm-coral); }
.hm-svc-card--green { border-top-color:var(--hm-green); }
.hm-svc-card--dark { border-top-color:#86211f; }
.hm-svc-card__icon { width:80px; height:80px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:24px; transition:transform .3s ease; }
.hm-svc-card:hover .hm-svc-card__icon { transform:scale(1.1); }
.hm-svc-card__icon .material-symbols-outlined { font-size:36px; }
.hm-svc-card h3 { font-family:var(--font-inter)!important; font-size:22px!important; font-weight:700!important; color:var(--hm-on-surface)!important; margin:0 0 12px!important; padding:0!important; border:none!important; }
.hm-svc-card p { font-family:var(--font-inter); font-size:16px; line-height:1.7; color:var(--hm-muted); margin:0 0 24px; }
.hm-svc-card__link { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-inter); font-weight:600; font-size:15px; color:var(--hm-primary)!important; text-decoration:none; margin-top:auto; transition:gap .2s; }
.hm-svc-card__link:hover { gap:10px; }
.hm-svc-card__link .material-symbols-outlined { font-size:18px; }

/* ══ METHODOLOGY ══ */
.hm-method { background:var(--hm-surface); padding:80px 0; }
.hm-roadmap { display:grid; grid-template-columns:1fr; gap:24px; position:relative; }
@media(min-width:768px){
    .hm-roadmap { grid-template-columns:repeat(4,1fr); }
    .hm-roadmap::before { content:''; position:absolute; top:24px; left:0; right:0; height:2px; background:repeating-linear-gradient(to right,#c4c6d5 0,#c4c6d5 8px,transparent 8px,transparent 18px); z-index:0; }
}
.hm-roadmap__step { position:relative; z-index:1; background:#fff; border-radius:16px; padding:28px 24px; border:1px solid rgba(196,198,213,.3); box-shadow:0 2px 8px rgba(0,0,0,.05); text-align:center; }
.hm-roadmap__num { width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-inter); font-weight:700; font-size:18px; margin:0 auto 16px; box-shadow:0 0 0 6px rgba(40,84,194,.1); }
.hm-roadmap__step h4 { font-family:var(--font-inter)!important; font-size:18px!important; font-weight:700!important; color:var(--hm-on-surface)!important; margin:0 0 8px!important; padding:0!important; border:none!important; }
.hm-roadmap__step p { font-family:var(--font-inter); font-size:15px; color:var(--hm-muted); margin:0; line-height:1.6; }

/* ══ RESULTS ══ */
.hm-results { background:var(--hm-surface); padding:80px 0; }
.hm-results__grid { display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:768px){.hm-results__grid{grid-template-columns:repeat(3,1fr)}}
.hm-result-card { position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 8px 24px rgba(0,0,0,.1); transition:transform .3s ease,box-shadow .3s ease; }
.hm-result-card:hover { transform:translateY(-8px); box-shadow:0 24px 48px rgba(0,0,0,.2); }
.hm-result-card a { display:block; width:100%; height:100%; text-decoration:none; }
.hm-result-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.hm-result-card:hover img { transform:scale(1.07); }
.hm-result-card__overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:32px 24px; }
.hm-result-card__metric { font-family:var(--font-inter); font-size:52px; font-weight:700; color:#fff; margin:0 0 4px; line-height:1; }
.hm-result-card__label { font-family:var(--font-inter); font-size:22px; font-weight:700; color:#fff; margin:0 0 6px; }
.hm-result-card__sub { font-family:var(--font-inter); font-size:15px; color:rgba(255,255,255,.85); margin:0; }

/* ══ BLOG ══ */
.hm-blog { background:var(--hm-surface-low); padding:80px 0; }
.hm-blog__hdr { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:40px; flex-wrap:wrap; gap:16px; }
.hm-blog__all { font-family:var(--font-inter); font-size:15px; font-weight:600; color:var(--hm-primary)!important; text-decoration:none; border-bottom:2px solid var(--hm-primary); padding-bottom:2px; white-space:nowrap; }
.hm-blog__grid { display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:768px){.hm-blog__grid{grid-template-columns:repeat(3,1fr)}}
.hm-blog-card { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.06); transition:all .3s ease; display:flex; flex-direction:column; }
.hm-blog-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,.12); }
.hm-blog-card__thumb { aspect-ratio:16/9; overflow:hidden; }
.hm-blog-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.hm-blog-card:hover .hm-blog-card__thumb img { transform:scale(1.06); }
.hm-blog-card__body { padding:24px; display:flex; flex-direction:column; flex:1; }
.hm-blog-card__cat { display:block; font-family:var(--font-inter); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; }
.hm-blog-card__title { font-family:var(--font-inter)!important; font-size:18px!important; font-weight:700!important; line-height:1.35!important; color:var(--hm-on-surface)!important; margin:0 0 10px!important; padding:0!important; border:none!important; }
.hm-blog-card__title a { text-decoration:none; color:inherit!important; transition:color .2s; }
.hm-blog-card:hover .hm-blog-card__title a { color:var(--hm-primary)!important; }
.hm-blog-card__exc { font-family:var(--font-inter); font-size:15px; color:var(--hm-muted); line-height:1.6; margin:0 0 20px; flex:1; }
.hm-blog-card__link { font-family:var(--font-inter); font-size:14px; font-weight:600; color:var(--hm-primary)!important; text-decoration:none; margin-top:auto; }

/* ══ FAQ ══ */
.hm-faq { background:#fff; padding:80px 0; }
.hm-faq__inner { display:grid; grid-template-columns:1fr; gap:48px; }
@media(min-width:1024px){.hm-faq__inner{grid-template-columns:5fr 7fr; align-items:start}}
.hm-faq__intro .hm-h2 { text-align:left!important; margin-bottom:16px!important; }
.hm-faq__list { display:flex; flex-direction:column; gap:4px; }
.hm-faq__item { border-bottom:1px solid var(--hm-outline); }
.hm-faq__item summary { display:flex; align-items:center; justify-content:space-between; font-family:var(--font-inter); font-size:17px; font-weight:600; color:var(--hm-on-surface); padding:20px 0; cursor:pointer; list-style:none; transition:color .2s; }
.hm-faq__item summary::-webkit-details-marker { display:none; }
.hm-faq__item summary::after { content:'+'; font-size:24px; color:var(--hm-primary); flex-shrink:0; transition:transform .3s; }
.hm-faq__item[open] summary::after { transform:rotate(45deg); }
.hm-faq__item summary:hover { color:var(--hm-primary); }
.hm-faq__item > p { font-family:var(--font-inter); font-size:16px; color:var(--hm-muted); line-height:1.7; padding:0 0 20px; margin:0; }

/* ══ CTA FINAL ══ */
.hm-cta { position:relative; overflow:hidden; padding:80px 0; background:linear-gradient(135deg,#2854c2 0%,#a63934 50%,#006a45 100%); }
.hm-cta__blob1,.hm-cta__blob2 { position:absolute; border-radius:50%; background:#fff; opacity:.08; pointer-events:none; }
.hm-cta__blob1 { width:600px; height:600px; top:-20%; right:-10%; filter:blur(120px); }
.hm-cta__blob2 { width:500px; height:500px; bottom:-20%; left:-10%; filter:blur(100px); }
.hm-cta__inner { position:relative; z-index:1; text-align:center; }
.hm-cta__badge { display:inline-block; background:rgba(255,255,255,.2); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.3); border-radius:9999px; padding:8px 24px; margin-bottom:32px; font-family:var(--font-inter); font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; }
.hm-cta__title { font-family:var(--font-inter)!important; font-size:clamp(36px,5vw,56px)!important; font-weight:700!important; line-height:1.1!important; letter-spacing:-.02em!important; color:#fff!important; margin:0 0 24px!important; padding:0!important; border:none!important; max-width:900px; margin-left:auto!important; margin-right:auto!important; }
.hm-cta__title em { font-style:italic; text-decoration:underline; text-decoration-color:rgba(255,255,255,.5); }
.hm-cta__desc { font-family:var(--font-inter); font-size:18px; color:rgba(255,255,255,.9); line-height:1.7; max-width:640px; margin:0 auto 40px; }
.hm-cta__btns { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-bottom:24px; }
.hm-cta__foot { font-family:var(--font-inter); font-size:14px; color:rgba(255,255,255,.7); margin:0; }

/* Fix: ensure hm-* own sections span full width edge-to-edge */
body.home .imbatik-home-wrapper > *,
body.home .entry-content > * {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
/* Only hm-* blocks and root sp- wrappers get 100vw — NOT internal components */
body.home .hm-hero,
body.home .hm-about,
body.home .hm-services,
body.home .hm-method,
body.home .hm-results,
body.home .hm-blog,
body.home .hm-faq,
body.home .hm-cta,
body.home .sp-logos,
body.home .sp-section,
body.home .sp-hero,
body.home .sp-stats,
body.home .sp-media-mentions {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-1 * ((100vw - 100%) / 2)) !important;
    box-sizing: border-box !important;
    overflow-x: clip !important;
}
/* Fix testimonials grid inside sp-section on homepage
   ANTES: aplicaba display:grid al SECTION (.sp-testimonials), lo cual
   comprimía todo el contenido a la izquierda. Ahora apunta al GRID
   correcto (.sp-testimonials__grid) y el section mantiene su layout
   normal (padding del section + inner centrado + grid responsivo). */
body.home .sp-testimonials__grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 56px !important;
}
@media (max-width: 968px) {
    body.home .sp-testimonials__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 640px) {
    body.home .sp-testimonials__grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* ════════════════════════════════════════════════════════════
   QUIÉNES SOMOS (QS) - PIXEL PERFECT MODERN TECH
   ════════════════════════════════════════════════════════════ */

.qs-section { padding: 80px 0; overflow: hidden; }
.qs-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 10; }
.qs-container--narrow { max-width: 900px; }

/* -- QS HERO -- */
.qs-hero { 
    position: relative; 
    padding: 140px 0 100px; 
    background: #F9F9FC; 
    overflow: hidden; 
    min-height: 80vh; 
    display: flex; 
    align-items: center; 
}
.qs-hero__bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.qs-hero__blob { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.15; animation: subtle-move-qs 20s infinite alternate ease-in-out; }
.qs-hero__blob--1 { width: 600px; height: 600px; top: -100px; right: -100px; background: var(--primary); }
.qs-hero__blob--2 { width: 400px; height: 400px; bottom: -100px; left: -100px; background: var(--secondary); }

.qs-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.qs-hero__badge { 
    display: inline-block; padding: 6px 16px; border-radius: 99px; 
    background: rgba(40, 84, 194, 0.1); color: var(--primary); 
    font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 24px; 
}
.qs-hero__title { font-size: clamp(40px, 6vw, 56px); line-height: 1.1; margin-bottom: 24px; font-weight: 700; color: #1a1c1e; letter-spacing: -0.02em; }
.qs-hero__title span.text-primary { color: var(--primary); }
.qs-hero__title span.text-secondary { color: var(--secondary); }

.qs-hero__desc { font-size: 18px; color: #434653; line-height: 1.6; margin-bottom: 40px; max-width: 500px; }

.qs-hero__actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.qs-hero__stats { display: flex; align-items: center; gap: 12px; padding: 0 12px; }
.qs-hero__avatars { display: flex; align-items: center; }
.qs-avatar { width: 40px; height: 40px; border-radius: 50%; border: 2px solid #fff; background: #e2e2e5; margin-left: -12px; }
.qs-avatar:first-child { margin-left: 0; }
.qs-avatar:nth-child(2) { background: #466edd; }
.qs-avatar:nth-child(3) { background: #ff7b72; }
.qs-hero__kpi { font-size: 14px; font-weight: 600; color: #434653; }

.qs-hero__visual { position: relative; display: flex; justify-content: flex-end; }
.qs-hero__visual-inner { position: relative; z-index: 2; width: 100%; max-width: 500px; animation: float 6s ease-in-out infinite; }
.qs-hero__logo-img { width: 100%; height: auto; filter: drop-shadow(0 20px 40px rgba(0,0,0,0.15)); }
.qs-hero__visual-accent { 
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); 
    width: 140%; height: 140%; background: radial-gradient(circle, rgba(40,84,194,0.05) 0%, transparent 70%); 
    z-index: 1; 
}

/* -- QS MANIFESTO -- */
.qs-manifesto { position: relative; background: #ffffff; padding: 100px 0; }
.qs-manifesto__inner { text-align: center; }
.qs-manifesto__decoration { display: flex; justify-content: center; gap: 4px; margin-bottom: 32px; height: 4px; }
.qs-manifesto__decoration div { height: 4px; border-radius: 99px; }
.qs-bar-1 { width: 16px; background: var(--primary); }
.qs-bar-2 { width: 16px; background: var(--secondary); }
.qs-bar-3 { width: 16px; background: var(--tertiary); }
.qs-bar-4 { width: 16px; background: #466edd; }

.qs-manifesto__title { font-size: clamp(32px, 5vw, 48px); margin-bottom: 48px; color: #1a1c1e; }
.qs-manifesto__content-wrap { border-left: 4px solid rgba(40, 84, 194, 0.2); padding-left: 40px; margin: 0 auto; max-width: 800px; text-align: left; }
.qs-manifesto__content { font-size: clamp(20px, 2.5vw, 24px); line-height: 1.6; color: #434653; font-style: italic; }
.qs-manifesto__paragraph { margin-bottom: 32px; }
.qs-manifesto__paragraph span.font-bold { color: #1a1c1e; font-weight: 700; font-style: normal; }
.qs-manifesto__paragraph span.text-primary { color: var(--primary); }

/* -- QS PILLARS -- */
.qs-pillars { background: #f9f9fc; }
.qs-pillars__header { text-align: center; margin-bottom: 64px; }
.qs-pillars__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.qs-pillar-card { 
    background: #fff; border-radius: 24px; padding: 32px; border: 1px solid #e2e2e5; 
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; 
}
.qs-pillar-card:hover { transform: translateY(-8px); border-color: var(--primary); box-shadow: 0 20px 40px -12px rgba(0,0,0,0.1); }
.qs-pillar-card__icon { 
    width: 56px; height: 56px; border-radius: 16px; display: flex; align-items: center; justify-content: center; 
    margin-bottom: 24px; transition: transform 0.3s ease; 
}
.qs-pillar-card:hover .qs-pillar-card__icon { transform: scale(1.1); }
.qs-pillar-card__icon .material-symbols-outlined { font-size: 32px; }

.qs-pillar-card__icon--primary { background: rgba(40, 84, 194, 0.1); color: var(--primary); }
.qs-pillar-card__icon--secondary { background: rgba(166, 57, 52, 0.1); color: var(--secondary); }
.qs-pillar-card__icon--tertiary { background: rgba(0, 106, 69, 0.1); color: var(--tertiary); }
.qs-pillar-card__icon--primary-container { background: rgba(70, 110, 221, 0.1); color: #466edd; }

.qs-pillar-card__title { font-size: 24px; font-weight: 600; color: #1a1c1e; margin-bottom: 12px; }
.qs-pillar-card__desc { font-size: 16px; color: #434653; line-height: 1.5; }

/* -- QS WHY -- */
.qs-why { background: #f3f3f6; }
.qs-why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.qs-why__points { margin-top: 32px; }
.qs-why__point { display: flex; gap: 16px; margin-bottom: 24px; }
.qs-why__point-icon { 
    width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; 
    flex-shrink: 0; color: #fff; 
}
.qs-why__point-icon--primary { background: var(--primary); }
.qs-why__point-icon--secondary { background: var(--secondary); }
.qs-why__point-icon--tertiary { background: var(--tertiary); }

.qs-why__point-title { font-size: 18px; font-weight: 700; color: #1a1c1e; margin-bottom: 4px; }
.qs-why__point-desc { font-size: 16px; color: #434653; }

.qs-why__card-wrap { position: relative; }
.qs-why__card { background: #fff; padding: 48px; border-radius: 32px; box-shadow: 0 20px 40px rgba(0,0,0,0.08); position: relative; z-index: 2; }
.qs-why__card-stat { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.qs-why__card-value { font-size: 40px; font-weight: 800; color: var(--primary); }
.qs-why__card-label { font-size: 16px; color: #434653; font-weight: 600; }

.qs-why__progress-bg { height: 8px; width: 100%; background: #eeeef0; border-radius: 99px; overflow: hidden; margin-bottom: 32px; }
.qs-why__progress-fill { height: 100%; background: var(--primary); border-radius: 99px; }

.qs-why__quote { font-size: 18px; color: #434653; font-style: italic; margin-bottom: 32px; line-height: 1.6; border: none; padding: 0; }
.qs-why__author { display: flex; align-items: center; gap: 16px; }
.qs-why__author-img { width: 48px; height: 48px; border-radius: 50%; background: #e2e2e5; }
.qs-why__author-name { font-weight: 700; color: #1a1c1e; }
.qs-why__author-role { font-size: 14px; color: #434653; }
.qs-why__card-accent { position: absolute; -top: 24px; -right: 24px; width: 100px; height: 100px; background: rgba(70, 110, 221, 0.15); border-radius: 50%; filter: blur(40px); z-index: 1; }

/* -- QS TEAM -- */
.qs-team { background: #ffffff; }
.qs-team__header { margin-bottom: 64px; }
.qs-team__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.qs-team__card { 
    background: #fff; border-radius: 32px; overflow: hidden; 
    box-shadow: 0 4px 6px rgba(0,0,0,0.02); transition: all 0.4s ease; 
    position: relative; border: 1px solid #f0f0f0;
}
.qs-team__card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.1); border-color: rgba(40, 84, 194, 0.1); }
.qs-team__card-img { aspect-ratio: 4/5; overflow: hidden; }
.qs-team__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; }
.qs-team__card:hover .qs-team__card-img img { transform: scale(1.05); }

.qs-team__card-info { padding: 32px; position: relative; z-index: 2; }
.qs-team__card-badge { 
    display: inline-block; padding: 4px 12px; border-radius: 99px; 
    font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; 
}
.qs-team__card-badge--primary { background: rgba(40, 84, 194, 0.1); color: var(--primary); }
.qs-team__card-badge--secondary { background: rgba(166, 57, 52, 0.1); color: var(--secondary); }
.qs-team__card-badge--tertiary { background: rgba(0, 106, 69, 0.1); color: var(--tertiary); }

.qs-team__card-name { font-size: 24px; font-weight: 600; color: #1a1c1e; margin-bottom: 8px; }
.qs-team__card-bio { font-size: 14px; color: #434653; line-height: 1.5; }

.qs-team__card-overlay { 
    position: absolute; inset: 0; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; z-index: 1; 
}
.qs-team__card:hover .qs-team__card-overlay { opacity: 1; }
.qs-team__card-overlay--primary { background: rgba(40, 84, 194, 0.03); }
.qs-team__card-overlay--secondary { background: rgba(166, 57, 52, 0.03); }
.qs-team__card-overlay--tertiary { background: rgba(0, 106, 69, 0.03); }

/* -- RESPONSIVE -- */
@media (max-width: 1024px) {
    .qs-pillars__grid { grid-template-columns: repeat(2, 1fr); }
    .qs-why__grid { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width: 768px) {
    .qs-hero__grid { grid-template-columns: 1fr; gap: 40px; text-align: center; }
    .qs-hero__desc { margin-left: auto; margin-right: auto; }
    .qs-hero__actions { justify-content: center; }
    .qs-hero__visual { justify-content: center; }
    .qs-team__grid { grid-template-columns: 1fr; }
    .qs-manifesto__content-wrap { border-left: none; border-top: 4px solid rgba(40, 84, 194, 0.1); padding: 32px 0 0; text-align: center; }
    .qs-pillars__grid { grid-template-columns: 1fr; }
}

@keyframes float {
    0% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(2deg); }
    100% { transform: translateY(0px) rotate(0deg); }
}

@keyframes subtle-move-qs {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(2%, 2%) scale(1.05); }
    100% { transform: translate(0, 0) scale(1); }
}

/* Fix for 100vw on QS sections (Page ID 206) */
body.page-id-206 #content,
body.page-id-206 .site-content { padding: 0 !important; }
body.page-id-206 .site-main { max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
body.page-id-206 .entry-content { margin: 0 !important; max-width: 100% !important; }
body.page-id-206 .qs-hero,
body.page-id-206 .qs-section {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-1 * ((100vw - 100%) / 2)) !important;
    box-sizing: border-box !important;
    overflow-x: clip !important;
}
