:root {
    --coda-navy: #0b1645;
    --coda-blue: #2457f5;
    --coda-purple: #8429e8;
    --coda-ink: #111827;
    --coda-muted: #667085;
    --coda-surface: #fff;
    --coda-surface-soft: #f5f7ff;
    --coda-line: #dfe4f2;
    --coda-gradient: linear-gradient(135deg, var(--coda-blue), var(--coda-purple));
    --font-display: "Sora", "Segoe UI", Arial, sans-serif;
    --font-body: "Inter", "Segoe UI", Arial, sans-serif;
    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 30px;
    --shadow-soft: 0 18px 55px rgb(11 22 69 / 10%);
    --content-max: 1180px;
}

html { scroll-padding-top: 6.5rem; }
body, .human-theme { background: var(--coda-surface); color: var(--coda-ink); font-family: var(--font-body); }
h1, h2, h3, .main-nav, .sh-header nav { font-family: var(--font-display); }
a, button, input, select, textarea { border-radius: var(--radius-sm); }
:focus-visible { outline: 3px solid var(--coda-purple); outline-offset: 4px; }
em { color: var(--coda-blue); }

/* Cabecera compartida */
.site-header, .human-theme .site-header, .human-theme .site-header.is-scrolled,
.sh-header { border-bottom: 1px solid rgb(255 255 255 / 12%); background: var(--coda-navy); box-shadow: 0 7px 22px rgb(11 22 69 / 12%); backdrop-filter: none; }
.header-inner, .sh-header { min-height: 92px; }
.brand-lockup { display: inline-grid; width: max-content; color: #fff; line-height: 1; text-decoration: none; }
.brand picture, .sh-header picture { display: block; height: 52px; }
.brand .site-logo, .sh-header .site-logo { display: block; width: auto; max-width: 360px; height: 52px; }
.brand-descriptor { margin-top: -1px; padding-left: 4.6rem; color: #fff; font-family: var(--font-display); font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.main-nav a, .sh-header nav a { color: #fff; font-weight: 600; }
.main-nav a:hover, .sh-header nav a:hover { color: #fff; }
.main-nav a:not(.nav-cta)::after { height: 2px; background: var(--coda-gradient); }
.main-nav .nav-cta, .sh-nav-cta { border: 0; border-radius: 999px; background: var(--coda-gradient); color: #fff; box-shadow: 0 8px 24px rgb(36 87 245 / 22%); }
.main-nav .nav-cta:hover, .sh-nav-cta:hover { background: #fff; color: var(--coda-navy); }
.menu-toggle, .human-theme .menu-toggle, .sh-menu-toggle { color: #fff; }
.menu-toggle i, .menu-toggle i::after, .human-theme .menu-toggle i, .human-theme .menu-toggle i::after, .sh-menu-toggle i { background: #fff; }
.sh-menu-toggle i { position: relative; }
.sh-menu-toggle i::before, .sh-menu-toggle i::after { position: absolute; left: 0; width: 100%; height: 2px; background: #fff; content: ""; }
.sh-menu-toggle i::before { transform: translateY(-.42rem); }.sh-menu-toggle i::after { transform: translateY(.42rem); }
.menu-toggle:hover, .sh-menu-toggle:hover { background: rgb(255 255 255 / 10%); }
.menu-is-open { overflow: hidden; }

/* Portada */
.sh-header { position: fixed; z-index: 100; top: 0; width: 100%; }
.sh-hero { min-height: min(880px, 100vh); padding-top: clamp(8.5rem, 12vw, 11rem); background: radial-gradient(circle at 82% 22%, rgb(132 41 232 / 8%), transparent 28%), radial-gradient(circle at 65% 70%, rgb(36 87 245 / 9%), transparent 34%), #fff; }
.sh-copy > p:first-child, .sh-heading > p, .sh-services header > p, .sh-company > div > p:first-child, .sh-contact p { color: var(--coda-blue); }
.sh-copy h1 { color: var(--coda-navy); letter-spacing: -.055em; }
.sh-copy h1 em { background: var(--coda-gradient); background-clip: text; color: transparent; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.sh-lead { color: var(--coda-muted); }
.sh-button { border-radius: 999px; background: var(--coda-gradient); box-shadow: 0 12px 32px rgb(36 87 245 / 20%); }
.sh-link { color: var(--coda-navy); }
.sh-illustration { isolation: isolate; }
.sh-illustration::before { position: absolute; z-index: -1; inset: 8%; border-radius: 50%; background: radial-gradient(circle, #fff 0 24%, rgb(36 87 245 / 7%) 25% 48%, transparent 49%); content: ""; }
.sh-orbit { border-color: rgb(36 87 245 / 24%) !important; background: transparent !important; }
.sh-orbit span { border: 1px solid var(--coda-line); color: var(--coda-navy); box-shadow: var(--shadow-soft); }
.sh-center { border: 0; background: #fff; box-shadow: 0 24px 70px rgb(11 22 69 / 16%); }
.sh-center img { width: 5rem; height: 5rem; margin: 0 auto .5rem; }
.sh-center small { color: var(--coda-muted); }
.dot-a { background: var(--coda-blue); }.dot-b { background: var(--coda-purple); }.dot-c { background: var(--coda-navy); }
.sh-trust { background: var(--coda-navy); color: #fff; }
.sh-trust span::before { display: inline-block; width: .45rem; height: .45rem; margin-right: .65rem; border-radius: 50%; background: var(--coda-gradient); content: ""; }
.sh-how { background: var(--coda-surface-soft); }
.sh-heading h2, .sh-services header h2, .sh-company h2, .sh-contact h2 { color: var(--coda-navy); }
.sh-steps { position: relative; }
.sh-steps::before { position: absolute; top: 2rem; bottom: 2rem; left: 2.5rem; width: 2px; background: var(--coda-gradient); content: ""; }
.sh-steps article { position: relative; border: 1px solid var(--coda-line); border-radius: var(--radius-md); box-shadow: none; }
.sh-steps article > span { z-index: 1; background: var(--coda-gradient); color: #fff; }
.sh-steps p { color: var(--coda-muted); }
.sh-services { background: #fff; }
.sh-card-grid article, .sh-card-grid .lavender, .sh-card-grid .coral, .sh-card-grid .blue { border: 1px solid var(--coda-line); border-radius: var(--radius-md); background: #fff; color: var(--coda-ink); box-shadow: none; transition: transform .2s, box-shadow .2s, border-color .2s; }
.sh-card-grid article:hover { border-color: rgb(36 87 245 / 45%); box-shadow: var(--shadow-soft); transform: translateY(-5px); }
.sh-card-grid svg { color: var(--coda-blue); }
.sh-card-grid article:nth-child(2) svg { color: var(--coda-purple); }
.sh-card-grid article:nth-child(3) svg { color: var(--coda-navy); }
.sh-card-grid a { border-color: var(--coda-line); color: var(--coda-blue); }
.sh-company { background: var(--coda-surface-soft); }
.sh-quote { border-radius: var(--radius-lg); background: var(--coda-navy); color: #fff; box-shadow: var(--shadow-soft); }
.sh-company > div:last-child > p:not(:first-child) { color: var(--coda-muted); }
.sh-contact { background: var(--coda-gradient); color: #fff; }
.sh-contact p, .sh-contact h2 { color: #fff; }
.sh-contact .sh-button { background: #fff; color: var(--coda-navy); box-shadow: none; }

/* Interiores */
.human-theme .inner-main, .human-theme .editorial-block, .human-theme .detail-process, .human-theme .outcomes, .human-theme .principles, .human-theme .case-flow, .human-theme .article-body, .human-theme .legal-content { background: #fff; }
.human-theme .inner-hero { position: relative; overflow: hidden; border-color: var(--coda-line); background: var(--coda-surface-soft); }
.human-theme .inner-hero::before { position: absolute; right: 5%; bottom: -7rem; width: 23rem; height: 23rem; border: 1px solid rgb(36 87 245 / 22%); border-radius: 50%; box-shadow: 0 0 0 3rem rgb(132 41 232 / 5%), 0 0 0 6rem rgb(36 87 245 / 4%); content: ""; }
.human-theme .inner-hero::after { display: none; }
.human-theme .inner-hero > * { position: relative; z-index: 1; }
.human-theme .inner-hero h1, .human-theme .prose-large h2, .human-theme .section-heading h2, .human-theme .detail-process h3, .human-theme .case-flow h2, .human-theme .article-prose h2, .human-theme .legal-content h2 { color: var(--coda-navy); }
.human-theme .eyebrow, .human-theme .section-index { color: var(--coda-blue); }
.human-theme .section-index::before { background: var(--coda-gradient); }
.human-theme .inner-lead, .human-theme .prose-large p, .human-theme .section-heading > p, .human-theme .article-prose p { color: var(--coda-muted); }
.human-theme .inner-band, .human-theme .company-numbers, .human-theme .technology-band, .human-theme .contact-page { background: var(--coda-surface-soft); }
.human-theme .topic-grid article, .human-theme .principle-list article, .human-theme .listing-card, .human-theme .outcome-grid article, .human-theme .knowledge-listing article, .human-theme .article-grid article, .human-theme .method-steps li { border-color: var(--coda-line); background: #fff; }
.human-theme .topic-grid article:nth-child(3n+2), .human-theme .principle-list article:nth-child(3n+2) { background: #fff; }
.human-theme .topic-icon { stroke: var(--coda-blue); }
.human-theme .listing-card, .human-theme .knowledge-listing article { transition: transform .2s, box-shadow .2s, border-color .2s; }
.human-theme .listing-card:hover, .human-theme .knowledge-listing article:hover { border-color: rgb(36 87 245 / 40%); box-shadow: var(--shadow-soft); transform: translateY(-4px); }
.human-theme .button-primary, .human-theme .contact-form .button-primary { border: 0; border-radius: 999px; background: var(--coda-gradient); color: #fff; }
.human-theme .button-primary:hover { background: var(--coda-navy); color: #fff; }
.human-theme .cta-panel { border-radius: var(--radius-lg); background: var(--coda-gradient); color: #fff; box-shadow: var(--shadow-soft); }
.human-theme .cta-panel h2, .human-theme .cta-panel .section-index { color: #fff; }
.human-theme .cta-panel .button { background: #fff; color: var(--coda-navy); }
.human-theme .contact-form { border: 1px solid var(--coda-line); border-radius: var(--radius-md); background: #fff; color: var(--coda-ink); box-shadow: var(--shadow-soft); }
.human-theme .contact-form label { color: var(--coda-ink); }
.human-theme .contact-form label > span { color: var(--coda-blue); }
.human-theme .contact-form input, .human-theme .contact-form select, .human-theme .contact-form textarea { border-color: #b9c2d8; color: var(--coda-ink); }
.human-theme .contact-form input:focus, .human-theme .contact-form select:focus, .human-theme .contact-form textarea:focus { border-color: var(--coda-blue); }
.human-theme .field-group { display: grid; min-width: 0; gap: .45rem; }
.human-theme .field-error { display: block; margin-top: .4rem; color: #b42318; font-weight: 600; }
.human-theme [aria-invalid="true"] { border-color: #b42318 !important; }
.human-theme .form-errors { margin-bottom: 1.5rem; padding: 1rem 1.2rem; border: 1px solid #f0aaa4; border-radius: var(--radius-sm); background: #fff2f0; color: #7a271a; }
.human-theme .form-errors ul { margin: .6rem 0 0; padding-left: 1.2rem; }
.human-theme .article-header { border-color: var(--coda-line); background: var(--coda-surface-soft); }
.human-theme .article-conclusion { border-radius: var(--radius-md); background: var(--coda-surface-soft); }
.human-theme .site-footer { background: var(--coda-navy); color: #fff; }
.human-theme .site-footer img { padding: 0; background: transparent; }
.human-theme .footer-legal, .human-theme .footer-main { border-color: rgb(255 255 255 / 15%); }

@media (max-width: 52rem) {
    html { scroll-padding-top: 5.25rem; }
    .header-inner, .sh-header { min-height: 70px; }
    .brand picture, .sh-header picture { height: 42px; }
    .brand .site-logo, .sh-header .site-logo { width: auto; max-width: 235px; height: 42px; }
    .brand-descriptor { display: none; }
    .main-nav, .human-theme .main-nav, .sh-header nav { border-top: 1px solid rgb(255 255 255 / 12%); background: var(--coda-navy); }
    .main-nav a, .human-theme .main-nav a, .sh-header nav a { color: rgb(255 255 255 / 86%); }
    .sh-steps::before { left: 2.5rem; }
}

@media (min-width: 40rem) and (max-width: 64rem) {
    .brand picture, .sh-header picture { height: 46px; }
    .brand .site-logo, .sh-header .site-logo { height: 46px; }
    .brand-descriptor { padding-left: 4rem; font-size: .6rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
