.btw-packages { overflow: hidden; color: var(--willow-ink); background: #fff; }
.btw-packages *, .btw-packages *::before, .btw-packages *::after,
.addon-footer *, .willow-modal *, .willow-modal *::before, .willow-modal *::after { box-sizing: border-box; }
.btw-packages.has-purchase-dock { padding-bottom: 112px; }

.packages-hero { position: relative; padding: 92px 0 88px; overflow: hidden; text-align: center; background: linear-gradient(135deg, #f9fcfd 0%, #eaf6fb 100%); }
.packages-hero::before, .packages-hero::after { position: absolute; border-radius: 50%; content: ""; pointer-events: none; }
.packages-hero::before { width: 420px; height: 420px; top: -270px; left: -130px; border: 1px solid rgba(20,140,203,.12); box-shadow: 0 0 0 70px rgba(20,140,203,.025), 0 0 0 140px rgba(20,140,203,.018); }
.packages-hero::after { width: 320px; height: 320px; right: -145px; bottom: -225px; background: rgba(255,255,255,.45); }
.packages-hero__inner { position: relative; z-index: 1; }
.packages-hero h1 { max-width: 890px; margin: 0 auto 24px; color: var(--willow-navy); font-size: clamp(52px, 6.3vw, 78px); line-height: .99; letter-spacing: -.055em; }
.packages-hero h1 br { display: block !important; }
.packages-hero__lead { max-width: 760px; margin: 0 auto; color: #526a7e; font-size: 18px; line-height: 1.7; }
.packages-hero__trust { margin-top: 34px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.packages-hero__trust span { padding: 10px 15px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #d2e5ee; border-radius: 999px; color: var(--willow-navy); background: rgba(255,255,255,.78); font-size: 12px; font-weight: 700; }
.packages-hero__trust i { color: var(--willow-blue-dark); }

.packages-plans { background: #fff; }
.packages-section-heading { margin-bottom: 44px; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.7fr); gap: 50px; align-items: end; }
.packages-section-heading h2, .packages-extras__heading h2, .packages-reassurance h2 { margin: 0; color: var(--willow-navy); font-size: clamp(36px, 4.3vw, 54px); line-height: 1.06; letter-spacing: -.04em; }
.packages-section-heading > p { margin: 0 0 4px; color: var(--willow-muted); font-size: 15px; line-height: 1.7; }
.packages-primary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: stretch; }

.willow-price-card { min-width: 0; padding: 34px; display: flex; flex-direction: column; border: 1px solid #cbdde7; border-radius: 14px; background: #fff; box-shadow: 0 14px 40px rgba(17,47,79,.07); }
.willow-price-card--featured { border-color: #78bad8; background: linear-gradient(150deg, #fff 0%, #f1f9fd 100%); box-shadow: 0 18px 46px rgba(10,104,150,.13); }
.willow-price-card.is-selected, .willow-addon-card.is-selected { border-color: var(--willow-blue); box-shadow: 0 0 0 3px rgba(20,140,203,.09), 0 18px 46px rgba(10,104,150,.12); }
.willow-price-card__topline, .willow-addon-card__header { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.willow-price-card__type { color: var(--willow-blue-dark); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.willow-status { padding: 7px 11px; display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; color: #647888; background: #edf3f6; font-size: 11px; font-weight: 800; white-space: nowrap; }
.willow-status i { color: #8fa1ad; font-size: 6px; }
.willow-status--included, .willow-status--selected { color: #10705e; background: #e5f7ef; }
.willow-status--included i, .willow-status--selected i { color: #159176; }
.willow-price-card__title { margin-top: 31px; display: flex; align-items: center; gap: 18px; }
.willow-price-card__title > img { width: 72px; height: 72px; flex: 0 0 72px; object-fit: contain; }
.willow-price-card__review-icon { width: 64px; height: 64px; display: grid; flex: 0 0 64px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--willow-blue-dark), var(--willow-blue)); font-size: 27px; box-shadow: 0 10px 24px rgba(20,140,203,.2); }
.willow-price-card h3, .willow-addon-card h3 { margin: 0; color: var(--willow-navy); font-size: 26px; line-height: 1.15; letter-spacing: -.025em; }
.willow-price-card__title p { margin: 5px 0 0; color: var(--willow-muted); font-size: 13px; line-height: 1.5; }
.willow-price-card__price { margin: 28px 0 24px; padding: 23px 0; display: flex; align-items: baseline; gap: 12px; border-top: 1px solid #dbe8ee; border-bottom: 1px solid #dbe8ee; }
.willow-price-card__price strong { color: var(--willow-navy); font-size: 38px; line-height: 1; letter-spacing: -.04em; }
.willow-price-card__price span { color: var(--willow-muted); font-size: 12px; }
.willow-price-card__description, .willow-addon-card__description { color: var(--willow-muted); font-size: 14px; line-height: 1.65; }
.willow-price-card__description p, .willow-addon-card__description p { margin: 0 0 12px; }
.willow-price-card__description ul, .willow-addon-card__description ul { margin: 0; padding: 0; list-style: none; }
.willow-price-card__description li, .willow-addon-card__description li { position: relative; margin: 10px 0; padding-left: 25px; }
.willow-price-card__description li::before, .willow-addon-card__description li::before { position: absolute; top: 1px; left: 0; color: var(--willow-blue-dark); font-family: "Font Awesome 5 Pro"; font-weight: 400; content: "\f00c"; }
.willow-price-card__action, .willow-price-card__buttons { margin-top: auto; padding-top: 28px; }
.willow-price-card__action--included { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid #bad6e3; border-radius: 999px; color: var(--willow-navy); background: #f3f9fc; font-size: 13px; font-weight: 800; }
.willow-price-card__buttons { display: grid; gap: 9px; }

.willow-btn { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 2px solid transparent; border-radius: 999px; cursor: pointer; font-size: 13px; font-weight: 800; line-height: 1.2; text-align: center; transition: transform .2s, border-color .2s, background .2s, color .2s, box-shadow .2s; }
.willow-btn:hover { transform: translateY(-2px); }
.willow-btn--primary { border-color: var(--willow-blue); color: #fff; background: var(--willow-blue); box-shadow: 0 10px 22px rgba(20,140,203,.17); }
.willow-btn--primary:hover { border-color: var(--willow-blue-dark); color: #fff; background: var(--willow-blue-dark); }
.willow-btn--outline { width: 100%; border-color: #9bc9dd; color: var(--willow-blue-dark); background: #fff; }
.willow-btn--outline:hover { border-color: var(--willow-blue-dark); color: #fff; background: var(--willow-blue-dark); }
.willow-btn--quiet { border-color: transparent; color: var(--willow-blue-dark); background: transparent; box-shadow: none; }
.willow-btn--quiet:hover { color: var(--willow-navy); background: #e7f4fa; }

.packages-extras { padding: 90px 0; background: var(--willow-pale); }
.packages-extras__heading { max-width: 770px; margin: 0 auto 43px; text-align: center; }
.packages-extras__heading > p:last-child { max-width: 650px; margin: 17px auto 0; color: var(--willow-muted); font-size: 15px; line-height: 1.65; }
.packages-addon-grid { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.willow-addon-card { min-width: 0; padding: 30px; display: flex; flex-direction: column; border: 1px solid #c6dce7; border-radius: 13px; background: #fff; box-shadow: 0 12px 34px rgba(17,47,79,.065); }
.willow-addon-card__icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: var(--willow-pale); font-size: 24px; }
.willow-addon-card h3 { margin-top: 24px; }
.willow-addon-card__description { min-height: 98px; margin-top: 15px; }
.willow-addon-card__price { margin-top: auto; padding: 24px 0 19px; display: flex; align-items: baseline; gap: 6px; }
.willow-addon-card__price strong { color: var(--willow-navy); font-size: 32px; letter-spacing: -.04em; }
.willow-addon-card__price span { color: var(--willow-muted); font-size: 13px; }
.willow-addon-card__actions { display: grid; gap: 11px; }
.willow-text-button { justify-self: start; padding: 0; border: 0; color: var(--willow-blue-dark); background: transparent; font-size: 12px; font-weight: 800; }
.willow-text-button:hover { color: var(--willow-navy); }

.packages-reassurance { padding: 62px 0; background: linear-gradient(110deg, #07557b, #087eaf); }
.packages-reassurance__inner { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: center; }
.packages-reassurance .btw-kicker { color: #bde7fa; }
.packages-reassurance h2 { max-width: 680px; color: #fff; font-size: clamp(34px, 4vw, 48px); }
.packages-reassurance__points { display: grid; gap: 11px; color: #fff; font-size: 13px; font-weight: 700; }
.packages-reassurance__points span { display: flex; align-items: center; gap: 9px; }
.packages-reassurance__points i { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #096991; background: #fff; font-size: 10px; }

.addon-footer { position: fixed; right: 0; bottom: 0; left: 0; z-index: 9999; border-top: 1px solid #c9dfe9; background: rgba(255,255,255,.96); box-shadow: 0 -10px 36px rgba(17,47,79,.13); backdrop-filter: blur(14px); }
.addon-footer__inner { min-height: 96px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 30px; align-items: center; }
.addon-footer__selection { min-width: 0; }
.addon-footer__label { display: block; margin-bottom: 7px; color: var(--willow-muted); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.addon-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.addon-chip { padding: 7px 11px; border-radius: 999px; color: var(--willow-blue-dark); background: #e6f4fa; font-size: 11px; font-weight: 800; }
.addon-chip--muted { color: #657b8b; background: #eef3f5; }
.addon-footer__total { min-width: 130px; padding-left: 28px; border-left: 1px solid #d7e5eb; }
.addon-footer__total span, .addon-footer__total strong { display: block; }
.addon-footer__total span { color: var(--willow-muted); font-size: 11px; }
.addon-footer__total strong { margin-top: 2px; color: var(--willow-navy); font-size: 22px; }
.addon-footer__form { margin: 0; }
.addon-footer__form .willow-btn { min-width: 225px; }
.addon-footer__form .willow-checkout-btn {
    position: relative;
    overflow: hidden;
    border: 2px solid var(--willow-blue) !important;
    color: #fff !important;
    background: var(--willow-blue) !important;
    box-shadow: 0 10px 22px rgba(20,140,203,.2);
}
.addon-footer__form .willow-checkout-btn::before,
.addon-footer__form .willow-checkout-btn::after { display: none; content: none; }
.addon-footer__form .willow-checkout-btn:hover,
.addon-footer__form .willow-checkout-btn:focus,
.addon-footer__form .willow-checkout-btn:focus-visible,
.addon-footer__form .willow-checkout-btn:active {
    border-color: var(--willow-blue-dark) !important;
    color: #fff !important;
    background: var(--willow-blue-dark) !important;
    box-shadow: 0 12px 26px rgba(8,105,145,.24);
}
.addon-footer__form .willow-checkout-btn i { color: inherit; }

.willow-modal .modal-dialog { max-width: 620px; }
.willow-modal--info .modal-dialog { max-width: 760px; }
.willow-modal .modal-content { overflow: hidden; border: 1px solid #bdd8e5; border-radius: 14px; box-shadow: 0 24px 70px rgba(17,47,79,.24); }
.willow-modal .modal-header { position: relative; padding: 27px 65px 25px 28px; display: flex; align-items: center; gap: 15px; border-bottom: 1px solid #d8e7ee; background: linear-gradient(120deg, #fafdff, #eaf6fb); }
.willow-modal .modal-header .btn-close { position: absolute; top: 25px; right: 24px; margin: 0; }
.willow-modal__icon { width: 48px; height: 48px; display: grid; flex: 0 0 48px; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: #dff1fa; font-size: 20px; }
.willow-modal .btw-kicker { margin-bottom: 4px; }
.willow-modal .modal-title { margin: 0; color: var(--willow-navy); font-size: 22px; line-height: 1.25; }
.willow-modal .modal-body { max-height: 430px; padding: 28px; overflow-y: auto; color: var(--willow-muted); font-size: 14px; line-height: 1.7; }
.willow-modal__note { margin: 19px 0; padding: 15px; display: grid; grid-template-columns: 30px 1fr; gap: 10px; border-radius: 9px; color: var(--willow-navy); background: var(--willow-pale); font-size: 13px; line-height: 1.55; }
.willow-modal__note i { color: var(--willow-blue-dark); font-size: 20px; }
.willow-modal .modal-footer { padding: 18px 28px 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; border-top: 0; }

@media (max-width: 960px) {
    .packages-section-heading { grid-template-columns: 1fr; gap: 18px; }
    .packages-primary-grid, .packages-addon-grid { grid-template-columns: 1fr; }
    .packages-reassurance__inner { grid-template-columns: 1fr; gap: 28px; }
    .addon-footer__inner { padding-top: 15px; padding-bottom: 15px; grid-template-columns: minmax(0,1fr) auto; }
    .addon-footer__form { grid-column: 1 / -1; }
    .addon-footer__form .willow-btn { width: 100%; }
    .btw-packages.has-purchase-dock { padding-bottom: 172px; }
}

@media (max-width: 680px) {
    .packages-hero { padding: 72px 0 65px; }
    .packages-hero h1 { font-size: 47px; }
    .packages-hero__lead { font-size: 16px; }
    .packages-hero__trust { align-items: stretch; flex-direction: column; }
    .packages-hero__trust span { justify-content: center; }
    .packages-plans { padding: 68px 0; }
    .willow-price-card, .willow-addon-card { padding: 24px; }
    .willow-price-card__topline { align-items: flex-start; }
    .willow-price-card__title { align-items: flex-start; }
    .willow-price-card__title > img { width: 59px; height: 59px; flex-basis: 59px; }
    .willow-price-card h3, .willow-addon-card h3 { font-size: 23px; }
    .willow-price-card__price { align-items: flex-start; flex-direction: column; }
    .packages-extras { padding: 68px 0; }
    .packages-reassurance { padding: 54px 0; }
    .addon-footer__inner { grid-template-columns: 1fr auto; gap: 13px; }
    .addon-footer__selection { grid-column: 1 / -1; }
    .addon-footer__total { padding-left: 0; border-left: 0; }
    .addon-footer__form { grid-column: auto; }
    .addon-footer__form .willow-btn { min-width: 0; padding: 0 18px; }
    .btw-packages.has-purchase-dock { padding-bottom: 178px; }
    .willow-modal .modal-header { align-items: flex-start; }
    .willow-modal .modal-footer { grid-template-columns: 1fr; }
}
