/* ==============================
   Sections, Cards, About, Contact, Lang Bars, Footer
============================== */
.section{ padding:3.2rem 0; }
.section h2{
  margin:0 0 1.1rem; font-size:1.55rem;
  color:var(--neon);
  text-shadow:0 0 8px var(--neon-weak);
}

.grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }

.card{
  grid-column:span 12;
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  border:1px solid var(--border);
  border-radius:1rem; padding:1rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.28);
}
.card h3{ margin:0 0 .4rem; }
.card p{ margin:0 0 .8rem; color:var(--muted); }
.badges{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.6rem; }
.badges span{
  background:#0b1511; color:var(--muted);
  padding:.25rem .5rem; border-radius:.5rem;
  border:1px solid var(--border);
}
.links{ display:flex; gap:.8rem; align-items:center; }
.links a{ text-decoration:underline; text-underline-offset:3px; }

.btn-glow{
  display:inline-block;
  padding:.8rem 1.2rem;
  border-radius:.6rem;
  font-weight:700; font-size:1rem; font-family:inherit;
  color:var(--neon);
  background:transparent;
  border:2px solid var(--neon);
  text-shadow:0 0 6px var(--neon-weak);
  box-shadow: 0 6px 18px rgba(0,0,0,.35), 0 0 8px var(--neon-weak2);
  transition: transform .15s, box-shadow .25s, background .25s, color .25s, border-color .25s;
  margin-top:1.2rem;
}
.btn-glow i{ margin-right:.5rem; font-size:1rem; }
.btn-glow:hover{
  background: linear-gradient(180deg, #0a140f, #08130f);
  color:var(--neon);
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.45), 0 0 12px var(--neon-weak);
}

/* About blocks */
.about__inner{
  display:grid; gap:1.2rem; align-items:start;
  grid-template-columns:1fr;
}
@media (min-width:860px){
  .about__inner{ grid-template-columns:320px 1fr; }
}
.about__img{ display:flex; justify-content:flex-start; align-items:flex-start; border-radius:1rem; }
.about__img img{
  width:260px; max-width:100%; height:auto; object-fit:cover;
  border-radius:1rem; border:1px solid var(--border);
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
  margin-top:.5rem;
}
@media (min-width:860px){
  .about--swap .about__inner{ grid-template-columns: 1fr 320px; }
  .about--swap .about__inner > *:first-child{ order:2; }
  .about--swap .about__inner > *:last-child{ order:1; }
}
.about--tight{ padding-top:.5rem; }
.skills{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.4rem .8rem; padding-left:1rem; color:var(--muted);
}

/* Contact form */
.contact-form{ margin-top:1rem; margin-bottom:2.5rem; }
.form-grid{ display:grid; grid-template-columns:1fr; gap:1rem; margin-bottom:1rem; }
.form-field label{ display:block; font-weight:700; margin-bottom:.35rem; color:var(--muted); }
.form-field input,.form-field select,.form-field textarea{
  width:100%; padding:.75rem .85rem; border-radius:.5rem;
  background:var(--grid); color:var(--text);
  border:1px solid var(--border);
  outline:none;
  transition: box-shadow .2s, border-color .2s;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--neon);
  box-shadow: 0 0 0 3px var(--neon-weak2), 0 0 16px var(--neon-weak2);
}
.form-field--full{ grid-column:span 1; }
.form-note,.muted{ color:var(--muted); }
.small{ font-size:.9rem; }
@media (min-width:720px){
  .form-grid{ grid-template-columns:repeat(2,1fr); }
  .form-field--full{ grid-column:1 / -1; }
}
.form-status{
  margin-top:1rem; padding:.8rem 1rem; border-radius:.6rem;
  border:1px solid var(--border);
}
.form-status.info{ color:var(--text); background:#0e1711; border-color:#154232; }
.form-status.success{ color:#022e18; background:#0effa966; border-color:#0effa9; }
.form-status.error{ color:#ffd7d7; background:#3b0e0e; border-color:#6d1f1f; }
.form-status:empty{ border:0; padding:0; margin-top:0; }
.form-field.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Language bars */
.lang-list{ display:grid; gap:1.2rem; margin-top:1rem; }
.lang-item{
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  border:1px solid var(--border);
  border-radius:.8rem; padding:1rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.28);
}
.lang-labels{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.6rem; }
.lang-name{ font-weight:800; }
.lang-level{ color:var(--muted); }
.lang-bars{ display:flex; gap:.4rem; margin:.5rem 0 .8rem; }
.bar{
  flex:1; height:14px; border-radius:3px;
  background:#07110d; border:1px solid var(--border);
  box-shadow: inset 0 0 6px rgba(0,0,0,.4);
  opacity:.35; transition: opacity .25s, background .25s, box-shadow .25s;
}
.bar.active{
  opacity:1;
  background: linear-gradient(180deg, #0cf298, #04c26f);
  box-shadow: 0 0 10px var(--neon-weak);
}

/* Footer */
.footer{
  border-top:1px solid var(--border);
  padding:2rem 0; color:var(--muted); text-align:center;
  margin-top:2rem;
}
