/* =====================================================
   Maler Fritz GmbH — Shared Design System
   Basel · Malerfachbetrieb seit 2005
   ===================================================== */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@700;800;900&family=Inter:wght@400;500;600&display=swap');

:root {
  --red:#FC4707; --red-d:#C8371A; --red-dd:#9E2A13;
  --ink:#0E0E0D; --ink-h:#343434; --ink-b:#434343;
  --ink-m:#7A7A7A; --ink-s:#A8A8A8;
  --ink-bd:#E2E2E2; --ink-50:#EEEEEE; --ink-bg:#F5F5F3; --ink-bw:#FBFBFA;
  --white:#FFFFFF;
  --dp:'Archivo',sans-serif; --sn:'Inter',sans-serif;
  --ease:cubic-bezier(.2,0,0,1);
  --spring:cubic-bezier(0.34,1.56,0.64,1);
  --sh-sm:0 2px 6px rgba(14,14,13,.06),0 1px 2px rgba(14,14,13,.04);
  --sh-md:0 8px 24px rgba(14,14,13,.09),0 2px 6px rgba(14,14,13,.05);
  --sh-lg:0 20px 56px rgba(14,14,13,.13),0 6px 14px rgba(14,14,13,.07);
  --r-sm:4px; --r-md:8px; --r-lg:14px; --r-xl:22px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--sn);color:var(--ink-h);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}

/* ── Layout ── */
.w{max-width:1200px;margin:0 auto;padding:0 48px}
.w-lg{max-width:1360px;margin:0 auto;padding:0 48px}

/* ── Typography ── */
.eb{font-family:var(--sn);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--red)}
.sec-t{font-family:var(--dp);font-weight:800;font-size:clamp(28px,3.2vw,44px);line-height:1.08;letter-spacing:-.022em;margin-top:11px;text-wrap:balance;color:var(--ink-h)}
.sec-hdr{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:46px;flex-wrap:wrap}

/* ── Buttons ── */
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:8px;padding:13px 24px;font-family:var(--sn);font-size:13px;font-weight:600;border-radius:var(--r-sm);border:none;cursor:pointer;transition:background 140ms var(--ease),transform 120ms var(--ease);letter-spacing:.01em;text-decoration:none}
.btn-r{background:var(--red);color:#fff;box-shadow:0 4px 16px rgba(252,71,7,.22)}
.btn-r:hover{background:var(--red-d);transform:translateY(-1px)}
.btn-r:active{background:var(--red-dd);transform:none}
.btn-g{background:transparent;color:var(--ink-h);border:1.5px solid var(--ink-bd)}
.btn-g:hover{border-color:var(--ink-m);background:var(--ink-bw)}
.btn-gw{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.32)}
.btn-gw:hover{border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.07)}
.btn-sm{padding:9px 18px;font-size:12px}

/* ── Scroll Reveal ── */
.rv{opacity:0;transform:translateY(30px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-l{opacity:0;transform:translateX(-32px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.rv-l.in{opacity:1;transform:none}
.rv-r{opacity:0;transform:translateX(32px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.rv-r.in{opacity:1;transform:none}
.sg>*{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.sg.in>*:nth-child(1){opacity:1;transform:none;transition-delay:0ms}
.sg.in>*:nth-child(2){opacity:1;transform:none;transition-delay:80ms}
.sg.in>*:nth-child(3){opacity:1;transform:none;transition-delay:160ms}
.sg.in>*:nth-child(4){opacity:1;transform:none;transition-delay:240ms}
.sg.in>*:nth-child(5){opacity:1;transform:none;transition-delay:320ms}
.sg.in>*:nth-child(6){opacity:1;transform:none;transition-delay:400ms}

/* ── HEADER ── */
#hdr{position:fixed;top:0;left:0;right:0;z-index:200;transition:background 240ms var(--ease),box-shadow 240ms var(--ease)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 48px;transition:padding 240ms var(--ease)}
#hdr.on{background:rgba(255,255,255,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--ink-50),0 4px 16px rgba(14,14,13,.06)}
#hdr.on .hdr-in{padding:12px 48px}
.hdr-logo{height:40px;display:block}
.hdr-ld{display:none}
#hdr.on .hdr-lw{display:block}
#hdr.on .hdr-ld{display:none}
.hdr-nav{display:flex;align-items:center;gap:22px;list-style:none}
.hdr-nav>li{position:relative}
.hdr-nav a:not(.hdr-offerte){font-size:13px;font-weight:500;color:#fff;transition:color 140ms;padding-bottom:2px;display:flex;align-items:center;gap:4px;white-space:nowrap;position:relative}
.hdr-nav a:not(.btn):not(.hdr-offerte)::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1.5px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
.hdr-nav a:not(.btn):not(.hdr-offerte):hover::after{transform:scaleX(1)}
#hdr.on .hdr-nav a:not(.btn):not(.hdr-offerte){color:var(--ink-h)}
#hdr.on .hdr-nav a:not(.btn):not(.hdr-offerte):hover{color:var(--red)}
.hdr-lang{display:inline-flex;align-items:center;gap:8px;margin-right:2px}
.hdr-lang a{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 0;opacity:.55}
.hdr-lang a.hdr-lang-active{opacity:1}
.hdr-lang-sep{font-size:10px;color:rgba(255,255,255,.38)}
#hdr.on .hdr-lang-sep{color:rgba(52,52,52,.35)}
.hdr-ph{font-size:13px;font-weight:600;white-space:nowrap}
#hdr.on .btn-gw{color:var(--ink-h);border-color:var(--ink-bd)}
#hdr.on .btn-gw:hover{background:var(--ink-bw)}

/* ── Offerte-Button in nav ── */
.hdr-offerte{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;padding:13px 24px !important;background:var(--red);color:#fff !important;border:none !important;border-radius:var(--r-sm);font-family:var(--sn);font-size:13px;font-weight:600 !important;white-space:nowrap;letter-spacing:.01em;cursor:pointer;text-decoration:none;box-shadow:0 4px 16px rgba(252,71,7,.22);transition:background 140ms var(--ease),transform 120ms var(--ease)}
.hdr-offerte:hover{background:var(--red-d,#C8371A);color:#fff;transform:translateY(-1px)}
.hdr-offerte:active{background:var(--red-dd,#9E2A13);transform:none}
#hdr.on .hdr-offerte{background:var(--red);color:#fff}
#hdr.on .hdr-offerte:hover{background:var(--red-d,#C8371A);color:#fff}

/* Dropdown — JS-controlled (.open class) */
.hdr-dd>.hdr-dp{position:absolute;top:calc(100% + 6px);left:-14px;background:#fff;border:1px solid var(--ink-50);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:6px;min-width:260px;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:opacity 180ms var(--ease),transform 180ms var(--ease);z-index:300}
.hdr-dd.open>.hdr-dp{opacity:1;transform:none;pointer-events:auto}
/* keyboard fallback */
.hdr-dd:focus-within>.hdr-dp{opacity:1;transform:none;pointer-events:auto}
.hdr-dd .hdr-dp a{display:block;padding:10px 13px;font-size:13px;font-weight:500;color:var(--ink-h);border-radius:var(--r-md);transition:background 140ms,color 140ms;white-space:nowrap}
.hdr-dd .hdr-dp a::after{display:none !important}
.hdr-dd .hdr-dp a:hover{background:var(--ink-bg);color:var(--red)}

/* ── PAGE HERO (inner pages) ── */
.pg-hero{position:relative;height:52vh;min-height:440px;display:flex;align-items:flex-end;overflow:hidden;padding-bottom:60px}
.pg-hero-bg{position:absolute;inset:0}
.pg-hero-bg img{width:100%;height:115%;object-fit:cover;object-position:center 30%}
.pg-hero-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,14,13,.85) 0%,rgba(14,14,13,.4) 55%,rgba(14,14,13,.18) 100%)}
.pg-hero-bd{position:relative;z-index:2;width:100%}
.pg-bc{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:rgba(255,255,255,.45);margin-bottom:14px;flex-wrap:wrap}
.pg-bc a{color:rgba(255,255,255,.45);transition:color 140ms}
.pg-bc a:hover{color:rgba(255,255,255,.8)}
.pg-bc-sep{color:rgba(255,255,255,.25)}
.pg-hero h1{font-family:var(--dp);font-weight:900;font-size:clamp(36px,5vw,68px);line-height:.96;letter-spacing:-.03em;color:#fff;margin-bottom:12px;text-wrap:balance;max-width:740px}
.pg-hero h1 em{font-style:normal;color:var(--red)}
.pg-hero-tag{font-size:15px;color:rgba(255,255,255,.68);max-width:520px;line-height:1.6;margin-bottom:22px}

/* ── MARQUEE ── */
.mq{background:var(--ink);padding:15px 0;overflow:hidden;width:100%;max-width:100%}
.mq-tr{display:flex;animation:mqr 32s linear infinite;will-change:transform}
.mq-tr:hover{animation-play-state:paused}
.mq-i{display:flex;align-items:center;gap:18px;padding:0 26px;white-space:nowrap;font-family:var(--dp);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.11em;color:#fff}
.mq-d{width:4px;height:4px;background:var(--red);border-radius:50%;flex-shrink:0}
@keyframes mqr{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── STATS ── */
.st-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.st{padding:18px 22px;text-align:center;border-right:1px solid var(--ink-bd)}
.st:first-child{border-left:1px solid var(--ink-bd)}
.st-n{font-family:var(--dp);font-weight:900;font-size:clamp(30px,3.6vw,45px);line-height:1;letter-spacing:-.03em;color:var(--red);display:inline-block;white-space:nowrap}
.st-l{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-m);margin-top:12px;display:block}
.st-d{font-size:12px;color:var(--ink-s);margin-top:4px}

/* ── SERVICE CARDS ── */
.srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.srv-c{background:#fff;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--ink-bd);box-shadow:var(--sh-sm);display:block;transition:transform 260ms var(--ease),box-shadow 260ms var(--ease);color:inherit}
.srv-c:hover{transform:translateY(-5px);box-shadow:var(--sh-md)}
.srv-iw{overflow:hidden;aspect-ratio:16/10}
.srv-img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease)}
.srv-c:hover .srv-img{transform:scale(1.05)}
.srv-bd{padding:20px 22px 22px}
.srv-title{font-family:var(--dp);font-weight:700;font-size:17px;line-height:1.2;letter-spacing:-.01em;margin-bottom:7px}
.srv-desc{font-size:13px;line-height:1.58;color:var(--ink-m);margin-bottom:13px}
.srv-lnk{font-size:11px;font-weight:600;color:var(--red);display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.08em}
.srv-lnk svg{transition:transform 200ms var(--ease)}
.srv-c:hover .srv-lnk svg{transform:translateX(4px)}

/* ── EMPATHY SECTION — editorial / emotional ── */
.em-sec{background:var(--ink);padding:96px 0;overflow:hidden;position:relative}
.em-sec::before{content:'';position:absolute;top:-120px;right:-80px;width:480px;height:480px;border-radius:50%;background:rgba(252,71,7,.06);pointer-events:none}
.em-inner{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:1}
.em-ey{font-family:var(--sn);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--red);margin-bottom:22px;display:block}
.em-h2{font-family:var(--dp);font-weight:900;font-size:clamp(28px,4vw,52px);line-height:1.08;letter-spacing:-.028em;color:#fff;margin-bottom:14px;text-wrap:balance}
.em-h3{font-size:clamp(14px,1.4vw,17px);line-height:1.55;color:rgba(255,255,255,.42);margin-bottom:44px;font-weight:400;font-family:var(--sn);max-width:520px;margin-left:auto;margin-right:auto}
.em-divider{width:40px;height:2px;background:var(--red);margin:0 auto 40px;border:none}
.em-story{font-size:17px;line-height:1.85;color:rgba(255,255,255,.72);margin-bottom:22px;text-wrap:pretty;text-align:left}
.em-absol{font-size:15px;line-height:1.75;color:rgba(255,255,255,.46);margin-bottom:22px;text-wrap:pretty;font-style:italic;text-align:left}
.em-wish{font-size:17px;line-height:1.85;color:rgba(255,255,255,.72);margin-bottom:36px;text-wrap:pretty;text-align:left}
.em-bridge{font-family:var(--dp);font-weight:800;font-size:clamp(18px,2.2vw,26px);color:var(--red);letter-spacing:-.02em;display:block;text-align:center;margin-top:8px}
.em-quote{font-family:var(--dp);font-size:80px;line-height:.6;color:rgba(252,71,7,.18);display:block;margin-bottom:8px;margin-left:-4px}

/* ── Process scroll hint ── */
.pr-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:9px;pointer-events:none;opacity:0;transition:opacity 350ms var(--ease)}
.pr-scroll-hint.hide{opacity:0}
.pr-hint-dots{display:flex;gap:9px}
.pr-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid rgba(52,52,52,.28);background:transparent;transition:background 350ms var(--ease),border-color 350ms var(--ease),transform 350ms var(--ease)}
.pr-dot.active{background:var(--red);border-color:var(--red);transform:scale(1.35)}
/* Dark slide (step 3): invert dot colours */
.pr-scroll-hint.on-dark .pr-dot{border-color:rgba(255,255,255,.3)}
.pr-scroll-hint.on-dark .pr-dot.active{background:var(--red);border-color:var(--red)}
.pr-hint-line{width:1px;height:34px;background:rgba(52,52,52,.18);animation:prHint 2.1s ease-in-out infinite}
.pr-scroll-hint.on-dark .pr-hint-line{background:rgba(255,255,255,.22)}
.pr-hint-lbl{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:rgba(52,52,52,.35);margin-top:-4px}
.pr-scroll-hint.on-dark .pr-hint-lbl{color:rgba(255,255,255,.32)}
@keyframes prHint{0%,100%{opacity:.3;transform:scaleY(1)}50%{opacity:.8;transform:scaleY(1.1)}}
#ablauf{max-width:100%}
.pr-slides-wrap{position:sticky;top:0;height:100vh;width:100%;max-width:100%;overflow:hidden;contain:layout paint;isolation:isolate}
.pr-slide{position:absolute;inset:0;display:flex;align-items:center;will-change:clip-path;width:100%;max-width:100%}
.pr-slide:nth-child(1){z-index:1}
.pr-slide:nth-child(2){z-index:2}
.pr-slide:nth-child(3){z-index:3}
.pr-slide-inner{max-width:1200px;margin:0 auto;padding:0 48px;width:100%;display:grid;grid-template-columns:200px minmax(0,1fr) minmax(260px,420px);gap:52px;align-items:center}
.pr-slide-main{min-width:0}
.pr-slide-count{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--red);margin-bottom:20px}
.pr-slide-bignum{font-family:var(--dp);font-weight:900;font-size:clamp(90px,14vw,180px);line-height:.82;letter-spacing:-.04em;user-select:none}
.pr-slide-eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--red);margin-bottom:18px}
.pr-slide-title{font-family:var(--dp);font-weight:900;font-size:clamp(32px,4.5vw,60px);line-height:1.02;letter-spacing:-.028em;margin-bottom:20px;text-wrap:balance}
.pr-slide-desc{font-size:16px;line-height:1.72;max-width:520px;margin-bottom:32px;text-wrap:pretty}
.pr-slide-media{width:100%;height:420px;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md);border:1px solid rgba(52,52,52,.08);background:#fff}
.pr-slide-img{width:100%;height:100%;object-fit:cover}

/* Large desktop refinement: keep headline block roomy and align image/text
   proportions more naturally. */
@media (min-width: 1241px){
  .pr-slide-inner{
    max-width:1280px;
    grid-template-columns:160px minmax(420px,1fr) minmax(380px,500px);
    gap:40px;
    align-items:start;
  }
  .pr-slide-main{padding-top:6px}
  .pr-slide-media{height:380px}
}

/* Avoid text overlap on medium desktop widths: keep number+text readable and
   move the image below the text column before switching to full mobile stack. */
@media (max-width: 1240px) and (min-width: 961px){
  .pr-slide-inner{
    grid-template-columns:160px minmax(0,1fr);
    gap:34px;
    align-items:start;
  }
  .pr-slide-main{padding-right:0}
  .pr-slide-media{
    grid-column:2;
    height:260px;
    margin-top:6px;
  }
}

/* ── PROCESS GRID (Unterseiten) ── */
.pr-grid-wrap{position:relative;margin-top:52px}
.pr-connector{position:absolute;top:23px;left:0;right:0;height:2px;pointer-events:none;z-index:0}
.pr-connector-bg{position:absolute;inset:0;left:16.67%;right:16.67%;background:var(--ink-50)}
.pr-connector-fill{position:absolute;top:0;bottom:0;left:16.67%;width:0;background:var(--red);transition:width 480ms var(--ease)}
.pr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.pr-step{transition:opacity 400ms var(--ease)}
.pr-step .pr-num{transition:background 400ms var(--ease),color 400ms var(--ease),transform 400ms var(--spring,cubic-bezier(0.34,1.56,0.64,1))}
.pr-step .pr-title{transition:color 380ms var(--ease)}
.pr-step.pr-active .pr-num{background:var(--red);color:#fff;transform:scale(1.12)}
.pr-step.pr-active .pr-title{color:var(--ink-h)}
.pr-step.pr-past,.pr-step.pr-inactive{opacity:.36}
.pr-step.pr-past .pr-num,.pr-step.pr-inactive .pr-num{background:var(--ink-50);color:var(--ink-m)}
.pr-step.pr-past .pr-title,.pr-step.pr-inactive .pr-title{color:var(--ink-m)}
.pr-num{width:46px;height:46px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--dp);font-weight:800;font-size:17px;margin-bottom:18px;position:relative;z-index:1}
.pr-title{font-family:var(--dp);font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-.01em;margin-bottom:9px;color:var(--ink-h)}
.pr-desc{font-size:13px;line-height:1.68;color:var(--ink-m)}

/* ── FAQ ── */
.faq-lay{display:grid;grid-template-columns:1fr 1.55fr;gap:72px;align-items:start}
.faq-l{position:sticky;top:96px}
.faq-sub{font-size:13px;color:var(--ink-m);line-height:1.7;margin-top:13px;max-width:280px}
.faq-tel{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-size:13px;font-weight:600;color:var(--red)}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-bottom:1px solid var(--ink-50)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--dp);font-weight:600;font-size:15px;color:var(--ink-h);letter-spacing:-.01em;transition:color 140ms}
.faq-q:hover{color:var(--red)}
.faq-ico{width:25px;height:25px;border-radius:50%;border:1.5px solid var(--ink-bd);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform 280ms var(--ease),background 200ms,border-color 200ms}
.faq-item.open .faq-ico{background:var(--red);border-color:var(--red);transform:rotate(45deg)}
.faq-item.open .faq-ico svg{stroke:#fff}
.faq-ans{max-height:0;overflow:hidden;transition:max-height 380ms var(--ease)}
.faq-ans-in{padding:0 0 20px;font-size:13px;line-height:1.72;color:var(--ink-m);text-wrap:pretty;max-width:520px}

/* ── FORM ── */
.frm-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.frm-g{display:flex;flex-direction:column;gap:5px}
.frm-l{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-m)}
.frm-i{padding:10px 13px;border:1.5px solid var(--ink-bd);border-radius:var(--r-sm);font-family:var(--sn);font-size:13px;color:var(--ink-h);background:#fff;transition:border-color 140ms;outline:none;width:100%}
.frm-i:focus{border-color:var(--red)}
.frm-ta{resize:vertical;min-height:80px}
.frm-note{font-size:11px;color:var(--ink-s);margin-top:9px;text-align:center;line-height:1.5}

/* ── CTA SECTION ── */
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ct-eb{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.52);margin-bottom:14px}
.ct-h2{font-family:var(--dp);font-weight:900;font-size:clamp(34px,4vw,54px);line-height:1.02;letter-spacing:-.025em;color:#fff;margin-bottom:14px;text-wrap:balance}
.ct-sub{font-size:15px;color:rgba(255,255,255,.7);line-height:1.65;margin-bottom:26px}
.ct-info{display:flex;flex-direction:column;gap:10px}
.ct-row{display:flex;align-items:center;gap:11px;font-size:13px;color:rgba(255,255,255,.78)}
.ct-row a{color:#fff;font-weight:600}
.ct-form{background:#fff;border-radius:var(--r-lg);padding:32px;box-shadow:0 24px 64px rgba(14,14,13,.22)}
.ct-form h3{font-family:var(--dp);font-weight:700;font-size:18px;letter-spacing:-.01em;margin-bottom:20px}

/* ── MAP SECTION ── */
.map-sec{background:var(--ink);padding:0}
.map-media{position:relative;width:100vw;height:min(48vh,547px);min-height:306px;margin-left:calc(50% - 50vw);overflow:hidden;isolation:isolate}
.map-canvas{position:absolute;inset:0;filter:grayscale(.7) saturate(.35) contrast(1.28) brightness(.92)}
.map-overlay{position:absolute;inset:0;background:rgba(252,71,7,.34);mix-blend-mode:multiply;pointer-events:none}
.map-media::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(113deg,rgba(255,255,255,.16) 0 2px,rgba(255,255,255,0) 2px 7px);mix-blend-mode:soft-light;opacity:.68;pointer-events:none}
.map-media::after{content:"";position:absolute;inset:0;background:
  radial-gradient(rgba(255,255,255,.12) 0.8px,transparent 1px) 0 0/4px 4px,
  linear-gradient(0deg,rgba(14,14,13,.08),rgba(14,14,13,.08));
mix-blend-mode:overlay;opacity:.55;pointer-events:none}
.map-media .leaflet-control-container,.map-media .leaflet-control-attribution{display:none !important}
#kontakt{margin-top:0}
.map-pin{position:relative;display:block;width:28px;height:38px;background:transparent;border:0}
.map-pin-head{position:relative;display:block;width:26px;height:26px;background:#FC4707;border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.3)}
.map-pin-head::after{content:"";position:absolute;width:8px;height:8px;background:#fff;border-radius:50%;top:7px;left:7px}
.map-pin-needle{position:absolute;left:12px;top:24px;width:2px;height:14px;background:#FC4707;box-shadow:0 1px 2px rgba(0,0,0,.3)}

/* Simpler CTA (inner pages) */
.cta-band{text-align:center;padding:88px 0}
.cta-band .sec-t{font-size:clamp(30px,3.5vw,48px);margin-bottom:16px}
.cta-band p{font-size:15px;color:var(--ink-m);max-width:480px;margin:0 auto 28px;line-height:1.6}
.cta-band-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ── PARTNER LOGOS ── */
.prt-band{width:100%;text-align:center}
.prt-label{font-family:var(--sn);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-s);margin:0 0 32px}
.prt-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;justify-items:center;column-gap:clamp(20px,4vw,48px);row-gap:24px;width:100%}
.prt-logo{display:flex;align-items:center;justify-content:center;width:100%}
.prt-logo img{display:block;height:clamp(32px,3.6vw,40px);width:auto;max-width:100%;max-height:40px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(100%);opacity:.42;transition:filter .35s var(--ease),opacity .35s var(--ease)}
.prt-logo:hover img{filter:grayscale(0%);opacity:1}

/* ── PARTNER LOGOS — Prominent / Large variant ── */
.prt-band-lg .prt-label{font-family:var(--sn);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--ink-s);margin:0 0 14px}
.prt-band-lg .prt-headline{font-family:var(--dp);font-weight:800;font-size:clamp(22px,2.4vw,30px);line-height:1.15;letter-spacing:-.02em;color:var(--ink-h);margin:0 auto 38px;max-width:560px;text-wrap:balance}
.prt-band-lg .prt-headline em{font-style:normal;color:var(--red)}
.prt-band-lg .prt-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;justify-items:stretch;column-gap:clamp(20px,2.6vw,36px);row-gap:24px;width:100%}
.prt-band-lg .prt-logo{display:flex;align-items:center;justify-content:center;width:100%;background:#fff;border:1px solid var(--ink-bd);border-radius:var(--r-lg);padding:24px 20px;min-height:128px;box-shadow:var(--sh-sm);transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.prt-band-lg .prt-logo:hover{border-color:var(--ink-m);transform:translateY(-3px);box-shadow:var(--sh-md)}
.prt-band-lg .prt-logo img{display:block;height:clamp(54px,5.4vw,76px);width:auto;max-width:100%;max-height:84px;object-fit:contain;mix-blend-mode:normal;filter:none;opacity:1;transition:none}
.prt-band-lg .prt-logo:hover img{filter:none;opacity:1}

/* Mobile overrides for large partner variant (raise specificity above body-scoped rules) */
@media (max-width: 960px){
  body .prt-band-lg .prt-logos{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px;row-gap:14px}
  body .prt-band-lg .prt-logo{grid-column:auto;padding:18px 12px;min-height:104px}
  body .prt-band-lg .prt-logo:nth-child(4),
  body .prt-band-lg .prt-logo:nth-child(5){grid-column:auto}
  body .prt-band-lg .prt-logo img{height:48px;max-height:60px;opacity:1}
}
@media (max-width: 600px){
  body .prt-band-lg .prt-logos{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:12px}
  body .prt-band-lg .prt-logo{padding:16px 10px;min-height:96px}
  body .prt-band-lg .prt-logo:nth-child(5){grid-column:span 2;max-width:60%;margin:0 auto;justify-self:center}
  body .prt-band-lg .prt-logo img{height:42px;max-height:54px}
}

/* ── INLINE CTA STRIP — dezent, used between content blocks ── */
.cta-strip-wrap{padding:32px 0}
.cta-strip{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;background:#fff;border:1px solid var(--ink-bd);border-radius:var(--r-lg);padding:28px 32px;box-shadow:var(--sh-sm);position:relative;overflow:hidden}
.cta-strip::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}
.cta-strip-text{flex:1 1 320px;min-width:0;padding-left:8px}
.cta-strip-eb{font-family:var(--sn);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--red);margin-bottom:6px}
.cta-strip-h{font-family:var(--dp);font-weight:800;font-size:clamp(20px,2vw,26px);line-height:1.18;letter-spacing:-.018em;color:var(--ink-h);text-wrap:balance;margin:0}
.cta-strip-h em{font-style:normal;color:var(--red)}
.cta-strip-sub{font-size:13px;color:var(--ink-m);margin:6px 0 0;line-height:1.6;max-width:560px}
.cta-strip-btns{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}
.cta-strip-tel{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink-h);padding:11px 16px;border:1.5px solid var(--ink-bd);border-radius:var(--r-sm);transition:border-color 140ms var(--ease),background 140ms var(--ease)}
.cta-strip-tel:hover{border-color:var(--red);color:var(--red);background:var(--ink-bw)}
.cta-strip-tel svg{flex-shrink:0}

/* Dark variant (for use against light sections to add contrast) */
.cta-strip.cta-strip-dark{background:var(--ink);border-color:transparent;box-shadow:var(--sh-md)}
.cta-strip.cta-strip-dark::before{background:var(--red)}
.cta-strip.cta-strip-dark .cta-strip-h{color:#fff}
.cta-strip.cta-strip-dark .cta-strip-sub{color:rgba(255,255,255,.62)}
.cta-strip.cta-strip-dark .cta-strip-tel{color:#fff;border-color:rgba(255,255,255,.32)}
.cta-strip.cta-strip-dark .cta-strip-tel:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}

@media (max-width: 760px){
  /* Use block layout (instead of column-flex) so the inherited
     flex:1 1 320px from .cta-strip-text cannot create a 320px minimum
     height on the text block and stretch the card. The buttons sit
     directly under the text with a small fixed margin. */
  .cta-strip{display:block;padding:22px 20px}
  .cta-strip-text{flex:none;width:auto;padding-left:0}
  .cta-strip-sub{margin:6px 0 0}
  .cta-strip-btns{display:flex;flex-wrap:wrap;width:100%;gap:8px;margin-top:14px}
  .cta-strip-btns .btn,.cta-strip-tel{flex:1 1 100%;justify-content:center;text-align:center}
}

/* ── FOOTER ── */
#ftr{background:var(--ink);padding:64px 0 26px}
.ftr-g{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:24px}
.ftr-logo{height:44px;margin-bottom:12px;display:block}
.ftr-tag{font-size:12px;color:rgba(255,255,255,.36);line-height:1.65;max-width:240px}
.ftr-ct{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.17em;color:var(--red);margin-bottom:12px}
.ftr-cb{font-size:12px;color:rgba(255,255,255,.54);line-height:1.8}
.ftr-cb a{color:rgba(255,255,255,.54);display:block;transition:color 140ms;outline-offset:2px}
.ftr-cb a:hover{color:#fff}
.ftr-bot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:rgba(255,255,255,.24)}
.ftr-bls{display:flex;gap:18px}
.ftr-bls a{color:rgba(255,255,255,.24);transition:color 140ms;outline-offset:2px}
.ftr-bls a:hover{color:rgba(255,255,255,.54)}
.ftr-cb a:focus-visible,.ftr-bls a:focus-visible{outline:2px solid var(--red);border-radius:var(--r-sm)}

/* ── TEAM ── */
.tm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:46px}
.tm-iw{overflow:hidden;border-radius:var(--r-lg);margin-bottom:14px;aspect-ratio:3/4;background:var(--ink-50)}
.tm-img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease)}
.tm-card:hover .tm-img{transform:scale(1.04)}
.tm-name{font-family:var(--dp);font-weight:700;font-size:15px;margin-bottom:4px}
.tm-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--red)}
.tm-extra{margin-top:28px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--ink-bd);box-shadow:var(--sh-sm);background:#fff}
.tm-extra-img{display:block;width:100%;height:clamp(300px,48vw,520px);object-fit:cover;object-position:center 48%}

/* ── HAMBURGER BUTTON ── */
.hdr-burger{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;position:relative;padding:0;z-index:301}
.hdr-burger span{position:absolute;left:9px;right:9px;height:2px;background:#fff;border-radius:1px;transition:transform 240ms var(--ease),opacity 180ms var(--ease),top 240ms var(--ease),background 240ms var(--ease)}
.hdr-burger span:nth-child(1){top:13px}
.hdr-burger span:nth-child(2){top:19px}
.hdr-burger span:nth-child(3){top:25px}
#hdr.on .hdr-burger span{background:var(--ink-h)}
body.menu-open .hdr-burger span{background:#fff}
body.menu-open .hdr-burger span:nth-child(1){top:19px;transform:rotate(45deg)}
body.menu-open .hdr-burger span:nth-child(2){opacity:0}
body.menu-open .hdr-burger span:nth-child(3){top:19px;transform:rotate(-45deg)}

/* When mobile menu is open, lift #hdr above .mnav so the burger (X) stays
   clickable on top of the overlay, and make the header transparent so the
   dark backdrop shows through cleanly. Force the white logo regardless of
   scroll state. */
body.menu-open #hdr{z-index:301;background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:none !important}
body.menu-open #hdr .hdr-lw{display:block !important}
body.menu-open #hdr .hdr-ld{display:none !important}

/* ── MOBILE MENU OVERLAY ── */
.mnav{position:fixed;inset:0;background:rgba(14,14,13,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:250;display:flex;flex-direction:column;padding:88px 28px 28px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity 260ms var(--ease),transform 320ms var(--ease),visibility 260ms}
body.menu-open .mnav{opacity:1;visibility:visible;transform:none}
.mnav-list{list-style:none;display:flex;flex-direction:column;gap:2px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mnav-list>li>a,.mnav-list>li>.mnav-grp-h{display:flex;align-items:center;justify-content:space-between;padding:18px 4px;font-family:var(--dp);font-weight:700;font-size:22px;letter-spacing:-.01em;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);transition:color 140ms}
.mnav-list>li>a:hover,.mnav-list>li>.mnav-grp-h:hover{color:var(--red)}
.mnav-grp-h{cursor:default}
.mnav-sub{list-style:none;padding:6px 0 14px 4px;display:flex;flex-direction:column;gap:2px}
.mnav-sub a{display:block;padding:9px 0;font-family:var(--sn);font-size:14px;color:rgba(255,255,255,.62);transition:color 140ms}
.mnav-sub a:hover{color:#fff}
.mnav-foot{margin-top:auto;padding-top:22px;display:flex;flex-direction:column;gap:12px}
.mnav-cta{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;background:var(--red);color:#fff;border-radius:var(--r-sm);font-size:14px;font-weight:600;text-decoration:none;box-shadow:0 4px 16px rgba(252,71,7,.28)}
.mnav-tel{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;color:#fff;border:1.5px solid rgba(255,255,255,.22);border-radius:var(--r-sm);font-size:14px;font-weight:600;text-decoration:none}
body.menu-open{overflow:hidden}

/* ── HOVER: running light around button border ── */
@property --btn-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}
.btn::before,.hdr-offerte::before,.mnav-cta::before{
  content:'';
  position:absolute;
  inset:-2px;
  border-radius:calc(var(--r-sm) + 2px);
  background:conic-gradient(from var(--btn-angle),transparent 0%,transparent 62%,var(--red) 76%,#FFD0A0 82%,var(--red) 88%,transparent 100%);
  padding:2px;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  opacity:0;
  pointer-events:none;
  z-index:1;
  transition:opacity 220ms var(--ease);
  filter:brightness(1.35) drop-shadow(0 0 5px var(--red));
}
.btn:hover::before,.hdr-offerte:hover::before,.mnav-cta:hover::before{
  opacity:1;
  animation:btn-running-light 1.4s linear infinite;
}
@keyframes btn-running-light{
  to{--btn-angle:360deg}
}
/* Fallback for browsers without @property support (Safari < 16.4): use transform-based rotation */
@supports not (background: paint(angle-conic)) {
  /* Detection is approximate — only Safari < 16.4 lacks both @property and modern conic anim */
}

/* =====================================================
   RESPONSIVE — Tablet (≤960px) & Mobile (≤600px)
   ===================================================== */

/* Horizontal-scroll prevention is handled by `body { overflow-x: hidden }`
   (line ~23 above). Per CSS spec, when <html> has overflow: visible (the
   default), the body's overflow value PROPAGATES to the viewport. The
   viewport clips horizontal overflow, while body itself stays visible —
   which means body is NOT a scroll container, and position:sticky on
   descendants (e.g. .pr-slides-wrap) keeps working correctly.

   DO NOT set ANY explicit overflow on <html> — not `hidden`, not `clip`.
   Both break the propagation and force body into being a scroll container,
   which kills sticky on the Process-Slides section. (Confirmed twice.) */
body img,body video{max-width:100%;height:auto}

@media (max-width: 960px) {
  /* Defensive: allow flex/grid children to shrink below content-size */
  body section *,body header *,body footer *{min-width:0}

  body .w,body .w-lg{padding:0 24px}
  body .hdr-in{padding:16px 24px}
  #hdr.on .hdr-in{padding:12px 24px}
  body .hdr-nav{display:none}
  body .hdr-burger{display:block}

  /* Page hero */
  body .pg-hero{height:auto;min-height:380px;padding:120px 0 48px}
  body .pg-hero h1{font-size:clamp(30px,7vw,48px)}
  body .pg-hero-tag{font-size:14px}

  /* Sections — reduce padding ~35% */
  body .em-sec{padding:64px 0}
  body #mission{padding:72px 0}
  body #ftr{padding:48px 0 24px}
  body .cta-band{padding:64px 0}
  body #partner{padding:40px 0 48px}
  body .prt-logos{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:20px;row-gap:22px}
  body .prt-logo{grid-column:span 2}
  body .prt-logo:nth-child(4){grid-column:2 / span 2}
  body .prt-logo:nth-child(5){grid-column:4 / span 2}
  body .prt-logo img{height:30px;max-height:30px;opacity:.5}

  /* 4-col → 2 col */
  body .st-grid{grid-template-columns:repeat(2,1fr)}
  body .st{padding:24px 12px;border-left:none !important;border-right:none !important;border-top:1px solid var(--ink-bd)}
  body .st:first-child,body .st:nth-child(2){border-top:none}
  body .st-n{font-size:clamp(26px,6.2vw,40px)}
  body .tm-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  body .ftr-g{grid-template-columns:1fr 1fr;gap:32px}

  /* 3-col → 1 col (cards too narrow if 2) */
  body .srv-grid,body .pr-grid,body .rg{grid-template-columns:1fr;gap:20px}

  /* 2-col class grids → 1 col (covers both shared and inline-style-block classes) */
  body .ct-grid,body .ms-grid,body .faq-lay,body .ig,body .fg,body .val-grid,body .ref-grid{grid-template-columns:1fr;gap:32px}
  body .ms-img{height:380px}
  body .faq-l{position:static;top:auto}
  body .ii{height:300px}

  /* Inline grids → 1 col (catches all repeat() and 1fr-1fr variants used on the site) */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns: repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"]{grid-template-columns:1fr !important;gap:32px !important}

  /* Contact form: container padding */
  body .ct-form{padding:24px}
  body .map-media{height:min(40vh,413px);min-height:280px}

  /* Clip page bands — never #ablauf itself (would break sticky) */
  body > header,
  body > section:not(#ablauf),
  body > footer,
  body > nav.mnav{overflow-x:clip;max-width:100%}

  /* Process slides: stack big number above text */
  body #ablauf .pr-slides-wrap{overflow:hidden;clip-path:inset(0);contain:layout paint}
  body .pr-slide{align-items:flex-start;padding:86px 0 26px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  body .pr-slide-inner{grid-template-columns:1fr;gap:12px;padding:0 24px;align-content:start;max-width:100%}
  body .pr-slide-bignum{font-size:clamp(72px,18vw,120px)}
  body .pr-slide-title{font-size:clamp(28px,6vw,40px)}
  body .pr-slide-desc{font-size:14px;max-width:100%;margin-bottom:20px}
  body .pr-slide-media{height:clamp(150px,24vh,240px)}
  body #ablauf{min-height:280vh}

  /* Reveal: no horizontal shift before animate-in (prevents page-wide overflow) */
  body .rv-l:not(.in),
  body .rv-r:not(.in){transform:translateY(22px)}

  /* Hero stats: allow shrink in 2-col layout */
  body .h-stats{max-width:100%}
  body .st{overflow-x:clip}
  body .st-n{max-width:100%}

  /* Empathy section typography */
  body .em-story,body .em-wish{font-size:15px;line-height:1.75}
  body .em-absol{font-size:14px}
  body .em-quote{font-size:64px}

  /* Mission */
  body .ms-h2{font-size:clamp(28px,6.5vw,40px)}

  /* Footer bottom bar */
  body .ftr-bot{flex-direction:column;gap:12px;text-align:center}
  body .ftr-bls{justify-content:center}

  /* Section paddings on inner pages — covers all variants used in the design */
  section[style*="padding:64px 0"],
  section[style*="padding:72px 0"],
  section[style*="padding:80px 0"],
  section[style*="padding:88px 0"],
  section[style*="padding:92px 0"],
  section[style*="padding:96px 0"],
  section[style*="padding:104px 0"]{padding-top:56px !important;padding-bottom:56px !important}
  body .ms-sec,body .intro-band{padding:60px 0}

  /* Über-uns timeline: tighter */
  body .tl-item{grid-template-columns:64px 1fr;gap:18px;padding-bottom:30px}
  body .tl-item::before{left:31px}
  body .tl-dot{left:27px}

  /* Referenzen filter chips */
  body .filters{gap:6px;margin-bottom:28px}
  body .filter-btn{padding:7px 14px;font-size:11px}
}

@media (max-width: 600px) {
  body .w,body .w-lg{padding:0 18px}
  body .hdr-in{padding:14px 18px}
  #hdr.on .hdr-in{padding:10px 18px}

  /* Stats stay 2-col on mobile; other grids go 1-col */
  body .st-grid{grid-template-columns:repeat(2,1fr);gap:0}
  body .tm-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  body .tm-extra{margin-top:20px}
  body .tm-extra-img{height:clamp(200px,48vw,300px)}
  body .ftr-g{grid-template-columns:1fr;gap:24px}
  body .ftr-cb{display:flex;flex-direction:column;gap:8px}
  body .ftr-cb a{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:10px 6px;
    margin:-4px 0;
    line-height:1.4;
  }
  body .ftr-bls{width:100%;justify-content:center;gap:10px;flex-wrap:wrap}
  body .ftr-bls a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 12px;
    border-radius:var(--r-sm);
  }
  body .st{padding:20px 12px;border-left:none !important;border-right:none !important;border-top:1px solid var(--ink-bd)}
  body .st:nth-child(-n+2){border-top:none}
  body .st-n{font-size:clamp(24px,9.5vw,36px)}
  body .frm-row{grid-template-columns:1fr;gap:10px}

  /* Hero: smaller */
  body .pg-hero{min-height:340px;padding:104px 0 40px}
  body .pg-hero h1{font-size:clamp(26px,8vw,36px)}

  /* Brand band on home — only vertical padding, never reset horizontal
     (otherwise text hugs the screen edge on mobile) */
  body .brand-sec .w{padding-top:64px !important;padding-bottom:64px !important}

  /* Marquee tighter */
  body .mq{padding:11px 0}
  body .mq-i{padding:0 18px;font-size:11px}

  /* Buttons bigger touch target */
  body .btn{padding:14px 22px;font-size:13px}
  body .btn-sm{padding:11px 18px}

  /* Process: even more compact */
  body #ablauf{min-height:240vh}
  body .pr-slide{padding:80px 0 22px}
  body .pr-slide-inner{padding:0 18px;gap:10px}
  body .pr-slide-bignum{font-size:90px}
  body .pr-slide-desc{margin-bottom:16px}
  body .pr-slide-media{height:clamp(130px,22vh,190px)}

  /* Section paddings */
  section[style*="padding:88px 0"],section[style*="padding:96px 0"],section[style*="padding:92px 0"],section[style*="padding:104px 0"],section[style*="padding:80px 0"],section[style*="padding:72px 0"]{padding-top:48px !important;padding-bottom:48px !important}

  /* Empathy */
  body .em-sec{padding:48px 0}
  body .em-h2{font-size:clamp(24px,7vw,32px)}
  body .em-h3{font-size:14px;margin-bottom:28px}

  /* Page hero breadcrumbs smaller */
  body .pg-bc{font-size:10px}

  /* Mission image */
  body .ms-img{height:300px}

  /* CTA form */
  body .ct-form{padding:20px}
  body .map-media{height:min(36vh,347px);min-height:240px}
  body .ct-h2{font-size:clamp(28px,7vw,36px)}
}
