/* ======================================================
   RESIDENCY PAGE – 2 COLUMN FIXED LAYOUT
   LEFT: INFO | RIGHT: FORM
====================================================== */

.residency-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr; /* LEFT content | RIGHT form */
  gap: 50px;
  align-items: flex-start;
}

/* ======================================================
   LEFT COLUMN – INFO / TERMS
====================================================== */

.residency-info h2,
.residency-info h3 {
  font-family: 'Playfair Display', serif;
  margin-bottom: 12px;
}

.residency-info p {
  color: #555;
  line-height: 1.7;
  margin-bottom: 18px;
}

.residency-info ul {
  margin-bottom: 18px;
  padding-left: 18px;
}

.residency-info li {
  margin-bottom: 8px;
  color: #444;
}

.terms-list {
  list-style: disc;
}

.note {
  font-size: 14px;
  color: #666;
  margin-top: 16px;
}

/* ======================================================
   RIGHT COLUMN – FORM WRAPPER
====================================================== */

.residency-form-wrapper {
  background: #ffffff;
  border: 1px solid #e8e3dc;
  border-radius: 16px;
  padding: 36px 38px; /* 🔥 fixed inner spacing */
}

/* ======================================================
   FORM BASE
====================================================== */

.residency-form {
  width: 100%;
}

/* Section title */
.form-section-title {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  margin-bottom: 22px;
}

/* Sub section titles */
.form-subtitle {
  font-size: 15px;
  font-weight: 600;
  margin: 28px 0 14px;
}

/* ======================================================
   GRID FIELDS (ALWAYS 2 COLUMN)
====================================================== */

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px 20px;   /* row gap | column gap */
  margin-bottom: 18px;
}

/* ======================================================
   INPUTS & TEXTAREA
====================================================== */

.residency-form input,
.residency-form textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #ddd6ce;
  border-radius: 10px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  box-sizing: border-box;
}

/* textarea spacing */
.residency-form textarea {
  resize: vertical;
  margin-bottom: 16px;
}

/* prevent double spacing inside grid */
.form-grid input {
  margin-bottom: 0;
}

/* ======================================================
   FILE INPUT LABELS
====================================================== */

.file-label {
  display: block;
  margin: 14px 0 8px;
  font-size: 14px;
  color: #444;
}

/* ======================================================
   CHECKBOX
====================================================== */

.checkbox {
  display: block;
  margin: 22px 0 26px;
  font-size: 14px;
  line-height: 1.5;
}

/* ======================================================
   SUBMIT BUTTON
====================================================== */

.residency-form .btn-primary {
  margin-top: 10px;
  padding: 14px 30px;
}

/* ======================================================
   RESPONSIVE (ONLY VERY SMALL MOBILES)
====================================================== */

@media (max-width: 640px) {

  .residency-layout {
    grid-template-columns: 1fr; /* stack only on very small screens */
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .residency-form-wrapper {
    padding: 28px 22px;
  }
}
/* ===== CATEGORY / DISCIPLINE – HARD LEFT ALIGN FIX ===== */

.discipline-grid-form {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px 40px;
  margin: 15px 0 25px;
}

/* Each option */
.discipline-grid-form label {
  display: grid;
  grid-template-columns: 18px auto;   /* 🔥 checkbox | text */
  align-items: start;
  column-gap: 10px;

  font-size: 14px;
  color: #444;
  line-height: 1.4;
  cursor: pointer;
}

/* Checkbox */
.discipline-grid-form input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 2px 0 0 0;   /* 🔥 exact top alignment */
}

/* Prevent word break */
.discipline-grid-form span {
  white-space: nowrap;
}

/* Mobile */
@media (max-width: 768px) {
  .discipline-grid-form {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 25px;
  }
}




/* ===================== Residency-style landing (shared: competition & conference) ===================== */
html { scroll-behavior: smooth; }

.hero-badge {
  display: inline-flex; align-items: center; gap: 9px;
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff; font-family: 'Inter', sans-serif;
  font-size: 0.78rem; font-weight: 700; letter-spacing: 2px;
  text-transform: uppercase; padding: 0.5rem 1.15rem;
  border-radius: 999px; margin-top: 1.1rem;
  text-decoration: none; cursor: pointer;
}
.hero-badge .dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: #7CFC9A;
  box-shadow: 0 0 0 0 rgba(124,252,154,0.7);
  animation: pulseDot 1.8s infinite;
}
@keyframes pulseDot {
  0%   { box-shadow: 0 0 0 0 rgba(124,252,154,0.6); }
  70%  { box-shadow: 0 0 0 9px rgba(124,252,154,0); }
  100% { box-shadow: 0 0 0 0 rgba(124,252,154,0); }
}

/* Landing container */
.res-landing { max-width: 1000px; margin: 0 auto; padding: 5rem 2rem 4rem; }

.res-intro { text-align: center; max-width: 820px; margin: 0 auto 3.5rem; }
.res-eyebrow { display:inline-block; font-size:0.8rem; letter-spacing:3px; text-transform:uppercase; color:#c05621; font-weight:700; margin-bottom:0.9rem; }
.res-intro .res-title { font-family:'Playfair Display',serif; font-size:2.8rem; line-height:1.12; color:#1a1a1a; margin-bottom:0.7rem; }
.res-tagline { font-family:'Playfair Display',serif; font-style:italic; font-size:1.3rem; color:#c05621; margin-bottom:1.3rem; }
.res-lead { font-size:1.06rem; line-height:1.8; color:#55504a; margin-bottom:1.9rem; }

.apply-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  padding:1.05rem 2.6rem;
  background:linear-gradient(135deg,#c05621 0%,#9c4318 100%);
  color:#fff; font-weight:600; font-size:1.05rem;
  border:none; border-radius:999px; cursor:pointer;
  font-family:'Inter',sans-serif;
  box-shadow:0 12px 30px rgba(192,86,33,0.3);
  transition:transform .3s ease, box-shadow .3s ease;
  text-decoration:none;
}
.apply-cta:hover { transform:translateY(-3px); box-shadow:0 16px 38px rgba(192,86,33,0.42); }

/* Body content */
.res-body > p { color:#4a4a4a; line-height:1.85; margin-bottom:1.4rem; text-align:justify; font-size:1.02rem; }
.res-body h3 {
  font-family:'Playfair Display',serif;
  font-size:1.7rem; color:#1a1a1a; margin:2.6rem 0 1.2rem;
  position:relative; padding-bottom:0.7rem;
}
.res-body h3::after { content:''; position:absolute; left:0; bottom:0; width:46px; height:3px; border-radius:2px; background:#c05621; }
.res-body > h3:first-child { margin-top:0; }

.res-body ul { list-style:none; margin:1.2rem 0 1.8rem; }
.res-body ul li { position:relative; padding-left:2rem; margin-bottom:0.8rem; color:#4a4a4a; line-height:1.55; }
.res-body ul li::before {
  content:'\2713'; position:absolute; left:0; top:1px;
  width:20px; height:20px; border-radius:50%;
  background:rgba(192,86,33,0.12); color:#c05621;
  font-size:0.72rem; font-weight:700; display:grid; place-items:center;
}
.res-body ol { list-style:none; counter-reset:step; margin:1.2rem 0 1.8rem; }
.res-body ol li { position:relative; padding-left:2.6rem; margin-bottom:0.9rem; color:#4a4a4a; line-height:1.55; counter-increment:step; }
.res-body ol li::before {
  content:counter(step); position:absolute; left:0; top:-2px;
  width:28px; height:28px; border-radius:50%;
  background:linear-gradient(135deg,#c05621,#9c4318); color:#fff;
  font-size:0.8rem; font-weight:700; display:grid; place-items:center; font-family:'Inter',sans-serif;
}
.res-body strong { color:#1a1a1a; }

/* Discipline chips */
.res-body .discipline-inline { display:flex; flex-wrap:wrap; gap:0.6rem; margin:1.2rem 0 1.8rem; }
.res-body .discipline-inline span {
  font-size:0.85rem; font-weight:600; color:#8a4f2b;
  background:#f7ede2; border:1px solid #ecdccb;
  padding:0.5rem 1rem; border-radius:100px;
}

/* Optional card wrapper */
.res-card {
  background:#fff; border:1px solid #ece3d8; border-radius:18px;
  padding:2.3rem 2.4rem; box-shadow:0 12px 34px rgba(0,0,0,0.05); margin-bottom:1.8rem;
}
.res-card > h3:first-child { margin-top:0; }

/* Apply form section (hidden until revealed) */
.apply-section { display:none; background:#f4ece2; padding:4rem 2rem; }
.apply-section.active { display:block; }
.apply-wrap { max-width:820px; margin:0 auto; }
.apply-section .residency-form-wrapper { position:static; top:auto; }

#applyForm { scroll-margin-top: 110px; }

@media (max-width:760px){
  .res-landing{ padding:3.5rem 1.3rem; }
  .res-intro .res-title{ font-size:2.1rem; }
  .apply-section{ padding:3rem 1.2rem; }
}

.res-body h4 { font-family:'Playfair Display',serif; font-size:1.2rem; color:#c05621; margin:1.9rem 0 0.6rem; }
.res-body h4 + p + p strong, .res-body p strong { color:#1a1a1a; }

/* ===== Full-width card landing (competition / conference) ===== */
.res-landing.wide { max-width: 1680px; }

.res-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
  margin: 0 0 3rem;
}
.res-stat {
  background:#fff; border:1px solid #ece3d8; border-radius:14px;
  padding:1.5rem 1rem; text-align:center;
  display:flex; flex-direction:column; gap:0.5rem;
  box-shadow:0 10px 26px rgba(0,0,0,0.04);
  transition:transform .3s ease, box-shadow .3s ease;
}
.res-stat:hover { transform:translateY(-4px); box-shadow:0 16px 32px rgba(192,86,33,0.14); }
.rs-label { font-size:0.66rem; letter-spacing:1px; text-transform:uppercase; color:#c05621; font-weight:700; }
.rs-value { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:600; color:#1a1a1a; line-height:1.2; }

.res-duo { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:2rem; }

.res-card p { color:#55504a; line-height:1.8; margin-bottom:1rem; text-align:justify; }
.res-card-ic {
  display:grid; place-items:center; width:56px; height:56px; border-radius:14px;
  background:linear-gradient(135deg,#c05621,#9c4318); margin-bottom:1.2rem;
  box-shadow:0 8px 18px rgba(192,86,33,0.28);
}
.res-card-ic svg { width:28px; height:28px; stroke:#fff; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.res-mini { font-size:0.9rem; color:#7a746c; font-style:italic; margin-top:0.6rem; margin-bottom:0; }

.res-check { list-style:none; }
.res-check li { position:relative; padding-left:2rem; margin-bottom:0.8rem; color:#4a4a4a; line-height:1.55; }
.res-check li::before {
  content:'\2713'; position:absolute; left:0; top:1px;
  width:20px; height:20px; border-radius:50%;
  background:rgba(192,86,33,0.12); color:#c05621;
  font-size:0.72rem; font-weight:700; display:grid; place-items:center;
}

.res-steps { list-style:none; counter-reset:step; margin-top:0.5rem; }
.res-steps li {
  position:relative; padding-left:3rem; margin-bottom:1.1rem;
  color:#3a3a3a; font-weight:500; counter-increment:step;
  min-height:34px; display:flex; align-items:center;
}
.res-steps li::before {
  content:counter(step); position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:32px; height:32px; border-radius:50%;
  background:linear-gradient(135deg,#c05621,#9c4318); color:#fff;
  font-size:0.85rem; font-weight:700; display:grid; place-items:center; font-family:'Inter',sans-serif;
}

.res-card .discipline-inline { display:flex; flex-wrap:wrap; gap:0.6rem; margin:0.5rem 0 0; }
.res-card .discipline-inline span {
  font-size:0.85rem; font-weight:600; color:#8a4f2b;
  background:#f7ede2; border:1px solid #ecdccb; padding:0.5rem 1rem; border-radius:100px;
  transition:all .25s ease;
}
.res-card .discipline-inline span:hover { background:#c05621; border-color:#c05621; color:#fff; transform:translateY(-2px); }

@media (max-width:820px){
  .res-stats { grid-template-columns:1fr 1fr; }
  .res-duo { grid-template-columns:1fr; }
}

.res-card h3 {
  font-family:'Playfair Display',serif; font-size:1.5rem; color:#1a1a1a;
  margin:0 0 1rem; position:relative; padding-bottom:0.7rem;
}
.res-card h3::after { content:''; position:absolute; left:0; bottom:0; width:44px; height:3px; border-radius:2px; background:#c05621; }

/* Conference track cards */
.res-tracks-head { text-align:center; max-width:760px; margin:1.5rem auto 2rem; }
.res-tracks-head h3 {
  font-family:'Playfair Display',serif; font-size:1.9rem; color:#1a1a1a; margin-bottom:0.8rem;
}
.res-tracks-head p { color:#55504a; line-height:1.75; }

.res-track-no {
  display:inline-block; font-size:0.7rem; letter-spacing:2px; text-transform:uppercase;
  font-weight:700; color:#fff; background:linear-gradient(135deg,#c05621,#9c4318);
  padding:0.35rem 0.85rem; border-radius:100px; margin-bottom:0.9rem;
}
.res-card-tag {
  display:inline-block; font-size:0.7rem; letter-spacing:1.5px; text-transform:uppercase;
  font-weight:700; color:#c05621; margin:0.4rem 0 0.7rem;
}

/* Responsive tables */
.guidelines-section table { width: 100%; border-collapse: collapse; }
@media (max-width: 720px) {
  .guidelines-section table { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
}

/* Split hero: intro on the left, stats on the right (space-efficient, full-width) */
.res-topgrid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 3.5rem;
  align-items: center;
  margin-bottom: 3.5rem;
}
.res-topgrid .res-intro { text-align: left; max-width: none; margin: 0; }
.res-topgrid .res-stats { grid-template-columns: 1fr 1fr; margin: 0; }
@media (max-width: 900px) {
  .res-topgrid { grid-template-columns: 1fr; gap: 2.5rem; }
  .res-topgrid .res-intro { text-align: center; max-width: 820px; margin: 0 auto; }
}

/* ===== Bottom info section as cards ===== */
.bottom-cards { max-width:1680px; margin:0 auto; }
.res-cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; margin-bottom:1.8rem; align-items:start; }
.res-steps.two-col { columns:2; column-gap:3rem; margin-top:0.5rem; }
.res-steps.two-col li { break-inside:avoid; }

.res-note-card {
  background:#fbf1e9; border:1px solid #f0dcc8; border-left:4px solid #c05621;
  border-radius:14px; padding:2rem 2.2rem; margin-bottom:1.8rem;
}
.res-note-card h3 { font-family:'Playfair Display',serif; font-size:1.4rem; color:#1a1a1a; margin-bottom:0.7rem; }
.res-note-card p { color:#5c4a3a; line-height:1.75; margin:0; text-align:justify; }

.res-cta-band {
  background:linear-gradient(135deg,#2b2018 0%,#171310 100%);
  color:#fff; border-radius:20px; padding:3.2rem 2.5rem; text-align:center;
}
.res-cta-band h3 { font-family:'Playfair Display',serif; font-size:1.9rem; color:#fff; margin-bottom:0.9rem; }
.res-cta-band p { color:#d8cfc4; line-height:1.8; max-width:760px; margin:0 auto 1.6rem; }

@media (max-width:960px){ .res-cards-3 { grid-template-columns:1fr; } }
@media (max-width:640px){ .res-steps.two-col { columns:1; } }
