@charset "utf-8";
/* Starter: base global reutilizable. Personaliza primero las variables. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap');
@import url('https://cdn-uicons.flaticon.com/3.0.0/uicons-regular-straight/css/uicons-regular-straight.css');
@import url('https://cdn-uicons.flaticon.com/3.0.0/uicons-brands/css/uicons-brands.css');

:root {
  /* Marca y tema */
  --primary-color: #ff5c35;
  --primary-hover: #e94924;
  --secondary-color: #173f36;
  --secondary-hover: #0f2f28;
  --tertiary-color: #c9ff56;
  --bg-color: #f5f1e8;
  --bg-navbar: rgb(245 241 232 / 92%);
  --surface-color: #fffdf8;
  --surface-hover: #f0eadf;
  --text-color: #18201e;
  --heading-color: #12201d;
  --text-muted: #6f746f;
  --border-color: rgb(24 32 30 / 16%);
  --hero-h1-color: #12201d;
  --hero-text-color: #4d5753;
  --hero-overlay: linear-gradient(135deg, rgb(245 241 232 / 20%), rgb(245 241 232 / 80%));

  /* Contexto claro / estado normal */
  --light-bg: #ffffff;
  --light-surface: #f5f1e8;
  --light-heading: #12201d;
  --light-text: #18201e;
  --light-muted: #6f746f;
  --light-border: rgb(24 32 30 / 16%);
  --light-link: #c93d1c;
  --light-accent: #c93d1c;

  /* Contexto oscuro / alto contraste */
  --dark-bg: #0d1f1b;
  --dark-surface: #173f36;
  --dark-heading: #ffffff;
  --dark-text: #e6ede9;
  --dark-muted: #b7c5c0;
  --dark-border: rgb(255 255 255 / 22%);
  --dark-link: #c9ff56;
  --dark-accent: #c9ff56;

  /* Tipografía */
  --font-sans: 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-size-xs: .75rem;
  --font-size-sm: .875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-xxl: clamp(2rem, 4vw, 3.5rem);
  --font-size-3xl: clamp(3.25rem, 7vw, 6.8rem);
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.02;
  --line-height-normal: 1.55;
  --line-height-relaxed: 1.75;

  /* Espaciado y forma */
  --space-xs: .25rem;
  --space-small: .5rem;
  --space-medium: 1rem;
  --space-large: 2rem;
  --space-xl: 4rem;
  --space-xxl: 7rem;
  --radius-sm: .35rem;
  --radius-md: .75rem;
  --radius-lg: 1.25rem;
  --radius-xl: 2rem;
  --radius-full: 9999px;
  --shadow-sm: 0 2px 10px rgb(18 32 29 / 6%);
  --shadow-md: 0 16px 38px rgb(18 32 29 / 10%);
  --shadow-lg: 0 24px 70px rgb(18 32 29 / 18%);
  --transition-fast: 150ms ease;
  --transition-normal: 300ms ease;
  --transition-slow: 600ms cubic-bezier(.2,.8,.2,1);

  /* Estructura global */
  --container-max-width: 77.5rem;
  --container-padding: clamp(1.25rem, 4vw, 3rem);
  --column-gap: clamp(1rem, 2.5vw, 2rem);
  --section-padding: clamp(5rem, 10vw, 9rem);
  --navbar-height: 5.5rem;
  --navbar-logo-height: 2.75rem;
  --navbar-max-width: var(--container-max-width);
  --navbar-menu-width: 20rem;
  --navbar-z-index: 1000;
  --navbar-toggle-z-index: 1100;
  --nav-alignment: flex-end;
  --footer-bg-color: #0d1f1b;
  --footer-text-color: #f7f3ea;
  --footer-min-height: 8rem;
  --button-text-color: #fff;
  --button-padding-y: .9rem;
  --button-padding-x: 1.4rem;
  --button-gap: .55rem;
  --button-min-height: 3rem;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 100%; scroll-behavior: smooth; scroll-padding-top: var(--navbar-height); }
body { min-height: 100vh; overflow-x: hidden; color: var(--text-color); background: var(--bg-color); font-family: var(--font-sans); font-size: var(--font-size-base); line-height: var(--line-height-normal); }
main { width: 100%; padding-top: var(--navbar-height); }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea { font: inherit; }
a { color: inherit; text-decoration: none; transition: color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--tertiary-color); outline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--heading-color); line-height: var(--line-height-tight); letter-spacing: -.04em; }
h1 { font-size: var(--font-size-3xl); }
h2 { font-size: var(--font-size-xxl); }
h3 { font-size: var(--font-size-xl); }
h4 { font-size: 1.125rem; }
h5 { font-size: 1rem; }
h6 { font-size: var(--font-size-sm); letter-spacing: .08em; text-transform: uppercase; }
p + p { margin-top: var(--space-medium); }
em { color: var(--primary-color); font-family: var(--font-serif); font-weight: 600; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 2000; padding: .75rem 1rem; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

/* Contenedores y sistema de columnas conservado */
.col { width: min(100% - (var(--container-padding) * 2), var(--container-max-width)); margin-inline: auto; }
.grid-stretch { display: flex; gap: var(--column-gap); align-items: stretch; }
.two-column, .hero-layout, .contact-layout { display: flex; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.col-20 { width: 20%; }.col-25 { width: 25%; }.col-30 { width: 30%; }.col-33 { width: 33.333%; }.col-40 { width: 40%; }.col-50 { width: 50%; }.col-60 { width: 60%; }.col-70 { width: 70%; }.col-75 { width: 75%; }.col-80 { width: 80%; }.col-100 { width: 100%; }
.izquierda { text-align: left; }.centrado { text-align: center; }.derecha { text-align: right; }
.section { padding-block: var(--section-padding); }
.section-alt { background: var(--surface-color); }
.section-dark { color: #d7ded9; background: var(--secondary-color); }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4, .section-dark h5, .section-dark h6 { color: #fff; }
.theme-light, .theme-dark { color: var(--theme-text); background: var(--theme-bg); }
.theme-light { --theme-bg: var(--light-bg); --theme-surface: var(--light-surface); --theme-heading: var(--light-heading); --theme-text: var(--light-text); --theme-muted: var(--light-muted); --theme-border: var(--light-border); --theme-link: var(--light-link); --theme-accent: var(--light-accent); --theme-button-text: #fff; }
.theme-dark { --theme-bg: var(--dark-bg); --theme-surface: var(--dark-surface); --theme-heading: var(--dark-heading); --theme-text: var(--dark-text); --theme-muted: var(--dark-muted); --theme-border: var(--dark-border); --theme-link: var(--dark-link); --theme-accent: var(--dark-accent); --theme-button-text: var(--dark-bg); color-scheme: dark; }
.theme-light h1, .theme-light h2, .theme-light h3, .theme-light h4, .theme-light h5, .theme-light h6, .theme-dark h1, .theme-dark h2, .theme-dark h3, .theme-dark h4, .theme-dark h5, .theme-dark h6 { color: var(--theme-heading); }
.theme-light .lead, .theme-light .text-muted, .theme-dark .lead, .theme-dark .text-muted { color: var(--theme-muted); }
.theme-light .inline-link, .theme-dark .inline-link { color: var(--theme-link); }
.theme-light .theme-surface, .theme-dark .theme-surface { border-color: var(--theme-border); background: var(--theme-surface); }
.theme-light .btn-secondary, .theme-dark .btn-secondary { border-color: var(--theme-border); color: var(--theme-text); background: transparent; }
.theme-light .btn-secondary:hover, .theme-dark .btn-secondary:hover { color: var(--theme-bg); background: var(--theme-text); }
.theme-light .btn-primary, .theme-dark .btn-primary { color: var(--theme-button-text); background: var(--theme-accent); }
.theme-dark .text-link { color: var(--theme-link); }
.eyebrow, .kicker { margin-bottom: 1.5rem; color: var(--primary-color); font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); letter-spacing: .18em; text-transform: uppercase; }
.section-heading { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: var(--column-gap); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.section-heading p:last-child { color: #acbbb5; }
.lead { margin-block: 1.5rem 2rem; color: var(--text-muted); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.7; }

/* Botones */
.button-row { display: flex; flex-wrap: wrap; gap: var(--button-gap); margin-top: 2rem; }
.btn, .btn-contact { display: inline-flex; min-height: var(--button-min-height); align-items: center; justify-content: center; gap: .6rem; padding: var(--button-padding-y) var(--button-padding-x); border: 1px solid transparent; border-radius: var(--radius-full); font-weight: var(--font-weight-semibold); cursor: pointer; }
.btn-primary { color: var(--button-text-color); background: var(--primary-color); }
.btn-primary:hover { color: #fff; background: var(--primary-hover); transform: translateY(-2px); }
.btn-secondary { border-color: var(--border-color); background: rgb(255 255 255 / 55%); }
.btn-secondary:hover { background: #fff; }
.text-link { display: inline-flex; gap: .65rem; align-items: center; padding-bottom: .35rem; border-bottom: 1px solid currentColor; font-weight: 600; }
.text-link:hover { color: var(--primary-color); }

/* Navegación compartida */
.navbar { position: fixed; inset: 0 0 auto; z-index: var(--navbar-z-index); height: var(--navbar-height); border-bottom: 1px solid var(--border-color); background: var(--bg-navbar); backdrop-filter: blur(14px); }
.nav-container { display: flex; width: min(100% - (var(--container-padding) * 2), var(--navbar-max-width)); height: 100%; margin-inline: auto; align-items: center; }
.nav-logo, .footer-brand { display: inline-flex; align-items: center; gap: .65rem; font-size: 1.25rem; font-weight: 700; letter-spacing: -.04em; }
.logo-mark { display: inline-grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #fff; background: var(--primary-color); font-size: .9rem; }
.nav-menu-wrapper { display: flex; flex: 1; align-items: center; justify-content: var(--nav-alignment); gap: 2.5rem; }
.nav-menu { display: flex; gap: 2rem; align-items: center; list-style: none; }
.nav-link { position: relative; padding-block: 1rem; font-size: var(--font-size-sm); font-weight: 500; }
.nav-link::after { position: absolute; right: 0; bottom: .7rem; left: 0; height: 2px; content: ''; background: var(--primary-color); transform: scaleX(0); transition: transform var(--transition-normal); }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); }
.nav-link[aria-current="page"] { color: var(--primary-color); }
.btn-contact { color: #fff; background: var(--secondary-color); font-size: var(--font-size-sm); }
.btn-contact:hover { color: #fff; background: var(--primary-color); }
.menu-toggle { display: none; margin-left: auto; padding: .8rem; border: 0; background: transparent; cursor: pointer; }
.hamburger, .hamburger::before, .hamburger::after { display: block; width: 1.5rem; height: 2px; content: ''; background: currentColor; transition: var(--transition-normal); }
.hamburger::before { transform: translateY(-.45rem); }.hamburger::after { transform: translateY(.35rem); }

/* Hero */
.hero { position: relative; display: flex; min-height: calc(100svh - var(--navbar-height)); flex-direction: column; justify-content: center; overflow: hidden; padding-top: clamp(4rem, 8vw, 7rem); background: var(--bg-color); }
.hero::before { position: absolute; inset: 0; pointer-events: none; content: ''; background-image: linear-gradient(rgb(24 32 30 / 5%) 1px, transparent 1px), linear-gradient(90deg, rgb(24 32 30 / 5%) 1px, transparent 1px); background-size: 4rem 4rem; mask-image: linear-gradient(to bottom, #000, transparent 85%); }
.hero-layout { position: relative; flex: 1; padding-bottom: 5rem; }
.hero h1 { max-width: 12ch; color: var(--hero-h1-color); }
.hero-intro { max-width: 41rem; margin-top: 1.75rem; color: var(--hero-text-color); font-size: clamp(1.05rem, 1.8vw, 1.3rem); }
.hero-visual { position: relative; min-height: 28rem; }
.orb { position: absolute; border-radius: 50%; filter: saturate(1.1); }
.orb-one { top: 2%; right: 0; width: min(27vw, 22rem); aspect-ratio: 1; background: var(--tertiary-color); }
.orb-two { right: 35%; bottom: 0; width: min(20vw, 15rem); aspect-ratio: 1; background: #b4c9ff; }
.hero-card { position: absolute; right: 2rem; bottom: 1rem; display: flex; width: min(24rem, 90%); min-height: 18rem; flex-direction: column; justify-content: space-between; padding: 2rem; border-radius: var(--radius-xl); color: #fff; background: var(--primary-color); box-shadow: var(--shadow-lg); transform: rotate(-5deg); }
.hero-card span { font-size: .7rem; letter-spacing: .2em; }.hero-card strong { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.05em; }.hero-card i { align-self: flex-end; font-size: 2rem; }
.hero-marquee { position: relative; display: flex; width: 100%; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; justify-content: center; padding: 1.25rem var(--container-padding); color: #fff; background: var(--secondary-color); font-size: var(--font-size-sm); font-weight: 700; letter-spacing: .15em; white-space: nowrap; }
.hero-marquee i { color: var(--tertiary-color); font-style: normal; }

/* Tarjetas y secciones demo */
.intro-section h2 { max-width: 17ch; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.card { position: relative; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgb(255 255 255 / 18%); border-radius: var(--radius-lg); background: rgb(255 255 255 / 5%); }
.service-card { display: flex; min-height: 25rem; flex-direction: column; }
.service-card.featured { color: var(--text-color); background: var(--tertiary-color); transform: translateY(-1.5rem); }
.service-card.featured h3 { color: var(--heading-color); }.service-card.featured p { color: #3f4a3f; }
.card-number { align-self: flex-end; font-size: var(--font-size-xs); opacity: .65; }
.service-icon { margin-block: auto 1.5rem; font-size: 2.5rem; }
.service-card p { margin-top: 1rem; color: #acbbb5; }
.card-link { display: grid; width: 2.8rem; aspect-ratio: 1; margin-top: 1.5rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
.card-link:hover { color: var(--secondary-color); background: #fff; transform: rotate(45deg); }
.process-section { background: var(--surface-color); }
.process-section .section-heading { grid-template-columns: 1fr 3fr; }
.process-list { border-top: 1px solid var(--border-color); }
.process-item { display: grid; grid-template-columns: .5fr 1.3fr 2fr auto; gap: var(--column-gap); align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--border-color); transition: padding var(--transition-normal), background var(--transition-normal); }
.process-item:hover { padding-inline: 1.25rem; background: var(--bg-color); }
.process-item span { color: var(--primary-color); font-size: var(--font-size-sm); }.process-item p { color: var(--text-muted); }.process-item > i { font-size: 1.5rem; }
.stats-section { padding-block: 4rem; color: #fff; background: var(--primary-color); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { display: flex; flex-direction: column; padding-left: 2rem; border-left: 1px solid rgb(255 255 255 / 35%); }
.stat strong { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.06em; }.stat span { margin-top: .75rem; font-size: var(--font-size-sm); }
.contact-section { color: #d7ded9; background: var(--secondary-color); }
.contact-section h2 { color: #fff; }.contact-section > .col { align-items: flex-start; }
.contact-section .col-50 > p:not(.eyebrow) { max-width: 32rem; margin-top: 1.5rem; color: #acbbb5; }
.contact-email { margin-top: 2rem; color: var(--tertiary-color); font-size: clamp(1.2rem, 2vw, 1.6rem); border-bottom: 1px solid; }
.contact-form { display: flex; flex-direction: column; gap: 1.5rem; padding: 2rem; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.field { display: flex; flex-direction: column; gap: .55rem; }.field label { color: var(--heading-color); font-size: var(--font-size-sm); font-weight: 600; }
.field input, .field textarea { width: 100%; padding: .9rem 0; border: 0; border-bottom: 1px solid var(--border-color); border-radius: 0; color: var(--text-color); background: transparent; resize: vertical; }
.contact-form .btn { align-self: flex-start; border: 0; }

/* Pie compartido */
footer { min-height: var(--footer-min-height); padding: 5rem 0 2rem; color: var(--footer-text-color); background: var(--footer-bg-color); }
.footer-main { display: flex; padding-bottom: 4rem; }.footer-main .col-40 { padding-right: 7%; }.footer-main p { max-width: 30rem; margin-top: 1.25rem; color: #9eaaa6; }
.footer-main h4 { margin-bottom: 1.25rem; color: #fff; font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; }
.footer-main .col-20 a { display: block; margin-bottom: .65rem; color: #b9c3bf; }.footer-main a:hover { color: var(--tertiary-color); }
.social-links { display: flex; flex-direction: column; gap: .65rem; }
.social-links a { display: flex !important; align-items: center; gap: .65rem; margin: 0 !important; }
.social-links i { display: grid; width: 2rem; aspect-ratio: 1; place-items: center; border: 1px solid rgb(255 255 255 / 18%); border-radius: 50%; }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 2rem; border-top: 1px solid rgb(255 255 255 / 14%); color: #7f8d88; font-size: var(--font-size-xs); }

/* Volver arriba */
#arriba { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 900; display: grid; width: 3rem; aspect-ratio: 1; place-items: center; border: 0; border-radius: 50%; color: #fff; background: var(--primary-color); box-shadow: var(--shadow-md); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(.75rem); transition: var(--transition-normal); }
#arriba.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.whatsapp-float { position: fixed; right: 1.25rem; bottom: 5rem; z-index: 900; display: flex; min-height: 3rem; align-items: center; gap: .55rem; padding: .75rem 1rem; border-radius: var(--radius-full); color: #fff; background: #25d366; box-shadow: var(--shadow-md); font-size: var(--font-size-sm); font-weight: 700; }
.whatsapp-float i { display: inline-flex; font-size: 1.35rem; }
.whatsapp-float:hover { color: #fff; background: #1eaf55; transform: translateY(-2px); }

/* Páginas interiores de demostración */
.page-hero { position: relative; overflow: hidden; padding-block: clamp(6rem, 12vw, 10rem); background: var(--surface-color); }
.page-hero::after { position: absolute; top: -8rem; right: -6rem; width: min(40vw, 32rem); aspect-ratio: 1; border-radius: 50%; content: ''; background: var(--tertiary-color); opacity: .7; }
.page-hero .col { position: relative; z-index: 1; }
.page-hero h1 { max-width: 14ch; }
.page-intro { max-width: 42rem; margin-top: 2rem; color: var(--text-muted); font-size: clamp(1.1rem, 2vw, 1.35rem); }
.page-hero-dark { color: #d7ded9; background: var(--secondary-color); }.page-hero-dark h1 { color: #fff; }.page-hero-dark::after { background: #b4c9ff; }
.page-hero-contact::after { background: var(--primary-color); opacity: .85; }
.abstract-panel { display: flex; min-height: 30rem; flex-direction: column; justify-content: flex-end; padding: 2rem; border-radius: var(--radius-xl); color: #fff; background: var(--primary-color); transform: rotate(-2deg); }
.abstract-panel span { font-size: clamp(5rem, 10vw, 9rem); font-weight: 700; line-height: .8; letter-spacing: -.08em; }.abstract-panel p { margin-top: 1.5rem; font-weight: 600; }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.value-card { min-height: 18rem; padding: 2rem; border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--bg-color); }
.value-card span { color: var(--primary-color); font-size: var(--font-size-sm); }.value-card h3 { margin-top: 5rem; }.value-card p { margin-top: 1rem; color: var(--text-muted); }
.mini-cta { color: #fff; background: var(--secondary-color); }.mini-cta h2 { margin-bottom: 2rem; color: #fff; }.mini-cta .eyebrow { color: var(--tertiary-color); }
.detail-list { border-top: 1px solid var(--border-color); }
.detail-row { display: grid; grid-template-columns: .35fr .5fr 3fr; gap: var(--column-gap); padding-block: 3.5rem; border-bottom: 1px solid var(--border-color); }
.detail-row > span { color: var(--primary-color); }.detail-row > i { font-size: 2.25rem; }.detail-row h2 { margin-bottom: 1rem; }.detail-row p { max-width: 43rem; color: var(--text-muted); }
.detail-row ul { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; list-style: none; }.detail-row li { padding: .55rem .9rem; border: 1px solid var(--border-color); border-radius: var(--radius-full); font-size: var(--font-size-sm); }
.process-page { background: var(--surface-color); }.timeline-item { display: grid; grid-template-columns: .7fr 2.5fr .5fr; gap: var(--column-gap); align-items: center; padding-block: 4rem; border-bottom: 1px solid var(--border-color); }
.timeline-number { color: var(--primary-color); font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 700; letter-spacing: -.07em; }.timeline-item > i { color: var(--secondary-color); font-size: 3rem; }.timeline-item .lead { max-width: 42rem; margin-bottom: 0; }
.contact-page { background: var(--bg-color); }.contact-data { display: flex; flex-direction: column; gap: 2rem; margin-top: 3rem; }.contact-data > div { display: grid; grid-template-columns: auto 1fr; gap: .2rem 1rem; }.contact-data i { grid-row: 1 / 3; color: var(--primary-color); font-size: 1.5rem; }.contact-data span { color: var(--text-muted); font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: .1em; }.contact-data a, .contact-data p { font-weight: 600; }
.field select { width: 100%; padding: .9rem 0; border: 0; border-bottom: 1px solid var(--border-color); color: var(--text-color); background: transparent; }

/* Biblioteca de componentes frecuentes */
.breadcrumbs { margin-bottom: 3rem; }.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .6rem; color: var(--text-muted); font-size: var(--font-size-sm); list-style: none; }.breadcrumbs li + li::before { margin-right: .6rem; content: '/'; opacity: .5; }.breadcrumbs a:hover { color: var(--primary-color); }
.component-section { border-bottom: 1px solid var(--border-color); }.component-heading { display: grid; grid-template-columns: 5rem 1fr; gap: var(--column-gap); margin-bottom: 3rem; }.component-heading > span { color: var(--primary-color); font-size: var(--font-size-sm); }.component-heading .eyebrow { margin-bottom: .75rem; }.component-stage { padding: clamp(1.5rem, 4vw, 3rem); border: 1px dashed var(--border-color); border-radius: var(--radius-lg); background: var(--surface-color); }
.foundation-block { padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--surface-color); }.foundation-title { margin-bottom: 2rem; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }.foundation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--column-gap); margin-top: var(--column-gap); }.type-scale { border-top: 1px solid var(--border-color); }.type-sample { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; align-items: baseline; padding-block: 1.5rem; border-bottom: 1px solid var(--border-color); }.type-sample > span { color: var(--text-muted); font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .12em; }.type-sample h1 { font-size: clamp(2.5rem, 5vw, 5rem); }.type-sample h2 { font-size: clamp(2rem, 4vw, 3.5rem); }.text-samples { display: grid; gap: 1.5rem; }.text-samples .lead { margin: 0; }.text-small { font-size: var(--font-size-sm); }.text-muted { color: var(--text-muted); }.inline-link { color: var(--primary-color); text-decoration: underline; text-underline-offset: .2em; }.text-samples .eyebrow { margin: 0; }.color-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }.color-swatch { display: grid; grid-template-columns: 3.5rem 1fr; grid-template-rows: repeat(3, auto); column-gap: .8rem; align-items: center; }.color-swatch > span { grid-row: 1 / 4; width: 3.5rem; aspect-ratio: 1; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--swatch); }.color-swatch small, .color-swatch code { color: var(--text-muted); font-size: .7rem; }.color-swatch code { font-family: ui-monospace, monospace; }
.contrast-foundation { margin-top: var(--column-gap); }.contrast-intro { max-width: 48rem; margin: -1rem 0 2rem; }.contrast-intro code { padding: .15rem .35rem; border-radius: var(--radius-sm); background: var(--surface-hover); font-family: ui-monospace, monospace; font-size: .85em; }.contrast-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--column-gap); }.theme-preview { overflow: hidden; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--theme-border); border-radius: var(--radius-lg); }.theme-label { display: block; margin-bottom: 1rem; color: var(--theme-muted); font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.theme-palette { display: flex; gap: .45rem; margin-bottom: 2rem; }.theme-palette i { width: 2.25rem; aspect-ratio: 1; border: 1px solid var(--theme-border); border-radius: 50%; background: var(--swatch); }.theme-preview .theme-surface { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid; border-radius: var(--radius-md); }.theme-preview .eyebrow { margin-bottom: 1rem; color: var(--theme-accent); }.theme-preview h3 { margin-bottom: 1rem; }.theme-preview p + p { margin-top: 1rem; }.theme-preview .button-row { margin-top: 1.5rem; }
.button-showcase { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }.btn-dark { color: #fff; background: var(--secondary-color); }.btn-dark:hover { color: #fff; background: var(--secondary-hover); }.btn:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.alert-stack { display: grid; gap: 1rem; }.alert { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: start; padding: 1.2rem; border: 1px solid; border-radius: var(--radius-md); }.alert > i { margin-top: .15rem; font-size: 1.25rem; }.alert p { margin-top: .2rem; font-size: var(--font-size-sm); }.alert-info { color: #164e63; border-color: #a5e5ef; background: #ecfeff; }.alert-success { color: #14532d; border-color: #a7e4bc; background: #f0fdf4; }.alert-warning { color: #713f12; border-color: #f5d48b; background: #fffbeb; }.alert-close { border: 0; color: currentColor; background: transparent; font-size: 1.5rem; cursor: pointer; }
.general-card-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: var(--column-gap); }.general-card { overflow: hidden; border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--surface-color); box-shadow: var(--shadow-sm); }.card-placeholder { display: grid; min-height: 13rem; place-items: center; color: var(--secondary-color); background: linear-gradient(135deg, var(--tertiary-color), #b4c9ff); font-size: 2rem; }.general-card-body { padding: 1.5rem; }.general-card-body h3 { margin-block: 1rem .75rem; }.general-card-body p { margin-bottom: 1.5rem; color: var(--text-muted); }.tag { display: inline-flex; padding: .35rem .7rem; border-radius: var(--radius-full); color: var(--secondary-color); background: rgb(201 255 86 / 45%); font-size: var(--font-size-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.horizontal-card { display: grid; grid-template-columns: 1fr 1.2fr; }.horizontal-card .card-placeholder { min-height: 100%; }
.testimonial { max-width: 60rem; margin-inline: auto; }.testimonial blockquote { color: #fff; font-size: clamp(1.8rem, 4vw, 3.5rem); line-height: 1.25; letter-spacing: -.04em; }.testimonial figcaption { display: flex; gap: 1rem; align-items: center; margin-top: 2.5rem; }.testimonial figcaption div { display: flex; flex-direction: column; }.testimonial small { color: #acbbb5; }.avatar { display: grid; width: 3.25rem; aspect-ratio: 1; place-items: center; border-radius: 50%; color: var(--secondary-color); background: var(--tertiary-color); font-weight: 700; }
.accordion { border-top: 1px solid var(--border-color); }.accordion-item { border-bottom: 1px solid var(--border-color); }.accordion-trigger { display: flex; width: 100%; align-items: center; justify-content: space-between; padding-block: 1.5rem; border: 0; color: var(--heading-color); background: transparent; font-size: var(--font-size-lg); font-weight: 600; text-align: left; cursor: pointer; }.accordion-trigger i { transition: transform var(--transition-normal); }.accordion-trigger[aria-expanded="true"] i { transform: rotate(45deg); }.accordion-panel { max-width: 50rem; padding: 0 3rem 1.5rem 0; color: var(--text-muted); }
.modal { width: min(90%, 35rem); padding: clamp(1.5rem, 4vw, 3rem); border: 0; border-radius: var(--radius-lg); color: var(--text-color); background: var(--surface-color); box-shadow: var(--shadow-lg); }.modal::backdrop { background: rgb(13 31 27 / 72%); backdrop-filter: blur(5px); }.modal h2 { margin-bottom: 1.25rem; }.modal-close { position: absolute; top: 1rem; right: 1rem; display: grid; width: 2.5rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--border-color); border-radius: 50%; background: transparent; font-size: 1.4rem; cursor: pointer; }
.cookie-banner { position: fixed; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; z-index: 1200; display: flex; width: min(calc(100% - 2.5rem), 70rem); margin-inline: auto; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--surface-color); box-shadow: var(--shadow-lg); }.cookie-banner[hidden] { display: none; }.cookie-banner p { margin-top: .3rem; color: var(--text-muted); font-size: var(--font-size-sm); }.cookie-actions { display: flex; flex-shrink: 0; gap: .5rem; }

/* Páginas legales y estados estructurales */
.legal-hero { padding-block: clamp(4rem, 8vw, 7rem); background: var(--surface-color); }.legal-hero-inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }.legal-hero h1 { max-width: 15ch; }.legal-hero-inner > i { color: var(--primary-color); font-size: clamp(4rem, 10vw, 8rem); opacity: .9; }.legal-section { background: var(--bg-color); }.legal-layout { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }.legal-nav { position: sticky; top: calc(var(--navbar-height) + 2rem); display: flex; flex-direction: column; gap: .8rem; padding: 1.25rem; border-left: 2px solid var(--primary-color); }.legal-nav strong { margin-bottom: .5rem; }.legal-nav a { color: var(--text-muted); font-size: var(--font-size-sm); }.legal-nav a:hover { color: var(--primary-color); }.legal-content { max-width: 52rem; }.legal-content > section { padding-block: 2.5rem; border-bottom: 1px solid var(--border-color); scroll-margin-top: calc(var(--navbar-height) + 2rem); }.legal-content h2 { margin-bottom: 1.25rem; font-size: clamp(1.65rem, 3vw, 2.3rem); }.legal-content p, .legal-content li { color: #4f5955; line-height: var(--line-height-relaxed); }.legal-content ul { display: grid; gap: .5rem; margin: 1.25rem 0 0 1.25rem; }.legal-content a { color: var(--primary-color); text-decoration: underline; text-underline-offset: .2em; }.legal-note { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.25rem; border: 1px solid #f5d48b; border-radius: var(--radius-md); color: #713f12; background: #fffbeb; }.legal-note i { font-size: 1.25rem; }.legal-note p { color: inherit; }.cookie-types { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.5rem; }.cookie-types article { padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--surface-color); }.cookie-types p { margin-top: .5rem; font-size: var(--font-size-sm); }.table-wrapper { overflow-x: auto; margin-top: 1.5rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); }.legal-content table { width: 100%; border-collapse: collapse; min-width: 38rem; }.legal-content th, .legal-content td { padding: 1rem; border-bottom: 1px solid var(--border-color); text-align: left; }.legal-content th { background: var(--surface-hover); font-size: var(--font-size-sm); }.legal-content td { color: #4f5955; font-size: var(--font-size-sm); }
.status-page { position: relative; display: grid; min-height: calc(100svh - var(--navbar-height)); place-items: center; overflow: hidden; padding-block: clamp(5rem, 10vw, 8rem); background: var(--surface-color); }.status-content { position: relative; z-index: 1; text-align: center; }.status-content h1 { max-width: 14ch; margin-inline: auto; }.status-content .page-intro { margin-inline: auto; }.status-content .button-row { justify-content: center; }.status-code { color: var(--primary-color); font-size: clamp(6rem, 18vw, 14rem); font-weight: 700; line-height: .72; letter-spacing: -.1em; opacity: .14; }.status-orb { position: absolute; top: 10%; right: -8rem; width: min(40vw, 30rem); aspect-ratio: 1; border-radius: 50%; background: var(--tertiary-color); }.success-page .status-orb { right: auto; left: -8rem; background: #b4c9ff; }.success-icon { display: grid; width: 5rem; aspect-ratio: 1; margin: 0 auto 2rem; place-items: center; border-radius: 50%; color: #fff; background: var(--primary-color); font-size: 2rem; box-shadow: var(--shadow-md); }.next-steps { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 52rem; margin: 3rem auto; text-align: left; }.next-steps > div { padding: 1.25rem; border-left: 1px solid var(--border-color); }.next-steps span { color: var(--primary-color); font-size: var(--font-size-sm); font-weight: 700; }.next-steps p { margin-top: .5rem; color: var(--text-muted); }

/* Documentación web */
.docs-hero { padding-block: clamp(6rem, 11vw, 9rem); }.docs-hero h1 { max-width: 15ch; }.docs-hero .page-intro { color: var(--dark-muted); }.docs-hero .breadcrumbs { color: var(--dark-muted); }.docs-meta { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 3rem; color: var(--dark-muted); font-size: var(--font-size-sm); }.docs-meta span { display: flex; align-items: center; gap: .55rem; }.docs-meta i { color: var(--dark-link); }
.docs-section { background: var(--bg-color); }.docs-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }.docs-nav { position: sticky; top: calc(var(--navbar-height) + 1.5rem); display: flex; max-height: calc(100svh - var(--navbar-height) - 3rem); flex-direction: column; gap: .35rem; overflow-y: auto; padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--surface-color); }.docs-nav strong { margin-bottom: .75rem; }.docs-nav a { padding: .45rem .65rem; border-radius: var(--radius-sm); color: var(--text-muted); font-size: var(--font-size-sm); }.docs-nav a:hover { color: var(--primary-color); background: var(--surface-hover); }
.docs-content { min-width: 0; max-width: 57rem; }.docs-content > section { padding-block: 1rem 5rem; scroll-margin-top: calc(var(--navbar-height) + 2rem); }.docs-content > section + section { padding-top: 5rem; border-top: 1px solid var(--border-color); }.docs-content h2 { margin-bottom: 1.5rem; }.docs-content h3 { margin-block: 2rem 1rem; }.docs-content p { max-width: 48rem; }.docs-content code { padding: .15rem .35rem; border-radius: .25rem; color: #b52f13; background: #f2eae0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .88em; }.docs-overline { margin-bottom: .75rem; color: var(--primary-color); font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.docs-principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.5rem; }.docs-principles article { padding: 1.5rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--surface-color); }.docs-principles span { color: var(--primary-color); font-size: var(--font-size-sm); font-weight: 700; }.docs-principles h3 { margin: 2.5rem 0 .75rem; }.docs-principles p { color: var(--text-muted); font-size: var(--font-size-sm); }
.docs-callout { display: grid; grid-template-columns: auto 1fr; gap: 1rem; margin-top: 2rem; padding: 1.25rem; border-left: 3px solid var(--tertiary-color); border-radius: 0 var(--radius-md) var(--radius-md) 0; background: var(--secondary-color); color: #e6ede9; }.docs-callout i { color: var(--tertiary-color); font-size: 1.4rem; }.docs-callout-dark { border-color: var(--primary-color); background: var(--footer-bg-color); }.docs-callout-dark i { color: var(--primary-color); }
.docs-steps { display: grid; gap: 0; margin-top: 2rem; list-style: none; }.docs-steps li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--border-color); }.docs-steps li > span { display: grid; width: 2.25rem; aspect-ratio: 1; place-items: center; border-radius: 50%; color: var(--secondary-color); background: var(--tertiary-color); font-weight: 700; }.docs-steps p { margin-top: .3rem; color: var(--text-muted); }
.docs-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-block: 2rem 3rem; }.docs-config-grid article { display: flex; flex-direction: column; padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--surface-color); }.docs-config-grid i { margin-bottom: 1rem; color: var(--primary-color); font-size: 1.5rem; }.docs-config-grid h3 { margin: 0 0 .75rem; }.docs-config-grid code { align-self: flex-start; margin-top: .35rem; }
.docs-code { overflow: hidden; margin-block: 1.5rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: var(--radius-md); background: #10231f; box-shadow: var(--shadow-sm); }.docs-code-head { display: flex; justify-content: space-between; padding: .75rem 1rem; border-bottom: 1px solid rgb(255 255 255 / 12%); color: #aebdb8; font-size: var(--font-size-xs); }.docs-code pre { overflow-x: auto; padding: 1.25rem; }.docs-code code { padding: 0; color: #dce8e3; background: transparent; font-size: var(--font-size-sm); line-height: 1.65; white-space: pre; }
.docs-table-wrap { overflow-x: auto; margin-block: 2rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); }.docs-table { width: 100%; min-width: 40rem; border-collapse: collapse; background: var(--surface-color); }.docs-table th, .docs-table td { padding: 1rem; border-bottom: 1px solid var(--border-color); text-align: left; vertical-align: top; }.docs-table th { background: var(--surface-hover); font-size: var(--font-size-sm); }.docs-table td { color: var(--text-muted); }
.docs-tree { display: flex; flex-direction: column; margin-block: 2rem; padding: 1.5rem; border-radius: var(--radius-md); color: #dce8e3; background: #10231f; }.docs-tree code { padding: .12rem 0; color: inherit; background: transparent; }.docs-file-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.docs-file-list article { padding: 1.25rem; border-left: 2px solid var(--primary-color); background: var(--surface-color); }.docs-file-list p { margin-top: .4rem; color: var(--text-muted); font-size: var(--font-size-sm); }
.docs-numbered { display: grid; gap: .8rem; margin: 1.5rem 0 2rem 1.25rem; }.docs-numbered li { padding-left: .5rem; }.docs-tags { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 2rem; }.docs-tags span { padding: .55rem .9rem; border: 1px solid var(--border-color); border-radius: var(--radius-full); background: var(--surface-color); font-size: var(--font-size-sm); }
.docs-check-list { display: grid; gap: .75rem; list-style: none; }.docs-check-list li { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; padding-bottom: .75rem; border-bottom: 1px solid var(--border-color); }.docs-check-list i { color: var(--primary-color); }
.docs-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.docs-check-grid article { display: flex; flex-direction: column; gap: .75rem; padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--surface-color); }.docs-check-grid h3 { margin: 0 0 .5rem; }.docs-check-grid label { display: flex; gap: .6rem; align-items: flex-start; color: var(--text-muted); font-size: var(--font-size-sm); }.docs-check-grid input { width: 1rem; height: 1rem; margin-top: .15rem; accent-color: var(--primary-color); }
.docs-flow { display: flex; align-items: center; gap: .75rem; margin-block: 2rem; }.docs-flow span { padding: .8rem 1rem; border: 1px solid var(--border-color); border-radius: var(--radius-full); background: var(--surface-color); font-size: var(--font-size-sm); text-align: center; }.docs-flow i { color: var(--primary-color); }.docs-ending { margin-top: 3rem; font-size: var(--font-size-xl); }

@media (max-width: 64rem) {
  .menu-toggle { display: block; }
  .nav-menu-wrapper { position: fixed; top: var(--navbar-height); right: 0; display: flex; width: min(100%, var(--navbar-menu-width)); height: calc(100dvh - var(--navbar-height)); flex-direction: column; align-items: stretch; justify-content: flex-start; padding: 2rem; background: var(--surface-color); box-shadow: var(--shadow-lg); transform: translateX(105%); transition: transform var(--transition-normal); }
  .nav-menu-wrapper.active { transform: translateX(0); }.nav-menu { flex-direction: column; align-items: stretch; gap: .5rem; }.nav-link { width: 100%; font-size: 1.2rem; }
  .menu-toggle[aria-expanded="true"] .hamburger { background: transparent; }.menu-toggle[aria-expanded="true"] .hamburger::before { transform: translateY(0) rotate(45deg); }.menu-toggle[aria-expanded="true"] .hamburger::after { transform: translateY(-2px) rotate(-45deg); }
  .hero-copy { width: 62%; }.hero-visual { width: 38%; }.hero-card { right: 0; }.orb-one { width: 20rem; }
  .section-heading { grid-template-columns: 1fr 2fr; }.section-heading p:last-child { grid-column: 2; }
  .docs-layout { grid-template-columns: 12rem minmax(0, 1fr); gap: 2.5rem; }.docs-principles { grid-template-columns: 1fr; }.docs-flow { align-items: stretch; flex-direction: column; }.docs-flow i { align-self: center; transform: rotate(90deg); }
}

@media (max-width: 40rem) {
  :root { --navbar-height: 4.75rem; --section-padding: 5rem; }
  .two-column, .hero-layout, .contact-layout, .grid-stretch, .footer-main { flex-direction: column; }
  .col-20, .col-25, .col-30, .col-33, .col-40, .col-50, .col-60, .col-70, .col-75, .col-80 { width: 100%; }
  .hero { min-height: auto; padding-top: 4rem; }.hero-layout { display: block; }.hero h1 { font-size: clamp(3.2rem, 15vw, 5rem); }.hero-visual { min-height: 22rem; margin-top: 3rem; }.orb-one { width: 17rem; }.orb-two { width: 11rem; }.hero-card { right: 1rem; width: 16rem; min-height: 14rem; }.hero-marquee { justify-content: flex-start; overflow: hidden; }
  .section-heading, .process-section .section-heading { display: block; }.section-heading h2 { margin-bottom: 1rem; }
  .service-grid { grid-template-columns: 1fr; }.service-card { min-height: 21rem; }.service-card.featured { transform: none; }
  .process-item { grid-template-columns: auto 1fr auto; }.process-item p { grid-column: 2 / -1; }.process-item > i { grid-row: 1; grid-column: 3; }
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 1rem; }.stat { padding-left: 1rem; }
  .contact-form { padding: 1.5rem; }.footer-main { gap: 2.5rem; }.footer-main .col-40 { padding-right: 0; }.footer-bottom { gap: 1rem; flex-direction: column; }
  .whatsapp-float { width: 3rem; padding: 0; justify-content: center; }.whatsapp-float span { display: none; }
  .page-hero::after { top: auto; right: -5rem; bottom: -7rem; width: 18rem; }.page-hero h1 { font-size: clamp(3.1rem, 14vw, 5rem); }
  .values-grid { grid-template-columns: 1fr; }.value-card { min-height: 14rem; }.value-card h3 { margin-top: 3rem; }
  .detail-row { grid-template-columns: auto 1fr; }.detail-row > i { grid-row: 1; grid-column: 2; }.detail-row > div { grid-column: 1 / -1; }
  .timeline-item { grid-template-columns: 1fr auto; }.timeline-item > div:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }.timeline-item > i { grid-row: 1; grid-column: 2; }
  .component-heading { grid-template-columns: 2.5rem 1fr; }.general-card-grid { grid-template-columns: 1fr; }.horizontal-card { grid-template-columns: 1fr; }.horizontal-card .card-placeholder { min-height: 13rem; }.cookie-banner { flex-direction: column; align-items: stretch; }.cookie-actions { flex-direction: column; }.cookie-actions .btn { width: 100%; }
  .foundation-grid { grid-template-columns: 1fr; }.type-sample { grid-template-columns: 2.5rem 1fr; }.color-grid { grid-template-columns: 1fr; }
  .contrast-grid { grid-template-columns: 1fr; }
  .legal-hero-inner { align-items: flex-start; }.legal-hero-inner > i { font-size: 3.5rem; }.legal-layout { grid-template-columns: 1fr; }.legal-nav { position: static; display: none; }.cookie-types { grid-template-columns: 1fr; }.next-steps { grid-template-columns: 1fr; }.status-orb { width: 18rem; }
  .docs-layout { grid-template-columns: 1fr; }.docs-nav { position: static; display: none; }.docs-content > section { padding-bottom: 4rem; }.docs-content > section + section { padding-top: 4rem; }.docs-config-grid, .docs-file-list, .docs-check-grid { grid-template-columns: 1fr; }.docs-principles { grid-template-columns: 1fr; }.docs-meta { flex-direction: column; gap: .75rem; }
}

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

/* TES Asesores — identidad y composiciones de la landing. */
:root{--primary-color:#a60916;--primary-hover:#810712;--secondary-color:#202123;--secondary-hover:#303135;--tertiary-color:#b92330;--bg-color:#fff;--bg-navbar:rgb(255 255 255 / 97%);--surface-color:#f5f5f3;--surface-hover:#eeeeeb;--text-color:#303134;--heading-color:#202123;--text-muted:#626368;--border-color:#dededc;--hero-h1-color:#202123;--hero-text-color:#626368;--footer-bg-color:#202123;--footer-text-color:#fff;--light-bg:#fff;--light-surface:#f5f5f3;--light-heading:#202123;--light-text:#303134;--light-muted:#626368;--light-link:#a60916;--light-accent:#a60916;--dark-bg:#202123;--dark-surface:#303135;--dark-text:#eee;--dark-muted:#bdbdc1;--dark-link:#fff;--dark-accent:#fff;--navbar-height:6rem;--section-padding:6.5rem;--radius-full:3px}
.nav-logo img{width:99px;height:auto}.nav-menu{gap:2rem}.nav-link{font-size:.88rem}.btn-contact{background:var(--primary-color);border-radius:3px}.btn,.btn-contact{gap:1.25rem}.btn-primary:hover{background:var(--primary-hover)}.tes-link{display:inline-flex;align-items:center;gap:1.25rem;font-size:.88rem;font-weight:600;border-bottom:1px solid var(--border-color);padding-bottom:.4rem}.tes-link:hover{color:var(--primary-color)}.eyebrow{font-size:.68rem;letter-spacing:.16em;margin-bottom:1.4rem}h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.14;letter-spacing:-.045em}em{font-family:Georgia,serif;font-weight:400}.tes-hero{background:#f7f7f5;padding-top:4.5rem}.tes-hero-grid{display:grid;grid-template-columns:1.22fr 1fr;gap:4.5rem;align-items:center}.tes-hero h1{font-size:clamp(2.9rem,4.7vw,4.35rem);line-height:1.08;letter-spacing:-.045em;font-weight:500}.tes-hero-sub{max-width:31rem;margin-top:1.8rem;font-size:1.15rem;font-weight:500;line-height:1.5}.tes-hero-description{max-width:34rem;color:var(--text-muted);font-size:.93rem;line-height:1.8}.tes-hero .button-row{margin-top:2rem;gap:1.5rem;flex-wrap:wrap}.tes-hero .btn{font-size:.88rem}.hero-bottom{display:flex;justify-content:space-between;margin-top:3.5rem;padding-block:1.4rem;border-top:1px solid var(--border-color);font-size:.72rem;color:var(--text-muted)}.hero-bottom a{display:flex;gap:1.5rem}.tes-art{position:relative;height:510px;overflow:hidden;background:#e7e7e3;isolation:isolate}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#bdbdb633 1px,transparent 1px),linear-gradient(90deg,#bdbdb633 1px,transparent 1px);background-size:55px 55px;transform:skewY(-20deg) scale(1.4);opacity:.7}.art-label{position:absolute;top:30px;left:30px;font-size:.63rem;letter-spacing:.18em;line-height:1.8;color:#57595b}.pillar{position:absolute;bottom:90px;width:96px;transform:skewY(-20deg);box-shadow:22px 25px 30px #24252820}.pillar:before{content:'';position:absolute;top:0;left:100%;height:100%;width:36px;transform:skewY(40deg);transform-origin:left top;background:#74787c}.pillar:after{content:'';position:absolute;left:0;bottom:100%;width:100%;height:30px;transform:skewX(50deg);transform-origin:bottom left;background:#d8d9d7}.pillar-one{left:11%;height:140px;background:linear-gradient(90deg,#b5b7b7,#e6e7e3)}.pillar-two{left:37%;height:235px;background:linear-gradient(90deg,#6e7378,#a7aaab);z-index:1}.pillar-two:after{background:#bbbdbb}.pillar-two:before{background:#55595d}.pillar-three{left:63%;height:330px;background:linear-gradient(90deg,#8f0914,#bc1423);z-index:2}.pillar-three:before{background:#6c0610}.pillar-three:after{background:#cf3944}.art-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:22px 28px;background:var(--secondary-color);color:white;font-size:.87rem;line-height:1.7;z-index:3}.art-caption strong{font-weight:500}.art-arrow{font-size:2.3rem}.tes-section-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:5rem;align-items:end;margin-bottom:3rem}.tes-section-heading>p{max-width:29rem;color:var(--text-muted);font-size:.95rem;line-height:1.8}.tes-service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border-color);border-left:1px solid var(--border-color)}.tes-service{padding:2rem;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);transition:background .2s}.tes-service:hover{background:var(--surface-color)}.service-index{font-size:.73rem;color:var(--primary-color)}.tes-service h3{font-size:1.28rem;line-height:1.3;margin:1.6rem 0 1rem;letter-spacing:-.025em;max-width:18rem}.tes-service p,.tes-service li{font-size:.87rem;color:var(--text-muted);line-height:1.8}.tes-service ul{margin:.75rem 0 .75rem 1rem}.tes-control{background:var(--secondary-color);color:#c1c2c5}.tes-control-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:6rem}.tes-control h2,.tes-control h3{color:#fff}.tes-control .eyebrow{color:#d1a4a7}.tes-control em{color:#dedbd6}.tes-control-grid>div>p:not(.eyebrow){max-width:26rem;font-size:.95rem;line-height:1.85;margin:1.5rem 0 2rem}.tes-control .tes-link{color:#fff;border-color:#626368}.tes-audit{display:grid;grid-template-columns:2rem 1fr 1rem;gap:1rem;padding:1.5rem 0;border-bottom:1px solid #ffffff30}.tes-audit:first-child{padding-top:0}.tes-audit>span{font-size:.75rem;color:#c6a2a5}.tes-audit h3{font-size:1.3rem;margin-bottom:.75rem}.tes-audit p{font-size:.88rem;line-height:1.8}.tes-about{display:grid;grid-template-columns:1fr 1.15fr;gap:6rem;align-items:center}.tes-about h2{margin-bottom:1.75rem}.tes-about>div>p:not(.eyebrow){font-size:.91rem;line-height:1.85;color:var(--text-muted)}.tes-manifesto{background:#f0f0ed;padding:3rem;min-height:480px;display:flex;flex-direction:column;justify-content:center}.tes-about .tes-manifesto p{font-size:2.2rem;line-height:1.35;letter-spacing:-.03em;color:var(--heading-color)}.manifesto-rule{display:block;width:3rem;height:2px;background:var(--primary-color);margin:2rem 0}.tes-manifesto small{font-size:.6rem;letter-spacing:.12em}.tes-sectors{background:var(--surface-color)}.tes-sector-grid{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;column-gap:2.5rem}.tes-sector-grid li{display:flex;gap:1rem;align-items:center;padding:1.3rem 0;border-bottom:1px solid var(--border-color);font-size:.88rem}.tes-sector-grid span:first-child{font-size:.65rem;color:var(--primary-color)}.tes-sector-grid span:last-child{margin-left:auto;color:var(--text-muted)}.sector-note{margin-top:2rem;max-width:48rem;color:var(--text-muted);font-size:.86rem;line-height:1.8}.tes-contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:7rem}.tes-contact h2{font-size:clamp(3rem,5vw,4.5rem)}.tes-contact-grid>div>p:not(.eyebrow){max-width:29rem;margin:1.5rem 0 2rem;color:var(--text-muted);line-height:1.8}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.contact-details>div:nth-child(n+3){grid-column:1/-1}.contact-details>div>span{display:block;font-size:.65rem;letter-spacing:.14em;color:var(--text-muted);margin-bottom:.6rem}.contact-details>div>a:not(.map-link){font-size:1.3rem}.contact-details p{font-size:.92rem;max-width:24rem}.map-link{display:inline-block;color:var(--primary-color);font-size:.8rem;margin-top:.75rem}.tes-footer{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:3rem;align-items:center;padding-bottom:3rem}.footer-brand{font-family:Georgia,serif;font-size:2.8rem;font-weight:400}.footer-brand span{font-family:var(--font-sans);font-size:.65rem;letter-spacing:.14em}.tes-footer p{color:#bdbdc1;font-size:.8rem;max-width:20rem}.tes-footer>a{font-size:.85rem;justify-self:end}.footer-bottom{color:#bdbdc1}.whatsapp-float{border-radius:4px;background:var(--primary-color)}#arriba{border-radius:4px}a:focus-visible,button:focus-visible{outline-color:#b92330}
@media(max-width:1100px){.tes-hero-grid{gap:2.5rem}.tes-art{height:470px}.pillar{width:75px}.tes-about,.tes-control-grid,.tes-contact-grid{gap:3rem}.tes-manifesto{padding:2rem}.tes-section-heading{gap:2rem}}
@media(max-width:760px){:root{--navbar-height:5rem;--section-padding:4rem}.nav-logo img{width:79px}.tes-hero{padding-top:3rem}.tes-hero-grid,.tes-section-heading,.tes-control-grid,.tes-about,.tes-contact-grid{grid-template-columns:1fr;gap:2.5rem}.tes-hero h1{font-size:clamp(2.65rem,8.5vw,4rem)}.tes-art{height:410px}.pillar{width:21%;bottom:85px}.pillar-three{height:260px}.pillar-two{height:190px}.pillar-one{height:115px}.hero-bottom{gap:1rem;align-items:start}.hero-bottom>span{max-width:12rem}.hero-bottom>a{max-width:9rem}.tes-service-grid{grid-template-columns:1fr 1fr}.tes-service{padding:1.4rem}.tes-sector-grid{grid-template-columns:1fr 1fr}.tes-manifesto{min-height:350px}.tes-footer{grid-template-columns:1fr;gap:1.5rem}.tes-footer>a{justify-self:start}.tes-contact .btn{font-size:.82rem}.tes-contact-grid{gap:3rem}.contact-details{gap:1.5rem}}
@media(max-width:450px){.tes-service-grid,.tes-sector-grid{grid-template-columns:1fr}.tes-service h3{max-width:none}.tes-hero .button-row{align-items:flex-start;flex-direction:column}.contact-details>div>a:not(.map-link){font-size:1.1rem}.hero-bottom{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Iconografía Flaticon, redes y privacidad. */
.service-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.tes-service-icon{font-size:1.65rem;color:var(--primary-color);line-height:1}
.tes-audit-icon{font-size:1.3rem;color:#d1a4a7;line-height:1.3}
.tes-sector-icon{font-size:1.2rem;line-height:1;color:var(--primary-color);flex-shrink:0}
.contact-details>div>span>i{margin-right:.35rem;font-size:.85rem;vertical-align:middle;color:var(--primary-color)}
.contact-details .contact-social{grid-column:1/-1}
.tes-social-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.9rem}
.tes-social-links a{display:inline-flex;align-items:center;gap:.6rem;padding:.55rem .8rem;border:1px solid var(--border-color);border-radius:3px;font-size:.85rem;line-height:1.4}
.tes-social-links i{font-size:1.1rem;line-height:1}
.tes-social-links a:hover{color:var(--primary-color);border-color:var(--primary-color)}
.footer-connect{justify-self:end}.footer-connect>a{font-size:.85rem}
footer .tes-social-links{--border-color:#ffffff38}footer .tes-social-links a:hover{color:#fff;border-color:#fff}
.footer-legal-links{display:flex;flex-wrap:wrap;gap:1.5rem}.footer-legal-links a{display:inline-flex;gap:.4rem;align-items:center}
.privacy-intro{padding:1.5rem;border-left:3px solid var(--primary-color);background:var(--surface-color);line-height:1.8}
@media(max-width:760px){.footer-connect{justify-self:start}.footer-legal-links{gap:1rem}}
