/* ─────────────────────────────────────────────────────────────
   casting.css — landingul de recrutare (casting.html).
   Aceeasi gramatica a site-ului — hartie, Bodoni, un singur accent —
   dar cu mai mult contrast de scara: e o pagina care trebuie sa
   convinga intr-un ecran si sa duca la formular.
   Se incarca doar pe casting.html, dupa mobile.css.
   ───────────────────────────────────────────────────────────── */

.section--sunk { background: var(--paper-sunk); }

/* ── Hero ──────────────────────────────────────────────────── */
.cast-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: var(--space-5);
  align-items: center;
  padding-block: var(--space-6) var(--space-section);
}

.cast-kicker {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3);
  font-size: var(--text-micro); font-weight: 600;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: var(--space-4);
}
.cast-kicker span {
  background: var(--signal); color: var(--signal-ink);
  padding: 0.35em 0.8em;
}

.cast-hero__type {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(4rem, 1rem + 11vw, 12.5rem);
  line-height: 0.84;
  letter-spacing: -0.035em;
  margin: 0 0 var(--space-5);
}
.cast-hero__type i { font-style: italic; padding-left: 0.42em; }
.cast-hero__type i::after { content: "."; color: var(--signal); font-style: normal; }

.cast-hero__lede { max-width: 30rem; }
.cast-hero__cta { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block: var(--space-4) var(--space-5); }

.cast-facts {
  display: flex; gap: var(--space-5);
  border-top: 1px solid var(--rule-strong);
  padding-top: var(--space-3);
  margin: 0; max-width: 30rem;
}
.cast-facts dt {
  font-size: var(--text-micro); letter-spacing: var(--track-label);
  text-transform: uppercase; color: var(--ink-faint); font-weight: 600;
}
.cast-facts dd {
  margin: 0; font-family: var(--display); font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem);
  line-height: 1.1;
}
.cast-facts small { font-family: var(--ui); font-size: var(--text-sm); color: var(--ink-soft); }

/* Planşa de contact: trei cadre pe hartie, usor rotite si suprapuse.
   La hover cadrul se indreapta si urca deasupra celorlalte. */
.cast-sheet {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: auto auto;
  align-items: start;
  padding-block: var(--space-4);
}
.cast-sheet__frame {
  margin: 0;
  background: var(--paper-raised);
  padding: 0.6rem 0.6rem 0;
  box-shadow: 0 1.5rem 3rem -1rem var(--shade), 0 0 0 1px var(--rule);
  transform: rotate(var(--tilt, 0deg));
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  position: relative;
}
.cast-sheet__frame:nth-child(1) { grid-column: 1 / span 3; grid-row: 1; z-index: 1; }
.cast-sheet__frame:nth-child(2) { grid-column: 3 / span 3; grid-row: 1; margin-top: 18%; z-index: 2; }
.cast-sheet__frame:nth-child(3) { grid-column: 4 / span 3; grid-row: 1; margin-top: 58%; z-index: 3; }
.cast-sheet__frame:hover {
  transform: rotate(0deg) translateY(-0.6rem);
  z-index: 5;
  box-shadow: 0 2.4rem 4rem -1rem var(--shade), 0 0 0 1px var(--rule);
}
.cast-sheet__frame img { display: block; width: 100%; height: auto; }
.cast-sheet__frame figcaption {
  display: flex; justify-content: space-between; gap: var(--space-2);
  padding: 0.55rem 0.1rem 0.65rem;
  font-family: var(--display); font-size: 1.05rem;
}
.cast-sheet__frame figcaption span {
  font-family: var(--ui); font-size: var(--text-micro); font-weight: 600;
  letter-spacing: var(--track-label); color: var(--signal); align-self: center;
}

/* ── Banda ─────────────────────────────────────────────────── */
.cast-ticker, .cast-final {
  /* Benzile negre raman negre si in tema „runway”: acolo --ink devine
     deschis, iar banda s-ar inversa in hartie, cu accentul fara contrast. */
  --band-bg: oklch(13% 0.006 60);
  --band-fg: oklch(96% 0.004 85);
}
.cast-ticker {
  display: flex; overflow: hidden;
  background: var(--band-bg); color: var(--band-fg);
  padding-block: var(--space-3);
}
.cast-ticker__row {
  display: flex; flex: none; align-items: center; gap: var(--space-4);
  padding-right: var(--space-4);
  animation: cast-ticker 38s linear infinite;
  font-family: var(--display); font-size: clamp(1.1rem, 0.8rem + 1.4vw, 2rem);
  white-space: nowrap;
}
.cast-ticker__row i { color: var(--signal); font-style: normal; }
.cast-ticker:hover .cast-ticker__row { animation-play-state: paused; }
@keyframes cast-ticker { to { transform: translateX(-100%); } }

/* ── 01 Criterii: cifre mari, ritm inegal ─────────────────── */
.cast-criteria {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-areas: "lead a b" "lead note note";
  border-top: 1px solid var(--rule);
}
.cast-figure {
  padding: var(--space-4) var(--space-4) var(--space-5) 0;
  border-bottom: 1px solid var(--rule);
}
.cast-figure + .cast-figure { padding-left: var(--space-4); border-left: 1px solid var(--rule); }
.cast-figure:nth-child(2) { grid-area: a; }
.cast-figure:nth-child(3) { grid-area: b; }
.cast-figure--lead { grid-area: lead; }
.cast-figure--note { grid-area: note; display: grid; grid-template-columns: auto 1fr; column-gap: var(--space-4); align-items: end; }
.cast-figure--note .cast-figure__num { grid-row: span 2; }

.cast-figure__num {
  font-family: var(--display); line-height: 0.9; letter-spacing: var(--track-tight);
  font-size: clamp(3.5rem, 2rem + 5vw, 7rem);
  margin: 0 0 var(--space-3);
}
.cast-figure--lead .cast-figure__num { font-size: clamp(5rem, 2rem + 9vw, 11.5rem); }
.cast-figure__num sup {
  font-family: var(--ui); font-size: var(--text-sm); font-weight: 600;
  letter-spacing: var(--track-label); vertical-align: top; margin-left: 0.3em;
  position: relative; top: 0.6em; color: var(--ink-soft);
}
.cast-figure__num i { color: var(--signal); }
.cast-figure__label {
  font-size: var(--text-micro); font-weight: 600; letter-spacing: var(--track-label);
  text-transform: uppercase; margin-bottom: var(--space-2);
}
.cast-figure p:last-child { color: var(--ink-soft); max-width: 34ch; margin: 0; }

/* ── 02 Coperti: sase, nu cincizeci ────────────────────────── */
.cast-covers { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-4) var(--space-3); }

/* ── 03 Pasi ───────────────────────────────────────────────── */
.cast-steps {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  counter-reset: none;
}
.cast-step {
  position: relative;
  padding: var(--space-4) var(--space-4) 0 0;
  border-top: 1px solid var(--rule-strong);
}
.cast-step::before {
  /* Punctul de pe linie: marcheaza pasul ca pe un traseu. */
  content: ""; position: absolute; top: -5px; left: 0;
  width: 9px; height: 9px; border-radius: 50%; background: var(--signal);
}
.cast-step__num {
  display: block; font-family: var(--display); font-style: italic;
  font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.25rem); line-height: 1;
  color: var(--ink-faint); margin-bottom: var(--space-3);
}
.cast-step h3 { font-family: var(--display); font-size: var(--text-h3); font-weight: 400; margin: 0 0 var(--space-2); }
.cast-step p { color: var(--ink-soft); margin: 0; max-width: 30ch; }

/* ── 04 Digitals: vizoare cu semne de taiere ───────────────── */
.cast-digitals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.cast-shot { margin: 0; }
.cast-shot__frame {
  position: relative; aspect-ratio: 3 / 4;
  display: grid; place-items: center;
  background: var(--paper-sunk);
  /* Semnele de colt ale vizorului, din patru gradienti — fara imagini. */
  --c: var(--ink); --l: 1.4rem; --w: 1.5px;
  background-image:
    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c));
  background-repeat: no-repeat;
  background-size:
    var(--l) var(--w), var(--w) var(--l), var(--l) var(--w), var(--w) var(--l),
    var(--l) var(--w), var(--w) var(--l), var(--l) var(--w), var(--w) var(--l);
  background-position:
    0.9rem 0.9rem, 0.9rem 0.9rem, calc(100% - 0.9rem) 0.9rem, calc(100% - 0.9rem) 0.9rem,
    0.9rem calc(100% - 0.9rem), 0.9rem calc(100% - 0.9rem),
    calc(100% - 0.9rem) calc(100% - 0.9rem), calc(100% - 0.9rem) calc(100% - 0.9rem);
  background-color: var(--paper-sunk);
  transition: background-color var(--dur) var(--ease);
}
.cast-shot:hover .cast-shot__frame { background-color: var(--paper-raised); }
.cast-shot__frame svg {
  width: 46%; height: auto; fill: none; stroke: var(--ink-soft);
  stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round;
}
.cast-shot figcaption { padding-top: var(--space-3); color: var(--ink-soft); font-size: var(--text-sm); }
.cast-shot figcaption b {
  display: block; color: var(--ink); font-family: var(--display);
  font-weight: 400; font-size: 1.5rem; margin-bottom: 0.2rem;
}

/* ── 05 Formular ───────────────────────────────────────────── */
.cast-apply {
  display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: var(--space-6); align-items: start;
}
.cast-apply__intro { position: sticky; top: 7rem; }
.cast-apply__intro h2 {
  font-family: var(--display); font-weight: 400; line-height: 0.95;
  font-size: clamp(3rem, 1.6rem + 5vw, 6.5rem); margin: var(--space-3) 0 var(--space-4);
}
.cast-apply__intro h2 i { color: var(--signal); }

.cast-progress { list-style: none; padding: 0; margin: var(--space-5) 0 0; display: grid; gap: 0; }
.cast-progress li {
  display: flex; align-items: baseline; gap: var(--space-3);
  padding: var(--space-3) 0; border-top: 1px solid var(--rule);
  font-family: var(--display); font-size: 1.35rem; color: var(--ink-faint);
  transition: color var(--dur) var(--ease);
}
.cast-progress li span {
  font-family: var(--ui); font-size: var(--text-micro); font-weight: 600;
  letter-spacing: var(--track-label);
}
.cast-progress li.is-current { color: var(--ink); }
.cast-progress li.is-current span { color: var(--signal); }
.cast-progress li.is-done { color: var(--ink-soft); }
.cast-progress li.is-done span::after { content: " ✓"; color: var(--signal); }

.cast-apply__panel {
  background: var(--paper-raised);
  padding: clamp(1.25rem, 0.5rem + 3vw, 3rem);
  box-shadow: 0 2rem 4rem -2rem var(--shade), 0 0 0 1px var(--rule);
}

.cast-stepbox { border: 0; padding: 0; margin: 0 0 var(--space-5); min-width: 0; }
.cast-stepbox legend {
  font-family: var(--display); font-size: var(--text-h3); padding: 0;
  margin-bottom: var(--space-4); display: grid; gap: var(--space-1);
}
.cast-stepbox legend span {
  font-family: var(--ui); font-size: var(--text-micro); font-weight: 600;
  letter-spacing: var(--track-label); text-transform: uppercase; color: var(--signal);
}
/* Pasii se ascund doar cand JS-ul a pornit; fara JS formularul e o pagina. */
.js-steps .cast-stepbox { display: none; margin: 0; }
.js-steps .cast-stepbox.is-active { display: block; animation: cast-in var(--dur-slow) var(--ease); }
@keyframes cast-in { from { opacity: 0; transform: translateY(0.75rem); } }

.cast-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-3); }
.cast-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cast-grid__wide { grid-column: 1 / -1; }
.cast-grid--4 .cast-grid__wide { grid-column: span 4; }
.cast-form .field { margin-bottom: var(--space-2); gap: var(--space-1); }
.cast-form .field__error { margin: 0; min-height: 1.35em; }
.field label small { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ink-soft); margin-left: 0.4em; }

.cast-hint { color: var(--ink-soft); font-size: var(--text-sm); margin: calc(-1 * var(--space-2)) 0 var(--space-4); }
.cast-imperial { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--signal); margin-left: 0.5em; }

/* Alegerea boardului: doua placi mari, nu un <select>. */
.cast-choice { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); margin-bottom: var(--space-2); }
.cast-choice--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cast-choice--3 span { padding-inline: 0.5rem; font-size: clamp(1.15rem, 0.9rem + 1vw, 1.6rem); }
.cast-choice label { position: relative; cursor: pointer; }
.cast-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.cast-choice span {
  display: block; text-align: center; padding: 1rem;
  font-family: var(--display); font-size: 1.6rem;
  border: 1px solid var(--rule-strong); background: var(--paper);
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.cast-choice label:hover span { border-color: var(--ink); }
.cast-choice input:checked + span { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.cast-choice input:focus-visible + span { outline: 2px solid var(--signal); outline-offset: 3px; }

.cast-guardian {
  border-left: 2px solid var(--signal);
  padding: var(--space-3) 0 var(--space-1) var(--space-4);
  margin-bottom: var(--space-4);
}
.js-steps .cast-guardian:not(.is-needed) { display: none; }
.cast-guardian__note { margin: 0 0 var(--space-3); font-size: var(--text-sm); color: var(--ink-soft); }
.cast-guardian__note b { color: var(--ink); }

.cast-check { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); align-items: start; font-size: var(--text-sm); color: var(--ink-soft); cursor: pointer; }
.cast-check input { width: 1.15rem; height: 1.15rem; margin-top: 0.15rem; accent-color: var(--signal); }
.cast-check a { color: var(--ink); }

/* Incarcarea pozelor: patru cadre-tinta, cu previzualizare. */
.cast-uploads { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); margin-bottom: var(--space-2); }
.cast-upload { position: relative; display: grid; gap: var(--space-2); cursor: pointer; }
.cast-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.cast-upload__img {
  aspect-ratio: 3 / 4; display: grid; place-items: center;
  border: 1px dashed var(--rule-strong); background: var(--paper) center / cover no-repeat;
  transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}
.cast-upload__img::before {
  content: "+"; font-family: var(--display); font-size: 2.2rem; color: var(--ink-faint);
  transition: transform var(--dur) var(--ease);
}
.cast-upload:hover .cast-upload__img { border-color: var(--ink); background-color: var(--paper-sunk); }
.cast-upload:hover .cast-upload__img::before { transform: scale(1.2); }
.cast-upload input:focus-visible ~ .cast-upload__img { outline: 2px solid var(--signal); outline-offset: 3px; }
.cast-upload.has-file .cast-upload__img { border-style: solid; border-color: var(--ink); }
.cast-upload.has-file .cast-upload__img::before { content: ""; }
.cast-upload.is-invalid .cast-upload__img { border-color: var(--signal); }
.cast-upload__label { font-size: var(--text-micro); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-faint); }
.cast-upload__label b { display: block; color: var(--ink); font-family: var(--display); font-size: 1.1rem; font-weight: 400; letter-spacing: 0; text-transform: none; }

.cast-nav { display: flex; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-4); }
.cast-nav .btn:only-child { margin-left: auto; }
.cast-nav .btn[disabled] { opacity: 0.55; cursor: progress; transform: none; }
.cast-status { min-height: 1.4em; margin: var(--space-3) 0 0; font-size: var(--text-sm); color: var(--signal); }

.cast-done { text-align: left; padding-block: var(--space-4); }
.cast-done:focus { outline: none; }
.cast-done__title { font-family: var(--display); font-size: clamp(3rem, 2rem + 4vw, 5.5rem); line-height: 1; margin: var(--space-3) 0 var(--space-4); }
.cast-done__title i { color: var(--signal); }
.cast-done p { max-width: 38ch; color: var(--ink-soft); }
.cast-done .label b { color: var(--ink); letter-spacing: 0.08em; }

/* ── 06 Intrebari ──────────────────────────────────────────── */
.cast-faq { border-top: 1px solid var(--rule-strong); }
.cast-faq details { border-bottom: 1px solid var(--rule); }
.cast-faq summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; gap: var(--space-4); align-items: baseline;
  padding: var(--space-4) 0;
  font-family: var(--display); font-size: clamp(1.2rem, 1rem + 0.8vw, 1.65rem);
  transition: color var(--dur-fast) var(--ease);
}
.cast-faq summary::-webkit-details-marker { display: none; }
.cast-faq summary::after {
  content: "+"; font-family: var(--ui); font-size: 1.4rem; color: var(--signal);
  transition: transform var(--dur) var(--ease); flex: none;
}
.cast-faq details[open] summary::after { transform: rotate(45deg); }
.cast-faq summary:hover { color: var(--signal); }
.cast-faq summary:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.cast-faq details p { margin: 0 0 var(--space-4); color: var(--ink-soft); max-width: var(--measure); }

.cast-data {
  margin-top: var(--space-6); padding: var(--space-4);
  background: var(--paper-sunk); font-size: var(--text-sm); color: var(--ink-soft);
}
.cast-data h3 {
  font-family: var(--ui); font-size: var(--text-micro); font-weight: 600;
  letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink); margin: 0 0 var(--space-2);
}
.cast-data p { margin: 0; max-width: var(--measure); }
.cast-data a { color: var(--ink); }

/* ── Final: sala de defilare ──────────────────────────────── */
.cast-final { background: var(--band-bg); color: var(--band-fg); }
.cast-final__inner {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: var(--space-5); padding-block: var(--space-section);
}
.cast-final__type {
  font-family: var(--display); line-height: 0.95; letter-spacing: var(--track-tight);
  font-size: clamp(2.75rem, 1rem + 6vw, 7.5rem); margin: 0;
}
.cast-final__type i { color: var(--signal); }

/* ── Aparitie la derulare (doar cand JS a pornit observatorul) ── */
.js-reveal [data-reveal] { opacity: 0; transform: translateY(1.25rem); transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease); }
.js-reveal [data-reveal].is-in { opacity: 1; transform: none; }
.js-reveal .cast-criteria [data-reveal]:nth-child(2), .js-reveal .cast-steps [data-reveal]:nth-child(2), .js-reveal .cast-digitals [data-reveal]:nth-child(2) { transition-delay: 80ms; }
.js-reveal .cast-criteria [data-reveal]:nth-child(3), .js-reveal .cast-steps [data-reveal]:nth-child(3), .js-reveal .cast-digitals [data-reveal]:nth-child(3) { transition-delay: 160ms; }
.js-reveal .cast-criteria [data-reveal]:nth-child(4), .js-reveal .cast-steps [data-reveal]:nth-child(4), .js-reveal .cast-digitals [data-reveal]:nth-child(4) { transition-delay: 240ms; }

@media (prefers-reduced-motion: reduce) {
  .cast-sheet__frame, .cast-sheet__frame:hover { transform: none; }
  .cast-ticker__row { animation: none; }
  .js-reveal [data-reveal] { opacity: 1; transform: none; }
}

/* ── Tableta ───────────────────────────────────────────────── */
@media (max-width: 70rem) {
  .cast-covers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cast-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-5); }
  .cast-apply { grid-template-columns: 1fr; gap: var(--space-5); }
  .cast-apply__intro { position: static; }
  .cast-progress { grid-template-columns: repeat(3, 1fr); column-gap: var(--space-3); }
  .cast-progress li { flex-direction: column; gap: var(--space-1); font-size: 1.1rem; }
}

/* ── Telefon ───────────────────────────────────────────────── */
@media (max-width: 48rem) {
  .cast-hero { grid-template-columns: 1fr; padding-top: var(--space-4); gap: var(--space-4); }
  .cast-hero__type { font-size: clamp(4.25rem, 1rem + 18vw, 7rem); margin-bottom: var(--space-4); }
  .cast-sheet { order: -1; grid-template-columns: repeat(12, minmax(0, 1fr)); padding-block: 0 var(--space-3); }
  .cast-sheet__frame { padding: 0.4rem 0.4rem 0; }
  .cast-sheet__frame:nth-child(1) { grid-column: 1 / span 5; }
  .cast-sheet__frame:nth-child(2) { grid-column: 4 / span 5; margin-top: 12%; }
  .cast-sheet__frame:nth-child(3) { grid-column: 8 / span 5; margin-top: 30%; }
  .cast-sheet__frame figcaption { font-size: 0.85rem; padding: 0.35rem 0 0.45rem; }
  .cast-sheet__frame figcaption span { display: none; }
  .cast-facts { gap: var(--space-4); }
  .cast-hero__cta .btn { flex: 1 1 auto; justify-content: center; }

  .cast-criteria { grid-template-columns: 1fr 1fr; grid-template-areas: "lead lead" "a b" "note note"; }
  .cast-figure--lead { padding-right: 0; }
  .cast-figure:nth-child(2) { padding-left: 0; border-left: 0; }
  .cast-figure--note { padding-left: 0; border-left: 0; grid-template-columns: 1fr; }
  .cast-figure--note .cast-figure__num { grid-row: auto; }
  .cast-figure { padding-right: var(--space-3); }

  .cast-covers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cast-steps { grid-template-columns: 1fr; }
  .cast-digitals { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-3); }

  .cast-apply__panel { margin-inline: calc(-1 * var(--gutter)); box-shadow: none; border-block: 1px solid var(--rule); }
  .cast-grid, .cast-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cast-grid--4 .cast-grid__wide { grid-column: 1 / -1; }
  .cast-grid > .field:not(.cast-grid__wide):nth-child(-n+6):is(:has(#c-email), :has(#c-phone), :has(#c-city)) { grid-column: 1 / -1; }
  #contact-form .cast-grid { grid-template-columns: minmax(0, 1fr); }
  .cast-uploads { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .cast-nav .btn { flex: 1; justify-content: center; }
  .cast-final__inner .btn { width: 100%; justify-content: center; }
}
