/* La Cafetería — refugio rústico-zen. Variables con roles, mobile-first. */
:root{
  --fondo:#FBF7F0;
  --superficie:#FFFFFF;
  --superficie-2:#F3EAD8;
  --superficie-3:#4A3826;
  --texto:#2A211A;
  --texto-suave:#6E5F50;
  --primario:#6F4426;
  --primario-osc:#54331C;
  --acento:#2F6B4F;
  --acento-osc:#24573F;
  --borde:#E4D7BE;
  --borde-osc:#C9B78F;
  --radio:16px;
  --fuente:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:Georgia,"Times New Roman",serif;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--fondo);color:var(--texto);
  font-family:var(--fuente);font-size:1.02rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--serif);line-height:1.12;letter-spacing:-.01em;margin:0 0 12px;color:var(--texto)}
h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.06}
h2{font-size:clamp(1.5rem,3vw,2.1rem)}
h3{font-size:1.15rem;font-family:var(--fuente);font-weight:700}
p{margin:0 0 16px}
a{color:var(--primario);text-underline-offset:3px}
a:hover{color:var(--primario-osc)}
code{background:var(--superficie-2);border:1px solid var(--borde);border-radius:6px;padding:0 6px;font-size:.86em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.muted{color:var(--texto-suave)}
.small{font-size:.88rem}
.lead{font-size:1.12rem;color:var(--texto-suave);max-width:68ch}
.kicker{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--acento);margin:0 0 10px}
.kicker-light{color:#E9D9B8}
.kicker-card{color:var(--primario)}
:focus-visible{outline:3px solid var(--acento);outline-offset:2px;border-radius:4px}

/* Header */
.site-header{background:var(--superficie);border-bottom:1px solid var(--borde);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--texto)}
.brand-mark{color:var(--primario);display:inline-flex}
.brand-text strong{display:block;font-family:var(--serif);font-size:1.25rem;line-height:1.1}
.brand-text small{color:var(--texto-suave);font-size:.78rem}
.menu-toggle{display:inline-flex;flex-direction:column;gap:5px;background:none;border:1px solid var(--borde);border-radius:10px;padding:10px 12px;cursor:pointer}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--texto)}
.main-nav{display:none;flex-direction:column;gap:4px;padding:0 24px 16px}
.main-nav.open{display:flex}
.main-nav a{text-decoration:none;color:var(--texto);font-weight:600;padding:10px 12px;border-radius:10px}
.main-nav a:hover{background:var(--superficie-2)}
.nav-cart{display:inline-flex;align-items:center;gap:8px}
.header-note{font-size:.78rem;color:var(--texto-suave);margin:0 auto;padding:0 24px 10px}
.header-note a{color:var(--texto-suave)}

/* Botones */
.btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:12px;padding:12px 22px;border:2px solid transparent;cursor:pointer;transition:transform 180ms ease,background-color 180ms ease,border-color 180ms ease;font-size:.98rem}
.btn-primary{background:var(--acento);color:#fff}
.btn-primary:hover{background:var(--acento-osc);color:#fff;transform:translateY(-1px)}
.btn-outline{border-color:var(--primario);color:var(--primario);background:transparent}
.btn-outline:hover{background:var(--primario);color:#fff;transform:translateY(-1px)}
.btn-small{padding:8px 14px;font-size:.88rem;border-radius:10px;background:var(--primario);color:#fff}
.btn-small:hover{background:var(--primario-osc);color:#fff}
.main-nav .btn-small{color:#fff}
.btn-light{background:#FFF8EA;color:var(--texto)}
.btn-light:hover{background:#fff;color:var(--texto)}
.btn-ghost-light{border-color:#E9D9B8;color:#FFF8EA}
.btn-ghost-light:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-text{background:none;border:none;color:var(--primario);padding:12px 8px}
.btn-block{display:block;text-align:center;width:100%;margin-bottom:12px}

/* Hero home */
.hero{background:var(--superficie-2);border-bottom:1px solid var(--borde);padding:64px 0}
.hero-grid{display:grid;gap:32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.hero-data{display:grid;gap:12px;margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--borde-osc)}
.hero-data div{display:grid;gap:2px}
.hero-data dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--texto-suave);font-weight:800}
.hero-data dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.hero-card{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:32px;align-self:start;transform:rotate(.4deg)}
.hero-card h2{font-size:1.6rem}
.tick-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.tick-list li{position:relative;padding-left:30px}
.tick-list li::before{content:"✓";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--acento);color:#fff;font-size:.8rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.tick-list strong{color:var(--texto)}

/* Franja */
.strip{background:var(--superficie-3);color:#F5EAD2}
.strip-grid{display:grid;gap:8px;padding:24px}
.strip p{margin:0}
.strip strong{color:#FFF3D9}

/* Secciones */
.section{padding:64px 0}
.section-alt{background:var(--superficie);border-top:1px solid var(--borde);border-bottom:1px solid var(--borde)}
.split{display:grid;gap:32px}
.chip-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 20px}
.chip-list li{border:1px solid var(--borde-osc);background:var(--superficie);border-radius:999px;padding:6px 14px;font-size:.86rem;font-weight:600}
.panel-menu,.info-card,.quote-card,.cart-summary,.contact-panel,.promo-card{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:28px}
.section-alt .panel-menu,.section-alt .promo-card{background:var(--fondo)}
.panel-h{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--primario);margin:0 0 12px}
.panel-menu ul,.info-card ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.panel-menu li,.info-card li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--borde);padding-bottom:10px}
.panel-menu li:last-child,.info-card li:last-child{border-bottom:none;padding-bottom:0}
.panel-menu em,.info-card em{color:var(--texto-suave);font-size:.85rem;font-style:normal;white-space:nowrap}
.steps{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:14px;counter-reset:paso}
.steps-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.zen-panel{background:var(--superficie-3);color:#F5EAD2;border-radius:var(--radio);padding:32px}
.zen-panel h2{color:#FFF6E2}
.tick-light li::before{background:#E9D9B8;color:var(--superficie-3)}
.promos-grid{display:grid;gap:32px}
.promo-card{transform:rotate(-.5deg)}
.promo-title{font-family:var(--serif);font-size:1.5rem;margin:0 0 8px}
.cta-final{padding:0 0 64px;background:var(--fondo)}
.cta-box{background:var(--acento);color:#fff;border-radius:20px;padding:40px 32px;display:grid;gap:16px}
.cta-box h2{color:#fff}
.cta-box .kicker{color:#EAF4ED}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;align-content:center}

/* Page hero */
.page-hero{background:var(--superficie-2);border-bottom:1px solid var(--borde);padding:48px 0}
.page-hero .btn,.page-hero .hero-actions{margin-top:8px}

/* Facts / cards */
.facts{list-style:none;margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--borde);display:grid;gap:16px}
.facts strong{display:block;font-size:1.05rem}
.facts span{color:var(--texto-suave);font-size:.9rem}
.quote-card blockquote{font-family:var(--serif);font-size:1.35rem;line-height:1.35;margin:0 0 12px}
.mini-data{display:grid;gap:10px;margin:16px 0 0}
.mini-data div{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:.9rem}
.mini-data dt{color:var(--texto-suave);font-weight:700}
.mini-data dd{margin:0;font-variant-numeric:tabular-nums}
.offset-grid{display:grid;gap:16px;margin-top:24px}
.card{background:var(--fondo);border:1px solid var(--borde);border-radius:var(--radio);padding:24px;transition:transform 200ms ease}
.card:hover{transform:translateY(-2px)}
.card h3{margin-top:0}
.flat-grid{display:grid;gap:24px;margin-top:24px}
.flat-grid h3{margin-bottom:6px}
.row{display:grid;gap:24px;padding:32px 0;border-bottom:1px solid var(--borde)}
.row:last-child{border-bottom:none}
.info-card-down{transform:none}
.mini-steps{margin:0;padding-left:20px;display:grid;gap:8px}

/* Catálogo */
.catalog-toolbar{display:grid;gap:12px;margin-bottom:20px}
.cats{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--borde-osc);background:var(--superficie);border-radius:999px;padding:8px 16px;font-weight:700;font-size:.88rem;cursor:pointer;color:var(--texto);transition:background-color 180ms ease}
.chip:hover{border-color:var(--primario)}
.chip.is-active{background:var(--primario);border-color:var(--primario);color:#fff}
.state{border:1px dashed var(--borde-osc);border-radius:12px;padding:16px 20px;background:var(--superficie)}
.catalog-grid{display:grid;gap:16px;margin:20px 0}
.product{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:22px;display:grid;gap:8px;transition:transform 200ms ease}
.product:hover{transform:translateY(-2px)}
.product h3{margin:0}
.p-cat{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--acento);margin:0}
.p-desc{color:var(--texto-suave);margin:0;font-size:.94rem}
.p-meta{font-size:.84rem;color:var(--texto-suave);margin:0}
.p-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.p-price{font-weight:800;font-variant-numeric:tabular-nums}
.faq{display:grid;gap:12px;align-content:start}
.faq details{border:1px solid var(--borde);border-radius:12px;background:var(--superficie);padding:14px 18px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{margin:10px 0 0;color:var(--texto-suave)}

/* Carrito / checkout */
.cart-grid,.checkout-grid,.fin-grid,.contact-grid{display:grid;gap:24px;align-items:start}
.cart-item{display:grid;gap:12px;background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:20px;margin-bottom:12px}
.cart-item h3{margin:0}
.qty{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--borde);border-radius:999px;padding:4px}
.qty button{width:32px;height:32px;border-radius:50%;border:1px solid var(--borde);background:var(--fondo);font-size:1.1rem;cursor:pointer;line-height:1}
.qty button:hover{background:var(--superficie-2)}
.qty span{min-width:32px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.cart-price{font-weight:800;font-variant-numeric:tabular-nums}
.cart-summary dl,.fin-card dl{display:grid;gap:10px;margin:0 0 16px}
.cart-summary dl div{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.cart-summary .total{border-top:1px solid var(--borde);padding-top:10px;font-weight:800;font-size:1.1rem}
.mod-label,.label{display:block;font-weight:700;margin:16px 0 8px}
.seg{display:flex;background:var(--superficie-2);border:1px solid var(--borde);border-radius:12px;padding:4px;gap:4px}
.seg button{flex:1;border:none;background:none;padding:10px;border-radius:8px;font-weight:700;cursor:pointer;color:var(--texto-suave)}
.seg button.is-active{background:var(--superficie);color:var(--texto);box-shadow:0 0 0 1px var(--borde)}
.checkout-steps{list-style:none;display:flex;gap:8px;margin:20px 0 0;padding:0;flex-wrap:wrap}
.checkout-steps li{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--borde-osc);border-radius:999px;padding:8px 16px;font-weight:700;color:var(--texto-suave);background:var(--superficie)}
.checkout-steps li span{width:24px;height:24px;border-radius:50%;background:var(--superficie-2);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}
.checkout-steps li.is-active{border-color:var(--acento);color:var(--texto)}
.checkout-steps li.is-active span{background:var(--acento);color:#fff}
.checkout-forms{display:grid;gap:16px}
.pane-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 0}
.field{margin-bottom:16px}
.field label{display:block;font-weight:700;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--borde-osc);border-radius:10px;padding:12px;font:inherit;background:#fff;color:var(--texto)}
.field input:focus,.field textarea:focus,.field select:focus{outline:3px solid var(--acento);outline-offset:1px;border-color:var(--acento)}
.field-row{display:grid;gap:16px}

/* Contacto */
.contact-cards{display:grid;gap:16px;margin:20px 0}
.big-link{font-size:1.3rem;font-weight:800}
.contact-preview{border:1px dashed var(--borde-osc);border-radius:10px;padding:12px;background:var(--fondo);font-size:.9rem;white-space:pre-line}

/* Footer */
.site-footer{background:var(--superficie-3);color:#EFE3CB;margin-top:0}
.site-footer a{color:#FFE9BC}
.footer-grid{display:grid;gap:32px;padding:48px 24px}
.footer-title{font-family:var(--serif);font-size:1.5rem;color:#FFF6E2;margin:8px 0 12px}
.footer-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.footer-h{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#E9D9B8;margin:0 0 12px}
.footer-nav{display:grid;gap:8px;align-content:start}
.footer-nav a{text-decoration:none}
.footer-nav a:hover{text-decoration:underline}
.footer-contact p{margin:0 0 14px}
.footer-admin{font-size:.85rem;color:#D9C8A4}
.footer-base{border-top:1px solid rgba(255,255,255,.18);padding:20px 24px;display:grid;gap:6px;font-size:.84rem;color:#D9C8A4}
.footer-base p{margin:0}

/* Breakpoints */
@media(min-width:720px){
  .menu-toggle{display:none}
  .main-nav{display:flex;flex-direction:row;align-items:center;gap:4px;padding:0}
  .header-note{display:block}
  .hero{padding:80px 0}
  .hero-grid{grid-template-columns:1.15fr .85fr;align-items:start}
  .hero-data{grid-template-columns:1fr 1fr 1fr}
  .split{grid-template-columns:1fr 1fr;align-items:start}
  .split-inv>div:first-child{order:2}
  .promos-grid,.fin-grid{grid-template-columns:1fr 1fr;align-items:start}
  .offset-grid{grid-template-columns:1fr 1fr}
  .card-up{transform:translateY(16px)}
  .flat-grid,.contact-cards{grid-template-columns:1fr 1fr}
  .catalog-grid{grid-template-columns:1fr 1fr}
  .product-wide{grid-column:1/-1}
  .cart-grid{grid-template-columns:1.4fr .9fr}
  .checkout-grid{grid-template-columns:1.5fr .8fr}
  .contact-grid{grid-template-columns:1.2fr .8fr}
  .footer-grid{grid-template-columns:1.3fr .7fr 1fr}
  .field-row{grid-template-columns:1fr 1fr}
  .cart-item{grid-template-columns:1fr auto auto;align-items:center}
  .cta-box{grid-template-columns:1.4fr auto;align-items:center}
}
@media(min-width:1024px){
  .section{padding:96px 0}
  .catalog-grid{grid-template-columns:1fr 1fr 1fr}
  .strip-grid{grid-template-columns:1fr 1fr;align-items:center}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none !important}
}
