/* ==========================================================================
   Reinigung Zentral — Global CSS
   Paste into: Elementor → Site Settings → Custom CSS
   (or enqueue from the Hello Elementor child theme)
   Nothing here depends on a plugin. Do not rename the tokens.
   ========================================================================== */

:root{
  --rz-black:#0A0A0A;         /* page background, dark sections */
  --rz-black-soft:#161616;    /* dark button hover */
  --rz-gold:#C9A227;          /* primary accent */
  --rz-gold-light:#E3BE45;    /* accent hover */
  --rz-white:#FFFFFF;
  --rz-sand:#F4F3F0;          /* light section background */
  --rz-grey:#6B6B6B;          /* body text on light */
  --rz-line-dark:rgba(255,255,255,0.14);
  --rz-line-light:rgba(10,10,10,0.12);
  --rz-ink-dark:rgba(255,255,255,0.82);   /* body text on dark */
  --rz-shadow-card:0 12px 34px rgba(10,10,10,0.06);
  --rz-shadow-panel:0 18px 44px rgba(10,10,10,0.07);
  --rz-ease:cubic-bezier(.16,1,.3,1);
  --rz-container:1328px;      /* Elementor content width */
  --rz-gutter:24px;
  --rz-radius-card:20px;
  --rz-radius-panel:24px;
  --rz-radius-img:16px;
  --rz-header-h:128px;
}

/* ---------- Fonts -------------------------------------------------------
   Upload the five TTFs in /assets/fonts as an Elementor Pro Custom Font
   named exactly "Google Sans" (300/400/500/600/700 + italic 400).
   Google Sans is not licensed for general web use — if the client has no
   licence, switch every font-family to Raleway (Google Fonts) and keep the
   same weights. Declared here only if you enqueue fonts from the theme. */
body, .elementor-widget-container{
  font-family:"Google Sans","Raleway","Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
body{background:var(--rz-black);}

a{color:var(--rz-gold);text-decoration:none;}
a:hover{color:var(--rz-gold-light);}

/* ---------- Type scale (desktop / tablet / mobile) ---------------------- */
.rz-h1{font-size:96px;line-height:.98;font-weight:600;letter-spacing:-.02em;color:var(--rz-white);margin:0;text-wrap:pretty;}
.rz-h1-sub{font-size:clamp(38px,5.4vw,76px);line-height:1.02;font-weight:300;letter-spacing:-.02em;margin:0;text-wrap:pretty;hyphens:auto;overflow-wrap:break-word;}
.rz-h2{font-size:68px;line-height:1.02;font-weight:300;letter-spacing:-.015em;margin:0;text-wrap:pretty;}
.rz-h3{font-size:clamp(32px,4.4vw,60px);line-height:1.06;font-weight:300;letter-spacing:-.015em;margin:0;}
.rz-eyebrow{font-size:12px;line-height:1.2;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;}
.rz-label{font-size:19px;line-height:1.2;font-weight:500;letter-spacing:.4px;text-transform:uppercase;}
.rz-body{font-size:16px;line-height:1.55;}
.rz-small{font-size:14px;line-height:1.5;}
@media(max-width:1024px){
  .rz-h1{font-size:64px;}
  .rz-h2{font-size:48px;}
}
@media(max-width:767px){
  .rz-h1{font-size:40px;line-height:1.04;}
  .rz-h2{font-size:34px;line-height:1.05;}
  :root{--rz-header-h:84px;}
}

/* ---------- Buttons (pill + inline arrow badge) ------------------------- */
.rz-btn{display:inline-flex;align-items:center;gap:16px;border-radius:999px;font-size:16px;font-weight:500;
        padding:8px 8px 8px 30px;transition:background .25s var(--rz-ease),transform .2s ease-out;}
.rz-btn__arrow{width:42px;height:42px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:17px;}
.rz-btn--gold{background:var(--rz-gold);color:var(--rz-black);box-shadow:0 12px 34px rgba(201,162,39,.45);}
.rz-btn--gold:hover{background:var(--rz-gold-light);color:var(--rz-black);}
.rz-btn--gold .rz-btn__arrow{background:var(--rz-black);color:var(--rz-gold);}
.rz-btn--dark{background:var(--rz-black);color:var(--rz-gold);}
.rz-btn--dark:hover{background:var(--rz-black-soft);}
.rz-btn--dark .rz-btn__arrow{background:var(--rz-gold);color:var(--rz-black);}
.rz-btn--white{background:var(--rz-white);color:var(--rz-black);padding:13px 28px;}
.rz-btn--white:hover{background:var(--rz-gold);color:var(--rz-black);}

/* ---------- Cards ------------------------------------------------------- */
.rz-card{background:var(--rz-white);border-radius:var(--rz-radius-card);padding:34px;box-shadow:var(--rz-shadow-card);
         transition:transform .2s ease-out;}
.rz-card:hover{transform:translateY(-4px);}
.rz-card--dark{background:rgba(255,255,255,.04);border:1px solid var(--rz-line-dark);color:var(--rz-white);box-shadow:none;}
.rz-img{border-radius:var(--rz-radius-img);object-fit:cover;width:100%;}

/* ---------- Header ------------------------------------------------------ */
#rz-header{transition:background .35s ease,border-color .35s ease,transform .55s var(--rz-ease);
           border-bottom:1px solid transparent;}
#rz-header.rz-solid{background:rgba(5,5,5,.72);backdrop-filter:blur(10px);border-bottom-color:rgba(255,255,255,.08);}
#rz-header.rz-hidden{transform:translateY(-100%);}
/* Leistungen submenu: opens on hover, square bottom-left corner */
#rz-header .sub-menu{background:var(--rz-black);border:1px solid var(--rz-line-dark);
  border-radius:16px 16px 16px 0;padding:12px;box-shadow:0 24px 56px rgba(0,0,0,.55);}
#rz-header .sub-menu a{border-radius:10px;font-size:15px;color:var(--rz-white);padding:11px 16px;}
#rz-header .sub-menu a:hover{background:rgba(255,255,255,.08);color:var(--rz-gold);}

/* ---------- Grain overlay + custom cursor (injected by rz-interactions.js) */
#rz-noise{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}
#rz-cursor-ring{position:fixed;left:0;top:0;width:34px;height:34px;border:1px solid rgba(255,255,255,.7);
  border-radius:999px;transform:translate(-50%,-50%);pointer-events:none;z-index:9998;opacity:0;
  mix-blend-mode:difference;transition:width .32s var(--rz-ease),height .32s var(--rz-ease),opacity .3s ease;}
#rz-cursor-dot{position:fixed;left:0;top:0;width:5px;height:5px;border-radius:999px;background:var(--rz-gold);
  transform:translate(-50%,-50%);pointer-events:none;z-index:9999;opacity:0;}
#rz-follower{position:fixed;left:0;top:0;width:300px;height:200px;border-radius:16px;overflow:hidden;
  pointer-events:none;z-index:40;opacity:0;transform:translate(-50%,-50%);transition:opacity .25s var(--rz-ease);}
#rz-follower img{width:100%;height:100%;object-fit:cover;}
@media(pointer:coarse){#rz-cursor-ring,#rz-cursor-dot,#rz-follower{display:none;}}

/* ---------- Intro splash (Startseite only) ------------------------------ */
#rz-intro{position:fixed;inset:0;z-index:9990;background:var(--rz-black);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:36px;transition:transform 1s var(--rz-ease);}
#rz-intro img{width:230px;height:auto;animation:rzDriftSlow 6s ease-in-out infinite;}
#rz-intro-count{font-size:64px;line-height:1;font-weight:300;letter-spacing:-.02em;color:var(--rz-gold);}

/* ---------- Marquee ----------------------------------------------------- */
#rz-marquee{display:flex;align-items:center;gap:44px;width:max-content;will-change:transform;}
#rz-marquee .rz-marquee-item{display:flex;align-items:center;gap:44px;font-size:19px;font-weight:500;
  letter-spacing:.4px;text-transform:uppercase;color:var(--rz-white);white-space:nowrap;}
#rz-marquee .rz-marquee-item::after{content:"";width:7px;height:7px;border-radius:999px;background:var(--rz-gold);flex:none;}

/* ---------- Accordion rows (Leistungen list, FAQ) ---------------------- */
.rz-row{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:24px;padding:34px 8px;
  border-top:1px solid var(--rz-line-light);cursor:pointer;transition:background .2s ease,padding .2s ease;}
.rz-row:hover{background:rgba(10,10,10,.03);padding-left:28px;}
.rz-row--dark{border-top-color:var(--rz-line-dark);}
.rz-row--dark:hover{background:rgba(255,255,255,.04);}

/* ---------- Keyframes --------------------------------------------------- */
@keyframes rzDrift{0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1);}
  33%{transform:translate3d(-14px,-22px,0) rotate(-2.5deg) scale(1.04);}
  66%{transform:translate3d(12px,10px,0) rotate(2deg) scale(.98);}}
@keyframes rzDriftSlow{0%,100%{transform:translate3d(0,0,0) scale(1);}50%{transform:translate3d(0,-18px,0) scale(1.03);}}
@keyframes rzSpin{to{transform:rotate(360deg);}}
@keyframes rzScrollDot{0%{transform:translateY(0);opacity:0;}30%{opacity:1;}100%{transform:translateY(18px);opacity:0;}}

/* ---------- Reveal safety net ------------------------------------------ */
/* If JS fails, nothing may stay invisible. */
.no-js [data-rz-reveal] > *{opacity:1!important;transform:none!important;clip-path:none!important;}
@media(prefers-reduced-motion:reduce){
  [data-rz-reveal] > *{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important;}
  #rz-marquee{transform:none!important;}
}
