

: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}}
