/* ==========================================================================
   Trail's Cafe Menu — front-end styles
   Scoped under .tcm so it never leaks into the rest of the theme.
   ========================================================================== */

.tcm{
  --tcm-accent:#E8742E; --tcm-accent-deep:#CE5F1E;
  --tcm-ink:#211A14; --tcm-muted:#6F6056; --tcm-cream:#FAF3E8;
  --tcm-panel:#FFFDF8; --tcm-dark:#241A12; --tcm-line:rgba(33,26,20,.1);
  --tcm-fd:'Oswald',Impact,sans-serif; --tcm-fb:'Mona Sans',system-ui,-apple-system,sans-serif;
  --tcm-cols:3;
  font-family:var(--tcm-fb); color:var(--tcm-ink); line-height:1.5;
}
.tcm *{box-sizing:border-box;}
.tcm h1,.tcm h2,.tcm h3,.tcm p{margin:0;}
.tcm a{text-decoration:none;color:inherit;}
.tcm img{max-width:100%;height:auto;display:block;}

.tcm-wrap{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,28px);}
.tcm-narrow{max-width:760px;margin:0 auto;padding:0 clamp(16px,4vw,28px);}
.tcm-eyebrow{font:700 12px/1 var(--tcm-fb);letter-spacing:.2em;color:var(--tcm-accent);}
.tcm-eyebrow--light{color:#F4C49A;}
.tcm-bar{width:8px;height:26px;border-radius:4px;background:var(--tcm-accent);flex:0 0 auto;}

/* ---- Toolbar: filter + search ---- */
.tcm-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;margin-bottom:clamp(20px,3vw,30px);}
.tcm-filter{display:flex;gap:9px;flex-wrap:wrap;}
.tcm-pill{font:600 13.5px/1 var(--tcm-fb);color:#3A322B;background:#fff;border:1px solid rgba(33,26,20,.16);padding:10px 16px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s,border-color .18s,box-shadow .18s;}
.tcm-pill:hover{border-color:var(--tcm-accent);color:var(--tcm-accent);}
.tcm-pill.is-active{background:var(--tcm-accent);color:#fff;border-color:var(--tcm-accent);box-shadow:0 6px 16px rgba(0,0,0,.14);}
.tcm-search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid rgba(33,26,20,.16);border-radius:999px;padding:10px 16px;min-width:240px;flex:1 1 240px;max-width:340px;color:var(--tcm-muted);}
.tcm-search svg{width:17px;height:17px;flex:0 0 auto;}
.tcm-search__input{border:0;outline:0;background:transparent;font:500 14px/1 var(--tcm-fb);color:var(--tcm-ink);width:100%;}

/* ---- Grid ---- */
.tcm-grid{display:grid;grid-template-columns:repeat(var(--tcm-cols),1fr);gap:26px;align-items:stretch;}
@media (max-width:980px){.tcm-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.tcm-grid{grid-template-columns:1fr;}}
.tcm-empty{grid-column:1/-1;text-align:center;color:var(--tcm-muted);font-size:15px;padding:40px 0;}

/* ---- Card ---- */
.tcm-card{display:flex;flex-direction:column;height:100%;background:var(--tcm-panel);border:1px solid var(--tcm-line);border-radius:18px;overflow:hidden;transition:transform .22s,box-shadow .22s,border-color .22s;}
.tcm-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(46,26,14,.12);border-color:rgba(232,116,46,.4);}
.tcm-card__media{position:relative;display:block;height:188px;overflow:hidden;}
.tcm-card__img{width:100%;height:100%;object-fit:cover;}
.tcm-card__media .tcm-cup{position:absolute;right:18px;bottom:16px;opacity:.9;}
.tcm-card__tag{position:absolute;top:14px;left:14px;font:600 10.5px/1 var(--tcm-fb);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(33,26,20,.42);backdrop-filter:blur(4px);padding:6px 11px;border-radius:999px;}
.tcm-card__body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;}
.tcm-card__cat{font:600 10.5px/1 var(--tcm-fb);letter-spacing:.06em;text-transform:uppercase;color:var(--tcm-accent);margin-bottom:8px;}
.tcm-card__title{font:600 20px/1.22 var(--tcm-fd);color:var(--tcm-ink);}
.tcm-card__title a:hover{color:var(--tcm-accent);}
.tcm-card__desc{margin-top:9px;font:400 13.5px/1.55 var(--tcm-fb);color:#7A6A5C;}
.tcm-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:16px;}
.tcm-card__price{font:700 16px/1 var(--tcm-fb);color:var(--tcm-accent);}

/* Text card (no photo) — matches the approved menu design */
.tcm-card__foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:16px;}
.tcm-card--text .tcm-card__price{font:600 13.5px/1 var(--tcm-fb);color:#4A3F36;background:#fff;border:1px solid rgba(33,26,20,.18);padding:7px 13px;border-radius:999px;}
.tcm-diet{font:700 10px/1 var(--tcm-fb);letter-spacing:.03em;padding:4px 7px;border-radius:6px;min-width:22px;text-align:center;}
.tcm-card__btn{margin-left:auto;}

/* ---- Sections layout (full menu page) ---- */
.tcm-sections{display:flex;flex-direction:column; gap: unset !important;}
.tcm-key{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;background:#FFFCF6;border:1px solid rgba(33,26,20,.08);border-radius:14px;padding:14px 18px;}
.tcm-key__label{font:700 11px/1 var(--tcm-fb);letter-spacing:.12em;text-transform:uppercase;color:var(--tcm-ink);}
.tcm-key__item{display:inline-flex;align-items:center;gap:7px;font:500 13px/1 var(--tcm-fb);color:#5A4D43;}
.tcm-section__head{display:flex;align-items:center;gap:13px;margin-bottom:4px;}
.tcm-section__title{font:700 clamp(26px,3.4vw,38px)/1.05 var(--tcm-fd);letter-spacing:-.01em;color:var(--tcm-ink);}
.tcm-section__all{margin-left:auto;font:600 13px/1 var(--tcm-fb);color:var(--tcm-accent);white-space:nowrap;}
.tcm-section__all:hover{color:var(--tcm-accent-deep);}
.tcm-section__desc{margin:2px 0 0 21px;font:400 14px/1.5 var(--tcm-fb);color:var(--tcm-muted);}
.tcm-section__media{margin:14px 0 2px;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(46,26,14,.12);}
.tcm-section__media img{display:block;width:100%;height:clamp(180px,26vw,300px);object-fit:cover;}
.tcm-section__rule{height:1px;background:rgba(33,26,20,.1);margin:16px 0 22px;}
.tcm-cat-banner--photo{position:relative;color:#FFF9F0;}
.tcm-cat-banner--photo .tcm-cat-banner__desc{color:rgba(255,249,240,.9);}

/* ---- Button ---- */
.tcm-btn{display:inline-flex;align-items:center;gap:7px;font:600 13.5px/1 var(--tcm-fb);color:#fff;background:var(--tcm-accent);padding:11px 18px;border-radius:999px;cursor:pointer;border:none;transition:background .18s,transform .18s,box-shadow .18s,color .18s,border-color .18s;}
.tcm-btn:hover{background:var(--tcm-accent-deep);transform:translateY(-1px);}
.tcm-btn svg{width:15px;height:15px;}
.tcm-btn--lg{font-size:15px;padding:15px 26px;box-shadow:0 8px 22px rgba(232,116,46,.28);}
.tcm-btn--ghost{background:#fff;color:var(--tcm-ink);border:1.5px solid rgba(33,26,20,.16);}
.tcm-btn--ghost:hover{background:#fff;border-color:var(--tcm-accent);color:var(--tcm-accent);}

/* ---- List layout ---- */
.tcm--list .tcm-grid{grid-template-columns:1fr;gap:14px;}
.tcm--list .tcm-card{flex-direction:row;align-items:stretch;}
.tcm--list .tcm-card__media{width:200px;height:auto;flex:0 0 200px;}
.tcm--list .tcm-card__body{flex:1;}
@media (max-width:620px){.tcm--list .tcm-card{flex-direction:column;}.tcm--list .tcm-card__media{width:100%;flex:none;height:170px;}}

/* ---- Load more ---- */
.tcm-foot{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:clamp(28px,4vw,42px);}
.tcm-loadmore{font:600 14.5px/1 var(--tcm-fb);color:var(--tcm-ink);background:#fff;border:1.5px solid rgba(33,26,20,.18);padding:14px 30px;border-radius:999px;cursor:pointer;transition:border-color .18s,color .18s,transform .18s;}
.tcm-loadmore:hover{border-color:var(--tcm-accent);color:var(--tcm-accent);transform:translateY(-1px);}
.tcm-loadmore[hidden]{display:none;}
.tcm-spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(33,26,20,.15);border-top-color:var(--tcm-accent);animation:tcm-spin .7s linear infinite;}
.tcm-spinner[hidden]{display:none;}
@keyframes tcm-spin{to{transform:rotate(360deg);}}
.tcm-grid.is-loading{opacity:.5;transition:opacity .2s;}

/* ---- Cup placeholder ---- */
.tcm-cup{display:inline-flex;}

/* ==========================================================================
   Single menu item
   ========================================================================== */
.tcm-single{background:var(--tcm-cream);padding-bottom:clamp(40px,5vw,70px);}
.tcm-breadcrumb{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font:500 13px/1 var(--tcm-fb);color:#8A7A6C;padding-top:clamp(18px,3vw,28px);}
.tcm-breadcrumb a:hover{color:var(--tcm-accent);}
.tcm-breadcrumb__cur{color:var(--tcm-ink);font-weight:600;}
.tcm-breadcrumb--light{color:rgba(246,236,221,.7);}
.tcm-breadcrumb--light a{color:rgba(246,236,221,.7);}
.tcm-breadcrumb--light a:hover{color:#fff;}

.tcm-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(24px,4vw,52px);align-items:center;padding-top:clamp(18px,3vw,28px);}
.tcm-hero__media{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 22px 50px rgba(46,26,14,.16);min-height:300px;}
.tcm-hero__img{width:100%;height:clamp(300px,42vw,480px);object-fit:cover;}
.tcm-hero__media .tcm-cup--lg{position:absolute;right:30px;bottom:26px;opacity:.8;}
.tcm-hero__flag{position:absolute;top:18px;left:18px;font:600 11px/1 var(--tcm-fb);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(33,26,20,.45);backdrop-filter:blur(4px);padding:8px 13px;border-radius:999px;}
.tcm-hero__title{font:700 clamp(34px,5vw,56px)/1.04 var(--tcm-fd);color:var(--tcm-ink);margin-top:12px;}
.tcm-hero__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;}
.tcm-pricepill{font:700 17px/1 var(--tcm-fb);color:#fff;background:var(--tcm-accent);padding:9px 16px;border-radius:999px;}
.tcm-diet{font:700 11px/1 var(--tcm-fb);letter-spacing:.03em;padding:6px 9px;border-radius:7px;}
.tcm-hero__desc{margin-top:20px;max-width:540px;font:400 clamp(15px,1.7vw,17.5px)/1.7 var(--tcm-fb);color:#5A4D43;}
.tcm-hero__facts{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;}
.tcm-fact{display:inline-flex;align-items:center;gap:8px;font:500 13.5px/1.3 var(--tcm-fb);color:var(--tcm-muted);}
.tcm-fact svg{width:17px;height:17px;color:var(--tcm-accent);}
.tcm-hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}

.tcm-prose{padding:clamp(30px,4vw,48px) clamp(16px,4vw,28px) 0;font:400 17px/1.75 var(--tcm-fb);color:#3A322B;}
.tcm-prose p{margin:0 0 20px;}
.tcm-prose h2{font:700 clamp(22px,3vw,28px)/1.2 var(--tcm-fd);margin:32px 0 12px;}
.tcm-prose h3{font:600 20px/1.25 var(--tcm-fd);margin:26px 0 10px;}
.tcm-prose ul,.tcm-prose ol{margin:0 0 20px;padding-left:22px;}
.tcm-prose li{margin-bottom:8px;}

.tcm-gallery-view{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;padding-top:clamp(28px,4vw,42px);}
.tcm-gallery-view__item{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(46,26,14,.1);}
.tcm-gallery-view__item img{width:100%;height:220px;object-fit:cover;}

.tcm-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(20px,3vw,28px);align-items:start;padding-top:clamp(28px,4vw,46px);}
.tcm-panel{background:var(--tcm-panel);border:1px solid var(--tcm-line);border-radius:18px;padding:clamp(22px,3vw,30px);}
.tcm-panel--dark{background:var(--tcm-dark);color:#F6ECDD;}
.tcm-panel__h{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.tcm-panel__h h2{font:700 22px/1.1 var(--tcm-fd);color:inherit;}
.tcm-panel--dark .tcm-panel__h h2{color:#FFF9F0;}
.tcm-line{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid rgba(33,26,20,.07);}
.tcm-line svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:var(--tcm-accent);}
.tcm-line span{font:500 15px/1.5 var(--tcm-fb);color:#3A322B;}
.tcm-nrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(246,236,221,.12);font:500 14.5px/1.4 var(--tcm-fb);color:#F6ECDD;}
.tcm-nrow b{color:var(--tcm-accent);font-weight:700;}

.tcm-faq{padding-top:clamp(30px,4vw,48px);}
.tcm-faq__item{border:1px solid var(--tcm-line);border-radius:12px;background:var(--tcm-panel);margin-bottom:10px;overflow:hidden;}
.tcm-faq__item summary{cursor:pointer;list-style:none;padding:16px 20px;font:600 15.5px/1.3 var(--tcm-fb);color:var(--tcm-ink);position:relative;}
.tcm-faq__item summary::-webkit-details-marker{display:none;}
.tcm-faq__item summary::after{content:"+";position:absolute;right:20px;top:14px;font-size:22px;color:var(--tcm-accent);}
.tcm-faq__item[open] summary::after{content:"–";}
.tcm-faq__item p{padding:0 20px 18px;font:400 14.5px/1.65 var(--tcm-fb);color:#5A4D43;}

.tcm-share{display:flex;align-items:center;gap:12px;padding-top:clamp(28px,4vw,40px);}
.tcm-share__k{font:700 11px/1 var(--tcm-fb);letter-spacing:.12em;text-transform:uppercase;color:#8A7A6C;}
.tcm-share a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(33,26,20,.16);display:flex;align-items:center;justify-content:center;color:#5A4D43;transition:color .18s,border-color .18s;}
.tcm-share a:hover{color:var(--tcm-accent);border-color:var(--tcm-accent);}
.tcm-share svg{width:17px;height:17px;}

.tcm-pn{display:flex;justify-content:space-between;gap:14px;padding-top:clamp(30px,4vw,44px);}
.tcm-pn__link{display:flex;flex-direction:column;gap:4px;background:var(--tcm-panel);border:1px solid var(--tcm-line);border-radius:14px;padding:14px 20px;max-width:46%;transition:border-color .18s,transform .18s;}
.tcm-pn__link:hover{border-color:var(--tcm-accent);transform:translateY(-2px);}
.tcm-pn__next{text-align:right;align-items:flex-end;}
.tcm-pn__link span{font:600 11px/1 var(--tcm-fb);letter-spacing:.08em;text-transform:uppercase;color:#8A7A6C;}
.tcm-pn__link b{font:600 15px/1.3 var(--tcm-fd);color:var(--tcm-ink);}

.tcm-related{padding-top:clamp(40px,5vw,64px);}
.tcm-related .tcm-panel__h{margin-bottom:22px;}

/* ---- Sticky category nav bar ---- */
.tcm-cat-nav{position:sticky;top:0;z-index:97;background:#fff;border-bottom:1px solid rgba(33,26,20,.1);box-shadow:0 2px 10px rgba(33,26,20,.07);}
.tcm-cat-nav__inner{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:12px clamp(16px,4vw,28px);max-width:1240px;margin:0 auto;scrollbar-width:none;}
.tcm-cat-nav__inner::-webkit-scrollbar{display:none;}
.tcm-cat-nav__pill{font:600 13.5px/1 var(--tcm-fb);color:#3A322B;background:#fff;border:1px solid rgba(33,26,20,.16);padding:10px 18px;border-radius:999px;white-space:nowrap;cursor:pointer;transition:background .18s,color .18s,border-color .18s;text-decoration:none;flex:0 0 auto;}
.tcm-cat-nav__pill:hover{border-color:var(--tcm-accent);color:var(--tcm-accent);}
.tcm-cat-nav__pill.is-active{background:var(--tcm-accent);color:#fff;border-color:var(--tcm-accent);box-shadow:0 6px 16px rgba(0,0,0,.14);}

/* ==========================================================================
   Category / full archive
   ========================================================================== */
.tcm-archive{background:var(--tcm-cream);padding-bottom:clamp(40px,5vw,70px);}
.tcm-cat-banner{background:var(--tcm-dark);color:#FFF9F0;padding:clamp(34px,5vw,60px) 0;margin-bottom:clamp(28px,4vw,44px);}
.tcm-cat-banner__title{font:700 clamp(38px,6vw,66px)/1.02 var(--tcm-fd);color:#FFF9F0;margin-top:12px;}
.tcm-cat-banner__desc{margin-top:14px;max-width:560px;font:400 clamp(15px,1.7vw,18px)/1.6 var(--tcm-fb);color:rgba(246,236,221,.82);}
.tcm-archive__main{padding-bottom:10px;}
