/*
 * ThreadViral — Main Stylesheet
 * All layout, typography, components, and responsive rules.
 * Colors/fonts/sizes come from CSS custom properties set by
 * inc/customizer.php > threadviral_customizer_css_output().
 * ============================================================ */

/* ============================================================
   1. RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
	font-size: 16px;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--tv-font-body);
	color: var(--tv-text);
	background: var(--tv-bg);
	line-height: 1.65;
	overflow-x: hidden;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--tv-link); text-decoration: none; }
a:hover { text-decoration: underline; }
ul, ol { list-style: none; }
button { cursor: pointer; background: none; border: none; font-family: inherit; }

/* ============================================================
   2. SKIP LINK
   ============================================================ */
.tv-skip-link {
	position: absolute;
	top: -100%;
	left: 1rem;
	background: var(--tv-primary);
	color: #fff;
	padding: .5rem 1rem;
	border-radius: 0 0 4px 4px;
	font-weight: 600;
	z-index: 9999;
	transition: top .2s;
}
.tv-skip-link:focus { top: 0; }

/* ============================================================
   3. TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--tv-font-heading);
	font-weight: 700;
	line-height: 1.2;
	color: var(--tv-text);
}
h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); }
h2 { font-size: clamp(1.35rem, 3vw, 1.9rem); }
h3 { font-size: clamp(1.1rem, 2.5vw, 1.4rem); }
h4 { font-size: 1.1rem; }

p { margin-bottom: 1.25rem; }
p:last-child { margin-bottom: 0; }

blockquote {
	border-left: 4px solid var(--tv-primary);
	padding: 1rem 1.5rem;
	margin: 1.5rem 0;
	background: #f8f8f8;
	font-style: italic;
}

/* ============================================================
   4. UTILITY CLASSES
   ============================================================ */
.screen-reader-text {
	clip: rect(1px,1px,1px,1px);
	clip-path: inset(50%);
	height: 1px; width: 1px;
	overflow: hidden;
	position: absolute;
	word-wrap: normal;
}

/* ============================================================
   5. LAYOUT: CONTAINER & GRID
   ============================================================ */
.tv-container {
	width: 100%;
	max-width: var(--tv-container-width, 1200px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}

.tv-container--single {
	max-width: calc(var(--tv-single-width, 780px) + 4rem);
}

.tv-container--with-sidebar {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 2.5rem;
	align-items: start;
	max-width: var(--tv-container-width, 1200px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
	padding-block: 2rem;
}

.tv-container--page {
	max-width: calc(var(--tv-single-width, 780px) + 4rem);
	padding-block: 2rem;
}

.tv-container--404 { padding-block: 4rem; }

/* Grid: 3 columns → 2 → 1 */
.tv-grid { display: grid; gap: 1.5rem; }
.tv-grid--3col { grid-template-columns: repeat(3, 1fr); }

/* ============================================================
   6. BUTTONS
   ============================================================ */
.tv-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .6rem 1.4rem;
	border-radius: 4px;
	font-family: var(--tv-font-heading);
	font-weight: 600;
	font-size: .9rem;
	transition: opacity .15s, transform .15s;
	border: 2px solid transparent;
}
.tv-btn:hover { opacity: .85; transform: translateY(-1px); text-decoration: none; }
.tv-btn--primary { background: var(--tv-primary); color: #fff; }
.tv-btn--newsletter { background: var(--tv-primary); color: #fff; }
.tv-btn--load-more {
	display: block;
	margin: 2rem auto 0;
	padding: .75rem 2.5rem;
	background: transparent;
	border: 2px solid var(--tv-primary);
	color: var(--tv-primary);
	border-radius: 4px;
	font-weight: 700;
	font-family: var(--tv-font-heading);
	font-size: .95rem;
	transition: background .2s, color .2s;
}
.tv-btn--load-more:hover { background: var(--tv-primary); color: #fff; }

.tv-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	transition: background .15s;
	color: var(--tv-text);
}
.tv-icon-btn:hover { background: rgba(0,0,0,.07); }

/* ============================================================
   7. ICONS (CSS-drawn SVG replacements — no icon font needed)
   ============================================================ */
.tv-icon { display: inline-block; width: 20px; height: 20px; }

.tv-icon--search {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tv-icon--share {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'/%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tv-icon--arrow-up {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tv-icon--link {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Social icons — using colored text/pseudo approach for reliability */
.tv-icon--facebook { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231877f2'%3E%3Cpath d='M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z'/%3E%3C/svg%3E") center/contain no-repeat; }
.tv-icon--twitter { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000000'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.744l7.737-8.835L1.254 2.25H8.08l4.264 5.637L18.244 2.25zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z'/%3E%3C/svg%3E") center/contain no-repeat; }
.tv-icon--whatsapp { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2325d366'%3E%3Cpath d='M12.031 2C6.491 2 2 6.491 2 12.031c0 1.932.535 3.736 1.459 5.279L2 22l4.834-1.423A10.012 10.012 0 0 0 12.031 22C17.57 22 22 17.509 22 12.031 22 6.491 17.57 2 12.031 2zm5.052 13.981c-.214.601-1.257 1.148-1.715 1.202-.458.054-.471.363-2.969-.629-2.998-1.19-4.82-4.268-4.968-4.469-.147-.201-1.203-1.601-1.203-3.054 0-1.454.758-2.168 1.028-2.465.269-.296.588-.37.784-.37.197 0 .393.002.565.01.181.009.424-.069.664.507.24.576.816 1.994.887 2.14.072.146.12.316.023.508-.097.193-.146.313-.289.481-.144.168-.303.374-.432.503-.144.143-.293.298-.126.587.168.289.745 1.232 1.601 1.996 1.099.98 2.026 1.283 2.315 1.428.288.144.457.12.625-.073.168-.193.719-.839.911-1.128.192-.29.384-.242.648-.145.264.096 1.674.789 1.961.934.288.144.48.216.551.336.072.12.072.697-.142 1.3z'/%3E%3C/svg%3E") center/contain no-repeat; }
.tv-icon--instagram { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e1306c'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z'/%3E%3C/svg%3E") center/contain no-repeat; }
.tv-icon--youtube { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ff0000'%3E%3Cpath d='M23.495 6.205a3.007 3.007 0 0 0-2.088-2.088c-1.87-.501-9.396-.501-9.396-.501s-7.507-.01-9.396.501A3.007 3.007 0 0 0 .527 6.205a31.247 31.247 0 0 0-.522 5.805 31.247 31.247 0 0 0 .522 5.783 3.007 3.007 0 0 0 2.088 2.088c1.868.502 9.396.502 9.396.502s7.506 0 9.396-.502a3.007 3.007 0 0 0 2.088-2.088 31.247 31.247 0 0 0 .5-5.783 31.247 31.247 0 0 0-.5-5.805zM9.609 15.601V8.408l6.264 3.602z'/%3E%3C/svg%3E") center/contain no-repeat; }
.tv-icon--tiktok { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000000'%3E%3Cpath d='M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-2.88 2.5 2.89 2.89 0 0 1-2.89-2.89 2.89 2.89 0 0 1 2.89-2.89c.28 0 .54.04.79.1V9.01a6.33 6.33 0 0 0-.79-.05 6.34 6.34 0 0 0-6.34 6.34 6.34 6.34 0 0 0 6.34 6.34 6.34 6.34 0 0 0 6.33-6.34V8.69a8.18 8.18 0 0 0 4.78 1.52V6.76a4.85 4.85 0 0 1-1.01-.07z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ============================================================
   8. BREAKING NEWS TICKER
   ============================================================ */
.tv-ticker {
	display: flex;
	align-items: center;
	background: var(--tv-primary);
	color: #fff;
	height: 36px;
	overflow: hidden;
	position: relative;
	z-index: 101;
}
.tv-ticker__label {
	flex-shrink: 0;
	padding: 0 1rem;
	font-family: var(--tv-font-heading);
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: rgba(0,0,0,.15);
	align-self: stretch;
	display: flex;
	align-items: center;
}
.tv-ticker__track { flex: 1; overflow: hidden; }
.tv-ticker__list {
	display: flex;
	gap: 2.5rem;
	animation: tv-ticker-scroll 28s linear infinite;
	white-space: nowrap;
}
.tv-ticker__list:hover { animation-play-state: paused; }
.tv-ticker__item a { color: #fff; font-size: .85rem; }
.tv-ticker__close {
	flex-shrink: 0;
	color: #fff;
	font-size: 1.2rem;
	padding: 0 .75rem;
	opacity: .8;
	background: none;
	border: none;
	cursor: pointer;
}
@keyframes tv-ticker-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* ============================================================
   9. HEADER
   ============================================================ */
.tv-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid #eee;
	box-shadow: 0 1px 4px rgba(0,0,0,.06);
	transition: padding .25s, box-shadow .25s;
}
.tv-header.is-scrolled {
	box-shadow: 0 2px 12px rgba(0,0,0,.1);
}
.tv-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	max-width: var(--tv-container-width, 1200px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
	height: 64px;
}
.tv-header__branding { flex-shrink: 0; }
.tv-header__logo img,
.tv-header__logo-img { max-height: 44px; width: auto; }
.tv-header__logo--dark { display: none; }
.tv-header__site-title {
	font-family: var(--tv-font-heading);
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--tv-text);
}

/* Nav */
.tv-nav--desktop { flex: 1; }
.tv-nav__list { display: flex; gap: .25rem; align-items: center; }
.tv-nav__item { position: relative; }
.tv-nav__link {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding: .5rem .75rem;
	font-family: var(--tv-font-heading);
	font-size: .9rem;
	font-weight: 600;
	color: var(--tv-text);
	border-radius: 4px;
	transition: color .15s, background .15s;
}
.tv-nav__link:hover,
.tv-nav__item--has-mega:hover > .tv-nav__link {
	color: var(--tv-primary);
	background: rgba(0,0,0,.04);
	text-decoration: none;
}

/* Mega menu chevron */
.tv-nav__chevron {
	width: 12px; height: 12px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .2s;
	display: inline-block;
}
.tv-nav__item--has-mega:hover .tv-nav__chevron,
.tv-nav__item--has-mega .tv-nav__link[aria-expanded="true"] .tv-nav__chevron {
	transform: rotate(225deg) translateY(-2px);
}

/* Mega dropdown panel */
.tv-mega-menu__panel {
	display: none;
	position: absolute;
	top: calc(100% + 4px);
	left: 50%;
	transform: translateX(-50%);
	min-width: 220px;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 8px;
	box-shadow: 0 8px 32px rgba(0,0,0,.12);
	padding: .75rem 0;
	z-index: 200;
}
.tv-nav__item--has-mega:hover .tv-mega-menu__panel,
.tv-nav__item--has-mega:focus-within .tv-mega-menu__panel {
	display: block;
}
.tv-mega-menu__list { padding: 0; }
.tv-nav__sub-item { }
.tv-nav__sub-link {
	display: block;
	padding: .5rem 1.25rem;
	font-size: .875rem;
	color: var(--tv-text);
	transition: color .15s, background .15s;
}
.tv-nav__sub-link:hover { color: var(--tv-primary); background: #f8f8f8; text-decoration: none; }

/* Header actions */
.tv-header__actions {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-shrink: 0;
	margin-left: auto;
}
/* Hamburger always hidden on desktop, shown on mobile via responsive block below */
.tv-header__mobile-toggle { display: none; }

/* Hamburger */
.tv-hamburger { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.tv-hamburger span {
	display: block; height: 2px; background: var(--tv-text);
	border-radius: 2px;
	transition: transform .3s, opacity .3s;
}

/* Progress bar */
.tv-progress-bar {
	position: absolute;
	bottom: -2px; left: 0;
	height: 3px;
	width: 0%;
	background: var(--tv-primary);
	transition: width .1s linear;
}

/* ============================================================
   10. SEARCH OVERLAY
   ============================================================ */
.tv-search-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.7);
	z-index: 300;
	display: flex;
	align-items: flex-start;
	padding-top: 80px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s;
}
.tv-search-overlay.is-open {
	opacity: 1;
	pointer-events: all;
}
.tv-search-overlay__inner {
	width: 100%;
	max-width: 680px;
	margin-inline: auto;
	padding-inline: 1rem;
	position: relative;
}
.tv-search-overlay__form {
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0,0,0,.2);
}
.tv-search-overlay__input {
	flex: 1;
	border: none;
	outline: none;
	padding: 1rem 1.25rem;
	font-size: 1.1rem;
	font-family: var(--tv-font-body);
}
.tv-search-overlay__results {
	margin-top: .75rem;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
.tv-search-overlay__list { padding: .5rem 0; }
.tv-search-overlay__item-link {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .6rem 1rem;
	transition: background .15s;
}
.tv-search-overlay__item-link:hover { background: #f5f5f5; text-decoration: none; }
.tv-search-overlay__item-thumb img { width: 56px; height: 40px; object-fit: cover; border-radius: 4px; }
.tv-search-overlay__item-title { font-size: .9rem; font-weight: 600; color: var(--tv-text); }
.tv-search-overlay__no-results { padding: 1rem; color: #888; font-size: .9rem; }
.tv-search-overlay__close {
	position: absolute;
	top: -50px; right: 1rem;
	font-size: 1.8rem;
	color: #fff;
	background: none;
	border: none;
	cursor: pointer;
	line-height: 1;
}

/* ============================================================
   11. MOBILE NAV
   ============================================================ */
.tv-mobile-nav {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(320px, 85vw);
	background: #fff;
	z-index: 400;
	transform: translateX(100%);
	transition: transform .3s cubic-bezier(.4,0,.2,1);
	display: flex;
	flex-direction: column;
	box-shadow: -4px 0 24px rgba(0,0,0,.15);
	overflow-y: auto;
}
.tv-mobile-nav.is-open { transform: translateX(0); }

/* Dark backdrop behind mobile nav */
.tv-mobile-nav-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.5);
	z-index: 399;
	opacity: 0;
	transition: opacity .3s;
}
.tv-mobile-nav-backdrop.is-open {
	display: block;
	opacity: 1;
}
.tv-mobile-nav__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #eee;
}
.tv-mobile-nav__title { font-family: var(--tv-font-heading); font-weight: 700; font-size: 1rem; }
.tv-nav--mobile { padding: .5rem 0; }

/* CRITICAL: accordion list must be vertical — flex overrides from desktop nav reset করছি */
.tv-nav__list--accordion {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	width: 100%;
}
.tv-nav__list--accordion .tv-nav__item {
	width: 100%;
	border-bottom: 1px solid #f0f0f0;
	position: static;
}
.tv-nav__list--accordion .tv-nav__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .85rem 1.25rem;
	width: 100%;
	font-size: .95rem;
	border-radius: 0;
}
.tv-nav__list--accordion .tv-mega-menu__panel {
	display: none;
	position: static !important;
	transform: none !important;
	box-shadow: none !important;
	border: none !important;
	border-radius: 0 !important;
	background: #f5f5f5;
	padding: .25rem 0;
	min-width: 0;
	width: 100%;
	/* sub-menu items vertical stack */
	flex-direction: column;
}
.tv-nav__list--accordion .tv-mega-menu__list {
	display: flex;
	flex-direction: column;
	width: 100%;
}
.tv-nav__list--accordion .tv-nav__item--has-mega.is-open .tv-mega-menu__panel {
	display: block;
}
.tv-nav__list--accordion .tv-nav__sub-item {
	width: 100%;
}
.tv-nav__list--accordion .tv-nav__sub-link {
	display: block;
	padding: .65rem 1.25rem .65rem 2rem;
	width: 100%;
	font-size: .88rem;
	color: #555;
	border-radius: 0;
}
.tv-nav__list--accordion .tv-nav__sub-link:hover {
	color: var(--tv-primary);
	background: #ebebeb;
}
.tv-mobile-nav__newsletter { margin: 1rem 1.25rem; }

/* ============================================================
   12. POST CARDS
   ============================================================ */
.tv-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	transition: transform .2s, box-shadow .2s;
}
.tv-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(0,0,0,.1);
}
.tv-card__media { display: block; overflow: hidden; aspect-ratio: 16/9; }
.tv-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.tv-card:hover .tv-card__img { transform: scale(1.04); }
.tv-card__body { padding: 1rem; flex: 1; display: flex; flex-direction: column; gap: .4rem; }

.tv-card__category {
	display: inline-block;
	font-family: var(--tv-font-heading);
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--tv-primary);
}
.tv-card__category:hover { text-decoration: none; opacity: .8; }

.tv-card__title {
	font-family: var(--tv-font-heading);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
}
.tv-card--hero .tv-card__title { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }
.tv-card__title a { color: var(--tv-text); }
.tv-card__title a:hover { color: var(--tv-primary); text-decoration: none; }

.tv-card__excerpt { font-size: .875rem; color: #555; line-height: 1.5; }
.tv-card__meta {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: .78rem;
	color: #888;
	margin-top: auto;
	padding-top: .5rem;
}
.tv-card__author { font-weight: 600; color: #555; }

/* Small card variant */
.tv-card--card-sm .tv-card__title { font-size: .9rem; }
.tv-card--card-sm .tv-card__body { padding: .75rem; }

/* ============================================================
   13. HERO SECTION
   ============================================================ */
.tv-hero { padding-block: 2rem; background: #f9f9f9; }
.tv-hero__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	grid-template-rows: auto auto;
	gap: 1.25rem;
}
/* First card spans full height of the 2-row right side */
.tv-hero__grid > *:first-child { grid-row: 1 / -1; }
.tv-hero__grid > *:not(:first-child) { }

/* ============================================================
   14. CATEGORY BLOCK SECTIONS
   ============================================================ */
.tv-category-block { padding-block: 2.5rem; }
.tv-category-block + .tv-category-block { border-top: 1px solid #eee; }
.tv-category-block__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.25rem;
}
.tv-category-block__title {
	font-size: 1.3rem;
	font-weight: 800;
	position: relative;
	padding-left: .85rem;
}
.tv-category-block__title::before {
	content: '';
	position: absolute;
	left: 0; top: 50%;
	transform: translateY(-50%);
	width: 4px; height: 70%;
	background: var(--tv-primary);
	border-radius: 2px;
}
.tv-category-block__title a { color: var(--tv-text); }
.tv-category-block__title a:hover { color: var(--tv-primary); text-decoration: none; }
.tv-category-block__view-all {
	font-size: .85rem;
	font-weight: 700;
	color: var(--tv-primary);
	white-space: nowrap;
}

/* ============================================================
   15. LATEST FEED + MOST READ
   ============================================================ */
.tv-latest-feed { padding-block: 2.5rem 3rem; }
.tv-latest-feed__title {
	font-size: 1.3rem;
	font-weight: 800;
	margin-bottom: 1.25rem;
	padding-left: .85rem;
	position: relative;
}
.tv-latest-feed__title::before {
	content: '';
	position: absolute;
	left: 0; top: 50%;
	transform: translateY(-50%);
	width: 4px; height: 70%;
	background: var(--tv-primary);
	border-radius: 2px;
}

.tv-sidebar { position: sticky; top: 84px; }
.tv-widget { margin-bottom: 2rem; }
.tv-widget__title {
	font-size: 1rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding-bottom: .6rem;
	margin-bottom: 1rem;
	border-bottom: 2px solid var(--tv-primary);
}
.tv-most-read__list { display: flex; flex-direction: column; gap: .75rem; }
.tv-most-read__item {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
}
.tv-most-read__rank {
	flex-shrink: 0;
	font-size: 1.4rem;
	font-weight: 900;
	color: #ddd;
	font-family: var(--tv-font-heading);
	line-height: 1;
	width: 28px;
}
.tv-most-read__link {
	font-size: .875rem;
	font-weight: 600;
	color: var(--tv-text);
	line-height: 1.35;
}
.tv-most-read__link:hover { color: var(--tv-primary); }

/* ============================================================
   16. BREADCRUMBS
   ============================================================ */
.tv-breadcrumbs { padding-block: .75rem; }
.tv-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	font-size: .8rem;
	color: #888;
}
.tv-breadcrumbs__item a { color: #888; }
.tv-breadcrumbs__item a:hover { color: var(--tv-primary); }
.tv-breadcrumbs__item + .tv-breadcrumbs__item::before {
	content: '›';
	margin-right: .3rem;
}
.tv-breadcrumbs__item--current { color: #444; }

/* ============================================================
   17. SINGLE POST
   ============================================================ */
.tv-single { padding-block: 1.5rem 3rem; }
.tv-single__header { margin-bottom: 1.5rem; }
.tv-single__category {
	display: inline-block;
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #fff;
	background: var(--tv-primary);
	padding: .2rem .65rem;
	border-radius: 3px;
	margin-bottom: .75rem;
}
.tv-single__category:hover { text-decoration: none; opacity: .85; }
.tv-single__title { margin-bottom: .75rem; }
.tv-single__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1.25rem;
	font-size: .83rem;
	color: #777;
}
.tv-single__author-link { color: var(--tv-primary); font-weight: 600; }
.tv-single__read-time::before { content: '·'; margin-right: .75rem; }
.tv-single__updated { font-style: italic; }

/* Featured image */
.tv-single__featured-image { margin-block: 1.5rem; }
.tv-single__featured-image--full {
	margin-inline: calc(-1 * clamp(1rem, 4vw, 2rem));
}
.tv-single__featured-img { width: 100%; border-radius: 8px; }
.tv-single__featured-image--full .tv-single__featured-img { border-radius: 0; }
.tv-single__featured-caption { font-size: .8rem; color: #888; margin-top: .4rem; text-align: center; }

/* Table of Contents */
.tv-toc {
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-block: 1.5rem;
	background: #fafafa;
}
.tv-toc__toggle {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--tv-font-heading);
	font-weight: 700;
	font-size: .95rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: var(--tv-text);
}
.tv-toc__chevron {
	width: 10px; height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s;
}
.tv-toc__toggle[aria-expanded="false"] .tv-toc__chevron { transform: rotate(-135deg); }
.tv-toc__nav { margin-top: .75rem; }
.tv-toc__nav ol { list-style: decimal; padding-left: 1.25rem; }
.tv-toc__nav li { margin-block: .35rem; }
.tv-toc__nav a { font-size: .875rem; color: #555; }
.tv-toc__nav a:hover { color: var(--tv-primary); }

/* Post content */
.tv-single__content {
	line-height: 1.8;
	font-size: 1.05rem;
}
.tv-single__content h2 { margin-block: 2rem 1rem; }
.tv-single__content h3 { margin-block: 1.5rem .75rem; }
.tv-single__content p { margin-bottom: 1.25rem; }
.tv-single__content a { color: var(--tv-primary); text-decoration: underline; }
.tv-single__content ul, .tv-single__content ol {
	padding-left: 1.5rem;
	margin-bottom: 1.25rem;
}
.tv-single__content ul { list-style: disc; }
.tv-single__content ol { list-style: decimal; }
.tv-single__content li { margin-bottom: .4rem; }
.tv-single__content img { border-radius: 8px; margin-block: 1rem; }
.tv-single__content .wp-caption { max-width: 100%; }
.tv-single__content .wp-caption-text { font-size: .82rem; color: #888; text-align: center; }

/* Tags */
.tv-single__tags {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-block: 2rem;
}
.tv-tag {
	display: inline-block;
	padding: .3rem .8rem;
	border: 1px solid #ddd;
	border-radius: 100px;
	font-size: .78rem;
	color: #555;
	transition: border-color .15s, color .15s;
}
.tv-tag:hover { border-color: var(--tv-primary); color: var(--tv-primary); text-decoration: none; }

/* Post navigation */
.tv-single__post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-block: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid #eee;
}
.tv-single__post-nav-item {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .75rem;
	border: 1px solid #eee;
	border-radius: 8px;
	transition: border-color .15s;
}
.tv-single__post-nav-item:hover { border-color: var(--tv-primary); text-decoration: none; }
.tv-single__post-nav-item--next { justify-content: flex-end; text-align: right; }
.tv-single__post-nav-label { font-size: .75rem; color: #888; text-transform: uppercase; letter-spacing: .05em; display: block; }
.tv-single__post-nav-title { font-size: .875rem; font-weight: 600; color: var(--tv-text); }
.tv-single__post-nav-thumb img { width: 60px; height: 44px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }

/* ============================================================
   18. SHARE BAR
   ============================================================ */
.tv-share-bar {
	position: fixed;
	left: max(1rem, calc((100vw - var(--tv-single-width, 780px)) / 2 - 64px));
	/* top 50% এর বদলে viewport এর মাঝামাঝি কিন্তু footer touch করবে না */
	top: 50vh;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: .5rem;
	/* z-index 50 রাখছি — footer (z-index নেই, normal flow) এর নিচে চলে যাবে না
	   কিন্তু JS দিয়ে footer এর কাছে গেলে hide করব */
	z-index: 40;
	/* footer overlap হলে hide হবে — JS share-bar.js handle করবে */
	transition: opacity .2s;
}
.tv-share-bar.is-hidden { opacity: 0; pointer-events: none; }
.tv-share-bar__btn {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,.12);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .15s, box-shadow .15s;
	color: var(--tv-text);
	font-size: .8rem;
}
.tv-share-bar__btn:hover { transform: scale(1.1); box-shadow: 0 4px 12px rgba(0,0,0,.18); text-decoration: none; }

/* ============================================================
   19. AUTHOR BOX
   ============================================================ */
.tv-author-box {
	display: flex;
	gap: 1.5rem;
	padding: 1.5rem;
	background: #f9f9f9;
	border-radius: 10px;
	margin-block: 2.5rem;
	border: 1px solid #eee;
}
.tv-author-box__avatar-img { border-radius: 50%; width: 90px; height: 90px; object-fit: cover; flex-shrink: 0; }
.tv-author-box__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: #888; margin-bottom: .25rem; }
.tv-author-box__name { font-size: 1.1rem; margin-bottom: .5rem; }
.tv-author-box__name a { color: var(--tv-text); }
.tv-author-box__bio { font-size: .875rem; color: #555; margin-block: .5rem; }
.tv-author-box__social { display: flex; gap: .5rem; margin-block: .5rem; }
.tv-author-box__all-posts { font-size: .85rem; font-weight: 700; color: var(--tv-primary); }

/* ============================================================
   20. RELATED POSTS
   ============================================================ */
.tv-related-posts { margin-block: 2.5rem; }
.tv-related-posts__title {
	font-size: 1.2rem;
	font-weight: 800;
	margin-bottom: 1.25rem;
	padding-left: .85rem;
	position: relative;
}
.tv-related-posts__title::before {
	content: '';
	position: absolute;
	left: 0; top: 50%;
	transform: translateY(-50%);
	width: 4px; height: 70%;
	background: var(--tv-primary);
	border-radius: 2px;
}

/* ============================================================
   21. COMMENTS
   ============================================================ */
.tv-comments { margin-block: 2.5rem; }
.tv-comments__title { font-size: 1.3rem; margin-bottom: 1.5rem; }
.tv-comment-list { display: flex; flex-direction: column; gap: 1.5rem; }
.tv-comment { list-style: none; }
.tv-comment__body {
	padding: 1.25rem;
	background: #fafafa;
	border-radius: 8px;
	border: 1px solid #eee;
}
.tv-comment__meta { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.tv-comment__avatar-img { border-radius: 50%; width: 44px; height: 44px; }
.tv-comment__author { font-weight: 700; font-size: .9rem; }
.tv-comment__date { font-size: .78rem; color: #888; }
.tv-comment__content { font-size: .9rem; line-height: 1.65; }
.tv-comment__actions { margin-top: .5rem; }
.tv-comment__reply a { font-size: .8rem; color: var(--tv-primary); font-weight: 600; }
.tv-comment__pending { font-style: italic; color: #888; font-size: .85rem; }

/* Comment form */
.tv-comment-form { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid #eee; }
.tv-comment-form .comment-reply-title { font-size: 1.2rem; margin-bottom: 1.25rem; }
.tv-form-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.tv-form-group { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1rem; }
.tv-form-group label { font-size: .85rem; font-weight: 600; }
.tv-input {
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: .65rem .9rem;
	font-family: var(--tv-font-body);
	font-size: .9rem;
	width: 100%;
	transition: border-color .15s;
}
.tv-input:focus { outline: none; border-color: var(--tv-primary); }
.tv-input--textarea { resize: vertical; min-height: 130px; }

/* ============================================================
   22. ARCHIVE / CATEGORY PAGES
   ============================================================ */
.tv-archive__header { padding-block: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid #eee; }
.tv-archive__title { font-size: clamp(1.4rem, 3vw, 2rem); }
.tv-archive__result-count { color: #777; font-size: .9rem; margin-top: .35rem; }
.tv-archive__description { margin-top: .5rem; color: #555; }

.tv-category-banner {
	background: linear-gradient(135deg, var(--tv-cat-accent, var(--tv-primary)) 0%, rgba(0,0,0,.7) 100%);
	color: #fff;
	padding-block: 2.5rem;
	margin-bottom: 2rem;
}
.tv-category-banner__title { font-size: clamp(1.6rem, 4vw, 2.5rem); color: #fff; }
.tv-category-banner__description { margin-top: .5rem; opacity: .9; }

.tv-author-archive-header {
	background: #f5f5f5;
	padding-block: 2rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid #eee;
}
.tv-author-archive-header__inner { display: flex; align-items: center; gap: 1.5rem; }
.tv-author-archive-header__img { border-radius: 50%; width: 100px; height: 100px; object-fit: cover; flex-shrink: 0; }
.tv-author-archive-header__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; color: #888; }
.tv-author-archive-header__name { font-size: 1.6rem; margin-block: .25rem .5rem; }
.tv-author-archive-header__bio { color: #555; font-size: .9rem; }

/* ============================================================
   23. SEARCH & 404
   ============================================================ */
.tv-no-results { padding-block: 3rem; text-align: center; }
.tv-no-results h1 { margin-bottom: 1rem; }
.tv-no-results p { color: #666; margin-bottom: 1.5rem; }
.tv-no-results__suggestions { margin-top: 2.5rem; text-align: left; }

.tv-404 { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.tv-404__number { display: block; font-size: clamp(5rem, 12vw, 9rem); font-weight: 900; color: var(--tv-primary); opacity: .12; line-height: 1; margin-bottom: .5rem; }
.tv-404__title { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: 1rem; }
.tv-404__message { color: #666; margin-bottom: 1.5rem; }
.tv-404__suggestions-title { font-size: 1.1rem; margin-bottom: 1rem; }

/* ============================================================
   24. PAGINATION
   ============================================================ */
.tv-pagination { padding-block: 2rem; display: flex; justify-content: center; }
.tv-pagination .nav-links { display: flex; gap: .4rem; align-items: center; }
.tv-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: .875rem;
	color: var(--tv-text);
	transition: all .15s;
}
.tv-pagination .page-numbers:hover,
.tv-pagination .page-numbers.current {
	background: var(--tv-primary);
	border-color: var(--tv-primary);
	color: #fff;
	text-decoration: none;
}

/* ============================================================
   25. AD SLOTS
   ============================================================ */
.tv-ad-slot {
	text-align: center;
	overflow: hidden;
}
.tv-ad-slot--in-content { margin-block: 2rem; }
.tv-ad-slot--sidebar { margin-bottom: 1.5rem; }

/* ============================================================
   26. FOOTER
   ============================================================ */
.tv-footer { background: #111; color: #ccc; }
.tv-footer__top { padding-block: 3rem 2rem; }
.tv-footer__inner {
	display: grid;
	grid-template-columns: 260px 1fr auto;
	gap: 2.5rem;
	max-width: var(--tv-container-width, 1200px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
	align-items: start;
}
.tv-footer__logo img { filter: brightness(0) invert(1); max-height: 36px; }
.tv-footer__site-title { color: #fff; font-size: 1.3rem; font-weight: 800; font-family: var(--tv-font-heading); }
.tv-footer__tagline { font-size: .875rem; margin-top: .75rem; line-height: 1.6; }

.tv-footer__widgets {
	display: grid;
	gap: 2rem;
}
.tv-footer__widgets--cols-1 { grid-template-columns: 1fr; }
.tv-footer__widgets--cols-2 { grid-template-columns: repeat(2,1fr); }
.tv-footer__widgets--cols-3 { grid-template-columns: repeat(3,1fr); }
.tv-footer__widgets--cols-4 { grid-template-columns: repeat(4,1fr); }

.tv-footer-widget__title { color: #fff; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .75rem; font-family: var(--tv-font-heading); }
.tv-footer-nav__list { display: flex; flex-direction: column; gap: .4rem; }
.tv-footer-nav__list a { color: #aaa; font-size: .875rem; }
.tv-footer-nav__list a:hover { color: #fff; text-decoration: none; }

.tv-footer__newsletter { min-width: 220px; }
.tv-footer__newsletter-title { color: #fff; font-size: 1rem; margin-bottom: .4rem; }
.tv-footer__newsletter-text { font-size: .85rem; margin-bottom: .75rem; color: #aaa; }

.tv-footer__legal {
	border-top: 1px solid #222;
	padding-block: 1rem;
}
.tv-footer__inner--legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .5rem;
	grid-template-columns: none;
}
.tv-footer__copyright,
.tv-footer__credit { font-size: .8rem; color: #666; }

/* Social */
.tv-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.tv-social--footer { margin-top: 1rem; }
.tv-social__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	transition: background .15s;
}
.tv-social--footer .tv-social__link:hover { background: var(--tv-primary); }
.tv-social--header .tv-social__link { background: none; }

/* ============================================================
   27. BACK TO TOP
   ============================================================ */
.tv-back-to-top {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--tv-primary);
	color: #fff;
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 85;
	opacity: 0;
	transform: translateY(16px);
	pointer-events: none;
	transition: opacity .25s, transform .25s;
}
.tv-back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: all; }
.tv-back-to-top .tv-icon { filter: brightness(0) invert(1); }

/* Mobile: back-to-top share bar এর উপরে উঠে যায়,
   তাই mobile এ bottom বাড়িয়ে share bar height (72px) এর উপরে রাখছি */
@media (max-width: 991px) {
	.tv-back-to-top {
		bottom: 82px; /* share bar height (~72px) + gap */
		right: 1rem;
		width: 40px;
		height: 40px;
	}
}

/* ============================================================
   28. SINGLE PAGE (static)
   ============================================================ */
.tv-page { padding-block: 1.5rem 3rem; }
.tv-page__title { margin-bottom: 1.5rem; }
.tv-page__content { line-height: 1.8; font-size: 1.05rem; }
.tv-page__content h2 { margin-block: 2rem 1rem; }
.tv-page__content h3 { margin-block: 1.5rem .75rem; }
.tv-page--full-width .tv-page__content--full { padding-inline: clamp(1rem, 5vw, 4rem); }

/* ============================================================
   29. SEARCH FORM (native WP)
   ============================================================ */
.search-form {
	display: flex;
	gap: .5rem;
	max-width: 480px;
	margin-inline: auto;
}
.search-form .search-field {
	flex: 1;
	padding: .65rem 1rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: .95rem;
	font-family: var(--tv-font-body);
}
.search-form .search-submit {
	padding: .65rem 1.25rem;
	background: var(--tv-primary);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-weight: 700;
	cursor: pointer;
}

/* ============================================================
   30. RESPONSIVE
   ============================================================ */

/* Large desktop (1400px+) — wider hero grid */
@media (min-width: 1400px) {
	.tv-hero__grid { grid-template-columns: 1.8fr 1fr; }
}

/* Tablet landscape (1024–1199px) */
@media (max-width: 1199px) {
	.tv-footer__inner { grid-template-columns: 220px 1fr; }
	.tv-footer__newsletter { grid-column: 1 / -1; }
	.tv-share-bar { display: none; } /* Move to bottom on smaller screens */
}

/* Tablet portrait (768–991px) */
@media (max-width: 991px) {
	.tv-nav--desktop { display: none; }
	.tv-header__mobile-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border-radius: 8px;
		background: #f5f5f5;
	}
	/* Search icon visible and properly sized on mobile */
	.tv-header__search-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border-radius: 8px;
		background: #f5f5f5;
	}
	.tv-header__inner {
		height: 56px;
		padding-inline: 1rem;
		gap: .75rem;
	}
	/* Hide newsletter button on mobile header */
	.tv-btn--newsletter { display: none; }

	.tv-hero__grid { grid-template-columns: 1fr 1fr; }
	.tv-hero__grid > *:first-child { grid-column: 1 / -1; grid-row: auto; }

	.tv-grid--3col { grid-template-columns: repeat(2, 1fr); }

	.tv-container--with-sidebar { grid-template-columns: 1fr; }
	.tv-sidebar { position: static; }

	.tv-404 { grid-template-columns: 1fr; }

	.tv-footer__inner { grid-template-columns: 1fr 1fr; }
	.tv-footer__brand { grid-column: 1 / -1; }
	.tv-footer__widgets--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.tv-footer__widgets--cols-3 { grid-template-columns: repeat(2, 1fr); }

	.tv-single__post-nav { grid-template-columns: 1fr; }
}

/* Mobile (up to 767px) */
@media (max-width: 767px) {
	.tv-hero__grid { grid-template-columns: 1fr; }
	.tv-grid--3col { grid-template-columns: 1fr; }

	.tv-footer__inner { grid-template-columns: 1fr; }
	.tv-footer__widgets--cols-4,
	.tv-footer__widgets--cols-3,
	.tv-footer__widgets--cols-2 { grid-template-columns: 1fr; }

	.tv-form-row { grid-template-columns: 1fr; }
	.tv-author-box { flex-direction: column; align-items: center; text-align: center; }

	/* Share bar — fixed bottom strip on mobile */
	.tv-share-bar {
		display: flex;
		flex-direction: row;
		position: fixed;
		bottom: 0; left: 0; right: 0;
		top: auto;
		transform: none;
		background: #fff;
		box-shadow: 0 -2px 12px rgba(0,0,0,.12);
		justify-content: space-around;
		align-items: center;
		padding: .4rem 1rem;
		z-index: 80;
		border-top: 1px solid #eee;
	}
	.tv-share-bar__btn {
		box-shadow: none;
		width: 52px;
		height: 52px;
		border-radius: 10px;
		background: #f5f5f5;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
	}
	.tv-share-bar__btn .tv-icon {
		width: 24px;
		height: 24px;
	}
	/* Platform-specific colors on mobile */
	.tv-share-bar__btn--facebook { background: #e8f0fe; }
	.tv-share-bar__btn--twitter  { background: #f0f0f0; }
	.tv-share-bar__btn--whatsapp { background: #e8f8ee; }
	.tv-share-bar__btn--copy     { background: #f5f5f5; }

	.tv-footer__inner--legal { flex-direction: column; text-align: center; }

	.tv-toc { margin-inline: 0; }
}

/* Small mobile (up to 480px) */
@media (max-width: 480px) {
	.tv-header__inner { height: 56px; }
	.tv-category-block__header { flex-direction: column; align-items: flex-start; gap: .5rem; }
}
