/* instrument-serif-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Instrument Serif';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/instrument-serif-v5-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* cormorant-garamond-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Cormorant Garamond';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/cormorant-garamond-v21-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


:root{
  --blue-deep:  #0F273D;
  --blue:       #14324D;
  --blue-lt:    #1F4666;
  --line:       rgba(214,229,240,0.38);
  --line-soft:  rgba(214,229,240,0.14);
  --paper:      #F7F8F7;
  --ink:        #14202B;
  --yellow:     #E8B93D;
  --whatsapp:   #25D366;
  --chocolate:  #D2691E;
    --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;


    --font-serif: "Instrument Serif", serif;
}

html{scroll-behavior:smooth;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Space Grotesk', sans-serif;
  font-size:1.02rem;
  line-height:1.65;
}

h1,h2,h3{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
}

a{color:var(--blue-lt);}
.font-serif-italic {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--chocolate);
}
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--yellow);
  color:var(--blue-deep);
  padding:0.6rem 1rem;
  z-index:2000;
  font-weight:600;
}
.skip-link:focus{left:0.5rem; top:0.5rem;}

a:focus-visible,
button:focus-visible,
.form-control:focus-visible{
  outline:2px solid var(--yellow);
  outline-offset:2px;
}

.logo {
    height: 50px;
    width: auto;
}
/* ---------- Nav ---------- */
.navbar{
  border-bottom:1px solid rgba(20,32,43,0.12);
  background:var(--paper) !important;
}
.navbar-brand{
  font-weight:700;
  font-size:1.05rem;
  color:var(--ink) !important;
}
.navbar-brand .tag{
  color:var(--blue-lt);
  font-weight:400;
}
.nav-link{
  font-size:0.92rem;
  color:var(--ink) !important;
}
.nav-link:hover{color:var(--blue-lt) !important;}
.nav-link.active{color:var(--blue-lt) !important; font-weight:600;}

/* ---------- Page header (non-home pages) ---------- */
.page-header{
  background:var(--blue-deep);
  color:#E9EEF2;
  position:relative;
  overflow:hidden;
  padding:3.5rem 0;
}
.page-header::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:40px 40px;
  pointer-events:none;
}
.page-header-inner{position:relative; z-index:1;}
.page-header h1{
  font-size:clamp(1.9rem, 3.4vw, 2.6rem);
  color:#F2F5F7;
  margin-bottom:0.5rem;
}
.page-header .lead{
  color:rgba(233,238,242,0.72);
  max-width:38rem;
  margin-bottom:0;
}
.breadcrumb-mono{
  font-size:0.82rem;
  color:var(--yellow);
  letter-spacing:0.04em;
  margin-bottom:0.75rem;
}

/* ---------- Hero / Slider (Startseite) ---------- */
.hero-slider{
  background:#1B375C;
  color:#E9EEF2;
  position:relative;
  overflow:hidden;
}
.hero-slider::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:40px 40px;
  pointer-events:none;
  z-index:0;
}
.hero-slider .carousel,
.hero-slider .carousel-inner,
.hero-slider .carousel-item{position:relative; z-index:1;}

.slide-inner{padding:4.5rem 0;}
.slide-inner h1{
  font-size:clamp(2rem, 3.7vw, 3rem);
  line-height:1.16;
  color:#F2F5F7;
}
.slide-inner .lead{
  color:rgba(233,238,242,0.72);
  max-width:33rem;
}
.doc-id{
  font-size:0.82rem;
  color:var(--yellow);
  letter-spacing:0.04em;
}

.btn-yellow{
  background:var(--yellow);
  border:1px solid var(--yellow);
  color:var(--blue-deep);
  font-weight:600;
  padding:0.65rem 1.4rem;
  border-radius:2px;
}
.btn-yellow:hover{background:#f4c752;border-color:#f4c752;color:var(--blue-deep);}

.btn-outline-light2{
  border:1px solid rgba(233,238,242,0.5);
  color:#E9EEF2;
  padding:0.65rem 1.4rem;
  border-radius:2px;
}
.btn-outline-light2:hover{background:rgba(233,238,242,0.1);color:#E9EEF2;}

.btn-whatsapp{
  background:transparent;
  border:1px solid var(--whatsapp);
  color:#7FE3A6;
  padding:0.65rem 1.2rem;
  border-radius:2px;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  font-weight:500;
}
.btn-whatsapp:hover{background:rgba(37,211,102,0.12);color:#9CF0BB;}
.btn-whatsapp svg{flex-shrink:0;}

/* Carousel controls/indicators, an Blueprint-Look angepasst */
.hero-slider .carousel-indicators{
  bottom:0.5rem;
}
.hero-slider .carousel-indicators [data-bs-target]{
  background-color:rgba(233,238,242,0.35);
  width:8px; height:8px; border-radius:50%;
  border:none;
}
.hero-slider .carousel-indicators .active{background-color:var(--yellow);}
.hero-slider .carousel-control-prev,
.hero-slider .carousel-control-next{width:5%; opacity:0.5;}
.hero-slider .carousel-control-prev:hover,
.hero-slider .carousel-control-next:hover{opacity:0.9;}
.hero-slider .carousel-control-prev-icon,
.hero-slider .carousel-control-next-icon{
  filter:invert(0.9) sepia(1) saturate(3) hue-rotate(2deg);
  width:1.4rem; height:1.4rem;
}

/* ---------- Blueprint-Skizze ---------- */
.blueprint-box::before{
    content: "";
    position: absolute;
    inset: 0;

    background-image: url("../img/668f4asfd3sd21ff4s5d31f/unfallauto.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity:0.2;
}
.blueprint-box{
  border:1px solid var(--line);
  padding:1rem;
  position:relative;

}

.marker{
  position:absolute;
  width:22px;height:22px;
  border:1.5px solid var(--yellow);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.7rem;
  font-weight:700;
  color:var(--yellow);
  background:rgba(15,39,61,0.85);
}

@media (max-width:767px){
  .blueprint-box{padding:0.75rem;}
  .marker{width:18px;height:18px;font-size:0.62rem;}
  .slide-inner h1{font-size:1.85rem;}
  .slide-inner{padding:3rem 0;}
}

/* ---------- Trust bar ---------- */
.trust-bar{border-bottom:1px solid rgba(20,32,43,0.12);}
.trust-item{font-size:0.9rem;}
.trust-item .num{
  font-weight:700;
  font-size:1.55rem;
  color:var(--blue-lt);
  display:block;
}

/* ---------- Sections ---------- */
section{padding:4.5rem 0;}
@media (max-width:767px){section{padding:3rem 0;}}

.section-line{
  border:none;
  border-top:1px solid rgba(20,32,43,0.12);
  margin:0;
}
.eyebrow{
  font-size:0.85rem;
  color:var(--blue-lt);
  font-weight:600;
  margin-bottom:0.5rem;
}

/* ---------- Leistungen (Cards) ---------- */
.service{
  border:1px solid rgba(20,32,43,0.15);
  padding:1.4rem;
  height:100%;
  position:relative;
}
.service .corner{
  position:absolute;
  top:-1px; left:-1px;
  width:10px; height:10px;
  border-top:2px solid var(--blue-lt);
  border-left:2px solid var(--blue-lt);
}
.service h3{font-size:1.05rem;margin-bottom:0.5rem;}
.service p{font-size:0.92rem;color:rgba(20,32,43,0.68);margin-bottom:0.75rem;}
.service .service-link{font-size:0.86rem; font-weight:600;}

/* ---------- Ablauf ---------- */
.step{
  display:flex;
  gap:1.1rem;
  padding:1.3rem 0;
  border-bottom:1px solid rgba(20,32,43,0.12);
}
.step:last-child{border-bottom:none;}
.step .idx{
  font-weight:700;
  font-size:1.1rem;
  color:var(--blue-lt);
  min-width:2.4rem;
}
.step h3{font-size:1.02rem;margin-bottom:0.3rem;}
.step p{font-size:0.92rem;color:rgba(20,32,43,0.68);margin-bottom:0;}

/* ---------- Unabhängig ---------- */
.unabh{
  background:#EEF2F5;
  border:1px solid rgba(20,32,43,0.12);
  border-left:4px solid var(--yellow);
  padding:2.2rem 2.4rem;
}

/* ---------- Über ---------- */
.portrait{
  aspect-ratio:1/1;
  background:#EEF2F5;
  border:1px solid rgba(20,32,43,0.15);
  position:relative;
}
.portrait::after{
  content:"FOTO";
  font-size:0.75rem;
  color:rgba(20,32,43,0.35);
  position:absolute;
  bottom:1rem; left:1rem;
}

/* ---------- Kontakt ---------- */
.contact-block{background:var(--blue-deep); color:#E9EEF2;}
.contact-block h2{color:#F2F5F7;}
.contact-line{
  border-top:1px solid var(--line-soft);
  padding:0.85rem 0;
  display:flex;
  justify-content:space-between;
  font-size:0.94rem;
}
.contact-line:last-child{border-bottom:1px solid var(--line-soft);}
.contact-line span:first-child{color:rgba(233,238,242,0.5);}

.map-block{
  background:#0C2033;
  border:1px solid var(--line-soft);
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(233,238,242,0.4);
  font-size:0.85rem;
}

.form-control{
  background:transparent;
  border:1px solid var(--line);
  color:#E9EEF2;
  border-radius:2px;
}
.form-control:focus{
  background:transparent;
  color:#E9EEF2;
  border-color:var(--yellow);
  box-shadow:0 0 0 1px var(--yellow);
}
.form-control::placeholder{color:rgba(233,238,242,0.38);}
label{font-size:0.85rem;color:rgba(233,238,242,0.6);margin-bottom:0.3rem;}

/* Kontaktseite: helles Formular (auf paper statt blue-deep) */
.form-control-light{
  background:#fff;
  border:1px solid rgba(20,32,43,0.2);
  color:var(--ink);
  border-radius:2px;
}
.form-control-light:focus{
  background:#fff;
  color:var(--ink);
  border-color:var(--blue-lt);
  box-shadow:0 0 0 1px var(--blue-lt);
}
label.label-dark{font-size:0.85rem;color:rgba(20,32,43,0.65);margin-bottom:0.3rem;}

/* ---------- Sticky WhatsApp Button (global) ---------- */
.wa-float{
  position:fixed;
  bottom:1.25rem;
  right:1.25rem;
  z-index:1500;
  background:var(--whatsapp);
  color:#fff;
  width:52px;
  height:52px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
}
.wa-float:hover{background:#1fb757; color:#fff;}

/* ---------- Sticky Rückruf Button + Panel (global) ---------- */
.cb-float{
  position:fixed;
  bottom:5.15rem;
  right:1.25rem;
  z-index:1500;
  background:var(--yellow);
  color:var(--blue-deep);
  width:52px;
  height:52px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
  border:none;
  cursor:pointer;
}
.cb-float:hover{background:#f4c752;}
.cb-float[aria-expanded="true"]{background:var(--blue-deep); color:var(--yellow);}

.cb-panel{
  position:fixed;
  bottom:9.2rem;
  right:1.25rem;
  z-index:1500;
  width:min(320px, calc(100vw - 2.5rem));
  background:#e8ebe9;
  color:var(--blue-deep);
  border:3px solid #F4C752;
  border-radius:4px;
  padding:1.3rem;
  box-shadow:0 12px 28px rgba(0,0,0,0.35);
  display:none;
}
.cb-panel.is-open{display:block;}
.cb-panel h3{
  font-size:1.02rem;
  color:var(--ink);
  margin-bottom:0.3rem;
}
.cb-panel p{
  font-size:0.85rem;
  color:var(--blue-deep);
  margin-bottom:0.9rem;
}
.cb-panel label{font-size:0.8rem; color:var(--ink); margin-bottom:0.25rem;}
.cb-panel .form-control{color: rgba(23,18,24);border: 1px solid var(--chocolate);margin-bottom:0.7rem; font-size:0.92rem; padding:0.5rem 0.7rem;}
.cb-panel .form-control::placeholder {
    color: rgba(23,18,24,0.38);
}
.cb-panel-close{
  position:absolute;
  top:0.6rem;
  right:0.6rem;
  background:transparent;
  border:none;
  color:var(--blue-deep);
  font-size:1.1rem;
  line-height:1;
  cursor:pointer;
  padding:0.25rem;
}
.cb-panel-close:hover{color:#E9EEF2;}
.cb-success{
  display:none;
  font-size:0.88rem;
  color:#9CF0BB;
  padding-top:0.4rem;
}
.cb-success.is-shown{display:block;}

@media (max-width:420px){
  .cb-panel{right:0.75rem; bottom:8.6rem;}
  .cb-float{right:0.75rem;}
  .wa-float{right:0.75rem;}
}

/* ---------- Footer ---------- */
footer{
  background:var(--blue-deep);
  border-top:1px solid var(--line-soft);
  color:rgba(233,238,242,0.5);
  font-size:0.85rem;
}
footer a{color:rgba(233,238,242,0.72);text-decoration:none;}
footer a:hover{color:#E9EEF2;}
