.pricing-intro { padding-block: 64px 52px; }
.pricing-intro .eyebrow { margin-bottom: 24px; }
.pricing-intro h1 {
  max-width: 920px;
  font-size: clamp(48px, 4.8vw, 68px);
  line-height: 1.08;
  letter-spacing: -.052em;
}
.pricing-intro-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-top: 30px;
}
.pricing-intro-bottom > p { max-width: 690px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.pricing-intro-bottom .link { max-width: 240px; flex-shrink: 0; margin-bottom: 5px; color: var(--accent); font-size: 15px; }
.pricing-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 58px; border-top: 1px solid var(--line); }
.pricing-sidebar { align-self: stretch; padding-block: 44px 60px; }
.service-directory { position: sticky; top: 32px; }
.service-directory summary { display: none; }
.directory-label { margin-bottom: 18px; font-size: 14px; color: var(--muted); }
.service-directory a {
  display: block;
  padding: 12px 0 12px 18px;
  margin-left: -1px;
  border-left: 2px solid var(--line);
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}
.service-directory a:hover { color: var(--accent); }
.service-directory a[aria-current="location"] { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.service-directory .directory-terms { margin-top: 24px; border-left-color: transparent; }
.service-detail { padding-block: 58px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.service-detail:first-child { padding-top: 41px; border-top: 0; }
.service-intro { margin-bottom: 28px; }
.detail-label { margin-bottom: 16px; color: var(--accent); font-size: 14px; line-height: 1.5; }
.service-intro h2 { margin-bottom: 20px; font-size: 42px; line-height: 1.13; letter-spacing: -.045em; }
.service-detail-primary h2 { font-size: 52px; }
.service-intro > p:last-child { max-width: 775px; font-size: 17px; color: var(--muted); line-height: 1.75; }
.offer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #f5f7f6; }
.service-offer { padding: 27px 28px 28px; }
.offer-grid .service-offer + .service-offer { border-left: 1px solid #dce5e1; }
.service-detail-primary .offer-grid { background: #edf3ef; border-top: 2px solid #548278; }
.service-offer h3, .offer-scope h3 { margin-bottom: 16px; font-size: 17px; font-weight: 600; line-height: 1.5; letter-spacing: -.015em; }
.offer-price { font-size: 30px; font-weight: 600; line-height: 1.25; letter-spacing: -.035em; }
.offer-price span { display: block; margin-top: 5px; font-size: 15px; font-weight: 400; line-height: 1.5; letter-spacing: 0; color: var(--muted); }
.offer-hours { margin-top: 12px; font-size: 16px; line-height: 1.5; color: #306259; }
.service-offer ul, .offer-scope ul { margin: 24px 0 0; padding-left: 17px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.service-offer li, .offer-scope li { padding-left: 4px; }
.service-offer li + li, .offer-scope li + li { margin-top: 11px; }
.service-offer li::marker, .offer-scope li::marker { font-size: .7em; color: #638077; }
.service-note { margin-top: 19px; font-size: 15px; line-height: 1.7; color: var(--muted); }
.single-offer { display: grid; grid-template-columns: minmax(230px, .85fr) 1.15fr; gap: 32px; align-items: start; }
.offer-summary { background: #f5f7f6; }
.offer-scope { padding-top: 3px; }
.offer-scope h3 { margin-bottom: 12px; }
.offer-scope ul { margin-top: 0; }
.billing-section { background: #eef3f0; padding-block: 66px; scroll-margin-top: 0; }
.billing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.billing-grid .eyebrow { margin-bottom: 23px; }
.billing-grid h2 { font-size: 44px; line-height: 1.15; letter-spacing: -.045em; }
.billing-lead { margin-top: 25px; font-size: 18px; line-height: 1.7; max-width: 435px; color: var(--muted); }
.billing-copy { padding-top: 4px; font-size: 17px; line-height: 1.8; color: var(--muted); }
.billing-copy p + p { margin-top: 19px; }
.billing-copy strong { font-weight: 550; color: var(--ink); white-space: nowrap; }
.pricing-contact { padding-block: 62px; display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.pricing-contact h2 { font-size: 48px; margin-bottom: 20px; }
.pricing-contact p { max-width: 610px; font-size: 17px; line-height: 1.75; color: var(--muted); }
.pricing-contact .button { flex-shrink: 0; gap: 35px; font-size: 15px; }
@media (max-width: 1150px) {
  .pricing-layout { grid-template-columns: 200px minmax(0, 1fr); gap: 34px; }
  .pricing-intro-bottom { gap: 30px; }
  .pricing-intro-bottom > p { max-width: 630px; }
  .service-offer { padding: 23px; }
  .offer-price { font-size: 28px; }
  .offer-grid .service-offer h3 { min-height: 51px; }
  .single-offer { grid-template-columns: 1fr 1.1fr; gap: 24px; }
  .billing-grid { gap: 50px; }
  .billing-grid h2 { font-size: 38px; }
}
@media (max-width: 970px) {
  .pricing-intro { padding-block: 48px 38px; }
  .pricing-intro-bottom { display: block; }
  .pricing-intro-bottom > p { max-width: 710px; }
  .pricing-intro-bottom .link { max-width: none; margin-top: 22px; }
  .pricing-layout { display: block; }
  .pricing-sidebar { padding: 0; }
  .service-directory { position: static; border-bottom: 1px solid var(--line); }
  .service-directory summary { display: flex; justify-content: space-between; align-items: center; padding-block: 20px; font-size: 16px; cursor: pointer; list-style: none; }
  .service-directory summary::-webkit-details-marker { display: none; }
  .service-directory summary::after { content: '+'; font-size: 25px; line-height: 1; font-weight: 400; color: var(--accent); }
  .service-directory[open] summary::after { content: '−'; }
  .service-directory nav { padding: 4px 0 22px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .directory-label { display: none; }
  .service-directory a { border-left: 0; padding: 12px 0; margin: 0; font-size: 16px; }
  .service-directory .directory-terms { margin: 0; }
  .service-offer { padding: 28px; }
  .offer-grid .service-offer h3 { min-height: 0; }
  .service-intro h2 { font-size: 40px; }
  .service-detail-primary h2 { font-size: 48px; }
  .single-offer { grid-template-columns: .9fr 1.1fr; gap: 32px; }
  .billing-grid { gap: 36px; }
  .billing-grid h2 { font-size: 34px; }
  .pricing-contact { gap: 35px; }
  .pricing-contact h2 { font-size: 42px; }
}
@media (max-width: 760px) {
  .pricing-intro { padding-block: 37px 30px; }
  .pricing-intro .eyebrow { margin-bottom: 21px; }
  .pricing-intro h1 { font-size: clamp(36px, 7vw, 48px); line-height: 1.13; }
  .pricing-intro h1 br { display: none; }
  .pricing-intro-bottom { margin-top: 23px; }
  .pricing-intro-bottom > p { font-size: 17px; line-height: 1.75; }
  .pricing-intro-bottom .link { font-size: 15px; gap: 16px; }
  .service-directory nav { grid-template-columns: 1fr; gap: 0; }
  .service-directory a { padding: 12px 0; }
  .service-detail, .service-detail:first-child { padding-block: 36px; scroll-margin-top: 0; }
  .service-intro { margin-bottom: 23px; }
  .detail-label { font-size: 14px; margin-bottom: 14px; }
  .service-intro h2, .service-detail-primary h2 { font-size: 35px; margin-bottom: 18px; }
  .service-detail-primary h2 { font-size: 43px; }
  .service-intro > p:last-child { font-size: 16px; line-height: 1.75; }
  .offer-grid { grid-template-columns: 1fr; }
  .service-offer { padding: 24px; }
  .offer-grid .service-offer + .service-offer { border-left: 0; border-top: 1px solid #dce5e1; }
  .service-offer h3, .offer-scope h3 { font-size: 17px; margin-bottom: 13px; }
  .offer-price { font-size: 30px; }
  .offer-price span { display: inline; margin-left: 6px; white-space: nowrap; }
  .offer-hours { margin-top: 10px; }
  .service-offer ul, .offer-scope ul { margin-top: 20px; }
  .single-offer { grid-template-columns: 1fr; gap: 25px; }
  .offer-scope { padding: 0; }
  .offer-scope ul { margin-top: 0; }
  .service-note { font-size: 15px; margin-top: 16px; }
  .billing-section { padding-block: 42px; }
  .billing-grid { grid-template-columns: 1fr; gap: 25px; }
  .billing-grid .eyebrow { margin-bottom: 18px; }
  .billing-grid h2 { font-size: 34px; }
  .billing-lead { font-size: 17px; margin-top: 21px; }
  .billing-copy { font-size: 16px; padding: 0; }
  .billing-copy p + p { margin-top: 17px; }
  .pricing-contact { padding-block: 43px; display: block; }
  .pricing-contact h2 { font-size: 40px; }
  .pricing-contact p { font-size: 16px; }
  .pricing-contact .button { margin-top: 24px; }
}
@media (max-width: 375px) {
  .pricing-intro h1 { font-size: 35px; }
  .service-intro h2 { font-size: 32px; }
  .service-offer { padding: 22px; }
  .offer-price span { display: block; margin: 5px 0 0; }
}
