/* ==========================================================
   V5 additions: hero carousel, "Full Menu" button, fill-hover tabs,
   4/2-column grids, ribbon font, social buttons, flip photo cards
   ========================================================== */
:root{--c5-cocoa:#24140E;--c5-milk:#4A2E20;--c5-gold:#F5B838;--c5-gold-d:#C98A12;--c5-cream:#FAF6F0;--c5-ease:cubic-bezier(.22,1,.36,1)}

/* ---------- 1. hero carousel: V3 dark split (copy left, animated photos right) ---------- */
.hero.hx{padding:0;background:#24140E;overflow:hidden;position:relative}
.hx .hslides{position:relative;height:clamp(540px,72vh,700px)}
.hx .hslide{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;opacity:0;visibility:hidden;transition:opacity .9s var(--c5-ease),visibility .9s}
.hx .hslide.on{opacity:1;visibility:visible;z-index:1}
.hx-copy{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:40px clamp(24px,6vw,96px);background:var(--bg,#24140E);color:#F6ECE0}
.hx-copy>*{opacity:0;transform:translateY(24px);transition:opacity .8s var(--c5-ease),transform .9s var(--c5-ease)}
.hslide.on .hx-copy>*{opacity:1;transform:none}
.hslide.on .hx-copy>:nth-child(2){transition-delay:.1s}.hslide.on .hx-copy>:nth-child(3){transition-delay:.2s}.hslide.on .hx-copy>:nth-child(4){transition-delay:.3s}
.hx-eb{font:600 12px "DM Sans",system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--c5-gold)}
.hx-h{font:500 clamp(40px,5.4vw,74px)/1.02 "Fraunces",Georgia,serif;letter-spacing:-.02em;margin:0;color:#F6ECE0}
.hx-h em{font-style:italic;color:var(--c5-gold)}
.hx-copy p{margin:0;max-width:440px;font:17px/1.6 "DM Sans",system-ui,sans-serif;opacity:.9;color:#F6ECE0}
.hx-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hx-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 26px;font:600 14px "DM Sans",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;border:1.5px solid;text-decoration:none;border-radius:0;transition:background .3s,color .3s,transform .3s var(--c5-ease)}
.hx-btn:hover{transform:translateY(-2px)}
.hx-gold{background:var(--c5-gold);border-color:var(--c5-gold);color:var(--c5-cocoa)}
.hx-gold:hover{background:#ffc54a}
.hx-ghost{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.hx-ghost:hover{background:#fff;color:var(--c5-cocoa)}
.hx-pic{position:relative;overflow:hidden}
.hx-main{position:absolute;inset:-4%}
.hx-main img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 7s linear}
.hslide.on .hx-main img{transform:scale(1)}
.hx-orb,.hx-glass,.hx-pic .bean,.hx-dust{z-index:2}
.hx-orb{position:absolute;border-radius:50%;overflow:hidden;box-shadow:0 24px 50px -20px rgba(0,0,0,.55);border:5px solid rgba(255,255,255,.95);background:#fff;opacity:0;scale:.6;transition:opacity .8s var(--c5-ease),scale 1s var(--c5-ease)}
.hslide.on .hx-orb{opacity:1;scale:1}
.hslide.on .hx-orb-1{transition-delay:.35s}.hslide.on .hx-orb-2{transition-delay:.5s}.hslide.on .hx-orb-3{transition-delay:.65s}
.hx-orb img{width:100%;height:100%;object-fit:cover;display:block}
.hx-orb-1{width:150px;height:150px;top:40px;right:40px}
.hx-orb-2{width:128px;height:128px;bottom:70px;left:36px}
.hx-orb-3{width:96px;height:96px;bottom:36px;right:70px}
.hx-glass{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:18px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);box-shadow:0 12px 30px -14px rgba(0,0,0,.4);font:700 13.5px/1.25 "DM Sans",system-ui,sans-serif;color:var(--c5-cocoa);opacity:0;transition:opacity .8s .7s}
.hslide.on .hx-glass{opacity:1}
.hx-glass small{display:block;font-weight:500;color:#6B5446;font-size:12px}
.hx-glass .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--c5-gold);font-size:18px}
.hx-glass-1{top:150px;left:30px}
.hx-glass-2{bottom:170px;right:30px}
.hx-pic .bean{position:absolute;box-shadow:0 4px 10px rgba(0,0,0,.35)}
.hx-dust{position:absolute;inset:0;pointer-events:none}
.hx-dust i{position:absolute;border-radius:50%;background:rgba(255,236,210,.55);animation:h5dust 9s linear infinite}
@keyframes h5dust{0%{transform:translate(0,0);opacity:0}15%{opacity:1}100%{transform:translate(30px,-220px);opacity:0}}
.hx-pic [data-depth]{transform:translate3d(calc(var(--mx,0)*var(--d)*1px),calc(var(--my,0)*var(--d)*1px),0);transition:transform .6s var(--c5-ease)}
.hx .hctl{position:absolute;right:24px;bottom:22px;left:auto;transform:none;z-index:5;display:flex;align-items:center;gap:10px}
.hdots{display:flex;gap:8px}
.hdots button{width:34px;height:3px;border:0;padding:0;background:rgba(255,255,255,.35);position:relative;overflow:hidden;cursor:pointer}
.hdots button i{position:absolute;inset:0;background:var(--c5-gold);transform:scaleX(0);transform-origin:left}
.hdots button.on i{animation:h5fill var(--dur,6.5s) linear forwards}
.hero.paused .hdots button.on i{animation-play-state:paused}
@keyframes h5fill{to{transform:scaleX(1)}}
.hpause{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(36,20,14,.35);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.hpause svg{width:16px;height:16px}
@media(max-width:900px){
  .hx .hslides{height:auto;min-height:680px}
  .hx .hslide{grid-template-columns:1fr;grid-template-rows:320px auto}
  .hx-pic{order:-1}
  .hx-copy{padding:30px 24px 60px;justify-content:flex-start}
  .hx .hctl{top:14px;bottom:auto;right:14px}
  .hx-orb-1{width:96px;height:96px;top:60px;right:16px}.hx-orb-2{width:84px;height:84px;bottom:20px;left:16px}.hx-orb-3{width:66px;height:66px;bottom:14px;right:30px}
  .hx-glass{font-size:12px;padding:7px 11px 7px 7px}.hx-glass .ic{width:28px;height:28px;font-size:15px}
  .hx-glass-1{top:70px;left:12px}.hx-glass-2{bottom:auto;top:170px;right:12px}
}
@media(max-width:600px){
  .hx-ctas .hx-btn{flex:1;padding:13px 14px;font-size:12.5px}
  .hx-h{font-size:40px}
}
@media (prefers-reduced-motion:reduce){.hx-orb,.hx-glass{opacity:1;scale:1}.hx-main img{transition:none}}

/* ---------- 2. "Full Menu" button (3-D layered button, our colours) ---------- */
.v2 .nav{align-items:center}
.v2 .nav>li.nav-cta{margin-left:14px}
.v2 .nav>li>a.fmb{display:block;height:42px;width:150px;padding:0;position:relative;border-radius:12px;transform:rotate(-3deg) skewX(4deg);text-decoration:none}
.v2 .nav>li>a.fmb::after{display:none}
.fmb-bg{position:absolute;inset:0;border-radius:inherit;filter:blur(1px)}
.fmb-bg::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--c5-milk);filter:blur(4px);transition:box-shadow .3s ease;
  box-shadow:-4px 4px 0 0 rgba(74,46,32,.35),-8px 8px 0 0 rgba(74,46,32,.22),-12px 12px 3px 0 rgba(74,46,32,.14),-16px 16px 6px 0 rgba(74,46,32,.08)}
.fmb-wrap{position:relative;display:block;height:100%;border-radius:inherit;overflow:hidden;padding:2px;transform:translate(4px,-4px);transition:transform .3s ease;
  background:linear-gradient(to bottom,#FFE3A1 0%,var(--c5-gold-d) 100%)}
.fmb-shine{position:absolute;inset:0;border-radius:inherit;overflow:hidden;opacity:0;transition:opacity .4s ease}
.fmb-shine::before{content:"";position:absolute;inset:2px;margin:auto;width:70px;height:220px;background:linear-gradient(to right,transparent,rgba(255,255,255,.9) 50%,transparent);animation:fmbSpin 3s linear infinite;animation-play-state:paused}
.fmb-in{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:10px;
  background:linear-gradient(to bottom,#5A3726 0%,var(--c5-cocoa) 100%);box-shadow:inset -2px 8px 8px -5px rgba(245,184,56,.35),inset 1px -3px 8px 0 rgba(0,0,0,.45)}
.fmb-chars{display:flex;align-items:center;font:800 14.5px/1 "DM Sans",system-ui,sans-serif;letter-spacing:.02em}
.fmb-chars span[data-l]{position:relative;display:block;color:transparent}
.fmb-chars span[data-l]::before,.fmb-chars span[data-l]::after{content:attr(data-l);position:absolute;left:0;top:0;color:var(--c5-gold);text-shadow:-1px 1px 2px rgba(0,0,0,.45)}
.fmb-chars span[data-l]::before{opacity:0;transform:translateY(-100%)}
.fmb-chars span[data-l]::after{animation:fmbIn 1s ease backwards calc(var(--i)*.03s)}
.fmb-sp{width:5px}
.fmb-arrow i{position:relative;display:block;width:18px;height:2.5px;border-radius:2px;background:var(--c5-gold);animation:fmbSwing 1s ease-in-out infinite;animation-play-state:paused}
.fmb-arrow i::before,.fmb-arrow i::after{content:"";position:absolute;right:0;width:10px;height:2.5px;border-radius:2px;background:var(--c5-gold);transform-origin:center right}
.fmb-arrow i::before{top:0;transform:rotate(44deg)}
.fmb-arrow i::after{top:0;transform:rotate(-44deg)}
.fmb:hover .fmb-wrap{transform:translate(6px,-6px)}
.fmb:hover .fmb-shine{opacity:1}
.fmb:hover .fmb-shine::before,.fmb:hover .fmb-arrow i{animation-play-state:running}
.fmb:hover .fmb-chars span[data-l]::before{animation:fmbIn .7s ease calc(var(--i)*.03s)}
.fmb:hover .fmb-chars span[data-l]::after{animation:fmbOut .7s ease calc(var(--i)*.03s)}
.fmb:active .fmb-wrap{transform:translate(2px,-2px)}
.fmb:active .fmb-bg::before{box-shadow:-3px 3px 0 0 rgba(74,46,32,.3),-6px 6px 2px 0 rgba(74,46,32,.15)}
@keyframes fmbSpin{to{transform:rotate(360deg)}}
@keyframes fmbIn{0%{transform:translateY(50%);opacity:0;filter:blur(8px)}20%{transform:translateY(70%);opacity:1}50%{transform:translateY(-15%);filter:blur(0)}100%{transform:translateY(0);opacity:1}}
@keyframes fmbOut{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-70%);opacity:0;filter:blur(3px)}}
@keyframes fmbSwing{50%{transform:translateX(4px)}}
/* same button inside the mobile menu drawer */
.v2 .mlist .fmb{display:block;height:48px;width:100%;max-width:260px;margin:16px 0 8px;padding:0;position:relative;border-radius:12px;transform:none}

/* ---------- 3. category names: colour fills in on hover ---------- */
.mtabs a,.pills .pill{position:relative;z-index:0;overflow:hidden;transition:color .45s var(--c5-ease),box-shadow .3s,transform .3s var(--c5-ease)!important}
.mtabs a::before,.pills .pill::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c5-cocoa);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--c5-ease);border-radius:inherit}
.mtabs a:hover,.pills .pill:hover{color:#fff!important;border-color:var(--c5-cocoa)!important}
.mtabs a:hover::before,.pills .pill:hover::before{transform:scaleX(1);transform-origin:left}
.mtabs a:focus-visible::before,.pills .pill:focus-visible::before{transform:scaleX(1)}
.mtabs a:focus-visible,.pills .pill:focus-visible{color:#fff!important}

/* ---------- 4. grids: 4 columns on desktop, 2 on phones ---------- */
.mgrid,.grid{grid-template-columns:repeat(4,1fr)!important}
@media(max-width:767px){.mgrid,.grid{grid-template-columns:repeat(2,1fr)!important}}

/* ---------- 5. ribbon font ---------- */
.marquee-track{font:700 16px/1 "DM Sans",system-ui,sans-serif!important;letter-spacing:.18em;text-transform:uppercase;font-style:normal!important}
.marquee-track span{gap:34px}

/* ---------- 6. social buttons (tooltip rises on hover, springy) ---------- */
.socials5{display:flex;flex-wrap:wrap;gap:14px;list-style:none;margin:0;padding:16px 0 0}
.socials5 li{list-style:none}
.socials5 .sb{position:relative;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--c5-cocoa);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 16px rgba(36,20,14,.14);transition:all .25s cubic-bezier(.68,-.55,.265,1.55);text-decoration:none}
.socials5 .sb svg{width:20px;height:20px}
.socials5 .sb-tip{position:absolute;top:0;left:50%;transform:translateX(-50%);font:700 12.5px/1 "DM Sans",system-ui,sans-serif;white-space:nowrap;background:#fff;color:#fff;padding:7px 10px;border-radius:6px;
  box-shadow:0 10px 16px rgba(36,20,14,.14);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}
.socials5 .sb-tip::before{content:"";position:absolute;width:8px;height:8px;background:inherit;bottom:-3px;left:50%;transform:translateX(-50%) rotate(45deg)}
.socials5 .sb:hover{transform:translateY(-3px)}
.socials5 .sb:hover .sb-tip{top:-42px;opacity:1}
/* our palette instead of the networks' own colours */
.socials5 .sb-facebook:hover,.socials5 .sb-facebook:hover .sb-tip{background:var(--c5-cocoa);color:var(--c5-gold)}
.socials5 .sb-instagram:hover,.socials5 .sb-instagram:hover .sb-tip{background:var(--c5-gold);color:var(--c5-cocoa)}
.socials5 .sb-tiktok:hover,.socials5 .sb-tiktok:hover .sb-tip{background:var(--c5-milk);color:#fff}
.socials5 .sb-whatsapp:hover,.socials5 .sb-whatsapp:hover .sb-tip{background:var(--c5-gold-d);color:#fff}
.socials5.on-dark .sb{background:#3A2319;color:#F3E7DA;box-shadow:0 10px 16px rgba(0,0,0,.3)}
.socials5.on-dark .sb-tip{background:#3A2319}
.socials5.on-dark .sb-facebook:hover,.socials5.on-dark .sb-facebook:hover .sb-tip{background:#F3E7DA;color:var(--c5-cocoa)}
.socials5.in-card{padding:6px 0 4px}
.follow .socials5{justify-content:center;padding-top:30px}

/* ---------- 7. flip photo cards (front = photo, back = details) ---------- */
.flip{perspective:1000px;background:transparent!important;overflow:visible!important}
.flip-in{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s var(--c5-ease)}
.flip-front,.flip-back{position:absolute;inset:0;display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:inherit;overflow:hidden}
.flip-front{background:#F1E7DA}
.flip-front>img{width:100%;height:100%;object-fit:cover}
.flip-back{transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:center;gap:8px;padding:18px;text-align:left;color:#F6ECE0;
  background:linear-gradient(135deg,var(--c5-cocoa) 0%,#3A2319 55%,#5A3726 100%);box-shadow:inset 0 0 0 1px rgba(245,184,56,.35)}
.flip-back b{font:600 16px/1.3 "Fraunces",Georgia,serif;color:var(--c5-gold)}
.flip-back span{font-size:13px;line-height:1.5;color:#E6D6C6;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.flip-back em{font-style:normal;font-weight:800;color:#fff}
.flip-back i{font-style:normal;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c5-gold)}
@media (hover:hover){
  .mi:hover .flip-in,.card:hover .flip-in{transform:rotateY(180deg)}
}
.mi:hover .mi-pic>img,.card:hover .pic img{transform:none}
/* menu cards: rounded photo so the flip reads as a card */
.mi-pic.flip{border-radius:14px 14px 0 0}
.mi .mi-badge{z-index:2}
/* home cards */
.card .pic.flip{overflow:visible}
.card .pic.flip .flip-front,.card .pic.flip .flip-back{border-radius:28px 28px 0 0}
.card .pic.flip .tag{z-index:2}
.card .pic.flip .noimg{position:absolute;inset:0}

/* ---------- 8. corporate block from V2 ---------- */
.v2-corp{margin:30px 0 20px}

@media (prefers-reduced-motion:reduce){.flip-in{transition:none}.hslide{transition:none}}
.v2 .ftr ul.socials5{display:flex;grid-template-columns:none;gap:14px;padding-top:24px}

/* ---------- V5.1: social buttons in the top bar ---------- */
.v2 .ann .side-soc{align-items:center;gap:16px}
.socials5.in-bar{gap:8px;padding:0;flex-wrap:nowrap}
.socials5.in-bar .sb{width:26px;height:26px;background:rgba(255,255,255,.1);color:#EADBC9;box-shadow:none}
.socials5.in-bar .sb svg{width:13px;height:13px}
.socials5.in-bar .sb-tip{top:auto;bottom:0;font-size:11.5px;padding:5px 8px;z-index:80}
.socials5.in-bar .sb-tip::before{bottom:auto;top:-3px}
.socials5.in-bar .sb:hover{transform:translateY(-1px)}
.socials5.in-bar .sb:hover .sb-tip{top:auto;bottom:-34px}
.v2 .ann{position:relative;z-index:61}
.v2 .ann .wrap,.v2 .ann .side{overflow:visible}

/* ---------- V5.1: Full Menu button on phones (header + bottom bar) ---------- */
.fmb-hdr{display:none}
@media(max-width:900px){
  .v2 .icons .fmb-hdr{display:block;position:relative;height:38px;width:112px;border-radius:11px;transform:rotate(-3deg) skewX(4deg);margin-right:6px;flex:none;text-decoration:none}
  .v2 .icons .fmb-hdr .fmb-chars{font-size:12.5px}
  .v2 .icons .fmb-hdr .fmb-in{gap:7px}
  .v2 .icons .fmb-hdr .fmb-arrow i{width:14px}
  .v2 .icons .fmb-hdr .fmb-arrow i::before,.v2 .icons .fmb-hdr .fmb-arrow i::after{width:8px}
}
@media(max-width:480px){.v2 .icons a[href="index.html#visit"]{display:none}}
.mbar .fmb-bar{display:block;position:relative;flex:1;height:48px;border-radius:99px;text-decoration:none;transform:none}
.mbar .fmb-bar .fmb-wrap{border-radius:99px;transform:none}
.mbar .fmb-bar .fmb-in{border-radius:99px}
.mbar .fmb-bar .fmb-bg{display:none}
.mbar .fmb-bar .fmb-chars{font-size:15px}
/* touch screens have no hover: keep the shine and arrow moving so the button still feels alive */
@media (hover:none){.fmb .fmb-shine{opacity:1}.fmb .fmb-shine::before,.fmb .fmb-arrow i{animation-play-state:running}}
@media(max-width:900px){.v2 .hdr-top .logo{flex:none}.v2 .hdr-top .logo img{width:auto;height:44px}}
@media(max-width:480px){.v2 .hdr-top .icons .icon-btn[aria-label="Find the cafe"]{display:none}.v2 .hdr-top .icons{gap:2px}}

/* ---------- V5.2: social buttons live in the header (desktop) and the phone menu drawer ---------- */
.socials5.in-hdr{gap:8px;padding:0;flex-wrap:nowrap;margin-right:8px}
.socials5.in-hdr .sb{width:38px;height:38px;background:#F4ECE3;color:var(--c5-cocoa);box-shadow:none}
.socials5.in-hdr .sb svg{width:16px;height:16px}
.socials5.in-hdr .sb-tip{top:auto;bottom:0;z-index:80}
.socials5.in-hdr .sb-tip::before{bottom:auto;top:-3px}
.socials5.in-hdr .sb:hover{transform:translateY(-2px)}
.socials5.in-hdr .sb:hover .sb-tip{top:auto;bottom:-40px}
@media(max-width:900px){.socials5.in-hdr{display:none}}
.socials5.in-panel{justify-content:center;padding:4px 0 0}
@media(max-width:900px){.v2 .hdr-top .icons{justify-self:end;margin-left:auto}}
