/* Approved pricing delta: reuse MAI typography, colour and editorial geometry. */
.packages-section { scroll-margin-top: 24px; }
.packages-hero { padding-bottom: 48px; }
.packages-hero h1 { max-width: 19ch; }
.packages-positioning { font-size: 24px; line-height: 1.35; }
.packages-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.packages-disclosure { padding-block: 28px; border-block: 1px solid var(--decorativeRule); }
.packages-disclosure p { max-width: 95ch; margin: 0; font-size: 16px; }
.packages-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.packages-card { border-top: 2px solid var(--decorativeRule); padding: 28px; background: var(--white); }
.packages-card.packages-featured { border-top-color: var(--actionBlue); background: var(--softSurface); }
.packages-card h3 { font-weight: 600; }
.packages-label { font-size: 15px; color: var(--mutedText); }
.mai-site .packages-price { font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: -.6px; margin-bottom: 12px; }
.mai-site .packages-unit { font-size: 15px; line-height: 1.5; color: var(--mutedText); margin-bottom: 24px; }
.packages-boundary { padding-top: 20px; border-top: 1px solid var(--decorativeRule); font-size: 16px; }
.packages-table { width: 100%; border-collapse: collapse; font-size: 17px; }
.packages-table th,.packages-table td { text-align: left; vertical-align: top; padding: 20px 24px 20px 0; border-bottom: 1px solid var(--decorativeRule); }
.packages-table th { width: 30%; font-weight: 600; }
.packages-table thead th { color: var(--actionBlue); font-size: 14px; }
.packages-after { margin-top: 40px; max-width: 80ch; }
.packages-after h3 { margin-top: 32px; }
.packages-care { background: var(--softSurface); border-left: 4px solid var(--teal); }
.packages-inclusions { padding-left: 24px; max-width: 65ch; margin: 24px 0 32px; }
.packages-inclusions li { padding: 6px 0; }
.packages-faq { max-width: 900px; }
.packages-faq details { border-top: 1px solid var(--decorativeRule); padding: 24px 0; }
.packages-faq details:last-child { border-bottom: 1px solid var(--decorativeRule); }
.packages-faq summary { list-style: none; cursor: pointer; min-height: 44px; display: flex; justify-content: space-between; gap: 24px; font-size: 22px; line-height: 1.3; font-weight: 500; }
.packages-faq summary::after { content: '+'; flex: 0 0 auto; color: var(--actionBlue); }
.packages-faq details[open] summary::after { content: '−'; }
.packages-faq details p { margin-top: 24px; margin-bottom: 0; }
.mai-pricing-snippet { border-top: 1px solid var(--decorativeRule); padding-block: 48px; background: var(--softSurface); }
.mai-pricing-snippet .container > p:not(.eyebrow):not(.packages-unit) { font-size: 22px; line-height: 1.4; }
@media (max-width: 700px) {
    .packages-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .packages-card { padding: 24px 16px; }
    .mai-site .packages-price { font-size: 27px; }
    .packages-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .packages-table tbody,.packages-table tr,.packages-table th,.packages-table td { display: block; width: 100%; }
    .packages-table tbody th { border-bottom: 0; padding: 20px 0 8px; }
    .packages-table td { padding: 0 0 20px; }
    .packages-faq summary { font-size: 20px; }
    .packages-positioning { font-size: 21px; }
}
