.detail-hero { padding: 40px 0 50px; background: var(--mint); }
.detail-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 32px; font-size: .8rem; color: var(--muted); }
.breadcrumbs a { text-underline-offset: 3px; }
.detail-page h1 { margin: 0 0 18px; font: 700 clamp(2.6rem, 5vw, 4.6rem)/1.04 Georgia, serif; letter-spacing: -.025em; }
.detail-page h2 { margin: 0 0 18px; font: 700 clamp(1.8rem, 3vw, 2.5rem)/1.15 Georgia, serif; }
.detail-page h3 { font-family: Georgia, serif; }
.detail-tagline { color: var(--green); font-weight: 800; font-size: .9rem; }
.detail-intro { max-width: 820px; font-size: 1.12rem; color: #42544c; }
.detail-hero-photo { width: 100%; height: 490px; object-fit: cover; border-radius: 5px; }
.detail-hero .section-actions { margin-top: 24px; }
.detail-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); padding: 30px 0; gap: 24px; }
.detail-facts span { color: var(--muted); font-size: .85rem; }
.detail-facts strong { display: block; color: var(--green); font-size: 1rem; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(270px, 1fr); gap: 80px; align-items: start; padding-block: 60px 80px; }
.detail-copy section { margin-bottom: 42px; scroll-margin-top: 125px; }
.detail-copy section:last-child { margin-bottom: 0; }
.detail-copy p { color: #42544c; }
.detail-copy a { color: var(--green); font-weight: 650; text-underline-offset: 3px; }
.detail-copy ul, .detail-copy ol { padding-left: 24px; color: #42544c; }
.detail-copy li { margin-bottom: 10px; }
.detail-booking { position: sticky; top: 104px; background: var(--coral-soft); border-radius: 5px; padding: 28px; }
.detail-booking h2 { font-size: 1.85rem; }
.detail-booking .button { display: flex; margin-bottom: 18px; }
.detail-booking .text-link { display: inline-block; margin-bottom: 12px; }
.detail-small { font-size: .85rem; }
.detail-booking .detail-small { border-top: 1px solid #d6bfb4; padding-top: 16px; margin-bottom: 0; }
.detail-gallery-section { background: white; padding: 65px 0; scroll-margin-top: 110px; }
.detail-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 20px; margin-top: 26px; }
.detail-gallery figure { margin: 0; }
.detail-gallery img { width: 100%; height: 300px; object-fit: cover; border-radius: 4px; }
.detail-gallery figcaption { margin-top: 9px; color: var(--muted); font-size: .85rem; }
.guide-hero { background: var(--green); padding: 40px 0 62px; color: white; }
.guide-hero .breadcrumbs, .guide-hero .detail-intro { color: #e0eae5; }
.guide-hero .section-label { color: #edbc78; }
.guide-hero h1 { max-width: 950px; }
.guide-toc { display: flex; flex-wrap: wrap; gap: 9px 20px; margin-bottom: 36px; border-bottom: 1px solid var(--line); padding-bottom: 22px; font-size: .85rem; }
.location-guide-map { width: 100%; height: auto; margin-bottom: 30px; border: 1px solid var(--line); }
.detail-copy table { width: 100%; border-collapse: collapse; margin-block: 22px; font-size: .92rem; }
.detail-copy th, .detail-copy td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); }
@media (max-width: 900px) {
  .detail-hero-grid { gap: 28px; }
  .detail-layout { gap: 32px; }
  .detail-hero-photo { height: 420px; }
  .detail-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .detail-hero-grid, .detail-layout { grid-template-columns: 1fr; }
  .detail-hero { padding-block: 25px 30px; }
  .detail-hero-photo { height: 330px; }
  .detail-facts { grid-template-columns: 1fr 1fr; gap: 18px; }
  .detail-layout { padding-block: 38px 45px; }
  .detail-booking { position: static; }
  .guide-hero { padding-block: 25px 42px; }
  .breadcrumbs { margin-bottom: 25px; }
  .detail-gallery img { height: 210px; }
}
@media (max-width: 440px) {
  .detail-gallery { grid-template-columns: 1fr; }
  .detail-gallery img { height: 300px; }
  .detail-intro { font-size: 1rem; }
}
