*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img{max-width:100%;height:auto;display:block}
a{color:#337ab7;text-decoration:none}
a:hover{text-decoration:underline}
body{
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size:16px; line-height:1.5; color:#333; background:#fff;
}

.page-wrap{padding:0; margin:0; text-align:center;}
.container{width:100%; margin:0 auto; max-width:1170px; padding:0}
.spacer{padding:10px 0}

.lead-14{font-size:14pt}
.lead-18{font-size:18pt}
.bold{font-weight:700}
.center{text-align:center}
.justify{text-align:justify}
p.pad{padding:0 20px}
hr.sep{border:0; border-top:1px solid #eee; margin:20px 0}

.band{
  background:#1c2333; color:#fff;
  text-align:center; padding:8px 0;
}
.band .title{font-family: "Trebuchet MS", Geneva, sans-serif;}
.hero{ position:relative; text-align:left; margin:18px auto 6px; }
.hero-logo{ width:180px; margin:0 auto 10px; }
.hero .hero-text{ text-align:center; padding:6px 12px 0; }
.hero .hero-text h1{margin:0; font-size:clamp(28px,5vw,44px); font-weight:800; text-transform:uppercase;}
.hero .date{margin:.25rem 0; font-weight:700;}
.hero .sub{max-width:60ch; margin:0 auto; color:#444}
.badges{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:8px;}
.badge{background:#f3f6fb; border:1px solid #e3e8f3; padding:6px 10px; border-radius:999px; font-size:.95rem}
.carousel{ position:relative; overflow:hidden; border-radius:14px; box-shadow:0 18px 40px rgba(0,0,0,.18); }
.carousel-track{ display:flex; transition:transform .5s ease; }
.slide{ min-width:100%; height:clamp(200px, 42vw, 520px); background:#000; }
.slide img{ width:85%; height:100%; object-fit:cover; }
.carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,.45); border:0; color:#fff; font-size:34px;
  width:42px; height:42px; border-radius:50%; cursor:pointer;
}
.carousel-btn:hover{ background:rgba(0,0,0,.65); }
.carousel-btn.prev{ left:10px; }
.carousel-btn.next{ right:10px; }
.carousel-dots{ position:absolute; bottom:12px; left:50%; transform:translateX(-50%); display:flex; gap:8px; }
.carousel-dots button{
  width:10px; height:10px; border-radius:50%; border:0; background:rgba(255,255,255,.55); cursor:pointer;
}
.carousel-dots button.active{ background:#fff; }
.brand-picker{ padding:4px 12px 0; }
.brand-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:10px; margin:10px 0 6px;
}
.brand-tile{
  border:1px solid #e9eef5; border-radius:12px; padding:10px; cursor:pointer;
  background:#fff; display:grid; place-items:center; box-shadow:0 6px 16px rgba(0,0,0,.05);
  user-select:none; transition:transform .08s ease, box-shadow .2s ease, border-color .2s ease;
}
.brand-tile img{ width:80px; height:46px; object-fit:contain; }
.brand-tile.active{ border-color:#28a745; box-shadow:0 8px 18px rgba(40,167,69,.18); transform:translateY(-1px); }
.brand-tile:focus-visible{ outline:2px solid #28a745; outline-offset:2px; }

.selection-recap{
  margin:8px 12px 0; background:#f6fff9; border:1px solid #daf3e1;
  padding:10px 12px; border-radius:10px; text-align:left;
}
.form{width:100%; margin:0; padding:0 15px;}
.form .hint{font-size:.9rem; color:#555}
.form .form-row{
  display:flex; gap:10px; align-items:center;
  margin:12px 0; text-align:left;
}
.form label{flex:0 0 30%; font-weight:700;}
.form .required::after{content:" *"; color:#c00; font-weight:700}
.form .field{
  flex:1; display:block; width:100%;
  padding:10px 12px; border:1px solid #ccc; border-radius:4px;
  font-size:16px;
}
.form .actions {
  margin: 20px 0;
  text-align: center;
}

.btn-success {
  background: #28a745;          
  color: #fff;
  font-size: 18px;             
  font-weight: 700;            
  padding: 14px 28px;          
  border: none;
  border-radius: 8px;          
  cursor: pointer;
  transition: background 0.25s ease, transform 0.15s ease;
}

.btn-success:hover {
  background: #218838;          
  transform: translateY(-2px); 
}

.btn-success:active {
  background: #1e7e34;
  transform: translateY(0);     
}
.addr-section{ padding:0 12px; text-align:left; }
.addr-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:16px;
}
.addr-card{
  border:1px solid #e9eef5; border-radius:14px; overflow:hidden; background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
}
.addr-card .addr-head{ padding:12px 14px; }
.addr-card .brand{ font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#0b3c2f; }
.addr-card h3{ margin:.25rem 0 .35rem; font-size:1.05rem; }
.addr-card .addr{ font-size:.96rem; color:#333; }
.addr-card .cpv{ font-size:.92rem; color:#666; }
.addr-card iframe{ width:100%; height:220px; border:0; display:block; }

@media (max-width: 767px){
  .form .form-row{flex-direction:column; align-items:stretch}
  .form label{flex:0 0 auto; width:100%}
}