/* Glacier Hollow "Plan your visit" page (plan.html, plan.js) */

/* Jump links under the heading band */
.plan-jump { position: sticky; top: 68px; z-index: 5; background: rgba(255, 255, 255, .94); backdrop-filter: blur(8px); border-bottom: 1px solid #e6edf4; }
.plan-jump .container { display: flex; gap: 6px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; scrollbar-width: none; }
.plan-jump a {
  flex: none; padding: 6px 14px; border-radius: 999px; background: var(--ice);
  color: var(--navy); text-decoration: none; font-weight: 600; font-size: .92rem;
}
.plan-jump a:hover { background: #dde6ef; }
#getting-there, #parking, #hours, #lodging, #faq, #contact { scroll-margin-top: 120px; }

.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; margin-top: 24px; }
.plan-card { background: #fff; border: 1px solid #dde6ef; border-radius: var(--radius); padding: 22px; display: flex; flex-direction: column; }
.plan-card h3 { margin: 0 0 8px; font-size: 1.15rem; }
.plan-card h3 span { margin-right: .35em; }
.plan-card p { margin: 0; }
.plan-card p + p { margin-top: 8px; }
.plan-kind { font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--blue); margin-bottom: 6px !important; }
.plan-price { margin-top: auto !important; padding-top: 14px; font-size: 1.3rem; font-weight: 800; color: var(--navy); }
.plan-price span { font-size: .88rem; font-weight: 400; color: var(--muted); }

.plan-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; margin-top: 24px; }
.plan-table th, .plan-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid #e6edf4; vertical-align: top; }
.plan-table th { background: var(--navy); color: #fff; font-weight: 600; }
.plan-table td:first-child { font-weight: 600; white-space: nowrap; }
.plan-note { margin-top: 16px; }

.plan-hours { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 24px 0 0; }
.plan-hours div { background: var(--ice); border-radius: var(--radius); padding: 16px 18px; }
.plan-hours dt { font-weight: 700; color: var(--navy); }
.plan-hours dd { margin: 2px 0 0; color: var(--muted); }

/* FAQ */
.plan-narrow { max-width: 800px; }
.faq-group { margin: 32px 0 10px; font-size: 1.1rem; color: var(--navy); }
.faq { border: 1px solid #dde6ef; border-radius: var(--radius); background: #fff; margin-bottom: 8px; }
.faq summary {
  cursor: pointer; list-style: none; padding: 14px 44px 14px 18px; font-weight: 600; position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
  font-size: 1.3rem; color: var(--blue); transition: transform .2s;
}
.faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq summary:focus-visible { outline: 3px solid rgba(21, 101, 192, .35); outline-offset: -3px; border-radius: var(--radius); }
.faq p { margin: 0; padding: 0 18px 16px; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.contact-details { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; margin: 20px 0; }
.contact-details dt { font-weight: 600; color: var(--navy); }
.contact-details dd { margin: 0; }
.plan-emergency { background: #fde8e8; color: #7f1d1d; border-radius: 10px; padding: 12px 16px; }
.plan-emergency a { color: #b71c1c; font-weight: 700; }
.contact-form { background: #fff; border: 1px solid #dde6ef; border-radius: var(--radius); padding: 24px; }
.contact-form h3 { margin: 0 0 12px; }
.contact-sent { background: #e3f4e5; color: #1b5e20; border-radius: 10px; padding: 12px 16px; margin: 16px 0 0; }

@media (max-width: 760px) {
  .contact-grid { grid-template-columns: 1fr; gap: 24px; }
  .plan-table thead { display: none; }
  .plan-table, .plan-table tbody, .plan-table tr, .plan-table td { display: block; }
  .plan-table tr { padding: 12px 16px; border-bottom: 1px solid #e6edf4; }
  .plan-table td { border: 0; padding: 2px 0; }
  .plan-table td:nth-child(2)::after { content: " spaces"; }
}
@media (prefers-reduced-motion: reduce) {
  .faq summary::after { transition: none; }
}

/* Real resort chosen (resort.js): links in the cards */
.plan-links { margin: 10px 0 0; }
.plan-links a { font-weight: 600; }
