:root{
  --red:#bb1621;
  --dark:#3c3c3b;
  --light:#f5f5f4;
  --white:#ffffff;
  --radius:18px;
  --shadow: 0 14px 40px rgba(0,0,0,.10);
}

*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { margin:0; padding:0; font-family:"Montserrat",system-ui,sans-serif; color:var(--dark); background:var(--light); }
a { color:inherit; text-decoration:none; }
.container { width:min(1100px, 92%); margin:0 auto; }

/* ── HEADER ── */
.header {
  position:sticky; top:0; z-index:100;
  isolation: isolate;
  background: rgba(245,245,244,.93);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(60,60,59,.10);
}
.header__inner { display:flex; align-items:center; justify-content:space-between; padding:12px 0; gap:16px; }
.brand { display:flex; align-items:center; gap:10px; }
.brand__logo-img { height:38px; width:auto; display:block; }
.brand__tagline { font-size:11px; opacity:.6; margin-top:2px; }
.nav { display:flex; gap:2px; font-weight:600; font-size:14px; }
.nav a {
  opacity:.75; padding:7px 12px; border-radius:999px;
  transition: background .15s, opacity .15s;
}
.nav a:hover { opacity:1; background:rgba(60,60,59,.07); }
.header__actions { display:flex; align-items:center; gap:10px; }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:12px 20px; border-radius:999px;
  font-weight:700; font-size:14px; font-family:inherit;
  border:1px solid rgba(60,60,59,.2);
  cursor:pointer; background:transparent;
  transition: filter .15s, background .15s;
}
.btn--primary { background:var(--red); color:var(--white); border-color:transparent; }
.btn--primary:hover { filter:brightness(.92); }
.btn--ghost:hover { background:rgba(60,60,59,.07); }
.btn--sm { padding:9px 16px; font-size:13px; }
.btn--white { background:var(--white); color:var(--dark); border-color:transparent; }
.btn--white:hover { filter:brightness(.96); }

/* Hamburger */
.navToggle {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; padding:8px;
  border:1px solid rgba(60,60,59,.18); border-radius:10px;
  background:transparent; cursor:pointer;
}
.navToggle span { display:block; height:2px; background:var(--dark); border-radius:2px; transition: transform .2s, opacity .2s; }

/* ── HERO ── */
.hero { padding:48px 0 0; }
.hero__inner { display:grid; grid-template-columns:1.2fr .8fr; gap:28px; align-items:center; padding-bottom:40px; }
.hero__label { font-size:12px; font-weight:700; letter-spacing:.5px; opacity:.6; text-transform:uppercase; margin-bottom:12px; }
.hero h1 { font-size:clamp(28px,3.6vw,46px); line-height:1.06; margin:0 0 14px; }
.hero__accent { color:var(--red); }
.hero p { margin:0 0 16px; opacity:.8; line-height:1.6; }
.hero__delivery {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(187,22,33,.08); border:1px solid rgba(187,22,33,.18);
  border-radius:999px; padding:8px 14px; font-size:13px; margin-bottom:20px;
}
.delivery__icon { font-size:15px; }
.hero__actions { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.hero__chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { font-size:12px; padding:7px 12px; border-radius:999px; background:rgba(60,60,59,.06); border:1px solid rgba(60,60,59,.11); }
.hero__mock { display:flex; min-height:320px; }
.mockCard {
  width:100%; border-radius:var(--radius); background:var(--white);
  box-shadow:var(--shadow); padding:18px;
  border:1px solid rgba(60,60,59,.08);
}
.mockCard--image { position:relative; padding:0; overflow:hidden; cursor:pointer; }
.hero__img { width:100%; height:100%; object-fit:cover; display:block; }
.hero__badge {
  position:absolute; top:14px; left:14px;
  background:var(--red); color:white;
  padding:6px 12px; border-radius:999px; font-size:12px; font-weight:700;
}
.hero__price {
  position:absolute; bottom:14px; right:14px;
  background:white; color:var(--dark);
  padding:8px 14px; border-radius:999px; font-weight:800;
  box-shadow:0 6px 20px rgba(0,0,0,.15);
}
.hero__name {
  position:absolute; bottom:14px; left:14px;
  max-width:calc(100% - 140px);
  background:rgba(255,255,255,.92); color:var(--dark);
  padding:8px 12px; border-radius:14px; font-weight:800; font-size:13px;
  box-shadow:0 6px 20px rgba(0,0,0,.12);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* Stats bar */
.stats {
  background:var(--dark);
  border-top:1px solid rgba(255,255,255,.06);
}
.stats__inner {
  display:flex; align-items:center; justify-content:center;
  gap:0; padding:18px 0; flex-wrap:wrap;
}
.stat { text-align:center; padding:8px 28px; }
.stat strong { display:block; font-size:18px; font-weight:800; color:var(--white); }
.stat span { font-size:11px; opacity:.55; color:var(--white); margin-top:2px; display:block; }
.stat__div { width:1px; height:32px; background:rgba(255,255,255,.12); }

/* ── SECTIONS ── */
.section { padding:52px 0; }
.section--soft { background:rgba(255,255,255,.6); border-top:1px solid rgba(60,60,59,.07); border-bottom:1px solid rgba(60,60,59,.07); }
.section--dark { background:var(--dark); }
.section__head { margin-bottom:28px; }
.section__head h2 { margin:0 0 6px; font-size:28px; }
.section__head p { margin:0; opacity:.75; }
.section__head--light h2 { color:var(--white); }
.section__head--light p { color:rgba(255,255,255,.6); }

/* ── FILTERS ── */
.filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.filter {
  padding:9px 16px; border-radius:999px;
  border:1px solid rgba(60,60,59,.16);
  background:rgba(255,255,255,.8);
  font-weight:700; font-size:13px; cursor:pointer; font-family:inherit;
  transition: background .15s, color .15s;
}
.filter.is-active { background:var(--dark); color:var(--white); border-color:transparent; }

/* ── GRID / CARDS ── */
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

.card {
  background:var(--white); border-radius:var(--radius);
  border:1px solid rgba(60,60,59,.07); overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.07);
  display:flex; flex-direction:column;
  transition: transform .2s, box-shadow .2s;
}
.card:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(0,0,0,.12); }

.card__img { width:100%; height:190px; object-fit:cover; background:rgba(60,60,59,.05); }
.card__body { padding:16px; display:flex; flex-direction:column; gap:10px; flex:1; }
.card__title { font-weight:800; margin:0; font-size:15px; }
.card__desc { margin:0; opacity:.75; font-size:13px; line-height:1.5; }
.card__price { font-weight:800; font-size:16px; color:var(--red); }
.badges { display:flex; gap:6px; flex-wrap:wrap; }
.badge { font-size:11px; padding:5px 10px; border-radius:999px; background:rgba(60,60,59,.05); border:1px solid rgba(60,60,59,.10); }
.badge--hot { background:rgba(187,22,33,.10); border-color:rgba(187,22,33,.2); color:var(--red); }
.card__actions { margin-top:auto; display:flex; gap:8px; }
.card__actions .btn { width:100%; padding:10px 12px; font-size:13px; }

/* Card scroll-in animation */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(16px); }
  to   { opacity:1; transform:translateY(0); }
}
.card { animation: fadeUp .35s ease both; }

/* ── EMPTY STATE ── */
.empty-state {
  text-align:center; padding:52px 20px;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.empty-state__icon { font-size:40px; }
.empty-state p { margin:0; opacity:.7; font-size:15px; }

/* ── WORKS (trabajos) ── */
.works-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.work-card { border-radius:16px; overflow:hidden; position:relative; }
.work-card__img { width:100%; height:220px; object-fit:cover; display:block; filter:brightness(.92); transition:filter .2s, transform .2s; }
.work-card:hover .work-card__img { filter:brightness(1); transform:scale(1.02); }
.work-card__label {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(transparent, rgba(0,0,0,.7));
  color:white; padding:22px 12px 12px;
  font-size:12px; font-weight:700;
}
.works__cta {
  margin-top:32px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.works__cta p { color:rgba(255,255,255,.7); margin:0; }

/* ── STEPS ── */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.step { background:var(--white); border:1px solid rgba(60,60,59,.07); border-radius:var(--radius); padding:20px; }
.step__num { width:36px; height:36px; border-radius:12px; background:rgba(187,22,33,.12); display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--red); }
.step__title { font-weight:800; margin:12px 0 6px; }
.step__text { opacity:.75; margin:0; font-size:14px; line-height:1.5; }

/* ── FAQ ── */
.faq {
  background:var(--white); border:1px solid rgba(60,60,59,.07);
  border-radius:var(--radius); padding:16px 18px; margin:8px 0;
  transition: box-shadow .15s;
}
.faq[open] { box-shadow:var(--shadow); }
.faq summary { cursor:pointer; font-weight:800; font-size:15px; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq summary::after { content:"＋"; font-size:18px; opacity:.4; }
.faq[open] summary::after { content:"－"; }
.faq p { margin:12px 0 0; opacity:.8; line-height:1.6; }

/* ── CONTACT ── */
.contact { display:grid; grid-template-columns:1.2fr .8fr; gap:20px; align-items:start; }
.contact__actions { display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 8px; }
.contact__card { background:var(--white); border:1px solid rgba(60,60,59,.07); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); }
.contact__cardTitle { font-weight:800; font-size:14px; }
.contact__cardText { opacity:.8; margin-top:4px; font-size:14px; }

/* ── MODAL ── */
.modal { position:fixed; inset:0; display:none; z-index:200; }
.modal.is-open { display:block; }
.modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.5); backdrop-filter:blur(4px); }
.modal__panel {
  position:relative; width:min(920px,94%);
  max-height:90vh; margin:0 auto;
  top:50%; transform:translateY(-50%);
  background:var(--white); border-radius:var(--radius);
  box-shadow:0 24px 60px rgba(0,0,0,.2);
  overflow:hidden;
}
.modal__close {
  position:absolute; top:12px; right:12px; z-index:2;
  width:36px; height:36px; border-radius:10px;
  border:1px solid rgba(60,60,59,.15);
  background:rgba(255,255,255,.9); cursor:pointer; font-size:16px;
}
.modal__body { display:grid; grid-template-columns:1fr 1fr; max-height:90vh; }
.modal__img { width:100%; height:100%; min-height:320px; object-fit:cover; background:rgba(60,60,59,.05); }
.modal__content { padding:22px; overflow:auto; display:flex; flex-direction:column; gap:10px; }
.modal__content h3 { margin:0; font-size:20px; }
.meta { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:4px 0; }
.meta__item { background:rgba(60,60,59,.04); border:1px solid rgba(60,60,59,.08); border-radius:14px; padding:12px; }
.meta__item--full { grid-column:1/-1; }
.meta__item span { display:block; font-size:11px; opacity:.65; margin-bottom:4px; }
.modal__actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }

/* ── FOOTER ── */
.footer { padding:20px 0; border-top:1px solid rgba(60,60,59,.10); }
.footer__inner { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; font-size:14px; }
.footer__links { display:flex; gap:16px; opacity:.7; }
.footer__links a:hover { opacity:1; text-decoration:underline; }
.muted { opacity:.65; font-size:14px; }

/* ── FLOAT BUTTON ── */
.wppFloat {
  position:fixed; right:16px; bottom:16px; z-index:999;
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 18px; border-radius:999px;
  background:var(--red); color:var(--white);
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 8px 28px rgba(187,22,33,.35);
  font-weight:800; font-size:13px;
  transition: transform .2s, box-shadow .2s;
}
.wppFloat:hover { transform:translateY(-2px); box-shadow:0 12px 36px rgba(187,22,33,.4); }
.wppFloat__icon { font-size:18px; line-height:1; }

/* ── RESPONSIVE ── */
@media (max-width:880px){
  .hero__inner { grid-template-columns:1fr; }
  .hero__mock { min-height:260px; }
  .grid { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:1fr; }
  .contact { grid-template-columns:1fr; }
  .modal__body { grid-template-columns:1fr; }
  .modal__img { min-height:220px; max-height:240px; }
  .works-grid { grid-template-columns:repeat(2,1fr); }
  .stats__inner { gap:0; }
  .stat { padding:8px 16px; }
}

@media (max-width:720px){
  .navToggle { display:flex; }
  .nav {
    display:none; position:absolute; top:100%; left:0; right:0;
    background:rgba(245,245,244,.97); backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(60,60,59,.12);
    flex-direction:column; gap:4px; padding:10px 16px 14px; z-index:99;
  }
  .nav.is-open { display:flex; }
  .nav a { padding:12px 14px; font-size:15px; border-radius:12px; opacity:1; }
  .btn--sm { font-size:12px; padding:8px 13px; }
}

@media (max-width:520px){
  .grid { grid-template-columns:1fr; }
  .works-grid { grid-template-columns:1fr 1fr; }
  .wppFloat__text { display:none; }
  .wppFloat { padding:14px; }
  .stat__div { display:none; }
  .stats__inner { justify-content:space-around; }
}