/* SIBISI benefit catalogue and package detail pages. */
.benefit-catalogue { padding: 75px 0 40px; color: #453c4b; }
.benefit-catalogue .benefit-intro { max-width: 650px; margin: 18px auto 0; font-size: 17px; font-weight: 400; color: #62596a; }
.benefit-eyebrow { margin: 0 0 10px; color: #78571f; font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.benefit-jump { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 0 0 46px; }
.benefit-jump a { padding: 12px 22px; border: 1px solid #d9ccdf; border-radius: 4px; }
.benefit-jump a:hover { background: #3c2454; color: #fff; }
.benefit-group { scroll-margin-top: 100px; margin-bottom: 60px; }
.benefit-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 24px; }
.benefit-group-heading h2 { margin: 0; color: #3c2454; font-size: 34px; font-weight: 800; }
.benefit-group-heading > p { max-width: 360px; margin: 0; }
.benefit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.benefit-card { border: 1px solid #e3dce7; border-radius: 6px; overflow: hidden; background: #fff; }
.benefit-photo { position: relative; display: block; overflow: hidden; }
.benefit-photo img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform .3s; }
.benefit-photo:hover img { transform: scale(1.025); }
.benefit-photo-label { position: absolute; bottom: 16px; left: 20px; background: #3c2454; color: #fff; padding: 7px 13px; border-left: 3px solid #ecc470; font-size: 13px; }
.benefit-card-body { padding: 26px; }
.benefit-card h3 { font-size: 27px; font-weight: 800; line-height: 1.25; }
.benefit-card h3 a { font-weight: inherit; }
.benefit-card-body > p:not(.benefit-eyebrow) { min-height: 48px; }
.benefit-card-facts { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; padding: 16px 0; border-top: 1px solid #ece6ee; margin-top: 22px; font-size: 13px; }
.benefit-card-facts strong { color: #3c2454; font-size: 29px; }
.benefit-link { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #ece6ee; padding-top: 16px; font-weight: 800; }
.benefit-link span { font-size: 25px; line-height: 1; }
.benefit-caption { font-size: 13px; margin: 16px 0 0; color: #68616d; max-width: 900px; }
.benefit-help { padding: 32px; border-left: 4px solid #c69a48; background: #f6f2f7; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.benefit-help h2 { font-size: 26px; color: #3c2454; font-weight: 800; }
.benefit-help p { margin: 0; }
.benefit-help .btn { flex-shrink: 0; }
.package-page { color: #453c4b; }
.package-detail .navbar { background: #fff !important; }
.package-detail .navbar-light .navbar-nav .nav-link { color: #453c4b; }
.package-detail .navbar-light .navbar-nav .nav-link:hover, .package-detail .navbar-light .navbar-nav .nav-link.active { color: #3c2454; }
.package-detail .navbar-light .navbar-nav .nav-link.active { text-decoration: underline; text-underline-offset: 6px; }
.package-hero { background: #f6f2f7; padding: 122px 0 62px; }
.package-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; margin-bottom: 34px; }
.package-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; }
.package-heading h1 { color: #3c2454; font-size: clamp(36px,4vw,54px); line-height: 1.08; font-weight: 800; margin-bottom: 22px; }
.package-heading h1 span { display: block; }
.package-lead { line-height: 1.8; font-size: 17px; }
.package-price { margin: 23px 0; }
.package-price strong { color: #3c2454; font-size: 36px; font-family: 'Nunito', sans-serif; }
.package-compare { display: block; margin-top: 19px; }
.package-figure { margin: 0; }
.package-figure img { display: block; width: 100%; height: auto; border-radius: 6px; border-bottom: 5px solid #c69a48; }
.package-figure figcaption { margin-top: 12px; font-size: 12px; line-height: 1.6; color: #68616d; }
.package-body { padding: 0 0 30px; }
.package-facts { margin: 0 0 64px; padding: 30px 0; display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid #e3dce7; }
.package-facts div { padding: 0 22px; border-right: 1px solid #e3dce7; }
.package-facts div:first-child { padding-left: 0; }
.package-facts div:last-child { border: 0; }
.package-facts dt { font-size: 12px; font-weight: 400; margin-bottom: 8px; }
.package-facts dd { font-size: 26px; color: #3c2454; font-family: 'Nunito', sans-serif; font-weight: 800; margin: 0; }
.package-content-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: 64px; align-items: start; }
.package-body h2 { font-size: 32px; color: #3c2454; font-weight: 800; }
.package-body h3 { margin: 30px 0 14px; font-size: 24px; color: #3c2454; font-weight: 800; }
.package-body p { line-height: 1.85; }
.package-inventory { margin: 26px 0; border-top: 1px solid #e3dce7; }
.package-inventory section { border-bottom: 1px solid #e3dce7; padding: 19px 0; }
.package-inventory h4 { font-size: 18px; font-weight: 800; color: #3c2454; }
.package-inventory p { margin: 0; font-size: 15px; }
.package-summary { background: #3c2454; color: #fff; padding: 30px; border-top: 5px solid #c69a48; border-radius: 4px; }
.package-summary .benefit-eyebrow, .package-summary h2 { color: #ecc470; }
.package-summary h2 { font-size: 27px; }
.package-summary dl { margin: 24px 0; }
.package-summary dl div { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 14px 0; border-bottom: 1px solid #665276; }
.package-summary dt { font-size: 13px; font-weight: 400; }
.package-summary dd { margin: 0; text-align: right; font-weight: 700; flex-shrink: 0; }
.package-summary > p:not(.benefit-eyebrow) { font-size: 13px; color: #eee7f1; }
.package-summary .btn.custom-btn { color: #2c1840; background: #ecc470; border-color: #ecc470; display: block; padding-left: 10px; padding-right: 10px; }
.package-summary .btn:hover { background: #fff; border-color: #fff; }
.package-faq { max-width: 820px; padding: 64px 0; }
.package-faq details { border-bottom: 1px solid #e3dce7; padding: 19px 0; }
.package-faq summary { color: #3c2454; font-size: 18px; font-weight: 700; cursor: pointer; }
.package-faq details p { margin: 16px 0 0; }
.package-alternatives { padding: 32px; background: #f6f2f7; }
.package-alternatives h2 { font-size: 26px; margin-bottom: 22px; }
.package-alternative-grid { display: grid; gap: 12px; }
.package-alternative-grid > a { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 18px; background: #fff; border-left: 3px solid #c69a48; }
.benefit-catalogue a:focus-visible, .package-page a:focus-visible, .package-page summary:focus-visible { outline: 3px solid #c69a48; outline-offset: 4px; }
@media (max-width: 991px) {
 .package-hero { padding-top: 45px; }
 .package-hero-grid { gap: 30px; }
 .package-content-grid { gap: 30px; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); }
 .package-summary { padding: 22px; }
 .benefit-card-body { padding: 22px; }
 .benefit-card h3 { font-size: 24px; }
}
@media (max-width: 767px) {
 .benefit-catalogue { padding-top: 45px; }
 .benefit-grid, .package-hero-grid, .package-content-grid { grid-template-columns: 1fr; }
 .benefit-group-heading, .benefit-help { display: block; }
 .benefit-group-heading > p { margin-top: 12px; }
 .benefit-help .btn { margin-top: 20px; }
 .benefit-group { margin-bottom: 42px; }
 .benefit-card-body > p:not(.benefit-eyebrow) { min-height: 0; }
 .package-hero { padding: 28px 0 35px; }
 .package-facts { grid-template-columns: repeat(2,1fr); row-gap: 25px; margin-bottom: 35px; }
 .package-facts div:nth-child(odd) { padding-left: 0; }
 .package-facts div:nth-child(even) { border-right: 0; }
 .package-facts dd { font-size: 24px; }
 .package-faq { padding: 40px 0; }
 .package-body h2 { font-size: 28px; }
 .package-alternatives { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) { .benefit-photo img { transition: none; } }
