/* PlyoScience customizations (loaded after style.css) */
.g-bg-intro { background-image: url(../img/hero/hero-signal.jpg); height: calc(80vh - 75px); min-height: 460px; }
.plyo-tagline { max-width: 760px; margin: 0 auto 28px; }
.plyo-stats { background: #0b1220; color: #fff; padding: 34px 0 14px; }
.plyo-stat { text-align: center; margin-bottom: 20px; }
.plyo-stat b { display: block; font-size: 28px; font-weight: 700; color: #2dd4ff; line-height: 1.2; }
.plyo-stat span { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.75); }
.core-section .media { transition: transform .2s ease; }
.core-section .media:hover { transform: translateY(-3px); }
.plyo-card { background: #fff; border-radius: 6px; overflow: hidden; height: 100%; box-shadow: 0 4px 18px rgba(11,18,32,.10); transition: transform .2s ease, box-shadow .2s ease; }
.plyo-card:hover { transform: translateY(-5px); box-shadow: 0 10px 28px rgba(11,18,32,.18); }
.plyo-card img { width: 100%; display: block; }
.plyo-card .plyo-card-body { padding: 20px 22px 24px; }
.plyo-note { font-size: 12px; color: #6b7280; }
@media (prefers-reduced-motion: reduce) { .core-section .media, .plyo-card { transition: none; } .core-section .media:hover, .plyo-card:hover { transform: none; } }

/* Engineering Services cards: readable, check-marked lists */
.plyo-list h4.h6 { position: relative; padding-left: 26px; margin-bottom: 10px !important; font-size: 15px; line-height: 1.4; color: #1f2937; }
.plyo-list h4.h6::before { content: "\f00c"; font-family: FontAwesome; position: absolute; left: 0; top: 1px; font-size: 13px; color: #18a999; }
.plyo-list li { padding-bottom: 0 !important; }

/* ---- Dark theme + news cards ---- */
body.plyo-dark { background: #0b1220; color: #c8d3e6; }
body.plyo-dark main { background: #0b1220; }
.news-hero { background: linear-gradient(rgba(11,18,32,.72), rgba(11,18,32,.95)), url(../img/hero/hero-signal.jpg) center/cover; padding: 90px 0 70px; }
.news-kicker { color: #2dd4ff; text-transform: uppercase; letter-spacing: .3em; font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.news-h1 { color: #fff; font-size: 64px; font-weight: 800; text-transform: uppercase; line-height: 1; margin: 0 0 18px; text-shadow: 0 0 28px rgba(45,212,255,.35); }
.news-h1::after { content: ""; display: block; width: 70px; height: 3px; margin: 18px auto 0; background: #2dd4ff; box-shadow: 0 0 14px #2dd4ff; }
.news-lead { color: #9fb0cc; font-size: 18px; margin: 0; }
.news-section { padding: 60px 0 30px; background: #0b1220; }
.news-card { height: 100%; background: linear-gradient(180deg, #111b30, #0e1626); border: 1px solid #1c2a44; border-top: 3px solid var(--accent); border-radius: 8px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.news-card:hover { transform: translateY(-6px); box-shadow: 0 14px 38px rgba(0,0,0,.55), 0 0 26px color-mix(in srgb, var(--accent) 35%, transparent); border-color: var(--accent); }
.news-card-img { position: relative; overflow: hidden; }
.news-card-img img { width: 100%; display: block; transition: transform .6s ease; }
.news-card:hover .news-card-img img { transform: scale(1.04); }
.news-card-img::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(transparent, #111b30); }
.news-chip { position: absolute; left: 18px; top: 16px; z-index: 2; background: var(--accent); color: #0b1220; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; padding: 5px 12px; border-radius: 20px; }
.news-card-body { padding: 8px 28px 30px; }
.news-date { color: var(--accent); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 8px; }
.news-title { color: #fff; font-size: 22px; font-weight: 700; line-height: 1.3; margin: 0 0 14px; }
.news-card-body p { color: #b7c4dc; font-size: 15px; line-height: 1.65; }
.news-card-body p:last-child { margin-bottom: 0; }
@media (max-width: 575px) { .news-h1 { font-size: 44px; } .news-card-body { padding: 8px 20px 24px; } }
@media (prefers-reduced-motion: reduce) { .news-card, .news-card-img img { transition: none; } .news-card:hover, .news-card:hover .news-card-img img { transform: none; } }

.news-card-body a { color: var(--accent); text-decoration: underline; }

/* ---- Dark theme: full-site overrides ---- */
body.plyo-dark section.g-bg-secondary, body.plyo-dark .g-bg-secondary { background: #0e1730 !important; }
body.plyo-dark section, body.plyo-dark section.bg-white { background-color: #0b1220; }
body.plyo-dark section.g-bg-secondary { background-color: #0e1730 !important; }
body.plyo-dark hr { border-color: #1c2a44; }
body.plyo-dark .g-color-black, body.plyo-dark .h1, body.plyo-dark h1, body.plyo-dark h2, body.plyo-dark h3 { color: #fff !important; }
body.plyo-dark .g-color-gray-dark-v2, body.plyo-dark .lead { color: #e6edf9 !important; }
body.plyo-dark .g-color-gray-dark-v3, body.plyo-dark .g-color-gray-dark-v4, body.plyo-dark .g-color-gray-dark-v5, body.plyo-dark p { color: #aab8d0 !important; }
body.plyo-dark .g-color-white, body.plyo-dark .news-card-body p, body.plyo-dark .news-card p { }
body.plyo-dark .g-bg-white, body.plyo-dark .u-shadow-v21.g-bg-white { background: linear-gradient(180deg, #111b30, #0e1626) !important; border: 1px solid #1c2a44; box-shadow: 0 6px 24px rgba(0,0,0,.45) !important; }
body.plyo-dark .plyo-card { background: linear-gradient(180deg, #111b30, #0e1626); border: 1px solid #1c2a44; border-top: 3px solid #2dd4ff; box-shadow: 0 6px 24px rgba(0,0,0,.45); }
body.plyo-dark .plyo-card:hover { box-shadow: 0 14px 38px rgba(0,0,0,.6), 0 0 26px rgba(45,212,255,.3); border-color: #2dd4ff; }
body.plyo-dark .plyo-list h4.h6, body.plyo-dark .plyo-list h4.h6 span { color: #c8d3e6 !important; }
body.plyo-dark .g-brd-primary, body.plyo-dark .u-heading-v6__title.g-brd-primary, body.plyo-dark .u-heading-v2-3--bottom.g-brd-primary { border-color: #2dd4ff !important; }
body.plyo-dark .g-width-30.g-bg-primary { background: #2dd4ff !important; box-shadow: 0 0 10px #2dd4ff; }
body.plyo-dark .g-brd-bottom.g-brd-primary { border-color: #2dd4ff !important; }
body.plyo-dark .u-icon-v2.g-bg-primary { background: #1f4fa8 !important; }
body.plyo-dark .u-icon-v2.g-bg-indigo { background: #4f46e5 !important; }
body.plyo-dark .u-line-icon-pro, body.plyo-dark .g-color-gray-dark-v5 i { color: #2dd4ff; }
body.plyo-dark .core-section .media h3 { color: #fff !important; }
body.plyo-dark .modal-content, body.plyo-dark .modal-content p, body.plyo-dark .modal-content h5 { color: #222 !important; }
body.plyo-dark .plyo-stats { background: #0b1220; border-bottom: 1px solid #1c2a44; }
body.plyo-dark .plyo-tagline, body.plyo-dark .g-color-white p, body.plyo-dark p.g-color-white { color: #fff !important; }
body.plyo-dark .bg-white, body.plyo-dark section.bg-white { background-color: #0b1220 !important; }
body.plyo-dark .g-color-gray-dark-v5, body.plyo-dark .g-color-gray-dark-v5 i, body.plyo-dark .u-line-icon-pro { color: #2dd4ff !important; }
body.plyo-dark .icon-cursor { color: #2dd4ff; }
body.plyo-dark b { color: #fff; }

.plyo-subhead { color: #2dd4ff !important; font-size: 13px; letter-spacing: .12em; border-bottom: 1px solid #1c2a44; padding-bottom: 8px; }
@media (max-width: 575px) { .plyo-stat b { font-size: clamp(15px, 4.6vw, 22px); overflow-wrap: anywhere; } .plyo-stat span { font-size: 11px; } .plyo-stats .container { padding-left: 10px; padding-right: 10px; } }
@media (max-width: 400px) { .u-heading-v6__title { font-size: 15px !important; } }

/* Industries We Serve tiles */
.plyo-industry { text-align: center; padding: 26px 12px; height: 100%; border: 1px solid #1c2a44; border-radius: 8px; background: linear-gradient(180deg, #111b30, #0e1626); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.plyo-industry:hover { transform: translateY(-5px); border-color: #2dd4ff; box-shadow: 0 10px 28px rgba(0,0,0,.5), 0 0 22px rgba(45,212,255,.25); }
.plyo-industry i { font-size: 34px; color: #2dd4ff; margin-bottom: 14px; display: block; text-shadow: 0 0 16px rgba(45,212,255,.45); }
.plyo-industry h3 { font-size: 14px; font-weight: 600; margin: 0; line-height: 1.35; color: #fff !important; }
@media (prefers-reduced-motion: reduce) { .plyo-industry { transition: none; } .plyo-industry:hover { transform: none; } }
