/* Approved coffee-and-latte hero. Header and hero only. */
.site-header.refined-header { background:#241208; border-bottom:1px solid #d6b99220; box-shadow:none; }
.site-header.refined-header::before { display:none; }
.site-header .refined-name { color:#e4bd7d; }
.site-header .refined-subtitle { color:#f5eee5; }
.site-header .refined-nav { color:#f5eee5; }
.site-header .refined-nav-call,.site-header .refined-mobile-call { background:transparent; color:#f5eee5; border:1px solid #d6b992; border-radius:40px; }
.refined-call-label { color:#d6b992; }
.brand-menu-toggle { display:none; }
.hero.approved-hero { position:relative; display:flex; align-items:center; min-height:640px; padding:64px clamp(28px,5.5vw,90px) 80px; background:#241208 url('assets/hero-desktop.webp') center/cover no-repeat; color:#f5eee5; }
.hero.approved-hero::before { display:none; }
.approved-hero .hero-copy { max-width:650px; width:48%; padding:0; margin:0; top:auto; transform:none; animation:none; }
.approved-hero .eyebrow { color:#e2bd80; font-size:12px; font-weight:500; letter-spacing:.23em; margin:0 0 22px; }
.approved-hero h1 { color:#fff8ef; font:600 clamp(36px,4.1vw,68px)/1.08 var(--serif); letter-spacing:-.035em; margin:0; }
.approved-hero .hero-intro { font:400 clamp(16px,1.6vw,24px)/1.5 var(--sans); max-width:460px; margin:22px 0 30px; color:#f5eee5; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.approved-hero .button,.hero-call { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:54px; height:auto; padding:14px 25px; border-radius:40px; font:600 15px/1.3 var(--sans); letter-spacing:0; }
.approved-hero .button { background:#e3bd7e; color:#28170e; }
.hero-call { border:1px solid #f5eee5; color:#f5eee5; }
.hero-call:hover { background:#ffffff12; }
.hero-location { display:inline-flex; align-items:center; gap:9px; font-size:15px; margin-top:22px; color:#e3bd7e; }
.hero-location span { font-size:24px; }
.hero-caption { position:absolute; bottom:22px; left:5.5%; color:#d6b992; font:italic 18px var(--serif); margin:0; }
.hero-caption::before { content:''; display:inline-block; width:28px; height:1px; background:currentColor; vertical-align:middle; margin-right:12px; }
.approved-hero a:focus-visible,.brand-menu-toggle:focus-visible { outline:3px solid #e3bd7e; outline-offset:5px; }
@media(max-width:700px) {
  .site-header.refined-header { justify-content:flex-start; gap:10px; }
  .site-header .refined-brand { margin-right:auto; }
  .site-header .refined-mobile-call { display:inline-flex; min-height:38px; padding:0 15px; }
  .brand-menu-toggle { display:inline-flex; order:4; align-items:center; justify-content:center; flex:none; width:40px; height:44px; border:0; background:transparent; color:#f5eee5; font-size:26px; cursor:pointer; }
  .site-header .refined-nav { display:none; position:absolute; left:0; right:0; top:100%; padding:16px 24px; background:#2c1a13; border-bottom:1px solid #d6b99255; }
  .site-header .refined-nav.is-open { display:flex; }
  .hero.approved-hero { display:block; min-height:max(790px,185vw); padding:32px 22px 390px; background-image:linear-gradient(to bottom,#241208 0px,#241208 120px,transparent 260px),url('assets/hero-mobile.webp'); background-size:100% 100%,100% auto; background-position:center,center bottom; }
  .approved-hero .hero-copy { width:100%; max-width:520px; }
  .approved-hero .eyebrow { font-size:10px; margin-bottom:18px; }
  .approved-hero h1 { font-size:clamp(36px,8.7vw,57px); line-height:1.13; letter-spacing:-.035em; }
  .approved-hero .hero-intro { max-width:29ch; font-size:16px; margin:18px 0 22px; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:10px; }
  .approved-hero .button,.hero-call { min-height:45px; padding:11px 23px; font-size:14px; }
  .hero-location { font-size:12px; margin-top:15px; }
  .hero-caption { bottom:20px; left:22px; font-size:15px; }
}
@media(max-width:350px) {
  .site-header.refined-header { gap:5px; }
  .brand-menu-toggle { width:32px; }
  .site-header .refined-mobile-call { padding-inline:10px; }
  .hero.approved-hero { padding-inline:18px; }
}
/* Give the symbol its natural wide proportions and a readable header presence. */
.site-header.refined-header .refined-brand { gap:18px; }
.site-header.refined-header .refined-mark { width:108px; height:82px; flex-basis:108px; }
.site-header.refined-header .refined-name { font-size:26px; }
.site-header.refined-header .refined-subtitle { font-size:10px; letter-spacing:.15em; }
@media(max-width:1000px) {
  .site-header.refined-header { padding-inline:20px; }
  .site-header.refined-header .refined-brand { gap:12px; }
  .site-header.refined-header .refined-mark { width:88px; height:70px; flex-basis:88px; }
  .site-header.refined-header .refined-name { font-size:22px; }
}
@media(max-width:700px) {
  .site-header.refined-header .refined-mark { width:76px; height:62px; flex-basis:76px; }
  .site-header.refined-header .refined-brand { gap:9px; }
  .site-header.refined-header .refined-name { font-size:19px; }
  .site-header.refined-header .refined-subtitle { font-size:8px; letter-spacing:.09em; }
}
@media(max-width:430px) {
  .site-header.refined-header { padding-inline:12px; }
  .site-header.refined-header .refined-mark { width:65px; height:58px; flex-basis:65px; }
  .site-header.refined-header .refined-brand { gap:7px; }
  .site-header.refined-header .refined-name { font-size:17px; }
  .site-header.refined-header .refined-subtitle { font-size:7px; }
}
@media(max-width:350px) {
  .site-header.refined-header { padding-inline:9px; }
  .site-header.refined-header .refined-mark { width:56px; height:54px; flex-basis:56px; }
  .site-header.refined-header .refined-name { font-size:15px; }
  .site-header.refined-header .refined-subtitle { font-size:6px; }
  .site-header.refined-header .refined-brand { gap:5px; }
}
/* Keep the approved header dimensions when shared menu styles are loaded. */
.site-header.refined-header { height:104px !important; }
@media(max-width:760px) { .site-header.refined-header { height:82px !important; } }
@media(max-width:430px) { .site-header.refined-header { height:76px !important; } }
/* Fit the landing hero into the first viewport beneath the sticky header. */
.hero.approved-hero {
  box-sizing:border-box;
  min-height:0;
  height:calc(100svh - 104px);
  padding-block:32px 42px;
}
.approved-hero h1 { font-size:clamp(34px,min(4.1vw,7.2svh),68px); }
.approved-hero .hero-intro { margin-block:18px 24px; }
@media(min-width:701px) and (max-width:760px) {
  .hero.approved-hero { height:calc(100svh - 82px); }
}
@media(max-width:700px) {
  .hero.approved-hero {
    height:calc(100svh - 82px);
    min-height:0;
    padding:22px 22px 30px;
    background-size:100% 100%,100% auto;
    background-image:linear-gradient(to bottom,#241208 0%,#241208e6 26%,transparent 62%),url('assets/hero-mobile.webp');
  }
  .approved-hero .hero-copy { position:relative; z-index:1; }
  .approved-hero .eyebrow { margin-bottom:12px; font-size:9px; }
  .approved-hero h1 { font-size:clamp(30px,min(8.2vw,5.1svh),46px); line-height:1.1; }
  .approved-hero .hero-intro { font-size:14px; line-height:1.4; max-width:28ch; margin:14px 0 16px; }
  .hero-actions { flex-direction:row; gap:8px; }
  .approved-hero .button,.hero-call { min-height:42px; padding:10px 15px; font-size:12px; gap:9px; }
  .hero-location { font-size:11px; margin-top:10px; }
  .hero-caption { bottom:13px; font-size:12px; }
}
@media(max-width:430px) {
  .hero.approved-hero { height:calc(100svh - 76px); padding-inline:18px; }
}
@media(max-height:650px) and (max-width:700px) {
  .hero.approved-hero { padding-top:16px; }
  .approved-hero h1 { font-size:30px; }
  .approved-hero .hero-intro { margin-block:10px 12px; font-size:13px; }
  .approved-hero .eyebrow { margin-bottom:9px; }
  .hero-location { margin-top:6px; }
}
@media(max-height:600px) and (min-width:701px) {
  .hero.approved-hero { padding-block:16px 28px; }
  .approved-hero h1 { font-size:32px; }
  .approved-hero .hero-intro { font-size:15px; margin-block:12px; }
  .approved-hero .eyebrow { margin-bottom:12px; }
  .hero-location { margin-top:10px; }
  .hero-caption { bottom:10px; font-size:12px; }
}
/* Hero actions: emphasize the menu and introduce controls gently on each load. */
.approved-hero .hero-actions .button { min-width:190px; }
.approved-hero .hero-actions .hero-call { min-width:174px; padding-inline:18px; }
@keyframes hero-control-arrive {
  from { opacity:0; transform:translateY(14px); }
  to { opacity:1; transform:translateY(0); }
}
@media(prefers-reduced-motion:no-preference) {
  .approved-hero .hero-actions .button { animation:hero-control-arrive 1.5s ease-out .15s both; }
  .approved-hero .hero-actions .hero-call { animation:hero-control-arrive 1.5s ease-out .4s both; }
  .approved-hero .hero-location { animation:hero-control-arrive 1.6s ease-out .65s both; }
}
@media(max-width:700px) {
  .approved-hero .hero-actions { flex-wrap:nowrap; gap:8px; max-width:360px; }
  .approved-hero .hero-actions .button { min-width:0; flex:1.15; padding-inline:13px; }
  .approved-hero .hero-actions .hero-call { min-width:0; flex:1; padding-inline:10px; white-space:nowrap; }
}
.approved-hero .hero-location {
  display:inline-flex; gap:12px; min-height:60px; padding:11px 16px;
  margin-top:20px; border:1px solid #d6b99299; border-radius:12px;
  background:#d6b99212; color:#e7c58f; cursor:pointer;
  text-decoration:none; transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.hero-location .hero-location-pin { flex:none; width:22px; height:26px; }
.hero-location .hero-location-copy { display:flex; flex-direction:column; gap:2px; font-size:13px; line-height:1.3; }
.hero-location-copy strong { font-size:12px; font-weight:700; letter-spacing:.04em; color:#fff4e3; }
.hero-location-copy > span { font-size:13px; }
.hero-location .hero-location-arrow { margin-left:18px; font-size:23px; transition:translate .25s ease; }
.approved-hero .hero-location:hover { background:#d6b99229; border-color:#e7c58f; box-shadow:0 3px 15px #0003; }
.hero-location:hover .hero-location-arrow { translate:2px -2px; }
.approved-hero .hero-location:active { background:#d6b99240; }
@media(max-width:700px) {
  .approved-hero .hero-location { min-height:52px; padding:8px 13px; margin-top:14px; gap:10px; }
  .hero-location .hero-location-copy,.hero-location-copy > span { font-size:11px; }
  .hero-location-copy strong { font-size:11px; }
  .hero-location .hero-location-arrow { margin-left:12px; font-size:21px; }
}
@media(prefers-reduced-motion:reduce) {
  .approved-hero .hero-location,.hero-location .hero-location-arrow { transition:none; }
}
/* Refined location action: a compact, clearly actionable address card. */
.approved-hero .hero-location {
  min-width:290px; min-height:66px; gap:13px; padding:10px 12px;
  border:1px solid #d6b99280; border-radius:14px;
  background:linear-gradient(115deg,#513522d9,#2c1a13eb);
  box-shadow:0 4px 16px #0002,inset 0 1px 0 #ffffff0c;
}
.hero-location .hero-location-pin {
  box-sizing:border-box; width:40px; height:40px; padding:9px;
  border-radius:11px; background:#e3bd7e; color:#38251c;
}
.hero-location .hero-location-copy { gap:4px; }
.hero-location-copy strong { font-size:12px; letter-spacing:.06em; }
.hero-location-copy > span { font-size:13px; color:#e7d4b9; }
.hero-location .hero-location-arrow {
  display:grid; place-items:center; width:30px; height:30px;
  margin-left:auto; border:1px solid #d6b99255; border-radius:50%;
  font-size:20px; line-height:1; color:#f5dfba;
}
.approved-hero .hero-location:hover {
  background:linear-gradient(115deg,#65462fe6,#3a2419f2);
  border-color:#e3bd7e; box-shadow:0 6px 20px #0003;
}
@media(max-width:700px) {
  .approved-hero .hero-location { min-width:0; width:min(100%,310px); min-height:58px; padding:8px 10px; gap:11px; margin-top:14px; }
  .hero-location .hero-location-pin { width:36px; height:36px; padding:8px; }
  .hero-location-copy strong { font-size:11px; }
  .hero-location-copy > span { font-size:12px; }
  .hero-location .hero-location-arrow { width:28px; height:28px; font-size:19px; }
}
/* Match the location action to the Explore menu control. */
.approved-hero .hero-location {
  box-sizing:border-box; width:190px; min-width:0; min-height:54px;
  padding:8px 13px; gap:9px; border-radius:40px;
}
.hero-location .hero-location-pin { width:28px; height:28px; padding:5px; border-radius:50%; }
.hero-location .hero-location-copy { gap:2px; }
.hero-location-copy strong { font-size:11px; }
.hero-location-copy > span { font-size:10px; white-space:nowrap; }
@media(max-width:700px) {
  .approved-hero .hero-location { width:calc((min(100%,360px) - 8px) * 1.15 / 2.15); min-height:42px; padding:5px 9px; gap:7px; }
  .hero-location .hero-location-pin { width:24px; height:24px; padding:4px; }
  .hero-location-copy strong { font-size:10px; }
  .hero-location-copy > span { font-size:9px; white-space:normal; }
}
/* Let the final section reach the header even on tall desktop windows. */
#location.visit { min-height:calc(100svh - 104px); scroll-margin-top:0; }
#location.visit:focus { outline:none; }
@media(max-width:760px) { #location.visit { min-height:calc(100svh - 82px); } }
@media(max-width:430px) { #location.visit { min-height:calc(100svh - 76px); } }
/* Keep editable long addresses within the compact hero action. */
.hero-location .hero-location-copy { min-width:0; flex:1; }
.hero-location-copy > span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Restaurant palette for the persistent WhatsApp contact control. */
.whatsapp-fab {
  background:linear-gradient(145deg,#513522,#2c1a13);
  color:#e3bd7e;
  border:1px solid #d6b992;
  box-shadow:0 5px 20px #160d0955,inset 0 1px 0 #ffffff12;
}
.whatsapp-fab::before,.whatsapp-fab::after { border-color:#d6b99288; }
.whatsapp-fab svg { color:#e3bd7e; }
.whatsapp-fab:hover { background:#65462f; color:#fff4e3; border-color:#f0d4aa; }
.whatsapp-fab:hover svg { color:#fff4e3; }
.whatsapp-fab:focus-visible { outline:3px solid #e3bd7e; outline-offset:5px; }
.whatsapp-fab:active { background:#3a2419; }
.instagram-fab,.map-fab {
  position:fixed; z-index:30; right:calc(96px + env(safe-area-inset-right));
  bottom:calc(24px + env(safe-area-inset-bottom)); isolation:isolate;
  display:inline-flex; width:60px; height:60px; align-items:center; justify-content:center;
  padding:0; border:1px solid #d6b992; border-radius:50%;
  background:linear-gradient(145deg,#513522,#2c1a13); color:#e3bd7e;
  box-shadow:0 5px 20px #160d0955,inset 0 1px 0 #ffffff12;
  text-decoration:none; transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.instagram-fab::before,.instagram-fab::after,.map-fab::before,.map-fab::after {
  content:""; position:absolute; inset:-2px; z-index:-1; border:2px solid #d6b99288;
  border-radius:50%; pointer-events:none; opacity:0; animation:contact-ring 2.8s ease-out infinite;
}
.instagram-fab::after,.map-fab::after { animation-delay:1.4s; }
.instagram-fab svg,.map-fab svg { display:block; width:30px; height:30px; color:currentColor; }
.instagram-fab > span,.map-fab > span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.instagram-fab:hover,.map-fab:hover { background:#65462f; color:#fff4e3; border-color:#f0d4aa; transform:translateY(-2px); }
.instagram-fab:focus-visible,.map-fab:focus-visible { outline:3px solid #e3bd7e; outline-offset:5px; }
.instagram-fab:active,.map-fab:active { background:#3a2419; transform:scale(.98); }
.map-fab { right:calc(168px + env(safe-area-inset-right)); }
@media(max-width:640px) {
  .instagram-fab,.map-fab { width:56px; height:56px; bottom:calc(22px + env(safe-area-inset-bottom)); }
  .instagram-fab { right:calc(88px + env(safe-area-inset-right)); }
  .map-fab { right:calc(154px + env(safe-area-inset-right)); }
  .instagram-fab svg,.map-fab svg { width:28px; height:28px; }
}
@media(prefers-reduced-motion:reduce) { .instagram-fab::before,.instagram-fab::after,.map-fab::before,.map-fab::after { animation:none; } }
