
:root{
  --red:#b90e1a;
  --red-dark:#940912;
  --dark:#12151c;
  --muted:#6a6f7a;
  --bg:#f6f7fb;
  --card:#fff;
  --line:#e7e8ee;
  --max:1180px;
  --shadow:0 16px 38px rgba(24,34,56,.09);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;color:#222;background:#fff;line-height:1.6}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(var(--max),calc(100% - 32px));margin:0 auto}

.site-header{position:sticky;top:0;z-index:60;background:#fff;box-shadow:0 2px 14px rgba(20,22,28,.06)}
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:12px 0}
.brand{display:flex;align-items:center;gap:14px;font-weight:700;font-size:1.25rem;color:var(--dark)}
.brand img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.contact-mini{display:flex;gap:20px;flex-wrap:wrap;color:#5f6470;font-size:.94rem}
.menu-toggle{display:none;border:0;background:transparent;font-size:1.8rem;line-height:1;color:var(--red);cursor:pointer}

.mainnav{background:linear-gradient(180deg,var(--red),var(--red-dark))}
.nav-inner{display:flex;align-items:center;flex-wrap:wrap}
.nav-link,.nav-item > .nav-link{
  color:#fff;padding:13px 17px;font-weight:700;font-size:.95rem;display:block;position:relative;line-height:1.2
}
.nav-link:hover,.nav-link.active,.nav-item:hover>.nav-link{background:rgba(255,255,255,.14)}
.nav-item{position:relative}
.nav-item.has-dropdown>.nav-link::after{
  content:"▾";font-size:.8rem;margin-left:8px;vertical-align:middle
}
.dropdown-menu{
  position:absolute;left:0;top:100%;min-width:220px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow);display:none;padding:8px 0
}
.dropdown-menu a{display:block;padding:11px 16px;color:#232831;font-weight:600}
.dropdown-menu a:hover{background:#fff5f5;color:var(--red)}
.nav-item:hover .dropdown-menu{display:block}
.language-link{margin-left:auto;border-left:1px solid rgba(255,255,255,.12)}

.hero-shell{padding:18px 0 0;background:#fff}
.hero{
  min-height:500px;background-size:cover;background-position:center center;display:flex;align-items:flex-end;
  border-radius:4px;overflow:hidden;box-shadow:var(--shadow)
}
.hero-inner{width:100%;padding:70px 42px 42px;background:linear-gradient(90deg,rgba(9,15,28,.48) 0%,rgba(9,15,28,.22) 42%,rgba(9,15,28,.05) 100%)}
.hero-copy{width:min(100%,720px);color:#fff;margin-left:6px}
.eyebrow{
  text-transform:none;letter-spacing:.01em;font-size:clamp(2.45rem,4.6vw,4.35rem);font-weight:800;opacity:.98;
  margin:0 0 8px;line-height:1.02
}
.hero h1{
  font-size:clamp(1.1rem,1.9vw,1.9rem);line-height:1.14;margin:0 0 18px;max-width:24ch;font-weight:600
}
.hero p{font-size:1.02rem;max-width:56ch;margin:0 0 12px}
.hero-zoom{
  transform:scale(.88);
  transform-origin:left center;
  opacity:0;
  animation:heroZoom 1.2s ease-out forwards;
}
@keyframes heroZoom{
  from{transform:scale(.88);opacity:0}
  to{transform:scale(1);opacity:1}
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;background:var(--red);color:#fff;
  border-radius:3px;font-weight:700;box-shadow:0 8px 22px rgba(185,14,26,.22);transition:transform .18s ease, background .18s ease
}
.btn:hover{background:var(--red-dark);transform:translateY(-1px)}

.section{padding:72px 0}
.section.alt{background:var(--bg)}
.section-title{font-size:2rem;margin:0 0 14px;color:var(--dark)}
.lead{font-size:1.08rem;color:#31343b;max-width:75ch}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}

.home-awards-section{padding-top:24px}
.awards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.square-panel{
  aspect-ratio:1/1;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;padding:10px;overflow:hidden
}
.square-panel img{width:100%;height:100%;object-fit:contain}
.brand-panel img{width:88%;height:88%}
.moneyfacts-panel img{width:98%;height:98%}
.vote-panel img{width:98%;height:98%}
.vote-panel{transition:transform .18s ease, box-shadow .18s ease}
.vote-panel:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(24,34,56,.14)}

.boe-row{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}
.boe-card{
  background:#fafbfe;border:1px solid var(--line);padding:18px 22px;display:flex;justify-content:space-between;align-items:center;
  box-shadow:0 8px 22px rgba(24,34,56,.04)
}
.boe-label{display:block;color:#5f6470;font-size:.94rem}
.boe-card strong{font-size:1.35rem;color:var(--red)}

.home-service-grid .service-link-card{
  display:block;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;transition:transform .18s ease, box-shadow .18s ease
}
.home-service-grid .service-link-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(24,34,56,.13)}
.home-service-grid img{width:100%;aspect-ratio:16/10;object-fit:cover}
.home-service-grid span{
  display:block;padding:18px 16px;font-size:1.08rem;font-weight:700;text-align:center;color:#21252c
}

.footer{background:#0e1015;color:#f1f3f7;padding:44px 0 24px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.footer h3{margin:0 0 10px;font-size:1rem}
.footer p{margin:0;color:#c9d0db}
.compliance{border-top:1px solid rgba(255,255,255,.1);margin-top:24px;padding-top:16px;color:#b7bfca;font-size:.92rem;line-height:1.75}

@media (max-width: 900px){
  .topbar-inner{flex-wrap:wrap}
  .contact-mini{display:none}
  .menu-toggle{display:block}
  .nav-inner{display:none;flex-direction:column;align-items:stretch}
  .nav-inner.open{display:flex}
  .language-link{margin-left:0;border-left:0}
  .nav-link,.nav-item>.nav-link{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}
  .dropdown-menu{position:static;display:block;background:rgba(255,255,255,.06);border:0;box-shadow:none;padding:0}
  .dropdown-menu a{color:#fff;padding:12px 26px}
  .dropdown-menu a:hover{background:rgba(255,255,255,.1);color:#fff}
  .hero{min-height:420px}
  .hero-inner{padding:52px 22px 28px}
  .hero-copy{width:100%;margin-left:0}
  .awards-row,.boe-row,.grid-3,.footer-grid{grid-template-columns:1fr}
}

@media (max-width: 560px){
  .wrap{width:min(var(--max),calc(100% - 20px))}
  .brand span{font-size:1.05rem}
  .brand img{width:52px;height:52px}
  .hero h1{max-width:none}
  .section{padding:56px 0}
}


/* Contact page enhancements */
.contact-page-wrap{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:32px;
  align-items:start;
}

.contact-form-card{
  padding:32px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:var(--shadow);
}

.contact-info-card{
  padding:28px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff 0%, #fafbfd 100%);
  box-shadow:var(--shadow);
}

.contact-info-card h3{
  margin:0 0 10px;
  font-size:1.2rem;
  color:var(--dark);
}

.contact-info-card p{
  margin:0 0 14px;
  color:#49505a;
  line-height:1.75;
}

.contact-info-list{
  display:grid;
  gap:14px;
  margin-top:18px;
}

.contact-info-item{
  padding:14px 16px;
  border:1px solid var(--line);
  background:#fff;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.field label{
  font-weight:700;
  color:#222831;
}

.field input,
.field textarea,
.field select{
  padding:13px 15px;
  border:1px solid #d7dce4;
  font:inherit;
  background:#fff;
  transition:border-color .16s ease, box-shadow .16s ease;
}

.field input:focus,
.field textarea:focus,
.field select:focus{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(185,14,26,.10);
}

.field textarea{
  min-height:240px;
  line-height:1.7;
  resize:vertical;
}

.field.full{
  grid-column:1 / -1;
}

.contact-submit-row{
  display:flex;
  justify-content:flex-start;
  margin-top:8px;
}

.contact-note{
  margin:0 0 22px;
  color:#5c6470;
}

@media (max-width: 900px){
  .contact-page-wrap{
    grid-template-columns:1fr;
  }
  .contact-form-card,
  .contact-info-card{
    padding:22px;
  }
}
