/* ═══════════════════════════════════════════════════════════
   Café Altura — hoja de estilos
   Proyecto conceptual diseñado y construido por Markxs
   ═══════════════════════════════════════════════════════════ */

:root{
  --roast:#241A12; --roast-2:#3A2A1D; --roast-3:#4E3823;
  --sand:#F3EADB; --sand-2:#E7D9C3; --sand-3:#FBF6EE;
  --moss:#6E7F5B; --moss-d:#55643F;
  --brick:#B4552F; --brick-d:#9C4526;
  --ink:#1A130D; --soft:#6B5B4B;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --wrap:72rem;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--sand);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{text-wrap:balance}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.2rem,5vw,2.5rem)}
.saltar{position:absolute;left:-999px;top:0;background:var(--brick);color:#fff;padding:.7rem 1.1rem;z-index:99}
.saltar:focus{left:.5rem;top:.5rem}
:focus-visible{outline:2px solid var(--brick);outline-offset:3px}

/* revelado al desplazar */
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ── aviso de proyecto conceptual ───────────────────────── */
.demo-bar{background:var(--roast);color:#E9DDC9;font-size:.8rem;padding:.6rem 0}
.demo-bar .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:center;text-align:center}
.demo-bar b{font-weight:700;color:#D9B98A}
.demo-bar a{color:#fff;text-underline-offset:3px}

/* ── cabecera ───────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:40;background:rgba(243,234,219,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--sand-2)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:74px}
.logo{font-family:var(--serif);font-size:1.62rem;text-decoration:none;z-index:2;letter-spacing:.01em}
.logo i{font-style:italic;color:var(--brick)}
.menu{display:flex;align-items:center;gap:1.7rem;font-size:.95rem}
.menu a{text-decoration:none;padding-block:.25rem;border-bottom:1.5px solid transparent;transition:border-color .3s,color .3s}
.menu a:hover{border-bottom-color:var(--brick)}
.menu a[aria-current="page"]{border-bottom-color:var(--brick);color:var(--brick)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--sand-2);border-radius:10px;background:transparent;cursor:pointer;position:relative;z-index:2}
.burger span{position:absolute;left:12px;width:20px;height:2px;background:var(--ink);transition:transform .35s var(--ease)}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){bottom:17px}
.top.open .burger span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.top.open .burger span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
@media(max-width:780px){
  .burger{display:block}
  .menu{position:fixed;inset:0 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
        background:var(--sand);padding:90px 1.5rem 1.5rem;border-bottom:1px solid var(--sand-2);
        transform:translateY(-102%);transition:transform .45s var(--ease);z-index:1}
  .top.open .menu{transform:none}
  .menu a{padding:1rem 0;border-bottom:1px solid var(--sand-2);font-size:1.18rem;font-family:var(--serif)}
}

/* ── botones ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:2rem;
  font-weight:700;font-size:.94rem;text-decoration:none;border:1px solid transparent;cursor:pointer;
  font-family:var(--sans);transition:transform .3s var(--ease),background-color .3s,color .3s}
.btn:hover{transform:translateY(-2px)}
.btn-1{background:var(--brick);color:#fff}
.btn-1:hover{background:var(--brick-d)}
.btn-2{border-color:var(--sand-2);color:var(--ink);background:transparent}
.btn-2:hover{background:#ffffff8c}
.btn-claro{border-color:#6B594570;color:var(--sand);background:transparent}
.btn-claro:hover{background:#ffffff14}

/* ── portada con fotografía ─────────────────────────────── */
.portada{position:relative;min-height:min(84vh,660px);display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;background:var(--roast)}
.portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portada::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,14,9,.55) 0%,rgba(20,14,9,.28) 42%,rgba(20,14,9,.9) 100%)}
.portada .wrap{position:relative;z-index:2;padding-block:clamp(3rem,9vw,5rem)}
.eyebrow{font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:#E4C79C;margin:0 0 1.2rem}
.portada h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.7rem,8vw,5.4rem);
  line-height:.98;letter-spacing:-.015em;margin:0 0 1.2rem;max-width:15ch}
.portada h1 i{font-style:italic;color:#EBCFA4}
.portada p{max-width:46ch;color:#EADFD1;margin:0 0 2rem;font-size:1.08rem}
.acts{display:flex;flex-wrap:wrap;gap:.8rem}

/* portada corta para páginas interiores */
.portada-corta{min-height:auto;padding-block:0}
.portada-corta .wrap{padding-block:clamp(3.5rem,8vw,5rem)}
.portada-corta h1{font-size:clamp(2.3rem,6vw,4rem);margin-bottom:.7rem}
.miga{font-size:.85rem;color:#D9CBBA;margin:0 0 1.4rem}
.miga a{text-decoration:none;border-bottom:1px solid #ffffff40}
.miga span{color:#B49E85;padding-inline:.4rem}

/* ── cifras ─────────────────────────────────────────────── */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:var(--sand-2);border-bottom:1px solid var(--sand-2)}
.fact{background:var(--sand);padding:1.7rem clamp(1.2rem,4vw,2rem)}
.fact b{display:block;font-family:var(--serif);font-size:2.3rem;line-height:1;color:var(--moss-d);font-variant-numeric:tabular-nums}
.fact span{font-size:.9rem;color:var(--soft)}

/* ── secciones ──────────────────────────────────────────── */
.sec{padding-block:clamp(3.5rem,9vw,6rem)}
.sec-clara{background:var(--sand-3)}
.sec-head{max-width:36rem;margin-bottom:2.4rem}
.sec-head .k{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brick);margin:0 0 .9rem}
.sec-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5vw,3rem);line-height:1.05;margin:0 0 .8rem}
.sec-head h2 i{font-style:italic;color:var(--moss-d)}
.sec-head>p{margin:0;color:var(--soft)}

/* ── dos columnas texto + foto ──────────────────────────── */
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(2rem,5vw,4rem);align-items:center}
.duo-txt h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.6vw,2.8rem);line-height:1.06;margin:0 0 1rem}
.duo-txt h2 i{font-style:italic;color:var(--moss-d)}
.duo-txt p{color:var(--soft);margin:0 0 1rem}
.duo-foto{position:relative}
.duo-foto img{border-radius:20px;width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.duo-foto.ancha img{aspect-ratio:4/3}
.sello{position:absolute;right:-14px;bottom:-14px;background:var(--brick);color:#fff;
  width:112px;height:112px;border-radius:50%;display:grid;place-content:center;text-align:center;
  font-family:var(--serif);font-size:1.05rem;line-height:1.15;padding:.6rem;box-shadow:0 18px 34px -20px rgba(36,26,18,.8)}
@media(max-width:520px){.sello{width:88px;height:88px;font-size:.88rem;right:-6px;bottom:-6px}}

/* ── galería ────────────────────────────────────────────── */
.galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.galeria figure{margin:0;position:relative;border-radius:16px;overflow:hidden}
.galeria img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .8s var(--ease)}
.galeria figure:hover img{transform:scale(1.06)}
.galeria figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1rem .8rem;
  background:linear-gradient(180deg,transparent,rgba(20,14,9,.82));color:#F3EADB;font-size:.9rem}

/* ── carta ──────────────────────────────────────────────── */
.tabs{display:flex;flex-wrap:wrap;gap:.4rem;border-bottom:1px solid var(--sand-2);margin-bottom:2rem}
.tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;
  font-family:var(--sans);font-size:.9rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--soft);padding:.8rem 1.1rem;cursor:pointer;transition:color .3s,border-color .3s}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--brick);border-bottom-color:var(--brick)}
.panel[hidden]{display:none}
.carta{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem 2.6rem}
.item{border-top:1px solid var(--sand-2);padding-top:1.1rem;animation:entrar .5s var(--ease) both}
@keyframes entrar{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.item-h{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.item h3{font-family:var(--serif);font-weight:400;font-size:1.42rem;margin:0}
.item b{font-weight:700;font-size:.98rem;color:var(--moss-d);font-variant-numeric:tabular-nums;white-space:nowrap}
.item p{margin:.35rem 0 0;font-size:.93rem;color:var(--soft)}
.etq{display:inline-block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:var(--moss-d);background:#E5EADD;border-radius:4px;padding:.1rem .4rem;margin-left:.4rem;vertical-align:middle}

/* ── métodos ────────────────────────────────────────────── */
.metodos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}
.metodo{background:#fff;border:1px solid var(--sand-2);border-radius:14px;padding:1.2rem;text-align:center;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.metodo:hover{transform:translateY(-5px);box-shadow:0 20px 34px -26px rgba(36,26,18,.6)}
.metodo svg{width:38px;height:38px;margin:0 auto .6rem;stroke:var(--brick);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.metodo b{display:block;font-size:.96rem;margin-bottom:.15rem}
.metodo span{font-size:.84rem;color:var(--soft)}

/* ── franja oscura ──────────────────────────────────────── */
.oscura{background:var(--roast-2);color:var(--sand)}
.oscura h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5vw,3rem);line-height:1.05;margin:0 0 1rem}
.oscura h2 i{font-style:italic;color:#D9B98A}
.oscura p{color:#CDBCA6;margin:0 0 1rem}
.origen{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.origen li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid #ffffff1f;font-size:.95rem}
.origen span{color:#B9A78F}

/* ── opiniones ──────────────────────────────────────────── */
.voces{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}
.voz{background:#fff;border:1px solid var(--sand-2);border-radius:18px;padding:1.7rem;display:flex;flex-direction:column;gap:1rem}
.voz p{margin:0;font-family:var(--serif);font-size:1.26rem;line-height:1.34}
.voz footer{display:flex;align-items:center;gap:.7rem;font-size:.88rem;color:var(--soft);margin-top:auto}
.ini{width:38px;height:38px;border-radius:50%;background:var(--moss);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.86rem;flex:none}

/* ── tarjetas de información ────────────────────────────── */
.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}
.card{background:#fff;border:1px solid var(--sand-2);border-radius:18px;padding:1.8rem}
.card h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin:0 0 .8rem}
.card p{margin:0 0 .4rem;font-size:.95rem;color:var(--soft)}
.card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;font-size:.95rem}
.card dt{color:var(--soft)}
.card dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.hoy{background:var(--moss);color:#fff;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;padding:.12rem .45rem;border-radius:4px;margin-left:.45rem;vertical-align:middle}

/* ── mapa dibujado ──────────────────────────────────────── */
.mapa{border-radius:20px;overflow:hidden;border:1px solid var(--sand-2);background:#EDE4D5}
.mapa svg{display:block;width:100%;height:auto}

/* ── formulario ─────────────────────────────────────────── */
.form-card{background:#fff;border:1px solid var(--sand-2);border-radius:20px;padding:clamp(1.5rem,4vw,2.2rem)}
.campo{margin-bottom:1.1rem}
.campo label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin-bottom:.45rem}
.campo input,.campo select,.campo textarea{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  padding:.8rem .95rem;border:1px solid var(--sand-2);border-radius:12px;background:var(--sand-3);
  transition:border-color .25s,box-shadow .25s}
.campo textarea{resize:vertical;min-height:92px}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--brick);box-shadow:0 0 0 3px rgba(180,85,47,.14)}
.campo.mal input,.campo.mal select{border-color:#B23B2E;background:#FCF3F1}
.error{display:none;color:#B23B2E;font-size:.85rem;margin-top:.35rem;font-weight:700}
.campo.mal .error{display:block}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:460px){.dos{grid-template-columns:1fr}}
.exito{display:none;background:#E9EEE1;border:1px solid #C3D0B2;border-radius:20px;padding:1.8rem;text-align:center}
.exito.ver{display:block}
.exito svg{width:50px;height:50px;margin:0 auto .8rem;display:block;stroke:var(--moss-d);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.exito h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin:0 0 .5rem;color:var(--moss-d)}
.exito p{margin:0 0 1.2rem;color:var(--soft)}
.form-card.oculto{display:none}

/* ── cierre ─────────────────────────────────────────────── */
.cierre{background:var(--moss-d);color:#F1F4EC}
.cierre .wrap{padding-block:clamp(3rem,8vw,4.5rem);display:flex;flex-wrap:wrap;gap:1.6rem;align-items:center;justify-content:space-between}
.cierre h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.6vw,2.8rem);margin:0;max-width:18ch;line-height:1.08}
.cierre p{margin:.6rem 0 0;color:#D3DCC8;max-width:40ch}

/* ── pie ────────────────────────────────────────────────── */
.pie{background:var(--roast);color:#BCA88E;padding-block:3rem 2rem;font-size:.92rem}
.pie-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;padding-bottom:2rem;border-bottom:1px solid #ffffff1a}
.pie h4{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--sand);margin:0 0 .8rem}
.pie h5{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#8A7561;margin:0 0 .8rem;font-weight:700}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pie a{text-decoration:none;transition:color .3s}
.pie a:hover{color:var(--sand)}
.redes{display:flex;gap:.7rem;margin-top:1rem}
.redes a{width:38px;height:38px;border:1px solid #ffffff26;border-radius:50%;display:grid;place-items:center;transition:background-color .3s}
.redes a:hover{background:#ffffff14}
.redes svg{width:18px;height:18px;fill:currentColor}
.pie-base{padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between;font-size:.85rem;color:#8A7561}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .item{animation:none}
  .galeria figure:hover img{transform:none}
}
