/*
Theme Name: Sohvameister
Description: Kerge blokiteema Sohvameistri kodulehele. Kõik lehed ehitatakse Gutenbergi plokkidega.
Version: 0.1.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Author: Sohvameister
Text Domain: sohvameister
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* Ainult see, mida theme.json ei kata. */

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

:where(.wp-site-blocks) :focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary-dark);
}

/* Päis jääb kerimisel nähtavaks. */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}

/* Lingid tumedal taustal. */
.has-primary-background-color a:where(:not(.wp-element-button)),
.has-primary-dark-background-color a:where(:not(.wp-element-button)) {
	color: inherit;
}

/* Tabelid: loetav ka mobiilis. */
.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table th {
	background: var(--wp--preset--color--surface-strong);
	color: var(--wp--preset--color--primary-dark);
	text-align: left;
}

.wp-block-table td,
.wp-block-table th {
	border-color: var(--wp--preset--color--border);
	padding: 0.7em 0.9em;
}

/* Päise, sisu ja jaluse vahele ei teki juurtaseme vahet. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Lihtne lingiloend (jalus). */
.sohva-plain-list {
	list-style: none;
	padding-left: 0;
}

.sohva-plain-list li + li {
	margin-top: 0.35em;
}

/* Rippmenüü. */
.wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: 0.4rem 0;
	min-width: 16rem;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.45rem 1rem;
}

.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
}

/* Mobiil (alla 600px, sama piir mis navigatsiooni ülekattemenüül). */
.sohva-mobile-cta {
	display: none;
}

@media (max-width: 599px) {
	.sohva-hide-mobile {
		display: none !important;
	}

	.sohva-logo img {
		width: 150px !important;
		height: auto;
	}

	.sohva-mobile-cta {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		box-shadow: 0 -4px 16px rgba(31, 26, 36, 0.08);
	}

	.sohva-mobile-cta .wp-block-button__link {
		width: 100%;
		padding: 0.7em 0.5em;
		font-size: 0.9375rem;
		white-space: nowrap;
	}

	body {
		padding-bottom: 4.5rem;
	}

	/* Küpsiseteade ei kata kinnist nupuriba. */
	#cookie-notice {
		bottom: 4.25rem !important;
	}
}

/* Avatud mobiilimenüü: vasakule joondatud, suurem tekst, alammenüü ilma raamita. */
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .items-justified-right {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
}

.wp-block-navigation__responsive-container.is-menu-open {
	font-size: var(--wp--preset--font-size--large);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--preset--spacing--60);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0;
	box-shadow: none;
	min-width: 0;
	padding: 0 0 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--medium);
}

/* Tahvlis ja väiksemal sülearvutil (600–1279px) samuti hamburgermenüü: tõlgitud menüü + keelevalik ei mahu ühele reale. */
@media (min-width: 600px) and (max-width: 1279px) {
	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* ---------- Sisuplokid ---------- */

.sohva-eyebrow {
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Roheline nupp: tume tekst, hover'il veidi tumedam. */
.wp-block-button__link.has-accent-background-color {
	border-color: var(--wp--preset--color--accent);
}

.wp-block-button__link.has-accent-background-color:hover {
	filter: brightness(0.92);
}

/* Kontuurnupp tumedal taustal. */
.is-style-outline > .wp-block-button__link.has-base-color {
	border-color: currentColor;
}

/* Kategooriakaart: kogu kaart on klikitav (pealkirja link venitatakse üle kaardi). */
.sohva-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.sohva-card > * {
	margin-block: 0;
}

.sohva-card .wp-block-image {
	margin: 0;
}

.sohva-card__body {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}

.sohva-card__body > * + * {
	margin-block-start: 0.5rem;
}

.sohva-card h3 {
	margin: 0;
}

.sohva-card h3 a {
	text-decoration: none;
	color: inherit;
}

.sohva-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.sohva-card h3 a:focus-visible {
	outline: none;
}

.sohva-card:focus-within {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.sohva-card:hover {
	box-shadow: var(--wp--preset--shadow--soft);
	transform: translateY(-2px);
}

.sohva-card:hover h3 a {
	color: var(--wp--preset--color--primary);
}

@media (prefers-reduced-motion: reduce) {
	.sohva-card,
	.sohva-card:hover {
		transition: none;
		transform: none;
	}
}

/* Eelised. */
.sohva-feature {
	border-top: 4px solid var(--wp--preset--color--accent);
	padding-top: var(--wp--preset--spacing--40);
}

.sohva-feature > * + * {
	margin-block-start: 0.5rem;
}

/* Pildid sisus: ümarad nurgad. */
.sohva-media .wp-block-image img {
	border-radius: var(--wp--custom--radius--large);
}

.sohva-media .wp-block-image {
	margin: 0;
}

/* Eeliste ruudustik: 4 / 2 / 1 veergu (mitte 3+1). */
.sohva-features.sohva-features {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 999px) {
	.sohva-features.sohva-features {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.sohva-features.sohva-features {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Pikad eestikeelsed sõnad ei aja kitsal ekraanil pealkirja üle ääre. */
h1,
h2,
h3 {
	overflow-wrap: break-word;
}

/* ---------- Alamlehtede sektsioonid ---------- */

/* Lehe päis (hero) koos murupuruga. */
.sohva-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.sohva-breadcrumbs a {
	color: inherit;
}

.sohva-page-hero .wp-block-heading {
	margin-top: 0.5rem;
}

.sohva-page-hero .wp-block-image img {
	border-radius: var(--wp--custom--radius--large);
}

.sohva-page-hero .wp-block-image {
	margin: 0;
}

/* Lilla üleskutseriba. */
.sohva-cta-band :where(h2, p) {
	color: var(--wp--preset--color--base);
}

/* Eeliste ruudustiku variandid: 3 ja 2 veergu. */
.sohva-features--3.sohva-features--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sohva-features--2.sohva-features--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 999px) {
	.sohva-features--3.sohva-features--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.sohva-features--3.sohva-features--3,
	.sohva-features--2.sohva-features--2 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Ajajoon (Meist). */
.sohva-timeline {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto !important;
	counter-reset: none;
}

.sohva-timeline__item {
	position: relative;
	padding-top: var(--wp--preset--spacing--40);
	border-top: 4px solid var(--wp--preset--color--accent);
}

.sohva-timeline__item > * {
	margin: 0;
}

.sohva-timeline__year {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	line-height: 1.2;
	margin-bottom: 0.5rem !important;
}

@media (max-width: 999px) {
	.sohva-timeline {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.sohva-timeline {
		grid-template-columns: minmax(0, 1fr);
	}
}

.sohva-timeline > * {
	margin-block-start: 0 !important;
}

/* ---------- Kontakt ja vorm ---------- */

.sohva-form-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	padding: var(--wp--preset--spacing--50);
}

.sohva-form-card > h2 {
	margin-top: 0;
}

.sohva-map {
	border-radius: var(--wp--custom--radius--large);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--surface);
}

.sohva-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.sohva-form-note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* Vormi jaotiste pealkirjad brändi kirjas. */
.gform_wrapper .gsection_title {
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--primary-dark);
}

/* ---------- Hinnakiri ---------- */

.sohva-prices h3 {
	margin-top: var(--wp--preset--spacing--60);
	scroll-margin-top: 7rem;
}

.sohva-prices h2 {
	scroll-margin-top: 7rem;
}

.sohva-price-table {
	margin-top: var(--wp--preset--spacing--30);
}

.sohva-price-table table {
	width: 100%;
	font-size: var(--wp--preset--font-size--small);
}

.sohva-price-table tbody tr:nth-child(even) {
	background: var(--wp--preset--color--surface);
}

.sohva-price-table td:first-child {
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}

.sohva-price-table td:last-child,
.sohva-price-table th:last-child {
	white-space: nowrap;
	text-align: right;
}

.sohva-price-table td:last-child {
	font-weight: 700;
	color: var(--wp--preset--color--primary-dark);
}

.sohva-price-table td:nth-last-child(2) {
	white-space: nowrap;
}

/* Sisukord kahes veerus. */
.sohva-toc {
	columns: 2;
	column-gap: var(--wp--preset--spacing--60);
	padding-left: 1.2em;
}

.sohva-toc li {
	break-inside: avoid;
	margin-bottom: 0.35em;
}

@media (max-width: 599px) {
	.sohva-toc {
		columns: 1;
	}

	/* Mobiilis iga rida väikese kaardina: nimetus + hind, all kirjeldus + ühik, kood. */
	.sohva-price-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.sohva-price-table table,
	.sohva-price-table tbody {
		display: block;
	}

	.sohva-price-table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 1rem;
		padding: 0.7rem 0.75rem;
		border-bottom: 1px solid var(--wp--preset--color--border);
	}

	.sohva-price-table td {
		border: 0 !important;
		padding: 0 !important;
	}

	.sohva-price-table td:nth-child(1) {
		grid-column: 1;
		grid-row: 3;
		font-size: 0.8125rem;
	}

	.sohva-price-table td:nth-child(2) {
		grid-column: 1;
		grid-row: 1;
		font-weight: 600;
	}

	.sohva-price-table td:last-child {
		grid-column: 2;
		grid-row: 1;
	}

	.sohva-price-table td:nth-last-child(2) {
		grid-column: 2;
		grid-row: 2;
		text-align: right;
		color: var(--wp--preset--color--muted);
	}

	.sohva-price-table td:nth-last-child(2)::before {
		content: "/ ";
	}

	.sohva-price-table:not(.sohva-price-table--4) td:nth-child(3) {
		grid-column: 1;
		grid-row: 2;
		color: var(--wp--preset--color--muted);
	}
}

.sohva-price-table thead {
	border-bottom: 2px solid var(--wp--preset--color--primary);
}

/* Facebooki lehe vidin (Nõuanded). */
.sohva-fb iframe {
	display: block;
	width: 100%;
	max-width: 500px;
	border-radius: var(--wp--custom--radius--medium);
}

/* Keelevalik peamenüü real. */
.sohva-lang ul {
	display: flex;
	gap: 0.15rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.8125rem;
	font-weight: 600;
}

.sohva-lang a,
.sohva-lang__current {
	display: block;
	padding: 0.3rem 0.4rem;
	border-radius: var(--wp--custom--radius--small);
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	line-height: 1;
}

.sohva-lang a:hover {
	color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--surface);
}

.sohva-lang__current {
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--primary);
}

/* ---------- Nõuanded ---------- */

.sohva-post-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	overflow: hidden;
	height: 100%;
}

.sohva-post-card .wp-block-post-featured-image {
	margin: 0;
}

.sohva-post-card .wp-block-post-title a {
	text-decoration: none;
	color: inherit;
}

.sohva-post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary);
}

.sohva-featured img {
	border-radius: var(--wp--custom--radius--large);
}

.sohva-post-nav {
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
}
