:root {
  --brand-ink: #020617;
  --brand-slate: #0f172a;
  --brand-cyan: #38bdf8;
  --brand-green: #22c55e;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: Manrope, system-ui, sans-serif;
  background: #f8fafc;
  color: var(--brand-ink);
}

.icon { width: 42px; height: 42px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  font-weight: 900;
  transition: transform .2s ease, background .2s ease;
}

.btn:hover { transform: translateY(-2px); }

.card {
  border: 1px solid #dbe4ea;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.mobile-menu { display: none; }
.mobile-menu.open { display: block; }

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.faq-card summary { list-style: none; }
.faq-card summary::-webkit-details-marker { display: none; }
.faq-card summary::after { content: "+"; float: right; color: #0369a1; }
.faq-card[open] summary::after { content: "−"; }

.skip-link {
  position: absolute;
  left: -999px;
  top: 12px;
  z-index: 100;
  border-radius: 999px;
  background: #fff;
  color: #020617;
  padding: 10px 14px;
  font-weight: 900;
}

.skip-link:focus { left: 12px; }

.whatsapp-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 50;
  display: flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--brand-green);
  color: #fff;
}

.site-header,
.site-header.scrolled {
  background: rgba(2, 6, 23, .88) !important;
  border-color: rgba(255, 255, 255, .1) !important;
  box-shadow: none;
  backdrop-filter: blur(16px);
}

.site-header .text-slate-950,
.site-header .text-slate-900,
.site-header .text-slate-800 {
  color: #fff !important;
}

.site-header .text-sky-700 {
  color: #bae6fd !important;
}

.site-header button {
  border-color: rgba(255, 255, 255, .18) !important;
  background: rgba(255, 255, 255, .1) !important;
  color: #fff !important;
}

.site-header #mobileMenu {
  background: #0f172a !important;
  border-color: rgba(255, 255, 255, .1) !important;
}

.hero {
  min-height: min(820px, 92vh);
  display: flex;
  align-items: center;
  background-image:
    linear-gradient(90deg, rgba(2, 6, 23, .96) 0%, rgba(2, 6, 23, .8) 48%, rgba(2, 6, 23, .32) 100%),
    url("img/impermeabilizacion-terrazas-hero.webp") !important;
  background-size: cover !important;
  background-position: center !important;
}

.hero::before {
  display: none;
}

.hero > .relative {
  width: 100%;
  grid-template-columns: minmax(0, 860px) !important;
}

.hero > .relative > .hidden {
  display: none !important;
}

.hero h1,
.hero .hero-title {
  max-width: 900px;
  color: #fff !important;
  letter-spacing: -.045em;
}

.hero p.text-slate-700,
.hero .text-slate-700 {
  color: rgba(255, 255, 255, .8) !important;
}

.hero .border-slate-200.bg-white {
  border-color: rgba(255, 255, 255, .22) !important;
  background: rgba(255, 255, 255, .1) !important;
  color: #fff !important;
}

.hero .card {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(15, 23, 42, .76) !important;
  color: #fff;
  box-shadow: none;
  backdrop-filter: blur(10px);
}

.hero .card .text-sky-700 {
  color: #bae6fd !important;
}

.hero .btn.bg-slate-950 {
  background: #fff !important;
  color: var(--brand-ink) !important;
}

.btn,
.card,
.rounded-\[2rem\],
.rounded-\[1\.5rem\] {
  border-radius: 1rem;
}

.btn {
  box-shadow: 0 12px 30px rgba(2, 6, 23, .16);
}

.bg-sky-600 {
  background-color: #0ea5e9 !important;
}

.paper {
  background: var(--brand-ink) !important;
  color: #fff;
}

.paper::before {
  opacity: .28;
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
}

.paper > div > .max-w-3xl h2,
.paper > div > .max-w-3xl .text-slate-700,
.paper > div > div > h2,
.paper > div > div > .text-slate-700 {
  color: #fff !important;
}

.paper .card {
  border-color: rgba(148, 163, 184, .25);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .2);
}

.card {
  box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
}

.card-hover:hover {
  transform: translateY(-3px);
  border-color: rgba(56, 189, 248, .7);
  box-shadow: 0 22px 48px rgba(15, 23, 42, .14);
}

.cta {
  background-image:
    linear-gradient(90deg, rgba(2, 6, 23, .97), rgba(2, 6, 23, .7)),
    url("img/impermeabilizacion-terrazas-hero.webp") !important;
  background-size: cover !important;
  background-position: center 65% !important;
}

.cta::before {
  display: none;
}

footer {
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.whatsapp-float {
  box-shadow: 0 18px 40px rgba(34, 197, 94, .36);
  animation: waterproofing-pulse 9s infinite;
}

@keyframes waterproofing-pulse {
  0%, 86%, 100% { transform: scale(1); }
  90% { transform: scale(1.07); }
  94% { transform: scale(1); }
}

@media (max-width: 1023px) {
  .hero {
    min-height: auto;
    background-position: 62% center !important;
  }
}

@media (max-width: 640px) {
  .site-header > div {
    padding-top: .75rem;
    padding-bottom: .75rem;
  }

  .site-header .h-12.w-12 {
    width: 2.5rem;
    height: 2.5rem;
  }

  .site-header .text-lg {
    font-size: .92rem;
  }

  .site-header > div > .flex.items-center > a.btn {
    display: none;
  }

  .hero {
    min-height: 720px;
    background-image:
      linear-gradient(90deg, rgba(2, 6, 23, .97), rgba(2, 6, 23, .72)),
      url("img/impermeabilizacion-terrazas-hero.webp") !important;
    background-position: 67% center !important;
  }

  .hero .hero-title {
    font-size: clamp(2.7rem, 13vw, 4rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .whatsapp-float { animation: none; }
}
