/* KC Walther Kahl COMMUNICATIONS e.K. */
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(fonts/archivo-latin-standard-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:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(fonts/archivo-latin-ext-standard-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-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:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-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+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --navy:#121E44;      /* Dunkelblau aus dem Logo */
  --night:#0B1432;
  --steel:#284B78;     /* Blau der Kopfzeile */
  --sky:#94BEF1;       /* Hellblau aus dem Logo */
  --paper:#F3F6FB;
  --white:#fff;
  --sun:#F3A73B;       /* Abendlicht aus dem Köln-Motiv */
  --ink:#152144;
  --ink-soft:#44506F;
  --on-dark:#D9E3F2;
  --rule:rgba(18,30,68,.14);
  --rule-d:rgba(148,190,241,.22);
  --display:"Archivo","Arial Black","Helvetica Neue",Arial,sans-serif;
  --text:"Inter","Helvetica Neue",Arial,sans-serif;
  --pad:clamp(1.15rem,4.5vw,4.5rem);
  --head-h:104px;
  --ease:cubic-bezier(.2,.75,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head-h) - 20px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,address{margin:0;padding:0}
ul,ol{list-style:none}
address{font-style:normal}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:2px}
::selection{background:var(--sky);color:var(--navy)}
.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:max(var(--pad),env(safe-area-inset-left)) max(var(--pad),env(safe-area-inset-right))}
.skip{position:absolute;left:-999px;top:0;background:var(--sun);color:var(--navy);padding:.8rem 1.2rem;z-index:200;font-weight:700}
.skip:focus{left:.5rem;top:.5rem}

/* ---------- Schrift ---------- */
.display{font-family:var(--display);font-weight:900;font-stretch:108%;line-height:.98;letter-spacing:-.012em;overflow-wrap:break-word;hyphens:manual}
.display .ln,.display .grp{display:block}
.display.nowrap .ln{white-space:nowrap}
h1.display{font-size:clamp(2.2rem,6.6vw,5.4rem)}
h2.display{font-size:clamp(2.05rem,6.2vw,5rem)}
.kicker{font-family:var(--text);font-weight:800;font-size:clamp(.78rem,.72rem + .25vw,.92rem);letter-spacing:.14em;margin-bottom:1.3rem;color:var(--steel)}
.dark .kicker,.night .kicker,.hero .kicker{color:var(--sky)}
.tag{display:inline-flex;align-items:center;gap:.8rem;font-weight:800;font-size:.85rem;letter-spacing:.12em;color:var(--steel)}
.tag::before{content:"";width:2.4rem;height:2px;background:var(--sun)}
.dark .tag{color:var(--sky)}

/* ---------- Kopfzeile ---------- */
.head{position:sticky;top:0;z-index:100;background:var(--steel);color:#fff;transition:box-shadow .3s}
.head.scrolled{box-shadow:0 10px 30px -12px rgba(5,10,30,.55)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--head-h);transition:height .35s var(--ease)}
.logo{display:block;flex:none;line-height:0}
.head .logo img{height:calc(var(--head-h) - 28px);width:auto;transition:height .35s var(--ease)}
.nav{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3.5rem);flex:1;justify-content:flex-end}
.nav ul{display:flex;gap:clamp(1rem,2.2vw,2.4rem)}
.nav ul a{position:relative;display:block;padding:.7rem 0;font-weight:800;font-size:.875rem;letter-spacing:.05em;text-decoration:none;color:#fff;white-space:nowrap}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:.3rem;height:2px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav ul a:hover::after,.nav ul a.on::after{transform:scaleX(1)}
.langs{display:flex;gap:.7rem;align-items:center}
.langs a{display:block;padding:.35rem .15rem .45rem;border-bottom:2px solid transparent;line-height:0;opacity:.85;transition:opacity .2s,transform .2s}
.langs a:hover{opacity:1;transform:translateY(-1px)}
.langs a[aria-current]{border-bottom-color:#fff;opacity:1}
.langs svg{width:30px;height:20px;display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.burger{display:none;flex:none;width:52px;height:52px;margin-right:-10px;border:0;background:none;color:#fff;cursor:pointer;border-radius:8px}
.burger span{display:block;width:28px;height:3px;margin:6px auto;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.menu-open .burger span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
@media (min-width:961px){
  .head.scrolled{--head-h:76px}
}
@media (max-width:960px){
  :root{--head-h:76px}
  .burger{display:block}
  .nav{position:fixed;inset:var(--head-h) 0 0 0;z-index:99;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;background:var(--navy);padding:1.2rem max(var(--pad),env(safe-area-inset-right)) calc(2rem + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .3s,transform .35s var(--ease),visibility 0s .35s}
  .menu-open .nav{visibility:visible;opacity:1;transform:none;transition:opacity .3s,transform .35s var(--ease)}
  .nav ul{flex-direction:column;gap:0}
  .nav ul a{font-family:var(--display);font-weight:900;font-stretch:108%;font-size:clamp(1.5rem,7vw,2.2rem);letter-spacing:0;padding:1rem 0;border-bottom:1px solid var(--rule-d);white-space:normal}
  .nav ul a::after{display:none}
  .nav ul a.on{color:var(--sky)}
  .langs{margin-top:2rem;gap:1.2rem}
  .langs a{padding:.6rem .3rem .7rem}
  .langs svg{width:48px;height:32px}
}
@media (max-width:420px){:root{--head-h:68px}}

/* ---------- Startbild ---------- */
.hero{position:relative;background:linear-gradient(160deg,#16255A 0%,var(--navy) 45%,var(--night) 100%);color:#fff;overflow:hidden}
.hero-lines{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(60% 70% at 82% 55%,rgba(243,167,59,.20),transparent 70%),
  repeating-linear-gradient(102deg,transparent 0 118px,rgba(148,190,241,.07) 118px 120px);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%)}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(2.5rem,5vw,4.5rem) clamp(3rem,6vw,5.5rem)}
.hero h1 .a{color:#fff}
.hero h1 .b{color:var(--sky)}
.hero-copy{margin-top:clamp(1.4rem,2.4vw,2.2rem);display:grid;gap:.9rem;max-width:42rem;color:var(--on-dark);line-height:1.55}
.btn{display:inline-flex;align-items:center;gap:.9rem;margin-top:clamp(1.5rem,2.4vw,2.2rem);padding:1.05rem 1.7rem;min-height:56px;background:var(--sun);color:var(--navy);font-weight:800;font-size:.95rem;letter-spacing:.08em;text-decoration:none;border-radius:999px;transition:transform .3s var(--ease),box-shadow .3s,background .2s}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 36px -14px rgba(243,167,59,.8);background:#FFB851}
.btn svg{flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateY(3px)}
.hero-pic{position:relative;justify-self:end;width:100%;max-width:600px}
.hero-pic::before{content:"";position:absolute;inset:0;border:2px solid var(--sky);transform:translate(clamp(10px,1.6vw,22px),clamp(10px,1.6vw,22px));opacity:.55}
.pic-frame{position:relative;overflow:hidden;aspect-ratio:716/605;background:#1b2b5e;box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.pic-frame img{width:100%;height:100%;object-fit:cover}
.pic-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
@media (max-width:900px){
  .hero-in{grid-template-columns:minmax(0,1fr)}
  .hero-pic{justify-self:center;max-width:560px;margin-right:clamp(10px,1.6vw,22px);width:calc(100% - clamp(10px,1.6vw,22px))}
  .hero-lines{-webkit-mask-image:none;mask-image:none;opacity:.6}
}
/* Auftakt beim Laden: Zeilen der Überschrift, dann das Bild */
@media (prefers-reduced-motion:no-preference){
  .js .hero h1 .ln{opacity:0;transform:translateY(.5em);animation:rise .9s var(--ease) forwards}
  .js .hero h1 .a .ln:nth-child(n+2){animation-delay:.12s}
  .js .hero h1 .b .ln{animation-delay:.3s}
  .js .hero h1 .b .ln:nth-child(n+2){animation-delay:.42s}
  .js .hero .kicker,.js .hero-copy,.js .hero .btn{opacity:0;animation:rise .9s var(--ease) .65s forwards}
  .js .pic-frame{clip-path:inset(0 0 100% 0);animation:unveil 1.2s var(--ease) .35s forwards}
  .js .pic-frame img{transform:scale(1.12);animation:settle 2.4s var(--ease) .35s forwards}
  .js .pic-frame::after{animation:glint 1.6s ease 1.3s forwards}
  .js .hero-pic::before{opacity:0;animation:frame 1s var(--ease) 1.1s forwards}
}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes unveil{to{clip-path:inset(0)}}
@keyframes settle{to{transform:none}}
@keyframes glint{to{transform:translateX(120%)}}
@keyframes frame{from{opacity:0;transform:none}to{opacity:.55}}

/* ---------- Bereiche ---------- */
.sec{padding-block:clamp(4rem,10vw,9rem)}
.light{background:var(--paper);color:var(--ink)}
.dark{background:var(--navy);color:#fff}
.night{background:var(--night);color:#fff}
.dark p,.night p{color:var(--on-dark)}
.split-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:clamp(2.5rem,6vw,5rem)}
.split-head .intro{font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.5;max-width:30rem;padding-bottom:.4rem}
.light .intro{color:var(--ink-soft)}
@media (max-width:860px){.split-head{grid-template-columns:minmax(0,1fr);align-items:start}}

/* ---------- Agentur ---------- */
.agentur-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,7rem);align-items:start}
.sticky{position:sticky;top:calc(var(--head-h) + 2rem)}
.agentur h2{margin-bottom:clamp(1.4rem,3vw,2.4rem)}
.prose{display:grid;gap:1.5rem}
.prose p{max-width:44rem;color:#26314F}
.prose p:first-child{font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem);line-height:1.55;color:var(--ink)}
.prose .statement{margin-top:clamp(1rem,3vw,2.5rem);padding:clamp(1.6rem,4vw,3rem);background:var(--navy);color:#fff;font-family:var(--display);font-weight:800;font-stretch:104%;font-size:clamp(1.3rem,1rem + 1.6vw,2.15rem);line-height:1.22;letter-spacing:-.005em;border-left:6px solid var(--sun);max-width:none}
@media (max-width:900px){.agentur-in{grid-template-columns:minmax(0,1fr)}.sticky{position:static}}

/* ---------- Kompetenzen ---------- */
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule-d);border:1px solid var(--rule-d)}
.field{position:relative;background:var(--navy);padding:clamp(1.6rem,3.5vw,3.2rem);display:grid;gap:1.1rem;align-content:start;transition:background .35s}
.field::after{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.field:hover{background:#18275A}
.field:hover::after{transform:scaleX(1)}
.num{font-family:var(--display);font-weight:900;font-stretch:108%;font-size:clamp(3.2rem,7vw,6rem);line-height:.85;color:transparent;-webkit-text-stroke:1.5px var(--sky);transition:color .35s}
.field:hover .num{color:var(--sky)}
.field h3{font-family:var(--display);font-weight:900;font-stretch:106%;font-size:clamp(1.1rem,.9rem + 1.3vw,1.95rem);line-height:1.08;overflow-wrap:break-word}
.field p{font-size:clamp(1.02rem,.98rem + .2vw,1.12rem)}
@media (max-width:820px){.fields{grid-template-columns:minmax(0,1fr)}}

/* ---------- Referenzen ---------- */
.block{margin-top:clamp(3.2rem,7vw,6.5rem)}
.block-title{font-family:var(--display);font-weight:900;font-stretch:106%;font-size:clamp(1.3rem,1rem + 1.5vw,2.2rem);line-height:1.05;margin-bottom:clamp(1.3rem,3vw,2.4rem);padding-top:1.3rem;border-top:3px solid var(--navy);overflow-wrap:break-word}
.block-title small{font-family:var(--text);font-weight:600;font-size:.55em;color:var(--steel);white-space:nowrap}
.wall{display:flex;flex-wrap:wrap;gap:.55rem .6rem}
.wall li{font-family:var(--display);font-weight:900;font-stretch:108%;font-size:clamp(1.2rem,.8rem + 2.6vw,3.1rem);line-height:1}
.wall span{display:block;padding:.32em .42em;color:var(--navy);background:linear-gradient(var(--sky),var(--sky)) no-repeat 0 0/0% 100%,#fff;border:1px solid var(--rule);transition:background-size .55s var(--ease),border-color .3s}
.wall li.on span,.wall span:hover{background-size:100% 100%,auto;border-color:var(--sky)}
.tv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem)}
.show{background:#fff;padding:clamp(1.4rem,2.6vw,2.2rem);border-bottom:5px solid var(--steel);display:grid;gap:.9rem;align-content:start;box-shadow:0 20px 40px -32px rgba(18,30,68,.5);transition:transform .35s var(--ease),border-color .3s}
.show:hover{transform:translateY(-5px);border-color:var(--sun)}
.show h4{font-family:var(--display);font-weight:900;font-stretch:104%;font-size:clamp(1.12rem,1rem + .55vw,1.4rem);line-height:1.15;overflow-wrap:break-word}
.show p{color:#2B3657;font-size:clamp(1rem,.97rem + .15vw,1.08rem)}
@media (max-width:1000px){.tv{grid-template-columns:minmax(0,1fr)}}

/* Filmstreifen */
.strip{position:relative;background:var(--navy);color:#fff;padding:clamp(1.6rem,4vw,3rem) clamp(2.9rem,6vw,5rem)}
.strip::before,.strip::after{content:"";position:absolute;top:0;bottom:0;width:clamp(12px,1.6vw,18px);background:repeating-linear-gradient(to bottom,transparent 0 12px,var(--paper) 12px 30px,transparent 30px 42px);border-radius:3px;opacity:.9}
.strip::before{left:clamp(.75rem,1.6vw,1.4rem)}
.strip::after{right:clamp(.75rem,1.6vw,1.4rem)}
.films{columns:2;column-gap:clamp(2rem,5vw,5rem)}
.film{break-inside:avoid;padding:.95rem 0;border-bottom:1px solid var(--rule-d)}
.film dt{font-family:var(--display);font-weight:800;font-stretch:104%;font-size:clamp(1.05rem,1rem + .4vw,1.3rem);line-height:1.2;overflow-wrap:break-word}
.film dd{margin-top:.25rem;color:var(--sky);font-size:clamp(.98rem,.95rem + .15vw,1.06rem);line-height:1.45}
.films-more{margin-top:1.4rem;font-family:var(--display);font-weight:800;font-size:clamp(1.05rem,1rem + .4vw,1.3rem);color:var(--sun)!important}
@media (max-width:820px){.films{columns:1}}

/* Unternehmen und Institutionen */
.inst{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:start}
.inst-list li{padding:1.05rem 0;border-bottom:1px solid var(--rule);font-family:var(--display);font-weight:800;font-stretch:104%;font-size:clamp(1.1rem,1rem + .8vw,1.6rem);line-height:1.2;overflow-wrap:break-word}
.inst-list li:first-child{padding-top:0}
.special{background:var(--steel);color:#fff;padding:clamp(1.6rem,3.5vw,2.8rem);display:grid;gap:.9rem;border-left:6px solid var(--sun)}
.special h4{font-family:var(--display);font-weight:900;font-stretch:106%;font-size:clamp(1.4rem,1rem + 1.6vw,2.2rem);line-height:1.05;overflow-wrap:break-word;hyphens:auto}
.special p{color:#E6EEF9}
.special .special-sub{font-weight:700;color:var(--sky);font-size:1.1em}
@media (max-width:860px){.inst{grid-template-columns:minmax(0,1fr)}}

/* ---------- MedienMonitor ---------- */
.mm{overflow:hidden;background:radial-gradient(70% 90% at 78% 50%,#1B2D69 0%,var(--night) 70%)}
.mm-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.mm h2 .b{color:var(--sky)}
.mm h2{margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.mm-text p{max-width:38rem;font-size:clamp(1.08rem,1rem + .35vw,1.25rem)}
.mm-text p + p{margin-top:1.2rem}
.mm-stage{perspective:1400px;display:grid;place-items:center;padding:clamp(.5rem,2vw,2rem)}
.cover{width:min(100%,440px);transform:rotateY(-16deg) rotateX(5deg) rotate(1.5deg);transform-style:preserve-3d;transition:transform .35s ease-out;box-shadow:34px 44px 80px -28px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.12);background:#fff}
.cover img{width:100%}
@media (max-width:860px){.mm-in{grid-template-columns:minmax(0,1fr)}.cover{width:min(78%,360px);transform:rotate(-2.5deg)}}

/* ---------- Kontakt ---------- */
.kontakt h2{margin-bottom:clamp(2.5rem,6vw,5rem)}
.kontakt h2 .ln:nth-child(even){color:var(--sky)}
.kontakt-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,4rem);align-items:stretch}
.kontakt-card{display:flex;flex-direction:column;gap:1.4rem}
.kontakt address{display:grid;gap:.5rem;font-size:clamp(1.1rem,1rem + .4vw,1.3rem);line-height:1.45;color:var(--on-dark)}
.kontakt address strong{font-family:var(--display);font-weight:900;font-stretch:106%;font-size:clamp(1.3rem,1rem + 1.2vw,1.9rem);line-height:1.1;color:#fff}
.reach{display:flex;align-items:center;gap:1rem;min-height:64px;padding:1rem 1.2rem;border:1px solid var(--rule-d);border-radius:10px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:clamp(1.15rem,1rem + 1vw,1.75rem);line-height:1.15;color:#fff;overflow-wrap:anywhere;transition:background .25s,border-color .25s,transform .3s var(--ease)}
.reach svg{flex:none;color:var(--sun)}
.reach:hover{background:rgba(148,190,241,.12);border-color:var(--sky);transform:translateX(4px)}
.map-box{position:relative;min-height:clamp(320px,46vw,480px);border-radius:10px;overflow:hidden;background:#1B2B5E;border:1px solid var(--rule-d)}
#map{position:absolute;inset:0;z-index:0;font-family:var(--text)}
.kc-pin{width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--steel);border:3px solid #fff;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.4)}
.leaflet-container a{color:var(--steel)}
.leaflet-bar a{width:40px!important;height:40px!important;line-height:40px!important;font-size:22px!important}
@media (max-width:900px){.kontakt-in{grid-template-columns:minmax(0,1fr)}}

/* ---------- Fußzeile ---------- */
.foot{background:var(--steel);color:#fff;padding-block:clamp(1.8rem,4vw,3rem) calc(clamp(1.8rem,4vw,3rem) + env(safe-area-inset-bottom))}
.foot-in{display:flex;align-items:center;gap:clamp(1.2rem,3vw,2.5rem);flex-wrap:wrap}
.foot .logo img{height:64px;width:auto}
.foot-id{display:grid;gap:.15rem;margin-right:auto}
.foot-id strong{font-weight:800}
.foot-id span{color:#D6E4F7}
.foot-nav{display:flex;flex-wrap:wrap;gap:.3rem clamp(1rem,2vw,2rem)}
.foot-nav a{display:inline-block;padding:.7rem 0;font-weight:700;text-decoration:none;border-bottom:2px solid transparent;transition:border-color .2s}
.foot-nav a:hover{border-bottom-color:var(--sun)}

/* ---------- Impressum und Datenschutz ---------- */
.legal{min-height:60vh}
.legal-in{max-width:calc(820px + 2*var(--pad))}
.legal h1.display{font-size:clamp(2.2rem,6vw,4.2rem);margin-bottom:.8rem}
.legal-sub{font-size:clamp(1.1rem,1rem + .5vw,1.35rem);color:var(--ink-soft);margin-bottom:2.2rem}
.legal-address{background:#fff;border-left:6px solid var(--steel);padding:clamp(1.2rem,3vw,2rem);line-height:1.75;margin-bottom:2rem;overflow-wrap:anywhere}
.legal h2{font-family:var(--display);font-weight:900;font-stretch:104%;font-size:clamp(1.25rem,1rem + .9vw,1.7rem);line-height:1.15;margin:2.4rem 0 .8rem}
.legal p{max-width:46rem}
.legal-closing{font-weight:600}

/* ---------- Einblenden beim Scrollen ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s var(--ease)}
  .js .rv.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .cover{transform:none}
}
@media print{
  .head{position:static}.burger,.langs,.btn,.map-box{display:none}
  .dark,.night,.hero{background:#fff!important;color:#000!important}
  .dark p,.night p,.hero-copy{color:#000!important}
}

/* ---------- MedienMonitor online beziehen ---------- */
[hidden]{display:none!important}
button,input,textarea{font:inherit;color:inherit}
.offer{grid-column:1/-1;background:#fff;color:var(--ink);padding:clamp(1.4rem,3.5vw,3rem);border-top:6px solid var(--sun);box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.offer-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem 1.2rem;margin-bottom:.8rem}
.offer h3{font-family:var(--display);font-weight:900;font-stretch:106%;font-size:clamp(1.35rem,1rem + 1.5vw,2.2rem);line-height:1.08;color:var(--navy)}
.night .offer p,.offer p{color:var(--ink)}
.night .offer .price,.price{padding:.5em 1.1em;border-radius:999px;background:var(--sun);color:var(--navy);font-weight:800;white-space:nowrap}
.night .offer .offer-text{color:var(--ink-soft);margin-bottom:1.4rem;max-width:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.order-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.f{display:grid;gap:.35rem}
.f.wide{grid-column:1/-1}
.f label{font-weight:700;font-size:.98rem;color:var(--navy)}
.f input,.f textarea{width:100%;min-height:54px;padding:.75rem 1rem;border:2px solid #AEBBD6;border-radius:4px;background:var(--paper);font-size:1.05rem;line-height:1.4;transition:border-color .2s,box-shadow .2s,background .2s}
.f textarea{resize:vertical;min-height:120px}
.f input:focus,.f textarea:focus{outline:0;border-color:var(--steel);background:#fff;box-shadow:0 0 0 4px rgba(243,167,59,.45)}
.f input.invalid{border-color:#C0392B;background:#FFF5F4}
.night .offer .order-note{margin-top:1rem;font-size:.92rem;color:var(--ink-soft);max-width:none}
.order-note a{color:var(--steel);font-weight:700}
.order .btn{margin-top:1.1rem;border:0;cursor:pointer}
.btn:disabled{opacity:.6;cursor:progress}
.night .offer .order-msg{margin-top:1rem;padding:1rem 1.2rem;font-weight:700;max-width:none}
.night .offer .order-msg.ok{background:#E5F6EC;color:#14653A;border:2px solid #A9DDBF}
.night .offer .order-msg.bad{background:#FDECEA;color:#A5281F;border:2px solid #F3B7B1}
@media (max-width:560px){.order-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- Design-Umschalter (nur solange die Auswahl offen ist) ---------- */
.design-switch{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;gap:.25rem;padding:.3rem;border-radius:999px;background:#fff;color:#121E44;font:700 .88rem/1 "Inter",Arial,sans-serif;box-shadow:0 10px 30px -8px rgba(10,20,50,.55),0 0 0 1px rgba(18,30,68,.12)}
.design-switch span{padding:0 .5rem 0 .8rem}
.design-switch a{display:block;padding:.7rem 1rem;border-radius:999px;text-decoration:none;color:#121E44;min-height:40px}
.design-switch a:hover{background:#E6F0FD}
.design-switch a[aria-current]{background:#121E44;color:#fff}
@media (max-width:560px){.design-switch span{display:none}.design-switch a{padding:.7rem .7rem;font-size:.82rem}}
@media print{.design-switch{display:none}}

.stepper{display:none}
