/* ============================= CANDIDATES PAGE =============================
   Chronological, editorial "before / arrival / during / after" guide.
   Distinct from the homepage's photo-rail centre-journey scene: here the
   emphasis is informational — numbered text sections paired with real
   photography, plus a distinctly-styled checklist card.
   ========================================================================== */

/* ---- Hero ---- */
.candidate-hero{
  background:var(--navy-900); color:#fff;
  padding-top:calc(var(--section-pad-y) + 4rem);
  padding-bottom:var(--section-pad-y);
}
.candidate-hero-inner{
  display:grid; grid-template-columns:1.05fr .95fr; gap:var(--space-8);
  align-items:end;
}
.candidate-hero-copy h1{ font-size:var(--fs-hero); max-width:16ch; }
.candidate-hero-copy p{ margin-top:1.5rem; color:rgba(255,255,255,.66); font-size:var(--fs-body-lg); max-width:50ch; }
.candidate-hero-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/5; }
.candidate-hero-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){ .candidate-hero-inner{ grid-template-columns:1fr; } }

/* ---- Booking intro row ---- */
.booking-row{ display:grid; grid-template-columns:1.15fr .85fr; gap:var(--space-8); align-items:start; }
.booking-copy h2{ font-family:var(--font-display); font-size:var(--fs-display-md); max-width:18ch; margin:1.25rem 0 1.5rem; }
.booking-copy p{ font-size:var(--fs-body-lg); color:var(--ink-soft); max-width:52ch; }
.booking-copy p + p{ margin-top:1.1rem; }
.booking-card h3{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sky-600); margin-bottom:1.4rem; }
.booking-card ul{ display:flex; flex-direction:column; gap:1rem; }
.booking-card li{ display:flex; gap:.75rem; align-items:flex-start; font-size:.92rem; color:var(--ink-soft); }
.booking-card li::before{
  content:''; flex:0 0 auto; width:6px; height:6px; margin-top:.5em;
  border-radius:50%; background:var(--sky-500);
}
@media (max-width:860px){ .booking-row{ grid-template-columns:1fr; } }

/* ---- Journey steps ---- */
.journey-intro{ margin-bottom:var(--space-7); max-width:60ch; }
.journey-intro h2{ font-family:var(--font-display); font-size:var(--fs-display-md); max-width:20ch; margin:1.25rem 0 1.25rem; }
.journey-intro p{ font-size:var(--fs-body-lg); color:var(--ink-soft); }

.journey-steps{ display:flex; flex-direction:column; }
.journey-step{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--space-8);
  align-items:center;
  padding-block:var(--space-9);
  border-top:1px solid var(--line-on-light);
}
.journey-step:last-child{ border-bottom:1px solid var(--line-on-light); }
.journey-step.is-reverse .step-photo{ order:2; }
.journey-step.is-reverse .step-copy{ order:1; }
.step-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:5/4; }
.step-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.step-num{ font-family:var(--font-mono); font-size:.8rem; color:var(--sky-600); letter-spacing:.1em; }
.step-copy h3{ font-family:var(--font-display); font-size:var(--fs-display-md); margin:.9rem 0 1.1rem; max-width:18ch; }
.step-copy p{ color:var(--ink-soft); font-size:1.02rem; max-width:50ch; }
@media (max-width:800px){
  .journey-step{ grid-template-columns:1fr; }
  .journey-step.is-reverse .step-photo,
  .journey-step.is-reverse .step-copy{ order:initial; }
}

/* ---- Accessibility (dark) ---- */
.access-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); align-items:center; }
.access-copy h2{ font-size:var(--fs-display-md); max-width:16ch; margin:1.25rem 0 1.5rem; }
.access-copy p{ color:rgba(255,255,255,.68); font-size:var(--fs-body-lg); max-width:44ch; }
.access-photos{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.access-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4; }
.access-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.access-photo:nth-child(2){ margin-top:2.5rem; }
@media (max-width:900px){ .access-row{ grid-template-columns:1fr; } .access-photos{ margin-top:.5rem; } }
@media (max-width:560px){ .access-photos{ grid-template-columns:1fr; } .access-photo:nth-child(2){ margin-top:0; } }

/* ---- Checklist card ---- */
.checklist-card{ padding:var(--space-7); }
.checklist-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-7); }
.checklist-col h3{ font-family:var(--font-display); font-size:1.3rem; margin-bottom:1.4rem; }
.checklist{ display:flex; flex-direction:column; gap:1.05rem; }
.checklist li{ display:flex; gap:.85rem; align-items:flex-start; font-size:.98rem; color:var(--ink-soft); line-height:1.5; }
.check-ico{
  flex:0 0 auto; width:22px; height:22px; margin-top:.05rem;
  border-radius:50%; background:var(--sky-100); color:var(--sky-700);
  display:flex; align-items:center; justify-content:center;
}
.check-ico svg{ width:12px; height:12px; }
@media (max-width:700px){ .checklist-grid{ grid-template-columns:1fr; gap:var(--space-6); } }

/* ---- Why choose (candidate angle) ---- */
.benefit-row{ display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--space-8); align-items:center; }
.benefit-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4; }
.benefit-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.benefit-copy h2{ font-size:var(--fs-display-md); max-width:16ch; margin:1.25rem 0 1.25rem; }
.benefit-copy > p{ color:var(--ink-soft); font-size:var(--fs-body-lg); max-width:46ch; margin-bottom:1.5rem; }

/* Editorial numbered list — replaces a cramped small-card grid so the
   benefits read with the same confidence as the rest of the page. */
.benefit-list{ display:flex; flex-direction:column; border-top:1px solid var(--line-on-light); }
.benefit-item{
  display:grid; grid-template-columns:2.75rem 1fr; gap:1.1rem; align-items:start;
  padding-block:1.5rem; border-bottom:1px solid var(--line-on-light);
  transition:padding-left .4s var(--ease-premium), background .4s var(--ease-out);
}
.benefit-item:hover{ padding-left:.6rem; background:var(--white); }
.benefit-idx{ font-family:var(--font-mono); font-size:.85rem; color:var(--sky-600); padding-top:.2rem; }
.benefit-item h4{ font-family:var(--font-display); font-size:1.2rem; margin-bottom:.4rem; }
.benefit-item p{ font-size:.95rem; color:var(--ink-soft); max-width:44ch; }
@media (max-width:900px){ .benefit-row{ grid-template-columns:1fr; } }

/* ---- CTA ---- */
.candidate-cta{ background:var(--navy-900); color:#fff; padding-block:calc(var(--section-pad-y) * 1.2); text-align:center; position:relative; overflow:hidden; }
.candidate-cta h2{ font-size:var(--fs-display-xl); max-width:16ch; margin:1.25rem auto 0; }
.candidate-cta > .wrap > p:not(.candidate-cta-contact){ color:rgba(255,255,255,.65); max-width:46ch; margin:1.5rem auto 0; font-size:var(--fs-body-lg); }
.candidate-cta .cta-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.5rem; }
.candidate-cta-contact{
  margin-top:2rem; font-family:var(--font-mono); font-size:.8rem; letter-spacing:.04em;
  color:rgba(255,255,255,.5);
}
.candidate-cta-contact a{ color:rgba(255,255,255,.75); }
.candidate-cta-contact a:hover{ color:var(--sky-400); }
