/* Cafe Plus, Denton. Colours from the building: the fascia's charcoal, the badge's gold, the sign's orange bars,
   the red brick. Type: Bricolage Grotesque (OFL), one family. Labels are drawn like the street-name plates on the
   corner ("STOCKPORT ROAD", "MANCHESTER ROAD"). Compera 2026-11-10. */
@font-face{font-family:"Bricolage";src:url("/fonts/bricolage.woff2?v=d10e3ec9") format("woff2");font-weight:200 800;font-display:swap}
:root{
  --ink:#231f20;--ink-2:#575153;--paper:#fff;--tile:#f5f3f0;--line:#e3dfda;
  --brick:#8f3a22;--brick-2:#7a301b;--gold:#c4951a;--gold-ink:#8a6510;--orange:#e0702a;
  --wrap:1240px;--gut:clamp(16px,4vw,40px);--top:72px;--r:6px
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{background:var(--paper);color:var(--ink);font:400 1.0625rem/1.55 "Bricolage",system-ui,-apple-system,"Segoe UI",sans-serif;font-optical-sizing:auto;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--top) + 64px)}
body{min-height:100svh;display:flex;flex-direction:column}
main{flex:1}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:3px}
h1,h2,h3,h4{font-weight:760;line-height:1.08;letter-spacing:-.018em;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.6vw,4.4rem);letter-spacing:-.028em;line-height:1}
h2{font-size:clamp(1.85rem,3.6vw,2.75rem)}
p{text-wrap:pretty}
.wrap{width:100%;max-width:calc(var(--wrap) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r)}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.i{width:1.25em;height:1.25em;flex:none}

/* street-name plate */
.plate{display:inline-block;background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line);padding:3px 9px 2px;font-weight:700;font-size:.72rem;letter-spacing:.07em;line-height:1.25;text-transform:uppercase;margin-bottom:18px;width:fit-content}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:50px;padding:0 24px;border-radius:999px;border:1.5px solid transparent;font:inherit;font-weight:650;font-size:1rem;line-height:1.1;text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.btn .i{width:1.2em;height:1.2em}
.btn--sm{min-height:42px;padding:0 18px;font-size:.95rem}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:#000}
.btn--line{border-color:var(--ink);color:var(--ink);background:transparent}
.btn--line:hover{background:var(--ink);color:#fff}
.btn--gold{background:var(--gold);color:var(--ink)}
.btn--gold:hover{background:#dcab2d}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.more{display:inline-flex;align-items:center;gap:.4em;font-weight:650;text-decoration:none;border-bottom:2px solid var(--orange);padding-bottom:2px;white-space:nowrap}
.more:hover{color:var(--brick)}
.more .i{width:1.1em;height:1.1em}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.top__in{display:flex;align-items:center;gap:20px;height:var(--top)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto}
.brand img{width:44px;height:44px}
.brand__name{font-weight:780;font-size:1.3rem;line-height:1;letter-spacing:-.02em}
.brand__name small{display:block;font-size:.62em;font-weight:600;letter-spacing:.02em;color:var(--gold-ink);margin-top:3px}
.top__nav{display:flex;align-items:center;gap:26px}
.top__nav a{font-weight:600;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.top__nav a:hover,.top__nav a[aria-current=page]{border-bottom-color:var(--orange)}
.top__tel{display:inline-flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}
.top__menu{display:none;width:46px;height:46px;border:0;background:none;color:var(--ink);border-radius:50%;cursor:pointer;align-items:center;justify-content:center}
.top__menu .i{width:28px;height:28px}
.top__menu:hover{background:var(--tile)}

/* phone menu sheet: fits by construction (container size units) */
.sheet{position:fixed;inset:0 0 0 auto;width:min(420px,100vw);height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--ink);container:sheet/size}
.sheet::backdrop{background:rgba(35,31,32,.45)}
.sheet__in{height:100%;min-height:440px;display:flex;flex-direction:column;padding:clamp(12px,2.4cqh,24px) 20px max(20px,env(safe-area-inset-bottom))}
.sheet__close{align-self:flex-end;width:46px;height:46px;border:0;background:var(--tile);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink)}
.sheet__close .i{width:24px;height:24px}
.sheet__nav{display:flex;flex-direction:column;margin-top:clamp(6px,2cqh,20px)}
.sheet__nav a{font-size:clamp(1.5rem,5.4cqh,2.3rem);font-weight:760;letter-spacing:-.02em;text-decoration:none;padding:clamp(4px,1.3cqh,12px) 0;border-bottom:1px solid var(--line)}
.sheet__actions{display:grid;gap:10px;margin-top:auto;padding-top:16px}
.sheet__meta{margin-top:14px;color:var(--ink-2);font-size:.95rem}
@supports (-webkit-touch-callout:none){.sheet__in{padding-bottom:max(20px,6rem)}}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);min-height:min(calc(100svh - var(--top)),740px)}
.hero__text{display:flex;flex-direction:column;justify-content:center;padding:56px clamp(28px,4vw,72px) 56px max(var(--gut),calc((100vw - var(--wrap)) / 2))}
.hero h1 span{display:block;color:var(--brick)}
.hero h1::after{content:"";display:block;width:64px;height:6px;background:var(--orange);margin-top:26px}
.hero__lead{margin-top:24px;font-size:1.2rem;max-width:36ch;color:#3b3536}
.status{display:flex;align-items:center;gap:8px;margin-top:22px;font-weight:600;color:var(--ink-2)}
.status .i{color:var(--gold-ink)}
.status [data-state=open]::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#2f8a4b;margin-right:7px;vertical-align:1px}
.hero__photo{position:relative;overflow:hidden;background:#6b5a46}
.hero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero__photo figcaption,.card__img figcaption{position:absolute;left:16px;bottom:16px;background:#fff;color:var(--ink);font-weight:650;font-size:.9rem;padding:6px 12px;border-radius:999px}

/* sections */
.sec{padding:clamp(64px,8vw,112px) 0}
.sec--tile{background:var(--tile)}
.sec--top0{padding-top:0}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(28px,4vw,44px)}

/* favourite dishes */
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,48px) clamp(20px,2.4vw,32px)}
.card{display:flex;flex-direction:column}
.card__img{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--tile)}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card:hover .card__img img{transform:scale(1.03)}
.card__body{display:flex;flex-direction:column;flex:1;padding-top:14px}
.card__t{font-size:1.32rem;letter-spacing:-.012em}
.card__p{margin-top:6px;color:var(--ink-2);font-size:1rem}
.card__price{margin-top:10px;font-weight:700;font-variant-numeric:tabular-nums}
.card__link{display:inline-flex;align-items:center;gap:.35em;margin-top:auto;padding-top:14px;font-weight:600;text-decoration:none;color:var(--brick);align-self:flex-start}
.card__link:hover{text-decoration:underline}
.card__link .i{width:1.05em;height:1.05em}

/* order band */
.order{background:var(--brick);color:#fff;padding:clamp(40px,5vw,64px) 0}
.order__in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.order__icon{width:72px;height:72px;border-radius:50%;border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.order__icon .i{width:36px;height:36px}
.order h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.order p{margin-top:8px;max-width:58ch;color:#f6e9e3}

/* the room */
.room__in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.room__photo{aspect-ratio:3/2;overflow:hidden;border-radius:var(--r)}
.room__photo img{width:100%;height:100%;object-fit:cover}
.room__text p{margin-top:16px;font-size:1.12rem;color:#3b3536;max-width:46ch}
.facts{list-style:none;padding:0;margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.facts li{display:flex;align-items:center;gap:10px;font-weight:600}
.facts .i{color:var(--gold-ink);width:1.4em;height:1.4em}

/* reviews */
.quotes{list-style:none;padding:0 0 12px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.quote{scroll-snap-align:start;background:#fff;border-radius:var(--r);padding:26px 24px;display:flex;border:1px solid var(--line)}
.quote figure{display:flex;flex-direction:column;gap:18px}
.quote blockquote{font-size:1.02rem;line-height:1.55}
.quote blockquote p::before{content:"“"}
.quote blockquote p::after{content:"”"}
.quote figcaption{margin-top:auto;font-size:.92rem;color:var(--ink-2)}
.quote figcaption strong{color:var(--ink)}
.stars{display:flex;gap:2px;margin-bottom:6px;color:var(--gold)}
.star{width:17px;height:17px}

/* visit */
.visit__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center}
.visit__addr{font-style:normal;font-size:1.15rem;margin:18px 0 22px}
.visit__photo{aspect-ratio:3/2;overflow:hidden;border-radius:var(--r)}
.visit__photo img{width:100%;height:100%;object-fit:cover}
.hours{border-collapse:collapse;width:100%;max-width:380px;font-variant-numeric:tabular-nums}
.hours th,.hours td{padding:7px 0;border-bottom:1px solid var(--line);text-align:left;font-weight:500}
.hours td{text-align:right}
.hours tr.is-today th,.hours tr.is-today td{font-weight:750}
.hours tr.is-today th::after{content:"Today";margin-left:8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--gold);color:var(--ink);padding:2px 7px;border-radius:999px;vertical-align:2px}

/* inner page head */
.phead{padding:clamp(48px,7vw,96px) 0 clamp(32px,4vw,48px)}
.phead__lead{margin-top:18px;font-size:1.2rem;max-width:56ch;color:#3b3536}
.phead--404{padding-bottom:clamp(64px,10vw,140px)}

/* menu */
.legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:24px;color:var(--ink-2);font-size:.95rem}
.legend>span{display:inline-flex;align-items:center;gap:7px}
.tag{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 5px;margin-left:7px;border:1.5px solid var(--gold-ink);border-radius:4px;color:var(--gold-ink);font-size:.68rem;font-weight:750;letter-spacing:.03em;text-decoration:none;vertical-align:3px;line-height:1}
.legend .tag{margin-left:0}
.tag--hot{border-color:var(--brick);color:var(--brick);padding:0 2px}
.tag--hot .i{width:15px;height:15px}
.chips{position:sticky;top:var(--top);z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-block:1px solid var(--line)}
.chips__in{display:flex;gap:8px;overflow-x:auto;padding-block:10px;scrollbar-width:none}
.chips__in::-webkit-scrollbar{display:none}
.chips a{flex:none;padding:8px 16px;border:1.5px solid var(--line);border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none;white-space:nowrap}
.chips a:hover{border-color:var(--ink)}
.chips a.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.menu{padding-top:clamp(36px,5vw,64px);padding-bottom:clamp(64px,8vw,112px)}
.mg+.mg{margin-top:clamp(56px,7vw,96px)}
.mg__t{display:flex;align-items:center;gap:18px;padding-bottom:14px;border-bottom:3px solid var(--ink)}
.mg__t::after{content:"";width:48px;height:6px;background:var(--orange);margin-left:auto}
.mg__cols{columns:2;column-gap:clamp(40px,5vw,80px);margin-top:clamp(28px,3vw,40px)}
.ms{break-inside:avoid;padding-bottom:clamp(32px,3.6vw,48px)}
.ms h3{font-size:1.45rem;padding-bottom:8px;border-bottom:1px solid var(--line)}
.ms__note{margin-top:10px;color:var(--ink-2);font-size:.95rem}
.ms ul{list-style:none;padding:0}
.mi{padding:13px 0;border-bottom:1px solid var(--line)}
.mi__row{display:flex;align-items:baseline;gap:16px}
.mi__n{font-size:1.06rem;font-weight:650;letter-spacing:0;line-height:1.3;flex:1}
.mi__p{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.sizes{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.sizes span{font-weight:600}
.mi__d{margin-top:4px;color:var(--ink-2);font-size:.95rem;max-width:56ch}
.allergy{margin-top:clamp(40px,5vw,64px);background:var(--tile);border-radius:var(--r);padding:24px 26px;max-width:760px}
.allergy h2{font-size:1.3rem}
.allergy p{margin-top:8px;color:#3b3536}

/* visit page */
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.vcard{border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.vcard__h{display:flex;align-items:center;gap:10px;font-size:1.25rem}
.vcard__h .i{color:var(--gold-ink);width:1.3em;height:1.3em}
.vcard address{font-style:normal;font-size:1.08rem;line-height:1.5}
.vcard .hours{max-width:none}
.vcard__small{color:var(--ink-2);font-size:.95rem}
.vcard .btn{margin-top:auto}
.big{font-size:1.5rem;font-weight:750;text-decoration:none;font-variant-numeric:tabular-nums}
.vcard__social{display:flex;gap:18px}
.vcard__social a,.foot__social a{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none}
.vcard__social a:hover{text-decoration:underline}
.vmedia{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.vmedia__photo,.vmedia__map{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r)}
.vmedia__photo img{width:100%;height:100%;object-fit:cover}
.vmedia__map{background:var(--tile);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:var(--ink-2);font-size:.92rem}
.vmedia__map iframe{width:100%;height:100%;border:0}
.vmedia__map.is-live{padding:0}

/* prose */
.prose{max-width:720px}
.prose h2{font-size:1.5rem;margin-top:36px}
.prose p{margin-top:12px;color:#3b3536}
.muted{color:var(--ink-2)!important;font-size:.95rem}

/* footer */
.foot{background:var(--ink);color:#e9e4de;padding:clamp(52px,6vw,80px) 0 28px;margin-top:0}
.foot a{color:#fff}
.foot__grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.25fr .8fr;gap:36px}
.foot__brand img{width:72px;height:72px}
.foot__brand p{margin-top:16px;max-width:28ch;color:#cfc8c1}
.foot__brand strong{color:#fff;font-size:1.15rem}
.foot__h{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.foot address{font-style:normal;line-height:1.6}
.foot__link{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-weight:600;text-decoration:none}
.foot__link:hover,.foot nav a:hover,.foot__social a:hover{text-decoration:underline}
.foot__social{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.foot nav{display:flex;flex-direction:column;gap:8px}
.foot nav a{text-decoration:none;font-weight:500}
.hours--foot{max-width:none;font-size:.95rem}
.hours--foot th,.hours--foot td{border-bottom-color:rgba(255,255,255,.12);padding:4px 0;font-weight:400;color:#e9e4de}
.hours--foot tr.is-today th,.hours--foot tr.is-today td{color:#fff;font-weight:700}
.hours--foot tr.is-today th::after{display:none}
.foot__small{margin-top:10px;font-size:.88rem;color:#bdb5ad}
.foot__legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;color:#bdb5ad}
.foot__legal span{color:var(--orange)}

/* good to know (Visit page) */
.faq{margin-top:clamp(48px,6vw,80px)}
.faq h2{margin-bottom:20px}
.faq__list{border-top:1px solid var(--line);max-width:860px}
.faq__q{border-bottom:1px solid var(--line)}
.faq__q summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:650;font-size:1.1rem}
.faq__q summary::-webkit-details-marker{display:none}
.faq__q summary::after{content:"+";font-size:1.5rem;font-weight:400;line-height:1;color:var(--brick);flex:none}
.faq__q[open] summary::after{content:"–"}
.faq__q p{padding:0 0 20px;max-width:68ch;color:#3b3536}
.vmedia{margin-top:clamp(48px,6vw,80px)}

/* cookie settings panel (opens only from the footer) */
.consent{position:fixed;z-index:70;left:var(--gut);bottom:24px;width:min(440px,calc(100% - 2 * var(--gut)));background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:0 14px 40px rgba(35,31,32,.22);font-size:.95rem}
.consent p{margin-bottom:14px;color:#3b3536}
.consent__btns{display:flex;gap:10px}
.consent__btns .btn{flex:1}
.linkbtn{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn[hidden]{display:none}
.foot__legal a{color:#bdb5ad}
.prose code{font-size:.9em;background:var(--tile);padding:1px 5px;border-radius:4px}
@supports (-webkit-touch-callout:none){@media (max-width:760px){.consent{bottom:max(24px,6rem)}}}

/* tablet */
@media (max-width:1180px){
  .foot__grid{grid-template-columns:1fr 1fr 1fr}
  .foot__brand{grid-column:1/-1;display:flex;align-items:center;gap:20px}
  .foot__brand p{margin-top:0;max-width:none}
}
@media (max-width:1060px){
  .top__tel span{display:none}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vgrid{grid-template-columns:1fr 1fr}
  .vgrid .vcard:last-child{grid-column:1/-1}
}
@media (max-width:959px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__text{padding:40px var(--gut) 36px}
  .hero__photo{aspect-ratio:4/3}
  .room__in,.visit__in{grid-template-columns:1fr}
  .visit__photo{order:-1}
  .order__in{grid-template-columns:auto 1fr}
  .order__in .btn{grid-column:1/-1;justify-self:start}
  .mg__cols{columns:1}
  .vmedia{grid-template-columns:1fr}
}
/* phone */
@media (max-width:760px){
  :root{--top:62px}
  html{font-size:1rem}
  .top__in{gap:10px}
  .top__nav{display:none}
  .top__menu{display:inline-flex}
  .brand img{width:40px;height:40px}
  .brand__name{font-size:1.18rem}
  .top__order{min-height:40px;padding:0 14px}
  .top__order .i{display:none}
  .sec__head{flex-direction:column;align-items:flex-start}
  .cards{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);padding-bottom:6px;scrollbar-width:none}
  .cards::-webkit-scrollbar{display:none}
  .card{scroll-snap-align:start}
  .quotes{grid-auto-columns:86%;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .order__icon{width:56px;height:56px}
  .order__icon .i{width:28px;height:28px}
  .facts{grid-template-columns:1fr}
  .vgrid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__grid>nav{grid-column:1/-1}
  .foot__grid>div:nth-child(4){grid-column:1/-1}
  .actions .btn{flex:1 1 auto}
}
@media (max-width:380px){
  .brand__name small{display:none}
  .top__order{padding:0 12px;font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
