/* Layout fundamentals: readable content without relying on JS or clipping. */
:root{--brand-green:#365f0d;--muted:#35463b}
body main :is(section,article,div,figure,nav,aside){min-width:0}
body main :is(h1,h2,h3,p,li,a,summary){overflow-wrap:anywhere!important;word-break:normal!important}
body main :is(h1,h2,h3){hyphens:auto;text-wrap:balance}
body .reveal{opacity:1!important;transform:none!important;transition:none!important}
body .section-shell{max-width:1440px;width:calc(100% - 48px);margin-inline:auto;box-sizing:border-box}
body .home-hero,body .service-hero,body .landing-hero,body .about-hero,body .contact-hero{min-height:0;padding-top:140px!important;padding-bottom:64px;gap:40px;perspective:none}
body .home .home-hero{grid-template-columns:minmax(0,1fr)}
body.home .hero-copy{width:100%;max-width:900px;background:#f8fbf6;backdrop-filter:none}
body .hero-copy h1,body .service-hero h1,body .landing-hero h1,body .page-hero h1,body .about-intro h1,body .contact-copy h1{font-size:clamp(36px,4.2vw,64px)!important;line-height:1.08!important;letter-spacing:-.025em!important;margin:16px 0 20px!important}
body .hero-actions{gap:12px;margin:22px 0;max-width:100%}
body .button{min-height:46px;max-width:100%;white-space:normal;line-height:1.4;text-align:center;justify-content:center;box-sizing:border-box;overflow-wrap:anywhere}
body .hero-subtitle{font-size:21px!important;font-weight:700;line-height:1.4!important}
body .hero-details{padding:14px 0;border-top:1px solid #b8c8b0;color:#304035}
body .hero-details summary{cursor:pointer;font-weight:700;min-height:36px}
body .hero-proof{margin-top:24px;flex-wrap:wrap;gap:12px}
body .hero-proof span{color:#35463b}
body .page-hero{padding-top:140px;padding-bottom:50px}
body .service-hero,body .landing-hero,body .about-hero,body .contact-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body .service-tile{min-width:0;transform-style:flat}
body .service-tile>*{transform:none!important}
body .breadcrumbs{flex-wrap:wrap;color:#46554b}
body .landing-hero-image{height:500px;box-shadow:10px 10px 0 #a8e62c}
body .landing-hero-image figcaption{left:12px;right:12px;min-width:0;max-width:calc(100% - 24px);transform:none}
body .faq-list,body .faq-list details{min-width:0}
body .faq-list summary{grid-template-columns:25px minmax(0,1fr) 24px;gap:10px}
body .landing-article{gap:20px}
body .landing-article article{min-height:0;padding:28px}
body .landing-article article:nth-child(even){background:#eef5e7}
body .landing-intro{padding-block:55px}
body .landing-faq{padding-block:60px}
body .landing-article h2{font-size:clamp(24px,2.5vw,34px);line-height:1.2}
body .landing-article :is(p,li){font-size:16px;line-height:1.65}
body .landing-article p{margin-block:12px}
/* Contrast is kept independent of the moving background. */
body :is(.kicker,.contact-direct small,.landing-hero-image figcaption span,.landing-hero-image figcaption small,.footer-bottom,.footer-landing-links>small,.hero-proof span,.image-index,.story-block>span,.contact-drawer-head small,.advisor-copy small){color:#36513b!important}
body :is(.footer-inner a,.footer-inner span,.footer-bottom a,.footer-region-overviews a){color:#203b20!important}
body :is(.landing-intro>span,.landing-intro small,.landing-article article>span,.story-block>span,.service-tile>small,.service-tile>i,.next-project small,.text-link){color:#365f0d!important}
body :is(.contact-direct small,.landing-hero-image figcaption span,.landing-hero-image figcaption small,.kicker,.footer-bottom,.footer-landing-links>small){font-size:12px!important}
body :is(.faq-head,.landing-hero-copy,.service-hero-copy,.contact-copy,.page-hero,.story-head,.explorer-copy){background:#f8fbf6!important;backdrop-filter:none!important}
body .page-hero{padding-inline:28px}
body .hero-copy>p,body .service-hero-copy>p,body .landing-hero-copy>p{color:#304035!important}
body a:focus-visible,body button:focus-visible,body summary:focus-visible{outline:3px solid #24460b;outline-offset:4px}
.skip-link{position:fixed;z-index:2000;top:10px;left:15px;padding:14px;background:#fff;color:#102018;transform:translateY(-150%)}.skip-link:focus{transform:none}
.mobile-contact-bar{display:none}
.home-references{padding-block:50px}.home-references>div:first-child,.local-overview-links{padding:28px;background:#f8fbf6;border-left:4px solid #72aa28}
.home-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.home-reference-grid>a{padding:14px;background:#fff;border:1px solid #c5d2bd;color:#102018;border-radius:6px}
.home-reference-grid img{display:block;width:100%;height:230px;object-fit:cover;border-radius:4px}.home-reference-grid h3{font-size:26px;margin:16px 0 8px}.home-reference-grid span{display:block;color:#365f0d;font-weight:700;padding-bottom:8px}
.local-overview-links{margin-block:45px}.local-link-grid{display:flex;flex-wrap:wrap;gap:14px;margin-block:20px}
.footer-region-overviews{padding:24px;border-top:1px solid #7eac34;color:#203b20}.footer-region-overviews>div{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px}.footer-region-overviews a{padding-block:5px}
.map-link-card{padding:32px;background:#f8fbf6;border:1px solid #c5d2bd;border-radius:6px}.map-link-card h2{font-size:36px!important}.map-notice{font-size:14px!important;color:#35463b}
/* Stable sizes for visual media, with full-resolution sources in the lightbox. */
body .window-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
body .window-gallery-item{min-width:0}
@media(max-width:980px){
 body .service-hero,body .landing-hero,body .about-hero,body .contact-hero{grid-template-columns:minmax(0,1fr)}
 body .home-hero,body .service-hero,body .landing-hero,body .about-hero,body .contact-hero{padding-top:115px!important}
 body .service-grid{grid-template-columns:minmax(0,1fr)}
 body .about-portrait{max-width:540px;justify-self:center}
}
@media(max-width:768px){
 body{padding-bottom:80px;scroll-padding-bottom:90px}
 body .section-shell{width:calc(100% - 28px)}
 body .home-hero,body .service-hero,body .landing-hero,body .about-hero,body .contact-hero{gap:24px;padding-bottom:32px}
 body .home .home-hero,body.home .home-hero{grid-template-columns:minmax(0,1fr)}
 body .hero-copy h1,body .service-hero h1,body .landing-hero h1,body .page-hero h1,body .about-intro h1,body .contact-copy h1{font-size:clamp(30px,8vw,38px)!important;line-height:1.12!important;letter-spacing:-.02em!important}
 body .home .hero-copy,body.home .hero-copy{padding:22px 18px;width:100%;max-width:100%}
 body :is(.manifest h2,.about-copy h2,.cta-orbit h2,.story-head h2,.next-project h2,.contact-map h2,.landing-intro h2,.faq-head h2,.service-reference-head h2,.seo-product-head h2,.home-references h2){font-size:clamp(26px,7vw,34px)!important;line-height:1.16!important}
 body .hero-copy>p,body .landing-hero-copy>p,body .service-hero-copy>p{font-size:16px!important;line-height:1.6!important}
 body .hero-actions{display:grid;grid-template-columns:minmax(0,1fr);margin:18px 0}
 body .hero-actions .button{width:100%;padding:12px 14px;margin:0}
 body .hero-proof{display:flex;gap:10px}.hero-proof b{font-size:22px!important}
 body .hero-proof span{font-size:10px;flex:1;padding-right:8px}
 body .home-reference-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 body .home-reference-grid img{height:210px}
 body .home-references{padding-block:20px 35px}
 body .home-references>div:first-child{padding:22px 18px}
 body .service-tile{min-height:0;padding:10px 10px 24px}
 body .service-tile>div{height:230px}
 body .service-tile>h2{font-size:30px}
 body .service-tile>small,body .service-tile>h2,body .service-tile>p,body .service-tile>i{margin-inline:12px}
 body .landing-hero-copy{padding:22px 18px}
 body .landing-hero-image{height:340px;margin-right:8px;max-width:calc(100% - 8px)}
 body .service-hero-visual{height:350px;max-width:100%}
 body .landing-hero-image figcaption{padding:12px;bottom:16px}
 body .landing-hero-image figcaption b{font-size:23px}
 body .page-hero{padding:115px 18px 30px}
 body .landing-article article{padding:22px 18px;gap:10px}
 body .landing-intro{padding-block:30px}
 body .landing-faq{padding-block:35px;gap:22px}
 body .faq-list summary{padding:18px 12px;grid-template-columns:22px minmax(0,1fr) 22px;font-size:16px}
 body .faq-list details p{padding:0 18px 22px;line-height:1.65}
 body .footer-inner{grid-template-columns:minmax(0,1fr);gap:24px}
 body .footer-inner>div:last-child{grid-column:auto}
 body .footer-bottom{flex-wrap:wrap;gap:12px}
 body .mobile-contact-bar{display:flex;position:fixed;z-index:120;bottom:0;left:0;right:0;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #b8c8b0;box-shadow:0 -4px 18px #10201814}
 .mobile-contact-bar a{display:flex;align-items:center;justify-content:center;min-height:44px;flex:1;min-width:0;padding:9px 8px;background:#a8e62c;color:#102018;font-size:14px;font-weight:800;border-radius:4px;text-align:center}
 .mobile-contact-bar a:last-child{background:#102018;color:#fff}
 body.mobile-nav-open .mobile-contact-bar,body.contact-action-visible .mobile-contact-bar,body.reference-lightbox-open .mobile-contact-bar{visibility:hidden;pointer-events:none}
 /* Native horizontal cards: all eight remain accessible by touch and keyboard. */
 body .service-scroll{height:auto!important;background:#e7f4d2;padding-block:30px}
 body .depth-stage{position:relative;top:auto;height:auto;display:block;padding:0 14px;perspective:none;overflow:visible}
 body .depth-stage::before{display:none}
 body .depth-head{padding:0 4px}.depth-head h2{font-size:30px!important}
 body .depth-status,body .depth-nav{display:none}
 body .depth-space{display:flex;gap:16px;height:auto;padding:12px 4px 24px;overflow-x:auto;scroll-snap-type:x mandatory;transform-style:flat;scroll-padding-inline:4px}
 body .depth-card{position:relative!important;flex:0 0 88%;left:auto;top:auto;width:auto;min-width:0;height:auto;max-height:none;margin:0!important;translate:none!important;transform:none!important;opacity:1!important;pointer-events:auto!important;scroll-snap-align:start;grid-template-columns:minmax(0,1fr);grid-template-rows:190px auto;box-shadow:4px 5px 0 #10201816;outline:none!important}
 body .depth-card-image{height:190px;transform:none}
 body .depth-card-copy{padding:16px;transform:none}.depth-card-copy h3{font-size:27px!important}
 body .depth-card-copy p{min-height:40px}
 body .depth-card-copy i{min-height:40px}
 body .window-gallery{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){body .video-backdrop video{display:none!important}}
body .video-backdrop{background:#eaf0e6 url('../images/hero-bg.webp') center / cover no-repeat!important}
@media(max-width:768px){body .video-backdrop video{display:none!important}.video-vignette{background:rgba(244,248,239,.55)!important}}
/* Long German headings must wrap even when legacy heading rules are present. */
html body main :is(.hero-copy,.service-hero,.landing-hero,.page-hero,.about-intro,.contact-copy) h1{overflow-wrap:anywhere!important;word-break:normal!important;max-width:100%}
html body[class] :is(.kicker,.faq-head .kicker,.landing-hero-copy .kicker,.story-head .kicker,.contact-copy .kicker,.page-hero .kicker,.service-reference-head .kicker,.landing-intro small){color:#36513b!important}
html body 
body .window-reference-gallery{grid-template-columns:repeat(12,minmax(0,1fr))}
@media(max-width:680px){body .window-reference-gallery{grid-template-columns:minmax(0,1fr)}}
html body[class] main :is(h2,h3){overflow-wrap:anywhere!important;word-break:normal!important}
html body[class] .service-hero-copy .breadcrumbs,html body[class] .service-hero-copy .breadcrumbs a,html body[class] .contact-map>div:last-child .kicker{color:#36513b!important}
body .window-reference-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
body .window-reference-gallery .window-gallery-item{grid-column:auto!important;grid-row:auto!important;width:100%;min-width:0;min-height:0;aspect-ratio:4/3;height:auto}
body .window-reference-gallery .window-gallery-item img{min-height:0;height:100%;width:100%;object-fit:cover}
body .about-image>span{right:14px;left:14px;max-width:calc(100% - 28px);width:auto;overflow-wrap:anywhere;transform:none}
@media(max-width:980px){body .window-reference-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){body .window-reference-gallery{grid-template-columns:minmax(0,1fr)}body .window-reference-gallery .window-gallery-item{aspect-ratio:auto}body .window-reference-gallery .window-gallery-item img{height:auto;object-fit:contain}}
body.references-page .page-hero,body.overview-page .page-hero{margin-top:125px;padding:28px!important}
@media(max-width:768px){body.references-page .page-hero,body.overview-page .page-hero{margin-top:112px;padding:22px 18px!important}}


/* Floating contact: Daniel Feldmann */
body .contact-drawer{z-index:145}
body .contact-drawer-handle{border-radius:18px 0 0 18px;background:linear-gradient(180deg,#b6ff18,#9fe213);color:#102018;box-shadow:-10px 14px 28px rgba(16,32,24,.16)}
body .contact-drawer-handle .contact-handle-icon{display:block;width:28px;height:28px}
body .contact-drawer-panel{background:linear-gradient(180deg,#fbfff5,#f0f9df);box-shadow:-18px 22px 36px rgba(16,32,24,.15)}
body .advisor-card,body .advisor-card:hover,body .advisor-card:focus-visible,body .advisor-card.is-featured{grid-template-columns:94px minmax(0,1fr)!important}
body .advisor-photo{border-radius:16px;object-fit:cover;box-shadow:8px 10px 22px rgba(16,32,24,.12)}
body .advisor-role{margin:0 0 10px;color:#2b4633;font-size:13px;font-weight:700}
body .advisor-qr{display:none!important}
body .contact-drawer-actions{display:grid;gap:10px;margin-top:18px}
body .contact-drawer-actions .button{width:100%;justify-content:center}

/* Home reference directory: one tile per reference category */
body .home-reference-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
body .home-reference-grid>a{display:flex;flex-direction:column;min-height:100%;padding:14px;border-radius:12px;box-shadow:0 8px 18px rgba(16,32,24,.06);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
body .home-reference-grid>a:hover,body .home-reference-grid>a:focus-visible{transform:translateY(-4px);box-shadow:0 18px 30px rgba(16,32,24,.12);border-color:#9bc73f}
body .home-reference-grid img{height:215px}
body .home-reference-grid small{display:block;margin-top:12px;color:#5c784b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
body .home-reference-grid h3{font-size:24px;margin:8px 0 10px}
body .home-reference-grid span{margin-top:auto}

/* About social media: 3D cubes */
.about-page .social-hub{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:center;padding:40px 0 180px}
.about-page .social-copy{padding:28px;background:#f8fbf6;border-left:4px solid #72aa28}
.about-page .social-copy p{color:#304035!important;line-height:1.7}
.about-page .social-scene{position:relative;height:560px;border:1px solid #c5d2bd;border-radius:28px;background:radial-gradient(circle at center,rgba(184,255,44,.18),transparent 38%),linear-gradient(180deg,#fafff4,#ecf8dc);box-shadow:18px 18px 0 rgba(168,230,44,.22);overflow:hidden;perspective:1100px;transform-style:preserve-3d}
.about-page .social-scene::before{content:"";position:absolute;inset:0;background:url('../images/feldmann-logo-v3.png') center/42% auto no-repeat;opacity:.08;pointer-events:none}
.about-page .social-orbit{position:absolute;left:50%;top:50%;width:380px;height:380px;border:1px dashed rgba(80,150,0,.28);border-radius:50%;transform:translate(-50%,-50%) rotateX(68deg);animation:spin 18s linear infinite}
.about-page .social-cube{position:absolute;width:110px;height:110px;display:block;transform-style:preserve-3d;color:#102018;opacity:.96;z-index:2}
.about-page .social-cube .cube-face{position:absolute;inset:0;display:grid;place-items:center;border:1px solid rgba(74,140,0,.35);border-radius:16px;background:rgba(182,255,24,.5);color:#102018;backdrop-filter:blur(10px)}
.about-page .social-cube .cube-face svg{width:40px;height:40px;fill:currentColor}
.about-page .cube-face.front{transform:translateZ(55px)}
.about-page .cube-face.side{transform:rotateY(90deg) translateZ(55px);font-weight:900}
.about-page .cube-face.top{transform:rotateX(90deg) translateZ(55px);font-weight:900}
.about-page .social-cube small{position:absolute;top:146px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#2a4634;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.about-page .cube-1{left:14%;top:18%;transform:rotateX(-12deg) rotateY(25deg);animation:cubeFloat 5s ease-in-out infinite}
.about-page .cube-2{right:16%;top:22%;transform:rotateX(10deg) rotateY(-28deg);animation:cubeFloat 6s ease-in-out infinite 1s}
.about-page .cube-3{left:27%;bottom:17%;transform:rotateX(8deg) rotateY(32deg);animation:cubeFloat 5.5s ease-in-out infinite .4s}
@media(max-width:1180px){body .home-reference-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){body .home-reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-page .social-hub{grid-template-columns:1fr}}
@media(max-width:768px){body .home-reference-grid{grid-template-columns:1fr}.about-page .social-scene{height:430px}.about-page .social-cube{width:76px;height:76px}.about-page .cube-face.front{transform:translateZ(38px)}.about-page .cube-face.side{transform:rotateY(90deg) translateZ(38px)}.about-page .cube-face.top{transform:rotateX(90deg) translateZ(38px)}.about-page .social-cube small{top:106px}}


.about-page .social-cube.is-static{pointer-events:none;cursor:default}
.about-page .social-cube.is-whatsapp{display:block;text-decoration:none;color:#102018;transition:transform .28s ease,filter .28s ease}
.about-page .social-cube.is-whatsapp:hover,.about-page .social-cube.is-whatsapp:focus-visible{transform:translateY(-10px) scale(1.03);filter:drop-shadow(0 18px 30px rgba(16,32,24,.16))}
.about-page .social-cube .cube-face.side,.about-page .social-cube .cube-face.top{background:rgba(182,255,24,.28)}
.about-page .social-cube small{display:none}
.about-page .cube-4{right:18%;bottom:18%;transform:rotateX(-8deg) rotateY(-22deg);animation:cubeFloat 6.5s ease-in-out infinite 1.4s}
@media(max-width:768px){.about-page .cube-4{right:16%;bottom:14%}}


/* Header social icons */
.header-social-icons{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.header-social-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(16,32,24,.14);border-radius:9px;background:#efffce;color:#102018;box-shadow:3px 3px 0 rgba(16,32,24,.08);text-decoration:none}
.header-social-icon svg{display:block;width:16px;height:16px;fill:currentColor}
.header-social-icon[aria-label="Instagram Profil öffnen"] svg{width:17px;height:17px}
.header-social-icons a.header-social-icon{cursor:pointer;pointer-events:auto}
.header-social-icons span.header-social-icon{pointer-events:none}
@media(max-width:1200px){.header-social-icons{gap:5px}.header-social-icon{width:30px;height:30px}.header-social-icon svg{width:14px;height:14px}}
@media(max-width:980px){.nav-shell{gap:10px!important}.header-social-icons{order:2;margin-left:2px;margin-right:auto;gap:5px}.menu-toggle{order:3;margin-left:0!important}.nav-actions{order:4;margin-left:0!important;margin-right:2px!important}}
@media(max-width:680px){.brand{width:142px!important;min-width:0;padding-inline:7px!important}.brand img{height:40px!important}.header-social-icons{gap:4px;margin-left:0}.header-social-icon{width:27px;height:27px;border-radius:7px;box-shadow:2px 2px 0 rgba(16,32,24,.08)}.header-social-icon svg{width:13px;height:13px}.menu-toggle{width:40px!important;height:40px!important;flex:0 0 40px}.nav-actions .icon-button{width:40px!important;height:40px!important;flex:0 0 40px}body .contact-drawer{bottom:calc(112px + env(safe-area-inset-bottom))!important;right:12px!important}body .contact-drawer-handle{width:112px!important;min-height:46px!important}}
@media(max-width:430px){.nav-shell{gap:7px!important;padding-left:10px!important;padding-right:8px!important}.brand{width:118px!important}.header-social-icon{width:24px;height:24px}.header-social-icon svg{width:12px;height:12px}.menu-toggle{width:38px!important;height:38px!important;flex-basis:38px}.nav-actions .icon-button{width:38px!important;height:38px!important;flex-basis:38px}}
.about-page .social-cube[aria-label="Instagram"] .cube-face.front svg{width:42px!important;height:42px!important;fill:#102018!important}
