/* =========================================================
   Kontakt + Händlersuche · Rokamat
   ========================================================= */

/* HERO */
.ct-hero{
  background:#fff;
  padding:72px 0 56px;
  border-bottom:1px solid var(--c-rule-light, #e9e6e1);
}
.ct-hero-inner{
  display:grid;
  grid-template-columns: minmax(0,1fr) 420px;
  gap:80px;
  align-items:end;
}
.ct-h1{
  font-family:'Roboto',system-ui,sans-serif;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  font-size: clamp(48px, 6.6vw, 96px);
  line-height: .92;
  letter-spacing:-0.02em;
  color:#0b0b0c;
  margin:14px 0 22px;
}
.ct-h1 .thin{
  font-weight:300;
  font-style:normal;
  color:#666;
}
.ct-lede{
  font-family:'Roboto',system-ui,sans-serif;
  font-size:17px;
  line-height:1.55;
  color:#3a3a3a;
  max-width:520px;
  margin:0;
  font-weight:300;
}

.ct-hero-stats{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.cs-stat{
  display:block;
  background:#0b0b0c;
  color:#fff;
  padding:22px 24px 24px;
  text-decoration:none;
  border:1px solid #0b0b0c;
  transition: background .2s, transform .2s;
}
.cs-stat:hover{
  background:#1a1a1a;
  transform: translateX(-4px);
}
.cs-stat .cs-k{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#ea5b0a;
  font-weight:700;
  margin-bottom:8px;
}
.cs-stat .cs-v{
  font-family:'Roboto',sans-serif;
  font-size:28px;
  font-weight:900;
  font-style:italic;
  letter-spacing:-0.01em;
  line-height:1;
  margin-bottom:8px;
  text-transform:uppercase;
}
.cs-stat .cs-meta{
  font-size:12px;
  color:rgba(255,255,255,.55);
  letter-spacing:.02em;
}

/* PRIMARY: form + side */
.ct-primary{
  background:#f5f2ed;
  padding:96px 0;
}
.ct-primary-grid{
  display:grid;
  grid-template-columns: minmax(0,1fr) 380px;
  gap:64px;
  align-items:start;
}

.ct-block-head{
  margin-bottom:32px;
}
.ct-block-head h2{
  font-family:'Roboto',sans-serif;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  font-size: clamp(36px, 4.4vw, 56px);
  line-height:.95;
  letter-spacing:-0.02em;
  color:#0b0b0c;
  margin:8px 0 0;
}

/* form */
.ct-form-wrap{
  background:#fff;
  padding:48px;
  border:1px solid #e9e6e1;
}
.ct-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.ct-row{
  display:block;
}
.ct-row.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.ct-form label{
  display:block;
}
.ct-form label > span{
  display:block;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#555;
  margin-bottom:8px;
}
.ct-form label > span em{
  color:#ea5b0a;
  font-style:normal;
}
.ct-form input[type="text"],
.ct-form input[type="email"],
.ct-form input[type="tel"],
.ct-form textarea{
  width:100%;
  font-family:'Roboto',system-ui,sans-serif;
  font-size:15px;
  color:#0b0b0c;
  background:#fafafa;
  border:1px solid #e0ddd6;
  padding:14px 16px;
  outline:0;
  transition:border-color .15s, background .15s;
}
.ct-form input:focus,
.ct-form textarea:focus{
  border-color:#0b0b0c;
  background:#fff;
}
.ct-form input::placeholder,
.ct-form textarea::placeholder{
  color:#999;
}
.ct-form textarea{
  resize:vertical;
  min-height:140px;
  line-height:1.5;
}
.ct-row.consent{
  margin-top:6px;
}
.ct-consent{
  display:flex !important;
  gap:12px;
  align-items:flex-start;
  font-size:13px !important;
  color:#3a3a3a;
  line-height:1.5;
  cursor:pointer;
}
.ct-consent input{
  margin-top:3px;
  accent-color:#ea5b0a;
  flex-shrink:0;
}
.ct-consent span{
  font-size:13px !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-weight:400 !important;
  color:#3a3a3a !important;
  margin:0 !important;
}
.ct-consent a{ color:#0b0b0c; text-decoration:underline; }
.ct-consent em{ color:#ea5b0a; font-style:normal; }

.ct-row.submit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:8px;
  flex-wrap:wrap;
  gap:12px;
}
.ct-submit{
  display:inline-flex;
  align-items:center;
  gap:14px;
  background:#ea5b0a;
  color:#fff;
  border:0;
  padding:18px 28px;
  font-family:'Roboto',sans-serif;
  font-weight:700;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  transition: background .15s, transform .15s;
}
.ct-submit:hover{
  background:#0b0b0c;
  transform: translateX(2px);
}
.ct-submit .arrow{
  font-weight:400;
  font-size:18px;
}
.ct-required{
  font-size:12px;
  color:#888;
  letter-spacing:.04em;
}
.ct-ok{
  background:#0b0b0c;
  color:#fff;
  padding:18px 22px;
  font-size:14px;
  border-left:4px solid #ea5b0a;
  margin-top:12px;
}
.ct-ok strong{ color:#ea5b0a; margin-right:6px; }

/* SIDE */
.ct-side{
  display:flex;
  flex-direction:column;
  gap:16px;
  position:sticky;
  top:96px;
}
.ct-card{
  background:#fff;
  border:1px solid #e9e6e1;
  padding:28px 28px 26px;
}
.ct-card-eyebrow{
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:700;
  color:#ea5b0a;
  margin-bottom:10px;
}
.ct-card h3{
  font-family:'Roboto',sans-serif;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  font-size:22px;
  letter-spacing:-0.01em;
  margin:0 0 18px;
  color:#0b0b0c;
}
.ct-hours{
  list-style:none;
  margin:0 0 18px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.ct-hours li{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:9px 0;
  border-bottom:1px solid #f1eee8;
  font-size:14px;
  font-variant-numeric: tabular-nums;
}
.ct-hours li:last-child{ border-bottom:0; }
.ct-hours .d{ color:#0b0b0c; font-weight:500; }
.ct-hours .t{ color:#666; font-feature-settings:"tnum"; }
.ct-hours li.off .d,
.ct-hours li.off .t{ color:#bbb; }

.ct-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:600;
  padding:8px 12px;
  background:#f5f2ed;
  letter-spacing:.01em;
}
.ct-status.open{ color:#0b0b0c; }
.ct-status .dot{
  width:8px; height:8px; border-radius:50%;
  background:#22a06b;
  box-shadow: 0 0 0 4px rgba(34,160,107,.18);
  animation: ctpulse 2.4s ease-in-out infinite;
}
@keyframes ctpulse{
  0%,100%{ box-shadow: 0 0 0 4px rgba(34,160,107,.18); }
  50%{ box-shadow: 0 0 0 8px rgba(34,160,107,.05); }
}

.ct-addr{
  font-style:normal;
  font-size:15px;
  line-height:1.6;
  color:#0b0b0c;
  margin:0 0 18px;
  font-family:'Roboto',system-ui,sans-serif;
}
.ct-quick{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid #e9e6e1;
}
.ct-quick li{
  border-bottom:1px solid #f1eee8;
}
.ct-quick li:last-child{ border-bottom:0; }
.ct-quick a{
  display:block;
  padding:12px 0;
  font-size:14px;
  color:#0b0b0c;
  text-decoration:none;
  font-weight:500;
  transition: color .15s, padding-left .15s;
}
.ct-quick a:hover{ color:#ea5b0a; padding-left:6px; }

.ct-routes{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ct-routes li{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ct-routes .r-tag{
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#666;
}
.ct-routes a{
  font-size:15px;
  color:#0b0b0c;
  text-decoration:none;
  font-weight:500;
  font-family:'Roboto',system-ui,sans-serif;
  border-bottom:1px solid transparent;
  align-self:flex-start;
  transition: color .15s, border-color .15s;
}
.ct-routes a:hover{ color:#ea5b0a; border-bottom-color:#ea5b0a; }

/* FAQ */
.ct-faq{
  background:#fff;
  padding:96px 0;
  border-top:1px solid #e9e6e1;
  border-bottom:1px solid #e9e6e1;
}
.ct-faq-inner{
  display:grid;
  grid-template-columns: 380px minmax(0,1fr);
  gap:80px;
  align-items:start;
}
.ct-faq-head{
  position:sticky;
  top:96px;
}
.ct-faq-head h2{
  font-family:'Roboto',sans-serif;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height:.95;
  letter-spacing:-0.02em;
  margin:8px 0 0;
  color:#0b0b0c;
}
.ct-faq-head h2 .thin{
  font-weight:300; font-style:normal; color:#666;
}
.ct-faq-grid{
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid #e9e6e1;
}
.faq-item{
  border-bottom:1px solid #e9e6e1;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:24px 4px;
  user-select:none;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item .q{
  font-family:'Roboto',system-ui,sans-serif;
  font-weight:700;
  font-size:18px;
  letter-spacing:-0.005em;
  color:#0b0b0c;
  line-height:1.35;
}
.faq-item .ic{
  flex-shrink:0;
  width:36px; height:36px;
  border:1px solid #d8d4cc;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  font-weight:300;
  color:#0b0b0c;
  transition: transform .25s, background .15s, color .15s, border-color .15s;
}
.faq-item[open] .ic{
  transform: rotate(45deg);
  background:#ea5b0a;
  border-color:#ea5b0a;
  color:#fff;
}
.faq-item summary:hover .ic{
  border-color:#0b0b0c;
}
.faq-item .a{
  padding:0 60px 28px 4px;
  font-size:16px;
  line-height:1.65;
  color:#3a3a3a;
  max-width:640px;
}
.faq-item .a a{ color:#ea5b0a; }

.ct-faq-cta{
  grid-column: 2;
  margin-top:32px;
  font-size:15px;
  color:#666;
}
.ct-faq-cta a{
  color:#0b0b0c;
  font-weight:600;
  border-bottom:1px solid #0b0b0c;
  text-decoration:none;
  margin-left:4px;
}

/* DEALER section adjustments when reused on this page */
.ct-dealer{
  /* it ships its own dark background from index.css; no overrides needed */
}

/* RESPONSIVE */
@media (max-width: 1100px){
  .ct-hero-inner{ grid-template-columns:1fr; gap:32px; }
  .ct-primary-grid{ grid-template-columns:1fr; }
  .ct-side{ position:static; }
  .ct-faq-inner{ grid-template-columns:1fr; gap:40px; }
  .ct-faq-head{ position:static; }
  .ct-faq-cta{ grid-column:auto; }
}
@media (max-width: 720px){
  .ct-hero{ padding:48px 0 32px; }
  .ct-primary{ padding:56px 0; }
  .ct-form-wrap{ padding:28px 22px; }
  .ct-row.two{ grid-template-columns:1fr; }
  .ct-faq{ padding:56px 0; }
  .faq-item .q{ font-size:18px; }
  .faq-item .a{ padding-right:0; font-size:15px; }
}
