/* SS CARS — Responsive Hardening + Language Switcher
   v20260412 — supplements style.css, loaded on all public pages */

/* ── Global overflow guard ───────────────────────────────── */
html,body{overflow-x:hidden;}

/* ── Button: enforce 44px touch target everywhere ─────────── */
.btn{min-height:44px;}

/* ── Language Switcher container ────────────────────────── */
.lang-switch{
  display:flex;
  align-items:center;
  flex-shrink:0;
}

/* ── Lang Dropdown ─────────────────────────────────────── */
.lang-drop{position:relative;}

.lang-drop__toggle{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 10px 5px 12px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.13);
  border-radius:8px;
  color:var(--text);
  font-family:inherit;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.06em;
  cursor:pointer;
  transition:background .18s,border-color .18s;
  white-space:nowrap;
  min-height:34px;
}
.lang-drop__toggle:hover,
.lang-drop__toggle[aria-expanded="true"]{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.24);
}
.lang-drop__chevron{
  flex-shrink:0;
  transition:transform .18s ease;
  color:var(--muted);
}
.lang-drop__toggle[aria-expanded="true"] .lang-drop__chevron{
  transform:rotate(180deg);
}

/* Desktop: floating panel */
.lang-drop__menu{
  list-style:none;
  margin:0;
  padding:4px;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:148px;
  background:var(--panel-2);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.55);
  z-index:300;
}
.lang-drop__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:8px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:600;
  text-decoration:none;
  transition:background .15s,color .15s;
}
.lang-drop__item:hover{
  background:rgba(255,255,255,.07);
  color:var(--text);
}
.lang-drop__code{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.07em;
  color:var(--accent);
  min-width:20px;
}
.lang-drop__name{font-size:.82rem;}

/* Mobile: inline (static) to avoid nav overflow clipping */
@media(max-width:879px){
  .nav .lang-switch{
    padding-top:10px;
    margin-top:4px;
    border-top:1px solid var(--line);
    justify-content:center;
  }
  .lang-drop{width:100%;}
  .lang-drop__toggle{width:100%;justify-content:center;}
  .lang-drop__menu{
    position:static;
    box-shadow:none;
    background:transparent;
    border:none;
    border-radius:0;
    padding:6px 0 0;
    margin-top:8px;
    min-width:0;
  }
  .lang-drop__item{justify-content:center;}
}

/* ── Mobile nav: force column (fix style.css bug side-effect) */
@media(max-width:879px){
  .nav{
    flex-direction:column !important;
  }
}

/* Desktop: ensure nav-toggle stays hidden even if JS adds it */
@media(min-width:880px){
  .nav-toggle{display:none !important;}
}

/* ── Visible Form Labels ─────────────────────────────────── */
.form-label{
  display:block;
  font-size:.84rem;
  font-weight:700;
  color:var(--muted);
  margin-bottom:5px;
  letter-spacing:.01em;
}
.form-field{
  display:flex;
  flex-direction:column;
}

/* ── Form: stack buttons full-width on small screens ─────── */
@media(max-width:599px){
  .form-actions{
    flex-direction:column;
  }
  .form-actions .btn{
    width:100%;
    justify-content:center;
  }
  .booking-form-actions .btn--primary,
  .booking-form-actions .btn--ghost{
    flex:none;
    width:100%;
  }
}

/* ── Service card actions: stack on very small screens ────── */
@media(max-width:479px){
  .service-card__actions{
    flex-direction:column;
  }
  .service-card__actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* ── Hero CTA buttons: wrap cleanly ──────���──────────────── */
@media(max-width:479px){
  .hero__content .flex-wrap-10 .btn{
    flex:1 1 140px;
  }
}

/* ── CTA band: proper mobile stack ──────────────────────── */
@media(max-width:599px){
  .cta-band .flex-wrap-10 .btn{
    flex:1 1 140px;
  }
}

/* ── Realisation media: safe image rendering ─────────────── */
.realisation-card__media{
  overflow:hidden;
}
.realisation-card__media img{
  width:100%;
  height:auto;
  max-height:260px;
  object-fit:cover;
  display:block;
}

/* ── Car card: consistent image height ──────────────────── */
.car-card__media img{
  width:100%;
  object-fit:cover;
  display:block;
}

/* ── Trust marquee: no overflow ─────────────────────────── */
.trust-marquee{overflow-x:hidden;}

/* ── Contact / booking grids: single column on mobile ────── */
@media(max-width:639px){
  .page-contact .grid.grid-2{
    grid-template-columns:1fr;
  }
  .booking-lead-grid{
    grid-template-columns:1fr !important;
  }
}

/* ── Inclusion list: no overflow on narrow screens ────────── */
.inclusion-item{
  overflow-wrap:break-word;
  word-break:break-word;
}

/* ── Footer links: wrap cleanly on mobile ────────────────── */
@media(max-width:599px){
  .footer-links{
    justify-content:flex-start;
  }
}

/* ── Services /en /de /lt: relative path logo fix ────────── */
.services-page .brand img,
.lang-page .brand img{
  max-width:44px;
}
