@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--cream:#f5f0e8;--paper:#fbf9f5;--ink:#241d19;--brown:#6f4632;--line:#ded4c8;--dark:#211914}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}img{display:block;width:100%;object-fit:cover}a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}.announcement{height:32px;background:var(--dark);color:#eee5d9;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;font-size:10px;letter-spacing:2px}.announcement span{opacity:.65}.header{height:86px;background:rgba(251,249,245,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 5vw;gap:40px;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand img{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:center}.brand b{display:block;font-family:Georgia,serif;font-size:18px;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:4px;margin-top:2px}nav{display:flex;gap:30px;font-size:13px}nav a:hover{color:var(--brown)}.cartBtn{border:1px solid var(--ink);background:transparent;padding:11px 17px;border-radius:30px;font-size:12px}.cartBtn span{display:inline-flex;min-width:19px;height:19px;border-radius:50%;align-items:center;justify-content:center;background:var(--ink);color:white;margin-left:7px}.hero{height:76vh;min-height:590px;position:relative;overflow:hidden}.hero>img{height:100%;object-position:center 45%}.heroShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,16,12,.76),rgba(24,16,12,.16) 65%,rgba(24,16,12,.05))}.heroContent{position:absolute;left:9%;top:50%;transform:translateY(-50%);max-width:600px;color:white}.kicker{font-size:10px;letter-spacing:3px;text-transform:uppercase;margin:0 0 18px}.hero h1{font:500 clamp(48px,6vw,88px)/.95 'Playfair Display',serif;margin:0}.hero h1 i,.statement h2 i,.menu h2 i,.feature h2 i,.gallerySec h2 i,.visit h2 i{font-style:italic}.heroContent>p:not(.kicker){max-width:480px;line-height:1.7;color:#f1eae2;margin:28px 0}.actions{display:flex;align-items:center;gap:24px}.btn{display:inline-block;padding:14px 25px;border-radius:30px;font-size:12px;letter-spacing:.3px}.btnLight{background:white;color:var(--ink)}.btnDark{background:var(--dark);color:white}.under{border-bottom:1px solid white;padding-bottom:5px;font-size:12px}.heroMark{position:absolute;right:6%;bottom:7%;border:1px solid rgba(255,255,255,.6);width:100px;height:100px;border-radius:50%;color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:Georgia,serif;font-size:15px;letter-spacing:2px}.heroMark small{font:8px 'DM Sans';letter-spacing:3px}.statement{display:grid;grid-template-columns:90px 1.2fr 1fr;gap:40px;padding:115px 9%;border-bottom:1px solid var(--line)}.num{font-size:11px;letter-spacing:2px}.statement h2,.menu h2,.gallerySec h2,.visit h2{font:500 clamp(40px,4vw,62px)/1.02 'Playfair Display',serif;margin:0}.statementText{max-width:440px;line-height:1.8;color:#6f655d;font-size:14px}.menu{padding:110px 7%}.sectionTop{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:35px}.sectionTop>p{max-width:390px;color:#776d65;line-height:1.7;font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filters button{background:transparent;border:1px solid var(--line);padding:10px 15px;border-radius:30px;font-size:11px}.filters button.active,.filters button:hover{background:var(--dark);border-color:var(--dark);color:white}.products{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.product{background:white;border:1px solid var(--line);transition:.25s;overflow:hidden}.product:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(42,28,20,.08)}.product>img{height:245px;object-position:center}.product>div{padding:20px}.product span{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#92715e}.product h3{font:500 23px 'Playfair Display',serif;margin:9px 0}.product p{color:#756c65;line-height:1.5;font-size:12px;min-height:38px;margin:0 0 17px}.product strong{font-size:16px}.product button{float:right;border:0;background:var(--dark);color:white;border-radius:20px;padding:8px 12px;font-size:10px}.feature{display:grid;grid-template-columns:1fr 1fr;background:var(--cream);align-items:stretch}.featureText{padding:10vw;display:flex;flex-direction:column;justify-content:center}.featureText h2{font:500 clamp(42px,4vw,65px)/1.02 'Playfair Display',serif;margin:0}.featureText>p:last-child{max-width:450px;color:#6f655d;line-height:1.8;margin-top:25px}.feature img{height:100%;min-height:570px}.gallerySec{background:var(--dark);color:#f5eee6;padding:110px 7%}.gallerySec .sectionTop>p{color:#bfb1a5}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:12px}.gallery figure{margin:0;overflow:hidden}.gallery figure img{height:100%;transition:.4s}.gallery figure:hover img{transform:scale(1.04)}.gBig{grid-column:span 2}.gTall{grid-row:span 2}.visit{display:grid;grid-template-columns:1fr 1fr}.visit img{height:100%;min-height:570px}.visit>div{padding:10vw 8%;display:flex;flex-direction:column;justify-content:center}.visit h2{margin-bottom:30px}.visit p{line-height:1.8;color:#756c65;font-size:14px}.visit b{color:var(--ink)}footer{background:var(--cream);border-top:1px solid var(--line);padding:35px 7%;display:flex;justify-content:space-between;align-items:center}footer b{display:block;letter-spacing:2px;font-family:Georgia,serif}footer span{display:block;font-size:9px;letter-spacing:2px;margin-top:4px;color:#7c6e64}footer p{font-size:10px;color:#84776e}.cartOverlay{position:fixed;inset:0;background:rgba(20,13,10,.55);z-index:100;display:none}.cartOverlay.open{display:block}.cart{position:absolute;right:0;top:0;height:100%;width:min(430px,100%);background:var(--paper);padding:28px;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.15)}.cartHeader{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.cartHeader small{letter-spacing:2px;font-size:9px}.cartHeader h2{font:500 34px 'Playfair Display',serif;margin:5px 0 0}.cartHeader button{border:0;background:transparent;font-size:30px}.cartItems{flex:1;overflow:auto;padding:10px 0}.cartItem{display:grid;grid-template-columns:70px 1fr auto;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.cartItem img{height:70px}.cartItem h4{margin:2px 0 5px;font:500 17px 'Playfair Display',serif}.cartItem p{margin:0;color:#776d65;font-size:11px}.qty{display:flex;gap:7px;align-items:center;margin-top:8px}.qty button{width:22px;height:22px;border:1px solid var(--line);background:white;border-radius:50%}.remove{border:0;background:none;color:#9a7562;font-size:10px}.cartFooter{border-top:1px solid var(--line);padding-top:18px}.total{display:flex;justify-content:space-between;font-size:14px;margin-bottom:15px}.total b{font-size:20px}.checkout,.continue{width:100%;padding:14px;border-radius:28px;border:0;margin-bottom:8px}.checkout{background:var(--dark);color:white}.continue{background:transparent;border:1px solid var(--line)}.cartFooter small{display:block;text-align:center;color:#877a71;font-size:9px;margin-top:8px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:var(--dark);color:white;padding:12px 18px;border-radius:25px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:120}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){nav{gap:16px}.products{grid-template-columns:repeat(2,1fr)}.statement{grid-template-columns:50px 1fr}.statementText{grid-column:2}.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.announcement{padding:0 15px}.announcement span:last-child{display:none}.header{height:72px;padding:0 16px}.brand img{width:45px;height:45px}nav{display:none}.cartBtn{padding:9px 12px}.hero{min-height:620px}.heroContent{left:7%;right:7%}.hero h1{font-size:55px}.statement{padding:75px 7%;display:block}.statementText{margin-top:30px}.menu{padding:75px 6%}.sectionTop{display:block}.sectionTop>p{margin-top:20px}.products{grid-template-columns:1fr}.product>img{height:280px}.feature,.visit{grid-template-columns:1fr}.featureText{padding:75px 7%}.feature img,.visit img{min-height:380px}.gallerySec{padding:75px 5%}.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}.gBig{grid-column:span 2}.visit>div{padding:75px 8%}footer{display:block;padding:30px 7%}footer p{margin-top:20px}}

/* Menu real: sin fotos en productos */
.product{display:flex;min-height:245px}
.product>div{width:100%;padding:28px}
.product select{display:block;width:100%;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:12px}
.product strong{display:inline-block;margin-top:2px}
.cartItem{grid-template-columns:1fr auto}
.cartItem img{display:none}

/* EM's Coffee - Modal elegante de métodos de pago */
.paymentOverlay{
  position:fixed !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  display:none;
  align-items:center !important;
  justify-content:center !important;
  padding:20px !important;
  box-sizing:border-box !important;
  background:rgba(20,14,10,.72) !important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  z-index:999999 !important;
}

.paymentBox{
  width:min(460px,100%) !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border-radius:24px !important;
  padding:32px !important;
  position:relative !important;
  box-shadow:0 25px 70px rgba(0,0,0,.28) !important;
  text-align:left !important;
  animation:paymentAppear .22s ease-out;
}

.paymentBox .kicker{
  margin:0 0 8px !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:2px !important;
  color:#9a6b45 !important;
  text-transform:uppercase !important;
}

.paymentBox h2{
  margin:0 !important;
  font-size:28px !important;
  line-height:1.2 !important;
  color:#2b1d16 !important;
}

.paymentIntro{
  margin:10px 0 24px !important;
  color:#75665d !important;
  font-size:14px !important;
  line-height:1.5 !important;
}

.paymentClose{
  position:absolute !important;
  top:14px !important;
  right:16px !important;
  width:38px !important;
  height:38px !important;
  border:0 !important;
  border-radius:50% !important;
  background:#f4f0ed !important;
  color:#4b3a31 !important;
  font-size:24px !important;
  line-height:38px !important;
  cursor:pointer !important;
}

.paymentClose:hover{
  background:#e9e1dc !important;
}

.paymentOption{
  width:100% !important;
  min-height:76px !important;
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  margin:0 0 12px !important;
  padding:15px 18px !important;
  box-sizing:border-box !important;
  border:1px solid #e8ded7 !important;
  border-radius:16px !important;
  background:#fff !important;
  color:#2b1d16 !important;
  text-align:left !important;
  cursor:pointer !important;
  transition:all .18s ease !important;
}

.paymentOption:last-child{
  margin-bottom:0 !important;
}

.paymentOption:hover{
  border-color:#b58a68 !important;
  background:#fbf8f6 !important;
  transform:translateY(-1px) !important;
  box-shadow:0 7px 18px rgba(80,50,30,.08) !important;
}

.paymentIcon{
  width:46px !important;
  height:46px !important;
  flex:0 0 46px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:13px !important;
  background:#f5eee9 !important;
  font-size:23px !important;
}

.paymentOption b{
  display:block !important;
  margin-bottom:4px !important;
  font-size:15px !important;
  font-weight:700 !important;
  color:#2b1d16 !important;
}

.paymentOption small{
  display:block !important;
  font-size:12px !important;
  line-height:1.35 !important;
  color:#84766d !important;
}

@keyframes paymentAppear{
  from{
    opacity:0;
    transform:scale(.96) translateY(8px);
  }
  to{
    opacity:1;
    transform:scale(1) translateY(0);
  }
}

@media(max-width:520px){
  .paymentBox{
    padding:27px 20px 20px !important;
    border-radius:20px !important;
  }
  .paymentBox h2{
    font-size:24px !important;
  }
}

