/* Brote Café — salvia, crema, terracota y espresso */
:root{
  --bg:#eef0e2;--fg:#2b231d;--muted:#6b655a;--surface:#f8f8ef;--line:rgba(43,35,29,.13);
  --accent:#a94f2b;--accent-ink:#fff;--sage:#8a9a6b;--espresso:#3b2a20;--radius:28px;
  --font-display:"Playfair Display",Georgia,serif;--font-body:"Outfit",system-ui,sans-serif;
  color-scheme:light;
}
.k-brand{font-family:var(--font-display);font-size:26px;font-weight:800;letter-spacing:-.02em}
.k-brand i{font-weight:400;color:var(--accent);margin-left:2px}
.mark{width:36px;height:36px}
.k-h2{font-weight:600;letter-spacing:-.03em}
.k-eyebrow{color:var(--accent)}

/* HERO */
.hero{padding:clamp(40px,7vw,90px) 0 clamp(60px,8vw,110px);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
@media (max-width:900px){.hero__grid{grid-template-columns:1fr}}
.hero__tag{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14px;font-weight:600;margin:0}
.hero__tag .dot{width:8px;height:8px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 4px rgba(138,154,107,.25)}
.hero__title{font-family:var(--font-display);font-weight:500;font-size:clamp(44px,6.6vw,100px);line-height:.98;letter-spacing:-.035em;margin:.3em 0 .3em}
.hero__title .w:nth-child(2)>span,.hero__title .w:nth-child(3)>span{font-style:italic;color:var(--accent)}
.hero__sub{font-size:clamp(17px,1vw + 11px,20px);color:var(--muted);max-width:46ch;margin:0 0 28px}
.hero__ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero__art{position:relative;min-height:clamp(340px,42vw,560px);display:grid;place-items:center}
.cup{position:relative;width:min(78%,420px);aspect-ratio:1}
.cup__saucer{position:absolute;inset:-9%;border-radius:50%;background:radial-gradient(circle,#fbfbf5 58%,#e3e3d6 60%,#f4f4ea 64%,#dcdccc 100%);box-shadow:0 40px 70px -20px rgba(43,35,29,.35)}
.cup__rim{position:absolute;inset:6%;border-radius:50%;background:#fbfaf3;box-shadow:inset 0 -10px 20px rgba(0,0,0,.08),0 10px 24px rgba(43,35,29,.18);padding:6%}
.cup__latte{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,#c79a6b,#6b4127);cursor:grab;touch-action:none}
.cup__handle{position:absolute;right:-12%;top:38%;width:22%;height:24%;border:14px solid #fbfaf3;border-left:0;border-radius:0 60px 60px 0;box-shadow:6px 8px 14px rgba(43,35,29,.15)}
.cup__hint{position:absolute;left:50%;bottom:-17%;translate:-50% 0;margin:0;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.float{position:absolute;border-radius:22px;object-fit:cover;box-shadow:0 24px 50px -16px rgba(43,35,29,.4);border:6px solid var(--surface)}
.f1{width:34%;aspect-ratio:1;left:-2%;bottom:2%}
.f2{width:28%;aspect-ratio:3/4;right:-2%;top:0}
@media (max-width:600px){.f1{width:30%;left:0}.f2{width:26%}}

/* CARTA */
.menu{background:var(--surface);border-radius:48px 48px 0 0}
.menu__head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.filters{display:flex;gap:8px}
.filters button{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:600}
.filters button[aria-pressed="true"]{background:var(--espresso);color:#f8f8ef;border-color:var(--espresso)}
.menu__grid{display:grid;grid-template-columns:1fr 360px;gap:30px;align-items:start}
@media (max-width:980px){.menu__grid{grid-template-columns:1fr}}
.menu__cols{display:grid;gap:30px}
.mcat h3{font-family:var(--font-display);font-size:30px;font-weight:600;margin:0 0 10px;font-style:italic}
.mitem{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px 14px;padding:14px 0;border-bottom:1px dashed var(--line);view-transition-class:mi}
.mitem strong{font-weight:600;font-size:17px}
.mitem p{grid-column:1/-1;margin:0;color:var(--muted);font-size:14.5px;order:3}
.mitem .tags{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}
.mitem .tags span{font-size:10.5px;font-weight:700;letter-spacing:.06em;padding:3px 7px;border-radius:6px;background:rgba(138,154,107,.2);color:#55653a}
.mitem b{font-variant-numeric:tabular-nums}
.mitem button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--bg);cursor:pointer;font-size:20px;line-height:1;transition:background .2s,transform .2s}
.mitem button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.mitem button:active{transform:scale(.88)}
.order{position:sticky;top:90px;display:grid;gap:14px;padding:24px;border-radius:var(--radius);background:var(--espresso);color:#f6efe6;--line:rgba(246,239,230,.16);--muted:#cbbcab}
.order h3{margin:0;font-family:var(--font-display);font-weight:500;font-size:26px}
.order .k-input{background:rgba(246,239,230,.08);color:#f6efe6}
.order__list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:260px;overflow:auto}
.order__list li{display:flex;justify-content:space-between;gap:10px;font-size:15px}
.order__list .empty{color:var(--muted);font-style:italic}
.order__list button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:16px}
.order__total{display:flex;justify-content:space-between;font-size:20px;padding-top:10px;border-top:1px solid var(--line)}
.order .k-btn[disabled]{opacity:.45;pointer-events:none}

/* TIRA DE FOTOS */
.strip{overflow:hidden;padding:26px 0;background:var(--surface)}
.strip__track{display:flex;gap:16px;width:max-content;animation:k-marq 50s linear infinite}
.strip__track img{width:clamp(220px,26vw,360px);aspect-ratio:4/3;object-fit:cover;border-radius:22px}
.strip:hover .strip__track{animation-play-state:paused}

/* SELLOS */
.club__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
@media (max-width:900px){.club__grid{grid-template-columns:1fr}}
.stampcard__hit{position:absolute;inset:0;z-index:3;border:0;padding:0;background:transparent;border-radius:inherit;cursor:pointer}
.stampcard__hit:focus-visible{outline:3px solid #fff3ea;outline-offset:4px}
.stampcard{position:relative;max-width:440px;width:100%;margin-inline:auto;aspect-ratio:1.6;padding:24px;border-radius:26px;background:linear-gradient(135deg,#c8643b,#a94c27);color:#fff3ea;box-shadow:0 40px 80px -30px rgba(169,76,39,.7);display:flex;flex-direction:column;justify-content:space-between;cursor:pointer}
.stampcard__top{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-display);font-weight:800;font-size:24px}
.stampcard__top i{font-weight:400}
.stampcard__top small{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.stampcard__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed rgba(255,243,234,.55);display:grid;place-items:center}
.stamp.on{border-style:solid;background:#fff3ea;color:#a94c27}
.stamp.on svg{width:56%;animation:stampIn .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes stampIn{from{transform:scale(2) rotate(-20deg);opacity:0}}
.stampcard__foot{margin:0;font-size:14px;font-weight:600}
.club__form{margin-top:20px;max-width:420px}

/* VISITA */
.visit__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
@media (max-width:900px){.visit__grid{grid-template-columns:1fr}}
.facts{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.facts li{padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);display:grid;gap:4px;font-size:15px}
.facts b{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
@media (max-width:520px){.facts{grid-template-columns:1fr}}
.k-stars svg{fill:var(--accent)}
.k-credit{background:#2b1e17}

/* Escena inmersiva Brote */
.k-scene{color:#fff}
.k-scene .hero__tag{background:rgba(43,35,29,.45);border-color:rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(8px)}
.k-scene .k-scene__title .w:nth-child(2)>span,.k-scene .k-scene__title .w:nth-child(3)>span{font-style:italic;color:#ffd1b8}
.k-scene .k-btn--ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.k-scene .k-eyebrow{color:#ffd1b8}
.k-spot::before{background:var(--accent)}
@media (max-width:700px){.k-scene__copy--top{top:92px}}
