/* ============================================================
   BREMAL · layout.css
   Estructura: contenedores, header, footer, grids de sección.
   ============================================================ */

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px;width:100%}
section{position:relative}
.pad{padding:var(--sp-7) 0}
.pad-sm{padding:var(--sp-6) 0}

.section-head{max-width:640px;margin-bottom:52px}
.section-head h2{font-size:clamp(2rem,4.4vw,3.2rem)}
.section-head p{margin-top:18px;color:var(--muted);font-size:1.05rem}

/* ---------- Header ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(246,243,236,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
header.scrolled{background:rgba(246,243,236,.92);border-color:var(--line-soft);
  box-shadow:0 10px 30px -24px rgba(0,0,0,.5)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand img{height:38px}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{font-size:.92rem;font-weight:500;color:var(--ink);opacity:.8;
  transition:opacity .2s,color .2s;position:relative}
.nav-links a:hover{opacity:1;color:var(--red)}
.nav-cta{display:flex;align-items:center;gap:18px}
.menu-btn{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.menu-btn span{width:24px;height:2px;background:var(--ink);display:block;transition:.3s}

/* menú móvil */
.mobile-menu{position:fixed;inset:0;z-index:200;background:var(--ink);color:#fff;
  display:flex;flex-direction:column;padding:30px 28px;
  transform:translateY(-100%);transition:transform .4s cubic-bezier(.2,.7,.2,1);visibility:hidden}
.mobile-menu.open{transform:none;visibility:visible}
.mobile-menu .top{display:flex;justify-content:space-between;align-items:center}
.mobile-menu .word{font-family:var(--display);font-weight:800;font-size:1.6rem}
.mobile-menu .word span{color:var(--red)}
.mobile-menu .close{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;line-height:1}
.mobile-menu nav{margin-top:50px;display:flex;flex-direction:column;gap:8px}
.mobile-menu nav a{font-family:var(--display);font-weight:700;font-size:2rem;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.1)}
.mobile-menu .btn{margin-top:34px;justify-content:center}

/* ---------- Grids de sección ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lines-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;position:relative}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#fff;padding:80px 0 34px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;
  padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand .word{font-family:var(--display);font-weight:800;font-size:2rem;
  letter-spacing:-.02em;position:relative;display:inline-block}
.foot-brand .word span{color:var(--red)}
.foot-brand p{color:rgba(255,255,255,.55);margin-top:16px;max-width:320px;font-size:.96rem}
.foot-col h4{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.45);margin-bottom:18px}
.foot-col a{display:block;color:rgba(255,255,255,.78);padding:6px 0;font-size:.96rem;transition:color .2s}
.foot-col a:hover{color:var(--red)}
.foot-bottom{padding-top:26px;display:flex;justify-content:space-between;gap:16px;
  flex-wrap:wrap;color:rgba(255,255,255,.4);font-size:.86rem}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .nav-links,.nav-cta .btn{display:none}
  .menu-btn{display:flex}
  .about,.contact-grid,.mv{grid-template-columns:1fr;gap:40px}
  .lines-grid,.values-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr 1fr;gap:36px 26px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px}
}
@media(max-width:620px){
  .wrap{padding:0 20px}
  .pad{padding:var(--sp-6) 0}
  .lines-grid,.values-grid,.foot-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
}
