:root {
  --bg: #0b1220; --panel: #0f172a; --card: #121a2b;
  --ink: #e7f0ff; --muted: #9fb4d4; --line: #1f2a44;
  --warm:#FF8A00; --hot:#FF6B6B; --cool:#33B5FF;
  --grad: linear-gradient(90deg, var(--warm), var(--hot), var(--cool));
  --shadow: 0 10px 28px rgba(0,0,0,.35); --radius: 18px;
}

* { box-sizing: border-box; }
html,body { margin:0; padding:0; background:var(--bg); color:var(--ink); font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
a { color: var(--ink); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.container { width:min(1100px,92vw); margin:0 auto; }

.wrap { display:grid; grid-template-columns:260px 1fr; min-height:100vh; }
.sidebar { background:var(--panel); border-right:1px solid var(--line); position:sticky; top:0; height:100vh; padding:18px; }
.sidebar .brand { font-weight:800; letter-spacing:.1px; margin-bottom:12px; }
.sidebar nav { display:grid; gap:10px; justify-items:center; }
.sidebar nav a{
  display:block;
  width:100%;
  text-align:center;
}

main section { padding:24px 0; }
.dark-card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.hero-card { background: radial-gradient(60% 60% at 50% 0, rgba(255,138,0,.15), rgba(51,181,255,.12)), var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; }

.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

h1 { font-size: clamp(1.6rem, 2rem + .6vw, 2.6rem); margin:0 0 8px; }
h2 { font-size: clamp(1.2rem, 1.4rem + .5vw, 2rem); margin:0 0 8px; }
h3 { margin:10px 0 6px; }
.small, .muted { color:var(--muted); }

.container > h2,
.container > h3,
.section-title h2,
.section-title h3 {
  text-align: center;
  width: 100%;
}

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card { padding:16px; }

/* Keep your section title layout but your headings are centered anyway */
.section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.section-title > * { width:100%; } /* makes centered headings behave better */

.btn,
.sidebar .cta {
  background: linear-gradient(90deg, #f8fafc, #e2e8f0);
  color: #0b1220;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 12px 20px;
  border-radius: 999px;
  border: 1px solid #9fb4d4;
  cursor: pointer;
  transition: background 0.25s ease-in-out, color 0.25s ease-in-out;
  display:inline-block;
  text-align:center;
}

.btn:hover,
.btn:focus,
.sidebar .cta:hover,
.sidebar .cta:focus {
  background: linear-gradient(90deg, #e2e8f0, #cbd5e1);
  color: #000;
}

/* --- Logo size overrides --- */
.logo-hero {
  display: block;
  margin: 0 auto 10px;
  width: clamp(280px, 55vw, 650px);
  height: auto;
  border-radius: 12px;
}

.site-footer .logo-row img.logo-footer {
  width: 250px;
  height: auto;
  border-radius: 8px;
}

/* Services */
.services { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.service { padding:14px; }
.service .svc-img {
  height:160px; border-radius:14px; overflow:hidden; border:1px dashed #3a4b75;
}
.service .svc-img img { width:100%; height:100%; object-fit:cover; }

.service p.muted{margin:.45rem 0 0;}
.service p.muted:first-of-type{margin-top:.25rem;}
.service p.muted .svc-label{
  font-weight:700;
  color:#cde1ff;
  letter-spacing:.02em;
  margin-right:.25rem;
}
.services .service.dark-card{padding-bottom:1.1rem;}

/* Contracting */
.integrator-img {
  height: 100%;
  border-radius: 14px;
  overflow: hidden;
}
.integrator-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#contracting .grid-2 > .card:last-child {
  display: flex;
}

/* =========================================================
   Featured Project (Portrait Video) — NEW
   Requires:
   <div class="dark-card card project-video-card">
     <div class="portrait-video-wrapper">
       <video>...</video>
     </div>
   </div>
   ========================================================= */
#projects .project-video-card{
  display:flex;
  justify-content:center;
}

#projects .portrait-video-wrapper{
  width:100%;
  max-width:420px;      /* tweak 360–520 to taste */
  aspect-ratio: 9 / 16;
}

#projects .portrait-video-wrapper video{
  width:100%;
  height:100%;
  display:block;
  border-radius:14px;
  object-fit:cover;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* Reviews: full width stacked */
.reviews-list{
  display:grid;
  gap:16px;
}
.review p { margin-bottom: 0; }

/* Forms */
form { padding:16px; display:grid; gap:12px; }
label { font-weight:600; }
input, textarea { width:100%; padding:12px 12px; background:#0e1626; border:1.5px solid #2a3a5d; border-radius:12px; color:var(--ink); outline:none; }
input::placeholder, textarea::placeholder { color:#7d93b6; }
input:focus, textarea:focus { border-color:#3aa9ff; box-shadow:0 0 0 3px rgba(58,169,255,.25); }

/* Footer */
.site-footer {
  border-top: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.12)) , var(--bg);
  padding-bottom: 36px;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.footer-socials {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  text-align: center;
}

.footer-top{
  display:flex;
  justify-content:center;
  padding: 10px 0 16px;
}
.footer-top .back-to-top{
  opacity:.85;
  text-align:center;
}

.footer-copy{
  text-align:center;
  margin-top: 14px;
}

/* Stack logo above text and center */
.logo-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

/* Make the bold lead-in text in list items white */
.card li b,
.card li strong {
  color: var(--ink);
  font-weight: 700;
}

/* Hero alignment */
.hero-card { text-align:center; }
.hero-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: 1.2em;
  line-height: 1.4em;
}
.hero-text .line1 { font-weight: bold; }
.hero-text .line2 { font-style: italic; }

/* Brand styling (sidebar tagline etc.) */
.brand { text-align: center; margin: 1rem 0; }
.brand .logo-deg,
.brand .logo-symbol,
.brand .logo-cel {
  font-size: 2rem;
  font-weight: 800;
}
.brand .logo-tagline {
  display: block;
  font-weight: 400;
  font-size: 0.75rem;
  color: #9bb4d1;
  margin-top: 4px;
  white-space: normal;
  line-height: 1.2;
}

.logo-deg { color: #f26b5e; }
.logo-symbol { color: #ff8a65; }
.logo-cel { color: #4db6e2; }

/* Responsive */
@media (max-width:960px){
  .wrap { grid-template-columns:1fr; }
  .sidebar { position:static; height:auto; }
  .grid-2 { grid-template-columns:1fr; }
  .grid-3, .services { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width:640px){
  .footer-grid { grid-template-columns: 1fr; }
}
