

:root {
  --graphite: #102234;
  --graphite-soft: #102234;
  --ink: #102234;
  --ivory: #ECE6DC;
  --ivory-soft: #ECE6DC;
  --copper: #C89B5B;
  --copper-light: #C89B5B;
  --bronze: #846036;
  --whatsapp: #536573;
  --whatsapp-dark: #34516A;
  --muted-dark: rgba(236,230,220, 0.64);
  --muted-light: #846036;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

/* Phase 1 candidate: integrated labor-tools entry point. */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.labor-tools {
  position: relative;
  isolation: isolate;
  padding: 102px 0 108px;
  overflow: hidden;
  background:
    linear-gradient(rgba(132,96,54, 0.05) 1px, transparent 1px),
    var(--ivory);
  background-size: 100% 82px;
}

.labor-tools::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -180px;
  left: 50%;
  width: 680px;
  height: 360px;
  border-radius: 50%;
  background: rgba(200,155,91, 0.11);
  filter: blur(110px);
  transform: translateX(-50%);
  pointer-events: none;
}

.labor-tools .section-heading {
  margin-bottom: 50px;
}

.labor-tools .eyebrow {
  color: var(--bronze);
}

.labor-tools-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgba(132,96,54, 0.26);
  background: rgba(132,96,54, 0.22);
  box-shadow: 0 28px 80px rgba(16,34,52, 0.1);
}

.labor-tool-card {
  position: relative;
  min-width: 0;
  min-height: 390px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 43px 42px 40px;
  overflow: hidden;
  background: var(--graphite);
  color: var(--ivory);
}

.labor-tool-card + .labor-tool-card {
  border-left: 1px solid rgba(200,155,91, 0.24);
  background: var(--graphite-soft);
}

.labor-tool-card::after {
  content: "";
  position: absolute;
  right: -72px;
  bottom: -110px;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(200,155,91, 0.16);
  border-radius: 50%;
  pointer-events: none;
}

.labor-tool-number {
  position: absolute;
  top: 34px;
  right: 38px;
  color: rgba(200,155,91, 0.4);
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.labor-tool-kicker {
  margin: 0 0 30px;
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
}

.labor-tool-kicker::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 1px;
  margin: 0 11px 3px 0;
  background: currentColor;
}

.labor-tool-card h3 {
  max-width: 430px;
  margin: 0 0 17px;
  font-family: var(--serif);
  font-size: clamp(30px, 3.2vw, 42px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.labor-tool-card > p:not(.labor-tool-kicker) {
  max-width: 470px;
  margin: 0 0 32px;
  color: var(--muted-dark);
  font-size: 15px;
  line-height: 1.72;
}

.labor-tool-button {
  position: relative;
  z-index: 1;
  min-width: min(100%, 285px);
  margin-top: auto;
}

.labor-tool-button > span {
  font-size: 18px;
  line-height: 0;
}

.labor-tool-button:disabled {
  border-color: rgba(236,230,220, 0.24);
  color: rgba(236,230,220, 0.55);
  cursor: not-allowed;
  opacity: 0.82;
}

.labor-tool-button:disabled:hover {
  border-color: rgba(236,230,220, 0.24);
  color: rgba(236,230,220, 0.55);
  transform: none;
}

.labor-tools-direct {
  min-height: 118px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border: 1px solid rgba(132,96,54, 0.22);
  border-top: 0;
  padding: 27px 34px;
  background: rgba(248,245,239, 0.68);
}

.labor-tools-direct p {
  margin: 0 0 6px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 21px;
  line-height: 1.25;
}

.labor-tools-direct span {
  color: var(--muted-light);
  font-size: 12px;
  line-height: 1.5;
}

.labor-tools-whatsapp {
  min-width: 230px;
  border-color: var(--bronze);
  background: var(--graphite);
  color: var(--ivory);
}

.labor-tools-whatsapp:hover {
  border-color: var(--copper-light);
  background: var(--bronze);
  color: var(--ivory);
}

.labor-assistant-shell {
  border: 1px solid rgba(132,96,54, 0.26);
  border-top: 0;
  background: #F8F5EF;
  box-shadow: 0 24px 70px rgba(16,34,52, 0.09);
  scroll-margin-top: 96px;
}

.labor-assistant-panel {
  width: min(100%, 940px);
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 42px;
  margin: 0 auto;
  padding: 50px 48px 30px;
  color: var(--ink);
}

.labor-assistant-question,
.labor-assistant-result {
  width: min(100%, 780px);
  margin: 0 auto;
}

.labor-assistant-eyebrow,
.labor-assistant-result-kicker {
  margin: 0 0 13px;
  color: var(--bronze);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
}

.labor-assistant-question h3,
.labor-assistant-result h3 {
  margin: 0 0 29px;
  font-family: var(--serif);
  font-size: clamp(29px, 3.4vw, 43px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.12;
}

.labor-assistant-question h3:focus,
.labor-assistant-result h3:focus,
#calculator-title:focus {
  outline: 2px solid var(--copper);
  outline-offset: 7px;
}

.labor-assistant-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.labor-assistant-option {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid rgba(132,96,54, 0.28);
  border-radius: 2px;
  padding: 15px 18px;
  background: rgba(236,230,220, 0.46);
  color: var(--ink);
  cursor: pointer;
  font: 700 13px/1.4 var(--sans);
  text-align: left;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.labor-assistant-option:hover,
.labor-assistant-option:focus-visible,
.labor-assistant-option[aria-pressed="true"] {
  border-color: var(--copper);
  background: rgba(200,155,91, 0.2);
  outline: none;
  transform: translateY(-1px);
}

.labor-assistant-option > span:last-child {
  color: var(--bronze);
  font-size: 18px;
}

.labor-assistant-date {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.labor-assistant-date label {
  grid-column: 1 / -1;
  color: var(--bronze);
  font-size: 12px;
  font-weight: 700;
}

.labor-assistant-date input {
  min-height: 54px;
  border: 1px solid rgba(132,96,54, 0.34);
  border-radius: 2px;
  padding: 0 16px;
  background: #F8F5EF;
  color: var(--ink);
  font: 700 15px var(--sans);
}

.labor-assistant-date input:focus {
  border-color: var(--copper);
  outline: 2px solid rgba(200,155,91, 0.22);
}

.labor-assistant-options-compact {
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.labor-assistant-options-compact .button {
  width: 100%;
}

.labor-assistant-result > p:not(.labor-assistant-result-kicker, .labor-assistant-disclaimer) {
  max-width: 750px;
  margin: 0;
  color: var(--muted-light);
  font-size: 15px;
  line-height: 1.72;
}

.labor-assistant-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.labor-assistant-result-actions .button {
  min-width: 220px;
}

.labor-assistant-next-steps {
  margin-top: 28px;
}

.labor-assistant-next-steps h4,
.labor-tool-next-steps h4,
.labor-tool-next-title {
  margin: 0 0 14px;
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.35;
}

.labor-assistant-next-steps .labor-assistant-result-actions {
  margin-top: 0;
}

.labor-assistant-related-link {
  flex-basis: 100%;
  width: fit-content;
  margin-top: 6px;
  color: var(--bronze);
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.labor-assistant-disclaimer {
  margin: 30px 0 0;
  border-left: 2px solid var(--copper);
  padding: 10px 0 10px 15px;
  color: #846036;
  font-size: 11px;
  line-height: 1.6;
}

.labor-assistant-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px 18px;
  border-top: 1px solid rgba(132,96,54, 0.18);
  padding-top: 20px;
}

.labor-assistant-controls > span:first-child {
  margin-right: auto;
}

.labor-assistant-controls button:first-child {
  margin-right: auto;
}

.labor-assistant-controls button,
.labor-assistant-controls a {
  border: 0;
  padding: 4px 0;
  background: transparent;
  color: var(--bronze);
  cursor: pointer;
  font: 700 11px/1.4 var(--sans);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.labor-assistant-controls button:hover,
.labor-assistant-controls a:hover {
  color: var(--ink);
}

.labor-whatsapp-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16,34,52, 0.72);
  backdrop-filter: blur(5px);
}

.labor-whatsapp-dialog {
  position: relative;
  width: min(100%, 640px);
  max-height: min(88vh, 760px);
  overflow-y: auto;
  border: 1px solid rgba(132,96,54, 0.22);
  border-radius: 4px;
  padding: 38px;
  background: var(--ivory);
  box-shadow: 0 30px 90px rgba(16,34,52, 0.36);
}

.labor-whatsapp-close {
  position: absolute;
  top: 12px;
  right: 15px;
  border: 0;
  padding: 4px 8px;
  background: transparent;
  color: var(--bronze);
  cursor: pointer;
  font-size: 26px;
  line-height: 1;
}

.labor-whatsapp-kicker {
  margin: 0 0 10px;
  color: var(--copper);
  font: 700 11px/1.3 var(--sans);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.labor-whatsapp-dialog h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.14;
}

.labor-whatsapp-dialog > p:not(.labor-whatsapp-kicker) {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.62;
}

.labor-whatsapp-dialog .labor-whatsapp-privacy-link {
  font-size: 14px;
}

.labor-whatsapp-privacy-link a {
  color: var(--ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.labor-whatsapp-preview {
  margin-top: 22px;
  border-left: 3px solid var(--copper);
  padding: 17px 19px;
  background: rgba(132,96,54, 0.06);
}

.labor-whatsapp-preview p {
  margin: 0;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
}

.labor-whatsapp-preview p + p {
  margin-top: 5px;
}

.labor-whatsapp-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-top: 24px;
}

.labor-whatsapp-actions .button {
  min-height: 68px;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  text-align: center;
}

.labor-whatsapp-actions-preview {
  grid-template-columns: 1fr;
}

.labor-whatsapp-actions small {
  font-size: 10px;
  font-weight: 500;
  line-height: 1.25;
  opacity: 0.78;
}

@media (max-width: 900px) {
  .labor-tools {
    padding: 78px 0 82px;
  }

  .labor-tools-grid {
    grid-template-columns: 1fr;
  }

  .labor-tool-card {
    min-height: 345px;
    padding: 36px 32px 34px;
  }

  .labor-tool-card + .labor-tool-card {
    border-top: 1px solid rgba(200,155,91, 0.24);
    border-left: 0;
  }

  .labor-tools-direct {
    align-items: flex-start;
    flex-direction: column;
    padding: 29px 30px 31px;
  }

  .labor-tools-whatsapp {
    width: 100%;
  }

  .labor-assistant-panel {
    min-height: 380px;
    padding: 42px 32px 26px;
  }
}

@media (max-width: 560px) {
  .labor-tools {
    padding: 68px 0 72px;
  }

  .labor-tools .section-heading {
    margin-bottom: 38px;
  }

  .labor-tool-card {
    min-height: 0;
    padding: 33px 24px 29px;
  }

  .labor-tool-number {
    top: 28px;
    right: 23px;
    font-size: 23px;
  }

  .labor-tool-kicker {
    max-width: calc(100% - 58px);
    margin-bottom: 24px;
  }

  .labor-tool-card h3 {
    font-size: 31px;
  }

  .labor-tool-card > p:not(.labor-tool-kicker) {
    margin-bottom: 27px;
    font-size: 14px;
  }

  .labor-tool-button {
    width: 100%;
    min-height: 54px;
    padding-inline: 16px;
  }

  .labor-tools-direct {
    padding: 26px 23px 28px;
  }

  .labor-tools-direct p {
    font-size: 20px;
  }

  .labor-assistant-panel {
    min-height: 0;
    gap: 32px;
    padding: 34px 22px 24px;
  }

  .labor-assistant-question h3,
  .labor-assistant-result h3 {
    margin-bottom: 24px;
    font-size: 29px;
  }

  .labor-assistant-options,
  .labor-assistant-options-compact {
    grid-template-columns: 1fr;
  }

  .labor-assistant-option {
    min-height: 59px;
  }

  .labor-assistant-date {
    grid-template-columns: 1fr;
  }

  .labor-assistant-date input,
  .labor-assistant-date > .button,
  .labor-assistant-options-compact {
    grid-column: 1;
    width: 100%;
  }

  .labor-assistant-result-actions {
    flex-direction: column;
  }

  .labor-assistant-result-actions .button {
    width: 100%;
    min-width: 0;
  }

  .labor-assistant-controls {
    align-items: flex-start;
    justify-content: flex-start;
  }

  .labor-assistant-controls button:first-child,
  .labor-assistant-controls > span:first-child {
    margin-right: 0;
  }
}

* {
  box-sizing: border-box;
}

html {
  max-width: 100%;
  overflow-x: clip;
  scroll-behavior: smooth;
  scroll-padding-top: 86px;
}

body {
  margin: 0;
  max-width: 100%;
  overflow-x: clip;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}

body.mobile-menu-open {
  position: fixed;
  inset: calc(-1 * var(--menu-scroll-position, 0px)) 0 auto;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

main {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--copper-light);
  outline-offset: 4px;
}

.container {
  width: min(1180px, calc(100% - 56px));
  margin: 0 auto;
}

.site-header {
  position: sticky;
  inset: 0 0 auto;
  z-index: 50;
  isolation: isolate;
  border-bottom: 1px solid rgba(236,230,220, 0.1);
  background: rgba(16,34,52, 0.94);
  backdrop-filter: blur(16px);
}

.header-inner {
  width: min(1240px, calc(100% - 48px));
  min-height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: var(--ivory);
  flex: 0 0 auto;
}

.brand-mark {
  width: 46px;
  height: 43px;
  display: grid;
  place-items: center;
  border: 0;
  transform: none;
}

.brand-mark span {
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: -0.16em;
  line-height: 1;
  padding-right: 0.16em;
  transform: none;
  text-shadow: 0 0 16px rgba(200,155,91, 0.18);
}

.brand-copy {
  display: grid;
  gap: 3px;
}

.brand-copy strong {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.brand-copy small {
  color: var(--muted-dark);
  font-size: 9px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 29px);
  color: var(--ivory);
}

.main-nav a {
  position: relative;
  padding: 31px 0 27px;
  color: rgba(236,230,220, 0.75);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 180ms ease;
}

.main-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 20px;
  left: 0;
  height: 1px;
  background: var(--copper);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

.main-nav a:hover {
  color: var(--ivory);
}

.main-nav a:hover::after {
  transform: scaleX(1);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.whatsapp-chip {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid rgba(200,155,91, 0.75);
  padding: 8px 14px 8px 9px;
  color: var(--ivory);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.whatsapp-chip:hover {
  border-color: var(--copper-light);
  background: rgba(200,155,91, 0.12);
  color: var(--ivory);
  transform: translateY(-1px);
}

.whatsapp-icon {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--copper);
  color: var(--graphite);
  box-shadow: inset 0 0 0 1px rgba(236,230,220, 0.16);
}

.whatsapp-icon svg,
.whatsapp-chip .whatsapp-icon svg,
.button .whatsapp-icon svg {
  width: 16px;
  height: 16px;
}

.menu-button {
  width: 44px;
  height: 44px;
  display: none;
  place-items: center;
  border: 0;
  background: transparent;
  padding: 10px;
}

.menu-button span {
  width: 24px;
  height: 2px;
  display: block;
  background: var(--ivory);
  transition: transform 180ms ease, opacity 180ms ease;
}

.hero {
  position: relative;
  overflow: hidden;
  background: var(--graphite);
  color: var(--ivory);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.25;
  background-image: linear-gradient(rgba(200,155,91, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(200,155,91, 0.07) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(to right, black, transparent 62%);
}

.hero-glow {
  position: absolute;
  width: 700px;
  height: 700px;
  right: -220px;
  bottom: -360px;
  border-radius: 50%;
  background: rgba(200,155,91, 0.16);
  filter: blur(100px);
}

.hero-grid {
  position: relative;
  min-height: 690px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 0.9fr);
  align-items: center;
  gap: clamp(48px, 7vw, 96px);
  padding-top: 58px;
  padding-bottom: 58px;
}

.hero-copy {
  max-width: 615px;
}

.eyebrow {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--copper-light);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: 1.4;
  text-transform: uppercase;
}

.eyebrow::before {
  content: "";
  width: 36px;
  height: 1px;
  background: currentColor;
}

.services .eyebrow,
.process .eyebrow,
.calculator-section .eyebrow,
.faq .eyebrow {
  color: var(--bronze);
}

.hero h1 {
  max-width: 670px;
  margin: 24px 0 24px;
  font-family: var(--serif);
  font-size: clamp(43px, 5.25vw, 72px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.03;
  text-wrap: balance;
}

.hero-lead {
  max-width: 520px;
  margin: 0 0 34px;
  color: var(--muted-dark);
  font-size: 17px;
  line-height: 1.75;
}

.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.button {
  min-height: 51px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid transparent;
  padding: 14px 22px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  transition: transform 180ms ease, background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.button-primary {
  background: var(--copper);
  color: var(--graphite);
  box-shadow: 0 12px 34px rgba(200,155,91, 0.18);
}

.button-primary:hover {
  background: var(--copper-light);
  color: var(--graphite);
}

.whatsapp-action {
  padding-top: 11px;
  padding-bottom: 11px;
}

.whatsapp-action .whatsapp-icon {
  width: 29px;
  height: 29px;
  flex-basis: 29px;
  background: var(--graphite);
  color: var(--ivory);
  transition: background 180ms ease, transform 180ms ease;
}

.whatsapp-action:hover .whatsapp-icon {
  background: var(--graphite-soft);
  transform: scale(1.04);
}

.button-secondary {
  border-color: rgba(236,230,220, 0.3);
  color: var(--ivory);
}

.button-secondary:hover {
  border-color: var(--copper-light);
  color: var(--copper-light);
}

.hero-trust {
  margin-top: 34px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 22px;
  color: rgba(236,230,220, 0.55);
  font-size: 11px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.hero-trust span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.hero-trust span::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--copper);
}

.portrait-frame {
  position: relative;
  width: min(100%, 465px);
  justify-self: end;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(200,155,91, 0.45);
  background: var(--graphite-soft);
  box-shadow: 0 28px 80px rgba(16,34,52, 0.35);
}

.portrait-source {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, rgba(16,34,52, 0.32), transparent 38%), url("/assets/vianney-alvarado.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
}

.portrait-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, rgba(16,34,52, 0.88), transparent 34%);
}

.portrait-line {
  position: absolute;
  z-index: 2;
  right: 22px;
  top: 22px;
  width: 74px;
  height: 74px;
  border-top: 1px solid var(--copper);
  border-right: 1px solid var(--copper);
}

.portrait-caption {
  position: absolute;
  z-index: 3;
  right: 25px;
  bottom: 23px;
  left: 25px;
  display: grid;
  gap: 5px;
}

.portrait-caption span {
  font-family: var(--serif);
  font-size: 22px;
}

.portrait-caption small {
  color: var(--muted-dark);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.services {
  padding: 104px 0 112px;
  background: var(--ivory);
}

.section-heading {
  max-width: 760px;
  margin: 0 auto 58px;
  text-align: center;
}

.eyebrow-centered::after {
  content: "";
  width: 36px;
  height: 1px;
  background: currentColor;
}

.section-heading h2 {
  margin: 18px 0 14px;
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.section-heading > p:last-child {
  max-width: 650px;
  margin: 0 auto;
  color: var(--muted-light);
  font-size: 15px;
  line-height: 1.75;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid rgba(16,34,52, 0.13);
}

.service-card {
  position: relative;
  min-height: 335px;
  padding: 31px 25px 29px;
  border-right: 1px solid rgba(16,34,52, 0.13);
  transition: background 200ms ease, transform 200ms ease;
}

.service-card:last-child {
  border-right: 0;
}

.service-card:hover {
  z-index: 2;
  background: #F8F5EF;
  transform: translateY(-5px);
  box-shadow: 0 20px 50px rgba(16,34,52, 0.08);
}

.service-number {
  display: block;
  margin-bottom: 39px;
  color: var(--muted-light);
  font-family: var(--serif);
  font-size: 12px;
  letter-spacing: 0.12em;
}

.service-icon {
  width: 53px;
  height: 53px;
  margin-bottom: 25px;
  display: grid;
  place-items: center;
  border: 1px solid var(--copper);
  border-radius: 50%;
  color: var(--copper);
}

.service-icon svg {
  width: 23px;
  height: 23px;
}

.service-card h3 {
  margin: 0 0 13px;
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 400;
  line-height: 1.2;
}

.service-card p {
  margin: 0;
  color: var(--muted-light);
  font-size: 13px;
  line-height: 1.65;
}

.audience-block {
  margin-top: 78px;
  padding-top: 72px;
  border-top: 1px solid rgba(16,34,52, 0.13);
}

.audience-intro {
  max-width: 790px;
  margin-bottom: 38px;
}

.audience-intro h2 {
  max-width: 690px;
  margin: 17px 0 13px;
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 46px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.audience-intro > p:last-child {
  margin: 0;
  color: var(--muted-light);
  font-size: 15px;
  line-height: 1.7;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgba(16,34,52, 0.14);
  box-shadow: 0 24px 60px rgba(16,34,52, 0.08);
}

.audience-card {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: 44px 46px 40px;
  overflow: hidden;
  contain: paint;
}

.audience-card::after {
  position: absolute;
  right: 28px;
  bottom: -35px;
  font-family: var(--serif);
  font-size: 145px;
  line-height: 1;
  opacity: 0.045;
  pointer-events: none;
}

.audience-card-worker {
  background: var(--graphite);
  color: var(--ivory);
}

.audience-card-worker::after {
  content: "01";
}

.audience-card-company {
  border-left: 1px solid rgba(16,34,52, 0.14);
  background: #F8F5EF;
  color: var(--ink);
}

.audience-card-company::after {
  content: "02";
}

.audience-card-label {
  display: flex;
  align-items: center;
  gap: 13px;
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.audience-card-company .audience-card-label {
  color: var(--bronze);
}

.audience-card-icon {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.audience-card-icon svg {
  width: 21px;
  height: 21px;
}

.audience-card h3 {
  max-width: 460px;
  margin: 32px 0 25px;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.audience-card ul {
  width: 100%;
  margin: 0 0 34px;
  padding: 0;
  display: grid;
  gap: 13px;
  list-style: none;
}

.audience-card li {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--muted-dark);
  font-size: 13px;
  line-height: 1.5;
}

.audience-card-company li {
  color: var(--muted-light);
}

.audience-card li svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  color: var(--copper-light);
}

.audience-card-company li svg {
  color: var(--copper);
}

.audience-link {
  position: relative;
  z-index: 1;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  min-height: 44px;
  padding: 11px 0;
  border-bottom: 1px solid currentColor;
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.audience-card-company .audience-link {
  color: var(--bronze);
}

.audience-link svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  transition: transform 180ms ease;
}

.audience-link:hover svg {
  transform: translateX(4px);
}

.audience-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.audience-card-company:hover .audience-link {
  color: var(--ivory);
}

.about {
  overflow: hidden;
  padding: 110px 0;
  background: var(--graphite);
  color: var(--ivory);
}

.about-grid {
  display: grid;
  grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(60px, 8vw, 112px);
}

.about-image-wrap {
  position: relative;
  width: min(100%, 500px);
  aspect-ratio: 1 / 1;
}

.about-image-wrap img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.03);
}

.about-image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(16,34,52, 0.9), transparent 48%);
  pointer-events: none;
}

.about-image-border {
  position: absolute;
  z-index: 2;
  top: -20px;
  left: -20px;
  width: 120px;
  height: 120px;
  border-top: 1px solid var(--copper);
  border-left: 1px solid var(--copper);
}

.about-image-note {
  position: absolute;
  z-index: 3;
  right: 25px;
  bottom: 24px;
  left: 25px;
  display: grid;
  gap: 7px;
}

.about-image-note strong {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
}

.about-image-note span {
  color: var(--muted-dark);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.about-copy h2,
.faq-intro h2 {
  margin: 19px 0 25px;
  font-family: var(--serif);
  font-size: clamp(39px, 4.5vw, 57px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.04;
  text-wrap: balance;
}

.about-copy > p:not(.eyebrow) {
  max-width: 620px;
  margin: 0 0 17px;
  color: var(--muted-dark);
  font-size: 15px;
  line-height: 1.82;
}

.about-points {
  margin: 29px 0 30px;
  display: grid;
  gap: 13px;
}

.about-points span {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: rgba(236,230,220, 0.86);
  font-size: 13px;
}

.about-points svg {
  width: 18px;
  height: 18px;
  color: var(--copper-light);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--copper);
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.text-link svg {
  width: 15px;
  height: 15px;
  transition: transform 180ms ease;
}

.text-link:hover svg {
  transform: translateX(3px);
}

.faq .text-link {
  color: var(--bronze);
}

.stats {
  scroll-margin-top: 82px;
  padding: 43px 0;
  border-top: 1px solid rgba(236,230,220, 0.09);
  border-bottom: 1px solid rgba(236,230,220, 0.09);
  background: var(--graphite-soft);
  color: var(--ivory);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.stat {
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 8px 24px;
  border-right: 1px solid rgba(236,230,220, 0.11);
}

.stat:last-child {
  border-right: 0;
}

.stat > svg {
  width: 29px;
  height: 29px;
  flex: 0 0 auto;
  color: var(--copper-light);
}

.stat div {
  display: grid;
  gap: 5px;
}

.stat strong {
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
}

.animated-stat-value {
  min-width: 76px;
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

.stat span {
  color: var(--muted-dark);
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.process {
  padding: 108px 0 116px;
  background: var(--ivory);
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  counter-reset: process;
}

.process-step {
  position: relative;
  min-height: 340px;
  padding: 36px 31px 31px;
  border-top: 1px solid rgba(16,34,52, 0.14);
  border-bottom: 1px solid rgba(16,34,52, 0.14);
  border-left: 1px solid rgba(16,34,52, 0.14);
}

.process-step:last-child {
  border-right: 1px solid rgba(16,34,52, 0.14);
}

.process-number {
  position: absolute;
  top: 25px;
  right: 25px;
  color: var(--bronze);
  font-family: var(--serif);
  font-size: 13px;
}

.process-icon {
  width: 63px;
  height: 63px;
  margin: 18px 0 31px;
  display: grid;
  place-items: center;
  border: 1px solid var(--copper);
  border-radius: 50%;
  color: var(--copper);
}

.process-icon svg {
  width: 25px;
  height: 25px;
}

.process-step h3 {
  margin: 0 0 12px;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
}

.process-step p {
  margin: 0;
  color: var(--muted-light);
  font-size: 13px;
  line-height: 1.7;
}

.calculator-section {
  padding: 110px 0 120px;
  background: #ECE6DC;
}

.calculator-section .section-heading > p:last-child {
  color: var(--bronze);
}

.calculator-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);
  overflow: hidden;
  border: 1px solid rgba(16,34,52, 0.14);
  box-shadow: 0 28px 70px rgba(16,34,52, 0.1);
}

.calculator-form,
.calculator-results {
  min-width: 0;
  padding: 43px 42px 45px;
}

.calculator-form {
  background: #F8F5EF;
}

.calculator-results {
  background: var(--graphite-soft);
  color: var(--ivory);
}

.calculator-panel-heading {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 27px;
  border-bottom: 1px solid rgba(16,34,52, 0.13);
}

.calculator-panel-heading > span {
  width: 35px;
  height: 35px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--copper);
  border-radius: 50%;
  color: var(--bronze);
  font-family: var(--serif);
  font-size: 12px;
}

.calculator-panel-heading p,
.calculator-panel-heading h3 {
  margin: 0;
}

.calculator-panel-heading p {
  margin-bottom: 5px;
  color: var(--bronze);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.calculator-panel-heading h3 {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1.2;
}

.calculator-panel-heading-results {
  border-bottom-color: rgba(236,230,220, 0.12);
}

.calculator-panel-heading-results > span {
  color: var(--copper-light);
}

.calculator-panel-heading-results p {
  color: var(--copper-light);
}

.calculator-scenario-note {
  margin: 24px 0 0;
  border-left: 2px solid var(--copper);
  padding: 10px 0 10px 15px;
  color: var(--muted-light);
  font-size: 11px;
  line-height: 1.6;
}

.calculator-scenario-note strong {
  color: var(--ink);
}

.calculator-question {
  min-width: 0;
  margin: 30px 0 0;
  border: 0;
  padding: 0;
}

.calculator-question legend {
  width: 100%;
  margin-bottom: 15px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.3;
}

.calculator-choice-grid {
  display: grid;
  gap: 9px;
}

.calculator-choice {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.calculator-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.calculator-choice > span {
  min-height: 62px;
  display: grid;
  align-content: center;
  gap: 4px;
  border: 1px solid rgba(16,34,52, 0.16);
  padding: 13px 15px 13px 43px;
  background: #F8F5EF;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.calculator-choice > span::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 15px;
  width: 14px;
  height: 14px;
  border: 1px solid rgba(16,34,52, 0.34);
  border-radius: 50%;
  box-shadow: inset 0 0 0 3px #F8F5EF;
}

.calculator-choice:hover > span {
  border-color: rgba(200,155,91, 0.68);
}

.calculator-choice.is-selected > span {
  border-color: var(--copper);
  background: rgba(200,155,91, 0.08);
  box-shadow: inset 3px 0 0 var(--copper);
}

.calculator-choice.is-selected > span::before {
  border-color: var(--copper);
  background: var(--copper);
}

.calculator-choice input:focus-visible + span {
  outline: 2px solid var(--copper);
  outline-offset: 3px;
}

.calculator-choice strong {
  color: var(--ink);
  font-size: 11px;
  line-height: 1.4;
}

.calculator-choice small {
  color: var(--muted-light);
  font-size: 9px;
  line-height: 1.45;
}

.calculator-contract-question {
  margin-top: 24px;
  border-top: 1px solid rgba(16,34,52, 0.13);
  padding-top: 24px;
}

.calculator-choice-grid-compact {
  grid-template-columns: 1fr 1fr;
}

.calculator-choice-grid-compact .calculator-choice > span {
  min-height: 58px;
}

.calculator-routing-card {
  margin-top: 26px;
  border: 1px solid rgba(200,155,91, 0.42);
  padding: 22px;
  background: rgba(200,155,91, 0.06);
}

.calculator-routing-card > strong {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 400;
}

.calculator-routing-card > p {
  margin: 10px 0 0;
  color: var(--muted-light);
  font-size: 11px;
  line-height: 1.65;
}

.calculator-routing-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 18px;
}

.calculator-routing-actions .button {
  min-width: 0;
  min-height: 48px;
  padding-right: 13px;
  padding-left: 13px;
  text-align: center;
}

.calculator-fields {
  display: grid;
  gap: 20px 17px;
}

.calculator-fields-main {
  grid-template-columns: 1fr 1fr;
  margin-top: 31px;
}

.calculator-field-wide {
  grid-column: 1 / -1;
}

.calculator-fields label {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 9px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
}

.calculator-fields label > small {
  color: var(--muted-light);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
}

.calculator-fields input,
.calculator-fields select {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  border: 1px solid rgba(16,34,52, 0.18);
  border-radius: 0;
  outline: 0;
  padding: 13px 14px;
  background: #F8F5EF;
  color: var(--ink);
  font: 400 15px/1.3 var(--sans);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.calculator-fields select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--bronze) 50%),
    linear-gradient(135deg, var(--bronze) 50%, transparent 50%);
  background-position:
    calc(100% - 19px) 21px,
    calc(100% - 14px) 21px;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  padding-right: 40px;
}

.calculator-fields input:focus,
.calculator-fields select:focus {
  border-color: var(--copper);
  box-shadow: 0 0 0 3px rgba(200,155,91, 0.12);
}

.calculator-fields input::placeholder {
  color: rgba(83,101,115, 0.68);
}

.calculator-input-wrap {
  min-width: 0;
  display: flex;
  align-items: center;
  border: 1px solid rgba(16,34,52, 0.18);
  background: #F8F5EF;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.calculator-input-wrap:focus-within {
  border-color: var(--copper);
  box-shadow: 0 0 0 3px rgba(200,155,91, 0.12);
}

.calculator-input-wrap > span {
  flex: 0 0 auto;
  padding-left: 14px;
  color: var(--bronze);
  font-family: var(--serif);
  font-size: 16px;
}

.calculator-input-wrap input {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.calculator-input-wrap input:focus {
  box-shadow: none;
}

.calculator-input-suffix > span {
  padding: 0 14px 0 0;
}

.calculator-advanced {
  margin-top: 27px;
  border-top: 1px solid rgba(16,34,52, 0.13);
  border-bottom: 1px solid rgba(16,34,52, 0.13);
}

.calculator-advanced summary {
  min-height: 59px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  color: var(--bronze);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  list-style: none;
  text-transform: uppercase;
}

.calculator-advanced summary::-webkit-details-marker {
  display: none;
}

.calculator-advanced summary span {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  transition: transform 180ms ease;
}

.calculator-advanced[open] summary span {
  transform: rotate(45deg);
}

.calculator-fields-advanced {
  grid-template-columns: 1fr 1fr;
  padding: 8px 0 29px;
}

.calculator-checkbox {
  position: relative;
  margin-top: 27px;
  display: grid;
  grid-template-columns: 23px 1fr;
  gap: 4px 12px;
  cursor: pointer;
}

.calculator-checkbox input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.calculator-checkbox > span {
  width: 23px;
  height: 23px;
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  border: 1px solid rgba(16,34,52, 0.28);
  background: #F8F5EF;
}

.calculator-checkbox > span::after {
  content: "";
  width: 11px;
  height: 6px;
  border-bottom: 2px solid #F8F5EF;
  border-left: 2px solid #F8F5EF;
  opacity: 0;
  transform: translateY(-1px) rotate(-45deg);
}

.calculator-checkbox input:checked + span {
  border-color: var(--copper);
  background: var(--copper);
}

.calculator-checkbox input:checked + span::after {
  opacity: 1;
}

.calculator-checkbox input:focus-visible + span {
  outline: 2px solid var(--copper);
  outline-offset: 3px;
}

.calculator-checkbox strong {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.4;
}

.calculator-checkbox small {
  color: var(--muted-light);
  font-size: 10px;
  line-height: 1.55;
}

.calculator-form-footer {
  margin-top: 31px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.calculator-form-footer p {
  max-width: 330px;
  margin: 0;
  color: var(--muted-light);
  font-size: 10px;
  line-height: 1.55;
}

.calculator-form-footer button {
  flex: 0 0 auto;
  cursor: pointer;
  border: 0;
  border-bottom: 1px solid rgba(132,96,54, 0.45);
  padding: 5px 0;
  background: transparent;
  color: var(--bronze);
  font: 700 9px/1.2 var(--sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.calculator-empty {
  min-height: 360px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 17px;
  text-align: center;
}

.calculator-empty span {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(200,155,91, 0.48);
  border-radius: 50%;
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 14px;
}

.calculator-empty p {
  max-width: 290px;
  margin: 0;
  color: var(--muted-dark);
  font-size: 13px;
  line-height: 1.7;
}

.calculator-empty-route span {
  font-size: 27px;
}

.calculator-error {
  margin: 30px 0;
  border: 1px solid rgba(200,155,91, 0.38);
  padding: 16px;
  color: var(--ivory-soft);
  font-size: 12px;
  line-height: 1.6;
}

.calculator-summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 28px;
  background: rgba(236,230,220, 0.09);
}

.calculator-summary-grid > span {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 16px;
  background: var(--graphite-soft);
}

.calculator-summary-grid small {
  color: var(--muted-dark);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.calculator-summary-grid strong {
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  overflow-wrap: anywhere;
}

.calculator-basis-explanation,
.calculator-minimum-wage-note {
  margin: 12px 0 0;
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.65;
}

.calculator-minimum-wage-note strong {
  color: var(--copper-light);
}

.calculator-result-group {
  margin-top: 29px;
}

.calculator-result-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(200,155,91, 0.38);
}

.calculator-result-title span {
  color: var(--copper-light);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.calculator-result-title strong {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: right;
}

.calculator-result-title-stacked {
  align-items: flex-start;
  flex-direction: column;
  gap: 8px;
}

.calculator-result-title-stacked span {
  max-width: 100%;
  line-height: 1.55;
}

.calculator-result-title-stacked strong {
  text-align: left;
}

.calculator-money-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(236,230,220, 0.08);
}

.calculator-money-row > span {
  min-width: 0;
  display: grid;
  gap: 4px;
  color: rgba(236,230,220, 0.76);
  font-size: 11px;
  line-height: 1.45;
}

.calculator-money-row small {
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.45;
}

.calculator-money-row > strong {
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 14px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: right;
}

.calculator-grand-total {
  margin-top: 32px;
  display: grid;
  gap: 7px;
  border: 1px solid rgba(200,155,91, 0.46);
  padding: 22px;
  background: rgba(200,155,91, 0.06);
}

.calculator-grand-total span {
  color: var(--copper-light);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.calculator-grand-total strong {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: clamp(33px, 4vw, 45px);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.035em;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.calculator-grand-total small {
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.5;
}

.calculator-offer-comparison {
  margin-top: 28px;
  display: grid;
  gap: 7px;
  border: 1px solid rgba(236,230,220, 0.18);
  padding: 19px;
}

.calculator-offer-comparison span {
  color: var(--copper-light);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.calculator-offer-comparison strong {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 400;
}

.calculator-offer-comparison small,
.calculator-exclusions,
.calculator-variable-warning,
.calculator-scenario-warning,
.calculator-contract-warning p {
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.65;
}

.calculator-exclusions {
  margin-top: 25px;
  border-left: 2px solid rgba(200,155,91, 0.55);
  padding: 3px 0 3px 15px;
}

.calculator-exclusions > strong {
  color: var(--copper-light);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.calculator-exclusions ul {
  margin: 9px 0 0;
  padding-left: 16px;
}

.calculator-exclusions li + li {
  margin-top: 6px;
}

.calculator-variable-warning,
.calculator-scenario-warning {
  margin: 20px 0 0;
  border: 1px solid rgba(200,155,91, 0.24);
  padding: 14px;
}

.calculator-scenario-warning {
  color: rgba(236,230,220, 0.68);
}

.calculator-contract-warning {
  margin-top: 23px;
  border: 1px solid rgba(200,155,91, 0.36);
  padding: 17px;
}

.calculator-contract-warning > strong {
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
}

.calculator-contract-warning p {
  margin: 8px 0 0;
}

.calculator-routing-actions-dark {
  grid-template-columns: 1fr;
}

.calculator-routing-actions-dark .button-secondary {
  border-color: rgba(236,230,220, 0.28);
  color: var(--ivory-soft);
}

.calculator-result-actions {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.calculator-next-steps {
  margin-top: 20px;
  border-top: 1px solid rgba(236,230,220, 0.16);
  padding-top: 20px;
}

.calculator-next-steps > div {
  display: grid;
  gap: 10px;
}

.calculator-next-steps .button {
  width: 100%;
}

@media (max-width: 640px) {
  .labor-whatsapp-overlay {
    align-items: end;
    padding: 0;
  }

  .labor-whatsapp-dialog {
    width: 100%;
    max-height: 92vh;
    border-radius: 14px 14px 0 0;
    padding: 32px 20px 24px;
  }

  .labor-whatsapp-actions {
    grid-template-columns: 1fr;
  }
}

.calculator-save-button {
  width: 100%;
  min-height: 49px;
  cursor: pointer;
  border: 1px solid rgba(200,155,91, 0.72);
  background: transparent;
  color: var(--ivory);
}

.calculator-save-button:hover {
  border-color: var(--copper-light);
  background: rgba(200,155,91, 0.11);
}

.calculator-save-button:focus-visible {
  outline: 2px solid var(--copper-light);
  outline-offset: 3px;
}

.calculator-save-button:disabled {
  cursor: wait;
  opacity: 0.66;
}

.calculator-save-button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.calculator-review-link {
  width: 100%;
  margin-top: 0;
}

.calculator-save-status {
  min-height: 16px;
  margin: 8px 0 0;
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.55;
}

.calculator-save-status-idle,
.calculator-save-status-creating {
  display: none;
}

.calculator-save-status-error {
  color: var(--copper-light);
}

.calculator-legal-note {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(236,230,220, 0.1);
}

.calculator-legal-note strong {
  color: var(--copper-light);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.calculator-legal-note p {
  margin: 9px 0 13px;
  color: var(--muted-dark);
  font-size: 9px;
  line-height: 1.65;
}

.calculator-legal-note a {
  border-bottom: 1px solid rgba(200,155,91, 0.45);
  color: var(--ivory-soft);
  font-size: 9px;
  line-height: 1.5;
}

.results {
  padding: 108px 0 116px;
  background: var(--graphite);
  color: var(--ivory);
}

.section-heading-light h2 {
  color: var(--ivory);
}

.section-heading-light > p:last-child {
  color: var(--muted-dark);
}

.result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.result-card {
  position: relative;
  min-height: 430px;
  display: flex;
  flex-direction: column;
  padding: 34px 36px 32px;
  overflow: hidden;
  contain: paint;
  border: 1px solid rgba(200,155,91, 0.28);
  background: var(--graphite-soft);
}

.result-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, var(--copper), transparent 72%);
}

.result-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted-dark);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.result-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--copper-light);
}

.result-status svg {
  width: 15px;
  height: 15px;
}

.result-amount-label {
  margin: 39px 0 8px;
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.result-amount {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: clamp(39px, 5vw, 61px);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.035em;
  line-height: 1;
  white-space: nowrap;
}

.result-card h3 {
  margin: 30px 0 10px;
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1.2;
}

.result-context {
  margin: 0;
  color: var(--muted-dark);
  font-size: 13px;
  line-height: 1.7;
}

.result-card ul {
  margin: auto 0 0;
  padding: 27px 0 0;
  display: grid;
  gap: 10px;
  list-style: none;
}

.result-card li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(236,230,220, 0.68);
  font-size: 12px;
  line-height: 1.45;
}

.result-card li svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  color: var(--copper-light);
}

.results-disclaimer {
  max-width: 940px;
  margin: 30px auto 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 14px;
  padding: 22px 26px;
  border: 1px solid rgba(236,230,220, 0.1);
  color: var(--muted-dark);
}

.results-disclaimer svg {
  width: 23px;
  height: 23px;
  flex: 0 0 auto;
  color: var(--copper-light);
}

.results-disclaimer p {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
}

.results-disclaimer strong {
  color: var(--ivory-soft);
}

.faq {
  padding: 110px 0;
  background: #F8F5EF;
}

.faq-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(60px, 8vw, 112px);
}

.faq-intro {
  align-self: start;
  position: sticky;
  top: 120px;
}

.faq-intro h2 {
  color: var(--ink);
}

.faq-intro > p:not(.eyebrow) {
  margin: 0 0 28px;
  color: var(--muted-light);
  font-size: 14px;
  line-height: 1.75;
}

.faq-item {
  border-bottom: 1px solid rgba(16,34,52, 0.17);
}

.faq-item:first-child {
  border-top: 1px solid rgba(16,34,52, 0.17);
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 5px;
  cursor: pointer;
  list-style: none;
  font-family: var(--serif);
  font-size: 19px;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary span {
  color: var(--copper);
  font-family: var(--sans);
  font-size: 25px;
  font-weight: 300;
  transition: transform 180ms ease;
}

.faq-item[open] summary span {
  transform: rotate(45deg);
}

.faq-item p {
  max-width: 650px;
  margin: -3px 50px 25px 5px;
  color: var(--muted-light);
  font-size: 14px;
  line-height: 1.75;
}

.mini-cta {
  padding: 60px 0;
  background: var(--graphite-soft);
  color: var(--ivory);
}

.mini-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
}

.mini-cta h2 {
  margin: 12px 0 0;
  font-family: var(--serif);
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 400;
}

.mini-cta-copy {
  margin: 9px 0 0;
  color: var(--muted-dark);
  font-size: 14px;
}

.cta-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(185px, 1fr));
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.button-email {
  border-color: rgba(236,230,220, 0.28);
  color: var(--ivory);
}

.button-email:hover {
  border-color: var(--copper-light);
  color: var(--copper-light);
}

.phone-link {
  grid-column: 1 / -1;
  justify-self: center;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--ivory);
  font-family: var(--serif);
  font-size: 18px;
  white-space: nowrap;
}

.phone-link svg {
  width: 18px;
  height: 18px;
  color: var(--copper-light);
}

.location-card-wrap {
  margin-top: 42px;
}

.location-card {
  min-height: 260px;
  display: grid;
  grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.12fr);
  border: 1px solid rgba(200,155,91, 0.42);
  background: var(--graphite);
  color: var(--ivory);
  overflow: hidden;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.location-card:hover {
  border-color: var(--copper-light);
  transform: translateY(-3px);
  box-shadow: 0 22px 60px rgba(16,34,52, 0.24);
}

.location-map,
.location-copy {
  display: block;
}

.location-map {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  contain: paint;
  border-right: 1px solid rgba(200,155,91, 0.26);
  background:
    radial-gradient(circle at 57% 47%, rgba(200,155,91, 0.2), transparent 27%),
    linear-gradient(145deg, #102234, #102234 72%);
}

.location-map::before,
.location-map::after {
  content: "";
  position: absolute;
  inset: -35%;
  opacity: 0.26;
  background:
    repeating-linear-gradient(22deg, transparent 0 38px, rgba(236,230,220, 0.2) 39px 40px),
    repeating-linear-gradient(112deg, transparent 0 62px, rgba(200,155,91, 0.28) 63px 64px);
  transform: rotate(-6deg);
}

.location-map::after {
  inset: -20%;
  opacity: 0.12;
  background: repeating-linear-gradient(68deg, transparent 0 74px, rgba(236,230,220, 0.28) 75px 77px);
  transform: rotate(9deg);
}

.map-road {
  position: absolute;
  z-index: 2;
  display: block;
  height: 1px;
  background: rgba(200,155,91, 0.42);
  transform-origin: left;
}

.map-road-one {
  top: 31%;
  left: -3%;
  width: 75%;
  transform: rotate(18deg);
}

.map-road-two {
  top: 72%;
  left: 22%;
  width: 92%;
  transform: rotate(-17deg);
}

.map-road-three {
  top: 7%;
  left: 73%;
  width: 62%;
  transform: rotate(87deg);
}

.map-pin {
  position: absolute;
  z-index: 4;
  top: 43%;
  left: 57%;
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border: 1px solid var(--copper-light);
  border-radius: 50% 50% 50% 8px;
  background: var(--copper);
  color: var(--graphite);
  box-shadow: 0 0 0 10px rgba(200,155,91, 0.1), 0 16px 30px rgba(16,34,52, 0.28);
  transform: translate(-50%, -50%) rotate(-45deg);
  transition: box-shadow 180ms ease, transform 180ms ease;
}

.map-pin svg {
  width: 26px;
  height: 26px;
  transform: rotate(45deg);
}

.location-card:hover .map-pin {
  box-shadow: 0 0 0 14px rgba(200,155,91, 0.13), 0 18px 34px rgba(16,34,52, 0.32);
  transform: translate(-50%, -53%) rotate(-45deg);
}

.map-city {
  position: absolute;
  z-index: 4;
  right: 26px;
  bottom: 23px;
  color: rgba(236,230,220, 0.62);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.location-copy {
  align-self: center;
  padding: 38px 46px;
}

.location-kicker,
.location-action {
  display: flex;
  align-items: center;
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.location-copy strong {
  display: block;
  margin: 16px 0 12px;
  font-family: var(--serif);
  font-size: clamp(28px, 3.4vw, 41px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.location-copy > span:not(.location-kicker):not(.location-action) {
  display: block;
  max-width: 540px;
  color: var(--muted-dark);
  font-size: 14px;
  line-height: 1.7;
}

.location-action {
  width: fit-content;
  gap: 9px;
  margin-top: 23px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--copper);
}

.location-action svg {
  width: 15px;
  height: 15px;
  transition: transform 180ms ease;
}

.location-card:hover .location-action svg {
  transform: translateX(4px);
}

.hours-card {
  min-height: 112px;
  margin-top: 16px;
  display: grid;
  grid-template-columns: auto minmax(180px, 0.8fr) minmax(210px, 1fr) minmax(230px, 1fr);
  align-items: center;
  gap: 24px;
  padding: 24px 30px;
  border: 1px solid rgba(200,155,91, 0.32);
  background: #102234;
  color: var(--ivory);
}

.hours-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid var(--copper);
  border-radius: 50%;
  color: var(--copper-light);
}

.hours-icon svg {
  width: 24px;
  height: 24px;
}

.hours-heading,
.hours-time,
.hours-closed {
  min-height: 52px;
  display: grid;
  align-content: center;
  gap: 7px;
}

.hours-time,
.hours-closed {
  padding-left: 24px;
  border-left: 1px solid rgba(236,230,220, 0.1);
}

.hours-card small {
  color: var(--copper-light);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hours-heading strong,
.hours-time strong,
.hours-closed strong {
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.35;
}

.footer {
  padding: 64px 0 26px;
  background: var(--graphite);
  color: var(--muted-dark);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 0.8fr;
  gap: 55px;
  padding-bottom: 42px;
}

.footer-brand p {
  max-width: 310px;
  margin: 23px 0 0;
  color: var(--muted-dark);
  font-size: 13px;
}

.footer-column {
  display: grid;
  align-content: start;
  gap: 11px;
}

.footer-column strong {
  margin-bottom: 7px;
  color: var(--copper-light);
  font-size: 10px;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.footer-column a,
.footer-column span {
  color: var(--muted-dark);
  font-size: 12px;
  line-height: 1.6;
}

.footer-column a:hover {
  color: var(--ivory);
}

.footer-link-button {
  width: fit-content;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted-dark);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 1.6;
  text-align: left;
}

.footer-link-button:hover {
  color: var(--ivory);
}

.privacy-note {
  padding: 21px 0;
  border-top: 1px solid rgba(236,230,220, 0.09);
  border-bottom: 1px solid rgba(236,230,220, 0.09);
}

.privacy-note summary {
  width: fit-content;
  cursor: pointer;
  color: var(--copper-light);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.privacy-note p {
  max-width: 900px;
  margin: 16px 0 2px;
  color: var(--muted-dark);
  font-size: 12px;
  line-height: 1.7;
}

.footer-bottom {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  padding-top: 24px;
  color: var(--muted-dark);
  font-size: 10px;
  line-height: 1.6;
}

.footer-bottom span:last-child {
  max-width: 490px;
  text-align: right;
}

.floating-whatsapp {
  position: fixed;
  z-index: 40;
  right: 22px;
  bottom: 22px;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(248,245,239, 0.78);
  border-radius: 50%;
  background: var(--whatsapp);
  color: #F8F5EF;
  box-shadow: 0 10px 26px rgba(16,34,52, 0.26), 0 0 0 3px rgba(83,101,115, 0.07);
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.floating-whatsapp:hover {
  background: var(--whatsapp-dark);
  box-shadow: 0 13px 30px rgba(16,34,52, 0.3), 0 0 0 4px rgba(83,101,115, 0.09);
  transform: translateY(-2px);
}

.floating-whatsapp svg {
  width: 28px;
  height: 28px;
}

.cookie-banner {
  position: fixed;
  z-index: 90;
  right: 22px;
  bottom: 22px;
  left: 22px;
  width: min(1120px, calc(100% - 44px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  padding: 24px 27px;
  border: 1px solid rgba(200,155,91, 0.62);
  background: rgba(16,34,52, 0.98);
  color: var(--ivory);
  box-shadow: 0 20px 52px rgba(16,34,52, 0.42);
}

.cookie-banner-copy {
  display: grid;
  gap: 7px;
}

.cookie-banner-copy strong {
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
}

.cookie-banner-copy p {
  max-width: 710px;
  margin: 0;
  color: rgba(236,230,220, 0.78);
  font-size: 12px;
  line-height: 1.65;
}

.cookie-banner-copy a {
  width: fit-content;
  color: var(--copper-light);
  font-size: 11px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cookie-banner-actions,
.cookie-modal-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 9px;
}

.cookie-button {
  min-height: 42px;
  padding: 10px 15px;
  border: 1px solid rgba(236,230,220, 0.28);
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.cookie-button:hover {
  border-color: var(--copper-light);
  background: rgba(200,155,91, 0.08);
}

.cookie-button-primary {
  border-color: var(--copper);
  background: var(--copper);
  color: var(--graphite);
}

.cookie-button-primary:hover {
  background: var(--copper-light);
  color: var(--graphite);
}

.cookie-button-link {
  border-color: transparent;
  color: var(--copper-light);
}

.cookie-modal-backdrop {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16,34,52, 0.78);
  backdrop-filter: blur(8px);
}

.cookie-modal {
  width: min(690px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 31px;
  border: 1px solid rgba(200,155,91, 0.52);
  background: var(--graphite-soft);
  color: var(--ivory);
  box-shadow: 0 26px 70px rgba(16,34,52, 0.52);
}

.cookie-modal-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 23px;
  border-bottom: 1px solid rgba(236,230,220, 0.12);
}

.cookie-modal-heading .eyebrow {
  margin: 0 0 9px;
}

.cookie-modal-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(28px, 5vw, 38px);
  font-weight: 400;
}

.cookie-modal-close {
  width: 40px;
  height: 40px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(236,230,220, 0.22);
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  font-size: 27px;
  line-height: 1;
}

.cookie-preference-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  padding: 23px 0;
  border-bottom: 1px solid rgba(236,230,220, 0.1);
}

.cookie-preference-row strong {
  color: var(--ivory-soft);
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
}

.cookie-preference-row p {
  max-width: 500px;
  margin: 7px 0 0;
  color: var(--muted-dark);
  font-size: 12px;
  line-height: 1.6;
}

.cookie-required-status {
  color: var(--copper-light);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cookie-preference-toggle {
  cursor: pointer;
}

.cookie-preference-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.cookie-preference-toggle > span {
  position: relative;
  width: 48px;
  height: 26px;
  border: 1px solid rgba(236,230,220, 0.32);
  border-radius: 999px;
  background: rgba(236,230,220, 0.08);
  transition: border-color 180ms ease, background 180ms ease;
}

.cookie-preference-toggle > span::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--muted-dark);
  transition: transform 180ms ease, background 180ms ease;
}

.cookie-preference-toggle input:checked + span {
  border-color: var(--copper);
  background: rgba(200,155,91, 0.24);
}

.cookie-preference-toggle input:checked + span::after {
  background: var(--copper-light);
  transform: translateX(22px);
}

.cookie-preference-toggle input:focus-visible + span {
  outline: 2px solid var(--copper-light);
  outline-offset: 4px;
}

.cookie-advertising-note {
  margin: 20px 0 0;
  padding: 15px 17px;
  border-left: 2px solid var(--bronze);
  background: rgba(132,96,54, 0.16);
  color: var(--muted-dark);
  font-size: 11px;
  line-height: 1.6;
}

.cookie-advertising-note code {
  color: var(--ivory-soft);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.cookie-modal-actions {
  margin-top: 25px;
}

.privacy-page {
  min-height: 100vh;
  background: var(--ivory);
}

.privacy-page-header {
  border-bottom: 1px solid rgba(236,230,220, 0.11);
  background: var(--graphite);
}

.privacy-page-header-inner {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.privacy-back-link {
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.privacy-hero {
  padding: 76px 0 72px;
  border-bottom: 1px solid rgba(16,34,52, 0.12);
  background:
    linear-gradient(110deg, rgba(16,34,52, 0.98), rgba(16,34,52, 0.92)),
    radial-gradient(circle at 85% 20%, rgba(200,155,91, 0.2), transparent 34%);
  color: var(--ivory);
}

.privacy-hero-inner {
  max-width: 870px;
}

.privacy-hero h1 {
  max-width: 760px;
  margin: 17px 0 12px;
  font-family: var(--serif);
  font-size: clamp(42px, 6vw, 68px);
  font-weight: 400;
  line-height: 1.08;
}

.privacy-hero p:last-child {
  margin: 0;
  color: var(--muted-dark);
  font-size: 12px;
}

.privacy-document {
  max-width: 930px;
  padding-top: 72px;
  padding-bottom: 84px;
}

.privacy-document > section {
  padding: 0 0 38px;
  margin: 0 0 38px;
  border-bottom: 1px solid rgba(16,34,52, 0.14);
}

.privacy-document h2 {
  margin: 0 0 18px;
  color: var(--graphite-soft);
  font-family: var(--serif);
  font-size: clamp(25px, 4vw, 32px);
  font-weight: 400;
  line-height: 1.25;
}

.privacy-document p,
.privacy-document li {
  color: var(--muted-light);
  font-size: 14px;
  line-height: 1.8;
}

.privacy-document p {
  margin: 0 0 15px;
}

.privacy-document p:last-child {
  margin-bottom: 0;
}

.privacy-document ul {
  margin: 0 0 17px;
  padding-left: 22px;
}

.privacy-document li + li {
  margin-top: 8px;
}

.privacy-document a {
  color: var(--bronze);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.privacy-document code {
  color: var(--graphite-soft);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.9em;
}

.privacy-preferences-button {
  margin-top: 8px;
  padding: 13px 17px;
  border: 1px solid var(--bronze);
  background: transparent;
  color: var(--bronze);
  cursor: pointer;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.privacy-preferences-button:hover {
  background: var(--bronze);
  color: var(--ivory);
}

.privacy-legal-reference {
  padding: 28px 30px;
  border-left: 3px solid var(--copper);
  background: rgba(200,155,91, 0.11);
}

.privacy-legal-reference strong {
  color: var(--graphite-soft);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 400;
}

.privacy-legal-reference p {
  margin: 10px 0;
}

.privacy-page-footer {
  padding: 26px 0;
  background: var(--graphite);
  color: var(--muted-dark);
}

.privacy-page-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  font-size: 10px;
  line-height: 1.6;
}

.privacy-page-footer a {
  color: var(--copper-light);
}

[data-reveal] {
  opacity: 1;
  transform: none;
}

.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 650ms ease var(--delay, 0ms), transform 650ms ease var(--delay, 0ms);
}

.reveal-ready [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 1080px) {
  .main-nav {
    gap: 16px;
  }

  .main-nav a {
    font-size: 10px;
  }

  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .service-card {
    border-bottom: 1px solid rgba(16,34,52, 0.13);
  }

  .service-card:nth-child(2n) {
    border-right: 0;
  }

  .service-card:last-child {
    grid-column: 1 / -1;
    min-height: 270px;
  }

  .audience-card {
    padding-right: 36px;
    padding-left: 36px;
  }

  .location-card {
    grid-template-columns: minmax(270px, 0.8fr) minmax(0, 1.2fr);
  }

  .process-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .process-step:nth-child(2) {
    border-right: 1px solid rgba(16,34,52, 0.14);
  }

  .process-step:nth-child(n + 3) {
    border-top: 0;
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat:nth-child(2) {
    border-right: 0;
  }

  .stat:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(236,230,220, 0.11);
  }
}

@media (max-width: 900px) {
  .calculator-shell {
    grid-template-columns: 1fr;
  }

  .calculator-results {
    min-height: 580px;
  }

  .site-header {
    background: var(--graphite);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  body.mobile-menu-open .site-header {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
  }

  .hero-glow {
    display: none;
  }

  .portrait-frame,
  .button-primary,
  .audience-grid {
    box-shadow: none;
  }

  [data-reveal],
  [data-reveal].is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .button,
  .service-card,
  .audience-link svg,
  .location-card,
  .map-pin,
  .location-action svg,
  .floating-whatsapp {
    transition: none;
  }

  .button:hover,
  .service-card:hover,
  .location-card:hover,
  .floating-whatsapp:hover {
    transform: none;
  }

  .service-card:hover,
  .location-card:hover {
    box-shadow: none;
  }

  .location-map {
    background: linear-gradient(145deg, #102234, #102234 72%);
  }

  .location-map::before {
    inset: 0;
    opacity: 0.2;
    background:
      linear-gradient(25deg, transparent 47%, rgba(236,230,220, 0.2) 48% 49%, transparent 50%),
      linear-gradient(115deg, transparent 54%, rgba(200,155,91, 0.3) 55% 56%, transparent 57%);
    transform: none;
  }

  .location-map::after,
  .map-road {
    display: none;
  }

  .map-pin,
  .location-card:hover .map-pin {
    box-shadow: 0 0 0 8px rgba(200,155,91, 0.1), 0 10px 20px rgba(16,34,52, 0.2);
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .header-inner {
    min-height: 74px;
  }

  .main-nav {
    position: fixed;
    z-index: 60;
    inset: 74px 0 0;
    width: 100%;
    height: calc(100vh - 74px);
    height: calc(100dvh - 74px);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 22px max(24px, calc((100% - 720px) / 2));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--graphite);
    border-top: 1px solid rgba(200,155,91, 0.24);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    transition: opacity 180ms ease, visibility 0s linear 180ms;
  }

  .main-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 180ms ease;
  }

  .main-nav a {
    min-height: 62px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(236,230,220, 0.13);
    padding: 17px 4px;
    color: var(--ivory);
    font-size: 15px;
    letter-spacing: 0.16em;
  }

  .main-nav a::after {
    display: none;
  }

  .menu-button {
    display: grid;
    gap: 5px;
  }

  .menu-button.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-button.is-open span:nth-child(2) {
    opacity: 0;
  }

  .menu-button.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .hero-grid {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 46px;
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .hero-copy {
    max-width: 720px;
  }

  .portrait-frame {
    justify-self: start;
    width: min(100%, 540px);
  }

  .about-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }

  .about-image-wrap {
    width: min(100%, 560px);
  }

  .faq-intro {
    position: static;
  }

  .result-grid {
    grid-template-columns: 1fr;
  }

  .result-card {
    min-height: 390px;
  }

  .audience-grid {
    grid-template-columns: 1fr;
  }

  .audience-card {
    min-height: 390px;
  }

  .audience-card-company {
    border-top: 1px solid rgba(16,34,52, 0.14);
    border-left: 0;
  }

  .location-card {
    grid-template-columns: minmax(250px, 0.75fr) minmax(0, 1.25fr);
  }

  .location-copy {
    padding: 34px;
  }

  .hours-card {
    grid-template-columns: auto 1fr 1fr;
  }

  .hours-closed {
    grid-column: 2 / -1;
    padding-top: 18px;
    padding-left: 0;
    border-top: 1px solid rgba(236,230,220, 0.1);
    border-left: 0;
  }

  .mini-cta-inner,
  .cta-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .cta-actions {
    width: 100%;
    max-width: 520px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 600px) {
  .container,
  .header-inner {
    width: calc(100% - 36px);
    max-width: 1180px;
  }

  .header-inner {
    gap: 10px;
  }

  .header-actions {
    gap: 10px;
  }

  .brand {
    gap: 11px;
  }

  .brand-mark {
    width: 36px;
    height: 36px;
  }

  .brand-copy strong {
    font-size: 14px;
  }

  .brand-copy small {
    font-size: 7.5px;
  }

  .whatsapp-chip {
    width: 44px;
    min-width: 44px;
    padding: 7px;
  }

  .whatsapp-chip .whatsapp-label {
    display: none;
  }

  .whatsapp-chip .whatsapp-icon {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .hero-grid {
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .hero h1 {
    margin-top: 18px;
    font-size: clamp(38px, 12.5vw, 52px);
  }

  .hero-lead {
    font-size: 16px;
  }

  .hero-buttons {
    align-items: stretch;
    flex-direction: column;
  }

  .button {
    width: 100%;
  }

  .portrait-frame {
    aspect-ratio: 4 / 5.2;
  }

  .portrait-caption span {
    font-size: 19px;
  }

  .services {
    padding: 78px 0;
  }

  .about,
  .process,
  .calculator-section,
  .results,
  .faq {
    padding: 78px 0;
  }

  .calculator-form,
  .calculator-results {
    padding: 31px 27px 34px;
  }

  .calculator-fields-main,
  .calculator-fields-advanced {
    grid-template-columns: 1fr;
  }

  .calculator-fields-main > label:first-child {
    grid-column: auto;
  }

  .calculator-form-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .calculator-empty {
    min-height: 280px;
  }

  .calculator-summary-grid {
    grid-template-columns: 1fr;
  }

  .calculator-result-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .calculator-result-title strong {
    text-align: left;
  }

  .calculator-money-row {
    grid-template-columns: minmax(0, 1fr) minmax(105px, auto);
  }

  .calculator-grand-total {
    padding: 19px;
  }

  .calculator-grand-total strong {
    font-size: clamp(30px, 10vw, 42px);
  }

  .section-heading {
    margin-bottom: 40px;
  }

  .section-heading h2 {
    font-size: 35px;
  }

  .service-grid {
    grid-template-columns: 1fr;
  }

  .service-card,
  .service-card:nth-child(2n) {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(16,34,52, 0.13);
  }

  .service-card:last-child {
    grid-column: auto;
  }

  .service-number {
    margin-bottom: 25px;
  }

  .audience-block {
    margin-top: 58px;
    padding-top: 54px;
  }

  .audience-intro h2 {
    font-size: 34px;
  }

  .audience-card {
    min-height: auto;
    padding: 34px 28px 32px;
  }

  .audience-card h3 {
    margin-top: 26px;
    font-size: 30px;
  }

  .location-card-wrap {
    margin-top: 34px;
  }

  .location-card {
    grid-template-columns: 1fr;
  }

  .location-map {
    min-height: 215px;
    border-right: 0;
    border-bottom: 1px solid rgba(200,155,91, 0.26);
  }

  .location-copy {
    padding: 30px 26px 32px;
  }

  .location-copy strong {
    font-size: 31px;
  }

  .hours-card {
    grid-template-columns: auto 1fr;
    gap: 18px;
    padding: 24px 22px;
  }

  .hours-time,
  .hours-closed {
    grid-column: 1 / -1;
    padding-top: 18px;
    padding-left: 0;
    border-top: 1px solid rgba(236,230,220, 0.1);
    border-left: 0;
  }

  .mini-cta-inner {
    align-items: stretch;
    flex-direction: column;
  }

  .about-grid,
  .faq-grid {
    gap: 48px;
  }

  .about-image-border {
    top: -10px;
    left: -10px;
    width: 80px;
    height: 80px;
  }

  .about-copy h2,
  .faq-intro h2 {
    font-size: 38px;
  }

  .stats-grid,
  .process-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .stat,
  .stat:nth-child(2) {
    justify-content: flex-start;
    border-right: 0;
    border-bottom: 1px solid rgba(236,230,220, 0.11);
  }

  .stat:last-child {
    border-bottom: 0;
  }

  .process-step,
  .process-step:nth-child(2),
  .process-step:nth-child(n + 3) {
    min-height: 250px;
    border-top: 1px solid rgba(16,34,52, 0.14);
    border-right: 1px solid rgba(16,34,52, 0.14);
    border-bottom: 0;
  }

  .process-step:last-child {
    border-bottom: 1px solid rgba(16,34,52, 0.14);
  }

  .result-card {
    padding: 28px;
  }

  .result-amount {
    font-size: clamp(37px, 12vw, 51px);
  }

  .results-disclaimer {
    padding: 20px;
  }

  .faq-item summary {
    font-size: 17px;
  }

  .faq-item p {
    margin-right: 30px;
  }

  .cta-actions {
    align-items: stretch;
    grid-template-columns: 1fr;
    max-width: none;
  }

  .cta-actions .phone-link {
    grid-column: auto;
  }

  .phone-link {
    justify-content: center;
  }

  .footer-brand,
  .footer-column {
    grid-column: auto;
  }

  .footer-grid {
    gap: 34px;
  }

  .footer-bottom {
    flex-direction: column;
  }

  .footer-bottom span:last-child {
    text-align: left;
  }

  .floating-whatsapp {
    right: 16px;
    bottom: 16px;
  }

  .cookie-banner {
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: calc(100% - 24px);
    grid-template-columns: 1fr;
    gap: 19px;
    padding: 21px;
  }

  .cookie-banner-actions {
    justify-content: stretch;
  }

  .cookie-banner-actions .cookie-button {
    flex: 1 1 calc(50% - 6px);
  }

  .cookie-banner-actions .cookie-button-link {
    flex-basis: 100%;
  }

  .cookie-modal-backdrop {
    align-items: end;
    padding: 12px;
  }

  .cookie-modal {
    max-height: calc(100vh - 24px);
    padding: 24px 21px;
  }

  .cookie-preference-row {
    gap: 16px;
  }

  .cookie-modal-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .privacy-page-header-inner {
    min-height: 78px;
  }

  .privacy-page-header .brand-copy {
    display: none;
  }

  .privacy-hero {
    padding: 58px 0 55px;
  }

  .privacy-document {
    padding-top: 52px;
    padding-bottom: 62px;
  }

  .privacy-document > section {
    padding-bottom: 31px;
    margin-bottom: 31px;
  }

  .privacy-document p,
  .privacy-document li {
    font-size: 13px;
  }

  .privacy-legal-reference {
    padding: 24px 22px;
  }

  .privacy-page-footer-inner {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Cinematic candidate — source-only until publication is authorized. */
.hero {
  isolation: isolate;
  min-height: 780px;
  background:
    radial-gradient(circle at 76% 33%, rgba(200,155,91, 0.14), transparent 30%),
    linear-gradient(135deg, #102234 0%, #102234 56%, #102234 100%);
}

.hero::before {
  opacity: 0.2;
  background-image:
    linear-gradient(rgba(200,155,91, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(200,155,91, 0.055) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, black, transparent 86%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: -1;
  height: 220px;
  background: linear-gradient(to bottom, transparent, rgba(16,34,52, 0.42));
  pointer-events: none;
}

.hero-grid {
  min-height: 780px;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  grid-template-rows: 1fr auto;
  gap: 38px clamp(48px, 6vw, 92px);
  padding-top: 64px;
  padding-bottom: 30px;
}

.hero-copy {
  position: relative;
  z-index: 5;
  max-width: 665px;
  align-self: center;
}

.hero-name {
  margin: 0 0 25px;
  display: grid;
  gap: 8px;
  animation: cinematic-reveal 650ms 80ms ease-out both;
}

.hero-name span {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: clamp(20px, 2.15vw, 30px);
  letter-spacing: 0.025em;
  line-height: 1.1;
  text-transform: uppercase;
}

.hero-name small {
  color: var(--copper-light);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.hero-copy > .eyebrow {
  animation: cinematic-rise 520ms 110ms ease-out both;
}

.hero h1 {
  max-width: 700px;
  margin: 21px 0 23px;
  font-size: clamp(48px, 5.45vw, 76px);
  line-height: 0.98;
  animation: cinematic-rise 560ms 150ms ease-out both;
}

.hero-lead {
  max-width: 620px;
  color: rgba(236,230,220, 0.74);
  animation: cinematic-reveal 700ms 480ms ease-out both;
}

.hero-buttons {
  animation: cinematic-reveal 700ms 590ms ease-out both;
}

.hero-trust {
  margin-top: 27px;
  color: rgba(236,230,220, 0.64);
  animation: cinematic-reveal 700ms 690ms ease-out both;
}

.cinematic-portrait {
  align-self: center;
  width: min(100%, 430px);
  aspect-ratio: 4 / 5.35;
  border-color: rgba(200,155,91, 0.46);
  box-shadow: 0 36px 95px rgba(16,34,52, 0.44), 0 0 0 12px rgba(200,155,91, 0.025);
  animation: portrait-reveal 900ms 180ms ease-out both;
}

.cinematic-portrait .portrait-source {
  background-image:
    linear-gradient(100deg, rgba(16,34,52, 0.42), transparent 37%),
    linear-gradient(to top, rgba(16,34,52, 0.3), transparent 45%),
    url("/assets/vianney-alvarado.webp");
  background-position: 50% 45%;
}

.cinematic-portrait::before {
  content: "";
  position: absolute;
  inset: 11px;
  z-index: 2;
  border: 1px solid rgba(236,230,220, 0.09);
  pointer-events: none;
}

.cinematic-portrait::after {
  background: linear-gradient(to top, rgba(16,34,52, 0.95), transparent 38%);
}

.monterrey-silhouette {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 68px;
  left: 0;
  width: 100%;
  height: 100px;
  opacity: 0.66;
}

.monterrey-silhouette path {
  fill: none;
  stroke: var(--copper-light);
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.monterrey-silhouette .monterrey-base {
  opacity: 0.34;
}

.cinematic-portrait .portrait-caption {
  bottom: 20px;
}

.hero-journey {
  position: relative;
  z-index: 4;
  grid-column: 1 / -1;
  min-height: 108px;
  border-top: 1px solid rgba(236,230,220, 0.09);
  padding-top: 16px;
}

.journey-line {
  position: absolute;
  inset: 0 1.5% auto;
  width: 97%;
  height: 75px;
  overflow: visible;
}

.journey-line path {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.journey-line-base {
  stroke: rgba(200,155,91, 0.18);
  stroke-width: 1;
}

.journey-line-light {
  stroke: var(--copper-light);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dasharray: 1500;
  stroke-dashoffset: 1500;
  filter: drop-shadow(0 0 7px rgba(200,155,91, 0.65));
  animation: draw-journey 1750ms 220ms ease-out forwards;
}

.hero-journey ol {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  list-style: none;
}

.hero-journey li {
  min-width: 0;
  display: grid;
  gap: 7px;
  justify-items: center;
  color: rgba(236,230,220, 0.72);
  text-align: center;
  animation: journey-stage-reveal 480ms var(--journey-delay) ease-out both;
}

.hero-journey li span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border: 1px solid var(--copper-light);
  border-radius: 50%;
  background: var(--graphite);
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 9px;
  box-shadow: 0 0 0 5px rgba(200,155,91, 0.05);
}

.hero-journey li strong {
  font-size: 9px;
  letter-spacing: 0.17em;
  line-height: 1.35;
  text-transform: uppercase;
}

.problem {
  padding: 78px 0;
  border-bottom: 1px solid rgba(16,34,52, 0.12);
  background: #ECE6DC;
}

.problem-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.96fr);
  align-items: center;
  gap: clamp(48px, 8vw, 110px);
}

.problem .eyebrow {
  color: var(--bronze);
}

.problem-heading h2 {
  max-width: 720px;
  margin: 18px 0 0;
  font-family: var(--serif);
  font-size: clamp(35px, 4.2vw, 52px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

.problem-copy > p {
  margin: 0 0 27px;
  color: var(--muted-light);
  font-size: 15px;
  line-height: 1.78;
}

.problem-points {
  display: grid;
  border-top: 1px solid rgba(16,34,52, 0.16);
}

.problem-points span {
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid rgba(16,34,52, 0.16);
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.problem-points svg {
  width: 19px;
  height: 19px;
  color: var(--bronze);
}

.services {
  padding-top: 112px;
  background:
    linear-gradient(rgba(200,155,91, 0.035) 1px, transparent 1px),
    var(--ivory);
  background-size: 100% 82px;
}

.service-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid rgba(16,34,52, 0.13);
  background: rgba(16,34,52, 0.13);
}

.service-card,
.service-card:last-child {
  min-height: 300px;
  border: 0;
  background: var(--ivory);
}

.service-card:hover {
  background: #F8F5EF;
}

.service-number {
  margin-bottom: 25px;
}

.service-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 22px;
}

.process {
  position: relative;
  overflow: hidden;
  background: var(--graphite-soft);
  color: var(--ivory);
}

.process::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.18;
  background-image:
    linear-gradient(rgba(200,155,91, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(200,155,91, 0.08) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(120deg, black, transparent 68%);
}

.process .container {
  position: relative;
}

.process .eyebrow {
  color: var(--copper-light);
}

.process .section-heading > p:last-child {
  color: var(--muted-dark);
}

.process-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(236,230,220, 0.13);
  border: 1px solid rgba(236,230,220, 0.13);
}

.process-step,
.process-step:last-child {
  min-height: 300px;
  border: 0;
  background: rgba(16,34,52, 0.86);
}

.process-number {
  color: var(--copper-light);
}

.process-icon {
  border-color: rgba(200,155,91, 0.7);
  color: var(--copper-light);
}

.process-step h3 {
  color: var(--ivory);
}

.process-step p {
  color: var(--muted-dark);
}

.coverage {
  padding: 102px 0 110px;
  background: var(--graphite-soft);
  color: var(--ivory);
}

.coverage .section-heading {
  margin-bottom: 46px;
}

.coverage .section-heading h2 {
  color: var(--ivory);
}

.coverage .section-heading > p:last-child {
  color: var(--muted-dark);
}

.coverage .location-card-wrap {
  margin-top: 0;
}

.mini-cta {
  background:
    radial-gradient(circle at 12% 50%, rgba(200,155,91, 0.12), transparent 28%),
    var(--graphite);
}

@keyframes cinematic-reveal {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes cinematic-rise {
  from {
    transform: translateY(14px);
  }
  to {
    transform: none;
  }
}

@keyframes portrait-reveal {
  from {
    opacity: 0;
    transform: translateX(20px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes draw-journey {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes journey-stage-reveal {
  from {
    opacity: 0;
    transform: translateY(9px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 1080px) {
  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.78fr);
  }

  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .service-card:last-child {
    grid-column: auto;
  }

  .process-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .process-step:nth-child(n) {
    border: 0;
  }
}

@media (max-width: 900px) {
  .hero {
    min-height: auto;
  }

  .hero-grid {
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 44px;
    padding-top: 62px;
    padding-bottom: 34px;
  }

  .hero-copy {
    max-width: 760px;
  }

  .cinematic-portrait {
    width: min(100%, 500px);
    justify-self: start;
  }

  .hero-journey {
    grid-column: auto;
  }

  .problem-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .problem-copy {
    max-width: 690px;
  }
}

@media (max-width: 600px) {
  .hero-grid {
    gap: 38px;
    padding-top: 44px;
    padding-bottom: 30px;
  }

  .hero-name {
    margin-bottom: 21px;
  }

  .hero-name span {
    font-size: 19px;
  }

  .hero-name small {
    font-size: 8px;
  }

  .hero h1 {
    font-size: clamp(42px, 13vw, 58px);
    line-height: 1;
  }

  .hero-lead {
    color: rgba(236,230,220, 0.78);
    font-size: 15px;
  }

  .hero-trust {
    display: grid;
    gap: 9px;
  }

  .cinematic-portrait {
    width: 100%;
    max-width: 430px;
    aspect-ratio: 4 / 5.3;
  }

  .monterrey-silhouette {
    bottom: 62px;
  }

  .journey-line {
    display: none;
  }

  .hero-journey {
    min-height: auto;
    padding: 20px 0 2px;
  }

  .hero-journey ol {
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: rgba(236,230,220, 0.11);
  }

  .hero-journey li {
    min-height: 75px;
    align-content: center;
    padding: 12px 8px;
    background: rgba(16,34,52, 0.82);
  }

  .hero-journey li span {
    width: 24px;
    height: 24px;
    box-shadow: none;
  }

  .problem {
    padding: 66px 0;
  }

  .problem-heading h2 {
    font-size: 36px;
  }

  .service-grid,
  .process-grid {
    grid-template-columns: 1fr;
  }

  .service-card,
  .service-card:nth-child(n),
  .process-step,
  .process-step:nth-child(n) {
    min-height: auto;
    border: 0;
  }

  .coverage {
    padding: 78px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-name,
  .hero-copy > .eyebrow,
  .hero h1,
  .hero-lead,
  .hero-buttons,
  .hero-trust,
  .cinematic-portrait,
  .journey-line-light,
  .hero-journey li {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .journey-line-light {
    stroke-dashoffset: 0;
  }
}

/* Reference-led candidate: Monterrey panorama, editorial timeline and experience. */
main {
  display: flex;
  flex-direction: column;
}

.site-header { order: 0; }
.hero { order: 1; }
.process { order: 2; }
.about { order: 3; }
.stats { order: 4; }
.services { order: 5; }
.labor-tools { order: 6; }
.calculator-section { order: 7; }
.results { order: 8; }
.faq { order: 9; }
.coverage { order: 10; }
.mini-cta { order: 11; }
.footer { order: 12; }

.site-header {
  position: absolute;
  top: 0;
  width: 100%;
  border-bottom-color: transparent;
  background: linear-gradient(to bottom, rgba(16,34,52, 0.84), transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.header-inner {
  min-height: 96px;
}

.header-location {
  position: absolute;
  left: 50%;
  color: rgba(236,230,220, 0.82);
  font-size: 11px;
  letter-spacing: 0.05em;
  transform: translateX(-50%);
}

.hero {
  min-height: 790px;
  background-color: #102234;
  background-image: url("/assets/vianney-monterrey-hero.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.hero::before {
  z-index: 0;
  opacity: 1;
  background:
    linear-gradient(90deg, rgba(16,34,52, 0.98) 0%, rgba(16,34,52, 0.83) 29%, rgba(16,34,52, 0.34) 57%, rgba(16,34,52, 0.08) 76%),
    linear-gradient(to bottom, rgba(16,34,52, 0.25), transparent 55%, rgba(16,34,52, 0.62));
  background-size: auto;
  mask-image: none;
}

.hero::after {
  z-index: 0;
  height: 160px;
  background: linear-gradient(to bottom, transparent, rgba(16,34,52, 0.88));
}

.hero-glow {
  display: none;
}

.hero-grid {
  min-height: 790px;
  display: flex;
  align-items: center;
  grid-template: none;
  padding-top: 138px;
  padding-bottom: 76px;
}

.hero-copy {
  width: min(100%, 570px);
  max-width: 570px;
  margin-top: 26px;
}

.hero-name {
  margin-bottom: 29px;
}

.hero-name span {
  font-size: 19px;
  letter-spacing: 0.08em;
}

.hero-name small {
  font-size: 8px;
}

.hero-copy > .eyebrow {
  color: rgba(236,230,220, 0.76);
}

.hero h1 {
  max-width: 570px;
  margin: 23px 0 25px;
  font-size: clamp(54px, 5.55vw, 76px);
  letter-spacing: -0.025em;
  line-height: 0.98;
  text-transform: uppercase;
}

.hero h1 em {
  display: block;
  color: var(--copper-light);
  font-style: normal;
}

.hero-lead {
  max-width: 470px;
  margin-bottom: 28px;
  color: rgba(236,230,220, 0.86);
  font-size: 15px;
  line-height: 1.65;
}

.hero-buttons {
  gap: 12px;
}

.hero-trust {
  width: min(100%, 660px);
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  color: var(--ivory);
  text-transform: none;
}

.hero-trust span {
  min-height: 55px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 16px;
  border-right: 1px solid rgba(200,155,91, 0.35);
}

.hero-trust span:first-child {
  padding-left: 0;
}

.hero-trust span:last-child {
  border-right: 0;
}

.hero-trust span::before {
  display: none;
}

.hero-trust svg {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  color: var(--copper-light);
}

.hero-trust em {
  font-size: 10px;
  font-style: normal;
  letter-spacing: 0.02em;
  line-height: 1.35;
}

.hero-stage-rail {
  position: absolute;
  z-index: 5;
  top: 50%;
  right: 0;
  display: grid;
  gap: 19px;
  padding-left: 20px;
  color: rgba(236,230,220, 0.85);
  transform: translateY(-35%);
}

.hero-stage-rail::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--copper-light) 14% 86%, transparent);
}

.hero-stage-rail span {
  font-family: var(--serif);
  font-size: 12px;
}

.process {
  padding: 76px 0 82px;
  border-top: 1px solid rgba(200,155,91, 0.22);
  background: #102234;
}

.process::before {
  opacity: 0.11;
  background-size: 90px 90px;
}

.process-layout {
  display: grid;
  grid-template-columns: minmax(230px, 0.76fr) minmax(0, 2.24fr);
  align-items: center;
  gap: 54px;
}

.process .process-intro {
  margin: 0;
  text-align: left;
}

.process-intro .eyebrow::after {
  display: none;
}

.process-intro h2 {
  margin: 17px 0 17px;
  font-size: clamp(35px, 3.6vw, 48px);
}

.process-intro > p:last-of-type {
  margin: 0 0 24px;
  color: var(--muted-dark);
  font-size: 14px;
  line-height: 1.7;
}

.process-intro .button {
  width: fit-content;
}

.process-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  border: 0;
  background: transparent;
}

.process-grid::before {
  content: "";
  position: absolute;
  top: 76px;
  right: 7%;
  left: 7%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--copper-light) 8% 92%, transparent);
  box-shadow: 0 0 10px rgba(200,155,91, 0.45);
}

.process-step,
.process-step:last-child {
  min-height: 232px;
  padding: 17px 10px 10px;
  border: 0;
  background: transparent;
  text-align: center;
}

.process-number {
  position: static;
  display: block;
  margin-bottom: 12px;
  font-size: 20px;
}

.process-icon {
  position: relative;
  z-index: 2;
  width: 54px;
  height: 54px;
  margin: 0 auto 23px;
  background: #102234;
  box-shadow: 0 0 0 5px #102234, 0 0 16px rgba(200,155,91, 0.2);
}

.process-icon::after {
  content: "";
  position: absolute;
  right: -4px;
  bottom: -14px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--copper-light);
}

.process-step h3 {
  margin-bottom: 8px;
  font-size: 17px;
}

.process-step p {
  font-size: 11px;
  line-height: 1.55;
}

.about {
  padding: 0;
  border-top: 1px solid rgba(200,155,91, 0.19);
  background: #102234;
}

.about-grid {
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1.12fr) minmax(470px, 0.88fr);
  gap: 0;
}

.about-copy {
  order: 1;
  max-width: 720px;
  margin-left: auto;
  padding: 82px 72px 78px max(44px, calc((100vw - 1180px) / 2));
}

.about-image-wrap {
  order: 2;
  width: 100%;
  max-width: none;
  min-height: 620px;
  aspect-ratio: auto;
  align-self: stretch;
}

.about-image-wrap img {
  object-position: center 39%;
  filter: saturate(0.78) contrast(1.05) brightness(0.78);
}

.about-image-wrap::after {
  background:
    linear-gradient(90deg, rgba(16,34,52, 0.74), transparent 34%),
    linear-gradient(to top, rgba(16,34,52, 0.88), transparent 42%);
}

.about-image-border {
  top: 24px;
  right: 24px;
  left: auto;
  border-top: 1px solid var(--copper);
  border-right: 1px solid var(--copper);
  border-left: 0;
}

.about-copy h2 {
  max-width: 620px;
  text-transform: uppercase;
}

.stats {
  background: #102234;
}

.services {
  padding: 102px 0 110px;
  color: var(--ivory);
  background:
    linear-gradient(rgba(200,155,91, 0.035) 1px, transparent 1px),
    #102234;
  background-size: 100% 82px;
}

.services .section-heading h2,
.services .service-card h3,
.services .audience-intro h2 {
  color: var(--ivory);
}

.services .section-heading > p:last-child,
.services .audience-intro > p:last-child {
  color: var(--muted-dark);
}

.services .eyebrow {
  color: var(--copper-light);
}

.service-grid {
  border-color: rgba(200,155,91, 0.24);
  background: rgba(200,155,91, 0.18);
}

.service-card,
.service-card:last-child {
  background: rgba(16,34,52, 0.96);
}

.service-card:hover {
  background: #102234;
}

.service-number,
.service-card p {
  color: var(--muted-dark);
}

.audience-block {
  border-top-color: rgba(200,155,91, 0.2);
}

.audience-card-company {
  background: #102234;
  color: var(--ivory);
}

.audience-card-company li {
  color: var(--muted-dark);
}

@media (min-width: 901px) {
  .main-nav {
    position: fixed;
    z-index: 60;
    inset: 0;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 100px 24px 38px;
    background: rgba(16,34,52, 0.98);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease, visibility 0s linear 180ms;
  }

  .main-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 180ms ease;
  }

  .main-nav a {
    min-width: min(100%, 420px);
    border-bottom: 1px solid rgba(236,230,220, 0.11);
    padding: 15px 8px;
    color: var(--ivory);
    font-family: var(--serif);
    font-size: 19px;
    letter-spacing: 0.08em;
    text-align: center;
  }

  .main-nav a::after {
    display: none;
  }

  .brand,
  .header-actions {
    position: relative;
    z-index: 70;
  }

  .header-location {
    position: absolute;
    z-index: 70;
  }

  .whatsapp-chip {
    display: none;
  }

  .menu-button {
    display: grid;
    gap: 5px;
  }

  .menu-button.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-button.is-open span:nth-child(2) {
    opacity: 0;
  }

  .menu-button.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

@media (max-width: 1180px) {
  .process-layout {
    grid-template-columns: 1fr;
  }

  .process .process-intro {
    max-width: 650px;
  }

  .process-grid {
    width: 100%;
  }

  .about-grid {
    grid-template-columns: 1fr 1fr;
  }

  .about-copy {
    padding-left: 40px;
  }
}

@media (max-width: 900px) {
  .site-header {
    position: absolute;
    background: linear-gradient(to bottom, rgba(16,34,52, 0.92), transparent);
  }

  .header-location {
    display: none;
  }

  .hero {
    min-height: 760px;
    background-position: 64% center;
  }

  .hero::before {
    background:
      linear-gradient(90deg, rgba(16,34,52, 0.96), rgba(16,34,52, 0.7) 60%, rgba(16,34,52, 0.36)),
      linear-gradient(to bottom, rgba(16,34,52, 0.3), transparent 50%, rgba(16,34,52, 0.78));
  }

  .hero-grid {
    min-height: 760px;
    padding-top: 128px;
    padding-bottom: 52px;
  }

  .hero-copy {
    margin-top: 0;
  }

  .hero-stage-rail {
    right: 8px;
  }

  .process-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: rgba(200,155,91, 0.13);
  }

  .process-grid::before {
    display: none;
  }

  .process-step,
  .process-step:last-child {
    min-height: 215px;
    background: #102234;
  }

  .about-grid {
    grid-template-columns: 1fr;
  }

  .about-copy {
    padding: 72px max(28px, calc((100vw - 720px) / 2));
  }

  .about-image-wrap {
    min-height: 620px;
  }
}

@media (max-width: 600px) {
  .header-inner {
    min-height: 78px;
  }

  .hero {
    min-height: 720px;
    background-position: 69% center;
  }

  .hero::before {
    background:
      linear-gradient(90deg, rgba(16,34,52, 0.97), rgba(16,34,52, 0.78) 73%, rgba(16,34,52, 0.54)),
      linear-gradient(to bottom, rgba(16,34,52, 0.4), transparent 45%, rgba(16,34,52, 0.84));
  }

  .hero-grid {
    min-height: 720px;
    padding-top: 105px;
    padding-bottom: 38px;
  }

  .hero-name {
    margin-bottom: 22px;
  }

  .hero h1 {
    max-width: 330px;
    font-size: clamp(42px, 13vw, 57px);
  }

  .hero-lead {
    max-width: 330px;
    font-size: 14px;
  }

  .hero-buttons {
    max-width: 330px;
  }

  .hero-trust {
    max-width: 330px;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .hero-trust span,
  .hero-trust span:first-child {
    min-height: 40px;
    border-right: 0;
    border-bottom: 1px solid rgba(200,155,91, 0.2);
    padding: 7px 0;
  }

  .hero-trust span:last-child {
    border-bottom: 0;
  }

  .hero-trust svg {
    width: 21px;
    height: 21px;
    flex-basis: 21px;
  }

  .hero-stage-rail {
    display: none;
  }

  .process {
    padding: 68px 0 72px;
  }

  .process-grid {
    grid-template-columns: 1fr 1fr;
  }

  .process-step,
  .process-step:nth-child(n) {
    min-height: 205px;
    padding: 18px 14px;
  }

  .about-image-wrap {
    min-height: 520px;
  }

  .about-copy {
    padding: 66px 24px;
  }

  .services {
    padding: 78px 0;
  }
}

/* Candidate 30: strict official palette, lightweight timeline and Monterrey map. */
.site-header {
  background: linear-gradient(to bottom, rgba(16,34,52, 0.88), transparent);
}

.hero {
  background-color: var(--graphite);
}

.hero::before {
  background:
    linear-gradient(90deg, rgba(16,34,52, 0.99) 0%, rgba(16,34,52, 0.86) 29%, rgba(16,34,52, 0.38) 57%, rgba(16,34,52, 0.08) 76%),
    linear-gradient(to bottom, rgba(16,34,52, 0.28), transparent 55%, rgba(16,34,52, 0.66));
}

.hero::after {
  background: linear-gradient(to bottom, transparent, rgba(16,34,52, 0.9));
}

.process,
.stats {
  background: var(--graphite);
}

.process-icon,
.process-step,
.process-step:last-child,
.about,
.audience-card-company {
  background: var(--graphite-soft);
}

.process-icon {
  box-shadow: 0 0 0 5px var(--graphite-soft), 0 0 16px rgba(200,155,91, 0.2);
}

.services {
  background:
    linear-gradient(rgba(200,155,91, 0.035) 1px, transparent 1px),
    var(--graphite);
  background-size: 100% 82px;
}

.service-grid {
  border-color: rgba(200,155,91, 0.24);
  background: rgba(200,155,91, 0.18);
}

.service-card,
.service-card:last-child {
  background: rgba(16,34,52, 0.97);
}

.service-card:hover,
.audience-card-company:hover {
  background: var(--bronze);
}

@media (min-width: 901px) {
  .main-nav {
    background: rgba(16,34,52, 0.985);
  }
}

.reveal-ready .process-grid::before {
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left center;
  transition: opacity 180ms ease 80ms, transform 980ms cubic-bezier(0.22, 1, 0.36, 1) 80ms;
}

.reveal-ready .process-grid.is-visible::before {
  opacity: 1;
  transform: scaleX(1);
}

.reveal-ready .process-step .process-icon {
  opacity: 0.58;
  transform: translateY(7px) scale(0.9);
  transition:
    opacity 420ms ease var(--delay, 0ms),
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1) var(--delay, 0ms),
    box-shadow 520ms ease var(--delay, 0ms);
}

.reveal-ready .process-step.is-visible .process-icon {
  opacity: 1;
  transform: none;
  box-shadow:
    0 0 0 5px var(--graphite-soft),
    0 0 24px rgba(200,155,91, 0.36);
}

.location-map {
  background-color: var(--graphite);
  background-image:
    linear-gradient(90deg, rgba(16,34,52, 0.16), transparent 58%, rgba(16,34,52, 0.3)),
    url("/assets/vianney-location-map.webp");
  background-position: center;
  background-size: cover;
}

.location-map::before {
  inset: 0;
  opacity: 1;
  background: radial-gradient(circle at 49% 43%, rgba(200,155,91, 0.16), transparent 19%);
  transform: none;
}

.location-map::after,
.map-road {
  display: none;
}

.map-pin,
.location-card:hover .map-pin {
  top: 43%;
  left: 49%;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ivory);
  box-shadow: 0 0 0 6px rgba(200,155,91, 0.1), 0 0 22px rgba(200,155,91, 0.58);
  transform: translate(-50%, -50%);
}

.location-card:hover .map-pin {
  transform: translate(-50%, -56%);
}

.map-pin svg {
  width: 28px;
  height: 28px;
  transform: none;
}

.map-city {
  top: calc(43% + 25px);
  right: auto;
  bottom: auto;
  left: 49%;
  color: var(--ivory);
  font-size: 10px;
  letter-spacing: 0.09em;
  text-shadow: 0 2px 10px var(--graphite);
  transform: translateX(-50%);
}

@media (max-width: 900px) {
  .site-header {
    background: linear-gradient(to bottom, rgba(16,34,52, 0.94), transparent);
  }

  .hero::before {
    background:
      linear-gradient(90deg, rgba(16,34,52, 0.97), rgba(16,34,52, 0.72) 60%, rgba(16,34,52, 0.4)),
      linear-gradient(to bottom, rgba(16,34,52, 0.32), transparent 50%, rgba(16,34,52, 0.8));
  }

  .process-step,
  .process-step:last-child {
    background: var(--graphite-soft);
  }

  .location-map {
    background-image:
      linear-gradient(90deg, rgba(16,34,52, 0.12), transparent 58%, rgba(16,34,52, 0.28)),
      url("/assets/vianney-location-map.webp");
    background-position: center;
    background-size: cover;
  }

  .location-map::before {
    background: radial-gradient(circle at 49% 43%, rgba(200,155,91, 0.14), transparent 21%);
  }
}

@media (max-width: 600px) {
  .hero::before {
    background:
      linear-gradient(90deg, rgba(16,34,52, 0.98), rgba(16,34,52, 0.8) 73%, rgba(16,34,52, 0.58)),
      linear-gradient(to bottom, rgba(16,34,52, 0.44), transparent 45%, rgba(16,34,52, 0.86));
  }
}

@media (max-width: 900px), (prefers-reduced-motion: reduce) {
  .reveal-ready .process-grid::before,
  .reveal-ready .process-grid.is-visible::before {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .reveal-ready .process-step .process-icon,
  .reveal-ready .process-step.is-visible .process-icon {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Página interna: despido injustificado en Monterrey. */
.dismissal-page {
  display: block;
  background: var(--ivory);
}

.dismissal-page article {
  display: block;
}

.dismissal-page h1,
.dismissal-page h2,
.dismissal-page h3 {
  margin-top: 0;
  font-family: var(--serif);
  font-weight: 400;
}

.dismissal-page p {
  line-height: 1.75;
}

.dismissal-hero {
  position: relative;
  min-height: 730px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  padding: 108px 0 92px;
  background: var(--graphite) url("/assets/vianney-monterrey-hero.webp") center 28% / cover no-repeat;
  color: var(--ivory);
}

.dismissal-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(16,34,52, 0.98) 0%, rgba(16,34,52, 0.9) 45%, rgba(16,34,52, 0.4) 77%, rgba(16,34,52, 0.58) 100%),
    linear-gradient(0deg, rgba(16,34,52, 0.68), transparent 58%);
}

.dismissal-hero-inner {
  position: relative;
}

.dismissal-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 47px;
  color: rgba(236,230,220, 0.62);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.dismissal-breadcrumb a {
  transition: color 180ms ease;
}

.dismissal-breadcrumb a:hover {
  color: var(--copper-light);
}

.dismissal-hero h1 {
  max-width: 830px;
  margin-bottom: 26px;
  font-size: clamp(50px, 6.1vw, 84px);
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.dismissal-hero-lead,
.dismissal-hero-secondary {
  max-width: 735px;
  margin: 0;
  color: rgba(236,230,220, 0.84);
  font-size: 17px;
}

.dismissal-hero-secondary {
  max-width: 690px;
  margin-top: 12px;
  color: rgba(236,230,220, 0.66);
  font-size: 15px;
}

.dismissal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 36px;
}

.dismissal-trust {
  border-top: 1px solid rgba(200,155,91, 0.18);
  background: var(--graphite-soft);
  color: var(--ivory);
}

.dismissal-trust ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.dismissal-trust li {
  min-height: 104px;
  display: flex;
  align-items: center;
  border-right: 1px solid rgba(236,230,220, 0.1);
  padding: 24px 26px 24px 44px;
  color: rgba(236,230,220, 0.78);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.55;
  text-transform: uppercase;
}

.dismissal-trust li::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  margin-right: 16px;
  border: 1px solid var(--copper-light);
  transform: rotate(45deg);
}

.dismissal-trust li:last-child {
  border-right: 0;
}

.dismissal-section {
  padding: 118px 0;
}

.dismissal-section h2,
.dismissal-calculator h2,
.dismissal-final-cta h2 {
  margin-bottom: 25px;
  font-size: clamp(38px, 4.3vw, 60px);
  line-height: 1.04;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.dismissal-definition-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.78fr);
  align-items: end;
  gap: clamp(68px, 9vw, 130px);
}

.dismissal-definition p:not(.eyebrow),
.dismissal-heading > p:not(.eyebrow),
.dismissal-legal p:not(.eyebrow) {
  max-width: 730px;
  color: rgba(16,34,52, 0.72);
  font-size: 16px;
}

.dismissal-definition blockquote {
  position: relative;
  margin: 0 0 14px;
  border-left: 1px solid var(--copper);
  padding: 16px 0 16px 34px;
  color: var(--bronze);
  font-family: var(--serif);
  font-size: 28px;
  font-style: italic;
  line-height: 1.38;
}

.dismissal-claims,
.dismissal-evidence {
  background: var(--graphite);
  color: var(--ivory);
}

.dismissal-heading {
  max-width: 810px;
  margin-bottom: 58px;
}

.dismissal-heading-light > p:not(.eyebrow) {
  color: rgba(236,230,220, 0.62);
}

.dismissal-card-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  background: rgba(200,155,91, 0.22);
  border: 1px solid rgba(200,155,91, 0.22);
}

.dismissal-card {
  grid-column: span 2;
  min-height: 300px;
  padding: 38px;
  background: var(--graphite-soft);
}

.dismissal-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.dismissal-card > span,
.dismissal-process-step > span {
  display: block;
  margin-bottom: 52px;
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 13px;
  letter-spacing: 0.12em;
}

.dismissal-card h3,
.dismissal-process-step h3 {
  margin-bottom: 15px;
  font-size: 28px;
  line-height: 1.08;
}

.dismissal-card p,
.dismissal-process-step p {
  margin: 0;
  color: rgba(236,230,220, 0.62);
  font-size: 14px;
}

.dismissal-prudence-note,
.dismissal-competence-note {
  max-width: 880px;
  margin: 34px 0 0;
  color: rgba(236,230,220, 0.58);
  font-size: 13px;
}

.dismissal-deadline {
  background: #ECE6DC;
}

.dismissal-deadline-card {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) auto;
  align-items: end;
  gap: 72px;
  border-left: 3px solid var(--copper);
  padding: 55px 60px;
  background: var(--graphite-soft);
  color: var(--ivory);
  box-shadow: 0 30px 70px rgba(16,34,52, 0.12);
}

.dismissal-deadline-card h2 {
  max-width: 680px;
}

.dismissal-deadline-card p {
  max-width: 720px;
  color: rgba(236,230,220, 0.65);
}

.dismissal-evidence-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 22px 90px;
}

.dismissal-evidence-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 0 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dismissal-evidence-list li {
  position: relative;
  min-height: 74px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(236,230,220, 0.12);
  padding: 16px 10px 16px 30px;
  color: rgba(236,230,220, 0.74);
  font-size: 14px;
  line-height: 1.55;
}

.dismissal-evidence-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  width: 9px;
  height: 5px;
  border-bottom: 1px solid var(--copper-light);
  border-left: 1px solid var(--copper-light);
  transform: rotate(-45deg);
}

.dismissal-signing-note {
  grid-column: 2;
  margin: 26px 0 0;
  border-left: 1px solid var(--copper);
  padding: 7px 0 7px 24px;
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 18px;
}

.dismissal-process {
  background: var(--ivory);
}

.dismissal-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid rgba(132,96,54, 0.18);
  background: rgba(132,96,54, 0.18);
}

.dismissal-process-step {
  min-height: 305px;
  padding: 38px;
  background: var(--ivory);
}

.dismissal-process-step p {
  color: rgba(16,34,52, 0.64);
}

.dismissal-competence-note {
  color: rgba(16,34,52, 0.58);
}

.dismissal-calculator {
  padding: 88px 0;
  background: var(--copper);
  color: var(--graphite);
}

.dismissal-calculator-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  align-items: center;
  gap: 90px;
}

.dismissal-calculator h2 {
  max-width: 760px;
}

.dismissal-calculator p {
  max-width: 700px;
  color: rgba(16,34,52, 0.72);
}

.dismissal-calculator-inner > div:last-child {
  display: grid;
  gap: 18px;
}

.dismissal-calculator .button-primary {
  background: var(--graphite);
  color: var(--ivory);
}

.dismissal-calculator small {
  color: rgba(16,34,52, 0.63);
  font-size: 11px;
  line-height: 1.6;
}

.dismissal-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.74fr) minmax(0, 1.26fr);
  align-items: start;
  gap: 90px;
}

.dismissal-faq .faq-list {
  border-top: 1px solid rgba(132,96,54, 0.3);
}

.dismissal-faq .faq-item summary {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.35;
  text-transform: none;
}

.dismissal-legal {
  border-top: 1px solid rgba(132,96,54, 0.15);
  background: #ECE6DC;
}

.dismissal-legal-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(280px, 0.58fr);
  align-items: end;
  gap: 90px;
}

.dismissal-official-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  border-top: 1px solid var(--copper);
  border-bottom: 1px solid rgba(132,96,54, 0.24);
  padding: 22px 0;
  color: var(--bronze);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.55;
  text-transform: uppercase;
}

.dismissal-official-link svg {
  width: 20px;
  flex: 0 0 20px;
}

.dismissal-final-cta {
  padding: 102px 0;
  background: var(--graphite);
  color: var(--ivory);
}

.dismissal-final-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) auto;
  align-items: center;
  gap: 80px;
}

.dismissal-final-inner p:not(.eyebrow) {
  max-width: 730px;
  color: rgba(236,230,220, 0.64);
}

.dismissal-authority {
  border-top: 1px solid rgba(200,155,91, 0.26);
  padding: 28px 0;
  background: var(--graphite-soft);
  color: var(--ivory);
}

.dismissal-authority-inner {
  display: flex;
  align-items: center;
  gap: 18px;
  color: rgba(236,230,220, 0.58);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dismissal-authority-inner strong {
  color: var(--copper-light);
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: none;
}

.dismissal-authority-inner span + span::before,
.dismissal-authority-inner strong + span::before {
  content: "·";
  margin-right: 18px;
  color: var(--copper);
}

@media (max-width: 900px) {
  .dismissal-hero {
    min-height: 680px;
    padding: 92px 0 78px;
    background-position: 60% 30%;
  }

  .dismissal-hero::before {
    background:
      linear-gradient(90deg, rgba(16,34,52, 0.98) 0%, rgba(16,34,52, 0.91) 64%, rgba(16,34,52, 0.64) 100%),
      linear-gradient(0deg, rgba(16,34,52, 0.7), transparent 58%);
  }

  .dismissal-hero h1 {
    max-width: 710px;
    font-size: clamp(46px, 9vw, 68px);
  }

  .dismissal-trust ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dismissal-trust li:nth-child(2) {
    border-right: 0;
  }

  .dismissal-trust li:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(236,230,220, 0.1);
  }

  .dismissal-section {
    padding: 90px 0;
  }

  .dismissal-definition-grid,
  .dismissal-evidence-grid,
  .dismissal-faq-grid,
  .dismissal-legal-grid,
  .dismissal-calculator-inner,
  .dismissal-final-inner {
    grid-template-columns: 1fr;
    gap: 54px;
  }

  .dismissal-definition blockquote {
    max-width: 650px;
  }

  .dismissal-card {
    grid-column: span 3;
  }

  .dismissal-card:nth-child(4) {
    grid-column: span 3;
  }

  .dismissal-card:last-child {
    grid-column: 2 / span 4;
  }

  .dismissal-deadline-card {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 28px;
  }

  .dismissal-signing-note {
    grid-column: 1;
  }

  .dismissal-process-grid {
    grid-template-columns: 1fr;
  }

  .dismissal-process-step {
    min-height: auto;
  }

  .dismissal-calculator,
  .dismissal-final-cta {
    padding: 80px 0;
  }

  .dismissal-authority-inner {
    flex-wrap: wrap;
  }
}

@media (max-width: 600px) {
  .dismissal-page .container {
    width: min(100% - 34px, 1180px);
  }

  .dismissal-hero {
    min-height: 710px;
    padding: 72px 0 62px;
    background-position: 65% center;
  }

  .dismissal-breadcrumb {
    margin-bottom: 38px;
    font-size: 9px;
  }

  .dismissal-hero h1 {
    margin-bottom: 23px;
    font-size: clamp(42px, 13.5vw, 58px);
    line-height: 0.98;
  }

  .dismissal-hero-lead {
    font-size: 15px;
    line-height: 1.62;
  }

  .dismissal-hero-secondary {
    font-size: 13px;
    line-height: 1.6;
  }

  .dismissal-actions {
    display: grid;
  }

  .dismissal-actions .button {
    width: 100%;
    min-height: 54px;
  }

  .dismissal-trust ul {
    grid-template-columns: 1fr;
  }

  .dismissal-trust li,
  .dismissal-trust li:nth-child(2) {
    min-height: 74px;
    border-right: 0;
    border-bottom: 1px solid rgba(236,230,220, 0.1);
    padding: 18px 8px;
    font-size: 10px;
  }

  .dismissal-section {
    padding: 74px 0;
  }

  .dismissal-section h2,
  .dismissal-calculator h2,
  .dismissal-final-cta h2 {
    font-size: 38px;
  }

  .dismissal-definition-grid,
  .dismissal-evidence-grid,
  .dismissal-faq-grid,
  .dismissal-legal-grid,
  .dismissal-calculator-inner,
  .dismissal-final-inner {
    gap: 38px;
  }

  .dismissal-definition blockquote {
    padding-left: 24px;
    font-size: 23px;
  }

  .dismissal-card-grid {
    display: block;
    border: 0;
    background: transparent;
  }

  .dismissal-card {
    min-height: 0;
    border-bottom: 1px solid rgba(200,155,91, 0.2);
    padding: 32px 26px;
  }

  .dismissal-card > span,
  .dismissal-process-step > span {
    margin-bottom: 30px;
  }

  .dismissal-card h3,
  .dismissal-process-step h3 {
    font-size: 25px;
  }

  .dismissal-deadline-card {
    border-left-width: 2px;
    padding: 36px 26px;
  }

  .dismissal-deadline-card .button,
  .dismissal-calculator .button,
  .dismissal-final-cta .button {
    width: 100%;
  }

  .dismissal-evidence-list {
    grid-template-columns: 1fr;
  }

  .dismissal-signing-note {
    padding-left: 20px;
    font-size: 16px;
  }

  .dismissal-process-step {
    padding: 32px 26px;
  }

  .dismissal-calculator,
  .dismissal-final-cta {
    padding: 70px 0;
  }

  .dismissal-faq .faq-item summary {
    font-size: 19px;
  }

  .dismissal-authority-inner {
    display: grid;
    gap: 8px;
  }

  .dismissal-authority-inner span + span::before,
  .dismissal-authority-inner strong + span::before {
    content: none;
  }
}

/* V2 exit gate: keep numerals and money on a stable visual baseline. */
.stat div {
  grid-template-rows: clamp(70px, 6.5vw, 94px) auto;
}

.stat strong {
  align-self: end;
}

.stat strong,
.service-number,
.process-number,
.labor-tool-number,
.result-card-top > span:first-child,
.result-amount,
.calculator-panel-heading > span,
.calculator-summary-grid strong,
.calculator-result-title strong,
.calculator-money-row > strong,
.calculator-grand-total strong,
.phone-link,
.hours-time strong {
  font-variant-numeric: lining-nums tabular-nums;
}

.stat strong,
.service-number,
.process-number,
.labor-tool-number,
.result-card-top > span:first-child {
  line-height: 1.1;
}

.service-number,
.process-number,
.labor-tool-number {
  min-height: 1.1em;
}

.calculator-result-title strong,
.calculator-money-row > strong {
  align-self: start;
  text-align: right;
}

.calculator-grand-total strong {
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow-wrap: normal;
}

.labor-shared-note {
  margin: 20px 0 0;
  border-left: 3px solid var(--bronze);
  padding: 12px 16px;
  background: var(--ivory);
  color: var(--bronze);
  font: 700 12px/1.55 var(--sans);
}

.labor-assistant-panel > .labor-shared-note {
  width: min(100%, 780px);
  margin: 0 auto;
}

/* The assistant lives on a light panel; its secondary actions need dark ink. */
.labor-assistant-next-steps h4 {
  color: var(--ink);
}

.labor-assistant-result-actions .button-secondary,
.labor-assistant-options-compact .button-secondary,
.labor-assistant-question .labor-assistant-options > .button-secondary {
  border-color: var(--bronze);
  background: transparent;
  color: var(--bronze);
}

.labor-assistant-result-actions .button-secondary:hover,
.labor-assistant-options-compact .button-secondary:hover,
.labor-assistant-question .labor-assistant-options > .button-secondary:hover {
  border-color: var(--ink);
  background: var(--ivory);
  color: var(--ink);
}

.labor-assistant-option:focus-visible,
.labor-assistant-date input:focus-visible,
.labor-assistant-panel .button:focus-visible,
.labor-assistant-controls button:focus-visible,
.labor-assistant-controls a:focus-visible {
  outline: 2px solid var(--bronze);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .calculator-result-title strong {
    align-self: end;
  }
}

@font-face{font-family:VA Inter;src:url('/integral-assets/Inter.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:VA Editorial;src:url('/integral-assets/Playfair.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap}
:root{--ivory:#F8F5EF;--navy:#0F2D4A;--gold:#C89B5B;--paper:#ECE6DC;--sand:#E4D5BD;--gold-ink:#846036;--blue-mid:#34516A;--muted:#536573;--line:#D7DCDE;--night:#102234;--serif:'VA Editorial',Georgia,serif;--sans:'VA Inter',Arial,sans-serif;--graphite:var(--navy);--graphite-soft:var(--night);--ink:var(--navy);--ivory-soft:var(--ivory);--copper:var(--gold);--copper-light:var(--sand);--bronze:var(--gold-ink);--whatsapp:var(--gold);--whatsapp-dark:var(--gold-ink);--muted-dark:var(--sand);--muted-light:var(--muted)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--ivory);color:var(--navy);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button{color:inherit}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}svg{flex-shrink:0}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex='-1']:focus-visible{outline:3px solid var(--gold-ink);outline-offset:5px}::selection{background:var(--sand);color:var(--navy)}.ng-wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.ng-section{padding-block:100px}.ng-site h1,.ng-site h2,.ng-site h3{font-family:var(--serif);font-weight:500}.ng-site em{font-style:normal;color:var(--gold-ink)}.ng-eyebrow{font-family:var(--sans);font-size:10px;font-weight:650;letter-spacing:.16em;line-height:1.6}.ng-eyebrow>span{display:inline-block;width:28px;height:1px;margin-right:10px;vertical-align:middle;background:var(--gold)}.ng-skip{position:fixed;top:8px;left:12px;transform:translateY(-150%);padding:12px 20px;z-index:9999;background:var(--navy);color:var(--ivory)}.ng-skip:focus{transform:none}.ng-header{position:sticky;top:0;z-index:50;background:rgba(248,245,239,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.ng-header-inner{height:94px;display:flex;align-items:center;justify-content:space-between;gap:24px}.ng-brand{display:inline-flex;align-items:center;gap:15px;flex-shrink:0}.ng-brand img{width:54px;height:54px;object-fit:contain}.ng-brand>span{font-family:var(--serif);font-weight:600;font-size:20px;line-height:1.2;letter-spacing:-.02em}.ng-brand small{display:block;margin-top:7px;font-family:var(--sans);font-size:8px;font-weight:550;letter-spacing:.25em}.ng-nav{display:flex;gap:30px;align-items:center;font-size:12px;font-weight:550}.ng-nav>a{padding-block:14px;position:relative}.ng-nav>a:not(.ng-nav-contact)::after{position:absolute;bottom:8px;left:0;content:'';height:1px;background:var(--gold-ink);width:0;transition:width .25s}.ng-nav>a:hover::after{width:100%}.ng-nav-contact{display:flex;align-items:center;gap:18px;padding:13px 18px!important;border:1px solid var(--navy);border-radius:4px}.ng-nav-contact svg,.ng-text-link svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5}.ng-nav-contact:hover{background:var(--navy);color:var(--ivory)}.ng-menu{display:none}
.ng-action{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:58px;padding:7px 7px 7px 24px;border:1px solid var(--navy);border-radius:5px;background:var(--navy);color:var(--ivory);font-size:12px;font-weight:600;letter-spacing:.005em;box-shadow:0 6px 0 -3px var(--sand);transition:background .2s,transform .2s,box-shadow .2s}.ng-action i{display:grid;place-items:center;width:42px;height:42px;border-left:1px solid rgba(248,245,239,.24);font-style:normal}.ng-action svg{width:22px;height:22px;stroke:var(--gold);stroke-width:1.6;transition:transform .2s}.ng-action:hover{background:var(--blue-mid);box-shadow:0 8px 0 -4px var(--sand);transform:translateY(-2px)}.ng-action:hover svg{transform:translateX(3px)}.ng-action:active{transform:translateY(1px);box-shadow:none}.ng-action-gold{background:var(--gold);border-color:var(--gold);color:var(--navy);box-shadow:none}.ng-action-gold i{border-color:rgba(15,45,74,.25)}.ng-action-gold svg{stroke:var(--navy)}.ng-action-gold:hover{background:var(--sand);box-shadow:none}.ng-text-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;border-bottom:1px solid var(--line);font-size:12px;font-weight:550}.ng-text-link:hover{border-color:var(--gold-ink)}
.ng-hero{display:grid;grid-template-columns:1.08fr 1fr;column-gap:6%;padding-top:54px;position:relative}.ng-hero-copy{padding-top:18px;padding-bottom:38px;align-self:center}.ng-hero h1{font-size:clamp(45px,5.1vw,76px);line-height:1.09;letter-spacing:-.055em;margin-block:25px 25px}.ng-hero h1 em{font-size:.93em}.ng-hero-lead{max-width:350px;color:var(--blue-mid);font-size:15px;line-height:1.8;margin-bottom:27px}.ng-hero-note{display:flex;gap:13px;align-items:flex-start;margin-top:23px;font-size:10px;color:var(--muted);line-height:1.6}.ng-hero-note>span{font-size:25px;line-height:1.2;color:var(--gold-ink)}.ng-mobile-br{display:none}.ng-portrait{position:relative;min-width:0;margin:0 18px 0 0;align-self:stretch;background:var(--night);border-radius:5px 5px 64px 5px;isolation:isolate}.ng-portrait::before{content:'';position:absolute;inset:18px -18px -18px 24px;border:1px solid var(--gold);border-radius:5px 5px 64px 5px;z-index:-1}.ng-portrait>img{height:100%;min-height:570px;max-height:670px;width:100%;object-fit:cover;object-position:50% 23%;border-radius:inherit}.ng-portrait figcaption{position:absolute;bottom:28px;left:-24px;background:var(--navy);color:var(--ivory);padding:23px 30px;border-left:3px solid var(--gold);box-shadow:0 16px 30px rgba(16,34,52,.15)}.ng-portrait figcaption>span{font-family:var(--serif);font-size:24px}.ng-portrait figcaption small{display:block;letter-spacing:.14em;font-size:8px;margin-top:5px;color:var(--sand)}.ng-photo-label{position:absolute;top:20px;right:18px;font-size:9px;writing-mode:vertical-rl;color:var(--ivory);letter-spacing:.16em}.ng-hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-block:39px 19px;margin-top:20px;font-size:10px;color:var(--muted);letter-spacing:.02em}.ng-hero-foot>a{color:var(--navy);display:flex;gap:18px;align-items:center;min-height:44px}.ng-hero-foot>a>span{font-size:20px}
.ng-section-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}.ng-side-note{font-size:11px;line-height:1.6;color:var(--muted)}.ng-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:34px}.ng-section-heading h2,.ng-about h2,.ng-contact h2{font-size:clamp(34px,3.65vw,52px);line-height:1.18;letter-spacing:-.045em}.ng-section-heading>p{max-width:310px;color:var(--muted);font-size:13px;padding-bottom:6px}.ng-audience{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:36px}.ng-audience button{display:flex;align-items:center;gap:17px;padding:20px 24px;text-align:left;border:1px solid var(--line);border-radius:4px;background:transparent;transition:background .2s,border-color .2s}.ng-audience button[aria-pressed='true']{border-color:var(--navy);background:var(--navy);color:var(--ivory)}.ng-audience button:hover{border-color:var(--navy)}.ng-audience button>span:nth-child(2){font-size:14px;font-weight:550}.ng-audience small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:3px}.ng-audience [aria-pressed='true'] small{color:var(--sand)}.ng-choice-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-family:var(--serif);font-size:14px}.ng-audience [aria-pressed='true'] .ng-choice-icon{border-color:var(--gold);color:var(--gold)}.ng-audience svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.3;margin-left:auto}.ng-services-workspace{display:grid;grid-template-columns:.83fr 1.4fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ng-service-index{padding-block:10px;border-right:1px solid var(--line);padding-right:32px}.ng-service-index button{display:flex;gap:17px;align-items:center;width:100%;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;padding:23px 0;min-height:78px}.ng-service-index button:last-child{border-bottom:0}.ng-service-index button>span{font-size:10px;color:var(--muted)}.ng-service-index strong{font-size:13px;font-weight:500}.ng-service-index svg{width:18px;height:18px;stroke:var(--navy);stroke-width:1.5;margin-left:auto;opacity:.3;transition:transform .2s}.ng-service-index button:hover svg{transform:translateX(3px);opacity:1}.ng-service-index button.is-active strong{font-weight:650}.ng-service-index button.is-active svg{opacity:1;stroke:var(--gold-ink)}.ng-service-index button.is-active>span{color:var(--gold-ink)}.ng-service-detail{padding:28px 0 26px 48px;min-height:408px}.ng-service-overline{display:flex;justify-content:space-between;gap:20px;letter-spacing:.1em;font-size:9px;color:var(--muted)}.ng-service-detail h3{font-size:35px;line-height:1.25;letter-spacing:-.035em;margin:23px 0 15px}.ng-service-description{font-size:14px;line-height:1.8;color:var(--blue-mid);max-width:600px}.ng-service-more{margin-block:22px}.ng-service-more summary{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;cursor:pointer;min-height:44px;border-bottom:1px solid var(--line);list-style:none}.ng-service-more summary::-webkit-details-marker,.ng-faq summary::-webkit-details-marker{display:none}.ng-service-more summary>span{font-size:20px;font-weight:300}.ng-service-more[open] summary>span{transform:rotate(45deg)}.ng-service-more p{font-size:12px;color:var(--muted);margin-top:15px}.ng-service-links{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.ng-draft{font-size:9px;color:var(--muted);margin-top:22px;max-width:480px}.ng-draft>span{color:var(--gold-ink);margin-right:4px}
.ng-tool-band{background:var(--navy);color:var(--ivory);padding:72px 0;position:relative;isolation:isolate;overflow:hidden}.ng-tool-band::after{content:'';position:absolute;width:400px;height:400px;border:1px solid rgba(200,155,91,.16);border-radius:50%;left:-200px;top:-180px;z-index:-1}.ng-tool-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:11%}.ng-tool-band .ng-eyebrow{color:var(--sand);font-size:9px}.ng-tool-band h2{font-size:44px;line-height:1.15;letter-spacing:-.04em;margin:22px 0}.ng-tool-band em{color:var(--gold)}.ng-tool-layout>div>p:not(.ng-eyebrow){font-size:12px;line-height:1.8;max-width:330px;color:var(--sand)}.ng-product{display:flex;align-items:center;gap:20px;padding:27px 0;border-bottom:1px solid rgba(248,245,239,.23);transition:padding .2s}.ng-product:first-child{padding-top:0}.ng-product:hover{padding-left:7px}.ng-product-icon{display:grid;grid-template-columns:1fr 1fr;place-items:center;flex-shrink:0;width:56px;height:62px;border:1px solid var(--gold);border-radius:8px;font-size:20px;line-height:1;color:var(--gold);padding:7px}.ng-product-chat{display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:42px;border-radius:16px 16px 16px 0}.ng-product-label{font-size:8px;letter-spacing:.13em;color:var(--sand)}.ng-product h3{font-size:25px;line-height:1.2;margin:7px 0}.ng-product p{font-size:11px;color:var(--sand)}.ng-product>svg{width:24px;height:24px;margin-left:auto;stroke:var(--gold);stroke-width:1.3}.ng-tool-privacy{display:block;font-size:9px;line-height:1.6;color:var(--sand);margin-top:18px}
.ng-about{display:grid;grid-template-columns:1fr 1fr;gap:11%;align-items:center}.ng-about figure{position:relative;width:83%;margin-left:5%;}.ng-about img{height:520px;object-fit:cover;object-position:50% 29%;width:100%;border-radius:48px 4px 4px 4px}.ng-about figcaption{font-size:9px;color:var(--muted);padding-top:13px;border-top:1px solid var(--gold);margin-top:14px;letter-spacing:.05em}.ng-about h2{margin:25px 0}.ng-about-lead{font-size:14px;font-weight:550;line-height:1.7;margin-bottom:15px}.ng-about-copy>p:not(.ng-eyebrow):not(.ng-about-lead){font-size:13px;color:var(--muted);line-height:1.9;max-width:390px}.ng-about-principles{display:flex;flex-direction:column;gap:0;margin:25px 0;font-size:11px;counter-reset:principles}.ng-about-principles>span{padding:9px 0;border-bottom:1px solid var(--line)}.ng-about-principles>span::before{counter-increment:principles;content:'0' counter(principles);color:var(--gold-ink);margin-right:20px;font-size:9px}
.ng-contact{padding:50px 64px;background:var(--paper);border:1px solid var(--sand);border-radius:7px;position:relative}.ng-contact-top{display:flex;justify-content:space-between;gap:18px;padding-bottom:30px;border-bottom:1px solid rgba(15,45,74,.18)}.ng-contact-top>span{font-size:9px;color:var(--muted);letter-spacing:.11em}.ng-contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12%;margin-top:34px}.ng-contact h2{font-size:44px}.ng-contact-grid>div>p:not(.ng-contact-caption){font-size:12px;line-height:1.8;color:var(--blue-mid);max-width:410px;margin-top:20px}.ng-contact-switch{display:flex;gap:0;margin:25px 0 18px;border-bottom:1px solid rgba(15,45,74,.2);width:fit-content}.ng-contact-switch button{border:0;border-bottom:2px solid transparent;padding:12px 20px;background:none;font-size:11px;color:var(--muted)}.ng-contact-switch button:first-child{padding-left:0}.ng-contact-switch [aria-pressed='true']{border-bottom-color:var(--navy);color:var(--navy);font-weight:650}.ng-contact-caption{font-size:9px;line-height:1.7;color:var(--muted);margin-top:15px;max-width:370px}.ng-contact-meta{padding-top:8px;display:flex;flex-direction:column;justify-content:center;gap:30px}.ng-contact-meta>div>span{display:block;font-size:8px;letter-spacing:.14em;color:var(--muted);margin-bottom:8px}.ng-contact-meta>div>a{display:flex;align-items:center;gap:20px;font-size:13px;padding-block:9px;border-bottom:1px solid rgba(15,45,74,.18);overflow-wrap:anywhere}.ng-contact-meta svg{width:18px;height:18px;stroke:var(--navy);stroke-width:1.4;margin-left:auto}.ng-contact-meta p{display:flex;gap:25px;font-size:11px}.ng-contact-meta p>a{padding-block:10px}.ng-faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:12%;padding-block:75px}.ng-faq h2{font-size:33px;margin-top:15px}.ng-faq details{border-bottom:1px solid var(--line)}.ng-faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font-size:12px;font-weight:550;cursor:pointer;list-style:none}.ng-faq summary>span{font-size:23px;color:var(--gold-ink);font-weight:300}.ng-faq details[open] summary>span{transform:rotate(45deg)}.ng-faq details p{font-size:12px;line-height:1.9;color:var(--muted);padding:0 26px 24px 0}
.ng-footer{border-top:1px solid var(--line);padding:45px 0 25px;background:var(--ivory)}.ng-footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:35px}.ng-footer-top>p{font-size:11px;color:var(--muted)}.ng-footer .ng-brand img{width:45px;height:45px}.ng-footer .ng-brand>span{font-size:17px}.ng-footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:20px;font-size:9px;color:var(--muted);flex-wrap:wrap}.ng-footer-bottom>a,.ng-footer-bottom>button{padding-block:12px}.ng-footer-bottom button{background:none;border:none;font-size:9px;padding-inline:0;text-decoration:underline;text-underline-offset:3px}.ng-review-tag{color:var(--gold-ink)}
/* Approved tools retain their components and rules; these overrides are presentation only. */
.ng-tools-intro{padding-top:50px;padding-bottom:40px}.ng-tools-intro>.ng-text-link{margin-bottom:35px}.ng-tools-intro h1{font-size:clamp(38px,4.7vw,64px);line-height:1.15;letter-spacing:-.045em;margin:22px 0}.ng-tools-intro>p:last-of-type{max-width:560px;color:var(--muted);font-size:14px}.ng-tools-intro nav{display:flex;gap:30px;flex-wrap:wrap;margin-top:25px;border-bottom:1px solid var(--line);font-size:12px}.ng-tools-intro nav a{padding-block:14px}.ng-tools-legacy .container{width:min(1120px,calc(100% - 112px));max-width:1120px}.ng-tools-legacy .labor-tools{padding:45px 0 50px;background:var(--paper);color:var(--navy)}.ng-tools-legacy .labor-tools::before{display:none}.ng-tools-legacy .section-heading{max-width:none;text-align:left;margin-bottom:24px}.ng-tools-legacy .section-heading h2{font-size:34px;color:var(--navy);letter-spacing:-.03em}.ng-tools-legacy .section-heading p{color:var(--muted);font-size:13px;max-width:640px}.ng-tools-legacy .eyebrow-centered{text-align:left;justify-content:flex-start}.ng-tools-legacy .labor-tool-card{background:var(--ivory);border:1px solid var(--sand);color:var(--navy);box-shadow:none;border-radius:6px}.ng-tools-legacy .labor-tool-card h3{color:var(--navy);font-size:27px}.ng-tools-legacy .labor-tool-card p{color:var(--muted)}.ng-tools-legacy .labor-tool-number{color:var(--gold-ink)}.ng-tools-legacy .labor-tool-kicker{color:var(--gold-ink)!important}.ng-tools-legacy .calculator-section{background:var(--ivory);padding-block:65px;color:var(--navy)}.ng-tools-legacy .calculator-section::before,.ng-tools-legacy .calculator-section::after{display:none}.ng-tools-legacy .calculator-panel{background:var(--paper);border:1px solid var(--sand);border-radius:6px;box-shadow:none}.ng-tools-legacy .calculator-form,.ng-tools-legacy .calculator-results{color:var(--navy)}.ng-tools-legacy .calculator-results{background:var(--navy)}.ng-tools-legacy .calculator-choice{background:var(--ivory);border-color:var(--line);color:var(--navy)}.ng-tools-legacy .calculator-choice.is-selected{background:var(--sand);border-color:var(--gold-ink);box-shadow:none}.ng-tools-legacy .calculator-choice strong,.ng-tools-legacy .calculator-question legend{color:var(--navy)}.ng-tools-legacy .calculator-choice small,.ng-tools-legacy .calculator-question-help{color:var(--muted)}.ng-tools-legacy input,.ng-tools-legacy select{min-height:46px;color:var(--navy);background:var(--ivory);border-color:var(--muted)}.ng-tools-legacy input[type='radio'],.ng-tools-legacy input[type='checkbox']{min-height:20px;accent-color:var(--navy)}.ng-tools-legacy .button{font-family:var(--sans);font-size:12px;min-height:48px;letter-spacing:0;text-transform:none;border-radius:4px;box-shadow:none}.ng-tools-legacy .button-primary{background:var(--navy);border-color:var(--navy);color:var(--ivory)}.ng-tools-legacy .button-secondary{background:transparent;border-color:var(--navy);color:var(--navy)}.ng-tools-legacy .labor-assistant{background:var(--ivory);color:var(--navy);border-color:var(--sand);border-radius:6px;box-shadow:none}.ng-tools-legacy .labor-assistant h2,.ng-tools-legacy .labor-assistant h3,.ng-tools-legacy .labor-assistant strong{color:var(--navy)}.ng-tools-legacy .labor-assistant-option{background:var(--ivory);border-color:var(--line);color:var(--navy)}.ng-tools-legacy .labor-assistant-option:hover{background:var(--paper);border-color:var(--navy)}
/* Approved privacy and contact UI: content and consent logic unmodified. */
.cookie-banner,.cookie-modal,.labor-whatsapp-dialog{font-family:var(--sans)!important;color:var(--navy)!important;background:var(--ivory)!important;border:1px solid var(--sand)!important;box-shadow:0 12px 60px rgba(16,34,52,.16)!important}.cookie-banner{left:24px!important;right:24px!important;bottom:20px!important;max-width:820px!important;margin-inline:auto;border-radius:6px!important;padding:20px 24px!important}.cookie-banner strong{color:var(--navy)!important}.cookie-banner p,.cookie-modal p,.labor-whatsapp-dialog p{color:var(--blue-mid)!important}.cookie-banner p{font-size:11px!important}.cookie-banner-copy>a{color:var(--gold-ink)!important}.cookie-button{min-height:44px!important;font-size:11px!important;border-radius:4px!important;color:var(--navy)!important;border-color:var(--navy)!important;background:transparent!important}.cookie-button-primary{background:var(--navy)!important;color:var(--ivory)!important}.cookie-button-link{border-color:transparent!important}.cookie-modal h2,.labor-whatsapp-dialog h2{font-family:var(--serif);color:var(--navy)!important}.cookie-modal-backdrop,.labor-whatsapp-overlay{background:rgba(16,34,52,.64)!important;backdrop-filter:blur(4px)}.cookie-modal-close{min-width:44px;min-height:44px}.cookie-preference-row{border-color:var(--line)!important}.cookie-required-status{color:var(--gold-ink)!important;background:var(--paper)!important}.labor-whatsapp-dialog .button{min-height:48px;border-radius:4px;font-size:12px;text-transform:none}.labor-whatsapp-dialog .button-primary{background:var(--navy);color:var(--ivory)}
.ng-legal{background:var(--ivory);color:var(--navy)}.ng-legal .privacy-page-header,.ng-dismissal .site-header,.ng-dismissal>.site-header,.ng-dismissal .site-footer{display:none!important}.ng-legal .container{width:min(1060px,calc(100% - 112px));max-width:1060px}.ng-legal .privacy-hero,.ng-legal .privacy-document,.ng-legal .privacy-page,.ng-legal .dismissal-hero{background:var(--ivory);color:var(--navy)}.ng-legal .privacy-hero h1,.ng-legal .dismissal-hero h1{font-size:clamp(36px,4.5vw,62px);line-height:1.15;letter-spacing:-.035em;color:var(--navy)}.ng-legal .privacy-document p,.ng-legal .privacy-document li,.ng-legal .privacy-document h2{color:var(--navy)}.ng-legal .privacy-document a{color:var(--gold-ink)}.ng-legal .privacy-document{padding-bottom:70px}.ng-legal .dismissal-hero p{color:var(--blue-mid)}.ng-legal .dismissal-hero .button-primary{background:var(--navy);color:var(--ivory)}.ng-legal .dismissal-hero .button-secondary{border-color:var(--navy);color:var(--navy)}
@media(min-width:901px){.ng-hero-copy{animation:ng-enter .6s both}.ng-portrait{animation:ng-enter .8s .08s both}}@keyframes ng-enter{from{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.ng-wrap{width:calc(100% - 72px)}.ng-nav{gap:22px}.ng-hero{gap:5%;padding-top:40px}.ng-hero h1{font-size:58px}.ng-portrait>img{min-height:540px}.ng-service-detail{padding-left:30px}.ng-contact{padding:40px}.ng-about{gap:8%}.ng-about img{height:460px}.ng-product{gap:14px}.ng-product h3{font-size:22px}.ng-tool-layout{gap:7%}.ng-tools-legacy .container,.ng-legal .container{width:calc(100% - 72px)}}
@media(max-width:900px){.ng-wrap{width:calc(100% - 48px)}.ng-header-inner{height:78px}.ng-brand>span{font-size:18px}.ng-brand img{width:46px;height:46px}.ng-nav{gap:16px;font-size:11px}.ng-hero{padding-top:35px;column-gap:5%}.ng-hero h1{font-size:48px}.ng-hero .ng-eyebrow{font-size:8px}.ng-hero-lead{font-size:13px}.ng-portrait>img{min-height:470px}.ng-portrait figcaption{left:-15px;bottom:22px;padding:18px 20px}.ng-portrait figcaption>span{font-size:20px}.ng-portrait figcaption small{font-size:7px}.ng-portrait{margin-right:10px}.ng-portrait::before{inset:12px -10px -12px 16px}.ng-section{padding-block:70px}.ng-service-detail h3{font-size:29px}.ng-service-index{padding-right:20px}.ng-service-index strong{font-size:12px}.ng-service-index button{gap:10px}.ng-service-links{gap:12px}.ng-action{padding-left:17px;gap:20px}.ng-tool-band{padding-block:55px}.ng-tool-band h2{font-size:36px}.ng-tool-layout{grid-template-columns:.85fr 1.15fr;gap:6%}.ng-product-icon{width:42px;height:50px}.ng-product h3{font-size:21px}.ng-product-label{font-size:7px}.ng-product p{font-size:10px}.ng-about figure{width:100%;margin-left:0}.ng-about img{height:430px}.ng-about h2{font-size:36px}.ng-contact{padding:35px}.ng-contact-grid{gap:7%}.ng-contact h2{font-size:36px}.ng-footer-top{gap:20px}.ng-footer-top>p{font-size:10px}.ng-tools-legacy .container,.ng-legal .container{width:calc(100% - 48px)}}
@media(max-width:700px){html{scroll-padding-top:88px}.ng-wrap{width:calc(100% - 40px)}.ng-header-inner{height:76px;gap:10px}.ng-brand{gap:11px}.ng-brand>span{font-size:17px}.ng-brand small{font-size:7px;letter-spacing:.22em}.ng-brand img{width:44px;height:44px}.ng-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:none;border:1px solid var(--line);width:44px;height:44px;border-radius:4px}.ng-menu span{width:18px;height:1px;background:var(--navy);transition:transform .2s}.ng-menu[aria-expanded='true'] span:first-child{transform:translateY(3.5px) rotate(45deg)}.ng-menu[aria-expanded='true'] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.ng-nav{display:none;position:absolute;top:76px;left:0;right:0;padding:14px 24px 24px;background:var(--ivory);border-bottom:1px solid var(--line);box-shadow:0 20px 30px rgba(16,34,52,.08)}.ng-nav.is-open{display:flex;flex-direction:column;gap:0;align-items:stretch}.ng-nav>a{padding:18px 0;border-bottom:1px solid var(--line);font-size:15px}.ng-nav-contact{margin-top:18px;justify-content:space-between}.ng-hero{display:flex;flex-direction:column;padding-top:31px;gap:0}.ng-hero-copy{padding-top:0;padding-bottom:0;width:100%}.ng-hero .ng-eyebrow{font-size:8px;letter-spacing:.12em}.ng-hero h1{font-size:clamp(43px,10.8vw,66px);line-height:1.08;letter-spacing:-.055em;margin:20px 0}.ng-hero h1 em{font-size:1em}.ng-hero-lead{font-size:13px;max-width:320px;margin-bottom:22px}.ng-action{min-height:56px;padding:7px 7px 7px 20px;font-size:11px}.ng-action i{height:40px;width:38px}.ng-hero .ng-action{min-width:252px}.ng-hero-note{display:none}.ng-portrait{height:410px;margin:32px 9px 0 0;min-height:0;align-self:stretch;border-radius:4px 4px 50px 4px}.ng-portrait>img{min-height:0;max-height:none;height:100%;object-position:50% 24%}.ng-portrait::before{inset:10px -9px -10px 18px;border-radius:inherit}.ng-portrait figcaption{left:12px;bottom:20px;right:24px;padding:17px 20px;box-shadow:none}.ng-portrait figcaption>span{font-size:23px}.ng-portrait figcaption small{font-size:7px;letter-spacing:.13em}.ng-photo-label{font-size:8px}.ng-hero-foot{margin-top:23px;padding:10px 0 12px;gap:15px;font-size:9px}.ng-hero-foot>span{max-width:110px}.ng-section{padding-block:60px}.ng-section-top{margin-bottom:22px}.ng-side-note{display:none}.ng-eyebrow{font-size:9px}.ng-section-heading{display:block;margin-bottom:25px}.ng-section-heading h2,.ng-about h2{font-size:37px;line-height:1.15}.ng-section-heading>p{font-size:12px;margin-top:18px;max-width:300px}.ng-audience{grid-template-columns:1fr;gap:8px;margin-bottom:25px}.ng-audience button{padding:16px;min-height:78px;gap:13px}.ng-audience button>span:nth-child(2){font-size:13px}.ng-audience small{font-size:9px}.ng-services-workspace{display:block}.ng-service-index{border-right:0;padding:0}.ng-service-index button{padding:17px 2px;min-height:62px;gap:17px}.ng-service-index strong{font-size:12px}.ng-service-index button.is-active{background:var(--paper);padding-inline:12px}.ng-service-index button:last-child{border-bottom:1px solid var(--line)}.ng-service-detail{padding:28px 0 25px;min-height:0}.ng-service-detail h3{font-size:31px;margin-top:18px}.ng-service-description{font-size:13px}.ng-service-overline{font-size:8px}.ng-service-more{margin-block:16px}.ng-service-more summary{font-size:11px}.ng-service-links{gap:9px;flex-direction:column;align-items:stretch}.ng-service-links .ng-text-link{align-self:flex-start}.ng-draft{font-size:9px;margin-top:18px}.ng-tool-band{padding-block:48px}.ng-tool-layout{display:block}.ng-tool-band h2{font-size:38px;margin:20px 0}.ng-tool-layout>div>p:not(.ng-eyebrow){font-size:12px;max-width:320px}.ng-tool-products{margin-top:34px}.ng-product{padding-block:23px;gap:17px}.ng-product h3{font-size:24px}.ng-product-label{font-size:7px}.ng-product-icon{width:46px;height:54px}.ng-product p{font-size:10px;max-width:200px}.ng-product>svg{width:20px}.ng-tool-privacy{font-size:9px}.ng-about{display:flex;flex-direction:column-reverse;gap:35px}.ng-about h2{margin:22px 0}.ng-about-copy{width:100%}.ng-about-copy>p:not(.ng-eyebrow):not(.ng-about-lead){font-size:12px;max-width:none}.ng-about figure{width:88%;align-self:flex-start;margin-left:0}.ng-about img{height:380px;object-position:50% 26%}.ng-contact{width:calc(100% - 24px);padding:30px 22px}.ng-contact-top{align-items:flex-start;padding-bottom:22px}.ng-contact-top>span{font-size:7px;line-height:1.8;letter-spacing:.08em;max-width:85px;text-align:right}.ng-contact-grid{display:block;margin-top:25px}.ng-contact h2{font-size:35px;line-height:1.2}.ng-contact-grid>div>p:not(.ng-contact-caption){font-size:12px;margin-top:18px}.ng-contact .ng-action{width:100%}.ng-contact-caption{font-size:9px}.ng-contact-meta{margin-top:32px;padding-top:27px;border-top:1px solid rgba(15,45,74,.18);gap:22px}.ng-contact-meta>div>a{font-size:12px}.ng-contact-meta>div>span{font-size:8px}.ng-faq{display:block;padding-block:50px}.ng-faq>div:first-child{margin-bottom:20px}.ng-faq h2{font-size:32px;margin-top:9px}.ng-faq summary{font-size:11px;padding-block:18px}.ng-footer{padding-top:30px}.ng-footer-top{align-items:flex-start;flex-wrap:wrap;gap:25px;padding-bottom:25px}.ng-footer-top .ng-brand{width:100%}.ng-footer-top>p{font-size:10px}.ng-footer-top .ng-text-link{font-size:10px;min-height:42px;margin-left:auto}.ng-footer-bottom{gap:4px 20px;justify-content:flex-start;font-size:8px}.ng-footer-bottom>span:first-child{width:100%;margin-bottom:7px}.ng-footer-bottom button{font-size:8px}.ng-review-tag{width:100%;margin-top:8px}.ng-tools-intro{padding-top:30px;padding-bottom:30px}.ng-tools-intro h1{font-size:39px}.ng-tools-intro>p:last-of-type{font-size:12px}.ng-tools-intro nav{gap:18px;font-size:10px}.ng-tools-legacy .container,.ng-legal .container{width:calc(100% - 32px)}.ng-tools-legacy .section-heading h2{font-size:30px}.ng-tools-legacy .calculator-panel{padding:20px 15px}.ng-tools-legacy .labor-tool-card h3{font-size:24px}.ng-tools-legacy .labor-tool-card{padding:23px 20px}.ng-tools-legacy .calculator-section{padding-block:42px}.cookie-banner{left:10px!important;right:10px!important;bottom:10px!important;padding:16px!important;max-height:65dvh;overflow:auto}.cookie-banner-copy p{font-size:10px!important;line-height:1.6!important}.cookie-banner-actions{gap:8px!important}.cookie-button{font-size:10px!important;min-height:44px!important}.ng-legal .privacy-hero h1,.ng-legal .dismissal-hero h1{font-size:36px}.ng-legal .privacy-document{overflow-wrap:anywhere}.ng-legal .privacy-document h2{font-size:25px}}
@media(max-width:350px){.ng-wrap{width:calc(100% - 32px)}.ng-brand>span{font-size:14px}.ng-brand img{width:40px;height:40px}.ng-brand small{font-size:6px}.ng-brand{gap:8px}.ng-hero h1{font-size:41px}.ng-hero .ng-eyebrow{font-size:7px}.ng-portrait{height:355px}.ng-section-heading h2,.ng-about h2{font-size:33px}.ng-contact h2{font-size:31px}.ng-product{gap:11px}.ng-product h3{font-size:22px}.ng-contact{width:calc(100% - 20px);padding-inline:18px}.ng-action{gap:15px}.ng-service-detail h3{font-size:29px}.ng-tools-intro h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.ng-header,.ng-footer,.cookie-banner,.ng-menu{display:none!important}body{background:var(--ivory)}.ng-wrap{width:100%}.ng-section{padding-block:30px}.ng-action{box-shadow:none}.ng-tool-band{break-inside:avoid}}

/* Integration refinements */
.ng-tools-legacy .calculator-results{color:var(--ivory)}
.ng-tools-legacy .calculator-results .button-primary{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.ng-tools-legacy .calculator-results .button-secondary{background:transparent;color:var(--ivory);border-color:var(--sand)}
.ng-tools-legacy .labor-assistant-shell{background:var(--ivory);box-shadow:none;border:1px solid var(--sand);border-radius:6px}
.ng-tools-legacy .labor-assistant-next-steps h4{color:var(--navy)}
.ng-tools-legacy .labor-assistant-controls button,.ng-tools-legacy .labor-assistant-controls a,.ng-tools-legacy .calculator-form-footer button{min-height:44px;padding-block:12px}
.ng-tools-legacy .labor-assistant-option:focus-visible{outline:3px solid var(--gold-ink);outline-offset:3px}
.labor-whatsapp-dialog .labor-whatsapp-kicker,.labor-whatsapp-dialog a:not(.button){color:var(--gold-ink)}
.labor-whatsapp-close{min-width:44px;min-height:44px;color:var(--navy)!important}
.ng-tools-legacy .calculator-choice input{accent-color:var(--navy)}

.ng-dismissal footer{display:none!important}

.ng-brand,.ng-contact-switch button,.ng-footer-bottom>a,.ng-footer-bottom>button{min-height:44px}.ng-footer-bottom>a,.ng-footer-bottom>button{display:inline-flex;align-items:center}

/* Unified vector icon, button and theme system. */
.ng-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ng-icon{display:block;width:20px;height:20px;flex:0 0 20px;overflow:visible}
.ng-action .ng-icon{width:19px;height:19px;stroke-width:1.7}
.ng-nav-contact .ng-icon,.ng-text-link .ng-icon,.ng-contact-meta .ng-icon{width:18px;height:18px;stroke-width:1.7}
.ng-audience .ng-icon,.ng-service-index .ng-icon,.ng-product>.ng-icon{width:20px;height:20px;stroke-width:1.6}
.ng-service-more summary>.ng-icon,.ng-faq summary>.ng-icon{width:20px;height:20px;color:var(--gold-ink);transition:transform 160ms cubic-bezier(.2,0,0,1)}
.ng-service-more[open] summary>.ng-icon,.ng-faq details[open] summary>.ng-icon{transform:rotate(180deg)}
.ng-action i{overflow:hidden}
.ng-action .ng-icon,.ng-nav-contact .ng-icon,.ng-audience .ng-icon,.ng-service-index .ng-icon,.ng-product>.ng-icon,.ng-text-link .ng-icon,.ng-contact-meta .ng-icon{transition:transform 160ms cubic-bezier(.2,0,0,1)}
.ng-action:hover .ng-icon--right,.ng-nav-contact:hover .ng-icon--right,.ng-audience button:hover .ng-icon--right,.ng-service-index button:hover .ng-icon--right,.ng-product:hover>.ng-icon--right,.ng-text-link:hover .ng-icon--right{transform:translateX(3px)}
.ng-action:hover .ng-icon--external,.ng-contact-meta a:hover .ng-icon--external{transform:translate(2px,-2px)}
.ng-text-link:hover .ng-icon--up{transform:translateY(-2px)}
.ng-hero-foot a:hover .ng-icon--down{transform:translateY(2px)}
.ng-hero-note{padding-left:0}
.ng-product-icon{display:grid;grid-template-columns:1fr;place-items:center;padding:0}
.ng-product-icon .ng-icon{width:28px;height:28px;stroke-width:1.35}
.ng-product-chat{display:grid;border-radius:16px 16px 16px 0}
.ng-contact-meta p>a{display:inline-flex;align-items:center;gap:7px}
.ng-contact-meta p .ng-icon{width:14px;height:14px}
.ng-service-more summary>span,.ng-faq summary>span{display:none}

/* Approved engines keep their markup; typographic arrows are visually replaced. */
.ng-tools-legacy .labor-tool-button>span[aria-hidden="true"],.ng-tools-legacy .labor-assistant-option>span:last-child{width:18px;height:18px;flex:0 0 18px;font-size:0;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14'/%3E%3Cpath d='m13.5 6.5 5.5 5.5-5.5 5.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14'/%3E%3Cpath d='m13.5 6.5 5.5 5.5-5.5 5.5'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform 160ms cubic-bezier(.2,0,0,1)}
.ng-tools-legacy .labor-tool-button:hover>span[aria-hidden="true"],.ng-tools-legacy .labor-assistant-option:hover>span:last-child{transform:translateX(3px)}

.ng-header-inner{position:relative}
.ng-theme-slot{display:flex;justify-content:flex-end;align-items:center;flex:0 0 132px;width:132px;height:44px}
.ng-theme-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--gold-ink);cursor:pointer;transition:background 150ms ease,border-color 150ms ease,transform 150ms ease}
.ng-theme-toggle>.ng-icon{grid-area:1/1;width:20px;height:20px;transition:transform 150ms ease}
.ng-theme-toggle:hover{background:var(--paper);border-color:var(--gold-ink)}
.ng-theme-toggle:hover>.ng-icon{transform:rotate(8deg)}
.ng-theme-toggle:active{transform:scale(.96)}
.ng-theme-toggle:focus-visible{outline:3px solid var(--gold-ink);outline-offset:4px}
.ng-theme-icon--sun{display:none}
html[data-theme="dark"] .ng-theme-icon--sun{display:block}
html[data-theme="dark"] .ng-theme-icon--moon{display:none}
html[data-theme="dark"] .ng-theme-toggle{color:var(--sand);border-color:var(--muted);background:var(--navy)}
html[data-theme="dark"] .ng-theme-toggle:hover{background:var(--blue-mid);border-color:var(--sand)}
html[data-theme="dark"] .ng-theme-toggle:focus-visible{outline-color:var(--sand)}
@media(max-width:700px){.ng-theme-slot{position:absolute;right:54px;top:16px;width:44px;flex-basis:44px}}
@media(prefers-reduced-motion:reduce){.ng-theme-toggle,.ng-theme-toggle>.ng-icon{transition:none}}

/* Dark theme: same three color families, with derived navy and ivory surfaces. */
html[data-theme="dark"] body,html[data-theme="dark"] .ng-site{background:#102234;color:#F8F5EF}
html[data-theme="dark"] ::selection{background:#C89B5B;color:#0F2D4A}
html[data-theme="dark"] .ng-site em{color:#E4D5BD}
html[data-theme="dark"] .ng-header{background:rgba(16,34,52,.97);border-color:#34516A}
html[data-theme="dark"] .ng-brand,html[data-theme="dark"] .ng-nav,html[data-theme="dark"] .ng-menu{color:#F8F5EF}
html[data-theme="dark"] .ng-brand img{border-radius:50%;background:#F8F5EF;box-shadow:0 0 0 1px rgba(200,155,91,.55)}
html[data-theme="dark"] .ng-nav>a:not(.ng-nav-contact)::after{background:#C89B5B}
html[data-theme="dark"] .ng-nav-contact{border-color:#D7DCDE}
html[data-theme="dark"] .ng-nav-contact:hover{background:#C89B5B;border-color:#C89B5B;color:#0F2D4A}
html[data-theme="dark"] .ng-menu{border-color:#34516A}
html[data-theme="dark"] .ng-menu span{background:#F8F5EF}
html[data-theme="dark"] .ng-theme--desktop{color:#F8F5EF}
html[data-theme="dark"] .ng-theme--desktop>.ng-icon:first-child{color:#E4D5BD}
html[data-theme="dark"] .ng-theme--desktop select{border-color:#536573;background:#0F2D4A;color-scheme:dark}
html[data-theme="dark"] .ng-theme--desktop select:hover{border-color:#C89B5B;background:#34516A}
html[data-theme="dark"] .ng-hero-lead,html[data-theme="dark"] .ng-section-heading>p,html[data-theme="dark"] .ng-side-note,html[data-theme="dark"] .ng-service-description,html[data-theme="dark"] .ng-service-more p,html[data-theme="dark"] .ng-draft,html[data-theme="dark"] .ng-about-copy>p:not(.ng-eyebrow):not(.ng-about-lead),html[data-theme="dark"] .ng-contact-caption,html[data-theme="dark"] .ng-faq details p,html[data-theme="dark"] .ng-footer-top>p,html[data-theme="dark"] .ng-footer-bottom{color:#D7DCDE}
html[data-theme="dark"] .ng-hero-foot,html[data-theme="dark"] .ng-services-workspace,html[data-theme="dark"] .ng-service-index,html[data-theme="dark"] .ng-service-index button,html[data-theme="dark"] .ng-service-more summary,html[data-theme="dark"] .ng-about-principles>span,html[data-theme="dark"] .ng-faq details,html[data-theme="dark"] .ng-footer,html[data-theme="dark"] .ng-footer-bottom{border-color:#34516A}
html[data-theme="dark"] .ng-action{background:#C89B5B;border-color:#C89B5B;color:#0F2D4A;box-shadow:0 6px 0 -3px #34516A}
html[data-theme="dark"] .ng-action i{border-color:rgba(15,45,74,.28)}
html[data-theme="dark"] .ng-action .ng-icon{color:#0F2D4A;stroke:var(--navy)}
html[data-theme="dark"] .ng-action:hover{background:#E4D5BD}
html[data-theme="dark"] .ng-text-link{border-color:#536573}
html[data-theme="dark"] .ng-text-link:hover{border-color:#C89B5B}
html[data-theme="dark"] .ng-audience button{border-color:#34516A;background:#102234;color:#F8F5EF}
html[data-theme="dark"] .ng-audience button:hover{border-color:#C89B5B}
html[data-theme="dark"] .ng-audience button[aria-pressed="true"]{border-color:#C89B5B;background:#C89B5B;color:#0F2D4A}
html[data-theme="dark"] .ng-audience button[aria-pressed="true"] small{color:#0F2D4A}
html[data-theme="dark"] .ng-choice-icon{border-color:#536573}
html[data-theme="dark"] .ng-audience button[aria-pressed="true"] .ng-choice-icon{border-color:#0F2D4A;color:#0F2D4A}
html[data-theme="dark"] .ng-service-index button.is-active{background:#0F2D4A}
html[data-theme="dark"] .ng-service-index button.is-active strong,html[data-theme="dark"] .ng-service-index button.is-active .ng-icon,html[data-theme="dark"] .ng-service-overline,html[data-theme="dark"] .ng-service-more summary>.ng-icon,html[data-theme="dark"] .ng-faq summary>.ng-icon{color:#E4D5BD}
html[data-theme="dark"] .ng-service-index button>span,html[data-theme="dark"] .ng-service-overline{color:#D7DCDE}
html[data-theme="dark"] .ng-tool-band{background:#0F2D4A}
html[data-theme="dark"] .ng-about figcaption{color:#D7DCDE}
html[data-theme="dark"] .ng-contact{background:#0F2D4A;border-color:#34516A}
html[data-theme="dark"] .ng-contact-top,html[data-theme="dark"] .ng-contact-switch,html[data-theme="dark"] .ng-contact-meta>div>a,html[data-theme="dark"] .ng-contact-meta{border-color:#34516A}
html[data-theme="dark"] .ng-contact-top>span,html[data-theme="dark"] .ng-contact-meta>div>span{color:#D7DCDE}
html[data-theme="dark"] .ng-contact-switch button{color:#D7DCDE}
html[data-theme="dark"] .ng-contact-switch button[aria-pressed="true"]{color:#F8F5EF;border-bottom-color:#C89B5B}
html[data-theme="dark"] .ng-contact-meta .ng-icon{color:#E4D5BD}
html[data-theme="dark"] .ng-footer{background:#102234}
html[data-theme="dark"] .ng-review-tag{color:#E4D5BD}
html[data-theme="dark"] .ng-tools-intro>p:last-of-type{color:#D7DCDE}
html[data-theme="dark"] .ng-tools-intro nav{border-color:#34516A}
html[data-theme="dark"] .ng-tools-legacy .labor-tools,html[data-theme="dark"] .ng-tools-legacy .calculator-section{background:#102234;color:#F8F5EF}
html[data-theme="dark"] .ng-tools-legacy .labor-tool-card,html[data-theme="dark"] .ng-tools-legacy .calculator-panel,html[data-theme="dark"] .ng-tools-legacy .calculator-form,html[data-theme="dark"] .ng-tools-legacy .labor-assistant-shell,html[data-theme="dark"] .ng-tools-legacy .labor-assistant-option{background:#0F2D4A;color:#F8F5EF;border-color:#34516A}
html[data-theme="dark"] .ng-tools-legacy .section-heading h2,html[data-theme="dark"] .ng-tools-legacy .labor-tool-card h3,html[data-theme="dark"] .ng-tools-legacy .calculator-choice strong,html[data-theme="dark"] .ng-tools-legacy .calculator-question legend,html[data-theme="dark"] .ng-tools-legacy .labor-assistant h2,html[data-theme="dark"] .ng-tools-legacy .labor-assistant h3,html[data-theme="dark"] .ng-tools-legacy .labor-assistant strong,html[data-theme="dark"] .ng-tools-legacy .labor-assistant-next-steps h4{color:#F8F5EF}
html[data-theme="dark"] .ng-tools-legacy .section-heading p,html[data-theme="dark"] .ng-tools-legacy .labor-tool-card p,html[data-theme="dark"] .ng-tools-legacy .calculator-choice small,html[data-theme="dark"] .ng-tools-legacy .calculator-question-help{color:#D7DCDE}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice{background:#102234;border-color:#536573;color:#F8F5EF}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice.is-selected{background:#34516A;border-color:#C89B5B}
/* The visible radio card is the inner span, not the label background. */
html[data-theme="dark"] .ng-tools-legacy .calculator-choice>span{background:#102234;color:#F8F5EF;border-color:#C89B5B}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice>span strong{color:#F8F5EF}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice>span small{color:#D7DCDE}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice>span::before{border-color:#C89B5B;background:#102234;box-shadow:inset 0 0 0 3px #102234}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice:hover>span{border-color:#E4D5BD}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice.is-selected>span{background:#34516A;border-color:#C89B5B;box-shadow:inset 3px 0 0 #C89B5B}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice.is-selected>span::before{background:#C89B5B;border-color:#C89B5B;box-shadow:inset 0 0 0 3px #34516A}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice input:focus-visible+span{outline:3px solid #E4D5BD;outline-offset:3px}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice:has(input:disabled){cursor:not-allowed;opacity:1}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice input:disabled+span{background:#102234;border-color:#536573;box-shadow:none;color:#D7DCDE}
html[data-theme="dark"] .ng-tools-legacy .calculator-choice input:disabled+span strong,html[data-theme="dark"] .ng-tools-legacy .calculator-choice input:disabled+span small{color:#D7DCDE}
html[data-theme="dark"] .ng-tools-legacy input,html[data-theme="dark"] .ng-tools-legacy select{background:#102234;color:#F8F5EF;border-color:#536573;color-scheme:dark}
html[data-theme="dark"] .ng-tools-legacy .button-primary{background:#C89B5B;border-color:#C89B5B;color:#0F2D4A}
html[data-theme="dark"] .ng-tools-legacy .button-secondary{background:transparent;border-color:#D7DCDE;color:#F8F5EF}
html[data-theme="dark"] .ng-tools-legacy .calculator-results{background:#0B1C2B;color:#F8F5EF}
/* Local semantic tokens also reach the inherited field labels and notes. */
html[data-theme="dark"] .ng-tools-legacy [data-testid="public-calculator"]{--calculator-text:var(--ivory);--calculator-help:var(--line);--calculator-accent-text:var(--sand);--ink:var(--calculator-text);--muted-light:var(--calculator-help);--muted-dark:var(--calculator-help);--bronze:var(--calculator-accent-text)}
.ng-rounding-note{font:400 10px/1.65 var(--sans);color:var(--sand);margin-top:12px}
html[data-theme="dark"] .ng-rounding-note{color:var(--calculator-help)}
html[data-theme="dark"] .ng-tools-legacy .calculator-fields label,html[data-theme="dark"] .ng-tools-legacy .calculator-scenario-note strong{color:var(--calculator-text)}
html[data-theme="dark"] .ng-tools-legacy .calculator-fields label>small,html[data-theme="dark"] .ng-tools-legacy .calculator-scenario-note,html[data-theme="dark"] .ng-tools-legacy .calculator-question-help,html[data-theme="dark"] .ng-tools-legacy .calculator-form-footer p{color:var(--calculator-help)}
html[data-theme="dark"] .ng-tools-legacy .calculator-input-wrap{background:var(--night);border-color:var(--muted)}
html[data-theme="dark"] .ng-tools-legacy .calculator-input-wrap>span{color:var(--calculator-help)}
html[data-theme="dark"] .ng-tools-legacy .calculator-fields input::placeholder{color:var(--calculator-help);opacity:1}
html[data-theme="dark"] .ng-tools-legacy .calculator-advanced summary,html[data-theme="dark"] .ng-tools-legacy .calculator-form-footer button{color:var(--calculator-accent-text)}
html[data-theme="dark"] .ng-legal,html[data-theme="dark"] .ng-legal .privacy-page,html[data-theme="dark"] .ng-legal .privacy-hero,html[data-theme="dark"] .ng-legal .privacy-document,html[data-theme="dark"] .ng-legal .dismissal-hero{background:#102234;color:#F8F5EF}
html[data-theme="dark"] .ng-legal .privacy-hero h1,html[data-theme="dark"] .ng-legal .dismissal-hero h1,html[data-theme="dark"] .ng-legal .privacy-document p,html[data-theme="dark"] .ng-legal .privacy-document li,html[data-theme="dark"] .ng-legal .privacy-document h2{color:#F8F5EF}
html[data-theme="dark"] .ng-legal .privacy-document a{color:#E4D5BD}
html[data-theme="dark"] .cookie-banner,html[data-theme="dark"] .cookie-modal,html[data-theme="dark"] .labor-whatsapp-dialog{background:#0F2D4A!important;color:#F8F5EF!important;border-color:#536573!important}
html[data-theme="dark"] .cookie-banner strong,html[data-theme="dark"] .cookie-modal h2,html[data-theme="dark"] .cookie-modal strong,html[data-theme="dark"] .labor-whatsapp-dialog h2{color:#F8F5EF!important}
html[data-theme="dark"] .cookie-banner p,html[data-theme="dark"] .cookie-modal p,html[data-theme="dark"] .labor-whatsapp-dialog p{color:#D7DCDE!important}
html[data-theme="dark"] .cookie-button{color:#F8F5EF!important;border-color:#D7DCDE!important}
html[data-theme="dark"] .cookie-button-primary,html[data-theme="dark"] .labor-whatsapp-dialog .button-primary{background:#C89B5B!important;border-color:#C89B5B!important;color:#0F2D4A!important}
html[data-theme="dark"] .cookie-required-status{background:#102234!important;color:#E4D5BD!important}
html[data-theme="dark"] .labor-whatsapp-close{color:#F8F5EF!important}
html[data-theme="dark"] button:disabled,html[data-theme="dark"] a[aria-disabled="true"]{opacity:.55}

@media(max-width:700px){.ng-theme--desktop{display:none}.ng-nav.is-open .ng-theme--menu{display:block}.ng-theme--menu{color:var(--navy)}html[data-theme="dark"] .ng-nav{background:#102234;border-color:#34516A}html[data-theme="dark"] .ng-theme--menu{color:#F8F5EF;border-color:#34516A}html[data-theme="dark"] .ng-theme--menu label>span{border-color:#536573}html[data-theme="dark"] .ng-theme--menu input:checked+span{background:#C89B5B;border-color:#C89B5B;color:#0F2D4A}html[data-theme="dark"] .ng-theme--menu p{color:#D7DCDE}}
@media(prefers-reduced-motion:reduce){.ng-icon,.ng-theme select,.ng-theme label>span,.ng-tools-legacy .labor-tool-button>span[aria-hidden="true"],.ng-tools-legacy .labor-assistant-option>span:last-child{transition:none!important}}

/* Authorized correction: only the three contact paragraphs in dark mode. */
html[data-theme="dark"] #contacto .ng-contact-grid>div:first-child>p:not(.ng-contact-caption){color:var(--sand)}
html[data-theme="dark"] #contacto .ng-contact-meta svg{stroke:var(--sand)}

/* Scoped visual polish: audience medallions and Contact social links only. */
.ng-audience button,.ng-audience button>span:nth-child(2) { min-width:0; }
.ng-audience .ng-choice-icon {
  position:relative; display:grid; place-items:center; flex:0 0 44px;
  width:44px; height:44px; padding:0; border:1px solid var(--gold-ink);
  border-radius:50%; background:transparent; color:var(--navy);
  font-family:var(--serif); font-size:20px; font-weight:500;
  font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1;
  line-height:1; letter-spacing:0;
  transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease;
}
.ng-audience .ng-choice-icon::after {
  content:""; position:absolute; inset:4px; border:1px solid currentColor;
  border-radius:inherit; opacity:.24; pointer-events:none;
}
.ng-audience .ng-choice-number { display:block; line-height:1; }
.ng-audience button[aria-pressed="true"] .ng-choice-icon {
  background:var(--gold); border-color:var(--gold); color:var(--navy);
}
html[data-theme="dark"] .ng-audience .ng-choice-icon {
  background:transparent; border-color:var(--gold); color:var(--sand);
}
html[data-theme="dark"] .ng-audience button[aria-pressed="false"] small { color:#D7DCDE; }
html[data-theme="dark"] .ng-audience button[aria-pressed="true"] .ng-choice-icon {
  background:var(--navy); border-color:var(--navy); color:var(--ivory);
}
#contacto .ng-social-links {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); gap:10px;
}
#contacto .ng-social-link {
  display:grid; grid-template-columns:20px minmax(0,1fr) 14px; align-items:center;
  gap:9px; min-height:52px; padding:12px; border:1px solid #B7AB98;
  border-radius:6px; background:var(--ivory); color:var(--navy);
  font-size:12px; font-weight:600; line-height:1.4;
  transition:background-color 180ms ease,border-color 180ms ease,transform 180ms ease;
}
#contacto .ng-social-brand { display:grid; place-items:center; width:20px; height:20px; }
#contacto .ng-social-brand .ng-icon { width:20px; height:20px; margin:0; stroke:currentColor; }
#contacto .ng-social-link>.ng-icon { width:14px; height:14px; margin:0; stroke:currentColor; }
#contacto .ng-social-link:focus-visible { outline:3px solid var(--gold-ink); outline-offset:4px; }
#contacto .ng-social-link:active { transform:translateY(0); background:var(--sand); }
html[data-theme="dark"] #contacto .ng-social-link {
  background:var(--night); border-color:#6F8599; color:var(--ivory);
}
html[data-theme="dark"] #contacto .ng-social-brand { color:var(--sand); }
html[data-theme="dark"] #contacto .ng-social-link .ng-icon { stroke:currentColor; }
html[data-theme="dark"] #contacto .ng-social-link:focus-visible { outline-color:var(--gold); }
html[data-theme="dark"] #contacto .ng-social-link:active { background:var(--blue-mid); }
@media(hover:hover) {
  #contacto .ng-social-link:hover { border-color:var(--gold-ink); background:#FFFDFA; transform:translateY(-1px); }
  html[data-theme="dark"] #contacto .ng-social-link:hover { border-color:var(--gold); background:var(--navy); }
}
@media(max-width:420px) { #contacto .ng-social-links { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) {
  .ng-audience .ng-choice-icon,#contacto .ng-social-link { transition:none; }
  #contacto .ng-social-link:hover,#contacto .ng-social-link:active { transform:none; }
}

/* Landing-only adaptation. Home, tools and privacy retain their approved styles. */
.ng-dismissal{--d-bg:#F8F5EF;--d-surface:#FFFDFA;--d-tint:#ECE6DC;--d-ink:#0F2D4A;--d-copy:#34516A;--d-line:#C8CED1;--d-accent:#846036;background:var(--d-bg);color:var(--d-ink)}
html[data-theme="dark"] .ng-dismissal{--d-bg:#102234;--d-surface:#17324A;--d-tint:#0F2D4A;--d-ink:#F8F5EF;--d-copy:#D7DCDE;--d-line:#536D83;--d-accent:#E4D5BD}
.ng-dismissal .container{width:min(1160px,calc(100% - 112px));max-width:1160px;margin-inline:auto}
.ng-dismissal .dismissal-page{font-family:var(--sans);color:var(--d-ink);background:var(--d-bg);padding:0}
.ng-dismissal :is(.dismissal-hero,.dismissal-section,.dismissal-calculator,.dismissal-authority){background:var(--d-bg);color:var(--d-ink)}
.ng-dismissal .dismissal-hero{padding:36px 0 72px;min-height:0}
.ng-dismissal .dismissal-hero::before{content:none;display:none;background:none}
.ng-dismissal .dismissal-hero-inner{display:block}
.ng-dismissal .dismissal-breadcrumb{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:46px;color:var(--d-copy);font-size:12px}
.ng-dismissal .dismissal-breadcrumb a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.ng-dismissal .eyebrow{font:650 10px/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--d-accent);margin-bottom:18px}
.ng-dismissal .dismissal-hero h1{max-width:900px;font:500 clamp(38px,4.7vw,66px)/1.12 var(--serif);letter-spacing:-.04em;color:var(--d-ink);margin:0 0 26px}
.ng-dismissal .dismissal-hero :is(.dismissal-hero-lead,.dismissal-hero-secondary){max-width:780px;color:var(--d-copy);font-size:16px;line-height:1.85;margin:0 0 16px}
.ng-dismissal .dismissal-hero .dismissal-hero-secondary{font-size:14px;max-width:720px}
.ng-dismissal .dismissal-actions{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap;margin-top:30px}
.ng-dismissal .button{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;padding:12px 18px;border:1px solid var(--d-line);border-radius:16px;font:600 14px/1.4 var(--sans);letter-spacing:normal;text-transform:none;text-align:left;text-decoration:none;box-shadow:none;transition:background 180ms ease,border-color 180ms ease,transform 180ms ease;color:var(--d-ink);white-space:normal}
.ng-dismissal .button span:not(.whatsapp-icon){flex:1;min-width:0}
.ng-dismissal .button>svg{width:18px;height:18px;flex-shrink:0;margin-left:auto}
.ng-dismissal .button .whatsapp-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;background:#0F2D4A;border-radius:50%;color:#F8F5EF;margin:0}
.ng-dismissal .whatsapp-icon svg{width:19px;height:19px}
.ng-dismissal .button-primary,.ng-dismissal .dismissal-hero .button-primary{background:#C89B5B;border-color:#C89B5B;color:#0F2D4A}
.ng-dismissal .button-secondary,.ng-dismissal .dismissal-hero .button-secondary{background:transparent;border-color:var(--d-copy);color:var(--d-ink)}
.ng-dismissal .button:active{transform:translateY(1px)}
.ng-dismissal :is(a,summary,button):focus-visible{outline:3px solid var(--d-accent);outline-offset:5px}
.ng-dismissal .dismissal-trust{background:var(--d-tint);color:var(--d-ink);border-block:1px solid var(--d-line);padding:22px 0}
.ng-dismissal .dismissal-trust ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}
.ng-dismissal .dismissal-trust li{font:500 12px/1.65 var(--sans);padding-left:14px;border-left:2px solid #C89B5B;color:var(--d-ink)}
.ng-dismissal .dismissal-section{padding:76px 0;border:0}
.ng-dismissal :is(h2,h3){color:var(--d-ink);font-family:var(--serif);font-weight:500;letter-spacing:-.025em}
.ng-dismissal h2{font-size:clamp(29px,3vw,42px);line-height:1.2;margin-bottom:24px;max-width:720px}
.ng-dismissal h3{font-size:25px;line-height:1.25;margin-bottom:14px}
.ng-dismissal :is(.dismissal-heading,.dismissal-heading-light){color:var(--d-ink);max-width:760px;margin-bottom:32px}
.ng-dismissal .dismissal-heading p:not(.eyebrow){color:var(--d-copy)}
.ng-dismissal :is(.dismissal-definition,.dismissal-legal) p:not(.eyebrow){color:var(--d-copy)}
.ng-dismissal .dismissal-hero p.eyebrow{color:var(--d-accent)}
.ng-dismissal :is(p,li){color:var(--d-copy);font-size:15px;line-height:1.8}
.ng-dismissal p+p{margin-top:16px}
.ng-dismissal :is(.dismissal-definition-grid,.dismissal-evidence-grid,.dismissal-faq-grid,.dismissal-legal-grid){display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start}
.ng-dismissal .dismissal-definition blockquote{margin:42px 0 0;padding:28px 0 28px 28px;border-left:2px solid #C89B5B;color:var(--d-ink);font:500 clamp(23px,2.4vw,31px)/1.5 var(--serif);background:none}
.ng-dismissal :is(.dismissal-claims,.dismissal-evidence,.dismissal-calculator){background:var(--d-tint)}
.ng-dismissal .dismissal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;background:transparent;border:0}
.ng-dismissal .dismissal-card{grid-column:auto;grid-row:auto;min-height:0}
.ng-dismissal :is(.dismissal-card,.dismissal-process-step){background:var(--d-surface);color:var(--d-ink);border:1px solid var(--d-line);border-radius:12px;box-shadow:none;padding:26px;min-width:0}
.ng-dismissal :is(.dismissal-card,.dismissal-process-step)>span{display:flex;align-items:center;width:38px;height:38px;margin:0 0 24px;color:var(--d-accent);font:600 14px/1 var(--sans);font-variant-numeric:lining-nums tabular-nums;letter-spacing:.06em}
.ng-dismissal :is(.dismissal-card,.dismissal-process-step) p{font-size:14px;line-height:1.8}
.ng-dismissal :is(.dismissal-prudence-note,.dismissal-competence-note,.dismissal-signing-note){max-width:850px;margin:28px 0 0;font-size:13px;color:var(--d-copy)}
.ng-dismissal .dismissal-deadline-card{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;background:var(--d-surface);padding:36px;border:1px solid var(--d-line);border-left:3px solid #C89B5B;border-radius:12px}
.ng-dismissal .dismissal-deadline-card{box-shadow:none}
.ng-dismissal .dismissal-evidence-list{display:grid;gap:0;margin:0;padding:0;list-style:none}
.ng-dismissal .dismissal-evidence-list li{padding:13px 0;border-bottom:1px solid var(--d-line)}
.ng-dismissal .dismissal-signing-note{grid-column:1/-1;border-top:1px solid var(--d-line);padding-top:20px}
.ng-dismissal .dismissal-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ng-dismissal .dismissal-process-grid{background:transparent;border:0}
.ng-dismissal .dismissal-calculator{padding:60px 0}
.ng-dismissal .dismissal-calculator-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.ng-dismissal .dismissal-calculator-actions{display:grid;gap:18px;align-items:start}
.ng-dismissal .dismissal-calculator small{color:var(--d-copy);font-size:12px;line-height:1.8}
.ng-dismissal .dismissal-faq .faq-list{display:grid;gap:0}
.ng-dismissal .dismissal-faq .faq-item{padding:0;border:0;border-bottom:1px solid var(--d-line);background:transparent;border-radius:0;box-shadow:none}
.ng-dismissal .dismissal-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:18px 0;cursor:pointer;list-style:none;color:var(--d-ink);font:600 14px/1.6 var(--sans)}
.ng-dismissal .dismissal-faq summary::-webkit-details-marker{display:none}
.ng-dismissal .dismissal-faq summary span{font:400 22px/1 var(--sans);color:var(--d-accent)}
.ng-dismissal .dismissal-faq details[open] summary span{transform:rotate(45deg)}
.ng-dismissal .dismissal-faq details p{padding:0 0 22px;font-size:14px}
.ng-dismissal .dismissal-legal{border-top:1px solid var(--d-line)}
.ng-dismissal .dismissal-official-link{color:var(--d-ink);display:flex;align-items:center;gap:18px;padding:22px;border:1px solid var(--d-line);border-radius:12px;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.ng-dismissal .dismissal-official-link svg{width:20px;height:20px;flex-shrink:0}
.ng-dismissal .dismissal-final-cta{background:#0F2D4A;color:#F8F5EF;padding:68px 0}
.ng-dismissal .dismissal-final-inner{display:grid;grid-template-columns:1fr .8fr;gap:56px;align-items:center}
.ng-dismissal .dismissal-final-cta h2{color:#F8F5EF}
.ng-dismissal .dismissal-final-cta p{color:#D7DCDE}
.ng-dismissal .dismissal-final-cta .eyebrow{color:#E4D5BD}
.ng-dismissal .dismissal-final-cta .dismissal-contact-note{font-size:12px;line-height:1.85}
.ng-dismissal .dismissal-contact-note a{text-decoration:underline;text-underline-offset:4px;display:inline-block;min-height:32px}
.ng-dismissal .dismissal-final-cta a:focus-visible{outline-color:#E4D5BD}
.ng-dismissal .dismissal-authority{padding:30px 0}
.ng-dismissal .dismissal-authority-inner{display:flex;gap:8px 24px;flex-wrap:wrap;align-items:baseline;font:400 12px/1.8 var(--sans);color:var(--d-copy)}
.ng-dismissal .dismissal-authority-inner strong{color:var(--d-ink)}
@media(hover:hover){.ng-dismissal .button-primary:hover{background:#E4D5BD;border-color:#E4D5BD;transform:translateY(-1px)}.ng-dismissal .button-secondary:hover{background:var(--d-tint);border-color:var(--d-accent)}.ng-dismissal .dismissal-faq summary:hover{color:var(--d-accent)}}
@media(max-width:1000px){.ng-dismissal .dismissal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ng-dismissal :is(.dismissal-definition-grid,.dismissal-evidence-grid,.dismissal-faq-grid,.dismissal-legal-grid){gap:30px}.ng-dismissal .dismissal-deadline-card{grid-template-columns:1fr;gap:24px}.ng-dismissal .dismissal-deadline-card .button{justify-self:start}.ng-dismissal .dismissal-trust ul{grid-template-columns:repeat(2,minmax(0,1fr))}.ng-dismissal :is(.dismissal-calculator-inner,.dismissal-final-inner){grid-template-columns:1fr;gap:28px}}
@media(max-width:700px){.ng-dismissal .container{width:calc(100% - 40px)}.ng-dismissal .dismissal-hero{padding:18px 0 42px}.ng-dismissal .dismissal-breadcrumb{font-size:11px;margin-bottom:22px;gap:8px}.ng-dismissal .dismissal-hero h1{font-size:clamp(35px,9vw,48px);line-height:1.13;letter-spacing:-.035em;margin-bottom:22px}.ng-dismissal .dismissal-hero .dismissal-hero-lead{font-size:15px}.ng-dismissal .dismissal-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:24px}.ng-dismissal .button{width:100%;min-height:56px;font-size:13px;padding:10px 16px;gap:12px}.ng-dismissal .dismissal-section{padding:46px 0}.ng-dismissal :is(.dismissal-definition-grid,.dismissal-evidence-grid,.dismissal-faq-grid,.dismissal-legal-grid,.dismissal-process-grid){grid-template-columns:1fr;gap:25px}.ng-dismissal .dismissal-definition blockquote{margin:0;padding:14px 0 14px 20px;font-size:24px}.ng-dismissal .dismissal-card-grid{grid-template-columns:1fr;gap:12px}.ng-dismissal :is(.dismissal-card,.dismissal-process-step){padding:23px}.ng-dismissal :is(.dismissal-card,.dismissal-process-step)>span{margin-bottom:12px}.ng-dismissal .dismissal-trust ul{gap:16px}.ng-dismissal .dismissal-trust li{font-size:11px}.ng-dismissal .dismissal-deadline-card{padding:25px;width:calc(100% - 40px)}.ng-dismissal :is(.dismissal-final-cta,.dismissal-calculator){padding:46px 0}.ng-dismissal .dismissal-final-inner{gap:26px}.ng-dismissal .dismissal-authority-inner{display:grid;gap:7px}.ng-dismissal .dismissal-faq summary{min-height:60px}.ng-dismissal .floating-whatsapp{width:48px;height:48px;right:16px;bottom:16px}.ng-dismissal p,.ng-dismissal li{font-size:14px}}
@media(prefers-reduced-motion:reduce){.ng-dismissal .button{transition:none!important;transform:none!important}}
/* Keep the direct contact link in normal flow on narrow screens, never over a CTA. */
@media(max-width:1000px){.ng-dismissal>aside[aria-label="Contacto directo por WhatsApp"]{display:flex;justify-content:flex-end;padding:0 20px 20px;background:var(--d-bg)}.ng-dismissal .floating-whatsapp{position:static;margin:0;transform:none}}

/* Final V2: scoped editorial refinements. Published tools, medallions, social
   links, theme bootstrap and legal content retain their approved contracts. */
.ng-nav>a{white-space:nowrap}
.ng-nav .ng-nav-contact{min-height:52px;padding:12px 20px!important;gap:24px;border-radius:14px;font-weight:650;border-color:var(--gold-ink);transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
.ng-nav-contact>.ng-icon{transition:transform 200ms ease}
.ng-action{gap:20px;min-height:58px;padding:10px 16px 10px 22px;border-radius:16px;box-shadow:0 3px 9px rgba(15,45,74,.08);font-size:13px;line-height:1.4;transition:background-color 200ms ease,transform 200ms ease,box-shadow 200ms ease}
.ng-action>span{min-width:0}
.ng-action i{flex:0 0 30px;width:30px;height:30px;border-left:0}
.ng-action i>.ng-icon{width:20px;height:20px}
.ng-hero .ng-action{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.ng-hero .ng-action .ng-icon{stroke:var(--navy)}
.ng-hero-note{font-size:12px;color:var(--blue-mid);line-height:1.7}
.ng-hero-foot{font-size:12px;color:var(--blue-mid);align-items:center}
.ng-hero-foot>a{font-size:13px;font-weight:600;gap:12px;padding:6px 0;border-bottom:1px solid var(--gold-ink)}
.ng-hero-foot .ng-icon{width:18px;height:18px}
.ng-portrait figcaption small{font-size:10px;letter-spacing:.12em}
.ng-product{display:grid;grid-template-columns:54px minmax(0,1fr) 24px;gap:20px;padding:26px 18px;border:1px solid rgba(228,213,189,.38);border-radius:16px;background:rgba(248,245,239,.025);transition:background-color 200ms ease,border-color 200ms ease,transform 200ms ease}
.ng-product:first-child{padding-top:26px}
.ng-product+.ng-product{margin-top:14px}
.ng-product-icon,.ng-product-chat{display:grid;place-items:center;grid-template-columns:1fr;width:52px;height:56px;padding:0;border-radius:12px;background:rgba(200,155,91,.06)}
.ng-product-icon>.ng-icon{width:26px;height:26px;flex-basis:26px}
.ng-product-label{font-size:10px;letter-spacing:.1em;color:var(--sand)}
.ng-product h3{font-size:26px;line-height:1.25;margin:8px 0}
.ng-product p{font-size:13px;line-height:1.6;color:var(--ivory)}
.ng-product>.ng-icon{transition:transform 200ms ease}
.ng-tool-privacy{font-size:11px;color:var(--sand)}
.ng-tool-layout>div>p:not(.ng-eyebrow){font-size:14px}
.ng-about-lead{font-size:16px;line-height:1.65}
.ng-credentials{margin:24px 0;padding:0;border-top:1px solid var(--line)}
.ng-credentials>div{padding:14px 0;border-bottom:1px solid var(--line)}
.ng-credentials dt{font-size:10px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-ink)}
.ng-credentials dd{margin:5px 0 0;font-size:13px;line-height:1.7;color:var(--navy);font-variant-numeric:lining-nums tabular-nums}
.ng-about-copy>p.ng-professional-story{margin-bottom:16px}
.ng-about-principles{font-size:13px}
.ng-about-principles>span{padding:13px 0}
.ng-about-principles>span::before{font-size:11px;font-variant-numeric:lining-nums tabular-nums}
.ng-contact-meta{justify-content:flex-start;gap:18px;padding-top:0;min-width:0}
.ng-contact-meta .ng-contact-row{padding:18px;border:1px solid #B7AB98;border-radius:14px;background:rgba(248,245,239,.4)}
.ng-contact-meta .ng-contact-row>span{font-size:10px;line-height:1.7;letter-spacing:.07em;color:var(--blue-mid);margin:0 0 6px}
.ng-contact-meta .ng-contact-row>a{display:grid;grid-template-columns:32px minmax(0,1fr) 18px;min-height:52px;gap:12px;padding:4px 0;border:0;font-size:14px;line-height:1.5;color:var(--navy);font-variant-numeric:lining-nums tabular-nums;transition:color 200ms ease}
.ng-contact-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1px solid #B7AB98}
.ng-contact-meta .ng-contact-symbol>.ng-icon{margin:0;width:18px;height:18px;stroke:currentColor}
.ng-contact-meta .ng-contact-row>a>.ng-icon{margin:0;transition:transform 200ms ease;stroke:currentColor}
.ng-contact-meta .ng-contact-primary{border-color:var(--navy);background:var(--navy)}
.ng-contact-meta .ng-contact-primary>span{color:var(--sand)}
.ng-contact-meta .ng-contact-primary>a{color:var(--ivory);font-size:19px;font-weight:600}
.ng-contact-primary .ng-contact-symbol{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.ng-contact-meta .ng-contact-primary .ng-contact-symbol>.ng-icon{color:var(--navy);stroke:currentColor}
.ng-product:focus-visible{outline-color:var(--ivory);outline-offset:5px}
html[data-theme="dark"] :is(.ng-nav>a,.ng-action,.ng-contact-row>a,.ng-footer-bottom>a,.ng-footer-bottom>button,.ng-faq summary,.ng-about-copy>.ng-text-link,.ng-hero-foot>a):focus-visible{outline-color:var(--gold)}
.ng-contact-grid>div>p:not(.ng-contact-caption){font-size:13px}
.ng-contact-caption{font-size:11px;line-height:1.8}
.ng-footer-bottom{font-size:11px;gap:8px 24px}
.ng-footer-bottom>button{font-size:11px}
.ng-footer-bottom>a{position:relative;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;transition:color 200ms ease,text-decoration-color 200ms ease}
.ng-faq summary{font-size:14px;min-height:56px}
.ng-faq details p{font-size:13px}
.ng-faq summary>.ng-icon{color:var(--gold-ink);transition:transform 200ms ease}
.ng-faq details[open] summary>.ng-icon{transform:rotate(180deg)}
.ng-faq details[open] p{animation:v2-answer 180ms ease-out}
@keyframes v2-answer{from{opacity:.4;transform:translateY(-3px)}to{opacity:1;transform:none}}
html[data-theme="dark"] .ng-hero-note,html[data-theme="dark"] .ng-hero-foot{color:var(--line)}
html[data-theme="dark"] .ng-hero-foot>a{color:var(--ivory);border-color:var(--gold)}
html[data-theme="dark"] .ng-credentials>div,html[data-theme="dark"] .ng-credentials{border-color:var(--blue-mid)}
html[data-theme="dark"] .ng-credentials dt{color:var(--sand)}
html[data-theme="dark"] .ng-credentials dd{color:var(--ivory)}
html[data-theme="dark"] .ng-about-principles>span::before{color:var(--sand)}
html[data-theme="dark"] .ng-contact-meta .ng-contact-row{background:var(--night);border-color:#6F8599}
html[data-theme="dark"] .ng-contact-meta .ng-contact-row>span{color:var(--line)}
html[data-theme="dark"] .ng-contact-meta .ng-contact-row>a{color:var(--ivory)}
html[data-theme="dark"] .ng-contact-meta .ng-contact-primary{border-color:var(--gold);background:#17324A}
html[data-theme="dark"] .ng-contact-meta .ng-contact-primary>span{color:var(--sand)}
html[data-theme="dark"] .ng-contact-meta .ng-contact-symbol>.ng-icon{stroke:currentColor}
html[data-theme="dark"] .ng-faq summary>.ng-icon{color:var(--sand)}
@media(hover:hover) and (pointer:fine){
 .ng-nav-contact:hover>.ng-icon,.ng-contact-row>a:hover>.ng-icon{transform:translateX(3px)}
 .ng-action:hover{transform:translateY(-2px);box-shadow:0 5px 12px rgba(15,45,74,.12)}
 .ng-hero .ng-action:hover{background:var(--sand)}
 .ng-product:hover{padding-left:18px;background:rgba(248,245,239,.06);border-color:var(--gold);transform:translateY(-2px)}
 .ng-product:hover>.ng-icon{transform:translateX(3px)}
 .ng-footer-bottom>a:hover{color:var(--gold-ink);text-decoration-color:currentColor}
 html[data-theme="dark"] .ng-footer-bottom>a:hover{color:var(--sand)}
}
.ng-footer-bottom>a:focus-visible{color:var(--navy);text-decoration-color:currentColor}
html[data-theme="dark"] .ng-footer-bottom>a:focus-visible{color:var(--ivory)}
@media(min-width:701px) and (max-width:1100px){
 .ng-header-inner{gap:14px}.ng-nav{gap:16px}.ng-nav .ng-nav-contact{gap:12px;padding-inline:14px!important}
 .ng-theme-slot{width:44px;flex-basis:44px}
}
@media(min-width:701px) and (max-width:980px){
 .ng-header-inner{height:78px}.ng-nav{display:none;position:absolute;top:78px;left:0;right:0;padding:14px 24px 24px;background:var(--ivory);border-bottom:1px solid var(--line)}
 .ng-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.ng-nav>a{font-size:15px;padding:18px 0}
 .ng-nav-contact{margin-top:12px;justify-content:space-between}.ng-theme-slot{margin-left:auto}
 .ng-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:transparent}
 .ng-menu span{width:18px;height:1px;background:var(--navy)}
 html[data-theme="dark"] .ng-nav{background:var(--night);border-color:var(--blue-mid)}
 .ng-tool-layout{gap:5%;grid-template-columns:.8fr 1.2fr}.ng-product{gap:14px;padding:22px 14px;grid-template-columns:44px minmax(0,1fr) 20px}.ng-product:first-child{padding-top:22px}
 .ng-product-icon{width:44px;height:48px}.ng-product h3{font-size:22px}
 .ng-contact-grid{gap:6%;grid-template-columns:1.1fr 1fr}.ng-contact-meta .ng-contact-row{padding:14px}
}
@media(max-width:700px){
 .ng-action{min-height:56px;width:100%;padding:12px 16px;font-size:13px;border-radius:16px}
 .ng-action i{height:28px;width:26px;flex-basis:26px}.ng-hero .ng-action{min-width:0}
 .ng-nav .ng-nav-contact{min-height:56px;border-radius:16px}
 .ng-hero-foot{font-size:11px;gap:12px}.ng-hero-foot>a{font-size:12px;gap:9px}.ng-hero-foot>span{max-width:120px}
 .ng-portrait figcaption small{font-size:9px}.ng-product{grid-template-columns:44px minmax(0,1fr) 20px;gap:14px;padding:22px 14px}
 .ng-product:first-child{padding-top:22px}.ng-product-icon{width:44px;height:48px}.ng-product h3{font-size:24px}
 .ng-product-label{font-size:9px}.ng-product p{font-size:12px;max-width:none}.ng-product:hover{padding-left:14px;transform:none}
 .ng-tool-layout>div>p:not(.ng-eyebrow){font-size:13px}.ng-tool-privacy{font-size:11px}
 .ng-credentials dd{font-size:13px}.ng-about-copy>p.ng-professional-story{font-size:13px}
 .ng-contact-meta .ng-contact-row{padding:16px}.ng-contact-meta .ng-contact-row>a{font-size:13px}
 .ng-contact-meta .ng-contact-primary>a{font-size:19px}
 .ng-footer-bottom{flex-direction:column;align-items:flex-start;gap:2px;font-size:11px}
 .ng-footer-bottom>span{margin-top:12px;order:1}.ng-footer-bottom>button{font-size:11px}
 .ng-faq summary{font-size:13px}.ng-faq details p{font-size:13px}
}
@media(max-width:350px){.ng-product h3{font-size:21px}.ng-product{gap:10px}.ng-contact-meta .ng-contact-row{padding:12px}.ng-contact-meta .ng-contact-row>a{gap:8px;font-size:12px}.ng-contact-meta .ng-contact-primary>a{font-size:18px}}
@media(prefers-reduced-motion:reduce){[data-v2-reveal],.ng-product,.ng-action,.ng-faq details[open] p{animation:none!important;transition:none!important;transform:none!important}}

/* Scoped commercial refinements; existing editorial palette and components. */
.ng-hero h1 { margin-top:0 }
.ng-hero-local.ng-eyebrow { display:flex;align-items:center;gap:12px;font-family:var(--sans);font-size:10px;line-height:1.7;font-weight:650;letter-spacing:.13em;text-transform:uppercase;margin:0 0 25px }
.ng-hero-local>span { width:34px;height:1px;background:var(--gold-ink);flex:none }
.ng-hero-editorial { display:block }
.ng-nav-contact { white-space:nowrap }
.ng-contact-journey { list-style:none;margin:24px 0;padding:0;counter-reset:contact-step;border-top:1px solid var(--line) }
.ng-contact-journey li { counter-increment:contact-step;padding:16px 0 16px 36px;position:relative;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--blue-mid) }
.ng-contact-journey li:before { content:'0' counter(contact-step);position:absolute;left:0;color:var(--gold-ink);font-size:11px;font-variant-numeric:tabular-nums }
.ng-contact-journey strong { display:block;color:var(--navy);font-weight:600 }
.ng-trust { display:grid;grid-template-columns:1fr 1fr;gap:7%;padding-block:55px;border-bottom:1px solid var(--line) }
.ng-trust h2 { font-size:clamp(27px,3vw,38px);line-height:1.2;margin:18px 0 0 }
.ng-trust-copy { align-self:center }
.ng-trust-copy p { font-size:14px;line-height:1.8;color:var(--blue-mid);margin:0 0 12px }
.ng-trust-copy .ng-text-link { margin-top:8px }
.ng-testimonials { grid-column:1/-1 }
.ng-faq-source { font-size:11px!important;line-height:1.8;color:var(--muted);margin-top:20px }
.ng-faq-source a { color:var(--gold-ink);text-decoration:underline;text-underline-offset:3px }
.ng-dismissal-faq { border-top:1px solid var(--line) }
.ng-dismissal-faq .ng-text-link { margin-top:24px;font-size:12px }
.ng-floating-wa { position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:25;display:flex;align-items:center;gap:9px;min-height:48px;padding:11px 17px;background:var(--navy);color:var(--ivory);border:1px solid var(--gold);border-radius:28px;box-shadow:0 5px 18px #10223420;font:600 12px/1.3 var(--sans);text-decoration:none }
.ng-floating-wa .ng-icon { width:23px;height:23px }
.ng-floating-wa[data-visible=false] { visibility:hidden;pointer-events:none }
.ng-floating-wa:hover { background:var(--night);border-color:var(--gold-ink) }
.ng-floating-wa:focus-visible { outline:3px solid var(--gold-ink);outline-offset:4px }
:root[data-theme=dark] .ng-floating-wa { background:var(--gold);color:#102234;border-color:var(--gold) }
:root[data-theme=dark] .ng-contact-journey li,:root[data-theme=dark] .ng-trust-copy p { color:var(--sand) }
:root[data-theme=dark] .ng-contact-journey strong { color:var(--ivory) }
:root[data-theme=dark] .ng-contact-journey li:before { color:var(--gold) }
:root[data-theme=dark] .ng-faq-source { color:var(--sand) }
:root[data-theme=dark] .ng-faq-source a { color:var(--gold) }
@media(max-width:1050px) and (min-width:761px) { .ng-nav { gap:17px }.ng-nav-contact { padding-inline:12px!important;gap:9px } }
@media(max-width:760px) { .ng-trust { grid-template-columns:1fr;gap:24px;padding-block:36px }.ng-hero-local.ng-eyebrow { font-size:8px;letter-spacing:.1em;margin-bottom:22px }.ng-floating-wa { width:48px;height:48px;padding:11px;justify-content:center }.ng-floating-wa>span { display:none }.ng-contact-journey li { font-size:12px }.ng-dismissal-faq h2 { font-size:29px } }
@media(prefers-reduced-motion:reduce) { .ng-floating-wa { transition:none } }
@media print { .ng-floating-wa { display:none } }

/* Same approved WhatsApp glyph as the dismissal landing; no icon dependency. */
.ng-icon--whatsapp { fill:currentColor;stroke:none;flex:none;display:block }
.ng-nav .ng-nav-contact { align-items:center;gap:12px;line-height:1.4 }
.ng-nav-contact .ng-icon--whatsapp { width:22px;height:22px;align-self:center;stroke:none }
.ng-contact-symbol { flex:none;display:grid;place-items:center }
.ng-site #contacto .ng-contact-meta .ng-contact-symbol>.ng-icon--whatsapp { width:21px;height:21px;stroke:none;fill:currentColor;color:inherit }
.ng-contact-primary .ng-contact-symbol { background:var(--gold);border-color:var(--gold);color:#102234 }
.ng-contact-row:not(.ng-contact-primary) .ng-contact-symbol { background:transparent }
.ng-contact-row a:focus-visible { outline:3px solid var(--gold-ink);outline-offset:5px;border-radius:4px }
.ng-floating-wa { right:calc(20px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));height:52px;min-height:52px;padding:12px 18px;gap:10px;border-radius:28px;z-index:25;background:#102234;color:#F8F5EF;border-color:#C89B5B;box-shadow:0 5px 16px #10223426;opacity:1;transform:none;transition:opacity 140ms ease,transform 140ms ease,background-color 140ms ease }
.ng-floating-wa .ng-icon--whatsapp { width:25px;height:25px;stroke:none }
.ng-floating-wa[data-visible=false] { visibility:hidden;opacity:0;transform:translateY(5px);pointer-events:none }
.ng-floating-wa:hover { background:#1B3D58;border-color:#C89B5B }
.ng-floating-wa:focus-visible { outline:3px solid #C89B5B;outline-offset:4px }
:root[data-theme=dark] .ng-floating-wa { background:#C89B5B;color:#102234;border-color:#C89B5B }
:root[data-theme=dark] .ng-floating-wa:hover { background:#E4D5BD }
:root[data-theme=dark] .ng-contact-primary .ng-contact-symbol { color:#102234 }
:root[data-theme=dark] .ng-contact-row a:focus-visible { outline-color:#C89B5B }
.ng-client-opinions { display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;border-top:1px solid var(--line) }
.ng-client-opinions h2 { font-size:clamp(30px,3.6vw,46px);line-height:1.15;margin:18px 0 0 }
.ng-opinions-list { display:grid;gap:30px }
.ng-opinion { margin:0;padding:25px 0 25px 25px;border-left:2px solid var(--gold);border-bottom:1px solid var(--line) }
.ng-opinion blockquote { margin:0;font:400 clamp(20px,2vw,25px)/1.6 var(--serif);color:var(--navy) }
.ng-opinion blockquote p { margin:0 0 22px }
.ng-opinion figcaption { display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted) }
.ng-opinion figcaption a { min-height:44px;display:inline-flex;align-items:center;color:var(--gold-ink);text-underline-offset:4px }
:root[data-theme=dark] .ng-opinion blockquote { color:var(--ivory) }
:root[data-theme=dark] .ng-opinion figcaption { color:var(--sand) }
:root[data-theme=dark] .ng-opinion figcaption a { color:var(--gold) }
@media(max-width:760px) { .ng-floating-wa { width:52px;height:52px;padding:12px;right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom)) }.ng-floating-wa>span { display:none }.ng-client-opinions { grid-template-columns:1fr;gap:26px }.ng-opinion { padding:18px 0 18px 18px } }
@media(prefers-reduced-motion:reduce) { .ng-floating-wa { transition:none;transform:none } }

/* Content ends above this reserved rail: no scroll-triggered hiding or overlap. */
:root { --contact-dock-space:calc(76px + env(safe-area-inset-bottom)); }
body:has(.ng-site[data-contact-dock=true]) { overflow:hidden; }
.ng-site[data-contact-dock=true] { height:calc(100vh - var(--contact-dock-space));height:calc(100dvh - var(--contact-dock-space));overflow-y:auto;overflow-x:clip;scroll-padding-top:110px;scroll-behavior:smooth; }
.ng-contact-dock { position:fixed;inset:auto 0 0;min-height:var(--contact-dock-space);height:var(--contact-dock-space);padding:10px max(20px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:22px;justify-content:flex-end;background:#F8F5EF;border-top:1px solid #C89B5B80;color:#102234;z-index:45;font:400 12px/1.4 var(--sans); }
.ng-dock-copy { margin-right:auto;display:grid;gap:3px; }.ng-dock-copy strong { font-weight:600; }.ng-dock-copy span { font-size:11px; }
.ng-dock-privacy { min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px; }
.ng-contact-dock .ng-floating-wa { position:static;display:grid;place-items:center;flex:none;width:52px;height:52px;min-height:52px;padding:12px;border-radius:50%;visibility:visible;opacity:1;transform:none;transition:background-color .15s;box-shadow:0 3px 12px #10223420; }
.ng-contact-dock .ng-floating-wa svg { width:26px;height:26px; }
.ng-contact-privacy { margin-top:24px;padding:20px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted); }
.ng-contact-privacy strong { color:var(--navy); }.ng-contact-privacy p { margin:8px 0; }.ng-contact-privacy a { text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere; }
.ng-tools-intro .ng-contact-privacy { max-width:760px; }.ng-tools-intro .ng-contact-privacy p { font:400 12px/1.7 var(--sans); }
html[data-theme=dark] .ng-contact-dock { background:#102234;color:#F8F5EF; }
html[data-theme=dark] .ng-contact-privacy strong { color:#F8F5EF; }
body:has(.cookie-banner,[aria-modal=true]) .ng-contact-dock, body:has(.cookie-banner,[aria-modal=true]) .ng-contact-dock .ng-floating-wa { visibility:hidden; }
@media(max-width:980px) { .ng-nav.is-open { max-height:calc(100dvh - var(--contact-dock-space) - 86px);overflow-y:auto; } }
@media(max-width:480px) { .ng-contact-dock { padding-left:16px;padding-right:16px;gap:12px; }.ng-dock-copy span { max-width:185px;font-size:10px; }.ng-dock-copy strong { font-size:11px; }.ng-dock-privacy { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .ng-site[data-contact-dock=true] { scroll-behavior:auto; }.ng-contact-dock .ng-floating-wa { transition:none; } }
@media print { .ng-contact-dock { display:none; }.ng-site[data-contact-dock=true] { height:auto;overflow:visible; } }

html[data-theme=dark] .ng-site .ng-contact-privacy,html[data-theme=dark] .ng-site .ng-contact-privacy p,html[data-theme=dark] .ng-site .ng-contact-privacy a { color:#DCE2E6; }

/* Remove the retired rail, including its artificial nested scroll viewport. */
:root { --contact-dock-space:0px; }
body:has(.ng-site) { overflow:visible; }
.ng-site { height:auto!important;overflow:visible!important; }
.ng-contact-dock,.ng-dock-copy,.ng-dock-privacy { display:none!important; }
.ng-site~a.ng-floating-wa {
 position:fixed;inset:auto calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) auto;
 display:grid;place-items:center;box-sizing:border-box;width:48px;height:48px;min-height:48px;padding:11px;gap:0;
 border-radius:50%;background:#102234;color:#F8F5EF;border:1px solid #C89B5B;box-shadow:0 3px 12px #10223426;
 z-index:25;visibility:visible;opacity:1;transform:none;animation:none;transition:background-color .15s;
}
.ng-site~a.ng-floating-wa .ng-icon--whatsapp { display:block;width:24px;height:24px;fill:currentColor;stroke:none; }
.ng-site~a.ng-floating-wa:hover { background:#1B3D58;transform:none; }
.ng-site~a.ng-floating-wa:focus-visible { outline:3px solid #C89B5B;outline-offset:4px; }
html[data-theme=dark] .ng-site~a.ng-floating-wa { background:#C89B5B;color:#102234; }
html[data-theme=dark] .ng-site~a.ng-floating-wa:hover { background:#E4D5BD; }
/* Existing navigation and privacy controls remain above the contact link. */
body:has(.cookie-banner,[aria-modal=true],.ng-nav.is-open) .ng-site~a.ng-floating-wa { visibility:hidden;pointer-events:none; }
@media(max-width:980px) { .ng-nav.is-open { max-height:calc(100dvh - 86px);overflow-y:auto; } }
@media(prefers-reduced-motion:reduce) { .ng-site~a.ng-floating-wa { transition:none; } }
@media print { .ng-site~a.ng-floating-wa { display:none; } }

/* Presentation only. The approved decision engine, outcomes and calculator remain unchanged. */
[data-friendly-assistant] .lab-assistant-intro{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--line,#68727c);margin-bottom:28px}
.lab-assistant-intro>span{font-size:12px;letter-spacing:.05em}.lab-assistant-intro a{display:inline-flex;gap:10px;align-items:center;min-height:44px;text-underline-offset:5px;font-size:14px}.lab-assistant-intro svg{width:24px;height:24px;flex-shrink:0}
[data-friendly-assistant] .labor-assistant-option{min-height:64px;padding:18px 22px;text-align:left;border-radius:8px;gap:16px;font-size:16px;line-height:1.5}
[data-friendly-assistant] .labor-assistant-options{gap:12px}[data-friendly-assistant] h3{max-width:720px;font-size:clamp(25px,3vw,36px);line-height:1.25}.lab-assistant-other{grid-column:1/-1}.lab-assistant-other summary{min-height:48px;cursor:pointer;padding:12px 2px;text-underline-offset:5px}.lab-assistant-other[open]{display:grid;gap:10px}.lab-assistant-other .labor-assistant-option{width:100%;margin-top:10px}
[data-friendly-assistant] button:focus-visible,[data-friendly-assistant] a:focus-visible,.lab-assistant-other summary:focus-visible{outline:3px solid #C89B5B;outline-offset:4px}
@media(max-width:600px){[data-friendly-assistant] .labor-assistant-option{min-height:60px;padding:16px}.lab-assistant-intro{display:block!important}.lab-assistant-intro a{margin-top:12px}.ng-hero-note p{white-space:pre-line}}
@media(prefers-reduced-motion:reduce){[data-friendly-assistant] *{animation:none!important;transition:none!important}}
.ng-hero-note p{white-space:pre-line}
/* Explicit scoped foregrounds: legacy tool rules otherwise leave navy text on navy. */
html[data-theme=dark] [data-friendly-assistant]{background-color:#0F2D4A;color:#F8F5EF}
html[data-theme=dark] [data-friendly-assistant] :is(h3,h4,.lab-assistant-intro,.lab-assistant-intro a,.lab-assistant-other summary,.labor-assistant-result>p,.labor-assistant-disclaimer,.labor-shared-note,.labor-assistant-date label){color:#F8F5EF!important}
html[data-theme=dark] [data-friendly-assistant] :is(.labor-assistant-eyebrow,.labor-assistant-result-kicker,.labor-assistant-controls a,.labor-assistant-controls button,.labor-assistant-related-link){color:#E8C99E!important}
html[data-theme=dark] [data-friendly-assistant] .labor-assistant-date input{background:#102234;color:#F8F5EF;border-color:#83909d;color-scheme:dark}

/* Only the conversational assistant. Existing calculator and page styles retained. */
.lab-chat{--chat-bg:#f8f5ef;--chat-firm:#eee8de;--chat-text:#102234;--chat-muted:#485563;--chat-line:#aaa293;--chat-user:#102234;--chat-user-text:#f8f5ef;background:var(--chat-bg)!important;color:var(--chat-text)!important;max-width:940px;margin-inline:auto;padding:clamp(18px,4vw,40px)!important;border:1px solid var(--chat-line)!important;border-radius:18px!important;scroll-margin-top:110px;gap:12px;justify-content:flex-start}
html[data-theme=dark] .lab-chat{--chat-bg:#102234;--chat-firm:#18334b;--chat-text:#f8f5ef;--chat-muted:#d4dce3;--chat-line:#748696;--chat-user:#e8c99e;--chat-user-text:#102234;background:var(--chat-bg)!important}
.lab-chat .lab-chat-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--chat-line)}
.lab-chat .lab-chat-header h3{font-size:clamp(26px,3vw,36px);margin:8px 0!important;color:var(--chat-text)!important;line-height:1.25}
.lab-chat .lab-chat-header .labor-assistant-eyebrow{color:var(--chat-muted)!important;margin:0}
.lab-chat .lab-chat-whatsapp{display:inline-flex;align-items:center;gap:10px;min-height:48px;max-width:100%;padding:10px 14px;border:1px solid var(--chat-line);border-radius:30px;color:var(--chat-text)!important;font-size:14px;text-decoration:none}
.lab-chat .lab-chat-whatsapp svg{width:23px;height:23px;flex-shrink:0}
.lab-chat .lab-chat-limits,.lab-chat .lab-chat-privacy{font-size:13px;line-height:1.65;color:var(--chat-muted)!important;margin:18px 0}
.lab-chat .lab-chat-privacy a{color:inherit!important;text-underline-offset:3px}
.lab-chat .lab-chat-log{max-height:390px;overflow-y:auto;overscroll-behavior:contain;padding:3px 6px 3px 0;scrollbar-width:thin}
.lab-chat .lab-chat-bubble{border-radius:14px;padding:16px 20px;margin:12px 0;max-width:90%;overflow-wrap:anywhere}
.lab-chat .lab-chat-firm{background:var(--chat-firm);color:var(--chat-text)}
.lab-chat .lab-chat-user{margin-left:auto;background:var(--chat-user);color:var(--chat-user-text)}
.lab-chat .lab-chat-bubble>span{font:600 10px/1.5 Inter,system-ui,sans-serif;letter-spacing:.12em;display:block;margin-bottom:8px;color:inherit!important}
.lab-chat .lab-chat-bubble p,.lab-chat .lab-chat-bubble h4{margin:0!important;color:inherit!important;font:400 16px/1.65 Inter,system-ui,sans-serif}
.lab-chat .lab-chat-bubble h4{font-weight:600}
.lab-chat .lab-chat-current .lab-chat-bubble{max-width:100%;margin-bottom:16px}
.lab-chat .lab-chat-options{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 20px}
.lab-chat .lab-chat-options button,.lab-chat .lab-chat-date button{border:1px solid var(--chat-line);background:transparent;color:var(--chat-text)!important;border-radius:24px;padding:11px 16px;min-height:46px;max-width:100%;font:500 14px/1.5 Inter,system-ui,sans-serif;text-align:left;cursor:pointer}
.lab-chat .lab-chat-options button:hover,.lab-chat .lab-chat-date button:hover,.lab-chat .lab-chat-whatsapp:hover{border-color:#c89b5b;background:var(--chat-firm)}
.lab-chat summary{cursor:pointer;min-height:44px;padding:11px 2px;color:var(--chat-text)!important;font-size:14px}
.lab-chat .lab-chat-options details{flex-basis:100%}.lab-chat .lab-chat-options details>div{display:flex;flex-wrap:wrap;gap:9px;padding-top:8px}
.lab-chat .lab-chat-date{margin-bottom:18px}.lab-chat .lab-chat-date label{display:block;color:var(--chat-text)!important;margin:8px 0;font-size:14px}
.lab-chat .lab-chat-date input{min-height:46px;max-width:100%;border:1px solid var(--chat-line);background:var(--chat-bg);color:var(--chat-text);padding:10px;border-radius:8px;margin:0 10px 10px 0}
.lab-chat .lab-chat-compose label{display:block;color:var(--chat-text)!important;font-size:14px;font-weight:600;margin-bottom:9px}
.lab-chat .lab-chat-compose>div{display:flex;align-items:stretch;gap:10px}
.lab-chat .lab-chat-compose textarea{display:block;flex:1;min-width:0;width:100%;max-height:180px;resize:vertical;border:1px solid var(--chat-line);border-radius:12px;background:var(--chat-bg)!important;color:var(--chat-text)!important;padding:14px;font:400 16px/1.5 Inter,system-ui,sans-serif;box-shadow:none}
.lab-chat .lab-chat-compose textarea::placeholder{color:var(--chat-muted);opacity:1}
.lab-chat .lab-chat-compose button{display:flex;align-items:center;justify-content:center;width:52px;min-height:52px;flex-shrink:0;border:1px solid var(--chat-line);background:var(--chat-user);color:var(--chat-user-text);border-radius:50%;align-self:center;cursor:pointer}
.lab-chat .lab-chat-compose button svg{width:24px;height:24px}
.lab-chat .lab-chat-compose button:disabled,.lab-chat .lab-chat-date button:disabled{opacity:.55;cursor:default}
.lab-chat .lab-chat-notice{background:var(--chat-firm);border-left:3px solid #c89b5b;padding:14px 18px;color:var(--chat-text)!important;font-size:15px;line-height:1.6}
.lab-chat .lab-chat-controls{display:flex;flex-wrap:wrap;gap:12px 18px;padding-top:14px;border-top:1px solid var(--chat-line)}
.lab-chat .lab-chat-controls button{min-height:44px;padding:8px 0;color:var(--chat-text)!important;text-underline-offset:4px;font-size:13px}
.lab-chat :is(button,a,textarea,input,summary,[tabindex]):focus-visible{outline:3px solid #c89b5b!important;outline-offset:4px}
.lab-chat .labor-assistant-result :is(h3,h4,p){color:var(--chat-text)!important}.lab-chat .labor-assistant-result-actions{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:600px){.lab-chat{padding:18px!important;border-radius:12px!important;padding-bottom:28px!important}.lab-chat .lab-chat-header{gap:12px}.lab-chat .lab-chat-whatsapp{width:100%;justify-content:center}.lab-chat .lab-chat-bubble{max-width:96%;padding:14px}.lab-chat .lab-chat-log{max-height:300px}.lab-chat .lab-chat-options{gap:8px}.lab-chat .lab-chat-compose>div{gap:8px}.lab-chat .lab-chat-compose button{width:48px;min-height:48px}.lab-chat .lab-chat-compose textarea{padding:12px}.lab-chat .lab-chat-controls{gap:6px 16px}.lab-chat .lab-chat-date input{display:block;width:100%}}
@media(prefers-reduced-motion:reduce){.lab-chat *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.lab-chat>details.lab-chat-options{display:block}.lab-chat>details.lab-chat-options>div{display:flex;flex-wrap:wrap;gap:9px;padding-top:8px}
.lab-chat .lab-chat-controls button{min-width:44px}

/* Eight approved choices, one reusable native-radio surface. */
.ng-tools-legacy .calc-choice-grid{display:grid;gap:10px}
.ng-tools-legacy .calculator-choice.calc-option{display:block;position:relative;border:0;background:none!important;box-shadow:none;color:#102234;min-width:0}
.ng-tools-legacy .calculator-choice.calc-option>input{position:absolute;width:1px;height:1px;clip-path:inset(50%);opacity:0}
.ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;align-items:center;gap:13px;min-height:88px;padding:16px;border:1px solid #aaa293;border-radius:10px;background:#f8f5ef;color:#102234;box-shadow:none;transition:border-color .18s,background-color .18s,box-shadow .18s}
.ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface::before{content:none}
.ng-tools-legacy .calc-option .calc-option-icon{display:grid;place-items:center;width:36px;height:42px;color:#71512c;background:transparent}
.ng-tools-legacy .calc-option .calc-option-icon svg{width:27px;height:27px}
.ng-tools-legacy .calc-option .calc-option-copy{display:block;min-width:0}
.ng-tools-legacy .calculator-choice.calc-option .calc-option-copy strong{display:block;font:600 14px/1.4 var(--sans);color:#102234}
.ng-tools-legacy .calculator-choice.calc-option .calc-option-copy small{display:block;margin-top:5px;font:400 12px/1.55 var(--sans);color:#485563}
.ng-tools-legacy .calc-option .calc-option-indicator{display:grid;place-items:center;width:20px;height:20px;border:1px solid #7c796e;border-radius:50%;background:transparent;color:transparent}
.ng-tools-legacy .calc-option .calc-option-indicator svg{width:16px;height:16px}
.ng-tools-legacy .calculator-choice.calc-option:hover>.calc-option-surface{border-color:#8a612e;box-shadow:0 3px 12px rgba(16,34,52,.06)}
.ng-tools-legacy .calculator-choice.calc-option.is-selected>.calc-option-surface{border-color:#c89b5b;background:#102234;box-shadow:inset 3px 0 0 #c89b5b;color:#f8f5ef}
.ng-tools-legacy .calculator-choice.calc-option.is-selected .calc-option-copy strong{color:#f8f5ef}
.ng-tools-legacy .calculator-choice.calc-option.is-selected .calc-option-copy small{color:#d7dce3}
.ng-tools-legacy .calc-option.is-selected .calc-option-icon{color:#e8c99e}
.ng-tools-legacy .calc-option.is-selected .calc-option-indicator{background:#c89b5b;border-color:#c89b5b;color:#102234}
.ng-tools-legacy .calculator-choice.calc-option>input:focus-visible+.calc-option-surface{outline:3px solid #8a612e;outline-offset:4px}
.ng-tools-legacy .calc-choice-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.ng-tools-legacy .calculator-choice.calc-option--compact>.calc-option-surface{grid-template-columns:minmax(0,1fr) 18px;gap:8px;min-height:68px;padding:12px}
.ng-tools-legacy .calculator-choice.calc-option--compact .calc-option-copy strong{font-size:13px}
html[data-theme=dark] .ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface{background:#102234;border-color:#748696;color:#f8f5ef}
html[data-theme=dark] .ng-tools-legacy .calculator-choice.calc-option .calc-option-copy strong{color:#f8f5ef}
html[data-theme=dark] .ng-tools-legacy .calculator-choice.calc-option .calc-option-copy small{color:#d4dce3}
html[data-theme=dark] .ng-tools-legacy .calc-option .calc-option-icon{color:#e8c99e}
html[data-theme=dark] .ng-tools-legacy .calculator-choice.calc-option.is-selected>.calc-option-surface{background:#264157;border-color:#c89b5b;box-shadow:inset 3px 0 0 #c89b5b}
html[data-theme=dark] .ng-tools-legacy .calculator-choice.calc-option>input:focus-visible+.calc-option-surface{outline-color:#e8c99e}
@media(max-width:400px){.ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface{padding:13px;gap:10px;grid-template-columns:29px minmax(0,1fr) 20px}.ng-tools-legacy .calc-option .calc-option-icon{width:29px}.ng-tools-legacy .calculator-choice.calc-option--compact>.calc-option-surface{padding:10px;grid-template-columns:minmax(0,1fr) 18px;gap:6px;min-height:80px}.ng-tools-legacy .calculator-choice.calc-option--compact .calc-option-copy strong{font-size:12px}}
html.ng-tools-offset{scroll-padding-top:var(--tools-header-offset,110px)}
.ng-tools-page :is(#calculadora,#asistente-laboral,.lab-chat,.calculator-panel,.calculator-question,h2,h3,h4,[tabindex='-1']){scroll-margin-top:12px}
@media(prefers-reduced-motion:reduce){.ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface{transition:none}}

/* Motion only. Resting geometry, colors, typography and native radios retained. */
.ng-tools-legacy .calc-option .calc-option-indicator svg{opacity:0;transform:scale(.84);transform-origin:center}
.ng-tools-legacy .calc-option.is-selected .calc-option-indicator svg{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:no-preference){
 .ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface{transition:border-color 200ms cubic-bezier(.2,.7,.2,1),box-shadow 200ms cubic-bezier(.2,.7,.2,1),transform 180ms cubic-bezier(.2,.7,.2,1)}
 .ng-tools-legacy .calc-option .calc-option-indicator{transition:background-color 200ms cubic-bezier(.2,.7,.2,1),border-color 200ms cubic-bezier(.2,.7,.2,1)}
 .ng-tools-legacy .calc-option .calc-option-indicator svg{transition:opacity 200ms cubic-bezier(.2,.7,.2,1),transform 200ms cubic-bezier(.2,.7,.2,1)}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference){
 .ng-tools-legacy .calculator-choice.calc-option:hover>.calc-option-surface{transform:translateY(-1px)}
}
@media(prefers-reduced-motion:no-preference){
 .ng-tools-legacy .calculator-choice.calc-option:active>.calc-option-surface{transform:scale(.995)}
}
@media(prefers-reduced-motion:reduce){
 .ng-tools-legacy .calculator-choice.calc-option>.calc-option-surface,.ng-tools-legacy .calc-option .calc-option-indicator,.ng-tools-legacy .calc-option .calc-option-indicator svg{transition:none!important;animation:none!important;transform:none!important}
}

/* Three compact links. Indicators occupy no layout space. */
.ng-tools-intro .ng-tools-navigation a{position:relative;min-height:44px;display:inline-flex;align-items:center;isolation:isolate;transition:color 200ms ease,background-color 200ms ease;touch-action:manipulation;text-decoration:none}
.ng-tools-intro .ng-tools-navigation a::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--ng-gold,#C89B5B);transform:scaleX(0);transform-origin:left center;opacity:0;transition:transform 200ms ease,opacity 200ms ease;pointer-events:none}
.ng-tools-intro .ng-tools-navigation a[aria-current=location]::after,.ng-tools-intro .ng-tools-navigation a:focus-visible::after{transform:scaleX(1);opacity:1}
.ng-tools-intro .ng-tools-navigation a:focus-visible{outline:2px solid #C89B5B;outline-offset:4px;border-radius:2px}
.ng-tools-intro .ng-tools-navigation a:active{background:rgba(200,155,91,.16)}
.ng-tools-intro .ng-tools-navigation a:active::after{transform:scaleX(1);opacity:1}
@media(hover:hover) and (pointer:fine){.ng-tools-intro .ng-tools-navigation a:hover{color:var(--ng-text)}.ng-tools-intro .ng-tools-navigation a:hover::after{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.ng-tools-intro .ng-tools-navigation a,.ng-tools-intro .ng-tools-navigation a::after{transition:none}}

.ng-review-page{max-width:880px;padding-top:70px;padding-bottom:80px}.ng-review-page h1{font-family:var(--serif,Georgia,serif);font-size:clamp(36px,6vw,66px);line-height:1.1;margin:22px 0}.ng-review-form{display:grid;gap:22px;margin-top:32px}.ng-review-form label{display:block;font-weight:600}.ng-review-form input:not([type=checkbox]),.ng-review-form textarea{display:block;width:100%;margin-top:9px;padding:14px;border:1px solid var(--muted,#536573);background:var(--ivory,#f8f5ef);color:var(--night,#102234);font:inherit;border-radius:7px;min-height:48px}.ng-review-form textarea{resize:vertical}.ng-review-form .ng-review-check{display:grid;grid-template-columns:24px 1fr;gap:12px;font-weight:400;align-items:start;line-height:1.6}.ng-review-check input{width:20px;height:20px;margin-top:4px;accent-color:#c89b5b}.ng-review-form .ng-review-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.ng-review-page button{min-height:48px;cursor:pointer}.ng-review-page button:disabled{opacity:.6;cursor:wait}.ng-review-page a{text-underline-offset:4px}.ng-review-page :is(input,textarea,button,a):focus-visible{outline:3px solid #c89b5b;outline-offset:4px}.ng-review-confirmation{border:1px solid #c89b5b;border-radius:8px;padding:24px;margin:30px 0}.ng-review-confirmation code{overflow-wrap:anywhere}.cookie-preference-toggle input:disabled{opacity:0}@media(max-width:600px){.ng-review-page{padding-top:40px}.ng-review-form{gap:20px}.ng-review-page button{width:100%}}

html[data-theme="dark"] .ng-review-form input:not([type=checkbox]),html[data-theme="dark"] .ng-review-form textarea{background:#18334b;color:#f8f5ef;border-color:#a9b7c2}html[data-theme="dark"] .ng-review-page a{color:#e4d5bd}.ng-review-page .ng-review-intro{max-width:68ch}

html:not([data-theme="dark"]) .cookie-modal .cookie-preference-row strong{color:#102234}html:not([data-theme="dark"]) .cookie-modal .cookie-advertising-note code{color:#102234}.cookie-modal .cookie-preference-toggle>span{border-color:#846036}.cookie-modal .cookie-preference-toggle>span::after{background:#846036}.cookie-modal .cookie-preference-toggle input:checked+span::after{background:#846036}html[data-theme="dark"] .cookie-modal .cookie-preference-toggle>span{border-color:#c89b5b}html[data-theme="dark"] .cookie-modal .cookie-preference-toggle>span::after{background:#c89b5b}

.privacy-document #opiniones{scroll-margin-top:110px}

/* Only the voluntary review page and its public rating display. */
.ng-review-v2{max-width:800px;padding-top:58px;padding-bottom:86px}.ng-review-heading{max-width:680px}.ng-review-v2 h1{font-size:clamp(34px,4.8vw,54px);line-height:1.12;letter-spacing:-.025em;margin:20px 0 18px}.ng-review-heading>p:last-child{color:#34516a}.ng-review-card{padding:30px;border:1px solid #d6c9b6;border-radius:14px;background:#fffdfa;box-shadow:0 10px 35px #10223406}.ng-review-v2 .ng-review-form{gap:23px;margin-top:32px}.ng-review-v2 label{font-size:15px}.ng-review-v2 .ng-review-form textarea{min-height:130px;margin-top:10px}.ng-review-v2 .ng-review-form input:not([type=checkbox]):not([type=radio]){margin-top:10px}.ng-review-optional{font-weight:400;color:#536573}.ng-review-v2 .ng-review-small{font-size:12px;line-height:1.65;color:#536573;margin:0}.ng-review-v2 .ng-review-check{position:relative;display:block;padding-left:32px;font-size:13px;line-height:1.65;min-height:24px}.ng-review-v2 .ng-review-check input{position:absolute;left:0;top:0;margin:2px 0 0;accent-color:#846036}.ng-review-check-note{display:block;color:#536573}.ng-review-v2 .ng-review-submit{width:100%;min-height:52px;border-radius:6px;font-size:13px;letter-spacing:.045em}.ng-review-v2 .ng-review-message{margin:20px 0;font-size:15px}.ng-rating-field{padding:0;border:0;margin:0;min-width:0}.ng-rating-field legend{font-size:15px;font-weight:600;padding:0}.ng-rating-options{display:flex;gap:8px;margin-top:10px;width:max-content;max-width:100%}.ng-review-v2 .ng-rating-option{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;min-width:44px;cursor:pointer;border-radius:9px;transition:background-color 200ms ease,transform 200ms ease}.ng-review-v2 .ng-rating-option input[type=radio]{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:0;opacity:0;clip-path:inset(50%);overflow:hidden}.ng-rating-icon{display:flex;width:38px;height:38px;color:#536573}.ng-rating-icon svg,.ng-opinion-stars svg{width:100%;height:100%;fill:transparent;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;transition:fill 200ms ease,color 200ms ease,transform 200ms ease}.ng-rating-option.is-lit .ng-rating-icon{color:#94682b}.ng-rating-option.is-lit svg{fill:currentColor}.ng-rating-option:has(input:focus-visible){outline:3px solid #846036;outline-offset:3px}.ng-rating-option:active{transform:scale(.95)}.ng-rating-field>p{font-size:13px;color:#536573;margin:9px 0 0;min-height:22px}.ng-review-success{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid #846036;color:#846036;border-radius:50%;font-size:24px;margin-bottom:18px}.ng-review-v2 .ng-review-confirmation{background:#fffdfa;border-radius:14px}.ng-opinion-stars{display:flex;align-items:center;gap:5px;margin-bottom:16px;color:#536573}.ng-opinion-stars>span:not(.ng-opinion-rating-value){display:block;width:22px;height:22px}.ng-opinion-stars .is-lit{color:#94682b}.ng-opinion-stars .is-lit svg{fill:currentColor}.ng-opinion-rating-value{font-size:13px;margin-left:8px}
@media(hover:hover){.ng-rating-option:hover{background:#c89b5b15;transform:translateY(-2px)}.ng-rating-option:hover svg{transform:scale(1.04)}}
html[data-theme="dark"] .ng-review-card,html[data-theme="dark"] .ng-review-v2 .ng-review-confirmation{background:#132b40;border-color:#617184}html[data-theme="dark"] .ng-review-heading>p:last-child,html[data-theme="dark"] .ng-review-optional,html[data-theme="dark"] .ng-review-v2 .ng-review-small,html[data-theme="dark"] .ng-review-check-note,html[data-theme="dark"] .ng-rating-field>p{color:#c9d2da}html[data-theme="dark"] .ng-rating-icon,html[data-theme="dark"] .ng-opinion-stars{color:#a7b6c3}html[data-theme="dark"] .ng-rating-option.is-lit .ng-rating-icon,html[data-theme="dark"] .ng-opinion-stars .is-lit,html[data-theme="dark"] .ng-review-success{color:#c89b5b}html[data-theme="dark"] .ng-review-v2 .ng-review-check input{accent-color:#c89b5b}html[data-theme="dark"] .ng-rating-option:has(input:focus-visible){outline-color:#c89b5b}
@media(max-width:600px){.ng-review-v2{padding-top:34px}.ng-review-v2 h1{font-size:35px}.ng-review-card{padding:22px 19px}.ng-review-v2 .ng-review-form{gap:21px}.ng-rating-options{gap:5px}.ng-review-v2 .ng-rating-option{width:48px;height:48px}.ng-rating-icon{width:34px;height:34px}.ng-review-v2 .ng-review-check{font-size:13px}.ng-review-v2 .ng-review-confirmation{padding:23px}}
@media(prefers-reduced-motion:reduce){.ng-rating-option,.ng-rating-icon svg,.ng-opinion-stars svg{transition:none!important;animation:none!important;transform:none!important}}

/* Scope: review privacy explanation and one optional publication choice only. */
.ng-review-v2 .ng-review-private-note{font-size:15px;line-height:1.65;margin:0;color:#34516a}
.ng-review-v2 .ng-review-check{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:14px;min-height:56px;padding:16px;border:1px solid #d6c9b6;border-radius:9px;cursor:pointer}
.ng-review-v2 .ng-review-check input{position:static;width:24px;height:24px;min-width:24px;min-height:24px;margin:1px 0 0;padding:0;cursor:pointer;accent-color:#846036}
.ng-review-v2 .ng-review-check strong{display:block;font-size:15px;line-height:1.5;font-weight:600}
.ng-review-v2 .ng-review-check-note{font-size:13px;line-height:1.65;margin-top:7px}
.ng-review-v2 .ng-review-check:focus-within{outline:3px solid #846036;outline-offset:3px}
.ng-review-v2 .ng-review-check:has(input:checked){border-color:#94682b;background:#c89b5b0a}
.ng-review-send-note{font-size:13px;line-height:1.65;margin:0;color:#536573}
.ng-review-send-note a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-weight:600}
.ng-review-privacy-details{font-size:12px;line-height:1.65;color:#536573;margin-top:-8px}
.ng-review-privacy-details summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;width:fit-content;padding-right:14px}
.ng-review-privacy-details summary:focus-visible{outline:3px solid #846036;outline-offset:3px;border-radius:3px}
.ng-review-privacy-details p{margin:10px 0 0;font-size:12px;line-height:1.65}
html[data-theme="dark"] .ng-review-private-note,html[data-theme="dark"] .ng-review-send-note,html[data-theme="dark"] .ng-review-privacy-details{color:#c9d2da}
html[data-theme="dark"] .ng-review-v2 .ng-review-check{border-color:#617184}
html[data-theme="dark"] .ng-review-v2 .ng-review-check:has(input:checked){border-color:#c89b5b}
html[data-theme="dark"] .ng-review-v2 .ng-review-check:focus-within,html[data-theme="dark"] .ng-review-privacy-details summary:focus-visible{outline-color:#c89b5b}
@media(max-width:600px){.ng-review-v2 .ng-review-form{gap:22px}.ng-review-v2 .ng-review-check{padding:15px 12px;gap:12px}.ng-review-v2 .ng-review-check strong{font-size:14px}.ng-review-v2 .ng-review-private-note{font-size:14px}.ng-review-send-note{font-size:13px}}

/* Five scoped additions. Existing Calculator, PDF, contact and theme tokens retained. */
.ng-dismissal :is(#que-es-despido,#pasos-despido,#pruebas-despido,#prestaciones-despido,#plazos-despido,#preguntas-despido){scroll-margin-top:120px}
.ng-dismissal .dismissal-guide{padding-block:42px;border-block:1px solid var(--d-line);color:var(--d-ink)}.dismissal-guide h2{font-size:clamp(28px,4vw,40px)}.dismissal-guide>p{max-width:720px}.dismissal-guide nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:25px 0}.dismissal-guide nav a{display:flex;align-items:center;gap:14px;min-height:66px;padding:14px;border:1px solid var(--d-line);border-radius:10px;text-decoration:none;color:var(--d-ink);background:var(--d-surface);transition:border-color 200ms,background-color 200ms,transform 200ms}.dismissal-guide nav span{color:var(--d-accent);font-family:var(--serif);font-size:25px}.dismissal-guide nav a[aria-current=location]{border-color:var(--d-accent);background:var(--d-tint)}.dismissal-guide-tools{display:flex;flex-wrap:wrap;gap:20px}.dismissal-guide-tools a{min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}
.ng-dismissal details.dismissal-card{display:block;cursor:auto}.ng-dismissal details.dismissal-card summary{min-height:50px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--serif);font-size:22px;line-height:1.25;list-style:none}.ng-dismissal details.dismissal-card summary::-webkit-details-marker{display:none}.ng-dismissal details.dismissal-card summary::after{content:'+';color:var(--d-accent);font:26px var(--sans);transition:transform 200ms}.ng-dismissal details.dismissal-card[open] summary::after{content:'−'}.ng-dismissal details.dismissal-card summary h3{font:inherit;margin:0}.ng-dismissal details.dismissal-card p{margin:18px 0 0}.dismissal-checklist{border:1px solid var(--d-line);border-radius:12px;padding:24px;color:var(--d-ink);margin:0}.dismissal-checklist legend{font-weight:600;padding:0 8px}.dismissal-checklist label{display:flex;gap:14px;align-items:flex-start;min-height:48px;padding-block:12px;border-top:1px solid var(--d-line);cursor:pointer}.dismissal-checklist input{flex:0 0 22px;width:22px;height:22px;margin:2px 0;accent-color:var(--d-accent)}.dismissal-checklist input:checked+span{color:var(--d-accent)}
.ng-dismissal .content-utility{padding-block:48px 76px;border-top:1px solid var(--d-line);color:var(--d-ink)}.content-utility>p,.content-utility form{max-width:800px}.content-utility fieldset{border:0;padding:0;margin:25px 0}.content-choices{display:flex;flex-wrap:wrap;gap:10px}.content-choices label{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;border:1px solid var(--d-line);border-radius:8px;padding:12px 15px;cursor:pointer;background:var(--d-surface);transition:background-color 200ms,border-color 200ms}.content-choices input{width:20px;height:20px;accent-color:var(--d-accent)}.content-choices label:has(input:checked){border-color:var(--d-accent);background:var(--d-tint)}.content-utility label[for=utility-comment]{display:block;margin-bottom:10px}.content-utility textarea{display:block;width:100%;min-height:110px;padding:16px;color:var(--d-ink);background:var(--d-surface);border:1px solid var(--d-line);font:inherit;border-radius:8px;resize:vertical}.content-utility #utility-privacy{font-size:13px;line-height:1.8;margin-block:14px 24px}.content-utility .content-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.content-utility [role=status]{margin-top:20px;font-weight:500}.content-utility button:disabled{opacity:.65;cursor:not-allowed}
.ng-dismissal :is(.dismissal-guide a,.dismissal-checklist input,.content-utility input,.content-utility textarea,.dismissal-card summary):focus-visible{outline:3px solid var(--d-accent);outline-offset:4px}.lab-knowledge{border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;padding:20px;margin:15px 0;background:var(--ivory);color:var(--navy)}html[data-theme=dark] .lab-knowledge{background:var(--night);color:var(--ivory)}.lab-knowledge h4{font-family:var(--serif);font-size:23px;line-height:1.3;margin:12px 0}.lab-knowledge small{letter-spacing:.08em;font-size:10px}.lab-knowledge a,.lab-knowledge button{display:inline-flex;align-items:center;min-height:44px;margin-right:16px;text-underline-offset:4px}.lab-knowledge button{background:transparent;border:1px solid var(--gold);border-radius:6px;color:inherit;padding:9px 14px}.lab-knowledge p{line-height:1.8}
@media(hover:hover){.dismissal-guide nav a:hover{border-color:var(--d-accent);transform:translateY(-2px)}.content-choices label:hover{border-color:var(--d-accent)}}
@media(max-width:700px){.dismissal-guide nav{grid-template-columns:1fr 1fr;gap:8px}.dismissal-guide nav a{font-size:13px;gap:10px;padding:12px;min-height:75px}.dismissal-guide nav span{font-size:22px}.ng-dismissal .dismissal-guide{padding-block:30px}.dismissal-checklist{padding:20px}.content-choices{display:grid}.ng-dismissal .content-utility{padding-block:36px 70px}.ng-dismissal :is(#que-es-despido,#pasos-despido,#pruebas-despido,#prestaciones-despido,#plazos-despido,#preguntas-despido){scroll-margin-top:100px}}
@media(prefers-reduced-motion:reduce){.dismissal-guide nav a,.ng-dismissal details.dismissal-card summary::after,.content-choices label{transition:none;transform:none}}

/* Scoped presentation only. Moderation, consent, ratings and withdrawal unchanged. */
.ng-client-opinions.ng-opinions-premium{display:block;background:#102234;border:1px solid #526477;border-radius:20px;padding:clamp(30px,5vw,64px);margin-block:clamp(28px,5vw,72px);box-sizing:border-box}
.ng-opinions-premium .ng-opinions-heading{text-align:center;margin:0 auto 36px;max-width:640px}
.ng-opinions-premium .ng-opinions-heading .ng-eyebrow{color:#e2bd88;letter-spacing:.18em}
.ng-opinions-premium .ng-opinions-heading h2{color:#f8f5ef;font-size:clamp(30px,3.5vw,46px);line-height:1.17;margin:16px 0 0}
.ng-opinions-premium .ng-opinions-heading h2 em{color:#e2bd88;font-weight:inherit}
.ng-opinions-premium .ng-opinions-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;min-width:0}
.ng-opinions-premium .ng-opinions-list:has(>.ng-opinion:only-child){grid-template-columns:minmax(0,390px);justify-content:center}
.ng-opinions-premium .ng-opinion{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;min-height:335px;margin:0;padding:30px 25px 32px;background:#f8f5ef;color:#102234;border:1px solid #d9c6a8;border-radius:12px;box-shadow:0 8px 24px #00000012;transition:border-color 200ms ease,box-shadow 200ms ease,transform 200ms ease}
.ng-opinions-premium .ng-opinion figcaption{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:13px;width:100%;color:#102234;flex-wrap:nowrap}
.ng-opinions-premium .ng-opinion-emblem{display:grid;place-items:center;width:54px;height:54px;border:1px solid #c89b5b;border-radius:50%;background:#102234;color:#e2bd88;font:46px/1 var(--serif,Georgia,serif);padding-top:13px;box-sizing:border-box;user-select:none}
.ng-opinions-premium .ng-opinion-author{font:500 18px/1.45 var(--serif,Georgia,serif);color:#102234;overflow-wrap:anywhere}
.ng-opinions-premium .ng-opinion figcaption a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:#78521f;font-size:12px;text-underline-offset:5px;text-decoration-thickness:1px}
.ng-opinions-premium .ng-opinion-stars{display:flex;justify-content:center;align-items:center;gap:4px;margin:22px 0 17px;color:#8b641e}
.ng-opinions-premium .ng-opinion-stars>span:not(.ng-opinion-rating-value){width:18px;height:18px;display:inline-flex}
.ng-opinions-premium .ng-opinion-stars svg{display:block;width:18px;height:18px;fill:transparent;stroke:#8b641e;stroke-width:1.5}
.ng-opinions-premium .ng-opinion-stars .is-lit svg{fill:#9a6d24;stroke:#9a6d24}
.ng-opinions-premium .ng-opinion-rating-value{font-size:11px;color:#42586a;margin-left:7px;white-space:nowrap}
.ng-opinions-premium .ng-opinion blockquote{margin:0;color:#344b5c;font:400 15px/1.75 var(--sans,Inter,Arial,sans-serif);width:100%;overflow-wrap:anywhere}
.ng-opinions-premium .ng-opinion blockquote p{margin:0;white-space:pre-line}
.ng-opinions-premium .ng-opinion-without-comment{margin:0;color:#536573;font-size:13px;line-height:1.7}
.ng-opinions-premium .ng-opinion:focus-within{border-color:#c89b5b;box-shadow:0 0 0 2px #c89b5b66,0 10px 28px #0002}
.ng-opinions-premium a:focus-visible{outline:3px solid #8f6326;outline-offset:4px;border-radius:3px}
:root[data-theme=dark] .ng-opinions-premium{background:#102234;border-color:#536b80}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion{background:#193349;border-color:#617283;color:#f8f5ef;box-shadow:0 8px 24px #0002}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion :is(.ng-opinion-author,figcaption){color:#f8f5ef}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion :is(blockquote,.ng-opinion-without-comment){color:#e2e8ec}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion-stars svg{stroke:#d5ab6e}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion-stars .is-lit svg{fill:#e0b778;stroke:#e0b778}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion-rating-value{color:#c5d2dc}
:root[data-theme=dark] .ng-opinions-premium .ng-opinion figcaption a{color:#e2bd88}
:root[data-theme=dark] .ng-opinions-premium a:focus-visible{outline-color:#e2bd88}
@media(hover:hover) and (pointer:fine){.ng-opinions-premium .ng-opinion:hover{border-color:#c89b5b;box-shadow:0 14px 32px #00000021;transform:translateY(-3px)}}
@media(max-width:1000px){.ng-opinions-premium .ng-opinions-list{gap:16px}.ng-opinions-premium .ng-opinion{padding:26px 19px;min-height:320px}.ng-opinions-premium .ng-opinion blockquote{font-size:14px}}
@media(max-width:800px){.ng-opinions-premium .ng-opinions-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ng-opinions-premium .ng-opinions-heading{margin-bottom:28px}}
@media(max-width:600px){.ng-client-opinions.ng-opinions-premium{padding:30px 20px;border-radius:14px}.ng-opinions-premium .ng-opinions-list{grid-template-columns:minmax(0,1fr);gap:18px}.ng-opinions-premium .ng-opinions-list:has(>.ng-opinion:only-child){grid-template-columns:minmax(0,1fr)}.ng-opinions-premium .ng-opinion{padding:28px 23px;min-height:0}.ng-opinions-premium .ng-opinion blockquote{font-size:15px}.ng-opinions-premium .ng-opinion-author{font-size:19px}}
@media(prefers-reduced-motion:reduce){.ng-opinions-premium .ng-opinion{transition:none!important;animation:none!important;transform:none!important}}

/* Additions only: the approved premium card design remains byte-identical. */
.ng-opinions-premium .ng-opinions-list[data-opinion-count="2"]{grid-template-columns:repeat(2,minmax(0,390px));justify-content:center}
.ng-opinions-premium .ng-opinions-anchor{display:block;scroll-margin-top:115px}
.ng-opinions-premium .ng-opinions-footer{text-align:center;margin-top:26px}
.ng-opinions-premium .ng-opinions-footer:empty{display:none}
.ng-opinions-premium .ng-opinions-more{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:9px 16px;margin:4px 8px;background:transparent;color:#e2bd88;border:1px solid #957244;border-radius:7px;font:500 13px/1.5 var(--sans,Inter,Arial,sans-serif);text-decoration:none;cursor:pointer;transition:border-color 200ms ease,background-color 200ms ease}
.ng-opinions-premium .ng-opinions-more:hover{border-color:#e2bd88;background:#ffffff0a}
.ng-opinions-premium .ng-opinions-more:focus-visible{outline:3px solid #e2bd88;outline-offset:4px}
.ng-opinions-premium .ng-opinions-more:disabled{opacity:.65;cursor:wait}
.ng-opinions-premium .ng-opinions-status{color:#e2e8ec;font-size:13px}
.ng-opinions-premium .ng-opinions-status button{min-height:44px;margin-left:8px;padding:7px 12px;border:1px solid #c89b5b;border-radius:5px;background:transparent;color:#e2bd88;cursor:pointer}
@media(max-width:600px){.ng-opinions-premium .ng-opinions-list[data-opinion-count="2"]{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.ng-opinions-premium .ng-opinions-more{transition:none!important}}
