/* DSI Group theme layer: fonts, accessibility and WP-specific additions.
   Loads after site.css (the ported v36 stylesheet) and overrides it. */

/* ── Neo Sans (WOFF2, was embedded OTF) ─────────────────────────────────── */
@font-face{font-family:'Neo Sans Std';src:url(../fonts/neo-sans-300.woff2) format('woff2');font-weight:300;font-display:swap;}
@font-face{font-family:'Neo Sans Std';src:url(../fonts/neo-sans-400.woff2) format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'Neo Sans Std';src:url(../fonts/neo-sans-500.woff2) format('woff2');font-weight:500;font-display:swap;}
@font-face{font-family:'Neo Sans Std';src:url(../fonts/neo-sans-700.woff2) format('woff2');font-weight:700;font-display:swap;}
@font-face{font-family:'Neo Sans Std';src:url(../fonts/neo-sans-900.woff2) format('woff2');font-weight:900;font-display:swap;}

/* ── Utilities ──────────────────────────────────────────────────────────── */
.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;}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#0A2740;color:#fff;padding:10px 18px;border-radius:0 0 8px 0;font-weight:600;}
.skip-link:focus{left:0;}

/* ── Keyboard access (review F06) ───────────────────────────────────────── */
:focus-visible{outline:2px solid #F5A623;outline-offset:2px;border-radius:2px;}
nav a:focus-visible,.mnav a:focus-visible{outline-color:#F5A623;}

/* dropdowns: open on hover (as designed) AND on focus/explicit toggle */
.nitem{display:flex;align-items:center;gap:2px;}
.nitem:focus-within .dd,.nitem.open .dd{opacity:1;visibility:visible;transform:none;}
.ddbtn{background:transparent;border:0;padding:6px 4px;cursor:pointer;display:inline-flex;align-items:center;}
.ddbtn .chev{display:block;}
.nitem.open .ddbtn .chev{transform:rotate(225deg) translateY(-1px);}

/* burger + mobile close are now real buttons */
.burger{color:inherit;}
.mclose{background:transparent;border:0;cursor:pointer;font:inherit;color:#9fc2dd;display:block;margin-left:auto;padding:10px;}

/* ── AA link contrast in light content areas (review F18) ───────────────── */
.pbody a:not(.btn):not(.lm),.bsec a:not(.btn),main .container p a:not(.btn){
  color:#136297;text-decoration:underline;text-underline-offset:2px;}
.lm{color:#136297;}

/* ── Mobile conversion (review F15): keep the CTA at phone widths ───────── */
@media(max-width:540px){
  .navcta{display:inline-flex;padding:8px 12px;font-size:12.5px;letter-spacing:.3px;white-space:nowrap;}
  .navright{gap:8px;}
  .navlogo img{max-width:118px;height:auto;}
}
.heroctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
.heroctas .btn.pri{font-size:15px;}
.heroctas .ghost{display:inline-flex;align-items:center;padding:12px 22px;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#fff;font-weight:500;font-size:15px;}
.heroctas .ghost:hover{border-color:#fff;}

/* ── Search overlay as dialog ───────────────────────────────────────────── */
.sov[hidden]{display:none;}

/* ── Motion (review F06/F08) ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important;transition:none !important;}
  html.js .rv{opacity:1;transform:none;}
}

/* ── Contact form (review F03) ──────────────────────────────────────────── */
.contact-body{max-width:860px;padding-top:34px;padding-bottom:70px;}
.cform{margin-top:26px;}
.cform .cgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;}
@media(max-width:640px){.cform .cgrid{grid-template-columns:1fr;}}
.cform label{display:block;font-weight:600;font-size:14px;color:#173B54;margin:14px 0 0;}
.cform input,.cform textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:11px 13px;
  border:1px solid #C6D6E2;border-radius:8px;font:inherit;font-size:15px;color:#0F2C40;background:#fff;}
.cform input:focus,.cform textarea:focus{border-color:#136297;outline:2px solid rgba(19,98,151,.25);outline-offset:0;}
.cform button.btn{margin-top:20px;cursor:pointer;border:0;font:inherit;}
.cform-alt{margin-left:14px;font-size:14px;color:#4A6272;}
.cform-ok{background:#E8F4EE;border:1px solid #9CCDB4;color:#215C41;padding:12px 16px;border-radius:8px;}
.cform-err{background:#FAEDEC;border:1px solid #E0A9A4;color:#7C2D26;padding:12px 16px;border-radius:8px;}
.hp-field{position:absolute;left:-9999px;top:-9999px;}

/* ── WP admin bar coexistence ───────────────────────────────────────────── */
body.admin-bar nav{top:32px;}

/* Turnstile (only rendered when configured) */
.cf-turnstile{margin:14px 0 4px;}

/* ── V-family logo normalisation (interim until brand supplies normalised marks) ─
   Artwork ratios range 2.5:1–5.5:1; constrain every mark to the same box so tiles and
   the family strip read evenly, and pin tile links to the bottom (equal-height cards). */
a.icard{display:flex;flex-direction:column;}
a.icard p{flex:1 0 auto;}
a.icard .lm{margin-top:auto;padding-top:14px;align-self:flex-start;}
.vstile{height:56px;margin-bottom:16px;display:flex;align-items:center;}
.vstile img{height:44px;max-height:44px;width:auto;max-width:180px;object-fit:contain;object-position:left center;}
.vsfamily{padding:22px 28px;}
.vsrow{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 0;flex:none;width:100%;}
.vsrow img{flex:0 0 150px;width:150px;}
.vsrow img{height:26px;max-height:26px;max-width:150px;object-fit:contain;object-position:left center;}
@media(max-width:640px){.vsrow{grid-template-columns:repeat(3,1fr);} .vsrow img{height:22px;max-height:22px;}}

/* Readability (review F07/Codex #7): small card copy was 13.8px Light(300): under-weight on white.
   Cards go Regular 400 / 14.2px; large light lead paragraphs keep the design's light voice. */
a.icard p,.icard p{font-weight:400;font-size:14.2px;line-height:1.55;}
/* V-family marks are now normalised artwork (wp/content/media/normalised): uniform boxes suffice. */

/* Illustrated roundels on product tiles (owner-supplied artwork replaces the line icon) */
.ic.ic-img{background:none;overflow:hidden;}
.ic.ic-img img{width:54px;height:54px;display:block;border-radius:50%;}
