.pp-intro { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); gap:2rem; align-items:center; margin:2rem 0; }
.pp-intro h1 { font-family:var(--heading-font); font-weight:400; font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.07; margin:.6rem 0 1rem; max-width:14ch; }
.pp-intro p { max-width:62ch; }
.pp-intro figure { margin:0; }
.pp-intro img { display:block; width:100%; height:auto; border-radius:48% 48% 4px 4px; }
.pp-intro figcaption { font-size:.875rem; color:var(--soft-ink); margin-top:.5rem; }
.pp-promise { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; color:var(--moss); font-weight:700; }
.pp-tool { border-top:2px solid var(--ink); padding-top:1.25rem; margin:2rem 0; }
.pp-steps { list-style:none; display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; padding:0; margin:0 0 1.75rem; font-size:.95rem; }
.pp-steps li { color:var(--soft-ink); border-bottom:3px solid transparent; padding-bottom:.4rem; }
.pp-steps [aria-current=step] { color:var(--ink); border-color:var(--coral); font-weight:700; }
.pp-tool h2:focus,.pp-tool h3:focus { outline:3px solid var(--focus); outline-offset:5px; }
.pp-tool button,.pp-tool select,.pp-tool input { font:inherit; }
.pp-tool button { min-height:44px; padding:.6rem 1rem; border:1px solid var(--ink); border-radius:5px; color:var(--ink); background:var(--surface); }
.pp-tool button.pp-primary { color:var(--on-ink); background:var(--ink); }
.pp-tool button[aria-pressed=true] { border:2px solid var(--ink); background:var(--lime); }
.pp-tool button:disabled { opacity:.65; cursor:default; }
.pp-tool input:not([type=checkbox]):not([type=radio]),.pp-tool select { display:block; width:100%; min-height:46px; padding:.55rem; border:1px solid var(--soft-ink); border-radius:4px; background:var(--surface); color:var(--ink); margin-top:.35rem; }
.pp-tool input[type=checkbox],.pp-tool input[type=radio] { flex-shrink:0; width:21px; height:21px; accent-color:var(--ink); }
.pp-tool fieldset { min-width:0; border:0; padding:0; margin:1.5rem 0; }
.pp-tool legend { font-weight:700; font-size:1.15rem; margin-bottom:.5rem; }
.pp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.pp-choice { display:flex; align-items:flex-start; gap:.75rem; border:1px solid var(--line); border-radius:8px; padding:1rem; background:var(--surface); cursor:pointer; min-height:48px; }
.pp-choice input { margin-top:.25rem; }
.pp-choice:has(input:checked) { outline:2px solid var(--moss); outline-offset:-2px; background:var(--cream); }
.pp-choice strong { display:block; font-weight:700; }
.pp-choice span span { display:block; color:var(--soft-ink); }
.pp-inline-options { display:flex; flex-wrap:wrap; gap:.5rem; }
.pp-inline-options label { display:flex; gap:.6rem; align-items:center; min-height:44px; padding:.4rem .75rem; background:var(--cream); border-radius:5px; }
.pp-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; margin:1.25rem 0; }
.pp-help { font-size:.95rem; color:var(--soft-ink); max-width:78ch; }
.pp-error { color:var(--danger); font-weight:700; }
.pp-member { border:1px solid var(--line); border-radius:10px; background:var(--surface); padding:1.25rem; margin:1rem 0; }
.pp-member h3 { margin-top:0; }
.pp-needs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.5rem; }
.pp-priority-label { font-weight:700; }
.pp-notice { border-left:4px solid var(--moss); padding:.75rem 1rem; background:var(--cream); }
.pp-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
.pp-result { padding:1.25rem; border:1px solid var(--line); border-radius:10px; background:var(--surface); min-width:0; display:flex; flex-direction:column; }
.pp-result h3 { font-size:1.6rem; line-height:1.2; margin:.45rem 0 .8rem; }
.pp-result .pp-place { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.pp-result .pp-place img { width:100px; height:66px; object-fit:cover; border-radius:4px; }
.pp-result .pp-status { font-weight:700; padding:.5rem .7rem; background:var(--cream); border-left:3px solid var(--moss); margin:.75rem 0; }
.pp-result[data-outcome=poor] .pp-status { border-color:var(--danger); }
.pp-result[data-outcome=unconfirmed] .pp-status { border-color:var(--coral); }
.pp-result p { margin:.45rem 0; }
.pp-result ul { padding-left:1.2rem; }
.pp-result details { margin:.7rem 0; }
.pp-result summary,.pp-evidence summary,.pp-method summary { min-height:44px; padding:.6rem 0; cursor:pointer; font-weight:700; }
.pp-result .pp-actions { margin-top:auto; padding-top:1rem; }
.pp-evidence-row { padding:.75rem 0; border-bottom:1px solid var(--line); }
.pp-evidence-row h4 { margin:.25rem 0; }
.pp-source-meta { font-size:.9rem; color:var(--soft-ink); }
.pp-list-status { min-height:1.6em; }
.pp-scenario { margin:1.75rem 0; padding:1.25rem; background:var(--cream); border-radius:10px; }
.pp-scenario h3 { margin-top:0; }
.pp-day { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); list-style:none; counter-reset:day; padding:0; gap:.65rem; }
.pp-day li { counter-increment:day; padding:.85rem; background:var(--surface); border-bottom:3px solid var(--line); }
.pp-day li::before { content:counter(day,decimal-leading-zero); display:block; color:var(--moss); font-weight:700; }
.pp-pack { border-top:2px solid var(--ink); margin-top:2rem; padding-top:1rem; }
.pp-pack article { border-top:1px solid var(--line); margin-top:1.5rem; padding-top:1rem; }
.pp-pack h3 { margin-top:.5rem; }
.pp-pack .pp-note-list li { margin:.5rem 0; }
.pp-method { margin:2rem 0; max-width:85ch; }
.pp-evidence { margin-top:3rem; }
.pp-evidence .planner-source { border-top:1px solid var(--line); padding:.5rem 0; }
.pp-evidence summary h3 { display:inline; font-size:1.2rem; }
.pp-evidence [data-feature] { padding:.4rem 0; }
.pp-evidence h4 { margin:.5rem 0; }
.pp-evidence p { margin:.45rem 0; }
.pp-banner { padding:1.25rem; background:var(--cream); border-left:4px solid var(--moss); margin:1.5rem 0; }
.pp-banner h2 { margin-top:0; }
@media(max-width:720px) { .pp-intro { grid-template-columns:1fr; gap:1rem; } .pp-intro figure { display:none; } .pp-grid,.pp-results { grid-template-columns:1fr; } .pp-intro h1 { max-width:none; } }
@media(max-width:480px) { .pp-needs { grid-template-columns:1fr; } .pp-member,.pp-result,.pp-scenario { padding:1rem; } .pp-result .pp-place img { width:84px; height:56px; } }
@media(prefers-reduced-motion:no-preference) { .pp-tool button { transition:background-color .16s ease-out; } }
@media print {
  body.pp-print-pack .site-header,body.pp-print-pack .site-footer,body.pp-print-pack .pp-intro,body.pp-print-pack .breadcrumb,body.pp-print-pack .pp-steps,body.pp-print-pack .pp-method,body.pp-print-pack .pp-evidence,body.pp-print-pack .pp-screen,body.pp-print-pack #pp-results-heading,body.pp-print-pack #pp-results-summary,body.pp-print-pack #pp-results-grid,body.pp-print-pack .pp-scenario,body.pp-print-pack .pp-actions,body.pp-print-pack .pp-list-status,body.pp-print-pack .pp-controls-note { display:none!important; }
  body.pp-print-pack #pp-results-step { display:block!important; }
  .pp-pack { border:0; margin:0; padding:0; }
  .pp-pack article { break-inside:auto; }
  .pp-pack h2,.pp-pack h3,.pp-pack h4 { break-after:avoid; }
  .pp-pack li { break-inside:avoid; }
  .pp-pack a { overflow-wrap:anywhere; }
  .pp-pack a[href^="https"]::after { content:" (" attr(href) ")"; font-size:10pt; }
  .pp-pack a[href^="/"]::after { content:" (https://themeparkaccess.org" attr(href) ")"; font-size:10pt; }
  .pp-day { grid-template-columns:repeat(3,1fr); }
}

.pp-selected-parks { display:flex; flex-wrap:wrap; gap:.5rem; margin:.75rem 0 1rem; }
.pp-selected-parks p { margin:.25rem 0; }
.pp-selected-parks button { text-align:left; overflow-wrap:anywhere; max-width:100%; }
.pp-directory-filters { padding:1rem; border:1px solid var(--line); border-radius:8px; margin:1rem 0; background:var(--surface); }
.pp-directory-filters label { font-weight:700; }
.pp-directory-filters input,.pp-directory-filters select { display:block; width:100%; font:inherit; min-height:46px; padding:.55rem; border:1px solid var(--soft-ink); border-radius:4px; background:var(--surface); color:var(--ink); margin-top:.35rem; }
.pp-result h3:focus { outline:3px solid var(--focus); outline-offset:5px; }
.pp-tool [hidden],.pp-evidence [hidden] { display:none!important; }
.pp-result-pagination p { margin:0; }
.pp-source-country { display:inline-block; margin-left:.75rem; font-weight:400; color:var(--soft-ink); }
