.pilgrim .pg{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px clamp(24px,4vw,56px)}
.pilgrim .pg-map,.pilgrim .pg-panel,.pilgrim .pg-list{grid-column:1/-1;min-width:0}

/* one atlas plate: ocean panel, calm land */
.pilgrim .pg-map{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.pilgrim .pg-geo{position:relative}
.pilgrim .pg-map svg{display:block;width:100%;height:auto}
.pilgrim .pg-land{fill:rgba(242,237,228,.15)}

/* numbered stops */
.pilgrim .pg-stop{position:absolute;left:var(--x);top:var(--y);width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;transform:translate(var(--dx,0),var(--dy,0))}
.pilgrim .pg-dot{position:absolute;left:11px;top:11px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface);color:var(--accent-ink);font:600 14px/1 var(--font-body);font-variant-numeric:tabular-nums;transition:transform 180ms var(--ease-state)}
.pilgrim .pg-stop:hover .pg-dot{transform:scale(1.08)}
.pilgrim .pg-stop:active .pg-dot{transform:scale(1.02)}
.pilgrim .pg-stop.on .pg-dot{transform:scale(1.14)}
.pilgrim .pg-stop.on::after{content:"";position:absolute;left:4px;top:4px;width:36px;height:36px;border-radius:50%;border:1px solid var(--ink);box-sizing:border-box}
.pilgrim .pg-stop:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}

/* panel: place as the head, kitchen as the lead */
.pilgrim .pg-panel{border-top:1px solid var(--line);padding-top:20px}
.pilgrim .pg-panel h3{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(30px,2.5vw,38px);line-height:1.08;letter-spacing:-.012em;color:var(--ink);text-wrap:balance}
.pilgrim .pg-k{margin:10px 0 0;font-size:18px;font-weight:500;line-height:1.45;color:var(--ink);text-wrap:balance}
.pilgrim .pg-body{margin-top:18px}
.pilgrim .pg-body p,.pilgrim .pg-text p{margin:0;font-size:17px;line-height:1.6;color:var(--mute);max-width:62ch}
.pilgrim .pg-ch{list-style:none;margin:0;padding:0}
.pilgrim .pg-ch li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line)}
.pilgrim .pg-ch li:first-child{border-top:0;padding-top:0}
.pilgrim .pg-ch b{font-size:16px;font-weight:600;line-height:1.35}
.pilgrim .pg-ch span{font-size:15px;line-height:1.45;color:var(--mute);font-variant-numeric:tabular-nums}

/* list of stops */
.pilgrim .pg-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr}
.pilgrim .pg-item{position:relative;border-top:1px solid var(--line)}
.pilgrim .pg-item::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-state)}
.pilgrim .pg-item.on::before{transform:none}
.pilgrim .pg-row{display:grid;grid-template-columns:2.2ch 1fr;column-gap:10px;width:100%;min-height:48px;padding:8px 8px 8px 0;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.pilgrim .pg-row:hover{background:var(--hover-bg)}
.pilgrim .pg-row:active{background:var(--line)}
.pilgrim .pg-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.pilgrim .pg-num{grid-row:1/3;font-weight:600;font-size:15px;line-height:1.55;color:var(--mute);font-variant-numeric:tabular-nums}
.pilgrim .pg-item.on .pg-num{color:var(--accent)}
.pilgrim .pg-pl{font-weight:600;font-size:17px;line-height:1.4}
.pilgrim .pg-kt{font-size:15px;line-height:1.4;color:var(--mute)}
.pilgrim .pg-text{padding:0 0 16px calc(2.2ch + 10px)}
.pilgrim.on .pg-text{display:none}

@media (max-width:600px){
  .pilgrim .pg-geo{margin-block:28px}
  .pilgrim .pg-dot{font-size:14px}
  .pilgrim.on .pg-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  .pilgrim.on .pg-kt{display:none}
  .pilgrim.on .pg-row{align-items:start;height:100%}
  .pilgrim.on .pg-num{grid-row:auto}
}
@media (max-width:760px){
  .pilgrim .pg-list{order:1}
  .pilgrim .pg-panel{order:2}
}
@media (min-width:900px){
  .pilgrim .pg-list{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;column-gap:24px}
  .pilgrim.on .pg-map{grid-column:1/9;grid-row:1}
  .pilgrim.on .pg-list{grid-column:1/9;grid-row:2}
  .pilgrim.on .pg-panel{grid-column:9/-1;grid-row:1/3;align-self:start}
}
@media (prefers-reduced-motion:reduce){
  .pilgrim .pg-dot,.pilgrim .pg-item::before{transition:none}
}

.pilgrim .sec-head{margin-bottom:40px}
@media (min-width:901px){.pilgrim .sec-head h2{max-width:none;font-size:clamp(40px,4.4vw,64px);white-space:nowrap}}
