/* Packages page: scoped styles preserve the shared site layout. */
.packages-page .banner h1 { font-size: clamp(36px, 4vw, 60px); font-weight: 700; }
.packages-page .heading { max-width: 880px; margin-inline: auto; }
.packages-page .heading h2 { font-size: clamp(30px, 3vw, 46px); }
.packages-page .heading > img { object-fit: contain; }
.packages-page .heading p { max-width: 760px; margin-inline: auto; }
.package-intro-text { max-width: 850px; margin: -12px auto 44px; text-align: center; }
.package-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.package-card { overflow: hidden; border-radius: 20px; background: #f7f7f7; display: flex; flex-direction: column; }
.package-photo { display: block; background: #eee6f2; overflow: hidden; }
.package-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 45%; }
.package-copy { padding: 32px; flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
.packages-page .package-eyebrow { color: #a71a60; font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.package-copy h3 { font-size: 30px; color: #672b83; margin-bottom: 16px; }
.package-copy p { font-size: 16px; line-height: 1.8; margin-bottom: 18px; }
.package-copy .package-options { color: #672b83; font-weight: 500; }
.package-copy .package-button { margin-top: auto; }
.packages-page .package-button {
  display: inline-flex; gap: 12px; align-items: center; justify-content: center;
  padding: 15px 24px; border-radius: 30px; background: #672b83; color: #fff;
  font-family: 'Epilogue', system-ui, sans-serif; font-size: 14px; font-weight: 600;
  text-decoration: none; line-height: 1.6; text-align: center;
}
.packages-page .package-button:hover { background: #a71a60; color: #fff; }
.packages-page a:focus-visible { outline: 3px solid #bd1465; outline-offset: 5px; }
.package-note { max-width: 920px; margin: 32px auto 0; font-size: 14px; line-height: 1.8; text-align: center; }
.package-custom, .package-instagram { background: #f7f7f7; }
.package-custom-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.package-custom-grid > a { display: block; }
.package-custom-grid img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 20px; }
.package-custom h2 { font-size: clamp(30px, 3vw, 44px); margin-bottom: 24px; }
.package-custom h3 { font-size: 24px; margin: 24px 0 12px; }
.package-custom p { font-size: 16px; line-height: 1.8; }
.package-custom .package-button { margin-top: 28px; }
.package-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; list-style: none; margin: 0; padding: 0; }
.package-steps li { padding: 28px; background: #fbf6fc; border-radius: 20px; }
.step-number { display: block; color: #bd1465; font-size: 32px; margin-bottom: 16px; }
.package-steps h3 { font-size: 25px; margin-bottom: 14px; }
.package-steps p { font-size: 16px; line-height: 1.8; }
.package-instagram-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.package-instagram-grid a { display: block; overflow: hidden; border-radius: 18px; background: #eee6f2; }
.package-instagram-grid img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.package-social-link { margin-top: 32px; text-align: center; }
/* Hide the retired handle caption if older page markup is served. */
.package-social-link > p { display: none !important; }
.package-cta { background: #672b83; text-align: center; }
.package-cta h2 { color: #fff; font-size: clamp(30px, 3vw, 46px); }
.package-cta p { color: #fff; max-width: 720px; margin: 20px auto 28px; }
.package-cta-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 24px; }
.package-cta .package-button { background: #f6ff00; color: #222; }
.package-cta .package-button:hover { background: #fff; color: #672b83; }
.package-call { color: #fff; font-size: 18px; }
.package-call:hover { color: #f6ff00; }
@media (max-width: 991px) {
  .package-custom-grid { gap: 28px; }
  .package-steps { gap: 16px; }
  .package-steps li { padding: 20px; }
  .package-copy { padding: 24px; }
}
@media (max-width: 767px) {
  .package-grid, .package-custom-grid, .package-steps { grid-template-columns: 1fr; }
  .package-instagram-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .package-intro-text { text-align: left; margin-top: 0; }
  .package-photo img { aspect-ratio: 1; }
  .package-copy h3 { font-size: 28px; }
  .package-cta-actions { flex-direction: column; }
}
