/* --oe-col: this page's content column; the shared top bar row (common/header.php) takes the same width. */
:root{--oe-col:1120px}
/* Peninsula Passport campaign page (/passport/<slug>). Navy + gold like the
   rest of the site; --pp-ink is the campaign's own stamp ink, set inline. */
/* Campaign marks (_passport_icons.php) default to the line's size; tiles size them up. */
.pp-ico{width:1em;height:1em;display:block;flex:none}
:root{
  --pp-navy:#101530; --pp-gold:#ecaf18; --pp-gold-ink:#b47713;
  --pp-cream:#f7f2e9; --pp-card:#ffffff; --pp-line:#e4ddcf;
  --pp-ink-text:#1b2333; --pp-muted:#6b7280;
}
*{box-sizing:border-box}
body{font-family:'Source Sans 3',system-ui,sans-serif;background:var(--pp-cream);color:var(--pp-ink-text);margin:0}
.pp{background:var(--pp-cream)}
.pp-wrap{max-width:1120px;margin:0 auto;padding:22px 20px 56px}

.pp-hero{position:relative;border-radius:18px;overflow:hidden;background:var(--pp-navy);color:#fffdf8;background-size:cover;background-position:center;margin-bottom:16px}
.pp-hero.has-photo::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,21,48,.84) 0%,rgba(16,21,48,.7) 55%,rgba(16,21,48,.3) 100%)}
/* The rubber stamp, top right, web widths only. */
.pp-herostamp{position:absolute;right:34px;top:30px;width:190px;height:190px;z-index:2;color:var(--st-ink,#ecaf18);transform:rotate(10deg);isolation:isolate;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));animation:ppStampIn .7s cubic-bezier(.2,1.4,.4,1) .15s both}
.pp-herostamp::before{content:'';position:absolute;inset:-4%;border-radius:50%;z-index:-1}
.pp-herostamp svg{position:absolute;inset:0;width:100%;height:100%}
.pp-herostamp-mk{position:absolute;inset:33%;display:grid;place-items:center;color:inherit;font-size:56px;line-height:1}
.pp-herostamp-mk .pp-ico{width:100%;height:100%}
.pp-herostamp.is-dark-ink{filter:drop-shadow(0 0 .6px rgba(255,253,248,.95)) drop-shadow(0 0 2.5px rgba(255,253,248,.85)) drop-shadow(0 0 8px rgba(255,253,248,.5))}
.pp-herostamp.is-dark-ink::before{background:radial-gradient(circle,rgba(255,253,248,.62) 0%,rgba(255,253,248,.42) 58%,rgba(255,253,248,0) 72%)}
.pp-herostamp.is-light-ink{filter:drop-shadow(0 0 .6px rgba(8,11,28,.95)) drop-shadow(0 0 2.5px rgba(8,11,28,.8)) drop-shadow(0 0 8px rgba(8,11,28,.55))}
.pp-herostamp.is-light-ink::before{background:radial-gradient(circle,rgba(8,11,28,.55) 0%,rgba(8,11,28,.36) 58%,rgba(8,11,28,0) 72%)}
@keyframes ppStampIn{from{transform:rotate(10deg) scale(1.3);opacity:0}to{transform:rotate(10deg) scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.pp-herostamp{animation:none}}
@media (max-width:820px){.pp-herostamp{display:none}}
.pp-hero-in{position:relative;padding:40px 36px 34px;max-width:640px}
.pp-eyebrow{font:700 12px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,253,248,.72);margin-bottom:10px;display:flex;align-items:center;gap:7px}
.pp-eyebrow-ic{display:flex}
.pp-eyebrow-ic .pp-ico{width:16px;height:16px}
.pp-state{color:var(--pp-gold)}
.pp-state--live{color:#5cc48c}
.pp-state--paused{color:var(--pp-gold)}
.pp-state--ended{color:rgba(255,253,248,.5)}
.pp-hero h1{margin:0 0 6px;font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:40px;line-height:1.05;letter-spacing:-.02em}
.pp-dates{margin:0 0 14px;font:600 16px 'DM Sans',sans-serif;color:var(--pp-gold)}
.pp-desc{margin:0 0 18px;font-size:16px;line-height:1.55;color:rgba(255,253,248,.88);max-width:56ch}
.pp-stats{display:flex;gap:26px;margin:0 0 22px;flex-wrap:wrap}
.pp-stats div{display:flex;flex-direction:column}
.pp-stats b{font:800 26px 'DM Sans',sans-serif;line-height:1;color:#fffdf8}
.pp-stats span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,253,248,.62);margin-top:4px}
.pp-cta{display:inline-block;background:var(--pp-gold);color:var(--pp-navy);font:800 15px 'DM Sans',sans-serif;padding:13px 22px;border-radius:10px;text-decoration:none}
.pp-cta:hover{background:#f5c23a}
.pp-cta-sub{margin:12px 0 0;font-size:13.5px;color:rgba(255,253,248,.7);max-width:48ch}
.pp-appbadges{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:2px 0 0}
.pp-appbadges a{display:block}
.pp-appbadges img{display:block;height:46px;width:auto}

.pp-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;margin-top:28px;align-items:start}
.pp-board,.pp-stops{min-width:0}
.pp h2{margin:0 0 12px;font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:22px;color:var(--pp-navy)}
.pp-board h2 + .pp-rows{margin-top:0}
.pp-empty{margin:0;padding:22px;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;color:var(--pp-muted);font-size:15px}
.pp-copy{margin:0 0 20px;font-size:15px;line-height:1.6;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;padding:16px 18px}

.pp-rows{list-style:none;margin:0 0 22px;padding:0;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;overflow:hidden}
.pp-row{display:grid;grid-template-columns:34px 38px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--pp-line)}
.pp-row:first-child{border-top:0}
.pp-row.is-top{background:#fdf6e1}
.pp-rank{font:800 15px 'DM Sans',sans-serif;color:var(--pp-gold-ink);text-align:center}
.pp-av{width:38px;height:38px;border-radius:10px;overflow:hidden;background:#e9ebf5;display:flex;align-items:center;justify-content:center}
.pp-av img{width:100%;height:100%;object-fit:cover;display:block}
.pp-av i{font:800 15px 'DM Sans',sans-serif;font-style:normal;color:var(--pp-navy)}
.pp-name{font-weight:700;font-size:15px;color:var(--pp-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-stamps{font-size:13px;color:var(--pp-muted);white-space:nowrap}
.pp-points{font:800 16px 'DM Sans',sans-serif;color:var(--pp-navy);font-variant-numeric:tabular-nums;min-width:56px;text-align:right}

/* The stops: a two-row carousel (owner 09-28). Cards keep their size; a column
   of two slides left every 3 s, arrows step it, hovering holds it. */
.pp-stopwrap{position:relative;overflow:hidden;--pp-cols:3}
.pp-stoplist{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:calc((100% - (var(--pp-cols) - 1) * 12px) / var(--pp-cols));gap:12px;
  transition:transform .45s cubic-bezier(.25,.46,.45,.94);will-change:transform}
.pp-stop{display:flex;align-items:center;gap:12px;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;padding:10px;text-decoration:none;color:inherit;min-width:0}
.pp-stop:hover{border-color:var(--pp-gold)}
.pp-stop img,.pp-stop-ph{width:64px;height:64px;border-radius:9px;object-fit:cover;flex:0 0 auto;background:#e9ebf5;display:block}
.pp-stop-t{display:flex;flex-direction:column;min-width:0}
.pp-stop-t b{font-size:15px;color:var(--pp-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-stop-t small{font-size:13px;color:var(--pp-muted);margin-top:2px}
.pp-stops-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.pp-stops-head h2{margin:0}
.pp-stops-nav{display:inline-flex;gap:8px;flex:0 0 auto}
.pp-stops-nav[hidden]{display:none}
.pp-stopnav{width:34px;height:34px;border-radius:50%;border:1px solid var(--pp-line);background:var(--pp-card);color:var(--pp-navy);cursor:pointer;display:grid;place-items:center;padding:0;transition:background .15s,border-color .15s,color .15s}
.pp-stopnav svg{width:16px;height:16px}
.pp-stopnav:hover{background:var(--pp-navy);border-color:var(--pp-navy);color:#fffdf8}
.pp-stopdots{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:12px;flex-wrap:wrap}
.pp-stopdots[hidden]{display:none}
.pp-stopdot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(16,21,48,.22);cursor:pointer;transition:background .18s ease,width .18s ease}
.pp-stopdot.is-on{background:var(--pp-gold);width:18px;border-radius:999px}
@media (prefers-reduced-motion:reduce){.pp-stoplist{transition:none}}

.pp-rules{margin-top:26px}   /* full content width, like the sections above it */
.pp-prize{margin-top:22px}
.pp-prize .pp-copy{margin:0;background:#fdf6e1;border-color:#f1dfa6}
.pp-mapsec{margin-top:26px}
.pp-map{height:440px;border-radius:14px;overflow:hidden;border:1px solid var(--pp-line);background:#e9eef1}
.pp-map .maplibregl-ctrl-attrib{font-size:10px}
.pp-map-pin{position:relative;display:block;width:30px;height:30px;cursor:pointer}
.pp-map-pin svg{width:30px;height:30px;display:block;filter:drop-shadow(0 2px 4px rgba(12,18,32,.35))}
.pp-map-lbl{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:3px;z-index:1;background:#fff;color:#101530;font:600 11px 'DM Sans',sans-serif;line-height:1.2;padding:2px 7px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 4px rgba(12,18,32,.3);pointer-events:none}
.pp-rules-list{list-style:none;margin:0 0 8px;padding:6px 18px;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px}
.pp-rules-list li{position:relative;padding:11px 0 11px 20px;font-size:15px;line-height:1.5;color:var(--pp-ink-text);border-top:1px solid var(--pp-line)}
.pp-rules-list li:first-child{border-top:0}
.pp-rules-list li::before{content:'';position:absolute;left:2px;top:18px;width:7px;height:7px;border-radius:50%;background:var(--pp-gold)}
.pp-rules h3{margin:18px 0 8px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:15px;color:var(--pp-navy)}
.pp-rules-legal{max-height:460px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;padding:16px 18px;font-size:14px;line-height:1.62;color:var(--pp-ink-text)}
.pp-rules-legal>:first-child{margin-top:0}
.pp-rules-legal h4{font-family:'DM Sans',sans-serif;font-weight:800;font-size:16px;color:var(--pp-navy);margin:18px 0 4px}
.pp-rules-legal h5{font-family:'DM Sans',sans-serif;font-weight:700;font-size:14.5px;color:var(--pp-navy);margin:16px 0 4px}
.pp-rules-legal h6{font-family:'DM Sans',sans-serif;font-weight:700;font-size:14px;color:var(--pp-navy);margin:16px 0 4px}
.pp-rules-legal p{margin:0 0 10px}
.pp-rules-legal ul{margin:0 0 10px;padding-left:20px}
.pp-rules-legal li{margin:0 0 5px}
.pp-rules-legal a{color:var(--pp-gold-ink);text-decoration:underline}
.pp-rules-legal strong{color:var(--pp-navy)}
.pp-about{color:var(--pp-gold);text-decoration:none;border-bottom:1px solid rgba(236,175,24,.6)}
.pp-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.pp-board-head h2{margin:0}
.pp-board-tools{display:inline-flex;align-items:center;gap:12px}
.pp-live-dot{display:inline-flex;align-items:center;gap:6px;font:800 12px 'DM Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#1f7a45}
.pp-live-dot i{width:8px;height:8px;border-radius:50%;background:#5cc48c;animation:ppBlink 1.1s ease-in-out infinite}
@keyframes ppBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.2;transform:scale(.6)}}
@media (prefers-reduced-motion:reduce){.pp-live-dot i{animation:none}}
.pp-share{appearance:none;border:1px solid var(--pp-line);background:var(--pp-card);color:var(--pp-navy);font:700 13px 'DM Sans',sans-serif;padding:7px 12px;border-radius:999px;cursor:pointer}
.pp-share:hover{border-color:var(--pp-gold)}
.pp-me[hidden]{display:none}
.pp-me{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#fdf6e1;border:1px solid #f1dfa6;font-size:14.5px;color:var(--pp-navy)}
.pp-me-k{font:800 11px 'DM Sans',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pp-gold-ink)}
.pp-me a{color:var(--pp-navy)}
.pp-row.is-me{background:#eef4ff}
.pp-name em{font-style:normal;font:800 10.5px 'DM Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-gold-ink);margin-left:4px}

@media (max-width:1000px){.pp-stopwrap{--pp-cols:2}}
@media (max-width:820px){
  .pp-cols{grid-template-columns:1fr}
  .pp-hero-in{padding:28px 22px 26px}
  .pp-hero h1{font-size:30px}
  .pp-stopwrap{--pp-cols:1}
  .pp-row{grid-template-columns:28px 34px minmax(0,1fr) auto;gap:10px}
  .pp-stamps{display:none}
  .pp-map{height:340px}
}
