.pk-spot-detail-page { margin: 0; background: #faf9f6; color: #302c28; font-family: system-ui, sans-serif; }
.pk-spot-detail-wrap { max-width: 820px; margin: 0 auto; padding: 24px 20px 100px; }
.pk-spot-breadcrumb { margin: 0 0 24px; color: #625b53; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.pk-spot-breadcrumb a { color: inherit; text-underline-offset: 4px; }
.pk-spot-article, .pk-spot-article *, .pk-spot-detail-modal, .pk-spot-detail-modal * { box-sizing: border-box; }
.pk-spot-article { color: #302c28; font-family: system-ui, sans-serif; line-height: 1.8; overflow-wrap: anywhere; }
.pk-spot-article a { color: #2e6b86; text-underline-offset: 4px; }
.pk-spot-article .pk-spot-detail-title { margin: 0 0 20px; color: #302c28; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.5; }
.pk-spot-author { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; font-size: 14px; }
.pk-spot-author-avatar { display: block; flex: 0 0 42px; width: 42px; height: 42px; }
.pk-spot-author-avatar img { display: block; width: 42px; height: 42px; border-radius: 50%; object-fit: cover; background: #e9e6df; }
.pk-spot-date { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; color: #625b53; font-size: 12px; }
.pk-spot-photo { margin: 0 0 24px; border-radius: 12px; overflow: hidden; background: #eeece7; }
.pk-spot-photo img { display: block; width: 100%; height: auto; max-height: 520px; max-height: min(520px, 55dvh); object-fit: contain; }
.pk-spot-description { margin: 0 0 24px; white-space: pre-wrap; font-size: 15px; }
.pk-spot-detail-section { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #e5dfd5; }
.pk-spot-detail-section h2 { margin: 0 0 12px; color: #302c28; font-size: 16px; line-height: 1.6; }
.pk-spot-gear { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.pk-spot-gear div { padding: 12px; border-radius: 8px; background: #f2efe9; }
.pk-spot-gear dt { color: #625b53; font-size: 11px; }
.pk-spot-gear dd { margin: 4px 0 0; font-size: 13px; }
.pk-spot-location-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1px solid #b9ced6; border-radius: 8px; text-decoration: none; font-size: 14px; background: #f1f7f9; }
.pk-spot-detail-modal { position: fixed; inset: 16px 0 auto; width: min(860px, calc(100% - 32px)); max-width: none; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: 0 auto; padding: 0; border: 1px solid #e0dad1; border-radius: 14px; background: #faf9f6; color: #302c28; font-family: system-ui, sans-serif; box-shadow: 0 20px 60px #0003; overflow: hidden; }
.pk-spot-detail-modal[open] { display: flex; flex-direction: column; }
.pk-spot-detail-modal::backdrop { background: #24201c66; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.pk-spot-modal-header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 16px; padding: 10px 20px; border-bottom: 1px solid #e5dfd5; background: #faf9f6; }
.pk-spot-modal-header h2 { margin: 0; color: #302c28; font-size: 15px; line-height: 1.6; }
.pk-spot-modal-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid #d6cec2; border-radius: 50%; background: #fff; color: #302c28; font-size: 26px; cursor: pointer; }
.pk-spot-modal-body { min-height: 0; padding: 24px; overflow-y: auto; overscroll-behavior: contain; }
.pk-spot-modal-status { margin: 0; padding: 24px 0; font-size: 14px; line-height: 1.8; }
.pk-spot-modal-error p { margin: 0 0 16px; font-size: 14px; line-height: 1.8; }
.pk-spot-modal-error div { display: flex; flex-wrap: wrap; gap: 12px; }
.pk-spot-modal-error button, .pk-spot-modal-error a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border: 1px solid #b9ced6; border-radius: 8px; background: #fff; color: #2e6b86; font: inherit; font-size: 13px; text-decoration: none; cursor: pointer; }
.pk-spot-article a:focus-visible, .pk-spot-detail-modal button:focus-visible, .pk-spot-detail-modal a:focus-visible { outline: 3px solid #2e6b86; outline-offset: 3px; }
@media (max-width: 600px) {
  .pk-spot-modal-body { padding: 20px 16px; }
  .pk-spot-modal-header { padding: 8px 16px; }
  .pk-spot-gear { grid-template-columns: 1fr; }
}
