/* ==========================================================================
   ATM RATH · KONZ — Stylesheet
   Autoverwertung · KFZ-Ersatzteile · Altmetall-Ankauf · Containerdienst · Entsorgungen
   --------------------------------------------------------------------------
    1. Tokens              7. Home: hero & quick actions   13. Rules & steps
    2. Reset / base        8. Service cards                14. Gallery & lightbox
    3. Utilities           9. Split & media                15. Contact, map, forms
    4. Buttons            10. Hotline band & CTA           16. Legal & sitemap
    5. Top bar & header   11. Page hero & breadcrumb       17. Footer
    6. Navigation         12. Sidebar layout & content     18. Responsive
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root{
  --red:      #d3121b;   /* signal red */
  --red-dark: #a50d14;
  --red-deep: #6d0a0f;
  --red-soft: #fdecec;
  --ink:      #121214;   /* near black */
  --char:     #1c1c20;   /* charcoal */
  --char-2:   #26262b;
  --steel:    #3a3a41;
  --muted:    #6b6b73;
  --line:     #e3e3e6;
  --paper:    #f4f4f5;
  --white:    #ffffff;

  --display: 'Oswald', 'Arial Narrow', sans-serif;
  --body:    'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --container: 1240px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --radius: 3px;
  --shadow: 0 24px 48px -28px rgba(0,0,0,.55);
  --shadow-s: 0 10px 22px -14px rgba(0,0,0,.45);
  --header-h: 84px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

/* 2. Reset / base ---------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
body{
  margin:0; font-family:var(--body); font-size:18px; line-height:1.6;
  color:var(--char); background:var(--white); -webkit-font-smoothing:antialiased;
}
body.nav-open,body.lb-open{ overflow:hidden; }
img,svg{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; }
p{ margin:0 0 1em; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
address{ font-style:normal; }
h1,h2,h3,h4{
  margin:0; font-family:var(--display); font-weight:600; line-height:1.05;
  letter-spacing:.005em; text-transform:uppercase; color:var(--ink);
}
h1{ font-size:clamp(2.5rem,6vw,4.6rem); font-weight:700; }
h2{ font-size:clamp(1.9rem,3.8vw,3rem); }
h3{ font-size:clamp(1.25rem,1.8vw,1.5rem); }
h4{ font-size:1.1rem; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; }
::selection{ background:var(--red); color:#fff; }
:focus-visible{ outline:3px solid var(--red); outline-offset:3px; }
.bg-dark :focus-visible,.hero :focus-visible,.site-footer :focus-visible{ outline-color:#fff; }

.skip-link{ position:absolute; left:1rem; top:-80px; z-index:300; background:var(--red); color:#fff; font-weight:700; padding:.7rem 1.1rem; transition:top .2s; }
.skip-link:focus{ top:1rem; }

/* 3. Utilities ------------------------------------------------------------- */
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.section{ padding:clamp(4rem,9vw,7rem) 0; }
.section-s{ padding:clamp(3rem,6vw,4.5rem) 0; }
.bg-paper{ background:var(--paper); }
.bg-dark{ background:var(--char); color:rgba(255,255,255,.78); }
.bg-dark h2,.bg-dark h3,.bg-dark h4{ color:#fff; }

.kicker{
  display:inline-flex; align-items:center; gap:.7rem; margin-bottom:1rem;
  font-family:var(--display); font-weight:500; font-size:.9rem; letter-spacing:.18em; text-transform:uppercase; color:var(--red);
}
.kicker::before{ content:''; width:28px; height:4px; background:currentColor; transform:skewX(-30deg); }
.bg-dark .kicker,.hero .kicker,.page-hero .kicker,.band .kicker{ color:#ff5a5f; }

.lead{ font-size:clamp(1.1rem,1.6vw,1.3rem); line-height:1.55; color:var(--steel); }
.bg-dark .lead{ color:rgba(255,255,255,.75); }
.muted{ color:var(--muted); }
.small{ font-size:.9rem; }
.section-head{ max-width:760px; margin-bottom:clamp(2rem,4vw,3rem); }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head .lead{ margin-top:1rem; }
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem 2rem; flex-wrap:wrap; margin-bottom:clamp(2rem,4vw,3rem); }
.head-row .section-head{ margin-bottom:0; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.red{ color:var(--red); }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .75s var(--ease), transform .75s var(--ease); }
.reveal.in-view{ opacity:1; transform:none; }
.no-js .reveal{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.08s; }
.reveal[data-delay="2"]{ transition-delay:.16s; }
.reveal[data-delay="3"]{ transition-delay:.24s; }
.reveal[data-delay="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* 4. Buttons --------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  min-height:52px; padding:.8rem 1.5rem; border:2px solid transparent; border-radius:var(--radius);
  font-family:var(--display); font-weight:500; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap;
  transition:background .2s, color .2s, border-color .2s;
}
.btn svg{ width:18px; height:18px; transition:transform .25s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn-red{ background:var(--red); color:#fff; }
.btn-red:hover{ background:var(--red-dark); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:var(--steel); }
.btn-white{ background:#fff; color:var(--ink); }
.btn-white:hover{ background:var(--ink); color:#fff; }
.btn-line{ border-color:var(--ink); color:var(--ink); }
.btn-line:hover{ background:var(--ink); color:#fff; }
.bg-dark .btn-line,.hero .btn-line,.band .btn-line,.cta .btn-line{ border-color:rgba(255,255,255,.45); color:#fff; }
.bg-dark .btn-line:hover,.hero .btn-line:hover,.band .btn-line:hover,.cta .btn-line:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.btn-row{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.link-arrow{
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:var(--display); font-weight:500; font-size:.95rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red);
}
.link-arrow svg{ width:18px; height:18px; transition:transform .25s var(--ease); }
.link-arrow:hover svg,a:hover .link-arrow svg{ transform:translateX(5px); }

/* 5. Header ---------------------------------------------------------------- */

.site-header{ position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--line); transition:box-shadow .3s; }
.site-header.is-stuck{ box-shadow:0 10px 30px -18px rgba(0,0,0,.35); }
.header-inner{ display:flex; align-items:center; gap:1.5rem; min-height:var(--header-h); }
.brand{ display:flex; align-items:center; gap:.8rem; flex:none; }
.brand-mark{ width:54px; height:54px; flex:none; }
.brand-logo{ display:block; height:64px; width:auto; }
.brand-logo-footer{ height:auto; width:200px; max-width:100%; }
.brand-text{ display:flex; flex-direction:column; line-height:1; }
.brand-name{ font-family:var(--display); font-weight:700; font-size:1.6rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); }
.brand-name b{ color:var(--red); font-weight:700; }
.brand-sub{ margin-top:.35rem; font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }

/* 6. Navigation ------------------------------------------------------------ */
.main-nav{ margin-left:auto; }
.main-nav > ul{ display:flex; align-items:center; gap:.1rem; }
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-link{
  position:relative; display:inline-flex; align-items:center; gap:.3rem; padding:.6rem .7rem; white-space:nowrap;
  font-family:var(--display); font-weight:500; font-size:1rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink);
  transition:color .2s;
}
.nav-link:hover,.nav-item:focus-within > .nav-link,.nav-item.is-open > .nav-link,.nav-link.is-active{ color:var(--red); }
.nav-link.is-active::after{ content:''; position:absolute; left:.8rem; right:.8rem; bottom:-.15rem; height:3px; background:var(--red); }
.nav-caret{ width:14px; height:14px; transition:transform .25s; }
.nav-item:hover .nav-caret,.nav-item.is-open .nav-caret{ transform:rotate(180deg); }
.sub-toggle{ display:none; }

.submenu{
  position:absolute; top:calc(100% + 12px); left:0; min-width:260px; padding:.6rem;
  background:var(--char); box-shadow:var(--shadow); border-top:3px solid var(--red);
  opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s, transform .2s var(--ease), visibility .2s;
}
.submenu::before{ content:''; position:absolute; left:0; right:0; top:-16px; height:16px; }
.nav-item:hover > .submenu,.nav-item:focus-within > .submenu,.nav-item.is-open > .submenu{ opacity:1; visibility:visible; transform:none; }
.submenu a{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.62rem .85rem;
  color:rgba(255,255,255,.82); font-weight:600; font-size:.98rem; transition:background .2s, color .2s;
}
.submenu a::after{ content:'›'; font-size:1.2rem; line-height:1; color:var(--red); opacity:0; transform:translateX(-4px); transition:all .2s; }
.submenu a:hover,.submenu a:focus-visible{ background:rgba(255,255,255,.06); color:#fff; }
.submenu a:hover::after{ opacity:1; transform:none; }
.submenu a[aria-current="page"]{ color:#fff; background:rgba(211,18,27,.18); }
.submenu .sub-head{ display:block; padding:.55rem .85rem .3rem; font-family:var(--display); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:#ff5a5f; }
.submenu.mega{ display:grid; grid-template-columns:1fr 1fr 1.05fr; gap:.4rem 1rem; min-width:720px; left:-120px; }
.submenu .sub-card{ grid-row:span 2; display:flex; flex-direction:column; justify-content:flex-end; min-height:190px; padding:1.1rem; position:relative; overflow:hidden; background:var(--ink); }
.submenu .sub-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; transition:opacity .3s, transform .5s var(--ease); }
.submenu .sub-card:hover img{ opacity:.3; transform:scale(1.05); }
.submenu .sub-card span{ position:relative; font-family:var(--display); font-size:1.25rem; text-transform:uppercase; color:#fff; }
.submenu .sub-card small{ position:relative; display:block; font-size:.85rem; color:rgba(255,255,255,.75); font-weight:400; }
.submenu .sub-card::after{ display:none; }

.header-cta{ display:flex; align-items:center; gap:.8rem; }
.header-cta .btn{ min-height:46px; padding:.55rem 1.1rem; font-size:.95rem; }
.nav-toggle{ display:none; width:48px; height:48px; border:0; background:var(--red); border-radius:var(--radius); position:relative; }
.nav-toggle span{ position:absolute; left:13px; right:13px; height:2px; background:#fff; transition:transform .3s, opacity .2s, top .3s; }
.nav-toggle span:nth-child(1){ top:16px; }
.nav-toggle span:nth-child(2){ top:23px; }
.nav-toggle span:nth-child(3){ top:30px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ top:23px; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ top:23px; transform:rotate(-45deg); }
.nav-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,.6); opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; z-index:90; }
body.nav-open .nav-backdrop{ opacity:1; visibility:visible; }
.mobile-extra{ display:none; }

/* 7. Home: hero & quick actions ------------------------------------------- */
.hero{ position:relative; overflow:hidden; background:var(--ink); color:rgba(255,255,255,.8); }
.hero::before{
  content:''; position:absolute; top:0; bottom:0; right:-8%; width:52%;
  background:var(--red); transform:skewX(-12deg); transform-origin:top;
}
.hero::after{
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 80px);
}
.hero .container{ position:relative; z-index:1; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; padding:clamp(4rem,9vw,7rem) 0 clamp(6rem,10vw,8rem); }
.hero h1{ color:#fff; font-size:clamp(2.8rem,6.6vw,5.4rem); line-height:.98; }
.hero h1 em{ font-style:normal; color:var(--red); }
.hero .lead{ color:rgba(255,255,255,.78); max-width:560px; margin-top:1.4rem; }
.hero-phone{ display:inline-flex; align-items:center; gap:.9rem; margin-top:2rem; color:#fff; }
.hero-phone .ic{ width:52px; height:52px; display:grid; place-items:center; border:2px solid rgba(255,255,255,.25); border-radius:50%; }
.hero-phone svg{ width:22px; height:22px; color:#fff; }
.hero-phone small{ display:block; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.hero-phone strong{ font-family:var(--display); font-weight:500; font-size:1.6rem; letter-spacing:.03em; }
.hero-phone:hover strong{ color:#ff5a5f; }
.hero-media{ position:relative; }
.hero-media .main{ width:100%; aspect-ratio:4/3; object-fit:cover; box-shadow:0 40px 60px -30px rgba(0,0,0,.8); border:6px solid #fff; }
.hero-media .inset{ position:absolute; left:-12%; bottom:-14%; width:46%; aspect-ratio:4/3; object-fit:cover; border:6px solid #fff; box-shadow:var(--shadow); }
.hero-media .stamp{
  position:absolute; right:-6px; top:-22px; background:var(--ink); color:#fff; padding:.8rem 1rem;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.08em; font-size:.85rem; line-height:1.2; box-shadow:var(--shadow-s);
}
.hero-media .stamp b{ display:block; font-size:1.35rem; color:#ff5a5f; font-weight:600; }

.quick{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); margin-top:-3.5rem; background:#fff; box-shadow:var(--shadow); }
.quick a{ position:relative; display:flex; flex-direction:column; gap:.4rem; padding:1.6rem 1.5rem 1.5rem; border-left:1px solid var(--line); transition:background .25s, color .25s; }
.quick a:first-child{ border-left:0; }
.quick a svg.qi{ width:38px; height:38px; color:var(--red); margin-bottom:.4rem; transition:color .25s; }
.quick b{ font-family:var(--display); font-weight:500; font-size:1.3rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink); transition:color .25s; }
.quick span{ font-size:.95rem; color:var(--muted); transition:color .25s; }
.quick a::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:4px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.quick a:hover{ background:var(--ink); }
.quick a:hover b{ color:#fff; }
.quick a:hover span{ color:rgba(255,255,255,.7); }
.quick a:hover::after{ transform:none; }

/* 8. Service cards --------------------------------------------------------- */
.services{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.service{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); transition:transform .35s var(--ease), box-shadow .35s; }
.service:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.service-img{ position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--char); }
.service-img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.service:hover .service-img img{ transform:scale(1.05); }
.service-num{ position:absolute; left:0; bottom:0; padding:.45rem .9rem; background:var(--red); color:#fff; font-family:var(--display); font-size:1rem; letter-spacing:.1em; }
.service-body{ display:flex; flex-direction:column; flex:1; padding:1.4rem 1.5rem 1.6rem; }
.service h3{ margin-bottom:.5rem; }
.service p{ color:var(--steel); font-size:1rem; }
.service .link-arrow{ margin-top:auto; padding-top:1rem; }
.service.feature{ background:var(--red); border-color:var(--red); color:#fff; justify-content:center; padding:2rem; }
.service.feature h3{ color:#fff; font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:1rem; }
.service.feature p{ color:rgba(255,255,255,.9); }
.service.feature .link-arrow{ color:#fff; }

.card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); padding:1.6rem; transition:transform .3s var(--ease), box-shadow .3s; }
a.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.card h3{ margin-bottom:.5rem; }
.card p{ color:var(--steel); font-size:1rem; }
.card .link-arrow{ margin-top:auto; padding-top:1rem; }
.card.dark{ background:var(--char); border-color:var(--char); color:rgba(255,255,255,.78); }
.card.dark h3{ color:#fff; }
.card.dark p{ color:rgba(255,255,255,.75); }
.card.top{ border-top:4px solid var(--red); }
.icon-box{ width:56px; height:56px; display:grid; place-items:center; background:var(--red-soft); color:var(--red); margin-bottom:1.1rem; }
.icon-box svg{ width:28px; height:28px; }
.card.dark .icon-box{ background:rgba(255,255,255,.06); color:#ff5a5f; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }

/* 9. Split & media --------------------------------------------------------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.split.top{ align-items:start; }
.media-stack{ position:relative; padding:0 12% 12% 0; }
.media-stack img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.media-stack img + img{ position:absolute; right:0; bottom:0; width:55%; border:6px solid #fff; box-shadow:var(--shadow); }
.media-stack::before{ content:''; position:absolute; left:-18px; top:-18px; width:40%; height:45%; background:var(--red); z-index:-1; }
.check-list li{ display:flex; gap:.8rem; align-items:flex-start; padding:.65rem 0; border-bottom:1px solid var(--line); font-weight:600; }
.check-list li:last-child{ border-bottom:0; }
.check-list svg{ width:24px; height:24px; flex:none; color:var(--red); margin-top:.05rem; }
.bg-dark .check-list li{ border-color:rgba(255,255,255,.1); }

.tag-cloud{ display:flex; flex-wrap:wrap; gap:.6rem; }
.tag-cloud span{ padding:.55rem 1rem; background:#fff; border:1px solid var(--line); font-weight:700; }
.tag-cloud span.hot{ background:var(--red); border-color:var(--red); color:#fff; }
.bg-dark .tag-cloud span{ background:transparent; border-color:rgba(255,255,255,.2); color:#fff; }

/* 10. Hotline band & CTA --------------------------------------------------- */
.band{ position:relative; overflow:hidden; background:var(--char); color:rgba(255,255,255,.78); padding:clamp(3.5rem,7vw,5rem) 0; }
.band::before{ content:''; position:absolute; top:0; bottom:0; left:-6%; width:38%; background:var(--red); transform:skewX(-12deg); transform-origin:bottom; }
.band .container{ position:relative; display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem; align-items:center; }
.band h2{ color:#fff; }
.band-num{ display:block; font-family:var(--display); font-weight:700; font-size:clamp(2.4rem,5vw,3.8rem); line-height:1; color:#fff; letter-spacing:.02em; }
.band-num:hover{ color:#fff; text-decoration:underline; text-decoration-thickness:3px; text-underline-offset:6px; }
.band-label{ font-family:var(--display); letter-spacing:.16em; text-transform:uppercase; font-size:.9rem; color:rgba(255,255,255,.85); margin-bottom:.6rem; display:block; }

.cta{ background:var(--red); color:#fff; padding:clamp(3rem,6vw,4.5rem) 0; position:relative; overflow:hidden; }
.cta::after{ content:''; position:absolute; right:-5%; top:0; bottom:0; width:30%; background:var(--red-dark); transform:skewX(-12deg); }
.cta .container{ position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.cta h2{ color:#fff; max-width:18ch; }
.cta p{ color:rgba(255,255,255,.88); margin-top:.7rem; max-width:560px; }
.cta .btn-row{ margin-top:0; }

/* 11. Page hero & breadcrumb ---------------------------------------------- */
.page-hero{ position:relative; overflow:hidden; background:var(--ink); color:rgba(255,255,255,.78); padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(3rem,6vw,4.5rem); }
.page-hero-bg{ position:absolute; inset:0; }
.page-hero-bg img{ width:100%; height:100%; object-fit:cover; opacity:.28; filter:grayscale(1) contrast(1.1); }
.page-hero::before{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, var(--ink) 30%, rgba(18,18,20,.55)); }
.page-hero::after{ content:''; position:absolute; z-index:1; right:-60px; top:0; bottom:0; width:120px; background:var(--red); transform:skewX(-12deg); }
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ color:#fff; max-width:16ch; }
.page-hero .lead{ color:rgba(255,255,255,.78); max-width:640px; margin-top:1.1rem; }
.breadcrumb{ display:flex; flex-wrap:wrap; gap:.4rem; font-size:.9rem; margin-bottom:1.6rem; color:rgba(255,255,255,.55); }
.breadcrumb li{ display:flex; align-items:center; gap:.4rem; }
.breadcrumb li + li::before{ content:'/'; color:var(--red); }
.breadcrumb a:hover,.breadcrumb [aria-current]{ color:#fff; }

/* 12. Sidebar layout & content -------------------------------------------- */
.layout{ display:grid; grid-template-columns:280px minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.sidebar{ position:sticky; top:calc(var(--header-h) + 1.5rem); display:grid; gap:1.25rem; }
.side-nav{ background:var(--paper); padding:.6rem; }
.side-nav-title{ display:block; padding:.8rem .9rem .5rem; font-family:var(--display); font-weight:600; font-size:1.25rem; text-transform:uppercase; color:var(--ink); }
.side-nav a{ display:block; padding:.62rem .9rem; font-weight:600; color:var(--steel); border-left:3px solid transparent; transition:background .2s, color .2s; }
.side-nav a:hover{ background:#fff; color:var(--red); }
.side-nav a[aria-current="page"]{ background:#fff; color:var(--red); border-left-color:var(--red); }
.side-box{ background:var(--char); color:rgba(255,255,255,.78); padding:1.6rem; border-top:4px solid var(--red); }
.side-box h4{ color:#fff; font-size:1.35rem; margin-bottom:.6rem; }
.side-box p{ font-size:.97rem; }
.side-box .big{ display:block; font-family:var(--display); font-size:1.6rem; color:#fff; margin:.2rem 0 .2rem; }
.side-box .big:hover{ color:#ff5a5f; }
.side-box a.mail{ color:#ff5a5f; font-weight:600; }
.side-box .btn{ margin-top:1.1rem; width:100%; }

.content > * + *{ margin-top:clamp(2.2rem,4vw,3.2rem); }
.prose p{ color:var(--steel); }
.prose h2{ font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:1rem; }
.prose h3{ margin:1.6rem 0 .6rem; }
.prose a{ color:var(--red); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.h-sub{ font-size:clamp(1.5rem,2.8vw,2.1rem); margin-bottom:1.2rem; }
.figure-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.figure-row img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
ul.dots li{ position:relative; padding:.35rem 0 .35rem 1.5rem; }
ul.dots li::before{ content:''; position:absolute; left:0; top:.9rem; width:10px; height:4px; background:var(--red); transform:skewX(-30deg); }
.callout{ display:flex; gap:1rem; padding:1.3rem 1.5rem; background:var(--red-soft); border-left:4px solid var(--red); }
.callout svg{ width:26px; height:26px; flex:none; color:var(--red); }
.callout.dark{ background:var(--char); color:rgba(255,255,255,.85); }
.callout.dark strong{ color:#fff; }
.quote{ position:relative; padding:1.8rem 2rem; background:var(--ink); color:#fff; font-family:var(--display); font-size:clamp(1.3rem,2.3vw,1.7rem); line-height:1.3; text-transform:uppercase; letter-spacing:.01em; border-left:8px solid var(--red); }

/* 13. Rules & steps -------------------------------------------------------- */
.rules{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; counter-reset:rule; }
.rule{ display:flex; gap:1rem; align-items:flex-start; padding:1.2rem 1.3rem; background:var(--paper); counter-increment:rule; }
.rule::before{ content:counter(rule,decimal-leading-zero); flex:none; width:44px; height:44px; display:grid; place-items:center; background:var(--ink); color:#fff; font-family:var(--display); font-size:1.05rem; }
.rule b{ display:block; font-weight:700; color:var(--ink); }
.rule span{ color:var(--steel); font-size:.97rem; }
.rule.ok::before{ background:var(--red); }

.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; counter-reset:step; }
.step{ position:relative; padding:1.8rem 1.6rem; background:#fff; border:1px solid var(--line); counter-increment:step; }
.bg-dark .step{ background:var(--char-2); border-color:rgba(255,255,255,.08); }
.step::before{ content:counter(step); display:grid; place-items:center; width:54px; height:54px; margin-bottom:1rem; background:var(--red); color:#fff; font-family:var(--display); font-size:1.6rem; font-weight:600; }
.step h3{ font-size:1.3rem; margin-bottom:.4rem; }
.step p{ font-size:.98rem; color:var(--steel); }
.bg-dark .step p{ color:rgba(255,255,255,.72); }

.docs{ display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; }
.docs li{ display:flex; gap:.8rem; align-items:center; padding:1rem 1.1rem; border:1px solid var(--line); font-weight:600; }
.docs svg{ width:24px; height:24px; color:var(--red); flex:none; }

/* 14. Gallery & lightbox --------------------------------------------------- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.gallery.cols-2{ grid-template-columns:repeat(2,1fr); }
.gallery.cols-3{ grid-template-columns:repeat(3,1fr); }
.gallery button{ position:relative; padding:0; border:0; overflow:hidden; aspect-ratio:4/3; background:var(--char); }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease), opacity .3s; }
.gallery button:hover img{ transform:scale(1.06); opacity:.8; }
.gallery button::after{
  content:'+'; position:absolute; right:.6rem; bottom:.6rem; width:36px; height:36px; display:grid; place-items:center;
  background:var(--red); color:#fff; font-size:1.5rem; line-height:1; opacity:0; transform:translateY(6px); transition:all .25s;
}
.gallery button:hover::after,.gallery button:focus-visible::after{ opacity:1; transform:none; }
.gallery .wide{ grid-column:span 2; grid-row:span 2; aspect-ratio:auto; }

.lightbox{ position:fixed; inset:0; z-index:500; display:none; place-items:center; background:rgba(10,10,12,.95); padding:4rem 1rem; }
.lightbox.open{ display:grid; }
.lightbox figure{ margin:0; display:flex; flex-direction:column; align-items:center; max-width:min(1000px,100%); }
.lightbox img{ max-height:calc(100vh - 10rem); width:auto; min-width:min(640px,90vw); object-fit:contain; box-shadow:0 30px 60px rgba(0,0,0,.5); }
.lightbox figcaption{ color:rgba(255,255,255,.8); margin-top:1rem; font-size:.95rem; text-align:center; }
.lb-btn{ position:absolute; width:52px; height:52px; display:grid; place-items:center; border:0; background:rgba(255,255,255,.1); color:#fff; transition:background .2s; }
.lb-btn:hover{ background:var(--red); }
.lb-btn svg{ width:24px; height:24px; }
.lb-close{ top:1rem; right:1rem; }
.lb-prev{ left:1rem; top:50%; transform:translateY(-50%); }
.lb-next{ right:1rem; top:50%; transform:translateY(-50%); }

/* 15. Contact, map, forms -------------------------------------------------- */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.contact-card{ background:var(--char); color:rgba(255,255,255,.78); padding:2rem; border-top:4px solid var(--red); }
.contact-card h3{ color:#fff; margin-bottom:1rem; }
.contact-card hr{ border:0; border-top:1px solid rgba(255,255,255,.12); margin:1.5rem 0; }
.contact-lines{ display:grid; gap:.55rem; }
.contact-lines a,.contact-lines span{ display:flex; align-items:center; gap:.65rem; font-weight:600; }
.contact-lines svg{ width:18px; height:18px; color:var(--red); flex:none; }
.contact-lines a:hover{ color:var(--red); }
.contact-card .contact-lines a:hover{ color:#ff5a5f; }
.contact-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.contact-tile{ display:flex; flex-direction:column; gap:.4rem; padding:1.6rem; background:#fff; border:1px solid var(--line); transition:border-color .2s, box-shadow .3s; }
a.contact-tile:hover{ border-color:var(--red); box-shadow:var(--shadow-s); }
.contact-tile svg{ width:34px; height:34px; color:var(--red); margin-bottom:.4rem; }
.contact-tile small{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.contact-tile b{ font-family:var(--display); font-weight:500; font-size:1.35rem; color:var(--ink); letter-spacing:.02em; }

.map-frame{ position:relative; aspect-ratio:16/8; background:var(--char); overflow:hidden; }
.map-consent{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; padding:1.5rem; text-align:center; color:rgba(255,255,255,.82);
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 40px), repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 40px), var(--char);
}
.map-consent svg{ width:48px; height:48px; color:var(--red); }
.map-consent p{ max-width:480px; font-size:.95rem; }
.map-consent a{ color:#fff; text-decoration:underline; }
.map-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.form{ display:grid; gap:1.1rem; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form-row{ display:flex; flex-direction:column; gap:.4rem; }
.form-row label{ font-weight:700; font-size:.95rem; }
.req{ color:var(--red); }
.form-row input,.form-row select,.form-row textarea{
  width:100%; padding:.85rem 1rem; border:1px solid #cfcfd4; background:#fff; border-radius:var(--radius); transition:border-color .2s, box-shadow .2s;
}
.form-row textarea{ min-height:150px; resize:vertical; }
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(211,18,27,.15); }
.form-row .err{ display:none; font-size:.86rem; color:var(--red-dark); }
.form-row.error input,.form-row.error textarea,.form-row.error select{ border-color:var(--red); }
.form-row.error .err{ display:block; }
.form-check{ display:flex; gap:.7rem; align-items:flex-start; font-size:.95rem; color:var(--steel); }
.form-check input{ width:20px; height:20px; margin-top:.2rem; accent-color:var(--red); flex:none; }
.form-check.error{ color:var(--red-dark); }
.form-check a{ color:var(--red); text-decoration:underline; }
.form-note{ display:none; padding:1rem 1.2rem; font-weight:600; }
.form-note.show{ display:block; }
.form-note.ok{ background:#eef7ef; color:#1f5a2a; border-left:4px solid #2e8540; }
.form-note.bad{ background:var(--red-soft); color:var(--red-deep); border-left:4px solid var(--red); }
.form-box{ background:var(--paper); padding:clamp(1.5rem,3vw,2.2rem); border-top:4px solid var(--red); scroll-margin-top:calc(var(--header-h) + 1rem); }
.form-box h2{ font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:.4rem; }
.form-box > p{ color:var(--muted); margin-bottom:1.4rem; }
.segmented{ display:flex; flex-wrap:wrap; gap:.5rem; }
.segmented label{ position:relative; }
.segmented input{ position:absolute; opacity:0; }
.segmented span{ display:inline-block; padding:.6rem 1rem; border:1px solid #cfcfd4; background:#fff; font-weight:600; cursor:pointer; transition:all .2s; }
.segmented input:checked + span{ background:var(--ink); border-color:var(--ink); color:#fff; }
.segmented input:focus-visible + span{ outline:3px solid var(--red); outline-offset:2px; }

/* 16. Legal & sitemap ------------------------------------------------------ */
.legal h2{ font-size:clamp(1.4rem,2.4vw,1.9rem); margin:2.2rem 0 .8rem; }
.legal h2:first-child{ margin-top:0; }
.legal p,.legal li{ color:var(--steel); }
.legal a{ color:var(--red); text-decoration:underline; }
.data-table{ width:100%; border-collapse:collapse; }
.data-table th,.data-table td{ padding:.85rem 1rem; text-align:left; overflow-wrap:anywhere; hyphens:auto; border-bottom:1px solid var(--line); vertical-align:top; }
.data-table th{ width:36%; font-weight:700; color:var(--ink); background:var(--paper); }
.sitemap{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.sitemap div{ padding:1.4rem; border:1px solid var(--line); border-top:4px solid var(--red); }
.sitemap h3{ margin-bottom:.8rem; }
.sitemap a{ display:block; padding:.35rem 0; font-weight:600; color:var(--steel); }
.sitemap a:hover{ color:var(--red); }

/* 17. Footer --------------------------------------------------------------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.68); font-size:.97rem; border-top:6px solid var(--red); }
/* no red border strip under a red call-to-action band (it looked like a gap under the dark diagonal) */
main:has(> .cta:last-child) + .site-footer{ border-top:0; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.5rem; padding:clamp(3.5rem,7vw,5rem) 0 3rem; }
.site-footer .brand-name{ color:#fff; }
.site-footer .brand-sub{ color:rgba(255,255,255,.5); }
.footer-about p{ margin-top:1.2rem; max-width:330px; }
.footer-col h4{ color:#fff; font-size:1.05rem; letter-spacing:.14em; margin-bottom:1.1rem; }
.footer-col ul{ display:grid; gap:.5rem; }
.footer-col a{ transition:color .2s; }
.footer-col a:hover{ color:#fff; }
.footer-col .contact-lines a:hover{ color:#fff; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1.4rem 0; border-top:1px solid rgba(255,255,255,.1); font-size:.9rem; }
.footer-bottom nav{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.footer-bottom a:hover{ color:#fff; }

.to-top{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:80; width:50px; height:50px; border:0; background:var(--red); color:#fff; display:grid; place-items:center; box-shadow:var(--shadow-s); opacity:0; visibility:hidden; transform:translateY(10px); transition:all .3s; }
.to-top.show{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--ink); }
.to-top svg{ width:22px; height:22px; }
.call-fab{ display:none; }

.notfound{ text-align:center; padding:clamp(5rem,12vw,9rem) 0; }
.notfound .big{ font-family:var(--display); font-weight:700; font-size:clamp(6rem,20vw,12rem); line-height:1; color:var(--red); }

/* 18. Responsive ----------------------------------------------------------- */
@media (max-width:1180px){
  :root{ --header-h:74px; }
  .nav-toggle{ display:block; }
  .header-cta .btn{ display:none; }
  .main-nav{
    position:fixed; top:0; right:0; bottom:0; z-index:95; width:min(420px,88vw); background:#fff; overflow-y:auto;
    padding:calc(var(--header-h) + 1rem) 1.2rem 2rem; transform:translateX(100%); visibility:hidden; transition:transform .35s var(--ease), visibility .35s;
  }
  body.nav-open .main-nav{ transform:none; visibility:visible; }
  .header-cta{ margin-left:auto; position:relative; z-index:120; }
  .main-nav > ul{ flex-direction:column; align-items:stretch; }
  .nav-item{ flex-wrap:wrap; border-bottom:1px solid var(--line); }
  .nav-link{ flex:1; padding:1rem .2rem; font-size:1.1rem; }
  .nav-link.is-active::after,.nav-caret{ display:none; }
  .sub-toggle{ display:grid; place-items:center; width:44px; height:44px; border:0; background:var(--paper); color:var(--ink); }
  .sub-toggle svg{ width:18px; height:18px; transition:transform .25s; }
  .nav-item.is-open .sub-toggle svg{ transform:rotate(180deg); }
  .submenu,.submenu.mega{ position:static; display:none; min-width:0; width:100%; transform:none; opacity:1; visibility:visible; box-shadow:none; border-top:0; background:none; padding:0 0 .8rem .5rem; grid-template-columns:1fr; left:auto; }
  .nav-item.is-open > .submenu{ display:block; }
  .submenu a{ color:var(--steel); }
  .submenu a:hover,.submenu a[aria-current="page"]{ background:var(--paper); color:var(--red); }
  .submenu .sub-head{ color:var(--red); }
  .submenu .sub-card{ display:none; }
  .mobile-extra{ display:grid; gap:.7rem; margin-top:1.5rem; }
}
@media (max-width:1024px){
  .hero::before{ top:auto; bottom:-60px; left:0; right:0; width:auto; height:calc(38% + 60px); transform:skewY(-7deg); transform-origin:right; }
  .hero-grid,.split,.contact-grid,.band .container{ grid-template-columns:1fr; }
  .hero-media{ max-width:560px; margin:1rem 0 2rem 10%; }
  .band::before{ display:none; }
  .band{ background:var(--red); }
  .services,.grid-3,.steps,.contact-tiles,.sitemap{ grid-template-columns:repeat(2,1fr); }
  .grid-4,.quick{ grid-template-columns:repeat(2,1fr); }
  .quick a:nth-child(3){ border-left:0; }
  .quick a:nth-child(n+3){ border-top:1px solid var(--line); }
  .layout{ grid-template-columns:minmax(0,1fr); }
  .layout > *{ min-width:0; }
  .sidebar{ position:static; order:2; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .media-stack{ max-width:600px; }
}
@media (max-width:640px){
  body{ font-size:17px; }
  h1,h2,.page-hero h1{ overflow-wrap:break-word; hyphens:auto; -webkit-hyphens:auto; }
  h1,.page-hero h1{ font-size:clamp(2.1rem,10vw,3rem); }
  .hero h1{ font-size:clamp(2.5rem,12vw,3.4rem); }
  .brand-sub{ display:none; }
  .brand-mark{ width:46px; height:46px; }
  .site-header .brand-logo{ height:48px; }
  .services,.grid-2,.grid-3,.grid-4,.steps,.contact-tiles,.sitemap,.rules,.docs,.form-grid,.figure-row{ grid-template-columns:1fr; }
  .quick{ grid-template-columns:1fr; margin-top:-2.5rem; }
  .quick a{ border-left:0; border-top:1px solid var(--line); flex-direction:row; flex-wrap:wrap; align-items:center; gap:.2rem 1rem; padding:1.1rem 1.2rem; }
  .quick a:first-child{ border-top:0; }
  .quick a svg.qi{ width:32px; height:32px; margin:0; }
  .quick span{ flex-basis:100%; padding-left:calc(32px + 1rem); margin-top:-.3rem; }
  .hero-media{ margin:0 0 2.5rem 8%; }
  .hero-media .inset{ left:-10%; }
  .gallery,.gallery.cols-3{ grid-template-columns:repeat(2,1fr); }
  .gallery .wide{ grid-column:span 2; grid-row:auto; aspect-ratio:4/3; }
  .footer-top{ grid-template-columns:1fr; }
  .cta .container{ flex-direction:column; align-items:flex-start; }
  .data-table,.data-table tbody,.data-table tr,.data-table th,.data-table td{ display:block; width:100%; }
  .data-table th{ width:auto; }
  .map-frame{ aspect-ratio:4/3; }
  .to-top{ bottom:5.2rem; }
  .call-fab{
    position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:85; display:flex; align-items:center; justify-content:center; gap:.6rem;
    min-height:54px; background:var(--red); color:#fff; font-family:var(--display); font-size:1.1rem; letter-spacing:.06em; text-transform:uppercase;
    box-shadow:0 12px 24px -10px rgba(0,0,0,.5);
  }
  .call-fab svg{ width:20px; height:20px; }
  body{ padding-bottom:5rem; }
}
@media print{
  .site-header,.site-footer,.to-top,.sidebar,.cta,.call-fab,.band{ display:none!important; }
  .page-hero{ background:none; color:#000; padding:1rem 0; }
  .page-hero h1{ color:#000; }
  .page-hero-bg,.page-hero::before,.page-hero::after{ display:none; }
  .reveal{ opacity:1; transform:none; }
}

/* 19. Preise – price tables (content managed via management.php) ------------ */
.price-list{ display:grid; gap:clamp(2.4rem,4.5vw,3.4rem); }
.price-block .h-sub{ display:flex; align-items:center; gap:.8rem; }
.price-block .h-sub::before{ content:''; flex:none; width:6px; height:1.1em; background:var(--red); transform:skewX(-14deg); }
.cms-table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.price-table{ width:100%; border-collapse:collapse; background:#fff; box-shadow:var(--shadow-s); }
.price-table th,.price-table td{ padding:.9rem 1.15rem; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.price-table thead th{
  background:var(--ink); color:#fff; font-family:var(--display); font-weight:500; font-size:.95rem;
  letter-spacing:.08em; text-transform:uppercase; border-bottom:4px solid var(--red);
}
.price-table tbody tr{ border-bottom:1px solid var(--line); transition:background .2s; }
.price-table tbody tr:nth-child(even){ background:var(--paper); }
.price-table tbody tr:hover{ background:var(--red-soft); }
.price-table td:first-child{ font-weight:700; color:var(--ink); }
.price-table th:not(:first-child),.price-table td:not(:first-child){ width:24%; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.price-table td:not(:first-child){ font-weight:600; color:var(--steel); }
@media (max-width:640px){
  .price-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .price-table,.price-table tbody,.price-table tr,.price-table td{ display:block; width:100%; }
  .price-table tbody tr{ padding:.6rem 0; }
  .price-table td{ display:flex; justify-content:space-between; gap:1rem; padding:.35rem 1rem; }
  .price-table th:not(:first-child),.price-table td:not(:first-child){ width:100%; white-space:normal; text-align:right; }
  .price-table td:first-child{ font-size:1.08rem; padding-top:.5rem; }
  .price-table td:not(:first-child)::before{ content:attr(data-label); font-weight:600; color:var(--muted); text-align:left; }
}

/* spam trap for bots in the forms — invisible for visitors and screen readers */
.hp-field{ position:absolute!important; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }

/* ---------- Datenschutz-/Cookie-Einstellungen ---------- */
.consent{ position:fixed; left:0; right:0; bottom:0; z-index:1000; padding:0 var(--gutter) var(--gutter); pointer-events:none; }
.consent[hidden]{ display:none; }
.consent-inner{ pointer-events:auto; max-width:820px; margin:0 auto; padding:1.6rem 1.8rem 1.7rem; background:var(--ink); color:rgba(255,255,255,.86); border-top:6px solid var(--red); border-radius:var(--radius); box-shadow:0 30px 60px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.12); max-height:calc(100vh - 2rem); overflow:auto; }
.consent-title{ color:#fff; font-size:1.45rem; letter-spacing:.06em; text-transform:uppercase; margin:0 0 .6rem; outline:0; }
.consent-text{ margin:0 0 1.1rem; font-size:1rem; line-height:1.55; }
.consent-text a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.consent-options{ display:grid; gap:.6rem; margin:0 0 1.2rem; }
.consent-options[hidden]{ display:none; }
.consent-option{ display:flex; gap:.8rem; align-items:flex-start; padding:.8rem .9rem; background:var(--char-2); border-radius:var(--radius); cursor:pointer; font-size:.95rem; line-height:1.45; }
.consent-option input{ flex:none; width:20px; height:20px; margin:.15rem 0 0; accent-color:var(--red); cursor:pointer; }
.consent-option input:disabled{ cursor:default; opacity:.7; }
.consent-option strong{ display:block; color:#fff; }
.consent-buttons{ display:flex; flex-wrap:wrap; gap:.7rem; }
.consent-buttons .btn{ min-height:48px; padding:.7rem 1.3rem; flex:1 1 auto; }
.btn-ghost{ border-color:rgba(255,255,255,.45); color:#fff; background:transparent; }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.consent :focus-visible{ outline-color:#fff; }
.consent-link{ padding:0; border:0; background:none; color:inherit; font:inherit; cursor:pointer; }
.consent-link:hover{ color:#fff; }
@media (max-width:640px){
  .consent{ padding:0; }
  .consent-inner{ border-radius:0; padding:1.2rem 1.1rem 1.3rem; max-height:85vh; }
  .consent-title{ font-size:1.2rem; }
  .consent-text{ font-size:.95rem; }
  .consent-buttons .btn{ flex:1 1 100%; }
}
@media print{ .consent{ display:none!important; } }
