/* Proyecto Abadia - estils unificados para formularios */
/* 1. DECLARACIÓN DE LA FUENTE */
@font-face {
  font-family: 'Montserrat';
  src: url('/static/fonts/montserrat/Montserrat-Regular.ttf') format('truetype');
  font-weight: 400;
}

@font-face {
  font-family: 'Montserrat';
  src: url('/static/fonts/montserrat/Montserrat-Bold.ttf') format('truetype');
  font-weight: 700;
  src: url('/static/fonts/montserrat/Montserrat-ExtraLight.ttf') format('truetype');
  font-weight: 200;
  font-style: normal;
  src: url('/static/fonts/montserrat/Montserrat-Light.ttf') format('truetype');
  font-weight: 300;
  src: url('/static/fonts/montserrat/Montserrat-Medium.ttf') format('truetype');
  font-weight: 500;
  src: url('/static/fonts/montserrat/Montserrat-SemiBold.ttf') format('truetype');
  font-weight: 600;
  src: url('/static/fonts/montserrat/Montserrat-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  src: url('/static/fonts/montserrat/Montserrat-Black.ttf') format('truetype');
  font-weight: 900;
  src: url('/static/fonts/montserrat/Montserrat-BoldItalic.ttf') format('truetype');
  font-style: italic;
}

/* ======= MONTSERRAT ======= */
@font-face {
  font-family: 'Montserrat';
  src: url('/static/fonts/montserrat/Montserrat-Thin.ttf') format('truetype');
  font-weight: 100;
  font-style: normal;
}

/* CURSIVES */
@font-face {
  font-family: 'Montserrat';
  src: url('/static/fonts/montserrat/Montserrat-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
}

body {
  font-family: 'Montserrat', sans-serif;
  background: linear-gradient(to top, #b0b0b0, #ffffff);
  min-height: 100vh;
}
h1, h2, h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}

/* Agrupación horizontal de campos */
.bloque-formulario {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}

/* Estilo para inputs grandes y selects */
input[type="text"],
select,
textarea {
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 16px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  box-sizing: border-box;
  flex: 1;
  margin-top: 6px;
  margin-bottom: 6px;
}

/* Campos numéricos: desde / hasta */
input[type="number"] {
  width: 80px;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 16px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  box-sizing: border-box;
  margin-top: 6px;
  margin-bottom: 6px;
}

/* Comportamiento al enfocar cualquier campo */
input:focus,
select:focus,
textarea:focus {
  border-color: #1f1e22;
}

.dades-personales {
  max-width: 800px;
  margin: 40px auto;
  text-align: center;
  padding: 20px;
  background-color: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.arxius-entrades {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.tarjeta-entrada {
  background-color: #ffffff;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.tarjeta-entrada h3 {
  font-size: 1.3em;
  margin-bottom: 5px;
  color: #005577;
}

.rango-datas {
  font-size: 0.9em;
  color: #777;
  margin-bottom: 10px;
}

.texto-testimonio {
  font-size: 1.1em;
  color: #333;
  line-height: 1.5;
}


.dades-personales p {
  font-size: 1.2em;
  margin: 10px 0;
  color: #444;
}

/* --- Unificación de estilo redondeado --- */
input,
select,
textarea,
button {
  border-radius: 6px !important;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 10px 12px;
  font-size: 16px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  border: 1px solid #ccc;
  box-sizing: border-box;
}

/* Efecto al enfocar */
input:focus,
select:focus,
textarea:focus {
  border-color: #3f51b5;
  box-shadow: 0 0 5px rgba(63, 81, 181, 0.5);
  outline: none;
}

/* Estilo para los selects generados por Choices.js */
.choices__inner {
  border-radius: 6px !important;
  border: 1px solid #ccc !important;
  padding: 10px 12px !important;
  font-size: 16px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  box-sizing: border-box;
}

/* Al enfocar el campo */
.choices.is-focused .choices__inner {
  border-color: #3f51b5 !important;
  box-shadow: 0 0 5px rgba(63, 81, 181, 0.5) !important;
}

/* Opcional: estiliza las opciones desplegadas */
.choices__list--dropdown .choices__item {
  border-radius: 0;
  padding: 8px 10px;
  font-size: 15px;
}



.login-box {
  max-width: 400px;
  margin: 80px auto;
  padding: 30px;
  border: 1px solid #ec0808;
  border-radius: 12px;
  background-color: #f9f9f9;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.1);
}

.login-box h1 {
  text-align: center;
  margin-bottom: 20px;
}

.login-box form label,
.login-box form input,
.login-box form button {
  display: block;
  width: 100%;
  margin-bottom: 12px;
}

.login-box form input,
.login-box form button {
  padding: 8px;
}

.mensaje-error {
  color: red;
  font-weight: bold;
  text-align: center;
  font-size: 20px;
  margin-bottom: 20px;
}

.cabecera-fitxa {
  max-width: 800px;
  margin: 40px auto;
  text-align: center;
}

.nom-usuari {
  font-size: 2em;
  font-weight: bold;
  color: #222;
  margin: 0;
}

.dades-secundarios {
  font-size: 1.2em;
  color: #555;
  margin: 10px 0 30px 0;
}

.zona-fitxa-flex {
  display: flex;
  max-width: 1200px;
  margin: 40px auto;
  gap: 30px;
  max-width: 1000px;
  margin: 20px auto;
}

.columna-principal {
  flex: 3;
}

.columna-arxius {
  flex: 1;
  background-color: #f5f5f5;
  padding: 20px;
  border-left: 2px solid #ddd;
  padding: 10px;
  text-align: center;
}

.columna-arxius h3 {
  font-size: 1.2em;
  margin-bottom: 15px;
}

.arxiu-media {
  margin-bottom: 15px;
  text-align: center;
}

.arxiu-media img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.arxiu-media audio {
  width: 100%;
}

.text-principal {
  width: 100%;
  max-width: 1000px;
  height: 400px;
  font-size: 1.1em;
  padding: 15px;
  margin: 20px auto;
  display: block;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.visibilitat-publica {
  margin: 20px 0;
  font-size: 1em;
  display: flex;
  align-items: center;
  gap: 10px;
}



.visibilitat-publica label {
  cursor: pointer;
  font-weight: normal;
}


.bloc-final {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 20px;
  margin-bottom: 40px;
}

.bloc-final .visibilitat-publica {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Caja azul igual que antes */
.bloc-final .visibilitat-publica {
  background-color: #d8ecff;
  /* mismo azul que tenías antes */
  padding: 10px 15px;
  border-radius: 10px;
  border: 1px solid #a0c8e0;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  color: #003366;
}



main.formulario h1 {
  text-align: center;
}

main.formulario form {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* BLOQUE FINAL DE ACCIÓN: 
.bloc-final {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
  flex-wrap: wrap;
}


.bloc-final label {
  font-weight: 500;
}

main.formulario {
  max-width: 800px;
  margin: 40px auto;
  padding: 20px;
}

.campo-largo {
  width: 100%;
  max-width: 1000px;
  font-size: 1.1em;
  padding: 10px 12px;
  /* altura razonable */
  margin: 12px auto;
  display: block;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  border: 1px solid #ccc;
  border-radius: 6px;
  font-family: 'Montserrat', sans-serif;
}

main.formulario label {
  display: block;
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  max-width: 1000px;
  width: 100%;
  font-weight: 500;
  font-family: 'Montserrat', sans-serif;
}

.campo-largo,
.text-principal,
input[type="file"],
#referencia_ubicacio {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.arxiu-entrades {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin-top: 40px;
  margin-top: -5px;
}

.thumb-imagen:hover {
  transform: scale(1.05);
}

.thumb-imagen {
  width: 100px;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  display: block;
  margin: 0 auto;
}

.galeria-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 15px;
  padding: 20px;
}

.imatge-galeria img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 0 6px rgba(0,0,0,0.2);
}

.titol-galeria {
  text-align: center;
  font-size: 1.8em;
  margin-bottom: 10px;
  margin-top: 40px;
  color: #444;
}

.grid-miniatures {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 15px;
  padding: 10px;
}

.miniatura-galeria {
  width: 150px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transition: transform 0.3s ease;
}

.miniatura-galeria:hover {
  transform: scale(1.05);
}

.enllac-titol-galeria {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s;
}

.enllac-titol-galeria:hover {
  color: darkred;
}

/* aquí la màgia que vols aplicar */

input.campo-largo:focus,
textarea.campo-largo:focus {
  border-color: #5a9;
  outline: none;
  background-color: #fffdf6;
}

.col-esquerra h1,
.col-dreta h1 {
  margin: 0;
  padding: 0;
  width: 100%;
  box-sizing: border-box;
}

.llista-entrades {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  padding: 30px;
}

.caixa-entrada {
  display: flex;
  width: 600px;
  background-color: #fdfdfd;
  border-radius: 12px;
  box-shadow: 0 0 4px rgba(0,0,0,0.1);
  overflow: hidden;
}

.imatge-lateral img {
  width: 150px;
  height: 100%;
  object-fit: cover;
  display: block;
}

.contingut-lateral {
  flex: 1;
  padding: 15px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contingut-lateral h3 {
  margin: 0;
  font-size: 1.1rem;
}

.contingut-lateral .any {
  font-weight: normal;
  color: #666;
  font-size: 0.95rem;
}

.resum {
  margin: 10px 0;
  color: #333;
}

.metadades {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  color: #888;
}

.arxiu-entrades h2 {
  text-align: center;
}

.fila-formulari {
  display: flex;
  gap: 15px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.fila-formulari > div {
  flex: 1;
  min-width: 160px;
}

.fila-formulari label {
  font-weight: 600;
  display: block;
  margin-bottom: 3px;
  color: #333;
}

.fila-formulari input {
  width: 100%;
  padding: 6px 8px;
  font-size: 14px;
  border-radius: 6px;
  border: 1px solid #ccc;
  box-sizing: border-box;
}



.aviso-etico {
  margin-top: 15px;
  font-size: 13px;
  color: #555;
  background-color: #eef9e8;
  padding: 8px 12px;
  border-radius: 6px;
  border-left: 3px solid #3c7;
}


.fila-final {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 25px;
  gap: 20px;
  flex-wrap: wrap;
}


.fila-final button[type="submit"] {
  padding: 10px 20px;
  font-size: 14px;
  border-radius: 8px;
  background-color: #4CAF50;
  color: white;
  border: none;
  cursor: pointer;
  white-space: nowrap;
}

.fila-final button[type="submit"]:hover {
  background-color: #3a9e45;
}

/*info fiches pagina personal*/
/* 🔷 Unificació estil visual per a títols principals */

h1.nom-complet,
.arxiu-entrades h1 {
  text-align: left;
  font-size: 1.1rem;
  font-weight: 500;
  color: #222;
  border-bottom: 1px solid #ccc;
  padding-bottom: 4px;
  margin: 0;
  margin-top: 0;
  margin-bottom: 10px;
}

/* 🔧 Ajustos de separació */
.capcalera-usuari {
  margin-top: 0;
  margin-bottom: 10px;
}

.seccio {
  padding-top: 0px;
  margin-top: 0px;
}


/* 🔧 Evita que la secció afegeixi padding vertical */
.seccio {
  padding-top: 0px;
  margin-top: 0px;
}

/* 🔧 Elimina marge del h2 */
.arxiu-entrades h1 {
  margin-top: 0px;
  padding-top: 0px;
}

/* 🔧 Elimina altura buida de .cabecera-fitxa (si és el problema) */
.cabecera-fitxa {
  min-height: 0px;
  padding: 0px;
  margin: 0px;
}

footer {
  text-align: center;
  padding: 2rem;
  border-top: 1px solid #ddd;
  font-size: 0.9rem;
  background-color: #f9f7f3;
  margin-top: 2rem;
}


/* modal_login.css */

.submenu-login {
  display: none;
  position: absolute;
  right: 2rem;
  top: 60px;
  width: 320px;
  background: #fff;
  border: 1px solid #ccc;
  padding: 20px;
  z-index: 1000;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  border-radius: 8px;
  font-size: 14px;
}

.submenu-login.mostrar {
  display: block;
}

.submenu-login label {
  font-weight: bold;
  margin-bottom: 5px;
  display: block;
}

.submenu-login input {
  width: 100%;
  padding: 8px;
  margin-bottom: 10px;
  font-size: 14px;
}

.submenu-login button {
  width: 100%;
  padding: 10px;
  background: #333;
  color: white;
  border: none;
  cursor: pointer;
}

.registre-entrada {
  margin-top: 20px;
  border-top: 1px solid #ccc;
  padding-top: 15px;
}

.registre-entrada h3 {
  font-size: 16px;
  margin-bottom: 10px;
}

.tipus-compte li {
  margin-bottom: 5px;
}

.finestra-error-login {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
  padding: 10px;
  margin: 15px auto;
  width: fit-content;
  border-radius: 4px;
  display: none;
}

/* Modal disclaimer */
.modal {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 1100;
  justify-content: center;
  align-items: center;
}

.modal.mostrar {
  display: flex;
}

.modal-content {
  background: white;
  padding: 30px;
  max-width: 500px;
  border-radius: 10px;
  text-align: left;
  box-shadow: 0 4px 20px rgba(0,0,0,0.25);
}

.modal-content h2 {
  margin-top: 0;
}
