/* =========================================================================
   BASE · Reset, tipografía, formularios y accesibilidad
   ========================================================================= */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(200,164,91,.18);
  /* Deja sitio al header fijo y al footer al hacer scroll hasta un campo */
  scroll-padding-top:130px;
  scroll-padding-bottom:110px;
}
body{
  background:var(--cream);
  color:var(--petrol);
  font-family:'Lato',sans-serif;
  -webkit-font-smoothing:antialiased;
}
body.on-cover{background:var(--petrol);}
#app{overflow-x:clip;min-width:0;}
img,svg,video,canvas{max-width:100%;height:auto;}
h1,h2,h3,.serif{font-family:'Lora',serif;}

/* ----- Formularios ----- */
input,select,button{font-family:'Lato',sans-serif;}
input,select{min-width:0;max-width:100%;}
input[type=text]{-webkit-appearance:none;appearance:none;border-radius:0;}
input[type=range]{margin-left:0;margin-right:0;}
button{-webkit-appearance:none;appearance:none;border-radius:0;touch-action:manipulation;}
select{font-size:16px;}
a{color:var(--gold);text-decoration:underline;cursor:pointer;}
@media (hover:hover){ a:hover{color:var(--petrol);} }

/* ----- Accesibilidad: foco visible ----- */
input:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px;}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{opacity:.4;}
button{cursor:pointer;font-family:'Lato',sans-serif;}

/* Oculta visualmente sin usar display:none (iOS no abre un input file con display:none) */
.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0;}
