/* Pricing uses the lightweight public shell and native, keyboard-accessible details. */
.pricing-page {
  min-width: 0;
  --pricing-paper: var(--color-bg);
  --pricing-ink: var(--color-ink);
  --pricing-muted: var(--color-ink-soft);
  --pricing-teal: var(--color-primary);
  --pricing-mint: var(--color-highlight);
  --pricing-line: var(--color-border);
  --pricing-radius: 1rem;
  --pricing-gap: clamp(1rem, 2.2vw, 2rem);
  color: var(--pricing-ink);
  background: var(--pricing-paper);
}
.pricing-page main [id] { scroll-margin-top: 7rem; }
.pricing-page h1, .pricing-page h2, .pricing-page h3, .pricing-page h4 { letter-spacing: -.035em; line-height: 1.15; }
.pricing-page h2 { font-size: clamp(1.8rem, 3.2vw, 3rem); margin: 0 0 1rem; }
.pricing-page h3 { font-size: clamp(1.3rem, 2vw, 1.65rem); margin: 0 0 1rem; }
.pricing-page .section-kicker { color: var(--pricing-teal); font-size: .75rem; letter-spacing: .12em; }
.pricing-page .button { min-height: 3rem; border-radius: .5rem; box-shadow: none; line-height: 1.4; text-align: center; }
.pricing-page .button-primary { color: #fff; background: var(--pricing-teal); border-color: var(--pricing-teal); }
.pricing-page .button-primary:hover { background: var(--color-primary-strong); }
.pricing-page .button-secondary { background: transparent; border: 1px solid #7897aa; color: var(--pricing-ink); }
.pricing-page .button-secondary:hover { background: var(--pricing-mint); }
.pricing-page a:focus-visible, .pricing-page summary:focus-visible { outline: 3px solid var(--pricing-teal); outline-offset: 5px; }
.pricing-page .text-link { color: var(--pricing-teal); font-weight: 700; }
.pricing-page .text-link::after { content: none; }
.pricing-page .site-footer-grid h2 { font-size: clamp(1.4rem, 2vw, 2rem); }
.pricing-hero { padding-top: clamp(3rem, 7vw, 6.8rem); }
.pricing-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.pricing-hero h1 { font-size: clamp(2.5rem, 4.7vw, 4.8rem); margin: 0 0 1.4rem; max-width: 15ch; }
.pricing-hero h1 span { color: var(--pricing-teal); }
.pricing-lead { font-size: clamp(1.05rem, 1.5vw, 1.2rem); max-width: 49ch; color: var(--pricing-muted); }
.pricing-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin: 1.8rem 0; }
.pricing-small { font-size: .83rem; color: var(--pricing-muted); line-height: 1.65; }
.pricing-small a { text-decoration: underline; text-underline-offset: .2em; }
.pricing-budget { background: #fff; border: 1px solid var(--pricing-line); padding: clamp(1.5rem, 3vw, 2.6rem); border-radius: var(--pricing-radius); box-shadow: .5rem .8rem 0 var(--pricing-mint); }
.pricing-budget h2 { font-size: clamp(1.5rem, 2vw, 2rem); }
.pricing-budget ol { list-style: none; padding: 0; margin: 1.7rem 0; }
.pricing-budget li { display: flex; gap: 1rem; padding-block: 1rem; border-top: 1px solid var(--pricing-line); }
.pricing-budget li > span { font-size: .8rem; color: var(--pricing-teal); padding-top: .15rem; font-weight: 700; }
.pricing-budget li p { margin: .2rem 0 0; color: var(--pricing-muted); font-size: .9rem; }
.pricing-assurance { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 1.5rem; margin-top: clamp(3rem, 6vw, 5rem); border-block: 1px solid var(--pricing-line); font-size: .82rem; font-weight: 650; color: var(--pricing-muted); }
.pricing-section { padding-block: clamp(3rem, 6vw, 5.5rem); }
.pricing-heading { display: flex; justify-content: space-between; align-items: end; gap: var(--pricing-gap); margin-bottom: 2rem; }
.pricing-heading h2 { margin-bottom: 0; }
.pricing-heading > p { width: 40%; max-width: 30rem; color: var(--pricing-muted); margin: 0; }
.pricing-entry-grid, .pricing-support-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pricing-gap); }
.pricing-entry { display: flex; flex-direction: column; border: 1px solid var(--pricing-line); border-radius: var(--pricing-radius); padding: clamp(1.4rem, 2.6vw, 2.2rem); background: #fff; transition: border-color 150ms ease; }
.pricing-entry:hover { border-color: var(--pricing-teal); }
.pricing-entry h3 { margin-top: .8rem; }
.pricing-entry > p { color: var(--pricing-muted); font-size: .95rem; margin: 0 0 1.5rem; }
.pricing-entry > strong { margin-top: auto; font-size: clamp(1.6rem, 2.4vw, 2.2rem); line-height: 1.3; }
.pricing-entry small { display: block; font-size: .76rem; font-weight: 500; letter-spacing: 0; }
.pricing-entry .text-link { margin-top: 1.8rem; display: flex; justify-content: space-between; font-size: .9rem; }
.pricing-entry-featured { background: var(--pricing-ink); color: #fff; border-color: var(--pricing-ink); }
.pricing-entry-featured > strong { color: #fff; }
.pricing-entry-featured .section-kicker, .pricing-entry-featured .text-link { color: var(--color-brand-ice); }
.pricing-entry-featured > p { color: #d7e5ef; }
.pricing-shortcuts { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-block: 2rem; font-size: .86rem; }
.pricing-shortcuts > span { color: var(--pricing-muted); margin-right: .3rem; }
.pricing-shortcuts a { padding: .6rem .9rem; border: 1px solid var(--pricing-line); border-radius: 2rem; background: #fff; min-height: 2.75rem; }
.pricing-shortcuts a:hover { background: var(--pricing-mint); }
.pricing-offers { display: grid; gap: 1rem; }
.pricing-offer { background: #fff; border: 1px solid var(--pricing-line); border-radius: var(--pricing-radius); }
.pricing-offer > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 2rem; gap: 1.3rem; align-items: center; padding: clamp(1.15rem, 2.2vw, 2rem); cursor: pointer; list-style: none; }
.pricing-offer > summary::-webkit-details-marker { display: none; }
.pricing-audience, .pricing-offer-name { display: block; }
.pricing-audience { font-size: .79rem; color: var(--pricing-muted); margin-bottom: .3rem; }
.pricing-offer-name { font-size: clamp(1.25rem, 2.2vw, 1.8rem); line-height: 1.2; font-weight: 700; letter-spacing: -.025em; }
.pricing-summary-price { text-align: right; }
.pricing-summary-price small { display: block; font-size: .75rem; color: var(--pricing-muted); }
.pricing-summary-price strong { font-size: clamp(1.15rem, 1.8vw, 1.5rem); white-space: nowrap; }
.pricing-expand { display: grid; place-items: center; width: 2rem; aspect-ratio: 1; color: var(--pricing-teal); border-radius: 50%; background: var(--pricing-mint); font-size: 1.4rem; }
.pricing-offer[open] .pricing-expand { transform: rotate(45deg); }
.pricing-offer[open] > summary { border-bottom: 1px solid var(--pricing-line); }
.pricing-offer-body { padding: clamp(1.1rem, 2.2vw, 2rem); }
.pricing-offer-intro { margin-bottom: 1.5rem; }
.pricing-offer-intro h3 { font-size: 1.15rem; }
.pricing-offer-intro p { color: var(--pricing-muted); margin-block: .7rem; max-width: 75ch; }
.pricing-offer-intro a { font-size: .88rem; }
.pricing-plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.pricing-plan { display: flex; flex-direction: column; min-width: 0; background: var(--pricing-paper); border: 1px solid var(--pricing-line); border-radius: .7rem; padding: clamp(1.1rem, 1.7vw, 1.6rem); }
.pricing-plan h4 { margin: 0 0 .8rem; font-size: 1.3rem; }
.pricing-pages { margin: 0 0 1rem; color: var(--pricing-teal); font-size: .86rem; font-weight: 700; }
.pricing-scope { margin-bottom: 1.2rem; }
.pricing-scope > summary { font-size: .84rem; }
.pricing-scope > div { font-size: .84rem; }
.pricing-scope > summary > .sr-only { float: none; padding: 0; }
.pricing-benefit { font-size: .9rem; color: var(--pricing-muted); margin: 0; min-height: 3.2em; }
.pricing-amount { margin: 1.3rem 0; line-height: 1.3; }
.pricing-amount small { display: block; color: var(--pricing-muted); font-size: .76rem; margin-bottom: .35rem; }
.pricing-amount strong { font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 750; letter-spacing: -.04em; white-space: nowrap; }
.pricing-features { padding-left: 1.15rem; margin: 0 0 1.5rem; font-size: .9rem; }
.pricing-features li { padding-left: .1rem; margin-bottom: .65rem; }
.pricing-features li::marker { color: var(--pricing-teal); }
.pricing-studio { display: block; width: fit-content; padding: .4rem .6rem; background: var(--pricing-mint); color: var(--color-primary-strong); font-size: .75rem; font-weight: 650; border-radius: .3rem; margin-bottom: 1rem; }
.pricing-plan-bottom { margin-top: auto; }
.pricing-followup { padding-top: 1rem; border-top: 1px solid var(--pricing-line); font-size: .82rem; color: var(--pricing-muted); }
.pricing-followup strong { color: var(--pricing-ink); white-space: nowrap; }
.pricing-followup a { text-decoration: underline; text-underline-offset: .2em; font-size: .75rem; }
.pricing-plan .button { display: flex; width: 100%; font-size: .82rem; padding-inline: .8rem; }
.pricing-note { color: var(--pricing-muted); font-size: .86rem; margin: 1.5rem 0 0; }
.pricing-tinted { background: var(--color-bg-soft); }
.pricing-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(2rem, 6vw, 6rem); }
.pricing-split p { color: var(--pricing-muted); }
.pricing-followup-intro { border-left: 3px solid var(--pricing-teal); padding-left: 1.2rem; margin-bottom: 2rem; max-width: 75ch; }
.pricing-followup-intro p { color: var(--pricing-muted); font-size: .9rem; margin-bottom: 0; }
.pricing-support { padding: clamp(1.3rem, 2.5vw, 2.2rem); border: 1px solid var(--pricing-line); border-radius: var(--pricing-radius); background: #fff; }
.pricing-support-grid { margin-bottom: 1.5rem; }
.pricing-support-grid { margin-top: 1.5rem; }
.pricing-support-target { color: var(--pricing-muted); font-size: .85rem; }
.pricing-allowance { padding: 1rem; border-radius: .5rem; background: var(--pricing-mint); font-size: .9rem; font-weight: 650; }
.pricing-support > .text-link { font-size: .85rem; }
.pricing-delivery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pricing-gap); }
.pricing-delivery-grid .pricing-support > p { color: var(--pricing-muted); font-size: .95rem; }
.pricing-modifications { margin-top: 2rem; }
.pricing-modifications h3 { font-size: 1.2rem; }
#panel-interventions > div > .pricing-note { margin: 0 0 1.5rem; }
.pricing-disclosure { border-bottom: 1px solid var(--color-border-strong); }
.pricing-disclosure > summary { padding: 1.1rem .25rem; cursor: pointer; font-weight: 650; }
.pricing-disclosure > summary > span { float: right; padding-left: 1rem; font-size: .85rem; color: var(--pricing-muted); font-weight: 500; }
.pricing-disclosure > div { padding: 0 .25rem 1rem; font-size: .92rem; color: var(--pricing-muted); }
.pricing-disclosure p { margin: .5rem 0; }
.pricing-managed { display: flex; gap: 2rem; align-items: center; justify-content: space-between; padding: clamp(1.4rem, 3vw, 2.4rem); margin-top: 2.5rem; background: var(--pricing-mint); border-radius: var(--pricing-radius); }
.pricing-managed > div { max-width: 65%; }
.pricing-managed h3 { font-size: 1.2rem; }
.pricing-managed p { font-size: .9rem; margin: 0; }
.pricing-managed .button { flex-shrink: 0; font-size: .85rem; }
.pricing-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .86rem; }
.pricing-table th, .pricing-table td { padding: 1rem .6rem; border-bottom: 1px solid var(--pricing-line); vertical-align: top; }
.pricing-table thead { color: var(--pricing-ink); }
.pricing-table th:first-child { width: 30%; }
.pricing-table td:nth-child(2) { white-space: nowrap; color: var(--pricing-ink); font-weight: 700; }
.pricing-table tbody th { font-weight: 600; }
.pricing-final { background: var(--pricing-ink); text-align: center; color: #fff; }
.pricing-final .section-kicker { color: var(--color-brand-ice); }
.pricing-final > div > p:not(.section-kicker) { max-width: 58ch; margin-inline: auto; color: #d7e5ef; }
.pricing-final .pricing-actions { justify-content: center; }
.pricing-final .button-primary { background: var(--color-brand-ice); color: var(--pricing-ink); border-color: var(--color-brand-ice); }
.pricing-final .button-primary:hover { background: var(--color-highlight); }
.pricing-final .button-secondary { color: #fff; border-color: #87adc5; }
.pricing-final .button-secondary:hover { background: var(--color-brand-navy); }
@media (max-width: 64rem) {
  .pricing-page .site-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 58rem) {
  .pricing-page .nav-toggle { display: block; }
  .pricing-page .site-nav { position: fixed; inset: 4.9rem 4% auto; display: none; align-items: stretch; flex-direction: column; gap: .7rem; padding: 1rem; background: #fff; border: 1px solid var(--pricing-line); border-radius: .8rem; box-shadow: 0 1rem 2rem rgba(var(--color-ink-rgb), .125); max-height: calc(100dvh - 6rem); overflow-y: auto; }
  .pricing-page.nav-open .site-nav { display: flex; }
  .pricing-page .site-nav > a, .pricing-page .nav-menu-trigger { min-height: 2.5rem; width: 100%; }
  .pricing-page .nav-menu-trigger { justify-content: space-between; }
  .pricing-page .nav-submenu { position: static; display: none; min-width: 0; margin-top: .3rem; opacity: 1; visibility: visible; pointer-events: auto; transform: none; box-shadow: none; background: var(--color-bg-soft); border: 0; }
  .pricing-page .nav-menu.is-open .nav-submenu { display: grid; }
  .pricing-page .nav-menu:not(.is-open) .nav-submenu { display: none; }
  .pricing-page .nav-submenu a { white-space: normal; }
  .pricing-page .cookie-banner { grid-template-columns: 1fr; max-height: 85dvh; overflow: auto; }
  .pricing-hero-grid, .pricing-split { grid-template-columns: 100%; }
  .pricing-hero h1 { max-width: 19ch; }
  .pricing-budget { box-shadow: none; }
  .pricing-heading { display: block; }
  .pricing-heading > p { width: 100%; margin-top: 1.3rem; max-width: 65ch; }
  .pricing-entry-grid, .pricing-support-grid, .pricing-delivery-grid { grid-template-columns: 100%; }
  .pricing-managed { flex-direction: column; align-items: start; }
  .pricing-managed > div { max-width: 100%; }
}
@media (max-width: 36rem) {
  .pricing-offer > summary { grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; }
  .pricing-audience { font-size: .72rem; }
  .pricing-expand { display: none; }
  .pricing-summary-price small { font-size: .65rem; }
  .pricing-plan-grid { grid-template-columns: 100%; }
  .pricing-benefit { min-height: 0; }
  .pricing-disclosure > summary > span { float: none; display: block; padding-left: 1rem; }
  .pricing-table th, .pricing-table td { padding: .8rem .3rem; hyphens: auto; }
  .pricing-table { font-size: .78rem; }
  .pricing-table th:first-child { width: 34%; }
  .pricing-table th:nth-child(2) { width: 20%; }
  .pricing-assurance { flex-direction: column; gap: .5rem; }
}
@media (max-width: 28rem) {
  .pricing-page .site-footer-grid { grid-template-columns: 100%; }
  .pricing-page .site-footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pricing-page *, .pricing-page *::before, .pricing-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
