/* ==========================================================================
   Plan group: School (course.php), Open dates (calendar.php), Visit (visit.php)
   ========================================================================== */

/* ---- shared ------------------------------------------------------------- */

.dz-pl-hint{font-family:var(--f-body);font-size:13px;letter-spacing:0;text-transform:none;color:var(--mut)}
.dz-pl-gap-top{padding-top:clamp(48px,6vw,80px)}
.dz-ph.teal .dz-ph-art{background:#0B4A52}

/* ---- school: the ladder ------------------------------------------------- */

.dz-pl-ladder{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;align-items:end}
.dz-pl-ladder li{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:6px;
  min-height:calc(230px + var(--i,0) * 26px);position:relative;overflow:hidden}
.dz-pl-ladder .lv{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--lake)}
.dz-pl-ladder strong{font-family:var(--f-display);font-size:18px;line-height:1.2}
.dz-pl-ladder .jp{font-family:var(--f-mono);font-size:12px;color:var(--accent)}
.dz-pl-ladder .dt{font-size:13.5px;line-height:1.45;color:var(--ink-2)}
.dz-pl-ladder li.top{background:var(--ink);border-color:var(--ink);color:#fff;padding-bottom:96px}
.dz-pl-ladder li.top .lv,.dz-pl-ladder li.top .jp{color:var(--dawn)}
.dz-pl-ladder li.top .dt{color:#C9D2DC}
.dz-pl-ladder li.top svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:90px}
@media (max-width:760px){
  .dz-pl-ladder{grid-template-columns:1fr;gap:8px;border-left:2px solid var(--ink);padding-left:18px;align-items:stretch}
  .dz-pl-ladder li{min-height:0}
  .dz-pl-ladder li.top{padding-bottom:80px}
  .dz-pl-ladder li.top svg{height:70px}
}

/* ---- school: course options --------------------------------------------- */

.dz-pl-country{flex:0 0 260px;max-width:100%}
.dz-pl-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;align-items:stretch}
.dz-pl-course{border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;gap:12px;background:#fff;position:relative}
.dz-pl-course.is-featured{border:2px solid var(--lake)}
.dz-pl-course .dz-dl{font-size:15px;gap:10px 16px;margin-top:4px}
.dz-pl-course-price{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-2);display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.dz-pl-course-price b{font-family:var(--f-display);font-weight:800;font-size:34px;line-height:1;letter-spacing:-.01em}
.dz-pl-course-price span{font-size:13.5px;color:var(--mut)}
@media (max-width:480px){
  .dz-pl-courses{grid-template-columns:1fr}
  .dz-pl-course{padding:22px}
  .dz-pl-course .dz-dl{grid-template-columns:1fr;gap:2px}
  .dz-pl-course .dz-dl dd{margin-bottom:8px}
}

/* ---- school: includes and needs ----------------------------------------- */

.dz-pl-need{display:flex;flex-wrap:wrap;gap:24px}
.dz-pl-need-main{flex:2 1 600px;min-width:0;display:grid;gap:20px}
.dz-pl-need-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;gap:18px}
.dz-pl-need-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px 32px}
.dz-pl-need-cols .dz-mono{margin:0 0 12px;color:var(--lake)}
.dz-pl-need-cols .dz-checks{font-size:15.5px}
.dz-pl-need-side{flex:1 1 280px;min-width:0;align-self:flex-start;background:var(--sand);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:12px}
.dz-pl-season-list{list-style:none;margin:0;padding:0;display:grid}
.dz-pl-season-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:12px 0;border-top:1px solid var(--line);font-size:15px}
.dz-pl-season-list li:last-child{border-bottom:1px solid var(--line)}
.dz-pl-season-list span{font-family:var(--f-mono);font-size:13px;color:var(--ink-2)}
@media (max-width:480px){.dz-pl-need-card,.dz-pl-need-side{padding:22px}}

/* ---- calendar ----------------------------------------------------------- */

.dz-pl-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 20px;font-size:14px;color:var(--ink-2)}
.dz-pl-legend li{display:flex;gap:8px;align-items:center}
.dz-pl-legend i{width:14px;height:14px;border-radius:4px;flex:none;border:1px solid}
.dz-pl-legend .k-open{background:var(--lake-sf);border-color:var(--lake)}
.dz-pl-legend .k-few{background:var(--warn-sf);border-color:#B9781E}
.dz-pl-legend .k-full{background:#E9E5DD;border-color:#B9B2A4}
.dz-pl-legend .k-off{background:var(--paper);border-color:var(--line)}

.dz-pl-cal-wrap{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.dz-pl-cal-main{flex:2 1 640px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(16px,2.4vw,28px)}
.dz-pl-cal-side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:18px}
.dz-pl-cal-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.dz-pl-cal-nav h2{margin:0;font-family:var(--f-display);font-weight:700;font-size:clamp(21px,2.2vw,26px);text-align:center}
.dz-pl-cal-arrow{width:44px;height:44px;flex:none;border:1px solid #CFC9BD;background:#fff;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.dz-pl-cal-arrow:hover{border-color:var(--ink);color:var(--ink)}
.dz-pl-cal-arrow.off{opacity:.35;pointer-events:none}
.dz-pl-cal-arrow svg{width:18px;height:18px}
.dz-pl-cal-months{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.dz-pl-cal-months .dz-chip{min-height:40px;padding:0 14px;font-size:13.5px}
.dz-pl-cal-months .dz-chip small{font-weight:500;color:inherit;opacity:.7;margin-left:6px;font-size:12px}
.dz-pl-cal-dow,.dz-pl-cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.dz-pl-cal-dow{margin-bottom:8px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;color:var(--mut);text-align:center}
.dz-pl-cal-days > *{min-height:88px;border-radius:8px;padding:10px;display:flex;flex-direction:column;justify-content:space-between;gap:4px;text-decoration:none;border:1px solid transparent}
.dz-pl-cal-days strong{font-family:var(--f-display);font-size:20px;line-height:1}
.dz-pl-cal-days small{font-size:12px;font-weight:600;line-height:1.2}
.dz-pl-cal-days .d-open{background:var(--lake-sf);border-color:#9CC7CB;color:var(--ink)}
.dz-pl-cal-days .d-open small{color:var(--lake)}
.dz-pl-cal-days .d-few{background:var(--warn-sf);border-color:#E3BE86;color:var(--ink)}
.dz-pl-cal-days .d-few small{color:var(--warn)}
.dz-pl-cal-days a:hover{border-color:var(--ink);color:var(--ink)}
.dz-pl-cal-days .d-full{background:#E9E5DD;color:#6A7280}
.dz-pl-cal-days .d-off{background:var(--paper);color:#9AA1AA}
.dz-pl-cal-days .d-blank{background:transparent}
.dz-pl-cal-note{margin:16px 0 0;font-size:14px;color:var(--mut)}
@media (max-width:640px){
  .dz-pl-cal-dow,.dz-pl-cal-days{gap:4px}
  .dz-pl-cal-dow span{font-size:0}
  .dz-pl-cal-dow span::first-letter{font-size:11.5px}
  .dz-pl-cal-days > *{min-height:52px;padding:6px 4px;align-items:center;justify-content:center;text-align:center}
  .dz-pl-cal-days strong{font-size:16px}
  .dz-pl-cal-days small{display:none}
}

.dz-pl-yearbar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}
.dz-pl-yearbar > div{display:flex;flex-direction:column;gap:8px;align-items:stretch;text-align:center}
.dz-pl-yearbar i{display:block;height:44px;border-radius:6px;background:#E9E5DD}
.dz-pl-yearbar .on i{background:var(--lake)}
.dz-pl-yearbar span{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;color:var(--mut);text-transform:uppercase}
.dz-pl-yearbar .on span{color:var(--ink);font-weight:600}
@media (max-width:640px){
  .dz-pl-yearbar{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dz-pl-yearbar i{height:32px}
}
.dz-pl-seasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:28px}
.dz-pl-season{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:8px}
.dz-pl-season .when{font-family:var(--f-mono);font-size:13px;color:var(--lake);font-weight:600}

.dz-pl-wait{background:var(--ink);color:#E6ECF2;border-radius:14px;padding:clamp(22px,3vw,28px);display:flex;flex-direction:column;gap:12px}
.dz-pl-wait .dz-h3{color:#fff}
.dz-pl-wait p{margin:0;font-size:15px;line-height:1.6;color:#C9D2DC}
.dz-pl-wait .field .label,.theme-dzn .dz-pl-wait .field .label{color:#E6ECF2}
.dz-pl-wait .field .label .req{color:#F07A6F}
.dz-pl-wait .flash{margin-bottom:6px}
.dz-pl-wait .err{color:#F7B3AB}
.dz-pl-policy{display:flex;flex-direction:column;gap:14px}
.dz-pl-policy p{margin:0;font-size:16px;line-height:1.65;color:var(--ink-2)}
.dz-pl-callout{border-left:4px solid var(--accent);background:#fff;border-radius:0 10px 10px 0;padding:16px 20px;font-size:15.5px;line-height:1.55;color:var(--ink)}
.dz-pl-callout strong{display:block;font-family:var(--f-display);font-size:18px;margin-bottom:4px}

/* ---- visit -------------------------------------------------------------- */

.dz-pl-onpage{display:flex;flex-wrap:wrap;gap:8px}
.dz-pl-ways{display:grid;gap:14px}
.dz-pl-way{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px}
.dz-pl-way svg{flex:none;width:36px;height:36px;color:var(--lake)}
.dz-pl-way strong{display:block;font-family:var(--f-display);font-size:19px;margin-bottom:4px}
.dz-pl-way span{font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.dz-pl-map{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column}
.dz-pl-map iframe{display:block;width:100%;height:340px;border:0}
.dz-pl-map-panel{position:relative;min-height:280px;background:var(--lake-sf);display:flex;align-items:flex-end;padding:24px;overflow:hidden}
.dz-pl-map-panel svg{position:absolute;inset:0;width:100%;height:100%}
.dz-pl-map-panel .pin{position:relative;background:#fff;border-radius:10px;padding:12px 16px;box-shadow:var(--shadow);font-size:14px;line-height:1.4;max-width:100%}
.dz-pl-map-panel .pin b{display:block;font-family:var(--f-display);font-size:17px}
.dz-pl-map figcaption{padding:18px 22px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;font-size:15px}
.dz-pl-map figcaption .dz-dl{font-size:14.5px;gap:6px 16px;flex:1 1 260px}
.dz-pl-pickup{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;margin-top:24px;padding:20px 24px;background:var(--lake);color:#E6F1F2;border-radius:var(--r-lg)}
.dz-pl-pickup strong{font-family:var(--f-display);font-size:20px;color:#fff;display:block}
.dz-pl-pickup span{font-size:15.5px;line-height:1.55}
.dz-pl-bring{display:flex;flex-wrap:wrap;gap:40px 64px;align-items:flex-start}
.dz-pl-bring > *{flex:1 1 380px;min-width:0}
.dz-pl-bring img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block;margin-top:8px}
@media (max-width:480px){
  .dz-pl-way{padding:18px}
  .dz-pl-map figcaption .dz-dl{grid-template-columns:1fr;gap:2px}
  .dz-pl-map figcaption .dz-btn{width:100%}
}
