/*
Theme Name: Korepetycje Toruń
Theme URI: https://korepetycje-torun.pl
Author: Arixo Communication
Author URI: https://arixo.fr
Description: Lekki motyw blokowy dla korepetycji językowych (francuski, włoski, hiszpański, niemiecki) — Toruń i online. Bez wtyczek, fonty hostowane lokalnie (RODO).
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: korepetycje-torun
*/

/* ---------- Bazowe ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[id] { scroll-margin-top: 90px; }
::selection { background: var(--wp--preset--color--marker); color: var(--wp--preset--color--contrast); }
:where(a, button, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ---------- Nagłówek ---------- */
.kt-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}
.admin-bar .kt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .kt-header { top: 46px; } }
.kt-logo-mark {
	display: inline-grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--marker);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 1.15rem;
	transform: rotate(-6deg);
	line-height: 1;
	margin: 0;
}
.kt-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 2rem;
	background: var(--wp--preset--color--base);
}

/* ---------- Etykieta nad tytułem ---------- */
.kt-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.8rem !important;
	font-weight: 600;
	color: var(--wp--preset--color--accent);
}

/* ---------- Hero ---------- */
.kt-hero h1 em {
	font-style: normal;
	background: linear-gradient(transparent 58%, var(--wp--preset--color--marker) 58%, var(--wp--preset--color--marker) 92%, transparent 92%);
	padding: 0 .08em;
}
.kt-greetings {
	position: relative;
	padding: 2.25rem 2rem 2rem;
	background: var(--wp--preset--color--marker);
	border-radius: 4px;
	transform: rotate(2deg);
	box-shadow: 0 18px 30px -18px rgba(22,33,62,.45);
	/* linie zeszytu */
	background-image: repeating-linear-gradient(transparent 0 2.45rem, rgba(22,33,62,.12) 2.45rem calc(2.45rem + 1px));
	background-position: 0 1.9rem;
}
.kt-greetings::before { /* taśma */
	content: "";
	position: absolute;
	top: -14px;
	left: 50%;
	width: 110px;
	height: 28px;
	transform: translateX(-50%) rotate(-3deg);
	background: rgba(255,255,255,.55);
	border: 1px solid rgba(22,33,62,.08);
}
.kt-greetings p {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0;
	font-size: clamp(2rem, 4.6vw, 3.1rem);
}
.kt-greetings p:nth-child(1) { color: var(--wp--preset--color--fr); }
.kt-greetings p:nth-child(2) { color: var(--wp--preset--color--it); padding-left: 16%; }
.kt-greetings p:nth-child(3) { color: var(--wp--preset--color--es); padding-left: 5%; }
.kt-greetings p:nth-child(4) { color: var(--wp--preset--color--de); padding-left: 24%; }
.kt-greetings p:nth-child(5) {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
	letter-spacing: 0;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	margin-top: 1rem;
}
@media (prefers-reduced-motion: no-preference) {
	.kt-greetings { animation: kt-note .7s cubic-bezier(.2,.8,.2,1) both; }
	@keyframes kt-note { from { transform: rotate(-4deg) translateY(12px); } to { transform: rotate(2deg); } }
}
.kt-trust p {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.95rem;
	font-weight: 500;
}
.kt-trust p::before {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	flex: none;
}

/* ---------- Karty ---------- */
.kt-card {
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--custom--shadow--card);
	transition: transform .25s ease, box-shadow .25s ease;
	height: 100%;
}
.kt-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 1px 2px rgba(30,39,51,.06), 0 16px 32px -14px rgba(30,39,51,.26);
}
@media (prefers-reduced-motion: reduce) { .kt-card, .kt-card:hover { transition: none; transform: none; } }

.kt-lang-code {
	display: inline-grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 14px;
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.15rem !important;
	letter-spacing: 0.04em;
	margin: 0;
}
.kt-lang--fr .kt-lang-code { background: var(--wp--preset--color--fr); }
.kt-lang--it .kt-lang-code { background: var(--wp--preset--color--it); }
.kt-lang--es .kt-lang-code { background: var(--wp--preset--color--es); }
.kt-lang--de .kt-lang-code { background: var(--wp--preset--color--de); }
.kt-hello {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	margin: 0 !important;
}

/* Listy z „ptaszkiem” */
.kt-checklist { list-style: none; padding-left: 0; }
.kt-checklist li { position: relative; padding-left: 1.75rem; margin-bottom: 0.5rem; }
.kt-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 1rem;
	height: 0.55rem;
	border-left: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}

/* Kroki */
.kt-step-num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 3rem !important;
	line-height: 1;
	font-weight: 800;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--wp--preset--color--accent);
	margin: 0;
}

/* Cennik */
.kt-price {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.2rem, 4vw, 2.8rem) !important;
	font-weight: 600;
	line-height: 1;
	margin: 0;
}
.kt-price-featured {
	outline: 2px solid var(--wp--preset--color--accent);
	position: relative;
}
.kt-badge {
	display: inline-block;
	align-self: flex-start;
	background: var(--wp--preset--color--marker);
	color: var(--wp--preset--color--contrast);
	border-radius: 999px;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0;
}

/* Opinie */
.kt-quote-mark {
	font-family: var(--wp--preset--font-family--display);
	font-size: 4rem !important;
	line-height: 0.6;
	color: var(--wp--preset--color--accent);
	margin: 0;
}

/* FAQ */
.kt-faq .wp-block-details {
	background: var(--wp--preset--color--surface);
	border-radius: 14px;
	padding: 1.1rem 1.4rem;
	box-shadow: var(--wp--custom--shadow--card);
}
.kt-faq .wp-block-details summary {
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.kt-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.kt-faq .wp-block-details summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	line-height: 1;
	color: var(--wp--preset--color--accent);
	transition: transform .2s ease;
}
.kt-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.kt-faq .wp-block-details[open] summary { margin-bottom: 0.75rem; }

/* Zdjęcie „O mnie” */
.kt-portrait img {
	border-radius: 28px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}

/* Sekcja kontaktowa (ciemna) */
.kt-contact a:not(.wp-element-button) { color: #fff; }
.kt-contact .is-style-outline .wp-block-button__link {
	color: #fff;
	border-color: rgba(255,255,255,.55);
}
.kt-contact .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--marker); color: var(--wp--preset--color--contrast); }
.kt-contact .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; }
.kt-contact .is-style-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--wp--preset--color--contrast);
}
.kt-info-label {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.75rem !important;
	opacity: .7;
	margin: 0;
}

/* Przyciski outline */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	padding-top: calc(0.85rem - 2px);
	padding-bottom: calc(0.85rem - 2px);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--contrast);
}

/* Stopka */
.kt-footer a { color: inherit; text-decoration: none; }
.kt-footer a:hover { text-decoration: underline; }

/* Placeholdery do uzupełnienia – widoczne tylko dla zalogowanych */
.logged-in mark.kt-todo {
	background: #FFC9D6;
	color: inherit;
	padding: 0 .2em;
	border-radius: 3px;
}
mark.kt-todo { background: transparent; color: inherit; }

/* ---------- Poprawki układu ---------- */
.wp-site-blocks > * + * { margin-block-start: 0; }
@media (max-width: 600px) { .kt-header-cta { display: none; } }
.kt-contact .kt-eyebrow { color: var(--wp--preset--color--marker); }
.kt-contact .kt-info-label { color: var(--wp--preset--color--base); }
.kt-hero h1 { margin-top: 0.75rem; }
