/* /campus-pt/ — "Campus map": zone cards with map pins on a terrain grid, day timeline as a clock rail */
.p-campus-pt .pc--html{background:#E9EDE4}
.p-campus-pt .cpt{max-width:1140px;margin:0 auto}
.p-campus-pt .cpt-head{margin-bottom:30px;padding:clamp(26px,4vw,44px);background:var(--olive-900);color:#E3EAE4;background-image:radial-gradient(circle at 85% 30%,rgb(254 209 12 / .18) 0 60px,transparent 61px),repeating-linear-gradient(45deg,rgb(255 255 255 / .03) 0 2px,transparent 2px 14px)}
.p-campus-pt .cpt-head h1{max-width:22ch;margin:0 0 12px;font-size:clamp(30px,4.4vw,48px);line-height:1.08;color:#fff}
.p-campus-pt .cpt-lead{max-width:70ch;margin:0 0 12px;font-size:18px;line-height:1.75}
.p-campus-pt .cpt-head strong{color:var(--gold)}
.p-campus-pt .cpt-head .cpt-note{max-width:70ch;margin:0;font-size:15.5px;color:#C9D3CB}
.p-campus-pt .cpt-sec,.p-campus-pt .cpt-zone{margin-bottom:30px}
.p-campus-pt .cpt-sec>h2{margin:0 0 14px;font-size:clamp(24px,2.6vw,30px);color:var(--olive-900)}
.p-campus-pt .cpt p,.p-campus-pt .cpt li{font-size:16.5px;line-height:1.6}
.p-campus-pt .cpt-zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:34px;padding:22px;background:#DCE3D3;background-image:linear-gradient(rgb(46 77 52 / .08) 1px,transparent 1px),linear-gradient(90deg,rgb(46 77 52 / .08) 1px,transparent 1px);background-size:40px 40px;border:2px dashed rgb(var(--army-rgb) / .4)}

.p-campus-pt .cpt-zone{position:relative;margin:0;padding:22px 18px 16px;background:#fff;border-radius:6px;box-shadow:0 6px 14px rgb(18 27 20 / .1)}
.p-campus-pt .cpt-zone::before{content:"";position:absolute;right:16px;top:-12px;width:26px;height:26px;background:var(--maroon);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:inset 0 0 0 7px var(--maroon),inset 0 0 0 13px #fff}
.p-campus-pt .cpt-zone h2{margin:0 30px 8px 0;font-size:21px;color:var(--army)}
.p-campus-pt .cpt-zone p{margin:0 0 10px}
.p-campus-pt .cpt-zone ul{margin:0;padding:0;list-style:none}
.p-campus-pt .cpt-zone li{position:relative;padding:4px 0 4px 18px}
.p-campus-pt .cpt-zone li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--army)}
.p-campus-pt .cpt>.cpt-zone{margin-bottom:30px;padding:22px}
.p-campus-pt .cpt-sec--day{padding:24px;background:#fff}
.p-campus-pt .cpt-schedule{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;margin:0;padding:0;list-style:none}
.p-campus-pt .cpt-schedule li{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.p-campus-pt .cpt-schedule time{position:relative;padding-left:30px;font-family:var(--ff-head);font-weight:800;font-size:18px;color:var(--maroon)}
.p-campus-pt .cpt-schedule time::before{content:"";position:absolute;left:0;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;border:2px solid var(--olive-900);background:linear-gradient(var(--olive-900),var(--olive-900)) 50% 3px/2px 7px no-repeat,linear-gradient(90deg,var(--olive-900),var(--olive-900)) 9px 50%/6px 2px no-repeat}
.p-campus-pt .cpt-why{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.p-campus-pt .cpt-why li{padding:16px;background:#fff;border-left:5px solid var(--gold)}
.p-campus-pt .cpt-sec--final{padding:24px;background:var(--army);color:#E3EAE4}
.p-campus-pt .cpt-sec--final h2{color:var(--gold)}
.p-campus-pt .cpt-sec--final strong{color:#fff}
.p-campus-pt .cpt-updated{font-size:14px;color:var(--muted)}
@media (max-width:900px){
  .p-campus-pt .cpt-zones{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-campus-pt .cpt-schedule{grid-template-columns:1fr}
}
@media (max-width:640px){
  .p-campus-pt .cpt-head{padding:22px 16px}
  .p-campus-pt .cpt-zones{grid-template-columns:1fr;padding:16px 12px}

  .p-campus-pt .cpt-schedule li{grid-template-columns:1fr;gap:2px}
  .p-campus-pt .cpt-why{grid-template-columns:1fr}
  .p-campus-pt .cpt-sec--day,.p-campus-pt .cpt-sec--final{padding:18px 14px}
}
