:root {
  --font-heading: Georgia, "Times New Roman", serif;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --deep: #160909;
  --wine: #6C0606;
  --rose: #D36B6B;
  --cream: #FBF5F3;
  --ink: #111827;
  --body: #374151;
}

html { scroll-behavior: smooth; }
body { min-width: 320px; overflow-x: hidden; }
p, li { font-size: 16px; line-height: 1.75; }
h1 { font-size: 30px; line-height: 1.05; letter-spacing: -0.04em; }
h2 { font-size: 28px; line-height: 1.15; letter-spacing: -0.03em; }
h3, h4 { font-size: 20px; line-height: 1.3; }

@media (min-width: 768px) {
  h1 { font-size: clamp(48px, 6vw, 78px); }
  h2 { font-size: clamp(34px, 4vw, 50px); }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(22, 9, 9, 0.92);
  border-bottom: 1px solid rgba(211, 107, 107, 0.24);
  backdrop-filter: blur(18px);
}

.logo-mark {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--wine), var(--rose));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 14px 32px rgba(108, 6, 6, 0.34);
}

.logo-text { font-family: var(--font-heading); font-size: 24px; color: #fff; letter-spacing: -0.02em; }
.nav-link { color: rgba(255,255,255,.86); font-size: 18px; transition: color .2s ease; }
.nav-link:hover { color: #fff; }

.desktop-only { display: none !important; }
.mobile-only { display: inline-flex !important; }
@media (min-width: 768px) {
  .desktop-only { display: flex !important; }
  .mobile-only { display: none !important; }
}

.phone-button, .primary-button, .secondary-button {
  border-radius: 999px;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  font-weight: 800;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.phone-button { background: #fff; color: #111827; padding: .78rem 1.05rem; font-size: 16px; }
.phone-button:hover, .primary-button:hover, .secondary-button:hover { transform: translateY(-2px); box-shadow: 0 20px 38px rgba(108, 6, 6, .25); }
.primary-button { background: linear-gradient(135deg, var(--wine), var(--rose)); color: #fff; padding: 1rem 1.35rem; }
.secondary-button { background: #fff; color: #111827; padding: 1rem 1.35rem; border: 1px solid rgba(108,6,6,.16); }

.mobile-menu {
  display: none;
  background: rgba(22, 9, 9, .98);
  border-top: 1px solid rgba(211,107,107,.22);
}
.mobile-menu.open { display: block; }
.mobile-menu a { font-size: 18px; color: #fff; }
.mobile-menu .phone-button { color: #111827; width: 100%; }

.hero-section {
  background:
    radial-gradient(circle at 12% 18%, rgba(211,107,107,.34), transparent 30%),
    linear-gradient(135deg, #160909 0%, #300707 47%, #6C0606 100%);
  color: #fff;
}
.hero-section h1, .hero-section h2, .hero-section h3 { color: #fff; }
.hero-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.17); backdrop-filter: blur(16px); }
.hero-image-wrap { min-height: 330px; aspect-ratio: 1 / 1; }
.hero-image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.stars { color: var(--rose); letter-spacing: .14em; font-size: 24px; text-shadow: 0 10px 20px rgba(0,0,0,.25); }
.trust-badge-img { width: auto; height: 48px; max-width: 30%; object-fit: contain; border-radius: 14px; background: #fff; padding: 7px; box-shadow: 0 16px 34px rgba(0,0,0,.18); }

.lux-card { background: rgba(255,255,255,.9); border: 1px solid rgba(108,6,6,.12); border-radius: 28px; box-shadow: 0 24px 70px rgba(108, 6, 6, .08); }
.dark-panel { background: linear-gradient(145deg, #160909, #2a0808); color: #fff; border: 1px solid rgba(211,107,107,.22); }
.dark-panel h2, .dark-panel h3, .dark-panel h4 { color: #fff; }
.dark-panel p, .dark-panel li { color: rgba(255,255,255,.88); }
.section-kicker { color: var(--wine); font-size: 16px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.dark-panel .section-kicker { color: #f4b2b2; }

.two-col { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
@media (min-width: 768px) { .two-col { grid-template-columns: minmax(0,65%) minmax(260px,35%); } }
.info-image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 28px; box-shadow: 0 26px 60px rgba(22,9,9,.16); }

.icon-tile { border-radius: 24px; background: #fff; border: 1px solid rgba(108,6,6,.1); padding: 1.15rem; transition: opacity .35s ease, transform .35s ease, box-shadow .35s ease; }
.icon-tile:hover { transform: scale(1.025); box-shadow: 0 22px 48px rgba(108,6,6,.12); }
.line-icon { width: 44px; height: 44px; color: var(--wine); }
.issue-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 24px; color: #fff; }
.issue-card h3 { color: #fff; }
.issue-card p { color: rgba(255,255,255,.86); }

.review-track { transition: transform .45s ease; }
.review-slide { min-width: 100%; }
.review-card { background: #fff; color: #374151; border-radius: 26px; border: 1px solid rgba(108,6,6,.12); box-shadow: 0 18px 45px rgba(108,6,6,.08); }
.review-card h3 { color: #111827; }
.review-card .stars { font-size: 18px; letter-spacing: .08em; }

.faq-item { border-bottom: 1px solid rgba(108,6,6,.14); }
.faq-answer { display: none; }
.faq-item.open .faq-answer { display: block; }

.mobile-sticky-call {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: none !important;
  justify-content: center;
  padding: .75rem .85rem calc(.75rem + env(safe-area-inset-bottom));
  background: rgba(22,9,9,.92);
  transform: translateY(110%);
  opacity: 0;
  transition: transform .25s ease, opacity .25s ease;
}
.mobile-sticky-call.visible { transform: translateY(0); opacity: 1; }
.mobile-sticky-call a { width: 100%; max-width: 430px; background: #fff; color: #111827; border-radius: 999px; padding: .95rem 1rem; font-size: 16px; font-weight: 900; text-align: center; white-space: nowrap; }
@media (max-width: 767px) { .mobile-sticky-call { display: flex !important; } body { padding-bottom: 72px; } }
@media (min-width: 768px) { .mobile-sticky-call { display: none !important; } }

.fade-in { animation: fadeScale .7s ease both; }
@keyframes fadeScale { from { opacity: 0; transform: scale(.98) translateY(16px); } to { opacity: 1; transform: scale(1) translateY(0); } }

.footer-text { font-size: 14px; line-height: 1.7; }
