/*
Theme Name:   Astra Child WR Servicios
Theme URI:    https://www.wrservicios.com/
Description:  Tema hijo de Astra con el sistema de diseno "Tech Trust" del rediseno de WR
              Servicios, C.A. Incluye las tipografias Barlow auto-alojadas, los componentes de
              la maqueta (hero, tarjetas, FAQ, testimonios, CTA, formularios y boton flotante
              de WhatsApp) y el puente de variables con Astra. Las reglas de cabecera y pie de
              la maqueta se omitieron a proposito: esas zonas las construye el constructor de
              Astra. Generado desde la maqueta verificada; ver GUIA-DESPLIEGUE.md.
Author:       Rediseno WR Servicios
Template:     astra
Version:      1.2.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  astra-child-wr
*/

/* ==========================================================================
   SISTEMA DE DISENO "TECH TRUST" — heredado de la maqueta verificada
   Fuente: wr-rediseno/assets/css/style.css (secciones 1-5, 7-15 y 17-21)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. RESET Y BASE
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

* { margin: 0; }

/* Astra da margenes por defecto a p, ul, ol, li, h1-h6 y blockquote con
   especificidad de elemento, que GANA al `* { margin: 0 }` de arriba (la del
   universal es 0). Se replica el reset con una clase delante para ganarle, y se
   hace AQUI, al principio: asi las reglas del propio diseno (por ejemplo
   `.hero h1 { margin-bottom }`) siguen mandando por orden.
   Ojo: no se puede usar `.entry-content *`, porque eso tambien anularia el
   `margin-inline: auto` de `.container` y todo el contenido se iria a la
   izquierda. */
.entry-content p, .entry-content ul, .entry-content ol, .entry-content li,
.entry-content dl, .entry-content dd, .entry-content blockquote, .entry-content figure,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.entry-content h5, .entry-content h6,
.wr-header p, .wr-header ul, .wr-header ol, .wr-header li,
.wr-header h1, .wr-header h2, .wr-header h3, .wr-header h4,
.wr-footer p, .wr-footer ul, .wr-footer ol, .wr-footer li,
.wr-footer blockquote, .wr-footer figure,
.wr-footer h1, .wr-footer h2, .wr-footer h3, .wr-footer h4 { margin: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--body);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, svg, video { display: block; max-width: 100%; height: auto; }
img { background-color: var(--bg-soft); }

a { color: var(--brand-600); text-decoration: none; }
a:hover { color: var(--brand-700); }

button, input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--ink-900);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

p { text-wrap: pretty; }

ul, ol { padding-left: 1.15rem; }

:focus-visible {
  outline: 3px solid var(--brand-500);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection { background: var(--brand-600); color: #fff; }

/* --------------------------------------------------------------------------
   2. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* Marca — tomada del logo real (degradado rojo → naranja) */
  --brand-700: #D93A00;
  --brand-600: #FF5100;
  --brand-500: #FF7A3D;
  --brand-100: #FFEDE5;
  --brand-50:  #FFF6F2;
  --grad-brand: linear-gradient(115deg, #FF3D00 0%, #FF6A00 45%, #FF9500 100%);
  --grad-brand-soft: linear-gradient(115deg, rgba(255,61,0,.12), rgba(255,149,0,.12));

  /* Neutros tecnológicos */
  --ink-950: #05080F;
  --ink-900: #0A0F1A;
  --ink-800: #111827;
  --ink-700: #1D2939;
  --ink-600: #344054;
  --body:    #4A5568;
  --muted:   #667085;
  --line:    #E4E7EC;
  --line-soft: #EFF1F4;
  --bg-soft: #F7F8FA;
  --bg-mist: #F1F3F7;
  --white:   #FFFFFF;

  /* Semánticos */
  --wa: #25D366;
  --wa-dark: #1DA851;
  --success: #12B76A;

  /* Tipografía */
  --font-display: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-cond: 'Barlow Condensed', 'Barlow', system-ui, sans-serif;
  --fs-body: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);

  /* Formas */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 26px;
  --r-pill: 999px;

  /* Sombras */
  --sh-xs: 0 1px 2px rgba(16,24,40,.06);
  --sh-sm: 0 2px 8px rgba(16,24,40,.06), 0 1px 2px rgba(16,24,40,.04);
  --sh-md: 0 10px 28px rgba(16,24,40,.08), 0 2px 6px rgba(16,24,40,.04);
  --sh-lg: 0 24px 56px rgba(10,15,26,.16), 0 4px 12px rgba(10,15,26,.06);
  --sh-brand: 0 10px 26px rgba(255,81,0,.28);

  /* Ritmo vertical */
  --section-y: clamp(3.5rem, 2rem + 6vw, 7rem);
  --gutter: clamp(1.125rem, 4vw, 2rem);
  --maxw: 1200px;
  --header-h: 76px;
}

/* --------------------------------------------------------------------------
   3. UTILIDADES DE LAYOUT
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section { padding-block: var(--section-y); }
.section--soft { background: var(--bg-soft); }
.section--mist { background: var(--bg-mist); }
.section--dark { background: var(--ink-900); color: rgba(255,255,255,.74); }
.section--dark h2, .section--dark h3, .section--dark h4 { color: #fff; }
.section--tight { padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); }

.stack > * + * { margin-top: var(--stack-gap, 1rem); }
.center { text-align: center; }
.mx-auto { margin-inline: auto; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; top: -100px; left: 1rem; z-index: 999;
  background: var(--brand-600); color: #fff; padding: .75rem 1.25rem;
  border-radius: 0 0 var(--r-md) var(--r-md); font-weight: 600;
}
.skip-link:focus { top: 0; color: #fff; }

/* Iconos SVG (sprite inline) */
.icon {
  width: 1.25em; height: 1.25em; flex: none;
  fill: none; stroke: currentColor;
  stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
  vertical-align: middle;
}
.icon--sm { width: 1.05em; height: 1.05em; }
.icon--lg { width: 1.6em; height: 1.6em; }
.icon--fill { fill: currentColor; stroke: none; }

/* --------------------------------------------------------------------------
   4. TIPOGRAFÍA
   -------------------------------------------------------------------------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--font-cond);
  font-size: .9375rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--brand-600);
  margin-bottom: 1rem;
}
.eyebrow::before {
  content: ""; width: 26px; height: 2px; background: var(--grad-brand);
  border-radius: 2px; flex: none;
}
.eyebrow--light { color: var(--brand-500); }
.eyebrow--center { justify-content: center; }

.h1 { font-size: clamp(2.05rem, 1.2rem + 3vw, 3.5rem); font-weight: 800; line-height: 1.07; }
.h2 { font-size: clamp(1.7rem, 1.15rem + 2.1vw, 2.65rem); font-weight: 800; }
.h3 { font-size: clamp(1.2rem, 1.05rem + .55vw, 1.5rem); }
.h4 { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); }

.lead {
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.1875rem);
  line-height: 1.7; color: var(--body);
}
.section--dark .lead { color: rgba(255,255,255,.78); }

.text-grad {
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

.section-head { max-width: 720px; margin-bottom: clamp(2rem, 1.4rem + 1.8vw, 3.25rem); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head p { margin-top: 1rem; font-size: 1.0625rem; }
.section--dark .section-head p { color: rgba(255,255,255,.72); }

/* --------------------------------------------------------------------------
   5. BOTONES
   -------------------------------------------------------------------------- */
.btn {
  --btn-bg: var(--brand-600);
  --btn-fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  padding: .9rem 1.6rem;
  background: var(--btn-bg); color: var(--btn-fg);
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 600; letter-spacing: .005em;
  border: 1.5px solid transparent; border-radius: var(--r-md);
  cursor: pointer; text-align: center; white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
  box-shadow: var(--sh-xs);
}
.btn:hover { transform: translateY(-2px); color: var(--btn-fg); }
.btn:active { transform: translateY(0); }
.btn svg { flex: none; }

.btn--primary { background: var(--grad-brand); box-shadow: var(--sh-brand); }
.btn--primary:hover { box-shadow: 0 14px 32px rgba(255,81,0,.36); }

.btn--dark { background: var(--ink-900); }
.btn--dark:hover { background: var(--ink-700); }

.btn--wa { background: var(--wa); }
.btn--wa:hover { background: var(--wa-dark); }

.btn--ghost {
  background: transparent; color: var(--ink-900);
  border-color: var(--line); box-shadow: none;
}
.btn--ghost:hover { border-color: var(--ink-900); color: var(--ink-900); }

.btn--ghost-light {
  background: rgba(255,255,255,.06); color: #fff;
  border-color: rgba(255,255,255,.28); box-shadow: none;
  backdrop-filter: blur(6px);
}
.btn--ghost-light:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.5); color: #fff; }

.btn--lg { padding: 1.05rem 2rem; font-size: 1.0625rem; }
.btn--sm { padding: .6rem 1.1rem; font-size: .9375rem; }
.btn--block { width: 100%; }

.btn-row { display: flex; flex-wrap: wrap; gap: .875rem; align-items: center; }

.link-arrow {
  display: inline-flex; align-items: center; gap: .4rem;
  font-weight: 600; color: var(--brand-600);
}
.link-arrow svg { transition: transform .18s ease; }
.link-arrow:hover svg { transform: translateX(4px); }
/* --------------------------------------------------------------------------
   7. HERO
   -------------------------------------------------------------------------- */
.hero {
  position: relative; overflow: hidden;
  background: var(--ink-900);
  color: rgba(255,255,255,.76);
  padding-block: clamp(3rem, 1.5rem + 6vw, 6rem) clamp(3.5rem, 2rem + 6vw, 6.5rem);
  isolation: isolate;
}
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(900px 520px at 78% -8%, rgba(255,106,0,.30), transparent 62%),
    radial-gradient(700px 460px at 8% 108%, rgba(255,61,0,.18), transparent 60%),
    linear-gradient(180deg, #0A0F1A 0%, #0C1322 55%, #0A0F1A 100%);
}
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: radial-gradient(120% 90% at 50% 0%, #000 25%, transparent 78%);
  -webkit-mask-image: radial-gradient(120% 90% at 50% 0%, #000 25%, transparent 78%);
}
.hero__grid {
  display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
  gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center;
}
.hero h1 { color: #fff; margin-bottom: 1.35rem; }
.hero h1 .text-grad { display: inline; }
.hero .lead { color: rgba(255,255,255,.76); max-width: 44ch; }
.hero .btn-row { margin-top: 2rem; }

.hero__proof {
  display: flex; align-items: center; gap: 1.75rem; flex-wrap: wrap;
  margin-top: 2.25rem; padding-top: 1.75rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.hero__proof-item { display: flex; align-items: center; gap: .65rem; }
.hero__proof-item svg { color: var(--brand-500); flex: none; }
.hero__proof-item strong { display: block; color: #fff; font-size: .9375rem; font-weight: 600; line-height: 1.3; }
.hero__proof-item span { font-size: .8125rem; color: rgba(255,255,255,.6); }

.hero__media { position: relative; }
.hero__media-frame {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-lg);
  border: 1px solid rgba(255,255,255,.14);
  aspect-ratio: 4 / 3.15;
  background: var(--ink-800);
}
.hero__media-frame img { width: 100%; height: 100%; object-fit: cover; }
.hero__media-frame::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(200deg, rgba(255,81,0,.14), transparent 45%, rgba(10,15,26,.55));
}

.hero__badge {
  position: absolute; z-index: 2;
  background: rgba(255,255,255,.97); color: var(--ink-900);
  border-radius: var(--r-lg); box-shadow: var(--sh-lg);
  padding: .9rem 1.15rem; display: flex; align-items: center; gap: .75rem;
}
.hero__badge--tl { top: -1.1rem; left: -1.1rem; }
.hero__badge--bl { bottom: -1.1rem; left: -1.1rem; }
.hero__badge-icon {
  display: grid; place-items: center; width: 40px; height: 40px; flex: none;
  border-radius: var(--r-md); background: var(--brand-50); color: var(--brand-600);
}
.hero__badge strong { display: block; font-size: .9375rem; font-weight: 700; line-height: 1.2; color: var(--ink-900); }
.hero__badge span { font-size: .8125rem; color: var(--muted); }

/* Hero de páginas internas */
.page-hero {
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--ink-900); color: rgba(255,255,255,.76);
  padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) clamp(2.75rem, 1.5rem + 5vw, 5rem);
}
.page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(760px 420px at 82% -20%, rgba(255,106,0,.26), transparent 62%),
    linear-gradient(180deg, #0A0F1A, #0D1424);
}
.page-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .45;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: radial-gradient(120% 90% at 50% 0%, #000 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(120% 90% at 50% 0%, #000 20%, transparent 75%);
}
.page-hero h1 { color: #fff; max-width: 22ch; }
.page-hero .lead { max-width: 62ch; margin-top: 1.15rem; }
.page-hero .btn-row { margin-top: 2rem; }

.breadcrumb {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  font-size: .875rem; color: rgba(255,255,255,.55); margin-bottom: 1.25rem;
}
.breadcrumb a { color: rgba(255,255,255,.75); }
.breadcrumb a:hover { color: #fff; }
.breadcrumb span[aria-current] { color: var(--brand-500); font-weight: 600; }

/* --------------------------------------------------------------------------
   8. BARRA DE CIFRAS
   -------------------------------------------------------------------------- */
.stats {
  background: var(--white);
  border-bottom: 1px solid var(--line-soft);
}
.stats__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.stat {
  padding: clamp(1.4rem, 1rem + 1.4vw, 2.25rem) 1rem;
  text-align: center; position: relative;
}
.stat + .stat::before {
  content: ""; position: absolute; left: 0; top: 22%; bottom: 22%;
  width: 1px; background: var(--line);
}
.stat__num {
  font-family: var(--font-cond); font-weight: 700;
  font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.4rem);
  line-height: 1; color: var(--ink-900); letter-spacing: -.01em;
  display: block;
}
.stat__num .text-grad { -webkit-text-fill-color: transparent; }
.stat__label {
  display: block; margin-top: .5rem; font-size: .9375rem;
  color: var(--muted); font-weight: 500;
}

/* --------------------------------------------------------------------------
   9. TARJETAS DE SERVICIO
   -------------------------------------------------------------------------- */
.grid { display: grid; gap: clamp(1.25rem, .8rem + 1.2vw, 1.75rem); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.svc-card {
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.svc-card:hover { transform: translateY(-5px); box-shadow: var(--sh-md); border-color: #D6DAE1; }
.svc-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg-mist); }
.svc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.svc-card:hover .svc-card__media img { transform: scale(1.05); }
.svc-card__icon {
  position: absolute; left: 1.15rem; bottom: -1.4rem; z-index: 2;
  display: grid; place-items: center; width: 52px; height: 52px;
  border-radius: var(--r-md); background: var(--grad-brand); color: #fff;
  box-shadow: var(--sh-brand);
}
.svc-card__body { padding: 2.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.svc-card__icon .icon { width: 26px; height: 26px; }
.svc-card__body h3 { margin-bottom: .6rem; }
.svc-card__body p { font-size: .9688rem; color: var(--body); flex: 1; }
.svc-card__body .link-arrow { margin-top: 1.15rem; font-size: .9375rem; }

/* Servicio destacado a lo ancho */
.svc-row {
  display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(1.75rem, 1rem + 3vw, 4rem); align-items: center;
}
.svc-row:nth-child(even) .svc-row__media { order: 2; }
.svc-row__media {
  border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-md);
  aspect-ratio: 4 / 3; background: var(--bg-mist);
  position: relative;
}
.svc-row__media img { width: 100%; height: 100%; object-fit: cover; }
.svc-row__num {
  font-family: var(--font-cond); font-size: 1rem; font-weight: 700;
  letter-spacing: .16em; color: var(--brand-600); text-transform: uppercase;
  display: block; margin-bottom: .75rem;
}
.svc-row h3 { font-size: clamp(1.4rem, 1.15rem + 1vw, 2rem); margin-bottom: .9rem; }
.svc-list { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: .7rem; }
.svc-list li { display: flex; gap: .7rem; align-items: flex-start; font-size: .9688rem; }
.svc-list svg { flex: none; margin-top: .28rem; color: var(--brand-600); }
.svc-row .btn { margin-top: 1.75rem; }
.svc-rows { display: grid; gap: clamp(3rem, 2rem + 4vw, 5.5rem); }

/* --------------------------------------------------------------------------
   10. MARCAS
   -------------------------------------------------------------------------- */
.brands__title {
  text-align: center; font-size: .9375rem; font-weight: 600;
  color: var(--muted); letter-spacing: .04em; margin-bottom: 2rem;
}
.brands__grid {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem; align-items: center;
}
.brand-tile {
  display: grid; place-items: center;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 1.1rem .9rem; min-height: 92px;
  transition: box-shadow .2s ease, transform .2s ease;
}
.section--soft .brand-tile,
.section--mist .brand-tile { background: var(--white); }
.brand-tile:hover { transform: translateY(-3px); box-shadow: var(--sh-sm); }
.brand-tile img {
  max-height: 42px; width: auto; max-width: 100%; object-fit: contain;
  filter: grayscale(1); opacity: .68; background: none;
  transition: filter .25s ease, opacity .25s ease;
}
.brand-tile:hover img { filter: grayscale(0); opacity: 1; }

/* --------------------------------------------------------------------------
   11. POR QUÉ ELEGIRNOS
   -------------------------------------------------------------------------- */
.feature {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: clamp(1.5rem, 1.1rem + 1.2vw, 2.15rem);
  position: relative; overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.feature::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 3px;
  background: var(--grad-brand); transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
.feature:hover { transform: translateY(-5px); box-shadow: var(--sh-md); border-color: transparent; }
.feature:hover::before { transform: scaleX(1); }
.feature__icon {
  display: grid; place-items: center; width: 54px; height: 54px;
  border-radius: var(--r-md); background: var(--brand-50); color: var(--brand-600);
  margin-bottom: 1.35rem;
}
.feature h3 { margin-bottom: .65rem; }
.feature p { font-size: .9688rem; }

/* --------------------------------------------------------------------------
   12. PROCESO
   -------------------------------------------------------------------------- */
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.25rem, .8rem + 1.2vw, 1.75rem); counter-reset: step; }
.step { position: relative; padding-top: 1.25rem; }
.step::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--line); border-radius: 3px;
}
.step::after {
  content: ""; position: absolute; top: 0; left: 0; width: 34%; height: 3px;
  background: var(--grad-brand); border-radius: 3px;
}
.step__num {
  font-family: var(--font-cond); font-size: 1.05rem; font-weight: 700;
  letter-spacing: .14em; color: var(--brand-600);
}
.step h3 { font-size: 1.15rem; margin: .65rem 0 .55rem; }
.step p { font-size: .9375rem; }

/* --------------------------------------------------------------------------
   13. TESTIMONIOS
   -------------------------------------------------------------------------- */
.tst {
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: clamp(1.5rem, 1.1rem + 1.2vw, 2rem);
  position: relative;
}
.tst__quote {
  position: absolute; top: 1.25rem; right: 1.5rem;
  font-family: var(--font-cond); font-size: 4.5rem; line-height: 1;
  color: var(--brand-100); font-weight: 700; pointer-events: none;
}
.tst__stars { display: flex; gap: .2rem; color: #F5A524; margin-bottom: 1rem; }
.tst__text { font-size: 1rem; color: var(--ink-700); flex: 1; position: relative; z-index: 1; }
.tst__author {
  display: flex; align-items: center; gap: .85rem;
  margin-top: 1.5rem; padding-top: 1.35rem; border-top: 1px solid var(--line-soft);
}
.tst__avatar {
  display: grid; place-items: center; width: 46px; height: 46px; flex: none;
  border-radius: var(--r-pill); background: var(--grad-brand);
  color: #fff; font-weight: 700; font-size: 1rem; letter-spacing: .02em;
}
.tst__avatar--dark { background: linear-gradient(115deg, #1D2939, #344054); }
.tst__name { font-weight: 700; color: var(--ink-900); font-size: .9688rem; line-height: 1.3; }
.tst__role { font-size: .875rem; color: var(--muted); }

/* --------------------------------------------------------------------------
   14. FAQ
   -------------------------------------------------------------------------- */
.faq { max-width: 860px; margin-inline: auto; display: grid; gap: .85rem; }
.faq details {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-md); overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.faq details[open] { border-color: var(--brand-500); box-shadow: var(--sh-sm); }
.faq summary {
  cursor: pointer; list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 1.25rem;
  padding: 1.2rem 1.4rem; font-weight: 600; color: var(--ink-900);
  font-size: 1.0313rem; font-family: var(--font-display);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; flex: none; width: 11px; height: 11px;
  border-right: 2.5px solid var(--brand-600); border-bottom: 2.5px solid var(--brand-600);
  transform: rotate(45deg) translateY(-2px); transition: transform .22s ease;
}
.faq details[open] summary::after { transform: rotate(225deg) translateY(-2px); }
.faq summary:hover { color: var(--brand-600); }
.faq__body { padding: 0 1.4rem 1.35rem; color: var(--body); font-size: .9688rem; }
.faq__body p + p { margin-top: .8rem; }

/* --------------------------------------------------------------------------
   15. CTA FINAL
   -------------------------------------------------------------------------- */
.cta {
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--ink-900); color: rgba(255,255,255,.78);
  border-radius: var(--r-xl); padding: clamp(2.25rem, 1.5rem + 3.5vw, 4rem);
  text-align: center;
}
.cta::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(620px 320px at 50% -30%, rgba(255,106,0,.34), transparent 65%),
    radial-gradient(500px 300px at 92% 120%, rgba(255,61,0,.20), transparent 62%);
}
.cta h2 { color: #fff; max-width: 24ch; margin-inline: auto; }
.cta p { max-width: 56ch; margin: 1.15rem auto 0; }
.cta .btn-row { justify-content: center; margin-top: 2rem; }
.cta__note { margin-top: 1.5rem; font-size: .875rem; color: rgba(255,255,255,.55); }

/* --------------------------------------------------------------------------
   17. WHATSAPP FLOTANTE
   -------------------------------------------------------------------------- */
.wa-float {
  position: fixed; right: clamp(1rem, 3vw, 1.75rem); bottom: clamp(1rem, 3vw, 1.75rem);
  z-index: 90; display: inline-flex; align-items: center;
  background: var(--wa); color: #fff; font-weight: 600;
  padding: .95rem; border-radius: var(--r-pill);
  box-shadow: 0 12px 30px rgba(37,211,102,.36), 0 3px 8px rgba(0,0,0,.14);
  transition: transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover { color: #fff; transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 38px rgba(37,211,102,.46); }
/* Compacto por defecto para no tapar contenido; la etiqueta se despliega al
   pasar el cursor o al enfocar con el teclado. */
.wa-float__label {
  font-size: .9375rem; max-width: 0; opacity: 0; overflow: hidden;
  white-space: nowrap; transition: max-width .28s ease, opacity .2s ease, margin-left .28s ease;
}
.wa-float:hover .wa-float__label,
.wa-float:focus-visible .wa-float__label { max-width: 9rem; opacity: 1; margin-left: .6rem; }

.wa-float__pulse {
  position: absolute; inset: 0; border-radius: inherit;
  border: 2px solid rgba(37,211,102,.55); animation: waPulse 2.4s ease-out infinite;
  pointer-events: none;
}
@keyframes waPulse {
  0% { transform: scale(1); opacity: .9; }
  70%, 100% { transform: scale(1.18); opacity: 0; }
}

/* --------------------------------------------------------------------------
   18. CONTACTO Y FORMULARIOS
   -------------------------------------------------------------------------- */
.contact-grid {
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(2rem, 1.2rem + 3.5vw, 4rem); align-items: start;
}
.info-card {
  display: flex; gap: 1rem;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 1.35rem 1.4rem;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.info-card:hover { border-color: var(--brand-500); box-shadow: var(--sh-sm); transform: translateY(-3px); }
.info-card__icon {
  display: grid; place-items: center; width: 46px; height: 46px; flex: none;
  border-radius: var(--r-md); background: var(--brand-50); color: var(--brand-600);
}
.info-card h3 { font-size: 1rem; margin-bottom: .3rem; }
.info-card p, .info-card a { font-size: .9375rem; color: var(--body); margin: 0; }
.info-card a:hover { color: var(--brand-600); }
.info-stack { display: grid; gap: 1rem; }

.form-card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-xl); padding: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem);
  box-shadow: var(--sh-sm);
}
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem; }
.field { display: grid; gap: .45rem; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .9375rem; font-weight: 600; color: var(--ink-800); }
.field label .req { color: var(--brand-600); }
.field input, .field select, .field textarea {
  width: 100%; padding: .8rem .95rem;
  background: var(--white); color: var(--ink-900);
  border: 1.5px solid var(--line); border-radius: var(--r-md);
  font-size: 1rem; transition: border-color .18s ease, box-shadow .18s ease;
}
.field textarea { resize: vertical; min-height: 130px; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--brand-500);
  box-shadow: 0 0 0 4px rgba(255,122,61,.14);
}
.field__hint { font-size: .8125rem; color: var(--muted); }
.check { display: flex; gap: .7rem; align-items: flex-start; font-size: .875rem; color: var(--body); }
.check input { width: 18px; height: 18px; flex: none; margin-top: .15rem; accent-color: var(--brand-600); }
.form-note {
  display: flex; gap: .65rem; align-items: flex-start;
  margin-top: 1.15rem; font-size: .8125rem; color: var(--muted);
}
.form-note svg { flex: none; margin-top: .1rem; color: var(--success); }
.form-success {
  display: none; gap: .85rem; align-items: flex-start;
  background: #ECFDF3; border: 1px solid #A6F4C5; color: #054F31;
  border-radius: var(--r-md); padding: 1rem 1.15rem; margin-bottom: 1.35rem;
  font-size: .9375rem;
}
.form-success.is-visible { display: flex; }

.map-embed {
  border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line);
  box-shadow: var(--sh-sm); background: var(--bg-mist); line-height: 0;
}
.map-embed iframe { width: 100%; height: clamp(280px, 34vw, 400px); border: 0; display: block; }

/* --------------------------------------------------------------------------
   19. BLOQUES VARIOS
   -------------------------------------------------------------------------- */
.split {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.75rem, 1rem + 3.5vw, 4rem); align-items: center;
}
.split__media {
  border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-md);
  aspect-ratio: 4 / 3.2; background: var(--bg-mist);
}
.split__media img { width: 100%; height: 100%; object-fit: cover; }
.split__media--portrait { aspect-ratio: 4 / 4.6; }

/* Alterna el lado de la imagen en escritorio. La inversión solo estaba definida
   dentro de @media (max-width: 720px), así que en pantalla grande las dos
   secciones de "Quiénes somos" mostraban la imagen en el mismo lado y el patrón
   no alternaba. Con order:-1 en la rejilla, el medio pasa a la primera columna. */
.split--reverse .split__media { order: -1; }

.badge-card {
  display: flex; gap: 1rem; align-items: flex-start;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 1.35rem 1.4rem;
}
.badge-card__icon {
  display: grid; place-items: center; width: 48px; height: 48px; flex: none;
  border-radius: var(--r-md); background: var(--grad-brand); color: #fff;
  box-shadow: var(--sh-brand);
}
.badge-card h3 { font-size: 1.0313rem; margin-bottom: .35rem; }
.badge-card p { font-size: .9375rem; margin: 0; }

.note-band {
  display: flex; gap: 1rem; align-items: center; flex-wrap: wrap;
  background: var(--brand-50); border: 1px solid var(--brand-100);
  border-radius: var(--r-lg); padding: 1.2rem 1.4rem;
}
.note-band svg { color: var(--brand-600); flex: none; }
.note-band p { margin: 0; font-size: .9688rem; color: var(--ink-700); }

/* ==========================================================================
   20. CABECERA Y PIE DEL DISEÑO (portados de la maqueta, ANTES del responsive)
   ==========================================================================
   IMPORTANTE: este bloque va DELIBERADAMENTE antes de las reglas responsive.
   Si se coloca despues, sus reglas base (.nav{display:flex}, .nav-toggle{
   display:none}) pisan a las de los @media y el menu movil deja de funcionar.
   ==========================================================================
   La maqueta traia su propia barra superior, su cabecera y su pie. Se imprimen
   desde inc/cabecera-pie.php y sustituyen a los de Astra, para que queden
   identicos al diseno en lugar de parecidos.

   Los envoltorios <header id="masthead"> y <footer id="colophon"> de Astra se
   conservan porque aportan la semantica (y por eso lo nuestro va en <div>, que
   anidar <header> dentro de <header> seria HTML invalido). Aqui se neutralizan
   para que el CSS de Astra no los pinte.                                      */
#masthead, #colophon { background: none; padding: 0; margin: 0; border: 0; box-shadow: none; }

/* --------------------------------------------------------------------------
   6. TOPBAR + CABECERA
   -------------------------------------------------------------------------- */
.topbar {
  background: var(--ink-950);
  color: rgba(255,255,255,.7);
  font-size: .875rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.topbar .container {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; min-height: 42px; flex-wrap: wrap;
}
.topbar__group { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.topbar__item { display: inline-flex; align-items: center; gap: .5rem; color: inherit; }
.topbar__item svg { color: var(--brand-500); flex: none; }
a.topbar__item:hover { color: #fff; }
.topbar__social { display: flex; align-items: center; gap: .35rem; }
.topbar__social a {
  display: grid; place-items: center; width: 30px; height: 30px;
  border-radius: var(--r-sm); color: rgba(255,255,255,.7);
  transition: background-color .18s ease, color .18s ease;
}
.topbar__social a:hover { background: rgba(255,255,255,.1); color: #fff; }

.wr-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(10,15,26,.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,.09);
}
.wr-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; min-height: var(--header-h);
}

.brand { display: inline-flex; align-items: center; gap: .7rem; flex: none; }
.brand img { height: 38px; width: auto; background: none; }
.brand__tag {
  font-family: var(--font-cond); font-size: .8125rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.5); padding-left: .7rem;
  border-left: 1px solid rgba(255,255,255,.18); line-height: 1.2;
}

.nav { display: flex; align-items: center; gap: .35rem; }
.nav a {
  position: relative; color: rgba(255,255,255,.82);
  font-weight: 500; padding: .6rem .95rem; border-radius: var(--r-sm);
  transition: color .18s ease, background-color .18s ease;
}
.nav a:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav a[aria-current="page"] { color: #fff; font-weight: 600; }
.nav a[aria-current="page"]::after {
  content: ""; position: absolute; left: .95rem; right: .95rem; bottom: .28rem;
  height: 2px; border-radius: 2px; background: var(--grad-brand);
}

.header__actions { display: flex; align-items: center; gap: .75rem; flex: none; }
.header__phone {
  display: inline-flex; align-items: center; gap: .5rem;
  color: #fff; font-weight: 600; font-size: .9375rem;
}
.header__phone svg { color: var(--brand-500); }

.nav-toggle {
  display: none; width: 46px; height: 46px;
  align-items: center; justify-content: center;
  background: rgba(255,255,255,.07); color: #fff;
  border: 1px solid rgba(255,255,255,.16); border-radius: var(--r-md);
  cursor: pointer;
}
.nav-toggle__bars { position: relative; width: 20px; height: 2px; background: currentColor; border-radius: 2px; }
.nav-toggle__bars::before,
.nav-toggle__bars::after {
  content: ""; position: absolute; left: 0; width: 20px; height: 2px;
  background: currentColor; border-radius: 2px; transition: transform .22s ease, top .22s ease;
}
.nav-toggle__bars::before { top: -6px; }
.nav-toggle__bars::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { top: 0; transform: rotate(-45deg); }


/* --------------------------------------------------------------------------
   16. PIE DE PÁGINA
   -------------------------------------------------------------------------- */
.wr-footer { background: var(--ink-950); color: rgba(255,255,255,.62); font-size: .9375rem; }
.wr-footer__main { padding-block: clamp(3rem, 2rem + 3vw, 4.5rem) 2.5rem; }
.wr-footer__grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.25fr;
  gap: clamp(1.75rem, 1rem + 2vw, 3rem);
}
.wr-footer h3 {
  color: #fff; font-size: .9375rem; font-weight: 700; margin-bottom: 1.1rem;
  font-family: var(--font-cond); letter-spacing: .14em; text-transform: uppercase;
}
.wr-footer p { font-size: .9375rem; }
.wr-footer a { color: rgba(255,255,255,.62); }
.wr-footer a:hover { color: #fff; }
.footer-brand__logo { height: 40px; width: auto; margin-bottom: 1.15rem; background: none; }
.footer-list { list-style: none; padding: 0; display: grid; gap: .6rem; }
.footer-list li { display: flex; gap: .65rem; align-items: flex-start; }
.footer-list svg { color: var(--brand-500); flex: none; margin-top: .22rem; }
.footer-social { display: flex; gap: .5rem; margin-top: 1.35rem; }
.footer-social a {
  display: grid; place-items: center; width: 40px; height: 40px;
  border-radius: var(--r-md); background: rgba(255,255,255,.07);
  color: #fff; transition: background-color .2s ease, transform .2s ease;
}
.footer-social a:hover { background: var(--brand-600); transform: translateY(-2px); }
.wr-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.09);
  padding-block: 1.5rem; display: flex; align-items: center;
  justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-size: .875rem; color: rgba(255,255,255,.45);
}
.wr-footer__bottom a { color: rgba(255,255,255,.6); }


/* --------------------------------------------------------------------------
   20. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (min-width: 993px) {
  /* deja libre la esquina inferior derecha, donde flota el botón de WhatsApp */
  .site-footer__bottom { padding-right: 11rem; }
}

@media (max-width: 1080px) {
  .brands__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 992px) {
  :root { --header-h: 68px; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
  .hero .lead { max-width: 60ch; }
  .hero__media { max-width: 620px; }
  .hero__badge--tl { top: -1rem; left: -0.5rem; }
  .hero__badge--bl { bottom: -1rem; left: -0.5rem; }

  .nav, .header__phone { display: none; }
  .nav-toggle { display: inline-flex; }

  .nav.is-open {
    display: flex; flex-direction: column; align-items: stretch; gap: .25rem;
    position: absolute; left: var(--gutter); right: var(--gutter); top: calc(100% + .6rem);
    background: var(--ink-900); border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--r-lg); padding: .75rem; box-shadow: var(--sh-lg);
  }
  .nav.is-open a { padding: .9rem 1rem; border-radius: var(--r-md); font-size: 1.0625rem; }
  .nav.is-open a[aria-current="page"]::after { display: none; }
  .nav.is-open a[aria-current="page"] { background: rgba(255,81,0,.14); }

  .site-header__inner { position: relative; }

  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.25rem; }

  .svc-row { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .svc-row:nth-child(even) .svc-row__media { order: 0; }

  .contact-grid { grid-template-columns: minmax(0, 1fr); }
}

/* En teléfonos muy estrechos los botones de llamada a la acción pasan a ancho
   completo, para que ninguna etiqueta larga se salga de la pantalla. */
@media (max-width: 380px) {
  .btn-row { gap: .7rem; }
  .btn-row .btn { width: 100%; }
  .btn--lg { padding: 1rem 1.25rem; }
}

/* En pantallas estrechas la cabecera no cabe: el logotipo con su etiqueta más
   el botón de cotizar desbordaban y dejaban la hamburguesa fuera de la vista. */
@media (max-width: 600px) {
  .site-header__inner { gap: 1rem; }
  .brand__tag { display: none; }
  .brand img { height: 32px; }
  .header__actions { gap: .5rem; }
  .header__actions .btn { padding: .55rem .95rem; font-size: .9375rem; }
}

@media (max-width: 720px) {
  .topbar .container { justify-content: center; gap: .5rem; padding-block: .45rem; }
  .topbar__group--right { display: none; }

  .stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(odd) + .stat::before { display: none; }
  .stat:nth-child(3)::before, .stat:nth-child(4)::before { display: none; }
  .stat { padding-block: 1.5rem; }

  .grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }
  .split { grid-template-columns: minmax(0, 1fr); }
  .split--reverse .split__media { order: -1; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .steps { grid-template-columns: minmax(0, 1fr); }
  .brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .site-footer__bottom { justify-content: center; text-align: center; }


  .hero__badge { padding: .7rem .9rem; }
  .hero__badge strong { font-size: .875rem; }
  .hero__badge span { font-size: .75rem; }
}

/* --------------------------------------------------------------------------
   21. ACCESIBILIDAD / IMPRESIÓN
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; scroll-behavior: auto !important;
  }
}

@media print {
  .topbar, .site-header, .wa-float, .cta, .map-embed { display: none; }
  body { color: #000; }
  .hero, .page-hero, .section--dark { background: #fff !important; color: #000 !important; }
  .hero h1, .page-hero h1, .section--dark h2 { color: #000 !important; }
}


/* ==========================================================================
   22. PUENTE CON ASTRA (anadido para WordPress)
   ==========================================================================
   La maqueta traia su propia cabecera, su propio pie y su propio menu movil.
   Esas reglas NO se copiaron: las construye el constructor de Astra. Lo que si
   se hereda son los tokens (colores, tipografias, radios, sombras), asi que la
   cabecera y el pie de Astra deben configurarse con estos mismos valores para
   que el conjunto se vea de una pieza. Los valores concretos estan en
   GUIA-DESPLIEGUE.md, seccion "Configurar Astra".                                 */

/* Altura de la cabecera fija, para que los enlaces de ancla no queden debajo.
   Si la cabecera de Astra mide otra cosa, cambia solo esta variable. */
:root { --wp-header-offset: 6rem; }
html { scroll-padding-top: var(--wp-header-offset); }

/* El diseno usa su clase .container (max-width 1200px) dentro del contenido.
   Para que no se sume al ancho del contenedor de Astra/Spectra, el contenido
   de las 4 paginas se publica a ancho completo. */
.wr-page { width: 100%; }

/* Astra anade su propio skip link; el del diseno se conserva oculto si el tema
   inyecta el suyo, para no tener dos enlaces identicos al principio del DOM. */
.skip-link + .skip-link { display: none; }

/* Los iconos del diseno vienen del sprite SVG del tema (ver functions.php).
   Astra y Spectra no deben imponer tamano a los <svg> que usan <use>. */
.icon { flex: none; }
.icon--fill { fill: currentColor; }

/* --------------------------------------------------------------------------
   22.1 ASTRA ENCAJONA EL CONTENIDO A 1200 px (corregido)

   Astra aplica  max-width: var(--wp--custom--ast-content-width-size)  a CADA
   hijo de .entry-content (regla .entry-content[data-ast-blocks-layout] > *).
   Consecuencia: las secciones a sangre de este diseno —el hero oscuro y las
   franjas de color— salian encajonadas a 1200 px, con franjas blancas a los
   lados, y la web no se veia como la maqueta.

   El diseno ya gestiona sus propios anchos con .container (1200 px), asi que el
   limite exterior sobra. Se anula AQUI, con alcance solo al contenido, sin tocar
   los ajustes de Astra. Ojo: no se puede anular .ast-container sin acotar,
   porque la cabecera usa esa misma clase y perderia su margen lateral.
   -------------------------------------------------------------------------- */
.entry-content[data-ast-blocks-layout] > *,
.entry-content > * { max-width: none; }

/* --------------------------------------------------------------------------
   22.2 DOS AJUSTES DE ESCALA Y MARGENES QUE DESVIABAN EL DISEÑO

   (1) Astra fija el tamaño de letra de la raiz en 17 px, mientras la maqueta usa
       los 16 px del navegador. Como el diseño esta medido en rem, TODO salia un
       6,25 % mas grande (el pie, 600 px en lugar de 466). Se devuelve la raiz a
       16 px para que la escala tipografica sea la de la maqueta.

   (2) La maqueta se apoya en un reset `* { margin: 0 }`, pero contra las reglas de
       elemento de Astra (`p`, `ul`, `h1`-`h6`) pierde: la especificidad de `*` es 0
       y la de `p` es 0,0,1. Asi que dentro del contenido aparecian margenes que la
       maqueta no tiene. Se replica el reset con una clase delante, que si gana.
       Las reglas propias del diseño (p. ej. `.hero h1 { margin-bottom }`) siguen
       mandando porque son mas especificas.
   -------------------------------------------------------------------------- */
html { font-size: 100%; }

/* Astra anade su propio boton de "volver arriba" (#ast-scroll-top) al final del
   body. El diseño no lo tiene: solo el boton flotante de WhatsApp. Se oculta. */
#ast-scroll-top { display: none; }

/* El refuerzo del reset frente a Astra vive al PRINCIPIO del archivo (seccion 1):
   si se pone aqui, despues de las reglas del diseno, les gana por orden y anula
   tanto el centrado de .container (margin-inline: auto) como los margenes
   intencionados del diseno. */

/* El area principal y su contenedor anaden relleno y centrado propios que
   descentraban las secciones respecto a la maqueta. */
#primary.content-area { width: 100%; padding: 0; margin: 0; }
.site-content > .ast-container { max-width: 100%; padding-left: 0; padding-right: 0; }
