
:root{--cream:#f7eee4;--beige:#f1dfc8;--ochre:#b77a3c;--brown:#2f2219;--line:rgba(47,34,25,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--brown);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.intro{position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:radial-gradient(circle at 50% 43%,rgba(255,255,255,.48),transparent 30%),linear-gradient(135deg,#f8efe5,#eedbc3 58%,#e8cfb0);animation:introOut .75s ease 2.7s forwards}
.intro.hidden{opacity:0;visibility:hidden}@keyframes introOut{to{opacity:0;visibility:hidden;pointer-events:none}}
.stage{position:relative;width:min(72vw,420px);aspect-ratio:1}
.logo{width:100%;height:100%;object-fit:contain;filter:sepia(.12) saturate(.82) brightness(.52);animation:spin 2.55s cubic-bezier(.21,.72,.25,1) both}
@keyframes spin{0%{opacity:0;transform:scale(.9) rotate(0)}16%{opacity:1}34%{transform:scale(1) rotate(0)}100%{transform:scale(1) rotate(380deg)}}
.steam{position:absolute;left:50%;top:4%;transform:translateX(-50%);width:35%;height:44%}
.steam i{position:absolute;bottom:0;width:18%;height:62%;border-left:5px solid rgba(95,65,43,.46);border-radius:50%;opacity:0;animation:rise 1.9s ease-in-out infinite}
.steam i:nth-child(1){left:18%;animation-delay:1s}.steam i:nth-child(2){left:42%;height:78%;animation-delay:1.26s}.steam i:nth-child(3){left:66%;animation-delay:1.52s}
@keyframes rise{0%{opacity:0;transform:translateY(38%) scale(.72) rotate(5deg)}34%{opacity:.78}100%{opacity:0;transform:translateY(-88%) scale(1.22) rotate(-9deg)}}
.page{opacity:1;transform:none}
header{position:sticky;top:0;z-index:50;background:rgba(247,238,228,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav{width:min(1160px,calc(100% - 28px));height:76px;margin:auto;display:flex;align-items:center;justify-content:flex-start}
.brand img{width:54px;height:54px;object-fit:contain}
.toggle{display:none}
.links{display:none}
.links.open{max-height:240px}.links a{padding:20px 24px;text-align:center;font-size:13px;font-weight:800;letter-spacing:.1em;border-top:1px solid var(--line)}
.hero{min-height:calc(100svh - 76px);display:flex;align-items:center;padding:34px 0 54px;background:radial-gradient(circle at 82% 16%,rgba(255,255,255,.5),transparent 26%),linear-gradient(135deg,#f7ecdf,#ead0ad);overflow:hidden}
.hero-inner{width:min(1160px,calc(100% - 28px));margin:auto;display:grid;gap:26px}
.hero-copy{text-align:center}.kicker{color:#99632f;font-size:13px;font-weight:850;letter-spacing:.11em;line-height:1.45}
h1{margin:18px 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(56px,15vw,90px);line-height:.9;letter-spacing:-.055em}
.lead{margin:0 0 24px;color:#4f4034;font-size:18px}.btn{display:inline-flex;align-items:center;gap:18px;padding:14px 22px;border:1.5px solid var(--ochre);border-radius:999px;font-size:14px;font-weight:850}
.art{position:relative}.art img{width:100%;height:auto;border-radius:28px;mix-blend-mode:multiply;object-fit:contain}
.roof{position:absolute;right:24%;top:8%;width:70px;height:110px;opacity:0;animation:puff 9s ease-in-out infinite}
.roof:before,.roof:after{content:"";position:absolute;bottom:0;width:16px;border-left:5px solid rgba(95,65,43,.52);border-radius:50%}
.roof:before{left:8px;height:64px}.roof:after{right:8px;height:80px}
@keyframes puff{0%,58%,100%{opacity:0;transform:translateY(10px)}66%{opacity:.82}84%{opacity:.55;transform:translateY(-18px)}94%{opacity:0;transform:translateY(-36px)}}


.feature-strip{background:#fbf4eb;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature-inner{width:min(1160px,calc(100% - 28px));margin:auto;display:grid}
.feature-card{text-align:center;padding:30px 18px;border-bottom:1px solid var(--line)}
.feature-card:last-child{border-bottom:0}
.feature-card svg{width:54px;height:54px;margin:0 auto 10px;fill:none;stroke:#a66c32;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.feature-card h3{margin:8px 0;color:#9a6732;font-size:13px;letter-spacing:.08em}
.feature-card p{margin:0;color:#4f4034;line-height:1.5}

.about-section{
  padding:76px 0;
  background:#fbf7f1;
}
.about-inner{
  width:min(1160px,calc(100% - 28px));
  margin:auto;
  display:grid;
  gap:32px;
  align-items:center;
}
.about-label{
  color:#99632f;
  font-size:12px;
  font-weight:850;
  letter-spacing:.13em;
}
.about-section h2{
  margin:12px 0 22px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(46px,12vw,72px);
  line-height:.95;
  letter-spacing:-.045em;
}
.about-copy p{
  margin:0 0 16px;
  color:#4f4034;
  font-size:17px;
  line-height:1.68;
}
.about-ending{
  font-weight:700;
  color:#2f2219 !important;
}
.about-art-wrap{
  border-radius:26px;
  overflow:visible;
  background:#efe1cf;
}
.about-art-wrap img{
  width:100%;
  height:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
}

.placeholder{padding:80px 24px;text-align:center}.placeholder:nth-of-type(even){background:var(--beige)}.placeholder h2{font-family:Georgia,"Times New Roman",serif;font-size:44px;margin:0 0 14px}.placeholder p{max-width:560px;margin:auto;line-height:1.65;color:#6c5949}

.menu-section{
  padding:78px 0 82px;
  background:#e6c18f;
}
.menu-heading-wrap{
  width:min(1160px,calc(100% - 28px));
  margin:auto;
  display:grid;
  gap:22px;
}
.section-label{
  color:#8d5d2d;
  font-size:12px;
  font-weight:850;
  letter-spacing:.13em;
}
.menu-section h2,
.partners-section h2{
  margin:12px 0 16px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(42px,11vw,68px);
  line-height:1;
  letter-spacing:-.025em;
}
.section-subtitle{
  margin:0;
  color:#4f4034;
  font-size:16px;
  line-height:1.72;
  letter-spacing:.01em;
}
.menu-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  width:max-content;
  padding:13px 20px;
  border:1.5px solid #8d5d2d;
  border-radius:999px;
  font-size:13px;
  font-weight:850;
}
.menu-categories{
  width:min(1160px,calc(100% - 28px));
  margin:34px auto 0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.menu-category{
  min-height:168px;
  padding:20px 14px;
  border:1px solid rgba(47,34,25,.14);
  border-radius:18px;
  background:rgba(255,255,255,.18);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.menu-icon{font-size:38px;line-height:1}
.menu-category strong{
  margin-top:12px;
  font-size:13px;
  letter-spacing:.06em;
}
.menu-category span{
  margin-top:7px;
  font-size:13px;
  line-height:1.45;
  color:#5c493b;
}
.full-menu-wrap{
  width:min(1000px,calc(100% - 28px));
  margin:42px auto 0;
}
.full-menu-wrap picture,
.full-menu-wrap img{
  display:block;
  width:100%;
}
.full-menu-wrap img{
  height:auto;
  border-radius:18px;
  box-shadow:0 20px 55px rgba(47,34,25,.15);
}

.partners-section{
  clear:both;
  padding:86px 0 82px;
  background:#f5e7d5;
  border-top:1px solid rgba(47,34,25,.14);
}
.partners-inner{
  width:min(1160px,calc(100% - 28px));
  margin:auto;
  display:grid;
  gap:36px;
}
.partners-copy h2{
  max-width:520px;
  word-spacing:.06em;
  letter-spacing:-.015em;
}
.partner-form{
  display:grid;
  gap:13px;
}
.form-row{
  display:grid;
  gap:13px;
}
.partner-form label{
  display:grid;
  gap:7px;
}
.partner-form label span{
  font-size:12px;
  font-weight:750;
  color:#5b4636;
  letter-spacing:.04em;
}
.partner-form input,
.partner-form textarea{
  width:100%;
  border:1px solid #c8a47e;
  border-radius:9px;
  background:rgba(255,255,255,.35);
  color:#2f2219;
  padding:14px 15px;
  font:inherit;
  letter-spacing:.015em;
  outline:none;
}
.partner-form textarea{
  min-height:145px;
  resize:vertical;
}
.partner-form input:focus,
.partner-form textarea:focus{
  border-color:#9a6732;
  background:rgba(255,255,255,.72);
}
.partner-form button{
  width:max-content;
  border:0;
  border-radius:999px;
  background:#2f2219;
  color:#fff;
  padding:14px 22px;
  font-weight:850;
  cursor:pointer;
}

@media(min-width:760px){.menu-heading-wrap{grid-template-columns:1fr auto;align-items:end}.menu-categories{grid-template-columns:repeat(5,1fr)}.partners-inner{grid-template-columns:.78fr 1.22fr;gap:58px}.form-row{grid-template-columns:1fr 1fr}.feature-inner{grid-template-columns:repeat(3,1fr)}.feature-card{border-bottom:0;border-right:1px solid var(--line)}.feature-card:last-child{border-right:0}.about-inner{grid-template-columns:.86fr 1.14fr;gap:64px}.toggle{display:none}.links{position:static;display:flex;gap:36px;max-height:none;overflow:visible;background:transparent}.links a{padding:10px 0;border:0}.hero-inner{grid-template-columns:.84fr 1.16fr;align-items:center;gap:40px}.hero-copy{text-align:left}}

.menu-image-only{
  padding:0;
  background:#f5ecdf;
}
.menu-image-only .full-menu-wrap{
  width:min(100%,1100px);
  margin:0 auto;
}
.menu-image-only .full-menu-wrap img{
  display:block;
  width:100%;
  height:auto;
  border-radius:0;
  box-shadow:none;
}
@media(max-width:759px){
  .menu-image-only .full-menu-wrap{
    width:100%;
  }
}


.floating-social{
position:fixed;
right:18px;
top:15px;
display:flex;
flex-direction:row;
gap:9px;
z-index:9999;
}
.floating-social a{
width:42px;height:42px;
border-radius:50%;
background:rgba(255,248,240,.92);
backdrop-filter:blur(8px);
display:flex;align-items:center;justify-content:center;
box-shadow:0 8px 22px rgba(0,0,0,.12);
border:1px solid rgba(80,55,35,.12);
transition:.25s;
}
.floating-social a:hover{transform:translateY(-2px) scale(1.05)}
.floating-social svg{
width:22px;height:22px;
fill:none;stroke:#2f2219;stroke-width:1.8;
}
.floating-social a:last-child svg{fill:#2f2219;stroke:none;}


/* Final rooftop steam: centered above the cup */
.art{position:relative}
.roof{
  position:absolute !important;
  left:54.2% !important;
  top:0.5% !important;
  width:22px !important;
  height:48px !important;
  transform:translateX(-50%) !important;
  opacity:0;
  animation:joeRoofSteam 9s ease-in-out infinite !important;
  pointer-events:none;
  z-index:5;
}
.roof svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.roof path{
  fill:none;
  stroke:rgba(255,255,255,.98);
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.4));
}
@keyframes joeRoofSteam{
  0%,62%,100%{opacity:0;transform:translate(-50%,7px) scale(.92)}
  70%{opacity:.98}
  84%{opacity:.70;transform:translate(-50%,-8px) scale(1)}
  95%{opacity:0;transform:translate(-50%,-20px) scale(1.04)}
}


.site-footer{
  position:relative;
  z-index:2;
  background:#2f2219;
  color:#f7eee4;
  padding:34px 0;
  border-top:1px solid rgba(255,255,255,.09);
}
.footer-inner{
  width:min(1160px,calc(100% - 32px));
  margin:auto;
  display:grid;
  gap:22px;
  font-size:14px;
  line-height:1.65;
  letter-spacing:.015em;
}
.footer-address,
.footer-phone,
.footer-hours{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:11px;
  color:#f7eee4;
  text-decoration:none;
  text-align:left;
}
.footer-symbol{
  flex:0 0 auto;
  color:#d8a05e;
  font-size:20px;
  line-height:1.25;
}
.site-footer strong{color:#f7eee4}
.site-footer a:active{opacity:.72}
@media(min-width:760px){
  .footer-inner{
    grid-template-columns:1.25fr .75fr 1.25fr;
    align-items:center;
    gap:38px;
  }
  .footer-address{justify-content:flex-start}
  .footer-phone{justify-content:center}
  .footer-hours{justify-content:flex-end}
}

