:root{
  --bg:#0b1220;
  --panel:#0f1a33;
  --card:#0e1730;
  --text:#e9eefc;
  --muted:#b8c3e6;
  --line:rgba(255,255,255,.10);
  --brand:#2dd4bf;
  --brand2:#60a5fa;
  --shadow: 0 18px 50px rgba(0,0,0,.35);
  --radius: 18px;
  --max: 1120px;
  --pad: 20px;
  --focus: 0 0 0 4px rgba(45,212,191,.22);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: radial-gradient(1200px 800px at 15% 10%, rgba(96,165,250,.18), transparent 60%),
              radial-gradient(900px 700px at 90% 0%, rgba(45,212,191,.14), transparent 55%),
              var(--bg);
  color:var(--text);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
a:hover{opacity:.95}
img{max-width:100%;display:block}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.small{font-size:.95rem;color:var(--muted)}
.kicker{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:rgba(233,238,252,.75)}
h1,h2,h3{margin:0 0 10px 0;line-height:1.15}
h1{font-size: clamp(2rem, 3.6vw, 3.25rem)}
h2{font-size: clamp(1.55rem, 2.4vw, 2.2rem)}
h3{font-size:1.1rem}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 16px;border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
  font-weight:600;
  cursor:pointer;
}
.btn.primary{
  border-color: rgba(45,212,191,.35);
  background: linear-gradient(90deg, rgba(45,212,191,.18), rgba(96,165,250,.15));
}
.btn:hover{transform: translateY(-1px)}
.btn:active{transform: translateY(0px)}
.btn:focus{outline:none; box-shadow: var(--focus)}

.topbar{
  position:sticky;top:0;z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(11,18,32,.72);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.brand{
  display:flex;align-items:center;gap:12px;font-weight:800;
}
.brand-mark{height:36px;width:36px;display:block;border-radius:10px;}
.brand-badge{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(135deg, rgba(45,212,191,.22), rgba(96,165,250,.18));
  border:1px solid var(--line);
  display:grid;place-items:center;
}
.brand-badge svg{opacity:.95}
.navlinks{display:flex;gap:18px;align-items:center}
.navlinks a{color:rgba(233,238,252,.9);font-weight:600;font-size:.95rem}
.navlinks a.active{color:var(--brand)}
.navcta{display:flex;gap:10px;align-items:center}

.burger{display:none}
.mobilemenu{display:none}

.hero{padding:52px 0 24px 0}
.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 26px;
  align-items:stretch;
}
.hero-card{
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  box-shadow: var(--shadow);
  padding: 26px;
}
.hero-right{
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.04);
  padding: 22px;
}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.pill{
  border:1px solid var(--line);
  background: rgba(255,255,255,.05);
  padding: 9px 12px;
  border-radius: 999px;
  font-weight:650;
  color: rgba(233,238,252,.9);
  font-size:.9rem;
}
.metric{display:grid;gap:10px;margin-top:14px}
.metric .row{
  display:flex;justify-content:space-between;gap:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.14);
  padding: 12px 14px;border-radius:14px;
}
.metric .row b{color:var(--text)}
.metric .row span{color:var(--muted);font-weight:650}

.section{padding: 34px 0}
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.card{
  border:1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
  padding: 18px;
}
.card p{margin:8px 0 0 0;color:var(--muted)}
.card ul{margin:10px 0 0 18px;color:var(--muted)}
.card .icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(31,78,121,.18);color:#9fd0ff;margin-bottom:10px;}

.banner{
  border:1px solid rgba(45,212,191,.25);
  background: linear-gradient(90deg, rgba(45,212,191,.10), rgba(96,165,250,.10));
  padding: 18px;
  border-radius: 18px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}

.footer{
  border-top:1px solid var(--line);
  margin-top: 22px;
  padding: 28px 0;
  background: rgba(0,0,0,.12);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
  align-items:start;
}
.footer h3{margin-bottom:8px}
.footer a{color:rgba(233,238,252,.9)}
.footer .cols{
  display:grid;grid-template-columns: 1fr 1fr;gap: 12px;
}
.footer .list{display:grid;gap:8px}
.subfooter{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  color:rgba(233,238,252,.72);
  font-size:.9rem;
}

.form{display:grid;gap:12px;margin-top:12px}
.field{display:grid;gap:6px}
label{font-weight:700;color:rgba(233,238,252,.92)}
input,textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color: var(--text);
}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus{outline:none;box-shadow:var(--focus)}
.checkbox{
  display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.95rem
}
.checkbox input{width:auto;margin-top:4px}

.notice{
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 12px 14px;
  border-radius: 14px;
  color: var(--muted);
}

.whatsapp{
  position:fixed;
  right:16px; bottom:16px;
  z-index:60;
  width:72px; height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: rgba(0,0,0,.38);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
.whatsapp .wa-float-icon{
  width:42px;
  height:42px;
}
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer .cols{grid-template-columns:1fr}
  .navlinks, .navcta{display:none}
  .burger{display:inline-flex}
  .mobilemenu{display:none;padding: 8px 0 14px 0}
  .mobilemenu a{
    display:block;
    padding: 10px 0;
    border-top:1px solid var(--line);
    color:rgba(233,238,252,.92);
    font-weight:700;
  }
}


/* Hero imagery (Pass 2) */
.hero-right{display:flex;flex-direction:column;gap:12px}
.hero-gallery{display:flex;flex-direction:column;gap:10px}
.hero-gallery-main{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#0b0f14}
.hero-gallery-main img{width:100%;height:220px;object-fit:cover;display:block}
.hero-gallery-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hero-gallery-thumbs .thumb{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:transparent;padding:0;cursor:pointer}
.hero-gallery-thumbs .thumb img{width:100%;height:74px;object-fit:cover;display:block;filter:saturate(1.05)}
.hero-gallery-thumbs .thumb.is-active{outline:2px solid rgba(35,134,255,.6);outline-offset:2px}
.hero-caption{color:var(--muted);font-size:13px;line-height:1.4;margin:0}
@media (max-width: 980px){
  .hero-gallery-main img{height:200px}
}


/* Tender pack components (Pass 2) */
.btn-outline{background:transparent;border:1px solid var(--line);color:var(--text)}
.btn-outline:hover{border-color:rgba(35,134,255,.55);color:var(--text)}
.downloads{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 12px}
.checklist{margin:12px 0 0 0;padding:0 0 0 18px;color:var(--muted)}
.checklist li{margin:6px 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width: 980px){.grid-2{grid-template-columns:1fr}}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
@media (max-width: 640px){.mini{grid-template-columns:1fr}}
.mini-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.03)}
.mini-item h3{margin:0 0 6px 0;font-size:14px}
.mini-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.callout{margin-top:18px;border:1px solid var(--line);border-radius:18px;padding:16px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg, rgba(35,134,255,.12), rgba(255,255,255,.02))}
.callout h2{margin:0 0 4px 0;font-size:18px}
.callout p{margin:0}
@media (max-width: 780px){.callout{flex-direction:column;align-items:flex-start}}

.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;}

.icon img{width:22px;height:22px;display:block;}
.wa-icon{width:18px;height:18px;vertical-align:-3px;margin-right:8px;}

.whatsapp:hover{transform: translateY(-1px);}


/* Accreditions & Insurance strip */
.accreditations-strip{
  border-top:1px solid rgba(255,255,255,0.08);
  border-bottom:1px solid rgba(0,0,0,0.06);
  background: rgba(11,60,93,0.03);
  padding:18px 0;
}
.accreditations-inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.accreditations-title{
  font-weight:700;
  letter-spacing:0.2px;
  color:#0B3C5D;
}
.accreditations-items{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.badge-item{
  display:flex;
  align-items:center;
  gap:10px;
}
.napit-badge{
  height:38px;
  width:auto;
}
.badge-label{
  font-size:13px;
  color:#0B3C5D;
}
.insurance-badges{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.insurance-badges img{
  height:46px;
  width:auto;
}
@media (max-width:640px){
  .accreditations-items{justify-content:flex-start;}
  .insurance-badges img{height:42px;}
}


}

/* Badge item alignment (accreditations strip) */
.accreditations-items .badge-item img{height:46px; width:auto;}


/* Pass 12 – accreditation strip tidy-up */
.accreditations-strip .badge-item,
.accreditations-strip .badge-stack{
  display:flex;
  align-items:center;
  gap:10px;
}
.accreditations-strip .badge-stack{
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.accreditations-strip .badge-caption{
  font-size:12px;
  color: rgba(11,60,93,0.8);
  line-height:1.2;
}
.accreditations-strip .insurance-badges img{
  border-radius:10px;
}


/* Pass 13 – Clean accreditations strip */
.accreditations-strip{
  background: rgba(11,60,93,0.02);
  border-top: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  padding: 28px 0;
}
.accreditations-inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 18px;
}
.accreditations-heading{
  margin: 0 0 14px;
  font-size: 16px;
  letter-spacing: 0.2px;
  color: #0B3C5D;
}
.accreditations-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.accred-card{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.accred-icon{
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
}
.accred-text{min-width:0;}
.accred-title{
  font-weight: 700;
  font-size: 13px;
  color: #0B3C5D;
  line-height: 1.2;
}
.accred-sub{
  font-size: 12px;
  color: rgba(11,60,93,0.78);
  line-height: 1.2;
  margin-top: 2px;
}
@media (max-width: 980px){
  .accreditations-grid{grid-template-columns: repeat(2, minmax(0,1fr));}
}
@media (max-width: 520px){
  .accreditations-grid{grid-template-columns: 1fr;}
  .accred-card{padding: 12px 14px;}
}


/* Tender downloads section */
.download-pack{padding:52px 0; background: rgba(11,60,93,0.02); border-top:1px solid rgba(0,0,0,0.06);}
.download-pack .wrap{max-width:1100px; margin:0 auto; padding:0 18px;}
.download-pack h2{margin:0 0 10px; color:#0B3C5D;}
.download-pack .muted{margin:0 0 18px; color:rgba(11,60,93,0.78); max-width:900px;}
.download-grid{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px;}
.download-card{display:block; padding:14px 14px; border-radius:14px; background:#fff; border:1px solid rgba(0,0,0,0.08); text-decoration:none;}
.download-card:hover{border-color: rgba(31,78,121,0.6);}
.dl-title{font-weight:700; color:#0B3C5D; margin-bottom:4px;}
.dl-sub{color:rgba(11,60,93,0.78); font-size:13px;}
.footer-mini-links{padding-top:10px; font-size:13px;}
.footer-mini-links a{text-decoration:none;}
@media (max-width:980px){.download-grid{grid-template-columns: repeat(2, minmax(0,1fr));}}
@media (max-width:520px){.download-grid{grid-template-columns: 1fr;}}


/* Controlled documents section */
.request-pack{padding:42px 0; border-top:1px solid rgba(0,0,0,0.06); background: rgba(255,255,255,0.02);}
.request-pack .wrap{max-width:1100px; margin:0 auto; padding:0 18px;}
.request-list{margin:12px 0 18px; padding-left:18px; color:rgba(11,60,93,0.88);}
.request-list li{margin:6px 0;}
.request-cta{display:flex; flex-direction:column; gap:10px;}
.request-note{font-size:13px; color:rgba(11,60,93,0.78);}


/* Contact form refinements (Tier-ready) */
.form-row{margin-bottom:12px;}
.form-row label{display:block; font-weight:600; margin-bottom:6px; color:#0B3C5D;}
.form-row input, .form-row select, .form-row textarea{width:100%; padding:10px 12px; border-radius:12px; border:1px solid rgba(0,0,0,0.12);}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{outline: none; border-color: rgba(31,78,121,0.6); box-shadow: 0 0 0 3px rgba(31,78,121,0.12);}
.form-note{margin-top:12px; font-size:13px; color: rgba(11,60,93,0.78);}

/* ===== Pass: Bright theme for better readability (Procurement-friendly) ===== */
:root{
  --bg:#f6f9ff;
  --panel:#ffffff;
  --card:#ffffff;
  --text:#0B3C5D;
  --muted:rgba(11,60,93,0.78);
  --line:rgba(11,60,93,0.16);
  --brand:#1F4E79;
  --brand2:#00A3D9;
  --shadow:0 14px 34px rgba(11,60,93,0.14);
}

html, body{background:var(--bg); color:var(--text);}
a{color:var(--brand);}
a:hover{color:var(--brand2);}

header, .topbar, .nav, .navbar{background:rgba(255,255,255,0.86) !important; border-bottom:1px solid var(--line) !important; backdrop-filter:saturate(140%) blur(10px);}
.nav a, .navbar a{color:var(--text) !important;}
.nav a:hover, .navbar a:hover{color:var(--brand) !important;}

.section, section{background:transparent;}
.panel, .wrap, .container{color:var(--text);}

.card, .download-card, .badge, .pill, .tile, .feature, .service-card{
  background:var(--card) !important;
  border:1px solid var(--line) !important;
  box-shadow:var(--shadow);
}

.muted, .sub, .helper, .small, .note{color:var(--muted) !important;}

h1,h2,h3,h4{color:var(--text) !important;}
.hero, .hero-card, .hero-inner{background:linear-gradient(135deg, rgba(31,78,121,0.10), rgba(0,163,217,0.08)) !important; border:1px solid var(--line) !important;}
.hero p{color:var(--muted) !important;}

.btn, .btn-primary, button, input[type="submit"]{
  background:linear-gradient(135deg, var(--brand), var(--brand2)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 10px 22px rgba(31,78,121,0.22);
}
.btn:hover, .btn-primary:hover, button:hover, input[type="submit"]:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(31,78,121,0.28);
}

input, select, textarea{
  background:#fff !important;
  color:var(--text) !important;
  border:1px solid var(--line) !important;
}
input::placeholder, textarea::placeholder{color:rgba(11,60,93,0.55);}

.footer, footer{
  background:#ffffff !important;
  border-top:1px solid var(--line) !important;
  color:var(--muted) !important;
}
.footer a, footer a{color:var(--brand) !important;}
.footer a:hover, footer a:hover{color:var(--brand2) !important;}

/* Accreditation badges tidy */
.accreditations img, .badge-row img{
  filter:none !important;
  opacity:1 !important;
}

/* Accessibility: focus rings */
:focus-visible{
  outline:3px solid rgba(0,163,217,0.35) !important;
  outline-offset:2px;
}

/* ===== Pass: Contrast fixes (menu + pills) ===== */
:root{
  --chip-bg:#0f5e85;
  --chip-text:#ffffff;
}

/* Pills / chips inside hero (make text readable) */
.pill, .chip, .tag, .badge-pill, .hero .pill, .hero .chip, .hero .tag,
.filters .pill, .filters .chip{
  background:rgba(15,94,133,0.12) !important;
  border:1px solid rgba(15,94,133,0.28) !important;
  color:#08324a !important;
}
.pill *, .chip *, .tag *{ color:#08324a !important; opacity:1 !important; }

/* When pills appear on light cards, use solid background */
.pill--solid, .chip--solid, .tag--solid{
  background:linear-gradient(135deg, var(--brand), var(--brand2)) !important;
  color:#fff !important;
  border:0 !important;
}
.pill--solid *, .chip--solid *, .tag--solid *{ color:#fff !important; }

/* Mobile menu: ensure links are visible */
.menu, .menu-panel, .mobile-menu, .nav-drawer, .drawer, .sheet{
  background:#ffffff !important;
  color:var(--text) !important;
  border-left:1px solid rgba(11,60,93,0.12) !important;
}
.menu a, .menu-panel a, .mobile-menu a, .nav-drawer a, .drawer a, .sheet a,
.menu button, .menu-panel button{
  color:#0B3C5D !important;
  opacity:1 !important;
}
.menu a:hover, .menu-panel a:hover, .mobile-menu a:hover, .nav-drawer a:hover{
  color:var(--brand) !important;
}

/* If menu uses separators/lines */
.menu hr, .menu-panel hr, .mobile-menu hr, .nav-drawer hr, .drawer hr, .sheet hr{
  border-color:rgba(11,60,93,0.16) !important;
}

/* Ensure any "muted" menu items are still readable */
.menu .muted, .menu-panel .muted, .mobile-menu .muted, .nav-drawer .muted{
  color:rgba(11,60,93,0.78) !important;
  opacity:1 !important;
}

/* Buttons inside light hero: keep contrast */
.hero .btn, .hero button, .hero a.btn{
  color:#fff !important;
}

/* Reduce washed-out text caused by global opacity */
* { text-rendering:optimizeLegibility; }

/* ===== Pass: Mobile menu forced visibility (links were still washed out) ===== */
:root{
  --nav-link:#0B3C5D;
  --nav-link-hover:#1F4E79;
}

/* Target common nav link patterns used by the template */
nav a, nav a:visited,
.nav a, .nav a:visited,
.nav-links a, .nav-links a:visited,
.menu-links a, .menu-links a:visited,
.menu-list a, .menu-list a:visited,
.drawer a, .drawer a:visited,
.sheet a, .sheet a:visited,
#menu a, #menu a:visited,
#mobileMenu a, #mobileMenu a:visited,
[aria-label="Menu"] ~ * a,
[role="dialog"] a, [role="dialog"] a:visited{
  color: var(--nav-link) !important;
  opacity: 1 !important;
  filter: none !important;
  text-shadow: none !important;
}

/* If links are inside list items with low opacity */
nav li, .nav li, .menu li, .menu-panel li, .drawer li, .sheet li{
  opacity: 1 !important;
}

/* Force menu overlay/panel background and remove blending that can wash text */
.menu, .menu-panel, .mobile-menu, .nav-drawer, .drawer, .sheet, nav{
  background: #ffffff !important;
  mix-blend-mode: normal !important;
}

/* Hover / active states */
nav a:hover, .nav a:hover, .nav-links a:hover, .menu-links a:hover, .menu-list a:hover,
#menu a:hover, #mobileMenu a:hover{
  color: var(--nav-link-hover) !important;
}

/* If the menu uses headings that inherit muted styles */
nav .muted, .nav .muted, .menu .muted, .drawer .muted, .sheet .muted{
  color: rgba(11,60,93,0.78) !important;
  opacity: 1 !important;
}

/* ===== Pass: Global readability enforcement (fix any remaining low-contrast text) ===== */

/* Core readable palette */
:root{
  --rc-text:#0B2B40;
  --rc-text-strong:#072033;
  --rc-muted:rgba(11,43,64,0.78);
  --rc-muted2:rgba(11,43,64,0.64);
  --rc-link:#1F4E79;
  --rc-link-hover:#00A3D9;
  --rc-border:rgba(11,43,64,0.16);
  --rc-surface:#ffffff;
  --rc-bg:#f6f9ff;
}

/* Background + default text */
html, body{
  background: var(--rc-bg) !important;
  color: var(--rc-text) !important;
}

/* Force readable text on all common copy elements */
p, li, span, label, small, strong, em, b, i,
h1, h2, h3, h4, h5, h6,
.section, section, header, footer,
.card, .tile, .panel, .wrap, .container{
  color: var(--rc-text) !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Headings slightly stronger */
h1, h2, h3, h4, h5, h6{
  color: var(--rc-text-strong) !important;
}

/* Muted helpers still readable */
.muted, .sub, .helper, .note, .caption, .fineprint, .kicker, .eyebrow{
  color: var(--rc-muted) !important;
  opacity: 1 !important;
}

/* Secondary muted (if used) */
.muted2, .subtle, .hint{
  color: var(--rc-muted2) !important;
  opacity: 1 !important;
}

/* Links */
a, a:visited{
  color: var(--rc-link) !important;
  opacity: 1 !important;
}
a:hover{ color: var(--rc-link-hover) !important; }

/* Surfaces */
.card, .download-card, .feature, .service-card, .tile, .panel, .hero, .hero-card{
  background: var(--rc-surface) !important;
  border-color: var(--rc-border) !important;
}

/* If any element is explicitly set to very low opacity, reset it */
*[style*="opacity:0."], *[style*="opacity: 0."]{
  opacity: 1 !important;
}

/* If template uses text gradients or blend modes */
.gradient-text, .text-gradient{
  -webkit-text-fill-color: currentColor !important;
  background: none !important;
}
*{
  mix-blend-mode: normal !important;
}

/* Buttons maintain contrast */
.btn, .btn-primary, button, input[type="submit"]{
  opacity: 1 !important;
}

/* Menu/drawer safety net */
nav, .menu, .menu-panel, .mobile-menu, .nav-drawer, .drawer, .sheet{
  background: #ffffff !important;
}

/* contrast patch v4b: improve readability site-wide */
:root{
  --text:#0b2239;
  --muted:#2f455a;
  --bg:#ffffff;
  --panel:#f5f8fb;
  --link:#0b5bd3;
  --linkHover:#0847a6;
}
body{color:var(--text) !important; background:var(--bg) !important;}
p,li{color:var(--text) !important;}
.small, .muted, .subtle{color:var(--muted) !important; opacity:1 !important;}
a{color:var(--link) !important; text-decoration-color:rgba(11,91,211,.35);}
a:hover{color:var(--linkHover) !important;}
/* Buttons */
.btn, button, .chip, .pill{color:var(--text) !important;}
.btn.primary, .btn.primary *{color:#ffffff !important;}
/* Cards/sections */
.card, .panel, .box, .tile{background:var(--panel) !important; border-color:rgba(11,34,57,.12) !important;}
/* Remove overlays/tints */
.hero::before,.hero::after,.photo::before,.photo::after,.media::before,.media::after{opacity:0 !important;background:transparent !important;}
.hero img, .photo img, .media img{filter:none !important;}
/* Forms */
input, textarea, select{color:var(--text) !important; background:#fff !important; border-color:rgba(11,34,57,.25) !important;}
input::placeholder, textarea::placeholder{color:rgba(47,69,90,.75) !important;}
/* Footer */
footer, .footer{color:var(--text) !important;}

/* contact honeypot */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
