/*
Theme Name: Testvinnare
Theme URI: https://testvinnare.nu/
Author: Testvinnare
Description: Barntema till Twenty Twenty-Five för Testvinnare. Produkter för vardagen, sorterade efter situation i livet. Saklig och lugn form: Lato i alla vikter, aubergine för rubriker, nästan svart text och korall som enda accent.
Template: twentytwentyfive
Version: 2.0.0
Requires at least: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ft-familj
*/

/* ---------- Grund ---------- */
:root {
	--ft-text: #1D1A21;
	--ft-text-svag: #57505F;
	--ft-aubergine: #3B1E4F;
	--ft-aubergine-djup: #2A1438;
	--ft-korall: #FF7A59;
	--ft-yta: #F6F4F7;
	--ft-linje: #E3DEE7;
	--ft-linje-stark: #8A8291;
	--ft-font: Lato, 'Helvetica Neue', Arial, sans-serif;
	--ft-max: 1200px;
	--ft-text-max: 680px;
	--ft-kant: 16px;
	--s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;

	/* Tilläggets variabler, så att dess basstil följer temat */
	--tv-accent: #3B1E4F;
	--tv-pa-accent: #FFFFFF;
	--tv-yta: #F6F4F7;
	--tv-bakgrund: #FFFFFF;
	--tv-text: #1D1A21;
	--tv-text-svag: #57505F;
	--tv-kant: #8A8291;
	--tv-radie: 4px;
	--tv-font-rubrik: Lato, 'Helvetica Neue', Arial, sans-serif;
	--tv-vinnare: #FF7A59;
	--tv-pa-vinnare: #1D1A21;
	--tv-plus: #1D1A21;
	--tv-minus: #1D1A21;
	--tv-mellanrum: 1.5rem;
}
@media (min-width: 600px) { :root { --ft-kant: 24px; } }
@media (min-width: 1100px) { :root { --ft-kant: 32px; } }

html { scroll-padding-top: var(--s5); }
body {
	margin: 0;
	background: #FFFFFF;
	color: var(--ft-text);
	font-family: var(--ft-font);
	font-size: 1.0625rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (min-width: 760px) { body { font-size: 1.125rem; } }
img { max-width: 100%; height: auto; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
:where(.ft-main) :where(.is-layout-flow) > * { margin-block-start: 0; }

h1, h2, h3, h4 { font-family: var(--ft-font); color: var(--ft-aubergine); letter-spacing: 0; }
h1 { font-weight: 800; font-size: clamp(2rem, 1.55rem + 1.5vw, 2.75rem); line-height: 1.15; margin: 0 0 var(--s4); }
h2 { font-weight: 800; font-size: clamp(1.4rem, 1.25rem + .5vw, 1.75rem); line-height: 1.25; margin: 0 0 var(--s4); }
h3 { font-weight: 700; font-size: 1.1875rem; line-height: 1.3; margin: 0 0 var(--s2); }
h4 { font-weight: 700; font-size: 1.0625rem; line-height: 1.35; margin: 0 0 var(--s2); }
p { margin: 0 0 var(--s4); }

a { color: var(--ft-aubergine); text-decoration: underline; text-decoration-color: var(--ft-korall); text-decoration-thickness: 2px; text-underline-offset: .18em; }
a:hover { text-decoration-color: var(--ft-aubergine); }
:where(a, button, input, summary, [tabindex]):focus-visible { outline: 3px solid var(--ft-aubergine); outline-offset: 2px; border-radius: 2px; }

.screen-reader-text:not(:focus) {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	background: var(--ft-aubergine); color: #fff; font: 700 1rem/1 var(--ft-font); padding: var(--s4) var(--s5); border-radius: 4px;
	top: var(--s3); left: var(--s3); z-index: 100000; clip: auto; clip-path: none; height: auto; width: auto; text-decoration: none;
}
::selection { background: #FFD9CC; color: var(--ft-text); }

/* ---------- Ram ---------- */
.ft-main, .ft-header-in, .ft-footer-in, .ft-footer-botten {
	box-sizing: border-box; width: 100%; max-width: calc(var(--ft-max) + 2 * var(--ft-kant));
	margin-inline: auto; padding-inline: var(--ft-kant);
}
.ft-main { padding-bottom: var(--s8); }
.ft-main > .alignwide, .ft-main .alignwide { max-width: none; margin-inline: 0; }

/* ---------- Sidhuvud ---------- */
.ft-header { background: #fff; border-bottom: 1px solid var(--ft-linje); position: relative; z-index: 20; }
.ft-header-in { display: flex; align-items: center; justify-content: space-between; gap: var(--s5); min-height: 72px; }
.ft-ordbild { font: 900 1.625rem/1 var(--ft-font); color: var(--ft-aubergine); text-decoration: none; white-space: nowrap; padding: var(--s2) 0; }
.ft-ordbild:hover { color: var(--ft-aubergine-djup); }

.ft-nav { font-size: 1rem; font-weight: 700; }
.ft-nav .wp-block-navigation__container { gap: 0; }
.ft-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 48px; padding: 0 var(--s3) !important; color: var(--ft-text); text-decoration: none; border-bottom: 3px solid transparent; box-sizing: border-box; }
.ft-nav .wp-block-navigation-item__content:hover { color: var(--ft-aubergine); border-bottom-color: var(--ft-linje); }
.ft-nav .wp-block-navigation-item__content[aria-current] { color: var(--ft-aubergine); border-bottom-color: var(--ft-korall); }
.ft-nav .wp-block-navigation-submenu__toggle { min-width: 24px; min-height: 24px; }
.ft-nav .wp-block-navigation__submenu-container { background: #fff !important; border: 1px solid var(--ft-linje) !important; border-radius: 4px; padding: var(--s2) 0 !important; min-width: 16rem !important; box-shadow: 0 8px 24px rgba(29, 26, 33, .08); }
.ft-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: 100%; padding: var(--s2) var(--s4) !important; min-height: 44px; border-bottom: 0; font-weight: 400; }
.ft-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--ft-yta); }
.ft-nav .ft-nav-sok > .wp-block-navigation-item__content { gap: var(--s2); }
.ft-nav .ft-nav-sok > .wp-block-navigation-item__content::before { content: ""; width: 1rem; height: 1rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='8.5' cy='8.5' r='6' fill='none' stroke='%231D1A21' stroke-width='2.2'/%3E%3Cpath d='m13 13 5 5' stroke='%231D1A21' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; color: var(--ft-text); }
.wp-block-navigation__responsive-container-open { border: 1px solid var(--ft-linje-stark) !important; }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; color: var(--ft-text) !important; padding: var(--s5) var(--ft-kant) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.125rem; border-bottom: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 var(--s4) !important; }
@media (max-width: 1023px) {
	.ft-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex !important; }
	.ft-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}

/* ---------- Brödsmulor, sidhuvud på sidor ---------- */
.ft-smulor { padding-top: var(--s5); font-size: .9375rem; }
.ft-smulor ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); }
.ft-smulor li + li::before { content: "›" / ""; margin-right: var(--s2); color: var(--ft-text-svag); }
.ft-smulor a { color: var(--ft-text-svag); text-decoration-color: var(--ft-linje-stark); text-decoration-thickness: 1px; display: inline-flex; min-height: 24px; align-items: center; }
.ft-sidhuvud { padding: var(--s6) 0 var(--s5); max-width: 52rem; }
.ft-smulor + .ft-sidhuvud, .ft-sidhuvud .ft-smulor { padding-top: var(--s4); }
.ft-sidhuvud .ft-smulor { margin-bottom: var(--s4); }
.ft-sidhuvud h1 { margin-bottom: var(--s3); }
.ft-ingress, .ft-ingress p, .ft-ingress-text p { font-size: clamp(1.125rem, 1.05rem + .3vw, 1.25rem); line-height: 1.55; color: #37313D; max-width: var(--ft-text-max); margin: 0 0 var(--s4); }
.ft-meta, .ft-byline { font-size: .9375rem; color: var(--ft-text-svag); margin: 0 0 var(--s3); }
.ft-meta a { color: var(--ft-text-svag); }
.ft-byline { margin-top: var(--s2); }
.ft-antal { font-size: .9375rem; color: var(--ft-text-svag); }

/* ---------- Sektioner ---------- */
.ft-sektion { margin-top: var(--s7); }
@media (min-width: 900px) { .ft-sektion { margin-top: var(--s8); } }
.ft-sek-huvud { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--s2) var(--s5); padding-top: var(--s5); border-top: 1px solid var(--ft-linje); margin-bottom: var(--s5); }
.ft-sek-huvud h2 { margin: 0; }
.ft-sek-lank { margin: 0; font-weight: 700; font-size: 1rem; }
.ft-sek-ingress { color: var(--ft-text-svag); max-width: var(--ft-text-max); }
.ft-sektion > h2 { padding-top: var(--s5); border-top: 1px solid var(--ft-linje); }

/* ---------- Startsidan ---------- */
.ft-intro { padding: var(--s7) 0 var(--s2); }
.ft-intro h1 { max-width: 22ch; }
.ft-intro-text { font-size: clamp(1.125rem, 1.05rem + .3vw, 1.25rem); line-height: 1.55; color: #37313D; max-width: var(--ft-text-max); margin-bottom: var(--s6); }
.ft-intro-val { font-size: 1.25rem; font-weight: 700; margin: 0 0 var(--s3); }
.ft-sitlista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--s6); grid-template-columns: 1fr; }
@media (min-width: 600px) { .ft-sitlista { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .ft-sitlista { grid-template-columns: repeat(4, 1fr); } }
.ft-sitlista li { border-top: 1px solid var(--ft-linje); padding: var(--s4) 0 var(--s4); }
.ft-sitlista-namn { font-size: 1.125rem; font-weight: 700; margin: 0 0 var(--s1); }
.ft-sitlista-namn a { text-decoration: none; }
.ft-sitlista-namn a:hover { text-decoration: underline; text-decoration-color: var(--ft-korall); }
.ft-sitlista p { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ft-text-svag); }

.ft-vinnare { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--s7); }
@media (min-width: 760px) { .ft-vinnare { grid-template-columns: 1fr 1fr; } }
.ft-vinnare-rad { display: grid; grid-template-columns: 64px 1fr; gap: var(--s4); align-items: start; padding: var(--s5) 0; border-bottom: 1px solid var(--ft-linje); }
.ft-vinnare-rad:nth-child(-n+2) { padding-top: 0; }
@media (max-width: 759px) { .ft-vinnare-rad:nth-child(2) { padding-top: var(--s5); } }
.ft-vinnare-medalj { width: 64px; height: 64px; display: block; }
.ft-vinnare-text p { margin: 0 0 var(--s1); }
.ft-vinnare-kat { font-size: .9375rem; color: var(--ft-text-svag); }
.ft-vinnare-namn { font-size: 1.25rem; margin: 0 0 var(--s1); }
.ft-vinnare-namn a, .ft-rad-titel a, .tv-rad__namn a, .tv-listkort__titel a, .ft-register-grupp h3 a { text-decoration: none; }
.ft-vinnare-namn a:hover, .ft-rad-titel a:hover, .tv-rad__namn a:hover, .tv-listkort__titel a:hover, .ft-register-grupp h3 a:hover { text-decoration: underline; text-decoration-color: var(--ft-korall); }
.ft-vinnare-omdome span, .ft-vinnare-fam, .ft-vinnare-datum { color: var(--ft-text-svag); }
.ft-vinnare-fam, .ft-vinnare-datum { font-size: .9375rem; }
.ft-vinnare-lista { margin-top: var(--s2) !important; font-weight: 700; }
.ft-vinnare-datum { font-weight: 400; margin-left: var(--s2); }

.ft-register { display: grid; gap: var(--s5) var(--s6); grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .ft-register { grid-template-columns: repeat(4, 1fr); } }
.ft-register-grupp h3 { font-size: 1.0625rem; margin-bottom: var(--s2); }
.ft-register-grupp ul { list-style: none; margin: 0; padding: 0; }
.ft-register-grupp li { margin: 0 0 var(--s1); }
.ft-register-grupp li span { color: var(--ft-text-svag); font-size: .9375rem; display: block; }

.ft-rader { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--s6); grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.ft-rad { border-top: 1px solid var(--ft-linje); padding: var(--s4) 0 var(--s5); }
.ft-rad p { margin: 0 0 var(--s1); }
.ft-rad-meta, .ft-rad-datum { font-size: .9375rem; color: var(--ft-text-svag); }
.ft-rad-titel { font-size: 1.1875rem; margin: 0 0 var(--s2); }
.ft-rad-ingress { font-size: 1rem; line-height: 1.55; color: #37313D; }
.ft-rad-omdome { font-size: 1rem; }

.ft-tva { display: grid; gap: 0 var(--s7); }
@media (min-width: 900px) { .ft-tva { grid-template-columns: 1fr 1fr; } }
.ft-tva-kol .ft-rader { grid-template-columns: 1fr; }

.ft-metod { display: grid; gap: var(--s5) var(--s6); }
@media (min-width: 900px) { .ft-metod { grid-template-columns: repeat(3, 1fr); } }
.ft-metod h3 { font-size: 1.125rem; }
.ft-metod p { font-size: 1rem; line-height: 1.6; }
.ft-metod-lank { font-weight: 700; }
.ft-vem { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--ft-linje); max-width: var(--ft-text-max); }
.ft-vem p { font-size: 1rem; }

/* ---------- Löptext ---------- */
.ft-prosa > * { max-width: var(--ft-text-max); }
@media (min-width: 1100px) { .ft-prosa { font-size: 1.1875rem; } }
.ft-prosa > p, .ft-prosa > ul, .ft-prosa > ol { margin: 0 0 1.1em; }
.ft-prosa > h2 { margin: 1.8em 0 .5em; scroll-margin-top: var(--s5); }
.ft-prosa > h3 { margin: 1.5em 0 .4em; }
.ft-prosa li { margin-bottom: .4em; }
.ft-prosa blockquote { margin: 1.5em 0; padding-left: var(--s5); border-left: 3px solid var(--ft-linje); color: #37313D; }
.ft-prosa .ft-fakta, .ft-prosa .ft-innehall { margin: 1.5em 0; padding: var(--s4) var(--s5); background: var(--ft-yta); border-radius: 4px; font-size: 1rem; }
.ft-prosa .ft-fakta p, .ft-prosa .ft-innehall p { margin: 0 0 var(--s2); }
.ft-prosa .ft-fakta-t, .ft-prosa .ft-innehall > p:first-child { font-weight: 700; color: var(--ft-aubergine); }
.ft-prosa .ft-fakta ul, .ft-prosa .ft-innehall ol { margin: 0; padding-left: 1.25rem; }
.ft-prosa .wp-block-table table, .ft-prosa > table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.ft-prosa .wp-block-table th, .ft-prosa .wp-block-table td { border: 0; border-bottom: 1px solid var(--ft-linje); padding: var(--s2) var(--s3); text-align: left; }
.ft-prosa .wp-block-table thead { border-bottom: 2px solid var(--ft-text); }
.ft-prosa > .ft-sektion, .ft-prosa > .ft-sitlista, .ft-prosa > .tv-rutnat { max-width: none; }

.ft-las { display: grid; gap: var(--s6); padding-top: var(--s4); }
@media (min-width: 1100px) { .ft-las { grid-template-columns: 220px minmax(0, var(--ft-text-max)); gap: var(--s8); } }
.ft-rail:empty { display: none; }
@media (min-width: 1100px) { .ft-rail:empty { display: block; } .ft-toc { position: sticky; top: var(--s5); } }
.ft-toc { font-size: .9375rem; border-left: 1px solid var(--ft-linje); padding-left: var(--s4); }
.ft-toc-t { font-weight: 700; color: var(--ft-aubergine); margin: 0 0 var(--s2); }
.ft-toc ol { margin: 0; padding-left: 1.1rem; }
.ft-toc li { margin-bottom: var(--s2); }
.ft-toc a { text-decoration-thickness: 1px; }
.ft-not { margin-top: var(--s6); padding-top: var(--s4); border-top: 1px solid var(--ft-linje); font-size: 1rem; max-width: var(--ft-text-max); }
.ft-skribent { margin-top: var(--s4); font-size: 1rem; color: #37313D; max-width: var(--ft-text-max); }
.ft-not-liten { font-size: .9375rem; color: var(--ft-text-svag); margin-top: var(--s2); }

.ft-situation-text > .ft-sektion { max-width: none; }

/* ---------- Länklistor, sök, sidnumrering ---------- */
.ft-lanklista { list-style: none; margin: 0; padding: 0; max-width: var(--ft-text-max); }
.ft-lanklista li { padding: var(--s3) 0; border-bottom: 1px solid var(--ft-linje); }
.ft-lanklista li:first-child { border-top: 1px solid var(--ft-linje); }
.ft-lanklista li span { display: block; font-size: .9375rem; color: var(--ft-text-svag); }
.ft-lanklista.is-kolumner { max-width: none; display: grid; gap: 0 var(--s6); grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.ft-lanklista.is-kolumner li:first-child { border-top: 0; }
.ft-amnen { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s2) var(--s4); margin-bottom: var(--s5); }
.ft-amnen p { margin: 0; font-weight: 700; }
.ft-amnen ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.ft-amnen span { color: var(--ft-text-svag); font-size: .9375rem; }
.ft-sokform { max-width: 36rem; margin: var(--s4) 0; }
.ft-sokform label { display: block; font-weight: 700; margin-bottom: var(--s2); }
.ft-sokform div { display: flex; gap: var(--s2); }
.ft-sokform input { flex: 1; min-width: 0; min-height: 48px; padding: 0 var(--s3); border: 1px solid var(--ft-linje-stark); border-radius: 4px; font: inherit; color: var(--ft-text); background: #fff; }
.ft-sokform button, .tv-knapp { display: inline-flex; align-items: center; gap: var(--s2); min-height: 48px; padding: 0 var(--s5); border: 1px solid var(--ft-aubergine); border-radius: 4px; background: var(--ft-aubergine); color: #fff; font: 700 1rem/1.2 var(--ft-font); text-decoration: none; cursor: pointer; }
.ft-sokform button:hover, .tv-knapp:hover { background: var(--ft-aubergine-djup); color: #fff; }
.tv-knapp.is-sekundar { background: #fff; color: var(--ft-aubergine); }
.tv-knapp.is-sekundar:hover { background: var(--ft-yta); color: var(--ft-aubergine); }
.tv-knapp__etikett { font-weight: 400; font-size: .9375rem; }
.ft-sidor ul, .tv-paginering ul, .tv-paginering { list-style: none; margin: var(--s6) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2); }
.ft-sidor a, .ft-sidor span, .tv-paginering a, .tv-paginering span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--s3); border: 1px solid var(--ft-linje); border-radius: 4px; text-decoration: none; }
.ft-sidor .current, .tv-paginering .current { background: var(--ft-aubergine); color: #fff; border-color: var(--ft-aubergine); }

/* ---------- Omdömet (betyg) ---------- */
.tv-ord { margin: 0 0 var(--s2); }
.tv-ord p { margin: 0; }
.tv-ord__etikett { font-size: .9375rem; color: var(--ft-text-svag); }
.tv-ord__ord { font-weight: 700; color: var(--ft-text); }
.tv-ord__tal { font-weight: 400; color: var(--ft-text-svag); font-size: .9375rem; font-variant-numeric: tabular-nums; margin-left: var(--s1); }
.tv-ord--stor .tv-ord__ord { font-size: 2rem; font-weight: 800; line-height: 1.15; color: var(--ft-aubergine); }
.tv-ord--stor .tv-ord__tal { display: block; margin: var(--s1) 0 0; font-size: 1rem; }
.tv-ord--saknas { color: var(--ft-text-svag); }
.tv-utm, .tv-vartval__etikett { display: inline-block; margin: 0 0 var(--s2); padding: 2px var(--s2); border-radius: 2px; background: var(--ft-korall); color: var(--ft-text); font-size: .875rem; font-weight: 700; line-height: 1.5; }

/* ---------- Omdömesrader (kort) ---------- */
.tv-rutnat { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--s6); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.tv-rutnat__del { border-top: 1px solid var(--ft-linje); padding: var(--s4) 0 var(--s5); margin: 0; }
.tv-rad p { margin: 0 0 var(--s2); }
.tv-rad__bild { margin-bottom: var(--s3); aspect-ratio: 4 / 3; background: #fff; }
.tv-rad__bild img { width: 100%; height: 100%; object-fit: contain; }
.tv-rad__topp { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s3); }
.tv-rad__medalj { flex: none; width: 64px; height: 64px; }
.tv-rad__meta { font-size: .9375rem; color: var(--ft-text-svag); margin: 0 0 var(--s1) !important; }
.tv-rad__namn { font-size: 1.1875rem; margin: 0 0 var(--s2); }
.tv-rad__passar, .tv-plusminus-kort { font-size: 1rem; line-height: 1.5; }
.tv-rad__underlag { font-size: .9375rem; color: var(--ft-text-svag); }
.tv-rad__mer { font-weight: 700; margin: 0 !important; }
.tv-rad__mer a { display: inline-flex; align-items: center; min-height: 44px; }
.tv-plusminus-kort { list-style: none; margin: 0 0 var(--s2); padding: 0; }
.tv-plusminus-kort li { position: relative; padding-left: 1.25rem; margin-bottom: var(--s1); }
.tv-plusminus-kort li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.tv-plusminus-kort .is-plus::before { content: "+" / ""; }
.tv-plusminus-kort .is-minus::before { content: "−" / ""; }

/* ---------- Produktsidan ---------- */
.tv-reklamupplysning { margin: var(--s4) 0 0; padding: var(--s2) 0; border-bottom: 1px solid var(--ft-linje); font-size: .875rem; color: var(--ft-text-svag); background: none; border-radius: 0; }
.tv-reklamupplysning p { margin: 0; font-size: .875rem; }
.tv-reklamupplysning a { color: var(--ft-text-svag); }
.tv-produktsida__grid { display: grid; gap: var(--s6); }
.tv-produktsida__grid > *, .ft-las > *, .ft-tva > *, .ft-vinnarruta > * { min-width: 0; }
@media (min-width: 1000px) {
	.tv-produktsida__grid { grid-template-columns: minmax(0, 1fr) 360px; grid-template-areas: "passar ruta" "text ruta"; gap: var(--s6) var(--s7); align-items: start; }
	.tv-passar { grid-area: passar; }
	.tv-betygsruta { grid-area: ruta; }
	.tv-produktsida__text { grid-area: text; }
}
.tv-passar { background: var(--ft-yta); border-radius: 4px; padding: var(--s5); max-width: var(--ft-text-max); }
.tv-passar h2 { font-size: 1.375rem; margin-bottom: var(--s3); }
.tv-passar__lista { margin: 0 0 var(--s3); padding-left: 1.25rem; }
.tv-passar__lista li { margin-bottom: var(--s2); }
.tv-passar__kort { margin: 0; }
.tv-betygsruta { border: 1px solid var(--ft-linje); border-radius: 4px; padding: var(--s5); }
.tv-betygsruta__rubrik { font-size: 1rem; font-weight: 700; color: var(--ft-text-svag); margin: 0 0 var(--s3); }
.tv-betygsruta__topp { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s4); margin-bottom: var(--s3); }
.tv-betygsruta__topp a { flex: none; display: block; line-height: 0; border-radius: 50%; }
.tv-betygsruta__medalj { width: 120px; height: 120px; display: block; }
@media (max-width: 360px) { .tv-betygsruta__medalj { width: 96px; height: 96px; } }
.tv-betygsruta__underlag { font-size: .9375rem; line-height: 1.55; color: #37313D; }
.tv-fakta { margin: 0 0 var(--s4); font-size: 1rem; }
.tv-fakta div { display: grid; grid-template-columns: 7rem 1fr; gap: var(--s3); padding: var(--s2) 0; border-top: 1px solid var(--ft-linje); }
.tv-fakta dt { font-weight: 700; }
.tv-fakta dd { margin: 0; }
.tv-betygsruta__knapp { margin: 0 0 var(--s3); }
.tv-betygsruta__not { font-size: .9375rem; color: var(--ft-text-svag); margin: var(--s3) 0 0; padding-top: var(--s3); border-top: 1px solid var(--ft-linje); }
.tv-produktsida__text > section { margin-top: var(--s7); }
.tv-produktsida__text > section:first-child { margin-top: 0; }
.tv-produktsida__text > section > h2 { padding-top: var(--s5); border-top: 1px solid var(--ft-linje); }
.tv-plusminus { display: grid; gap: var(--s5) var(--s6); max-width: var(--ft-text-max); }
@media (min-width: 640px) { .tv-plusminus { grid-template-columns: 1fr 1fr; } }
.tv-plusminus__del h3, .tv-plusminus__del h4 { font-size: 1.125rem; margin-bottom: var(--s2); }
.tv-plusminus__del ul { list-style: none; margin: 0; padding: 0; font-size: 1rem; line-height: 1.55; }
.tv-plusminus__del li { position: relative; padding-left: 1.25rem; margin-bottom: var(--s2); }
.tv-plusminus__del li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.tv-plusminus__del.is-plus li::before { content: "+" / ""; }
.tv-plusminus__del.is-minus li::before { content: "−" / ""; }
.tv-bedomning .ft-prosa > * { max-width: var(--ft-text-max); }
.tv-kallor { margin: 0; padding-left: 1.5rem; font-size: 1rem; max-width: var(--ft-text-max); }
.tv-kallor li { margin-bottom: var(--s2); }

/* ---------- Tabeller ---------- */
.ft-tabellram { position: relative; overflow-x: auto; max-width: 100%; }
.ft-tabell { border-collapse: collapse; width: 100%; font-size: 1rem; line-height: 1.45; font-variant-numeric: tabular-nums; }
.ft-tabell caption { text-align: left; font-weight: 700; color: var(--ft-aubergine); font-size: 1.125rem; padding: 0 0 var(--s3); }
.ft-tabell th, .ft-tabell td { text-align: left; vertical-align: top; padding: var(--s3) var(--s3) var(--s3) 0; border-bottom: 1px solid var(--ft-linje); }
.ft-tabell th:last-child, .ft-tabell td:last-child { padding-right: 0; }
.ft-tabell thead th { font-size: .9375rem; font-weight: 700; color: var(--ft-text-svag); border-bottom: 2px solid var(--ft-text); vertical-align: bottom; }
.ft-tabell tbody th { font-weight: 700; }
.ft-tabell tfoot th, .ft-tabell tfoot td { font-weight: 700; border-top: 2px solid var(--ft-text); border-bottom: 0; }
.ft-tabell .is-tal { text-align: right; white-space: nowrap; }
.ft-tabell.is-smal { max-width: 32rem; }
.ft-tabell.is-bred { min-width: 46rem; }
.ft-tabell.tv-delbetyg { min-width: 30rem; max-width: var(--ft-text-max); }
.tv-delbetyg__fraga { display: block; }
.tv-delbetyg__kommentar { display: block; font-weight: 400; font-size: .9375rem; color: var(--ft-text-svag); margin-top: var(--s1); }
.ft-tabell.tv-specar { max-width: var(--ft-text-max); }
.tv-specar th { width: 40%; }
.tv-jtabell thead th a { font-weight: 700; color: var(--ft-aubergine); }
.tv-jtabell .tv-ord { margin: 0; }
.tv-jtabell tr.is-passar_for td { font-size: .9375rem; }

.tv-snabbsvar td:nth-child(3), .tv-vartval__del td:nth-child(2), .tv-delbetyg td:nth-child(3), .ft-omdomestabell td:nth-child(2) { white-space: nowrap; }
.ft-tva > .ft-tva-kol { margin-block-start: 0; }

/* ---------- Listan (Bäst i test) ---------- */
.tv-underlag { font-size: 1rem; line-height: 1.55; color: #37313D; max-width: var(--ft-text-max); }
.tv-listsida__bild { margin: var(--s3) 0 0; max-width: 880px; }
.tv-listsida__bild img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; background: var(--ft-yta); }
.tv-snabbsvar { min-width: 38rem; }
@media (max-width: 599px) { .tv-snabbsvar { min-width: 0; } .tv-snabbsvar th:nth-child(4), .tv-snabbsvar td:nth-child(4) { display: none; } }
.tv-snabbsvar td.is-tal { width: 3.5rem; text-align: left; font-weight: 700; color: var(--ft-aubergine); }
.tv-snabbsvar tr.is-vinnare td.is-tal { box-shadow: inset 4px 0 0 var(--ft-korall); padding-left: var(--s3); }
.tv-snabbsvar__utm { display: block; font-weight: 400; font-size: .9375rem; color: var(--ft-text-svag); }
.tv-snabbsvar__tal { display: block; font-size: .9375rem; color: var(--ft-text-svag); }
.tv-lista__platser { list-style: none; margin: 0; padding: 0; }
.tv-plats { color: var(--ft-aubergine); font-variant-numeric: tabular-nums; }
.tv-vartval { border: 1px solid var(--ft-linje); border-radius: 4px; padding: var(--s5); margin-bottom: var(--s6); scroll-margin-top: var(--s5); }
@media (min-width: 760px) { .tv-vartval { padding: var(--s6); } }
.tv-vartval__topp { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s4); }
.tv-vartval__namn { font-size: clamp(1.375rem, 1.25rem + .5vw, 1.625rem); font-weight: 800; margin: 0 0 var(--s2); }
.tv-vartval__namn a, .tv-plats-rad__namn a { text-decoration: none; }
.tv-vartval__namn a:hover, .tv-plats-rad__namn a:hover { text-decoration: underline; text-decoration-color: var(--ft-korall); }
.tv-vartval__omdome { margin: 0 0 var(--s3); }
.tv-vartval__omdome strong { font-size: 1.25rem; color: var(--ft-aubergine); }
.tv-vartval__medalj { flex: none; width: 120px; height: 120px; }
@media (max-width: 420px) { .tv-vartval__medalj { width: 88px; height: 88px; } }
.tv-vartval__varfor { font-size: 1.125rem; line-height: 1.55; max-width: var(--ft-text-max); }
.tv-vartval__bildram { margin: 0 0 var(--s5); max-width: 560px; background: #fff; }
.tv-vartval__bild { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.tv-vartval__under { font-size: 1.125rem; margin-top: var(--s5); }
.tv-vartval__del { margin-bottom: var(--s5); }
.tv-vartval .tv-plusminus { margin-bottom: var(--s4); }
.tv-vartval__passar { max-width: var(--ft-text-max); }
.tv-vartval__lankar, .tv-plats-rad__lankar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); margin: var(--s4) 0 0; font-weight: 700; }
.tv-plats-rad { border-top: 1px solid var(--ft-linje); padding: var(--s5) 0; scroll-margin-top: var(--s5); }
.tv-plats-rad p { margin: 0 0 var(--s2); max-width: var(--ft-text-max); }
.tv-plats-rad__namn { font-size: 1.25rem; margin: 0 0 var(--s2); }
.tv-plats-rad__meta .tv-utm { margin: 0 var(--s2) 0 0; background: var(--ft-yta); }
.tv-plats-rad__meta strong { color: var(--ft-text); }
.tv-listsida__text, .tv-listsida__metod { max-width: none; }
.tv-listsida__text > * { max-width: var(--ft-text-max); }

/* ---------- Kategorisidan ---------- */
.ft-ingress-text p { margin-bottom: var(--s3); }
.ft-vinnarruta { display: grid; grid-template-columns: 80px 1fr; gap: var(--s5); align-items: start; max-width: var(--ft-text-max); }
.ft-vinnarruta-medalj { width: 80px; height: 80px; display: block; }
.ft-vinnarruta h3 { font-size: 1.375rem; margin-bottom: var(--s1); }
.ft-vinnarruta p { margin: 0 0 var(--s2); }
.ft-vinnarruta-omdome strong { color: var(--ft-aubergine); }

/* ---------- Arkiv från tillägget ---------- */
.tv-arkiv__huvud { padding: var(--s6) 0 var(--s4); max-width: 52rem; }
.tv-arkiv__titel { font-size: clamp(2rem, 1.55rem + 1.5vw, 2.75rem); font-weight: 800; color: var(--ft-aubergine); margin: 0 0 var(--s3); }
.tv-arkiv__ingress { font-size: clamp(1.125rem, 1.05rem + .3vw, 1.25rem); color: #37313D; max-width: var(--ft-text-max); }
.tv-kategorinav { margin: 0 0 var(--s5); }
.tv-kategorinav__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); }
.tv-kategorinav__lank { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.tv-listkort__bild { margin-bottom: var(--s3); }
.tv-listkort__bild img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; }
.tv-listkort p { margin: 0 0 var(--s2); }
.tv-listkort__titel { font-size: 1.25rem; margin: 0 0 var(--s2); }
.tv-listkort__utdrag { font-size: 1rem; color: #37313D; }
.tv-metod { margin-top: var(--s7); padding-top: var(--s5); border-top: 1px solid var(--ft-linje); max-width: var(--ft-text-max); font-size: 1rem; }
.tv-metod h2, .tv-metod h3 { font-size: 1.375rem; }
.tv-metod ul { padding-left: 1.25rem; margin: 0 0 var(--s4); }
.tv-metod li { margin-bottom: var(--s2); }
.tv-metod a { font-weight: 700; }

/* ---------- Medaljen och sidan Medaljen ---------- */
.ft-prosa > .tv-medaljlapp { max-width: 44rem; }
.tv-medaljlapp { display: grid; gap: var(--s5) var(--s6); align-items: center; margin: 0 0 var(--s6); padding: var(--s5); border: 1px solid var(--ft-linje); border-radius: 4px; }
@media (min-width: 640px) { .tv-medaljlapp { grid-template-columns: 12rem 1fr; padding: var(--s6); } }
.tv-medaljlapp__fig { margin: 0; text-align: center; }
.tv-medaljlapp__bild { display: block; width: 100%; max-width: 12rem; height: auto; margin: 0 auto; }
.tv-medaljlapp__fig figcaption { margin: var(--s2) 0 0; font-size: .9375rem; color: var(--ft-text-svag); }
.tv-medaljlapp__rubrik { font-weight: 700; color: var(--ft-aubergine); margin: 0 0 var(--s2); }
.tv-medaljlapp__kort ul { margin: 0; padding-left: 1.25rem; font-size: 1rem; }
.tv-medaljlapp__kort li { margin-bottom: var(--s2); }
.tv-medaljvinnare { list-style: none; margin: 0 0 var(--s5); padding: 0; }
.tv-medaljvinnare__rad { padding: var(--s3) 0; border-bottom: 1px solid var(--ft-linje); }
.tv-medaljvinnare__rad:first-child { border-top: 1px solid var(--ft-linje); }
.ft-prosa .tv-medaljvinnare p { margin: 0; }
.tv-medaljvinnare__namn { font-weight: 700; font-size: 1.125rem; }
.tv-medaljvinnare__lista, .tv-medaljvinnare__ord { font-size: 1rem; }
.tv-medaljvinnare__ord { color: var(--ft-text-svag); }
.tv-medaljfiler { list-style: none; margin: 0 0 var(--s5); padding: 0; display: grid; gap: var(--s3); }
@media (min-width: 640px) { .tv-medaljfiler { grid-template-columns: 1fr 1fr; } }
.ft-prosa .tv-medaljfiler li { margin: 0; }
.ft-prosa a.tv-medaljfiler__lank { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 44px; height: 100%; box-sizing: border-box; padding: var(--s3) var(--s4); border: 1px solid var(--ft-linje-stark); border-radius: 4px; color: var(--ft-text); text-decoration: none; }
.ft-prosa a.tv-medaljfiler__lank:hover { border-color: var(--ft-aubergine); background: var(--ft-yta); }
.tv-medaljfiler__format { font-weight: 700; color: var(--ft-aubergine); text-decoration: underline; text-decoration-color: var(--ft-korall); text-decoration-thickness: 2px; text-underline-offset: .18em; }
.tv-medaljfiler__om { font-size: .9375rem; color: var(--ft-text-svag); }

/* ---------- Sidfot ---------- */
.ft-footer { margin-top: var(--s8); background: var(--ft-yta); border-top: 1px solid var(--ft-linje); font-size: 1rem; }
.ft-footer-in { display: grid; gap: var(--s6); padding-top: var(--s7); padding-bottom: var(--s6); }
@media (min-width: 640px) { .ft-footer-in { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .ft-footer-in { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }
.ft-footer-namn { font: 900 1.375rem/1.2 var(--ft-font); color: var(--ft-aubergine); margin: 0 0 var(--s3); }
.ft-footer-om p { max-width: 26rem; }
.ft-footer h2 { font-size: 1rem; font-weight: 700; color: var(--ft-text); margin: 0 0 var(--s3); }
.ft-footer ul { list-style: none; margin: 0 0 var(--s3); padding: 0; }
.ft-footer li { margin: 0; }
.ft-footer-kol a { display: inline-flex; align-items: center; min-height: 32px; color: var(--ft-text); text-decoration: none; }
.ft-footer-kol a:hover { text-decoration: underline; text-decoration-color: var(--ft-korall); }
.ft-footer-botten { padding-top: var(--s4); padding-bottom: var(--s6); }
.ft-footer-botten p { margin: 0; padding-top: var(--s4); border-top: 1px solid var(--ft-linje); font-size: .9375rem; color: var(--ft-text-svag); }

@media print {
	.ft-header, .ft-footer, .ft-rail { display: none; }
}

/* Brödtextens vikt: föräldratemat sätter 300, som är för tunt för läsning. */
body, p, li, dd, dt, td, figcaption, blockquote, .wp-block-post-excerpt__excerpt { font-weight: 400; }
