/* =====================================================================
   INNER PAGES — banner, gallery, lightbox, specs, CTA
   ===================================================================== */

/* Page banner / sub-hero */
.page-hero{
  position:relative; min-height:54vh; display:flex; align-items:flex-end;
  padding:150px 0 60px; color:#fff; overflow:hidden;
  background:linear-gradient(90deg, rgba(13,15,17,.92), rgba(13,15,17,.62) 60%, rgba(13,15,17,.42)),
             var(--hero-img, #15171a) center/cover no-repeat;
}
.page-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(0deg, rgba(13,15,17,.6), transparent 34%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 1px, transparent 1px 120px);
}
.page-hero .container{ position:relative; z-index:2; }
.breadcrumb{ display:flex; align-items:center; gap:10px; font-size:var(--text-xs); letter-spacing:.05em;
  color:rgba(255,255,255,.7); text-transform:uppercase; font-weight:600; margin-bottom:18px; }
.breadcrumb a{ transition:color .25s var(--ease); }
.breadcrumb a:hover{ color:var(--red); }
.breadcrumb .sep{ color:rgba(255,255,255,.35); }
.breadcrumb .here{ color:var(--red); }
.page-hero h1{ color:#fff; font-size:clamp(34px,5.6vw,62px); line-height:1; letter-spacing:-.02em; }
.page-hero .loc{ display:inline-flex; align-items:center; gap:var(--space-sm); margin-top:18px;
  font-weight:600; letter-spacing:.04em; color:#fff; font-size:16px; }
.page-hero .loc i{ color:var(--red); }
.page-hero .tagline{ margin-top:18px; max-width:620px; color:rgba(255,255,255,.82); font-size:18px; }

/* Lead text block */
.lead-block{ max-width:840px; margin:0 auto; }
.lead-block p{ font-size:19px; line-height:1.8; color:var(--ink-2); max-width:65ch; }
.lead-block p + p{ margin-top:22px; }

/* Spec rows (image + text, alternating) */
.spec-row{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.spec-row + .spec-row{ margin-top:72px; }
.spec-row:nth-child(even) .spec-media{ order:2; }
.spec-media img{ width:100%; border-radius:var(--radius); box-shadow:var(--shadow-md); }
.spec-copy .idx{ font-family:var(--display); font-weight:800; color:var(--red); font-size:14px; letter-spacing:.1em; }
.spec-copy h3{ font-size:clamp(24px,3vw,34px); margin-top:10px; }
.spec-copy p{ color:var(--ink-2); margin-top:var(--space-lg); font-size:17px; line-height:1.8; }
@media (max-width:820px){
  .spec-row{ grid-template-columns:1fr; gap:28px; }
  .spec-row:nth-child(even) .spec-media{ order:0; }
}

/* Red info cards */
.info-cards{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:64px; }
.info-card{ background:linear-gradient(135deg, var(--red), var(--red-dark)); color:#fff;
  border-radius:var(--radius); padding:var(--space-2xl) var(--space-2xl); box-shadow:0 24px 50px -28px rgba(218,37,28,.7); }
.info-card .ic{ width:54px; height:54px; border-radius:14px; background:rgba(255,255,255,.16);
  display:grid; place-items:center; font-size:24px; margin-bottom:18px; }
.info-card h4{ color:#fff; font-size:var(--text-lg); }
.info-card p{ color:rgba(255,255,255,.9); margin-top:10px; font-size:15px; line-height:1.65; }
@media (max-width:680px){ .info-cards{ grid-template-columns:1fr; } }

/* Gallery grid */
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.gallery-item{ position:relative; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  cursor:zoom-in; box-shadow:var(--shadow-sm); background:var(--ink); }
.gallery-item img, .gallery-item video{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.gallery-item:hover img{ transform:scale(1.07); }
.gallery-item::after{ position:absolute; inset:0;
  display:grid; place-items:center;
  background:rgba(13,15,17,.42);
  opacity:0; transition:opacity .35s var(--ease); }
.gallery-item:hover::after{ opacity:1; }
.gallery-item.is-video::after{ opacity:1; background:rgba(13,15,17,.3);
  width:62px; height:62px; border-radius:50%; inset:auto; left:50%; top:50%; transform:translate(-50%,-50%); }
.gallery-item.is-video:hover::after{ background:var(--red); }
.gallery-item:focus-visible{ outline:2px solid var(--red); outline-offset:3px; border-radius:var(--radius); }

/* Lightbox */
.lightbox{ position:fixed; inset:0; z-index:var(--z-modal); background:rgba(8,9,10,.95);
  display:none; align-items:center; justify-content:center; padding:32px; }
.lightbox.open{ display:flex; animation:lb-in .35s var(--ease); }
.lightbox.open .lightbox-media{ animation:lb-zoom .45s var(--ease); }
@keyframes lb-in{ from{ opacity:0; } }
@keyframes lb-zoom{ from{ opacity:0; transform:scale(.96); } }
.lightbox-media{ max-width:92vw; max-height:86vh; }
.lightbox-media img, .lightbox-media video{ max-width:92vw; max-height:86vh; border-radius:8px; display:block; }
.lb-btn{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  color:#fff; width:52px; height:52px; border-radius:50%; cursor:pointer; font-size:20px;
  display:grid; place-items:center; transition:background .25s var(--ease), border-color .25s var(--ease); }
.lb-btn:hover{ background:var(--red); border-color:var(--red); }
.lb-close{ top:24px; right:24px; }
.lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lb-next{ right:24px; top:50%; transform:translateY(-50%); }
@media (max-width:640px){ .lb-prev,.lb-next{ top:auto; bottom:24px; transform:none; } .lb-next{ right:24px; } .lb-prev{ left:24px; } }

/* CTA band */
.cta-band{ position:relative; overflow:hidden; background:linear-gradient(120deg, var(--red), var(--red-dark)); color:#fff; text-align:center; padding:80px 0; }
.cta-band::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 120px);
}
.cta-band .container{ position:relative; z-index:2; }
.cta-band h2{ color:#fff; font-size:clamp(28px,4vw,46px); }
.cta-band p{ color:rgba(255,255,255,.9); margin-top:var(--space-lg); font-size:18px; }
.cta-band .btn-white{ background:#fff; color:var(--ink); margin-top:30px; }
.cta-band .btn-white:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }

/* =====================================================================
   ELEVADORES — norm pills, model cards, differentials
   ===================================================================== */
.norm-pills{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:26px; }
.norm-pill{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:9px 18px; font-weight:600; font-size:var(--text-xs); letter-spacing:.03em; color:var(--ink); }
.norm-pill i{ color:var(--red); }

.model-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.model-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:var(--space-3xl) var(--space-2xl);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.model-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
.model-card .tag{ display:inline-block; background:rgba(218,37,28,.1); color:var(--red);
  font-weight:700; font-size:12px; letter-spacing:.1em; padding:6px 14px; border-radius:999px; text-transform:uppercase; }
.model-card h3{ margin-top:var(--space-lg); font-size:25px; letter-spacing:-.01em; }
.model-card p{ color:var(--ink-2); margin-top:var(--space-lg); font-size:15.5px; line-height:1.72; }
.spec-list{ display:grid; grid-template-columns:1fr 1fr; gap:18px 14px; margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.spec-list .s .k{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.spec-list .s .v{ font-family:var(--display); font-weight:700; font-size:18px; color:var(--ink); margin-top:3px; }
@media (max-width:820px){ .model-grid{ grid-template-columns:1fr; } }

.diff-list{ display:grid; grid-template-columns:1fr 1fr; gap:16px 34px; max-width:900px; margin:0 auto; }
.diff-list li{ display:flex; gap:var(--space-md); align-items:flex-start; font-size:16px; color:var(--ink-2); line-height:1.55; }
.diff-list i{ color:var(--red); width:26px; height:26px; border-radius:50%; background:rgba(218,37,28,.1);
  display:grid; place-items:center; font-size:11px; flex-shrink:0; margin-top:2px; }
@media (max-width:680px){ .diff-list{ grid-template-columns:1fr; } }
