/* UK Pub Reviews — inherits the theme's fonts and text colour; override the variables to restyle. */
.ukpr-pub, .ukpr-directory {
	--ukpr-accent: #1f5c3f;        /* pub-sign green */
	--ukpr-border: rgba(128, 128, 128, .28);
	--ukpr-radius: 8px;
}

/* Summary */
.ukpr-summary {
	display: grid;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--ukpr-border);
	border-radius: var(--ukpr-radius);
	margin: 0 0 1.25rem;
}
.ukpr-score { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--ukpr-border); }
.ukpr-score-text { font-size: 1.05em; opacity: .9; }
.ukpr-score-num { font-size: 2.4rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.ukpr-score-max { font-size: 1.3rem; font-weight: 600; opacity: .55; }
.ukpr-score-label { margin-left: .3rem; opacity: .7; }
.ukpr-details { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 0; font-size: .95em; }
.ukpr-details dt { font-weight: 600; opacity: .7; margin: 0; }
.ukpr-details dd { margin: 0; }
@media (max-width: 640px) {
	.ukpr-summary { padding: 1rem; }
	.ukpr-details { grid-template-columns: 1fr; gap: 0; }
	.ukpr-details dd { margin-bottom: .6rem; }
}

/* Maps */
.ukpr-map { width: 100%; border-radius: var(--ukpr-radius); border: 1px solid var(--ukpr-border); z-index: 0; }
.ukpr-map--single { height: 340px; margin: 0 0 1.5rem; }
.ukpr-map--directory { height: 460px; margin: 0 0 1.5rem; }
@media (max-width: 640px) { .ukpr-map--single { height: 260px; } .ukpr-map--directory { height: 340px; } }
.ukpr-popup a { font-weight: 600; }
.ukpr-popup-rating { margin-top: .2rem; color: #555; }

.ukpr-description { margin: 0 0 2rem; }
.ukpr-empty { opacity: .75; }

/* Directory */
.ukpr-dir-list { list-style: none; margin: 0; padding: 0; counter-reset: ukpr; }
.ukpr-dir-item {
	counter-increment: ukpr;
	display: grid; grid-template-columns: 2rem 1fr auto; grid-template-areas: "n name pc" "n rating pc";
	gap: .2rem .75rem; align-items: center; padding: .75rem 0; border-top: 1px solid var(--ukpr-border);
}
.ukpr-dir-item::before { content: counter(ukpr); grid-area: n; font-weight: 700; opacity: .45; font-variant-numeric: tabular-nums; }
.ukpr-dir-name { grid-area: name; font-weight: 600; }
.ukpr-dir-rating { grid-area: rating; font-size: .9em; }
.ukpr-dir-postcode { grid-area: pc; font-size: .85em; opacity: .65; white-space: nowrap; }
.ukpr-dir-score { opacity: .75; margin-left: .25rem; }

.ukpr-archive-rating { margin: .25rem 0 .5rem; font-size: .95em; }

/* Category ratings */
.ukpr-categories { list-style: none; margin: 0; padding: 0 0 1rem; border-bottom: 1px solid var(--ukpr-border); display: grid; gap: .45rem; }
.ukpr-category { display: grid; grid-template-columns: 10.5em auto 1fr; align-items: center; gap: .75rem; margin: 0; }
.ukpr-category-label { font-weight: 600; }
.ukpr-category-score { font-size: .85em; opacity: .7; font-variant-numeric: tabular-nums; }
.ukpr-score-driptray { font-size: 1.8rem; font-weight: 700; letter-spacing: -.01em; }

/* Photo gallery */
.ukpr-gallery { margin: 0 0 1.5rem; }
.ukpr-photos { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 140px; }
.ukpr-photo { margin: 0; overflow: hidden; border-radius: 6px; background: rgba(128, 128, 128, .12); }
.ukpr-photo a { display: block; height: 100%; }
.ukpr-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.ukpr-photo a:hover img, .ukpr-photo a:focus-visible img { transform: scale(1.04); }
.ukpr-gallery--n1 .ukpr-photos { grid-template-columns: 1fr; grid-auto-rows: 320px; }
.ukpr-gallery--n2 .ukpr-photos { grid-template-columns: 1fr 1fr; grid-auto-rows: 240px; }
.ukpr-gallery--n3 .ukpr-photos { grid-template-columns: 2fr 1fr; grid-auto-rows: 150px; }
.ukpr-gallery--n3 .ukpr-photo:first-child { grid-row: span 2; }
.ukpr-gallery--n4 .ukpr-photos, .ukpr-gallery--many .ukpr-photos { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 150px; }
.ukpr-gallery--n4 .ukpr-photo:first-child, .ukpr-gallery--many .ukpr-photo:first-child { grid-row: span 2; }
.ukpr-gallery--n4 .ukpr-photo:last-child { grid-column: span 2; }
@media (max-width: 640px) {
	.ukpr-photos, .ukpr-gallery--n3 .ukpr-photos, .ukpr-gallery--n4 .ukpr-photos, .ukpr-gallery--many .ukpr-photos { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; }
	.ukpr-gallery .ukpr-photo:first-child { grid-column: span 2; grid-row: span 2; }
	.ukpr-gallery--n4 .ukpr-photo:last-child { grid-column: auto; }
	.ukpr-gallery--n1 .ukpr-photos { grid-auto-rows: 220px; }
	.ukpr-gallery--n1 .ukpr-photo:first-child { grid-row: auto; }
}

/* Lightbox */
.ukpr-lightbox { border: 0; padding: 0; background: rgba(12, 12, 12, .96); max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; margin: 0; color: #fff; overflow: hidden; }
.ukpr-lightbox::backdrop { background: rgba(10, 10, 10, .6); }
.ukpr-lb-figure { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3.5rem 4rem 2.5rem; box-sizing: border-box; pointer-events: none; }
.ukpr-lb-img { max-width: 100%; max-height: calc(100% - 2rem); object-fit: contain; border-radius: 4px; pointer-events: auto; }
.ukpr-lb-caption { margin-top: .75rem; font-size: .95em; text-align: center; opacity: .9; }
.ukpr-lb-btn { position: fixed; background: rgba(255, 255, 255, .12); color: #fff; border: 0; border-radius: 50%; width: 44px; height: 44px; font-size: 28px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.ukpr-lb-btn:hover, .ukpr-lb-btn:focus-visible { background: rgba(255, 255, 255, .28); }
.ukpr-lb-close { top: 12px; right: 12px; }
.ukpr-lb-prev { left: 12px; top: 50%; transform: translateY(-50%); }
.ukpr-lb-next { right: 12px; top: 50%; transform: translateY(-50%); }
.ukpr-lb-single .ukpr-lb-prev, .ukpr-lb-single .ukpr-lb-next { display: none; }
.ukpr-lb-count { position: fixed; top: 22px; left: 50%; transform: translateX(-50%); font-size: .85em; opacity: .75; }
@media (max-width: 640px) { .ukpr-lb-figure { padding: 3.5rem .5rem 2rem; } .ukpr-lb-prev, .ukpr-lb-next { top: auto; bottom: 12px; transform: none; } }

/* Directory thumbnails + category view */
.ukpr-dir-item { grid-template-columns: 2rem 64px 1fr auto; grid-template-areas: "n thumb name pc" "n thumb rating pc"; }
.ukpr-dir-thumb { grid-area: thumb; width: 64px; height: 64px; border-radius: 6px; overflow: hidden; background: rgba(128, 128, 128, .12); display: block; }
.ukpr-dir-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ukpr-dir-cat { font-weight: 600; margin-right: .2rem; }
.ukpr-dir-overall { display: block; font-size: .9em; opacity: .65; margin-top: .15rem; }
.ukpr-dir-item .ukpr-driptray { display: inline-block; vertical-align: middle; }
@media (max-width: 480px) { .ukpr-dir-item { grid-template-columns: 1.5rem 48px 1fr; grid-template-areas: "n thumb name" "n thumb rating" "n thumb pc"; } .ukpr-dir-thumb { width: 48px; height: 48px; } }
@media (max-width: 420px) { .ukpr-category { grid-template-columns: 1fr auto; } .ukpr-category-score { display: none; } }

/* Reviewer byline */
.ukpr-reviewers { flex-basis: 100%; font-size: .9em; opacity: .75; font-style: italic; }

/* Ownership */
.ukpr-owner-badge { display: inline-block; padding: .05rem .6rem; border-radius: 99px; font-size: .9em; font-weight: 600; text-decoration: none; }
.ukpr-owner-badge--freehouse { background: #1f5c3f; color: #fff; }
a.ukpr-owner-badge--brewery { background: rgba(217, 139, 25, .16); color: inherit; border: 1px solid rgba(217, 139, 25, .55); }
a.ukpr-owner-badge--brewery:hover { background: rgba(217, 139, 25, .3); }
.ukpr-dir-postcode { display: flex; flex-direction: column; align-items: flex-end; gap: .15rem; }
.ukpr-dir-owner { font-size: .95em; }
.ukpr-dir-owner--freehouse { color: #1f5c3f; font-weight: 600; opacity: 1; }
@media (max-width: 480px) { .ukpr-dir-postcode { flex-direction: row; gap: .6rem; align-items: baseline; } }
.ukpr-archive-owner { opacity: .7; }

/* Nearest station */
.ukpr-station-kind { display: inline-block; margin-left: .35rem; font-size: .75em; padding: .05rem .45rem; border-radius: 4px; border: 1px solid var(--ukpr-border); opacity: .8; vertical-align: .1em; }
.ukpr-station-walk { opacity: .7; margin-left: .3rem; }
