:root {
  --font-heading: Arial, Helvetica, sans-serif;
  --font-body: Arial, Helvetica, sans-serif;
}

html { scroll-behavior: smooth; }
body { min-width: 320px; overflow-x: hidden; padding-bottom: 76px; }
@media (min-width: 768px) { body { padding-bottom: 0; } }

.site-header { background: rgba(255,255,255,.96); backdrop-filter: blur(16px); box-shadow: 0 1px 0 rgba(16,15,61,.08); }
.logo-text { font-family: var(--font-heading); font-size: 24px; font-weight: 900; letter-spacing: -.03em; color: #111827; }
.nav-link { font-size: 16px; font-weight: 800; color: #111827; }
.nav-link:hover { color: #100F3D; }
.desktop-only { display: none !important; }
.mobile-only { display: flex !important; }
@media (min-width: 768px) { .desktop-only { display: flex !important; } .mobile-only { display: none !important; } }

.phone-btn, .cta-btn { background: #100F3D; color: #fff !important; border: 2px solid #100F3D; border-radius: 0; font-weight: 900; white-space: nowrap; transition: transform .2s ease, background .2s ease, color .2s ease; position: relative; isolation: isolate; }
.phone-btn:hover, .cta-btn:hover { background: #EDFA4A; color: #111827 !important; transform: translateY(-2px); }
.cta-btn::after { content: ""; position: absolute; inset: -10px; border: 2px solid rgba(255,255,255,.55); animation: pulseGlow 1.8s infinite; z-index: -1; }
@keyframes pulseGlow { 0%,100% { opacity: .3; transform: scale(.98); } 50% { opacity: .85; transform: scale(1.05); } }

.hero { min-height: 780px; background: linear-gradient(rgba(16,15,61,.78), rgba(16,15,61,.78)), url('../images/hero-kitchen.jpg') center/cover no-repeat; position: relative; overflow: hidden; }
.hero h1 { color: #fff !important; font-size: 39px; line-height: 1.06; letter-spacing: -.05em; }
.hero p { color: #fff; }
.stars { color: #EDFA4A; font-size: 30px; letter-spacing: .08em; }
.review-icons img { width: auto; height: 48px; max-width: 72px; object-fit: contain; background: rgba(255,255,255,.94); padding: 6px; }
.eyebrow { display: inline-flex; background: #EDFA4A; color: #111827; font-size: 12px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; padding: 8px 12px; margin-bottom: 16px; }
h2 { font-size: 31px; line-height: 1.12; letter-spacing: -.04em; color: #111827; font-weight: 900; }
h3, h4 { font-size: 22px; line-height: 1.2; color: #111827; font-weight: 900; }
.section-title::after, .card-title::after { content: ""; display: block; width: 66px; height: 4px; background: #EDFA4A; margin-top: 14px; }
.section-title.text-center::after { margin-left: auto; margin-right: auto; }

.dark-section { background: #100F3D; color: #fff; position: relative; overflow: hidden; }
.dark-section h2, .dark-section h3, .dark-section h4 { color: #fff; }
.dark-section p, .dark-section li { color: #E6E8F5; }
.dark-card { background: #1D1B55; color: #fff; border: 1px solid rgba(237,250,74,.22); }
.dark-card h2, .dark-card h3, .dark-card h4, .dark-card p, .dark-card li { color: #fff; }
.light-card { background: #fff; color: #374151; border: 1px solid rgba(16,15,61,.1); box-shadow: 0 18px 50px rgba(16,15,61,.08); }
.accent-card { background: #EDFA4A; color: #111827; }
.accent-card h3, .accent-card p, .accent-card li { color: #111827; }
.no-radius { border-radius: 0 !important; }
.decor-circle { position: absolute; width: 260px; height: 260px; border: 34px solid rgba(237,250,74,.15); border-radius: 50%; pointer-events: none; transform: translateY(var(--float, 0)); }
.decor-circle.one { top: -90px; right: -80px; }
.decor-circle.two { bottom: -120px; left: -100px; width: 340px; height: 340px; }

.split-media { display: grid; gap: 28px; align-items: center; }
@media (min-width: 768px) { .split-media { grid-template-columns: 7fr 3fr; } .split-media.reverse { grid-template-columns: 3fr 7fr; } }
.split-media img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }

.icon-box img { width: 58px; height: 58px; object-fit: contain; }
.service-grid { display: grid; gap: 18px; }
@media (min-width: 768px) { .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.reviews-viewport { overflow: hidden; }
.reviews-track { display: flex; transition: transform .35s ease; }
.review-card { flex: 0 0 100%; padding: 24px; }
@media (min-width: 768px) { .review-card { flex-basis: 33.3333%; } }
.review-panel { height: 100%; background: #fff; color: #374151; border: 1px solid rgba(16,15,61,.12); padding: 24px; box-shadow: 0 12px 34px rgba(16,15,61,.08); }
.review-panel h3 { color: #111827; }

.faq details { background: #fff; border: 1px solid rgba(16,15,61,.12); padding: 20px; }
.faq details + details { margin-top: 12px; }
.faq summary { color: #111827; font-weight: 900; cursor: pointer; }
.faq p { margin-top: 12px; color: #374151; }

.mobile-menu { display: none; background: #fff; border-top: 1px solid rgba(16,15,61,.1); }
.mobile-menu.open { display: block; }
@media (min-width: 768px) { .mobile-menu, .mobile-menu.open { display: none !important; } }

.sticky-call { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: #100F3D; color: #fff !important; height: 64px; align-items: center; justify-content: center; font-weight: 900; font-size: 16px; text-decoration: none; transform: translateY(110%); opacity: 0; transition: transform .24s ease, opacity .24s ease; white-space: nowrap; }
.sticky-call.is-visible { transform: translateY(0); opacity: 1; }
@media (min-width: 768px) { .sticky-call, .sticky-call.is-visible { display: none !important; } }

.footer { background: #070622; color: #E6E8F5; font-size: 14px; }
.footer p, .footer a, .footer li { font-size: 14px; color: #E6E8F5; }
.footer h2, .footer h3 { color: #fff; }
.footer .logo-text { color: #fff; }

@media (max-width: 767px) {
  .hero { min-height: 720px; padding-top: 88px; }
  .hero h1 { font-size: 28px; }
  h2 { font-size: 22px; }
  .review-icons img { height: 42px; max-width: 58px; }
}
