/* =====================================================================
   Neevalay Premium Forms UI
   Purpose: Calm, modern, international preschool feel (Montessori/IB inspired)
   Palette: Soft Aqua #5CCCCC | Warm Gold #F9C764 | Off-White #F8F9F5
            Terracotta #D77A61 | Sage Slate #6D8478
   Typography: Nunito (headings), Nunito Sans (body/forms)
   Notes:
   - Scoped to .neevalay-form-premium to avoid affecting header/search forms.
   - Uses CSS Grid inside forms (no layout framework dependency).
   - Works with the theme's jQuery validate defaults (label.error, input.error).
   ===================================================================== */

:root{
  --nv-aqua:#5CCCCC;
  --nv-gold:#F9C764;
  --nv-off:#F8F9F5;
  --nv-terracotta:#D77A61;
  --nv-sage:#6D8478;

  --nv-text:#1d2b2f;
  --nv-muted:rgba(29,43,47,.72);

  --nv-border:rgba(109,132,120,.30);
  --nv-border-strong:rgba(109,132,120,.45);

  --nv-radius:16px;
  --nv-radius-sm:12px;

  --nv-shadow: 0 18px 40px rgba(0,0,0,.08);
  --nv-shadow-soft: 0 10px 24px rgba(0,0,0,.06);
  --nv-focus: 0 0 0 4px rgba(92,204,204,.22);
}

.neevalay-admissions-hero__cta{
  padding: 15px 0;
}
.neevalay-vstep__title:focus{
  outline: none;
  box-shadow: none;
}

/* Container treatment (premium card feel) */
.neevalay-form-premium{
  position: relative;
  padding: 22px;
  border-radius: calc(var(--nv-radius) + 4px);
  background:
    linear-gradient(180deg, rgba(248,249,245,.92) 0%, rgba(255,255,255,.96) 100%);
  border: 1px solid var(--nv-border);
  box-shadow: var(--nv-shadow-soft);
}

/* Optional soft top accent (add .neevalay-form-premium--aqua or --gold) */
.neevalay-form-premium--aqua{ border-top: 4px solid rgba(92,204,204,.85); }
.neevalay-form-premium--gold{ border-top: 4px solid rgba(249,199,100,.85); }
.neevalay-form-premium--terra{ border-top: 4px solid rgba(215,122,97,.75); }

/* Grid layout (no dependency on Bootstrap grid) */
.neevalay-form-premium .row{
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
  margin: 0 !important;
}
.neevalay-form-premium [class*="col-"]{ padding: 0 !important; }

.neevalay-form-premium .col-md-6{ grid-column: span 6; width: 100% !important; }
.neevalay-form-premium .col-md-4{ grid-column: span 4; }
.neevalay-form-premium .col-md-8{ grid-column: span 8; }
.neevalay-form-premium .col-md-12,
.neevalay-form-premium .col-12,
.neevalay-form-premium .form-one__control--full{ grid-column: 1 / -1; }

@media (max-width: 991.98px){
  .neevalay-form-premium{ padding: 18px; }
  .neevalay-form-premium .col-md-6,
  .neevalay-form-premium .col-md-4,
  .neevalay-form-premium .col-md-8{ grid-column: 1 / -1; }
}

/* Field wrapper + labels */
.neevalay-form-premium .neevalay-field{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.neevalay-form-premium .neevalay-label{
  font-family: "Nunito Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  font-size: .95rem;
  color: var(--nv-sage);
  letter-spacing: .2px;
}

.neevalay-form-premium .neevalay-help{
  font-size: .85rem;
  color: var(--nv-muted);
  margin-top: -4px;
}

/* Inputs */
.neevalay-form-premium input[type="text"],
.neevalay-form-premium input[type="email"],
.neevalay-form-premium input[type="tel"],
.neevalay-form-premium input[type="date"],
.neevalay-form-premium input[type="time"],
.neevalay-form-premium select,
.neevalay-form-premium textarea{
  width: 100%;
  border-radius: var(--nv-radius-sm);
  border: 1px solid var(--nv-border);
  background: rgba(255,255,255,.98);
  color: var(--nv-text);
  padding: 14px 14px;
  font-size: 1rem;
  line-height: 1.2;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  outline: none;
}

.neevalay-form-premium textarea{
  min-height: 128px;
  resize: vertical;
}

.neevalay-form-premium input::placeholder,
.neevalay-form-premium textarea::placeholder{
  color: rgba(29,43,47,.45);
}

/* Hover + Focus */
.neevalay-form-premium input:hover,
.neevalay-form-premium select:hover,
.neevalay-form-premium textarea:hover{
  border-color: var(--nv-border-strong);
}

.neevalay-form-premium input:focus,
.neevalay-form-premium select:focus,
.neevalay-form-premium textarea:focus{
  border-color: rgba(92,204,204,.95);
  box-shadow: var(--nv-focus);
}

/* Select (modern, calm) */
.neevalay-form-premium select{
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(109,132,120,.8) 50%),
    linear-gradient(135deg, rgba(109,132,120,.8) 50%, transparent 50%),
    linear-gradient(to right, transparent, transparent);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%,
    0 0;
  background-size: 6px 6px, 6px 6px, 100% 100%;
  background-repeat: no-repeat;
  padding-right: 40px;
}

/* Radio pills (used in admission form) */
.neevalay-form-premium .neevalay-radio-row{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 6px 0 2px;
}
.neevalay-form-premium .neevalay-radio{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--nv-border);
  background: rgba(255,255,255,.85);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.neevalay-form-premium .neevalay-radio:hover{
  border-color: rgba(92,204,204,.6);
  transform: translateY(-1px);
}
.neevalay-form-premium .neevalay-radio input[type="radio"]:focus{
  outline: none;
  box-shadow: none;
}
.neevalay-form-premium .neevalay-radio input{
  accent-color: var(--nv-aqua);
}

/* Buttons (premium, inviting) */
.neevalay-form-premium .kidearn-btn,
.neevalay-form-premium button[type="submit"]{
  border-radius: 999px;
  padding: 14px 22px;
  font-weight: 800;
  letter-spacing: .2px;
  box-shadow: 0 16px 30px rgba(92,204,204,.18);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.neevalay-form-premium .kidearn-btn{
  background: linear-gradient(135deg, rgba(92,204,204,.95) 0%, rgba(92,204,204,.85) 55%, rgba(249,199,100,.60) 100%);
  border: 1px solid rgba(92,204,204,.55);
}

.neevalay-form-premium .kidearn-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 22px 44px rgba(92,204,204,.22);
  filter: saturate(1.05);
}

.neevalay-form-premium .kidearn-btn:focus{
  outline: none;
  box-shadow: var(--nv-focus), 0 18px 40px rgba(92,204,204,.20);
}

/* Result / messages area (works with the theme's AJAX append) */
.neevalay-form-premium .result{
  grid-column: 1 / -1;
  margin-top: 6px;
}

.nv-form-alert{
  margin-top: 10px;
  padding: 14px 16px;
  border-radius: var(--nv-radius-sm);
  border: 1px solid var(--nv-border);
  background: rgba(255,255,255,.96);
  color: var(--nv-text);
}
.nv-form-alert--success{
  border-color: rgba(92,204,204,.55);
  background: rgba(92,204,204,.10);
}
.nv-form-alert--error{
  border-color: rgba(215,122,97,.55);
  background: rgba(215,122,97,.10);
}

/* Validation (jQuery validate defaults) */
.neevalay-form-premium label.error{
  margin-top: 6px;
  font-size: .85rem;
  color: rgba(215,122,97,.95);
  font-weight: 700;
}
.neevalay-form-premium input.error,
.neevalay-form-premium select.error,
.neevalay-form-premium textarea.error{
  border-color: rgba(215,122,97,.75) !important;
  box-shadow: 0 0 0 4px rgba(215,122,97,.12) !important;
}

/* Small, high-end micro-interaction */
@media (prefers-reduced-motion: reduce){
  .neevalay-form-premium *{ transition: none !important; }
}


.neevalay-visit {
  margin-top: 25px;
  display: none;
}

.neevalay-visit__steps {
  margin-bottom: 15px;
}