/* =========================================================
   B. Ram Abbruch- und Entsorgungsgesellschaft mbH
   Statischer Nachbau nach Masterlayout (FireShot Capture 057)
   ========================================================= */

/* Roboto lokal (DSGVO: keine Verbindung zu Google-Servern).
   Die .woff2-Dateien gehören in /fonts – siehe README.md */
@font-face{font-family:"Roboto";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/roboto-v30-latin-300.woff2") format("woff2")}
@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/roboto-v30-latin-regular.woff2") format("woff2")}
@font-face{font-family:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/roboto-v30-latin-500.woff2") format("woff2")}

/* Layout: schmaler, zentrierter Inhaltsbereich (820px) in vollbreiten Farbbändern */
:root{
  --magenta:#c40f8c;        /* Logo-/Sticker-Farbe */
  --magenta-light:#d860ac;  /* Überschrift "Leistungen" */
  --magenta-dark:#a00b72;
  --grey-band:#edebec;      /* Hintergrund Intro + Bildleiste */
  --anthracite:#333333;     /* Kontaktboxen + Footer */
  --text:#333333;
  --white:#ffffff;
  --font-head:"Roboto",Arial,Helvetica,sans-serif;
  --font-body:Verdana,Geneva,"DejaVu Sans",sans-serif;
  --content:820px;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--font-body);font-size:13px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--magenta);outline-offset:3px}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--magenta);color:var(--white);padding:8px 14px;z-index:1000}
.skip-link:focus{left:16px;top:16px}

.wrap{max-width:calc(var(--content) + 32px);margin:0 auto;
  padding-left:max(16px,env(safe-area-inset-left,0px));
  padding-right:max(16px,env(safe-area-inset-right,0px))}

/* ---------- Header ---------- */
.site-header{background:var(--white)}
.site-header .wrap{padding-block:8px}
.site-header img{width:210px}

/* ---------- Hero ---------- */
.hero{position:relative;height:clamp(220px,23vw,372px);background:#6d6a66 url("../img/abbruch-hero.jpg") center 45%/cover no-repeat;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero p{margin:0;font-family:var(--font-head);font-weight:400;color:var(--white);font-size:clamp(28px,3.3vw,52px);line-height:1.2;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.35),0 2px 18px rgba(0,0,0,.3);padding-inline:16px;animation:zoomIn .9s ease-out both}

/* ---------- Intro ---------- */
.intro{background:var(--grey-band)}
.intro .wrap{padding-block:46px 30px;display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:30px;align-items:start}
.intro h1{font-family:var(--font-head);font-weight:400;color:var(--magenta);font-size:clamp(22px,2vw,28px);line-height:1.15;margin:0 0 18px}
.intro p{margin:0 0 13px}
.intro p:last-child{margin-bottom:0}
.intro strong{font-weight:normal}
.sticker{padding-top:4px}
.sticker img{width:180px;transition:transform .4s ease}
.sticker img:hover{transform:rotate(-12deg)}

/* ---------- Leistungen (mit Pfeil-Trenner oben) ---------- */
.services{position:relative;background:var(--white)}
.services::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);border-left:22px solid transparent;border-right:22px solid transparent;border-top:13px solid var(--grey-band)}
.services .wrap{padding-block:26px 46px}
.services h2{font-family:var(--font-body);font-weight:400;color:var(--magenta-light);font-size:clamp(18px,1.6vw,22px);line-height:1.2;text-align:center;margin:0 0 22px;text-wrap:balance}
.check-list{list-style:none;margin:0;padding:0 0 0 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(4,auto);gap:14px 30px}
.check-list li{display:flex;align-items:center;gap:9px;font-size:13px}
.check-list svg{flex:none;width:19px;height:19px;color:var(--magenta)}

/* ---------- Claim ---------- */
.claim .wrap{padding-block:12px 54px}
.claim h3{margin:0;text-align:center;font-family:var(--font-body);font-weight:400;color:var(--magenta);font-size:clamp(22px,2.1vw,30px);line-height:1.3}
.claim .marked{position:relative;display:inline-block;padding:0 4px}
.claim .marked svg{position:absolute;left:-8%;top:-22%;width:116%;height:144%;overflow:visible;pointer-events:none}
.claim .marked path{fill:none;stroke:#222;stroke-width:4;stroke-linecap:round;stroke-dasharray:1500;stroke-dashoffset:0;animation:draw 1.2s ease-out .3s both}
@keyframes draw{from{stroke-dashoffset:1500}to{stroke-dashoffset:0}}

/* ---------- Bildleiste ---------- */
.gallery{background:var(--grey-band);padding-block:52px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}
.gallery figure{margin:0;overflow:hidden;aspect-ratio:2.4/1;max-width:100%;background:#ccc}
.gallery figure:nth-child(2){aspect-ratio:2.4/1}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.gallery figure:hover img{transform:scale(1.08)}

/* ---------- Kontaktboxen ---------- */
.contact .wrap{padding-block:28px 46px}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.box{position:relative;background:var(--anthracite);color:var(--white);text-align:center;padding:30px 18px 34px;margin-top:22px;min-width:0;font-family:var(--font-head);font-weight:300}
.box .icon{position:absolute;top:-22px;left:50%;transform:translateX(-50%);width:42px;height:42px;border-radius:50%;background:var(--magenta);border:3px solid var(--white);display:grid;place-items:center}
.box .icon svg{width:18px;height:18px;color:var(--white)}
.box h2{font-family:var(--font-head);font-weight:300;font-size:16px;line-height:1.6;margin:0 0 14px;text-decoration:underline;text-underline-offset:3px}
.box p{margin:0;font-size:12.5px;line-height:1.45}
.box a{text-decoration:none}
.box a:hover{text-decoration:underline}

/* ---------- Gemeinde-Link ---------- */
.community .wrap{padding-block:10px 56px;text-align:center}
.community h2{margin:0;font-family:var(--font-head);font-weight:400;font-size:clamp(18px,1.5vw,23px);text-wrap:balance}
.community a{color:var(--magenta);text-underline-offset:4px}
.community a:hover{color:var(--magenta-dark)}

/* ---------- Karte ---------- */
.map{position:relative;overflow:hidden;max-width:100%}
.map img{width:100%;height:clamp(240px,30vw,470px);object-fit:cover;object-position:46% 50%}
.map-btn{position:absolute;left:42.5%;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:12px;background:var(--magenta);color:var(--white);text-decoration:none;font-family:var(--font-head);font-size:14px;padding:8px 16px;white-space:nowrap}
.map-btn:hover{background:var(--magenta-dark)}
.map-btn svg{width:13px;height:13px}

/* ---------- Footer ---------- */
.site-footer{background:var(--anthracite);color:var(--white)}
.site-footer .wrap{padding-block:12px;display:flex;justify-content:space-between;align-items:center;gap:12px 30px;flex-wrap:wrap;max-width:calc(var(--content) + 32px)}
.site-footer p{margin:0;font-family:var(--font-body);font-size:12.5px;line-height:1.5;max-width:360px}
.site-footer nav ul{list-style:none;margin:0;padding:0;display:flex;gap:28px;font-family:var(--font-head);font-size:13px}
.site-footer nav a{text-decoration:none;padding-block:4px;border-bottom:2px solid transparent;transition:border-color .2s}
.site-footer nav a:hover,.site-footer nav a[aria-current="page"]{border-color:var(--magenta)}
.bottom-band{background:var(--grey-band);height:34px}

/* Nach-oben-Button */
.to-top{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:40px;height:40px;border:0;background:var(--anthracite);color:var(--white);opacity:0;visibility:hidden;cursor:pointer;display:grid;place-items:center;transition:opacity .2s;z-index:50}
.to-top.show{opacity:.6;visibility:visible}
.to-top:hover{opacity:1}
.to-top svg{width:16px;height:16px}

/* ---------- Einblend-Animationen (Inhalt ist ohne JS sichtbar) ---------- */
.js .reveal{transition:opacity .8s ease,transform .8s ease}
.js .reveal.pending{opacity:0;transform:translateY(24px)}
.js .reveal.from-left.pending{transform:translateX(-30px)}
.js .reveal.from-right.pending{transform:translateX(30px)}
@keyframes zoomIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .js .reveal.pending{opacity:1;transform:none}
  .hero p,.claim .marked path{animation:none}
}

/* ---------- Rechtstexte (Impressum / Datenschutz) ---------- */
.page-title{background:var(--grey-band)}
.page-title .wrap{padding-block:40px 32px}
.page-title h1{margin:0;font-family:var(--font-head);font-weight:400;color:var(--magenta);font-size:clamp(26px,2.4vw,34px)}
.legal .wrap{padding-block:36px 60px}
.legal h2{font-family:var(--font-head);font-weight:400;color:var(--magenta);font-size:20px;line-height:1.3;margin:32px 0 10px}
.legal h3{font-family:var(--font-head);font-weight:500;font-size:15px;margin:22px 0 8px}
.legal p,.legal li{max-width:68ch;overflow-wrap:anywhere}
.legal p{margin:0 0 12px}
.legal ul{margin:0 0 14px;padding-left:20px}
.legal li{margin-bottom:5px}
.legal a{color:var(--magenta)}
.legal address{font-style:normal;margin-bottom:12px}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .gallery-grid{gap:16px}
}
@media (max-width:767px){
  .site-header img{width:170px}
  .intro .wrap{grid-template-columns:1fr;padding-block:32px}
  .sticker{justify-self:center;order:-1}
  .sticker img{width:140px}
  .check-list{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr;padding-left:0;gap:12px}
  .gallery{padding-block:24px}
  .gallery-grid{grid-template-columns:1fr;gap:16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .contact-grid{grid-template-columns:1fr;gap:26px}
  .map-btn{left:50%;transform:translate(-50%,-50%)}
  .site-footer .wrap{justify-content:center;text-align:center}
  .site-footer p{max-width:none}
}
