/* ==========================================================================
   Praxis Onepager – Dilek Akten
   Theme-Styles (Port des Next.js/Tailwind-Designs), gekapselt unter .pp-root.
   Farben kommen als CSS-Variablen aus den Plugin-Einstellungen.
   ========================================================================== */

/* Schriften – selbst gehostet (keine Verbindung zu Google, DSGVO) */
@font-face {
	font-family: "PP Figtree";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url(../fonts/figtree-latin-wght-normal.woff2) format("woff2");
	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: "PP Figtree";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url(../fonts/figtree-latin-ext-wght-normal.woff2) format("woff2");
	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: "PP Newsreader";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url(../fonts/newsreader-latin-opsz-normal.woff2) format("woff2");
	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: "PP Newsreader";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url(../fonts/newsreader-latin-ext-opsz-normal.woff2) format("woff2");
	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: "PP Newsreader";
	font-style: italic;
	font-weight: 200 800;
	font-display: swap;
	src: url(../fonts/newsreader-latin-opsz-italic.woff2) format("woff2");
	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: "PP Newsreader";
	font-style: italic;
	font-weight: 200 800;
	font-display: swap;
	src: url(../fonts/newsreader-latin-ext-opsz-italic.woff2) format("woff2");
	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;
}

/* --------------------------------------------------------------------------
   Basis
   -------------------------------------------------------------------------- */
.pp-root {
	--pp-bg: #f5f9f5;
	--pp-fg: #1a2721;
	--pp-primary: #37584a;
	--pp-secondary: #e3ece5;
	--pp-muted: #4e5c55;
	--pp-accent: #bbd1bf;
	--pp-border: #d1dad2;
	--pp-danger: #c2322b;
	--pp-on-primary: var(--pp-bg);
	--pp-radius: 0.75rem;
	--pp-sans: "PP Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--pp-serif: "PP Newsreader", ui-serif, Georgia, "Times New Roman", serif;

	background: var(--pp-bg);
	color: var(--pp-fg);
	font-family: var(--pp-sans);
	font-size: 1rem;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-align: left;
}

html:has(body.pp-body) { scroll-behavior: smooth; }
body.pp-body { margin: 0; background: var(--pp-bg, #f5f9f5); }

.pp-root *,
.pp-root *::before,
.pp-root *::after { box-sizing: border-box; border: 0 solid var(--pp-border); }

.pp-root :where(h1, h2, h3, p, dl, dd, blockquote, figure, ul) { margin: 0; padding: 0; }
.pp-root :where(ul) { list-style: none; }
.pp-root :where(h1, h2, h3) { font-weight: 400; letter-spacing: normal; text-transform: none; }
.pp-root :where(a) { color: inherit; text-decoration: none; }
.pp-root :where(img, svg) { display: block; max-width: 100%; }
.pp-root :where(button, input, select, textarea) { font: inherit; color: inherit; margin: 0; }
.pp-root em { font-style: italic; }
.pp-root section[id] { scroll-margin-top: 5rem; }
.pp-root :focus-visible { outline: 2px solid color-mix(in srgb, var(--pp-primary) 60%, transparent); outline-offset: 3px; border-radius: 4px; }

.pp-wrap { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1.5rem; }
.pp-icon { width: 1rem; height: 1rem; flex-shrink: 0; }
.pp-sr, .pp-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.pp-skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--pp-primary); color: var(--pp-on-primary); padding: .5rem 1rem; border-radius: 999px; }
.pp-skip:focus { top: 1rem; }

.pp-stack-2 { display: flex; flex-direction: column; gap: .5rem; }
.pp-stack-4 { display: flex; flex-direction: column; gap: 1rem; }
.pp-muted { color: var(--pp-muted); }
.pp-relaxed { line-height: 1.625; text-wrap: pretty; }
.pp-normal { font-weight: 400; }
.pp-break { word-break: break-all; }

/* Typografie */
.pp-eyebrow { font-size: .875rem; line-height: 1.25rem; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-primary); }
.pp-eyebrow--inv { color: color-mix(in srgb, var(--pp-on-primary) 70%, transparent); }

.pp-h1 { font-family: var(--pp-serif); font-size: 3rem; line-height: 1.05; text-wrap: balance; color: var(--pp-fg); }
.pp-h1 em { color: var(--pp-primary); }
.pp-h2 { font-family: var(--pp-serif); font-size: 2.25rem; line-height: 1.25; text-wrap: balance; color: inherit; }
.pp-h3 { font-family: var(--pp-serif); font-size: 1.5rem; line-height: 2rem; color: var(--pp-fg); }
.pp-h3--snug { line-height: 1.375; }
.pp-h3--lg { font-size: 1.875rem; line-height: 1.25; text-wrap: balance; }
.pp-h3--xl { font-size: 1.875rem; line-height: 2.25rem; text-wrap: balance; }
.pp-lead { font-size: 1.125rem; line-height: 1.625; text-wrap: pretty; color: var(--pp-muted); }

/* Buttons */
.pp-pill {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	background: var(--pp-primary); color: var(--pp-on-primary);
	border-radius: 999px; padding: .875rem 1.75rem;
	transition: opacity .2s; cursor: pointer; white-space: nowrap;
}
.pp-pill:hover { opacity: .9; }
.pp-pill--sm { padding: .5rem 1.25rem; font-size: .875rem; line-height: 1.25rem; }
.pp-pill--lg { height: 3rem; padding: 0 2rem; font-size: 1rem; font-weight: 500; }
.pp-pill[disabled] { opacity: .6; pointer-events: none; }

.pp-textlink {
	display: inline-flex; align-items: center; justify-content: center; padding: .875rem .5rem;
	color: var(--pp-fg);
	text-decoration: underline; text-decoration-color: var(--pp-accent); text-decoration-thickness: 2px; text-underline-offset: 8px;
	transition: text-decoration-color .2s;
}
.pp-textlink:hover { text-decoration-color: var(--pp-primary); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.pp-header {
	position: sticky; top: 0; z-index: 50;
	border-bottom: 1px solid color-mix(in srgb, var(--pp-border) 60%, transparent);
	background: color-mix(in srgb, var(--pp-bg) 85%, transparent);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.admin-bar .pp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pp-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .pp-header { top: 0; } }

.pp-header__bar { display: flex; height: 4rem; align-items: center; justify-content: space-between; }
.pp-brand { display: flex; flex-direction: column; line-height: 1.25; }
.pp-brand__name { font-family: var(--pp-serif); font-size: 1.125rem; color: var(--pp-fg); }
.pp-brand__sub { font-size: .75rem; letter-spacing: .025em; color: var(--pp-muted); }

.pp-nav { display: none; align-items: center; gap: 2rem; }
.pp-nav__link { font-size: .875rem; color: var(--pp-muted); transition: color .2s; }
.pp-nav__link:hover { color: var(--pp-fg); }

.pp-burger { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: 999px; background: none; cursor: pointer; color: var(--pp-fg); padding: 0; }
.pp-burger .pp-icon { width: 1.25rem; height: 1.25rem; }
.pp-burger__close, .pp-burger[aria-expanded="true"] .pp-burger__open { display: none; }
.pp-burger[aria-expanded="true"] .pp-burger__close { display: block; }

.pp-mnav { border-top: 1px solid color-mix(in srgb, var(--pp-border) 60%, transparent); }
.pp-mnav[hidden] { display: none; }
.pp-mnav ul { display: flex; flex-direction: column; padding-block: 1rem; }
.pp-mnav a { display: block; padding-block: .75rem; font-family: var(--pp-serif); font-size: 1.5rem; line-height: 2rem; color: var(--pp-fg); }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.pp-hero { display: flex; flex-direction: column; gap: 3rem; padding-top: 4rem; padding-bottom: 5rem; }
.pp-hero__text { display: flex; flex-direction: column; gap: 2rem; max-width: 48rem; }
.pp-hero__text .pp-lead { max-width: 36rem; }
.pp-hero__actions { display: flex; flex-direction: column; gap: 1rem; }
.pp-hero__figure { position: relative; overflow: hidden; border-radius: 1.5rem; }
.pp-hero__img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.pp-hero__caption {
	position: absolute; left: 1rem; right: 1rem; bottom: 1rem; width: fit-content;
	border-radius: 1rem; padding: .5rem 1rem;
	font-size: .875rem; line-height: 1.25rem; color: var(--pp-fg);
	background: color-mix(in srgb, var(--pp-bg) 90%, transparent);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}

/* --------------------------------------------------------------------------
   Über mich
   -------------------------------------------------------------------------- */
.pp-about { background: var(--pp-secondary); }
.pp-about__grid { display: grid; gap: 3rem; padding-block: 5rem; }
.pp-about__frame { overflow: hidden; border-radius: 1.5rem; }
.pp-about__img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.pp-about__body { display: flex; flex-direction: column; gap: 2.5rem; }
.pp-about__intro { display: flex; flex-direction: column; gap: 1.25rem; font-size: 1.125rem; line-height: 1.625; text-wrap: pretty; color: color-mix(in srgb, var(--pp-fg) 90%, transparent); }

.pp-quote {
	border-left: 2px solid var(--pp-accent); padding-left: 1.5rem;
	font-family: var(--pp-serif); font-style: italic; font-size: 1.5rem; line-height: 1.375;
	text-wrap: balance; color: var(--pp-primary);
}

.pp-dl { display: flex; flex-direction: column; }
.pp-dl__row { display: flex; flex-direction: column; gap: .25rem; }
.pp-dl dt { flex-shrink: 0; font-size: .875rem; line-height: 1.25rem; color: var(--pp-primary); }
.pp-dl dd { line-height: 1.625; color: var(--pp-fg); }
.pp-dl--boxed { border-block: 1px solid var(--pp-border); }
.pp-dl--boxed .pp-dl__row { padding-block: 1rem; }
.pp-dl--boxed .pp-dl__row + .pp-dl__row { border-top: 1px solid var(--pp-border); }
.pp-dl--facts .pp-dl__row { border-top: 1px solid var(--pp-border); padding-block: 1.25rem; }
.pp-dl--facts .pp-dl__row:last-child { border-bottom: 1px solid var(--pp-border); }
.pp-dl--facts dd { font-size: 1.125rem; }

/* --------------------------------------------------------------------------
   Praxis
   -------------------------------------------------------------------------- */
.pp-practice { display: flex; flex-direction: column; gap: 4rem; padding-block: 5rem; }
.pp-practice__head { display: grid; gap: 2rem; }
.pp-h2 { color: var(--pp-fg); }

.pp-focus {
	display: grid; gap: 1px; overflow: hidden;
	border-radius: 1.5rem; border: 1px solid var(--pp-border); background: var(--pp-border);
}
.pp-focus__item { display: flex; flex-direction: column; gap: .75rem; background: var(--pp-bg); padding: 1.75rem; }

.pp-facts { display: grid; gap: 2.5rem; }

/* --------------------------------------------------------------------------
   Kontakt
   -------------------------------------------------------------------------- */
.pp-contact { background: var(--pp-primary); color: var(--pp-on-primary); }
.pp-contact .pp-h2 { color: var(--pp-on-primary); }
.pp-contact__grid { display: grid; gap: 3.5rem; padding-block: 5rem; }
.pp-contact__intro { display: flex; flex-direction: column; gap: 1.5rem; }
.pp-contact__lead { font-size: 1.125rem; line-height: 1.625; text-wrap: pretty; color: color-mix(in srgb, var(--pp-on-primary) 80%, transparent); }
.pp-contact__crisis { font-size: .875rem; line-height: 1.625; color: color-mix(in srgb, var(--pp-on-primary) 70%, transparent); }
.pp-contact__crisis a { text-decoration: underline; text-underline-offset: 4px; }
.pp-contact__side { display: flex; flex-direction: column; gap: 2.5rem; }

.pp-channels { display: flex; flex-direction: column; border-block: 1px solid color-mix(in srgb, var(--pp-on-primary) 20%, transparent); }
.pp-channels > li + li { border-top: 1px solid color-mix(in srgb, var(--pp-on-primary) 20%, transparent); }
.pp-channel { display: flex; align-items: center; gap: 1.25rem; padding-block: 1.5rem; }
.pp-channel__icon { width: 1.25rem; height: 1.25rem; color: color-mix(in srgb, var(--pp-on-primary) 70%, transparent); }
.pp-channel__txt { display: flex; flex-direction: column; font-style: normal; min-width: 0; }
.pp-channel__label { font-size: .875rem; line-height: 1.25rem; color: color-mix(in srgb, var(--pp-on-primary) 70%, transparent); }
.pp-channel__value { font-family: var(--pp-serif); font-size: 1.5rem; line-height: 2rem; }
a.pp-channel:hover .pp-channel__value { text-decoration: underline; text-underline-offset: 4px; }

.pp-note { display: flex; gap: 1rem; border-radius: 1rem; padding: 1.5rem; background: color-mix(in srgb, var(--pp-on-primary) 10%, transparent); }
.pp-note__icon { width: 1.25rem; height: 1.25rem; margin-top: .125rem; color: color-mix(in srgb, var(--pp-on-primary) 80%, transparent); }
.pp-note__title { font-size: 1.125rem; line-height: 1.75rem; font-weight: 500; font-family: var(--pp-sans); }
.pp-note p { line-height: 1.625; color: color-mix(in srgb, var(--pp-on-primary) 85%, transparent); }

/* Formular */
.pp-formcard { border-radius: 1.5rem; background: var(--pp-bg); color: var(--pp-fg); padding: 1.5rem; }
.pp-form { display: grid; gap: 1.25rem; margin-top: 2rem; }
.pp-field { display: flex; flex-direction: column; gap: .5rem; }
.pp-field > label { font-size: .875rem; line-height: 1.25rem; font-weight: 500; }
.pp-form input:not([type="checkbox"]),
.pp-form select,
.pp-form textarea {
	width: 100%; border-radius: .75rem; border: 1px solid var(--pp-border);
	background: var(--pp-bg); color: var(--pp-fg);
	padding: .75rem 1rem; font-size: 1rem; line-height: 1.5;
	transition: border-color .2s, box-shadow .2s; box-shadow: none; appearance: none; -webkit-appearance: none;
}
.pp-form select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 1rem center; background-size: 1rem;
}
.pp-form textarea { resize: vertical; line-height: 1.625; min-height: 8rem; }
.pp-form ::placeholder { color: var(--pp-muted); opacity: 1; }
.pp-form input:focus, .pp-form select:focus, .pp-form textarea:focus {
	outline: none; border-color: var(--pp-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pp-primary) 20%, transparent);
}
.pp-form [aria-invalid="true"] { border-color: var(--pp-danger) !important; }
.pp-error { font-size: .875rem; line-height: 1.25rem; color: var(--pp-danger); }
.pp-error[hidden] { display: none; }
.pp-hint { font-size: .875rem; line-height: 1.25rem; color: var(--pp-muted); }

.pp-consent { display: flex; align-items: flex-start; gap: .75rem; font-size: .875rem; line-height: 1.625; cursor: pointer; }
.pp-consent input { width: 1rem; height: 1rem; margin-top: .25rem; flex-shrink: 0; accent-color: var(--pp-primary); }
.pp-consent a { text-decoration: underline; text-underline-offset: 3px; color: var(--pp-fg); }

.pp-form__foot { display: flex; flex-direction: column; gap: 1rem; }
.pp-form__note { display: flex; align-items: center; gap: .5rem; font-size: .875rem; line-height: 1.25rem; color: var(--pp-muted); }
.pp-status { font-size: .875rem; line-height: 1.25rem; color: var(--pp-primary); min-height: 1.25rem; }
.pp-status.is-error { color: var(--pp-danger); }
.pp-form.is-sent .pp-field, .pp-form.is-sent .pp-form__foot, .pp-form.is-sent .frc-captcha { display: none; }
.pp-form.is-sent .pp-status { font-size: 1.125rem; line-height: 1.75rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.pp-footer { background: var(--pp-bg); }
.pp-footer__bar { display: flex; flex-direction: column; gap: 1rem; padding-block: 2.5rem; font-size: .875rem; line-height: 1.25rem; color: var(--pp-muted); }
.pp-footer__name { font-family: var(--pp-serif); font-size: 1rem; color: var(--pp-fg); }
.pp-footer__nav { display: flex; gap: 1.5rem; }
.pp-footer__nav a:hover { color: var(--pp-fg); }

/* --------------------------------------------------------------------------
   Unterseiten (Impressum, Datenschutz, Beiträge)
   -------------------------------------------------------------------------- */
.pp-page { padding-top: 4rem; padding-bottom: 5rem; min-height: 60vh; }
.pp-page__head { max-width: 46rem; margin-bottom: 2.5rem; }
.pp-prose { max-width: 46rem; font-size: 1.0625rem; line-height: 1.7; color: color-mix(in srgb, var(--pp-fg) 92%, transparent); overflow-wrap: break-word; }
.pp-prose > * + * { margin-top: 1.1em; }
.pp-prose h2 { font-family: var(--pp-serif); font-size: 1.75rem; line-height: 1.25; margin-top: 2.2em; color: var(--pp-fg); }
.pp-prose h3 { font-family: var(--pp-serif); font-size: 1.35rem; line-height: 1.3; margin-top: 1.8em; color: var(--pp-fg); }
.pp-prose h4 { font-weight: 600; margin-top: 1.6em; }
.pp-prose :where(ul, ol) { padding-left: 1.4em; }
.pp-prose ul { list-style: disc; }
.pp-prose ol { list-style: decimal; }
.pp-prose li + li { margin-top: .35em; }
.pp-prose a { color: var(--pp-primary); text-decoration: underline; text-underline-offset: 3px; }
.pp-prose strong { font-weight: 600; }
.pp-prose img { height: auto; border-radius: var(--pp-radius); }
.pp-prose blockquote { border-left: 2px solid var(--pp-accent); padding-left: 1.25rem; font-family: var(--pp-serif); font-style: italic; color: var(--pp-primary); }
.pp-prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pp-prose th, .pp-prose td { border-bottom: 1px solid var(--pp-border); padding: .5rem .5rem .5rem 0; text-align: left; vertical-align: top; }
.pp-list { display: flex; flex-direction: column; max-width: 46rem; border-top: 1px solid var(--pp-border); }
.pp-list__item { padding-block: 1.5rem; border-bottom: 1px solid var(--pp-border); display: flex; flex-direction: column; gap: .5rem; }
.pp-list__item a:hover { color: var(--pp-primary); }
.pp-pager { margin-top: 2rem; }
.pp-pager .page-numbers { margin-right: .75rem; }
@media (min-width: 768px) { .pp-page { padding-top: 6rem; padding-bottom: 7rem; } }

/* --------------------------------------------------------------------------
   Animation
   -------------------------------------------------------------------------- */
@keyframes pp-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}
.pp-rise { animation: pp-rise .9s cubic-bezier(.22, 1, .36, 1) both; }

@media (prefers-reduced-motion: reduce) {
	html:has(body.pp-body) { scroll-behavior: auto; }
	.pp-rise { animation: none; }
}

/* --------------------------------------------------------------------------
   Breakpoints (sm 640 · md 768 · lg 1024)
   -------------------------------------------------------------------------- */
@media (min-width: 640px) {
	.pp-hero__actions { flex-direction: row; align-items: center; }
	.pp-dl__row { flex-direction: row; gap: 1.5rem; }
	.pp-dl dt { width: 7rem; padding-top: .125rem; }
	.pp-focus { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 768px) {
	.pp-nav { display: flex; }
	.pp-burger, .pp-mnav { display: none !important; }

	.pp-h1 { font-size: 4.5rem; }
	.pp-h2 { font-size: 3rem; line-height: 1.15; }

	.pp-hero { padding-top: 6rem; padding-bottom: 7rem; }
	.pp-hero__img { aspect-ratio: 21 / 9; }
	.pp-hero__caption { left: 1.5rem; bottom: 1.5rem; right: auto; border-radius: 999px; }

	.pp-about__grid { grid-template-columns: repeat(12, 1fr); gap: 4rem; padding-block: 7rem; }
	.pp-about__media { grid-column: span 5; }
	.pp-about__frame { position: sticky; top: 6rem; }
	.pp-about__body { grid-column: span 7; }

	.pp-practice { gap: 6rem; padding-block: 7rem; }
	.pp-practice__head { grid-template-columns: repeat(12, 1fr); }
	.pp-practice__head > .pp-stack-4 { grid-column: span 5; }
	.pp-practice__intro { grid-column: 7 / span 6; padding-top: 2.5rem; }

	.pp-facts { grid-template-columns: repeat(12, 1fr); }
	.pp-facts__head { grid-column: span 4; }
	.pp-dl--facts { grid-column: 6 / span 7; }

	.pp-contact__grid { grid-template-columns: repeat(12, 1fr); padding-block: 7rem; }
	.pp-contact__intro { grid-column: span 5; }
	.pp-contact__side { grid-column: 7 / span 6; }
	.pp-contact__form { grid-column: 1 / -1; }

	.pp-formcard { padding: 2.5rem; }
	.pp-form { grid-template-columns: repeat(2, 1fr); }
	.pp-span-2 { grid-column: span 2; }
	.pp-form__foot { flex-direction: row; align-items: center; justify-content: space-between; }

	.pp-footer__bar { flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (min-width: 1024px) {
	.pp-focus { grid-template-columns: repeat(4, 1fr); }
}
