/* Smokers Guide Directory – styled after the live smokersguide.com (2016 skin). */
:root {
	--sg-green: #387b36;
	--sg-green-soft: #e8f1e7;
	--sg-skin: #387b36;
	--sg-gold: #f2b01e;
	--sg-grey: #e3e3e3;
	--sg-line: #d6d6d6;
	--sg-muted: #666;
	--sg-dark: #111;
	--sg-radius: 3px;
	--sg-font: "Open Sans", Arial, sans-serif;
}

.sg-shop, .sg-review, .sg-directory, .sg-cards, .sg-review-list, .sg-tiles, .sg-title, .sg-account-shops, .sg-review-form, .sg-shop-form { font-family: var(--sg-font); }

/* ---------- section title: green, centred, uppercase, underlined ---------- */
.sg-title {
	color: var(--sg-green);
	font: 700 14px/1.2 var(--sg-font);
	text-transform: uppercase;
	text-align: center;
	letter-spacing: .02em;
	border-bottom: 1px solid var(--sg-green);
	padding: 0 0 4px;
	margin: 1.6em 0 12px;
}

/* ---------- tile row with round balls ---------- */
.sg-tiles { background: var(--sg-dark); }
.sg-tiles ul { display: flex; flex-wrap: wrap; justify-content: center; list-style: none; margin: 0 auto; padding: 0; max-width: 1280px; }
.sg-tile { flex: 1 1 0; min-width: 96px; max-width: 140px; margin: 0; }
.sg-tile a {
	display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
	height: 108px; padding: 10px 6px 6px; box-sizing: border-box;
	background: var(--sg-tile); color: var(--sg-tile-text);
	font: 600 12px/1.15 var(--sg-font); letter-spacing: 1px; text-align: center; text-decoration: none;
	text-shadow: 2px 2px 2px #000; transition: background .3s;
}
.sg-tile-ball { width: 52px; height: 52px; margin-bottom: 8px; transition: transform .4s ease-out; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .5)); }
.sg-tile a:hover, .sg-tile.is-current a { background: var(--sg-tile-solid); color: #fff; }
.sg-tile a:hover .sg-tile-ball { transform: translateY(-3px) scale(1.12); }
.sg-tile.is-current .sg-tile-label { font-weight: 800; }
@media (max-width: 849px) {
	.sg-tiles ul { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; -webkit-overflow-scrolling: touch; }
	.sg-tile { flex: 0 0 96px; }
	.sg-tile a { height: 96px; }
	.sg-tile-ball { width: 44px; height: 44px; }
}

/* ---------- tags / badges ---------- */
.sg-tag {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 2px 10px 2px 3px; margin: 0 4px 4px 0; border-radius: 99px;
	background: #f1f1f1; color: var(--sg-skin); font-weight: 700; font-size: .85em; text-transform: uppercase; text-decoration: none;
}
.sg-tag:hover { background: var(--sg-skin); color: #fff; }
.sg-ball { width: 22px; height: 22px; border-radius: 50%; flex: none; }
.sg-notice { padding: 10px 14px; border-radius: var(--sg-radius); margin-bottom: 1em; }
.sg-notice-ok { background: var(--sg-green-soft); color: #23571b; }
.sg-notice-error { background: #fdecea; color: #8a1c13; }
.sg-badge { background: #d63638; color: #fff; border-radius: 99px; padding: 0 7px; font-size: 11px; }

/* stars: 5 stars for a 10-point score */
.sg-stars { position: relative; display: inline-block; font-size: 1.05em; line-height: 1; letter-spacing: 2px; color: #cfcfcf; vertical-align: middle; }
.sg-stars::before { content: "★★★★★"; }
.sg-stars > span { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--sg-gold); white-space: nowrap; }
.sg-stars > span::before { content: "★★★★★"; }

/* ---------- shop page ---------- */
.sg-shop-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 1em; }
.sg-shop-head .sg-logo { width: 80px; height: 80px; object-fit: contain; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .35); background: #fff; }
.sg-shop-head p { margin: 0; }
.sg-shop-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; margin-bottom: 1.5em; }
@media (max-width: 720px) { .sg-shop-grid { grid-template-columns: 1fr; } }
.sg-shop-info { background: var(--sg-grey); padding: 14px 16px; border-radius: var(--sg-radius); }
.sg-shop-info strong { color: var(--sg-skin); text-transform: uppercase; font-size: .85em; letter-spacing: .03em; }
.sg-map { width: 100%; min-height: 280px; border-radius: var(--sg-radius); z-index: 0; }
.sg-hours table { width: 100%; margin: .3em 0 0; font-size: .95em; }
.sg-hours th, .sg-hours td { padding: 2px 0; border: 0; font-weight: normal; background: none; }
.sg-hours th { color: var(--sg-muted); width: 45%; }
.sg-hours .sg-today th, .sg-hours .sg-today td { font-weight: 700; color: #000; }

/* ---------- scores ---------- */
.sg-scorebox { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; padding: 16px; background: var(--sg-grey); border-radius: var(--sg-radius); margin-bottom: 1.5em; }
.sg-big-score { font: 800 2.6em/1 var(--sg-font); color: var(--sg-skin); min-width: 90px; }
.sg-big-score small { font-size: .4em; color: var(--sg-muted); }
.sg-big-score span { display: block; font-size: .3em; font-weight: normal; color: var(--sg-muted); margin-top: 6px; }
.sg-bars { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 220px; }
.sg-bars li { display: grid; grid-template-columns: 40% 1fr 2.5em; gap: 10px; align-items: center; margin: 0 0 9px; font-size: .9em; }
.sg-bar { height: 16px; border-radius: 8px; background: #fff; overflow: hidden; box-shadow: inset 0 1px 3px rgba(0, 0, 0, .18); }
.sg-bar > span { display: block; height: 100%; border-radius: 8px; background: var(--sg-skin); background-image: linear-gradient(rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 55%, rgba(0, 0, 0, .08)); }
.sg-bar-val { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------- reviews ---------- */
.sg-review-meta { color: var(--sg-muted); }
.sg-review-meta a:not(.sg-tag) { color: var(--sg-skin); font-weight: 700; }
.sg-sections dt { color: var(--sg-skin); font-weight: 800; text-transform: uppercase; font-size: .85em; margin-top: 1em; }
.sg-sections dd { margin: 0; }

/* member reviews like the live sidebar */
.sg-review-list { list-style: none; margin: 0 0 1.5em; padding: 0; }
.sg-review-list li { display: flex; gap: 12px; align-items: flex-start; background: var(--sg-grey); padding: 8px 10px; margin: 0 0 6px; border-radius: var(--sg-radius); }
.sg-review-list .sg-avatar { width: 56px; height: 56px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); flex: none; background: #fff; }
.sg-rl-body { min-width: 0; }
.sg-review-list p { margin: 0 0 2px; }
.sg-rl-head a { color: #000; font: 800 .95em/1.25 var(--sg-font); }
.sg-rl-meta { color: #555; font-size: .85em; }
.sg-rl-shop { font-weight: 700; color: var(--sg-green); }
.sg-rl-text { font-size: .92em; margin-top: 4px !important; }
.sg-review-list.is-compact li { padding: 6px 8px; }
.sg-review-list.is-compact .sg-rl-score { display: none; }

/* product review cards with diagonal ribbon */
.sg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; margin-bottom: 1.5em; }
.sg-card { display: flex; flex-direction: column; background: var(--sg-grey); border-radius: var(--sg-radius); overflow: hidden; color: inherit; text-decoration: none; transition: box-shadow .15s, transform .15s; }
.sg-card:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .18); transform: translateY(-2px); }
.sg-card-media { position: relative; overflow: hidden; display: block; }
.sg-card img, .sg-card-noimg { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #ccc; display: block; }
.sg-ribbon {
	position: absolute; top: 22px; left: -42px; width: 160px; transform: rotate(-45deg);
	background: var(--sg-skin); color: #fff; text-align: center; font: 700 10px/22px var(--sg-font);
	text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 2px 4px rgba(0, 0, 0, .35); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 30px;
}
.sg-card-body { padding: 8px 10px 10px; display: flex; flex-direction: column; gap: 3px; }
.sg-card-body strong { font: 800 1em/1.2 var(--sg-font); text-transform: uppercase; color: var(--sg-skin); }
.sg-card-shop { font-size: .85em; color: #555; }

/* ---------- directory ---------- */
.sg-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1em; background: var(--sg-grey); padding: 10px; border-radius: var(--sg-radius); }
.sg-filter input, .sg-filter select { flex: 1 1 180px; margin: 0; }
.sg-filter .button { margin: 0; background: var(--sg-green); color: #fff; }
.sg-count { color: var(--sg-muted); margin: 1em 0 .5em; }
.sg-shop-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.sg-shop-item { display: flex; gap: 12px; padding: 8px; background: var(--sg-grey); border-radius: var(--sg-radius); color: inherit; text-decoration: none; border-left: 4px solid var(--sg-skin); }
.sg-shop-item:hover { background: #d9d9d9; }
.sg-shop-item img:not(.sg-ball), .sg-si-noimg { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; flex: none; background: #ccc; border: 2px solid #fff; }
.sg-si-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sg-si-body strong { color: #000; font-weight: 800; }
.sg-si-type { display: flex; align-items: center; gap: 4px; font-size: .8em; font-weight: 700; text-transform: uppercase; color: var(--sg-skin); }
.sg-si-type .sg-ball { width: 18px; height: 18px; }
.sg-si-addr { font-size: .85em; color: var(--sg-muted); }
.sg-pager { margin-top: 1.5em; }
.sg-pager .page-numbers { padding: 4px 10px; }

/* ---------- forms ---------- */
.sg-write summary, .sg-claim summary { cursor: pointer; margin-bottom: 1em; }
.sg-write summary.button { background: var(--sg-green); color: #fff; }
.sg-claim, .sg-claim-note, .sg-owner-note { margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--sg-line); color: var(--sg-muted); }
.sg-review-form label, .sg-shop-form label { display: block; font-weight: 600; margin-bottom: 3px; }
.sg-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 16px; }
.sg-fields input { width: 100%; }
.sg-hours-edit p { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 8px; margin: 0 0 6px; }
.sg-hours-edit label { margin: 0; }
.sg-pin-map { height: 300px; border-radius: var(--sg-radius); margin-bottom: 8px; }
.sg-coords label { display: inline-block; font-weight: normal; margin-right: 12px; }
.sg-coords input { width: 140px; display: inline-block; }
.sg-score-edit { margin-bottom: 10px; }
.sg-score-label { display: block; font-weight: 600; }
.sg-score-scale { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.sg-score-scale small { color: var(--sg-muted); font-size: .8em; }
.sg-dot { display: inline-block !important; margin: 0 !important; font-weight: normal !important; }
.sg-dot input { position: absolute; opacity: 0; }
.sg-dot span { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid var(--sg-line); border-radius: 50%; cursor: pointer; font-size: .85em; background: #fff; }
.sg-dot input:checked + span { background: var(--sg-skin); border-color: var(--sg-skin); color: #fff; }
.sg-dot input:focus-visible + span { outline: 2px solid var(--sg-skin); outline-offset: 2px; }
.sg-review-form.sg-is-shop .sg-product-only { display: none; }
.sg-hp { position: absolute !important; left: -9999px; }
.sg-suggest { list-style: none; margin: 0; padding: 0; border: 1px solid var(--sg-line); border-top: 0; max-height: 220px; overflow: auto; background: #fff; position: relative; z-index: 5; }
.sg-suggest:empty { display: none; }
.sg-suggest li { padding: 6px 10px; margin: 0; cursor: pointer; }
.sg-suggest li:hover { background: var(--sg-green-soft); }
.sg-table { width: 100%; }
.sg-tabs { margin-bottom: 1em; }
.sg-tabs a { margin-right: 12px; }
.sg-tabs a.active { font-weight: 700; }
.sg-social-login { margin: 1em 0; }
.sg-or { text-align: center; color: var(--sg-muted); font-size: .9em; margin: 0 0 .5em; }
.sg-login-note { padding: 14px; background: var(--sg-grey); border-radius: var(--sg-radius); }

/* ---------- admin ---------- */
.wp-admin .sg-fields input, .wp-admin .sg-hours-edit input { width: 100%; }
.wp-admin .sg-danger { color: #b32d2e; }

/* ---------- featured posts column (live "FEATURED") ---------- */
.sg-posts { display: flex; flex-direction: column; gap: 10px; }
.sg-post { display: grid; grid-template-columns: 46% 1fr; gap: 14px; background: var(--sg-grey); padding: 8px; border-radius: var(--sg-radius); }
.sg-post.is-lead { grid-template-columns: 1fr; }
.sg-post-media { position: relative; overflow: hidden; display: block; }
.sg-post-media img, .sg-post-media .sg-card-noimg { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.sg-post-body h4 { margin: 0 0 6px; font: 800 1.05em/1.25 var(--sg-font); text-transform: uppercase; }
.sg-post-body h4 a { color: #333; }
.sg-post.is-lead .sg-post-body h4 a { color: var(--sg-skin); }
.sg-post-body p { margin: 0 0 8px; font-size: .95em; }
.sg-more { float: right; border: 1px solid #ccc; background: #fff; color: #222; padding: 2px 10px; font-size: .85em; text-transform: uppercase; }
@media (max-width: 549px) { .sg-post { grid-template-columns: 1fr; } }

/* ---------- post kinds: featured / news / article ---------- */
.single-post .entry-title { color: var(--sg-skin); text-transform: uppercase; font-weight: 800; }
.single-post .entry-category a { color: var(--sg-skin); }
.sg-kind-featured .entry-image img { width: 100%; max-height: 520px; object-fit: cover; }
.sg-kind-news .entry-meta, .sg-kind-news .entry-date { font-weight: 700; color: var(--sg-skin); }
.sg-kind-news .entry-image { max-width: 420px; float: right; margin: 0 0 1em 1.5em; }
.sg-kind-article .entry-content { font-size: 1.05em; line-height: 1.7; max-width: 760px; }

/* Shop / review pages: our own layout replaces the theme's big image + date badge. */
.single-sg_shop .entry-image, .single-sg_review .entry-image,
.single-sg_shop .badge.post-date, .single-sg_review .badge.post-date,
.single-sg_shop .entry-divider, .single-sg_review .entry-divider { display: none; }
.single-sg_shop .entry-title, .single-sg_review .entry-title { color: var(--sg-skin); text-transform: uppercase; font-weight: 800; text-align: left; }
.single-sg_shop .entry-header-text, .single-sg_review .entry-header-text { text-align: left; padding-bottom: 0; }
.sg-photo { float: right; width: 42%; max-width: 420px; height: auto; margin: 0 0 1em 1.5em; border-radius: var(--sg-radius); }
.sg-description::after { content: ""; display: table; clear: both; }
@media (max-width: 549px) { .sg-photo { float: none; width: 100%; max-width: none; margin: 0 0 1em; } }

/* ---------- category pages (UX Block) ---------- */
.sg-cat-header { display: flex; align-items: center; gap: 16px; margin: 10px 0 6px; }
.sg-cat-ball { width: 72px; height: 72px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .4)); }
.sg-cat-title { color: var(--sg-skin); font: 800 26px/1.1 var(--sg-font); text-transform: uppercase; margin: 0; }
.sg-cat-desc { color: var(--sg-muted); }
.sg-cat-desc p { margin: 4px 0 0; }

/* Ribbons on Flatsome "Blog posts" boxes: add class sg-ribbons to the element. */
.box-blog-post .sg-ribbon { display: none; }
.sg-ribbons .box-blog-post { position: relative; overflow: hidden; }
.sg-ribbons .box-blog-post .box-text { position: static; }
.sg-ribbons .box-blog-post .sg-ribbon { display: block; z-index: 3; }
.sg-ribbons .box-blog-post .cat-label { display: none; }
.box-blog-post .sg-ribbon-label { display: none; }
.sg-ribbons .box-blog-post .sg-ribbon-label {
	display: inline-block; margin: 0 0 6px; padding: 2px 8px; border-radius: 2px;
	background: var(--sg-skin); color: #fff; font: 700 10px/1.4 var(--sg-font); text-transform: uppercase; letter-spacing: .04em;
}
/* Mega-menu dropdowns (UX Blocks in the grey bar) */
.nav-dropdown .sg-mega .box-blog-post .box-text { padding: 6px 2px; }
.nav-dropdown .sg-mega .post-title { font-size: .85em; }

/* =====================================================================
   Compact pass – less whitespace, tighter type, subtle motion
   ===================================================================== */

/* Grey bar: search keeps its distance from the menu and stays compact */
.header-bottom .flex-right.flex-grow { flex: 0 0 auto; margin-left: 28px; }
.header-bottom .searchform-wrapper,
.header-bottom .header-search-form { width: 260px; max-width: 260px; }
.header-bottom .searchform .search-field {
	height: 32px; min-height: 32px; border: 0; border-radius: 99px 0 0 99px;
	background: rgba(255, 255, 255, .92); padding: 0 14px; font-size: 13px; box-shadow: none;
}
.header-bottom .searchform .button.icon { height: 32px; min-height: 32px; border-radius: 0 99px 99px 0; background: var(--sg-green); margin: 0; }
.header-bottom .nav > li > a { padding-left: 2px; padding-right: 2px; }
.header-bottom .nav-spacing-medium > li { margin: 0 9px; }

/* Mega-menu dropdowns */
.nav-dropdown .sg-mega { padding: 4px 6px 0; }
.nav-dropdown .sg-mega > .col { padding-bottom: 8px; }
.nav-dropdown .ux-menu-title { font: 800 12px/1.2 var(--sg-font); color: var(--sg-green); letter-spacing: .06em; padding: 2px 0 6px; margin: 0; }
.nav-dropdown .ux-menu-link__link { min-height: 0; padding: 5px 0; font-size: 13px; color: #333; }
.nav-dropdown .ux-menu-link__link:hover { color: var(--sg-green); padding-left: 4px; }
.nav-dropdown .ux-menu-link__link { transition: padding .15s, color .15s; }
.nav-dropdown .ux-menu.stack-col > div, .nav-dropdown .ux-menu-link { border-color: #eee; }
.nav-dropdown .sg-mega .col.post-item { padding: 0 6px 6px; }
.nav-dropdown .sg-mega .box-blog-post .box-text { padding: 6px 2px 2px; }
.nav-dropdown .sg-mega .post-title { font-size: 12px; line-height: 1.25; }
.nav-dropdown .sg-mega .is-divider { display: none; }
.nav-dropdown .sg-mega .post-meta { font-size: 11px; margin: 2px 0 0; }

/* Blog posts boxes inside sg-ribbons elements */
.sg-ribbons .col.post-item { padding-bottom: 12px; }
.sg-ribbons .box-blog-post { background: #fff; border-radius: 4px; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); transition: box-shadow .2s, transform .2s; }
.sg-ribbons .box-blog-post:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .18); transform: translateY(-2px); }
.sg-ribbons .box-blog-post .box-image img { transition: transform .5s; }
.sg-ribbons .box-blog-post:hover .box-image img { transform: scale(1.05); }
.sg-ribbons .box-blog-post .box-text { padding: 10px 12px 12px !important; }
.sg-ribbons .box-blog-post .is-divider { display: none; }
.sg-ribbons .box-blog-post .post-title { font: 800 14px/1.25 var(--sg-font); margin: 0 0 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sg-ribbons .box-blog-post .from_the_blog_excerpt { font-size: 13px; line-height: 1.45; margin: 0; color: #555; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sg-ribbons .box-blog-post .button { border: 0; padding: 0; margin: 6px 0 0; min-height: 0; line-height: 1.4; font-size: 11px; color: var(--sg-green); background: none; }
.sg-ribbons .box-blog-post .button:hover { text-decoration: underline; box-shadow: none; }
.sg-ribbons .box-blog-post .post-meta { font-size: 11px; color: #888; margin: 0 0 2px; }
.sg-ribbons .box-vertical .box-image { border-radius: 4px 0 0 4px; overflow: hidden; }
.sg-ribbons .sg-ribbon { top: 18px; left: -46px; font-size: 9px; line-height: 20px; }

/* Section titles: a bit tighter */
.sg-title { margin: 1.1em 0 10px; }
.row-small > .col { padding-bottom: 12px; }

/* Member reviews: compact list */
.sg-review-list li { gap: 10px; padding: 6px 8px; margin-bottom: 4px; align-items: center; transition: background .15s; }
.sg-review-list li:hover { background: #d8d8d8; }
.sg-review-list .sg-avatar { width: 42px; height: 42px; border-width: 2px; }
.sg-rl-head a { font-size: 13px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sg-rl-meta { font-size: 12px; line-height: 1.3; }
.sg-review-list p { margin: 0; }

/* Review cards */
.sg-cards { gap: 10px; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); }
.sg-card { background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); border-radius: 4px; }
.sg-card img, .sg-card-noimg { aspect-ratio: 1 / 1; transition: transform .5s; }
.sg-card:hover img { transform: scale(1.06); }
.sg-card-body { padding: 7px 9px 9px; gap: 2px; }
.sg-card-body strong { font-size: 12.5px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sg-card-shop { font-size: 11px; }
.sg-card .sg-stars { font-size: .85em; }

/* Directory items */
.sg-shop-list { gap: 8px; }
.sg-shop-item { padding: 6px 8px; align-items: center; transition: background .15s, transform .15s; }
.sg-shop-item:hover { transform: translateX(2px); }
.sg-shop-item img:not(.sg-ball), .sg-si-noimg { width: 56px; height: 56px; }

/* Dropdown news: shorter images, smaller titles */
.nav-dropdown .sg-mega .box-image .image-cover { padding-top: 46% !important; }
.nav-dropdown .sg-mega .box-blog-post .post-title { font-size: 12px !important; line-height: 1.25; -webkit-line-clamp: 2; }
.nav-dropdown .sg-mega .box-blog-post .box-text { padding: 6px 8px 8px !important; }

/* Event details */
.sg-event-box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; background: var(--sg-grey); border-left: 4px solid var(--sg-skin); padding: 12px 14px; border-radius: 4px; margin: 0 0 1.2em; }
.sg-event-box dl { margin: 0; display: grid; grid-template-columns: 80px 1fr; gap: 4px 10px; }
.sg-event-box dt { font-weight: 800; text-transform: uppercase; font-size: 11px; color: var(--sg-skin); padding-top: 2px; }
.sg-event-box dd { margin: 0; }
.sg-past { background: #999; color: #fff; font-size: 10px; text-transform: uppercase; padding: 1px 6px; border-radius: 2px; margin-left: 4px; }
@media (max-width: 640px) { .sg-event-box { grid-template-columns: 1fr; } }
.sg-links { columns: 2 240px; }

/* Directory: logo / section ball when a shop has no photo */
.sg-shop-item img.sg-si-logo { object-fit: contain; background: #fff; }
.sg-shop-item img.sg-si-ball { border: 0 !important; background: none !important; border-radius: 0 !important; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .3)); opacity: .9; }

/* =====================================================================
   Old-site character: section colouring, heavy headings, motion
   ===================================================================== */
:root { --sg-accent: var(--sg-skin); }

/* Section pages: headings, underlines, post titles and buttons in the section colour */
.sg-section .sg-title { color: var(--sg-skin); border-bottom-color: var(--sg-accent); }
.sg-section .entry-title, .sg-section .page-title,
.sg-section .box-blog-post .post-title, .sg-section .box-blog-post .post-title a,
.sg-section .sg-card-body strong, .sg-section .sg-rl-shop,
.sg-section .entry-content h1, .sg-section .entry-content h2, .sg-section .entry-content h3, .sg-section .entry-content h4 { color: var(--sg-skin); }
.sg-section .sg-ribbons .box-blog-post .button, .sg-section .sg-more { color: var(--sg-accent); }
.sg-section .sg-filter .button, .sg-section .sg-write summary.button, .sg-section .button.primary { background: var(--sg-accent); border-color: var(--sg-accent); }
.sg-section .sg-shop-item { border-left-color: var(--sg-accent); }
.sg-section .sg-bar > span { background-color: var(--sg-accent); }
.sg-section .badge-inner { background-color: var(--sg-accent) !important; }
.sg-section .header-bottom { box-shadow: inset 0 -3px 0 var(--sg-accent); }

/* Heavy "brutalist" headings with a hard offset shadow */
.sg-cat-title, .single-post .entry-title, .single-sg_shop .entry-title, .single-sg_review .entry-title, .page .entry-title {
	font-family: var(--sg-font); font-weight: 800; text-transform: uppercase; letter-spacing: -.5px; line-height: 1.02;
	text-shadow: 3px 3px 0 rgba(0, 0, 0, .12);
}
.sg-cat-title { font-size: clamp(30px, 5vw, 52px); }
.sg-cat-header { padding: 6px 0 4px; border-bottom: 4px solid var(--sg-accent); margin-bottom: 4px; }
.sg-cat-ball { width: 84px; height: 84px; }
.sg-title { letter-spacing: .06em; font-weight: 800; }
.box-blog-post .post-title { letter-spacing: -.2px; }

/* Brutal captions on overlay / image strips */
.sg-strip .box-overlay .post-title, .sg-strip .box-shade .post-title, .sg-strip .box-text .post-title {
	font: 900 17px/1.05 var(--sg-font); text-transform: uppercase; color: #fff !important; letter-spacing: .5px;
	text-shadow: 2px 2px 0 #000, 0 0 12px rgba(0, 0, 0, .6);
}
.sg-strip .box-blog-post .box-text { padding: 10px 12px !important; }
.sg-strip .post-meta, .sg-strip .is-divider, .sg-strip .from_the_blog_excerpt { display: none; }
.sg-strip .col { padding: 0 2px !important; }
.sg-strip .box-image img { transition: transform 1.2s ease; }
.sg-strip .box-blog-post:hover .box-image img { transform: scale(1.08); }
.sg-strip { background: #111; padding: 2px 0; margin-bottom: 6px; }

/* Current tile: bigger ball, like the live site */
.sg-tile.is-current .sg-tile-ball { transform: scale(1.18) translateY(-2px); }
.sg-tile.is-current a { box-shadow: inset 0 -4px 0 rgba(255, 255, 255, .5); }

/* Motion (only when JS confirmed motion is OK) */
@media (prefers-reduced-motion: no-preference) {
	.sg-motion .sg-tile { animation: sgTileIn .55s cubic-bezier(.2, .9, .3, 1.3) both; animation-delay: var(--sg-delay, 0ms); }
	@keyframes sgTileIn { from { transform: translateY(-14px); } to { transform: none; } }
	.sg-tile-ball { animation: sgFloat 6s ease-in-out infinite; animation-delay: calc(var(--sg-delay, 0ms) * 3); }
	.sg-tile a:hover .sg-tile-ball { animation: sgBounce .6s ease; }
	@keyframes sgFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
	@keyframes sgBounce { 0% { transform: translateY(0) scale(1); } 40% { transform: translateY(-8px) scale(1.15); } 70% { transform: translateY(-2px) scale(1.08); } 100% { transform: translateY(-3px) scale(1.12); } }

	.sg-motion .sg-title, .sg-motion .sg-card, .sg-motion .sg-shop-item, .sg-motion .sg-review-list li,
	.sg-motion .sg-scorebox, .sg-motion .sg-shop-info, .sg-motion .sg-event-box, .sg-motion .sgb-item,
	.sg-motion .sg-cat-header, .sg-motion .box-blog-post {
		opacity: 0; transform: translateY(18px);
		transition: opacity .55s ease, transform .55s cubic-bezier(.2, .8, .3, 1), box-shadow .2s;
		transition-delay: var(--sg-delay, 0ms);
	}
	.sg-motion .sg-in, .sg-motion .nav-dropdown .box-blog-post { opacity: 1 !important; transform: none !important; }
	.sg-motion .sg-card.sg-in:hover, .sg-motion .sg-ribbons .box-blog-post.sg-in:hover { transform: translateY(-3px) !important; }

	/* Section title underline grows from the centre */
	.sg-title { position: relative; border-bottom-color: transparent !important; }
	.sg-title::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: -1px; height: 2px; background: var(--sg-accent); transition: left .7s ease, right .7s ease; transition-delay: calc(var(--sg-delay, 0ms) + 150ms); }
	.sg-title.sg-in::after, html:not(.sg-motion) .sg-title::after { left: 0; right: 0; }

	.sg-cat-ball { animation: sgSpinIn .9s cubic-bezier(.2, .9, .3, 1.2) both; }
	@keyframes sgSpinIn { from { opacity: 0; transform: rotate(-200deg) scale(.4); } to { opacity: 1; transform: none; } }
	.sg-stars > span { animation: sgFill 1.2s ease both; }
	@keyframes sgFill { from { width: 0; } }
	/* Rating bars fill one after another once the score box scrolls into view, with a slight settle */
	.sg-motion .sg-bar > span { animation: sgBar 1.5s cubic-bezier(.22, 1.12, .36, 1) .35s both paused; }
	.sg-motion .sg-scorebox.sg-in .sg-bar > span { animation-play-state: running; }
	.sg-bars li:nth-child(2) .sg-bar > span { animation-delay: .47s; }
	.sg-bars li:nth-child(3) .sg-bar > span { animation-delay: .59s; }
	.sg-bars li:nth-child(4) .sg-bar > span { animation-delay: .71s; }
	.sg-bars li:nth-child(5) .sg-bar > span { animation-delay: .83s; }
	.sg-bars li:nth-child(6) .sg-bar > span { animation-delay: .95s; }
	.sg-bars li:nth-child(n+7) .sg-bar > span { animation-delay: 1.07s; }
	@keyframes sgBar { from { width: 0; } }
}

.sg-motion .sg-now { transition: none !important; }
/* Image strip spans the full width (Flatsome rows are capped at the site width) */
.sg-strip-row .row.sg-strip, .sg-strip-row .row-slider { max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.sg-strip-row > .col { padding: 0 !important; }
.sg-strip .box-overlay .box-text { background: linear-gradient(to top, rgba(0, 0, 0, .85), rgba(0, 0, 0, 0)); }

/* Footer link lists (widgets) */
.sg-footer-links { list-style: none; margin: 0; padding: 0; columns: 2 160px; }
.sg-footer-links li { margin: 0 0 6px; break-inside: avoid; }
.sg-footer-links a { color: #ccc; font-size: 13px; }
.sg-footer-links a:hover { color: #fff; text-decoration: underline; }
.footer-1 .widget-title, .footer-2 .widget-title { color: #fff; letter-spacing: .08em; }
/* Sidebar widgets: no extra box padding around our blocks */
#secondary .widget_text .sg-title:first-child { margin-top: 0; }

/* Shops / reviews are not blog posts: no "posted in", author box or prev/next */
.single-sg_shop .entry-meta, .single-sg_shop .entry-author, .single-sg_shop .author-box, .single-sg_shop .navigation-post, .single-sg_shop .nav-previous, .single-sg_shop .nav-next, .single-sg_shop footer.entry-meta,
.single-sg_review .entry-author, .single-sg_review .author-box, .single-sg_review footer.entry-meta { display: none !important; }
/* Strip captions stay white on section pages too */
.sg-section .sg-strip .post-title, .sg-section .sg-strip .post-title a, .sg-strip .post-title a { color: #fff !important; }

/* =====================================================================
   Old section pages: region switch, grey-bar dropdowns, post columns
   ===================================================================== */

/* Region switch next to the logo ("Amsterdam ▾") */
.sg-region { position: relative; display: inline-block; font-family: var(--sg-font); }
.sg-region-btn {
	display: inline-flex; align-items: center; gap: 10px; margin: 0; min-height: 0; height: 26px; padding: 0 0 0 10px;
	background: #222; border: 1px solid #444; border-radius: 3px; color: #fff; font: 700 12px/24px var(--sg-font); text-transform: none; letter-spacing: 0;
}
.sg-region-caret { display: inline-block; width: 24px; height: 24px; border-left: 1px solid #444; position: relative; }
.sg-region-caret::after { content: ""; position: absolute; top: 10px; left: 8px; border: 4px solid transparent; border-top-color: #ddd; }
.sg-region-list { display: none; position: absolute; top: 100%; left: 0; z-index: 30; min-width: 150px; margin: 2px 0 0; padding: 4px 0; list-style: none; background: #fff; border-radius: 3px; box-shadow: 0 6px 16px rgba(0, 0, 0, .35); }
.sg-region:hover .sg-region-list, .sg-region:focus-within .sg-region-list, .sg-region.is-open .sg-region-list { display: block; }
.sg-region-list li { margin: 0; }
.sg-region-list a { display: block; padding: 5px 14px; color: #222; font-size: 13px; }
.sg-region-list a:hover, .sg-region-list a.is-current { background: #eee; color: var(--sg-green); font-weight: 700; }

/* Grey-bar dropdowns like the old site: grey link column + white news panel */
.header-bottom .nav > li.has-dropdown:hover > a, .header-bottom .nav > li.has-dropdown.current-dropdown > a { background: #222; color: #fff; }
.header-bottom .nav-dropdown:has(.sg-mega2) { padding: 0 !important; border: 0; border-radius: 0; background: #bbb; box-shadow: 0 8px 18px rgba(0, 0, 0, .35); }
.nav-dropdown .sg-mega2 { display: flex; margin: 0 !important; padding: 0 !important; max-width: none; width: auto; }
.nav-dropdown .sg-mega2 > .col { padding: 0 !important; flex: 0 0 auto; max-width: none; width: auto; }
.nav-dropdown .sg-mega2 > .col > .col-inner { padding: 0; }
.sg-mega-links { list-style: none; margin: 0; padding: 8px 18px 8px 0; width: 313px; background: #bbb; }
.sg-mega-links li { margin: 0; }
.sg-mega-links a { display: flex; align-items: center; gap: 6px; padding: 4px 14px; color: #111; font: 700 13.3px/16px var(--sg-font); text-transform: none; letter-spacing: 0; }
.sg-mega-links a::after { content: "»"; color: #666; margin-left: 2px; }
.sg-mega-links a:hover { color: #fff; background: rgba(0, 0, 0, .25); }
.sg-mega-links img, .sg-mega-noicon { width: 22px; height: 22px; flex: none; }
.sg-mega-posts { width: 300px; min-height: 100%; background: #fff; padding: 3px 5px 5px 0; }
.sg-mega-post { display: flex; gap: 8px; padding: 3px 0; color: #333; }
.sg-mega-post img { width: 90px; height: 80px; object-fit: cover; flex: none; padding: 0 0 0 6px; }
.sg-mega-cat { display: block; color: #f00; font: 600 14.5px/1.1 var(--sg-font); text-transform: uppercase; padding: 2px 0 4px; }
.sg-mega-title { display: block; color: #333; font: 600 13.3px/1.2 var(--sg-font); }
.sg-mega-post:hover .sg-mega-title { text-decoration: underline; }
@media (max-width: 849px) { .nav-dropdown .sg-mega2 { flex-direction: column; } .sg-mega-links, .sg-mega-posts { width: 100%; } }

/* Section page grid (2 : 1 : 1 like the old site) */
.sg-old .sg-title:first-child { margin-top: .6em; }
.sg-map-row .sg-map { border-radius: 0; min-height: 0; }
.sg-map-row > .col { padding: 0 !important; }
.sg-map-row { margin: 6px 0 4px !important; max-width: none !important; }

/* Post columns: grey boxes, image left, title in the section colour */
.sg-posts { gap: 0; background: var(--sg-grey); padding: 8px; border-radius: 0; }
.sg-post { background: none; padding: 0 0 12px; border-radius: 0; gap: 16px; }
.sg-post:last-child { padding-bottom: 0; }
.sg-post-media { overflow: hidden; }
.sg-post-media .sg-ribbon { top: 18px; left: -48px; font-size: 9px; line-height: 20px; background: var(--sg-accent, var(--sg-skin)); }
.sg-post-body h4 { font-size: 14.5px; line-height: 1.3; margin: 0 0 6px; }
.sg-post-body h4 a, .sg-post.is-lead .sg-post-body h4 a { color: var(--sg-skin); }
.sg-post-body p { font-size: 14px; line-height: 1.45; color: #333; }
.sg-post.is-lead .sg-post-media img, .sg-post.is-lead .sg-post-media .sg-card-noimg { aspect-ratio: 16 / 9; object-fit: cover; }
.sg-posts.is-lead { padding: 0; background: none; }
.sg-posts.is-lead .sg-post-body p { overflow: hidden; }
.sg-more { float: right; border: 1px solid var(--sg-accent); color: #222 !important; background: #fff; padding: 2px 8px; font-size: 13px; line-height: 1.5; }
.sg-more:hover { background: var(--sg-accent); color: #fff !important; }
.sg-post-titles { list-style: none; margin: 0 0 1em; padding: 0; }
.sg-post-titles li { margin: 0; padding: 4px 0; border-bottom: 1px solid #eee; }
.sg-post-titles a { color: var(--sg-skin); font: 700 13px/1.3 var(--sg-font); }

/* SmokersGuide TV */
.sg-tv { position: relative; aspect-ratio: 16 / 9; background: #000; }
.sg-tv iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Review pages: type buttons + shop filter, compact cards (image left) */
.sg-review-nav { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px; margin: 0 0 1em; }
.sg-review-tabs { display: flex; flex-wrap: wrap; gap: 2px; list-style: none; margin: 0; padding: 0; flex: 1 1 520px; }
.sg-review-tabs li { margin: 0; }
.sg-review-tabs a { display: block; padding: 4px 9px; background: #5c2a63; color: #fff; font: 400 13px/1.5 var(--sg-font); border-radius: 2px; }
.sg-review-tabs a.is-current, .sg-review-tabs a:hover { background: var(--sg-accent); }
.sg-review-tabs a.is-current::after { content: " ✓"; }
.sg-review-shop { flex: 0 1 300px; margin: 0; }
.sg-review-shop select { margin: 0; }
.sg-cards.is-compact { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 4px; }
.sg-cards.is-compact .sg-card { flex-direction: row; background: var(--sg-grey); box-shadow: none; border-radius: 0; }
.sg-cards.is-compact .sg-card:hover { transform: none; background: #d8d8d8; }
.sg-cards.is-compact .sg-card-media { flex: 0 0 50%; }
.sg-cards.is-compact .sg-card img, .sg-cards.is-compact .sg-card-noimg { aspect-ratio: 16 / 10.5; height: 100%; }
.sg-cards.is-compact .sg-ribbon { display: none; }
.sg-cards.is-compact .sg-card-body { flex: 1; align-items: center; text-align: center; justify-content: flex-start; padding: 6px 6px; }
.sg-cards.is-compact .sg-card-body strong { text-transform: none; font-size: 14px; color: #333; }
.sg-cards.is-compact .sg-card-shop { font-size: 12px; margin: 4px 0 2px; }
.sg-cards.is-compact .sg-stars { font-size: 1.15em; }
.sg-review-column .sg-cards.is-compact { grid-template-columns: 1fr; }
.sg-show-all { text-align: center; margin: 4px 0 1.2em; }
.sg-btn-outline { display: inline-block; border: 1px solid var(--sg-accent); padding: 2px 8px; color: #222; font-size: 13px; text-transform: uppercase; background: #fff; }
.sg-btn-outline:hover { background: var(--sg-accent); color: #fff; }
/* Grey bar items: full-height blocks so the open item turns dark like the old menu */
.header-bottom .nav-spacing-medium > li, .header-bottom .nav > li { margin: 0; }
.header-bottom .nav > li > a { padding: 0 12px; align-self: stretch; display: flex; align-items: center; }
.header-bottom .header-nav-main { align-self: stretch; }
.header-bottom .header-nav-main > li { display: flex; }
/* Section pages keep their h1 for search engines only */
.row.sg-seo-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; padding: 0; }

/* Map balloon on hover, like the old ".infoballon" */
.leaflet-tooltip.sg-balloon-tip { padding: 0; background: none; border: 0; box-shadow: none; white-space: normal; }
.leaflet-tooltip.sg-balloon-tip::before { display: none; }
.sg-balloon {
	position: relative; width: 260px; min-height: 70px; padding: 6px 30px 6px 6px; box-sizing: border-box;
	background: #fff; border: 4px solid var(--sg-b, var(--sg-green)); border-radius: 4px; box-shadow: 0 1px 6px rgba(80, 80, 80, .7);
	font: 13px/1.3 var(--sg-font); color: #000;
}
/* Large arrow like the old balloon: coloured outer triangle, white inner one */
.sg-balloon::before, .sg-balloon::after { content: ""; position: absolute; left: 50%; margin-left: -20px; width: 0; height: 0; border: 20px solid transparent; border-bottom: 0; pointer-events: none; }
.sg-balloon::before { bottom: -24px; border-top: 20px solid var(--sg-b, var(--sg-green)); }
.sg-balloon::after { bottom: -19px; border-top: 20px solid #fff; }
.sg-balloon img { float: left; width: 60px; height: 60px; object-fit: cover; margin: 0 8px 0 0; border-radius: 2px; }
.sg-balloon strong { display: block; font-size: 1.25em; line-height: 1.15; margin-bottom: 3px; }
.sg-balloon span { display: block; color: #444; font-size: 12px; }
.sg-balloon-score { position: absolute; top: -14px; right: -12px; min-width: 32px; height: 32px; padding: 0 4px; border-radius: 16px; background: var(--sg-b, var(--sg-green)); color: #fff; font: 800 12px/32px var(--sg-font); text-align: center; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
.sg-balloon.is-small { width: 200px; min-height: 0; font-weight: 400; }
.sg-balloon.is-small img { width: 45px; height: 45px; }
.sg-balloon.is-small strong { font-size: 1.1em; }
.sg-map .leaflet-interactive { cursor: pointer; }

/* Old coffeeshop list: large listings left, one-liners right */
.sg-split-list { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 8px; background: var(--sg-grey); padding: 8px; }
.sg-sl-col { display: flex; flex-direction: column; gap: 6px; }
.sg-sl-big, .sg-sl-small { display: block; background: #fff; color: #222; padding: 5px 6px; text-decoration: none; transition: background .15s; }
.sg-sl-big:hover, .sg-sl-small:hover { background: #f4f0f5; }
.sg-sl-big { display: flex; gap: 8px; align-items: flex-start; min-height: 105px; }
.sg-sl-big img { width: 95px; height: 95px; object-fit: cover; flex: none; }
.sg-sl-body { min-width: 0; flex: 1; }
.sg-sl-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.sg-sl-head strong { color: #000; font: 700 14.5px/1.25 var(--sg-font); }
.sg-sl-score { color: var(--sg-skin); font: 800 14px/1.2 var(--sg-font); flex: none; }
.sg-sl-text { display: block; font-size: 14px; line-height: 1.45; color: #222; }
.sg-sl-small .sg-sl-text { font-size: 13px; color: #333; }
.sg-sl-big .sg-sl-text { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 849px) { .sg-split-list { grid-template-columns: 1fr; } }
.sg-post-titles-img { display: block; margin: 0 0 6px; overflow: hidden; }
.sg-post-titles-img img { width: 100%; aspect-ratio: 16 / 5; object-fit: cover; display: block; transition: transform .5s; }
.sg-post-titles-img:hover img { transform: scale(1.04); }
.sg-sl-big.no-img { min-height: 0; }
.sg-balloon strong, .sg-balloon span { overflow: hidden; }

/* Buttons in the section colour */
.sg-more, .sg-btn-outline { background: var(--sg-accent) !important; border-color: var(--sg-accent) !important; color: #fff !important; }
.sg-more:hover, .sg-btn-outline:hover { filter: brightness(1.12); }
/* Post lists: thumbnails cropped ~10% lower */
.sg-post:not(.is-lead) .sg-post-media img, .sg-post:not(.is-lead) .sg-post-media .sg-card-noimg { aspect-ratio: 16 / 8.1; }

/* Social stream below the map */
.sg-social { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.sg-social-box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: var(--sg-grey); overflow: auto; text-align: center; padding: 0; }
.sg-social-box[data-loaded] { display: block; background: #fff; }
.sg-social-box p { margin: 0; font-size: 12px; color: var(--sg-muted); }
.sg-social-load { margin: 0; background: var(--sg-accent); color: #fff; border: 0; padding: 6px 14px; text-transform: uppercase; font: 700 12px/1.6 var(--sg-font); border-radius: 2px; }
.sg-social-box[data-loaded] { overflow: hidden; }
.sg-social-box[data-kind="x"][data-loaded] { overflow: auto; }
.sg-social-box .twitter-timeline:not(iframe) { display: inline-block; margin: 20px; padding: 6px 14px; background: var(--sg-accent); color: #fff; font-weight: 700; }
