/*
 * Corridor 99 shared components. Namespaced c99-. Root is 10px (1rem = 10px).
 * Geometry measured from eater.com (build/probe2/*.txt); identity from c99-tokens.css.
 * Breakpoints: 48em (768) and 73.75em (1180), the widths where the reference changes layout.
 */
.c99-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Containers: 1100 at 1180+, 700 reading column 768–1179, 20px gutters below 768 */
.c99-wrap { width: min(110rem, 100% - 4rem); margin-inline: auto; }
.c99-wrap--read { width: min(70rem, 100% - 4rem); }
@media (min-width: 73.75em) { .c99-wrap--read { width: min(110rem, 100% - 4rem); } }

/* Labels */
.c99-kicker { display: inline-block; font: 700 1.15rem/1.2 var(--c99-font-ui); letter-spacing: var(--c99-ls-kicker); text-transform: uppercase; color: var(--c99-accent); text-decoration: none; }
a.c99-kicker:hover { text-decoration: underline; }
.c99-kicker--eat { color: var(--c99-alpenglow-text); }
.c99-kicker--outdoors { color: var(--c99-sound-surface); }
.c99-kicker--todo { color: var(--c99-driftwood-text); }
.c99-kicker--news { color: var(--c99-ink); }
.c99-kicker--map { color: var(--c99-sound); }
.c99-meta { font: 500 var(--c99-fs-meta)/1.3 var(--c99-font-ui); color: var(--c99-meta); }
.c99-meta b { color: var(--c99-text); font-weight: 600; }
.c99-meta svg { width: 1em; height: 1em; vertical-align: -0.15em; margin-right: 0.3rem; }
.c99-town { font: 600 1.1rem/1.2 var(--c99-font-ui); letter-spacing: 0.06rem; text-transform: uppercase; color: var(--c99-text-2); }
.c99-credit { font: 400 1.2rem/1.3 var(--c99-font-ui); color: var(--c99-meta); }
.c99-credit a { color: inherit; }

/* Badges */
.c99-badge { display: inline-block; font: 700 1.05rem/1 var(--c99-font-ui); letter-spacing: var(--c99-ls-kicker); text-transform: uppercase; padding: 0.5rem 0.7rem; border-radius: var(--c99-radius); vertical-align: middle; }
.c99-badge--new { background: var(--c99-sound-tint); color: var(--c99-sound); }
.c99-badge--alert { background: var(--c99-alpenglow-text); color: var(--c99-white); margin-left: 0.8rem; }
.c99-badge--sponsored { background: var(--c99-granite-100); color: var(--c99-granite-700); }

/* Buttons */
.c99-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 4.4rem; font: 700 1.3rem/1 var(--c99-font-ui); letter-spacing: 0.06rem; text-transform: uppercase; padding: 1.2rem 2rem; border-radius: var(--c99-radius); border: 1px solid var(--c99-sound); cursor: pointer; text-decoration: none; }
.c99-btn--solid { background: var(--c99-sound); color: var(--c99-paper); }
.c99-btn--solid:hover { background: var(--c99-sound-deep); border-color: var(--c99-sound-deep); }
.c99-btn--outline { background: transparent; color: var(--c99-sound); }
.c99-btn--outline:hover { background: var(--c99-sound-tint); }

/* Image placeholder when a story has no photo (never a fake photo) */
.c99-ph { display: grid; place-items: center; background: var(--c99-granite-100); color: var(--c99-granite-300); width: 100%; height: 100%; }
.c99-ph svg { width: 32%; max-width: 4.8rem; height: auto; }

/* Module title: measured 24px/26.4 title, 24px below; the homepage variant adds the 4px accent rule */
.c99-mtitle { display: flex; align-items: baseline; justify-content: space-between; gap: 1.6rem; margin: 0 0 2.4rem; }
.c99-mtitle h2, .c99-mtitle h3 { font: 700 2.4rem/1.1 var(--c99-font-head); margin: 0; letter-spacing: -0.01em; color: var(--c99-text); }
.c99-mtitle a { font: 700 1.15rem/1.2 var(--c99-font-ui); letter-spacing: var(--c99-ls-kicker); text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.c99-mtitle a:hover { text-decoration: underline; }
.c99-mtitle--rule { border-top: var(--c99-rule-accent-w) solid var(--c99-accent); padding-top: 1.2rem; }
.c99-mtitle--rule h2 { font-size: var(--c99-fs-module); }
@media (max-width: 47.99em) { .c99-mtitle h2, .c99-mtitle h3 { font-size: 2.2rem; } }

/* Grid card: 3:2 image, then headline (measured 223x149 image, 12px gap, 17/18.7 headline) */
.c99-cg { display: flex; flex-direction: column; gap: 1.2rem; min-width: 0; }
.c99-cg__media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--c99-granite-100); }
.c99-cg__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.c99-cg:hover .c99-cg__img { transform: scale(1.03); }
.c99-cg__badge { position: absolute; top: 1rem; left: 1rem; }
.c99-cg__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; align-items: baseline; margin-bottom: 0.6rem; }
.c99-cg__meta .c99-meta { font-size: 1.15rem; }
.c99-cg__title { font: 600 1.7rem/1.1 var(--c99-font-head); margin: 0; text-wrap: pretty; }
.c99-cg__title a { color: var(--c99-text); text-decoration: none; }
.c99-cg__title a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }
/* Phone: list form, thumb right 75x75, headline 19/19 (measured at 390) */
@media (max-width: 47.99em) {
	.c99-cg { flex-direction: row-reverse; justify-content: space-between; align-items: start; gap: 1.6rem; }
	.c99-cg__media { flex: 0 0 7.5rem; width: 7.5rem; aspect-ratio: 1; }
	.c99-cg__badge { top: 0.4rem; left: 0.4rem; }
	.c99-cg__title { font-size: 1.9rem; line-height: 1; }
}

/* Small card, thumb left (rails and lead-block 3-ups) */
.c99-csm { display: grid; grid-template-columns: 9rem 1fr; gap: 1.2rem; align-items: start; }
.c99-csm__media { display: block; aspect-ratio: 1; overflow: hidden; background: var(--c99-granite-100); }
.c99-csm__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.c99-csm__title { font: 600 1.6rem/1.15 var(--c99-font-head); margin: 0.4rem 0 0; text-wrap: pretty; }
.c99-csm__title a { color: var(--c99-text); text-decoration: none; }
.c99-csm__title a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }

/* Stream card: text left, thumb right (section stream, hub latest, author, search) */
.c99-cs { display: grid; grid-template-columns: 1fr 9rem; gap: 1.6rem; align-items: start; padding: 2rem 0; border-bottom: 1px solid var(--c99-granite-300); }
.c99-cs__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; align-items: baseline; margin-bottom: 0.6rem; }
.c99-cs__title { font: 700 2rem/1.1 var(--c99-font-head); margin: 0; text-wrap: pretty; }
.c99-cs__title a { color: var(--c99-text); text-decoration: none; }
.c99-cs__title a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }
.c99-cs__dek { font: 400 1.6rem/1.4 var(--c99-font-text); color: var(--c99-text-2); margin: 0.8rem 0 0; }
.c99-cs__by { margin: 0.8rem 0 0; }
.c99-cs__media { display: block; aspect-ratio: 1; overflow: hidden; background: var(--c99-granite-100); }
.c99-cs__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.c99-cs--large { grid-template-columns: 1fr; }
.c99-cs--large .c99-cs__media { order: -1; aspect-ratio: 3 / 2; }
.c99-cs--large .c99-cs__title { font-size: 2.6rem; }
@media (min-width: 48em) { .c99-cs { grid-template-columns: 1fr 15rem; gap: 2.4rem; } }
@media (max-width: 47.99em) { .c99-cs__dek { display: none; } }

/* Dated headline list */
.c99-hls { list-style: none; margin: 0; padding: 0; }
.c99-hl { padding: 1.6rem 0; border-bottom: 1px solid var(--c99-ink); }
.c99-hl:first-child { padding-top: 0; }
.c99-hl__meta { display: flex; gap: 1rem; align-items: baseline; margin-bottom: 0.4rem; }
.c99-hl__date { font: 700 1.125rem/1.2 var(--c99-font-ui); letter-spacing: 0.04rem; text-transform: uppercase; color: var(--c99-meta); }
.c99-hl__title { display: block; font: 500 1.7rem/1.1 var(--c99-font-head); color: var(--c99-text); text-decoration: none; text-wrap: pretty; }
.c99-hl__title:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }

/* Lead block: image + overlapping card with hard offset shadow */
.c99-lead { position: relative; padding-bottom: 7rem; }
.c99-lead__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--c99-granite-100); width: 82%; }
.c99-lead__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.c99-lead__card { position: absolute; right: 0; bottom: 0; width: min(55%, 44rem); background: var(--c99-surface); border: 1px solid var(--c99-ink); box-shadow: var(--c99-shadow-hard); padding: 2rem 2rem 1.6rem; }
.c99-lead__title { font: 700 var(--c99-fs-card-l)/1.1 var(--c99-font-head); margin: 0.8rem 0 0.8rem; text-wrap: balance; }
.c99-lead__title a { color: var(--c99-text); text-decoration: none; }
.c99-lead__title a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }
.c99-lead__dek { font: 400 1.6rem/1.4 var(--c99-font-text); color: var(--c99-text-2); margin: 0 0 1rem; }
.c99-lead .c99-meta { margin: 0; }
@media (max-width: 47.99em) {
	.c99-lead { padding-bottom: 0; }
	.c99-lead__media { width: 100%; }
	.c99-lead__card { position: relative; width: auto; margin: -3rem 1.6rem 0 1.6rem; }
}

/* Map card: thumb + format + title */
.c99-mc { display: grid; grid-template-columns: 10rem 1fr; gap: 1.6rem; align-items: center; }
.c99-mc__media { display: block; aspect-ratio: 1; overflow: hidden; background: var(--c99-granite-100); border-radius: 50%; }
.c99-mc__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.c99-mc__title { font: 700 1.9rem/1.1 var(--c99-font-head); margin: 0.4rem 0; text-wrap: pretty; }
.c99-mc__title a { color: var(--c99-text); text-decoration: none; }
.c99-mc__title a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }

/* Ad slots: reserved height so nothing jumps (AdSense manual units only; Auto ads off) */
.c99-slot { padding: 3.5rem 0 2.5rem; }
.c99-slot__box { position: relative; max-width: 100%; display: grid; place-items: center; min-height: 25rem; margin-inline: auto; background: var(--c99-granite-100); border-block: 1px solid var(--c99-granite-300); }
.c99-slot__box:empty::before { content: "Advertisement"; font: 600 1rem/1 var(--c99-font-ui); letter-spacing: 0.12rem; text-transform: uppercase; color: var(--c99-meta); }
.c99-slot__box > ins { width: 100%; }
.c99-slot--rect { padding: 0; }
.c99-slot--rect .c99-slot__box { width: 30rem; height: 25rem; min-height: 0; }
.c99-slot--band .c99-slot__box { width: 32.5rem; min-height: 25rem; }
.c99-slot--leader .c99-slot__box { width: 32.5rem; min-height: 25rem; }
.c99-slot--inarticle .c99-slot__box { width: 32.5rem; min-height: 25rem; }
.c99-slot--infeed .c99-slot__box { width: 32.5rem; min-height: 25rem; }
@media (min-width: 48em) {
	.c99-slot--band .c99-slot__box { width: 100%; min-height: 36.6rem; }
	.c99-slot--leader .c99-slot__box { width: 100%; min-height: 9rem; }
	.c99-slot--inarticle .c99-slot__box { width: 100%; min-height: 36.6rem; }
	.c99-slot--infeed .c99-slot__box { width: 100%; min-height: 25rem; }
}
.c99-prose .c99-slot--inarticle { margin-inline: calc(50% - 50vw + 0px); }
@media (min-width: 48em) { .c99-prose .c99-slot--inarticle { margin-inline: 0; } }

/* Most read: numbered list (measured 28px number column, 18/18 titles, rule 20px under each) */
.c99-mostread__title { font: 700 2.4rem/1.1 var(--c99-font-head); margin: 0 0 2.4rem; }
.c99-mostread__list { list-style: none; counter-reset: c99mr; margin: 0; padding: 0; }
.c99-mostread__list li { counter-increment: c99mr; position: relative; padding: 0 0 2rem 2.8rem; margin-bottom: 2rem; border-bottom: 1px solid var(--c99-ink); }
.c99-mostread__list li:last-child { margin-bottom: 0; }
.c99-mostread__list li::before { content: counter(c99mr); position: absolute; left: 0; top: 0; font: 700 1.8rem/1 var(--c99-font-mark); color: var(--c99-alpenglow-text); }
.c99-mostread__list a { font: 500 1.8rem/1 var(--c99-font-head); color: var(--c99-text); text-decoration: none; }
.c99-mostread__list a:hover { text-decoration: underline; text-decoration-color: var(--c99-accent); }

/* Newsletter (The Switchback) */
.c99-nl { border-top: 1px solid var(--c99-ink); background: var(--c99-surface); padding: 1.6rem 1.6rem 1.2rem; }
.c99-nl__title { display: inline; font: 700 1.5rem/1.3 var(--c99-font-ui); margin: 0; }
.c99-nl__text { display: inline; font: 400 1.5rem/1.3 var(--c99-font-ui); color: var(--c99-text-2); margin: 0; }
.c99-nl__copy svg { width: 2.6rem; height: 2.6rem; color: var(--c99-sound); }
.c99-nl__fields { display: flex; gap: 1rem; margin-top: 1.6rem; }
.c99-nl__fields input { flex: 1 1 auto; min-width: 0; height: 4rem; font: 400 1.5rem/1 var(--c99-font-ui); padding: 0.8rem 1.2rem; border: 1px solid var(--c99-ink); border-radius: var(--c99-radius); background: var(--c99-white); color: var(--c99-ink); }
.c99-nl__btn { flex: none; height: 4rem; padding: 0 2rem; font: 700 1.2rem/1 var(--c99-font-ui); letter-spacing: 0.06rem; text-transform: uppercase; color: var(--c99-paper); background: var(--c99-sound); border: 1px solid var(--c99-sound); border-radius: var(--c99-radius); cursor: pointer; }
.c99-nl__btn:hover { background: var(--c99-sound-deep); }
.c99-nl__fine { font: 400 1.2rem/1.3 var(--c99-font-ui); color: var(--c99-meta); margin: 0.8rem 0 0; }
.c99-nl__fine a { color: inherit; }
.c99-nl--inline { margin: 4rem 0 2rem; }
@media (min-width: 48em) {
	.c99-nl--inline { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; align-items: start; }
	.c99-nl--inline .c99-nl__fields { margin-top: 0; }
	.c99-nl--inline .c99-nl__fine { grid-column: 1 / -1; }
}
.c99-nl--band { border: 0; background: var(--c99-sound-tint); padding: 3rem; }
.c99-nl--band .c99-nl__title { display: block; font: 700 2.6rem/1.1 var(--c99-font-head); margin: 1rem 0 0.6rem; }
.c99-nl--band .c99-nl__text { display: block; font: 400 1.6rem/1.4 var(--c99-font-text); }

/* Share row (30x30 bordered buttons, 8px apart) */
.c99-share { display: flex; gap: 0.8rem; list-style: none; margin: 0; padding: 0; }
.c99-share__btn { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid var(--c99-ink); border-radius: 50%; color: var(--c99-ink); background: transparent; cursor: pointer; padding: 0; }
.c99-share__btn svg { width: 1.5rem; height: 1.5rem; }
.c99-share__btn:hover { background: var(--c99-sound); border-color: var(--c99-sound); color: var(--c99-paper); }
.c99-share__status:empty { display: none; }

/* Pagination */
.c99-pager { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.6rem; padding: 4rem 0; }
.c99-pager > :last-child { justify-self: end; }
.c99-pager__count { font: 600 1.4rem/1 var(--c99-font-ui); color: var(--c99-text-2); }

/* Venue card (measured: 600 wide, 1px border, 14px padding, 60px thumb, 21px name, 16px address) */
.c99-venue { border: 1px solid var(--c99-ink); background: var(--c99-surface); margin: 3rem 0; font-family: var(--c99-font-ui); }
.c99-venue__top { display: flex; gap: 1rem; align-items: center; padding: 1.4rem; }
.c99-venue__img, .c99-venue .c99-ph { flex: 0 0 6rem; width: 6rem; height: 6rem; object-fit: cover; }
.c99-venue__name { font: 700 2.1rem/1 var(--c99-font-head); margin: 0 0 0.4rem; }
.c99-venue__addr { font: 400 1.6rem/1.2 var(--c99-font-ui); color: var(--c99-text-2); }
a.c99-venue__addr { color: var(--c99-link); }
.c99-venue__rows { list-style: none; margin: 0; padding: 0 1.4rem 0.4rem; display: grid; gap: 0; }
.c99-venue__rows li { border-top: 1px solid var(--c99-granite-100); }
.c99-venue__rows a { display: flex; gap: 1.2rem; align-items: center; min-height: 4.4rem; font: 600 1.6rem/1.2 var(--c99-font-ui); text-decoration: none; overflow-wrap: anywhere; }
.c99-venue__rows svg { flex: none; width: 1.8rem; height: 1.8rem; }
.c99-venue__checked { margin: 0; padding: 0 1.4rem 1.2rem; }

/* Sources panel + updates log */
.c99-sources { border-top: 1px solid var(--c99-ink); border-bottom: 1px solid var(--c99-ink); margin: 3rem 0 0; font-family: var(--c99-font-ui); }
.c99-sources summary { display: flex; align-items: center; gap: 0.8rem; min-height: 4.8rem; cursor: pointer; font: 700 1.5rem/1 var(--c99-font-ui); list-style: none; }
.c99-sources summary::-webkit-details-marker { display: none; }
.c99-sources summary svg { width: 1.4rem; height: 1.4rem; margin-left: auto; transition: transform 0.2s; }
.c99-sources[open] summary svg { transform: rotate(45deg); }
.c99-sources ol { margin: 0 0 1.6rem; padding-left: 2rem; font: 400 1.4rem/1.5 var(--c99-font-ui); color: var(--c99-text-2); }
.c99-sources li + li { margin-top: 0.6rem; }
.c99-updates { margin: 3rem 0 0; font-family: var(--c99-font-ui); }
.c99-updates h2 { font: 700 1.5rem/1.2 var(--c99-font-ui); margin: 0 0 0.8rem; }
.c99-updates ul { list-style: none; margin: 0; padding: 0; font: 400 1.4rem/1.5 var(--c99-font-ui); color: var(--c99-text-2); }
.c99-updates time { font-weight: 700; color: var(--c99-text); margin-right: 0.6rem; }

/* See more (tags) row + editor box */
.c99-seemore { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem 1rem; font: 700 1.3rem/1.3 var(--c99-font-ui); margin: 2rem 0; }
.c99-seemore ul { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; list-style: none; margin: 0; padding: 0; }
.c99-seemore a { display: inline-block; font: 500 1.3rem/1 var(--c99-font-ui); padding: 0.6rem 0.9rem; border: 1px solid var(--c99-granite-300); border-radius: 99rem; text-decoration: none; color: var(--c99-text); }
.c99-seemore a:hover { border-color: var(--c99-sound); color: var(--c99-sound); }
.c99-editor { border-top: 1px solid var(--c99-granite-300); padding-top: 2rem; margin-top: 2rem; font-family: var(--c99-font-ui); }
.c99-editor__name { font: 700 1.6rem/1.2 var(--c99-font-ui); margin: 0 0 0.6rem; }
.c99-editor__name a { color: var(--c99-text); }
.c99-editor__bio { font: 400 1.4rem/1.45 var(--c99-font-ui); color: var(--c99-text-2); margin: 0 0 0.8rem; }
.c99-editor__links { font: 500 1.3rem/1.4 var(--c99-font-ui); margin: 0; color: var(--c99-meta); }

/* Map entry (map guide) — refined in the T8 build */
.c99-entry { border-top: var(--c99-rule-accent-w) solid var(--c99-alpenglow); }
.c99-entry::before { content: ""; display: block; border-top: 1px solid var(--c99-ink); margin-top: 2px; margin-bottom: var(--c99-space-3); }
.c99-save { flex: none; display: inline-flex; align-items: center; gap: 0.5rem; min-height: 3.2rem; font: 700 1.2rem/1 var(--c99-font-ui); letter-spacing: 0.04rem; text-transform: uppercase; color: var(--c99-sound); background: var(--c99-surface); border: 1px solid var(--c99-sound); border-radius: 99rem; padding: 0.6rem 1.2rem; cursor: pointer; }
.c99-save svg { width: 1.4rem; height: 1.4rem; }
.c99-save[aria-pressed="true"] { background: var(--c99-sound); color: var(--c99-paper); }
.c99-save[aria-pressed="true"] svg { fill: currentColor; }
/* Wrap rather than overflow at large text sizes (WCAG 1.4.4 / 1.4.10) */
.c99-share { flex-wrap: wrap; }
.c99-venue__top > div { min-width: 0; }
.c99-venue__name, .c99-venue__addr { overflow-wrap: anywhere; }

/* Placeholder must stay a centred grid even when it carries an image class */
span.c99-ph { display: grid !important; place-items: center; }
.c99-seemore ul { align-items: center; } .c99-seemore li { display: flex; }

.c99-nl__fields { flex-wrap: wrap; }
.c99-nl__fields input { flex-basis: 16rem; }
.c99-nl--band .c99-nl__fine { color: var(--c99-text-2); }
