/* Esch Erdbau & Abbruch – Stylesheet */

@font-face{font-family:"Wix Madefor Display";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/wix-madefor-display.woff2") format("woff2")}
@font-face{font-family:"Wix Madefor Text";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/wix-madefor-text.woff2") format("woff2")}
@font-face{font-family:"Heebo";font-style:normal;font-weight:300 500;font-display:swap;src:url("../fonts/heebo.woff2") format("woff2")}

:root{
  --black:#000;
  --white:#fff;
  --beige:#f1dccc;
  --grey:#f0f0f0;
  --f-display:"Wix Madefor Display",Helvetica,Arial,sans-serif;
  --f-text:"Wix Madefor Text",Helvetica,Arial,sans-serif;
  --page:1440px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--black);font-family:var(--f-display);font-size:16px;line-height:1.4;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--beige);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 44px;border:1px solid var(--white);border-radius:26px;background:var(--beige);color:var(--black);font-family:var(--f-text);font-size:15px;font-weight:700;text-decoration:none;line-height:1;transition:background .25s,color .25s,transform .25s}
.btn:hover{background:var(--white)}
.btn--lg{font-size:20px;padding:0 44px}
.btn--ghost{height:24px;padding:0 16px;border:2px solid var(--white);background:transparent;color:var(--white);font-family:var(--f-display);font-size:16px;border-radius:20px;width:120px;padding:0}
.btn--ghost:hover{background:var(--white);color:var(--black)}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:50;height:131px;background:linear-gradient(#000 40%,rgba(243,248,240,0));transition:transform .4s ease}
.header.is-hidden{transform:translateY(-100%)}
.header__inner{position:relative;max-width:var(--page);height:100%;margin:0 auto}
.header__logo{position:absolute;left:62px;top:36px;width:235px}
.header__logo img{width:235px;height:auto}
.nav{position:absolute;left:635px;top:41px;width:572px;height:43px}
.nav ul{display:flex;height:100%;align-items:center;justify-content:flex-end;gap:33px;padding:0}
.nav a{display:block;padding:8px 0;font-family:var(--f-display);font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;color:var(--white);transition:opacity .2s}
.nav a:hover{opacity:.7}
.header__cta{position:absolute;left:1250px;top:42px;display:flex;align-items:center;justify-content:center;width:120px;height:40px;border-radius:20px;background:var(--beige);color:var(--black);font-family:var(--f-display);font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;transition:background .25s}
.header__cta:hover{background:var(--white)}
.burger{display:none;position:absolute;top:9px;right:21px;width:50px;height:50px;padding:0;border:0;background:none}
.burger span{position:absolute;left:15px;width:20px;height:2px;background:var(--white);transition:transform .3s,opacity .3s}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:24px}.burger span:nth-child(3){top:29px}

.drawer{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}
.drawer__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.8);opacity:0;transition:opacity .3s}
.drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(300px,86vw);background:var(--beige);transform:translateX(100%);transition:transform .35s ease;padding:100px 0 0}
.drawer.is-open{visibility:visible;pointer-events:auto}
.drawer.is-open .drawer__backdrop{opacity:1}
.drawer.is-open .drawer__panel{transform:none}
.drawer a{display:block;padding:14px 0;text-align:center;font-family:var(--f-display);font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;color:var(--black)}
.drawer__close{position:absolute;top:40px;right:22px;width:24px;height:24px;padding:0;border:0;background:none}
.drawer__close::before,.drawer__close::after{content:"";position:absolute;left:2px;top:11px;width:20px;height:2px;background:var(--black);transform:rotate(45deg)}
.drawer__close::after{transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;height:818px;background:var(--black);color:var(--white);overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:540px;background:linear-gradient(0deg,#000,rgba(243,248,240,0))}
.hero__inner{position:absolute;z-index:2;left:0;right:0;bottom:93px;max-width:var(--page);margin:0 auto;padding:0 76px}
.hero h1{font-family:var(--f-display);font-size:63px;font-weight:700;line-height:69px;max-width:752px}
.hero p{margin-top:11px;max-width:664px;font-family:var(--f-text);font-size:22.5px;font-weight:500;line-height:31.5px}
.hero__btns{display:flex;gap:36px;margin-top:17px}

/* ---------- Service icons ---------- */
.section{position:relative;background:var(--black);color:var(--white)}
.icons{padding:47px 0 69px}
.icons__grid{display:grid;grid-template-columns:repeat(5,1fr);max-width:1440px;margin:0 auto;padding:0 6px 0 70px}
.card{display:flex;flex-direction:column;align-items:center;min-height:331px;padding:0 14px}
.card img{width:177px;height:118px;object-fit:cover;margin-top:39px}
.card p{display:flex;align-items:flex-start;justify-content:center;width:calc(100% + 12px);margin:5px -6px 0;min-height:44px;padding:0;font-family:var(--f-text);font-size:20px;font-weight:600;line-height:22px;text-align:center}
.card .btn--ghost{margin-top:23px;flex:none;display:inline-flex;align-items:center;justify-content:center}
.card__text{margin-top:23px}

/* ---------- Gallery ---------- */
.gallery{padding:77px 0 75px;overflow:hidden}
.gallery__track{display:flex;gap:32px;width:max-content;animation:marquee 240s linear infinite}
.gallery:hover .gallery__track{animation-play-state:paused}
.gallery__track img{flex:none;height:311px;width:auto;max-width:none}
.gallery__track img:first-child{margin-left:0}
@keyframes marquee{to{transform:translateX(calc(-50% - 16px))}}

/* ---------- Services ---------- */
.service{padding:81px 0}
.service__inner{display:grid;grid-template-columns:minmax(0,530fr) minmax(0,675fr);column-gap:79px;align-items:center;max-width:var(--page);margin:0 auto;padding:0 45px 0 111px}
.service__text h2{font-family:var(--f-display);font-size:27px;font-weight:700;line-height:34px}
.service__text p{margin-top:21px;font-family:var(--f-display);font-size:20px;font-weight:500;line-height:25px}
.service__text p+p{margin-top:25px}
.service__text .btn{margin-top:24px;width:160px;padding:0}
.service__img{position:relative;aspect-ratio:675/497;box-shadow:0 0 26px 2px rgba(255,255,255,.42)}
.service__img img{width:100%;height:100%;object-fit:cover}

/* ---------- Übergang & Über uns ---------- */
.fade-to-beige{height:306px;background:linear-gradient(#000 31.4%,var(--beige))}
.about{background:var(--beige);color:var(--black);padding:59px 0;min-height:678px}
.about__inner{display:grid;grid-template-columns:minmax(0,634fr) minmax(0,530fr);column-gap:86px;max-width:var(--page);margin:0 auto;padding:0 124px 0 66px;align-items:start}
.about__img img{width:100%;height:auto;aspect-ratio:634/499;object-fit:cover}
.about__logo{display:flex;align-items:center;justify-content:center;width:265px;height:90px;margin-top:21px;background:#000;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.about__logo img{width:223px;height:auto}
.about h2{margin-top:45px;font-family:var(--f-display);font-size:27px;font-weight:700;line-height:34px}
.about p{margin-top:25px;font-family:var(--f-display);font-size:20px;font-weight:500;line-height:25px}
.about h2+p{margin-top:20px}
.about p strong{font-weight:700}

/* ---------- FAQ & Kontakt ---------- */
.faq{position:relative;background:var(--beige);color:var(--black);padding:61px 0 0;min-height:1009px}
.faq::after{content:"";position:absolute;left:0;right:0;bottom:0;height:239px;background:linear-gradient(0deg,#000,rgba(243,248,240,0));pointer-events:none}
.faq__inner{display:grid;grid-template-columns:minmax(0,618fr) minmax(0,608fr);column-gap:135px;max-width:var(--page);margin:0 auto;padding:0 46px 0 33px;position:relative;z-index:1}
.faq__left{padding:18px 32px 0}
.faq h2{font-family:var(--f-display);font-size:32px;font-weight:700;line-height:38px;padding-top:32px}
.faq__tab{display:inline-block;margin:38px 0 0 17px;padding:0 0 3px 0;font-family:var(--f-text);font-size:16px;line-height:24px;position:relative}
.faq__tab::after{content:"";position:absolute;left:-17px;right:-17px;bottom:-9px;height:2px;background:#000}
.faq__list{margin-top:53px;padding-bottom:20px}
.faq__item{margin-bottom:12px;border:1px solid #000}
.faq__q{display:flex;align-items:stretch;width:100%;padding:0;border:0;background:none;text-align:left}
.faq__num{display:flex;flex:none;align-items:center;justify-content:center;width:100px;min-height:98px;background:#000;color:#fff;font-family:var(--f-text);font-size:20px;line-height:24px}
.faq__title{display:flex;flex:1;align-items:center;justify-content:space-between;gap:20px;padding:12px 26px 12px 32px;font-family:var(--f-text);font-size:20px;font-weight:400;line-height:24px}
.faq__h{margin:0;font:inherit}
.faq__t{display:block;max-width:350px}
.faq__title svg{flex:none;width:30px;height:30px;transition:transform .3s}
.faq__item.is-open .faq__title svg{transform:rotate(180deg)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.faq__item.is-open .faq__a{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 26px 22px 132px;font-family:var(--f-text);font-size:16px;line-height:24px}

.contact{padding:74px 24px 24px}
.contact h2{padding:0;font-size:43px;line-height:64.5px;margin-top:0}
.form{margin-top:24px;max-width:558px}
.form label:not(.check),.form legend{display:block;font-family:var(--f-text);font-size:14px;line-height:19.6px}
.form .field{margin-bottom:24px}
.form .row{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{display:block;width:100%;margin-top:8px;padding:8px 12px;border:0;border-radius:6px;background:#fff;color:#000;font-family:var(--f-text);font-size:16px;line-height:24px}
.form input[type=text],.form input[type=email]{height:40px}
.form textarea{height:96px;resize:none}
.phone{display:flex;align-items:center;margin-top:8px;border-radius:6px;background:#fff;height:40px}
.phone .flag{display:flex;align-items:center;gap:4px;padding:0 10px 0 12px;font-size:12px}
.phone .flag img{width:22px;height:14px}
.phone input{margin-top:0!important;height:40px!important;padding-left:4px!important;background:transparent!important}
.form fieldset{margin:0 0 26px;padding:0;border:0}
.form legend{padding:0 0 12px}
.checks{display:grid;grid-template-columns:1fr 1fr;row-gap:12px;column-gap:0}
.check{display:flex;align-items:center;gap:8px;font-family:var(--f-text);font-size:16px;line-height:24px;cursor:pointer}
.check input{appearance:none;flex:none;width:16px;height:16px;margin:0;border:1px solid #000;border-radius:2px;background:transparent;cursor:pointer;display:grid;place-content:center}
.check input:checked{background:#000}
.check input:checked::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.form .privacy{margin:14px 0 20px;font-size:14px}
.form .privacy .check{font-size:14px;line-height:20px}
.form .privacy a{text-decoration:underline}
.form__submit{width:267px;height:41px;border:0;background:#000;color:#fff;font-family:var(--f-text);font-size:16px;transition:background .25s,color .25s}
.form__submit:hover{background:#fff;color:#000}
.form__submit:disabled{opacity:.6;cursor:wait}
.form__msg{margin-top:14px;font-family:var(--f-text);font-size:15px;line-height:22px;min-height:22px}
.form__msg.is-error{color:#a30000}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Footer ---------- */
.footer{position:relative;background:#000;color:#fff}
.footer__top{position:relative;height:600px;max-width:var(--page);margin:0 auto}
.footer__logo{position:absolute;left:50%;top:63px;transform:translateX(-50%);width:460px}
.footer__cols{position:absolute;left:298px;top:237px;display:grid;grid-template-columns:368px 280px;font-family:var(--f-text)}
.footer h2{margin:0;font-family:var(--f-text);font-size:20px;font-weight:700;line-height:32px;text-transform:uppercase}
.footer__col p,.footer__col a{display:block;font-size:13.2px;line-height:17px;color:var(--grey);text-decoration:none}
.footer__col .gap{margin-top:12px}
.footer__col--info div{margin-top:26px}
.footer__col--info a:hover,.footer__nav a:hover{text-decoration:underline}
.footer__nav{margin-top:26px}
.footer__nav a{font-weight:700;font-size:13.1px;margin-bottom:19px}
.footer__deco{position:absolute;right:16px;top:496px;width:103px;height:auto}
.footer__bar{position:relative;height:100px;border-top:1px solid var(--beige);background:#000;font-family:var(--f-text);font-size:13.2px}
.footer__bar-inner{position:relative;max-width:var(--page);height:100%;margin:0 auto}
.footer__legal{position:absolute;left:55px;top:35px;display:flex;gap:19px}
.footer__legal a{text-decoration:none}
.footer__legal a:hover{text-decoration:underline}
.footer__copy{position:absolute;right:54px;top:28px;text-align:right;line-height:21px}
.footer__copy a{font-weight:700}

/* ---------- Legal pages ---------- */
.page-legal{background:#fff}
.legal-wrap{padding:185px 20px 110px}
.legal{max-width:1268px;margin:0 auto;padding:69px 89px 80px;background:#fff;border-radius:22px;box-shadow:0 0 22px rgba(0,0,0,.18);font-family:"Heebo",Helvetica,Arial,sans-serif;font-size:17px;line-height:27.2px}
.legal h1{margin:0 0 30px;padding-bottom:26px;border-bottom:1px solid #d6d6d6;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;font-size:45px;line-height:54px}
.legal h2{margin:24px 0 0;font-size:17px;font-weight:500}
.legal p{margin:0;min-height:27.2px;white-space:pre-wrap;overflow-wrap:anywhere}
.legal a{color:#000;text-decoration:underline;word-break:break-word}
.legal a[href^="mailto"],.legal a[href^="tel"]{text-decoration:none}
.legal-page-footer .footer__top{height:auto}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .gallery__track{animation:none}
}

/* ---------- Tablet ---------- */
@media (max-width:1180px){
  .nav{left:auto;right:170px;width:auto}
  .nav ul{gap:22px}
  .header__cta{left:auto;right:70px}
  .header__logo{left:40px}
  .service__inner{padding-left:60px;padding-right:40px}
  .footer__cols{left:50%;transform:translateX(-50%);width:max-content;column-gap:60px;grid-template-columns:auto auto}
}

/* ---------- Mobile ---------- */
@media (max-width:1000px){
  .nav{display:none}
  .header__cta{left:auto;right:80px;top:21px;width:81px;height:27px;font-size:12px;font-weight:400}
  .burger{display:block}
  .header{height:65px}
  .header__logo{left:21px;top:18px;width:134px}
  .header__logo img{width:134px}
  .hero{height:720px}
  .hero::after{height:500px}
  .hero__inner{padding:0 31px;bottom:69px}
  .hero h1{font-size:33px;line-height:36.5px}
  .hero p{margin-top:20px;font-size:18px;line-height:21.5px;max-width:331px}
  .hero__btns{gap:20px;margin-top:20px}
  .btn--lg{font-size:18px;padding:0 24px;height:52px}
  .icons{padding:0 0 38px}
  .icons__grid{grid-template-columns:1fr;max-width:390px;padding:0 31px}
  .card{padding:0;min-height:0;height:243px;justify-content:flex-start;margin-bottom:2px}
  .card img{margin-top:0}
  .card p{width:100%;margin:2px 0 0;min-height:44px}
  .card .btn--ghost{margin-top:12px}
  .gallery{display:none}
  .service{padding:60px 0 40px}
  .service__inner{grid-template-columns:1fr;row-gap:30px;padding:0 30px}
  .service__text h2{font-size:26px;line-height:33px}
  .service__text p{font-size:18px;line-height:22.6px;margin-top:35px}
  .service__text p+p{margin-top:22px}
  .service__text .btn{margin-top:20px}
  .service__img{aspect-ratio:330/325}
  .fade-to-beige{height:118px}
  .about{padding:60px 0 50px;min-height:0}
  .about__inner{grid-template-columns:1fr;padding:0 31px;row-gap:40px}
  .about__img img{aspect-ratio:328/258}
  .about__logo{width:164px;height:52px;margin-top:0}
  .about__logo img{width:138px}
  .about h2{margin-top:21px;font-size:22px;line-height:28px}
  .about p{font-size:18px;line-height:22.5px;margin-top:23px}
  .about h2+p{margin-top:19px}
  .faq{min-height:0;padding-top:30px;padding-bottom:0}
  .faq__inner{grid-template-columns:1fr;padding:0 26px;row-gap:30px}
  .faq__left{padding:5px 16px 0}
  .faq h2{font-size:24px;line-height:29px;padding-top:0}
  .faq__q{flex-direction:column}
  .faq__num{width:100%;min-height:61px;justify-content:flex-start;padding-left:20px;font-size:20px}
  .faq__title{padding:20px 14px 22px 20px;gap:6px}
  .faq__title svg{width:24px;height:24px}
  .faq__t{max-width:none}
  .faq__a p{padding:0 20px 22px 20px}
  .contact{padding:0 16px 210px}
  .contact .form .row{grid-template-columns:1fr}
  .contact .form .row>div+div{margin-top:24px}
  .checks{grid-template-columns:1fr}
  .footer__top{height:auto;padding:31px 0 30px}
  .footer__logo{position:static;transform:none;margin:0 auto;width:312px}
  .footer__cols{position:static;transform:none;display:block;width:auto;margin-top:40px;text-align:center}
  .footer__cols>div{margin-bottom:28px}
  .footer__col p,.footer__col a{font-size:15px;line-height:19px}
  .footer__nav a{font-size:15px;margin-bottom:15px}
  .footer__col--info div{margin-top:20px}
  .footer__deco{right:6px;top:auto;bottom:0;width:80px}
  .footer__bar{height:106px}
  .footer__legal{left:15px;top:16px;flex-direction:column;gap:4px}
  .footer__copy{left:154px;right:24px;top:16px;font-size:14px}
  .legal-wrap{padding:110px 12px 60px}
  .legal{padding:28px 20px 40px;font-size:15px;line-height:23px}
  .legal h1{font-size:32px;line-height:40px}
}

/* ---------- Datenschutz-Banner (Übersicht + Einstellungen, Aufbau wie bei bohr.media, Farben nach Esch-CI) ----------
   Klassen bewusst ohne „cookie“: Werbeblocker blenden solche Container sonst aus.
   „Alles akzeptieren“ und „Ablehnen“ sind gleich gestaltet, keiner von beiden ist hervorgehoben. */
.priv-modal {
  --pv-bg: #0d0d0d;
  --pv-foot: #1c1c1c;
  --pv-line: rgba(255,255,255,0.16);
  --pv-accent: var(--beige);
  --pv-accent-hover: #fff;
  --pv-accent-text: #0d0d0d;
  position: fixed;
  inset: 0;
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  font-family: var(--f-text);
}
.priv-modal.is-visible { display: flex; }
.priv-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.priv-modal__card {
  position: relative; display: flex; flex-direction: column;
  width: min(600px, 100%); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: hidden;
  background: var(--pv-bg); color: #fff; border: 1px solid var(--pv-line);
  border-radius: 16px; box-shadow: 0 24px 60px rgba(0,0,0,0.35);
  animation: priv-ein .25s ease;
}
@keyframes priv-ein { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.priv-modal__card:focus { outline: none; }
.priv-head { flex: none; margin: 0 32px; padding: 26px 0 18px; border-bottom: 1px solid var(--pv-line); text-align: center; }
.priv-h { margin: 0; color: #fff; font-size: 1.35rem; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; }
.priv-panel { display: none; }
.priv-panel.is-active { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 20px 32px 24px; }
.priv-scroll { min-height: 0; overflow-y: auto; padding-right: 8px; font-size: .9rem; line-height: 1.6; color: rgba(255,255,255,0.88); }
.priv-scroll::-webkit-scrollbar { width: 8px; }
.priv-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.5); border-radius: 4px; }
.priv-scroll p { margin: 0; font-size: inherit; line-height: inherit; color: inherit; }
.priv-scroll p + p { margin-top: .8em; }
.priv-scroll a { color: #fff; text-decoration: underline; }
.priv-scroll a:hover { color: var(--beige); }
.priv-cat {
  position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
  padding: 14px 0; border-bottom: 1px solid var(--pv-line);
  font-size: .82rem; line-height: 1.55; color: rgba(255,255,255,0.72); cursor: pointer;
}
.priv-cat:first-child { padding-top: 0; }
.priv-cat b { display: block; margin-bottom: 2px; color: #fff; font-size: .95rem; font-weight: 600; }
.priv-cat input { position: absolute; opacity: 0; width: 0; height: 0; }
.priv-cat i { position: relative; flex: none; width: 46px; height: 26px; margin-top: 2px; border-radius: 26px; background: #000; border: 1px solid var(--pv-line); transition: background .15s ease, border-color .15s ease; }
.priv-cat i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .15s ease, background .15s ease; }
.priv-cat input:checked + i { background: var(--pv-accent); border-color: var(--pv-accent); }
.priv-cat input:checked + i::after { transform: translateX(20px); background: #0d0d0d; }
.priv-cat input:disabled + i { opacity: .6; }
.priv-cat input:focus-visible + i { outline: 2px solid #fff; outline-offset: 3px; }
.priv-actions { flex: none; display: grid; gap: 12px; margin-top: 22px; }
.priv-btn {
  border: none; border-radius: 999px; background: var(--pv-accent); color: var(--pv-accent-text); cursor: pointer;
  font: inherit; font-size: .95rem; font-weight: 700; line-height: 1.3; padding: 14px 20px; transition: background .15s ease;
}
.priv-btn:hover { background: var(--pv-accent-hover); }
.priv-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* „Individuelle Einstellungen“ schlichter: Akzeptieren und Ablehnen bleiben gleich auffällig */
.priv-btn--rahmen { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.7); }
.priv-btn--rahmen:hover { background: rgba(255,255,255,0.08); }
.priv-foot { flex: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 36px; padding: 16px 24px; background: var(--pv-foot); font-size: .85rem; line-height: 1.4; }
.priv-foot a, .priv-foot button { color: rgba(255,255,255,0.75); background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: none; }
.priv-foot a:hover, .priv-foot button:hover { color: #fff; text-decoration: underline; }
.priv-foot a:focus-visible, .priv-foot button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.priv-foot [hidden] { display: none; }
/* Handy: Fenster als Blatt von unten, alles passt in den Bildschirm */
@media (max-width: 640px) {
  .priv-modal { align-items: flex-end; padding: 0; }
  .priv-modal__card { width: 100%; max-height: 92vh; max-height: 92dvh; border-radius: 20px 20px 0 0; border-bottom: 0; }
  .priv-head { margin: 0 18px; padding: 18px 0 14px; }
  .priv-h { font-size: 1.15rem; }
  .priv-panel.is-active { padding: 14px 18px 16px; }
  .priv-scroll { font-size: .86rem; line-height: 1.55; }
  .priv-actions { gap: 8px; margin-top: 14px; }
  .priv-btn { padding: 13px 16px; font-size: .92rem; }
  .priv-foot { gap: 6px 24px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); font-size: .8rem; }
}

/* ---------- Platzhalter für externe Inhalte (erst nach Einwilligung "Funktionell") ---------- */
.consent-gate{position:relative;background:var(--grey);border-radius:8px;overflow:hidden}
.consent-gate iframe{display:block;width:100%;height:100%;border:0}
.consent-gate__note{padding:24px;font-family:var(--f-text);font-size:15px;line-height:22px}
.consent-gate.is-loaded .consent-gate__note{display:none}

/* ---------- 404 ---------- */
.page-404{background:#000;color:#fff}
.nf{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 20px;text-align:center}
.nf__logo img{width:235px;height:auto}
.nf__code{margin:0;font-family:var(--f-text);font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--beige)}
.nf h1{margin:0;font-size:clamp(32px,6vw,56px);line-height:1.1;font-weight:700}
.nf__text{margin:0;font-family:var(--f-text);font-size:17px;line-height:26px}
.nf__btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:12px}
.nf__btns .btn{padding:0 32px}
