:root{
  --verde-crudo:#4B5D3C;
  --dorado-pampa:#C9A227;
  --tueste-medio:#7A4A26;
  --tueste-oscuro:#241610;
  --tueste-oscuro-2:#180F0A;
  --kraft:#E8DEC7;
  --kraft-2:#DCCEA9;
  --cereza:#A6412B;
  --crema:#F3EDDD;
  --line:rgba(243,237,221,0.16);
  --display: 'Bitter', serif;
  --body: 'Work Sans', sans-serif;
  --mono: 'Space Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--kraft);
  color:var(--tueste-oscuro-2);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1160px; margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:var(--mono); font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--cereza); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--cereza);}
.dark .eyebrow{color:var(--dorado-pampa);}
.dark .eyebrow::before{background:var(--dorado-pampa);}
h1,h2,h3{font-family:var(--display); font-weight:700; letter-spacing:-0.01em;}
.btn{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--body); font-weight:600; font-size:13.5px;
  letter-spacing:0.04em; padding:14px 26px; border:1px solid currentColor; text-transform:uppercase;
  transition:all .25s ease; cursor:pointer;
}
.btn-solid{background:var(--dorado-pampa); color:var(--tueste-oscuro-2); border-color:var(--dorado-pampa);}
.btn-solid:hover{background:transparent; color:var(--dorado-pampa);}
.btn-line{color:var(--crema); border-color:var(--line);}
.btn-line:hover{border-color:var(--crema);}

/* ===== NAV ===== */
header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:linear-gradient(180deg, rgba(24,15,10,0.94), rgba(24,15,10,0.7) 70%, rgba(24,15,10,0));
  padding:22px 0;
}
nav.wrap{display:flex; align-items:center; justify-content:space-between;}
.logo{
  font-family:var(--display); font-weight:900; font-size:20px; color:var(--crema);
  letter-spacing:0.01em; display:flex; align-items:center; gap:10px;
}
.logo-img{height:88px; width:auto; display:block;}
.navlinks{display:flex; gap:32px; font-family:var(--mono); font-size:12.5px; text-transform:uppercase; letter-spacing:0.06em;}
.navlinks a{color:var(--kraft-2); position:relative; padding-bottom:4px;}
.navlinks a:hover{color:var(--crema);}
.navlinks a.active{color:var(--crema); border-bottom:1px solid var(--dorado-pampa);}
.navtoggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.navtoggle span{width:24px; height:2px; background:var(--crema);}
.navlinks.open{
  display:flex; position:fixed; top:0; right:0; bottom:0; left:0; background:var(--tueste-oscuro-2);
  flex-direction:column; justify-content:center; align-items:center; gap:28px; font-size:16px;
}

/* ===== HERO (home) ===== */
.hero{
  background:radial-gradient(120% 90% at 15% -10%, #3a2417 0%, var(--tueste-oscuro) 45%, var(--tueste-oscuro-2) 100%);
  color:var(--crema);
  padding:170px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(243,237,221,0.045) 1px, transparent 1px);
  background-size:14px 14px;
  pointer-events:none;
}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center; position:relative;}
.hero h1{font-size:clamp(38px, 5.2vw, 64px); line-height:1.03; margin-bottom:22px;}
.hero h1 em{font-style:italic; color:var(--dorado-pampa);}
.hero p.lead{font-size:17px; color:var(--kraft-2); max-width:440px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:46px;}
.hero-meta{display:flex; gap:36px; font-family:var(--mono); font-size:12px; color:var(--kraft-2); text-transform:uppercase; letter-spacing:0.05em;}
.hero-meta b{display:block; font-family:var(--display); font-size:24px; color:var(--crema); font-weight:700; letter-spacing:0; text-transform:none; margin-bottom:2px;}

/* roast curve svg */
.curve-box{position:relative;}
.curve-label{font-family:var(--mono); font-size:11px; color:var(--kraft-2); text-transform:uppercase; letter-spacing:0.08em; display:flex; justify-content:space-between; margin-bottom:10px; border-bottom:1px solid var(--line); padding-bottom:10px;}
#roastpath{stroke-dasharray:900; stroke-dashoffset:900; animation:draw 2.6s 0.4s ease forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}
.curve-tags{display:flex; justify-content:space-between; font-family:var(--mono); font-size:10.5px; color:var(--kraft-2); margin-top:10px;}
.curve-tags span b{color:var(--dorado-pampa); display:block; font-size:13px;}

/* ===== PAGE HEADER (páginas internas) ===== */
.pagehead{
  background:radial-gradient(120% 90% at 15% -10%, #3a2417 0%, var(--tueste-oscuro) 45%, var(--tueste-oscuro-2) 100%);
  color:var(--crema); padding:150px 0 60px;
}
.pagehead h1{font-size:clamp(32px,4.4vw,50px); line-height:1.05;}
.pagehead p{color:var(--kraft-2); max-width:520px; margin-top:16px; font-size:15.5px;}

/* ===== SECTION BASE ===== */
section{padding:100px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.4vw,42px); line-height:1.08;}
.dark{background:var(--tueste-oscuro-2); color:var(--crema);}

/* ===== NOSOTROS ===== */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.about-copy p{margin-bottom:18px; font-size:15.5px; color:#3a2c1e;}
.about-copy p:last-child{margin-bottom:0;}
.stamp{
  border:1px solid var(--tueste-medio); padding:22px 24px; font-family:var(--mono); font-size:12px;
  color:var(--tueste-medio); margin-top:26px; display:inline-flex; gap:22px;
}
.stamp div b{display:block; font-family:var(--display); font-size:20px; color:var(--tueste-oscuro-2); margin-bottom:2px;}
.process-list{display:flex; flex-direction:column; gap:0;}
.process-item{border-top:1px solid rgba(36,22,16,0.15); padding:26px 0; display:grid; grid-template-columns:70px 1fr; gap:18px;}
.process-item:last-child{border-bottom:1px solid rgba(36,22,16,0.15);}
.process-item .code{font-family:var(--mono); font-size:12px; color:var(--cereza);}
.process-item h3{font-size:18px; margin-bottom:8px;}
.process-item p{font-size:14.5px; color:#4a3a29;}
.dark .process-item{border-color:var(--line);}
.dark .process-item .code{color:var(--dorado-pampa);}
.dark .process-item p{color:var(--kraft-2);}

/* ===== TUESTE / PROCESO detail ===== */
.roastlog{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.roastlog-copy p{color:var(--kraft-2); font-size:15px; margin-bottom:16px;}
.datarow{display:flex; gap:0; border-top:1px solid var(--line); margin-top:28px;}
.datacell{flex:1; padding:16px 0; border-right:1px solid var(--line);}
.datacell:last-child{border-right:none;}
.datacell span{display:block; font-family:var(--mono); font-size:10.5px; text-transform:uppercase; color:var(--kraft-2); letter-spacing:0.06em; margin-bottom:6px;}
.datacell b{font-family:var(--display); font-size:22px; color:var(--dorado-pampa);}

/* ===== CAFES / ORIGENES ===== */
.origin-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(36,22,16,0.15); border:1px solid rgba(36,22,16,0.15);}
.origin-card{background:var(--kraft); padding:32px 28px; display:flex; flex-direction:column; min-height:340px;}
.origin-card .lote{font-family:var(--mono); font-size:10.5px; color:var(--cereza); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:12px;}
.origin-card h3{font-size:22px; margin-bottom:6px;}
.origin-card .sub{font-family:var(--mono); font-size:12px; color:var(--tueste-medio); margin-bottom:16px;}
.origin-card p{font-size:13.8px; color:#4a3a29; flex:1; margin-bottom:18px;}
.bars{display:flex; flex-direction:column; gap:8px;}
.bar-row{display:grid; grid-template-columns:64px 1fr; align-items:center; gap:10px; font-family:var(--mono); font-size:10.5px; text-transform:uppercase; color:#5a4834;}
.bar-track{height:5px; background:rgba(36,22,16,0.12); position:relative;}
.bar-fill{height:100%; background:var(--cereza);}
.bar-fill.verde{background:var(--verde-crudo);}
.bar-fill.dorado{background:var(--dorado-pampa);}

/* ===== SERVICIOS ===== */
.serv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.serv-card{border:1px solid rgba(243,237,221,0.15); padding:30px 24px; transition:border-color .2s ease;}
.serv-card:hover{border-color:var(--dorado-pampa);}
.serv-num{font-family:var(--mono); font-size:11px; color:var(--dorado-pampa); margin-bottom:22px;}
.serv-card h3{font-size:17px; color:var(--crema); margin-bottom:10px; line-height:1.2;}
.serv-card p{font-size:13.5px; color:var(--kraft-2);}
.serv-card.light{border-color:rgba(36,22,16,0.15);}
.serv-card.light:hover{border-color:var(--cereza);}
.serv-card.light h3{color:var(--tueste-oscuro-2);}
.serv-card.light p{color:#4a3a29;}

/* ===== UBICACIONES ===== */
.loc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(36,22,16,0.15); border:1px solid rgba(36,22,16,0.15); margin-bottom:60px;}
.loc-card{background:var(--kraft); padding:28px;}
.loc-card .tag{font-family:var(--mono); font-size:10.5px; color:var(--cereza); text-transform:uppercase; margin-bottom:10px;}
.loc-card h3{font-size:19px; margin-bottom:8px;}
.loc-card p{font-size:13.5px; color:#4a3a29;}

/* ===== CONTACTO ===== */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.contact-list{display:flex; flex-direction:column;}
.contact-row{display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-top:1px solid var(--line);}
.contact-row:last-child{border-bottom:1px solid var(--line);}
.contact-row span{font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--kraft-2); letter-spacing:0.05em;}
.contact-row a, .contact-row strong{font-family:var(--display); font-size:18px; color:var(--crema); font-weight:600;}
.contact-row a:hover{color:var(--dorado-pampa);}
.cta-block{background:var(--dorado-pampa); color:var(--tueste-oscuro-2); padding:40px; display:flex; flex-direction:column; justify-content:center;}
.cta-block h3{font-size:26px; margin-bottom:14px;}
.cta-block p{font-size:14.5px; margin-bottom:26px; opacity:0.85;}
.cta-block .btn{border-color:var(--tueste-oscuro-2); color:var(--tueste-oscuro-2);}
.cta-block .btn:hover{background:var(--tueste-oscuro-2); color:var(--dorado-pampa);}

/* ===== FORMULARIO DE CONTACTO ===== */
.form-box{border:1px solid var(--line); padding:36px;}
.field{margin-bottom:20px;}
.field label{display:block; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--kraft-2); margin-bottom:8px;}
.field input, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  color:var(--crema); font-family:var(--body); font-size:15px; padding:10px 2px; outline:none;
  transition:border-color .2s ease;
}
.field input:focus, .field textarea:focus{border-color:var(--dorado-pampa);}
.field textarea{resize:vertical; min-height:100px;}
.form-submit{
  width:100%; justify-content:center; margin-top:6px;
  background:var(--dorado-pampa); color:var(--tueste-oscuro-2); border:1px solid var(--dorado-pampa);
}
.form-submit:hover{background:transparent; color:var(--dorado-pampa);}
.form-hp{position:absolute; left:-9999px; opacity:0;}
.notice{font-family:var(--mono); font-size:13px; padding:16px 18px; margin-bottom:24px; border:1px solid;}
.notice.ok{border-color:var(--verde-crudo); color:var(--verde-crudo);}
.notice.err{border-color:var(--cereza); color:var(--cereza);}

/* ===== TEASER (usado en Inicio para enlazar a páginas internas) ===== */
.teaser-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(36,22,16,0.15); border:1px solid rgba(36,22,16,0.15);}
.teaser-card{background:var(--kraft); padding:34px 28px; display:flex; flex-direction:column; gap:14px;}
.teaser-card h3{font-size:20px;}
.teaser-card p{font-size:13.8px; color:#4a3a29; flex:1;}
.teaser-card .go{font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--cereza);}
.teaser-card .go::after{content:" →";}

footer{background:var(--tueste-oscuro-2); color:var(--kraft-2); padding:34px 0; font-family:var(--mono); font-size:11.5px;}
footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.footer-brand{display:flex; align-items:center; gap:14px;}
.footer-logo{height:22px; width:auto; opacity:0.85;}
footer .social{display:flex; gap:18px; text-transform:uppercase; letter-spacing:0.05em;}
footer .social a:hover{color:var(--dorado-pampa);}

.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media(max-width:900px){
  .navlinks{display:none;}
  .navtoggle{display:flex;}
  .logo-img{height:52px;}
  .hero-grid, .about-grid, .roastlog, .contact-grid{grid-template-columns:1fr;}
  .hero{padding-top:130px;}
  .hero-meta{flex-wrap:wrap; row-gap:18px;}
  .origin-grid, .loc-grid, .teaser-grid{grid-template-columns:1fr;}
  .serv-grid{grid-template-columns:1fr 1fr; gap:16px;}
  section{padding:70px 0;}
}
@media(max-width:520px){
  .serv-grid{grid-template-columns:1fr;}
  .datarow{flex-direction:column;}
  .datacell{border-right:none; border-bottom:1px solid var(--line);}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  #roastpath{animation:none; stroke-dashoffset:0;}
  .reveal{opacity:1; transform:none; transition:none;}
}
