
:root{
  --brand-primary:#024F56;
  --brand-accent:#FBFF17;
  --ink:#000000;
  --muted:#58554E;
  --paper:#FFFFFF;
  --bg:#F7F8F9;
  --radius:14px;
  --shadow:0 10px 20px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans',sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
img{max-width:100%;height:auto}
a{color:var(--brand-primary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0 0 .5rem}
h1{font-size:clamp(2rem,5vw,3rem)}
h2{font-size:clamp(1.4rem,3.2vw,2rem)}
h3{font-size:1.25rem}
.lead{font-size:1.125rem;color:var(--muted)}
.small{font-size:.875rem}
.muted{color:var(--muted)}
.container{width:min(1100px,92%);margin:0 auto}
.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem}
@media (max-width:900px){.grid-2{grid-template-columns:1fr}}
.section{padding:3.5rem 0}
.section.alt{background:var(--paper)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:var(--paper);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}
.form input,.form textarea{width:100%;padding:.75rem;border:1px solid #E5E7EB;border-radius:10px;margin:.25rem 0 1rem;font:inherit}
.form label{font-weight:600;margin-top:.5rem;display:block}
.hidden{display:none}
.btn{display:inline-block;background:var(--brand-primary);color:#fff;padding:.75rem 1rem;border-radius:12px;border:2px solid var(--brand-primary);font-weight:700}
.btn:hover{text-decoration:none;filter:brightness(.98)}
.btn-outline{background:transparent;color:var(--brand-primary)}
.btn-outline:hover{background:#E6F1F2}
.btn-accent{background:var(--brand-accent);color:#111;border-color:var(--brand-accent)}
.btn-accent:hover{filter:brightness(.95)}
.link{font-weight:700}
.usp{margin:1rem 0 0;padding:0;list-style:none}
.usp li{margin:.25rem 0;padding-left:1.25rem;position:relative}
.usp li::before{content:"✓";position:absolute;left:0;color:var(--brand-primary);font-weight:700}
.skip{position:absolute;left:-9999px}
.skip a:focus{left:1rem;top:1rem;background:var(--brand-accent);padding:.4rem .6rem;border-radius:8px;position:absolute}
.site-header{position:sticky;top:0;background:var(--paper);box-shadow:0 2px 12px rgba(0,0,0,.05);z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0}
.logo{height:36px;width:auto}
.logo-link{display:flex;align-items:center;gap:.6rem}
.brand{font-size:1.1rem;letter-spacing:.2px}
.site-nav ul{display:flex;gap:.75rem;align-items:center;margin:0;padding:0;list-style:none}
.site-nav a{display:block;padding:.6rem .7rem;border-radius:10px}
.site-nav a:hover{background:#F2F5F6;text-decoration:none}
.site-nav a.active{background:#E6F1F2}
.nav-toggle{display:none;background:transparent;border:none;font-size:1.35rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:900px){
  .nav-toggle{display:block}
  .site-nav{position:absolute;right:1rem;top:64px;background:var(--paper);padding:1rem;border-radius:12px;box-shadow:var(--shadow);display:none}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;align-items:flex-start}
}
.hero{background:linear-gradient(180deg, #E6F1F2 0%, #F9FBFF 100%)}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;padding:3rem 0}
@media (max-width:900px){.hero-inner{grid-template-columns:1fr;gap:1.5rem;padding:2rem 0;text-align:center}}
.hero-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.stat{background:var(--paper);border-radius:16px;padding:1rem;text-align:center;box-shadow:var(--shadow)}
.stat-num{display:block;font-weight:900;font-size:2rem;color:var(--brand-primary)}
.stat-label{color:var(--muted)}
.page-hero{background:var(--paper);padding:2.5rem 0;border-bottom:1px solid #EEF2F3}
.cta-banner{background:var(--brand-primary);color:#fff;padding:2.25rem 0;margin-top:1rem}
.banner-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.banner-inner .btn{background:#fff;color:#111;border-color:#fff}
.banner-inner .btn:hover{filter:brightness(.97)}
@media (max-width:900px){.banner-inner{flex-direction:column;align-items:flex-start}}
.checklist{list-style:none;padding:0;margin:.75rem 0 0}
.checklist li{padding-left:1.25rem;position:relative;margin:.35rem 0}
.checklist li::before{content:"•";position:absolute;left:0;color:var(--brand-primary);font-weight:900}
.site-footer{background:#0D1F21;color:#EAF2F3;margin-top:2rem}
.site-footer a{color:#EAF2F3}
.site-footer .logo{filter:brightness(0) invert(1)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr;gap:2rem;padding:2rem 0}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem 0}}
.footer-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.footer-nav{list-style:none;margin:0;padding:0}
.footer-nav li{margin:.25rem 0}
.legal{padding:.75rem 0;border-top:1px solid rgba(255,255,255,.08)}
.newsletter{display:grid;grid-template-columns:1fr auto;gap:.5rem;margin-top:.5rem}
@media (max-width:900px){.newsletter{grid-template-columns:1fr;gap:.75rem}}
.newsletter label{grid-column:1 / -1;font-weight:600}
.newsletter input{padding:.6rem;border-radius:10px;border:1px solid #123;background:#fff;color:#111}


/* --- Admin WYSIWYG --- */
.editor-toolbar{
  display:flex;gap:.35rem;flex-wrap:wrap;margin:.35rem 0 .5rem;
  background:#f6f7f9;border:1px solid #e5e7eb;border-radius:10px;padding:.35rem;
}
.editor-toolbar button{
  border:1px solid #d9dde3;border-radius:8px;background:#fff;padding:.4rem .5rem;cursor:pointer
}
.editor-toolbar .sep{width:1px;background:#e5e7eb;margin:0 .25rem}
.wysiwyg-area{
  min-height:220px;border:1px solid #e5e7eb;border-radius:10px;padding:.75rem;background:#fff;line-height:1.6;
}
.wysiwyg-area:focus{outline:2px solid #cfd9dc}

/* Postcode result styling */
#postcode-result {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  position: relative;
  z-index: 1;
}

/* Ensure postcode result is visible on mobile */
@media (max-width: 768px) {
  #postcode-result {
    margin-top: 1rem;
    margin-bottom: 2rem;
    padding: 1.25rem;
  }
  
  /* Add scroll margin for better mobile scrolling */
  #postcode-result {
    scroll-margin-top: 20px;
  }
}
