/* Pricing layouts inherit the homepage brand and the Services hero/contact styles. */
.pricing-hero .services-hero-inner { min-height: 380px; }
.pricing-tagline { max-width: 470px; margin-top: 23px; font-size: 21px; line-height: 1.5; }
.plan-comparison { padding-block: 46px 30px; }
.pricing-page .section-intro .gold-rule { margin: 20px auto; }
.plan-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.plan-card { display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid var(--line); border-radius: 6px; padding: 28px 24px; }
.plan-icon { display: flex; align-items: center; justify-content: center; flex: none; width: 90px; height: 90px; border-radius: 50%; background: var(--cream); color: var(--forest); }
.plan-icon svg { width: 58%; height: 58%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.plan-card h3 { min-height: 60px; font-size: 27px; margin-top: 20px; }
.card-price { font-size: 21px; margin-top: 12px; }
.plan-card .gold-rule { margin: 20px auto; }
.plan-card-copy > p:last-child { max-width: 260px; margin: 0 auto 24px; }
.plan-card .button { margin-top: auto; width: 100%; gap: 12px; }
.button-outline { border-color: var(--gold); background: transparent; }
.button-outline:hover { background: var(--cream); }
.partnership-card { grid-column: 1 / -1; display: grid; grid-template-columns: 120px 1fr auto; gap: 30px; padding: 30px; text-align: left; background: linear-gradient(90deg, #233d2c 35%, #233d2ce8 70%, #233d2c55), url('assets/services-hero-960.webp') right center / cover; }
.partnership-card .plan-icon, .plan-partnership .plan-icon { color: var(--services-gold); background: transparent; border: 1px solid var(--services-gold); }
.partnership-card .plan-card-copy { border-left: 1px solid var(--gold); padding-left: 30px; }
.partnership-card h3 { min-height: 0; max-width: 440px; margin: 0; font-size: 31px; }
.partnership-card .gold-rule { margin: 16px 0; }
.partnership-card .plan-card-copy > p:last-child { max-width: none; margin: 0; }
.partnership-card .button { margin: 0; width: auto; }
.detail-intro { padding-block: 40px 30px; text-align: center; }
.detail-intro .eyebrow { font-size: 12px; color: #866331; margin-bottom: 12px; }
.detail-intro > p:last-child { margin-top: 16px; }
.plan-detail { padding-block: 44px; border-top: 1px solid var(--line); scroll-margin-top: 20px; }
.plan-detail:focus { outline: none; }
.plan-detail:focus-visible { outline: 2px solid var(--gold); outline-offset: -3px; }
.plan-heading { display: flex; gap: 25px; align-items: center; margin-bottom: 22px; }
.plan-heading > div { border-left: 1px solid var(--gold); padding-left: 25px; }
.plan-heading h2 { font-size: clamp(30px, 3vw, 39px); }
.plan-number { display: block; color: #866331; font-size: 14px; margin-bottom: 7px; letter-spacing: 1px; }
.plan-intro { max-width: 870px; font-size: 18px; }
.plan-eligibility { max-width: 870px; margin-top: 16px; padding-left: 18px; border-left: 2px solid var(--gold); }
.plan-body { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 42px; align-items: start; margin-top: 30px; }
.plan-sidebar { align-self: stretch; }
.plan-aside { position: sticky; top: 20px; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; background: var(--ivory); }
.plan-purchase { padding: 22px; }
.detail-price { font-size: 24px; line-height: 1.3; color: var(--ink); }
.plan-purchase .button { margin-top: 17px; width: 100%; padding-inline: 12px; gap: 12px; }
.plan-photo { width: 100%; height: 230px; object-fit: cover; object-position: 50% 65%; border-radius: 5px 5px 0 0; }
.plan-reverse .plan-body { grid-template-columns: minmax(0, 1fr) 290px; }
.plan-reverse .plan-sidebar { order: 2; }
.inclusions-label { font-weight: 600; margin-bottom: 20px; }
.inclusion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.inclusion-group h3 { font-size: 23px; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.inclusion-group ul { padding: 0; margin: 0; list-style: none; }
.inclusion-group li { position: relative; padding-left: 24px; margin-top: 10px; font-size: 16px; line-height: 1.55; }
.inclusion-group li::before { content: '✓'; position: absolute; left: 0; top: 3px; color: #866331; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; width: 15px; height: 15px; line-height: 14px; text-align: center; }
.group-note { font-size: 15px; margin-top: 15px; }
.plan-promise { border-left: 2px solid var(--gold); padding-left: 20px; margin-top: 28px; }
.plan-promise h3 { font-size: 23px; margin-bottom: 10px; }
.plan-note { margin-top: 26px; font-size: 16px; }
.back-to-plans { margin-top: 24px; }
.plan-featured { background: #f6f0e3; border-block: 1px solid var(--gold); }
.plan-partnership { margin-top: 22px; }
.plan-partnership .plan-number, .plan-partnership .inclusion-group li::before { color: var(--services-gold); }
.plan-partnership .plan-aside { background: var(--forest); border-color: #627454; }
.plan-partnership .detail-price { color: var(--ivory); }
.plan-partnership .inclusion-group h3 { border-color: #627454; }
.next-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.next-steps li { padding: 0 28px; }
.next-steps li + li { border-left: 1px solid var(--line); }
.next-steps h3 { margin-bottom: 12px; }
.next-steps p { font-size: 16px; }
.pricing-contact { text-align: left; padding-block: 44px; }
.pricing-contact p { max-width: 530px; }
@media (max-width: 1000px) {
  .plan-card { padding: 24px 16px; }
  .plan-card h3 { font-size: 24px; }
  .partnership-card { grid-template-columns: 90px 1fr; padding: 25px; gap: 24px; }
  .partnership-card .button { grid-column: 2; justify-self: start; }
  .plan-body { grid-template-columns: 250px minmax(0, 1fr); gap: 28px; }
  .plan-reverse .plan-body { grid-template-columns: minmax(0, 1fr) 250px; }
  .inclusion-grid { gap: 26px; }
}
@media (max-width: 800px) {
  .pricing-hero .services-hero-inner { min-height: 340px; }
  .plan-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partnership-card { grid-column: auto; display: flex; text-align: center; gap: 0; }
  .partnership-card .plan-card-copy { padding: 0; border: 0; }
  .partnership-card h3 { margin-top: 20px; }
  .partnership-card .gold-rule { margin: 20px auto; }
  .partnership-card .plan-card-copy > p:last-child { margin-bottom: 24px; }
  .partnership-card .button { margin-top: auto; width: 100%; }
  .plan-body, .plan-reverse .plan-body { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
  .plan-reverse .plan-sidebar { order: 0; }
  .plan-purchase { padding: 18px; }
  .inclusion-grid { grid-template-columns: 1fr; }
  .next-steps li { padding-inline: 18px; }
}
@media (max-width: 600px) {
  .pricing-hero .services-hero-inner { min-height: 400px; padding-bottom: 160px; }
  .pricing-hero .services-hero-picture { height: 220px; }
  .pricing-tagline { font-size: 18px; max-width: 340px; margin-top: 18px; }
  .plan-comparison { padding-top: 32px; }
  .plan-cards { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .plan-card { padding: 24px; }
  .plan-card h3 { min-height: 0; font-size: 27px; }
  .plan-card .button { max-width: 330px; }
  .plan-card-copy > p:last-child { max-width: 290px; }
  .detail-intro { padding-block: 25px 30px; }
  .plan-detail { padding-block: 30px; scroll-margin-top: 12px; }
  .plan-heading { gap: 16px; }
  .plan-heading .plan-icon { width: 64px; height: 64px; }
  .plan-heading > div { padding-left: 16px; }
  .plan-heading h2 { font-size: 28px; }
  .plan-intro { font-size: 16px; }
  .plan-body, .plan-reverse .plan-body { display: block; margin-top: 22px; }
  .plan-sidebar { display: contents; }
  .plan-aside { top: 0; z-index: 3; margin-bottom: 24px; box-shadow: 0 4px 12px #233d2c0d; }
  .plan-purchase { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .detail-price { flex: 1; font-size: 18px; }
  .plan-purchase .button { margin: 0; width: auto; max-width: 58%; min-height: 46px; font-size: 12px; padding: 10px 12px; gap: 8px; }
  .plan-photo { display: none; }
  .plan-inclusions { padding-inline: 2px; }
  .inclusion-grid { gap: 28px; }
  .inclusion-group h3 { font-size: 24px; }
  .next-steps { grid-template-columns: 1fr; gap: 24px; }
  .next-steps li { padding: 0; }
  .next-steps li + li { border-left: 0; border-top: 1px solid var(--line); padding-top: 24px; }
  .pricing-contact p { margin-inline: 0; font-size: 17px; }
}
