/* =========================================================
   RIHA — Boden & Raum · Static Styles (LiquidBridge Export)
   Design-Tokens zentral in :root. Kein Framework.
   ========================================================= */
:root{
  /* Farben */
  --graphit:#1C1E1D; --tiefschwarz:#0F1110; --warmweiss:#F3F0E8;
  --stein:#D8D4CC; --betongrau:#8A8C87; --eiche:#B48352;
  --eiche-hell:#C79A6C; --eiche-dunkel:#9A6E42;
  --ww-70:rgba(243,240,232,.7); --ww-45:rgba(243,240,232,.45); --ww-14:rgba(243,240,232,.14);
  /* Semantik (dunkle Seite) */
  --bg:var(--graphit); --bg-deep:var(--tiefschwarz);
  --fg:var(--warmweiss); --fg-muted:var(--betongrau);
  --accent:var(--eiche); --line:var(--ww-14); --line-strong:var(--warmweiss);
  /* Typografie */
  --font-display:'Manrope',system-ui,sans-serif;
  --font-text:'IBM Plex Sans',system-ui,sans-serif;
  /* Abstände 8er-System */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px; --s8:128px;
  /* Layout */
  --content-max:1280px;
  --page-pad:clamp(20px,5vw,80px);
  /* Radien & Schatten */
  --radius-btn:3px; --radius-card:4px;
  --shadow-overlay:0 24px 48px -24px rgba(15,17,16,.5);
  /* Motion */
  --ease:cubic-bezier(.22,.61,.21,1);
  --dur-fast:180ms; --dur:240ms; --dur-slow:280ms;
}

*,*::before,*::after{box-sizing:border-box}
*{min-width:0}
html{scroll-behavior:smooth;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;max-width:100%;background:var(--bg);color:var(--fg-muted);font-family:var(--font-text);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;color:var(--fg);line-height:1.12;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(44px,7vw,84px);line-height:1.04;letter-spacing:-.02em}
h2{font-size:clamp(32px,4.4vw,44px)}
h3{font-size:20px}
p{margin:0;text-wrap:pretty}
a{color:var(--fg);text-decoration:none;transition:color var(--dur-fast) var(--ease)}
a:hover{color:var(--accent)}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--eiche);color:var(--tiefschwarz)}
:focus-visible{outline:2px solid var(--eiche);outline-offset:3px}

.container{max-width:var(--content-max);margin:0 auto;padding:0 var(--page-pad);width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip-link{position:fixed;left:16px;top:-60px;z-index:200;background:var(--warmweiss);color:var(--graphit);padding:12px 18px;border-radius:var(--radius-btn);font-family:var(--font-display);font-weight:600;transition:top var(--dur-fast) var(--ease)}
.skip-link:focus{top:16px;color:var(--graphit)}

.eyebrow{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 12px}
.eyebrow.accent{color:var(--accent)}
.accent{color:var(--accent)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 28px;font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:.02em;border-radius:var(--radius-btn);border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn .arr{transition:transform var(--dur) var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-primary{background:var(--warmweiss);color:var(--graphit)}
.btn-primary:hover{background:var(--stein);color:var(--graphit)}
.btn-secondary{background:transparent;color:var(--fg);border-color:var(--fg)}
.btn-secondary:hover{color:var(--accent);border-color:var(--accent)}
.btn-sm{height:44px;padding:0 20px;font-size:14px}
.text-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;color:var(--fg);border-bottom:1.5px solid var(--line-strong);padding-bottom:3px}
.text-link:hover{color:var(--accent);border-color:var(--accent)}
.text-link .arr{transition:transform var(--dur) var(--ease)}
.text-link:hover .arr{transform:translateX(4px)}

.icon{width:24px;height:24px;color:var(--fg)}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(28,30,29,.9);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;height:76px}
.brand{display:flex;align-items:center;color:var(--fg)}
.brand img{width:196px;height:auto}
.nav-list{display:flex;gap:32px}
.nav-list a{font-family:var(--font-display);font-weight:500;font-size:15px;position:relative;padding:6px 0}
.nav-list a::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:0;background:var(--accent);transition:width var(--dur) var(--ease)}
.nav-list a:hover::after{width:100%}
.burger{display:none;background:none;border:0;color:var(--fg);cursor:pointer;padding:8px}
.mobile-nav{background:var(--tiefschwarz);border-bottom:1px solid var(--line);padding:16px var(--page-pad) 28px}
.mobile-nav ul{display:flex;flex-direction:column}
.mobile-nav a{display:block;font-family:var(--font-display);font-weight:600;font-size:22px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--fg)}
.mobile-nav .btn{margin-top:24px;width:100%}

/* Hero */
.hero{position:relative;min-height:min(88vh,720px);display:flex;align-items:flex-end;border-bottom:1px solid var(--line)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(15,17,16,.85) 0%,rgba(15,17,16,.55) 44%,rgba(15,17,16,.12) 78%),linear-gradient(to top,rgba(15,17,16,.65),transparent 46%)}
.hero-content{position:relative;padding-top:120px;padding-bottom:72px}
.hero h1{max-width:12ch;margin:0 0 22px}
.hero-lead{font-size:clamp(18px,2.2vw,22px);line-height:1.5;color:var(--ww-70);max-width:46ch}
.hero-cta{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.hero-stats{display:flex;gap:40px;margin:44px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.hero-stats dt{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--fg)}
.hero-stats dd{margin:2px 0 0;font-size:13px;letter-spacing:.04em;color:var(--fg-muted)}

/* Section head */
.section{padding:var(--s7) 0}
section[id]{scroll-margin-top:88px}
.services,.benefits,.projects,.process,.about,.testimonials,.faq,.contact{padding:var(--s7) 0}
.benefits,.about,.faq{background:var(--tiefschwarz)}
.section-head{margin-bottom:var(--s5)}
.section-head h2{margin-top:12px}
.section-head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}

/* Card grid (services + projects) */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.card-grid--projects{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:transparent;color:inherit;cursor:pointer;text-align:left;font:inherit;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.card:hover{border-color:var(--accent);background:rgba(243,240,232,.035)}
.card-body{padding:20px 20px 16px;display:flex;flex-direction:column;gap:12px;flex:1}
.card-top{display:flex;justify-content:space-between;align-items:flex-start}
.card .icon{transition:color var(--dur-fast) var(--ease)}
.card:hover .icon{color:var(--accent)}
.card-no{font-family:var(--font-text);font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--fg-muted)}
.card h3{font-size:19px}
.card-text{font-size:14px;line-height:1.55;color:var(--fg-muted)}
.card-hint{margin-top:auto;display:inline-flex;gap:8px;align-items:center;font-family:var(--font-display);font-weight:600;font-size:13px;color:var(--fg-muted);transition:color var(--dur-fast) var(--ease)}
.card:hover .card-hint{color:var(--accent)}
.card-hint .arr{transition:transform var(--dur) var(--ease)}
.card:hover .card-hint .arr{transform:translateX(4px)}
.card-media{height:92px;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease)}
.card:hover .card-media img{transform:scale(1.04)}
/* Project card variant */
.card--project{border:0;background:transparent;border-radius:0}
.card--project:hover{background:transparent}
.card--project .card-media{height:auto;aspect-ratio:4/3;border-radius:var(--radius-card)}
.card--project .card-body{padding:14px 0 0;gap:4px}
.card--project h3{font-size:17px;transition:color var(--dur-fast) var(--ease)}
.card--project:hover h3{color:var(--accent)}
.card--project .card-text{font-size:13.5px}
.card--project .card-meta{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-top:4px}

/* Filter */
.filter{display:flex;gap:8px;flex-wrap:wrap}
.filter button{height:38px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-btn);background:transparent;font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.04em;color:var(--fg-muted);cursor:pointer;transition:all var(--dur-fast) var(--ease)}
.filter button:hover{border-color:var(--betongrau);color:var(--fg)}
.filter button[aria-pressed="true"]{background:var(--warmweiss);border-color:var(--warmweiss);color:var(--graphit)}

.swipe-hint{display:none}

/* Benefits */
.benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.benefit .icon{color:var(--accent);width:28px;height:28px;margin-bottom:14px}
.benefit h3{margin-bottom:8px}
.benefit p{font-size:15px;color:var(--fg-muted)}

/* Process */
.process-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}
.process-steps li{display:flex;flex-direction:column;gap:10px}
.process-steps .step-no{font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:.06em;color:var(--fg-muted);padding-bottom:12px;border-bottom:1px solid var(--line)}
.process-steps li:last-child .step-no{color:var(--accent)}
.process-steps h3{font-size:17px}
.process-steps p{font-size:13.5px;color:var(--fg-muted)}

/* About */
.about-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.about-text p{margin-top:16px;color:var(--fg-muted)}
.about-text .text-link{margin-top:28px}
.about-media img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-card)}

/* Testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.testi{border:1px solid var(--line);border-radius:var(--radius-card);padding:24px 26px}
.stars{color:var(--eiche);letter-spacing:2px;font-size:14px}
.testi blockquote{margin:14px 0 16px;font-size:16.5px;line-height:1.6;color:var(--fg)}
.testi-by{font-size:12.5px;color:var(--fg-muted)}
.testi-by strong{font-family:var(--font-display);color:var(--fg)}

/* FAQ */
.faq-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.accordion{border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-head{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:20px 2px;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--fg);transition:color var(--dur-fast) var(--ease)}
.acc-head:hover{color:var(--accent)}
.acc-ico{position:relative;width:14px;height:14px;flex-shrink:0}
.acc-ico::before,.acc-ico::after{content:"";position:absolute;background:currentColor;transition:transform var(--dur) var(--ease)}
.acc-ico::before{left:0;top:6px;width:14px;height:1.5px}
.acc-ico::after{left:6px;top:0;width:1.5px;height:14px}
.acc-head[aria-expanded="true"] .acc-ico::after{transform:scaleY(0)}
.acc-body{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows var(--dur) var(--ease)}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-body>*{overflow:hidden}
.acc-body p{padding:0 2px 20px;font-size:15px;color:var(--fg-muted);max-width:64ch}

/* Contact */
.contact-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.contact-info p{margin-top:16px;color:var(--fg-muted)}
.contact-list{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.contact-list li{display:flex;align-items:center;gap:14px}
.contact-list .icon{color:var(--accent);width:20px;height:20px}
.contact-form{border:1px solid var(--line);border-radius:var(--radius-card);padding:32px;display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field label{font-family:var(--font-text);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted)}
.field .opt{text-transform:none;letter-spacing:0;font-weight:400}
.field input,.field textarea,.select-wrap select{width:100%;background:transparent;border:1px solid var(--line);border-radius:var(--radius-btn);color:var(--fg);font-family:var(--font-text);font-size:16px;transition:border-color var(--dur-fast) var(--ease)}
.field input,.select-wrap select{height:52px;padding:0 16px}
.field textarea{padding:14px 16px;line-height:1.5;resize:vertical}
.field input:hover,.field textarea:hover,.select-wrap select:hover{border-color:var(--betongrau)}
.field input:focus,.field textarea:focus,.select-wrap select:focus{outline:none;border-color:var(--accent)}
.select-wrap{position:relative}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer}
.select-wrap .chev{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--fg-muted);pointer-events:none}
.field--check{flex-direction:row;align-items:flex-start;gap:12px}
.field--check input{width:20px;height:20px;flex-shrink:0;accent-color:var(--eiche);margin-top:2px}
.field--check label{text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--fg-muted);line-height:1.5}
.field--check a{text-decoration:underline;text-underline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{font-size:14px;padding:12px 16px;border-radius:var(--radius-btn)}
.form-status.ok{background:rgba(180,131,82,.14);color:var(--eiche-hell);border:1px solid rgba(180,131,82,.4)}
.form-status.err{background:rgba(163,69,47,.16);color:#e59b86;border:1px solid rgba(163,69,47,.5)}

/* Footer */
.site-footer{background:var(--tiefschwarz);border-top:1px solid var(--line)}
.footer-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;padding-top:64px;padding-bottom:48px}
.footer-brand p{margin-top:18px;font-size:14px;color:var(--fg-muted);max-width:26ch}
.footer-col h3{font-family:var(--font-text);font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--betongrau);margin-bottom:14px}
.footer-col a{font-size:14.5px;color:var(--ww-70);line-height:2.1}
.footer-col address{font-style:normal;font-size:14.5px;color:var(--ww-70);line-height:2}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:20px;padding-bottom:24px;border-top:1px solid var(--line);font-size:12.5px;color:var(--betongrau)}
.footer-bottom ul{display:flex;gap:24px}
.footer-bottom a{font-size:12.5px;color:var(--betongrau)}

/* Modal */
.modal-root{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,17,16,.82)}
.modal-root[hidden]{display:none}
.modal{display:grid;grid-template-columns:48% 52%;width:min(1180px,92vw);height:min(680px,88vh);background:var(--graphit);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-overlay)}
.modal-media{position:relative;background:var(--tiefschwarz);overflow:hidden}
.modal-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.modal-count{position:absolute;top:16px;left:16px;font-size:11px;letter-spacing:.14em;padding:6px 10px;background:rgba(15,17,16,.72);color:var(--fg);border-radius:2px}
.modal-gallery{position:absolute;left:16px;bottom:16px;display:flex;gap:8px}
.mnav{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(15,17,16,.55);border:1px solid rgba(243,240,232,.25);color:var(--fg);cursor:pointer;border-radius:2px;font-size:16px;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.mnav:hover{color:var(--accent);border-color:var(--accent)}
.modal-panel{position:relative;display:flex;flex-direction:column;min-height:0}
.modal-close{position:absolute;top:14px;right:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--graphit);border:1px solid rgba(243,240,232,.2);border-radius:2px;color:var(--fg);cursor:pointer;z-index:2;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.modal-close:hover{color:var(--accent);border-color:var(--accent)}
.modal-body{padding:44px 48px 30px;flex:1;overflow-y:auto}
.modal-body .eyebrow{margin-bottom:14px}
.modal-body h2{font-size:32px;margin:0 0 6px}
.modal-sub{font-size:16px;color:var(--fg-muted);margin-bottom:16px}
.modal-desc{font-size:16px;line-height:1.65;color:var(--ww-70);max-width:520px}
.modal-h4{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--fg);margin:26px 0 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font-size:14px;color:var(--ww-70);border:1px solid var(--line);border-radius:2px;padding:7px 13px}
.datalist{margin-top:8px}
.datalist .row{display:flex;justify-content:space-between;gap:24px;padding:11px 0;border-top:1px solid var(--line);font-size:15px}
.datalist .row .k{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:500;padding-top:2px;flex-shrink:0}
.datalist .row .v{color:var(--fg);text-align:right}
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.svc-list .row{display:flex;gap:14px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px;color:var(--ww-70)}
.svc-list .row .n{font-family:var(--font-display);font-weight:600;font-size:12px;color:var(--eiche)}
.modal-note{font-size:12.5px;line-height:1.6;color:var(--fg-muted);max-width:520px;margin-top:18px}
.modal-cta{margin-top:26px;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 28px;background:var(--eiche);color:var(--graphit);border:0;border-radius:var(--radius-btn);font-family:var(--font-display);font-weight:600;font-size:15px;cursor:pointer;transition:background var(--dur-fast) var(--ease)}
.modal-cta:hover{background:var(--eiche-dunkel);color:var(--graphit)}
.modal-cta .arr{transition:transform var(--dur) var(--ease)}
.modal-cta:hover .arr{transform:translateX(4px)}
.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding:12px 20px;border-top:1px solid var(--line)}
.modal-foot .count{font-size:12.5px;letter-spacing:.12em;color:var(--fg-muted)}

/* Entrance animation */
@keyframes ovIn{from{opacity:0}to{opacity:1}}
@keyframes modIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.modal-root{animation:ovIn var(--dur) var(--ease) both}
.modal{animation:modIn var(--dur-slow) var(--ease) both}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .about-inner,.faq-inner,.contact-inner{grid-template-columns:1fr;gap:40px}
  .process-steps{grid-template-columns:1fr 1fr;gap:28px 20px}
  .footer-inner{grid-template-columns:1fr 1fr;gap:36px 24px}
}
@media(max-width:820px){
  .nav-list,.nav-cta{display:none}
  .burger{display:block}
  .hero-content{padding-top:96px}
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%}
  .hero-stats{gap:24px}
  /* Karten einzeln, horizontal swipebar */
  .card-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 calc(var(--page-pad) * -1);padding:2px var(--page-pad) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .card-grid::-webkit-scrollbar{display:none}
  .card-grid>*{scroll-snap-align:center;flex:0 0 82%}
  .swipe-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted)}
  .section-head--split{align-items:flex-start}
  .testi-grid{display:flex;flex-direction:column}
  .field-row{grid-template-columns:1fr}
  /* Modal → Vollbild, gestapelt */
  .modal-root{padding:0}
  .modal{display:block;width:100vw;height:100vh;border-radius:0;overflow-y:auto}
  .modal-media{aspect-ratio:4/3;height:auto}
  .modal-body{padding:22px 20px 28px;overflow:visible}
  .svc-list{grid-template-columns:1fr}
}
@media(max-width:560px){
  .process-steps{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .card-media img,.card:hover .card-media img{transform:none}
}
