/* Pricing page only. Plan copy and numeric rates live in the two pricing HTML files. */
.pricing-hero { padding: 44px 0 32px; text-align: center; background: white; }
.pricing-hero h1 { line-height: 1.08; letter-spacing: -.045em; }
.pricing-hero .lede { margin: 18px auto 0; max-width: 760px; font-size: 1.02rem; line-height: 1.7; }
.pricing-jump { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; font-size: .875rem; font-weight: 500; }
.pricing-jump .icon { width: 16px; height: 16px; transform: rotate(90deg); }
.pricing-catalog { padding: 0 0 64px; }
.pricing-plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; max-width: 1020px; margin: 0 auto; }
.pricing-plan { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.pricing-plan.is-featured { border-color: var(--teal); background: var(--mint); }
.pricing-anchor { position: absolute; top: 0; left: 0; }
.pricing-plan-top h3 { font-size: clamp(1.3rem,2.2vw,1.65rem); letter-spacing: -.035em; line-height: 1.2; }
.pricing-plan-for { font-size: .875rem; line-height: 1.65; margin-top: 12px; }
.pricing-plan-price { color: var(--navy); display: flex; align-items: baseline; gap: 10px; margin: 22px 0 10px; font-family: var(--head); font-size: 3.25rem; line-height: 1.1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.pricing-plan-price>span { font: 400 .875rem var(--font); letter-spacing: 0; color: var(--muted); white-space: nowrap; }
.pricing-plan-price.is-custom { align-items: center; font-size: 2.05rem; letter-spacing: -.04em; }
.pricing-price-note { font-size: .875rem; line-height: 1.65; margin-bottom: 16px; }
.pricing-plan-allowance { font-size: .875rem; line-height: 1.65; }
.pricing-plan-allowance strong { color: var(--navy); font-weight: 500; font-size: 1rem; }
.pricing-plan-allowance p+p { margin-top: 7px; }
.pricing-plan .btn { width: 100%; margin-top: 22px; border-radius: 6px; padding: 12px 16px; font-size: .875rem; justify-content: space-between; }
.pricing-plan .btn-secondary { border-color: #c6d1e3; background: white; }
.pricing-plan .btn-secondary:hover { border-color: var(--teal); background: var(--mint); }
.pricing-features-label { width: 100%; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .875rem; color: var(--navy); font-weight: 500; }
.pricing-feature-list { display: grid; gap: 10px; padding: 0; margin: 13px 0 0; list-style: none; }
.pricing-feature-list li { display: flex; gap: 10px; font-size: .875rem; line-height: 1.55; color: var(--ink); margin: 0; }
.pricing-feature-list .icon { width: 16px; height: 16px; color: var(--teal); margin-top: 2px; stroke-width: 1.9; }
.pricing-plan .pricing-plan-details { margin-top: auto; padding-top: 20px; font-size: .875rem; }
/* Shared content-sized rows align the cards without fixed-height text blocks. */
@supports (grid-template-rows: subgrid) {
  .pricing-plan-grid { row-gap: 0; }
  .pricing-plan { display: grid; grid-template-rows: subgrid; grid-row: span 9; row-gap: 0; }
  .pricing-plan> :not(.pricing-anchor) { align-self: start; }
  .pricing-plan .pricing-plan-details { align-self: end; }
}
.pricing-calculator-section { background: var(--paper); padding: 76px 0; }
.pricing-calculator-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.pricing-calculator-layout>div,.pricing-details-layout>div { min-width: 0; }
.pricing-calculator-copy .eyebrow { margin-bottom: 18px; }
.pricing-calculator-copy h2,.pricing-details-intro h2,.pricing-included h2,.pricing-custom-heading h2 { font-size: clamp(2rem,3.2vw,3rem); line-height: 1.14; }
.pricing-calculator-copy>p:not(.eyebrow) { margin-top: 24px; font-size: 1rem; max-width: 480px; }
.pricing-calculator-copy .text-link { font-size: .92rem; }
.pricing-calculator { padding: 30px; border-radius: 14px; background: white; border: 1px solid var(--line); }
.calculator-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 25px; }
.calculator-heading h3 { font-size: 1.17rem; line-height: 1.3; }
.calculator-heading>span { border: 1px solid var(--line); padding: 4px 8px; border-radius: 4px; color: var(--muted); font-size: .75rem; }
.calculator-controls { border: 0; padding: 0; margin: 0; min-width: 0; }
.calculator-field+.calculator-field { margin-top: 18px; }
.calculator-field label { display: block; margin-bottom: 7px; color: var(--ink); font-size: .875rem; font-weight: 500; }
.calculator-field input { width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid #becadd; border-radius: 6px; color: var(--navy); background: white; font-size: 1rem; font-variant-numeric: tabular-nums; }
.calculator-field p { font-size: .8125rem; margin-top: 7px; }
.calculator-field .calculator-error,.calculator-invalid { color: #ad2034; }
.calculator-field [aria-invalid=true] { border-color: #ad2034; }
.calculator-invalid { padding: 24px 0; font-size: .875rem; }
.calculator-nojs { margin-top: 16px; font-size: .875rem; }
.calculator-breakdown { margin: 24px 0 0; padding-top: 19px; border-top: 1px solid var(--line); display: grid; gap: 11px; }
.calculator-breakdown>div { display: flex; justify-content: space-between; gap: 15px; }
.calculator-breakdown dt,.calculator-breakdown dd { font-size: .875rem; margin: 0; }
.calculator-breakdown dt { color: var(--muted); }
.calculator-breakdown dd { color: var(--navy); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.calculator-breakdown small { display: block; font-size: .8125rem; margin-top: 3px; }
.calculator-total { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 22px; padding: 22px; background: var(--navy); color: white; border-radius: 8px; }
.calculator-total span { font-size: .875rem; color: #ced9ed; }
.calculator-total output { display: block; margin-top: 9px; font: 500 2.5rem/1.1 var(--head); letter-spacing: -.04em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.calculator-basis { margin-top: 12px; font-size: .875rem; }
.pricing-included { padding: 80px 0; }
.pricing-included .section-head { margin-bottom: 40px; }
.pricing-foundation-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px 48px; }
.pricing-foundation-grid article { min-width: 0; }
.pricing-foundation-grid>article>.icon { color: var(--teal); width: 24px; height: 24px; margin-bottom: 16px; }
.pricing-foundation-grid h3 { font-size: 1.2rem; line-height: 1.35; letter-spacing: -.025em; }
.pricing-foundation-grid p { font-size: .95rem; margin-top: 10px; line-height: 1.7; }
.pricing-onboarding { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--line); }
.pricing-onboarding p { max-width: 760px; font-size: .95rem; }
.pricing-onboarding .text-link { margin-top: 16px; }
.pricing-custom-section { padding: 70px 0; background: var(--teal); color: white; }
.pricing-custom-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; }
.pricing-custom-layout>div { min-width: 0; }
.pricing-custom-heading .eyebrow { color: #dae3ff; margin-bottom: 18px; }
.pricing-custom-copy>p { color: #dae3ff; font-size: 1rem; line-height: 1.75; }
.pricing-custom-actions { display: flex; align-items: center; gap: 18px 24px; flex-wrap: wrap; margin-top: 26px; }
.pricing-custom-actions .btn-secondary { color: var(--teal); background: white; border-color: white; }
.pricing-custom-actions .btn-secondary:hover { background: var(--mint); border-color: var(--mint); }
.pricing-custom-actions .text-link { color: white; margin-top: 0; }
.pricing-custom-section :focus-visible { outline-color: white; }
.pricing-details-section { padding: 80px 0; }
.pricing-details-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.pricing-details-intro .eyebrow { margin-bottom: 18px; }
.pricing-details-intro>p:not(.eyebrow) { font-size: 1rem; margin-top: 22px; max-width: 360px; }
.pricing-details-intro .text-link { font-size: .92rem; }
.pricing-faq details { border-bottom: 1px solid var(--line); }
.pricing-faq details:first-child { border-top: 1px solid var(--line); }
.pricing-faq summary { display: flex; justify-content: space-between; align-items: start; gap: 20px; cursor: pointer; padding: 21px 0; font-size: .95rem; line-height: 1.55; font-weight: 500; list-style: none; }
.pricing-faq summary::-webkit-details-marker { display: none; }
.pricing-faq summary>span { font-size: 1.3rem; font-weight: 400; line-height: 1.1; color: var(--teal); }
.pricing-faq details[open] summary>span { transform: rotate(45deg); }
.pricing-faq details[open] summary { color: var(--teal); }
.pricing-faq details p { padding: 0 28px 23px 0; font-size: .95rem; line-height: 1.75; }
.pricing-page .site-footer { border-top: 1px solid #ffffff20; }
@media(max-width:1120px) {
  .pricing-plan { padding: 24px; }
  .pricing-calculator-layout,.pricing-custom-layout,.pricing-details-layout { gap: 48px; }
  .pricing-foundation-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 40px; }
}
@media(max-width:760px) {
  .pricing-hero { padding: 32px 0; }
  .pricing-plan-grid { grid-template-columns: 1fr; row-gap: 16px; }
  .pricing-plan { display: flex; grid-row: auto; padding: 25px; }
  .pricing-plan-price { margin-top: 20px; }
  .pricing-plan .btn { margin-top: 20px; }
  .pricing-catalog { padding-bottom: 48px; }
  .pricing-calculator-layout,.pricing-custom-layout,.pricing-details-layout { grid-template-columns: 1fr; gap: 32px; }
  .pricing-calculator-section,.pricing-included,.pricing-custom-section,.pricing-details-section { padding: 52px 0; }
  .pricing-calculator-copy>p:not(.eyebrow),.pricing-details-intro>p:not(.eyebrow) { max-width: none; }
  .pricing-included .section-head { margin-bottom: 32px; }
  .pricing-onboarding { margin-top: 32px; padding-top: 24px; }
}
@media(max-width:600px) {
  .pricing-foundation-grid { grid-template-columns: 1fr; gap: 28px; }
  .pricing-foundation-grid article { display: grid; grid-template-columns: 24px 1fr; column-gap: 16px; }
  .pricing-foundation-grid>article>.icon { margin: 2px 0 0; }
  .pricing-foundation-grid p { grid-column: 2; }
}
@media(max-width:480px) {
  .pricing-hero .lede { font-size: .98rem; margin-top: 20px; }
  .pricing-plan { padding: 24px; }
  .pricing-calculator { padding: 22px; }
  .calculator-heading h3 { font-size: 1.08rem; }
  .calculator-total { padding: 20px; }
  .calculator-total output { font-size: 2.25rem; }
  .pricing-custom-actions { align-items: start; flex-direction: column; }
  .pricing-custom-actions .btn { padding: 13px 18px; gap: 14px; }
}
@media print {
  .pricing-jump,.pricing-plan .btn,.pricing-custom-actions { display: none; }
  .pricing-plan-grid { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 24px; }
  .pricing-plan { display: flex; grid-row: auto; break-inside: avoid; }
  .pricing-hero,.pricing-included,.pricing-calculator-section,.pricing-custom-section,.pricing-details-section { padding: 25px 0; }
  .pricing-custom-section { background: white; color: var(--navy); }
  .pricing-custom-heading .eyebrow,.pricing-custom-copy>p { color: var(--ink); }
  .pricing-faq details>p { display: block!important; }
}
