/* T&R Gebäude Service – gemeinsame Basis (Reset, Header/Nav/Footer). Seitenspezifisches CSS bleibt inline. */

@font-face{
  font-family:'Inter'; font-style:normal; font-weight:100 900; font-display:swap;
  src:url('../fonts/inter-variable.woff2') format('woff2');
}



*{box-sizing:border-box; margin:0; padding:0;}

html{ overflow-x:hidden; max-width:100%; }

body{ overflow-x:hidden; max-width:100%; }

img, svg, video, iframe{ max-width:100%; }

h1{ font-family:'Inter', sans-serif; font-weight:700; letter-spacing:0.04em; line-height:1.15; }

h2{ font-family:'Inter', sans-serif; font-weight:600; letter-spacing:-0.005em; line-height:1.25; }

h3,h4{ font-family:'Inter', sans-serif; font-weight:600; letter-spacing:-0.005em; line-height:1.25; }

header{ background:var(--paper); color:#fff; position:sticky; top:0; z-index:50; }

.nav-wrap{ max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:16px 24px; }

.logo-img{ height:109px; width:auto; display:block; animation: logoIntro .8s cubic-bezier(.2,.9,.3,1.3); }

@keyframes logoIntro{ from{ opacity:0; transform:scale(.7) translateY(-6px); } to{ opacity:1; transform:scale(1) translateY(0); } }

.has-dropdown{ position:relative; }

.dropdown-menu{
    position:absolute; top:100%; left:0; background:#24384A; min-width:170px;
    border-radius:8px; box-shadow:0 12px 28px rgba(0,0,0,.2); padding:14px 8px 8px; display:none; z-index:100;
  }

.has-dropdown:hover .dropdown-menu{ display:block; }

.dropdown-menu a{ display:block; color:#fff !important; opacity:1 !important; padding:8px 12px; font-size:13.5px; border-radius:6px; }

.dropdown-menu a:hover{ background:#2E4658; }

.nav-cta{ display:flex; align-items:center; gap:10px; margin-left:32px; }

.hamburger{ display:none; background:none; border:none; color:#fff; font-size:24px; cursor:pointer; padding:4px 8px;}

.mobile-menu{ display:none; flex-direction:column; background:var(--ink); border-top:1px solid rgba(255,255,255,.12);}

.mobile-menu.open{ display:flex; }

.mobile-menu a{ color:#fff; text-decoration:none; padding:14px 24px; font-size:14.5px; border-bottom:1px solid rgba(255,255,255,.08);}

.mobile-menu .mm-cta{ font-weight:500; }

.footer-search-wrap{ text-align:center; padding:20px 24px 0; background:var(--ink); }

.footer-search-link{ display:inline-flex; align-items:center; gap:8px; color:#9a9691; text-decoration:none; font-family:'Inter',sans-serif; font-size:13.5px; font-weight:500; padding:12px 10px; border-radius:8px; transition:color .25s ease; }

.footer-search-link svg{ transition:transform .25s ease; flex-shrink:0; }

.footer-search-link:hover, .footer-search-link:focus-visible{ color:#fff; }

.footer-search-link:hover svg, .footer-search-link:focus-visible svg{ transform:scale(1.15); }

.footer-search-link:focus-visible{ outline:2px solid var(--orange); outline-offset:2px; }

@media(max-width:600px){ .footer-search-link{ padding:14px 10px; font-size:14px; } }

/* Outline-Button: transparent, füllt sich erst bei Hover mit der Markenfarbe (z. B. privatkunden.html Hero-CTA, news/wissen Weitere-Kanäle) */
.btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 24px; border-radius:26px; font-weight:500; font-size:14px;
  text-decoration:none; background:transparent; border:1.5px solid var(--orange); color:#fff;
  transition:background .25s ease, transform .3s ease, box-shadow .3s ease;
}

.btn-ghost:hover{ background:var(--orange); transform:translateY(-4px); box-shadow:0 20px 40px rgba(0,0,0,.35); }

@media(prefers-reduced-motion:reduce){ .btn-ghost{ transition:none; } .btn-ghost:hover{ transform:none; } }

/* Kleiner Pill-Button (Header-CTAs "Anrufen"/"Termin anfragen" etc.) — Größe/Form einheitlich, Farbe bleibt je Seite gesetzt */
.btn-mini{ font-size:13px; padding:9px 14px; border-radius:24px; font-weight:500; text-decoration:none; white-space:nowrap; }
