/* =========================================================================
   2VS Racing - "Roulage 12/09" registration page
   Dark "Nuit Electrique" theme for the Gravity Form on
   /roulage-2vs-12-septembre-2026/. Loaded ONLY on that page (see
   functions.php: is_page('roulage-2vs-12-septembre-2026')), so the plain
   .gform_wrapper selectors below can't leak onto other forms.
   Targets standard Gravity Forms markup (v2.5+ orbital classes included).
   ========================================================================= */

/* self-hosted fonts (this page doesn't load 2vs-home.css) */
@font-face { font-family:'Archivo'; font-style:normal; font-weight:400 900; font-display:swap; src:url('fonts/archivo-latin-variable.woff2') format('woff2'); }
@font-face { font-family:'Archivo'; font-style:italic; font-weight:400 900; font-display:swap; src:url('fonts/archivo-latin-italic-variable.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/ibm-plex-mono-latin-400.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/ibm-plex-mono-latin-500.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/ibm-plex-mono-latin-600.woff2') format('woff2'); }

/* ---- page canvas --------------------------------------------------------
   Enfold outputs the page content inside #main. Darken it to match the home
   design. If your theme options already set a dark page bg, this is harmless. */
.tvs-roulage-page #main,
.tvs-roulage-page .container_wrap {
  background: #05070d !important;
  color: #fff;
}
.tvs-roulage-page #main { position: relative; }

/* optional headline/intro styling if the page uses Enfold text blocks */
.tvs-roulage-page .entry-content-wrapper h1,
.tvs-roulage-page .entry-content-wrapper h2,
.tvs-roulage-page .avia_textblock h1,
.tvs-roulage-page .avia_textblock h2 {
  font-family: 'Archivo', system-ui, sans-serif; font-weight: 900;
  text-transform: uppercase; letter-spacing: -1px; color: #fff;
}
.tvs-roulage-page .entry-content-wrapper p { color: #c3ccdd; }

/* =========================================================================
   Gravity Form
   ========================================================================= */
.gform_wrapper {
  max-width: 720px; margin: 0 auto;
  font-family: 'Archivo', system-ui, sans-serif; color: #fff;
}

/* the form panel: glass card */
.gform_wrapper form,
.gform_wrapper .gform_body {
  background: rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.12); border-radius: 20px;
}
.gform_wrapper form { padding: 34px 32px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.gform_wrapper .gform_body { background: none; border: 0; }

/* form title / description */
.gform_wrapper .gform_title {
  font: 900 34px 'Archivo'; text-transform: uppercase; letter-spacing: -1px; color: #fff; margin: 0 0 6px;
}
.gform_wrapper .gform_description { display:block; font: 400 15px/1.6 'Archivo'; color: #c3ccdd; margin-bottom: 26px; }

/* fields grid (GF 2.5 uses a CSS grid; keep the gaps consistent) */
.gform_wrapper .gform_fields { grid-row-gap: 20px; }
.gform_wrapper .gfield { margin-top: 0; }

/* labels */
.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label {
  font: 600 11px 'IBM Plex Mono'; letter-spacing: 1.5px; text-transform: uppercase;
  color: #93b4ff; margin-bottom: 8px;
}
.gform_wrapper .gfield_required { color: #3b82f6; }

/* inputs / selects / textareas */
.gform_wrapper input[type=text],
.gform_wrapper input[type=email],
.gform_wrapper input[type=tel],
.gform_wrapper input[type=url],
.gform_wrapper input[type=number],
.gform_wrapper input[type=password],
.gform_wrapper input[type=date],
.gform_wrapper select,
.gform_wrapper textarea {
  width: 100%; box-sizing: border-box;
  background: rgba(5,7,13,.5); color: #fff;
  border: 1px solid rgba(255,255,255,.16); border-radius: 12px;
  padding: 14px 16px; font: 500 15px 'Archivo';
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.gform_wrapper textarea { min-height: 130px; resize: vertical; }
.gform_wrapper select {
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2393b4ff' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat; background-position: right 16px center; padding-right: 42px;
}
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder { color: #6b7488; }

/* focus */
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
  outline: none; border-color: rgba(59,130,246,.9);
  box-shadow: 0 0 0 3px rgba(37,99,235,.25); background: rgba(5,7,13,.7);
}

/* checkboxes / radios */
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label { color: #c3ccdd; font: 500 14px 'Archivo'; }
.gform_wrapper input[type=checkbox],
.gform_wrapper input[type=radio] { accent-color: #2563eb; width: 18px; height: 18px; }

/* description under fields */
.gform_wrapper .gfield_description { font: 500 12px 'IBM Plex Mono'; color: #8b93a7; margin-top: 6px; }

/* submit button - matches .tvs-btn-primary */
.gform_wrapper .gform_footer { margin-top: 24px; }
.gform_wrapper .gform_button,
.gform_wrapper input[type=submit] {
  font: 800 13px 'Archivo'; letter-spacing: 1.5px; text-transform: uppercase;
  background: #2563eb; color: #fff; border: 0; cursor: pointer;
  padding: 17px 36px; border-radius: 12px; box-shadow: 0 8px 28px rgba(37,99,235,.5);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper input[type=submit]:hover {
  background: #1d4ed8; transform: translateY(-1px); box-shadow: 0 12px 34px rgba(37,99,235,.6);
}

/* validation */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.2); }
.gform_wrapper .gfield_error .gfield_label { color: #fca5a5; }
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message {
  font: 600 12px 'IBM Plex Mono'; color: #fca5a5; margin-top: 6px;
  background: none; border: 0; padding: 0;
}
.gform_wrapper .gform_validation_errors {
  background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.4);
  border-radius: 12px; color: #fca5a5; padding: 14px 16px;
}
.gform_wrapper .gform_validation_errors h2,
.gform_wrapper .gform_validation_errors .gform_submission_error { color: #fca5a5; font-family: 'Archivo'; }

/* confirmation message after submit */
.gform_confirmation_message {
  max-width: 720px; margin: 0 auto; color: #fff; font: 600 18px/1.6 'Archivo';
  background: rgba(37,99,235,.16); border: 1px solid rgba(59,130,246,.35);
  border-radius: 18px; padding: 26px 28px;
}

/* progress bar (multi-step forms), if used */
.gform_wrapper .gf_progressbar_wrapper .gf_progressbar { background: rgba(255,255,255,.1); border-radius: 999px; }
.gform_wrapper .gf_progressbar_percentage { background: #2563eb; border-radius: 999px; color: #fff; }

/* responsive */
@media (max-width: 700px) {
  .gform_wrapper form { padding: 24px 18px; }
  .gform_wrapper .gform_title { font-size: 26px; }
}
