/* =====================================================
PREMIUM COMPLETE WEBSITE STYLESHEET
All upgrades combined into ONE CSS file
===================================================== */

/* ---------------- ROOT VARIABLES ---------------- */

:root{
--brand:#0b6fb1;
--accent:#0f9d58;
--bg:#f7f9fb;
--card:#ffffff;
--muted:#6b7280;

--max-width:1100px;
--radius:12px;

--shadow:0 8px 24px rgba(0,0,0,0.08);
--shadow-hover:0 14px 36px rgba(0,0,0,0.12);

font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial;
}

/* ---------------- RESET ---------------- */

*{
box-sizing:border-box;
margin:0;
padding:0;
}

body{
background:var(--bg);
color:#111827;
line-height:1.5;
font-size:16px;
overflow-x:hidden;
}

/* ---------------- CONTAINER ---------------- */

.container{
width:94%;
max-width:var(--max-width);
margin:24px auto;
}

/* ---------------- GLASS HEADER ---------------- */

.header{
display:flex;
align-items:center;
justify-content:space-between;

padding:14px;
border-radius:var(--radius);

background:rgba(255,255,255,0.75);
backdrop-filter:blur(10px);

box-shadow:var(--shadow);
}

/* ---------------- BRAND / LOGO ---------------- */

.brand{
display:flex;
align-items:center;
gap:12px;
text-decoration:none;
color:#111;
}

.logo{
width:46px;
height:46px;

display:flex;
align-items:center;
justify-content:center;

background:var(--brand);
color:#fff;

border-radius:10px;
font-weight:700;
}

/* ---------------- NAVIGATION ---------------- */

.nav{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.nav a{
padding:8px 14px;
border-radius:8px;

text-decoration:none;
color:var(--brand);

font-weight:600;
transition:.25s;
}

.nav a:hover,
.nav a.active{
background:var(--brand);
color:#fff;
}

/* ---------------- DROPDOWN ---------------- */

.dropdown{
position:relative;
}

.dropdown-content{
display:none;
position:absolute;

top:100%;
left:0;

background:#fff;
border-radius:12px;

min-width:260px;

box-shadow:var(--shadow);
padding:10px 0;
}

.dropdown:hover .dropdown-content{
display:block;
}

.county-block{
padding:10px 16px;
border-bottom:1px solid #eee;
}

.county-title{
font-weight:700;
color:var(--brand);
margin-bottom:6px;
}

.dropdown-content a{
display:block;
padding:4px 0;

text-decoration:none;
color:#111;
font-size:.95rem;
}

.dropdown-content a:hover{
color:var(--brand);
}

/* ---------------- HERO ---------------- */

.hero{
margin-top:22px;
padding:30px;

border-radius:var(--radius);

background:linear-gradient(270deg,#ffffff,#e8f3ff,#ffffff);
background-size:600% 600%;

animation:heroGradient 12s ease infinite;

box-shadow:var(--shadow);

display:grid;
gap:20px;
}

.hero h1{
font-size:2rem;
}

.hero p{
color:var(--muted);
}

@keyframes heroGradient{
0%{background-position:0% 50%;}
50%{background-position:100% 50%;}
100%{background-position:0% 50%;}
}

/* ---------------- GRID ---------------- */

.grid{
display:grid;
gap:18px;
margin-top:22px;
}

/* ---------------- PREMIUM CARDS ---------------- */

.card{
background:var(--card);
border-radius:14px;

padding:22px;
box-shadow:var(--shadow);

transition:all .25s ease;
}

.card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-hover);
}

/* ---------------- SERVICE CARDS ---------------- */

.service-card{
border:1px solid #e5e7eb;
border-radius:14px;
padding:22px;

background:#fff;
transition:.25s;
}

.service-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-hover);
}

/* ---------------- BUTTONS ---------------- */

.btn{
display:inline-block;
padding:10px 18px;

border-radius:8px;

background:linear-gradient(135deg,var(--brand),#2d8ed3);
color:#fff;

border:none;
font-weight:700;

cursor:pointer;
transition:.25s;
}

.btn:hover{
transform:translateY(-2px);
box-shadow:0 6px 20px rgba(0,0,0,.25);
}

/* ---------------- FORMS ---------------- */

input,textarea,select{
width:100%;
padding:10px 12px;

border-radius:8px;
border:1px solid #e5e7eb;

font-size:1rem;
}

textarea{
min-height:120px;
}

/* ---------------- BLOG POSTS ---------------- */

.post{
display:flex;
gap:12px;
}

.meta{
color:var(--muted);
font-size:.9rem;
}

/* ---------------- BADGES ---------------- */

.badge{
background:#eef6ff;
color:var(--brand);

padding:6px 10px;
border-radius:8px;

font-size:.9rem;
font-weight:700;
}

/* ---------------- COUNTY GRID ---------------- */

.county-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:20px;
margin-top:20px;
}

.county-list{
list-style:none;
}

.county-list li{
margin:4px 0;
}

.county-list a{
text-decoration:none;
color:var(--brand);
}

.county-list a:hover{
text-decoration:underline;
}

/* ---------------- FOOTER ---------------- */

.footer{
margin-top:40px;
text-align:center;
color:var(--muted);
}

/* ---------------- TECH CIRCUIT BACKGROUND ---------------- */

body::before{
content:"";
position:fixed;
inset:0;
background-image:url("images/circuit-pattern.svg");
background-size:700px;
background-repeat:repeat;

opacity:.175;

pointer-events:none;
z-index:-2;
}

body::after{
content:"";
position:fixed;
inset:0;

background:
radial-gradient(circle at 20% 30%, rgba(0,255,180,0.15), transparent 40%),
radial-gradient(circle at 80% 70%, rgba(0,170,255,0.15), transparent 40%);

animation:circuitGlow 10s ease-in-out infinite alternate;

z-index:-1;
}

@keyframes circuitGlow{
0%{filter:blur(25px);opacity:.2;}
100%{filter:blur(40px);opacity:.35;}
}
body::before {
  z-index: 0; /* SVG pattern */
}

body::after {
  z-index: -1; /* glow behind it */
}
body {
  position: relative;
  z-index: 0;
}

/* ---------------- CIRCUIT DATA FLOW ---------------- */

.circuit-line{
stroke-width:2;
fill:none;

stroke-dasharray:12;
stroke-dashoffset:100;

animation:dataFlow 4s linear infinite;
}

@keyframes dataFlow{
to{stroke-dashoffset:0;}
}

/* ---------------- GLOW NODES ---------------- */

.node{
width:6px;
height:6px;

background:#00ffc8;
border-radius:50%;

position:absolute;

box-shadow:0 0 10px #00ffc8;

animation:nodePulse 3s infinite;
}

@keyframes nodePulse{
0%{opacity:.3;transform:scale(1);}
50%{opacity:1;transform:scale(1.8);}
100%{opacity:.3;transform:scale(1);}
}

/* ---------------- SCROLL REVEAL ---------------- */

.reveal{
opacity:0;
transform:translateY(30px);
transition:all .8s ease;
}

.reveal.active{
opacity:1;
transform:translateY(0);
}

/* ---------------- RESPONSIVE ---------------- */

@media(min-width:760px){

.hero{
grid-template-columns:1fr 360px;
align-items:center;
}

.grid{
grid-template-columns:repeat(2,1fr);
}

.pricing{
grid-template-columns:repeat(3,1fr);
}

}body {
  position: relative;
  background: var(--bg);
  z-index: 0;
}body::before {
  z-index: -1;
}body {
  position: relative;
  z-index: 0;
}
body {
  position: relative;
  background: var(--bg);
  z-index: 0;
}

body::before {
  content:"";
  position:fixed;
  inset:0;
  background-image:url("images/circuit-pattern.svg");
  background-size:700px;
  background-repeat:repeat;
  opacity:.12; /* make it visible */
  pointer-events:none;
  z-index:0; /* ABOVE glow layer */
}

body::after {
  content:"";
  position:fixed;
  inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(0,255,180,0.15), transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(0,170,255,0.15), transparent 40%);
  animation:circuitGlow 10s ease-in-out infinite alternate;
  z-index:-1; /* BELOW circuit pattern */
  
}body::before {
  content:"";
  position:fixed;
  inset:0;

  mask-image:url("images/circuit-pattern.svg");
  mask-repeat:repeat;
  mask-size:700px;

  background:#005f73 ; /* color of the pattern */
  opacity:.12;

  pointer-events:none;
  z-index:0;
}body::before {
  filter: drop-shadow(0 0 6px #00ffc8);
}body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  animation: glowCycle 9s linear infinite;
}

@keyframes glowCycle {
  0%   { filter: drop-shadow(0 0 8px #00aaff); } /* neon blue */
  33%  { filter: drop-shadow(0 0 8px #39ff14); } /* neon green */
  66%  { filter: drop-shadow(0 0 8px #ffcc33); } /* neon gold */
  100% { filter: drop-shadow(0 0 8px #00aaff); } /* back to neon blue */
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  animation: glowCycle 9s linear infinite;
}

@keyframes glowCycle {
  0%   { filter: drop-shadow(0 0 18px #00c8ff); } /* neon blue */
  33%  { filter: drop-shadow(0 0 18px #53ff00); } /* neon green */
  66%  { filter: drop-shadow(0 0 18px #ffd84d); } /* neon gold */
  100% { filter: drop-shadow(0 0 18px #00c8ff); } /* neon blue */
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  animation: glowCycle 9s linear infinite;
}

@keyframes glowCycle {
  0%   { filter: drop-shadow(0 0 20px #00c8ff); }
  33%  { filter: drop-shadow(0 0 20px #53ff00); }
  66%  { filter: drop-shadow(0 0 20px #ffd84d); }
  100% { filter: drop-shadow(0 0 20px #00c8ff); }
}
.local-events, .south-bend-events {
  margin: 40px 0;
}

.local-events iframe,
.south-bend-events iframe {
  border-radius: 8px;
}