/*
 * TLAL Guidebooks: the guidebook pages.
 *
 * Phones and tablets read one continuous column; from 1024px wide each
 * section sits on its own "page" (a white sheet on a birch desk) with a
 * page footer, like the printed guide. Colours and the font come from the
 * theme's custom properties, with fallbacks so the plugin stands alone.
 * Small orange text is avoided (contrast): orange is for big headings,
 * fills and rules; white text on orange is only used at large sizes.
 */

/* The script accent: kickers, chapter titles and the thank-you title.
   Dancing Script (SIL OFL 1.1, assets/fonts/OFL.txt), self-hosted. */
@font-face {
	font-family: "Dancing Script";
	font-style: normal;
	font-weight: 600 700;
	font-display: swap;
	src: url("../fonts/dancing-script-latin-wght.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.tlgb {
	--tlgb-script: "Dancing Script", "Brush Script MT", cursive;
	--tlgb-orange: var(--c-orange, #ff4500);
	--tlgb-ink: var(--c-ink, #121212);
	--tlgb-stone: var(--c-stone, #5c5853);
	--tlgb-cream: var(--c-cream, #f9f8f6);
	--tlgb-peach: var(--c-peach-light, #fbe3d6);
	--tlgb-birch: var(--c-beige, #e6e1db);
	--tlgb-line: var(--c-line, #d6cfc6);
	--tlgb-green: #56632a;
	--tlgb-green-soft: #eef0e4;
	--tlgb-white: #fff;
	--tlgb-font: var(--font, Montserrat, "Montserrat Fallback", system-ui, -apple-system, "Segoe UI", sans-serif);
	--tlgb-pad-x: var(--gutter, clamp(1rem, 0.5rem + 2.5vw, 2.5rem));
	--tlgb-pad-y: clamp(2.75rem, 2rem + 3.5vw, 5rem);
	--tlgb-gap: clamp(1.25rem, 0.75rem + 1.6vw, 2.25rem);
	--tlgb-radius: 6px;
	--tlgb-shadow: 0 1px 2px #1212120d, 0 10px 30px #12121214;

	font-family: var(--tlgb-font);
	color: var(--tlgb-ink);
	line-height: 1.6;
	overflow-wrap: break-word;
}

.tlgb *,
.tlgb *::before,
.tlgb *::after {
	box-sizing: border-box;
}

.tlgb img {
	display: block;
	max-width: 100%;
	height: auto;
}

.tlgb figure {
	margin: 0;
}

.tlgb a {
	color: inherit;
	text-decoration-color: var(--tlgb-orange);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
}

.tlgb a:hover {
	text-decoration-thickness: 3px;
}

.tlgb a:focus-visible,
.tlgb button:focus-visible,
.tlgb [tabindex]:focus-visible {
	outline: 3px solid var(--tlgb-ink);
	outline-offset: 3px;
	border-radius: 2px;
}

.tlgb ul[role="list"],
.tlgb ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tlgb .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Pages ---------- */

.tlgb-page {
	position: relative;
	padding: var(--tlgb-pad-y) var(--tlgb-pad-x);
	background: var(--tlgb-white);
	scroll-margin-top: calc(var(--header-h, 4rem) + 1rem);
}

.tlgb-page__inner {
	max-width: var(--w-content, 1200px);
	margin: 0 auto;
}

.tlgb-bg--cream { background: var(--tlgb-cream); }
.tlgb-bg--peach { background: var(--tlgb-peach); }
.tlgb-bg--birch { background: var(--tlgb-birch); }
.tlgb-bg--green { background: var(--tlgb-green); color: var(--tlgb-white); }
.tlgb-bg--orange { background: var(--tlgb-orange); color: var(--tlgb-white); }
.tlgb-bg--ink { background: var(--tlgb-ink); color: var(--tlgb-white); }

/* On dark pages every heading and link goes white. */
.tlgb-bg--green .tlgb-title,
.tlgb-bg--orange .tlgb-title,
.tlgb-bg--ink .tlgb-title,
.tlgb-bg--green .tlgb-kicker,
.tlgb-bg--orange .tlgb-kicker,
.tlgb-bg--ink .tlgb-kicker,
.tlgb-bg--green .tlgb-pick__desc,
.tlgb-bg--orange .tlgb-pick__desc,
.tlgb-bg--ink .tlgb-pick__desc,
.tlgb-bg--green .tlgb-intro,
.tlgb-bg--ink .tlgb-intro,
.tlgb-bg--orange .tlgb-intro {
	color: inherit;
}

.tlgb-bg--green a,
.tlgb-bg--orange a,
.tlgb-bg--ink a {
	text-decoration-color: currentColor;
}

/* Sections on the same background sit flush; different ones get a hairline
   so the column still reads as separate pages on phones. */
.tlgb-page + .tlgb-page.tlgb-bg--default {
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-page__foot {
	display: none;
}

/* Wide screens: separate sheets on a desk, with a page footer. */
@media (min-width: 1024px) {
	.tlgb--pages {
		display: grid;
		justify-items: center;
		gap: clamp(1.5rem, 1rem + 1.5vw, 3rem);
		padding: clamp(1.5rem, 1rem + 2vw, 3.5rem) var(--tlgb-pad-x) clamp(3rem, 2rem + 3vw, 5rem);
		background: var(--tlgb-birch);
	}

	.tlgb--pages > .tlgb-page {
		width: min(100%, 1180px);
		padding: clamp(3rem, 2rem + 2.5vw, 4.5rem) clamp(3rem, 1.5rem + 3vw, 5rem) clamp(5rem, 4rem + 2vw, 6rem);
		border-radius: 4px;
		box-shadow: var(--tlgb-shadow);
		border-top: 0;
	}

	.tlgb--pages > .tlgb-page--divider {
		width: min(100%, 1180px);
		padding: 0;
		background: none;
		box-shadow: none;
	}

	.tlgb--pages > .tlgb-page--cover {
		padding: 0;
		overflow: hidden;
	}

	.tlgb--pages .tlgb-page__foot {
		position: absolute;
		inset: auto clamp(3rem, 1.5rem + 3vw, 5rem) 1.5rem;
		display: flex;
		align-items: center;
		gap: 1rem;
		padding-top: 0.85rem;
		border-top: 4px solid var(--tlgb-orange);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--tlgb-stone);
	}

	.tlgb--pages .tlgb-page__foot > :first-child {
		flex: 1;
	}

	.tlgb--pages .tlgb-bg--green .tlgb-page__foot,
	.tlgb--pages .tlgb-bg--orange .tlgb-page__foot,
	.tlgb--pages .tlgb-bg--ink .tlgb-page__foot {
		color: inherit;
		border-top-color: currentColor;
	}

	/* The page number: a big white figure on an orange disc. */
	.tlgb-page__num {
		display: grid;
		place-items: center;
		min-width: 2.4rem;
		height: 2.4rem;
		padding: 0 0.5rem;
		border-radius: 999px;
		background: var(--tlgb-orange);
		color: var(--tlgb-white);
		font-size: 1.2rem;
		letter-spacing: 0;
	}

	.tlgb--flow .tlgb-page__inner {
		max-width: var(--w-content, 1200px);
	}
}

/* ---------- Shared type ---------- */

.tlgb-head {
	margin-bottom: var(--tlgb-gap);
	max-width: 52rem;
}

.tlgb-head--center {
	margin-inline: auto;
	text-align: center;
}

.tlgb-title {
	margin: 0;
	font-family: var(--tlgb-font);
	font-size: clamp(1.75rem, 1.2rem + 2.1vw, 2.75rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: var(--tlgb-orange);
	text-wrap: balance;
}

.tlgb-title--rule::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 4px;
	margin-top: 1rem;
	background: var(--tlgb-green);
}

.tlgb-kicker {
	margin: 0 0 0.2rem;
	font-family: var(--tlgb-script);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);
	font-style: normal;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--tlgb-ink);
}

.tlgb-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb-lead {
	margin: 0.9rem 0 0;
	font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.3rem);
	font-weight: 700;
	line-height: 1.45;
}

.tlgb-lead--italic {
	font-style: italic;
	font-weight: 500;
	color: var(--tlgb-stone);
}

.tlgb-rich {
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);
}

.tlgb-rich > :first-child { margin-top: 0; }
.tlgb-rich > :last-child { margin-bottom: 0; }

.tlgb-rich p,
.tlgb-rich ul,
.tlgb-rich ol {
	margin: 0 0 1em;
}

.tlgb-rich ul {
	padding-left: 1.2em;
	list-style: disc;
}

.tlgb-rich ol {
	padding-left: 1.4em;
	list-style: decimal;
}

.tlgb-rich li + li {
	margin-top: 0.3em;
}

.tlgb-intro {
	margin-top: 0.9rem;
	color: var(--tlgb-stone);
}

.tlgb-caption {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	color: var(--tlgb-stone);
}

.tlgb-fineprint {
	margin: 2rem 0 0;
	font-size: 0.8125rem;
	font-style: italic;
	color: var(--tlgb-stone);
	text-align: center;
}

.tlgb-muted {
	color: var(--tlgb-stone);
}

.tlgb-badge {
	position: absolute;
	top: 0.6rem;
	left: 0.6rem;
	padding: 0.3rem 0.6rem;
	border-radius: 999px;
	background: var(--tlgb-ink);
	color: var(--tlgb-white);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tlgb-badge--inline {
	position: static;
	display: inline-block;
	margin-bottom: 0.5rem;
}

.tlgb-actions {
	margin: 1.5rem 0 0;
}

/* White on orange only at "large text" size (19px bold) for contrast. */
.tlgb-button {
	display: inline-flex;
	align-items: center;
	min-height: 3rem;
	padding: 0.65rem 1.5rem;
	border-radius: 999px;
	background: var(--tlgb-orange);
	color: var(--tlgb-white) !important;
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tlgb-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px #ff450040;
}

.tlgb-empty {
	padding: 4rem 1rem;
	text-align: center;
	color: var(--tlgb-stone);
}

.tlgb-masthead {
	padding: var(--tlgb-pad-y) var(--tlgb-pad-x) 0;
	text-align: center;
}

.tlgb-masthead__title {
	margin: 0;
	font-size: clamp(2.25rem, 1.5rem + 3vw, 4rem);
	font-weight: 800;
	line-height: 1.02;
	text-transform: uppercase;
	color: var(--tlgb-orange);
}

.tlgb-masthead__sub {
	margin: 0.75rem 0 0;
	font-size: 1.125rem;
	font-weight: 600;
}

.tlgb--pages .tlgb-masthead {
	width: min(100%, 1180px);
	padding-bottom: 0;
}

.tlgb-tools {
	display: flex;
	justify-content: flex-end;
	max-width: 1180px;
	width: 100%;
	margin: 0 auto;
	padding: 0.75rem var(--tlgb-pad-x) 0;
}

.tlgb--pages .tlgb-tools {
	padding: 0;
}

.tlgb-tools__print {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--tlgb-line);
	border-radius: 999px;
	background: var(--tlgb-white);
	color: var(--tlgb-ink);
	font: 600 0.875rem/1 var(--tlgb-font);
	cursor: pointer;
}

.tlgb-tools__print::before {
	content: "";
	width: 1rem;
	height: 1rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v8H6z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v8H6z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.tlgb-tools__print:hover {
	border-color: var(--tlgb-ink);
}

/* ---------- Cover ---------- */

.tlgb-page--cover {
	padding: 0;
}

.tlgb-page--cover .tlgb-page__inner {
	max-width: none;
}

.tlgb-cover {
	position: relative;
	display: grid;
	grid-template-rows: auto auto auto;
	background: var(--tlgb-cream);
}

.tlgb-cover__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.tlgb-cover__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tlgb-cover__card {
	position: relative;
	z-index: 1;
	margin: -3.5rem var(--tlgb-pad-x) 0;
	padding: 1.75rem 1.5rem 1.5rem;
	background: var(--tlgb-white);
	border-radius: var(--tlgb-radius);
	box-shadow: var(--tlgb-shadow);
	text-align: center;
}

.tlgb-cover:not(.tlgb-cover--photo) .tlgb-cover__card {
	margin-top: var(--tlgb-pad-y);
}

.tlgb-cover__title {
	display: grid;
	gap: 0.1em;
	margin: 0;
	line-height: 0.95;
}

.tlgb-cover__year {
	font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem);
	font-weight: 800;
	letter-spacing: 0.02em;
	color: var(--tlgb-orange);
}

.tlgb-cover__script {
	font-size: clamp(3.25rem, 2rem + 6vw, 6.5rem);
	font-style: italic;
	font-weight: 300;
	letter-spacing: -0.03em;
	color: var(--tlgb-ink);
}

.tlgb-cover__caps {
	font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4.25rem);
	font-weight: 800;
	text-transform: uppercase;
	color: var(--tlgb-orange);
}

.tlgb-cover__logo {
	display: flex;
	justify-content: center;
	margin-top: 1.25rem;
}

.tlgb-cover__logo img,
.tlgb-logo {
	width: clamp(150px, 30vw, 220px);
	height: auto;
}

.tlgb-cover__tagline {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tlgb-cover__site {
	margin: 0;
	padding: 1rem var(--tlgb-pad-x) 1.25rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-align: center;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

@media (min-width: 768px) {
	.tlgb-cover--photo {
		min-height: min(92vh, 960px);
		grid-template-rows: 1fr auto;
		align-items: end;
	}

	.tlgb-cover--photo .tlgb-cover__media {
		position: absolute;
		inset: 0;
		aspect-ratio: auto;
	}

	.tlgb-cover--photo .tlgb-cover__card {
		width: min(34rem, 60%);
		margin: 6rem 0 0 clamp(1.5rem, 5vw, 4rem);
		padding: 2.5rem 2.25rem 2rem;
		background: #ffffffeb;
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
	}

	.tlgb-cover--photo .tlgb-cover__site {
		position: relative;
		margin-top: 2rem;
		background: var(--tlgb-white);
	}
}

/* ---------- Contents ---------- */

.tlgb-contents {
	max-width: 46rem;
	margin: 0 auto;
}

.tlgb-contents .tlgb-eyebrow {
	margin-top: 0.75rem;
}

.tlgb-contents__list {
	counter-reset: tlgb-toc;
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-contents__list li {
	border-bottom: 1px solid var(--tlgb-line);
}

.tlgb-contents__list a {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	padding: 0.7rem 0.25rem;
	font-weight: 600;
	text-decoration: none;
}

.tlgb-contents__list a:hover .tlgb-contents__name {
	text-decoration: underline;
	text-decoration-color: var(--tlgb-orange);
	text-decoration-thickness: 2px;
}

.tlgb-contents__dots {
	flex: 1;
	min-width: 1rem;
	border-bottom: 2px dotted var(--tlgb-line);
	transform: translateY(-0.3em);
}

.tlgb-contents__page {
	min-width: 2ch;
	font-weight: 800;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* ---------- Letter ---------- */

.tlgb-letter {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-letter__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--tlgb-radius);
}

.tlgb-rich--letter {
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	line-height: 1.7;
}

.tlgb-signature {
	margin: 1.5rem 0 0;
	font-size: 2.25rem;
	font-style: italic;
	font-weight: 300;
	color: var(--tlgb-orange);
}

@media (max-width: 767px) {
	.tlgb-letter__photo {
		max-width: 22rem;
	}
}

@media (min-width: 768px) {
	.tlgb-letter {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		grid-template-areas: "photo head" "photo body";
		align-items: start;
		column-gap: clamp(2rem, 1rem + 3vw, 4rem);
	}

	.tlgb-letter--no-photo {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "head" "body";
		max-width: 48rem;
	}

	.tlgb-letter__photo { grid-area: photo; position: sticky; top: calc(var(--header-h, 4rem) + 1.5rem); }
	.tlgb-letter__head { grid-area: head; }
	.tlgb-letter__body { grid-area: body; }
}

/* ---------- Chapter opener ---------- */

.tlgb-chapter {
	display: grid;
	gap: 0.75rem;
}

.tlgb-chapter__card {
	padding: 2rem 1.5rem;
	text-align: center;
}

.tlgb-title--chapter {
	font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
	overflow-wrap: normal;
	hyphens: manual;
}

.tlgb-chapter__text {
	max-width: 30rem;
	margin: 1rem auto 0;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb-chapter__photos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.tlgb-chapter__photo img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 3px;
}

/* Phones get the first four photos only: the rest is a long scroll. */
@media (max-width: 767px) {
	.tlgb-chapter__photo:nth-child(n + 5) {
		display: none;
	}
}

@media (min-width: 768px) {
	.tlgb-chapter {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1rem;
	}

	.tlgb-chapter__photos {
		display: contents;
	}

	/* The title card takes the middle cell; photos flow around it. */
	.tlgb-chapter__card {
		grid-row: 2;
		grid-column: 2;
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: 1.5rem;
		background: var(--tlgb-white);
		border-radius: 3px;
	}

	.tlgb-chapter--n0 .tlgb-chapter__card,
	.tlgb-chapter--n1 .tlgb-chapter__card,
	.tlgb-chapter--n2 .tlgb-chapter__card,
	.tlgb-chapter--n3 .tlgb-chapter__card {
		grid-row: auto;
		grid-column: 1 / -1;
	}

	.tlgb-bg--cream .tlgb-chapter__card { background: var(--tlgb-white); }
	.tlgb-bg--default .tlgb-chapter__card { background: var(--tlgb-cream); }
}

/* ---------- Recommendations ---------- */

.tlgb-picks-wrap--aside {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-picks {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-pick {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-width: 0;
}

.tlgb-pick__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--tlgb-radius);
	background: var(--tlgb-cream);
}

.tlgb-pick__img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.tlgb-pick--cutout .tlgb-pick__img {
	object-fit: contain;
	padding: 6%;
}

.tlgb-bg--cream .tlgb-pick__media,
.tlgb-bg--peach .tlgb-pick__media,
.tlgb-bg--birch .tlgb-pick__media {
	background: var(--tlgb-white);
}

.tlgb-pick__name {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.tlgb-pick__town {
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
}

.tlgb-pick__desc {
	margin: 0;
	font-size: 0.9688rem;
	line-height: 1.55;
	color: var(--tlgb-stone);
}

.tlgb-pick__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 1rem;
	margin: 0.15rem 0 0;
	font-size: 0.9063rem;
}

.tlgb-pick__price {
	font-weight: 800;
}

.tlgb-pick__link {
	font-weight: 600;
	overflow-wrap: normal;
}

.tlgb-pick__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

/* Grid */
.tlgb-picks--grid {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
}

@media (min-width: 560px) {
	.tlgb-picks--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.tlgb-picks--grid.tlgb-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tlgb-picks--grid.tlgb-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.tlgb-picks--grid.tlgb-cols-2 { column-gap: clamp(2rem, 1rem + 3vw, 4rem); }
}

/* Two-up on phones for small cut-out products keeps the page short. */
@media (max-width: 559px) {
	.tlgb-picks--grid.tlgb-cols-3,
	.tlgb-picks--grid.tlgb-cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem 1rem;
	}

	.tlgb-cols-3 .tlgb-pick__name,
	.tlgb-cols-4 .tlgb-pick__name {
		font-size: 0.9375rem;
	}

	.tlgb-cols-3 .tlgb-pick__desc,
	.tlgb-cols-4 .tlgb-pick__desc {
		font-size: 0.875rem;
	}
}

/* Showcase */
.tlgb-picks--showcase {
	gap: clamp(2rem, 1.25rem + 2.5vw, 3.5rem);
}

.tlgb-picks--showcase .tlgb-pick__name {
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
}

.tlgb-picks--showcase .tlgb-pick__desc {
	font-size: 1rem;
}

@media (min-width: 768px) {
	.tlgb-picks--showcase .tlgb-pick {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		align-items: center;
		gap: clamp(1.5rem, 1rem + 2.5vw, 3.5rem);
	}

	.tlgb-picks--showcase .tlgb-pick:nth-child(even) .tlgb-pick__media {
		order: 2;
	}

	.tlgb-picks--showcase .tlgb-pick:nth-child(even) {
		grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	}

}

/* List: words-first gifts as numbered cards (see "Words-only gifts"). */
.tlgb-picks--list {
	counter-reset: tlgb-pick;
}

.tlgb-picks--list .tlgb-pick:not(.tlgb-pick--no-photo) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
}

@media (min-width: 560px) {
	.tlgb-picks--list .tlgb-pick:not(.tlgb-pick--no-photo) {
		grid-template-columns: 9rem minmax(0, 1fr);
		align-items: start;
	}

	.tlgb-picks--list .tlgb-pick__img {
		aspect-ratio: 1;
	}
}

/* Side box */
.tlgb-aside {
	align-self: start;
	padding: 1.5rem;
	border-radius: var(--tlgb-radius);
	background: var(--tlgb-cream);
	border-top: 4px solid var(--tlgb-orange);
	font-size: 0.9375rem;
}

.tlgb-bg--cream .tlgb-aside {
	background: var(--tlgb-white);
}

.tlgb-aside__title {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tlgb-aside ul {
	list-style: none;
	padding: 0;
}

.tlgb-aside li {
	display: grid;
	grid-template-columns: 14px minmax(0, 1fr);
	column-gap: 0.6rem;
	align-items: start;
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--tlgb-line);
	line-height: 1.35;
}

.tlgb-aside li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.tlgb-aside li::before {
	margin-top: 0.15rem;
}

.tlgb-aside__name,
.tlgb-aside__town {
	grid-column: 2;
}

.tlgb-aside__name {
	font-weight: 700;
}

.tlgb-aside__town {
	font-size: 0.8125rem;
	color: var(--tlgb-stone);
}

@media (min-width: 1024px) {
	.tlgb-picks-wrap--aside {
		grid-template-columns: minmax(0, 1fr) 17rem;
		align-items: start;
	}

	.tlgb-picks-wrap--aside .tlgb-picks--grid.tlgb-cols-3,
	.tlgb-picks-wrap--aside .tlgb-picks--grid.tlgb-cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tlgb-aside {
		position: sticky;
		top: calc(var(--header-h, 4rem) + 1.5rem);
	}
}

/* ---------- Gift cards (every look) ----------
   A product card: photo on a soft tile with the price on it, a heart to
   save it, the name and a line about it, and one clear shop button that
   lines up along the bottom of every card in the row. */

.tlgb-picks--grid {
	gap: clamp(1rem, 0.6rem + 1.4vw, 1.75rem);
	align-items: stretch;
}

.tlgb-picks--grid .tlgb-pick {
	position: relative;
	gap: 0;
	overflow: hidden;
	border: 1px solid #1212121a;
	border-radius: 16px;
	background: var(--tlgb-white);
	transition: transform 0.25s cubic-bezier(.2, .8, .2, 1), box-shadow 0.25s, border-color 0.25s;
}

.tlgb-picks--grid .tlgb-pick:hover {
	border-color: #12121233;
	box-shadow: 0 2px 4px #1212120a, 0 12px 28px #12121214;
}

.tlgb-bg--cream .tlgb-picks--grid .tlgb-pick,
.tlgb-bg--peach .tlgb-picks--grid .tlgb-pick,
.tlgb-bg--birch .tlgb-picks--grid .tlgb-pick {
	border-color: transparent;
}

.tlgb-picks--grid .tlgb-pick__media {
	border-radius: 0;
	background: linear-gradient(180deg, #f6f3ef, #efeae4);
}

.tlgb-picks--grid .tlgb-pick__img {
	aspect-ratio: 1 / 1;
	transition: transform 0.5s cubic-bezier(.2, .8, .2, 1);
}

.tlgb-picks--grid.tlgb-cols-2 .tlgb-pick__img {
	aspect-ratio: 4 / 3;
}

/* Product shots float on the tile with room around them. */
.tlgb-picks--grid .tlgb-pick--cutout .tlgb-pick__img {
	padding: 12%;
	mix-blend-mode: multiply;
}

.tlgb-pick__tag {
	position: absolute;
	left: 0.75rem;
	bottom: 0.75rem;
	z-index: 1;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	background: var(--tlgb-white);
	box-shadow: 0 1px 2px #1212121f, 0 4px 12px #12121214;
	font-size: 0.875rem;
	font-weight: 800;
	line-height: 1.2;
	color: var(--tlgb-ink);
	font-variant-numeric: tabular-nums;
}

.tlgb-picks--grid .tlgb-pick__body {
	flex: 1;
	gap: 0.4rem;
	padding: 1.1rem 1.15rem 1.15rem;
}

.tlgb-picks--grid .tlgb-pick__name {
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.01em;
	text-transform: none;
}

.tlgb-picks--grid .tlgb-pick__desc {
	font-size: 0.9375rem;
	line-height: 1.5;
}

.tlgb-picks--grid .tlgb-pick__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.9rem;
	margin-top: auto;
	padding-top: 0.85rem;
}

/* The price already sits on the photo. */
.tlgb-pick__price--dup {
	display: none;
}

.tlgb-picks--grid a.tlgb-pick__shop {
	display: flex;
	flex: 1 1 100%;
}

.tlgb-picks--grid span.tlgb-pick__shop {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tlgb-stone);
}

.tlgb-picks--grid .tlgb-pick__link:not(.tlgb-pick__shop) {
	font-size: 0.8125rem;
}

.tlgb-picks--grid .tlgb-save {
	width: 2.25rem;
	height: 2.25rem;
	opacity: 0.92;
}

.tlgb-picks--grid .tlgb-save svg {
	width: 18px;
	height: 18px;
}

.tlgb-picks--grid .tlgb-pick--no-photo .tlgb-pick__body {
	padding-top: 1.35rem;
}

/* On dark pages the cards stay white, so their text stays dark. */
.tlgb-bg--green .tlgb-picks--grid .tlgb-pick,
.tlgb-bg--orange .tlgb-picks--grid .tlgb-pick,
.tlgb-bg--ink .tlgb-picks--grid .tlgb-pick {
	color: var(--tlgb-ink);
}

.tlgb-bg--green .tlgb-picks--grid .tlgb-pick__desc,
.tlgb-bg--orange .tlgb-picks--grid .tlgb-pick__desc,
.tlgb-bg--ink .tlgb-picks--grid .tlgb-pick__desc {
	color: var(--tlgb-stone);
}

@media (max-width: 559px) {
	.tlgb-picks--grid .tlgb-pick__body {
		padding: 0.85rem 0.85rem 0.9rem;
	}

	.tlgb-picks--grid .tlgb-pick__tag {
		left: 0.5rem;
		bottom: 0.5rem;
		font-size: 0.8125rem;
	}
}

@media print {
	.tlgb-picks--grid .tlgb-pick {
		break-inside: avoid;
		box-shadow: none;
	}
}

/* ---------- Shop button (every look) ----------
   What to do on top, the web address small underneath: addresses never
   break across lines and every button reads the same. */

.tlgb .tlgb-pick__meta {
	align-items: center;
	container-type: inline-size;
}

.tlgb a.tlgb-pick__shop {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	min-width: 0;
	max-width: 100%;
	min-height: 2.9rem;
	padding: 0.45rem 1.25rem 0.5rem;
	border: 1.5px solid var(--tlgb-ink);
	border-radius: 14px;
	background: var(--tlgb-white);
	line-height: 1.15;
	text-align: center;
	text-decoration: none;
	color: var(--tlgb-ink);
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.tlgb-shop__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.875rem;
	font-weight: 800;
	white-space: nowrap;
}

.tlgb-shop__icon {
	flex: none;
	width: 15px;
	height: 15px;
	stroke-width: 2.5;
}

/* One line always: a long address gets smaller instead of breaking. */
.tlgb-shop__host {
	max-width: 100%;
	overflow: hidden;
	font-size: min(0.75rem, calc((100cqi - 2.9rem) / (var(--tlgb-len, 20) * 0.6)));
	font-weight: 500;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--tlgb-stone);
}

.tlgb a.tlgb-pick__shop:hover {
	border-color: var(--tlgb-orange);
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
}

.tlgb a.tlgb-pick__shop:hover .tlgb-shop__host {
	color: #ffffffd9;
}

.tlgb .tlgb-pick__meta .tlgb-pick__price {
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
}

/* ---------- Words-only gifts: cards, two to a row ----------
   Showcase and list gifts with no photo. The last of an odd run takes the
   whole row (picks.php adds tlgb-pick--wide). */

@media (min-width: 768px) {
	.tlgb-picks--showcase,
	.tlgb-picks--list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tlgb-picks--showcase .tlgb-pick:not(.tlgb-pick--no-photo),
	.tlgb-picks--list .tlgb-pick:not(.tlgb-pick--no-photo),
	.tlgb-picks .tlgb-pick--wide {
		grid-column: 1 / -1;
	}
}

.tlgb-picks--list {
	gap: clamp(0.85rem, 0.5rem + 1vw, 1.25rem);
}

.tlgb-picks--showcase .tlgb-pick--no-photo,
.tlgb-picks--list .tlgb-pick--no-photo {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.4rem 1.5rem 1.5rem;
	border: 1px solid #1212120f;
	border-top: 4px solid var(--tlgb-orange);
	border-radius: 14px;
	background: var(--tlgb-cream);
}

.tlgb-bg--cream .tlgb-picks .tlgb-pick--no-photo,
.tlgb-bg--peach .tlgb-picks .tlgb-pick--no-photo,
.tlgb-bg--birch .tlgb-picks .tlgb-pick--no-photo,
.tlgb--editorial .tlgb-page.tlgb-bg--default:nth-of-type(even) .tlgb-pick--no-photo {
	background: var(--tlgb-white);
}

.tlgb-picks--list .tlgb-pick--no-photo::before {
	counter-increment: tlgb-pick;
	content: counter(tlgb-pick, decimal-leading-zero);
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--tlgb-orange);
	font-variant-numeric: tabular-nums;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__body {
	flex: 1;
	gap: 0.5rem;
}

/* The heart sits in the card's corner, so the words get the full width. */
.tlgb-picks--showcase .tlgb-pick--no-photo .tlgb-pick__body,
.tlgb-picks--list .tlgb-pick--no-photo .tlgb-pick__body {
	position: static;
	padding-right: 0;
}

.tlgb-picks--showcase .tlgb-pick--no-photo .tlgb-save,
.tlgb-picks--list .tlgb-pick--no-photo .tlgb-save {
	top: 1rem;
	right: 1rem;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__name {
	font-size: 1.125rem;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__desc {
	font-size: 0.9688rem;
}

/* The town goes under the name, after a pin. */
.tlgb-picks .tlgb-pick--no-photo .tlgb-sep {
	display: none;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__town {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 0.4rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__town::before,
.tlgb-aside li::before {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	background: var(--tlgb-orange);
	-webkit-mask: var(--tlgb-pin) center / contain no-repeat;
	mask: var(--tlgb-pin) center / contain no-repeat;
}

.tlgb {
	--tlgb-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5a8.25 8.25 0 0 0-8.25 8.25c0 5.6 6.3 11.4 7.55 12.5a1.05 1.05 0 0 0 1.4 0c1.25-1.1 7.55-6.9 7.55-12.5A8.25 8.25 0 0 0 12 1.5Zm0 11.25a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E");
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__meta {
	flex-direction: column;
	align-items: stretch;
	gap: 0.7rem;
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__meta a.tlgb-pick__shop {
	display: flex;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-pick__meta .tlgb-pick__link:not(.tlgb-pick__shop) {
	align-self: flex-start;
}

.tlgb-picks .tlgb-pick--no-photo .tlgb-badge--inline {
	align-self: flex-start;
}

/* A wide words-only card reads in two columns: words, then price and shop. */
@media (min-width: 768px) {
	.tlgb-picks .tlgb-pick--wide .tlgb-pick__body {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 2rem;
		align-items: start;
	}

	.tlgb-picks .tlgb-pick--wide .tlgb-pick__body > :not(.tlgb-pick__meta) {
		grid-column: 1;
	}

	.tlgb-picks .tlgb-pick--wide .tlgb-pick__meta {
		grid-column: 2;
		grid-row: 1 / span 3;
		align-items: stretch;
		align-self: center;
		width: 15rem;
		margin: 0;
		padding: 0;
		border: 0;
		text-align: center;
	}

	.tlgb-picks--list .tlgb-pick--wide {
		flex-direction: row;
		align-items: flex-start;
		gap: 1.25rem;
	}

	.tlgb-picks--list .tlgb-pick--wide .tlgb-pick__body {
		flex: 1;
	}
}

/* Showcase photos get one more line of polish: a soft shadow. */
.tlgb-picks--showcase .tlgb-pick__media {
	box-shadow: 0 1px 2px #1212120f, 0 12px 32px #12121217;
}

.tlgb-picks--showcase .tlgb-pick:not(.tlgb-pick--no-photo) .tlgb-pick__meta {
	margin-top: 0.5rem;
}

@media print {
	.tlgb-picks .tlgb-pick--no-photo {
		break-inside: avoid;
	}
}

/* ---------- Ideas ---------- */

.tlgb-ideas {
	display: grid;
	gap: 0 var(--tlgb-gap);
}

.tlgb-idea {
	padding: 1.1rem 0;
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-idea__title {
	margin: 0 0 0.35rem;
	font-size: 0.9688rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.tlgb-idea__title::before {
	content: "";
	display: inline-block;
	width: 0.55rem;
	height: 0.55rem;
	margin-right: 0.55rem;
	border-radius: 50%;
	background: var(--tlgb-orange);
	transform: translateY(-0.1em);
}

.tlgb-idea__text {
	margin: 0;
	font-size: 0.9688rem;
	color: var(--tlgb-stone);
}

@media (min-width: 640px) {
	.tlgb-ideas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.tlgb-ideas.tlgb-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Tiles ---------- */

.tlgb-tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 9.5rem;
	gap: 0.75rem;
}

.tlgb-tile {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	border-radius: var(--tlgb-radius);
	background: var(--tlgb-green);
}

.tlgb-tile__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tlgb-tile__label {
	position: relative;
	margin: 0.6rem;
	padding: 0.45rem 0.65rem;
	border-radius: 3px;
	background: var(--tlgb-green);
	color: var(--tlgb-white);
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tlgb-tile--plain {
	align-items: center;
	justify-content: center;
	text-align: center;
}

.tlgb-tile--plain .tlgb-tile__label {
	font-size: 0.9375rem;
}

@media (min-width: 768px) {
	.tlgb-tiles {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-auto-rows: 12rem;
		gap: 1rem;
	}

	/* Six tiles fill a 3 x 3 grid: one tall, two wide. */
	.tlgb-tiles--collage {
		grid-auto-flow: dense;
	}

	.tlgb-tiles--collage .tlgb-tile:nth-child(6n + 1) { grid-row: span 2; }
	.tlgb-tiles--collage .tlgb-tile:nth-child(6n + 4),
	.tlgb-tiles--collage .tlgb-tile:nth-child(6n + 6) { grid-column: span 2; }

	.tlgb-tile__label {
		font-size: 0.8125rem;
	}
}

/* ---------- Callout ---------- */

.tlgb-callout {
	position: relative;
	display: grid;
	overflow: hidden;
	border-radius: var(--tlgb-radius);
}

.tlgb-callout__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.tlgb-callout__body {
	position: relative;
	padding: clamp(1.75rem, 1.25rem + 2vw, 3rem);
}

.tlgb-callout__body .tlgb-rich {
	margin-top: 1rem;
}

.tlgb-callout__logo {
	margin-top: 1.5rem;
}

.tlgb-callout__logo img {
	max-height: 5rem;
	width: auto;
}

.tlgb-callout--green { background: var(--tlgb-green); color: var(--tlgb-white); }
.tlgb-callout--ink { background: var(--tlgb-ink); color: var(--tlgb-white); }
.tlgb-callout--cream { background: var(--tlgb-cream); }
.tlgb-callout--orange { background: var(--tlgb-white); border: 4px solid var(--tlgb-orange); }

.tlgb-callout--green .tlgb-title,
.tlgb-callout--ink .tlgb-title,
.tlgb-callout--green .tlgb-kicker,
.tlgb-callout--ink .tlgb-kicker {
	color: inherit;
}

.tlgb-callout--green a:not(.tlgb-button),
.tlgb-callout--ink a:not(.tlgb-button) {
	text-decoration-color: currentColor;
}

.tlgb-callout--green .tlgb-button,
.tlgb-callout--ink .tlgb-button {
	background: var(--tlgb-white);
	color: var(--tlgb-ink) !important;
}

.tlgb-bg--cream .tlgb-callout--cream { background: var(--tlgb-white); }

.tlgb-callout--photo-background .tlgb-callout__media {
	position: absolute;
	inset: 0;
}

.tlgb-callout--photo-background .tlgb-callout__media img {
	aspect-ratio: auto;
}

.tlgb-callout--photo-background .tlgb-callout__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #121212d9 0%, #12121299 55%, #12121226 100%);
}

.tlgb-callout--photo-background {
	color: var(--tlgb-white);
	min-height: 24rem;
	align-items: end;
}

.tlgb-callout--photo-background .tlgb-title,
.tlgb-callout--photo-background .tlgb-kicker {
	color: inherit;
}

.tlgb-callout--photo-background .tlgb-callout__body {
	max-width: 36rem;
}

@media (min-width: 768px) {
	.tlgb-callout--photo-left,
	.tlgb-callout--photo-right {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch;
	}

	.tlgb-callout--photo-right .tlgb-callout__media {
		order: 2;
	}

	.tlgb-callout--photo-left .tlgb-callout__media img,
	.tlgb-callout--photo-right .tlgb-callout__media img {
		aspect-ratio: auto;
		min-height: 22rem;
	}

	.tlgb-callout__body {
		align-self: center;
	}
}

/* ---------- Feature spread ---------- */

.tlgb-feature__banner {
	padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
	border-radius: var(--tlgb-radius) var(--tlgb-radius) 0 0;
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
	text-align: center;
}

.tlgb-feature__kicker {
	margin: 0 0 0.35rem;
	font-size: 1.25rem;
	font-style: italic;
	font-weight: 700;
}

.tlgb-feature__title {
	margin: 0;
	font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.5rem);
	font-weight: 800;
	line-height: 1.1;
	text-wrap: balance;
}

.tlgb-feature__subtitle {
	margin: 0.5rem 0 0;
	font-size: 1.1875rem;
	font-weight: 700;
}

.tlgb-feature__stage {
	position: relative;
	display: grid;
}

.tlgb-feature__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.tlgb-feature__box {
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
	background: var(--tlgb-green);
	color: var(--tlgb-white);
	font-size: 1.0625rem;
	border-radius: 0 0 var(--tlgb-radius) var(--tlgb-radius);
}

.tlgb-feature__box a {
	text-decoration-color: currentColor;
}

.tlgb-feature__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 1rem 0 0;
}

@media (min-width: 900px) {
	.tlgb-feature__media img {
		aspect-ratio: 16 / 10;
		border-radius: 0 0 var(--tlgb-radius) var(--tlgb-radius);
	}

	.tlgb-feature__box {
		position: absolute;
		top: clamp(2rem, 5vw, 4rem);
		right: clamp(1.5rem, 4vw, 3rem);
		width: min(26rem, 42%);
		border-radius: var(--tlgb-radius);
		box-shadow: var(--tlgb-shadow);
	}

	.tlgb-feature--box-left .tlgb-feature__box {
		right: auto;
		left: clamp(1.5rem, 4vw, 3rem);
	}
}

/* ---------- Story with photo ---------- */

.tlgb-story {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-story__media img {
	width: 100%;
	border-radius: var(--tlgb-radius);
}

.tlgb-story__text .tlgb-rich {
	margin-top: 1.25rem;
}

.tlgb-story--none .tlgb-story__text {
	max-width: 46rem;
}

@media (min-width: 900px) {
	.tlgb-story--left,
	.tlgb-story--right {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
		gap: clamp(2rem, 1rem + 3vw, 4rem);
	}

	.tlgb-story--right .tlgb-story__media {
		order: 2;
	}
}

/* ---------- Directory ---------- */

.tlgb-directory {
	display: grid;
	gap: var(--tlgb-gap) clamp(2rem, 1rem + 3vw, 4rem);
}

.tlgb-directory__title {
	margin: 0 0 0.6rem;
	padding-bottom: 0.4rem;
	border-bottom: 3px solid var(--tlgb-orange);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tlgb-directory__list li {
	padding: 0.3rem 0;
	font-size: 0.9688rem;
}

.tlgb-directory__name {
	font-weight: 700;
}

.tlgb-directory__town::before {
	content: ", ";
}

.tlgb-directory__town {
	color: var(--tlgb-stone);
}

@media (min-width: 640px) {
	.tlgb-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.tlgb-directory.tlgb-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Map and locations ---------- */

.tlgb-places {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-map {
	position: relative;
	display: grid;
	place-content: center;
	gap: 0.5rem;
	min-height: 18rem;
	border-radius: var(--tlgb-radius);
	background:
		repeating-linear-gradient(45deg, #0000 0 22px, #12121208 22px 23px),
		var(--tlgb-cream);
	text-align: center;
	overflow: hidden;
}

.tlgb-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.tlgb-map__load {
	min-height: 2.75rem;
	padding: 0.6rem 1.25rem;
	border: 2px solid var(--tlgb-ink);
	border-radius: 999px;
	background: var(--tlgb-white);
	color: var(--tlgb-ink);
	font: 700 0.9375rem/1 var(--tlgb-font);
	cursor: pointer;
}

.tlgb-map__note {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--tlgb-stone);
}

.tlgb-places__list {
	counter-reset: tlgb-place;
}

.tlgb-place {
	position: relative;
	padding: 1rem 0 1rem 2.75rem;
	border-bottom: 1px solid var(--tlgb-line);
	counter-increment: tlgb-place;
}

.tlgb-place::before {
	content: counter(tlgb-place);
	position: absolute;
	top: 1rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
	font-size: 1.1875rem;
	font-weight: 700;
}

.tlgb-place__name {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 800;
}

.tlgb-place__address {
	font-style: normal;
	color: var(--tlgb-stone);
}

.tlgb-place__note {
	margin: 0.35rem 0 0;
	font-size: 0.9375rem;
}

.tlgb-place__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	margin: 0.4rem 0 0;
	font-size: 0.9063rem;
	font-weight: 600;
}

@media (min-width: 900px) {
	.tlgb-places--map {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: start;
	}

	.tlgb-places--map .tlgb-map {
		position: sticky;
		top: calc(var(--header-h, 4rem) + 1.5rem);
		order: 2;
		min-height: 28rem;
	}
}

/* ---------- Gallery ---------- */

.tlgb-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.tlgb-gallery__item img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 3px;
}

@media (min-width: 768px) {
	.tlgb-gallery--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
	.tlgb-gallery--mosaic { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: 1rem; }
	.tlgb-gallery--mosaic > li:nth-child(5n + 1) { grid-column: span 2; grid-row: span 2; }
}

.tlgb-gallery--strip {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 0.75rem;
	overscroll-behavior-x: contain;
}

.tlgb-gallery--strip > li {
	flex: 0 0 min(75vw, 22rem);
	scroll-snap-align: start;
}

.tlgb-gallery--strip .tlgb-gallery__item img {
	aspect-ratio: 4 / 5;
}

/* ---------- Quote, divider ---------- */

.tlgb-quote {
	max-width: 46rem;
	margin: 0 auto;
	text-align: center;
}

.tlgb-quote blockquote {
	margin: 0;
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
	font-style: italic;
	font-weight: 500;
	line-height: 1.3;
}

.tlgb-quote blockquote::before {
	content: "“";
	display: block;
	font-size: 4rem;
	font-style: normal;
	line-height: 0.6;
	color: var(--tlgb-orange);
}

.tlgb-quote__who {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb-page--divider {
	padding-block: 0.5rem;
}

.tlgb-divider {
	height: 0;
	margin: 0 auto;
	border: 0;
	border-top: 1px solid var(--tlgb-line);
	max-width: var(--w-content, 1200px);
}

.tlgb-divider--ornament {
	position: relative;
	overflow: visible;
}

.tlgb-divider--ornament::after {
	content: "";
	position: absolute;
	top: -0.4rem;
	left: 50%;
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 50%;
	background: var(--tlgb-orange);
	transform: translateX(-50%);
}

.tlgb-divider--space {
	border: 0;
	height: 2rem;
}

/* ---------- Closing: the back cover ---------- */

.tlgb-closing {
	display: grid;
	gap: var(--tlgb-gap);
}

.tlgb-closing__media {
	margin: 0;
}

.tlgb-closing__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--tlgb-radius);
}

.tlgb-closing__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.tlgb-closing__kicker {
	margin: 0 0 1rem;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb-closing__body .tlgb-rich {
	margin-top: 1.25rem;
	font-size: 1.125rem;
	line-height: 1.55;
}

.tlgb-social {
	margin-top: 2rem;
}

.tlgb-social__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlgb .tlgb-social__link {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: var(--tlgb-ink);
	color: var(--tlgb-white);
	text-decoration: none;
	box-shadow: 0 1px 2px #1212121f, 0 6px 16px #1212121f;
	transition: transform 0.2s cubic-bezier(.2, .8, .2, 1), box-shadow 0.2s;
}

.tlgb .tlgb-social__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 2px 4px #1212121f, 0 12px 24px #12121229;
}

.tlgb-social__link--facebook { background: #1877f2 !important; }
.tlgb-social__link--instagram { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%) !important; }
.tlgb-social__link--pinterest { background: #e60023 !important; }
.tlgb-social__link--youtube { background: #ff0000 !important; }
.tlgb-social__link--tiktok,
.tlgb-social__link--x { background: #000 !important; }

.tlgb-social__link svg {
	width: 24px;
	height: 24px;
}

.tlgb-social__handle {
	margin: 0.75rem 0 0;
	font-size: 1rem;
	font-weight: 800;
}

.tlgb-closing__email {
	margin: 1.25rem 0 0;
	font-size: 1.125rem;
	font-weight: 700;
}

.tlgb-closing__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1.5rem 0 0 !important;
	padding: 0;
	list-style: none;
}

.tlgb-closing__link {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.5rem 1.1rem;
	border: 2px solid currentColor;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
}

.tlgb-closing__sign {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	width: 100%;
	margin-top: clamp(2rem, 1.5rem + 2vw, 3rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-closing__logo {
	flex: none;
	width: 7.5rem;
	height: auto;
}

.tlgb-closing__contact {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
}

.tlgb-closing__contact a {
	text-decoration: none;
}

.tlgb-closing__contact a:hover {
	text-decoration: underline;
}

@media (min-width: 768px) {
	.tlgb-closing--photo {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
		gap: clamp(2rem, 1rem + 3vw, 4rem);
	}
}

/* Centred back cover (sheets): logos, sign-off and contact line up in the middle. */
.tlgb--pages .tlgb-closing--photo .tlgb-social__list,
.tlgb--reader .tlgb-closing--photo .tlgb-social__list,
.tlgb--pages .tlgb-closing--photo .tlgb-closing__links,
.tlgb--reader .tlgb-closing--photo .tlgb-closing__links {
	justify-content: center;
}

.tlgb--pages .tlgb-closing--photo .tlgb-closing__sign,
.tlgb--reader .tlgb-closing--photo .tlgb-closing__sign {
	justify-content: center;
}

.tlgb--pages .tlgb-closing--photo .tlgb-closing__contact,
.tlgb--reader .tlgb-closing--photo .tlgb-closing__contact {
	text-align: left;
}

/* Sheets (wide pages and the preview): the photo bleeds to the edges of its
   half, the words sit centred in the other, and there is no page footer. */
.tlgb--reader > .tlgb-page--closing .tlgb-page__foot {
	display: none;
}

@media (min-width: 768px) {
	.tlgb--reader > .tlgb-page--closing:has(.tlgb-closing--photo) {
		display: flex;
		padding: 0;
		overflow: hidden;
	}

	.tlgb--reader > .tlgb-page--closing:has(.tlgb-closing--photo) > .tlgb-page__inner {
		display: flex;
		flex: 1;
		width: 100%;
		max-width: none;
	}

	.tlgb--reader .tlgb-closing--photo {
		display: flex;
		flex: 1;
		flex-direction: column;
		gap: 0;
	}

	.tlgb--reader .tlgb-closing--photo .tlgb-closing__media img {
		aspect-ratio: 16 / 10;
		border-radius: 0;
	}

	.tlgb--reader .tlgb-closing--photo .tlgb-closing__body {
		flex: 1;
		justify-content: center;
		align-items: center;
		padding: clamp(2rem, 1rem + 3vw, 3.5rem) clamp(2rem, 1rem + 6vw, 7rem) clamp(1.5rem, 1rem + 2vw, 2.5rem);
		text-align: center;
	}
}

@media (min-width: 1024px) {
	.tlgb--pages > .tlgb-page--closing .tlgb-page__foot {
		display: none;
	}

	/* The preview's sheets have their own rules above. */

	.tlgb--pages:not(.tlgb--reader) > .tlgb-page--closing:has(.tlgb-closing--photo) {
		display: flex;
		min-height: 44rem;
		padding: 0;
		overflow: hidden;
	}

	.tlgb--pages:not(.tlgb--reader) > .tlgb-page--closing:has(.tlgb-closing--photo) > .tlgb-page__inner {
		display: flex;
		flex: 1;
		width: 100%;
		max-width: none;
	}

	.tlgb--pages:not(.tlgb--reader) .tlgb-closing--photo {
		display: flex;
		flex: 1;
		flex-direction: column;
		gap: 0;
	}

	.tlgb--pages:not(.tlgb--reader) .tlgb-closing--photo .tlgb-closing__media img {
		height: 26rem;
		aspect-ratio: auto;
		border-radius: 0;
	}

	.tlgb--pages:not(.tlgb--reader) .tlgb-closing--photo .tlgb-closing__body {
		align-items: center;
		padding: 3.5rem clamp(4rem, 2rem + 8vw, 12rem) 3rem;
		text-align: center;
	}
}

/* ---------- Archive ---------- */

.tlgb-archive {
	max-width: var(--w-content, 1200px);
	margin: 0 auto;
	padding: var(--tlgb-pad-y, 3rem) var(--gutter, 1.5rem);
	font-family: var(--font, Montserrat, system-ui, sans-serif);
}

.tlgb-archive .tlgb-title {
	color: var(--c-orange, #ff4500);
}

.tlgb-archive__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
	gap: 2rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.tlgb-archive__link {
	display: grid;
	gap: 0.75rem;
	color: inherit;
	text-decoration: none;
}

.tlgb-archive__img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
}

.tlgb-archive__title {
	font-size: 1.25rem;
	font-weight: 800;
}

.tlgb-archive__excerpt {
	margin: 0.4rem 0 0;
	color: var(--c-stone, #5c5853);
}

/* ---------- Guide bar: chapters, price filter, my list ---------- */

.tlgb-chapter-no {
	display: none;
}

.tlgb-bar {
	position: sticky;
	top: var(--header-h, 4rem);
	z-index: 40;
	width: 100%;
	background: color-mix(in srgb, var(--tlgb-cream) 97%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid var(--tlgb-line);
	scroll-margin-top: var(--header-h, 4rem);
}

/* The editor's preview frame has no site header. */
body.tlgb-frame .tlgb-bar {
	top: 0;
}

.tlgb-bar__inner {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: var(--w-wide, 1440px);
	margin: 0 auto;
	padding: 0.6rem var(--tlgb-pad-x);
}

.tlgb-bar__chapters {
	position: relative;
	flex: 1;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 1.25rem, #000 calc(100% - 2.5rem), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 1.25rem, #000 calc(100% - 2.5rem), transparent);
}

.tlgb-bar__chapters::-webkit-scrollbar {
	display: none;
}

.tlgb-bar__chapters ol {
	display: flex;
	gap: 0.4rem;
	width: max-content;
	padding: 0 1.25rem 0 0.75rem;
}

.tlgb .tlgb-bar__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.85rem;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
	color: var(--tlgb-stone);
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.tlgb .tlgb-bar__chip:hover {
	border-color: var(--tlgb-line);
	color: var(--tlgb-ink);
}

.tlgb .tlgb-bar__chip[aria-current] {
	background: var(--tlgb-ink);
	color: var(--tlgb-white);
}

.tlgb-bar__no {
	font-size: 0.6875rem;
	font-variant-numeric: tabular-nums;
	opacity: 0.6;
}

.tlgb-bar__chip[aria-current] .tlgb-bar__no {
	color: var(--tlgb-orange);
	opacity: 1;
}

.tlgb-bar__tools {
	display: flex;
	flex: none;
	align-items: center;
	gap: 0.5rem;
	margin-left: auto;
}

.tlgb-bar__filter select {
	appearance: none;
	min-height: 2.5rem;
	padding: 0 2.25rem 0 1rem;
	border: 1.5px solid var(--tlgb-ink);
	border-radius: 999px;
	background: var(--tlgb-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.9rem center;
	font: 700 0.8125rem/1 var(--tlgb-font);
	color: var(--tlgb-ink);
	cursor: pointer;
}

.tlgb-bar__filter select:focus-visible {
	outline: 3px solid var(--tlgb-orange);
	outline-offset: 2px;
}

.tlgb .tlgb-bar__saved {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 2.5rem;
	padding: 0 0.6rem 0 1rem;
	border: 0;
	border-radius: 999px;
	background: var(--tlgb-ink);
	color: var(--tlgb-white);
	font: 700 0.8125rem/1 var(--tlgb-font);
	cursor: pointer;
}

.tlgb-bar__saved svg {
	color: var(--tlgb-white);
	transition: color 0.2s;
}

.tlgb-bar__saved.has-items svg {
	color: var(--tlgb-orange);
}

.tlgb-bar__count {
	display: grid;
	place-items: center;
	min-width: 1.6rem;
	height: 1.6rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: #ffffff26;
	font-variant-numeric: tabular-nums;
}

.tlgb-bar__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 0.5rem var(--tlgb-pad-x);
	background: var(--tlgb-peach);
	font-size: 0.875rem;
	font-weight: 600;
}

.tlgb-bar__note[hidden] {
	display: none;
}

.tlgb-bar__note button {
	padding: 0.2rem 0.75rem;
	border: 1.5px solid var(--tlgb-ink);
	border-radius: 999px;
	background: transparent;
	font: 700 0.8125rem/1.4 var(--tlgb-font);
	cursor: pointer;
}

.tlgb-bar__progress {
	position: absolute;
	inset: auto 0 -1px;
	height: 3px;
	overflow: hidden;
}

.tlgb-bar__progress i {
	display: block;
	height: 100%;
	background: var(--tlgb-orange);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

@media (max-width: 699px) {
	.tlgb-bar__inner {
		flex-wrap: wrap;
		gap: 0.5rem;
		padding-block: 0.5rem;
	}

	.tlgb-bar__chapters {
		flex-basis: 100%;
		order: 2;
		margin: 0 calc(-1 * var(--tlgb-pad-x));
	}

	.tlgb-bar__chapters ol {
		padding-inline: var(--tlgb-pad-x);
	}

	.tlgb-bar__tools {
		width: 100%;
	}

	.tlgb-bar__filter {
		flex: 1;
	}

	.tlgb-bar__filter select {
		width: 100%;
	}
}

/* Magazine pages: the bar is as wide as a page. */
@media (min-width: 1024px) {
	.tlgb--pages {
		grid-template-columns: minmax(0, 1fr);
	}

	.tlgb--pages > .tlgb-bar {
		width: min(100%, 1180px);
		border: 1px solid var(--tlgb-line);
		border-radius: 999px;
		box-shadow: var(--tlgb-shadow);
	}

	.tlgb--pages > .tlgb-bar .tlgb-bar__progress {
		inset-inline: 2rem;
	}
}

/* Filtering: only sections with a matching gift, and only those gifts. */
.tlgb-is-filtering .tlgb-page.is-filtered-out,
.tlgb-is-filtering .tlgb-page--cover,
.tlgb-is-filtering .tlgb-aside {
	display: none;
}

.tlgb-pick[hidden] {
	display: none !important;
}

/* ---------- Save to my list ---------- */

.tlgb .tlgb-save {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #fffffff0;
	box-shadow: 0 1px 2px #1212121f, 0 4px 12px #12121214;
	color: var(--tlgb-ink);
	cursor: pointer;
	transition: transform 0.2s, background 0.2s, color 0.2s;
}

.tlgb .tlgb-save svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.tlgb .tlgb-save:hover {
	transform: scale(1.08);
}

.tlgb .tlgb-save[aria-pressed="true"] {
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
}

.tlgb .tlgb-save[aria-pressed="true"] svg {
	fill: currentColor;
}

.tlgb .tlgb-save.is-pop {
	animation: tlgb-pop 0.45s cubic-bezier(.3, 1.6, .5, 1);
}

@keyframes tlgb-pop {
	40% { transform: scale(1.3); }
	100% { transform: scale(1); }
}

.tlgb-pick--no-photo .tlgb-pick__body {
	position: relative;
	padding-right: 3rem;
}

.tlgb-pick--no-photo .tlgb-save {
	top: -0.25rem;
	right: 0;
}

.tlgb-pick.is-flash {
	animation: tlgb-flash 1.6s ease;
}

@keyframes tlgb-flash {
	0%, 60% { box-shadow: 0 0 0 4px var(--tlgb-orange); }
	100% { box-shadow: 0 0 0 4px transparent; }
}

/* ---------- The list drawer and toast ---------- */

.tlgb-drawer-open {
	overflow: hidden;
}

.tlgb-drawer {
	--tlgb-orange: var(--c-orange, #ff4500);
	--tlgb-ink: var(--c-ink, #121212);
	--tlgb-stone: var(--c-stone, #5c5853);
	--tlgb-line: var(--c-line, #d6cfc6);
	--tlgb-cream: var(--c-cream, #f9f8f6);
	position: fixed;
	inset: 0;
	z-index: 100000;
	font-family: var(--font, Montserrat, system-ui, sans-serif);
	color: var(--tlgb-ink);
}

.tlgb-drawer[hidden] {
	display: none;
}

.tlgb-drawer__scrim {
	position: absolute;
	inset: 0;
	background: #120e0c80;
	opacity: 0;
	transition: opacity 0.25s;
}

.tlgb-drawer__panel {
	position: absolute;
	inset: 0 0 0 auto;
	display: flex;
	flex-direction: column;
	width: min(28rem, 100%);
	background: #fff;
	box-shadow: -10px 0 40px #12121233;
	transform: translateX(100%);
	transition: transform 0.25s cubic-bezier(.2, .8, .2, 1);
	outline: none;
}

.tlgb-drawer.is-open .tlgb-drawer__scrim {
	opacity: 1;
}

.tlgb-drawer.is-open .tlgb-drawer__panel {
	transform: none;
}

.tlgb-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--tlgb-line);
}

.tlgb-drawer__head h2 {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-size: 1.375rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.tlgb-drawer__n {
	display: grid;
	place-items: center;
	min-width: 1.75rem;
	height: 1.75rem;
	border-radius: 999px;
	background: var(--tlgb-orange);
	color: #fff;
	font-size: 0.875rem;
}

.tlgb-drawer__close,
.tlgb-drawer__x {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--tlgb-cream);
	font-size: 1.5rem;
	line-height: 1;
	color: var(--tlgb-ink);
	cursor: pointer;
}

.tlgb-drawer__x {
	width: 2rem;
	height: 2rem;
	font-size: 1.25rem;
	background: transparent;
}

.tlgb-drawer__list {
	flex: 1;
	margin: 0;
	padding: 0.5rem 1.5rem;
	overflow-y: auto;
	list-style: none;
}

.tlgb-drawer__item {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--tlgb-line);
}

.tlgb-drawer__item img,
.tlgb-drawer__noimg {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 10px;
	object-fit: cover;
	background: var(--tlgb-cream);
}

.tlgb-drawer__text {
	display: grid;
	flex: 1;
	min-width: 0;
	gap: 0.15rem;
}

.tlgb-drawer__text a {
	font-weight: 700;
	line-height: 1.3;
	color: inherit;
	text-decoration: none;
}

.tlgb-drawer__text a:hover {
	text-decoration: underline;
	text-decoration-color: var(--tlgb-orange);
}

.tlgb-drawer__text small {
	font-size: 0.8125rem;
	color: var(--tlgb-stone);
}

.tlgb-drawer__shop {
	flex: none;
	padding: 0.35rem 0.8rem;
	border: 1.5px solid var(--tlgb-ink);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	color: inherit;
	text-decoration: none;
}

.tlgb-drawer__empty {
	flex: 1;
	margin: 0;
	padding: 2rem 1.5rem;
	color: var(--tlgb-stone);
}

.tlgb-drawer__foot {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 1rem 1.5rem 1.5rem;
	border-top: 1px solid var(--tlgb-line);
}

.tlgb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0 1rem;
	border: 1.5px solid var(--tlgb-ink);
	border-radius: 999px;
	background: #fff;
	font: 700 0.8125rem/1 var(--font, Montserrat, system-ui, sans-serif);
	color: var(--tlgb-ink);
	text-decoration: none;
	cursor: pointer;
}

.tlgb-btn--primary {
	flex-basis: 100%;
	border-color: var(--tlgb-orange);
	background: var(--tlgb-orange);
	color: #fff;
}

.tlgb-btn--quiet {
	border-color: transparent;
	color: var(--tlgb-stone);
}

.tlgb-toast {
	position: fixed;
	left: 50%;
	bottom: 1.5rem;
	z-index: 100001;
	padding: 0.75rem 1.25rem;
	border-radius: 999px;
	background: #121212;
	color: #fff;
	font: 600 0.875rem/1.4 var(--font, Montserrat, system-ui, sans-serif);
	box-shadow: 0 10px 30px #12121240;
	opacity: 0;
	transform: translate(-50%, 1rem);
	transition: opacity 0.2s, transform 0.2s;
	pointer-events: none;
}

.tlgb-toast.is-on {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* ---------- Editorial look ---------- */

.tlgb--editorial {
	background: var(--tlgb-cream);
}

.tlgb--editorial .tlgb-page {
	padding-block: clamp(3.5rem, 2rem + 5vw, 7.5rem);
	background-color: var(--tlgb-white);
}

.tlgb--editorial .tlgb-page.tlgb-bg--default:nth-of-type(even) {
	background: var(--tlgb-cream);
}

.tlgb--editorial .tlgb-page + .tlgb-page.tlgb-bg--default {
	border-top: 0;
}

.tlgb--editorial .tlgb-page__inner {
	max-width: 1240px;
}

.tlgb--editorial .tlgb-page--cover .tlgb-page__inner {
	max-width: none;
}

.tlgb--editorial .tlgb-page__foot {
	display: none !important;
}

/* Chapter numbers and big headings. */
.tlgb--editorial .tlgb-chapter-no {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: var(--tlgb-orange);
}

.tlgb--editorial .tlgb-chapter-no::after {
	content: "";
	width: 3rem;
	height: 2px;
	background: currentColor;
}

.tlgb--editorial .tlgb-head--center .tlgb-chapter-no {
	justify-content: center;
}

.tlgb--editorial .tlgb-bg--orange .tlgb-chapter-no,
.tlgb--editorial .tlgb-bg--green .tlgb-chapter-no,
.tlgb--editorial .tlgb-bg--ink .tlgb-chapter-no {
	color: inherit;
}

.tlgb--editorial .tlgb-title {
	font-size: clamp(2.25rem, 1.2rem + 4vw, 4.75rem);
	line-height: 0.98;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.tlgb--editorial .tlgb-head {
	max-width: 60rem;
	margin-bottom: clamp(2rem, 1.25rem + 2.5vw, 3.5rem);
}

.tlgb--editorial .tlgb-intro {
	font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.3125rem);
	line-height: 1.55;
}

/* Chapter cards are narrow: the title shrinks until its longest word fits
   (chapter.php sets --tlgb-word to that word's length). */
.tlgb .tlgb-chapter__card {
	container-type: inline-size;
}

.tlgb .tlgb-chapter__card .tlgb-title--chapter {
	font-family: var(--tlgb-script);
	font-size: min(clamp(2.5rem, 1.6rem + 3vw, 4.5rem), calc(100cqi / (var(--tlgb-word, 10) * 0.5)));
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0;
	text-transform: none;
}

/* The thank-you page signs off in the script too. */
.tlgb .tlgb-closing__title {
	font-family: var(--tlgb-script);
	font-size: clamp(2.5rem, 1.6rem + 3vw, 4.25rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0;
	text-transform: none;
}

/* Cover: the whole first screen. */
.tlgb--editorial .tlgb-page--cover {
	padding: 0;
	background: var(--tlgb-ink);
}

.tlgb--editorial .tlgb-cover--photo {
	min-height: calc(100svh - var(--header-h, 4rem));
	grid-template-rows: 1fr auto;
	align-items: end;
	background: var(--tlgb-ink);
}

.tlgb--editorial .tlgb-cover--photo .tlgb-cover__media {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
}

.tlgb--editorial .tlgb-cover--photo .tlgb-cover__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #12121200 45%, #121212b3 100%);
}

.tlgb--editorial .tlgb-cover--photo .tlgb-cover__img {
	position: absolute;
	inset: 0;
	height: 100%;
	object-fit: cover;
	animation: tlgb-kenburns 18s ease-out both;
}

@media (max-width: 767px) {
	.tlgb--editorial .tlgb-cover--photo {
		min-height: min(calc(100svh - var(--header-h, 4rem)), 52rem);
	}

	.tlgb--editorial .tlgb-cover--photo .tlgb-cover__card {
		margin-top: 38vh;
	}

	.tlgb--editorial .tlgb-pick__link {
		overflow-wrap: anywhere;
	}
}

@keyframes tlgb-kenburns {
	from { transform: scale(1.08); }
	to { transform: scale(1); }
}

.tlgb--editorial .tlgb-cover--photo .tlgb-cover__card {
	width: min(38rem, calc(100% - 2 * var(--tlgb-pad-x)));
	margin: 30vh var(--tlgb-pad-x) 0;
	padding: clamp(1.75rem, 1rem + 2.5vw, 3rem);
	border-radius: 20px;
	background: #fffffff2;
	animation: tlgb-rise 0.9s 0.15s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes tlgb-rise {
	from { opacity: 0; transform: translateY(2rem); }
	to { opacity: 1; transform: none; }
}

.tlgb--editorial .tlgb-cover__script {
	font-size: clamp(3.5rem, 2rem + 7vw, 8rem);
}

.tlgb--editorial .tlgb-cover__caps {
	font-size: clamp(2.5rem, 1.4rem + 4.4vw, 5.25rem);
	letter-spacing: -0.02em;
}

.tlgb-cover__start {
	display: none;
}

.tlgb--editorial .tlgb-cover__start {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.5rem var(--tlgb-pad-x) 1.75rem;
	color: var(--tlgb-white);
	animation: tlgb-rise 0.9s 0.35s cubic-bezier(.2, .8, .2, 1) both;
}

.tlgb--editorial .tlgb-cover:not(.tlgb-cover--photo) .tlgb-cover__start {
	color: var(--tlgb-ink);
}

.tlgb-cover__facts {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.tlgb .tlgb-cover__go {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0 1.5rem;
	border-radius: 999px;
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
	font-weight: 800;
	text-decoration: none;
}

.tlgb .tlgb-cover__go svg {
	animation: tlgb-nudge 1.8s ease-in-out infinite;
}

@keyframes tlgb-nudge {
	50% { transform: translateY(3px); }
}

.tlgb--editorial .tlgb-cover--photo .tlgb-cover__site {
	display: none;
}

@media (min-width: 900px) {
	.tlgb--editorial .tlgb-cover--photo .tlgb-cover__card {
		margin: 22vh 0 0 clamp(2rem, 6vw, 6rem);
		text-align: left;
	}

	.tlgb--editorial .tlgb-cover--photo .tlgb-cover__logo {
		justify-content: flex-start;
	}

	.tlgb--editorial .tlgb-cover__start {
		padding-inline: clamp(2rem, 6vw, 6rem);
	}
}

/* Contents: a grid of numbered chapters instead of a page list. */
.tlgb--editorial .tlgb-contents {
	max-width: 1240px;
}

.tlgb--editorial .tlgb-contents__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	gap: 0.75rem;
	border: 0;
}

.tlgb--editorial .tlgb-contents__list li {
	border: 0;
	counter-increment: tlgb-toc;
}

.tlgb--editorial .tlgb-contents__list a {
	display: flex;
	align-items: center;
	gap: 1rem;
	height: 100%;
	padding: 1rem 1.15rem;
	border: 1px solid var(--tlgb-line);
	border-radius: 14px;
	background: var(--tlgb-white);
	transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.tlgb--editorial .tlgb-contents__list a::before {
	content: counter(tlgb-toc, decimal-leading-zero);
	flex: none;
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--tlgb-orange);
	font-variant-numeric: tabular-nums;
}

.tlgb--editorial .tlgb-contents__list a:hover {
	border-color: var(--tlgb-ink);
	transform: translateY(-2px);
	box-shadow: var(--tlgb-shadow);
}

.tlgb--editorial .tlgb-contents__dots,
.tlgb--editorial .tlgb-contents__page {
	display: none;
}

/* Gift cards: the editorial look lifts them on hover. */
.tlgb--editorial .tlgb-picks--grid .tlgb-pick:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px #1212120d, 0 18px 40px #1212121f;
}

.tlgb--editorial .tlgb-pick:hover .tlgb-pick__img {
	transform: scale(1.05);
}

/* Showcase rows become big cards. */
.tlgb--editorial .tlgb-picks--showcase .tlgb-pick__media {
	border-radius: 18px;
}

.tlgb--editorial .tlgb-picks--showcase .tlgb-pick__name {
	font-size: clamp(1.375rem, 1.1rem + 1vw, 2rem);
}

/* Scroll-in motion (guidebook.js adds .tlgb-motion and .is-in). */
.tlgb-motion .tlgb-head,
.tlgb-motion .tlgb-pick,
.tlgb-motion .tlgb-tile,
.tlgb-motion .tlgb-idea {
	opacity: 0;
	transform: translateY(1.5rem);
	transition: opacity 0.7s cubic-bezier(.2, .8, .2, 1) var(--tlgb-delay, 0ms), transform 0.7s cubic-bezier(.2, .8, .2, 1) var(--tlgb-delay, 0ms), box-shadow 0.25s;
}

.tlgb-motion .is-in {
	opacity: 1;
	transform: none;
}

.tlgb-motion .tlgb-picks--grid .tlgb-pick.is-in:hover {
	transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
	.tlgb--editorial .tlgb-cover__img,
	.tlgb--editorial .tlgb-cover__card,
	.tlgb--editorial .tlgb-cover__start,
	.tlgb .tlgb-cover__go svg {
		animation: none;
	}
}

/* ---------- Preview tab: the guide on its own, like the PDF ---------- */

body.tlgb-reader {
	margin: 0;
	background: #3d4044 !important;
	color: #fff;
}

.tlgb-reader__bar {
	position: sticky;
	top: 0;
	z-index: 100;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	min-height: 3.25rem;
	padding: 0.4rem 1rem;
	background: #26282b;
	box-shadow: 0 1px 0 #ffffff14, 0 4px 16px #0000004d;
	font: 500 0.875rem/1.3 var(--font, Montserrat, system-ui, sans-serif);
	color: #e8e8e8;
}

.tlgb-reader__title {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-width: 0;
}

.tlgb-reader__title strong {
	overflow: hidden;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #fff;
}

.tlgb-reader__chip {
	flex: none;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	background: #ff4500;
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tlgb-reader__pages {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.tlgb-reader__tools {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.35rem;
	font-variant-numeric: tabular-nums;
}

.tlgb-reader__tools button {
	min-width: 2rem;
	height: 2rem;
	padding: 0 0.6rem;
	border: 0;
	border-radius: 6px;
	background: #ffffff14;
	color: #fff;
	font: 600 0.9375rem/1 var(--font, Montserrat, system-ui, sans-serif);
	cursor: pointer;
}

.tlgb-reader__tools button:hover {
	background: #ffffff29;
}

.tlgb-reader__tools button:focus-visible {
	outline: 2px solid #ff4500;
	outline-offset: 2px;
}

.tlgb-reader__desk {
	padding: clamp(1rem, 3vw, 2.5rem) clamp(0.5rem, 3vw, 2.5rem) 4rem;
}

/* Page thumbnails sidebar (optional, like a PDF viewer). */
.tlgb-reader__side-toggle {
	display: grid;
	flex: none;
	place-items: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: #ffffff14;
	color: #fff;
	cursor: pointer;
}

.tlgb-reader__side-toggle:hover,
.tlgb-reader__side-toggle[aria-expanded="true"] {
	background: #ffffff33;
}

.tlgb-reader__side-toggle:focus-visible {
	outline: 2px solid #ff4500;
	outline-offset: 2px;
}

.tlgb-reader__side {
	position: fixed;
	top: 3.25rem;
	bottom: 0;
	left: 0;
	z-index: 90;
	width: 12rem;
	overflow-y: auto;
	padding: 1rem 0 2rem;
	background: #2b2d31;
	box-shadow: 1px 0 0 #ffffff14;
	scrollbar-width: thin;
	scrollbar-color: #ffffff33 transparent;
}

.tlgb-reader__side[hidden] {
	display: none;
}

body.tlgb-reader--side .tlgb-reader__desk {
	margin-left: 12rem;
}

.tlgb-thumbs {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlgb-thumb {
	display: grid;
	justify-items: center;
	gap: 0.4rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: #c9c9c9;
	font: 600 0.75rem/1 var(--font, Montserrat, system-ui, sans-serif);
	cursor: pointer;
}

.tlgb-thumb__sheet {
	position: relative;
	display: block;
	width: 136px;
	overflow: hidden;
	border-radius: 2px;
	background: #fff;
	outline: 3px solid transparent;
	outline-offset: 2px;
	box-shadow: 0 1px 4px #00000066;
	transition: outline-color 0.15s;
}

.tlgb-thumb__sheet > .tlgb {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	padding: 0;
	transform-origin: 0 0;
	zoom: 1 !important;
	pointer-events: none;
}

.tlgb-thumb__sheet > .tlgb > .tlgb-page {
	width: 100% !important;
	box-shadow: none;
}

.tlgb-thumb:hover .tlgb-thumb__sheet {
	outline-color: #ffffff55;
}

.tlgb-thumb.is-current .tlgb-thumb__sheet {
	outline-color: #ff4500;
}

.tlgb-thumb.is-current {
	color: #fff;
}

.tlgb-thumb:focus-visible {
	outline: none;
}

.tlgb-thumb:focus-visible .tlgb-thumb__sheet {
	outline-color: #fff;
}

/* Phones: the sidebar floats over the pages instead of pushing them. */
@media (max-width: 899px) {
	body.tlgb-reader--side .tlgb-reader__desk {
		margin-left: 0;
	}

	.tlgb-reader__side {
		box-shadow: 4px 0 24px #00000080;
	}
}

/* Sheets at every width, letter-shaped at the least. */
.tlgb.tlgb--reader {
	display: grid;
	justify-items: center;
	gap: clamp(1rem, 2vw, 2rem);
	padding: 0;
	background: none;
	zoom: var(--tlgb-zoom, 1);
}

.tlgb--reader > .tlgb-page {
	width: min(100%, 960px);
	aspect-ratio: 8.5 / 11;
	padding: clamp(2rem, 1rem + 4vw, 4.5rem) clamp(1.5rem, 0.5rem + 4vw, 4.5rem) clamp(4.5rem, 3.5rem + 2vw, 6rem);
	border: 0;
	border-radius: 2px;
	box-shadow: 0 2px 6px #0000004d, 0 16px 40px #00000040;
}

/* The admin bar is off here; drop the space WordPress keeps for it. */
html:has(body.tlgb-reader) {
	margin-top: 0 !important;
}

/* The cover fills its whole sheet. */
.tlgb--reader > .tlgb-page--cover {
	display: flex;
	padding: 0;
	overflow: hidden;
}

.tlgb--reader > .tlgb-page--cover > .tlgb-page__inner {
	display: flex;
	flex: 1;
	width: 100%;
}

.tlgb--reader > .tlgb-page--cover .tlgb-cover {
	flex: 1;
}

.tlgb--reader > .tlgb-page--divider {
	aspect-ratio: auto;
	padding: 0;
	background: none;
	box-shadow: none;
}

.tlgb--reader .tlgb-page__foot {
	position: absolute;
	inset: auto clamp(1.5rem, 0.5rem + 4vw, 4.5rem) 1.5rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-top: 0.85rem;
	border-top: 4px solid var(--tlgb-orange);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tlgb-stone);
}

.tlgb--reader .tlgb-page__foot > :first-child {
	flex: 1;
}

.tlgb--reader .tlgb-bg--green .tlgb-page__foot,
.tlgb--reader .tlgb-bg--orange .tlgb-page__foot,
.tlgb--reader .tlgb-bg--ink .tlgb-page__foot {
	color: inherit;
	border-top-color: currentColor;
}

.tlgb--reader .tlgb-page__num {
	display: grid;
	place-items: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.5rem;
	border-radius: 999px;
	background: var(--tlgb-orange);
	color: var(--tlgb-white);
	font-size: 1.2rem;
	letter-spacing: 0;
}

.tlgb--reader .tlgb-save {
	display: none;
}

.tlgb--reader .tlgb-hidden-note {
	z-index: 3;
}

@media (max-width: 699px) {
	.tlgb-reader__bar {
		grid-template-columns: 1fr auto;
	}

	.tlgb-reader__pages {
		display: none;
	}

	.tlgb-reader__tools [data-tlgb-zoom],
	.tlgb-reader__tools [data-tlgb-zoom-label] {
		display: none;
	}

	.tlgb--reader > .tlgb-page {
		aspect-ratio: auto;
	}
}

@media print {
	.tlgb-reader__bar,
	.tlgb-reader__side {
		display: none !important;
	}

	body.tlgb-reader--side .tlgb-reader__desk {
		margin-left: 0;
	}

	body.tlgb-reader {
		background: #fff !important;
	}

	.tlgb-reader__desk {
		padding: 0;
	}

	.tlgb.tlgb--reader {
		zoom: 1;
	}

	.tlgb--reader > .tlgb-page {
		aspect-ratio: auto;
		box-shadow: none;
	}
}

/* ---------- Preview (editor) ---------- */

.tlgb-preview-bar {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: 0.6rem 1rem;
	background: #1d2327;
	color: #fff;
	font: 600 0.875rem/1.4 system-ui, sans-serif;
	text-align: center;
}

.tlgb-is-hidden > .tlgb-page__inner {
	opacity: 0.4;
}

.tlgb-hidden-note {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	margin: 0;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: #1d2327;
	color: #fff;
	font: 600 0.75rem/1.4 system-ui, sans-serif;
}

.tlgb-is-active {
	outline: 3px solid #ff4500;
	outline-offset: -3px;
}

body.tlgb-frame {
	margin: 0;
	background: var(--c-beige, #e6e1db);
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion: reduce) {
	.tlgb *,
	.tlgb *::before,
	.tlgb *::after {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Print: one section per sheet, no site chrome ---------- */

@media print {
	@page {
		size: letter;
		margin: 12mm 12mm 16mm;
	}

	body.tlgb-body .site-header,
	body.tlgb-body .site-footer,
	body.tlgb-body .skip-link,
	body.tlgb-body #wpadminbar,
	.tlgb-tools,
	.tlgb-bar,
	.tlgb-save,
	.tlgb-cover__start,
	.tlgb-toast,
	.tlgb-drawer,
	.tlgb-preview-bar,
	.tlgb-map,
	.tlgb-hidden-note {
		display: none !important;
	}

	html,
	body.tlgb-body {
		background: #fff !important;
	}

	.tlgb {
		font-size: 10.5pt;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.tlgb--pages,
	.tlgb--flow,
	.tlgb--editorial {
		display: block;
		padding: 0;
		background: none;
	}

	.tlgb .tlgb-page,
	.tlgb--pages > .tlgb-page {
		width: auto;
		padding: 0 0 14mm;
		margin: 0;
		border: 0;
		box-shadow: none;
		break-after: page;
	}

	.tlgb .tlgb-page--divider {
		display: none;
	}

	.tlgb .tlgb-page__foot {
		position: absolute;
		inset: auto 0 0;
		display: flex;
		justify-content: space-between;
		padding-top: 2mm;
		border-top: 2pt solid var(--tlgb-orange);
		font-size: 7.5pt;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
	}

	.tlgb-page__num {
		background: none;
		color: inherit;
		font-size: 9pt;
	}

	.tlgb-pick,
	.tlgb-idea,
	.tlgb-place,
	.tlgb-directory__group,
	.tlgb-tile,
	figure {
		break-inside: avoid;
	}

	.tlgb-title {
		break-after: avoid;
	}

	.tlgb-cover--photo {
		min-height: 225mm;
	}

	/* Big photos stay within one sheet. */
	.tlgb-callout__media img,
	.tlgb-story__media img,
	.tlgb-feature__media img,
	.tlgb-closing__media img,
	.tlgb-letter__photo img {
		max-height: 110mm;
		min-height: 0 !important;
		object-fit: cover;
	}

	.tlgb-contents__list a {
		padding-block: 0.3rem;
	}

	.tlgb-letter__photo,
	.tlgb-aside,
	.tlgb-places--map .tlgb-map {
		position: static !important;
	}

	.tlgb-picks--grid.tlgb-cols-3,
	.tlgb-picks--grid.tlgb-cols-4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.tlgb-gallery--strip {
		flex-wrap: wrap;
		overflow: visible;
	}

	.tlgb a {
		text-decoration: none;
	}
}

/* Printing "My list": only the saved gifts. */
@media print {
	.tlgb-print-list .tlgb-page:not(:has(.tlgb-pick.is-in-list)),
	.tlgb-print-list .tlgb-pick:not(.is-in-list),
	.tlgb-print-list .tlgb-aside {
		display: none !important;
	}

	.tlgb-print-list .tlgb .tlgb-page {
		break-after: auto;
	}

	.tlgb-motion .tlgb-head,
	.tlgb-motion .tlgb-pick {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ---------------- email signup (the folded rest of the guide) ---------------- */

.tlgb-gated {
	position: relative;
}

.tlgb-locked {
	max-height: 34rem;
	overflow: hidden;
	position: relative;
	pointer-events: none;
	user-select: none;
}

.tlgb-locked::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 70%;
	background: linear-gradient(to bottom, #fff0, var(--tlgb-white) 85%);
}

.tlgb-gated.is-open .tlgb-locked {
	max-height: none;
	overflow: visible;
	pointer-events: auto;
	user-select: auto;
}

.tlgb-gated.is-open .tlgb-locked::after {
	content: none;
}

.tlgb-gated.is-open .tlgb-gate {
	display: none;
}

.tlgb-gate {
	position: relative;
	margin: -6rem var(--tlgb-pad-x) var(--tlgb-pad-y);
	display: flex;
	justify-content: center;
}

.tlgb-gate__inner {
	width: min(100%, 36rem);
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
	background: var(--tlgb-cream);
	border: 1px solid var(--tlgb-line);
	border-radius: var(--tlgb-radius);
	box-shadow: var(--tlgb-shadow);
	text-align: center;
}

.tlgb-gate__eyebrow {
	margin: 0 0 0.5rem;
	color: var(--tlgb-orange);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tlgb-gate__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	line-height: 1.15;
}

.tlgb-gate__text {
	margin: 0 auto 1.25rem;
	max-width: 30rem;
	color: var(--tlgb-stone);
}

.tlgb-gate__form {
	text-align: left;
}

/* Previews: where the signup starts. */
.tlgb-gate-mark {
	margin: 0;
	padding: 0.75rem var(--tlgb-pad-x);
	border-block: 2px dashed var(--tlgb-orange);
	background: var(--tlgb-peach);
	color: var(--tlgb-ink);
	font-size: 0.875rem;
	font-weight: 600;
	text-align: center;
}

@media print {
	.tlgb-gate-mark {
		display: none;
	}
}
