/* apply.css */

/* PROCESS */
.process { background: var(--paper); }
.proc-grid { display:flex; align-items:stretch; justify-content:center; gap:24px; }
.proc-step { flex:1; max-width:420px; background:var(--sand); border-radius:var(--radius); padding:36px 32px; border-top:3px solid var(--clay); }
.proc-num { font-family:var(--display); font-size:2.4rem; color:var(--clay); line-height:1; display:block; margin-bottom:12px; }
.proc-step h3 { margin-bottom:10px; }
.proc-arrow { display:grid; place-items:center; font-family:var(--display); font-size:2.4rem; color:var(--stone); }

/* APPLICATION FORM LAYOUT */
.apply-form { background: var(--sand); }
.apply-wrap { display:grid; grid-template-columns: 0.85fr 1.4fr; gap:56px; align-items:start; }
.apply-aside { position: sticky; top:110px; }
.apply-aside h2 { margin:0 0 14px; }
.apply-progress { margin-top:30px; display:grid; gap:0; }
.apply-progress li {
  display:flex; align-items:center; gap:16px;
  font-family:var(--cond); text-transform:uppercase; letter-spacing:0.1em; font-size:0.95rem;
  color:var(--stone); position:relative; padding:0 0 28px;
  transition:color .3s;
}
.apply-progress li:last-child { padding-bottom:0; }
.apply-progress li::before {
  content:""; position:absolute; left:18px; top:36px; bottom:0;
  width:2px; background:rgba(46,58,44,0.12); border-radius:2px;
}
.apply-progress li:last-child::before { display:none; }
.apply-progress li span {
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  display:grid; place-items:center;
  background:rgba(46,58,44,0.08); color:var(--stone);
  font-family:var(--cond); font-weight:700; font-size:0.9rem;
  border:2px solid rgba(46,58,44,0.15);
  transition:background .3s, color .3s, border-color .3s;
  position:relative; z-index:1;
}
/* current step */
.apply-progress li.active { color:var(--ink); }
.apply-progress li.active span { background:var(--clay); color:var(--paper); border-color:var(--clay); }
/* completed steps */
.apply-progress li.completed { color:var(--moss); }
.apply-progress li.completed span { background:var(--clay); color:var(--paper); border-color:var(--clay); font-size:0; }
.apply-progress li.completed span::after { content:"✓"; font-size:1rem; }
.apply-progress li.completed::before { background:var(--clay); opacity:0.4; }

/* fields */
.hp-field { position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }
.apply-error { background:#fbeae5; border:1.5px solid #b4452f; color:#8a3320; border-radius:var(--radius); padding:14px 16px; font-size:0.92rem; margin-bottom:20px; }
.apply-fields { background:var(--paper); border-radius:var(--radius); padding:40px; }
.apply-fields legend { font-family:var(--display); text-transform:uppercase; font-size:1.5rem; margin-bottom:24px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field-row:has(> :nth-child(3)) { grid-template-columns:1fr 1fr 1fr; }
.field { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.field span { font-family:var(--cond); text-transform:uppercase; letter-spacing:0.1em; font-size:0.86rem; color:var(--moss); }
.field input, .field select, .field textarea {
  font-family:var(--body); font-size:1rem; color:var(--ink);
  background:var(--sand); border:1.5px solid transparent; border-radius:var(--radius);
  padding:13px 14px; width:100%; transition:border-color .2s, background .2s;
}
.field select {
  appearance:none; -webkit-appearance:none;
  padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5240' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  cursor:pointer;
}
.field select:focus { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c26b3d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); }
.field textarea { resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--clay); background:var(--paper); }
.field .invalid, .field input.invalid, .field select.invalid, .field textarea.invalid { border-color:#b4452f; background:#fbeae5; }

.checks { border:none; margin:6px 0 20px; }
.checks-label { display:block; font-family:var(--cond); text-transform:uppercase; letter-spacing:0.1em; font-size:0.86rem; color:var(--moss); margin-bottom:12px; }
.check { display:inline-flex; align-items:center; gap:8px; margin:0 16px 10px 0; font-size:0.98rem; cursor:pointer; }
.check input { width:18px; height:18px; accent-color:var(--clay); }

.step-nav { display:flex; gap:14px; margin-top:14px; }
.step-nav .btn { flex:0 0 auto; }
.step { border:none; }
.step legend { width:auto; }

/* CALENDAR */
.step-intro { color:var(--moss); margin-bottom:22px; font-size:0.98rem; }
.cal-widget { border:1.5px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:4px; }
.cal-header { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; background:var(--forest); }
.cal-title { font-family:var(--display); text-transform:uppercase; letter-spacing:0.06em; font-size:1rem; color:var(--paper); }
.cal-nav { background:none; border:none; color:var(--paper); font-size:1.5rem; cursor:pointer; padding:2px 10px; border-radius:4px; line-height:1; transition:background .15s; }
.cal-nav:hover { background:rgba(255,255,255,0.15); }
.cal-days-header { display:grid; grid-template-columns:repeat(7,1fr); background:rgba(46,58,44,0.07); }
.cal-days-header span { text-align:center; font-family:var(--cond); text-transform:uppercase; font-size:0.72rem; letter-spacing:0.1em; color:var(--moss); padding:9px 0; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; padding:8px; }
.cal-day { text-align:center; padding:9px 4px; font-size:0.93rem; border:none; background:none; border-radius:6px; cursor:pointer; transition:background .15s, color .15s; }
.cal-day.faded { color:var(--stone); opacity:0.35; }
.cal-day.unavailable { color:var(--stone); cursor:default; opacity:0.35; }
.cal-day.available { color:var(--ink); }
.cal-day.available:hover { background:rgba(194,107,61,0.14); color:var(--clay); }
.cal-day.available.selected { background:var(--clay); color:var(--paper); font-weight:700; }
.cal-times { padding:18px 20px; border-top:1.5px solid var(--line); background:rgba(46,58,44,0.04); }
.cal-date-label { font-family:var(--cond); text-transform:uppercase; letter-spacing:0.1em; font-size:0.82rem; color:var(--moss); margin-bottom:14px; }
.time-slots { display:flex; flex-wrap:wrap; gap:10px; }
.time-slot { font-family:var(--cond); text-transform:uppercase; letter-spacing:0.1em; font-size:0.86rem; padding:9px 16px; border:1.5px solid var(--line); border-radius:var(--radius); background:var(--paper); color:var(--ink); cursor:pointer; transition:border-color .15s, background .15s, color .15s; }
.time-slot:hover { border-color:var(--clay); color:var(--clay); }
.time-slot.selected { background:var(--clay); border-color:var(--clay); color:var(--paper); }
.time-slots-note { font-size:0.92rem; color:var(--stone); }

/* SUCCESS */
.apply-success { text-align:center; max-width:620px; margin:0 auto; background:var(--paper); border-radius:var(--radius); padding:56px 40px; box-shadow:0 24px 50px -34px rgba(25,28,22,0.4); }
.apply-success svg { width:64px; height:64px; color:var(--clay); margin:0 auto 18px; }
.apply-success h2 { margin-bottom:14px; }
.apply-success p { margin:0 auto 26px; }

/* MEET & GREET */
.meet { background: var(--forest); position:relative; overflow:hidden; }
.meet::before { content:""; position:absolute; inset:0; background:radial-gradient(60% 120% at 50% 0%, rgba(92,107,78,0.35), transparent 55%); }
.meet .container { position:relative; }
.calendar { border-radius:var(--radius); min-height:420px; display:grid; place-items:center; border:1px solid var(--line); }
.calendar-inner { position:relative; z-index:3; text-align:center; color:var(--paper); }
.calendar-inner svg { width:54px; height:54px; color:var(--clay); margin:0 auto 16px; }
.calendar-inner p { font-family:var(--cond); text-transform:uppercase; letter-spacing:0.16em; font-size:0.9rem; color:rgba(250,246,236,0.8); margin-bottom:18px; }

/* FUNNEL */
.funnel { background: var(--paper); }
.funnel-inner { text-align:center; max-width:760px; margin:0 auto; }
.funnel-inner h2 { margin:14px 0 16px; }
.funnel-inner .lead { margin:0 auto; }

@media (max-width:980px){
  .apply-wrap{ grid-template-columns:1fr; gap:34px; }
  .apply-aside{ position:static; }
}
@media (max-width:650px){
  .proc-grid{ flex-direction:column; align-items:stretch; }
  .proc-arrow{ transform:rotate(90deg); padding:6px 0; }
  .apply-fields{ padding:26px 20px; }
  .field-row, .field-row:has(> :nth-child(3)){ grid-template-columns:1fr; gap:0; }
  .step-nav{ flex-direction:column; }
  .step-nav .btn{ width:100%; }
}
