/* ==========================================================================
   Talaria – tema
   Farger og skrift kommer fra theme.json (--wp--preset--*). Her: oppsett,
   modellrekken, presentasjonsmodus og WooCommerce/Fly Cart/Svea.
   ========================================================================== */

:root {
	--tl-natt: var(--wp--preset--color--natt, #08091e);
	--tl-dyp: var(--wp--preset--color--dyp, #0f1a38);
	--tl-stal: var(--wp--preset--color--stal, #1d2946);
	--tl-rust: var(--wp--preset--color--rust, #c65a28);
	--tl-rust-mork: var(--wp--preset--color--rust-mork, #8e401d);
	--tl-turkis: var(--wp--preset--color--turkis, #00b1be);
	--tl-kalk: var(--wp--preset--color--kalk, #f5f4f3);
	--tl-taake: var(--wp--preset--color--taake, #a9aec4);
	--tl-fart: linear-gradient(90deg, var(--tl-rust), var(--tl-turkis));
	--tl-display: var(--wp--preset--font-family--display);
	--tl-fartfont: var(--wp--preset--font-family--fart);
	--tl-skraa: 10px; /* skråkant på knapper */
	--tl-topphoyde: 84px;
	--tl-linje: 1px solid rgba(245, 244, 243, 0.14);
}

/* Ingen standardluft mellom topp, hovedinnhold og bunn. */
.wp-site-blocks > * + * { margin-block-start: 0; }

html { scroll-behavior: smooth; scroll-padding-top: var(--tl-topphoyde); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--tl-rust); color: #fff; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--tl-turkis); outline-offset: 3px; }
img, video { max-width: 100%; }
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Fartslinjen – merkevarens overgang, brukt sparsomt. */
.tl-topp-wrap::before {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--tl-fart);
}

/* --------------------------------------------------------------------------
   Knapper: skrå kanter (fart), rust som handling, kalk-omriss som alternativ.
   -------------------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	clip-path: polygon(var(--tl-skraa) 0, 100% 0, calc(100% - var(--tl-skraa)) 100%, 0 100%);
	transition: background-color .15s ease, color .15s ease;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--tl-kalk);
	box-shadow: inset 0 0 0 2px var(--tl-kalk);
	clip-path: polygon(var(--tl-skraa) 0, 100% 0, calc(100% - var(--tl-skraa)) 100%, 0 100%);
	border: 0; padding: 0.95rem 1.9rem 0.8rem;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--tl-kalk); color: var(--tl-natt); }
.wp-block-buttons { gap: 0.9rem; }

/* --------------------------------------------------------------------------
   Toppen
   -------------------------------------------------------------------------- */
.tl-topp-wrap {
	position: sticky; top: 0; z-index: 200;
	background: rgba(8, 9, 30, 0.92);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	border-bottom: var(--tl-linje);
	transition: background-color .3s ease, border-color .3s ease;
}
.admin-bar .tl-topp-wrap { top: var(--wp-admin--admin-bar--height, 32px); }
/* På forsiden ligger toppen over videoen til man ruller. */
.home .tl-topp-wrap { position: fixed; inset: 0 0 auto 0; background: linear-gradient(180deg, rgba(8,9,30,.75), rgba(8,9,30,0)) no-repeat border-box; border-bottom: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
.home.admin-bar .tl-topp-wrap { top: var(--wp-admin--admin-bar--height, 32px); }
.home .tl-topp-wrap.er-rullet { background: rgba(8, 9, 30, 0.94); box-shadow: 0 1px 0 rgba(245,244,243,.14); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }

.tl-topp { padding-block: 0.9rem 0.8rem; }
.tl-topp__rad { gap: 1.5rem; min-height: calc(var(--tl-topphoyde) - 1.7rem); }
.tl-logo { margin: 0; flex: 0 0 auto; }
.tl-logo img { display: block; height: auto; aspect-ratio: 357 / 223; }
.tl-bunn-wrap .wp-block-image img { aspect-ratio: 357 / 223; height: auto; }
.tl-meny { flex: 1 1 auto; font-size: clamp(.82rem, 1.05vw, .98rem) !important; letter-spacing: .1em !important; }
.tl-meny .wp-block-navigation__container { flex-wrap: nowrap; }
.tl-meny .wp-block-navigation-item__content { text-decoration: none; padding-block: 0.4rem; position: relative; color: var(--tl-kalk); }
.tl-meny .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
	background: var(--tl-fart); transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.tl-meny .wp-block-navigation-item__content:hover::after,
.tl-meny .current-menu-item > .wp-block-navigation-item__content::after,
.tl-meny [aria-current="page"]::after { transform: scaleX(1); }
.tl-meny .wp-block-navigation-item__content:hover { color: var(--tl-kalk); }

/* Handlekurven (Fly Cart-lenken) mellom menyen og søk. */
.tl-handlekurv { flex: 0 0 auto; }
.tl-handlekurv .woofc-cart-link a {
	display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; color: var(--tl-kalk);
	font-family: var(--tl-display); font-size: .95rem; white-space: nowrap; padding: .45rem .2rem;
}
.tl-handlekurv .woofc-cart-link-inner { position: relative; display: inline-flex; align-items: center; gap: .55rem; }
.tl-handlekurv .woofc-cart-link-inner i { font-size: 1.35rem; position: relative; }
.tl-handlekurv .woofc-cart-link-inner::after {
	left: .9rem !important; right: auto !important; top: -.5rem !important;
	background: var(--tl-rust) !important; color: #fff !important; font-family: var(--tl-display) !important; font-weight: 700;
}
.tl-handlekurv .woofc-cart-link-inner[data-count="0"]::after { display: none; }
.tl-handlekurv a:hover { color: var(--tl-rust); }

.tl-sok { flex: 0 0 auto; margin: 0; }
.tl-sok .wp-block-search__button { background: transparent; color: var(--tl-kalk); clip-path: none; padding: .4rem; border: 0; }
.tl-sok .wp-block-search__button:hover { color: var(--tl-rust); }
.tl-sok .wp-block-search__input { background: var(--tl-stal); color: var(--tl-kalk); border: 0; font: inherit; padding: .5rem .8rem; }
.tl-sok.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { border: 0; }

/* Mobilmeny (overlay fra Navigation-blokken) */
.tl-meny .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--tl-natt); color: var(--tl-kalk); padding: 5rem 1.5rem 2rem;
}
.tl-meny .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.6rem; }
.tl-meny .wp-block-navigation__responsive-container-open svg, .tl-meny .wp-block-navigation__responsive-container-close svg { fill: var(--tl-kalk); width: 30px; height: 30px; }

@media (max-width: 781px) {
	:root { --tl-topphoyde: 68px; }
	.tl-logo img { width: 84px !important; }
	.tl-topp__rad { gap: .75rem; }
	.tl-meny { order: 4; flex: 0 0 auto; }
	.tl-handlekurv { margin-left: auto !important; }
	.tl-topp__rad { justify-content: flex-start !important; }
	.tl-handlekurv .woofc-cart-link-inner-subtotal { display: none; }
	.tl-start__slagord { font-size: clamp(3rem, 15vw, 5rem); }
}

/* --------------------------------------------------------------------------
   Seksjoner (felles)
   -------------------------------------------------------------------------- */
.tl-forside > * { margin-block: 0; }
.tl-seksjon { position: relative; }
.tl-seksjonstopp { gap: 1rem 2rem; margin-bottom: 1rem; }
.tl-seksjonstopp h2 { margin: 0; }

/* --------------------------------------------------------------------------
   Start (hovedvideo)
   -------------------------------------------------------------------------- */
.tl-start { padding-block: calc(var(--tl-topphoyde) + 2rem) clamp(3rem, 9vh, 6rem); overflow: hidden; }
.tl-start .wp-block-cover__background { background: linear-gradient(180deg, rgba(8,9,30,.35) 0%, rgba(8,9,30,.15) 45%, rgba(8,9,30,.9) 100%) !important; opacity: 1 !important; }
.tl-start .wp-block-cover__video-background { filter: saturate(1.05) contrast(1.05); }
.tl-start .wp-block-cover__inner-container { max-width: 1320px; }
.tl-start .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; }
.tl-start__slagord {
	font-family: var(--tl-display); font-style: italic; font-weight: 700;
	font-size: clamp(3rem, min(11.5vw, 19vh), 10.5rem); line-height: .88; letter-spacing: -0.045em;
	margin: 0 0 1.5rem -0.06em; max-width: 9ch; text-wrap: balance;
}
.tl-start__ingress { max-width: 34ch; color: var(--tl-kalk); margin: 0 0 2rem; }
/* Fartslinjen trekkes over bunnen av startbildet når siden lastes. */
.tl-start::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; z-index: 2;
	background: var(--tl-fart); transform-origin: left; transform: scaleX(0);
}
.tl-klar .tl-start::after { animation: tl-fart 1.4s cubic-bezier(.2,.8,.2,1) .25s forwards; }
.tl-js .tl-start__slagord, .tl-js .tl-start__ingress, .tl-js .tl-start__knapper { opacity: 0; transform: translateX(-24px); }
.tl-klar .tl-start__slagord { animation: tl-inn .9s cubic-bezier(.2,.8,.2,1) .15s forwards; }
.tl-klar .tl-start__ingress { animation: tl-inn .9s cubic-bezier(.2,.8,.2,1) .45s forwards; }
.tl-klar .tl-start__knapper { animation: tl-inn .9s cubic-bezier(.2,.8,.2,1) .6s forwards; }
@keyframes tl-fart { to { transform: scaleX(1); } }
@keyframes tl-inn { to { opacity: 1; transform: none; } }

/* --------------------------------------------------------------------------
   Modellrekken
   -------------------------------------------------------------------------- */
.tl-modeller { background: var(--tl-natt); }
.tl-familie { padding-block: clamp(3rem, 8vw, 6.5rem); border-top: var(--tl-linje); }
.tl-familie:nth-of-type(even) { background: linear-gradient(180deg, var(--tl-dyp), var(--tl-natt)); }
.tl-familie__rad { gap: clamp(1.5rem, 4vw, 4rem); margin: 0; align-items: stretch !important; }
.tl-familie__media { display: flex; align-self: stretch !important; }
.tl-familie__media > .tl-familie__film { flex: 1; width: 100%; }
.tl-familie__info { align-self: center !important; }
.tl-familie--speilet .tl-familie__rad { flex-direction: row-reverse; }
.tl-familie__film { min-height: clamp(340px, 62vh, 620px) !important; padding: 1.5rem 1.75rem; overflow: hidden; }
.tl-familie__film .wp-block-cover__background { background: linear-gradient(180deg, rgba(8,9,30,0) 40%, rgba(8,9,30,.85) 100%) !important; opacity: 1 !important; }
.tl-modellnavn {
	font-family: var(--tl-display); font-style: italic; font-weight: 700;
	font-size: var(--wp--preset--font-size--modell); line-height: .85; letter-spacing: -0.05em;
	margin: 0; text-transform: uppercase;
}
.tl-modellnavn__kode {
	display: block; font-size: .32em; letter-spacing: .02em; margin-top: .25em;
	color: transparent; -webkit-text-stroke: 1.5px var(--tl-turkis);
}
.tl-familie__tekst { color: var(--tl-kalk); margin: 0 0 1.5rem; max-width: 40ch; }

.tl-versjon { border-top: var(--tl-linje); padding-block: 1.25rem; display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; align-items: baseline; }
.tl-versjon > * { margin: 0 !important; }
.tl-versjon__navn { font-family: var(--tl-display); font-style: normal; font-size: 1.05rem; font-weight: 700; grid-column: 1; }
.tl-pris { grid-column: 1; font-family: var(--tl-display); font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; }
.tl-pris strong { font-weight: 700; }
.tl-pris del { font-size: .5em; color: var(--tl-taake); margin-left: .5rem; white-space: nowrap; }
.tl-versjon__detaljer { grid-column: 1 / -1; color: var(--tl-taake); font-size: 1.12rem; max-width: 52ch; }
.tl-status { grid-column: 2; grid-row: 1; font-family: var(--tl-fartfont); font-style: italic; font-weight: 700; font-size: .85rem; letter-spacing: .06em; display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.tl-status::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: currentColor; }
.tl-status--lager { color: var(--tl-turkis); }
.tl-status--snart { color: #e08a5b; }
.tl-status--utsolgt { color: var(--tl-taake); }
.tl-status--utsolgt::before { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; }
.tl-versjon .wp-block-buttons { grid-column: 1 / -1; margin-top: .6rem !important; }
.tl-versjon--utsolgt .tl-pris { color: var(--tl-taake); }

@media (max-width: 781px) {
	.tl-familie--speilet .tl-familie__rad { flex-direction: column; }
	.tl-familie__film { min-height: 340px !important; }
}

/* --------------------------------------------------------------------------
   Fordeler (fraktfritt)
   -------------------------------------------------------------------------- */
.tl-fordeler { padding-block: clamp(4rem, 10vw, 8rem); }
.tl-fordeler .wp-block-cover__inner-container > * { margin-left: 0 !important; }
.tl-fordeler__tittel { max-width: 14ch; margin: 0 0 2.5rem; line-height: 1; }
.tl-fordeler__liste { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.5rem 3rem; }
.tl-fordeler__liste li { border-top: 2px solid var(--tl-rust); padding-top: 1rem; color: var(--tl-kalk); font-size: 1.2rem; }
.tl-fordeler__liste strong { display: block; font-family: var(--tl-display); font-style: italic; font-size: 1.35rem; margin-bottom: .3rem; }

/* --------------------------------------------------------------------------
   Deler og utstyr / produktlister
   -------------------------------------------------------------------------- */

.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid !important; grid-template-columns: repeat(var(--tl-kol, 4), minmax(0, 1fr)); gap: 2rem 1.5rem; margin: 0 0 2rem; padding: 0;
}
.woocommerce ul.products.columns-3 { --tl-kol: 3; }
.woocommerce ul.products.columns-2 { --tl-kol: 2; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important;
	display: flex; flex-direction: column; background: var(--tl-dyp); padding: 0 0 1.25rem; position: relative;
}
.woocommerce ul.products li.product a img { box-sizing: border-box; width: 100%; margin: 0 0 1rem; aspect-ratio: 4 / 3; object-fit: contain; background: var(--tl-kalk); padding: 1rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tl-display); font-size: 1.05rem !important; font-weight: 700; padding: 0 1.25rem !important; color: var(--tl-kalk); line-height: 1.3;
}
.woocommerce ul.products li.product .price { color: var(--tl-kalk) !important; font-family: var(--tl-display); font-size: 1.05rem !important; padding: 0 1.25rem; margin: .4rem 0 1rem !important; }
.woocommerce ul.products li.product .price del { color: var(--tl-taake); opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button { margin: auto 1.25rem 0 !important; align-self: flex-start; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { text-decoration: none; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale {
	background: var(--tl-rust); color: #fff; border-radius: 0; min-height: 0; min-width: 0; line-height: 1;
	padding: .5rem .75rem; font: 700 italic .8rem var(--tl-fartfont); letter-spacing: .06em; top: .75rem; left: .75rem; right: auto; margin: 0;
}
.woocommerce a.added_to_cart { display: none; }
@media (max-width: 1023px) { .woocommerce ul.products, .woocommerce-page ul.products { --tl-kol: 2 !important; } }
@media (max-width: 520px) { .woocommerce ul.products, .woocommerce-page ul.products { --tl-kol: 1 !important; } }

/* --------------------------------------------------------------------------
   Manualer og service
   -------------------------------------------------------------------------- */
.tl-verksted { padding-block: clamp(4rem, 9vw, 7rem); background: linear-gradient(180deg, var(--tl-dyp), var(--tl-natt)); border-top: var(--tl-linje); }
.tl-verksted__kolonner { gap: clamp(2rem, 6vw, 5rem); }
.tl-manualer { list-style: none; padding: 0; margin: 1.5rem 0 0; border-top: var(--tl-linje); }
.tl-manualer li { border-bottom: var(--tl-linje); }
.tl-manualer a { display: grid; grid-template-columns: 9rem 1fr auto; gap: 1rem; align-items: baseline; padding: 1rem .25rem; text-decoration: none; color: var(--tl-kalk); transition: background-color .15s ease, padding .15s ease; }
.tl-manualer a:hover { background: rgba(198, 90, 40, .12); padding-left: .75rem; color: var(--tl-kalk); }
.tl-manualer__type { color: var(--tl-taake); }
.tl-manualer__fil { font-family: var(--tl-display); font-size: .85rem; color: var(--tl-rust); }
@media (max-width: 600px) { .tl-manualer a { grid-template-columns: 1fr auto; } .tl-manualer__type { grid-column: 1 / -1; font-size: .95rem; } }
.tl-verksted__hjelp { background: var(--tl-stal); padding: clamp(1.5rem, 3vw, 2.5rem); align-self: flex-start; border-top: 3px solid var(--tl-turkis); }
.tl-verksted__hjelp h3 { margin-top: 0; }
.tl-kontaktlinje { font-family: var(--tl-display); font-size: 1.15rem; }
.tl-kontaktlinje a { text-decoration: none; }

/* --------------------------------------------------------------------------
   Avslutning
   -------------------------------------------------------------------------- */
.tl-avslutning { padding-block: clamp(4rem, 10vw, 8rem); }
.tl-avslutning h2 { line-height: 1.05; text-wrap: balance; }

/* --------------------------------------------------------------------------
   Bunn
   -------------------------------------------------------------------------- */
.tl-bunn-wrap { background: var(--tl-dyp); border-top: 3px solid transparent; border-image: var(--tl-fart) 1; }
.tl-bunn { padding-block: clamp(3rem, 6vw, 4.5rem) 1.5rem; font-size: 1.1rem; }
.tl-bunn__kolonner { gap: 2.5rem; }
.tl-bunn__tittel { font-family: var(--tl-display); font-style: normal; font-size: 1.05rem !important; margin: 0 0 .8rem; color: var(--tl-turkis); }
.tl-bunn__tekst { color: var(--tl-taake); max-width: 34ch; }
.tl-bunn a { text-decoration: none; }
.tl-bunn a:hover { color: var(--tl-rust); text-decoration: underline; }
.tl-bunn__lenker { list-style: none; padding: 0; margin: 0; line-height: 2; }
.tl-bunn__linje { border-top: var(--tl-linje); margin-top: 2.5rem; padding-top: 1.25rem; color: var(--tl-taake); font-size: .95rem; }
/* Plass til den flytende Fly Cart-knappen nede til høyre */
.tl-bunn__linje { padding-right: 6.5rem; padding-bottom: .5rem; min-height: 4.5rem; }
.tl-bunn__linje p { margin: 0; }
.tl-bunn__sosial { margin-top: 1rem; }
.tl-levert { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; color: var(--tl-taake); }
.tl-levert a { display: inline-flex; align-items: center; }
.tl-levert a:hover { opacity: .8; text-decoration: none; }
.tl-levert img.tl-levert__logo { height: 22px !important; width: auto !important; max-width: none; display: block; }
.tl-levert img.tl-levert__logo--mobit { height: 16px !important; aspect-ratio: 604 / 150; }
.tl-levert img.tl-levert__logo--kodelig { height: 24px !important; aspect-ratio: 124 / 32; }

/* --------------------------------------------------------------------------
   Vanlige sider
   -------------------------------------------------------------------------- */
.tl-side { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(3rem, 8vw, 6rem); min-height: 60vh; }
.tl-sidetopp { margin-bottom: clamp(1.5rem, 4vw, 3rem); padding-bottom: 1.25rem; position: relative; }
.tl-sidetopp::after { content: ""; position: absolute; left: 0; bottom: 0; width: 6rem; height: 3px; background: var(--tl-fart); }
.tl-sidetopp h1 { margin: 0; font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: 1; }
.tl-side .wp-block-post-content > * + * { margin-top: 1.1em; }
.tl-side .wp-block-post-content h2 { margin-top: 2.2em; }
.tl-side .wp-block-post-content table { border-collapse: collapse; width: 100%; }
.tl-side .wp-block-post-content :is(td, th) { border-bottom: var(--tl-linje); padding: .6rem .4rem; text-align: left; }

/* Innholdsblokker brukt på undersidene (mønstre i patterns/side-*.php) */
.tl-ingress { font-size: var(--wp--preset--font-size--ingress); line-height: 1.4; color: var(--tl-kalk); }
.tl-faktaboks { background: var(--tl-stal); padding: clamp(1.25rem, 3vw, 2rem); border-left: 3px solid var(--tl-turkis); }
.tl-faktaboks > :first-child { margin-top: 0; }
.tl-faktaboks ul { padding-left: 1.2rem; }
.tl-kontaktkort { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.tl-kontaktkort > .wp-block-group { background: var(--tl-dyp); padding: 1.5rem; border-top: 3px solid var(--tl-rust); margin: 0; }
.tl-kontaktkort h3 { margin: 0 0 .4rem; font-size: 1rem; color: var(--tl-taake); font-family: var(--tl-display); font-style: normal; }
.tl-kontaktkort p { margin: 0; font-family: var(--tl-display); font-size: 1.15rem; }
.tl-kontaktkort a { text-decoration: none; }

/* --------------------------------------------------------------------------
   WooCommerce – felles
   -------------------------------------------------------------------------- */
.tl-butikk { padding-block: clamp(1.5rem, 4vw, 3rem) clamp(3rem, 8vw, 6rem); }
.woocommerce .woocommerce-breadcrumb { color: var(--tl-taake); font-size: 1rem; margin: 0 0 1.5rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--tl-taake); text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--tl-kalk); }
.tl-brodsmule-skille { margin: 0 .5rem; opacity: .5; }
.woocommerce-products-header__title.page-title, .woocommerce .page-title { font-family: var(--tl-display); font-style: italic; font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: 1; margin: 0 0 1.5rem; }
.woocommerce .woocommerce-result-count { color: var(--tl-taake); }
.woocommerce .woocommerce-ordering select, .woocommerce select, .woocommerce-page select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce .quantity .qty,
.woocommerce-page input[type="text"], .woocommerce-page input[type="email"], .woocommerce-page input[type="tel"], .woocommerce-page input[type="number"], .woocommerce-page input[type="password"], .woocommerce-page textarea {
	background: var(--tl-stal); color: var(--tl-kalk); border: 1px solid rgba(245,244,243,.2); border-radius: 0; padding: .7rem .8rem; font: inherit; font-size: 1.05rem;
}
.woocommerce select option { background: var(--tl-dyp); color: var(--tl-kalk); }
.woocommerce .quantity .qty { width: 4.5rem; text-align: center; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page .wp-block-button__link {
	background: var(--tl-rust) !important; color: #fff !important; border-radius: 0; border: 0;
	font: 700 italic .95rem/1 var(--tl-fartfont); text-transform: uppercase; letter-spacing: .12em; padding: .95rem 1.9rem .8rem !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--tl-rust-mork) !important; }
.woocommerce button.button:disabled, .woocommerce button.button.disabled, .woocommerce button.button.alt.disabled { background: var(--tl-stal) !important; opacity: .7; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error, .woocommerce-notices-wrapper > * {
	background: var(--tl-stal); color: var(--tl-kalk); border-top: 3px solid var(--tl-turkis); border-radius: 0;
}
.woocommerce .woocommerce-error { border-top-color: var(--tl-rust); }
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before { color: var(--tl-turkis); }
.woocommerce .woocommerce-message a.button { margin-left: 1rem; }
.woocommerce .star-rating span::before { color: var(--tl-rust); }
.woocommerce nav.woocommerce-pagination ul, .woocommerce nav.woocommerce-pagination ul li { border-color: rgba(245,244,243,.2); }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { color: var(--tl-kalk); padding: .6rem .9rem; }
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--tl-rust); color: #fff; }

/* WooCommerce sine blokkstilte meldinger (brukes også i klassiske maler i blokktemaer) */
.wc-block-components-notice-banner { background: var(--tl-stal) !important; color: var(--tl-kalk) !important; border: 0 !important; border-top: 3px solid var(--tl-turkis) !important; border-radius: 0 !important; }
.wc-block-components-notice-banner.is-error { border-top-color: var(--tl-rust) !important; }
.wc-block-components-notice-banner > svg { fill: var(--tl-turkis) !important; background: transparent !important; }
.wc-block-components-notice-banner a { color: var(--tl-kalk) !important; }
.woocommerce-form-coupon, .woocommerce-form-login { border: var(--tl-linje) !important; border-radius: 0 !important; }

/* --------------------------------------------------------------------------
   Produktside (klassisk mal)
   -------------------------------------------------------------------------- */
.tl-butikk--produkt div.product { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1rem clamp(1.5rem, 4vw, 4rem); align-items: start; position: relative; }
.tl-butikk--produkt div.product > * { grid-column: 1 / -1; }
.tl-butikk--produkt div.product > .woocommerce-product-gallery { grid-column: 1; width: 100% !important; float: none !important; margin: 0 !important; position: relative !important; }
.tl-butikk--produkt div.product > .summary { grid-column: 2; width: 100% !important; float: none !important; margin: 0 !important; }
.tl-butikk--produkt div.product > .woocommerce-product-gallery, .tl-butikk--produkt div.product > .summary { grid-row: 1; }
.tl-butikk--produkt div.product > .onsale { grid-column: 1; grid-row: 1; position: absolute; z-index: 3; top: .75rem !important; left: .75rem !important; }
.woocommerce div.product .woocommerce-product-gallery__wrapper, .woocommerce div.product .woocommerce-product-gallery__image { background: var(--tl-kalk); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; margin-top: .5rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { background: var(--tl-kalk); opacity: .6; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }
.woocommerce div.product .product_title {
	font-family: var(--tl-display); font-style: italic; font-weight: 700; text-transform: uppercase;
	font-size: clamp(2rem, 4.5vw, 3.6rem); line-height: .95; letter-spacing: -0.03em; margin: 0 0 1rem;
}
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--tl-kalk) !important; font-family: var(--tl-display); font-size: clamp(1.6rem, 3vw, 2.2rem) !important; font-weight: 700; }
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--tl-taake); font-size: .6em; opacity: 1; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--tl-kalk); font-size: 1.15rem; }
.woocommerce div.product .woocommerce-product-details__short-description ul { padding-left: 1.2rem; }
.woocommerce div.product form.cart { margin: 1.5rem 0; padding: 1.5rem 0; border-top: var(--tl-linje); border-bottom: var(--tl-linje); }
.woocommerce div.product form.cart .variations { margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; }
.woocommerce div.product form.cart .variations th label { font-family: var(--tl-display); font-size: 1rem; color: var(--tl-taake); font-weight: 400; }
.woocommerce div.product form.cart .variations td { margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations select { min-width: 60%; }
.woocommerce div.product form.cart .reset_variations { color: var(--tl-taake); font-size: .95rem; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 1.6rem !important; }
.woocommerce div.product form.cart .button { padding-inline: 2.4rem !important; }
.woocommerce div.product .stock { color: var(--tl-turkis); font-family: var(--tl-display); }
.woocommerce div.product .stock.out-of-stock { color: var(--tl-taake); }
.woocommerce div.product .product_meta { color: var(--tl-taake); font-size: 1rem; display: grid; gap: .3rem; }
.woocommerce div.product .product_meta a { color: var(--tl-taake); }

/* Variation Swatches (CartFlows) */
.cfvsw-swatches-container { gap: .5rem; flex-wrap: wrap; }
.cfvsw-swatches-option { border-radius: 0 !important; border: 2px solid rgba(245,244,243,.3) !important; background: var(--tl-stal); color: var(--tl-kalk); min-width: 2.6rem; min-height: 2.6rem; }
.cfvsw-swatches-option:hover, .cfvsw-swatches-option.cfvsw-selected-swatch { border-color: var(--tl-rust) !important; box-shadow: 0 0 0 2px var(--tl-rust); }
.cfvsw-swatches-option .cfvsw-swatch-inner { color: var(--tl-kalk); font-family: var(--tl-display); }

/* Advanced Product Fields */
.wapf-wrapper .wapf-field-label label, .wapf-field-label { font-family: var(--tl-display); color: var(--tl-taake); font-weight: 400; }
.wapf-field-input input, .wapf-field-input select, .wapf-field-input textarea { background: var(--tl-stal) !important; color: var(--tl-kalk) !important; border: 1px solid rgba(245,244,243,.2) !important; border-radius: 0 !important; }
.wapf-product-totals { border-top: var(--tl-linje); padding-top: 1rem; }

/* Faner, relaterte produkter */
.woocommerce div.product .woocommerce-tabs { margin-top: clamp(2rem, 5vw, 4rem); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.5rem; border-bottom: var(--tl-linje); display: flex; flex-wrap: wrap; gap: .5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--tl-taake); font: 700 italic .95rem var(--tl-fartfont); text-transform: uppercase; letter-spacing: .1em; padding: .8rem 1rem; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tl-kalk); box-shadow: inset 0 -3px 0 var(--tl-rust); }
.woocommerce div.product .woocommerce-tabs .panel { color: var(--tl-kalk); max-width: 80ch; font-size: 1.15rem; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { display: none; }
/* Innhold fra produktbeskrivelsen (tabeller, video, innebygd) skal aldri gjøre siden bredere enn skjermen */
.woocommerce div.product .woocommerce-product-gallery, .woocommerce div.product .summary, .woocommerce div.product .woocommerce-tabs { min-width: 0; max-width: 100%; }
.woocommerce div.product :is(.woocommerce-tabs .panel, .woocommerce-product-details__short-description) table { display: block; max-width: 100%; overflow-x: auto; }
.woocommerce div.product :is(.woocommerce-tabs .panel, .woocommerce-product-details__short-description) :is(img, video, iframe, .wp-video, .mejs-container, .wp-video-shortcode) { max-width: 100% !important; height: auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs { overflow-x: auto; flex-wrap: nowrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
.woocommerce table.shop_attributes { border-top: var(--tl-linje); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-bottom: var(--tl-linje); background: transparent !important; color: var(--tl-kalk); font-style: normal; padding: .6rem .8rem; }
.woocommerce table.shop_attributes th { color: var(--tl-taake); font-family: var(--tl-display); font-weight: 400; }
.woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: var(--wp--preset--font-size--stor); margin-bottom: 1.5rem; }
@media (max-width: 860px) {
	.tl-butikk--produkt div.product { grid-template-columns: minmax(0, 1fr); }
	.tl-butikk--produkt div.product > .woocommerce-product-gallery, .tl-butikk--produkt div.product > .summary { grid-column: 1; grid-row: auto; position: relative !important; }
	.tl-butikk--produkt div.product > .woocommerce-product-gallery { grid-row: 1; }
}

/* --------------------------------------------------------------------------
   Handlekurv og kasse (klassiske maler, Svea Checkout)
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; }
.woocommerce table.shop_table th { font-family: var(--tl-display); font-weight: 400; color: var(--tl-taake); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: var(--tl-linje) !important; padding: .9rem .6rem; }
.woocommerce table.shop_table img { width: 72px; background: var(--tl-kalk); }
.woocommerce a.remove { color: var(--tl-rust) !important; }
.woocommerce a.remove:hover { background: var(--tl-rust); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3, #order_review_heading { font-family: var(--tl-display); font-style: italic; font-size: var(--wp--preset--font-size--stor); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { background: var(--tl-dyp); padding: 1.5rem; }
.woocommerce-checkout #payment { background: var(--tl-dyp) !important; color: var(--tl-kalk) !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: var(--tl-linje); }
.woocommerce-checkout #payment div.payment_box { background: var(--tl-stal); color: var(--tl-kalk); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--tl-stal); }
.woocommerce-terms-and-conditions-checkbox-text a { color: var(--tl-kalk); }
.woocommerce form .form-row label { color: var(--tl-taake); }
/* Svea Checkout: iframen har egen hvit flate – gi den luft og ramme. */
.wc-svea-checkout-page, #svea-checkout-container, .wc-svea-checkout-checkout-module { color: var(--tl-kalk); }
.wc-svea-checkout-checkout-module iframe, [id*="svea"] iframe { background: #fff; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table { background: var(--tl-dyp); }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table td, .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table th { padding-inline: 1rem; }

/* Fly Cart-vinduet: bruk temaets skrift */
.woofc-area, .woofc-area * { font-family: var(--wp--preset--font-family--brod); }
.woofc-area .woofc-area-top, .woofc-area .woofc-area-bot .woofc-action .woofc-action-inner > div a { font-family: var(--tl-fartfont) !important; font-style: italic; letter-spacing: .08em; }
.woofc-area .woofc-item-title a { font-family: var(--tl-display); }

/* --------------------------------------------------------------------------
   Presentasjonsmodus (?presentasjon) – én seksjon per skjerm, piltaster
   -------------------------------------------------------------------------- */
html:has(body.tl-presentasjon) { scroll-snap-type: y mandatory; scroll-padding-top: 0; }
.tl-presentasjon .tl-topp-wrap, .tl-presentasjon .tl-bunn-wrap, .tl-presentasjon #wpadminbar, .tl-presentasjon .woofc-count { display: none !important; }
.tl-presentasjon .tl-seksjon { scroll-snap-align: start; min-height: 100svh !important; }
.tl-presentasjon .tl-seksjon:not(.wp-block-cover) { display: flex; flex-direction: column; justify-content: center; }
.tl-presentasjon .tl-familie__film { min-height: 72svh !important; }
.tl-presentasjon .tl-start { padding-top: 2rem; }
.tl-pres-linje { position: fixed; left: 0; top: 0; height: 4px; width: 100%; background: var(--tl-fart); transform-origin: left; transform: scaleX(0); z-index: 100; transition: transform .3s ease; }
.tl-pres-logo { position: fixed; top: clamp(1rem, 3vh, 2rem); left: clamp(1rem, 3vw, 2.5rem); z-index: 100; display: block; }
.tl-pres-logo img { width: clamp(96px, 9vw, 150px); height: auto; aspect-ratio: 357 / 223; filter: drop-shadow(0 2px 10px rgba(8, 9, 30, .65)); }
.tl-pres-hjelp { position: fixed; right: 1rem; bottom: 1rem; z-index: 100; display: flex; gap: .5rem; align-items: center; color: var(--tl-taake); font-size: .95rem; }
.tl-pres-hjelp button { background: var(--tl-stal); color: var(--tl-kalk); border: 0; padding: .55rem .9rem; font: 700 italic .85rem var(--tl-fartfont); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.tl-pres-hjelp button:hover { background: var(--tl-rust); }

/* --------------------------------------------------------------------------
   Redusert bevegelse
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.tl-start__slagord, .tl-start__ingress, .tl-start__knapper { opacity: 1 !important; transform: none !important; animation: none !important; }
	.tl-start::after { transform: scaleX(1); animation: none !important; }
	*, *::before, *::after { transition-duration: .01ms !important; }
}
