.pub-page{background:var(--cream);color:var(--ink)}.pub-hero-shell{color:var(--cream);background:var(--green-dark)}.pub-hero{position:relative;min-height:640px;overflow:hidden}.pub-hero>img,.pub-hero-scrim{position:absolute;inset:0;width:100%;height:100%}.pub-hero>img{object-fit:cover;filter:saturate(.95) contrast(1.04)}.pub-hero-scrim{background:linear-gradient(90deg,rgba(19,52,43,.96),rgba(19,52,43,.58) 58%,rgba(19,52,43,.12)),linear-gradient(0deg,rgba(19,52,43,.72),transparent 65%)}.pub-hero-inner{position:relative;min-height:640px;display:flex;flex-direction:column;justify-content:space-between;padding-top:34px;padding-bottom:72px}.pub-back{width:max-content;color:var(--cream);font-weight:800;text-underline-offset:5px}.pub-title{max-width:940px}.pub-title .eyebrow{color:var(--yellow)}.pub-title h1{max-width:900px;margin:0 0 28px;color:var(--cream);font-family:var(--display);font-size:clamp(58px,8vw,112px);font-weight:400;line-height:.87;letter-spacing:-.055em;text-transform:uppercase}.pub-hero-badges{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.pub-hero-badges a,.open-state{padding:10px 14px;color:var(--poster-ink);background:var(--yellow);font-size:13px;font-weight:800;text-decoration:none;transform:rotate(-.5deg)}.open-state{background:var(--lilac);transform:rotate(.7deg)}.open-state.is-open{background:var(--mint)}.open-state.is-closed{color:var(--cream);background:var(--plum)}
.pub-breadcrumbs{padding-top:24px}.pub-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;color:#5d766d;font-size:13px}.pub-breadcrumbs li:not(:last-child)::after{content:"/";margin-left:8px;color:#92a49e}.pub-breadcrumbs a{color:var(--green);font-weight:800;text-underline-offset:3px}
.pub-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(55px,8vw,120px);padding-top:110px;padding-bottom:120px}.pub-story h2,.gallery-heading h2,.hours-panel h2,.route-cta h2{margin:0;font-family:var(--display);font-size:clamp(43px,5.5vw,76px);font-weight:400;line-height:.92;letter-spacing:-.045em;text-transform:uppercase}.pub-story>p:not(.eyebrow){max-width:660px;margin:28px 0;color:#315a4c;font-size:clamp(18px,2vw,22px);line-height:1.65}.pub-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}.pub-actions .secondary-button{color:var(--green);background:transparent}.pub-facts{align-self:start;display:grid;gap:8px}.fact-card{padding:23px 25px;background:var(--lime)}.fact-card:nth-child(2){background:var(--blue);transform:rotate(.5deg)}.fact-card:nth-child(3){background:var(--lilac);transform:rotate(-.5deg)}.fact-card span{display:block;margin-bottom:7px;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.fact-card strong,.fact-card a{display:block;color:var(--poster-ink);font-size:18px;font-weight:850;line-height:1.35}.fact-link{justify-self:start;margin-top:8px;padding:11px 15px;color:var(--cream);background:var(--green);font-weight:850;text-decoration:none;transform:rotate(.5deg)}
.pub-gallery-wrap{padding:105px 0 110px;color:var(--cream);background:var(--poster-ink)}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:34px}.gallery-heading .eyebrow{color:var(--orange)}.gallery-heading h2{max-width:780px;color:var(--cream)}.gallery-heading>a{color:var(--yellow);font-weight:800;text-underline-offset:5px}.pub-gallery{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:260px 260px;gap:7px}.pub-gallery figure{position:relative;margin:0;overflow:hidden;background:var(--green)}.pub-gallery figure:first-child{grid-row:1/3}.pub-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}.pub-gallery figure:hover img{transform:scale(1.025)}.pub-gallery figcaption{position:absolute;left:10px;bottom:10px;padding:6px 9px;color:var(--poster-ink);background:var(--yellow);font-size:10px;font-weight:800;transform:rotate(-1deg)}.google-credit{margin:16px 0 0;color:#a9b9b2;font-size:11px}
.pub-highlights{padding:85px 0;color:var(--cream);background:var(--green)}.pub-highlights-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:clamp(45px,8vw,110px);align-items:center}.pub-highlights .eyebrow{color:var(--yellow)}.pub-highlights h2,.pub-answers h2,.related-pubs h2{max-width:15ch;margin:10px 0 20px;font:400 clamp(42px,5vw,66px)/.96 var(--display);letter-spacing:-.035em;text-transform:uppercase}.pub-highlights p:not(.eyebrow){max-width:60ch;margin:0;color:#d9e7c4;line-height:1.6}.pub-highlights ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.pub-highlights li{padding:11px 15px;color:var(--poster-ink);background:var(--yellow);border-radius:999px;font-size:13px;font-weight:900;text-transform:uppercase}.pub-highlights li:nth-child(3n+2){background:var(--lime)}.pub-highlights li:nth-child(3n){background:var(--lilac)}
.pub-answers{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(50px,7vw,90px);padding-top:105px;padding-bottom:105px}.pub-answers h2{max-width:18ch;color:var(--green-dark);font-size:clamp(42px,4.4vw,60px);line-height:.98}.pub-answer-list article{padding:25px 0;border-bottom:1px solid rgba(22,95,71,.22)}.pub-answer-list article:first-child{padding-top:4px}.pub-answer-list h3{margin:0 0 10px;color:var(--green);font-size:20px}.pub-answer-list p{margin:0;color:#315a4c;line-height:1.65}.pub-answer-list a{color:var(--green);font-weight:850}
.related-pubs{padding:95px 0;color:var(--cream);background:var(--green-dark)}.related-pubs-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:34px}.related-pubs-heading .eyebrow{color:var(--yellow)}.related-pubs h2{margin-bottom:0}.related-pubs-heading>a{color:var(--yellow);font-weight:850}.related-pub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.related-pub-grid>a{display:grid;grid-template-rows:230px 1fr;overflow:hidden;color:var(--green-dark);background:var(--cream);border-radius:var(--radius);text-decoration:none}.related-pub-grid img{width:100%;height:230px;object-fit:cover;transition:transform .5s ease}.related-pub-grid>a:hover img{transform:scale(1.025)}.related-pub-grid span{display:flex;flex-direction:column;align-items:flex-start;padding:22px}.related-pub-grid strong{font-size:21px}.related-pub-grid small{margin:7px 0 18px;color:#597268;line-height:1.4}.related-pub-grid b{margin-top:auto;color:var(--green);font-size:12px;text-transform:uppercase}
.pub-visit{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:110px;padding-bottom:120px}.hours-panel,.route-cta{padding:45px;background:var(--lime)}.hours-panel h2{font-size:clamp(40px,4vw,58px)}.hours-panel ul{margin:28px 0;padding:0;list-style:none}.hours-panel li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid rgba(22,95,71,.22);color:#315a4c}.hours-panel>a{font-weight:850;text-underline-offset:5px}.next-pub{position:relative;min-height:560px;overflow:hidden;color:var(--cream);text-decoration:none;background:var(--green)}.next-pub:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,55,41,.96),rgba(10,55,41,.08) 75%)}.next-pub>img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}.next-pub:hover>img{transform:scale(1.035)}.next-pub>span{position:absolute;z-index:1;left:35px;right:35px;bottom:34px}.next-pub small{display:block;margin-bottom:10px;color:var(--yellow);font-weight:900;letter-spacing:.12em;text-transform:uppercase}.next-pub strong{display:block;font-family:var(--display);font-size:clamp(38px,4vw,58px);line-height:.93;text-transform:uppercase}.next-pub b{display:inline-block;margin-top:22px;color:var(--yellow)}.route-cta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--yellow)}.route-cta>span{margin-bottom:18px;font-weight:900;text-transform:uppercase}.route-cta h2{color:var(--poster-ink);font-size:clamp(40px,4vw,60px)}.route-cta .primary-button{margin-top:30px}
@media(max-width:767px){.pub-hero,.pub-hero-inner{min-height:520px}.pub-hero-inner{padding-top:22px;padding-bottom:45px}.pub-title h1{font-size:clamp(50px,15vw,76px)}.pub-breadcrumbs{padding-top:18px}.pub-intro,.pub-visit,.pub-answers{grid-template-columns:1fr;gap:35px;padding-top:75px;padding-bottom:80px}.pub-highlights{padding:70px 0}.pub-highlights-inner{grid-template-columns:1fr;gap:35px}.pub-highlights h2,.pub-answers h2,.related-pubs h2{font-size:42px}.pub-gallery-wrap{padding:75px 0}.gallery-heading,.related-pubs-heading{align-items:start;flex-direction:column}.pub-gallery{grid-template-columns:1fr 1fr;grid-template-rows:290px 170px}.pub-gallery figure:first-child{grid-column:1/-1;grid-row:1}.pub-story h2,.gallery-heading h2{font-size:44px}.related-pubs{padding:75px 0}.related-pub-grid{grid-template-columns:1fr}.related-pub-grid>a{grid-template-rows:210px 1fr}.related-pub-grid img{height:210px}.hours-panel,.route-cta{padding:28px}.next-pub{min-height:420px}}
.pub-gallery-single{display:block}.pub-gallery-single figure{height:520px}.pub-gallery-single figure:first-child{grid-row:auto}@media(max-width:767px){.pub-gallery-single figure{height:360px}}

/* Pub-page shape rule: content surfaces use the site radius; actions stay pill-shaped. */
.pub-facts,.pub-gallery-inner{position:relative}.fact-card,.fact-link,.hours-panel,.route-cta,.next-pub,.pub-gallery figure{border-radius:var(--radius)}
.pub-gallery{position:relative;overflow:visible}.pub-gallery figure{overflow:hidden}.pub-sticker{position:absolute;z-index:4;width:clamp(150px,15vw,210px);height:auto;pointer-events:none;filter:drop-shadow(0 9px 0 rgba(16,61,48,.18))}.pub-sticker-gallery{right:-24px;bottom:-62px;transform:rotate(5deg)}
/* Keep the gallery stamp independent from the full-bleed photo rules above. */
.pub-gallery > .pub-sticker-gallery{right:18px;bottom:-34px;width:clamp(108px,10vw,148px);height:auto;object-fit:contain;transform:rotate(4deg)}
@media(max-width:767px){.pub-gallery > .pub-sticker-gallery{right:14px;bottom:-28px;width:100px;height:auto}.gallery-heading{padding-top:0}.google-credit{padding-right:104px}}

/* Calibrated pub-page hierarchy and accessible colour pairings. */
.pub-page { color:var(--text-primary);background:var(--surface-page) }
.pub-hero-shell, .pub-highlights, .related-pubs { color:var(--text-inverse);background-color:var(--surface-dark) }
.pub-title h1, .pub-back, .pub-highlights p:not(.eyebrow) { color:var(--text-inverse) }
.pub-title .eyebrow, .pub-highlights .eyebrow,
.related-pubs-heading .eyebrow { color:var(--accent-action) }
.pub-hero-badges a, .pub-gallery figcaption, .pub-highlights li:first-child,
.route-cta { color:var(--text-primary);background:var(--accent-action) }
.open-state { color:var(--text-primary);background:var(--accent-info) }
.open-state.is-open { color:var(--text-primary);background:var(--accent-primary) }
.open-state.is-closed { color:var(--text-inverse);background:var(--surface-dark) }
.pub-highlights li:nth-child(3n+2), .hours-panel { color:var(--text-primary);background:var(--accent-primary) }
.pub-highlights li:nth-child(3n), .fact-card:nth-child(2) { color:var(--text-primary);background:var(--surface-cool) }
.fact-card:nth-child(3), .related-pub-grid>a { color:var(--text-primary);background:var(--surface-page) }
.gallery-heading .eyebrow { color:var(--accent-info) }
.pub-story .eyebrow, .hours-panel .eyebrow { color:var(--text-primary) }
.gallery-heading>a { color:var(--accent-primary) }
.route-cta h2, .fact-card strong, .fact-card a { color:inherit }

/* Digi-cam grading for real Bristol pub photography. */
.pub-hero>img, .pub-gallery img, .related-pub-grid img, .next-pub>img {
  filter:saturate(1.2) contrast(1.12) brightness(.97);
}
.pub-hero-scrim {
  background:
    radial-gradient(circle at 72% 32%,rgba(242,234,218,.16),transparent 24%),
    linear-gradient(90deg,rgba(19,52,43,.94),rgba(19,52,43,.52) 58%,rgba(19,52,43,.08)),
    linear-gradient(0deg,rgba(19,52,43,.66),transparent 65%);
}
.pub-gallery { gap:8px;padding:8px;border:2px solid var(--bottle);background:var(--bottle);box-shadow:none }
.pub-gallery figure { isolation:isolate }
.pub-gallery figure::after, .next-pub::before {
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(circle at 30% 20%,rgba(242,234,218,.18),transparent 22%);
  mix-blend-mode:screen;
}
.pub-gallery figcaption { z-index:2 }
.next-pub { position:relative;isolation:isolate }
.next-pub>span { position:absolute;z-index:2 }
@media(max-width:767px){.pub-gallery{box-shadow:none}}

/* Keep venue tags attached to a clear decision-making panel. */
body .pub-highlights-inner{grid-template-columns:minmax(0,1.05fr) minmax(340px,.7fr);align-items:stretch}
.pub-highlights-copy{display:flex;flex-direction:column;justify-content:center}
.pub-highlights-copy h2{max-width:13ch}
.pub-highlights-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,4vw,44px);color:var(--poster-ink);background:var(--foam);border-radius:var(--radius)}
.pub-highlights-panel>p{margin:0 0 18px!important;color:var(--poster-ink)!important;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.pub-highlights-panel ul{align-content:flex-start}
body .pub-highlights-panel li{color:var(--poster-ink);background:var(--lime)}
body .pub-highlights-panel li:nth-child(3n+2){background:var(--ice)}
body .pub-highlights-panel li:nth-child(3n){background:var(--lager)}
.pub-highlights-panel>a{align-self:flex-start;margin-top:26px;color:var(--poster-ink);font-weight:900;text-underline-offset:5px}
@media(max-width:767px){body .pub-highlights-inner{grid-template-columns:1fr}.pub-highlights-panel{padding:26px 22px}}

/* Keep pub detail typography readable and contained on phone screens. */
@media(max-width:767px){
 .pub-page{max-width:100%;overflow-x:clip}
 .pub-title h1{max-width:100%;font-size:clamp(42px,12vw,56px);line-height:.94;overflow-wrap:break-word;word-break:normal;text-wrap:balance}
 .pub-story h2,.gallery-heading h2,.pub-highlights h2,.pub-answers h2,.related-pubs h2,.hours-panel h2,.route-cta h2{max-width:100%;font-size:clamp(34px,9.5vw,43px);line-height:.98;overflow-wrap:break-word;word-break:normal;text-wrap:balance}
 .pub-answer-list h3{font-size:18px;line-height:1.15}
 .next-pub strong{font-size:clamp(32px,9vw,42px);overflow-wrap:break-word}
 .route-cta{align-items:flex-start;text-align:left}
 .route-cta .primary-button{align-self:flex-start;width:auto;justify-content:flex-start;padding-inline:20px}
 .route-cta>a:last-child{align-self:flex-start;text-align:left}
}
