/* =========================================================
   DORSEY REINFORCEMENT — SISTEMA VISUAL GLOBAL
   Único origen de variables, tipografía, escala y componentes.
   ========================================================= */
:root {
  --prussian-blue: #0a1128;
  --deep-navy: #001f54;
  --yale-blue: #034078;
  --cerulean: #1282a2;
  --warm-white: #fefcfb;
  --white: #fefcfb;

  --ink: #0a1128;
  --text: #17233a;
  --text-dark: #0a1128;
  --text-main: #17233a;
  --text-soft: #5e6b7b;
  --muted: #66758a;
  --muted-light: #8793a3;
  --surface: #fefcfb;
  --surface-soft: #f2f5f9;
  --bg: #f2f5f9;
  --blue-soft: #eaf0f7;
  --blue-hover: #dfe9f3;
  --info-bg: #eaf0f7;
  --warning-bg: #f7f1e6;
  --success-bg: #e8f3ee;
  --danger-bg: #f6eaea;
  --border: rgba(3, 64, 120, 0.16);
  --border-dark: rgba(3, 64, 120, 0.26);

  --primary: #001f54;
  --primary-hover: #0a1128;
  --primary-light: #034078;
  --primary-dark: #0a1128;
  --success: #24734b;
  --warning: #936119;
  --danger: #9f2f28;
  --info: #034078;

  --exp-primary: #001f54;
  --exp-primary-light: #034078;
  --exp-bg: #f2f5f9;
  --exp-white: #fefcfb;
  --exp-text: #17233a;
  --exp-muted: #66758a;
  --exp-border: rgba(3, 64, 120, 0.16);
  --exp-soft: #eaf0f7;

  --font-display: "Calistoga", Georgia, serif;
  --font-body: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-sans: var(--font-body);

  --fs-h1: clamp(2rem, 1.3rem + 3vw, 4rem);
  --fs-h2: clamp(1.75rem, 1.35rem + 1.7vw, 3rem);
  --fs-h3: clamp(1.5rem, 1.32rem + 0.8vw, 2rem);
  --fs-h4: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
  --fs-h5: clamp(1.125rem, 1.06rem + 0.25vw, 1.25rem);
  --fs-h6: 1rem;
  --fs-body: clamp(1rem, 0.97rem + 0.15vw, 1.125rem);
  --fs-small: 0.875rem;
  --fs-mini: 0.75rem;
  --fs-min: var(--fs-mini);
  --fs-btn: clamp(0.875rem, 0.84rem + 0.15vw, 1rem);
  --fs-label: clamp(0.875rem, 0.84rem + 0.15vw, 1rem);
  --fs-nav: clamp(0.875rem, 0.84rem + 0.15vw, 1rem);
  --lh-body: 1.65;

  --container: 1180px;
  --max: var(--container);
  --wrap: 1240px;
  --page-gutter: clamp(18px, 4vw, 32px);
  --section-space: clamp(56px, 7vw, 92px);
  --content-gap: clamp(28px, 5vw, 64px);

  --topbar-height: 48px;
  --navbar-height: 76px;
  --mobile-header-height: 58px;
  --topH: var(--topbar-height);
  --barH: var(--navbar-height);
  --header-height: calc(var(--topbar-height) + var(--navbar-height));
  --anchor-offset: calc(var(--navbar-height) + 28px);
  --internal-hero-height: clamp(330px, 42vw, 460px);

  --radius-sm: 9px;
  --radius: 14px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --exp-radius: 16px;
  --radius-small: 10px;

  --shadow-sm: 0 6px 18px rgba(10, 17, 40, 0.08);
  --shadow: 0 10px 28px rgba(10, 17, 40, 0.08);
  --shadow-md: 0 16px 38px rgba(10, 17, 40, 0.12);
  --shadow-lg: 0 24px 60px rgba(10, 17, 40, 0.2);
  --shadow-hover: 0 18px 40px rgba(10, 17, 40, 0.14);
  --shadow-card: 0 8px 24px rgba(10, 17, 40, 0.07);
  --exp-shadow: var(--shadow-sm);
  --exp-shadow-hover: var(--shadow-hover);

  --ease: cubic-bezier(.22,.61,.36,1);
  --transition: 220ms var(--ease);
  --exp-transition: var(--transition);
  --gradient-header: linear-gradient(110deg, #0a1128 0%, #001f54 56%, #034078 100%);
  --gradient-menu: linear-gradient(160deg, #0a1128 0%, #001f54 58%, #034078 100%);
  --gradient-footer: linear-gradient(155deg, #001f54 0%, #0a1128 72%);
  --grad-main: var(--gradient-header);
}

html,
body,
button,
input,
select,
textarea { font-family: var(--font-body) !important; }

.site-page {
  padding-top: var(--header-height) !important;
  color: var(--text);
  background: var(--warm-white) !important;
}

.site-page main,
.site-page #contenido { background: var(--warm-white); }

.site-page h1,
.site-page h2,
.site-page h3,
.site-page h4,
.site-page h5,
.site-page h6,
.site-page #contenido h1,
.site-page #contenido h2,
.site-page #contenido h3,
.site-page #contenido h4,
.site-page #contenido h5,
.site-page #contenido h6 {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  letter-spacing: -0.015em;
}

.site-page #contenido,
.site-page #contenido * { font-family: var(--font-body); }

.site-page #contenido h1,
.site-page #contenido h2,
.site-page #contenido h3,
.site-page #contenido h4,
.site-page #contenido h5,
.site-page #contenido h6 { font-family: var(--font-display) !important; }

.site-page #contenido h1 { font-size: var(--fs-h1) !important; line-height: 1.16 !important; }
.site-page #contenido h2 { font-size: var(--fs-h2) !important; line-height: 1.22 !important; }
.site-page #contenido h3 { font-size: var(--fs-h3) !important; line-height: 1.28 !important; }
.site-page #contenido h4 { font-size: var(--fs-h4) !important; line-height: 1.3 !important; }
.site-page #contenido h5 { font-size: var(--fs-h5) !important; line-height: 1.3 !important; }
.site-page #contenido h6 { font-size: var(--fs-h6) !important; line-height: 1.3 !important; }

.site-page .container,
.site-page #contenido .container,
.site-page main .container {
  width: min(100% - (2 * var(--page-gutter)), var(--container));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

.site-page .section,
.site-page main > section:not(.hero):not([class*="filter"]):not(.servicios-access) {
  padding-block: var(--section-space);
}

.site-page main > .hero + section:not([class*="filter"]):not(.servicios-access) {
  padding-top: var(--section-space);
}

.site-page p { line-height: var(--lh-body); }
.site-page .mini,
.site-page [class*="eyebrow"],
.site-page [class*="category"] {
  font-family: var(--font-body) !important;
  font-size: var(--fs-mini);
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

/* El inicio conserva su altura visual, con la imagen más visible. */
.site-page .hero--slider { margin-top: calc(var(--header-height) * -1); }
.site-page .slide { padding-top: calc(var(--header-height) + clamp(64px, 8vw, 96px)); }
.site-page .slide__overlay {
  background: linear-gradient(90deg, rgba(10,17,40,.74) 0%, rgba(0,31,84,.58) 48%, rgba(3,64,120,.22) 100%);
}
.site-page .slide h1,
.site-page .slide h2 { color: var(--warm-white); font-size: var(--fs-h1); }
.site-page .slide__content,
.site-page .slide__eyebrow,
.site-page .slide__subtitle,
.site-page .slide__lead { color: var(--warm-white); }

/* Héroes internos: una única altura y un único ritmo. */
.site-page .hero--internal,
.site-page .hero--servicios {
  height: auto;
  min-height: var(--internal-hero-height);
  margin-top: 0;
  padding: 0;
}

.site-page .hero--internal .hero__content,
.site-page .hero--servicios .hero__content {
  width: min(100% - (2 * var(--page-gutter)), var(--container));
  max-width: none;
  margin-inline: auto;
  padding: 62px 0;
}

.site-page .hero--internal h1,
.site-page .hero--servicios h1 { font-size: var(--fs-h1); color: var(--warm-white); }

/* Filtro compartido de Arbitraje, JPRD y Conciliación. */
.site-page .section--service-filter,
.site-page .section--arbitraje-filter,
.site-page .section--jprd-filter,
.site-page .section--conciliacion-filter {
  position: sticky;
  top: var(--navbar-height);
  z-index: 50;
  width: 100%;
  padding: 14px 0 !important;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
  background: rgba(254, 252, 251, 0.96);
  box-shadow: 0 8px 22px rgba(10,17,40,.05);
  backdrop-filter: blur(12px);
}

.site-page .service-filter,
.site-page .arbitraje-filter,
.site-page .jprd-filter,
.site-page .conciliacion-filter {
  width: 100%;
  display: flex;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 1px 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,31,84,.26) transparent;
  scroll-snap-type: x proximity;
}

.site-page .service-filter__btn,
.site-page .arbitraje-filter__btn,
.site-page .jprd-filter__btn,
.site-page .conciliacion-filter__btn {
  flex: 0 0 auto !important;
  min-height: 40px;
  padding: 9px 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--deep-navy);
  background: var(--warm-white);
  border: 1px solid rgba(0,31,84,.22);
  border-radius: var(--radius-pill);
  box-shadow: none;
  font-family: var(--font-body) !important;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
  scroll-snap-align: start;
  transition: color var(--transition), background-color var(--transition), border-color var(--transition);
}

.site-page .service-filter__btn:hover,
.site-page .service-filter__btn.is-active,
.site-page .arbitraje-filter__btn:hover,
.site-page .arbitraje-filter__btn.is-active,
.site-page .jprd-filter__btn:hover,
.site-page .jprd-filter__btn.is-active,
.site-page .conciliacion-filter__btn:hover,
.site-page .conciliacion-filter__btn.is-active {
  color: var(--warm-white);
  background: var(--prussian-blue);
  border-color: var(--prussian-blue);
  transform: none;
}

.site-page article[id],
.site-page section[id] { scroll-margin-top: var(--anchor-offset); }

/* Botón corporativo tipo blob, aplicado a todos los CTAs del sitio. */
.site-page .blob-btn,
.site-page .btn,
.site-page .btn-enviar,
.site-page .btn-mapa,
.site-page .btn-servicio,
.site-page .btn-documento,
.site-page .btn-descargar,
.site-page .servicio-card__link,
.site-page .servicios-contact__button,
.site-page .jprd-popup__btn {
  position: relative;
  isolation: isolate;
  min-height: 46px;
  padding: 11px 20px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--warm-white);
  background: var(--deep-navy);
  border: 1px solid var(--deep-navy);
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0,31,84,.15);
  font-family: var(--font-body) !important;
  font-size: var(--fs-btn);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-transform: none;
  transition: color 280ms ease, border-color 280ms ease, box-shadow 220ms ease, transform 180ms ease;
}

.site-page .blob-btn::after,
.site-page .btn::after,
.site-page .btn-enviar::after,
.site-page .btn-mapa::after,
.site-page .btn-servicio::after,
.site-page .btn-documento::after,
.site-page .btn-descargar::after,
.site-page .servicio-card__link::after,
.site-page .servicios-contact__button::after,
.site-page .jprd-popup__btn::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: -170%;
  width: 150%;
  aspect-ratio: 1;
  background: var(--prussian-blue);
  border-radius: 44% 56% 52% 48%;
  transform: translateX(-50%) rotate(0deg);
  transition: bottom 420ms var(--ease), transform 520ms var(--ease);
}

.site-page .blob-btn:hover,
.site-page .btn:hover,
.site-page .btn-enviar:hover,
.site-page .btn-mapa:hover,
.site-page .btn-servicio:hover,
.site-page .btn-documento:hover,
.site-page .btn-descargar:hover,
.site-page .servicio-card__link:hover,
.site-page .servicios-contact__button:hover,
.site-page .jprd-popup__btn:hover {
  color: var(--warm-white);
  border-color: var(--prussian-blue);
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(10,17,40,.2);
}

.site-page .blob-btn:hover::after,
.site-page .btn:hover::after,
.site-page .btn-enviar:hover::after,
.site-page .btn-mapa:hover::after,
.site-page .btn-servicio:hover::after,
.site-page .btn-documento:hover::after,
.site-page .btn-descargar:hover::after,
.site-page .servicio-card__link:hover::after,
.site-page .servicios-contact__button:hover::after,
.site-page .jprd-popup__btn:hover::after { bottom: -42%; transform: translateX(-50%) rotate(38deg); }

.site-page .btn--ghost,
.site-page .blob-btn--primary {
  color: var(--deep-navy);
  background: var(--warm-white);
  border-color: var(--deep-navy);
}

.site-page .blob-btn::before { border-color: var(--warm-white); }
.site-page .blob-btn__inner { background: var(--warm-white); }
.site-page .blob-btn__blob,
.site-page .blob-btn__inner::after { background: var(--prussian-blue); }
.site-page .blob-btn--secondary .blob-btn__inner { background: rgba(10,17,40,.38); }
.site-page .blob-btn--secondary .blob-btn__blob,
.site-page .blob-btn--secondary .blob-btn__inner::after { background: var(--warm-white); }

/* Tarjetas y superficies consistentes. */
.site-page .mission-grid article,
.site-page .service-card,
.site-page .servicio-card,
.site-page .transparencia-card,
.site-page .equipo-card,
.site-page .program,
.site-page [class*="document-card"] {
  border-color: var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

/* Entrada corporativa: breve, uniforme y respetuosa con reduced-motion. */
.js-ready .site-page :is(.reveal, .reveal-left, .reveal-right, .fx-left, .fx-right, .fx-bottom, .fx-top, .fx-scale):not(.is-visible) { opacity: 0 !important; }
.js-ready .site-page :is(.reveal, .fx-bottom):not(.is-visible) { transform: translate3d(0, 24px, 0) !important; }
.js-ready .site-page :is(.reveal-left, .fx-left):not(.is-visible) { transform: translate3d(-32px, 6px, 0) !important; }
.js-ready .site-page :is(.reveal-right, .fx-right):not(.is-visible) { transform: translate3d(32px, 6px, 0) !important; }
.js-ready .site-page .fx-top:not(.is-visible) { transform: translate3d(0, -22px, 0) !important; }
.js-ready .site-page .fx-scale:not(.is-visible) { transform: scale(.975) translate3d(0, 14px, 0) !important; }

.site-page :is(.reveal, .reveal-left, .reveal-right, .fx-left, .fx-right, .fx-bottom, .fx-top, .fx-scale) {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 560ms var(--ease), transform 560ms var(--ease);
}

.site-page .fx-delay-1 { transition-delay: 70ms; }
.site-page .fx-delay-2 { transition-delay: 140ms; }
.site-page .fx-delay-3 { transition-delay: 210ms; }
.site-page .fx-delay-4 { transition-delay: 280ms; }

/* Botones: mismo alto, contraste y alineación en todas las páginas. */
.site-page :is(.btn, .btn-mapa, .btn-servicio, .btn-enviar, .btn-documento, .btn-descargar) {
  min-height: 48px;
  border-radius: 12px;
  font-weight: 750;
}
.site-page .btn--primary {
  color: var(--warm-white);
  background: var(--deep-navy);
  border-color: var(--deep-navy);
}
.site-page .btn--ghost {
  color: var(--deep-navy);
  background: var(--warm-white);
  border-color: rgba(0,31,84,.34);
}
.site-page .btn--ghost:hover {
  color: var(--warm-white);
  background: var(--yale-blue);
  border-color: var(--yale-blue);
}

@media (max-width: 700px) {
  .site-page :is(.fx-delay-1, .fx-delay-2, .fx-delay-3, .fx-delay-4) { transition-delay: 0ms; }
  .js-ready .site-page :is(.reveal-left, .fx-left, .reveal-right, .fx-right):not(.is-visible) {
    transform: translate3d(0, 22px, 0) !important;
  }
}

/* WhatsApp flotante. */
.whatsapp-btn {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 9000;
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  color: var(--warm-white);
  background: #25d366;
  border: 2px solid rgba(254,252,251,.88);
  border-radius: 50%;
  box-shadow: 0 10px 28px rgba(10,17,40,.24);
  animation: whatsapp-breathe 2.6s ease-in-out infinite;
  transition: background-color 180ms ease, transform 180ms ease;
}
.whatsapp-btn i { color: inherit; font-size: 1.75rem; line-height: 1; animation: whatsapp-beat 2.6s ease-in-out infinite; }
.whatsapp-btn:hover { color: var(--warm-white); background: var(--prussian-blue); transform: translateY(-3px); }
.whatsapp-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@keyframes whatsapp-breathe {
  0%, 100% { box-shadow: 0 10px 28px rgba(10,17,40,.24), 0 0 0 0 rgba(37,211,102,.35); }
  70% { box-shadow: 0 10px 28px rgba(10,17,40,.24), 0 0 0 14px rgba(37,211,102,0); }
}
@keyframes whatsapp-beat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }

/* Aviso de cookies. */
.cookieNotice {
  position: fixed;
  right: var(--page-gutter);
  bottom: var(--page-gutter);
  left: var(--page-gutter);
  z-index: 11000;
  width: min(calc(100% - (2 * var(--page-gutter))), 760px);
  margin-inline: auto;
  padding: 18px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 18px;
  color: var(--warm-white);
  background: rgba(10,17,40,.97);
  border: 1px solid rgba(254,252,251,.16);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.cookieNotice[hidden] { display: none; }
.cookieNotice p { margin: 0; color: rgba(254,252,251,.86); font-size: .875rem; line-height: 1.5; }
.cookieNotice a { color: var(--warm-white); text-decoration: underline; text-underline-offset: 3px; }
.cookieNotice__actions { display: flex; gap: 8px; }
.cookieNotice button { min-height: 40px; padding: 8px 14px; color: var(--prussian-blue); background: var(--warm-white); border: 1px solid var(--warm-white); border-radius: var(--radius-pill); font-size: .8125rem; font-weight: 800; cursor: pointer; }
.cookieNotice button[data-cookie="essential"] { color: var(--warm-white); background: transparent; }

/* Páginas legales. */
.legal-main { background: var(--surface-soft); }
.legal-hero { padding: clamp(58px, 8vw, 92px) 0; color: var(--warm-white); background: var(--gradient-header); }
.legal-hero h1 { color: var(--warm-white); }
.legal-hero p { max-width: 64ch; margin: 0; color: rgba(254,252,251,.86); }
.legal-layout { display: grid; grid-template-columns: minmax(0, 1fr); }
.legal-card { max-width: 900px; margin-inline: auto; padding: clamp(26px, 5vw, 54px); background: var(--warm-white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.legal-card h2 { margin-top: 1.4em; font-size: var(--fs-h3); }
.legal-card h2:first-child { margin-top: 0; }
.legal-card a { color: var(--yale-blue); text-decoration: underline; text-underline-offset: 3px; }
.legal-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.legal-form .field--wide { grid-column: 1 / -1; }
.legal-form label { display: grid; gap: 7px; color: var(--deep-navy); font-size: var(--fs-label); font-weight: 700; }
.legal-form input,
.legal-form select,
.legal-form textarea { width: 100%; min-height: 48px; padding: 11px 13px; color: var(--ink); background: var(--warm-white); border: 1px solid var(--border-dark); border-radius: var(--radius-sm); }
.legal-form textarea { min-height: 130px; resize: vertical; }
.legal-form .check { grid-template-columns: auto 1fr; align-items: start; font-weight: 500; }
.legal-form .check input { width: 18px; min-height: 18px; margin-top: 4px; }
.form-status { grid-column: 1 / -1; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--blue-soft); }

.hero--legal {
  background-image: linear-gradient(90deg, rgba(10,17,40,.78), rgba(0,31,84,.52)), url("../img/slider/slider2.jpg");
}
.legal-section { padding-block: var(--section-space); background: var(--surface-soft); }
.legal-layout { grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: clamp(28px, 5vw, 68px); }
.legal-index { position: sticky; top: calc(var(--navbar-height) + 28px); display: grid; gap: 8px; padding: 20px; background: var(--warm-white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.legal-index strong { margin-bottom: 6px; color: var(--prussian-blue); }
.legal-index a { padding-block: 5px; color: var(--text-soft); font-size: var(--fs-small); }
.legal-index a:hover { color: var(--deep-navy); }
.legal-content,
.claim-shell { min-width: 0; max-width: 900px; padding: clamp(26px, 5vw, 54px); background: var(--warm-white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.legal-content h2,
.claim-shell h2 { margin: 1.65em 0 .55em; font-size: var(--fs-h3); scroll-margin-top: var(--anchor-offset); }
.legal-content h2:first-of-type,
.claim-shell h2:first-child { margin-top: 0; }
.legal-content p,
.legal-content li { color: var(--text-main); line-height: 1.72; }
.legal-content ul { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.legal-content a,
.claim-shell a { color: var(--yale-blue); text-decoration: underline; text-underline-offset: 3px; }
.legal-updated { display: inline-flex; padding: 7px 11px; color: var(--deep-navy) !important; background: var(--blue-soft); border-radius: var(--radius-pill); font-size: var(--fs-small); font-weight: 700; }
.legal-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.legal-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.legal-table th,
.legal-table td { padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.legal-table th { color: var(--warm-white); background: var(--deep-navy); }
.legal-table tr:last-child td { border-bottom: 0; }

.claim-shell { margin-inline: auto; }
.claim-intro { margin-bottom: 30px; padding-bottom: 26px; border-bottom: 1px solid var(--border); }
.claim-form { display: grid; gap: 24px; }
.claim-form fieldset { margin: 0; padding: clamp(18px, 3vw, 28px); border: 1px solid var(--border); border-radius: var(--radius); }
.claim-form legend { padding: 0 8px; color: var(--deep-navy); font-family: var(--font-display); font-size: var(--fs-h4); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.form-grid__full { grid-column: 1 / -1; }
.form-grid label { display: grid; align-content: start; gap: 7px; color: var(--deep-navy); font-size: var(--fs-label); font-weight: 700; }
.form-grid input,
.form-grid select,
.form-grid textarea,
.contact-form input,
.contact-form textarea { width: 100%; min-height: 48px; padding: 11px 13px; color: var(--ink); background: var(--warm-white); border: 1px solid var(--border-dark); border-radius: var(--radius-sm); }
.form-grid textarea,
.contact-form textarea { resize: vertical; }
.option-row { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 18px; }
.option-row label,
.claim-declaration { display: flex; align-items: flex-start; gap: 9px; color: var(--text-main); }
.option-row input,
.claim-declaration input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--deep-navy); }
.form-status { margin-bottom: 24px; }
.form-status h2 { margin-top: 0; }
.form-status--success { color: #165735; background: var(--success-bg); border: 1px solid rgba(36,115,75,.28); }
.form-status--error { color: var(--danger); background: var(--danger-bg); border: 1px solid rgba(159,47,40,.24); }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form .form-group--full { grid-column: 1 / -1; }
.form-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--text-main); line-height: 1.45; }
.contact-form .form-consent input { flex: 0 0 auto; width: 18px; min-height: 18px; margin-top: 3px; accent-color: var(--deep-navy); }
.form-consent a { color: var(--yale-blue); text-decoration: underline; text-underline-offset: 3px; }
.error-page { min-height: 70vh; display: grid; place-items: center; background: var(--surface-soft); }
.error-page__content { padding-block: var(--section-space); text-align: center; }

@media print {
  .print-organigrama .siteHeader,
  .print-organigrama .hero,
  .print-organigrama .estructura-heading,
  .print-organigrama .estructura-download,
  .print-organigrama .siteFooter,
  .print-organigrama .whatsapp-btn { display: none !important; }
  .print-organigrama .organigrama { box-shadow: none !important; }
}

@media (max-width: 980px) {
  .site-page { padding-top: var(--mobile-header-height) !important; }
  .site-page .hero--slider { margin-top: calc(var(--mobile-header-height) * -1); }
  .site-page .slide { padding-top: calc(var(--mobile-header-height) + 72px); }
  .site-page .section--service-filter,
  .site-page .section--arbitraje-filter,
  .site-page .section--jprd-filter,
  .site-page .section--conciliacion-filter { top: var(--mobile-header-height); }
  .site-page .hero--internal .hero__content,
  .site-page .hero--servicios .hero__content { padding-block: 52px; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-index { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal-index strong { grid-column: 1 / -1; }
  .legal-content { max-width: none; }
}

@media (max-width: 700px) {
  .site-page main :is(.section__header, .servicios-heading, .estructura-heading) { text-align: center; }
  .site-page main :is(.section__intro, .program__text, .clausula-text p, .reglamento-text p, .etica-text p, .presentacion p, .materias p, .sede-principal-text) {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
  }
  .site-page .hero--internal,
  .site-page .hero--servicios { min-height: 320px; }
  .site-page .hero--internal .hero__content,
  .site-page .hero--servicios .hero__content { padding-block: 44px; text-align: center; }
  .site-page .hero--internal h1,
  .site-page .hero--servicios h1,
  .site-page .hero--internal .hero__subtitle,
  .site-page .hero--servicios .hero__subtitle { margin-inline: auto; }
  .site-page .slide h1,
  .site-page .slide h2,
  .site-page .slide__subtitle,
  .site-page .slide__lead { text-align: center; margin-inline: auto; }
  .site-page .slide__actions { justify-content: center; }
  .legal-form { grid-template-columns: 1fr; }
  .legal-form .field--wide { grid-column: auto; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid__full { grid-column: auto; }
  .legal-index { grid-template-columns: 1fr; }
  .legal-content,
  .claim-shell { padding: 22px 18px; }
  .cookieNotice { grid-template-columns: 1fr; bottom: 14px; }
  .cookieNotice__actions { flex-wrap: wrap; }
  .whatsapp-btn { width: 54px; height: 54px; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); }
  .whatsapp-btn i { font-size: 1.55rem; }
}

@media (hover: none), (prefers-reduced-motion: reduce) {
  .whatsapp-btn,
  .whatsapp-btn i { animation: none; }
  .site-page .blob-btn:hover,
  .site-page .btn:hover,
  .site-page .btn-enviar:hover,
  .site-page .btn-mapa:hover,
  .site-page .btn-servicio:hover,
  .site-page .btn-documento:hover,
  .site-page .btn-descargar:hover,
  .site-page .servicio-card__link:hover,
  .site-page .servicios-contact__button:hover { transform: none; }
}
