/* ==========================================================
   Formulario CV — Farmacia Borrás (versión compacta y pro)
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&display=swap');

/* ===== Variables ===== */
:root{
  --color-principal:#2f6d5b;   /* verde farmacia */
  --color-secundario:#49a88e;  /* verde claro */
  --color-acento:#0f8bce;      /* acento enlaces */
  --color-texto:#1f1f1f;
  --color-texto-suave:#60666c;
  --color-fondo:#f4f6f7;
  --color-blanco:#ffffff;
  --color-borde:#e2e6ea;
  --color-borde-2:#d6dde3;

  --font-base:'Nunito Sans',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;

  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:20px;

  --shadow-sm:0 3px 10px rgba(0,0,0,.06);
  --shadow-md:0 10px 28px rgba(0,0,0,.10);

  --trn-fast:160ms ease;
  --trn:220ms ease;

  /* ===== Ajustes de densidad (EDITABLES) ===== */
  --gap-form:.75rem;            /* antes 1.15rem */
  --pad-field:.75rem .9rem;     /* antes 1rem 1.1rem */
  --mb-label:.35rem;            /* antes .45rem */
  --pad-input:.7rem .9rem;      /* antes .9rem 1rem */
}

/* ===== Reset ===== */
*,
*::before,
*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-base);
  color:var(--color-texto);
  background:linear-gradient(180deg,#f7f9fb 0%,var(--color-fondo)100%);
  line-height:1.55; /* ligeramente más tenso */
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--color-acento);text-decoration:none;}
a:hover{text-decoration:underline;text-underline-offset:2px;}
button{font-family:inherit;}
::selection{background:rgba(73,168,142,.25);}

/* ===== Contenedor ===== */
.container{
  max-width:640px;
  margin:clamp(20px,5vw,56px) auto; /* menos margen vertical */
  padding:clamp(18px,4.5vw,30px);    /* menos padding */
  background:var(--color-blanco);
  border:1px solid var(--color-borde);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
}

/* ===== Cabecera ===== */
.header{text-align:center;margin-bottom:1.25rem;} /* antes 1.75rem */
.header .logo{margin:0 auto .55rem;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.06));}
h1{
  margin:.1rem 0 .25rem;
  font-weight:800;
  letter-spacing:.2px;
  color:var(--color-principal);
  font-size:clamp(1.5rem,3.2vw,2rem);
}
.header p{color:var(--color-texto-suave);margin:0 0 .6rem;}

/* ===== Formulario ===== */
.form{display:flex;flex-direction:column;gap:var(--gap-form);margin-top:.25rem;}

/* ===== Campos ===== */
.field{
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#fff,#fbfcfd);
  border:1px solid var(--color-borde);
  border-radius:var(--radius-md);
  padding:var(--pad-field);
  box-shadow:var(--shadow-sm);
  transition:border-color var(--trn),box-shadow var(--trn);
}
.field:hover{border-color:var(--color-borde-2);}
.field:focus-within{
  border-color:var(--color-secundario);
  box-shadow:0 0 0 3px rgba(73,168,142,.14); /* antes 4px */
}

label{
  font-weight:700;
  color:var(--color-principal);
  margin-bottom:var(--mb-label);
  font-size:.98rem;
  letter-spacing:.15px;
}
label:has(+ input[required]),
label:has(+ textarea[required])::after{
  content:" *";
  color:var(--color-principal);
  font-weight:800;
}

/* Inputs */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="file"],
textarea{
  width:100%;
  padding:var(--pad-input);
  border:1px solid var(--color-borde);
  border-radius:var(--radius-sm);
  background:var(--color-blanco);
  color:var(--color-texto);
  font-size:1rem;
  transition:border-color var(--trn),box-shadow var(--trn);
}
textarea{resize:vertical;min-height:110px;} /* antes 130px */
input::placeholder,textarea::placeholder{color:#9aa3aa;}
input:focus,textarea:focus{outline:none;border-color:var(--color-secundario);box-shadow:0 0 0 2px rgba(73,168,142,.16);} /* antes 3px */

/* Validación sin rojo (sutil) */
input:required:invalid,textarea:required:invalid{
  border-color:color-mix(in srgb,var(--color-acento) 55%,transparent);
}
input:required:valid,textarea:required:valid{
  border-color:color-mix(in srgb,var(--color-secundario) 60%,transparent);
}

/* ===== Checkbox RGPD (alineado y con ✓) ===== */
.checkbox-field{
  display:flex;
  align-items:baseline;         /* alinea checkbox con texto */
  gap:.6rem;                    /* antes .75rem */
  padding:.7rem .9rem;          /* antes 1rem 1.1rem */
  border:1px dashed var(--color-borde);
  border-radius:var(--radius-md);
  background:#fcfdfd;
}
.checkbox-field input[type="checkbox"]{
  appearance:none;
  position:relative;
  width:20px; height:20px;      /* antes 22px */
  border:2px solid var(--color-borde-2);
  border-radius:6px;
  background:#fff;
  margin:0;                     /* elimina salto vertical */
  top:2px;                      /* microajuste baseline */
  transition:border-color var(--trn),background-color var(--trn),box-shadow var(--trn),transform var(--trn-fast);
}
.checkbox-field input[type="checkbox"]:hover{border-color:var(--color-secundario);}
.checkbox-field input[type="checkbox"]:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(73,168,142,.18);
  border-color:var(--color-secundario);
}
.checkbox-field input[type="checkbox"]:active{transform:scale(.96);}

/* ✓ limpio con bordes (sin cuadrado relleno) */
.checkbox-field input[type="checkbox"]:checked{
  background:#fff;               /* sin relleno de color */
  border-color:var(--color-principal);
}
.checkbox-field input[type="checkbox"]:checked::after{
  content:"";
  position:absolute;
  inset:auto;
  left:5px; top:1px;            /* posiciona la ✓ */
  width:7px; height:12px;
  border-right:3px solid var(--color-principal);
  border-bottom:3px solid var(--color-principal);
  transform:rotate(45deg);
}

/* Texto dentro del RGPD más compacto */
.checkbox-field label,
.checkbox-field .label{
  color:var(--color-texto);
  font-weight:600;
  line-height:1.35;
}

/* ===== File input ===== */
input[type="file"]{
  padding:.55rem .75rem;        /* antes .6rem .8rem */
  border-style:dashed;
  background:
    linear-gradient(180deg,#fff,#fafcfd) padding-box,
    repeating-linear-gradient(135deg,transparent 0 10px,rgba(0,0,0,.02)10px 20px) border-box;
}
input[type="file"]::file-selector-button{
  appearance:none;margin-right:.7rem;border:0;border-radius:999px;
  padding:.5rem 1rem;font-weight:800;font-size:.95rem;cursor:pointer;
  background:var(--color-principal);color:var(--color-blanco);
  box-shadow:0 6px 14px rgba(47,109,91,.18);
  transition:transform var(--trn-fast),box-shadow var(--trn),background-color var(--trn);
}
input[type="file"]::file-selector-button:hover{
  background:var(--color-secundario);
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(73,168,142,.22);
}

/* ===== reCAPTCHA ===== */
.g-recaptcha{transform-origin:0 0;margin-top:.15rem;filter:saturate(110%);}
@media(max-width:720px){.g-recaptcha{transform:scale(.96);}}

/* ===== Botón principal ===== */
.actions{display:flex;justify-content:center;margin-top:1rem;} /* antes 1.5rem */
.btn{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;
  border:0;border-radius:999px;padding:.9rem 1.6rem; /* un punto menos de padding */
  font-weight:900;letter-spacing:.2px;font-size:1rem;cursor:pointer;
  background:var(--color-principal);color:var(--color-blanco);
  box-shadow:0 10px 22px rgba(47,109,91,.18);
  transition:transform var(--trn-fast),box-shadow var(--trn),background-color var(--trn);
}
.btn:hover{
  background:var(--color-secundario);
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(73,168,142,.22);
}

/* ===== Texto legal / Footer ===== */
/* Bloque legal compacto con botón en línea y baseline */
.legal{
  margin-top:.9rem;             /* antes 1.25rem */
  font-size:.93rem;
  color:var(--color-texto-suave);
  display:flex;
  justify-content:center;
  align-items:baseline;         /* << alineación con el texto */
  gap:.5rem;
  flex-wrap:wrap;
  text-align:center;
}
.legal a{text-underline-offset:2px;}
/* Botón/Link de privacidad estilo ghost, pequeño y en línea */
.btn-privacy{
  appearance:none;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--color-borde-2);
  background:transparent;
  color:var(--color-principal);
  border-radius:999px;
  padding:.35rem .7rem;         /* tamaño pequeño */
  font-weight:800;
  font-size:.85rem;
  line-height:1;
  cursor:pointer;
  transition:background-color var(--trn),border-color var(--trn),transform var(--trn-fast);
}
.btn-privacy:hover{
  background:rgba(73,168,142,.08);
  border-color:var(--color-secundario);
  transform:translateY(-1px);
}

footer.site-footer{
  text-align:center;font-size:13px;color:var(--color-texto-suave);
  margin-top:1.4rem;padding:.75rem 0 .4rem;border-top:1px solid var(--color-borde);
}

/* ===== Accesibilidad ===== */
:focus-visible{outline:3px solid rgba(15,139,206,.35);outline-offset:3px;border-radius:8px;}
[disabled],button:disabled{opacity:.65;cursor:not-allowed;filter:grayscale(.1);}

/* ===== Responsive ===== */
@media(max-width:720px){
  .container{margin:16px 12px;padding:16px;border-radius:var(--radius-md);}
  .header .logo{max-width:180px;}
}

/* ===== Modo oscuro ===== */
@media(prefers-color-scheme:dark){
  :root{
    --color-fondo:#0f1113;
    --color-blanco:#13161a;
    --color-texto:#e9eef3;
    --color-texto-suave:#a9b4be;
    --color-borde:#2a2f36;
    --color-borde-2:#38414a;
  }
  body{background:linear-gradient(180deg,#0d0f11 0%,#0f1113 100%);color:var(--color-texto);}
  .container{background:var(--color-blanco);border-color:var(--color-borde);}
  .field{background:linear-gradient(180deg,#14181d,#111418);border-color:var(--color-borde);}
  input,textarea{background:#0f1216;color:var(--color-texto);border-color:#2a2f36;}
  input::placeholder,textarea::placeholder{color:#8e9aa5;}
  .checkbox-field{background:#14181d;border-color:#2a2f36;}
  .btn-privacy{border-color:#2a2f36;color:#cfe7de;}
  .btn-privacy:hover{background:rgba(73,168,142,.15);border-color:#3a6f60;}
  footer.site-footer{border-color:var(--color-borde);}
}

/* ===== Movimiento reducido ===== */
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
}

/* ===== Impresión ===== */
@media print{
  body{background:#fff;}
  .container{box-shadow:none;border:1px solid #bbb;}
  .actions,.g-recaptcha,#cookie-banner{display:none!important;}
}

.form-messages{
  margin-top:.8rem;
  text-align:center;
  font-weight:700;
  font-size:.95rem;
  transition:opacity .3s ease;
}
.form-messages.success{color:var(--color-secundario);}
.form-messages.error{color:#c0392b;}

