
:root{
  --red:#d43a3a;
  --red-2:#a61d1d;
  --ink:#ececec;
  --paper:#0e0e10;
  --muted:#242628;
  --shadow: rgba(0,0,0,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:#0e0e10}
a{color:#ffd1d1;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:0 1rem}
.header{position:sticky;top:0;z-index:50;background:#0e0e10e6;backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid #202224}
.nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0}
.brand{display:flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:.5px}
.brand-badge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#0f0f11,#1b1b1f);color:#fff;box-shadow:0 6px 16px var(--shadow);font-weight:900}
.brand > span:last-child{color:var(--red)}
.nav a.btn{padding:.6rem 1rem;border:1px solid #2b2d2f;border-radius:12px;color:#ececec}
.btn-primary{background:linear-gradient(135deg,var(--red),var(--red-2));color:#fff;border:1px solid #6e1212;box-shadow:0 8px 20px var(--shadow)}
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#0e0e10,#121213)}
.hero-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:3rem 0}
.hero h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.05;margin:.25rem 0 1rem}

.kicker{
  display:inline-block;
  font-weight:800;
  color:#f2f4f6;                     /* clean off-white text */
  background: radial-gradient(120% 140% at 10% 10%, rgba(212,58,58,.18), rgba(166,29,29,.14));
  padding:.32rem .7rem;
  border-radius:999px;
  border:1px solid rgba(212,58,58,.34);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 4px 16px rgba(212,58,58,.18);
  letter-spacing:.2px;
  backdrop-filter: saturate(120%) blur(2px);
  transform: translateZ(0);
  transition: box-shadow .2s ease, transform .2s ease;
}
.kicker:hover{
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.05),
    0 6px 22px rgba(212,58,58,.28);
  transform: translateY(-1px);
}

.hero p{font-size:1.1rem;color:#cfd1d3}
.hero-art{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 16px 40px var(--shadow)}
.section{padding:4rem 0}
.section h2{font-size:clamp(1.6rem,4vw,2.2rem);margin:0 0 .75rem;color:#f3f5f6}
.lead{color:#c3c7ca}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:#121214;border:1px solid #242628;border-radius:16px;padding:1rem;box-shadow:none}
.card h3{margin:.25rem 0 .5rem;color:#f3f5f6}
.list{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}
.list li{display:flex;gap:.5rem;align-items:flex-start;color:#e9ebec}
.list li img{width:18px;height:18px;margin-top:.2rem}
.ribbon{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:999px;background:#151517;border:1px solid #2a2c2f;width:max-content;color:#f0f2f3;font-weight:700}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.gallery a{display:block;border-radius:14px;overflow:hidden;border:1px solid #2a2c2f}
.gallery img{display:block;width:100%;height:auto;transition:transform .5s ease;filter:brightness(.98)}
.gallery a:hover img{transform:scale(1.05)}
.faq details{background:#121214;border:1px solid #242628;border-radius:14px;padding:1rem}
.faq summary{font-weight:600;cursor:pointer;color:#f3f5f6}
.footer{background:#08090a;color:#aeb7bc;padding:2.5rem 0;margin-top:2rem}
.cta-dock{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;z-index:100;padding:.35rem;background:#121214;border:1px solid #2a2c2f;border-radius:999px;box-shadow:0 10px 28px var(--shadow)}
.cta-dock a{display:flex;gap:.4rem;align-items:center;padding:.6rem .9rem;border-radius:999px;border:1px solid #2a2c2f;background:#121214;color:#ececec}
.cta-dock a.primary{background:linear-gradient(135deg,var(--red),var(--red-2));color:#fff;border:1px solid #6e1212}
.icon{width:18px;height:18px;display:inline-block}


.badges{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center }
.badge{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.5rem .9rem; border-radius:999px;
  font-size:1rem; line-height:1; font-weight:700;
  color:#eaeff2;
  background: transparent;
  border:2px solid var(--red);
  box-shadow: none;
  backdrop-filter: none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.badge:hover{
  background: rgba(212,58,58,.12);
  transform: translateY(-1px);
}


.kpi{display:flex;gap:1rem;flex-wrap:wrap;margin:.75rem 0}
.kpi .pill{background:#141416;border:1px solid #2a2c2f;border-radius:999px;padding:.4rem .7rem;color:#f0f2f3;font-weight:600}
.map-embed{border:0;width:100%;height:320px;border-radius:14px;box-shadow:none;border:1px solid #2a2c2f}
@media (max-width:900px){.hero-inner{grid-template-columns:1fr;padding:2rem 0}.gallery{grid-template-columns:repeat(2,1fr)}}
.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}
/* Utility-style typography */
h1,h2,h3,.display{font-family:'Oswald',system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;letter-spacing:.2px}
.accent{ color: var(--red) }

/* ===== Scalable media utilities ===== */
img{max-width:100%;height:auto;display:block}
.media{position:relative;width:100%;aspect-ratio:4/3;border-radius:14px;overflow:hidden;border:1px solid var(--muted);background:#111}
.media > img.fit-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media > img.fit-contain{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent}
.brand-logo{height:36px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
@media (max-width:640px){.brand-logo{height:30px}}

.brand-logo.card{background:#fff;border-radius:10px;padding:4px}


/* Service icon chips */
.service-icon { width:22px; height:22px; display:inline-block; vertical-align:middle; margin-right:.5rem }
.card h3 .service-icon { margin-right:.4rem }


/* Bigger, red service icons */
.service-icon{ width:26px; height:26px; color: var(--red); display:inline-block; vertical-align:middle; margin-right:.5rem }
@media (min-width:1024px){ .service-icon{ width:28px; height:28px }}

/* Lightbox overlay */
dialog.lightbox{ padding:0; border:none; border-radius:14px; max-width:92vw; max-height:90vh; background:#0d0f11; }
.lightbox::backdrop{ background:rgba(0,0,0,.6) }


.lightbox__close{ position:absolute; top:10px; right:10px; background:#151517; border:1px solid #2a2c2f; color:#fff; border-radius:999px; padding:.4rem .7rem; cursor:pointer }

/* Video tiles show a play badge */
.lb-video{ position:relative }
.lb-video::after{
  content:''; position:absolute; inset:auto auto 10px 10px; width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg,var(--red),var(--red-2));
  box-shadow:0 6px 16px rgba(0,0,0,.4);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox=\"0 0 24 24\"><path fill=\"white\" d=\"M8 5v14l11-7z\"/></svg>') center/60% no-repeat;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox=\"0 0 24 24\"><path fill=\"white\" d=\"M8 5v14l11-7z\"/></svg>') center/60% no-repeat;
}

.card h3 .service-icon{ color: var(--red) }



.card h3{ color:#f3f5f6 }

.service-icon{ color: var(--red) }

/* Inline SVG service icons */
svg.service-icon{ width:28px; height:28px; color: var(--red); vertical-align:middle; margin-right:.5rem; display:inline-block; background:none }
@media (min-width:1024px){ svg.service-icon{ width:30px; height:30px } }

/* Lightbox navigation controls */
.lightbox__nav{ position:absolute; inset:0; display:flex; justify-content:space-between; align-items:center; pointer-events:none }
.lightbox__btn{
  pointer-events:auto; display:grid; place-items:center;
  width:44px; height:44px; border-radius:999px;
  background:#151517; border:1px solid #2a2c2f; color:#fff;
  opacity:.85; transition:opacity .15s ease, transform .15s ease;
}
.lightbox__btn:hover{ opacity:1; transform:translateY(-1px) }
.lightbox__btn svg{ width:20px; height:20px; display:block }
.lightbox__btn--prev{ margin-left:10px }
.lightbox__btn--next{ margin-right:10px }

/* --- Fit-to-viewport lightbox (no scroll) --- */
dialog.lightbox{ padding:0; border:none; background:#0d0f11; overflow:hidden }
.lightbox::backdrop{ background:rgba(0,0,0,.75) }


@media (max-width:700px){
  
}
/* Keep controls positioned regardless of content size */
.lightbox__nav{ position:absolute; inset:0; display:flex; justify-content:space-between; align-items:center; pointer-events:none }
.lightbox__btn{ pointer-events:auto }
.lightbox__close{ position:absolute; top:10px; right:10px }

/* --- Adaptive lightbox: full-size up to viewport, no scroll --- */
dialog.lightbox{ padding:0; border:none; background:#0d0f11; overflow:hidden }
.lightbox::backdrop{ background:rgba(0,0,0,.75) }

.lightbox__frame{
  display:flex; align-items:center; justify-content:center;
  max-width:96vw; max-height:92vh;
  padding:0; margin:0; overflow:hidden;
}

.lightbox__frame img,
.lightbox__frame video{
  display:block;
  width:auto; height:auto;
  max-width:96vw; max-height:92vh;   /* fit within viewport */
  object-fit:contain;                 /* never crop */
  border-radius:12px;
}

@media (max-width:700px){
  .lightbox__frame{ max-width:98vw; max-height:90vh }
  .lightbox__frame img, .lightbox__frame video{ max-width:98vw; max-height:90vh }
}

/* Controls stay overlaid */
.lightbox__nav{ position:absolute; inset:0; display:flex; justify-content:space-between; align-items:center; pointer-events:none }
.lightbox__btn{ pointer-events:auto }
.lightbox__close{ position:absolute; top:10px; right:10px }


/* === Responsive hardening (WBC Tree Services) === */
:root { --container: 1200px; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 1rem; }

.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 1100px) { .grid-3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 720px)  { .grid-3 { grid-template-columns: 1fr; } }

.header .nav { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.header .nav nav { display:flex; gap:.5rem; align-items:center; }
@media (max-width: 820px){
  .header .nav nav { width:100%; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; padding-bottom:.25rem; }
  .header .nav nav a { flex:0 0 auto; }
  .brand { margin-bottom:.25rem; }
}

.hero h1 { font-size: clamp(2rem, 6vw, 4rem); line-height: 1.05; }
.hero p.lead { font-size: clamp(1.05rem, 2.2vw, 1.3rem); }

.gallery img, .gallery video { width:100%; height:auto; display:block; border-radius:16px; }
.map-embed { width:100%; height: min(60vh, 420px); border:0; border-radius:16px; }

.badges, .pill-row { display:flex; flex-wrap:wrap; gap:.6rem; }

.footer .pill { border:2px solid #d43a3a !important; box-shadow:none !important; background:transparent !important; color:#f2f4f6 !important; }

/* Lightbox media always fits viewport */
.lightbox-media { max-width: 100vw; max-height: 100svh; object-fit: contain; }


/* Center brand on mobile (logo + "WBC Tree Services") */
@media (max-width: 820px){
  .header .nav .brand{
    flex: 0 0 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    text-align: center;
  }
  /* keep nav row centered and scrollable if it overflows */
  .header .nav nav{
    width: 100%;
    justify-content: center;
  }
}
