.local-guide-hero {
  background:
    radial-gradient(circle at 82% 24%, rgba(255, 197, 21, .23), transparent 19rem),
    radial-gradient(circle at 92% 80%, rgba(53, 118, 255, .88), transparent 26rem),
    linear-gradient(125deg, #06135d, #0a36c8);
}

.local-story-grid {
  display: grid;
  align-items: center;
  gap: clamp(38px, 6vw, 72px);
  grid-template-columns: 1.03fr .97fr;
}

.local-story-grid h2 { font-size: clamp(2rem, 4vw, 3.3rem); }
.local-story-grid > div > p:not(.eyebrow) { color: var(--muted); }

.local-feature-photo {
  overflow: hidden;
  margin: 0;
  background: white;
  border-radius: 28px;
  box-shadow: var(--shadow);
}

.local-feature-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.local-feature-photo figcaption,
.local-place figure figcaption { padding: 10px 14px; color: #687485; background: white; font-size: .76rem; line-height: 1.4; }
.local-feature-photo figcaption a,
.local-place figure figcaption a { color: inherit; }

.local-corridor { position: relative; display: grid; gap: 0; margin: 30px 0 0; padding: 0; list-style: none; }
.local-corridor::before { position: absolute; top: 15px; bottom: 15px; left: 16px; width: 3px; content: ""; background: linear-gradient(var(--yellow), var(--blue)); border-radius: 999px; }
.local-corridor li { position: relative; display: grid; gap: 2px; min-height: 68px; padding: 3px 0 16px 50px; }
.local-corridor li::before { position: absolute; z-index: 1; top: 3px; left: 5px; width: 25px; height: 25px; content: ""; background: var(--yellow); border: 6px solid white; border-radius: 50%; box-shadow: 0 0 0 2px var(--blue); }
.local-corridor strong { color: var(--navy); }
.local-corridor span { color: var(--muted); font-size: .92rem; }

.local-place-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.local-place { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-small); }
.local-place-wide { grid-column: 1 / -1; }
.local-place-copy { padding: clamp(24px, 4vw, 36px); }
.local-place-copy h3 { font-size: clamp(1.45rem, 2.4vw, 2rem); }
.local-place-copy p:not(.resource-place) { color: var(--muted); }
.local-place-copy > a { display: inline-block; margin-top: 8px; font-weight: 850; text-decoration: none; }
.local-place-copy > a:hover { text-decoration: underline; }
.local-place-photo figure { margin: 0; background: #eaf0f6; }
.local-place-photo figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.local-place-photo.local-place-wide { display: grid; align-items: stretch; grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr); }
.local-place-photo.local-place-wide figure img { height: 100%; aspect-ratio: auto; }
.local-place-photo.local-place-wide.local-place-with-aside { grid-template-columns: minmax(220px, .7fr) minmax(0, 1fr) minmax(250px, .72fr); }
.local-place-photo.local-place-wide.local-place-with-aside figure img { min-height: 100%; object-fit: cover; }
.local-place-wide:not(.local-place-photo) { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); }
.route-context-photo:nth-child(2) figure img { object-position: 50% 38%; }
.route-context-photo:nth-child(3) figure img { object-position: 70% 55%; }
.route-context-photo:nth-child(4) figure img { object-position: 25% 50%; }

.while-you-wait { padding: clamp(24px, 4vw, 36px); color: white; background: linear-gradient(135deg, var(--navy), var(--blue)); }
.while-you-wait strong { color: var(--yellow); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.while-you-wait p { margin: 10px 0 0; color: #e4edff; font-size: 1.08rem; }
.route-place-grid .local-place { border-top: 5px solid var(--yellow); }

.panorama-section { margin-top: clamp(40px, 6vw, 70px); }
.panorama-heading { max-width: 760px; margin-bottom: 24px; }
.panorama-heading h3 { margin-bottom: 10px; font-size: clamp(1.75rem, 3vw, 2.65rem); }
.panorama-heading p:not(.eyebrow) { color: var(--muted); }
.panorama-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panorama-card { overflow: hidden; margin: 0; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-small); }
.panorama-card-wide { grid-column: 1 / -1; }
.panorama-stage { position: relative; overflow: hidden; min-height: 330px; background: #07155b; aspect-ratio: 16 / 9; }
.panorama-stage > img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.panorama-stage::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(180deg, rgba(2, 10, 45, .05) 20%, rgba(2, 10, 45, .78)); }
.panorama-card:not(.is-loaded) .panorama-stage:hover > img { transform: scale(1.025); }
.panorama-load { position: absolute; z-index: 2; right: 22px; bottom: 22px; left: 22px; display: grid; justify-items: start; gap: 3px; padding: 16px 18px; color: var(--navy); text-align: left; cursor: pointer; background: rgba(255, 255, 255, .95); border: 0; border-radius: 16px; box-shadow: 0 10px 30px rgba(2, 10, 45, .25); }
.panorama-load strong { font-size: clamp(1rem, 2vw, 1.24rem); }
.panorama-load > span:last-child { color: #516078; font-size: .82rem; }
.panorama-load:hover { background: var(--yellow); transform: translateY(-2px); }
.panorama-load:focus-visible { outline: 4px solid var(--yellow); outline-offset: 4px; }
.panorama-load:disabled { cursor: wait; opacity: .88; }
.panorama-badge { color: var(--blue); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.panorama-card figcaption { padding: 12px 16px 15px; color: #687485; font-size: .8rem; line-height: 1.45; }
.panorama-card figcaption a { color: inherit; font-weight: 750; }
.panorama-status { position: absolute; width: 1px; height: 1px; overflow: hidden; margin: -1px; padding: 0; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.panorama-card.is-loading .panorama-load::after { width: 16px; height: 16px; margin-left: auto; content: ""; border: 3px solid rgba(6, 19, 93, .22); border-top-color: var(--blue); border-radius: 50%; animation: panorama-spin .7s linear infinite; }
.panorama-card.is-loaded .panorama-stage::after { display: none; }
.panorama-card.is-loaded .panorama-stage { min-height: 390px; }
.panorama-card.is-loaded .pnlm-container { font-family: inherit; }
.panorama-card.is-loaded .pnlm-about-msg { display: none !important; }
@keyframes panorama-spin { to { transform: rotate(360deg); } }

.local-guide-note { display: grid; gap: clamp(30px, 6vw, 72px); padding: clamp(30px, 5vw, 52px); background: var(--blue-soft); border: 1px solid #cbdcf2; border-radius: 30px; grid-template-columns: 1.15fr .85fr; }
.local-guide-note h2 { font-size: clamp(1.85rem, 3vw, 2.65rem); }
.local-guide-note p { color: #44536a; }
.local-guide-note .button { margin-top: 8px; }

@media (max-width: 960px) {
  .local-story-grid,
  .local-guide-note { grid-template-columns: 1fr; }
  .local-place-photo.local-place-wide { grid-template-columns: 1fr; }
  .local-place-photo.local-place-wide.local-place-with-aside { grid-template-columns: 1fr; }
  .local-place-photo.local-place-wide figure img { height: auto; aspect-ratio: 16 / 9; }
}

@media (max-width: 640px) {
  .local-place-grid { grid-template-columns: 1fr; }
  .local-place-wide { grid-column: auto; }
  .local-place-wide:not(.local-place-photo) { grid-template-columns: 1fr; }
  .panorama-grid { grid-template-columns: 1fr; }
  .panorama-card-wide { grid-column: auto; }
  .panorama-stage { min-height: 250px; }
  .panorama-card.is-loaded .panorama-stage { min-height: 330px; }
  .panorama-load { right: 14px; bottom: 14px; left: 14px; padding: 13px 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .panorama-stage > img,
  .panorama-load { transition: none; }
}
