/* ==========================================================================
   Creacion de Web - sistema visual comun
   Lo cargan todas las paginas del sitio de venta: inicio, articulo, asistente
   y checkout. Aca viven los tokens, la tipografia y las piezas repetidas.

   Direccion visual: taller chileno con oficio. Editorial, calido y confiable.
   Papel crema, tinta calida, acento petroleo y un ambar de uso escaso. Titulos
   en Fraunces, cuerpo en Public Sans. Reglas finas en color borde, esquinas de
   4 a 6 px salvo una o dos piezas mayores.

   Las dos fuentes se cargan desde Google Fonts en cdw_cabeza_comun() (lib/marca.php)
   con preconnect y display=swap. Si la red falla, cae al stack de respaldo real:
   Georgia para los titulos, la fuente del sistema para el cuerpo.
   ========================================================================== */

:root{
  /* Tinta y texto: neutros con sesgo calido, no gris puro */
  --tinta:#1b1a17;
  --texto:#4a453b;
  --suave:#8a8272;

  /* Superficies */
  --papel:#faf7f1;
  --papel-alt:#efe9dd;
  --panel:#fffdf8;
  --borde:#e0d9c8;
  --borde-fuerte:#cdc3ab;

  /* Accion: petroleo */
  --acento:#0f5c56;
  --acento-osc:#0b453f;
  --acento-claro:#3f8f88;
  --acento-suave:#e4efeb;

  /* Detalle: ambar, uso escaso */
  --senal:#d98a3d;
  --senal-suave:#f6e8d6;

  /* Estado */
  --ok:#0f5c56;
  --err:#a33227;
  --err-suave:#f7e9e5;

  /* Forma: esquinas discretas */
  --r:5px;
  --r-chico:4px;
  --r-grande:10px;

  /* Tipografia */
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;
}

/* Variante oscura coherente. No se activa sola: se aplica poniendo la clase
   .tema-oscuro en <html> o <body>. Queda definida para cuando exista el
   interruptor; hoy ninguna pagina la usa. */
.tema-oscuro{
  --tinta:#f7f3ea;
  --texto:#c9c2b2;
  --suave:#9a927f;
  --papel:#1b1a17;
  --papel-alt:#232019;
  --panel:#232019;
  --borde:#3a352b;
  --borde-fuerte:#4b4538;
  --acento:#4fb3a8;
  --acento-osc:#3f8f88;
  --acento-claro:#6fc7bd;
  --acento-suave:#26302e;
  --senal:#e0a15f;
  --senal-suave:#332a1f;
  --err-suave:#33221f;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--papel);
  color:var(--texto);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.65;
  font-synthesis:none;
}

h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--tinta);
  font-weight:600;
  font-optical-sizing:auto;
  letter-spacing:normal;
  line-height:1.15;
  text-wrap:balance;
  margin:0 0 14px;
}
p{margin:0 0 16px;max-width:65ch}
a{color:var(--acento);text-underline-offset:3px}

:focus-visible{outline:2px solid var(--acento);outline-offset:2px;border-radius:3px}

::selection{background:var(--senal-suave);color:var(--tinta)}

/* --------------------------------------------------------------------------
   Rotulo: la voz utilitaria de la marca. Public Sans en mayuscula, con
   letter-spacing. Va en encabezados de seccion, numeracion y datos. Es lo que
   separa este sitio de una plantilla: el texto de servicio se lee como un
   dato, no como decoracion.
   -------------------------------------------------------------------------- */

.rotulo{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--suave);
  margin:0 0 14px;
}
.rotulo-acento{color:var(--acento)}

/* --------------------------------------------------------------------------
   Marca
   -------------------------------------------------------------------------- */

.marca{
  display:inline-flex;align-items:center;gap:9px;
  text-decoration:none;color:var(--tinta);
  font-family:var(--serif);line-height:1;
}
.marca svg{display:block;flex:0 0 auto}
.marca-icono{width:22px;height:22px}
.marca-nombre{
  font-family:var(--serif);font-weight:500;font-size:17px;
  letter-spacing:-.022em;white-space:nowrap;
}
.marca-tld{font-weight:inherit;color:inherit}

@media(max-width:360px){
  .marca{gap:7px}
  .marca-icono{width:19px;height:19px}
  .marca-nombre{font-size:15.5px}
}

/* --------------------------------------------------------------------------
   Barra superior
   -------------------------------------------------------------------------- */

.barra{
  background:var(--papel);
  border-bottom:1px solid var(--borde);
}
.barra .env{
  display:flex;align-items:center;gap:20px;min-height:66px;
}
.barra nav{margin-left:auto;display:none;gap:26px;align-items:center}
.barra nav a{
  color:var(--texto);text-decoration:none;font-size:14.5px;
}
.barra nav a:hover{color:var(--tinta)}
.barra .boton{margin-left:auto}

@media(min-width:860px){
  .barra nav{display:flex}
  .barra nav+.boton{margin-left:0}
}

/* --------------------------------------------------------------------------
   Envoltorio y secciones
   -------------------------------------------------------------------------- */

.env{width:100%;max-width:1100px;margin:0 auto;padding:0 24px}
.env-angosto{max-width:760px}

/* Regla fina de seccion: el hairline en color borde que estructura la pagina */
.hairline{border:0;border-top:1px solid var(--borde);margin:0}

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */

.boton{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--acento);color:#fff;
  border:1px solid var(--acento);
  border-radius:var(--r);
  padding:13px 22px;min-height:46px;
  font:inherit;font-size:15px;font-weight:600;
  text-decoration:none;text-align:center;cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.boton:hover{background:var(--acento-osc);border-color:var(--acento-osc)}

.boton-sec{
  background:transparent;color:var(--tinta);border-color:var(--borde-fuerte);
}
.boton-sec:hover{background:transparent;border-color:var(--tinta)}

.boton-chico{padding:9px 15px;min-height:38px;font-size:13.5px;border-radius:var(--r-chico)}
.boton-ancho{width:100%}

/* --------------------------------------------------------------------------
   Campos
   -------------------------------------------------------------------------- */

.campo{margin-bottom:16px}
.campo label{display:block;font-size:13px;font-weight:600;color:var(--tinta);margin-bottom:6px}
.campo input[type=text],.campo input[type=email],.campo input[type=tel],.campo textarea{
  width:100%;padding:12px 13px;
  border:1px solid var(--borde-fuerte);border-radius:var(--r-chico);
  font:inherit;font-size:15px;color:var(--tinta);background:var(--panel);
}
.campo textarea{resize:vertical;line-height:1.55}
.campo input:focus,.campo textarea:focus{
  outline:2px solid var(--acento);outline-offset:-1px;border-color:var(--acento);
}
.pista{margin:6px 0 0;font-size:12.5px;color:var(--suave)}

/* --------------------------------------------------------------------------
   WhatsApp flotante
   -------------------------------------------------------------------------- */

.wa-flota{
  position:fixed;right:18px;bottom:18px;z-index:40;
  display:inline-flex;align-items:center;gap:10px;
  height:56px;padding:0 14px;border-radius:99px;
  background:#25D366;color:#fff;text-decoration:none;
  box-shadow:0 6px 20px rgba(27,26,23,.24);
  transition:transform .15s ease,box-shadow .15s ease;
}
.wa-flota:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,26,23,.3)}
.wa-flota svg{display:block;flex:0 0 auto}
.wa-texto{display:none;font-weight:600;font-size:15px;padding-right:4px}

@media(min-width:860px){
  .wa-flota{right:26px;bottom:26px}
  .wa-texto{display:inline}
}
@media (prefers-reduced-motion:reduce){
  .wa-flota{transition:none}
  .wa-flota:hover{transform:none}
}

/* --------------------------------------------------------------------------
   Formas de pago
   -------------------------------------------------------------------------- */

.pagos{margin:26px 0 0}
.pagos-logo{display:block;width:220px;height:auto;max-width:100%}
.pagos-nota{margin:12px 0 0;font-size:13px;color:var(--suave);max-width:62ch}

/* --------------------------------------------------------------------------
   Pie
   -------------------------------------------------------------------------- */

.pie{
  background:var(--tinta);color:#b6ada0;
  padding:48px 0 40px;font-size:14px;margin-top:auto;
}
.pie a{color:#efe9dd;text-decoration:none}
.pie a:hover{text-decoration:underline}
.pie .marca{color:#fff}
.pie-grid{display:grid;gap:28px}
.pie-enlaces{display:flex;flex-wrap:wrap;gap:18px;font-size:14px}
.pie-datos{list-style:none;margin:14px 0 0;padding:0;font-size:14px;line-height:1.9}
.pie-datos a{color:#efe9dd}
.pie-legal{
  font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:#8a8073;
  border-top:1px solid #322e26;padding-top:22px;margin-top:6px;
}
.pie-legal p{margin:0 0 6px;max-width:none}

@media(min-width:720px){
  .pie-grid{grid-template-columns:1.5fr 1fr 1fr;align-items:start}
  .pie-legal{grid-column:1/-1}
}

/* El atributo hidden manda sobre cualquier display. */
[hidden]{display:none !important}
