.island-hero { background: linear-gradient(135deg, #e5f3f2, #fff8e9 58%, #dcebea); }
.island-hero .scheduled-hero-media img { width: 100%; height: auto; max-height: none; object-fit: contain; }
.island-section-intro { max-width: 760px; margin: -16px 0 30px; color: var(--muted); font-size: 1.08rem; line-height: 1.8; }
.island-flyer-section { background: #fffdf8; }
.island-flyer-frame { width: min(760px, 100%); margin: 0 auto; padding: 14px; border: 1px solid rgba(22,79,74,.14); border-radius: 22px; background: #f7efe1; box-shadow: 0 20px 48px rgba(19,57,53,.12); }
.island-flyer-trigger img { width: 100%; height: auto; max-height: none; display: block; object-fit: contain; background: #fff; }
.island-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: start; }
.island-photo-card, .island-temple-card { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(10,40,37,.08); }
.island-photo-media { display: grid; place-items: center; background: #edf2ed; }
.island-photo-card img, .island-temple-card img { width: 100%; height: auto; display: block; object-fit: contain; }
.island-photo-card figcaption, .island-temple-card figcaption { display: grid; gap: 7px; padding: 18px 20px 21px; }
.island-photo-card figcaption strong, .island-temple-card figcaption strong { color: var(--deep); font-size: 1.16rem; }
.island-photo-card figcaption span, .island-temple-card figcaption span { color: var(--muted); line-height: 1.65; }
.island-temple-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.island-temple-card figcaption small { color: #68706d; font-size: .78rem; line-height: 1.55; }
.island-temple-card figcaption small a { color: var(--sea); text-decoration: underline; text-underline-offset: 2px; }
.island-price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.island-price-card { padding: 26px 18px; border: 1px solid rgba(157,61,33,.18); border-radius: 18px; background: #fff; text-align: center; box-shadow: 0 12px 28px rgba(95,56,23,.08); }
.island-price-card span { display: block; margin-bottom: 8px; color: var(--muted); font-weight: 800; }
.island-price-card strong { display: block; color: #9d3d21; font-size: clamp(1.35rem, 3vw, 1.9rem); }
.island-meal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.island-meal-card { padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.island-meal-card strong { display: inline-block; margin-bottom: 10px; padding: 6px 12px; border-radius: 999px; background: var(--deep); color: #fff; }
.island-meal-card p { margin: 0; color: var(--ink); font-size: 1.12rem; line-height: 1.75; }
.island-service-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 24px; }
.island-service-summary div { padding: 20px 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.island-service-summary dt { color: var(--muted); font-weight: 700; }
.island-service-summary dd { margin: 5px 0 0; color: var(--deep); font-size: 1.22rem; font-weight: 900; }

@media (max-width: 900px) {
  .island-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .island-photo-card.is-portrait { grid-row: span 2; }
}

@media (max-width: 640px) {
  .island-section-intro { margin-top: -10px; font-size: 1rem; }
  .island-flyer-frame { padding: 8px; border-radius: 16px; }
  .island-gallery, .island-temple-gallery, .island-price-grid, .island-meal-grid, .island-service-summary { grid-template-columns: 1fr; }
  .island-photo-card.is-portrait { grid-row: auto; }
  .island-photo-card figcaption, .island-temple-card figcaption { padding: 17px 18px 20px; }
  .island-price-card { padding: 22px 16px; }
}
