/* Shared pricing presentation for the homepage and dedicated plans page. */
.page--pricing { max-width:1160px; padding:40px 28px 64px; }
.page--pricing > .page__header { max-width:740px; margin:0 auto 48px; text-align:center; }
.page--pricing > .page__header h1 { font-size:clamp(32px,4vw,44px); line-height:1.15; font-weight:600; letter-spacing:-.045em; color:#172f36; margin-bottom:18px; }
.page--pricing > .page__header .page__lead { font-size:17px; line-height:1.7; color:#52676d; margin:0 auto; }
body:has(.page--pricing) { background:#f3f6f5; }
.pricing-section { --text:#172f36; --muted:#52676d; --accent:#176f65; --border:#dce6e3; margin:48px 0 32px; color:var(--text); }
.page--pricing .pricing-section { margin-top:0; }
.pricing-section__header { margin-bottom:30px; text-align:center; }
.pricing-kicker { color:#176f65; font-size:14px; letter-spacing:.08em; font-weight:700; margin:0 0 12px; }
.content-section .pricing-kicker { color:#176f65; }
.pricing-section__header h2 { font-size:30px; line-height:1.25; font-weight:600; letter-spacing:-.035em; margin:0 0 12px; color:#172f36; }
.pricing-section__intro { max-width:660px; font-size:16px; line-height:1.7; color:#52676d; margin:0 auto; }
.pricing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; max-width:none; align-items:stretch; }
.pricing-card { position:relative; display:flex; flex-direction:column; gap:0; min-width:0; padding:26px; border:1px solid #d5e1da; border-radius:18px; background:#fff; box-shadow:0 4px 16px #173e4004; }
.pricing-card__top { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; min-height:32px; margin-bottom:14px; }
.pricing-card__eyebrow, .content-section .pricing-card__eyebrow { font-size:14px; color:#526b62; font-weight:600; letter-spacing:.045em; margin:0; line-height:1.5; }
.pricing-card__name { font-size:25px; line-height:1.3; letter-spacing:-.035em; font-weight:600; color:#172f36; margin:0 0 10px; }
.pricing-card__description, .content-section .pricing-card__description { color:#52676d; font-size:15px; line-height:1.5; margin:0 0 4px; min-height:0; }
.pricing-card__price, .content-section .pricing-card__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; color:#172f36; min-height:0; margin:10px 0 12px; }
.pricing-card__price strong { font-size:40px; line-height:1.1; font-weight:600; letter-spacing:-.06em; }
.pricing-card__price > span { color:#52676d; font-size:15px; font-weight:400; letter-spacing:0; }
.pricing-card__allowance { margin:0 0 16px; padding:10px 0; border-top:1px solid #e3ebe6; border-bottom:1px solid #e3ebe6; min-height:0; font-size:15px; line-height:1.5; }
.pricing-card__allowance strong { display:block; font-weight:600; }
.pricing-card__allowance > span { display:block; color:#52676d; font-size:14px; margin-top:3px; }
.pricing-card .btn { width:100%; min-height:48px; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; font-size:16px; border-radius:10px; text-decoration:none; margin:0; }
.pricing-card .btn--secondary { color:#172f36; background:#fff; border:1px solid #9fb6a9; }
.pricing-card .btn--secondary:hover { color:#172f36; background:#edf5f0; border-color:#769788; }
.pricing-card__action-note, .content-section .pricing-card__action-note { text-align:center; font-size:14px; line-height:1.5; margin:8px 0 0; color:#52676d; }
.pricing-card__more { margin:12px 0 0; padding-top:4px; border-top:1px solid #e3ebe6; }
.pricing-card__more > summary {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  min-height:40px; cursor:pointer; list-style:none; font-size:14px; font-weight:600; color:#176f65;
}
.pricing-card__more > summary::-webkit-details-marker { display:none; }
.pricing-card__more > summary::after {
  content:''; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:translateY(-1px) rotate(45deg); transition:transform .18s;
}
.pricing-card__more[open] > summary::after { transform:translateY(2px) rotate(225deg); }
.pricing-card__more > summary:focus-visible { outline:3px solid #176f65; outline-offset:3px; border-radius:6px; }
.pricing-card--featured .pricing-card__more { border-top-color:#ffffff30; }
.pricing-card--featured .pricing-card__more > summary { color:#bde4cc; }
.pricing-card__features { margin:4px 0 0; padding:0; list-style:none; gap:10px; flex:0; display:grid; }
.pricing-card__features li { padding-left:24px; font-size:15px; color:#3f585f; line-height:1.6; margin:0; }
.pricing-card__features li::before { content:''; top:7px; left:2px; width:6px; height:11px; border-right:1.5px solid #176f65; border-bottom:1.5px solid #176f65; border-radius:0; background:none; transform:rotate(45deg); opacity:1; }
.pricing-card--featured { background:#173e40; border:1px solid #173e40; color:#fff; box-shadow:0 8px 26px #173e4014; }
.pricing-card__badge { background:#bde4cc; color:#174d38; font-size:14px; line-height:1.5; padding:4px 9px; border-radius:6px; font-weight:600; white-space:nowrap; }
.pricing-card--featured .pricing-card__top { min-height:32px; }
.pricing-card--featured .pricing-card__eyebrow, .content-section .pricing-card--featured .pricing-card__eyebrow { color:#c7dfd4; }
.pricing-card--featured .pricing-card__name, .pricing-card--featured .pricing-card__price, .content-section .pricing-card--featured .pricing-card__price { color:#fff; }
.pricing-card--featured :is(.pricing-card__description,.pricing-card__price > span,.pricing-card__allowance > span,.pricing-card__action-note), .content-section .pricing-card--featured .pricing-card__description, .content-section .pricing-card--featured .pricing-card__action-note { color:#d0e3da; }
.pricing-card--featured .pricing-card__allowance { border-color:#ffffff30; }
.pricing-card--featured .pricing-card__features li { color:#e0eee7; }
.pricing-card--featured .pricing-card__features li::before { border-color:#bde4cc; }
.pricing-card--featured .btn--primary { color:#173e40; background:#c4e8d2; border:1px solid #c4e8d2; font-weight:700; }
.pricing-card--featured .btn--primary:hover { color:#173e40; background:#e0f4e7; border-color:#e0f4e7; }
.pricing-card .btn:focus-visible { outline:3px solid #176f65; outline-offset:4px; }
.pricing-card--featured .btn:focus-visible { outline-color:#d0efdc; }
.pricing-card__value-note, .content-section .pricing-card__value-note { color:#c7dfd4; font-size:14px; line-height:1.6; border-top:1px solid #ffffff30; padding-top:12px; margin:12px 0 0; }
.pricing-next-step { display:flex; align-items:center; justify-content:center; gap:12px; margin:26px auto 16px; padding:16px 20px; border:1px solid #d8e5dc; border-radius:12px; background:#edf4ef; font-size:15px; line-height:1.6; }
.pricing-next-step > span { color:#176f65; font-size:24px; }
.pricing-next-step p, .content-section .pricing-next-step p { margin:0; color:#466157; }
.pricing-next-step strong { font-weight:600; color:#254f3c; }
.pricing-section__fineprint { font-size:14px; line-height:1.7; color:#52676d; max-width:820px; margin:0 auto; }
.pricing-section__fineprint a { color:#176f65; text-underline-offset:3px; }
#monthly-plan, #once-plan { scroll-margin-top:calc(var(--header-h) + 24px); }
.page--pricing .pricing-details { margin-top:56px; font-size:16px; }
.page--pricing .pricing-details > h2 { color:#172f36; font-size:26px; letter-spacing:-.03em; margin-top:36px; }
.page--pricing .pricing-compare { gap:18px; }
.page--pricing .pricing-compare > div { min-width:0; padding:22px; background:#fff; border:1px solid #dce6e3; border-radius:14px; }
.page--pricing .pricing-compare h3 { font-size:18px; line-height:1.5; color:#172f36; }
.page--pricing .pricing-compare li { font-size:15px; line-height:1.7; }
.page--pricing .pricing-table { background:#fff; font-size:16px; min-width:36rem; }
.page--pricing .pricing-table th { font-size:14px; color:#3f585f; }
.page--pricing .pricing-table-wrap { border-color:#dce6e3; }
.page--pricing .pricing-details details { background:#fff; border:1px solid #dce6e3; padding:18px 22px; border-radius:12px; margin:10px 0; }
.page--pricing .pricing-details details p { font-size:16px; }
.page--pricing .cta-box { background:#edf4ef; border-color:#d0e2d6; }
@media (max-width:1050px) {
  .pricing-grid { gap:14px; }
  .pricing-card { padding:20px; }
  .pricing-card__top { min-height:0; align-content:flex-start; }
  .pricing-card--featured .pricing-card__top { min-height:0; }
}
@media (max-width:850px) {
  .pricing-grid { grid-template-columns:1fr; max-width:540px; gap:12px; }
  .pricing-card { padding:18px 20px; }
  .pricing-card__top, .pricing-card--featured .pricing-card__top { min-height:0; }
  .pricing-card__description { min-height:0; }
  .pricing-card__price { min-height:0; margin:6px 0 10px; }
  .pricing-card__price strong { font-size:32px; }
  .page--pricing .pricing-compare { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .page--pricing { padding:28px 16px 48px; }
  .page--pricing > .page__header { margin-bottom:32px; text-align:left; }
  .page--pricing > .page__header .page__lead { font-size:16px; }
  .pricing-section { margin-top:36px; }
  .pricing-section__header { text-align:left; }
  .pricing-section__header h2 { font-size:28px; }
  .pricing-card { padding:16px 18px; }
  .pricing-card__name { font-size:22px; }
  .pricing-card__price strong { font-size:32px; }
  .pricing-card__top { gap:8px; }
  .pricing-next-step { align-items:flex-start; padding:16px; }
  .pricing-section__fineprint { text-align:left; }
  .page--pricing .pricing-table th, .page--pricing .pricing-table td { padding:12px; min-width:100px; }
}
/* The dedicated page already introduces the plans; avoid a second visual heading. */
.page--pricing .pricing-section { position:relative; }
.page--pricing .pricing-section__header { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
.page--pricing > .page__header { margin-bottom:36px; }
