/* Hearthstone Service Hub - Modern UI Refresh */
:root{
  --bg:#0f172a;
  --bg-soft:#111827;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-dark:#1f2937;
  --text:#111827;
  --text-soft:#475569;
  --muted:#64748b;
  --line:#e5e7eb;
  --line-dark:rgba(255,255,255,.12);
  --gold:#f59e0b;
  --gold-soft:#fef3c7;
  --orange:#ea580c;
  --orange-dark:#c2410c;
  --green:#16a34a;
  --red:#dc2626;
  --blue:#2563eb;
  --purple:#7c3aed;
  --shadow:0 18px 45px rgba(15,23,42,.10);
  --shadow-soft:0 8px 22px rgba(15,23,42,.08);
  --radius:20px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,Segoe UI,Roboto,Arial,Helvetica,sans-serif;
  background:
    radial-gradient(circle at top left,rgba(245,158,11,.16),transparent 32rem),
    linear-gradient(180deg,#f8fafc 0%,#eef2f7 100%);
  color:var(--text);
  min-height:100vh;
}
a{color:inherit}
img{max-width:100%}

/* Top navigation */
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 24px;
  color:#fff;
  background:rgba(15,23,42,.88);
  border-bottom:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(18px);
  box-shadow:0 10px 28px rgba(15,23,42,.18);
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-size:1.15rem;
  font-weight:900;
  letter-spacing:.2px;
  white-space:nowrap;
}
.flame{
  display:inline-flex;
  width:32px;
  height:32px;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  color:#1f1300;
  background:linear-gradient(135deg,#fbbf24,#ea580c);
  box-shadow:0 8px 20px rgba(245,158,11,.35);
}
nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
nav a{
  color:rgba(255,255,255,.88);
  text-decoration:none;
  padding:9px 12px;
  border-radius:999px;
  font-weight:700;
  font-size:.95rem;
  transition:.18s ease;
}
nav a:hover,nav a.active{background:rgba(255,255,255,.12);color:#fff}
nav .btn.small{background:linear-gradient(135deg,var(--orange),var(--gold));color:#1f1300}

.container{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 38px}
.footer{text-align:center;padding:30px;color:var(--muted);font-size:.95rem}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  border-radius:30px;
  padding:48px;
  margin-bottom:24px;
  background:
    linear-gradient(135deg,rgba(15,23,42,.96),rgba(67,32,10,.94)),
    radial-gradient(circle at 84% 8%,rgba(245,158,11,.45),transparent 22rem);
  box-shadow:var(--shadow);
}
.hero:after{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-90px;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(245,158,11,.12);
}
.hero h1{font-size:clamp(2rem,5vw,3.35rem);line-height:1.03;margin:0 0 12px;letter-spacing:-1.5px}
.hero p{font-size:1.1rem;line-height:1.65;max-width:790px;color:rgba(255,255,255,.84)}
.hero .actions{margin-top:24px}

/* Layout */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:18px}
.card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(226,232,240,.92);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow-soft);
  margin-bottom:18px;
}
.card:hover{box-shadow:var(--shadow)}
.card.dark{
  background:linear-gradient(135deg,#1f2937,#111827);
  color:#fff;
  border-color:var(--line-dark);
}
.card h1,.card h2,.card h3{margin-top:0;letter-spacing:-.4px}
.card h2{font-size:1.45rem}.card h3{font-size:1.15rem}
.muted{color:var(--muted)}
.big{font-size:1.25rem}.service-list li{margin-bottom:8px}

/* Buttons */
.btn,button[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:14px;
  padding:12px 17px;
  min-height:44px;
  background:linear-gradient(135deg,var(--orange),var(--orange-dark));
  color:#fff;
  text-decoration:none;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 9px 18px rgba(234,88,12,.18);
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.btn:hover,button[type="submit"]:hover{transform:translateY(-1px);filter:brightness(1.02);box-shadow:0 12px 24px rgba(234,88,12,.23)}
.btn.secondary{background:linear-gradient(135deg,#475569,#334155);box-shadow:none}
.btn.green{background:linear-gradient(135deg,#22c55e,#15803d)}
.btn.blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.btn.red,.btn.danger{background:linear-gradient(135deg,#ef4444,#b91c1c)}
.btn.small{padding:8px 12px;min-height:36px;font-size:.88rem;border-radius:12px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.dashboard-buttons .btn{width:100%;min-height:64px;text-align:center;font-size:1.05rem;border-radius:18px}

/* Tables */
.table-wrap{overflow-x:auto;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;overflow:hidden}
th,td{text-align:left;padding:14px 13px;border-bottom:1px solid var(--line);vertical-align:middle}
th{background:#f8fafc;color:#334155;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
tr:last-child td{border-bottom:0}
tr:hover td{background:#fff7ed}

/* Forms */
.form,.stack{display:grid;gap:13px}
.form label{font-weight:900;color:#334155}
.form input,.form select,.form textarea,
.form-grid input,.form-grid select,.form-grid textarea,
.mini-form input,.mini-form select,.inline-form input,.inline-form select{
  width:100%;
  padding:13px 14px;
  border:1px solid #cbd5e1;
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font-size:1rem;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.form input:focus,.form select:focus,.form textarea:focus,
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,
.mini-form input:focus,.mini-form select:focus,.inline-form input:focus,.inline-form select:focus{
  border-color:var(--orange);
  box-shadow:0 0 0 4px rgba(234,88,12,.12);
}
textarea{min-height:110px;resize:vertical}
.login-box{max-width:460px;margin:36px auto}
.inline-form,.form-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.mini-form{min-width:280px;margin-top:10px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:16px}

/* Alerts and badges */
.alert{padding:14px 16px;border-radius:16px;margin-bottom:16px;border:1px solid transparent;font-weight:700}
.alert-success{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.alert-error{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.alert-info{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 11px;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:.76rem;
  font-weight:900;
  white-space:nowrap;
}
.badge-scheduled{background:#dbeafe;color:#1d4ed8}
.badge-requested{background:#fef3c7;color:#92400e}
.badge-completed,.badge-paid{background:#dcfce7;color:#166534}
.badge-cancelled,.badge-overdue{background:#fee2e2;color:#991b1b}
.badge-in-progress{background:#ffedd5;color:#9a3412}

/* Profiles */
.profile{display:flex;align-items:center;gap:13px}
.avatar,.avatar-img{
  width:58px;height:58px;border-radius:999px;
  background:linear-gradient(135deg,#f59e0b,#7c2d12);
  color:white;display:flex;align-items:center;justify-content:center;
  font-weight:950;overflow:hidden;object-fit:cover;
  border:3px solid rgba(245,158,11,.55);
  box-shadow:0 9px 18px rgba(15,23,42,.12);
}
.avatar img{width:100%;height:100%;object-fit:cover}

/* Calendar / routes / jobs */
.calendar-item{padding:14px;border-left:6px solid var(--orange);background:#fff7ed;border-radius:14px;margin-bottom:10px;border-top:1px solid #fed7aa;border-right:1px solid #fed7aa;border-bottom:1px solid #fed7aa}
.job-card{border-left:7px solid var(--gold)}
.job-card-top,.customer-worker,.job-hero{display:flex;align-items:center;gap:16px;justify-content:space-between}
.customer-worker,.job-hero{justify-content:flex-start}
.route-dot{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#fbbf24,#ea580c);color:#1d1308;font-weight:950;margin-right:8px}
.note-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:13px;margin:10px 0}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.photo-grid figure{margin:0;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.photo-grid img{width:100%;height:180px;object-fit:cover;display:block}
.photo-grid figcaption{padding:10px;font-size:.92rem;color:var(--text-soft)}
.customer-job{padding:16px;border:1px solid var(--line);border-radius:18px;margin:12px 0;background:#fff;box-shadow:var(--shadow-soft)}
.big-status{font-size:clamp(1.55rem,4vw,2.25rem);font-weight:950;margin:.5rem 0;letter-spacing:-.8px}
.status-grid .btn{min-height:60px}

/* GPS / map */
.map-box{width:100%;height:460px;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#e2e8f0;box-shadow:var(--shadow-soft)}
.map-box.small{height:320px}
.live-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:950}
.live-pill.off{background:#fee2e2;color:#991b1b}
.dot-live{width:10px;height:10px;border-radius:999px;background:#16a34a;display:inline-block;box-shadow:0 0 0 4px rgba(34,197,94,.15)}
.dot-live.off{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.15)}
.gps-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-soft)}
.metric strong{display:block;font-size:1.45rem;margin-top:5px;letter-spacing:-.4px}
.worker-popup{min-width:180px}
.warning-box{background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;border-radius:16px;padding:14px;margin:10px 0;font-weight:700}

.print-only{display:none}

/* Mobile */
@media(max-width:760px){
  .topbar{align-items:stretch;flex-direction:column;padding:13px 14px;gap:12px}
  .brand{font-size:1.02rem}
  nav{justify-content:flex-start;gap:7px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  nav a{white-space:nowrap;font-size:.9rem;padding:8px 10px}
  .container{width:min(100% - 24px,1180px);padding:18px 0 28px}
  .hero{padding:28px;border-radius:22px}
  .hero p{font-size:1rem}
  .grid{grid-template-columns:1fr;gap:14px}
  .card{padding:17px;border-radius:18px}
  th,td{padding:11px 10px;font-size:.92rem}
  .hide-mobile{display:none!important}
  .actions .btn,.dashboard-buttons .btn{width:100%;text-align:center}
  .job-card-top{align-items:flex-start;flex-direction:column;gap:10px}
  .job-hero{align-items:flex-start}
  .inline-form,.form-inline{display:grid;grid-template-columns:1fr;width:100%}
  .map-box{height:360px}.map-box.small{height:280px}
}

@media print{
  body{background:#fff;color:#000}
  .topbar,.actions,.btn,form{display:none!important}
  .container{max-width:100%;width:100%;padding:0}
  .card{box-shadow:none;border:1px solid #ddd}
  .print-only{display:block}
}


/* =========================================================
   Hearthstone Services - Public Homepage Upgrade
   Add this to the bottom of assets/css/style.css
   ========================================================= */

:root {
  --hs-bg: #101319;
  --hs-bg-soft: #171c24;
  --hs-card: rgba(255, 255, 255, 0.075);
  --hs-card-solid: #1d2430;
  --hs-text: #f7f2ea;
  --hs-muted: #c9bfb0;
  --hs-gold: #f6b44b;
  --hs-orange: #e8742f;
  --hs-red: #b9412d;
  --hs-green: #58c98b;
  --hs-border: rgba(255, 255, 255, 0.13);
  --hs-shadow: 0 20px 50px rgba(0, 0, 0, 0.32);
  --hs-radius: 22px;
}

/* Main page background */
body {
  background:
    radial-gradient(circle at top left, rgba(246, 180, 75, 0.13), transparent 34rem),
    radial-gradient(circle at top right, rgba(232, 116, 47, 0.12), transparent 30rem),
    linear-gradient(135deg, #101319 0%, #151922 48%, #0e1117 100%);
  color: var(--hs-text);
}

/* Top public homepage container */
.container {
  max-width: 1180px;
}

/* Brand polish */
.brand {
  letter-spacing: 0.2px;
}

.flame {
  color: var(--hs-gold);
  text-shadow: 0 0 18px rgba(246, 180, 75, 0.75);
}

/* Hero section */
.hero,
.public-hero,
.home-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 5rem);
  border-radius: 30px;
  margin: 1.25rem 0 2rem;
  background:
    linear-gradient(135deg, rgba(246, 180, 75, 0.19), rgba(232, 116, 47, 0.09)),
    linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025));
  border: 1px solid var(--hs-border);
  box-shadow: var(--hs-shadow);
}

.hero::before,
.public-hero::before,
.home-hero::before {
  content: "";
  position: absolute;
  inset: -120px -80px auto auto;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(246, 180, 75, 0.35), transparent 65%);
  filter: blur(6px);
  pointer-events: none;
}

.hero::after,
.public-hero::after,
.home-hero::after {
  content: "Serving families • Reliable care • Local service";
  position: absolute;
  right: 1.2rem;
  bottom: 1rem;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.38);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Hero text */
.hero h1,
.public-hero h1,
.home-hero h1 {
  max-width: 780px;
  margin-bottom: 1rem;
  font-size: clamp(2.2rem, 6vw, 4.75rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.hero p,
.public-hero p,
.home-hero p {
  max-width: 720px;
  color: var(--hs-muted);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  line-height: 1.65;
}

/* Hero buttons */
.hero .btn,
.public-hero .btn,
.home-hero .btn {
  margin-top: 1rem;
  margin-right: 0.65rem;
  padding: 0.9rem 1.15rem;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 12px 28px rgba(232, 116, 47, 0.25);
}

.hero .btn:first-of-type,
.public-hero .btn:first-of-type,
.home-hero .btn:first-of-type {
  background: linear-gradient(135deg, var(--hs-gold), var(--hs-orange));
  color: #1a1208;
  border: 0;
}

.hero .btn:hover,
.public-hero .btn:hover,
.home-hero .btn:hover {
  transform: translateY(-2px);
}

/* Homepage section cards */
.card,
.panel,
.service-card,
.stat-card {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.085), rgba(255,255,255,0.035));
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius);
  box-shadow: 0 14px 34px rgba(0,0,0,0.22);
  backdrop-filter: blur(10px);
}

/* Section headings */
h2,
.section-title {
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  letter-spacing: -0.035em;
  margin-bottom: 0.8rem;
}

h2::after,
.section-title::after {
  content: "";
  display: block;
  width: 72px;
  height: 4px;
  margin-top: 0.65rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--hs-gold), var(--hs-orange), transparent);
}

/* Services grid */
.services,
.service-grid,
.grid.services {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
}

.services .card,
.service-grid .card,
.service-card {
  position: relative;
  overflow: hidden;
  padding: 1.35rem;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.services .card::before,
.service-grid .card::before,
.service-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(246,180,75,0.13), transparent 38%);
  opacity: 0;
  transition: opacity 0.18s ease;
}

.services .card:hover,
.service-grid .card:hover,
.service-card:hover {
  transform: translateY(-4px);
  border-color: rgba(246, 180, 75, 0.35);
  box-shadow: 0 20px 46px rgba(0,0,0,0.32);
}

.services .card:hover::before,
.service-grid .card:hover::before,
.service-card:hover::before {
  opacity: 1;
}

.services h3,
.service-grid h3,
.service-card h3 {
  position: relative;
  font-size: 1.16rem;
  margin-bottom: 0.5rem;
  color: #fff7e9;
}

.services p,
.service-grid p,
.service-card p {
  position: relative;
  color: var(--hs-muted);
  line-height: 1.55;
}

/* Pricing / rates section */
.rates,
.pricing,
.price-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
}

.rates .card,
.pricing .card,
.price-card {
  text-align: center;
  padding: 1.4rem;
}

.price,
.rate,
.amount {
  font-size: 2rem;
  font-weight: 900;
  color: var(--hs-gold);
}

/* Contact area */
.contact,
.contact-section {
  border-radius: 28px;
  padding: clamp(1.4rem, 4vw, 2.5rem);
  background:
    linear-gradient(135deg, rgba(88, 201, 139, 0.13), rgba(246, 180, 75, 0.10)),
    rgba(255,255,255,0.045);
  border: 1px solid var(--hs-border);
}

/* Forms */
input,
select,
textarea {
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.08);
  color: var(--hs-text);
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: rgba(246, 180, 75, 0.7);
  box-shadow: 0 0 0 4px rgba(246, 180, 75, 0.13);
}

/* Buttons */
.btn,
button,
input[type="submit"] {
  border-radius: 14px;
  transition: transform 0.16s ease, box-shadow 0.16s ease, opacity 0.16s ease;
}

.btn:hover,
button:hover,
input[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.24);
}

/* Small trust badges */
.badges,
.trust-badges,
.feature-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 1.2rem 0;
}

.badge,
.pill,
.trust-badges span,
.feature-row span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--hs-border);
  color: #fff1dc;
  font-weight: 700;
  font-size: 0.9rem;
}

/* Tables on public/admin pages */
table {
  overflow: hidden;
  border-radius: 16px;
}

th {
  background: rgba(246, 180, 75, 0.16);
  color: #fff3df;
}

/* Topbar polish */
.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(14, 17, 23, 0.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.topbar nav a {
  border-radius: 999px;
}

.topbar nav a:hover {
  background: rgba(246, 180, 75, 0.12);
}

/* Friendly homepage highlight block */
.home-highlight,
.callout,
.notice-card {
  border-left: 5px solid var(--hs-gold);
  background:
    linear-gradient(135deg, rgba(246,180,75,0.13), rgba(255,255,255,0.045));
}

/* Mobile cleanup */
@media (max-width: 768px) {
  .topbar {
    align-items: flex-start;
    gap: 0.75rem;
  }

  .topbar nav {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 0.35rem;
  }

  .hero,
  .public-hero,
  .home-hero {
    border-radius: 22px;
    padding: 2rem 1.25rem;
  }

  .hero::after,
  .public-hero::after,
  .home-hero::after {
    display: none;
  }

  .hero .btn,
  .public-hero .btn,
  .home-hero .btn {
    width: 100%;
    text-align: center;
    margin-right: 0;
  }

  .services,
  .service-grid,
  .grid.services,
  .rates,
  .pricing,
  .price-grid {
    grid-template-columns: 1fr;
  }
}


.service-showcase {
  margin-top: 2rem;
}

.section-subtitle {
  color: var(--hs-muted);
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
}

.service-card.clickable {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.service-icon {
  display: inline-flex;
  width: 54px;
  height: 54px;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: linear-gradient(135deg, #f6b44b, #e8742f);
  font-size: 1.8rem;
  margin-bottom: 0.8rem;
  box-shadow: 0 10px 24px rgba(232,116,47,.28);
}

.lawn-rate-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(35, 117, 47, 0.32), transparent 28rem),
    linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 20px 50px rgba(0,0,0,.32);
}

.rates-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.rates-header span {
  font-size: 2.6rem;
}

.rates-header h2 {
  color: #f7fff0;
  margin-bottom: .35rem;
}

.rates-header p {
  color: #dcebd3;
  font-weight: 700;
}

.rate-layout {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 1rem;
}

.rate-box {
  background: rgba(255,255,255,.93);
  color: #132015;
  border-radius: 22px;
  overflow: hidden;
  border: 2px solid rgba(16, 90, 33, .28);
}

.rate-box h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #064d1d, #0d7a30);
  color: white;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.rate-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(6,77,29,.18);
}

.rate-row:last-child {
  border-bottom: 0;
}

.rate-row h4 {
  margin: 0 0 .25rem;
  font-size: 1.15rem;
  color: #063f18;
}

.rate-row p {
  margin: 0;
  color: #354436;
  line-height: 1.35;
}

.rate-row strong {
  align-self: center;
  font-size: clamp(1.65rem, 4vw, 2.4rem);
  color: #07551f;
  white-space: nowrap;
}

.included-box {
  margin-top: 1rem;
  background: rgba(255,255,255,.94);
  color: #102314;
  border-radius: 22px;
  padding: 1.2rem;
  border: 2px solid rgba(16, 90, 33, .25);
}

.included-box h3 {
  text-align: center;
  margin-top: 0;
  color: #064d1d;
  text-transform: uppercase;
}

.included-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
  font-weight: 800;
  text-align: center;
}

.estimate-banner {
  margin-top: 1rem;
  padding: 1.3rem;
  border-radius: 22px;
  text-align: center;
  background: linear-gradient(135deg, #f6b44b, #e8742f);
  color: #1c1206;
}

.estimate-banner h3 {
  margin-top: 0;
  font-size: 1.55rem;
}

.estimate-banner .btn {
  background: #101319;
  color: #fff;
  margin-top: .5rem;
}

@media (max-width: 800px) {
  .rate-layout,
  .included-grid {
    grid-template-columns: 1fr;
  }

  .rate-row {
    align-items: flex-start;
  }
}

/* =========================================================
   Snow Removal Rates Section
   ========================================================= */

.snow-rate-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(58, 123, 213, 0.35), transparent 30rem),
    radial-gradient(circle at top left, rgba(255,255,255,0.16), transparent 22rem),
    linear-gradient(135deg, rgba(12, 38, 78, .96), rgba(10, 18, 35, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.snow-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.snow-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 18px rgba(142, 202, 255, .7));
}

.snow-header h2 {
  color: #f5fbff;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.04em;
  margin-bottom: .35rem;
}

.snow-header p {
  color: #d9ecff;
  font-weight: 700;
}

.snow-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.snow-box {
  background: rgba(255,255,255,.96);
  color: #0b1b33;
  border-radius: 22px;
  overflow: hidden;
  border: 2px solid rgba(44, 111, 207, .35);
}

.snow-box h3,
.ice-control-section > h3,
.commercial-snow > h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #123d88, #1f6bd8);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.snow-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(18, 61, 136, .18);
}

.snow-row:last-child {
  border-bottom: 0;
}

.snow-row h4 {
  margin: 0 0 .25rem;
  font-size: 1.12rem;
  color: #123d88;
}

.snow-row p {
  margin: 0;
  color: #2a3850;
  line-height: 1.4;
}

.snow-row strong {
  align-self: center;
  color: #0b4aad;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  white-space: nowrap;
}

.ice-control-section,
.commercial-snow {
  margin-top: 1rem;
  background: rgba(255,255,255,.96);
  color: #0b1b33;
  border-radius: 22px;
  overflow: hidden;
  border: 2px solid rgba(44, 111, 207, .28);
}

.ice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding: 1rem;
}

.ice-card {
  padding: 1rem;
  border-radius: 18px;
  background: #f7fbff;
  border: 1px solid rgba(18, 61, 136, .18);
  text-align: center;
}

.ice-card h4 {
  margin: 0 0 .5rem;
  color: #143d7c;
  text-transform: uppercase;
}

.ice-card strong {
  display: block;
  font-size: 2rem;
  margin-bottom: .5rem;
}

.ice-card.sand strong {
  color: #8a4c13;
}

.ice-card.salt strong {
  color: #0b4aad;
}

.ice-card.blend strong {
  color: #61259b;
}

.ice-card p {
  color: #26364f;
  font-weight: 700;
}

.ice-card small {
  color: #516072;
  line-height: 1.35;
}

.commercial-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(18, 61, 136, .18);
}

.commercial-grid > div {
  background: #f7fbff;
  padding: 1rem;
  text-align: center;
}

.commercial-grid h4 {
  color: #0b5e35;
  margin: 0 0 .35rem;
}

.commercial-grid strong {
  display: block;
  color: #0b7a3d;
  font-size: 2rem;
  margin-bottom: .4rem;
}

.commercial-grid p {
  color: #26364f;
  line-height: 1.35;
}

.winter-notices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}

.winter-notices .notice-card {
  padding: 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.95);
  color: #122036;
  border-left: 6px solid #1f6bd8;
}

.winter-notices .notice-card h3 {
  margin-top: 0;
  color: #123d88;
}

.winter-notices .priority {
  border-left-color: #d72626;
}

.winter-notices .priority h3 {
  color: #b31717;
}

.winter-notices .medical {
  border-left-color: #2f80ed;
}

.winter-notices .medical h3 {
  color: #1558b0;
}

.snow-call {
  background: linear-gradient(135deg, #eaf6ff, #b9ddff);
  color: #0b1b33;
}

.snow-call .btn {
  background: #123d88;
  color: #fff;
}

@media (max-width: 900px) {
  .snow-grid,
  .ice-grid,
  .commercial-grid,
  .winter-notices {
    grid-template-columns: 1fr;
  }

  .snow-row {
    align-items: flex-start;
  }
}

/* =========================================================
   Handyman & Property Maintenance Section
   ========================================================= */

.handyman-rate-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(246, 180, 75, .28), transparent 28rem),
    radial-gradient(circle at bottom left, rgba(26, 92, 48, .28), transparent 26rem),
    linear-gradient(135deg, rgba(28, 20, 13, .97), rgba(13, 20, 34, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.handyman-header {
  text-align: center;
  margin-bottom: 1rem;
}

.handyman-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(246,180,75,.7));
}

.handyman-header h2 {
  color: #fff8ea;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.handyman-header p {
  color: #f4d7ad;
  font-weight: 800;
}

.handyman-price-banner {
  max-width: 680px;
  margin: 0 auto 1.3rem;
  padding: 1rem 1.25rem;
  border-radius: 22px;
  text-align: center;
  background: linear-gradient(135deg, #8a4c13, #51300e);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.handyman-price-banner span {
  display: block;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 900;
  color: #ffe1b2;
}

.handyman-price-banner strong {
  display: block;
  font-size: clamp(2.3rem, 6vw, 4.4rem);
  line-height: 1;
  color: #fff;
}

.handyman-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.handyman-box {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #132015;
  border: 2px solid rgba(22, 89, 35, .30);
}

.handyman-box h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #174f1f, #0c7b31);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.handyman-box.blue h3 {
  background: linear-gradient(135deg, #102d60, #174c9b);
}

.handyman-box ul {
  list-style: none;
  padding: 1rem;
  margin: 0;
}

.handyman-box li {
  padding: .45rem 0 .45rem 1.75rem;
  position: relative;
  font-weight: 700;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.handyman-box li:last-child {
  border-bottom: 0;
}

.handyman-box li::before {
  content: "✔";
  position: absolute;
  left: 0;
  top: .45rem;
  color: #0c7b31;
  font-weight: 900;
}

.handyman-pricing-layout {
  display: grid;
  grid-template-columns: .8fr 1.4fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.starting-rate,
.pricing-info,
.best-rate-box,
.materials-box,
.estimate-box {
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #1b2119;
  padding: 1.2rem;
  border: 2px solid rgba(138, 76, 19, .25);
}

.starting-rate {
  text-align: center;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,235,205,.94));
}

.starting-rate span {
  display: block;
  text-transform: uppercase;
  font-weight: 900;
  color: #51300e;
}

.starting-rate strong {
  display: block;
  font-size: clamp(3.5rem, 9vw, 6rem);
  line-height: .9;
  color: #4a2708;
}

.starting-rate p {
  margin: .2rem 0 0;
  font-size: 1.4rem;
  font-weight: 900;
  text-transform: uppercase;
}

.pricing-info h3,
.best-rate-box h3,
.materials-box h3,
.estimate-box h3 {
  margin-top: 0;
  color: #102d60;
  text-transform: uppercase;
}

.pricing-info p,
.best-rate-box p,
.materials-box p,
.estimate-box p {
  color: #273145;
  line-height: 1.5;
}

.best-rate-box {
  background: linear-gradient(135deg, #102d60, #174c9b);
  color: #fff;
}

.best-rate-box h3,
.best-rate-box p {
  color: #fff;
}

.materials-section {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.materials-box {
  border-left: 6px solid #8a4c13;
}

.materials-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .6rem;
  margin-top: 1rem;
}

.materials-grid span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 74px;
  padding: .7rem;
  border-radius: 14px;
  text-align: center;
  background: #fff8ec;
  color: #40230a;
  font-size: .88rem;
  font-weight: 800;
  border: 1px solid rgba(138, 76, 19, .22);
}

.estimate-box {
  border-left: 6px solid #174f1f;
}

.estimate-box strong {
  display: block;
  font-size: 1.6rem;
  color: #174f1f;
  font-style: italic;
  margin-top: .5rem;
}

.handyman-notices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
  margin-top: 1rem;
}

.handyman-notices div {
  padding: 1rem;
  border-radius: 18px;
  background: rgba(16, 45, 96, .95);
  color: #fff;
  font-weight: 800;
  text-align: center;
}

.handyman-call {
  background: linear-gradient(135deg, #f6b44b, #8a4c13);
  color: #211305;
}

.handyman-call .btn {
  background: #101319;
  color: #fff;
}

@media (max-width: 1000px) {
  .handyman-grid,
  .handyman-pricing-layout,
  .materials-section,
  .handyman-notices {
    grid-template-columns: 1fr;
  }

  .materials-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Small Engine Repair Section
   ========================================================= */

.small-engine-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(246, 180, 75, .22), transparent 28rem),
    radial-gradient(circle at bottom left, rgba(33, 100, 42, .34), transparent 28rem),
    linear-gradient(135deg, rgba(18, 26, 18, .98), rgba(10, 14, 10, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.small-engine-header {
  text-align: center;
  margin-bottom: 1rem;
}

.small-engine-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(246,180,75,.7));
}

.small-engine-header h2 {
  color: #f7fff0;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.small-engine-header p {
  color: #dcebd3;
  font-weight: 800;
}

.small-engine-banner {
  margin: 0 auto 1.3rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #e1a52f, #b97712);
  color: #181000;
  text-align: center;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.small-engine-banner strong {
  display: block;
  font-size: clamp(1.8rem, 5vw, 3rem);
  text-transform: uppercase;
}

.small-engine-banner span {
  display: block;
  margin-top: .3rem;
  font-size: 1.05rem;
}

.engine-grid {
  display: grid;
  grid-template-columns: 1.2fr .9fr;
  gap: 1rem;
}

.engine-box {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #132015;
  border: 2px solid rgba(22, 89, 35, .30);
}

.engine-box h3,
.engine-package h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #174f1f, #0c7b31);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.engine-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(22, 89, 35, .16);
}

.engine-row:last-child {
  border-bottom: 0;
}

.engine-row h4 {
  margin: 0 0 .25rem;
  color: #174f1f;
  font-size: 1.12rem;
  text-transform: uppercase;
}

.engine-row p {
  margin: 0;
  color: #2f3d2e;
  line-height: 1.4;
}

.engine-row strong {
  align-self: center;
  color: #111;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  white-space: nowrap;
}

.engine-row.diagnostic {
  background: #f7fff1;
  border: 2px solid rgba(22, 89, 35, .26);
  margin: .75rem;
  border-radius: 18px;
}

.engine-packages {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}

.engine-package {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #142014;
  border: 2px solid rgba(22, 89, 35, .30);
}

.engine-package strong {
  display: block;
  padding-top: 1rem;
  text-align: center;
  color: #174f1f;
  font-size: 2.6rem;
  line-height: 1;
}

.engine-package ul {
  margin: 0;
  padding: 1rem 1.4rem 1.3rem 2rem;
}

.engine-package li {
  margin-bottom: .35rem;
  font-weight: 700;
}

.engine-policy-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr .9fr;
  gap: 1rem;
  margin-top: 1rem;
}

.engine-policy {
  padding: 1.2rem;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #142014;
  border: 2px solid rgba(22, 89, 35, .25);
}

.engine-policy h3 {
  margin-top: 0;
  color: #174f1f;
  text-transform: uppercase;
}

.engine-policy p {
  color: #2f3d2e;
  line-height: 1.5;
}

.engine-policy strong {
  display: block;
  margin-top: .5rem;
  font-size: 1.5rem;
  color: #174f1f;
}

.engine-policy.parts {
  border-left: 6px solid #9b1c1c;
}

.engine-policy.parts h3 {
  color: #9b1c1c;
}

.engine-policy.dark {
  background: linear-gradient(135deg, #241806, #51300e);
  color: #fff4df;
  border-color: rgba(246,180,75,.25);
}

.engine-policy.dark h3,
.engine-policy.dark p {
  color: #fff4df;
}

.engine-call {
  background: linear-gradient(135deg, #e1a52f, #174f1f);
  color: #fff;
}

.engine-call .btn {
  background: #101319;
  color: #fff;
}

@media (max-width: 1000px) {
  .engine-grid,
  .engine-packages,
  .engine-policy-grid {
    grid-template-columns: 1fr;
  }

  .engine-row {
    align-items: flex-start;
  }
}

/* =========================================================
   Automotive Repair Section
   ========================================================= */

.auto-repair-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(34, 89, 165, .34), transparent 30rem),
    radial-gradient(circle at bottom left, rgba(246, 180, 75, .16), transparent 26rem),
    linear-gradient(135deg, rgba(9, 18, 35, .98), rgba(8, 10, 14, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.auto-header {
  text-align: center;
  margin-bottom: 1rem;
}

.auto-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(246,180,75,.7));
}

.auto-header h2 {
  color: #f7fbff;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.auto-header p {
  color: #dbeaff;
  font-weight: 800;
}

.auto-banner {
  margin: 0 auto 1.3rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #0a2b5f, #174c9b);
  color: #fff;
  text-align: center;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.auto-banner strong {
  display: block;
  font-size: clamp(1.8rem, 5vw, 3rem);
  text-transform: uppercase;
}

.auto-banner span {
  display: block;
  margin-top: .3rem;
  color: #ffd66b;
  font-size: 1.05rem;
}

.auto-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 1rem;
}

.auto-box {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #10192a;
  border: 2px solid rgba(20, 72, 150, .30);
}

.auto-box h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #0a2b5f, #174c9b);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.auto-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(20, 72, 150, .16);
}

.auto-row:last-child {
  border-bottom: 0;
}

.auto-row h4 {
  margin: 0 0 .25rem;
  color: #0a2b5f;
  font-size: 1.08rem;
  text-transform: uppercase;
}

.auto-row p {
  margin: 0;
  color: #2f3d55;
  line-height: 1.4;
}

.auto-row strong {
  align-self: center;
  color: #0a2b5f;
  font-size: clamp(1.45rem, 3vw, 2.05rem);
  white-space: nowrap;
}

.repair-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(20, 72, 150, .18);
  padding: 1rem;
}

.repair-grid span {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .8rem;
  text-align: center;
  background: #f4f8ff;
  color: #0a2b5f;
  font-weight: 900;
  text-transform: uppercase;
  border-radius: 10px;
}

.auto-check-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .35rem 1rem;
  padding: 1rem;
  color: #0a2b5f;
  font-weight: 900;
}

.auto-check-list p {
  margin: 0;
}

.auto-note {
  padding: 0 1rem 1rem;
  color: #0a2b5f;
  font-style: italic;
  font-weight: 800;
  text-align: center;
}

.auto-policy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr .9fr;
  gap: 1rem;
  margin-top: 1rem;
}

.auto-policy {
  padding: 1.2rem;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #10192a;
  border: 2px solid rgba(20, 72, 150, .25);
}

.auto-policy h3 {
  margin-top: 0;
  color: #0a2b5f;
  text-transform: uppercase;
}

.auto-policy p {
  color: #2f3d55;
  line-height: 1.5;
}

.auto-policy strong {
  display: block;
  color: #0a2b5f;
  margin-top: .5rem;
  font-size: 1.2rem;
}

.auto-policy.parts {
  border-left: 6px solid #0a2b5f;
}

.auto-policy.notice {
  border-left: 6px solid #f6b44b;
}

.auto-call {
  background: linear-gradient(135deg, #0a2b5f, #174c9b);
  color: #fff;
}

.auto-call .btn {
  background: #f6b44b;
  color: #111;
}

@media (max-width: 1000px) {
  .auto-layout,
  .auto-policy-grid {
    grid-template-columns: 1fr;
  }

  .repair-grid,
  .auto-check-list {
    grid-template-columns: 1fr;
  }

  .auto-row {
    align-items: flex-start;
  }
}

/* =========================================================
   Home Technology Assistance Section
   ========================================================= */

.home-tech-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(20, 184, 166, .30), transparent 30rem),
    radial-gradient(circle at bottom left, rgba(30, 64, 175, .30), transparent 26rem),
    linear-gradient(135deg, rgba(8, 22, 37, .98), rgba(9, 12, 20, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.home-tech-header {
  text-align: center;
  margin-bottom: 1rem;
}

.home-tech-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(20,184,166,.75));
}

.home-tech-header h2 {
  color: #f4ffff;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.home-tech-header p {
  color: #bff8ef;
  font-weight: 800;
}

.home-tech-banner {
  margin: 0 auto 1.3rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #0f766e, #174c9b);
  color: #fff;
  text-align: center;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.home-tech-banner strong {
  display: block;
  font-size: clamp(1.8rem, 5vw, 3rem);
  text-transform: uppercase;
}

.home-tech-banner span {
  display: block;
  margin-top: .3rem;
  color: #d7fffb;
  font-size: 1.05rem;
}

.tech-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 1rem;
}

.tech-box {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #0f2433;
  border: 2px solid rgba(20, 184, 166, .30);
}

.tech-box h3,
.network-assist h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #0f766e, #174c9b);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.tech-box ul {
  list-style: none;
  margin: 0;
  padding: 1rem;
}

.tech-box li {
  position: relative;
  padding: .48rem 0 .48rem 1.8rem;
  border-bottom: 1px solid rgba(15, 118, 110, .14);
  font-weight: 800;
}

.tech-box li:last-child {
  border-bottom: 0;
}

.tech-box li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #0f766e;
  font-weight: 900;
}

.tech-rate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(20, 72, 150, .18);
  padding: 1rem;
}

.tech-rate-grid div {
  min-height: 145px;
  padding: .9rem;
  text-align: center;
  background: #f4fbff;
  color: #0f2433;
  border-radius: 12px;
}

.tech-rate-grid h4 {
  margin: 0 0 .4rem;
  color: #0f3b75;
  text-transform: uppercase;
  font-size: .95rem;
}

.tech-rate-grid strong {
  display: block;
  color: #174c9b;
  font-size: 2rem;
  margin-bottom: .35rem;
}

.tech-rate-grid p {
  margin: 0;
  color: #324455;
  line-height: 1.35;
  font-size: .92rem;
}

.network-assist {
  margin-top: 1rem;
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #0f2433;
  border: 2px solid rgba(20, 184, 166, .30);
}

.network-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .6rem 1rem;
  padding: 1rem;
}

.network-grid p {
  margin: 0;
  font-weight: 800;
  color: #0f3b75;
}

.tech-policy-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr .95fr;
  gap: 1rem;
  margin-top: 1rem;
}

.tech-policy {
  padding: 1.2rem;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #0f2433;
  border: 2px solid rgba(20, 184, 166, .25);
}

.tech-policy h3 {
  margin-top: 0;
  color: #0f766e;
  text-transform: uppercase;
}

.tech-policy p {
  color: #324455;
  line-height: 1.5;
}

.tech-policy strong {
  display: block;
  color: #0f766e;
  margin-top: .5rem;
  font-size: 1.2rem;
}

.tech-policy.notice {
  border-left: 6px solid #174c9b;
}

.tech-policy.why {
  border-left: 6px solid #0f766e;
}

.tech-call {
  background: linear-gradient(135deg, #0f766e, #174c9b);
  color: #fff;
}

.tech-call .btn {
  background: #f6b44b;
  color: #111;
}

@media (max-width: 1000px) {
  .tech-layout,
  .tech-policy-grid,
  .network-grid,
  .tech-rate-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Hauling & Cleanouts Section
   ========================================================= */

.hauling-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(232, 116, 47, .34), transparent 30rem),
    radial-gradient(circle at bottom left, rgba(15, 52, 96, .34), transparent 26rem),
    linear-gradient(135deg, rgba(13, 21, 34, .98), rgba(16, 10, 5, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.hauling-header {
  text-align: center;
  margin-bottom: 1rem;
}

.hauling-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(232,116,47,.8));
}

.hauling-header h2 {
  color: #fff7ed;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.hauling-header p {
  color: #ffd8bd;
  font-weight: 800;
}

.hauling-banner {
  margin: 0 auto 1.3rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #d85b16, #8c3306);
  color: #fff;
  text-align: center;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.hauling-banner strong {
  display: block;
  font-size: clamp(1.8rem, 5vw, 3rem);
  text-transform: uppercase;
}

.hauling-banner span {
  display: block;
  margin-top: .3rem;
  color: #ffe2cd;
  font-size: 1.05rem;
}

.hauling-layout {
  display: grid;
  grid-template-columns: 1fr 1fr .95fr;
  gap: 1rem;
}

.hauling-box,
.hauling-price-box,
.haulable-box,
.hauling-policy {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #111827;
  border: 2px solid rgba(232, 116, 47, .28);
}

.hauling-box h3,
.hauling-price-box h3,
.haulable-box h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #0a2b5f, #174c9b);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.hauling-box ul {
  list-style: none;
  margin: 0;
  padding: 1rem;
}

.hauling-box li {
  position: relative;
  padding: .58rem 0 .58rem 1.9rem;
  border-bottom: 1px solid rgba(232, 116, 47, .16);
  font-weight: 800;
}

.hauling-box li:last-child {
  border-bottom: 0;
}

.hauling-box li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #d85b16;
  font-weight: 900;
}

.big-price {
  text-align: center;
  padding: 1.2rem;
  border-bottom: 1px solid rgba(232,116,47,.18);
}

.big-price span {
  display: block;
  text-transform: uppercase;
  font-weight: 900;
  color: #111827;
}

.big-price strong {
  display: block;
  font-size: clamp(3rem, 8vw, 5rem);
  line-height: .9;
  color: #d85b16;
}

.big-price p {
  margin: .3rem 0 0;
  font-weight: 900;
  text-transform: uppercase;
}

.free-estimate {
  margin: 1rem;
  padding: 1rem;
  border-radius: 16px;
  background: linear-gradient(135deg, #0a2b5f, #174c9b);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  font-weight: 900;
}

.haulable-box {
  margin-top: 1rem;
}

.haulable-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .7rem;
  padding: 1rem;
}

.haulable-grid span {
  padding: .8rem;
  border-radius: 14px;
  background: #fff7ed;
  color: #8c3306;
  text-align: center;
  font-weight: 900;
  border: 1px solid rgba(232,116,47,.22);
}

.haulable-grid span::before {
  content: "✓ ";
  color: #d85b16;
}

.hauling-policy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr .9fr;
  gap: 1rem;
  margin-top: 1rem;
}

.hauling-policy {
  padding: 1.2rem;
}

.hauling-policy h3 {
  margin-top: 0;
  color: #0a2b5f;
  text-transform: uppercase;
}

.hauling-policy p {
  color: #374151;
  line-height: 1.5;
}

.hauling-policy strong {
  display: block;
  color: #d85b16;
  margin-top: .5rem;
  font-size: 1.15rem;
}

.hauling-policy.notice {
  border-left: 6px solid #d85b16;
}

.hauling-policy.easy {
  border-left: 6px solid #174c9b;
}

.hauling-call {
  background: linear-gradient(135deg, #d85b16, #0a2b5f);
  color: #fff;
}

.hauling-call .btn {
  background: #f6b44b;
  color: #111;
}

@media (max-width: 1000px) {
  .hauling-layout,
  .hauling-policy-grid,
  .haulable-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Moving Assistance Section
   ========================================================= */

.moving-section {
  margin: 3rem 0;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, rgba(35, 117, 47, .32), transparent 30rem),
    radial-gradient(circle at bottom left, rgba(30, 64, 175, .28), transparent 26rem),
    linear-gradient(135deg, rgba(10, 21, 36, .98), rgba(10, 20, 12, .98));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}

.moving-header {
  text-align: center;
  margin-bottom: 1rem;
}

.moving-header span {
  font-size: 2.8rem;
  filter: drop-shadow(0 0 16px rgba(88,201,139,.75));
}

.moving-header h2 {
  color: #f4fff3;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  letter-spacing: -0.045em;
  margin-bottom: .35rem;
}

.moving-header p {
  color: #d7f7d6;
  font-weight: 800;
}

.moving-banner {
  margin: 0 auto 1.3rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #174f1f, #0a2b5f);
  color: #fff;
  text-align: center;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.28);
}

.moving-banner strong {
  display: block;
  font-size: clamp(1.8rem, 5vw, 3rem);
  text-transform: uppercase;
}

.moving-banner span {
  display: block;
  margin-top: .3rem;
  color: #d7f7d6;
  font-size: 1.05rem;
}

.moving-layout {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
}

.moving-box,
.moving-price-card,
.moving-policy {
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #102314;
  border: 2px solid rgba(35, 117, 47, .28);
}

.moving-box h3,
.moving-price-card h3 {
  margin: 0;
  padding: 1rem;
  background: linear-gradient(135deg, #174f1f, #0c7b31);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.moving-box ul {
  list-style: none;
  margin: 0;
  padding: 1rem;
}

.moving-box li {
  position: relative;
  padding: .58rem 0 .58rem 1.9rem;
  border-bottom: 1px solid rgba(35, 117, 47, .14);
  font-weight: 800;
}

.moving-box li:last-child {
  border-bottom: 0;
}

.moving-box li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #0c7b31;
  font-weight: 900;
}

.moving-box.senior p {
  padding: 1rem 1rem 0;
  margin: 0;
  color: #304430;
  line-height: 1.5;
  font-weight: 700;
}

.moving-price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}

.moving-price-card {
  text-align: center;
}

.moving-price-card strong {
  display: block;
  padding-top: 1rem;
  color: #0c7b31;
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: .95;
}

.moving-price-card p {
  margin: .4rem 0 1rem;
  color: #304430;
  font-weight: 900;
  text-transform: uppercase;
}

.moving-policy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.moving-policy {
  padding: 1.2rem;
}

.moving-policy h3 {
  margin-top: 0;
  color: #174f1f;
  text-transform: uppercase;
}

.moving-policy p {
  color: #304430;
  line-height: 1.5;
}

.moving-policy strong {
  color: #174f1f;
}

.moving-policy.supplies {
  border-left: 6px solid #174f1f;
}

.moving-policy.notice {
  border-left: 6px solid #0a2b5f;
}

.moving-policy.care {
  border-left: 6px solid #58c98b;
}

.moving-call {
  background: linear-gradient(135deg, #174f1f, #0a2b5f);
  color: #fff;
}

.moving-call .btn {
  background: #f6b44b;
  color: #111;
}

@media (max-width: 1000px) {
  .moving-layout,
  .moving-price-grid,
  .moving-policy-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   ADMIN / EMPLOYEE / CUSTOMER PORTAL COLOR FIX
   Keeps portal text readable after homepage styling
   ========================================================= */

body:not(.public-page) .card,
body:not(.public-page) .panel,
body:not(.public-page) .stat-card,
body:not(.public-page) .customer-job,
body:not(.public-page) .metric,
body:not(.public-page) .mini-form,
body:not(.public-page) .table-wrap,
body:not(.public-page) table {
  background: #ffffff;
  color: #111827;
}

body:not(.public-page) .card h1,
body:not(.public-page) .card h2,
body:not(.public-page) .card h3,
body:not(.public-page) .panel h1,
body:not(.public-page) .panel h2,
body:not(.public-page) .panel h3,
body:not(.public-page) td,
body:not(.public-page) label,
body:not(.public-page) p,
body:not(.public-page) li {
  color: #111827;
}

body:not(.public-page) .muted,
body:not(.public-page) small {
  color: #64748b;
}

body:not(.public-page) th {
  background: #f8fafc;
  color: #334155;
}

body:not(.public-page) input,
body:not(.public-page) select,
body:not(.public-page) textarea {
  background: #ffffff;
  color: #111827;
  border: 1px solid #cbd5e1;
}

body:not(.public-page) .card.dark,
body:not(.public-page) .card.dark h1,
body:not(.public-page) .card.dark h2,
body:not(.public-page) .card.dark h3,
body:not(.public-page) .card.dark p,
body:not(.public-page) .card.dark li {
  color: #ffffff;
}

.service-map-viewer {
  width: 100%;
  height: 75vh;
  min-height: 420px;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid var(--line);
  background: #0f172a;
  cursor: grab;
  touch-action: none;
  box-shadow: var(--shadow-soft);
}

.service-map-viewer.dragging {
  cursor: grabbing;
}

.service-map-viewer img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform-origin: center center;
  transition: transform 0.06s linear;
  user-select: none;
  pointer-events: none;
}

.map-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 14px 0;
}

@media (max-width: 760px) {
  .service-map-viewer {
    height: 70vh;
    min-height: 360px;
    border-radius: 18px;
  }

  .map-toolbar .btn {
    width: 100%;
  }
}

#jobPinMap {
  width: 100%;
  min-height: 420px;
  background: #e5e7eb;
}

.leaflet-container {
  font-family: inherit;
}

/* =========================================================
   PWA Install Splash
   ========================================================= */

.pwa-splash {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background:
    radial-gradient(circle at top left, rgba(245,158,11,.25), transparent 28rem),
    rgba(15, 23, 42, .88);
  backdrop-filter: blur(12px);
}

.pwa-splash.hidden {
  display: none;
}

.pwa-splash-card {
  width: min(520px, 100%);
  border-radius: 28px;
  padding: 28px;
  text-align: center;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,247,237,.98));
  color: #111827;
  border: 2px solid rgba(245,158,11,.45);
  box-shadow: 0 30px 90px rgba(0,0,0,.42);
}

.pwa-logo {
  width: 82px;
  height: 82px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #f59e0b, #ea580c);
  color: #111827;
  font-size: 42px;
  box-shadow: 0 14px 34px rgba(234,88,12,.28);
}

.pwa-splash-card h2 {
  margin: 0 0 10px;
  font-size: clamp(1.8rem, 5vw, 2.5rem);
  color: #111827;
}

.pwa-splash-card p {
  color: #475569;
  line-height: 1.55;
  font-weight: 700;
}

.pwa-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 18px;
  flex-wrap: wrap;
}

.pwa-actions .btn {
  min-width: 170px;
}

.pwa-ios-help {
  margin-top: 16px;
  padding: 14px;
  border-radius: 16px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #7c2d12;
  line-height: 1.45;
}

.pwa-ios-help.hidden {
  display: none;
}

@media (max-width: 600px) {
  .pwa-splash {
    align-items: flex-end;
    padding: 14px;
  }

  .pwa-splash-card {
    border-radius: 24px;
    padding: 22px;
  }

  .pwa-actions .btn {
    width: 100%;
  }
}

/* =========================================================
   Customer Message Center
   ========================================================= */

.message-info-card {
  margin-bottom: 18px;
  padding: 20px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(234,88,12,.12), rgba(245,158,11,.10)),
    #ffffff;
  border: 1px solid #fed7aa;
  color: #111827;
  box-shadow: var(--shadow-soft);
}

.message-info-card h2 {
  margin-top: 0;
  color: #111827;
}

.message-info-card p {
  color: #475569;
  line-height: 1.55;
  font-weight: 700;
}

.modern-message-card {
  margin-bottom: 22px;
  padding: 22px;
  border-radius: 24px;
  background: #ffffff;
  color: #111827;
  border: 1px solid #e5e7eb;
  box-shadow: var(--shadow-soft);
}

.message-card-header {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
}

.message-icon {
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  font-size: 28px;
  background: linear-gradient(135deg, #f59e0b, #ea580c);
  color: #111827;
  box-shadow: 0 10px 24px rgba(234,88,12,.20);
}

.message-card-header h2 {
  margin: 0;
  color: #111827;
}

.message-card-header p {
  margin: 4px 0 0;
  color: #64748b;
  font-weight: 700;
}

.modern-message-form {
  display: grid;
  gap: 14px;
}

.modern-message-form label,
.reply-form label {
  color: #334155;
  font-weight: 900;
}

.modern-message-form input,
.modern-message-form textarea,
.reply-form textarea {
  width: 100%;
  margin-top: 6px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #111827;
  font-size: 1rem;
}

.modern-message-form textarea,
.reply-form textarea {
  min-height: 130px;
}

.conversation-card {
  margin-bottom: 18px;
  padding: 18px;
  border-radius: 22px;
  background: #ffffff;
  color: #111827;
  border: 1px solid #e5e7eb;
  box-shadow: var(--shadow-soft);
}

.conversation-card h3 {
  margin-top: 0;
  color: #111827;
}

.message-bubble {
  margin: 10px 0;
  padding: 14px;
  border-radius: 18px;
  background: #f8fafc;
  color: #111827;
  border: 1px solid #e5e7eb;
}

.message-bubble.from-customer {
  background: #fff7ed;
  border-color: #fed7aa;
}

.message-bubble.from-team {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.message-meta {
  display: block;
  margin-bottom: 6px;
  color: #64748b;
  font-size: .85rem;
  font-weight: 800;
}

.reply-form {
  margin-top: 14px;
  padding: 14px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.conversation-top {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.message-status {
  display: inline-flex;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 900;
  white-space: nowrap;
}

.status-pending {
  background: #fef3c7;
  color: #92400e;
}

.status-working-on-now {
  background: #dbeafe;
  color: #1d4ed8;
}

.status-resolved {
  background: #dcfce7;
  color: #166534;
}

.status-closed {
  background: #e5e7eb;
  color: #374151;
}

.message-admin-actions {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: end;
  margin-top: 14px;
}

.status-form {
  display: flex;
  gap: 10px;
  align-items: end;
  flex-wrap: wrap;
}

.status-form label {
  font-weight: 900;
  color: #334155;
}

.status-form select {
  min-width: 190px;
}

.reply-details summary {
  list-style: none;
  cursor: pointer;
}

.reply-details summary::-webkit-details-marker {
  display: none;
}

.reply-details[open] {
  grid-column: 1 / -1;
}

.reply-details .reply-form {
  margin-top: 12px;
}

@media (max-width: 760px) {
  .conversation-top,
  .message-admin-actions,
  .status-form {
    display: grid;
    grid-template-columns: 1fr;
  }

  .status-form select,
  .status-form .btn {
    width: 100%;
  }
}

.btn.orange {
    background: linear-gradient(
        135deg,
        #ea580c,
        #f59e0b
    );
    color: #fff;
    border: none;
}

.btn.orange:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

/* ESTIMATE FORM */

.estimate-card {
    max-width: 100%;
}

.estimate-header {
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.estimate-header h2 {
    margin: 0;
    font-size: 1.8rem;
}

.estimate-header p {
    margin-top: 6px;
    color: var(--muted);
}

.form-section {
    margin-bottom: 28px;
    padding: 18px;
    border-radius: 16px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
}

.form-section h3 {
    margin-top: 0;
    margin-bottom: 18px;
    color: #f59e0b;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.form input,
.form select,
.form textarea {
    border-radius: 12px;
    transition: all .15s ease;
}

.form input:focus,
.form select:focus,
.form textarea:focus {
    transform: translateY(-1px);
    box-shadow: 0 0 0 3px rgba(245,158,11,.25);
}

.form textarea {
    min-height: 120px;
}

.estimate-submit {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}

.estimate-submit .btn {
    min-width: 220px;
    height: 50px;
    font-size: 1rem;
}

.btn.danger {
    background: linear-gradient(
        135deg,
        #dc2626,
        #b91c1c
    );
    color: #fff;
    border: none;
}

.btn.danger:hover {
    filter: brightness(1.08);
}

.btn.danger:active {
    transform: scale(.98);
}

.weather-dashboard-card {
  overflow: hidden;
}

.weather-header {
  margin-bottom: 16px;
}

.weather-header h2 {
  margin: 0;
}

.weather-header p {
  color: var(--muted, #64748b);
  font-weight: 700;
}

.weather-today {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}

.weather-today > div,
.weather-day {
  padding: 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(234,88,12,.10), rgba(245,158,11,.08));
  border: 1px solid rgba(245,158,11,.25);
}

.weather-today span,
.weather-day span {
  color: #64748b;
  font-weight: 900;
  font-size: .85rem;
  text-transform: uppercase;
}

.weather-today strong {
  display: block;
  font-size: 2.4rem;
  color: #111827;
}

.weather-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 10px;
}

.weather-day strong {
  display: block;
  font-size: 1.1rem;
}

.weather-day p {
  margin: 8px 0 4px;
  font-weight: 900;
}

.weather-day small {
  color: #64748b;
  font-weight: 800;
}

@media (max-width: 900px) {
  .weather-today,
  .weather-week {
    grid-template-columns: 1fr;
  }
}

/* ==========================================
   Top Bar Logo
   ========================================== */

.brand-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    margin-right: 18px;
}

.brand-logo img {
    height: auto;
    width: auto;
    max-width: 220px;
    object-fit: contain;
    display: block;
    transition: transform .15s ease;
}

.brand-logo img:hover {
    transform: scale(1.03);
}

@media (max-width: 768px) {

    .brand-logo img {
        height: 100px;
        max-width: 180px;
    }

}
.topbar {
    min-height: 72px;
    display: flex;
    align-items: center;
}



.new-user-splash {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, .86);
  backdrop-filter: blur(10px);
}

.new-user-card {
  width: min(620px, 100%);
  background: #ffffff;
  color: #111827;
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
  border: 2px solid rgba(245, 158, 11, .45);
}

.new-user-card h1 {
  margin: 0;
  color: #ea580c;
  text-transform: uppercase;
}

.new-user-card h2 {
  margin-top: 6px;
  color: #111827;
}

.temp-password-box {
  margin: 18px 0;
  padding: 18px;
  border-radius: 18px;
  background: #fff7ed;
  border: 2px dashed #f59e0b;
  text-align: center;
}

.temp-password-box span {
  display: block;
  color: #92400e;
  font-weight: 900;
  text-transform: uppercase;
}

.temp-password-box strong {
  display: block;
  margin-top: 8px;
  font-size: 2rem;
  letter-spacing: 1px;
  color: #111827;
}

.login-instructions {
  padding: 16px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.login-instructions h3 {
  margin-top: 0;
  color: #111827;
}

.login-instructions p {
  margin: 7px 0;
  color: #334155;
  font-weight: 700;
}

.new-user-actions {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}

.new-user-actions .btn {
  flex: 1;
}

@media print {
  body * {
    visibility: hidden;
  }

  #printLoginInfo,
  #printLoginInfo * {
    visibility: visible;
  }

  #printLoginInfo {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    padding: 24px;
  }

  .new-user-actions {
    display: none;
  }
}

.account-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(15, 23, 42, .04);
  border: 1px solid rgba(148, 163, 184, .28);
  font-weight: 900;
}

.account-toggle input {
  width: 20px;
  height: 20px;
}

.btn.danger {
  background: linear-gradient(135deg, #dc2626, #991b1b);
  color: #fff;
  border: none;
}

.btn.danger:hover {
  filter: brightness(1.06);
}


.employee-profile {
    display: flex;
    align-items: center;
    gap: 12px;
}

.employee-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #f59e0b;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

.employee-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(
        135deg,
        #ea580c,
        #f59e0b
    );
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 1.1rem;
}


.photo-action-box {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 10px 0 14px;
}

.selected-photo-box {
    padding: 14px;
    border-radius: 18px;
    background: rgba(15, 23, 42, .05);
    border: 1px solid rgba(148, 163, 184, .3);
    margin: 12px 0;
}

#photoPreviewWrap {
    margin-top: 12px;
}

#photoPreview {
    max-width: 100%;
    max-height: 320px;
    border-radius: 16px;
    object-fit: contain;
    border: 1px solid rgba(148, 163, 184, .3);
}

@media (max-width: 650px) {
    .photo-action-box {
        grid-template-columns: 1fr;
    }
}
.nav-user-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    padding: 8px 12px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.08);
    border: 1px solid rgba(148, 163, 184, 0.22);
    min-width: 220px;
    max-width: 340px;
}

.nav-user-photo {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
}

.nav-user-photo img,
.nav-user-initials {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-user-initials {
    background: linear-gradient(135deg, #f59e0b, #7c3aed);
    color: #fff;
    font-weight: 900;
    font-size: 15px;
}

.nav-user-info {
    min-width: 0;
    line-height: 1.2;
}

.nav-user-name {
    font-weight: 900;
    font-size: 14px;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.nav-user-email {
    margin-top: 2px;
    font-size: 12px;
    color: #e5e7eb;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.nav-user-employee-id {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.22);
    color: #fbbf24;
    font-size: 11px;
    font-weight: 900;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

@media (max-width: 850px) {
    .nav-user-profile {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-top: 10px;
    }
}
.header,
.main-nav,
.top-nav {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.nav-notification-btn {
    margin-top: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: fit-content;
    min-width: 150px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.18);
    border: 1px solid rgba(245, 158, 11, 0.38);
    color: #fff7ed;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.nav-notification-btn:hover {
    background: rgba(245, 158, 11, 0.32);
    color: #ffffff;
    transform: translateY(-1px);
}

.nav-notification-count {
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: #ef4444;
    color: #ffffff;
    font-size: 11px;
    font-weight: 1000;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.16);
}

.notification-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.notification-list {
    display: grid;
    gap: 14px;
}

.notification-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.notification-item.unread {
    border: 1px solid rgba(245, 158, 11, 0.55);
    box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.12);
}

.notification-item.read {
    opacity: 0.78;
}

.notification-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(245, 158, 11, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    font-size: 20px;
}

.notification-content {
    min-width: 0;
    flex: 1;
}

.notification-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.notification-title-row h3 {
    margin: 0;
}

.notification-new-badge {
    padding: 3px 8px;
    border-radius: 999px;
    background: #ef4444;
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
}

.notification-meta {
    margin-top: 8px;
    color: var(--muted, #6b7280);
    font-size: 12px;
}
.hidden {
    display: none !important;
}

.switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(148, 163, 184, 0.25);
}

.switch-row small {
    color: var(--muted, #6b7280);
}

.switch-row input[type="checkbox"] {
    width: 48px;
    height: 26px;
    flex: 0 0 auto;
    accent-color: #f59e0b;
}

.password-wrap {
    display: flex;
    gap: 8px;
    align-items: center;
}

.password-wrap input {
    flex: 1;
}

.show-password-btn {
    border: 0;
    border-radius: 12px;
    padding: 10px 12px;
    font-weight: 900;
    cursor: pointer;
    background: rgba(15, 23, 42, 0.08);
}

.remember-me-row {
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 800;
}

.remember-me-row input {
    width: 20px;
    height: 20px;
}

.footer-social {
    margin: 18px auto 8px;
    display: flex;
    justify-content: center;
}

.footer-facebook-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    border-radius: 999px;
    background: rgba(24, 119, 242, 0.12);
    color: #1877f2;
    border: 1px solid rgba(24, 119, 242, 0.28);
    font-weight: 900;
    text-decoration: none;
}

.footer-facebook-link:hover {
    background: rgba(24, 119, 242, 0.18);
    transform: translateY(-1px);
}

.fb-icon {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #1877f2;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: Arial, sans-serif;
    font-weight: 900;
    font-size: 18px;
}

.home-facebook-card {
    margin: 28px 0;
    padding: 24px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(24,119,242,.18), transparent 34%),
        linear-gradient(135deg, rgba(15,23,42,.96), rgba(30,41,59,.94));
    border: 1px solid rgba(24,119,242,.28);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    box-shadow: 0 18px 50px rgba(0,0,0,.22);
}

.home-facebook-kicker {
    display: inline-flex;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(24,119,242,.18);
    color: #93c5fd;
    border: 1px solid rgba(24,119,242,.35);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.home-facebook-card h2 {
    margin: 10px 0 6px;
    color: #ffffff;
}

.home-facebook-card p {
    margin: 0;
    color: #e5e7eb;
    max-width: 620px;
}

.home-facebook-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 18px;
    border-radius: 999px;
    background: #1877f2;
    color: #ffffff;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(24,119,242,.32);
}

.home-facebook-btn:hover {
    transform: translateY(-1px);
}

html {
    scroll-behavior: smooth;
}

.home-jump-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}
.top-reward-points-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 13px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(245, 158, 11, .18), rgba(34, 197, 94, .18));
    border: 1px solid rgba(245, 158, 11, .45);
    color: inherit;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.top-reward-points-pill:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, rgba(245, 158, 11, .26), rgba(34, 197, 94, .26));
}
.admin-job-note-box {
    border-left: 5px solid #f59e0b;
    background: rgba(245, 158, 11, 0.12);
}

.job-tool-pick-grid {
    display: grid;
    gap: 10px;
    margin: 12px 0 18px;
}

.job-tool-pick-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 13px;
    border-radius: 16px;
    background: rgba(255,255,255,0.7);
    border: 1px solid rgba(148, 163, 184, 0.28);
}

.job-tool-pick-item input {
    width: 22px;
    height: 22px;
    margin-top: 3px;
    accent-color: #f59e0b;
}

.job-tool-pick-item strong {
    display: block;
}

.job-tool-pick-item em {
    display: inline-flex;
    margin-top: 5px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
}

.job-tool-pick-item small {
    display: block;
    margin-top: 4px;
    color: var(--muted, #6b7280);
}

.custom-job-tools {
    display: grid;
    gap: 12px;
}

.custom-job-tool-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 10px;
    align-items: end;
}

.small-check {
    display: flex;
    align-items: center;
    gap: 7px;
    padding-bottom: 10px;
    white-space: nowrap;
}

.saved-job-checklist {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.saved-job-checklist-item {
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.05);
    border: 1px solid rgba(148, 163, 184, 0.22);
}

.saved-job-checklist-item span {
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
    font-size: 11px;
    font-weight: 900;
}

.saved-job-checklist-item small {
    display: block;
    margin-top: 3px;
    color: var(--muted, #6b7280);
}

@media (max-width: 800px) {
    .custom-job-tool-row {
        grid-template-columns: 1fr;
    }

    .small-check {
        padding-bottom: 0;
    }
}
.hss-maintenance-admin-banner {
    position: relative;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;

    padding: 12px 18px;

    background:
        linear-gradient(
            135deg,
            #ff8c00,
            #b45309
        );

    color: #111827;

    font-size: 14px;
    font-weight: 700;

    border-bottom: 3px solid #1f2937;
}

.hss-maintenance-admin-banner a {
    padding: 7px 12px;

    background: #1f2937;
    color: #ffffff;

    border-radius: 8px;

    text-decoration: none;
}

.hss-maintenance-admin-banner a:hover {
    background: #111827;
}