/*
Theme Name: Praxisberatung Wolf
Description: Ruhiges, großzügiges Block-Theme für Sebastian Wolf. Bearbeitbare Seiten, verknüpfte Leistungsbereiche und Fokuskreise.
Version: 1.0.6
Author: Sebastian Wolf / Design
Text Domain: praxisberatung-wolf
Requires at least: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root{--sw-blue:#075d91;--sw-teal:#009b96;--sw-line:#88d7d4;--sw-white:#fff;--sw-width:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:40px}
body{margin:0;background:#fff;color:var(--sw-blue)}
.wp-site-blocks{padding:0!important}
.wp-site-blocks>.wp-block-template-part,.wp-site-blocks>.wp-block-group{margin-block-start:0!important}
.sw-main{margin:0!important}
.sw-main>.wp-block-post-content{margin:0}
.sw-accent{color:var(--sw-teal)}
a{text-underline-offset:.25em;text-decoration-thickness:1px}
a:hover{color:#006e69}
a:focus-visible,button:focus-visible{outline:3px solid #007f7b;outline-offset:5px}
.sw-header-inner,.sw-hero,.sw-services,.sw-contact-inner,.sw-footer-bottom-inner,.sw-page-intro,.sw-page-width,.sw-service-detail,.sw-contact-page{width:min(var(--sw-width),calc(100% - 96px));margin-inline:auto}
.sw-header{padding:36px 0 0}
.sw-header-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}
.sw-logo{width:285px;flex-shrink:0;margin:0!important}
.sw-logo img{display:block;width:100%;height:auto}
.sw-navigation .wp-block-navigation__container{gap:44px}
.sw-navigation a{text-decoration:none}
.sw-navigation a:hover,.sw-navigation .current-menu-item>a{text-decoration:underline;text-decoration-color:var(--sw-teal);text-underline-offset:10px}
.sw-hero{padding:106px 0 80px}
.wp-block-columns.sw-hero-columns{gap:100px!important;align-items:center!important;margin:0!important}
.sw-hero h1{font-size:clamp(64px,8.1vw,116px);line-height:1.09;font-weight:500;letter-spacing:-.025em;margin:0 0 24px}
.sw-lead{font-size:28px;line-height:1.35;margin:0 0 28px}
.sw-hero .wp-block-buttons{margin-top:28px}
.sw-hero-mark{position:relative;width:400px;max-width:100%;height:auto;margin:0!important}
.sw-hero-mark-image{width:100%;margin:0!important}
.sw-hero-mark-image img{width:100%;height:auto;display:block}
.sw-services{padding:0 0 110px}
.sw-services-intro{text-align:center;margin:0 0 74px!important}
.sw-services-intro h2{font-size:52px;font-weight:500;margin:0 0 14px}
.sw-services-intro p{font-size:24px;margin:0}
.sw-service-network{position:relative;margin:0!important}
.sw-service-network:before{content:"";position:absolute;left:50%;top:0;bottom:105px;width:1px;background:var(--sw-line);pointer-events:none}
.sw-service-row{position:relative;margin:0!important;padding:48px 0 76px}
.sw-service-row:before{content:"";position:absolute;left:calc(50% - 9px);top:178px;width:18px;height:18px;background:#009b96}
.sw-service-row:after{content:"";position:absolute;left:calc(50% - 58px);top:187px;width:49px;height:1px;background:var(--sw-line)}
.sw-service-qualitaetsmanagement:after{left:calc(50% + 9px)}
.wp-block-columns.sw-service-columns{display:grid;grid-template-columns:1fr 1fr;gap:150px!important;align-items:center!important;margin:0!important}
.sw-service-columns>.wp-block-column{min-width:0}
.sw-service-row h2{font-size:46px;margin:0 0 14px;font-weight:500}
.sw-service-description{font-size:26px;line-height:1.3;margin:0 0 28px}
.sw-topics{font-size:20px;line-height:1.6;margin:0 0 22px}
.sw-text-link{margin:26px 0 0;font-size:21px}
.sw-text-link a{text-decoration:none;border-bottom:1px solid #009b96;padding-bottom:6px;display:inline-block}
.sw-text-link span{margin-left:16px}
.sw-focus-photo{position:relative;margin:0!important;width:100%;max-width:470px;overflow:hidden}
.sw-focus-photo img{display:block;width:100%;height:auto;aspect-ratio:1.68;object-fit:cover}
.sw-focus-photo:after{content:"";position:absolute;width:37%;aspect-ratio:1;border:2px solid #0dc5bd;box-shadow:0 0 0 1px #ffffffb0;border-radius:50%;left:32%;top:27%;pointer-events:none}
.sw-service-digitalisierung .sw-focus-photo:after{left:32%;top:26%}
.sw-service-qualitaetsmanagement .sw-focus-photo:after{left:35%;top:23%}
.sw-services-end{text-align:center;font-size:23px;margin:12px 0 0}
.sw-about-preview{text-align:center;width:min(700px,calc(100% - 48px));margin:0 auto!important;padding:30px 0 112px}
.sw-about-preview h2{font-size:50px;margin:0 0 22px;line-height:1.15}
.sw-about-preview h3{font-size:31px;margin:0 0 12px}
.sw-about-preview p{font-size:20px;margin:0}
.sw-about-preview .sw-text-link{margin-top:34px}
.sw-footer{background:var(--sw-blue);color:#fff;margin:0!important}
.sw-footer a{color:#fff;text-decoration:none}
.sw-footer a:hover{text-decoration:underline}
.sw-footer a:focus-visible{outline-color:#fff}
.sw-contact-inner{padding:44px 0}
.wp-block-columns.sw-contact-columns{gap:100px!important;align-items:center!important;margin:0!important}
.sw-contact-columns h2{font-size:44px;line-height:1.18;margin:0;color:#fff}
.sw-contact-columns>.wp-block-column+ .wp-block-column{border-left:1px solid #ffffff55;padding-left:70px}
.sw-contact-columns p{margin:12px 0 0;font-size:20px;overflow-wrap:anywhere}
.sw-contact-columns .wp-block-button__link{background:#007b77;border:1px solid #c5f3f0}
.sw-footer-bottom{border-top:1px solid #ffffff38;margin:0!important}
.sw-footer-bottom-inner{display:flex;justify-content:space-between;align-items:center;padding:26px 0 36px;gap:30px}
.sw-footer-logo{width:245px}
.sw-legal{display:flex;gap:32px;align-items:center;margin:0!important;font-size:16px}
.sw-legal p{margin:0}
.sw-page-intro{padding:110px 0 70px;max-width:1000px}
.sw-page-intro h1{font-size:72px;line-height:1.12;margin:0 0 30px}
.sw-page-intro .sw-lead{max-width:760px}
.sw-eyebrow{font-size:15px;font-weight:600;letter-spacing:.14em;color:#007f7b;margin:0 0 20px}
.sw-section-nav{font-size:20px;margin:0 0 50px}
.sw-service-detail{padding:72px 0 80px;margin-block-start:0!important;scroll-margin-top:40px}
.wp-block-columns.sw-detail-columns{gap:100px!important;margin:0!important;align-items:flex-start!important}
.sw-detail-columns h2{font-size:44px;margin-top:0}
.sw-detail-columns ul{line-height:1.5;font-size:21px}
.sw-detail-columns li{padding:10px 0;border-bottom:1px solid #d9ecec}
.sw-prose{width:min(800px,calc(100% - 96px));margin:0 auto!important;padding:20px 0 70px;font-size:22px}
.sw-prose h2{font-size:43px;line-height:1.15}
.sw-prose p{line-height:1.6}
.sw-prose li{padding:13px 0;border-bottom:1px solid #d9ecec}
.sw-prose ul{padding-left:24px}
.sw-contact-page{max-width:1120px;padding:20px 0 120px}
.wp-block-columns.sw-contact-page-columns{gap:90px!important}
.sw-contact-big{font-size:30px}
.sw-legal-content{padding-top:100px;overflow-wrap:anywhere}
.sw-legal-content h1{font-size:64px;line-height:1.15}
.sw-main>.wp-block-post-content>p,.sw-main>.wp-block-post-content>h1,.sw-main>.wp-block-post-content>h2,.sw-main>.wp-block-post-content>ul{max-width:800px;margin-inline:auto}
.wp-block-button__link{transition:background-color .15s ease}
.wp-block-button__link:hover{background:#006560;color:#fff}
@media(max-width:1000px){
 .sw-header-inner,.sw-hero,.sw-services,.sw-contact-inner,.sw-footer-bottom-inner,.sw-page-intro,.sw-page-width,.sw-service-detail,.sw-contact-page{width:calc(100% - 64px)}
 .sw-navigation .wp-block-navigation__container{gap:26px}
 .sw-logo{width:245px}
 .wp-block-columns.sw-hero-columns{gap:40px!important}
 .sw-hero-mark{width:320px}
 .wp-block-columns.sw-service-columns{gap:100px!important}
 .sw-service-row h2{font-size:32px}
 .sw-service-description{font-size:21px}
 .sw-topics{font-size:17px}
 .sw-service-row:before{top:120px}
 .sw-service-row:after{top:129px;width:35px;left:calc(50% - 44px)}
 .sw-service-qualitaetsmanagement:after{left:calc(50% + 9px)}
 .sw-contact-columns>.wp-block-column+ .wp-block-column{padding-left:35px}
 .wp-block-columns.sw-contact-columns{gap:50px!important}
}
@media(max-width:781px){
 .sw-header-inner,.sw-hero,.sw-services,.sw-contact-inner,.sw-footer-bottom-inner,.sw-page-intro,.sw-page-width,.sw-service-detail,.sw-contact-page{width:calc(100% - 44px)}
 .sw-header{padding-top:24px}
 .sw-header-inner{gap:20px}
 .sw-logo{width:215px}
 .sw-hero{padding:72px 0 86px}
 .wp-block-columns.sw-hero-columns{display:flex;gap:48px!important}
 .sw-hero h1{font-size:68px}
 .sw-lead{font-size:22px}
 .sw-hero-mark{width:300px;margin-inline:auto!important}
 .sw-services-intro{margin-bottom:35px!important}
 .sw-services-intro h2{font-size:36px}
 .sw-services-intro p{font-size:21px}
 .sw-service-network:before{left:7px;bottom:95px}
 .sw-service-row{padding:36px 0 60px 34px}
 .sw-service-row:before{left:0;top:42px;width:15px;height:15px}
 .sw-service-row:after{display:none}
 .wp-block-columns.sw-service-columns{display:flex;flex-direction:column;gap:28px!important}
 .sw-service-columns>.wp-block-column{width:100%}
 .sw-service-qualitaetsmanagement .sw-service-columns>.wp-block-column:first-child{order:2}
 .sw-service-qualitaetsmanagement .sw-service-columns>.wp-block-column:last-child{order:1}
 .sw-focus-photo{max-width:430px}
 .sw-service-row h2{font-size:35px}
 .sw-service-description{font-size:22px;margin-bottom:22px}
 .sw-services-end{font-size:21px}
 .sw-services{padding-bottom:64px}
 .sw-about-preview{padding:28px 0 84px}
 .sw-about-preview h2{font-size:37px}
 .sw-contact-inner{padding:42px 0}
 .sw-contact-columns>.wp-block-column+ .wp-block-column{padding:0;border:0}
 .sw-contact-columns h2{font-size:34px}
 .wp-block-columns.sw-contact-columns{gap:30px!important}
 .sw-footer-bottom-inner{flex-direction:column;align-items:flex-start;gap:26px}
 .sw-footer-logo{width:220px}
 .sw-page-intro{padding:74px 0 45px}
 .sw-page-intro h1{font-size:53px}
 .sw-prose{width:calc(100% - 44px);font-size:21px}
 .sw-prose h2{font-size:36px}
 .sw-service-detail{padding:36px 0 52px}
 .wp-block-columns.sw-detail-columns{gap:32px!important}
 .sw-detail-columns h2{font-size:35px}
 .sw-contact-page{padding-bottom:70px}
 .sw-contact-page p{overflow-wrap:anywhere}
 .sw-section-nav{line-height:1.8}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wp-block-button__link{transition:none}}
/* Keep the editor canvas aligned with the frontend without hiding editing controls. */
.editor-styles-wrapper .sw-service-network:before,.editor-styles-wrapper .sw-service-row:before,.editor-styles-wrapper .sw-service-row:after{pointer-events:none}

/* Long legal headings remain readable at narrow widths. */
.sw-legal-content h2 { font-size: 36px; hyphens: auto; }
.sw-legal-content h3, .sw-legal-content h4, .sw-legal-content p { hyphens: auto; }
@media (max-width: 781px) { .sw-legal-content h1 { font-size: 48px; } .sw-legal-content h2 { font-size: 28px; } }

@media (max-width: 781px) { .sw-text-link { font-size: 18px; } .sw-text-link a { display: inline-flex; gap: 12px; align-items: baseline; } .sw-text-link span { margin-left: 0; flex-shrink: 0; } }

/* The requested soft mouse focus: 3 cm CSS radius, 3% black. */
.sw-cursor-focus { position: fixed; top: 0; left: 0; width: 6cm; height: 6cm; border-radius: 50%; background: rgba(0, 0, 0, 0.03); pointer-events: none; z-index: 9990; visibility: hidden; will-change: transform; }
.sw-cursor-focus.is-visible { visibility: visible; }
@media (hover: none), (pointer: coarse) { .sw-cursor-focus { display: none; } }

/* Quiet image edges, also visible while editing the image blocks. */
/* Photo corners, shadows and duotone are controlled by WordPress image styles. */

/* Inquiry form: static, spacious and editable through Contact Form 7. */
.sw-contact-form-section{width:min(860px,calc(100% - 96px));margin:80px auto 120px!important;padding-top:64px;border-top:1px solid #dfe9ee;scroll-margin-top:40px}
.sw-contact-form-section h2{font-size:clamp(30px,4vw,46px);line-height:1.2;margin:0 0 24px}
.sw-contact-form-section>.wp-block-heading+p{max-width:660px;margin-bottom:36px}
.sw-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.sw-form-wide{grid-column:1/-1}
.sw-form-field label{display:block;font-weight:600;margin-bottom:9px}
.sw-form-field label span,.sw-form-note,.sw-form-help{font-weight:400;color:#456478}
.sw-form-note,.sw-form-help{font-size:16px;line-height:1.5}
.sw-form-field input,.sw-form-field select,.sw-form-field textarea{width:100%;max-width:100%;padding:14px 16px;border:1px solid #a7bdca;border-radius:4px;background:#fff;color:#123e57;font:inherit;line-height:1.5;box-shadow:none}
.sw-form-field textarea{resize:vertical;min-height:170px}
.sw-form-field input:focus-visible,.sw-form-field select:focus-visible,.sw-form-field textarea:focus-visible{outline:2px solid #007f7b;outline-offset:3px;border-color:#007f7b}
.sw-form-field [aria-invalid="true"]{border-color:#a31e25}
.sw-form-help{margin:10px 0 0}
.sw-form-privacy{font-size:16px;line-height:1.6;max-width:740px;margin:30px 0}
.sw-form-trap{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.sw-form-submit{background:var(--sw-teal);color:white;border:0;border-radius:4px;padding:14px 26px;font:inherit;font-weight:600;cursor:pointer}
.sw-form-submit:hover{background:#007f7b}
.sw-form-submit:focus-visible{outline:3px solid #075d91;outline-offset:4px}
.sw-contact-form-section .wpcf7-not-valid-tip{color:#a31e25;font-size:16px;margin-top:8px}
.sw-contact-form-section .wpcf7 form .wpcf7-response-output{margin:24px 0 0;padding:18px 20px;border-radius:4px;font-size:17px;line-height:1.5}
@media(max-width:640px){.sw-contact-form-section{width:calc(100% - 40px);margin:48px auto 72px!important;padding-top:40px}.sw-form-grid{grid-template-columns:1fr;gap:24px}.sw-form-wide{grid-column:auto}}
.sw-form-field>p{margin:0}

/* Contact portrait stays a native image block; no fixed corner radius. */
.sw-contact-portrait{width:100%;max-width:400px;margin:0!important}
.sw-contact-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.sw-contact-page-columns.sw-contact-with-portrait{gap:80px!important;align-items:flex-start!important}
.sw-contact-with-portrait>.wp-block-column:first-child{flex-basis:42%!important;flex-grow:0}
.sw-contact-with-portrait>.wp-block-column:last-child{flex-basis:58%!important}
.sw-contact-with-portrait h3{margin-top:36px}
@media(max-width:781px){.sw-contact-page-columns.sw-contact-with-portrait{gap:40px!important}.sw-contact-portrait{max-width:360px}.sw-contact-with-portrait>.wp-block-column:first-child,.sw-contact-with-portrait>.wp-block-column:last-child{flex-basis:100%!important;width:100%}}
