/*  Carrosserie Fricktal – Global Styles
    ==================================== */

/* ---------- Farb- & Schriftvariablen ---------- */
:root{
  --primary-dark:#000;
  --accent:#616161;                 /* NEU: Grau-Akzent */
  --body-font:"Poppins","Helvetica Neue",Arial,sans-serif;
}

/* ---------- Reset ---------- */
*,
*::before,
*::after{box-sizing:border-box;}

body{
font-family:var(--body-font);
background:#fff;
color:var(--primary-dark);
line-height:1.6;
-webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{ text-decoration:none; transition:color .3s ease; }

/* ---------- Buttons ---------- */
.btn-brand,
.btn-brand-outline{
padding:.75rem 1.75rem;
font-weight:500;
letter-spacing:.5px;
border-radius:2rem;
display:inline-flex;
align-items:center;
gap:.4rem;
font-size:1rem;
transition:all .3s ease;
}
.btn-brand{
background:var(--accent);
color:#fff;border:none;
}
.btn-brand:hover,
.btn-brand:focus{
background:#fff;
color:var(--accent);
box-shadow:0 0 0 2px var(--accent) inset;
}
.btn-brand-outline{
background:transparent;
border:2px solid #fff;
color:#fff;
}
.btn-brand-outline:hover,
.btn-brand-outline:focus{
background:#fff;color:var(--primary-dark);
}
.btn-link{color:var(--accent);font-weight:500}
.btn-link:hover i{transform:translateX(4px)}
.btn-brand i,
.btn-brand-outline i{transition:transform .3s ease}
.btn-brand:hover i,
.btn-brand-outline:hover i{transform:translateX(4px)}

/* ---------- Navbar ---------- */
.navbar-brand img{height:28px}
.navbar-dark .navbar-nav .nav-link{
text-transform:uppercase;
font-size:.875rem;
letter-spacing:.05em;
color:rgba(255,255,255,.85);
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active{color:#fff}

/* ---------- Hero ---------- */
.hero{
position:relative;
min-height:560px;
background:center/cover no-repeat;
display:flex;align-items:center;color:#fff;
}
.hero::after{
content:"";position:absolute;inset:0;
background:linear-gradient(180deg,rgba(0,0,0,.25)0%,rgba(0,0,0,.5)100%);
}
.hero-content{position:relative;z-index:1;max-width:560px;padding-block:2rem}
.hero h1{font-size:clamp(2.25rem,1.5rem+3vw,3.5rem);font-weight:600}
.hero p{font-size:1.125rem;margin-bottom:1.5rem}

/* ---------- Abschnitte & Titel ---------- */
.section-title{font-weight:600}

/* ---------- Cards ---------- */
.card{
border:none;border-radius:1rem;overflow:hidden;
box-shadow:0 4px 20px rgba(0,0,0,.08);
transition:transform .3s ease,box-shadow .3s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,0,0,.15)}
.card-img-top{height:200px;object-fit:cover}
@media(min-width:768px){.card-img-top{height:240px}}

/* ---------- Slider Scrollbar ---------- */
.model-slider::-webkit-scrollbar{height:8px}
.model-slider::-webkit-scrollbar-track{background:#e5e5e5;border-radius:4px}
.model-slider::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}

/* ---------- Footer ---------- */
.footer{
background:#000;color:#fff;font-size:.875rem;
}
.footer h6{font-weight:600;margin-bottom:.75rem}
.footer a{color:#bbb}
.footer a:hover{color:#fff}

/* ---------- reCAPTCHA Abstand ---------- */
.g-recaptcha{transform:scale(1);transform-origin:0 0;margin-top:.5rem}

/* ---------- Utility ---------- */
.bg-light-alt{background:#f8f9fa}

/* ---------- Floating Action Buttons Area ---------- */
.floating-buttons-area {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}


/* Contact FAB */
.floating-contact {
  position: relative !important;
  transform: translateX(120px) !important;
  opacity: 0 !important;
  transition: all 0.6s cubic-bezier(0.4, 0.0, 0.2, 1) !important;
  z-index: 10000 !important;
}

.floating-contact.slide-in {
  transform: translateX(0) !important;
  opacity: 1 !important;
}

.floating-contact.slide-in .contact-fab {
  animation: bounceIn 0.8s ease-out 0.3s both;
}

@keyframes bounceIn {
  0% { 
    transform: scale(0.3) translateY(10px); 
    opacity: 0; 
  }
  50% { 
    transform: scale(1.1) translateY(-5px); 
  }
  70% { 
    transform: scale(0.9) translateY(2px); 
  }
  100% { 
    transform: scale(1) translateY(0); 
    opacity: 1; 
  }
}

/* Subtle peek animation before slide-in */
.floating-contact.peek {
  transform: translateX(80px);
  opacity: 0.3;
  animation: peekTease 1s ease-in-out;
}

@keyframes peekTease {
  0% { transform: translateX(120px); opacity: 0; }
  30% { transform: translateX(60px); opacity: 0.6; }
  70% { transform: translateX(60px); opacity: 0.6; }
  100% { transform: translateX(80px); opacity: 0.3; }
}

/* Subtle pulse reminder animation */
@keyframes subtlePulse {
  0% { 
    transform: scale(1);
    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
  }
  50% { 
    transform: scale(1.1);
    box-shadow: 0 6px 30px rgba(37, 211, 102, 0.6);
  }
  100% { 
    transform: scale(1);
    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
  }
}

.contact-fab {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%) !important;
  color: white !important;
  border: none !important;
  box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 24px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  position: relative !important;
  z-index: 10001 !important;
}

.contact-fab::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: conic-gradient(#25D366, #128C7E, #25D366);
  filter: blur(6px);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.contact-fab:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 6px 25px rgba(37, 211, 102, 0.5);
  background: linear-gradient(135deg, #128C7E 0%, #25D366 100%);
}

.contact-fab:hover::before {
  opacity: 1;
}

.contact-fab.active {
  background: linear-gradient(135deg, var(--accent) 0%, #505050 100%);
  box-shadow: 0 4px 20px rgba(97, 97, 97, 0.4);
  transform: rotate(45deg);
}

.contact-fab.active::before {
  background: conic-gradient(var(--accent), #505050, var(--accent));
}

.contact-fab.active:hover {
  box-shadow: 0 6px 25px rgba(97, 97, 97, 0.5);
}

.contact-options {
  position: absolute !important;
  bottom: 75px !important;
  right: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(20px) !important;
  transition: all 0.3s ease !important;
  z-index: 10002 !important;
}

.contact-options.show {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

.contact-option {
  display: flex;
  align-items: center;
  background: white;
  color: var(--primary-dark);
  text-decoration: none;
  padding: 14px 18px;
  border-radius: 50px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  white-space: nowrap;
  min-width: 220px;
  gap: 14px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.contact-option:hover {
  transform: translateX(-8px) translateY(-2px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
  color: var(--primary-dark);
  background: rgba(255, 255, 255, 0.95);
}

.contact-option i {
  width: 22px;
  text-align: center;
  font-size: 18px;
}

.contact-option.whatsapp i {
  color: #25D366;
}

.contact-option.whatsapp:hover {
  border-left: 4px solid #25D366;
}

.contact-option.email i {
  color: var(--accent);
}

.contact-option.email:hover {
  border-left: 4px solid var(--accent);
}

.contact-option.phone i {
  color: #007bff;
}

.contact-option.phone:hover {
  border-left: 4px solid #007bff;
}

.contact-option-text {
  font-size: 15px;
  font-weight: 500;
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .floating-buttons-area {
    bottom: 15px;
    right: 15px;
    gap: 10px;
  }
  
  
  .floating-contact {
    transform: translateX(100px);
  }
  
  .floating-contact.peek {
    transform: translateX(70px);
  }
  
  .contact-fab {
    width: 56px;
    height: 56px;
    font-size: 22px;
  }
  
  .contact-options {
    bottom: 70px;
  }
  
  .contact-option {
    min-width: 190px;
    padding: 12px 16px;
    gap: 12px;
  }
  
  .contact-option-text {
    font-size: 14px;
  }
  
  .contact-option:hover {
    transform: translateX(-5px) translateY(-1px);
  }
}

/* ---------- Mobile overrides ---------- */
@media (max-width: 575.98px) {
  /* Ensure hero banners have enough height and spacing on very small screens */
  .hero-slim {
    height: auto !important;     /* override fixed 50vh that clips content */
    min-height: 420px;           /* make sure image + text have room */
    padding-bottom: 2.5rem;      /* extra breathing room below CTA buttons */
  }
}
