/* =====================================================================
   CamperAhora · estilo común (blanco limpio + colores suaves de los 80)
   Los colores claros (mostaza, melocotón, rosa, lavanda) se usan solo
   para fondos, franjas e iconos: el texto siempre va en tonos oscuros.
   ===================================================================== */
@font-face{font-family:Righteous;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/righteous-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/nunito-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/nunito-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/nunito-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(fonts/nunito-latin-800-normal.woff2) format('woff2')}

:root{
  --blanco:#FFFFFF;--crema:#FFF8EC;--crema-2:#FBEFD9;--linea:#EADFCB;--linea-2:#D9CBB0;
  --texto:#2B2D42;--texto-2:#4A4E69;--texto-3:#686C7E;
  --mostaza:#F2C14E;--mostaza-2:#E9B232;--melocoton:#F4A261;--salvia:#8AB17D;--turquesa:#2A9D8F;--lavanda:#B8A1D9;--rosa:#F7B2BD;
  --enlace:#1D7A6F;--ok:#2E7D4F;--peligro:#C0392B;--aviso:#B45309;
  --c-area:#2A9D8F;--c-camping:#5E8C52;--c-parking:#7E62B3;--c-vaciado:#D9772F;
  --titulo:Righteous,'Trebuchet MS',system-ui,sans-serif;--cuerpo:Nunito,'Segoe UI',Roboto,system-ui,sans-serif;
  --sombra:0 10px 30px rgba(43,45,66,.12);--radio:18px;
  /* nombres que usan las plantillas compartidas */
  --asfalto:var(--blanco);--asfalto-2:var(--crema);--asfalto-3:var(--crema-2);--ambar:var(--mostaza);--ambar-2:var(--mostaza-2);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--blanco);color:var(--texto);font:400 16px/1.55 var(--cuerpo);-webkit-text-size-adjust:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
a{color:var(--enlace)}
img{max-width:100%}
.vh,.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--turquesa);outline-offset:2px}

/* ---------- Cabecera ---------- */
.barra{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--linea)}
.marca{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--texto)}
.marca svg{width:46px;height:32px;flex:0 0 auto}
.marca b{font:400 23px/1 var(--titulo);letter-spacing:.2px;white-space:nowrap}
.marca b span{color:var(--turquesa)}
.acciones-top{display:flex;align-items:center;gap:8px}
.chip-top{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--linea-2);background:var(--blanco);color:var(--texto);font-weight:700;font-size:14.5px;text-decoration:none;white-space:nowrap}
.chip-top svg{width:18px;height:18px}
.chip-top:hover{border-color:var(--texto)}
.chip-top.cta{background:var(--mostaza);border-color:var(--mostaza)}
.chip-top.cta:hover{background:var(--mostaza-2);border-color:var(--mostaza-2)}
/* Franjas retro (como las de las furgonetas de los 70-80) */
.franja{height:12px;background:linear-gradient(var(--mostaza) 0 25%,var(--melocoton) 25% 50%,var(--salvia) 50% 75%,var(--turquesa) 75% 100%)}
.franja.fina{height:6px}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border:0;border-radius:16px;background:var(--mostaza);color:var(--texto);font:800 17px/1 var(--cuerpo);text-decoration:none;box-shadow:0 6px 0 var(--mostaza-2);transition:transform .08s,box-shadow .08s}
.btn:hover{background:var(--mostaza-2)}
.btn:active{transform:translateY(3px);box-shadow:0 3px 0 var(--mostaza-2)}
.btn:disabled{opacity:.55;cursor:default}
.btn svg{width:20px;height:20px}
.btn.sec{background:var(--blanco);border:2px solid var(--texto);box-shadow:none}
.btn.sec:hover{background:var(--crema)}
.btn.turquesa{background:var(--turquesa);color:#fff;box-shadow:0 6px 0 #1F776D}
.btn.ancho{width:100%}

/* ---------- Formularios ---------- */
.campo{display:grid;gap:6px;margin:0 0 14px}
.campo>span:not(.entrada){font-weight:700;font-size:14px;color:var(--texto-2)}
.entrada{display:flex;align-items:center;gap:8px;min-height:50px;padding:0 14px;border:1.5px solid var(--linea-2);border-radius:14px;background:var(--blanco)}
.entrada:focus-within{border-color:var(--turquesa);box-shadow:0 0 0 3px rgba(42,157,143,.18)}
.entrada input,.entrada textarea,.entrada select{flex:1;min-width:0;border:0;outline:0;background:none;padding:12px 0;font-size:16px}
.entrada textarea{min-height:120px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;font-size:15px;color:var(--texto-2)}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--turquesa)}
.enlace{background:none;border:0;padding:0;color:var(--enlace);text-decoration:underline;font-weight:700}
.ver-clave{background:none;border:0;padding:6px;color:var(--texto-3);display:inline-flex}
.ver-clave svg{width:20px;height:20px}
.ver-clave[aria-pressed="true"]{color:var(--turquesa)}
.pestanas{display:flex;gap:6px;margin:0 0 16px;padding:4px;border-radius:14px;background:var(--crema)}
.pestanas button{flex:1;min-height:42px;border:0;border-radius:11px;background:none;font-weight:700;color:var(--texto-2)}
.pestanas button[aria-pressed="true"]{background:var(--blanco);color:var(--texto);box-shadow:0 2px 8px rgba(43,45,66,.12)}
.acceso-form .btn,.acceso-nueva .btn{width:100%;margin-top:4px}
.acceso-ok{display:grid;justify-items:center;text-align:center;gap:8px;padding:10px 0}
.acceso-ok>svg{width:54px;height:54px;color:var(--ok)}
.acceso-ok h3,.acceso-nueva h3{margin:0;font:400 22px var(--titulo)}
.acceso-ok p{margin:0;color:var(--texto-2)}
button[aria-busy="true"]{opacity:.7;pointer-events:none}

/* ---------- Avisos ---------- */
.toast{position:fixed;left:50%;bottom:22px;z-index:3000;transform:translate(-50%,30px);opacity:0;max-width:min(92vw,460px);padding:12px 16px;border-radius:14px;background:var(--texto);color:#fff;font-weight:700;box-shadow:var(--sombra);transition:.25s;pointer-events:none}
.toast.on{transform:translate(-50%,0);opacity:1}
.toast.error{background:var(--peligro)}
.nota{padding:12px 14px;border-radius:14px;background:var(--crema);border:1px solid var(--linea);color:var(--texto-2)}
.nota.ok{background:#EAF5EE;border-color:#BFE0CB;color:#1F5A38}
.nota.mal{background:#FBEBE9;border-color:#F1C1BB;color:#8A2A1F}

/* ---------- Pie ---------- */
.pie{margin-top:40px;background:var(--crema);border-top:1px solid var(--linea);padding:28px 18px 34px;color:var(--texto-3);font-size:14.5px}
.pie .cols{max-width:1100px;margin:0 auto;display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.pie h4{margin:0 0 8px;font:400 17px var(--titulo);color:var(--texto)}
.pie a{display:block;padding:3px 0;color:var(--texto-2);text-decoration:none}
.pie a:hover{color:var(--enlace);text-decoration:underline}
.pie .legal{max-width:1100px;margin:22px auto 0;padding-top:16px;border-top:1px solid var(--linea);display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:space-between}
.pie .legal a{display:inline}

@media(max-width:560px){
  .barra{padding:8px 12px}
  .marca b{font-size:20px}
  .marca svg{width:38px;height:27px}
  .chip-top{height:38px;padding:0 11px;font-size:13.5px}
  .chip-top .txt-largo{display:none}
}
@media(max-width:370px){.marca b{font-size:18px}.chip-top.cuenta{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Aviso de cookies ---------- */
.cookies{position:fixed;left:12px;right:12px;bottom:12px;z-index:5000;max-width:720px;margin:0 auto;display:grid;gap:12px;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid var(--linea);box-shadow:0 12px 40px rgba(43,45,66,.22);font-size:15px;color:var(--texto-2)}
.cookies p{margin:0}
.cookies b{display:block;margin-bottom:2px;font:400 18px var(--titulo);color:var(--texto)}
.cookies-btns{display:flex;flex-wrap:wrap;gap:10px}
.cookies-btns .btn{min-height:46px;padding:0 20px;font-size:15.5px;box-shadow:none;flex:1 1 160px}
@media(min-width:760px){.cookies{grid-template-columns:1fr auto;align-items:center}.cookies-btns .btn{flex:none}}
