/*
Theme Name: Dr. Josef Steiner
Theme URI: https://www.drjosefsteiner.at/
Description: Eigenes Kind-Theme für drjosefsteiner.at auf Basis von Twenty Twenty-Five. Modern und ruhig, Markenfarbe Grün #339966, Schriften Source Serif 4 / Source Sans 3 (lokal, SIL OFL).
Author: Wartung drjosefsteiner.at
Template: twentytwentyfive
Version: 1.0.5
Requires at least: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: drjosefsteiner
*/

/* ---------- Grundlagen ---------- */
:root {
	--drjs-gruen: var(--wp--preset--color--gruen);
	--drjs-gruen-tief: var(--wp--preset--color--gruen-tief);
	--drjs-hauch: var(--wp--preset--color--gruen-hauch);
	--drjs-linie: var(--wp--preset--color--linie);
}
body { -webkit-font-smoothing: antialiased; }
:where(a, button, input, textarea, select):focus-visible { outline: 3px solid var(--drjs-gruen); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---------- Kopfzeile ---------- */
.drjs-kopf { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.95); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--drjs-linie); }
.admin-bar .drjs-kopf { top: 32px; }
@media (max-width: 782px) { .admin-bar .drjs-kopf { top: 0; } }
.drjs-marke { display: flex; align-items: center; gap: 14px; }
.drjs-marke img { width: 30px; height: auto; }
.drjs-marke .drjs-name { margin: 0; font-family: var(--wp--preset--font-family--serif); font-size: 1.18rem; font-weight: 500; white-space: nowrap; }
.drjs-marke .drjs-name a { color: var(--drjs-gruen-tief); text-decoration: none; }
.drjs-kopf .wp-block-navigation a { border-radius: 999px; padding: 7px 9px; white-space: nowrap; }
.drjs-kopf .wp-block-navigation a:hover,
.drjs-kopf .wp-block-navigation .current-menu-item > a { background: var(--drjs-hauch); color: var(--drjs-gruen-tief); }
.drjs-kopf .wp-block-navigation__responsive-container-open,
.drjs-kopf .wp-block-navigation__responsive-container-close { border: 1.5px solid var(--drjs-linie); border-radius: 999px; padding: 8px; }
@media (max-width: 1240px) {
	.drjs-kopf .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.drjs-kopf .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 28px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 6px; font-size: 1.15rem; }

/* ---------- Startseite: Hero ---------- */
.drjs-hero { border-bottom: 1px solid var(--drjs-linie); overflow: hidden; }
.drjs-hero h1 { letter-spacing: -.015em; line-height: 1.02; }
.drjs-hero .drjs-untertitel { color: var(--drjs-gruen); font-family: var(--wp--preset--font-family--serif); line-height: 1.25; }
.drjs-zeiten { display: flex; flex-wrap: wrap; gap: 4px 12px; padding-top: 22px; border-top: 1px solid var(--drjs-linie); max-width: 52ch; }
.drjs-zeiten strong { color: var(--drjs-gruen-tief); }
.drjs-zeichen { display: flex; justify-content: center; }
.drjs-zeichen figure { position: relative; width: 230px; margin: 0 auto; }
.drjs-zeichen figure::before { content: ""; position: absolute; left: -26%; right: -26%; top: 4%; bottom: 4%; border-radius: 50%; background: var(--drjs-hauch); }
.drjs-zeichen img { position: relative; width: 230px; height: auto; mix-blend-mode: multiply; }
@media (max-width: 781px) { .drjs-zeichen { display: none !important; } }

/* ---------- Startseite: Leistungen ---------- */
.drjs-leistungen-kopf p { text-align: right; }
@media (max-width: 781px) { .drjs-leistungen-kopf p { text-align: left; } }
.drjs-leistungen { display: grid !important; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--drjs-linie); gap: 0 !important; }
.drjs-leistung { display: grid !important; grid-template-columns: 96px 1fr; gap: 26px !important; align-items: start; padding: 36px 32px 38px 0; border-bottom: 1px solid var(--drjs-linie); margin: 0 !important; }
.drjs-leistung:nth-child(odd) { border-right: 1px solid var(--drjs-linie); }
.drjs-leistung:nth-child(even) { padding-left: 32px; padding-right: 0; }
.drjs-leistung figure { margin: 0; }
.drjs-leistung img { width: 96px !important; height: 96px !important; object-fit: cover; border-radius: 50%; }
.drjs-leistung h3 { margin: 0 0 6px; }
.drjs-leistung p { margin: 0; }
.drjs-leistung .drjs-weiter { margin-top: 14px; }
.drjs-leistung .drjs-weiter a { font-weight: 600; color: var(--drjs-gruen); text-underline-offset: 4px; text-decoration-thickness: 1px; }
.drjs-leistung h3 a { text-decoration: none; color: inherit; }
.drjs-leistung h3 a:hover { color: var(--drjs-gruen); }
@media (max-width: 781px) {
	.drjs-leistungen { grid-template-columns: 1fr; }
	.drjs-leistung, .drjs-leistung:nth-child(odd), .drjs-leistung:nth-child(even) { padding: 28px 0; border-right: 0; grid-template-columns: 64px 1fr; gap: 18px !important; }
	.drjs-leistung img { width: 64px !important; height: 64px !important; }
}

/* ---------- Kontakt (Startseite) ---------- */
.drjs-kontakt { color: #e8f1eb; }
.drjs-kontakt h2 { color: #fff; }
.drjs-kontakt a { color: #fff; }
.drjs-tel a { font-family: var(--wp--preset--font-family--serif); text-decoration: none; letter-spacing: .01em; }
.drjs-tel a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.drjs-angaben { display: grid; grid-template-columns: auto 1fr; gap: 12px 22px; }
.drjs-angaben p { margin: 0; }
.drjs-angaben .drjs-label { color: #a9cdb8; font-size: .95rem; }
.drjs-formular-karte { background: #fff; color: var(--wp--preset--color--text); border-radius: 6px; padding: 40px; }
.drjs-formular-karte a { color: var(--drjs-gruen-tief); }
@media (max-width: 560px) { .drjs-formular-karte { padding: 26px 20px; } }

/* ---------- Kontaktformular (Contact Form 7) – überall ---------- */
.drjs-kf .drjs-kf-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px !important; row-gap: 0; margin: 0; }
.drjs-kf .drjs-kf-row .drjs-kf-col:nth-child(3) { grid-column: 1 / -1; }
.drjs-kf .drjs-kf-col { margin: 0; padding: 0; min-width: 0; }
.drjs-kf input, .drjs-kf textarea { box-sizing: border-box; max-width: 100%; }
/* Startseite: Abschnitte ohne weiße Zwischenräume aneinander */
.home .wp-block-post-content > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.drjs-kf input[type=text], .drjs-kf input[type=email], .drjs-kf textarea {
	width: 100%; font: inherit; color: var(--wp--preset--color--text); padding: 12px 14px; border: 1px solid #c9d8ce; border-radius: 4px; background: #fbfdfc; margin: 0 0 18px; }
.drjs-kf textarea { min-height: 150px; resize: vertical; }
.drjs-kf .drjs-kf-hinweis { color: var(--drjs-gruen-tief); text-align: left; margin: 4px 0 8px; }
.drjs-kf .drjs-kf-datenschutz { color: var(--wp--preset--color--text); font-size: .88rem; opacity: 1; text-align: left; margin: 0 0 22px; }
.drjs-kf .drjs-kf-datenschutz a { color: var(--drjs-gruen-tief); }
.drjs-kf input[type=submit] { font: 600 1rem var(--wp--preset--font-family--sans); background: var(--drjs-gruen); color: #fff; border: 1.5px solid var(--drjs-gruen); border-radius: 999px; padding: 14px 26px; cursor: pointer; }
.drjs-kf input[type=submit]:hover { background: var(--drjs-gruen-tief); border-color: var(--drjs-gruen-tief); }
.drjs-kf .wpcf7-not-valid-tip { color: #b3261e; text-align: left; margin: -12px 0 14px; font-size: .9rem; }
.drjs-kf .wpcf7 form .wpcf7-response-output { color: var(--wp--preset--color--text); margin: 18px 0 0; border-radius: 4px; }
@media (max-width: 560px) { .drjs-kf .drjs-kf-row { grid-template-columns: 1fr; } }

/* ---------- Karte nach Klick ---------- */
.drjs-karte-streifen { border-bottom: 1px solid var(--drjs-linie); }
.drjs-map { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.drjs-map .drjs-map-inner { display: contents; }
.drjs-map .drjs-map-adresse { margin: 0; color: var(--wp--preset--color--text); }
.drjs-map .drjs-map-adresse strong { font-family: var(--wp--preset--font-family--serif); font-weight: 500; font-size: 1.25rem; color: var(--drjs-gruen-tief); }
.drjs-map .drjs-map-hinweis { order: 3; flex-basis: 100%; margin: 0; font-size: .92rem; }
.drjs-map .drjs-map-btn { font: 600 1rem var(--wp--preset--font-family--sans); background: transparent; color: var(--drjs-gruen-tief); border: 1.5px solid var(--drjs-gruen); border-radius: 999px; padding: 13px 24px; cursor: pointer; }
.drjs-map .drjs-map-btn:hover { background: #fff; }
.drjs-map.drjs-map-geladen { display: block; }
.drjs-map.drjs-map-geladen iframe { width: 100%; min-height: 380px; border: 0; border-radius: 6px; display: block; }

/* ---------- Unterseiten ---------- */
.drjs-seitenkopf { border-bottom: 1px solid var(--drjs-linie); }
.entry-content img.alignright, .entry-content .alignright { float: right; margin: 0 0 1em 2em; border-radius: 6px; }
.entry-content img.alignleft, .entry-content .alignleft { float: left; margin: 0 2em 1em 0; border-radius: 6px; }
.entry-content img.aligncenter { margin-left: auto; margin-right: auto; display: block; }
.entry-content img { height: auto; }
.entry-content span[style*="#339966"] strong, .entry-content strong span[style*="#339966"] { font-family: var(--wp--preset--font-family--serif); font-weight: 600; font-size: 1.12em; }
.entry-content hr { border: 0; border-top: 1px solid var(--drjs-linie); margin: 2.4em 0; }
.entry-content::after { content: ""; display: table; clear: both; }
@media (max-width: 600px) { .entry-content .alignright, .entry-content .alignleft, .entry-content img.alignright, .entry-content img.alignleft { float: none; margin: 0 0 1em; } }

/* ---------- Fußzeile ---------- */
.drjs-fuss, .drjs-fuss p, .drjs-fuss a, .drjs-fuss .wp-block-navigation-item__content { color: #fff !important; }
.drjs-fuss .wp-block-navigation a { text-decoration: underline; text-underline-offset: 3px; }

/* Unterseiten: Luft vor Zwischenüberschriften */
.entry-content > h2 { margin-top: 2.2em; }
.entry-content > p:first-child a > img.alignright { margin-bottom: 1.2em; }

/* Dezenter Knopf im Text (z. B. Ordination → Kontaktformular) */
.entry-content .drjs-cta-link { margin: 1.4em 0; }
.entry-content .drjs-cta-link a { display: inline-flex; align-items: center; padding: 12px 22px; border: 1.5px solid var(--drjs-gruen); border-radius: 999px; color: var(--drjs-gruen-tief); font-weight: 600; font-size: 1rem; text-decoration: none; transition: background .2s; }
.entry-content .drjs-cta-link a:hover { background: var(--drjs-hauch); }
.entry-content > h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
/* Kein weißer Streifen zwischen Kopfzeile, Inhalt und Fußzeile */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
