/* =========================================================
   Angel Atanasov – Innenausbau
   Modern / bright / warm wood + gold accents (Logo-Tuned)
   + Service detail pages + references grid
   ========================================================= */

:root{
  --bg: #fbfaf8;
  --bg2: #ffffff;
  --text: #1e2328;
  --muted: rgba(30,35,40,.70);
  --muted2: rgba(30,35,40,.52);
  --line: rgba(30,35,40,.12);

  --brand-gold: #b79a72;
  --accent: #2f5f68;

  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 14px;

  --shadow: 0 18px 50px rgba(30,35,40,.12);
  --shadow-sm: 0 10px 26px rgba(30,35,40,.10);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,.75);

  --container: 1120px;
  --gutter: 18px;
}

/* ---------- Base ---------- */
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color: var(--text);
  line-height: 1.55;
  background:
    radial-gradient(900px 520px at 15% 0%, rgba(183,154,114,.18), transparent 60%),
    radial-gradient(900px 520px at 85% 10%, rgba(47,95,104,.10), transparent 60%),
    var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
img{ max-width:100%; display:block; }
a{ color: inherit; }
a:hover{ text-decoration:none; }

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.skip-link{
  position:absolute; left:-999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left: var(--gutter); top: var(--gutter);
  width:auto; height:auto;
  background: var(--bg2);
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  z-index: 9999;
}

.fineprint{
  font-size: .9rem;
  color: var(--muted2);
  margin: 10px 0 0;
}

.text-link{
  color: var(--accent);
  font-weight: 800;
  text-decoration:none;
}
.text-link:hover{ text-decoration: underline; }

code{
  background: rgba(183,154,114,.10);
  border: 1px solid rgba(183,154,114,.22);
  padding: 0 .35em;
  border-radius: 8px;
}

hr{
  border: none;
  border-top: 1px solid var(--line);
  margin: 14px 0;
}

/* ---------- Header ---------- */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251,250,248,.72);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 0;
}

/* Header brand: text only (Logo moved to "Über uns") */
.brand{
  display:flex;
  align-items:center;
  gap: 10px;
  text-decoration:none;
}
.brand-name{
  font-weight: 950;
  letter-spacing: -0.5px;
  font-size: 1.25rem;
  line-height: 1.1;
}

/* Nav */
.site-nav{
  display:flex;
  align-items:center;
  gap: 10px;
}
.site-nav a{
  text-decoration:none;
  color: var(--muted);
  padding: 10px 12px;
  border-radius: 12px;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.site-nav a:hover{
  background: rgba(30,35,40,.06);
  color: var(--text);
  transform: translateY(-1px);
}
.nav-cta{
  color: #fff !important;
  background: linear-gradient(135deg, var(--brand-gold), var(--accent));
  box-shadow: 0 12px 28px rgba(47,95,104,.16);
}
.nav-cta:hover{ background: linear-gradient(135deg, var(--brand-gold), var(--accent)); }

/* Mobile toggle */
.nav-toggle{
  display:none;
  width: 46px; height: 46px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow-sm);
  cursor:pointer;
}
.nav-toggle-bar{
  display:block;
  width: 18px;
  height: 2px;
  background: var(--text);
  margin: 4px auto;
  border-radius: 999px;
}

/* ---------- Hero ---------- */
.hero{
  position: relative;
  padding: 58px 0 30px;
  overflow:hidden;
  border-bottom: 1px solid var(--line);
}
.hero-bg{
  position:absolute;
  inset:0;
  background: url("../img/hero.jpg") center/cover no-repeat;
  filter: saturate(1.03) contrast(1.02);
  transform: scale(1.02);
}
.hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 520px at 20% 25%, rgba(255,255,255,.70), rgba(255,255,255,.12) 58%, transparent 70%),
    linear-gradient(90deg, rgba(251,250,248,.92) 0%, rgba(251,250,248,.64) 48%, rgba(251,250,248,.18) 100%),
    linear-gradient(180deg, rgba(251,250,248,.05), rgba(251,250,248,.88));
}
.hero-inner{
  position: relative;
  display:grid;
  grid-template-columns: 1.2fr .9fr;
  gap: 18px;
  align-items:start;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.74);
  box-shadow: var(--shadow-inset);
  color: var(--muted);
  font-weight: 900;
  margin: 0 0 12px;
}
.kicker::before{
  content:"";
  width: 10px; height: 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--brand-gold), var(--accent));
  box-shadow: 0 0 0 4px rgba(183,154,114,.18);
}
.hero-copy h1{
  font-size: clamp(2.0rem, 3.8vw, 3.35rem);
  line-height: 1.07;
  margin: 0 0 12px;
  letter-spacing: -0.9px;
}
.lead{
  color: rgba(30,35,40,.72);
  font-size: 1.08rem;
  margin: 0 0 16px;
  max-width: 70ch;
}
.hero-actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 14px;
}
.hero-bullets{
  margin: 0;
  padding: 0;
  list-style: none;
  display:grid;
  gap: 8px;
  color: rgba(30,35,40,.70);
}

.hero-contact{
  margin-top: 14px;
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}
.pill{
  display:flex;
  gap: 10px;
  align-items: baseline;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(30,35,40,.12);
  box-shadow: var(--shadow-inset);
}
.pill-label{ color: var(--muted2); font-size: .9rem; font-weight: 900; }
.pill-value{ font-weight: 950; color: var(--text); text-decoration:none; }
.pill-value:hover{ text-decoration: underline; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(30,35,40,.12);
  text-decoration:none;
  cursor:pointer;
  font-weight: 950;
  letter-spacing: -0.2px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn-primary{
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, var(--brand-gold), var(--accent));
  box-shadow: 0 16px 34px rgba(47,95,104,.16);
}
.btn-primary:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 44px rgba(47,95,104,.20);
}
.btn-ghost{
  background: rgba(255,255,255,.78);
  box-shadow: var(--shadow-sm);
}
.btn-ghost:hover{ transform: translateY(-2px); }
.btn-full{ width: 100%; }

/* ---------- Cards / Forms ---------- */
.card{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  padding: 16px;
}
.card-title{ margin: 0 0 6px; font-weight: 950; letter-spacing: -0.4px; }
.card-text{ margin: 0 0 12px; color: var(--muted); }

.form{ display:grid; gap: 10px; }
label{
  display:grid;
  gap: 6px;
  font-size: .95rem;
  color: var(--muted);
  font-weight: 900;
}
input, textarea, select{
  width: 100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(30,35,40,.14);
  background: rgba(255,255,255,.88);
  color: var(--text);
  outline: none;
  transition: box-shadow .18s ease, border-color .18s ease;
}
input:focus, textarea:focus, select:focus{
  border-color: rgba(183,154,114,.55);
  box-shadow: 0 0 0 5px rgba(183,154,114,.20);
}
.row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.checkbox{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color: var(--muted);
  font-weight: 800;
}
.checkbox input{
  width: 18px; height: 18px;
  margin-top: 2px;
  accent-color: var(--brand-gold);
}

/* ---------- Trust strip ---------- */
.trust{ padding: 18px 0; }
.trust-inner{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.trust-item{
  border-radius: 18px;
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.74);
  box-shadow: var(--shadow-sm);
  padding: 12px;
  transition: transform .18s ease;
}
.trust-item:hover{ transform: translateY(-2px); }
.trust-value{ margin: 0; font-size: 1.25rem; }
.trust-label{
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .96rem;
  font-weight: 900;
}

/* ---------- Sections ---------- */
.section{ padding: 62px 0; }
.section.alt{
  background:
    radial-gradient(900px 520px at 0% 0%, rgba(183,154,114,.10), transparent 55%),
    radial-gradient(900px 520px at 100% 20%, rgba(47,95,104,.08), transparent 55%),
    rgba(255,255,255,.40);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.section-head{ margin-bottom: 18px; }
.section-head h2{
  margin: 0 0 6px;
  font-size: clamp(1.45rem, 2.4vw, 2.05rem);
  letter-spacing: -0.4px;
}
.section-head p{
  margin: 0;
  color: var(--muted);
  max-width: 72ch;
  font-weight: 700;
}

/* ---------- Services ---------- */
.grid{ display:grid; gap: 14px; }
.cards{ grid-template-columns: repeat(3, minmax(0, 1fr)); }

.service-card{
  position: relative;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-sm);
  padding: 0;
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.service-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 20px 55px rgba(30,35,40,.14);
  border-color: rgba(183,154,114,.26);
}
.service-link{
  display:block;
  padding: 16px;
  text-decoration:none;
}
.service-link::before{
  content:"";
  position:absolute;
  inset: -1px;
  background: linear-gradient(135deg, rgba(183,154,114,.22), rgba(47,95,104,.10));
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events:none;
}
.service-card:hover .service-link::before{ opacity: 1; }

.service-link > *{ position: relative; }

.service-link h3{
  margin: 0 0 8px;
  font-weight: 950;
  letter-spacing: -0.35px;
}
.service-link p{
  margin: 0 0 12px;
  color: var(--muted);
  font-weight: 650;
}
.service-card.note{
  background: linear-gradient(135deg, rgba(183,154,114,.14), rgba(47,95,104,.08));
  border-color: rgba(183,154,114,.20);
}
.service-card.note .service-link::before{ display:none; }

.checklist{
  margin: 0;
  padding-left: 18px;
  color: rgba(30,35,40,.78);
  font-weight: 650;
}
.checklist li{ margin: 6px 0; }
.checklist.big li{ margin: 9px 0; }

/* ---------- Steps ---------- */
.steps{
  margin: 0;
  padding: 0;
  list-style: none;
  display:grid;
  gap: 12px;
}
.steps li{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-sm);
  padding: 16px;
  transition: transform .18s ease;
}
.steps li:hover{ transform: translateY(-2px); }
.steps h3{ margin: 0 0 6px; font-weight: 950; letter-spacing: -0.3px; }
.steps p{ margin: 0; color: var(--muted); font-weight: 650; }

/* ---------- References (5 categories) ---------- */
.refs-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.ref-card{
  border-radius: var(--radius-xl);
  overflow:hidden;
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-sm);
  text-decoration:none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.ref-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 22px 54px rgba(30,35,40,.14);
}
.ref-title{
  margin: 0;
  padding: 12px 12px 10px;
  font-weight: 950;
  letter-spacing: -0.2px;
}
.ref-card img{
  width: 100%;
  height: 190px;
  object-fit: cover;
}

/* ---------- Gallery used on detail pages ---------- */
.gallery{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.gallery-item{
  border-radius: var(--radius-xl);
  overflow:hidden;
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease;
}
.gallery-item:hover{
  transform: translateY(-3px);
  box-shadow: 0 22px 54px rgba(30,35,40,.14);
}
.gallery-item img{
  width: 100%;
  height: 230px;
  object-fit: cover;
}

/* ---------- Detail page ---------- */
.detail-hero{
  padding: 34px 0 10px;
}
.backbar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.backlink{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.80);
  box-shadow: var(--shadow-sm);
  text-decoration:none;
  font-weight: 900;
  color: var(--text);
  transition: transform .18s ease;
}
.backlink:hover{ transform: translateY(-1px); }

.detail-title{
  margin: 0 0 6px;
  font-size: clamp(1.7rem, 2.8vw, 2.4rem);
  letter-spacing: -0.6px;
}
.detail-lead{
  margin: 0 0 16px;
  color: var(--muted);
  max-width: 75ch;
  font-weight: 650;
}

.bullets{
  display:grid;
  gap: 12px;
}
.bullet{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(30,35,40,.12);
  background: rgba(255,255,255,.78);
  box-shadow: var(--shadow-sm);
  padding: 16px;
}
.bullet h3{
  margin: 0 0 6px;
  font-weight: 950;
  letter-spacing: -0.3px;
}
.bullet p{
  margin: 0;
  color: rgba(30,35,40,.78);
  font-weight: 650;
}

/* ---------- Two col / Contact ---------- */
.two-col{
  display:grid;
  grid-template-columns: 1.25fr .85fr;
  gap: 16px;
  align-items:start;
}
.contact-grid{
  display:grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 14px;
}
.contact-line{ margin: 8px 0; color: var(--muted); font-weight: 700; }

/* ---------- Footer ---------- */
.site-footer{
  border-top: 1px solid var(--line);
  background: rgba(255,255,255,.55);
  padding: 22px 0;
}
.footer-inner{
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}
.footer-links{ display:flex; gap: 10px; }
.footer-links a{
  text-decoration:none;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 12px;
  transition: background .18s ease, transform .18s ease;
}
.footer-links a:hover{
  background: rgba(30,35,40,.06);
  transform: translateY(-1px);
  color: var(--text);
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px){
  .refs-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px){
  .hero-inner{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .two-col{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .trust-inner{ grid-template-columns: 1fr; }
}
@media (max-width: 760px){
  .brand{ min-width: 0; }
  .brand-mark{ width: 70px; height: 70px; }
  .nav-toggle{ display:block; }
  .site-nav{
    position: absolute;
    right: var(--gutter);
    top: 92px;
    width: min(360px, calc(100vw - (var(--gutter) * 2)));
    display:none;
    flex-direction: column;
    gap: 6px;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid rgba(30,35,40,.12);
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
    box-shadow: var(--shadow);
  }
  .site-nav.is-open{ display:flex; }
  .site-nav a{ width: 100%; }
  .row{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: 1fr; }
  .gallery-item img{ height: 200px; }
  .refs-grid{ grid-template-columns: 1fr; }
  .ref-card img{ height: 220px; }
}
@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}


/* ---------- About logo card ---------- */
.logo-card img{
  width: 100%;
  height: 260px;
  object-fit: contain;
  padding: 14px;
}
@media (max-width: 760px){
  .logo-card img{ height: 220px; }
}
