/*
Theme Name:   adhdau
Theme URI:    https://adhdau.pl
Description:  Child theme of GeneratePress for adhdau.pl. Colours, fonts and shapes come from brand.md ("Ciepły zmierzch").
Author:       adhdau.pl
Template:     generatepress
Version:      1.1.0
Requires PHP: 8.2
Text Domain:  adhdau
License:      Proprietary
*/

/* ---------- Fonts: hosted locally (brand.md §4), OFL 1.1 ---------- */
@font-face {
	font-family: "Nunito";
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url("fonts/nunito-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Nunito";
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url("fonts/nunito-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens: brand.md §8 (single source; no colours hard-coded below) ---------- */
:root {
	--c-bg: #FFF8F1;
	--c-surface: #FFFFFF;
	--c-text: #2B2233;
	--c-text-muted: #6B6175;
	--c-primary: #5B4B8A;
	--c-primary-hover: #4A3C74;
	--c-accent: #F28C6B;
	--c-accent-soft: #FBD9CC;
	--c-soft: #EDE7F6;
	--c-band-mid: #D9CFEC;
	--c-border: #E4DCEB;
	--c-field-border: #6B6175;
	--c-error: #B42318;

	--font-heading: "Nunito", system-ui, sans-serif;
	--font-body: "Inter", system-ui, sans-serif;

	--radius-control: 12px;
	--radius-card: 16px;
	--tap-min: 48px;

	--wrap: 1120px;
	--gutter: 16px;
}

/* Map GeneratePress global colours to brand tokens (higher specificity than GP's inline :root). */
html:root {
	--contrast: var(--c-text);
	--contrast-2: var(--c-text-muted);
	--contrast-3: var(--c-border);
	--base: var(--c-soft);
	--base-2: var(--c-bg);
	--base-3: var(--c-surface);
	--accent: var(--c-primary);
}

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; }

body {
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
	overflow-x: hidden;
}

h1, h2, h3, h4, .main-title {
	font-family: var(--font-heading);
	font-weight: 700;
	color: var(--c-text);
	line-height: 1.2;
	text-wrap: balance;
}
h1 { font-size: 28px; margin-bottom: 16px; }
h2 { font-size: 22px; margin-bottom: 12px; }
h3 { font-size: 19px; margin-bottom: 8px; }

p, li { max-width: 70ch; }

a { color: var(--c-primary); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--c-primary-hover); }

:focus-visible {
	outline: 3px solid var(--c-primary);
	outline-offset: 2px;
}

input, select, textarea { font-size: 16px; }

@media (min-width: 768px) {
	body { font-size: 18px; }
	h1 { font-size: 40px; }
	h2 { font-size: 28px; }
	h3 { font-size: 21px; }
}

/* ---------- Layout: no shadows, separation by colour and lines ---------- */
.site, .site-content, .inside-article, .one-container .container,
.separate-containers .inside-article, .one-container .site-content {
	background: transparent;
	box-shadow: none;
}

.site-header {
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-border);
}
.inside-header { padding: 14px var(--gutter); }
.site-logo img, .site-header .header-image { width: 180px; height: auto; }

.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	color: var(--c-text);
	font-weight: 500;
	line-height: var(--tap-min);
	padding-left: 14px;
	padding-right: 14px;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a {
	color: var(--c-primary);
}
.main-navigation .menu-toggle {
	color: var(--c-text);
	min-height: var(--tap-min);
	font-family: var(--font-body);
}
@media (max-width: 768px) {
	.main-navigation.toggled .main-nav > ul,
	.main-navigation .main-nav ul ul { background: var(--c-surface); }
	.main-navigation.toggled .main-nav > ul { border-top: 1px solid var(--c-border); }
}

.site-footer, .site-info {
	background: var(--c-soft);
	color: var(--c-text);
	font-size: 14px;
}
.site-info a { color: var(--c-primary); }

/* ---------- Buttons (brand.md §5); doubled selectors beat GeneratePress inline CSS ---------- */
.entry-content .wp-block-button .wp-block-button__link, a.button, .button, button, input[type="submit"] {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.3;
	min-height: var(--tap-min);
	padding: 13px 22px;
	border-radius: var(--radius-control);
	background: var(--c-primary);
	color: var(--c-surface);
	border: 0;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.entry-content .wp-block-button .wp-block-button__link:hover, .entry-content .wp-block-button .wp-block-button__link:focus,
.button:hover, button:hover, input[type="submit"]:hover {
	background: var(--c-primary-hover);
	color: var(--c-surface);
}
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--c-surface);
	color: var(--c-primary);
	border: 2px solid var(--c-primary);
}
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--c-soft);
	color: var(--c-primary-hover);
}
@media (max-width: 599px) {
	.wp-block-buttons > .wp-block-button { width: 100%; }
	.wp-block-buttons > .wp-block-button > .wp-block-button__link { width: 100%; }
}

/* GeneratePress pads group inner containers; our blocks manage their own spacing. */
.entry-content .wp-block-group__inner-container { padding: 0; }
.entry-content .wp-block-group { margin-top: 0; }

/* Logo carries the name; keep the site title for screen readers only. */
.site-branding .main-title, .site-branding .site-description {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Narrower page gutters on phones (brand: 16 px). */
@media (max-width: 767px) {
	.one-container .inside-article, .separate-containers .inside-article,
	.one-container.right-sidebar .site-main, .one-container.no-sidebar .site-main,
	.inside-site-info { padding-left: var(--gutter); padding-right: var(--gutter); }
	.one-container .site-content { padding: 24px var(--gutter); }
	.one-container .site-main, .one-container .inside-article { padding-left: 0; padding-right: 0; }
}

/* ---------- Page building blocks (class names used in page content) ---------- */
.adhdau-section { margin: 0 0 56px; }

.adhdau-eyebrow {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-bottom: 8px;
}

.adhdau-lead { font-size: 19px; color: var(--c-text); }
.adhdau-muted { color: var(--c-text-muted); font-size: 15px; }

.adhdau-hero {
	padding: 24px 0 8px;
}
.adhdau-hero h1 { max-width: 18ch; }
.adhdau-hero .adhdau-lead { max-width: 56ch; }

.adhdau-card {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-card);
	padding: 24px 20px;
	height: 100%;
}
.adhdau-card h2, .adhdau-card h3 { margin-top: 0; }
.adhdau-card ul { margin: 0 0 16px 1.1em; }
.adhdau-card li { margin-bottom: 4px; }
.adhdau-card .wp-block-buttons { margin-top: 8px; }

.adhdau-card--adhd { border-top: 6px solid var(--c-primary); }
.adhdau-card--au { border-top: 6px solid var(--c-accent); }

.adhdau-price {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 28px;
	margin: 8px 0 4px;
}
.adhdau-price small {
	font-family: var(--font-body);
	font-weight: 400;
	font-size: 15px;
	color: var(--c-text-muted);
}

.adhdau-bundle {
	background: var(--c-accent-soft);
	border-radius: var(--radius-card);
	padding: 20px;
}
.adhdau-bundle p { margin-bottom: 8px; }

.adhdau-steps { counter-reset: step; list-style: none; margin: 0; padding: 0; }
.adhdau-steps li {
	counter-increment: step;
	position: relative;
	padding: 0 0 20px 56px;
	min-height: 40px;
}
.adhdau-steps li::before {
	content: counter(step);
	position: absolute;
	left: 0;
	top: -2px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--c-soft);
	color: var(--c-primary);
	font-family: var(--font-heading);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.adhdau-steps strong { display: block; font-family: var(--font-heading); font-size: 19px; }

.adhdau-checklist { list-style: none; margin: 0; padding: 0; }
.adhdau-checklist li { position: relative; padding-left: 30px; margin-bottom: 8px; }
.adhdau-checklist li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .45em;
	width: 12px;
	height: 7px;
	border-left: 2px solid var(--c-primary);
	border-bottom: 2px solid var(--c-primary);
	transform: rotate(-45deg);
}

.adhdau-soft {
	background: var(--c-soft);
	border-radius: var(--radius-card);
	padding: 24px 20px;
}

.adhdau-disclaimer {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-card);
	padding: 20px;
	font-size: 15px;
}
.adhdau-disclaimer p { margin-bottom: 0; }

.adhdau-notice {
	background: var(--c-soft);
	border-radius: var(--radius-card);
	padding: 16px 20px;
}

/* FAQ with native <details> */
.adhdau-faq details {
	border-bottom: 1px solid var(--c-border);
	padding: 4px 0;
}
.adhdau-faq summary {
	cursor: pointer;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 18px;
	min-height: var(--tap-min);
	display: flex;
	align-items: center;
	list-style: none;
	padding-right: 32px;
	position: relative;
}
.adhdau-faq summary::-webkit-details-marker { display: none; }
.adhdau-faq summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	font-size: 24px;
	color: var(--c-primary);
}
.adhdau-faq details[open] summary::after { content: "–"; }
.adhdau-faq details p { margin: 0 0 16px; }

/* Columns stack on phones with breathing room */
.wp-block-columns { gap: 20px; }

/* Footer note */
.adhdau-footer-note { max-width: 70ch; margin: 0 auto 8px; }

@media (min-width: 768px) {
	.adhdau-section { margin-bottom: 80px; }
	.adhdau-hero { padding: 48px 0 16px; }
	.adhdau-lead { font-size: 21px; }
	.adhdau-card { padding: 32px 28px; }
	.adhdau-soft { padding: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Rhythm inside regular pages */
.entry-content > h2, .entry-content > .wp-block-heading { margin-top: 32px; }
.adhdau-notice p:last-child, .adhdau-soft > :last-child, .adhdau-soft .wp-block-group__inner-container > :last-child { margin-bottom: 0; }

/* Tagline next to the logo */
.site-branding-container { display: flex; align-items: center; gap: 14px; }
.adhdau-tagline {
	margin: 0;
	padding-left: 14px;
	border-left: 1px solid var(--c-border);
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.25;
	color: var(--c-text-muted);
	max-width: 16ch;
}
@media (max-width: 599px) {
	.site-logo img, .site-header .header-image { width: 140px; }
	.site-branding-container { flex-direction: column; align-items: flex-start; gap: 2px; }
	.adhdau-tagline { font-size: 13px; padding-left: 0; border-left: 0; max-width: none; white-space: nowrap; }
}
