/* =========================================================
   SCHREINEREI REINHARDT · PREMIUM SYSTEM 2026
   Global visual pass. SEO/content structure remains untouched.
========================================================= */
:root{
  --sr-green:#6f9a40;
  --sr-green-dark:#587d31;
  --sr-ink:#151b18;
  --sr-text:#53605a;
  --sr-muted:#748078;
  --sr-warm:#f7f5ef;
  --sr-paper:#fcfbf8;
  --sr-line:rgba(21,27,24,.11);
  --sr-dark:#0f1813;
  --sr-radius:22px;
  --sr-radius-sm:14px;
  --sr-shadow:0 22px 60px rgba(20,28,23,.10);
  --sr-container:1280px;
  --sr-section:clamp(72px,7vw,112px);
}

html{scroll-behavior:smooth;}
body{color:var(--sr-ink);background:var(--sr-paper);}
.container{width:min(var(--sr-container),calc(100% - 48px));margin-inline:auto;}

/* Premium typography */
main h1,main h2,main h3{color:var(--sr-ink);letter-spacing:-.035em;text-wrap:balance;}
main h1{line-height:.98;}
main h2{line-height:1.02;}
main p{color:var(--sr-text);line-height:1.65;}

/* Reusable eyebrow treatment without touching markup */
.eyebrow,.section-eyebrow,.kicker,.overline,[class*="eyebrow"]{
  letter-spacing:.09em;
  font-weight:800;
}

/* Buttons: quieter, more architectural */
.btn,.button,a.btn,[class*="btn-primary"],[class*="button-primary"]{
  border-radius:12px;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease;
}
.btn:hover,.button:hover,a.btn:hover,[class*="btn-primary"]:hover,[class*="button-primary"]:hover{
  transform:translateY(-1px);
}

/* Cards and media */
main img{max-width:100%;}
main .card,main [class*="-card"]{border-color:var(--sr-line);}
main .card img,main [class*="-card"] img{transition:transform .5s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover){main .card:hover img,main [class*="-card"]:hover img{transform:scale(1.018);}}

/* Header polish */
.site-header,.main-header,header.site-header{
  border-bottom:1px solid rgba(21,27,24,.07);
  box-shadow:0 8px 30px rgba(20,28,23,.035);
}
.site-nav > ul > li > a{letter-spacing:-.01em;}
.site-nav .dropdown{border-radius:20px;box-shadow:0 28px 70px rgba(17,24,20,.14);}

/* Premium footer: slightly more compact, no loss of content */
.site-footer-premium{background:#0d1712;}
.footer-premium-inner{padding-top:clamp(54px,5vw,82px)!important;}
.footer-premium-cta{padding-bottom:clamp(44px,4vw,64px)!important;}
.footer-premium-cta h2{letter-spacing:-.04em;line-height:1.02;}
.footer-premium-grid{padding-top:clamp(40px,4vw,58px)!important;padding-bottom:clamp(36px,3vw,50px)!important;}
.footer-premium-wordmark{opacity:.035!important;}

/* Floating consulting stays useful but visually quieter */
.floating-consulting-trigger{box-shadow:0 18px 50px rgba(11,20,31,.16);}

/* Avoid excessive section height on pages that use generic sections */
main > section{scroll-margin-top:110px;}

@media (max-width:900px){
  :root{--sr-section:64px;}
  .container{width:min(100% - 32px,var(--sr-container));}
  main h1{letter-spacing:-.045em;}
  main h2{letter-spacing:-.04em;}
}

@media (max-width:767px){
  :root{--sr-radius:18px;--sr-section:52px;}
  .container{width:calc(100% - 28px);}
  main p{line-height:1.58;}

  /* Mobile: compact footer, keep all information */
  .footer-premium-inner{padding-top:44px!important;}
  .footer-premium-cta{gap:26px!important;padding-bottom:34px!important;}
  .footer-premium-cta-copy p{margin-top:16px!important;}
  .footer-premium-grid{gap:30px!important;padding-top:34px!important;padding-bottom:30px!important;}
  .footer-premium-wordmark{display:none!important;}
  .site-footer-premium{padding-bottom:76px;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}

/* ================================================================
   HERO MASTER SYSTEM 2026-11-01
   One visual grid for all service / landing heroes.
   Page-specific content and imagery remain untouched.
   ================================================================ */
@media (min-width:981px){
  .leistungen-hero,
  .start-premium-hero{
    min-height:clamp(610px,calc(100vh - 122px),720px)!important;
    height:auto!important;
    position:relative!important;
    overflow:hidden!important;
    background:#d7ddd2!important;
  }
  .leistungen-hero-media,
  .start-premium-hero-media{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  }
  .leistungen-hero-media img,
  .start-premium-hero-media img{
    width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 50%!important;
    transform:scale(1.003)!important;filter:saturate(.94) contrast(1.025)!important;
  }
  .leistungen-hero-overlay,
  .start-premium-hero-overlay{
    position:absolute!important;inset:0!important;
    background:linear-gradient(90deg,rgba(8,12,10,.82) 0%,rgba(8,12,10,.68) 25%,rgba(8,12,10,.39) 43%,rgba(8,12,10,.13) 59%,rgba(8,12,10,.025) 73%,rgba(8,12,10,0) 100%),linear-gradient(180deg,rgba(7,10,8,.02),rgba(7,10,8,.06) 55%,rgba(7,10,8,.27))!important;
  }
  .leistungen-hero-content,
  .start-premium-hero-content{
    position:relative!important;z-index:2!important;min-height:inherit!important;
    display:grid!important;grid-template-columns:minmax(0,760px) 320px!important;
    justify-content:space-between!important;align-items:end!important;gap:64px!important;
    padding-top:88px!important;padding-bottom:58px!important;
  }
  .leistungen-hero-copy,
  .start-premium-copy{max-width:760px!important;padding:0!important;align-self:end!important;}
  .leistungen-hero-copy h1,
  .start-premium-copy h1{
    max-width:730px!important;margin:17px 0 18px!important;
    font-size:clamp(48px,4.45vw,68px)!important;line-height:1.015!important;
    letter-spacing:-.045em!important;text-wrap:balance!important;
    text-shadow:0 3px 20px rgba(0,0,0,.20)!important;
  }
  .leistungen-hero-copy>p,
  .start-premium-copy>p{
    max-width:610px!important;margin:0!important;color:rgba(255,255,255,.92)!important;
    font-size:18px!important;line-height:1.58!important;text-shadow:0 2px 14px rgba(0,0,0,.18)!important;
  }
  .leistungen-hero-actions,
  .start-premium-actions{margin-top:24px!important;gap:11px!important;}
  .hero-trustline,
  .moebel-hero-points,
  .start-premium-trustline{margin-top:16px!important;gap:7px!important;}
  .hero-trustline span,
  .moebel-hero-point,
  .start-premium-trustline span{
    min-height:30px!important;padding:5px 10px!important;border-radius:999px!important;
    font-size:.84rem!important;line-height:1.2!important;color:#fff!important;
    background:rgba(18,24,20,.20)!important;border:1px solid rgba(255,255,255,.19)!important;
    box-shadow:none!important;backdrop-filter:blur(4px)!important;
  }
  .leistungen-hero-card,
  .moebel-hero-card-premium,
  .start-premium-card{
    width:100%!important;max-width:320px!important;margin:0!important;padding:20px!important;
    justify-self:end!important;align-self:end!important;transform:none!important;
    border-radius:20px!important;color:#fff!important;
    background:linear-gradient(180deg,rgba(31,31,27,.43),rgba(31,31,27,.31))!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 18px 44px rgba(0,0,0,.11)!important;
    backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;
  }
  .leistungen-hero-card>strong,
  .moebel-hero-card-premium>strong,
  .start-premium-card>strong{font-size:20px!important;line-height:1.2!important;margin-bottom:7px!important;}
  .leistungen-hero-card>p,
  .leistungen-hero-card>span,
  .moebel-hero-card-premium>p,
  .moebel-hero-card-premium>span,
  .start-premium-card>span{font-size:.94rem!important;line-height:1.5!important;color:rgba(255,255,255,.86)!important;}
  .leistungen-hero-card-list,
  .schraenke-hero-card-list,
  .moebel-hero-card-list,
  .start-premium-card-list{margin-top:14px!important;gap:7px!important;}
  .leistungen-hero-card-list>* ,
  .schraenke-hero-card-list>* ,
  .moebel-hero-card-list>* ,
  .start-premium-card-list>*{
    padding:10px 11px!important;border-radius:12px!important;
    background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.13)!important;
  }
}
@media (min-width:981px) and (max-width:1180px){
  .leistungen-hero-content,.start-premium-hero-content{
    grid-template-columns:minmax(0,1fr) 286px!important;gap:34px!important;
  }
  .leistungen-hero-card,.moebel-hero-card-premium,.start-premium-card{max-width:286px!important;}
  .leistungen-hero-copy h1,.start-premium-copy h1{font-size:clamp(44px,4.8vw,60px)!important;}
}
@media (max-width:980px){
  .leistungen-hero,.start-premium-hero{min-height:0!important;height:auto!important;position:relative!important;overflow:hidden!important;}
  .leistungen-hero-media,.start-premium-hero-media{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;}
  .leistungen-hero-media img,.start-premium-hero-media img{width:100%!important;height:100%!important;object-fit:cover!important;filter:saturate(.94) contrast(1.02)!important;}
  .leistungen-hero-overlay,.start-premium-hero-overlay{position:absolute!important;inset:0!important;background:linear-gradient(180deg,rgba(8,12,10,.36) 0%,rgba(8,12,10,.62) 44%,rgba(8,12,10,.88) 100%)!important;}
  .leistungen-hero-content,.start-premium-hero-content{position:relative!important;z-index:2!important;display:block!important;min-height:0!important;padding-top:104px!important;padding-bottom:24px!important;}
  .leistungen-hero-copy,.start-premium-copy{width:100%!important;max-width:none!important;padding:0!important;}
  .leistungen-hero-copy h1,.start-premium-copy h1{max-width:100%!important;margin:12px 0 12px!important;font-size:clamp(2.2rem,8.7vw,3rem)!important;line-height:1!important;letter-spacing:-.043em!important;}
  .leistungen-hero-copy>p,.start-premium-copy>p{max-width:620px!important;margin:0!important;font-size:1rem!important;line-height:1.5!important;color:rgba(255,255,255,.93)!important;}
  .leistungen-hero-actions,.start-premium-actions{margin-top:18px!important;}
  .leistungen-hero-card,.moebel-hero-card-premium,.start-premium-card{display:none!important;}
  .hero-trustline,.moebel-hero-points,.start-premium-trustline{margin-top:13px!important;}
}
@media (max-width:680px){
  .leistungen-hero-content,.start-premium-hero-content{padding:92px 14px 20px!important;}
  .leistungen-hero-copy h1,.start-premium-copy h1{font-size:clamp(2.05rem,9vw,2.65rem)!important;margin:11px 0!important;}
  .leistungen-hero-copy>p,.start-premium-copy>p{font-size:.94rem!important;line-height:1.46!important;}
  .leistungen-hero-actions,.start-premium-actions{display:block!important;width:100%!important;margin-top:16px!important;}
  .leistungen-hero-actions>a:first-child,.start-premium-actions>a:first-child{display:flex!important;width:100%!important;min-height:46px!important;align-items:center!important;justify-content:center!important;}
  .leistungen-hero-actions>a:not(:first-child),.start-premium-actions>a:not(:first-child){display:none!important;}
  .hero-trustline,.moebel-hero-points,.start-premium-trustline{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
  .hero-trustline span,.moebel-hero-point,.start-premium-trustline span{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;min-height:34px!important;padding:6px 8px!important;font-size:.76rem!important;}
}

/* ================================================================
   HERO CONSISTENCY HOTFIX 2026-11-01
   Fixes: dark H1 caused by global `main h1` rule + jumping hero heights.
   ================================================================ */
/* Hero typography must always sit in the light-on-image layer. */
main :is(
  .leistungen-hero,
  .start-premium-hero,
  .wohnwelten-hero,
  .hero-editorial,
  .home-premium-hero
) h1{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 3px 20px rgba(0,0,0,.22)!important;
}

main :is(
  .leistungen-hero-copy,
  .start-premium-copy,
  .wohnwelten-hero-copy,
  .hero-editorial-copy,
  .home-premium-hero-copy
) > p{
  color:rgba(255,255,255,.93)!important;
}

/* Desktop: one fixed visual stage on every main page hero.
   Different text lengths no longer change the outer hero height. */
@media (min-width:981px){
  main :is(
    .leistungen-hero,
    .start-premium-hero,
    .wohnwelten-hero,
    .hero-editorial,
    .home-premium-hero
  ){
    height:620px!important;
    min-height:620px!important;
    max-height:620px!important;
    overflow:hidden!important;
  }

  main :is(
    .leistungen-hero-content,
    .start-premium-hero-content,
    .wohnwelten-hero-content,
    .hero-editorial-content,
    .home-premium-hero-content
  ){
    height:620px!important;
    min-height:620px!important;
    max-height:620px!important;
    box-sizing:border-box!important;
  }

  /* Same headline rhythm across the premium hero families. */
  main :is(
    .leistungen-hero-copy,
    .start-premium-copy,
    .wohnwelten-hero-copy,
    .hero-editorial-copy,
    .home-premium-hero-copy
  ) h1{
    margin-top:17px!important;
    margin-bottom:18px!important;
    font-size:clamp(48px,4.45vw,68px)!important;
    line-height:1.015!important;
    letter-spacing:-.045em!important;
  }
}

/* Mobile stays content-driven: no clipping, but the text remains white. */
@media (max-width:980px){
  main :is(
    .leistungen-hero,
    .start-premium-hero,
    .wohnwelten-hero,
    .hero-editorial,
    .home-premium-hero
  ){
    height:auto!important;
    max-height:none!important;
  }
}

/* =========================================================
   FINAL CONTRAST FIX 2026-11-01
   Bild-Heros und Bildkarten muessen ihre helle Typografie
   explizit setzen. Die globalen main h1/h2/h3 Farben duerfen
   diese Overlays nicht ueberschreiben.
========================================================= */
main :is(
  .home-premium-hero,
  .start-premium-hero,
  .leistungen-hero,
  .wohnwelten-hero,
  .hero-editorial,
  .hero-subpage,
  .kuechen-premium-hero,
  .moebel-hero-premium
) :is(h1,h2,h3),
main :is(
  .home-premium-hero,
  .start-premium-hero,
  .leistungen-hero,
  .wohnwelten-hero,
  .hero-editorial,
  .hero-subpage,
  .kuechen-premium-hero,
  .moebel-hero-premium
) :is(.hero-label,.eyebrow,.kicker,strong) {
  color:#fff !important;
}

/* Text direkt auf Fotos: immer hell, unabhaengig von globaler Heading-Farbe. */
main :is(
  .leistung-stage-content,
  .home-reference-content,
  .home-service-focus-content,
  .home-wohnwelt-content
) :is(h1,h2,h3,h4,strong,a) {
  color:#fff !important;
}
main :is(
  .leistung-stage-content,
  .home-reference-content,
  .home-service-focus-content,
  .home-wohnwelt-content
) p {
  color:rgba(255,255,255,.88) !important;
}
main :is(
  .leistung-stage-content,
  .home-reference-content,
  .home-service-focus-content,
  .home-wohnwelt-content
) > span {
  color:rgba(255,255,255,.90) !important;
}
