/* Responsive: 1280 · 1100 · 1024 · 900 · 768 · 600 · 480 · 360 */

@media (max-width: 1280px) {
	:root { --gutter: 20px; }
	.col-band__inner { padding-inline: 32px; }
	.footer-cols { gap: 24px 18px; }
	.menu--primary > li:not(:last-child)::after { margin: 0 20px; }
	.topbar__center { gap: 32px; }
}

@media (max-width: 1100px) {
	:root { --sidebar-width: 280px; }
	.entry--dated { grid-template-columns: 140px 220px minmax(0, 1fr); gap: 0 18px; }
	.entry--dated.no-date { grid-template-columns: 220px minmax(0, 1fr); }
	.entry__title { font-size: 26px; }
	.hero-headline__title { font-size: calc(var(--fs-h1) * .9); }
	.cols-grid { gap: 26px 28px; }
	.col-card { grid-template-columns: 112px minmax(0, 1fr); }
	.avatar--square { width: 112px; height: 112px; }
	.menu { font-size: 16px; }
	.menu--primary > li:not(:last-child)::after { margin: 0 14px; }
	.footer-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: stretch; }
}

@media (max-width: 1024px) {
	.hero-grid { grid-template-columns: minmax(0, 1fr); }
	.hero-side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
	.hero-side .pep-ad { margin: 0; }
	.news-grid.has-side { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.news-grid__side { grid-column: 1 / -1; }
	.jobs-grid, .jobs-grid.has-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jobs-grid__list, .jobs-grid.has-side .jobs-grid__list { grid-column: span 2; }
	.jobs-grid__side { grid-column: span 2; }
	.blog-grid.has-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blog-grid__list { grid-column: span 2; }
	.econ-grid.has-quotes { grid-template-columns: minmax(0, 1fr); }
	.culture-grid.has-side { grid-template-columns: minmax(0, 1fr); }
	.culture-side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
	.clubs.has-side { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.clubs__side { grid-column: 1 / -1; }
	.sports-list.has-side { grid-template-columns: minmax(0, 1fr); }
	.sports-list__grid { grid-column: auto; }
	.mags__track { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: calc((100% - 2 * var(--gap)) / 3); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
	.mags__track::-webkit-scrollbar { display: none; }
	.mags__track > * { scroll-snap-align: start; }
	.cols-strip__track { grid-auto-columns: calc((100% - 1 * var(--gap)) / 2); }
	.grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rank--row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.radio-bar { grid-template-columns: minmax(0, 1fr); }
	.single__grid.has-sidebar { grid-template-columns: minmax(0, 1fr) 280px; }
	.single--columnist .single__grid { padding-inline: 0 0; grid-template-columns: minmax(0, 1fr) 260px; }
	.col-head { padding-inline: 56px 0; }
	.footer-bottom__right { align-items: flex-start; margin-left: 0; }
}

@media (max-width: 900px) {
	.archive.has-sidebar { grid-template-columns: minmax(0, 1fr); }
	.archive .sidebar { margin-top: 36px; }
	.archive__list--grid, .archive:not(.has-sidebar) .archive__list--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single__grid.has-sidebar, .single--columnist .single__grid { grid-template-columns: minmax(0, 1fr); }
	.sidebar--single { margin-top: 32px; }
	.cols-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.grid--4, .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.econ-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.econ-content > .card { grid-column: 1 / -1; }
	.mag-single { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
	.native__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
	:root { --gutter: 16px; }

	/* Header: hamburger left, logo perfectly centered, search/theme right */
	.topbar { display: none; }
	.branding { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); padding-block: 10px 12px; gap: 8px; }
	.branding__left { grid-column: 1; grid-row: 1; }
	.branding__logo { grid-column: 2; grid-row: 1; justify-self: center; }
	.branding__right { grid-column: 3; grid-row: 1; justify-self: end; }
	.tool-box { border: 0; background: none; }
	.tool-box .tool-btn--search { display: none; }
	.tool-box .tool-btn + .tool-btn { border: 0; }
	.tool-btn { width: 42px; height: 42px; border-radius: 6px; }
	.mobile-actions { display: inline-flex; align-items: center; gap: 2px; }
	.mobile-actions .theme-toggle { margin: 0; width: 42px; height: 42px; }
	.edition { display: none; }
	.logo__desk { display: none; }
	.logo__mob { display: inline-block; }
	.logo__mob .logo-img { width: var(--logo-mob-w); max-width: min(var(--logo-mob-w), calc(100vw - 2 * var(--gutter) - 2 * 88px)); }
	.branding__logo { min-width: 0; max-width: calc(100vw - 2 * var(--gutter) - 2 * 88px); }
	.logo__mob { max-width: 100%; line-height: 1; }
	.logo__mob .logo-text { display: block; font-size: clamp(14px, 5.4vw, 26px); line-height: 1.05; text-align: center; white-space: normal; overflow-wrap: anywhere; }
	.logo-text { font-size: 26px; }
	.slogan { margin-top: 6px; font-size: 9.5px; letter-spacing: .32em; }
	.main-nav { display: none; }
	.main-nav-wrap { border-top: 3px solid var(--accent); }
	.has-sticky.sticky-nav .main-nav-wrap { position: static; }
	.has-sticky.sticky-nav .site-head { display: block; position: sticky; top: 0; z-index: 100; background: var(--header-bg); }
	.has-sticky.sticky-nav.is-scrolled .slogan { display: none; }
	.ticker__inner { height: 36px; }

	.hero-headline { margin-bottom: 24px; }
	.hero-headline__title { font-size: 28px; }
	.hero-big { grid-template-columns: minmax(0, 1fr); }
	.hero-small { grid-template-columns: minmax(0, 1fr); }
	.hero-side { grid-template-columns: minmax(0, 1fr); }
	.card--big .card__title { font-size: 20px; }
	.sec-head__title, .quotes__title { font-size: 26px; }
	.sec-head--bar { padding-inline: 16px; min-height: 48px; }
	.news-grid, .news-grid.has-side { grid-template-columns: minmax(0, 1fr); }
	.econ-content { grid-template-columns: minmax(0, 1fr); }
	.clubs, .clubs.has-side { grid-template-columns: minmax(0, 1fr); }
	.sports-list__grid { grid-template-columns: minmax(0, 1fr); }
	.culture-minis { grid-template-columns: minmax(0, 1fr); }
	.culture-side { grid-template-columns: minmax(0, 1fr); }
	.cols-grid { grid-template-columns: minmax(0, 1fr); }
	.mags__track { grid-auto-columns: calc((100% - var(--gap)) / 2); }
	.card--h { grid-template-columns: 120px minmax(0, 1fr); gap: 12px; }
	.pill-btn { font-size: 20px; justify-self: start; }
	.radio-bar__platforms { gap: 20px; }
	.radio-bar__platforms .platform { font-size: 19px; }
	.rank__n { font-size: 52px; }
	.rank--row .rank__n { font-size: 56px; }

	/* Category */
	.archive { padding-block: 28px 20px; }
	.archive__head { margin-bottom: 22px; }
	.entry--dated, .entry--dated.no-date, .entry--dated.no-image { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 22px 0; }
	.entry__when { display: flex; flex-wrap: wrap; gap: 6px 20px; order: 0; }
	.entry__when-row { gap: 8px; }
	.entry--plain { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.entry__title { font-size: 23px; }
	.entry--plain .entry__title { font-size: 22px; }
	.entry__excerpt { font-size: 16px; }
	.entry--compact { grid-template-columns: 84px minmax(0, 1fr); gap: 12px; }
	.entry--compact .entry__title { font-size: 17px; }

	/* Single */
	.single__title { font-size: min(var(--single-h1), 32px); line-height: 1.15; }
	.single__sub { font-size: 18px; }
	.single-meta { margin-top: 18px; }
	.col-head { padding-inline: 0; }
	.col-head__tools { position: static; margin-bottom: 14px; }
	.col-head .fontctl { flex-direction: row; display: inline-flex; }
	.col-head .fontctl button + button { border-top: 0; border-left: 1px solid var(--border); }
	.col-band__inner { padding: 14px 16px; gap: 14px; }
	.avatar--ring { width: 76px; height: 76px; border-width: 4px; }
	.col-band__name { font-size: 24px; }
	.col-band__person { font-size: 14px; margin-top: 8px; }
	.related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
	.related__grid > *, .related__grid > :nth-child(5n+4), .related__grid > :nth-child(5n+5) { grid-column: span 1; }
	.related__grid > :nth-child(5n+4) .card__title, .related__grid > :nth-child(5n+5) .card__title { font-size: 16px; }
	.related__title { font-size: 26px; }
	.mag-single { grid-template-columns: minmax(0, 1fr); }
	.mag-single__cover { max-width: 260px; }
	.entry-content .alignleft, .entry-content .alignright { float: none; margin: 1em 0; max-width: 100%; }
	.report__row { grid-template-columns: minmax(0, 1fr); }
	.wa-cta { padding: 14px; }
	.resp-author { flex-wrap: wrap; }

	/* Footer */
	.footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 26px 30px; }
	.footer-bottom { flex-direction: column; align-items: flex-start; padding-block: 28px 40px; }
	.footer-bottom__group { border-left: 0; padding-left: 0; }
	.footer-bottom__right { align-items: flex-start; margin-left: 0; }
	.footer-line { height: 12px; }

	.radio-dock { left: 8px; right: 8px; bottom: 8px; max-width: none; }
	.radio-vol input { width: 64px; }
	.newsletter-pill { bottom: 80px; right: 10px; }
	.search-field { font-size: 16px; }
}

@media (max-width: 600px) {
	.pep-justify .entry-content p { hyphens: auto; -webkit-hyphens: auto; }
	.grid--4, .grid--3, .grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
	.native__grid { grid-template-columns: minmax(0, 1fr); }
	.jobs-grid, .jobs-grid.has-side, .blog-grid.has-list, .blog-grid { grid-template-columns: minmax(0, 1fr); }
	.jobs-grid__list, .jobs-grid__side, .blog-grid__list { grid-column: auto; }
	.rank--row { grid-template-columns: minmax(0, 1fr); }
	.archive__list--grid, .archive:not(.has-sidebar) .archive__list--grid, .archive__list--mosaic { grid-template-columns: minmax(0, 1fr); }
	.cols-strip__track { grid-auto-columns: 86%; }
	.mags__track { grid-auto-columns: 46%; }
	.single-foot { flex-direction: column; }
}

@media (max-width: 480px) {
	.grid--4, .grid--3, .grid--5 { grid-template-columns: minmax(0, 1fr); }
	.hero-headline__title { font-size: 25px; }
	.section--list .card--v { grid-template-columns: minmax(0, 1fr); }
	.footer-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 14px; }
	.footer-col__title { font-size: 18px; }
	.footer-menu { font-size: 14.5px; }
	.quotes__box { padding-inline: 16px; }
	.slogan { display: none; }
	.pagination { gap: 6px; }
	.pg-btn { width: 36px; height: 36px; }
	.pg-total { margin-inline: 2px 6px; }
}

@media (max-width: 380px) {
	:root { --gutter: 14px; }
	.tool-btn, .mobile-actions .theme-toggle { width: 40px; height: 40px; }
	.logo__mob .logo-img { max-width: min(var(--logo-mob-w), calc(100vw - 2 * var(--gutter) - 2 * 84px)); }
	.branding__logo { max-width: calc(100vw - 2 * var(--gutter) - 2 * 84px); }
	.footer-cols { grid-template-columns: minmax(0, 1fr); }
	.entry__title { font-size: 21px; }
}
