.pp-seasonal-page{background:#f4f8fc;color:#0a2638}.pp-seasonal-main{max-width:1240px;padding:28px 18px 90px}.pp-seasonal-hero{background:linear-gradient(120deg,#063d65,#0060c8);border-radius:22px;padding:28px 34px;color:#fff;margin-bottom:18px}.pp-seasonal-hero h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;margin:8px 0 10px}.pp-seasonal-hero p{max-width:620px;margin:0;color:#e3f2ff}.pp-seasonal-kicker{font-size:.75rem;letter-spacing:.14em;font-weight:800;color:#bdeaff}.pp-seasonal-location,.pp-seasonal-results,.pp-seasonal-map-panel{background:#fff;border:1px solid #d9e4ed;border-radius:18px;box-shadow:0 8px 28px #0b35510a}.pp-seasonal-location{padding:20px 24px;margin-bottom:18px}.pp-seasonal-location h2,.pp-seasonal-results h2,.pp-seasonal-map-panel h2,.pp-add-display h2{font-size:1.35rem;font-weight:800;margin:0 0 6px}.pp-seasonal-location p{margin:0 0 8px;color:#435866}.pp-location-current button{border:0;background:none;color:#005fbd;text-decoration:underline}.pp-location-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.pp-location-actions .form-control{max-width:290px;min-width:190px}.pp-form-help{color:#af3100!important;margin-top:8px!important}.pp-seasonal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.pp-seasonal-tabs a{border:1px solid #9fc7e8;color:#0057ad;text-decoration:none;padding:9px 14px;border-radius:999px;background:#fff;font-weight:700}.pp-seasonal-tabs a.active{background:#005dbd;color:#fff}.pp-seasonal-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:18px;align-items:start}.pp-seasonal-results{padding:20px}.pp-seasonal-section-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.pp-seasonal-section-head p,.pp-map-panel-title p{color:#546a78;font-size:.92rem;margin:0}.pp-seasonal-section-head>strong{white-space:nowrap;color:#0060c8;font-size:.85rem}.pp-display-list{display:flex;flex-direction:column;gap:12px}.pp-display-card{display:grid;grid-template-columns:86px minmax(0,1fr);gap:14px;border:1px solid #dce7ee;border-radius:15px;padding:13px;background:#fff}.pp-display-card.is-eyed{border-color:#0074d8;background:#f4faff;box-shadow:0 4px 16px #0060c81a}.pp-display-card.is-dragging{opacity:.5}.pp-display-thumb{width:86px;height:86px;border-radius:12px;background:#e5f2fb;display:flex;align-items:center;justify-content:center;font-size:2.3rem;overflow:hidden}.pp-display-thumb img{width:100%;height:100%;object-fit:cover}.pp-display-body{min-width:0}.pp-display-heading{display:flex;gap:8px}.pp-display-heading h3{font-size:1rem;font-weight:800;margin:1px 0 3px;overflow-wrap:anywhere}.pp-display-address,.pp-display-meta{margin:0;overflow-wrap:anywhere}.pp-display-address{font-size:.88rem}.pp-display-meta{font-size:.77rem;color:#657785;margin-top:4px}.pp-display-drag{color:#0060c8;font-size:1.3rem;line-height:1;cursor:grab;touch-action:none;min-width:12px}.pp-display-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.pp-vote,.pp-map-link{border:1px solid #9fc3e2;border-radius:8px;background:#fff;color:#005caa;padding:6px 9px;font-size:.82rem;font-weight:700;text-decoration:none}.pp-vote[aria-pressed=true]{background:#dcefff;border-color:#0060c8}.pp-vote[data-action=heart][aria-pressed=true]{background:#fff0f0;color:#bc2641;border-color:#e391a0}.pp-display-details{font-size:.85rem}.pp-display-details summary{cursor:pointer;color:#005baa;font-weight:700}.pp-display-detail-inner{padding:10px 0 2px}.pp-display-detail-inner>p{color:#5a6b74}.pp-status-form{display:inline-block;margin:0 8px 10px 0}.pp-status-form small{color:#556773}.pp-display-gallery{display:flex;gap:6px;overflow-x:auto;margin:4px 0 10px}.pp-display-gallery img{height:80px;width:80px;object-fit:cover;border-radius:7px}.pp-display-upload{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.pp-display-upload label{display:flex;flex-direction:column;gap:3px}.pp-display-upload input{max-width:210px;font-size:.75rem}.pp-seasonal-map-panel{padding:18px;position:sticky;top:14px}.pp-map-panel-title{margin-bottom:12px}#seasonal-map{width:100%;height:360px;background:#e7edf1;border-radius:12px}.pp-map-note{font-size:.75rem;color:#667782;margin:10px 0 0}#route-actions{padding:14px 0 0}#route-summary{font-size:.87rem;margin:0 0 8px}#route-links{display:flex;gap:7px;flex-wrap:wrap}#route-links a{background:#0060c8;border-radius:8px;color:#fff;padding:8px 12px;text-decoration:none;font-size:.84rem;font-weight:700}.pp-seasonal-empty,.pp-add-display{background:#f6faff;border:1px solid #d6e7f4;border-radius:13px;padding:18px}.pp-seasonal-empty h3{font-size:1rem;font-weight:800}.pp-add-display{margin-top:18px}.pp-add-display p{color:#4f6574;font-size:.9rem}.pp-add-display form{display:grid;gap:11px}.pp-add-display label:not(.pp-consent){display:grid;gap:5px;font-weight:700;font-size:.88rem}.pp-add-display .pp-consent{font-size:.82rem;display:flex;gap:8px;align-items:start}.pp-add-display button{justify-self:start}.pp-hidden-displays{margin:16px 0;background:#f5f5f5;border-radius:12px;padding:14px}.pp-hidden-displays summary{cursor:pointer;font-weight:800}.pp-hidden-displays>p{font-size:.87rem}.pp-hidden-row{display:flex;flex-direction:column;gap:4px;padding:10px;border-top:1px solid #ddd}.pp-hidden-row span{font-size:.83rem}.pp-hidden-row form{margin-top:4px}@media(max-width:850px){.pp-seasonal-layout{grid-template-columns:1fr}.pp-seasonal-map-panel{position:static;order:-1}#seasonal-map{height:290px}}@media(max-width:520px){.pp-seasonal-main{padding:14px 10px 90px}.pp-seasonal-hero{padding:22px 20px}.pp-seasonal-location,.pp-seasonal-results,.pp-seasonal-map-panel{padding:15px}.pp-location-actions>:not(.visually-hidden){width:100%!important;max-width:none!important}.pp-location-actions>span{text-align:center}.pp-display-card{grid-template-columns:62px minmax(0,1fr);gap:10px;padding:10px}.pp-display-thumb{width:62px;height:62px;font-size:1.8rem}.pp-display-actions{gap:5px}.pp-vote,.pp-map-link{font-size:.75rem;padding:6px}.pp-seasonal-section-head{display:block}}
.pp-gallery-item form button{border:0;background:none;color:#9d1e32;text-decoration:underline;font-size:.7rem;padding:0}
.pp-guest-signin{margin:-6px 4px 14px;padding:0;border:0;background:transparent;color:#214c31;font-size:.82rem;text-align:right}
.pp-guest-signin a,.pp-guest-action a{font-weight:700;color:#005baa}
.pp-guest-heart{display:inline-flex;align-items:center;gap:5px}

/* The site-wide .container is a horizontal flex row. This page needs a document flow. */
.pp-seasonal-page {
  --holiday-red:#ad2838;
  --holiday-green:#1c6449;
  --holiday-ink:#254337;
  --holiday-gold:#d9a83b;
  color:var(--holiday-ink);
  background:radial-gradient(circle at 0 120px,#fff0d4 0,transparent 320px),
             radial-gradient(circle at 100% 420px,#e8f2e6 0,transparent 420px),#fffdf8;
}
.pp-seasonal-page.pp-seasonal-halloween {
  --holiday-red:#a54316;
  --holiday-green:#4e376b;
  --holiday-ink:#3b2c45;
  --holiday-gold:#d19430;
}
.pp-seasonal-page .pp-seasonal-main.container {
  display:block;
  width:100%;
  max-width:1240px;
  height:auto;
  min-height:0;
  margin-inline:auto;
  padding:28px 18px 90px;
  background:transparent;
  align-items:initial;
  justify-content:initial;
  overflow:visible;
}
.pp-seasonal-main > *, .pp-seasonal-layout > * {min-width:0;max-width:100%;}
.pp-seasonal-hero {
  position:relative;
  overflow:hidden;
  padding-top:42px;
  background:radial-gradient(circle at 92% 90%,#ffe3a2 0,transparent 26%),
             linear-gradient(115deg,#dbffe5 0%,#f0fff0 55%,#fff4d6 100%);
  border:1px solid #9bcaa5;
  border-radius:22px;
  box-shadow:0 10px 30px #1b6e381c;
  color:var(--holiday-ink);
}
.pp-seasonal-hero::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:31px;
  background:url('/img/festive-lights-strand.svg') repeat-x 0 0 / 192px 31px;
}
.pp-seasonal-hero h1 {color:#12533b;text-shadow:none;max-width:850px;}
.pp-seasonal-hero p {color:#36594b;}
.pp-seasonal-kicker {color:#ad2337;}
.pp-location-actions .btn,.pp-location-actions .form-control {margin-top:0;min-height:40px;}
.pp-location-actions > span {align-self:center;}
.pp-distance-form {display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0 4px;}
.pp-distance-form label {font-weight:700;color:var(--holiday-ink);}
.pp-distance-form .form-select {width:auto;min-width:128px;}
.pp-distance-form .btn {margin:0;min-height:38px;}
.pp-display-explorer {scroll-margin-top:14px;}
.pp-display-explorer .pp-distance-form {margin:0 0 12px;padding:10px 14px;background:#fffefa;border:1px solid #e7d9c0;border-radius:14px;}
.pp-display-explorer .pp-seasonal-tabs {margin:0 0 18px;}
.pp-route-fab {position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:1020;display:inline-flex;align-items:center;gap:9px;padding:11px 17px;border-radius:999px;background:#145e43;color:#fff;text-decoration:none;font-weight:800;box-shadow:0 5px 18px #06382d50;}
.pp-route-fab:hover,.pp-route-fab:focus-visible {background:#0f4934;color:#fff;}
.pp-route-fab span {font-size:.8rem;font-weight:700;background:#fff;color:#145e43;border-radius:999px;padding:3px 7px;}
#map-route {scroll-margin-top:20px;}
.pp-seasonal-location,.pp-seasonal-results,.pp-seasonal-map-panel {border-color:#e7d9c0;box-shadow:0 8px 24px #4c3d1b12;}
.pp-seasonal-location {background:#fffefa;}
.pp-seasonal-page h2,.pp-seasonal-page h3 {color:var(--holiday-ink);}
.pp-seasonal-page .btn-primary {background:var(--holiday-red);border-color:var(--holiday-red);color:#fff;}
.pp-seasonal-page .btn-primary:hover {background:#8e1f2e;border-color:#8e1f2e;}
.pp-seasonal-page .btn-outline-primary {border-color:var(--holiday-green);color:var(--holiday-green);}
.pp-seasonal-page .btn-outline-primary:hover {background:var(--holiday-green);color:#fff;}
.pp-seasonal-tabs a {border-color:#d6c69e;color:var(--holiday-green);background:#fffdf7;}
.pp-seasonal-tabs a.active {background:var(--holiday-green);border-color:var(--holiday-green);color:#fff;}
.pp-seasonal-section-head>strong,.pp-display-drag,.pp-display-details summary {color:var(--holiday-green);}
.pp-display-card.is-eyed {border-color:#6ba085;background:#f6fbf4;box-shadow:0 4px 16px #1c644915;}
.pp-vote,.pp-map-link {border-color:#acd0b8;color:var(--holiday-green);}
.pp-vote[aria-pressed=true] {background:#e0f2e5;border-color:var(--holiday-green);}
.pp-vote[data-action=heart][aria-pressed=true] {background:#ffedf0;color:var(--holiday-red);border-color:#df9aa4;}
.pp-seasonal-empty,.pp-add-display {background:#fffcf4;border-color:#e9d6ad;}
#route-links a {background:var(--holiday-green);}
.pp-seasonal-page .pp-footer {background:#1f553f;}
@media(max-width:850px) {
  .pp-seasonal-page .pp-seasonal-main.container {padding:18px 14px 90px;}
  .pp-seasonal-layout {display:grid;grid-template-columns:minmax(0,1fr);}
}
@media(max-width:520px) {
  .pp-seasonal-page .pp-seasonal-main.container {padding:12px 10px 90px;}
  .pp-seasonal-hero {padding:38px 19px 20px;}
  .pp-seasonal-hero h1 {font-size:clamp(1.9rem,8vw,2.45rem);line-height:1.06;}
  .pp-seasonal-location,.pp-seasonal-results,.pp-seasonal-map-panel {width:100%;}
  .pp-location-actions .form-control {min-width:0;}
  .pp-route-fab {left:10px;bottom:max(14px,env(safe-area-inset-bottom));padding:9px 12px;font-size:.85rem;}
}
.pp-visit-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.pp-visit-tools strong{color:var(--holiday-green);font-size:.86rem;white-space:nowrap}
.pp-visit-tools form{margin:0}
.pp-visit-tools .btn{margin:0;white-space:nowrap}
@media(max-width:520px){.pp-visit-tools{justify-content:flex-start;margin-top:10px}}
@media(max-width:850px){.pp-seasonal-map-panel{order:0}}
.pp-map-jump{color:var(--holiday-green,#1c6449);font-size:.84rem;font-weight:750;white-space:nowrap}
.pp-add-display{padding:0}
.pp-add-display summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;cursor:pointer;font-weight:800;color:var(--holiday-green,#1c6449);list-style:none}
.pp-add-display summary::-webkit-details-marker{display:none}
.pp-add-display summary::after{content:'+';font-size:1.3rem;line-height:1}
.pp-add-display[open] summary::after{content:'−'}
.pp-add-display-content{padding:0 18px 18px}
.pp-review-badge{display:inline-block;margin:7px 0 0;padding:5px 9px;border-radius:8px;background:#fff2d3;color:#674500;font-size:.78rem;font-weight:700;line-height:1.4}
.pp-report-feedback{display:inline-block;max-width:36ch;margin-left:8px;color:#486559;font-size:.78rem;vertical-align:middle}
.pp-display-card.is-reported-inactive{border-color:#c3c5c5;background:#f7f8f7}
.pp-contributor-link{margin:13px 0 0;font-size:.82rem}.pp-contributor-link a{color:var(--holiday-green);font-weight:700}
