.p-price {
  /* Foundation aliases */
  --price-font-sans: var(--font-sans);
  --price-font-serif: var(--font-serif);
  --price-fw-body: var(--fw-body);
  --price-fw-display: var(--fw-semibold);
  --price-fw-heading: var(--fw-heading);
  --price-fw-label: var(--fw-label);
  --price-fw-button: var(--fw-button);
  --price-fw-price: var(--fw-price);
  --price-fw-note: var(--fw-note);

  /* Price color DNA */
  --price-ink: #17233d;
  --price-navy: #14294f;
  --price-navy-deep: #0f2347;
  --price-navy-soft: #203a68;
  --price-gold: #ad8139;
  --price-gold-light: #d9bd82;
  --price-paper: #fbf8ef;
  --price-paper-deep: #f3ecdc;
  --price-surface-card: rgba(255, 253, 247, 0.96);
  --price-text-muted: rgba(23, 35, 61, 0.74);
  --price-text-subtle: rgba(23, 35, 61, 0.6);
  --price-line: rgba(23, 35, 61, 0.16);
  --price-soft-blue: #eef4f7;

  /* Shared section typography */
  --price-fs-eyebrow: var(--fs-label);
  --price-fs-section-title: clamp(2rem, 4vw, 3.2rem);
  --price-fs-section-title-mobile: 2rem;
  --price-fs-section-lead: var(--fs-body);
  --price-fs-plan-title: clamp(1.55rem, 2.2vw, 2rem);
  --price-fs-panel-title: clamp(1.15rem, 1.7vw, 1.45rem);
  --price-lh-section-title: 1.25;
  --price-lh-section-lead: var(--lh-lead);
  --price-lh-body: var(--lh-body);
  --price-lh-note: var(--lh-note);
  --price-ls-eyebrow: 0.14em;
  --price-ls-display: 0.035em;

  /* Pricing table typography */
  --price-fs-table-column-title: 1.1rem;
  --price-fs-table-column-title-mobile: 0.93rem;
  --price-fs-table-row-label: 0.88rem;
  --price-fs-table-row-label-mobile: 0.82rem;
  --price-fs-table-cell: 0.84rem;
  --price-fs-table-cell-mobile: 0.78rem;
  --price-fs-table-value: 0.96rem;
  --price-fs-table-tag: clamp(0.84rem, 0.95vw, 0.89rem);
  --price-fs-table-note: 0.72rem;
  --price-fs-table-category: 0.73rem;
  --price-lh-table-cell: 1.55;

  /* Pricing table surfaces */
  --price-table-line: rgba(33, 55, 91, 0.17);
  --price-table-surface: #fffdf8;
  --price-table-row-zebra: rgba(238, 244, 247, 0.48);
  --price-table-spot-surface: #fcf8ef;
  --price-table-spot-zebra: #f8f1e4;
  --price-table-shadow: 0 18px 42px rgba(17, 41, 79, 0.08);

  /* Section rhythm. The baton clearance reserves space for the next
     section's cross-boundary illustration without obscuring this section. */
  --price-space-section: clamp(72px, 8vw, 96px);
  --price-space-baton-clearance: clamp(152px, 14vw, 216px);
  --price-space-section-mobile: 76px;
  --price-space-baton-clearance-mobile: 120px;

  color: var(--price-ink);
}

.p-price .site-main,
.p-price-page {
  overflow-x: clip;
}

/* Price tables need a quiet, neutral paper around them. Warm tones remain
   inside the tables where they communicate a category or a condition. */
.p-price-page {
  background: #fcfcfa;
}

.p-price-page :is(
  .s-price-intro-guide,
  .s-price-advisory,
  .s-price-monthly-comparison,
  .s-price-spot-tables,
  .s-price-other-fees,
  .s-price-employment-rules,
  .s-price-disability
) {
  background: linear-gradient(180deg, #fcfcfa, #fafbfb) !important;
}

.p-price-page .s-price-intro-guide::after {
  background: linear-gradient(90deg, transparent, rgba(173, 129, 57, 0.22) 18%, rgba(173, 129, 57, 0.22) 82%, transparent);
}

.p-price-page .s-price-disability__wash {
  opacity: 0.15;
}

/* A quiet exit point after each pricing group: support the next action without
   competing with the tables the visitor has just compared. */
.p-price-page .c-price-section-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: clamp(28px, 3.5vw, 42px);
  padding: clamp(18px, 2vw, 24px) 0 0;
  border-top: 1px solid rgba(23, 35, 61, 0.16);
}

.p-price-page .c-price-section-cta__copy { min-width: 0; }

.p-price-page .c-price-section-cta__note,
.p-price-page .c-price-section-cta__message {
  margin: 0;
  color: var(--price-text-muted);
  font-size: 0.82rem;
  line-height: 1.7;
}

.p-price-page .c-price-section-cta__note { margin-bottom: 3px; font-size: 0.72rem; }

.p-price-page .c-price-section-cta__link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 14px;
  min-height: 42px;
  padding: 10px 14px 10px 18px;
  border: 1px solid rgba(20, 41, 79, 0.25);
  border-radius: 999px;
  color: var(--price-navy);
  background: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  font-weight: var(--price-fw-button);
  line-height: 1.35;
  text-decoration: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.p-price-page .c-price-section-cta__arrow { transition: transform 0.2s ease; }

.p-price-page .c-price-section-cta__link:hover {
  border-color: var(--price-gold);
  background: #fffdf8;
  transform: translateY(-1px);
}

.p-price-page .c-price-section-cta__link:hover .c-price-section-cta__arrow { transform: translateX(3px); }

.p-price-page .c-price-section-cta__link:focus-visible {
  outline: 3px solid rgba(173, 129, 57, 0.5);
  outline-offset: 3px;
}

@media (max-width: 640px) {
  .p-price-page .c-price-section-cta { display: grid; gap: 14px; }
  .p-price-page .c-price-section-cta__link { justify-content: space-between; width: 100%; }
}

/* Fixed row labels must stay fully opaque while their tables scroll underneath
   on a small screen. */
@media (max-width: 780px) {
  .p-price-page .s-price-advisory tbody th[scope="row"] {
    background: #fbf8ef !important;
  }

  .p-price-page .s-price-monthly-comparison__table tbody tr[data-price-row] > th {
    background: #fffefa !important;
  }

  .p-price-page .s-price-monthly-comparison__table tbody tr.is-zebra > th {
    background: #f6f9fa !important;
  }

  .p-price-page .s-price-spot-tables tbody th {
    background: #ffffff !important;
  }

  .p-price-page .s-price-spot-tables tr.is-exception > th {
    background: #f8f6f0 !important;
  }

  .p-price-page .s-price-employment-rules tbody th {
    background: #f5f0e5 !important;
  }
}

.p-price-page .c-price-mobile-comparison {
  display: none;
}

@media (max-width: 760px) {
  .p-price-page .has-price-mobile-comparison > .s-price-advisory__table-wrap,
  .p-price-page .has-price-mobile-comparison > .s-price-monthly-comparison__table-wrap,
  .p-price-page .has-price-mobile-comparison > .s-price-employment-rules__table-wrap {
    display: none;
  }

  .p-price-page .c-price-mobile-comparison {
    display: grid;
    gap: 0.62rem;
    width: 100%;
    color: var(--price-ink);
    font-family: var(--price-font-sans);
  }

  .p-price-page .s-price-advisory__scroll-hint,
  .p-price-page .s-price-employment-rules__scroll-hint,
  .p-price-page .s-price-monthly-comparison__guide .s-price-monthly-comparison__scroll-hint {
    display: none;
  }

  .p-price-page .c-price-mobile-comparison__title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .p-price-page .c-price-mobile-comparison__category {
    display: flex;
    gap: 0.42rem;
    align-items: center;
    margin: 0.42rem 0 -0.02rem;
    padding: 0.58rem 0.72rem;
    border-left: 3px solid rgba(173, 129, 57, 0.82);
    border-radius: 0 5px 5px 0;
    color: #4c3b18;
    background: #f4eee0;
    font-size: 0.72rem;
    font-weight: var(--price-fw-label);
    letter-spacing: 0.055em;
    line-height: 1.45;
  }

  .p-price-page .c-price-mobile-comparison__card {
    overflow: hidden;
    border: 1px solid rgba(17, 41, 79, 0.16);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(17, 41, 79, 0.04);
  }

  .p-price-page .c-price-mobile-comparison__heading {
    margin: 0;
    padding: 0.62rem 0.72rem;
    border-bottom: 1px solid rgba(17, 41, 79, 0.12);
    color: var(--price-ink);
    background: #faf7ef;
    font-size: 0.84rem;
    font-weight: var(--price-fw-heading);
    line-height: 1.45;
  }

  .p-price-page .c-price-mobile-comparison__grid {
    display: grid;
    min-width: 0;
  }

  .p-price-page .c-price-mobile-comparison__card.is-compact .c-price-mobile-comparison__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly .c-price-mobile-comparison__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-price-page .c-price-mobile-comparison__value {
    min-width: 0;
    padding: 0.62rem;
    background: #fff;
  }

  .p-price-page .c-price-mobile-comparison__card.is-compact .c-price-mobile-comparison__value {
    border-right: 1px solid rgba(17, 41, 79, 0.11);
    text-align: center;
  }

  .p-price-page .c-price-mobile-comparison__card.is-compact .c-price-mobile-comparison__value:last-child {
    border-right: 0;
  }

  .p-price-page .c-price-mobile-comparison__card.is-stacked .c-price-mobile-comparison__value {
    display: grid;
    grid-template-columns: minmax(5.7rem, 31%) minmax(0, 1fr);
    gap: 0.68rem;
    align-items: start;
    border-bottom: 1px solid rgba(17, 41, 79, 0.1);
  }

  .p-price-page .c-price-mobile-comparison__card.is-stacked .c-price-mobile-comparison__value:last-child {
    border-bottom: 0;
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly .c-price-mobile-comparison__value {
    min-height: 4.3rem;
    border-right: 1px solid rgba(17, 41, 79, 0.1);
    border-bottom: 1px solid rgba(17, 41, 79, 0.1);
    text-align: center;
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly .c-price-mobile-comparison__value:nth-child(2n) {
    border-right: 0;
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly .c-price-mobile-comparison__value:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .p-price-page .c-price-mobile-comparison__plan {
    display: block;
    margin: 0 0 0.38rem;
    color: rgba(17, 41, 79, 0.67);
    font-size: 0.63rem;
    font-weight: var(--price-fw-label);
    letter-spacing: 0.025em;
    line-height: 1.35;
  }

  .p-price-page .c-price-mobile-comparison__card.is-stacked .c-price-mobile-comparison__plan {
    margin: 0;
    padding-top: 0.08rem;
    color: var(--price-ink);
    font-size: 0.71rem;
  }

  .p-price-page .c-price-mobile-comparison__content {
    display: block;
    min-width: 0;
    color: #34465b;
    font-size: 0.76rem;
    line-height: 1.58;
    overflow-wrap: anywhere;
  }

  .p-price-page .c-price-mobile-comparison__card.is-compact .c-price-mobile-comparison__content,
  .p-price-page .c-price-mobile-comparison__card.is-monthly .c-price-mobile-comparison__content {
    display: grid;
    min-height: 1.65rem;
    place-items: center;
  }

  .p-price-page .c-price-mobile-comparison__content ul {
    margin: 0;
    padding-left: 1.08rem;
  }

  .p-price-page .c-price-mobile-comparison__content p:last-child,
  .p-price-page .c-price-mobile-comparison__content ul:last-child {
    margin-bottom: 0;
  }

  .p-price-page .c-price-mobile-comparison .s-price-advisory__availability,
  .p-price-page .c-price-mobile-comparison .s-price-employment-rules__status {
    justify-content: center;
    gap: 0.3rem;
    font-size: 0.7rem;
  }

  .p-price-page .c-price-mobile-comparison .s-price-advisory__price-list {
    gap: 0.56rem;
  }

  .p-price-page .c-price-mobile-comparison .s-price-advisory__price-value,
  .p-price-page .c-price-mobile-comparison .p-price-value {
    font-size: 0.94rem;
  }

  .p-price-page .c-price-mobile-comparison .s-price-employment-rules__scope-relation {
    margin-bottom: 0.35rem;
    font-size: 0.68rem !important;
  }

  .p-price-page .c-price-mobile-comparison__content > strong {
    font-size: 1rem;
  }

  .p-price-page .c-price-mobile-comparison .p-price-mark {
    margin-inline: auto;
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly.is-dense-pricing-copy .c-price-mobile-comparison__content,
  .p-price-page .c-price-mobile-comparison__card.is-monthly.is-dense-pricing-copy .c-price-mobile-comparison__content strong {
    font-size: 0.76rem;
    font-weight: var(--price-fw-body);
    line-height: 1.52;
  }

  .p-price-page .c-price-mobile-comparison__card.is-monthly.is-dense-pricing-copy .c-price-mobile-comparison__content .p-price-value {
    font-size: 0.83rem;
    font-weight: 600;
    line-height: 1.46;
  }

  .p-price-page :is(
    .s-price-advisory__head,
    .s-price-spot-tables__head,
    .s-price-other-fees__head,
    .s-price-employment-rules__head,
    .s-price-disability__head
  ) h2:has(> .c-price-section-title__number) {
    display: grid;
    grid-template-columns: 1.88rem minmax(0, 1fr);
    gap: 0.58rem;
    align-items: start;
    font-size: clamp(1.65rem, 7.2vw, 1.88rem);
    line-height: 1.32;
    letter-spacing: 0.02em;
  }

  .p-price-page :is(
    .s-price-advisory__head,
    .s-price-spot-tables__head,
    .s-price-other-fees__head,
    .s-price-employment-rules__head,
    .s-price-disability__head
  ) h2 > .c-price-section-title__number {
    width: 1.88rem;
    height: 1.88rem;
    margin: 0.18rem 0 0;
    box-shadow: 0 0 0 3px rgba(173, 129, 57, 0.09);
    font-size: 0.62rem;
    letter-spacing: 0.04em;
    vertical-align: baseline;
  }

  .p-price-page .c-price-section-title__copy {
    display: block;
    min-width: 0;
    padding: 0;
  }

  .p-price-page .s-price-monthly-comparison__table-wrap {
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
  }

  .p-price-page .s-price-monthly-comparison__guide {
    margin-bottom: 0.92rem;
  }

  .p-price-page .s-price-advisory__comparison-shell.has-price-mobile-comparison {
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .p-price-page .s-price-advisory__comparison-shell > .c-price-mobile-comparison {
    margin-bottom: 0.72rem;
  }

  .p-price-page .s-price-monthly-comparison__inner > .c-price-mobile-comparison,
  .p-price-page .s-price-employment-rules__container > .c-price-mobile-comparison {
    width: auto;
  }

  .p-price-page .s-price-employment-rules__container > .c-price-mobile-comparison {
    margin: 0 1.1rem;
  }

  .p-price-page .s-price-spot-tables__table-wrap {
    overflow: visible;
    border-top: 1px solid var(--line);
  }

  .p-price-page .s-price-spot-tables__table-wrap::after {
    display: none;
  }

  .p-price-page .s-price-spot-tables table {
    display: block;
    width: 100%;
    min-width: 0;
    table-layout: auto;
  }

  .p-price-page .s-price-spot-tables thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .p-price-page .s-price-spot-tables tbody {
    display: grid;
    gap: 10px;
    padding: 10px;
    background: rgba(244, 248, 250, 0.78);
  }

  .p-price-page .s-price-spot-tables tbody tr {
    display: block;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(17, 41, 79, 0.045);
  }

  .p-price-page .s-price-spot-tables tbody th,
  .p-price-page .s-price-spot-tables tbody td {
    position: static;
    width: 100%;
    min-width: 0;
    border-right: 0;
    border-left: 0;
  }

  .p-price-page .s-price-spot-tables tbody th {
    padding: 11px 12px;
    background: #fffefa !important;
  }

  .p-price-page .s-price-spot-tables tbody td {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: baseline;
    padding: 9px 12px;
    background: rgba(234, 243, 248, 0.58);
    font-size: 0.96rem;
    text-align: right;
    white-space: normal;
  }

  .p-price-page .s-price-spot-tables tbody td::before {
    min-width: 0;
    color: rgba(17, 41, 79, 0.7);
    font-family: var(--price-font-sans);
    font-size: 0.69rem;
    font-weight: var(--price-fw-label);
    line-height: 1.45;
    text-align: left;
    content: attr(data-mobile-label);
  }

  .p-price-page .s-price-spot-tables tr.is-exception th {
    background: #f8f6f0 !important;
  }

  .p-price-page .s-price-spot-tables tr.is-exception td {
    background: #f3f1eb;
  }
}

@media (max-width: 360px) {
  .p-price-page .c-price-mobile-comparison__value {
    padding: 0.55rem 0.48rem;
  }

  .p-price-page .c-price-mobile-comparison__card.is-stacked .c-price-mobile-comparison__value {
    grid-template-columns: minmax(5.2rem, 32%) minmax(0, 1fr);
    gap: 0.5rem;
  }

  .p-price-page .c-price-mobile-comparison__plan {
    font-size: 0.59rem;
  }

  .p-price-page .c-price-mobile-comparison__content {
    font-size: 0.72rem;
  }
}

.p-price-fallback__eyebrow {
  margin: 0 0 0.8rem;
  color: var(--price-gold);
  font-size: var(--fs-label, 0.78rem);
  font-weight: var(--fw-label, 700);
  letter-spacing: 0.13em;
}

.p-price-fallback__title {
  margin: 0;
  color: var(--price-navy-deep);
  font-size: clamp(1.55rem, 2.7vw, 2.3rem);
  line-height: 1.45;
}

.p-price-fallback { padding: 120px 0; background: var(--price-paper); }
.p-price-fallback__inner { max-width: 860px; }
.p-price-fallback__body { line-height: 1.9; }
.p-price-diagnostic { margin-top: 2rem; padding: 1.5rem; border: 2px solid #a63d3d; background: #fff; }
.p-price-diagnostic__title { font-weight: 700; }
.p-price-diagnostic__list { line-height: 1.7; overflow-wrap: anywhere; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
