/* ============================================================
   Cervecería Cedral — base de todas las páginas: fuentes, colores de marca, enlace de salto,
   verificación de edad, header, menú móvil, pie y espacios de foto F##.
   Cada página suma su hoja después de esta: css/paginas/<página>.css (el CSS de su mockup
   aprobado, tal cual) o css/paginas/inicio.css (páginas sin mockup). Nada de aquí toca el
   contenido de <main>: header, pie y verificación de edad usan clases que ningún mockup usa.
   ============================================================ */

/* Montserrat servida desde el sitio (OFL 1.1, fonts/OFL.txt): el mismo archivo variable de
   Google (300–800). latin-ext solo se descarga si la página usa sus caracteres (el ₡). */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 800;font-display:swap;
  src:url(../fonts/montserrat-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,
    U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 800;font-display:swap;
  src:url(../fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,
    U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* respaldo con las medidas de Montserrat: el texto no salta cuando llega la fuente */
@font-face{font-family:'Montserrat Respaldo';src:local('Arial');size-adjust:112.8%;
  ascent-override:85.8%;descent-override:22.3%;line-gap-override:0%}

:root{
  /* Principales */
  --verde:#006339;      /* Abundant Green */
  --khaki:#A39264;
  --beech:#C2C18D;
  --winery:#7E212A;
  --saffron:#FFA500;
  /* Secundarios */
  --pino:#223631;       /* Pine Grove */
  --bronce:#907954;
  --cedro:#928E64;
  --cabernet:#64242E;
  --oro:#CB8E16;
  /* Neutros */
  --crema:#F7F3EA;
  --tinta:#1a1f1c;
  --linea:rgba(0,99,57,.16);
  /* Color por cerveza */
  --c-impar:#8DC63F; --c-calin:#FFA500; --c-negrita:#7E212A;
  --c-ita:#E8365D;   --c-california:#A39264; --c-light:#7FB2D9;
  /* khaki para texto: el khaki de marca oscurecido hasta contraste AA sobre hueso y blanco */
  --khaki-t:#6f6238;
  --f:'Montserrat','Montserrat Respaldo',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --wrap:1180px;
}

body{margin:0}
[hidden]{display:none!important}
html.sin-scroll{overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* header, menú, verificación de edad y pie: su propia tipografía y su propia caja */
.salto,.gate,.top,.menu-movil,.pie{font-family:var(--f);line-height:1.55;-webkit-font-smoothing:antialiased}
.gate *,.gate *::before,.gate *::after,.top *,.top *::before,.top *::after,
.menu-movil *,.pie *,.pie *::before,.pie *::after{box-sizing:border-box}
.gate :focus-visible,.top :focus-visible,.menu-movil :focus-visible,.pie :focus-visible,
.salto:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}

/* ---------- enlace de salto ---------- */
.salto{position:absolute;left:12px;top:-60px;z-index:300;background:var(--verde);color:#fff;
  padding:10px 16px;font-size:13px;font-weight:700;text-decoration:none;border-radius:2px}
.salto:focus{top:12px}

/* ---------- header fijo y compacto: se esconde al bajar, reaparece al subir ---------- */
.top{position:sticky;top:0;z-index:60;background:rgba(247,243,234,.94);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--linea);transition:transform .28s ease}
.top.oculto{transform:translateY(-100%)}
/* dentro del recorrido de Agua el header desaparece del todo (brief 3.4) */
.top.fuera{transform:translateY(-100%)}
.top-in,.pie-in{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.top-in{display:flex;align-items:center;gap:28px;height:72px}
.top-logo{display:flex;align-items:center;flex:0 0 auto;text-decoration:none}
.top-logo img{display:block;height:44px;width:auto}
.top .nav{display:flex;gap:24px;margin-left:auto;font-size:13.5px;font-weight:600}
.top .nav a{text-decoration:none;color:var(--pino);padding:6px 0;border-bottom:2px solid transparent}
.top .nav a:hover,.top .nav a[aria-current]{border-color:var(--verde)}
.topcta{display:flex;gap:10px;flex:0 0 auto;align-items:center}
/* selector ES | EN (brief §6): solo en Visítenos, Comprar y sus pares en inglés */
.top-idioma{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;
  letter-spacing:.08em;color:var(--khaki-t)}
.top-idioma a{color:var(--khaki-t);text-decoration:none;padding:4px 2px;border-bottom:2px solid transparent}
.top-idioma a:hover{color:var(--verde)}
.top-idioma a[aria-current]{color:var(--pino);border-color:var(--verde)}
.top-idioma i{font-style:normal;opacity:.45}
.top-comprar{display:inline-block;text-decoration:none;font-size:13px;font-weight:700;padding:11px 22px;
  border-radius:2px;letter-spacing:.03em;white-space:nowrap;background:var(--verde);color:#fff;
  transition:opacity .18s}
.top-comprar:hover{opacity:.88}
.burger{display:none;width:40px;height:40px;border:1px solid var(--linea);background:#fff;
  border-radius:4px;cursor:pointer;padding:0;flex-direction:column;gap:4px;
  align-items:center;justify-content:center}
.burger span{display:block;width:17px;height:1.8px;background:var(--pino);transition:.2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.8px) rotate(-45deg)}
@media(max-width:1040px){
  .top-in{height:60px;gap:14px}
  .top-logo img{height:38px}
  .top .nav{display:none}
  .topcta{margin-left:auto}
  .burger{display:flex}
}
@media(max-width:600px){.top-in,.pie-in{padding:0 22px}}

/* ---------- menú móvil a pantalla completa ---------- */
.menu-movil{position:fixed;inset:0;z-index:55;background:var(--crema);padding:84px 28px 40px;
  overflow-y:auto}
.menu-movil nav{display:flex;flex-direction:column}
.menu-movil a{display:flex;align-items:center;min-height:56px;padding:12px 0;font-size:24px;
  font-weight:700;text-decoration:none;color:var(--pino);border-bottom:1px solid var(--linea)}
.menu-movil a[aria-current]{color:var(--verde)}
.menu-movil a.mm-comprar{margin-top:28px;align-self:flex-start;min-height:0;border:0;padding:14px 26px;
  font-size:16px;background:var(--verde);color:#fff;border-radius:2px}
@media(min-width:1041px){.menu-movil{display:none}}

/* ---------- verificación de edad ---------- */
.gate{position:fixed;inset:0;z-index:200;background:rgba(18,33,28,.96);
  display:flex;align-items:center;justify-content:center;padding:24px}
.gate-caja{max-width:460px;text-align:center;color:#fff}
.arbol-gate{display:block;width:230px;max-width:64vw;height:auto;margin:0 auto 22px}
.gate h2{margin:0;font-size:30px;font-weight:700;letter-spacing:-.022em;line-height:1.07;color:#fff}
.gate p{margin:16px 0 0;color:rgba(255,255,255,.75);font-size:15px}
.gate-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.gate-btn{display:inline-block;text-decoration:none;font-family:var(--f);font-size:13px;font-weight:700;
  padding:13px 24px;border-radius:2px;letter-spacing:.03em;white-space:nowrap;cursor:pointer;
  transition:opacity .18s}
.gate-btn:hover{opacity:.88}
.gate-si{background:#fff;color:var(--verde);border:0}
.gate-no{background:none;border:1.5px solid rgba(255,255,255,.7);color:#fff}
.gate small{display:block;margin-top:24px;font-size:11.5px;color:rgba(255,255,255,.62)}
.gate small a{color:rgba(255,255,255,.85)}

/* ---------- pie (es navegación) ---------- */
footer.pie{background:#12211c;color:rgba(255,255,255,.7);font-size:13px;padding:72px 0 0}
.pie p{margin:0}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr;gap:40px}
.fgrid a{display:block;text-decoration:none;color:rgba(255,255,255,.68);padding:5px 0;line-height:1.5}
.fgrid a:hover{color:#fff}
.logo-pie{display:block;width:112px;height:auto;margin-bottom:22px}
.pie .fh{margin:0 0 16px;font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;
  color:#fff;line-height:1.4}
.pie .fbrand .fh{margin-top:6px}
.pie ul{list-style:none;margin:0;padding:0}
.pie address{font-style:normal}
.pie address p{line-height:1.75;color:rgba(255,255,255,.74)}
.pie address p + p{margin-top:12px}
.pie address a{display:inline;padding:0;color:#fff}
.pie-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:56px!important;padding:26px 0 40px;
  font-size:12px;line-height:1.9;color:rgba(255,255,255,.74)}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.fgrid{grid-template-columns:1fr}}
@media(hover:none){.pie .fgrid a{min-height:42px;display:flex;align-items:center}}

/* ---------- espacios de foto F## (brief §2): bloque del color de la sección con el código y la
   descripción en gris al 40 %; cuando la foto llega, sale como <picture class="foto"> ---------- */
.media{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;
  border:0;background:rgba(26,31,28,.055);padding:22px}
.media::before{content:attr(data-foto);position:absolute;top:12px;left:14px;font:800 11px/1.4 var(--f);
  letter-spacing:.14em;color:rgba(26,31,28,.4)}
.media::after{content:attr(data-desc);max-width:420px;font:600 11px/1.7 var(--f);letter-spacing:.05em;
  text-align:center;color:rgba(26,31,28,.4)}
.media.on-dark{background:rgba(255,255,255,.05)}
.media.on-dark::before,.media.on-dark::after{color:rgba(255,255,255,.4)}
.foto{display:block;position:relative;overflow:hidden}
.foto img{display:block;width:100%;height:100%;object-fit:cover}

/* ---------- Hilo 01 · las curvas del build original en los bloques de los mockups: las mismas
   reglas .hero .contour y .dark .contour, detrás del contenido (solo fondo). .con-curvas las
   contiene sin mover nada del bloque. ---------- */
.curvas-portada{position:absolute;right:-14%;top:-18%;width:78%;opacity:.5;pointer-events:none}
.curvas-oscuro{position:absolute;left:-10%;bottom:-30%;width:62%;opacity:.4;pointer-events:none}
.con-curvas{position:relative;overflow:clip;isolation:isolate}
.con-curvas > .curvas-portada,.con-curvas > .curvas-oscuro{z-index:-1}

/* iconos grabados (iconos.py) */
.ico{display:block;width:30px;height:30px;color:var(--verde);flex:0 0 auto}

/* movimiento: con reduced-motion no se anima nada (brief §2) */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
