h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ------------------------------
   Site-wide theme adjustments
   - Lighter beige text on dark background
   - Unified accent gradient + buttons
   - Shared eyebrow style
--------------------------------- */

:root {
    /* Steel gray / gray-blue accent */
    --cf-accent: #5a6b7d; /* steel blue-gray */
    --cf-accent-secondary: #8a99ad; /* lighter steel */
    --cf-text-strong: #f9fbff; /* near-white for headings on dark */
    --cf-text-soft: rgba(247, 247, 250, 0.88); /* lighter beige */
}

/* Dark theme variables centralized in Cyberfleet.css */

/* Small uppercase label used across pages */
.eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cf-text-soft);
}

/* Primary button: unified gradient */
.btn-primary {
    background: linear-gradient(135deg, var(--cf-accent) 0%, var(--cf-accent-secondary) 100%);
    color: #ffffff;
    border: none;
    box-shadow: 0 18px 45px rgba(110, 130, 150, 0.32);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 55px rgba(110, 130, 150, 0.38);
}

/* Outline/Ghost buttons share accent color */
.btn-outline,
.btn-ghost {
    border: 1px solid rgba(120, 140, 160, 0.45);
    color: var(--cf-accent);
    background: transparent;
}

.btn-outline:hover,
.btn-ghost:hover {
    transform: translateY(-2px);
    border-color: rgba(120, 140, 160, 0.7);
}

/* ------------------------------
   Navbar + dropdown (moved from MainLayout.razor.css)
--------------------------------- */

#blazor-error-ui {
  color-scheme: light only;
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: 0.75rem;
  top: 0.5rem;
}

.navbar {
  backdrop-filter: blur(10px);
  background: rgba(8, 14, 28, 0.92) !important;
  border-bottom: 1px solid rgba(95, 214, 255, 0.18);
}

.navbar-nav .nav-link {
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0.65rem 1rem;
  color: rgba(245, 247, 255, 0.9);
}

.navbar-nav .nav-link.active { color: var(--cf-accent); }

.navbar-nav .dropdown-menu {
  background: rgba(12, 18, 34, 0.92);
  border: 1px solid rgba(95, 214, 255, 0.16);
  border-radius: 16px;
  padding: 0.75rem;
  min-width: 280px;
  box-shadow: 0 18px 45px rgba(3, 7, 16, 0.45);
}

.dropdown-menu .dropdown-item {
  border-radius: 10px;
  color: rgba(245, 247, 255, 0.9);
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
}

.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:focus,
.dropdown-menu .dropdown-item:hover {
  background: linear-gradient(135deg, rgba(95, 214, 255, 0.18), rgba(134, 75, 255, 0.18));
  color: #ffffff;
}

.dropdown-menu .dropdown-header {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(142, 160, 189, 0.72);
  padding: 0.5rem 0.75rem 0.25rem;
}

.dropdown-divider { border-top-color: rgba(95, 214, 255, 0.12); }

.brand { display: inline-flex; align-items: center; gap: 10px; line-height: 0; position: relative; z-index: 2; }
.wordmark { height: 24px; width: auto; display: block; }
.navbar-actions { display: flex; align-items: center; gap: 0.8rem; }
.navbar-actions .btn-primary,
.navbar-actions .btn-outline { border-radius: 999px; padding: 0.55rem 1.4rem; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.navbar-actions .btn-primary { background: linear-gradient(135deg, var(--cf-accent) 0%, var(--cf-accent-secondary) 100%); color:#fff; box-shadow: 0 16px 35px rgba(110,130,150,.28); }
.navbar-actions .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 22px 48px rgba(110,130,150,.32); }
.navbar-actions .btn-outline { border:1px solid rgba(120,140,160,.45); color: var(--cf-accent); background: transparent; }
.navbar-actions .btn-outline:hover { transform: translateY(-2px); border-color: rgba(120,140,160,.7); }
@media (max-width: 992px){ .navbar-actions{ margin-top:1.2rem; flex-direction:column; align-items:stretch;} .navbar-actions .btn-primary,.navbar-actions .btn-outline{ text-align:center;} }

/* ------------------------------
   Logo overlay (moved from LogoOverlay.razor.css)
--------------------------------- */
.symbol-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;height:40px;width:40px;cursor:pointer;background:none;border:0;padding:0;margin:0;appearance:none;color:inherit;line-height:0;--launch-delay:1.15s;--launch-duration:4.4s;--probe-mid-x:calc(50vw - 50%);--probe-mid-y:calc(50vh - 50%);--probe-target-x:calc(130vw);--probe-target-y:calc(40vh - 50%);z-index:3}
.symbol{box-sizing:border-box;height:40px;padding:4px;width:auto;user-select:none;filter:drop-shadow(0 6px 12px rgba(0,0,0,.35));animation:spin var(--rotation-speed, 12s) linear infinite;transform-origin:50% 50%;will-change:transform}
.blink-ring,.probe{position:absolute;inset:0;pointer-events:none}
.blink-ring{transform-origin:center;transform:scale(.55);opacity:0;z-index:2;filter:drop-shadow(0 0 6px rgba(255,0,0,.9)) drop-shadow(0 0 12px rgba(255,0,0,.6));mix-blend-mode:screen}
.ring{fill:none;stroke:#ff2b2b;stroke-width:8}
.symbol-wrap.attack .blink-ring{animation:ring-blink 1.05s ease-out 0s 1 both}
.symbol-wrap.attack .probe{top:50%;left:50%;width:40px;height:40px;background-color:#fff;-webkit-mask:url("/img/symbol.svg") center/contain no-repeat;mask:url("/img/symbol.svg") center/contain no-repeat;filter:drop-shadow(0 0 28px rgba(0,0,0,.55));transform:translate(-50%,-50%) scale(.7) rotate(0deg);opacity:0;animation:launch var(--launch-duration) cubic-bezier(.7,.05,.2,1) var(--launch-delay) 1 both}
.symbol-wrap.attack .probe::before{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;background:#ff2b2b;box-shadow:0 0 14px rgba(255,43,43,.65);transform:translate(-50%,-50%) scale(.72);opacity:0;animation:core-blink .8s ease-in-out var(--launch-delay) infinite}
.symbol-wrap.attack .probe::after{content:"";position:absolute;top:50%;right:calc(100% + 6px);height:4px;width:0;background:linear-gradient(90deg, rgba(5,8,12,.65), rgba(5,8,12,0));opacity:0;transform-origin:right center;animation:trail var(--launch-duration) ease var(--launch-delay) 1 both}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ring-blink{0%,9%{opacity:0}10%,19%{opacity:1}20%,39%{opacity:0}40%,49%{opacity:1}50%,69%{opacity:0}70%,79%{opacity:1}80%,100%{opacity:0}}
@keyframes core-blink{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.6)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes launch{0%{transform:translate(-50%,-50%) scale(.65) rotate(0deg);opacity:0;animation-timing-function:cubic-bezier(.55,0,.45,1)}12%{transform:translate(-50%,-50%) scale(1) rotate(360deg);opacity:1;animation-timing-function:cubic-bezier(.7,0,.35,1)}38%{transform:translate(var(--probe-mid-x, calc(50vw - 50%)), var(--probe-mid-y, calc(50vh - 50%))) scale(1.15) rotate(1440deg);animation-timing-function:linear}55%{transform:translate(var(--probe-mid-x, calc(50vw - 50%)), var(--probe-mid-y, calc(50vh - 50%))) scale(1.15) rotate(1980deg);animation-timing-function:cubic-bezier(.5,0,.75,1)}100%{transform:translate(var(--probe-target-x, calc(130vw)), var(--probe-target-y, calc(40vh - 50%))) scale(1) rotate(2880deg);opacity:0}}
@keyframes trail{0%{width:0;opacity:0}10%{width:14px;opacity:.9}38%{width:120px;opacity:.6}55%{width:90px;opacity:.45}100%{width:0;opacity:0}}
@media (prefers-reduced-motion: reduce){.symbol,.blink-ring,.probe{animation:none!important}}
.symbol-wrap:focus-visible{outline:2px solid rgba(255,255,255,.75);outline-offset:4px}

/* ------------------------------
   Product pages – shared styles
--------------------------------- */

/* Theme hooks for per-product accents */
:root { --accent: var(--cf-accent); --accent-secondary: var(--cf-accent-secondary); }
.theme-aisoc  { --accent:#5fd6ff; --accent-secondary:#864bff; --bg-dark:#050a16; --bg-darker:#040713; }
.theme-aurora { --accent:#ffb45f; --accent-secondary:#ff6b9c; --bg-dark:#0a101f; --bg-darker:#060914; }
.theme-nordic { --accent:#7af5d0; --accent-secondary:#43c0ff; --bg-dark:#07131f; --bg-darker:#050a13; }

.product-shell{width:min(1080px,92vw);margin:0 auto}
.product-hero{background:linear-gradient(135deg, rgba(8,19,43,.95) 0%, rgba(7,11,25,.95) 65%, rgba(7,14,31,.98) 100%), radial-gradient(circle at top right, rgba(95,214,255,.26), transparent 55%);padding:clamp(3rem,6vw,4.5rem) 0 clamp(2.5rem,5vw,3.5rem);box-shadow:inset 0 -1px 0 rgba(95,214,255,.08)}
.product-hero__content{max-width:560px}
.product-hero__content h1{font-size:clamp(2.3rem,4.2vw,3.1rem);font-weight:700;margin-bottom:1rem;color:var(--cf-text-strong)}
.lead{color:rgba(247,247,250,.9);font-size:1.1rem;line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.product-hero__panel{margin-top:clamp(2rem,5vw,3rem);padding:1.8rem;border-radius:20px;background:rgba(12,20,38,.8);border:1px solid rgba(95,214,255,.22);backdrop-filter:blur(12px)}
.product-hero__panel h2{font-size:1.4rem;margin-bottom:1rem}
.product-hero__panel ul{list-style:none;padding:0;display:grid;gap:.85rem}
.product-hero__panel li{position:relative;padding-left:1.4rem;color:rgba(247,247,250,.9)}
.product-hero__panel li::before{content:"";width:.6rem;height:.6rem;border-radius:999px;background:linear-gradient(135deg, var(--accent), var(--accent-secondary));position:absolute;top:.4rem;left:0;box-shadow:0 0 12px rgba(95,214,255,.55)}
.product-metrics{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:clamp(2.2rem,4vw,3rem) 0 0}
.product-metrics div{background:rgba(9,17,32,.8);padding:1.6rem;border-radius:18px;border:1px solid rgba(95,214,255,.12)}
.metric{display:block;font-size:2.2rem;font-weight:700;color:var(--accent);margin-bottom:.4rem}
.product-body{background:linear-gradient(180deg, var(--bg-dark) 0%, var(--bg-darker) 100%);padding:clamp(3.2rem,6vw,4.5rem) 0}
.feature-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.feature-grid article{background:rgba(11,21,36,.85);border-radius:18px;padding:1.75rem;border:1px solid rgba(95,214,255,.15);box-shadow:0 18px 45px rgba(3,7,16,.4)}
.feature-grid h3{font-size:1.3rem;margin-bottom:.6rem}
.product-pipeline{background:linear-gradient(180deg, var(--bg-darker) 0%, var(--bg-dark) 100%);padding:clamp(3rem,6vw,4rem) 0}
.product-pipeline h2{font-size:1.6rem;margin-bottom:1.2rem}
.pipeline-steps{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:pipeline;list-style:none;padding:0}
.pipeline-steps li{background:rgba(9,17,29,.85);border-radius:18px;padding:1.6rem;border:1px solid rgba(95,214,255,.18);position:relative;overflow:hidden}
.pipeline-steps li::before{counter-increment:pipeline;content:counter(pipeline, decimal-leading-zero);position:absolute;top:1rem;right:1.2rem;font-size:2.2rem;font-weight:700;color:rgba(95,214,255,.15)}
.pipeline-steps h4{font-size:1.15rem;margin-bottom:.4rem}
.pipeline-steps p{color:rgba(247,247,250,.9)}
.product-cta{background:linear-gradient(135deg, rgba(95,214,255,.12), transparent 55%), var(--bg-dark);padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,5rem)}
.cta-card{background:rgba(12,22,36,.9);border-radius:22px;padding:clamp(2rem,5vw,3rem);border:1px solid rgba(95,214,255,.22);text-align:center;box-shadow:0 24px 60px rgba(3,7,16,.38)}
.cta-card h2{font-size:2rem;margin-bottom:1rem}
.cta-card p{color:rgba(247,247,250,.9);margin-bottom:1.5rem}
.btn-primary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.7rem;border-radius:999px;font-weight:600;text-decoration:none;transition:transform .2s ease, box-shadow .2s ease}
.btn-ghost{border:1px solid rgba(120,140,160,.45);color:var(--accent);background:transparent}
.btn-ghost:hover{transform:translateY(-2px);border-color:rgba(120,140,160,.7)}
@media (max-width:900px){.product-hero__panel{max-width:560px}.hero-cta{flex-direction:column;align-items:stretch}.btn-ghost,.btn-primary{width:100%}}
@media (max-width:640px){.product-metrics div{text-align:center}.product-hero__panel{padding:1.4rem}.pipeline-steps{grid-template-columns:minmax(0,1fr)}}

/* ------------------------------
   Contact page (moved from Contact.razor.css)
--------------------------------- */
.contact-shell{width:min(1080px,92vw);margin:0 auto}
.contact-hero{background:radial-gradient(circle at top right, rgba(64,198,255,.25), transparent 55%), linear-gradient(135deg, #091524 0%, #0f1e38 60%, #101726 100%);padding:clamp(3rem,6vw,4.5rem) 0}
.contact-hero__content{max-width:540px}
.contact-hero__content h1{font-size:clamp(2.3rem,4vw,3rem);font-weight:700;margin-bottom:1rem}
.contact-highlights{display:grid;gap:.5rem;padding:0;margin:1.6rem 0 0;list-style:none}
.contact-highlights li::before{content:"";display:inline-block;width:.75rem;height:.75rem;margin-right:.75rem;border-radius:999px;background:linear-gradient(135deg, #5fd6ff, #a156ff);box-shadow:0 0 12px rgba(95,214,255,.55)}
.contact-highlights li{display:flex;align-items:center;font-weight:500}
.contact-hero__card{margin-top:clamp(2rem,5vw,3rem);padding:1.75rem;background:rgba(16,23,38,.65);border:1px solid rgba(95,214,255,.25);border-radius:18px;backdrop-filter:blur(10px);max-width:340px}
.contact-hero__card h2{font-size:1.35rem;margin-bottom:.75rem}
.contact-hero__card .lead{color:rgba(247,247,250,.9);margin-bottom:1.25rem}
.contact-hero__card dl{display:grid;gap:1rem}
.contact-hero__card dt{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(142,160,189,.85)}
.contact-hero__card dd{margin:.2rem 0 0;font-size:1rem}
.contact-hero__card a{color:var(--cf-accent);text-decoration:none}
.contact-body{background:linear-gradient(180deg, #050a16 0%, #0a121f 100%);padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,5rem)}
.contact-layout{display:grid;gap:clamp(2rem,5vw,3rem);grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
/* Contact form card: switch to light background for better contrast */
.contact-form-card{background:#ffffff;border:1px solid rgba(16,23,38,.12);border-radius:20px;padding:clamp(2rem,4vw,2.75rem);box-shadow:0 24px 60px rgba(3,7,16,.12);color:#0f172a}

/* ------------------------------
   Aurora Sentinel extras
--------------------------------- */
.product-service{background:radial-gradient(circle at center, rgba(24,30,49,.9), rgba(10,16,29,.95) 70%);padding:clamp(3rem,6vw,4.5rem) 0}
.product-service h2{text-align:center;font-size:2rem;margin-bottom:2.2rem}
.service-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.service-grid article{background:rgba(18,27,45,.85);border-radius:18px;padding:1.65rem 1.8rem;border:1px solid rgba(255,180,95,.18);display:grid;gap:.8rem}
.service-grid h4{font-size:1.2rem;margin:0}
.service-grid p{color:rgba(247,247,250,.9)}
.service-grid ul{color:rgba(247,247,250,.88);margin:0;padding-left:1.1rem;display:grid;gap:.35rem}

/* ------------------------------
   Nordic Defender extras
--------------------------------- */
.product-modules{background:radial-gradient(circle at center, rgba(9,20,32,.92), rgba(6,12,24,.95) 70%);padding:clamp(3rem,6vw,4.5rem) 0}
.product-modules h2{text-align:center;font-size:2rem;margin-bottom:2.2rem}
.module-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.module-grid article{background:rgba(11,21,33,.88);border-radius:18px;padding:1.7rem 1.9rem;border:1px solid rgba(122,245,208,.18);display:grid;gap:.85rem}
.module-grid header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}
.module-grid h4{font-size:1.2rem;margin:0}
.module-grid span{font-size:.85rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;background:rgba(122,245,208,.15);border:1px solid rgba(122,245,208,.35);color:var(--accent)}
.module-grid p{color:rgba(247,247,250,.9)}
.module-grid ul{color:rgba(247,247,250,.88);margin:0;padding-left:1.1rem;display:grid;gap:.35rem}
/* Contact form grid layout (restored) */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem}
.form-grid.single{grid-template-columns:1fr}
@media (max-width: 768px){.form-grid{grid-template-columns:1fr}}

/* Contact form: fix label/input alignment and readability */
.contact-form-card h2{color:#0f172a}
.contact-form-card .form-field{display:grid;grid-template-columns:1fr;gap:.35rem;margin-bottom:1rem}
.contact-form-card .form-field label{text-align:left;color:#475569;font-weight:500}
.contact-form-card .form-field input,.contact-form-card .form-field textarea{width:100%;display:block;background:#ffffff;color:#0f172a;border-color:rgba(16,23,38,.2)}
.contact-form-card .privacy-note{color:#6b7280}

/* Placeholder color inside the light card */
.contact-form-card .form-field input::placeholder,
.contact-form-card .form-field textarea::placeholder{color:#94a3b8}

/* Ensure readable inputs in dark theme within the light card */
[data-bs-theme=dark] .contact-form-card .form-field input,
[data-bs-theme=dark] .contact-form-card .form-field textarea{
  color:#0f172a !important;
  background:#ffffff !important;
  border-color:rgba(16,23,38,.2) !important;
}

/* Force dark theme to avoid beige text across site */
[data-bs-theme=dark]{
  --bs-body-color:#e7eef8 !important;
  --bs-secondary-color:rgba(188, 195, 204, 0.72) !important;
  --bs-heading-color:#ffffff !important;
}

/* Contact page side column: keep text white on dark cards */
.contact-side .side-card{color:rgba(247,247,250,.92)}
.contact-side .side-card h3{color:#fff}
.contact-side .side-card p,
.contact-side .side-card li,
.contact-side .side-card details,
.contact-side .side-card summary{color:rgba(247,247,250,.92)}

