/* ============================================================
   NOVA GERAÇÃO FC — Estilos das páginas internas
   (banner interno, matrícula, galeria completa, admin link)
   ============================================================ */

/* ---------- Banner de página interna ---------- */
.page-banner{
  position:relative;background:var(--navy-950);padding:168px 0 58px;overflow:hidden;
}
.page-banner::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 20%, rgba(243,194,28,0.08), transparent 45%),
             radial-gradient(circle at 85% 80%, rgba(139,188,229,0.08), transparent 45%);
}
.page-banner .container{position:relative;z-index:1;}
.page-banner .crumbs{font-family:var(--mono);font-size:11.5px;color:rgba(246,247,250,0.5);letter-spacing:0.04em;margin-bottom:18px;}
.page-banner .crumbs a{color:var(--gold-bright);}
.page-banner .crumbs a:hover{text-decoration:underline;}
.page-banner .eyebrow{color:var(--gold-dim);}
.page-banner h1{color:var(--chalk);font-size:clamp(32px,5vw,52px);}
.page-banner-sub{margin-top:16px;color:rgba(246,247,250,0.72);font-size:16px;max-width:60ch;}

/* ---------- Link discreto para a área administrativa ---------- */
.admin-link{
  font-family:var(--mono);font-size:11.5px;color:rgba(246,247,250,0.35);letter-spacing:0.04em;
  transition:color var(--dur-in) var(--ease);
}
.admin-link:hover{color:var(--gold-bright);}

/* ============================================================
   FORMULÁRIO DE MATRÍCULA — documento único (ficha)
   ============================================================ */
.enroll-form{max-width:860px;margin:0 auto;}
.ficha-card{
  background:#fff;border:1px solid var(--line);padding:40px 44px;
  clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);
}
@media (max-width:640px){.ficha-card{padding:26px 20px;}}

.ficha-divider{
  display:flex;align-items:center;gap:12px;margin:34px 0 20px;
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--navy-800);padding-bottom:12px;border-bottom:1.5px solid var(--navy-800);
}
.ficha-card > .ficha-divider:first-of-type{margin-top:8px;}
.ficha-divider span{
  display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--gold);color:var(--navy-950);font-size:10.5px;flex-shrink:0;
}

.label-note{font-weight:500;color:var(--ink-soft);text-transform:none;letter-spacing:0;font-size:12px;}

.radio-group{display:flex;gap:22px;flex-wrap:wrap;margin-top:2px;}
.radio-group--tight{gap:14px;margin-top:8px;}
.radio-option{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;}
.radio-option input{width:17px;height:17px;accent-color:var(--navy-700);cursor:pointer;flex-shrink:0;}

.conditional-field{margin-top:12px;}

.idade-display{
  font-family:var(--display);font-size:22px;color:var(--navy-700);
  background:var(--chalk-dim);padding:11px 14px;text-align:center;
}
.field-hint{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:6px;}
.field-hint.warn{color:var(--gold-dim);font-weight:700;}

.declaration-box{
  background:var(--chalk-dim);border-left:3px solid var(--gold);padding:18px 22px;
  font-size:14px;font-style:italic;color:var(--ink-soft);line-height:1.6;margin-bottom:20px;
}

.checkbox-option{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft);cursor:pointer;}
.checkbox-option input{width:18px;height:18px;margin-top:2px;accent-color:var(--navy-700);flex-shrink:0;cursor:pointer;}

/* ---------- Cabeçalho: foto + identificação ---------- */
.ficha-top{display:flex;gap:28px;align-items:flex-start;}
.form-row-3{display:grid;grid-template-columns:1fr 0.7fr 1.2fr;gap:16px;margin-top:16px;}
.ficha-top-fields{flex:1;min-width:0;}

.photo-upload{position:relative;width:110px;flex-shrink:0;text-align:center;}
.photo-placeholder, .photo-preview-box{
  width:110px;height:146px;border:1.5px dashed var(--line-strong,var(--line));background:var(--chalk-dim);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;
}
.photo-placeholder svg{width:28px;height:28px;stroke:var(--ink-soft);}
.photo-placeholder span{font-size:11px;color:var(--ink-soft);line-height:1.3;}
#photoPreview{width:110px;height:146px;object-fit:cover;}
#photoPreview[hidden]{display:none;}
.photo-edit-btn{
  margin-top:8px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  background:none;border:0;color:var(--navy-600);cursor:pointer;padding:2px;
}
.photo-edit-btn:hover{text-decoration:underline;}
@media (max-width:560px){
  .ficha-top{flex-direction:column;align-items:center;text-align:center;}
  .form-row-3{grid-template-columns:1fr;}
}

/* ---------- Upload de PDF (atestado) ---------- */
.file-upload-row{
  display:flex;align-items:center;gap:10px;border:1.5px dashed var(--line-strong,var(--line));
  background:var(--chalk-dim);padding:13px 16px;cursor:pointer;font-size:13.5px;color:var(--ink-soft);
  transition:border-color var(--dur-in) var(--ease), background var(--dur-in) var(--ease);
}
.file-upload-row:hover{border-color:var(--navy-500);}
.file-upload-row svg{width:18px;height:18px;stroke:var(--navy-600);flex-shrink:0;}
.file-upload-row.has-file{color:var(--navy-800);font-weight:700;border-style:solid;border-color:var(--navy-500);}


.signature-wrap{border:1.5px dashed var(--line);background:var(--chalk-dim);border-radius:2px;overflow:hidden;}
#signaturePad{width:100%;height:180px;display:block;touch-action:none;cursor:crosshair;background:#fff;}
.signature-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap;}

/* ---------- Cartão de sucesso ---------- */
.success-card{
  max-width:640px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--line);
  padding:56px 40px;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);
}
.success-card svg{width:56px;height:56px;stroke:var(--navy-600);margin:0 auto 20px;}
.success-card h2{font-size:26px;margin-bottom:14px;}
.success-card p{color:var(--ink-soft);font-size:15px;max-width:48ch;margin:0 auto;}
.success-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:32px;}

@media print{
  .site-header, .nav-mobile, .page-banner, .site-footer, .success-actions, .lightbox{display:none !important;}
  body{background:#fff;}
}

/* ============================================================
   GALERIA COMPLETA (página dedicada) — seções por categoria
   ============================================================ */
.cat-jump{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:52px;}
.cat-jump a{
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;
  padding:10px 18px;border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);display:inline-flex;align-items:center;gap:8px;
  transition:background var(--dur-in) var(--ease), color var(--dur-in) var(--ease), border-color var(--dur-in) var(--ease);
}
.cat-jump a span{font-family:var(--mono);font-size:10.5px;color:var(--gold-dim);background:var(--gold-100);padding:1px 7px;border-radius:20px;}
.cat-jump a:hover, .cat-jump a.active{border-color:var(--navy-500);color:var(--navy-700);}
.cat-jump a.active{background:var(--navy-100,#E4EBF4);}

.cat-section{margin-bottom:64px;scroll-margin-top:110px;}
.cat-section:last-child{margin-bottom:0;}
.cat-section-title{
  display:flex;align-items:baseline;gap:12px;font-size:24px;margin-bottom:26px;
  padding-bottom:14px;border-bottom:2px solid var(--navy-900);
}
.cat-section-title span{
  font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.04em;
}

.gallery-cat-tag{display:block;font-family:var(--mono);font-size:10px;color:var(--gold-bright);text-transform:uppercase;letter-spacing:0.06em;margin-top:3px;}


.empty-state{max-width:520px;margin:60px auto;text-align:center;color:var(--ink-soft);}
.empty-state svg{width:44px;height:44px;stroke:var(--ink-soft);opacity:0.5;margin:0 auto 18px;}
.empty-state h2{font-size:22px;color:var(--ink);margin-bottom:10px;}
.empty-state code{font-family:var(--mono);background:var(--chalk-dim);padding:2px 6px;font-size:12.5px;}
