/* ==========================================================================
   Tablet - intermediate step before the full mobile layout kicks in at 900px
   ========================================================================== */
@media (max-width: 1200px) and (min-width: 901px) {
	.ttr-grid-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   Tablet / mobile - loosely mirrors the 390px mobile artboard in the design.
   Breakpoint chosen at 900px (rather than a fixed device width) so it works
   across real device sizes, not just the one artboard width shown in Figma.
   ========================================================================== */
@media (max-width: 900px) {

	/* Hide the date on mobile - not enough room next to search/subscribe */
	.ttr-masthead__date {
		display: none;
	}

	/* Note: nav logo image size is set via inline style in front-page.php
	   (needed !important to survive a plugin CSS conflict), so it stays
	   fixed at 52px across breakpoints rather than shrinking here - an
	   external media query can't win against inline !important anyway. */
	.ttr-masthead__logo-text {
		font-size: 16px;
	}

	/* Masthead - collapse desktop nav into hamburger + horizontal cat scroll */
	.ttr-masthead__inner {
		padding: 13px 16px;
	}

	.ttr-nav,
	.ttr-search-toggle {
		display: none;
	}

	.ttr-btn-accent {
		display: none;
	}

	.ttr-mobile-toggle {
		display: flex;
	}

	/* Hamburger reveals the full nav as a stacked dropdown (toggled via navigation.js) */
	.ttr-masthead--open .ttr-nav {
		display: flex;
		flex-direction: column;
		gap: 0;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--ttr-ink);
		padding: 8px 16px 16px;
		z-index: 20;
	}

	.ttr-masthead--open .ttr-nav a {
		padding: 10px 0;
		border-bottom: 1px solid #16264a;
	}

	.ttr-masthead {
		position: relative;
	}

	.ttr-mobile-cats {
		display: flex;
		gap: 18px;
		padding: 0 16px 12px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.ttr-mobile-cats a {
		font-size: 12.5px;
		font-weight: 500;
		color: #c4c5ca;
		text-decoration: none;
		white-space: nowrap;
		padding-bottom: 2px;
		border-bottom: 2px solid transparent;
		flex: 0 0 auto;
	}

	.ttr-mobile-cats a.is-active {
		font-weight: 600;
		color: #fff;
		border-bottom-color: var(--ttr-accent);
	}

	.ttr-logo__text {
		font-size: 17px;
	}

	.ttr-logo__mark {
		width: 24px;
		height: 24px;
	}

	/* Featured - stack lead + top stories, lead card becomes vertical */
	.ttr-featured {
		padding: 20px 16px 8px;
	}

	.ttr-featured__grid {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.ttr-top-stories {
		border-left: none;
		padding-left: 0;
		padding-top: 8px;
	}

	.ttr-card--hero {
		flex-direction: column;
		gap: 0;
	}

	.ttr-card--hero .ttr-card__media {
		flex: none;
	}

	.ttr-card--hero .ttr-card__media--4-3 {
		aspect-ratio: 16 / 10;
	}

	.ttr-card__body--hero {
		padding: 13px 0 0;
	}

	.ttr-card__title--hero {
		font-size: 22px;
	}

	.ttr-card__dek {
		font-size: 13.5px;
		max-width: none;
	}

	/* Trust strip - stack into rows */
	.ttr-trust-strip__inner {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 18px 16px;
	}

	.ttr-trust-strip__editors {
		border-left: none;
		border-right: none;
		border-top: 1px solid var(--ttr-hairline);
		padding: 14px 0 0;
		flex-wrap: wrap;
		gap: 16px;
	}

	.ttr-trust-strip__facts {
		display: none; /* de-prioritized on small screens, matches mobile artboard */
	}

	/* Main + sidebar - stack, sidebar below main */
	.ttr-main-wrap {
		grid-template-columns: 1fr;
		padding: 24px 16px;
		gap: 30px;
	}

	.ttr-section__head h2 {
		font-size: 20px;
	}

	.ttr-grid-3 {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.ttr-grid-2 {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.ttr-full-sections {
		padding: 6px 16px 32px;
	}

	.ttr-grid-4 {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.ttr-full-sections .ttr-grid-3 {
		grid-template-columns: 1fr;
		gap: 0;
	}

	/* Footer - two columns instead of four */
	.ttr-footer__inner {
		padding: 26px 16px 22px;
	}

	.ttr-footer__top {
		grid-template-columns: 1fr 1fr;
		gap: 14px 20px;
		padding-bottom: 18px;
	}

	.ttr-footer__brand {
		grid-column: 1 / -1;
	}

	.ttr-footer__bottom {
		flex-direction: column;
		align-items: center;
	}

	/* Article page */
	.ttr-article-header {
		padding: 22px 16px 0;
	}

	.ttr-article-title {
		font-size: 27px;
	}

	.ttr-article-dek {
		font-size: 15px;
	}

	.ttr-byline--article {
		text-align: left;
	}

	.ttr-article-header__inner {
		text-align: left;
	}

	.ttr-article-header .ttr-kicker {
		justify-content: flex-start;
	}

	.ttr-article-wrap {
		grid-template-columns: 1fr;
		padding: 8px 16px 40px;
		gap: 32px;
	}

	.ttr-sidebar--article {
		position: static;
	}

	.ttr-prose {
		font-size: 16px;
	}

	.ttr-prose h2 {
		font-size: 23px;
	}

	.ttr-prose h3 {
		font-size: 19px;
	}

	.ttr-related .ttr-grid-3 {
		grid-template-columns: 1fr;
	}

	/* Archive / search / 404 */
	.ttr-archive-header {
		padding: 22px 16px 20px;
	}

	.ttr-archive-title {
		font-size: 26px;
	}

	.ttr-404 {
		padding: 40px 16px 50px;
	}

	.ttr-404__title {
		font-size: 24px;
	}
}

@media (max-width: 480px) {
	.ttr-card__title--hero {
		font-size: 19px;
	}

	.ttr-footer__top {
		grid-template-columns: 1fr;
	}
}
