/* NBDG-teema. Vain se, mita theme.json ja lohkoasetukset eivat tee. Ei irrallisia heksoja: kaikki varit tulevat tokeneista. */

:root {
	--ember: var(--wp--preset--color--ember);
	--paper: var(--wp--preset--color--paper);
	--ink: var(--wp--preset--color--ink);
	--graphite: var(--wp--preset--color--graphite);
	--rule: var(--wp--preset--color--rule);
	--display: var(--wp--preset--font-family--bungee);
	--gutter: clamp(1rem, 0.4rem + 2.6vw, 3rem);
	--edge: max(var(--gutter), calc((100vw - var(--wp--style--global--wide-size)) / 2));
}

html { -webkit-text-size-adjust: 100%; }
body { font-feature-settings: "kern" 1; overflow-wrap: break-word; }
h1, h2, h3, h4 { text-wrap: pretty; margin-block: 0; }

/* Linkit: #E94E1B jaa tekstina vaalealla 3,4:1 (ei AA), joten teksti on mustaa ja brandivari on alleviivauksessa. */
a { text-decoration-color: var(--ember); text-decoration-thickness: 2px; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 4px; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.is-style-section-ink :focus-visible { outline-color: var(--paper); }
.is-style-section-ink a { text-decoration-color: var(--ember); }

/* Rakenne: yksi vasen reuna koko sivustolle. Tayslevet kaistat venyvat, sisalto pysyy samalla linjalla. */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.site-main { margin: 0; }
header.wp-block-template-part { padding-block: 0.75rem; }
header.wp-block-template-part, footer.wp-block-template-part { padding-inline: var(--edge); }
.site-main > *:not(.alignfull) { margin-inline: var(--edge); max-width: none; }
.site-main > .alignfull { margin-inline: 0; max-width: none; padding-inline: var(--edge); }
.site-main > .alignfull > * { max-width: none; margin-inline: 0; }

/* Ylatunniste */
.site-bar { gap: 0.25rem 2rem; }
.site-brand { gap: 1rem; }
.site-logo { margin: 0; line-height: 0; }
.site-logo a { display: block; }
.cart-link { margin: 0; font-weight: 600; font-size: 1rem; }
.site-nav { font-size: 1.125rem; }
.site-nav .wp-block-navigation__container { gap: 0.15rem 1.35rem; }
.site-nav a { text-decoration: none; padding-block: 0.3rem; display: inline-block; }
.site-nav a:hover { text-decoration: underline; text-decoration-color: var(--ember); text-decoration-thickness: 3px; }

/* Bungee vain lyhyisiin nayttootsikoihin. Bungeessa on yksi paino: ei synteettista lihavointia. */
.status-line, .section-title, .page-display, .onward-name, .sm-band-title, .sm-page-title {
	font-family: var(--display);
	font-weight: 400;
	font-synthesis: none;
	letter-spacing: 0;
}

/* Tilannekaista: yksi lause, yksi punaoranssi pinta. Taman sivun rohkein ratkaisu. */
.status-band { padding-block: clamp(1.5rem, 1rem + 2vw, 2.75rem) clamp(1.75rem, 1rem + 2.5vw, 3.25rem); }
.status-line {
	font-size: var(--wp--preset--font-size--display);
	line-height: 1.06;
	text-wrap: balance;
}

/* Paajuttu + uusimmat */
.front-news {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}
.front-news > * { margin-block: 0 !important; }
.front-lead .wp-block-post-template { margin: 0; }
.front-lead-image { margin: 0 0 1.25rem; }
.front-lead-image img { display: block; width: 100%; height: auto; }
.front-lead-title { font-size: var(--wp--preset--font-size--heading-m); max-width: 22em; margin-bottom: 0.5rem; }
.front-lead-title a { text-decoration: none; }
.front-lead-title a:hover { text-decoration: underline; text-decoration-color: var(--ember); }
.front-lead-excerpt { font-size: var(--wp--preset--font-size--lead); line-height: 1.35; max-width: 34em; }
.front-lead-excerpt p { margin: 0; }
.front-lead-excerpt .wp-block-post-excerpt__more-text { display: none; }

.section-title { font-size: var(--wp--preset--font-size--section); line-height: 1.1; margin-bottom: 0.75rem; }

.latest-list .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.latest-list li { padding-block: 0.85rem; border-top: 1px solid var(--rule); }
.latest-list li:first-child { border-top: 2px solid var(--ink); }
.latest-title { font-size: var(--wp--preset--font-size--lead); font-weight: 600; line-height: 1.18; margin-bottom: 0.2rem; }
.latest-title a { text-decoration: none; }
.latest-title a:hover { text-decoration: underline; text-decoration-color: var(--ember); }
.more-link { margin-top: 0.75rem; font-weight: 700; }

/* Minne jatkaa: tekstilinkit riveina, ei kortteja */
.onward { padding-block: 0 var(--wp--preset--spacing--60); }
.onward-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.35rem 2rem;
	align-items: baseline;
	padding-block: 1rem;
	border-top: 1px solid var(--rule);
}
.onward-row:first-of-type { border-top: 2px solid var(--ink); }
.onward-row > * { margin-block: 0 !important; }
.onward-name { font-size: var(--wp--preset--font-size--section); line-height: 1.1; }
.onward-row p { font-size: var(--wp--preset--font-size--lead); line-height: 1.3; max-width: 34em; }

/* Arkisto */
.archive-links { padding-block: 0 var(--wp--preset--spacing--60); }
.archive-row { margin-block: 0; padding-block: 1rem 0; }
.archive-row:first-of-type { border-top: 2px solid var(--ink); }
.archive-row > * { margin-block: 0 !important; }
.row-label { font-weight: 700; font-size: 1.125rem; margin-bottom: 0.4rem !important; }
.topic-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; font-size: var(--wp--preset--font-size--lead); font-weight: 600; }
.topic-list li { margin: 0; }

/* Tunnuselementti: vuosikortti, frisbeegolfin tuloskortin rakenne. Vari kertoo artikkelien maaran. */
.scorecard {
	list-style: none; margin: 0.25rem 0 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
	grid-auto-flow: column;
	border: 2px solid var(--ink);
	border-radius: 6px;
	overflow: hidden;
}
.scorecard li { margin: 0; border-left: 1px solid var(--ink); min-width: 0; }
.scorecard li:first-child { border-left: 0; }
.scorecard a { display: block; text-decoration: none; color: inherit; }
.scorecard-head {
	display: block; padding: 0.35rem 0.25rem;
	background: var(--ink); color: var(--paper);
	font-weight: 700; font-size: 1rem; line-height: 1.2; text-align: center;
}
.scorecard-cell {
	display: block; padding: 0.7rem 0.25rem 0.6rem;
	background: color-mix(in srgb, var(--ember) var(--share, 0%), var(--paper));
	font-family: var(--display); font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem); line-height: 1; text-align: center;
}
.scorecard a:hover .scorecard-head { background: var(--ember); color: var(--ink); }
.scorecard a:focus-visible { outline-offset: -4px; }
.scorecard-note { font-size: 1rem; color: var(--graphite); margin-top: 0.5rem !important; }

/* SM-kaista: sivuston ainoa tumma pinta */
.sm-band { padding-block: var(--wp--preset--spacing--40); margin-block: 0; }
.sm-band-inner {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) auto;
	gap: 0.5rem 2rem;
	align-items: center;
}
.sm-band-inner > * { margin-block: 0 !important; }
.sm-band-title { font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); line-height: 1.12; }
.scorecard--prices { border-color: var(--paper); margin: 0; }
.scorecard--prices li { border-left-color: var(--paper); }
.scorecard--prices .scorecard-head { background: var(--paper); color: var(--ink); padding-block: 0.15rem; }
.scorecard--prices .scorecard-cell { background: transparent; color: var(--paper); padding-block: 0.4rem; font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); white-space: nowrap; }
.sm-band-note { grid-column: 2 / -1; font-size: 1rem; }

/* Alatunniste */
footer.wp-block-template-part { padding-block: var(--wp--preset--spacing--50); }
.site-foot { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.site-foot > * { margin-block: 0 !important; }
.foot-title { font-family: var(--wp--preset--font-family--rajdhani); font-size: 1.125rem; font-weight: 700; margin-bottom: 0.4rem; }
.foot-list { list-style: none; margin: 0; padding: 0; }
.foot-list li { margin-block: 0.25rem; }
.foot-list a { text-decoration-thickness: 1px; }
.foot-list a:hover { text-decoration-thickness: 3px; }
.foot-company { margin-block: 0 0.5rem; line-height: 1.35; }

/* Uutisarkisto */
.archive-page { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.page-display { font-size: var(--wp--preset--font-size--display); line-height: 1.06; margin-bottom: var(--wp--preset--spacing--40); }
.archive-filter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(14rem, 0.7fr); gap: 1rem 2rem; align-items: start; padding-bottom: var(--wp--preset--spacing--40); }
.archive-filter > * { margin-block: 0 !important; }
.archive-filter .archive-row { padding: 0; border: 0; }
.archive-filter .topic-list { font-size: 1.125rem; gap: 0.25rem 0.9rem; }
.archive-search .wp-block-search__label { font-weight: 700; font-size: 1.125rem; }
.archive-search .wp-block-search__input { font: inherit; border: 2px solid var(--ink); border-radius: 6px; padding: 0.45rem 0.6rem; background: var(--paper); color: var(--ink); min-width: 0; }
.wp-block-search__button { margin-left: 0.4rem; }

.news-index .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.news-index li {
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: 1.25rem;
	padding-block: 0.9rem;
	border-top: 1px solid var(--rule);
	margin: 0;
}
.news-index li:first-child { border-top: 2px solid var(--ink); }
.news-thumb { grid-row: 1 / span 2; margin: 0; }
.news-index li:not(:has(.news-thumb)) { grid-template-columns: minmax(0, 1fr) !important; }
.wp-block-query-title.page-display { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 3rem); }
.news-thumb img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.news-title { font-size: var(--wp--preset--font-size--heading-s); font-weight: 600; line-height: 1.18; margin-block: 0 0.2rem; max-width: 40em; }
.news-title a { text-decoration: none; }
.news-title a:hover { text-decoration: underline; text-decoration-color: var(--ember); }
.news-meta { gap: 0.1rem 1rem; margin-block: 0 !important; }
.news-meta > * { margin-block: 0; }
.news-pages { margin-top: 1.5rem; gap: 1rem; font-weight: 600; }

/* Artikkeli */
.article-head, .text-page { padding-block-start: var(--wp--preset--spacing--50); }
.text-page { padding-block-end: var(--wp--preset--spacing--60); }
.article-title { max-width: 18em; margin-bottom: 0.75rem; }
.article-image { margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.article-image img { display: block; width: 100%; height: auto; }
.article-body { max-width: var(--wp--style--global--content-size); font-size: 1.3125rem; line-height: 1.5; }
/* Vanha Shopify-HTML: inline-painot eivat saa ohentaa tekstia. */
.article-body [style*="font-weight"] { font-weight: inherit !important; }
.article-body h2 *, .article-body h3 *, .article-body h4 * { font-weight: inherit; }
.site-main > .article-body { max-width: var(--wp--style--global--content-size); font-size: 1.3125rem; line-height: 1.5; }
/* Vanha Shopify-HTML: inline-painot eivat saa ohentaa tekstia. */
.article-body [style*="font-weight"] { font-weight: inherit !important; }
.article-body h2 *, .article-body h3 *, .article-body h4 * { font-weight: inherit; }
.article-body > * + * { margin-block-start: 1em; }
.article-body p { margin-block: 0 1em; }
.article-body h2, .article-body h3, .article-body h4 { margin-block: 1.6em 0.45em; }
.article-body h3 { font-size: 1.625rem; }
.article-body img { max-width: 100%; height: auto; }
.article-body iframe { max-width: 100%; }
.article-body strong { font-weight: 700; }
.article-body ul, .article-body ol { padding-left: 1.4em; }
.article-nav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; border-top: 2px solid var(--ink); margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60) !important; padding-block-start: 1rem; }
.article-nav > * { margin-block: 0 !important; font-weight: 600; font-size: 1.125rem; line-height: 1.25; }

/* Tyopaikka SM -maksusivu: kilpailut tuloskortin riveina */
.sm-page { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.sm-page-title { font-size: var(--wp--preset--font-size--display); line-height: 1.06; }
.sm-page-head > * { margin-block: 0; }
.sm-page-facts { font-size: var(--wp--preset--font-size--lead); margin-top: 0.75rem !important; }
.sm-page-info { font-size: var(--wp--preset--font-size--lead); font-weight: 600; margin-top: 0.15rem !important; }
.sm-steps { margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40); }
.sm-steps-list { margin: 0; padding-left: 1.3em; font-size: var(--wp--preset--font-size--lead); font-weight: 600; line-height: 1.3; }
.sm-steps-list li { margin-block: 0.2rem; padding-left: 0.2em; }
.sm-steps-list li::marker { font-family: var(--display); }

.sm-products { margin-block: 0; }
.sm-products .wc-block-product-template { display: block; margin: 0; padding: 0; list-style: none; border: 2px solid var(--ink); border-radius: 6px; overflow: hidden; }
.sm-products .wc-block-product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 14rem auto;
	grid-template-areas: "title price cta" "summary fee cta";
	gap: 0.15rem 2rem;
	align-items: start;
	padding: 1.1rem 1.25rem 1rem;
	margin: 0;
	width: 100% !important;
	max-width: none;
	box-sizing: border-box;
	border-top: 1px solid var(--ink);
	text-align: left;
}
.sm-products .wc-block-product:first-child { border-top: 0; }
.sm-product-title { grid-area: title; font-family: var(--display); font-weight: 400; font-size: var(--wp--preset--font-size--section); line-height: 1.1; margin: 0; }
.sm-product-title a { text-decoration: none; }
.sm-product-title a:hover { text-decoration: underline; text-decoration-color: var(--ember); }
.sm-products .sm-product-price { grid-area: price; font-family: var(--display); font-size: var(--wp--preset--font-size--section); line-height: 1.1; margin: 0; text-align: left; }
.sm-products .sm-product-price * { font-weight: 400; }
.sm-product-fee { grid-area: fee; font-size: 1rem; line-height: 1.25; margin: 0.2rem 0 0; }
.sm-products .sm-product-button { grid-area: cta; margin: 0; align-self: center; text-align: right; }
.sm-products .sm-product-button .wp-element-button { margin: 0; white-space: nowrap; }
.sm-product-summary { grid-area: summary; margin: 0.35rem 0 0 !important; line-height: 1.35; max-width: 42em; }
.sm-product-summary p { margin: 0 0 0.25rem; }

.site-main > .sm-pay { margin-block: var(--wp--preset--spacing--50) 0; max-width: 46rem; }
.sm-pay > * { margin-block: 0 0.75rem; }

/* Woon ostoskori ja kassa: samat tokenit, Woon omat lohkot */
.wc-block-components-notice-banner { border: 2px solid var(--ink) !important; border-radius: 6px !important; background: var(--paper) !important; color: var(--ink) !important; }
.wc-block-store-notice { outline: 0; }
.wc-block-components-notice-banner a { color: var(--ink) !important; opacity: 1 !important; }
.wc-page, .product-page { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.wc-page-content { margin-block-start: var(--wp--preset--spacing--40); }
.wc-block-components-product-metadata__description { display: none; }
.product-page > * { margin-block: 0.5rem; }
.product-page-price { font-family: var(--display); font-size: var(--wp--preset--font-size--section); }
.product-page-price * { font-weight: 400; }
.product-page-summary { max-width: 42em; }
.product-page .wp-block-add-to-cart-form { margin-block: 1rem; }
.product-page input.qty { display: none; }
.product-page .quantity { display: none; }
.wc-block-components-notice-banner > svg { background: var(--ink) !important; fill: var(--paper) !important; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-size: 1.125rem; }
.wc-block-components-button:not(.is-link) { border-radius: 6px; font-weight: 700; }
.woocommerce a.wp-element-button, .wc-block-cart__submit-button { text-decoration: none; }

/* Spike-merkinnat: paikkamerkit nakyvasti, poistetaan ennen julkaisua */
.ph {
	display: inline-block;
	margin-inline-start: 0.25em;
	padding: 0 0.35em;
	border: 1px dashed var(--ink);
	border-radius: 2px;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.5;
	vertical-align: 0.1em;
	white-space: normal;
}
p.ph, div.ph { display: block; font-size: 1rem; padding: 0.5em 0.7em; margin-inline-start: 0; }

/* Mobiili */
@media (max-width: 700px) {
	.front-news { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
	.sm-band-inner { grid-template-columns: minmax(0, 1fr); gap: 0.85rem; }
	.sm-band-note { grid-column: auto; }
	.archive-filter { grid-template-columns: minmax(0, 1fr); }
	.sm-products .wc-block-product {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "title title" "summary summary" "price cta" "fee cta";
		padding: 1rem;
	}
	.sm-products .sm-product-price { margin-top: 0.5rem; }
	.site-foot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.onward-row { grid-template-columns: minmax(0, 1fr); }
	.scorecard:not(.scorecard--prices) { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.scorecard:not(.scorecard--prices) li { border-left: 1px solid var(--ink); border-top: 1px solid var(--ink); }
	.scorecard:not(.scorecard--prices) li:nth-child(3n+1) { border-left: 0; }
	.scorecard:not(.scorecard--prices) li:nth-child(-n+3) { border-top: 0; }
	.scorecard-cell { font-size: 1.75rem; }
	.news-index li { grid-template-columns: 5.5rem minmax(0, 1fr); column-gap: 0.85rem; }
	.news-title { font-size: 1.25rem; }
	.article-nav { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
	.sm-products .wc-block-product { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "summary" "price" "fee" "cta"; }
	.sm-products .sm-product-button { text-align: left; margin-top: 0.6rem; }
}
@media (max-width: 380px) {
	.site-foot { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
