:root {
    --package-navy: #292255;
    --package-purple: #57017F;
    --package-red: #f61408;
    --package-muted: #667085;
    --package-border: #e6e7ec;
    --package-soft: #f8f7fb;
}

.gbp-package-page .service-reference-hero { padding-bottom: 72px; }
.package-health-panel { margin-top: -20px; position: relative; z-index: 3; }
.package-health-card { padding: 28px 32px; border-radius: 18px; background: #fff; border: 1px solid var(--package-border); box-shadow: 0 16px 42px rgba(41,34,85,.1); }
.package-health-card h2 { font-size: 1.45rem; margin-bottom: 8px; }
.package-health-card p { margin-bottom: 0; }

.package-pricing-section { background: var(--package-soft); }
.package-pricing-section .service-section-heading { max-width: 820px; margin-bottom: 38px; }

.package-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.package-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: 30px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid var(--package-border);
    box-shadow: 0 12px 32px rgba(41,34,85,.06);
    overflow: hidden;
}
.package-card.is-featured {
    border: 2px solid var(--package-purple);
    box-shadow: 0 18px 45px rgba(87,1,127,.13);
}
.package-featured-flag {
    position: absolute;
    top: 0;
    right: 0;
    padding: 8px 15px;
    border-radius: 0 18px 0 14px;
    background: var(--package-purple);
    color: #fff;
    font-size: .7rem;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.package-card-head { min-height: 154px; padding-right: 4px; }
.package-card.is-featured .package-card-head { padding-right: 76px; }
.package-badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 6px 10px;
    margin-bottom: 14px;
    border-radius: 20px;
    background: rgba(87,1,127,.08);
    color: var(--package-purple);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.package-card.is-featured .package-badge { background: rgba(87,1,127,.09); color: var(--package-purple); }
.package-card h3 { margin: 0 0 10px; color: var(--package-navy); font-size: 1.5rem; line-height: 1.2; }
.package-best-for { margin: 0; color: var(--package-muted); font-size: .9rem; line-height: 1.65; }

.package-price-block {
    padding: 20px 0 21px;
    margin: 4px 0 22px;
    border-top: 1px solid #eff0f4;
    border-bottom: 1px solid #eff0f4;
}
.package-price { margin: 0; color: var(--package-navy); font-size: 2.45rem; line-height: 1; font-weight: 800; }
.package-price small { margin-left: 4px; font-size: .88rem; color: var(--package-muted); font-weight: 600; }
.package-price-note { display: block; margin-top: 7px; color: #8a90a0; font-size: .76rem; }

.package-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 24px;
}
.package-fact {
    min-width: 0;
    padding: 12px 9px;
    border-radius: 11px;
    background: #faf9fc;
    border: 1px solid #efedf4;
    text-align: center;
}
.package-fact-label { display: block; margin-bottom: 5px; color: #8a90a0; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.package-fact strong { display: block; color: var(--package-navy); font-size: .8rem; line-height: 1.35; overflow-wrap: anywhere; }

.package-inclusions { margin-bottom: 24px; }
.package-inclusions h4 { margin: 0 0 11px; color: var(--package-navy); font-size: .93rem; font-weight: 800; }
.package-inclusions ul { list-style: none; margin: 0; padding: 0; }
.package-inclusions li { position: relative; padding: 6px 0 6px 23px; color: #4f566b; font-size: .87rem; line-height: 1.48; }
.package-inclusions li:before { content: "✓"; position: absolute; left: 0; top: 6px; color: var(--package-purple); font-weight: 800; }
.package-more { margin-top: 8px; padding-top: 8px; border-top: 1px solid #eff0f4; }
.package-more summary { cursor: pointer; color: var(--package-purple); font-size: .82rem; font-weight: 700; list-style: none; }
.package-more summary::-webkit-details-marker { display: none; }
.package-more summary:after { content: "+"; float: right; font-size: 1rem; line-height: 1; }
.package-more[open] summary:after { content: "−"; }
.package-more ul { margin-top: 9px; }

.package-card-actions { margin-top: auto; padding-top: 4px; display: flex; flex-direction: column; gap: 10px; }
.package-card-actions .btn { width: 100%; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
.package-card-actions .package-direct-link { text-align: center; font-size: .8rem; color: var(--package-muted); text-decoration: none; }
.package-card-actions .package-direct-link strong { color: var(--package-purple); text-decoration: underline; }
.package-card-actions .package-direct-link:hover,
.package-card-actions .package-direct-link:hover strong { color: var(--package-red); }

.package-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 930px;
    margin: 30px auto 0;
    padding: 16px 18px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--package-border);
    color: var(--package-muted);
}
.package-disclaimer > span { margin-top: 3px; color: var(--package-purple); }
.package-disclaimer p { margin: 0; font-size: .83rem; line-height: 1.55; }
.package-disclaimer strong { color: var(--package-navy); }

.package-comparison-wrap { overflow-x: auto; border: 1px solid var(--package-border); border-radius: 16px; background: #fff; box-shadow: 0 10px 28px rgba(41,34,85,.045); }
.package-comparison { min-width: 760px; margin: 0; }
.package-comparison th, .package-comparison td { padding: 16px 18px; border-color: var(--package-border); vertical-align: middle; }
.package-comparison thead th { color: var(--package-navy); background: #f9f9fb; text-align: center; }
.package-comparison thead th:first-child { text-align: left; }
.package-comparison thead th span { display: block; font-weight: 800; }
.package-comparison thead th small { display: block; margin-top: 4px; color: var(--package-muted); font-weight: 600; }
.package-comparison tbody th { color: var(--package-navy); font-weight: 700; background: #fff; }
.package-comparison tbody td { text-align: center; }
.package-comparison-featured { background: rgba(87,1,127,.065) !important; }
.package-comparison tbody td:nth-child(3) { background: rgba(87,1,127,.025); }
.package-yes { color: var(--package-purple); font-weight: 700; }

.package-subscription-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.package-subscription-step { padding: 26px; border-radius: 15px; border: 1px solid var(--package-border); background: #fff; }
.package-subscription-step > span { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; margin-bottom: 18px; background: var(--package-navy); color: #fff; font-weight: 800; }
.package-subscription-step h3 { font-size: 1.05rem; margin-bottom: 8px; }
.package-subscription-step p { margin: 0; font-size: .9rem; }

.service-package-check-hero { padding-bottom: 70px; }
.package-check-summary { padding: 30px; border-radius: 18px; background: #fff; box-shadow: 0 16px 44px rgba(41,34,85,.12); border: 1px solid rgba(87,1,127,.1); }
.package-check-label { display: block; margin-bottom: 7px; color: var(--package-purple); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.package-check-summary strong { display: block; color: var(--package-navy); font-size: 1.5rem; }
.package-check-price { margin: 9px 0 12px; color: var(--package-navy); font-size: 2.25rem; font-weight: 800; }
.package-check-price small { font-size: .85rem; color: var(--package-muted); }
.package-check-form-card { padding: 38px; border: 1px solid var(--package-border); border-radius: 18px; background: #fff; box-shadow: 0 16px 40px rgba(41,34,85,.07); }
.package-check-form-intro { max-width: 700px; margin-bottom: 28px; }
.package-plan-selector { margin-bottom: 18px; }
.package-form-label { display: block; margin-bottom: 10px; color: var(--package-navy); font-weight: 700; }
.package-plan-radio { display: block; height: 100%; padding: 16px; border: 1px solid var(--package-border); border-radius: 12px; cursor: pointer; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.package-plan-radio input { margin-right: 6px; }
.package-plan-radio-name { display: block; margin-top: 7px; color: var(--package-navy); font-weight: 800; }
.package-plan-radio.is-selected { border-color: var(--package-purple); background: rgba(87,1,127,.035); box-shadow: 0 0 0 3px rgba(87,1,127,.07); }
.package-check-form .form-control { min-height: 46px; border-radius: 9px; border-color: #d8dbe3; }
.package-check-form textarea.form-control { min-height: 110px; }
.package-check-form label { color: var(--package-navy); font-weight: 600; font-size: .9rem; }
.package-check-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 12px; padding-top: 24px; border-top: 1px solid var(--package-border); }
.package-check-submit-row p { color: var(--package-muted); font-size: .86rem; }
.package-success-alert { margin: 0; border-radius: 0; text-align: center; }

@media (max-width: 1100px) {
    .package-grid { grid-template-columns: 1fr; max-width: 720px; margin-left: auto; margin-right: auto; }
    .package-card-head { min-height: 0; }
    .package-card.is-featured .package-card-head { padding-right: 86px; }
    .package-subscription-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
    .package-health-card { padding: 24px; }
    .package-card { padding: 24px 20px; border-radius: 16px; }
    .package-featured-flag { position: static; align-self: flex-start; margin: -4px 0 13px; border-radius: 18px; }
    .package-card.is-featured .package-card-head { padding-right: 0; }
    .package-price { font-size: 2.15rem; }
    .package-facts { grid-template-columns: 1fr; }
    .package-fact { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; }
    .package-fact-label { margin: 0; }
    .package-fact strong { text-align: right; }
    .package-subscription-steps { grid-template-columns: 1fr; }
    .package-check-form-card { padding: 25px 20px; }
    .package-check-submit-row { align-items: stretch; flex-direction: column; }
    .package-check-submit-row .btn { width: 100%; }
    .package-disclaimer { padding: 14px; }
}
