/* Tbili storefront identity */
:root {
  --tb-cream:#faf5f2;
  --tb-paper:#fffaf5;
  --tb-wine:#8c361b;
  --tb-ink:#281a14;
  --tb-dark:#271911;
  --tb-muted:#655249;
  --tb-line:#e4d4c9;
  --tb-blush:#f3e0d3;
  --tb-gold:#f1c364;
}
.tb-site-header { background:var(--tb-cream); }
.tb-site-header .tb-brand { gap:.57rem; }
.tb-site-header .tb-brand img { height:53px; max-height:none; width:auto; border-radius:.22rem; }
.tb-site-header .tb-brand .tb-brand-name, .tb-site-footer .tb-brand .tb-brand-name {
  font:650 clamp(1.2rem,2.4vw,2rem)/1.1 var(--tb-serif);
  letter-spacing:-.055em;
  color:var(--tb-wine);
}
.tb-site-footer { background:#211710; }
.tb-site-footer .tb-brand img { height:62px; width:auto; border-radius:.25rem; padding:2px; background:var(--tb-cream); }
.tb-site-footer .tb-brand .tb-brand-name { color:#fff0dd; }
.tb-site-footer .tb-footer-meta { color:#f2c879; }
.tb-site-header .tb-header-cta:hover, .tb-button:hover { background:#612712; }
.tb-site-header .tb-header-cta { border-radius:.32rem; }
.tb-cafe-carousel { background:var(--tb-dark); color:#fff7eb; }
.tb-cafe-slides { touch-action:pan-y; }
.tb-cafe-slide { position:relative; isolation:isolate; min-height:clamp(470px,51vw,724px); display:grid; align-items:end; }
.tb-cafe-slide[hidden], .tb-cafe-carousel-controls[hidden] { display:none; }
.tb-cafe-slide-image, .tb-cafe-slide-image:after { position:absolute; inset:0; }
.tb-cafe-slide-image { z-index:-1; overflow:hidden; }
.tb-cafe-slide-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.tb-cafe-slide--coffee .tb-cafe-slide-image img, .tb-cafe-slide--khachapuri .tb-cafe-slide-image img { object-position:60% 58%; }
.tb-cafe-slide-image:after {
  content:"";
  background:linear-gradient(90deg,#211409e6 0%,#211409c4 28%,#21140959 58%,#21140910 100%),
    linear-gradient(0deg,#1f1209a6 0%,transparent 44%);
}
.tb-cafe-slide-inner { padding-block:clamp(2.1rem,8.2vw,7.75rem) clamp(2.4rem,6.9vw,6.5rem); }
.tb-cafe-slide-copy { max-width:43rem; }
.tb-cafe-sign {
  display:inline-block;
  margin:0 0 .9rem;
  border-top:1px solid #e9c27d90;
  border-bottom:1px solid #e9c27d90;
  padding:.45rem 0;
  color:#ffe1a7;
  font-size:.77rem;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.tb-cafe-slide h2 {
  color:#fff7ec;
  font:600 clamp(3.4rem,7.5vw,7.4rem)/.97 var(--tb-serif);
  letter-spacing:-.061em;
  margin:0 0 .22em;
}
.tb-cafe-slide h2 em { color:#f6ca76; font-weight:500; }
.tb-cafe-slide-intro { font-size:clamp(1.01rem,2vw,1.22rem); line-height:1.5; max-width:37ch; margin:0 0 1.4rem; color:#fff1e3; }
.tb-cafe-slide-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.tb-cafe-button--gold { color:#321c11; background:var(--tb-gold); border-color:var(--tb-gold); }
.tb-cafe-button--gold:hover { color:#321c11; background:#ffda88; border-color:#ffda88; }
.tb-cafe-button--glass { color:#fff7eb; background:#321e14a0; border-color:#ffe5b3a0; }
.tb-cafe-button--glass:hover { color:#fff7eb; background:#5c3926; border-color:#ffe5b3; }
.tb-cafe-carousel-controls { background:#271911; border-top:1px solid #765949; }
.tb-cafe-control-row { display:flex; justify-content:space-between; align-items:center; gap:.75rem; min-height:65px; padding-block:.55rem; }
.tb-cafe-slide-select,.tb-cafe-slide-arrows { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.tb-cafe-slide-select button,.tb-cafe-slide-arrows button {
  background:transparent; color:#ffe8cd; border:1px solid transparent; border-radius:.3rem;
  min-height:42px; padding:.38rem .68rem; cursor:pointer; font:650 .86rem/1.3 var(--tb-sans);
}
.tb-cafe-slide-select button { display:flex; align-items:center; gap:.5rem; }
.tb-cafe-slide-select button[aria-current],.tb-cafe-slide-select button:hover,.tb-cafe-slide-arrows button:hover { color:#f5ca7b; background:#453024; border-color:#795a45; }
.tb-cafe-dot { display:block; width:.43rem; height:.43rem; border:1px solid currentColor; border-radius:50%; }
.tb-cafe-slide-select button[aria-current] .tb-cafe-dot { background:currentColor; }
.tb-cafe-slide-arrows button { display:grid; place-items:center; width:43px; padding:0; border-color:#715340; }
.tb-cafe-arrow { display:block; width:.52rem; height:.52rem; border-top:1px solid; border-right:1px solid; transform:rotate(45deg); }
.tb-cafe-arrow--prev { transform:rotate(225deg); }
.tb-cafe-rotation-icon { display:block; width:.45rem; height:.65rem; border-inline:2px solid; }
.tb-cafe-slide-arrows [data-paused="true"] .tb-cafe-rotation-icon { width:0; height:0; border:0; border-block:.34rem solid transparent; border-left:.54rem solid currentColor; }
.tb-cafe-carousel button:focus-visible,.tb-cafe-carousel a:focus-visible,.tb-cafe-story-band a:focus-visible { outline-color:#f4c66c; }
.tb-cafe-carousel .screen-reader-text { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; position:absolute; white-space:nowrap; margin:0; }
.tb-cafe-slide--entered .tb-cafe-slide-image { animation:tb-cafe-image-enter .47s ease-out; }
.tb-cafe-slide--entered .tb-cafe-slide-copy { animation:tb-cafe-copy-enter .45s ease-out; }
@keyframes tb-cafe-image-enter { from { opacity:.7; transform:translateX(8px); } }
@keyframes tb-cafe-copy-enter { from { opacity:.55; transform:translateY(10px); } }
.tb-cafe-location { background:#f4e2d2; border-bottom:1px solid var(--tb-line); }
.tb-cafe-location>.tb-shell { display:grid; grid-template-columns:1.3fr 1fr 1fr; }
.tb-cafe-location a { display:grid; align-content:center; text-decoration:none; color:var(--tb-ink); padding:.85rem 1rem; border-right:1px solid #dcc4b0; }
.tb-cafe-location a:first-child { padding-left:0; }
.tb-cafe-location a:last-child { border-right:0; }
.tb-cafe-location a:hover strong { text-decoration:underline; }
.tb-cafe-location a>span { font-size:.7rem; font-weight:750; color:#7a351c; text-transform:uppercase; letter-spacing:.1em; }
.tb-cafe-location strong { font-size:.93rem; }
.tb-brand-categories .tb-home-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(.65rem,1.8vw,1.15rem); }
.tb-brand-categories .tb-home-category { border-radius:.45rem; }
.tb-brand-categories .tb-home-category-photo { aspect-ratio:1.45; }
.tb-brand-categories .tb-home-category h3 { font-size:clamp(1.15rem,2.05vw,1.8rem); }
.tb-brand-categories .tb-home-category-caption { padding:clamp(.8rem,2vw,1.25rem); }
.tb-brand-categories .tb-home-category .tb-arrow { right:.9rem; bottom:1.1rem; }
.tb-cafe-story-band { color:#fff4e7; background:#392218; }
.tb-cafe-story-band>.tb-shell { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:clamp(1.25rem,5vw,4.8rem); padding-block:clamp(1.5rem,5vw,4.7rem); }
.tb-cafe-story-band figure { margin:0; aspect-ratio:1.35; border-radius:.45rem; overflow:hidden; }
.tb-cafe-story-band figure img { display:block; width:100%; height:100%; object-fit:cover; }
.tb-cafe-story-copy .tb-eyebrow { color:#f6cb80; }
.tb-cafe-story-copy h2 { color:#fff4e7; font-size:clamp(2.4rem,5vw,5rem); letter-spacing:-.055em; }
.tb-cafe-story-copy h2 em { color:#f6cb80; }
.tb-cafe-story-copy p { max-width:49ch; }
.tb-cafe-home-visit .tb-button { border-radius:.32rem; }

.tb-masthead--menu { background:#edd8c5; }
.tb-cafe-menu-note { font-size:.94rem; color:var(--tb-muted); padding:.8rem .95rem; background:#f4e7db; border-left:3px solid var(--tb-wine); margin:0 0 1.3rem; }
.tb-cafe-menu-nav { margin:0 0 1.8rem; }
.tb-cafe-menu-nav a { padding:.45rem .85rem; color:var(--tb-wine); border-color:#d5b9a8; }
.tb-cafe-menu-nav a:hover { color:white; background:var(--tb-wine); }
.tb-cafe-menu-list { display:grid; gap:clamp(.9rem,2vw,1.6rem); margin-bottom:1.5rem; }
.tb-cafe-menu-section {
  display:grid; grid-template-columns:minmax(0,.79fr) minmax(0,1.21fr); align-items:start;
  gap:clamp(1rem,3.9vw,3.4rem); padding:clamp(.85rem,3vw,2.5rem);
  border:1px solid var(--tb-line); border-radius:.5rem; background:var(--tb-paper); scroll-margin-top:110px;
}
.tb-cafe-menu-photo { aspect-ratio:1.32; overflow:hidden; border-radius:.35rem; background:#c9a68d; }
.tb-cafe-menu-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.tb-cafe-menu-content h2 { font-size:clamp(1.85rem,4vw,3.2rem); margin:0 0 .32em; }
.tb-cafe-menu-content p { color:var(--tb-muted); margin:0 0 .75rem; }
.tb-cafe-product-list { padding:0; margin:0; list-style:none; }
.tb-cafe-product-list li { display:flex; justify-content:space-between; gap:.7rem; padding:.46rem 0; border-top:1px solid var(--tb-line); font-weight:650; line-height:1.36; }
.tb-cafe-price { flex-shrink:0; color:#77391f; font-size:.9rem; font-variant-numeric:tabular-nums; }
.tb-cafe-menu-reference { margin-top:2.1rem; border-top:1px solid var(--tb-line); padding-top:.8rem; }
.tb-cafe-menu-reference summary { color:var(--tb-wine); font-weight:750; cursor:pointer; padding:.65rem 0; }
.tb-cafe-menu-reference[open] summary { margin-bottom:.75rem; }

.tb-cafe-profile { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,1fr); gap:clamp(1.2rem,5vw,4.7rem); align-items:center; }
.tb-cafe-profile + .tb-cafe-profile { margin-top:clamp(1.6rem,5vw,5rem); }
.tb-cafe-profile--reverse figure { order:2; }
.tb-cafe-profile figure,.tb-cafe-visit-photo { overflow:hidden; border-radius:.47rem; aspect-ratio:1.35; background:#c9a68d; }
.tb-cafe-profile-copy h2 { font-size:clamp(2rem,4.6vw,4.2rem); line-height:1.04; }
.tb-cafe-profile-copy .tb-eyebrow { margin-bottom:.52rem; }
.tb-cafe-profile-copy p { max-width:54ch; }
.tb-cafe-about-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:clamp(1.6rem,5vw,4.2rem); }
.tb-cafe-about-links a { padding:1.15rem; border:1px solid var(--tb-line); border-radius:.4rem; background:var(--tb-paper); text-decoration:none; }
.tb-cafe-about-links a:hover strong { text-decoration:underline; }
.tb-cafe-about-links strong,.tb-cafe-about-links span { display:block; }
.tb-cafe-about-links strong { font:650 1.45rem/1.15 var(--tb-serif); }
.tb-cafe-about-links span { color:var(--tb-muted); font-size:.91rem; margin-top:.45rem; }
.tb-brand-credits { border-block:1px solid var(--tb-line); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.7rem 1.6rem; margin-top:clamp(1.6rem,5vw,4.6rem); padding:1rem 0; }
.tb-brand-credits h2 { margin:0; font-size:1.35rem; }
.tb-brand-credits ul { margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem 1rem; list-style:none; }
.tb-cafe-visit-photo { aspect-ratio:2.5; margin-bottom:1.2rem!important; }
.tb-cafe-contact address { font-style:normal; font-weight:700; margin-bottom:.4rem; }
.tb-cafe-contact-methods { margin:0 0 1rem; }
.tb-cafe-contact-methods div { display:grid; grid-template-columns:95px minmax(0,1fr); gap:.5rem; padding:.5rem 0; border-top:1px solid var(--tb-line); }
.tb-cafe-contact-methods dt { font-weight:700; }
.tb-cafe-contact-methods dd { margin:0; overflow-wrap:anywhere; }
.tb-cafe-faq { max-width:none; }
@media(max-width:900px) {
  .tb-site-header .tb-brand img { height:43px; }
  .tb-brand-categories .tb-home-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:660px) {
  .tb-cafe-slide { min-height:510px; }
  .tb-cafe-slide-image img { object-position:62% center; }
  .tb-cafe-slide-image:after { background:linear-gradient(0deg,#211409f5 0%,#211409cd 40%,#21140942 82%); }
  .tb-cafe-slide h2 { font-size:clamp(2.85rem,12.7vw,4.25rem); }
  .tb-cafe-slide-inner { padding-bottom:2rem; }
  .tb-cafe-control-row { flex-wrap:wrap; gap:.25rem .55rem; min-height:0; }
  .tb-cafe-slide-select,.tb-cafe-slide-arrows { gap:.22rem; }
  .tb-cafe-slide-select button { padding:.35rem .45rem; font-size:.77rem; min-height:40px; gap:.32rem; }
  .tb-cafe-slide-arrows button { width:42px; min-height:40px; }
  .tb-cafe-location>.tb-shell { grid-template-columns:1fr; }
  .tb-cafe-location a,.tb-cafe-location a:first-child { border-right:0; padding:.58rem 0; }
  .tb-cafe-location a + a { border-top:1px solid #dcc4b0; }
  .tb-brand-categories .tb-home-category { display:flex; flex-direction:column; }
  .tb-brand-categories .tb-home-category-photo { aspect-ratio:1.25; min-height:0; }
  .tb-brand-categories .tb-home-category-caption p { font-size:.79rem; }
  .tb-cafe-story-band>.tb-shell,.tb-cafe-menu-section,.tb-cafe-profile,.tb-cafe-about-links { grid-template-columns:minmax(0,1fr); }
  .tb-cafe-profile--reverse figure { order:0; }
  .tb-cafe-menu-photo { aspect-ratio:1.75; }
  .tb-cafe-visit-photo { aspect-ratio:1.55; }
}
@media(max-width:365px) {
  .tb-site-header .tb-brand .tb-brand-name { font-size:1.03rem; }
  .tb-site-header .tb-brand { gap:.28rem; }
  .tb-cafe-slide-select button { font-size:.72rem; padding:.35rem .36rem; }
}
@media(prefers-reduced-motion:reduce) {
  .tb-cafe-slide--entered .tb-cafe-slide-image,.tb-cafe-slide--entered .tb-cafe-slide-copy { animation:none; }
}
