/* ============================================================
   BMI Constructora — HOME (Versión 02)  ·  page styles
   ============================================================ */

.wrap{ max-width:1280px; margin:0 auto; padding-inline:clamp(20px,5vw,56px); width:100%; }
.section{ padding-block:clamp(96px,12vw,168px); }
.section--cream{ background:var(--bmi-cream); }
.section--white{ background:var(--bmi-white); }
.section--green{ background:var(--bmi-green); color:#fff; }
.section--ink{ background:var(--bmi-green); color:#fff; }

/* orange bridge motif */
.bridge{ width:96px; height:6px; background:var(--bmi-orange); border:0; margin:0; }
.bridge--lg{ width:140px; height:10px; }

/* section heads */
.head{ max-width:62ch; }
.head .eyebrow{ display:block; margin-bottom:var(--sp-4); }
.h2{
  font-family:var(--font-display); font-weight:var(--fw-black);
  font-size:calc(clamp(30px,3.6vw,50px) * var(--title-scale));
  line-height:1.0; letter-spacing:-0.025em; text-transform:uppercase;
  margin:0; color:var(--bmi-ink);
}
.section--green .h2, .section--ink .h2{ color:#fff; }
.lead{ font-size:clamp(17px,1.4vw,20px); line-height:1.5; color:var(--fg-2); max-width:64ch; }
.section--green .lead, .section--ink .lead{ color:rgba(255,255,255,.9); }

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 28px; font:var(--fw-bold) 13px/1 var(--font-display);
  letter-spacing:.07em; text-transform:uppercase; border-radius:var(--r-sm);
  cursor:pointer; border:0; transition:background var(--dur-base) var(--ease-standard),color var(--dur-base);
}
.btn .ar{ transition:transform var(--dur-base) var(--ease-out); }
.btn:hover .ar{ transform:translateX(4px); }
.btn--green{ background:var(--bmi-green); color:#fff; }
.btn--green:hover{ background:var(--bmi-green-700); }
.btn--orange{ background:var(--bmi-orange); color:var(--bmi-ink); }
.btn--orange:hover{ background:var(--bmi-orange-600); }
.btn--ghost-light{ background:transparent; color:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5); }
.btn--ghost-light:hover{ background:rgba(255,255,255,.12); }
.btn--white{ background:#fff; color:var(--bmi-ink); }
.btn--white:hover{ background:var(--bmi-cream); }

:focus-visible{ outline:none; box-shadow:var(--focus-ring); border-radius:var(--r-xs); }

/* ============================================================
   Header
   ============================================================ */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:80;
  display:flex; align-items:center; gap:var(--sp-6);
  padding:16px clamp(20px,5vw,56px);
  transition:background var(--dur-base) var(--ease-standard),
             box-shadow var(--dur-base), border-color var(--dur-base);
  border-bottom:1px solid transparent;
}
.hdr::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 60%, rgba(0,0,0,0) 100%);
  opacity:1; transition:opacity var(--dur-base) var(--ease-standard);
}
.hdr--solid::before{ opacity:0; }
.hdr--solid{
  background:rgba(255,255,255,.96); border-bottom-color:var(--border);
  box-shadow:var(--shadow-1);
}
.hdr__logo{ display:inline-flex; align-items:center; height:42px; }
.hdr__logo img{ height:100%; width:auto; }
.hdr__nav{ display:flex; gap:var(--sp-6); margin-left:var(--sp-2); }
.hdr__nav a{
  font:var(--fw-semibold) 12.5px/1 var(--font-display);
  letter-spacing:.07em; text-transform:uppercase; color:#fff;
  padding:6px 0; position:relative; transition:color var(--dur-fast);
}
.hdr__nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px;
  background:var(--bmi-orange); transition:right var(--dur-base) var(--ease-out);
}
.hdr__nav a:hover::after{ right:0; }
.hdr--solid .hdr__nav a{ color:var(--fg-2); }
.hdr--solid .hdr__nav a:hover{ color:var(--bmi-green); }
.hdr__nav a.is-active::after{ right:0; background:rgba(255,255,255,.55); }
.hdr--solid .hdr__nav a.is-active::after{ background:rgba(0,0,0,.3); }
.hdr__actions{ margin-left:auto; display:flex; align-items:center; gap:var(--sp-4); }
.hdr__cta{
  font:var(--fw-bold) 12px/1 var(--font-display); letter-spacing:.07em; text-transform:uppercase;
  padding:11px 20px; border-radius:var(--r-sm); background:var(--bmi-orange); color:var(--bmi-ink);
  transition:background var(--dur-base);
}
.hdr__cta:hover{ background:var(--bmi-orange-600); }
.hdr__burger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:0 9px; background:none; border:1px solid rgba(255,255,255,.28); border-radius:var(--r-sm); cursor:pointer; }
.hdr__burger span{ display:block; height:2px; width:100%; background:#fff; border-radius:2px; transition:transform var(--dur-base) var(--ease-standard), opacity var(--dur-fast); }
.hdr--solid .hdr__burger{ border-color:var(--border); }
.hdr--solid .hdr__burger span{ background:var(--bmi-ink); }
.hdr__burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hdr__burger.is-open span:nth-child(2){ opacity:0; }
.hdr__burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.hdr__drawer{ display:none; }
.lang{ position:relative; }
.lang__btn{ display:flex; align-items:center; gap:6px; background:none; border:1px solid rgba(255,255,255,.28); border-radius:var(--r-sm); color:#fff; padding:9px 11px; cursor:pointer; font:var(--fw-semibold) 12px/1 var(--font-display); letter-spacing:.07em; transition:border-color var(--dur-base),background var(--dur-base); }
.lang__btn:hover{ background:rgba(255,255,255,.1); }
.hdr--solid .lang__btn{ color:var(--fg-2); border-color:rgba(14,14,14,.16); }
.hdr--solid .lang__btn:hover{ background:rgba(14,14,14,.04); }
.lang__caret{ transition:transform var(--dur-base); }
.lang.is-open .lang__caret{ transform:rotate(180deg); }
.lang__menu{ position:absolute; top:calc(100% + 10px); right:0; min-width:172px; background:#fff; border:1px solid rgba(14,14,14,.10); border-radius:var(--r-sm); box-shadow:var(--shadow-2); padding:6px; display:flex; flex-direction:column; opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity var(--dur-base),transform var(--dur-base),visibility var(--dur-base); }
.lang.is-open .lang__menu{ opacity:1; visibility:visible; transform:none; }
.lang__item{ display:flex; align-items:center; gap:10px; background:none; border:0; text-align:left; padding:9px 10px; border-radius:4px; cursor:pointer; color:var(--fg-2); font:var(--fw-medium) 14px/1 var(--font-body); transition:background var(--dur-base),color var(--dur-base); }
.lang__item:hover{ background:var(--bmi-cream); color:var(--bmi-green); }
.lang__item.is-active{ color:var(--bmi-green); font-weight:var(--fw-bold); }
.lang__code{ font:var(--fw-bold) 11px/1 var(--font-mono); letter-spacing:.06em; color:var(--bmi-orange); min-width:20px; }
@media (max-width:900px){ .lang{ display:none; } }

/* ============================================================
   Hero carrusel (Portada)
   ============================================================ */
.hero{ position:relative; height:100vh; min-height:640px; overflow:hidden; color:#fff; }
.hero__slide{
  position:absolute; inset:0; opacity:0; transition:opacity 900ms var(--ease-standard);
}
.hero__slide.is-active{ opacity:1; }
.hero__img{ position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.06); transition:transform 7s linear; }
.hero__slide.is-active .hero__img{ transform:scale(1); }
.hero__wash{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,14,14,.05) 0%, rgba(14,14,14,.15) 45%, rgba(14,14,14,.72) 100%); }

.hero__stage{ position:absolute; inset:0; display:flex; align-items:flex-end; padding-bottom:clamp(120px,16vh,180px); }
.hero__inner{ position:relative; z-index:2; }
.hero__eyebrow{ color:var(--bmi-orange); display:block; margin-bottom:var(--sp-4); }
.hero__titles{ position:relative; }
.hero__title{
  font-family:var(--font-display); font-weight:var(--fw-black);
  font-size:calc(clamp(28px,3.9vw,52px) * var(--title-scale));
  line-height:1.04; letter-spacing:-0.015em; text-transform:uppercase; color:#fff;
  max-width:20ch; margin:0;
  border-left:14px solid var(--bmi-orange); padding-left:clamp(18px,2vw,28px);
}
.hero__title .tag{ color:var(--bmi-orange); }
/* crossfade the rotating headline */
.hero__title-item{ position:absolute; inset:0 auto auto 0; width:100%;
  opacity:0; transform:translateY(10px); transition:opacity 600ms var(--ease-standard),transform 600ms var(--ease-standard); pointer-events:none; }
.hero__title-item.is-active{ opacity:1; transform:none; position:relative; pointer-events:auto; }

/* controls */
.hero__controls{ position:absolute; left:0; right:0; bottom:clamp(40px,7vh,72px); z-index:3; }
.hero__controls-row{ display:flex; align-items:center; gap:var(--sp-5); }
.hero__bars{ display:flex; gap:10px; flex:0 0 auto; }
.hero__bar{ width:54px; height:4px; background:rgba(255,255,255,.32); border:0; padding:0; cursor:pointer; overflow:hidden; border-radius:2px; }
.hero__bar span{ display:block; height:100%; width:0; background:var(--bmi-orange); }
.hero__bar.is-active span{ width:100%; transition:width var(--hero-dur,6000ms) linear; }
.hero__count{ font:var(--fw-semibold) 12px/1 var(--font-mono); letter-spacing:.1em; color:rgba(255,255,255,.8); }
.hero__count b{ color:#fff; }
.hero__nav{ margin-left:auto; display:flex; gap:10px; }
.hero__arrow{ width:46px; height:46px; border:0; background:transparent; color:#fff;
  cursor:pointer; display:grid; place-items:center; opacity:.8; transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-out); }
.hero__arrow:hover{ opacity:1; transform:translateY(-1px); }
.hero__cue{ position:absolute; left:clamp(20px,5vw,56px); top:50%; transform:rotate(-90deg); transform-origin:left;
  font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.7); z-index:3; }

/* ============================================================
   Franja 01 — Experiencia
   ============================================================ */
.exp__grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:clamp(40px,6vw,88px); align-items:start; }
.exp__left .eyebrow{ display:block; margin-bottom:var(--sp-4); }
.exp__title{
  font-family:var(--font-display); font-weight:var(--fw-black);
  font-size:calc(clamp(30px,3.8vw,52px) * var(--title-scale));
  line-height:.98; letter-spacing:-0.025em; text-transform:uppercase; color:var(--bmi-ink); margin:0;
}
.exp__kpi{ margin-top:clamp(32px,4vw,48px); display:flex; align-items:flex-end; gap:var(--sp-5);
  border-top:1px solid var(--border); padding-top:var(--sp-6); }
.exp__kpi-num{ font:var(--fw-black) clamp(64px,8vw,104px)/.82 var(--font-display); letter-spacing:-.04em; color:var(--bmi-green); }
.exp__kpi-num .plus{ color:var(--bmi-orange); }
.exp__kpi-lbl{ font:var(--fw-bold) 13px/1.25 var(--font-display); letter-spacing:.08em; text-transform:uppercase; color:var(--fg-2); padding-bottom:10px; max-width:14ch; }
.exp__right p{ font-size:clamp(16px,1.25vw,18.5px); line-height:1.62; color:var(--fg-1); margin:0 0 var(--sp-5); }
.exp__right p.is-lead{ font-weight:var(--fw-bold); color:var(--bmi-green-800); font-size:clamp(18px,1.5vw,22px); line-height:1.4; }
.exp__right p:last-child{ margin-bottom:0; color:var(--fg-2); }

/* ============================================================
   Franja 02 — Video
   ============================================================ */
.video-band{ background:var(--bmi-ink); }
.video__frame{ position:relative; width:100%; aspect-ratio:21/9; max-height:84vh; overflow:hidden; cursor:pointer; }
.video__img{ position:absolute; inset:0; background-size:cover; background-position:center 60%; transition:transform var(--dur-slow) var(--ease-out); }
.video__frame:hover .video__img{ transform:scale(1.03); }
.video__wash{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,14,14,.1) 0%, rgba(14,14,14,.68) 100%); }
.video__body{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-5); color:#fff; text-align:center; padding:24px; }
.video__play{ width:88px; height:88px; border-radius:50%; background:var(--bmi-orange); display:grid; place-items:center;
  box-shadow:0 8px 28px rgba(0,0,0,.28); transition:transform var(--dur-base) var(--ease-out),background var(--dur-base); }
.video__frame:hover .video__play{ transform:scale(1.08); background:var(--bmi-orange-600); }
.video__play svg{ margin-left:5px; }
.video__label{ font:var(--fw-bold) 12px/1 var(--font-display); letter-spacing:.2em; text-transform:uppercase; color:var(--bmi-orange); }
.video__cap{ font:var(--fw-black) clamp(20px,2.4vw,32px)/1.05 var(--font-display); text-transform:uppercase; letter-spacing:-.01em; max-width:18ch; }

/* ============================================================
   Franja 03 — Lo que hacemos (capgrid)
   ============================================================ */
.cap__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:clamp(36px,4vw,56px); flex-wrap:wrap; }
.capgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.captile{ position:relative; aspect-ratio:4/3.1; overflow:hidden; border-radius:var(--r-sm); color:#fff; cursor:pointer;
  transition:transform var(--dur-base) var(--ease-out); }
.captile:hover{ transform:translateY(-4px); }
.captile__img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform var(--dur-slow) var(--ease-out); }
.captile:hover .captile__img{ transform:scale(1.06); }
.captile__wash{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,14,14,.08) 0%, rgba(14,14,14,.15) 40%, rgba(14,14,14,.8) 100%); transition:opacity var(--dur-base); }
.captile:hover .captile__wash{ opacity:.92; }
.captile__num{ position:absolute; top:16px; right:18px; font:var(--fw-black) 22px/1 var(--font-display); color:var(--bmi-orange); letter-spacing:-.02em; }
.captile__title{ position:absolute; left:18px; right:18px; bottom:20px; font:var(--fw-extrabold,800) 17px/1.08 var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; margin:0; transition:transform var(--dur-base) var(--ease-out); }
.captile:hover .captile__title{ transform:translateY(-24px); }
.captile__link{ position:absolute; left:18px; bottom:16px; display:flex; align-items:center; gap:8px;
  font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.12em; text-transform:uppercase; color:var(--bmi-orange);
  opacity:0; transform:translateY(6px); transition:opacity var(--dur-base),transform var(--dur-base); }
.captile:hover .captile__link{ opacity:1; transform:none; }
.captile__link .ar{ transition:transform var(--dur-base) var(--ease-out); }
.captile:hover .captile__link .ar{ transform:translateX(4px); }

/* ============================================================
   Franja 04 — ISO
   ============================================================ */
.iso{ position:relative; --bv-blue:#00049E; --bv-green:#68A641; --bv-grey:#68655C; }
.iso::before{ content:''; position:absolute; left:0; right:0; top:0; height:6px; background:var(--bmi-orange); }
.iso__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(40px,6vw,80px); align-items:start; }

/* precise reference + mandatory scope declaration */
.iso__cert{ font:var(--fw-semibold) 13px/1 var(--font-mono); color:var(--bmi-orange); letter-spacing:.04em; margin-top:22px; display:flex; align-items:center; gap:10px; }
.iso__scope{ margin-top:24px; border-left:6px solid var(--bmi-orange); padding:2px 0 2px 18px; }
.iso__scope b{ display:block; font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--bmi-orange); margin-bottom:9px; }
.iso__scope p{ margin:0; font:var(--fw-medium) 14px/1.5 var(--font-body); color:rgba(255,255,255,.9); max-width:48ch; }
.iso__mem{ margin-top:28px; padding-top:22px; border-top:1px solid var(--divider); }
.iso__mem-h{ font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:14px; }
.iso__tags{ display:flex; flex-wrap:wrap; gap:10px; }
.iso__tag{ font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.06em; text-transform:uppercase;
  padding:8px 13px; border:1px solid rgba(255,255,255,.28); border-radius:var(--r-pill); color:#fff; }
.iso__camara-logo{ height:52px; width:auto; max-width:170px; object-fit:contain; }

/* marca oficial de certificación combinada Bureau Veritas — artwork provisto (landscape, fondo blanco) */
.bvmark{ display:block; width:min(360px,100%); height:auto; }
.iso__foot{ margin-top:18px; font:var(--fw-medium) 12px/1.45 var(--font-mono); color:rgba(255,255,255,.6); max-width:62ch; }

/* ============================================================
   Franja 05 — Clientes
   ============================================================ */
.clients__head{ text-align:center; margin-bottom:clamp(36px,4vw,52px); }
.clients__head .eyebrow{ display:block; margin-bottom:var(--sp-3); }
.clients__head .bridge{ margin:18px auto 0; }
.clients__grid{ display:grid; grid-template-columns:repeat(3,1fr); background:transparent; }
.client{ aspect-ratio:16/7; display:grid; place-items:center; transition:background var(--dur-base); min-width:0; }
.client:hover{ background:rgba(0,114,54,.04); }
.client__mark{ font:var(--fw-black) clamp(16px,1.7vw,22px)/1 var(--font-display); letter-spacing:.02em; text-transform:uppercase;
  color:var(--bmi-steel); transition:color var(--dur-base); text-align:center; }
.client:hover .client__mark{ color:var(--bmi-ink); }
.client__mark small{ display:block; font:var(--fw-semibold) 10px/1 var(--font-mono); letter-spacing:.14em; color:var(--bmi-mist); margin-top:6px; }
.client__logo{ max-width:100%; max-height:87%; transform:scale(1.3); width:auto; height:auto; min-width:0; object-fit:contain; opacity:.85; transition:opacity var(--dur-base); }
.client:hover .client__logo{ opacity:1; }
.client--dark{ background:var(--bmi-ink); border-radius:var(--r-sm); }
.client--dark:hover{ background:var(--bmi-ink); }
.client__logo--color{ filter:none; opacity:.92; }
.client--dark:hover .client__logo--color{ opacity:1; }
.clients__note{ text-align:center; margin-top:18px; font:var(--fw-medium) 12px/1.4 var(--font-mono); color:var(--bmi-steel); letter-spacing:.02em; }

/* ============================================================
   Franja 06 — Reclutamiento + Contacto
   ============================================================ */
.recruit{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; background:var(--bmi-white); }
.recruit__media{ position:relative; overflow:hidden; min-height:460px; }
.recruit__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 18s ease-out forwards; }
.recruit__media::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,14,14,0) 60%, rgba(14,14,14,.28) 100%); }
.recruit__media .corner{ position:absolute; left:0; bottom:0; width:46%; height:12px; background:var(--bmi-orange); z-index:1; }
#experiencia, #hacemos, #iso{ padding-block:clamp(144px,18vw,252px); }
.recruit__copy{ padding:clamp(84px,12vw,144px) clamp(24px,6vw,80px); display:flex; flex-direction:column; justify-content:center; }
.recruit__copy .eyebrow{ display:block; margin-bottom:var(--sp-4); }
.recruit__copy p{ font-size:clamp(16px,1.2vw,18px); line-height:1.6; color:var(--fg-1); margin:var(--sp-5) 0 var(--sp-6); max-width:50ch; }

.contact__grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(40px,6vw,80px); align-items:start; }
.contact__intro .eyebrow{ display:block; margin-bottom:var(--sp-4); color:var(--bmi-orange); }
.contact__intro p{ color:rgba(255,255,255,.85); font-size:17px; line-height:1.6; margin-top:var(--sp-5); max-width:38ch; }
.contact__detail{ margin-top:var(--sp-7); display:flex; flex-direction:column; gap:var(--sp-4); }
.contact__detail-item{ display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.88); font:var(--fw-medium) 14px/1.3 var(--font-body); }
.contact__detail-item svg{ color:var(--bmi-orange); flex:0 0 auto; }
.form{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4) var(--sp-5); }
.field{ display:flex; flex-direction:column; gap:8px; }
.field--full{ grid-column:1 / -1; }
.field label{ font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.field input, .field select, .field textarea{
  font:var(--fw-medium) 15px/1.4 var(--font-body); color:#fff; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.22); border-radius:var(--r-sm); padding:13px 14px; width:100%;
  transition:border-color var(--dur-base),background var(--dur-base);
}
.field textarea{ resize:vertical; min-height:118px; }
.field input::placeholder, .field textarea::placeholder{ color:rgba(255,255,255,.4); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--bmi-orange); background:rgba(255,255,255,.1); }
.field select{ appearance:none; }
.field select option{ color:var(--bmi-ink); }
.form__submit{ grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:var(--sp-2); }
.form__note{ font:var(--fw-medium) 12px/1.4 var(--font-mono); color:rgba(255,255,255,.55); max-width:34ch; }
.form__ok{ grid-column:1/-1; display:flex; align-items:center; gap:12px; padding:18px; border:1px solid var(--bmi-orange);
  border-radius:var(--r-sm); background:rgba(254,163,11,.1); color:#fff; font-weight:var(--fw-semibold); }

/* ============================================================
   Footer
   ============================================================ */
.ftr{ background:var(--bmi-ink); color:rgba(255,255,255,.8); padding:clamp(56px,7vw,84px) 0 28px; }
.ftr__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:clamp(32px,4vw,56px); }
.ftr__top--brand{ display:block; }
.ftr__mark{ height:46px; width:auto; margin-bottom:var(--sp-5); }
.ftr__claim{ font:var(--fw-medium) 13.5px/1.5 var(--font-body); color:rgba(255,255,255,.6); max-width:min(50%,640px); }
.ftr__hash{ font:var(--fw-black) 14px/1 var(--font-display); letter-spacing:.04em; color:var(--bmi-orange); margin-top:var(--sp-5); }
.ftr__h{ font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--bmi-orange); margin-bottom:var(--sp-4); }
.ftr__col li{ padding:6px 0; }
.ftr__col a{ font:var(--fw-medium) 13.5px/1.4 var(--font-body); color:rgba(255,255,255,.72); transition:color var(--dur-fast); }
.ftr__col a:hover{ color:var(--bmi-orange); }
.grpbar{ background:#12160f; border-top:2px solid var(--bmi-orange); }
.grpbar__in{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:14px 24px; }
.grpbar__label{ font:var(--fw-medium) 12.5px/1.5 var(--font-body); color:rgba(255,255,255,.55); }
.grpbar__label b{ color:rgba(255,255,255,.9); font-weight:var(--fw-bold); }
.grpbar__label a{ text-decoration:none; }
.grpbar__label a:hover b{ color:var(--bmi-orange); }
.grpbar__links{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.grpbar__link img{ display:block; width:auto; object-fit:contain; opacity:.72; transition:opacity var(--dur-fast); }
.grpbar__img--bmi{ height:23px; }
.grpbar__img--cactus{ height:31px; }
.grpbar__img--loglink{ height:10.5px; }
.grpbar__link:hover img{ opacity:1; }
.grpbar__link--active img{ opacity:1; }
.grpbar__link{ font:var(--fw-bold) 12px/1 var(--font-display); letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.55); transition:color var(--dur-fast); }
.grpbar__link:hover{ color:var(--bmi-orange); }
.grpbar__link--active{ color:var(--bmi-orange); }
@media (max-width:700px){ .grpbar__in{ justify-content:center; text-align:center; } }
.ftr__bottom{ margin-top:clamp(40px,5vw,64px); padding-top:22px; border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font:var(--fw-medium) 11.5px/1 var(--font-mono); letter-spacing:.04em; color:rgba(255,255,255,.5); }
.ftr__policy{ display:inline-block; color:#fff; text-decoration:underline; text-decoration-thickness:1px; text-decoration-color:rgba(254,163,11,.6); text-underline-offset:3px; transition:color .2s ease-out,text-decoration-color .2s ease-out; }
.ftr__policy:hover{ color:var(--bmi-orange); text-decoration-color:var(--bmi-orange); }

/* ============================================================
   Página Contacto — franjas adicionales
   ============================================================ */
.cband{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; background:var(--bmi-white); }
.cband--rev .cband__media{ order:2; }
.cband--rev .cband__copy{ order:1; }
.cband__media{ position:relative; overflow:hidden; min-height:480px; }
.cband__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cband__copy{ padding:clamp(56px,8vw,112px) clamp(24px,6vw,80px); display:flex; flex-direction:column; justify-content:center; gap:18px; }
.kicker{ border-left:5px solid var(--bmi-orange); padding-left:16px; }
.cband__sub{ font:var(--fw-bold) clamp(19px,2vw,23px)/1.3 var(--font-display); color:var(--bmi-ink); margin:0; max-width:30ch; }
.cband__copy p{ font-size:15px; line-height:1.6; color:var(--fg-2); max-width:48ch; margin:0; }
.cband__link{ display:inline-flex; align-items:center; gap:8px; font:var(--fw-bold) clamp(19px,2vw,23px)/1.3 var(--font-display); color:var(--bmi-green); }
.cband__link:hover{ color:var(--bmi-green-700); }
.cband--green .cband__copy{ background:var(--bmi-green); }
.cband--green .h2, .cband--green .cband__sub{ color:#fff; }
.cband--green .cband__copy p{ color:rgba(255,255,255,.9); }
.cband--green .cband__link{ color:#fff; }
.cband--green .cband__link:hover{ color:var(--bmi-orange); }
.cband__link .ar{ transition:transform var(--dur-base) var(--ease-out); }
.cband__link:hover .ar{ transform:translate(3px,-3px); }

.cfull{ position:relative; min-height:560px; display:flex; overflow:hidden; }
.cfull__img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.cfull__card{ position:relative; z-index:1; margin:clamp(32px,6vw,64px) clamp(24px,6vw,80px) clamp(32px,6vw,64px) auto; max-width:460px; background:var(--bmi-green); padding:clamp(32px,4vw,48px); display:flex; flex-direction:column; gap:16px; align-self:center; }
.cfull__card .h2, .cfull__card .cband__sub{ color:#fff; }
.cfull__card p{ color:rgba(255,255,255,.9); font-size:15px; line-height:1.6; margin:0; }
.cfull--wash::before{ content:''; position:absolute; inset:0; background:rgba(0,114,54,.80); z-index:0; }
.cfull__inner{ position:relative; z-index:1; margin:auto auto auto 0; padding:clamp(24px,6vw,80px); max-width:620px; display:flex; flex-direction:column; gap:16px; }
.cfull--wash .h2{ color:#fff; font-size:calc(clamp(20px,2.4vw,32px) * var(--title-scale)); }
.cfull--wash p{ color:rgba(255,255,255,.92); }
.cfull--wash .cband__sub{ color:#fff; }
.cfull--wash .cband__link{ color:#fff; }
.cfull--wash .cband__link:hover{ color:var(--bmi-orange); }

.btn--outline-green{ background:transparent; color:var(--bmi-green); box-shadow:inset 0 0 0 1.5px var(--bmi-green); }
.btn--outline-green:hover{ background:var(--bmi-green); color:#fff; }
.btn--outline-alert{ background:transparent; color:var(--bmi-alert); box-shadow:inset 0 0 0 1.5px var(--bmi-alert); }
.btn--outline-alert:hover{ background:var(--bmi-alert); color:#fff; }

.cfinal{ display:grid; grid-template-columns:1fr; background:var(--bmi-green); color:#fff; }
.cfinal .h2{ color:#fff; }
.cfinal__copy{ padding:clamp(84px,10vw,140px) clamp(24px,6vw,80px); display:flex; flex-direction:column; gap:32px; max-width:760px; margin:0 auto; width:100%; }
.cfinal__block{ padding-top:28px; border-top:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; gap:16px; }
.cfinal__block:first-of-type{ border-top:0; padding-top:0; }
.cfinal__label{ font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:900px){
  .exp__grid, .iso__grid, .contact__grid{ grid-template-columns:1fr; }
  .recruit{ grid-template-columns:1fr; }
  .recruit__media{ min-height:320px; }
  .cband, .cband--rev{ grid-template-columns:1fr; }
  .cband__media{ min-height:320px; order:0; }
  .cfull__card{ margin:24px; max-width:none; }
  .cfull__inner{ margin:0; padding:40px 24px; }
  .capgrid{ grid-template-columns:repeat(2,1fr); }
  .clients__grid{ grid-template-columns:repeat(2,1fr); }
  .ftr__top{ grid-template-columns:1fr 1fr; }
  .hdr__nav{ display:none; }
  .hdr__cta{ display:none; }
  .hdr__burger{ display:flex; }
  .hdr__drawer{ display:block; position:absolute; top:100%; left:0; right:0; background:var(--bmi-green); border-top:3px solid var(--bmi-orange);
    max-height:0; overflow:hidden; transition:max-height var(--dur-base) var(--ease-standard); }
  .hdr__drawer.is-open{ max-height:520px; box-shadow:var(--shadow-2); }
  .hdr__drawer-nav{ display:flex; flex-direction:column; padding:8px 0; }
  .hdr__drawer-nav a{ padding:16px 24px; font:var(--fw-semibold) 14px/1 var(--font-display); letter-spacing:.07em; text-transform:uppercase; color:#fff; border-bottom:1px solid rgba(255,255,255,.12); }
  .hdr__drawer-nav a:hover{ color:var(--bmi-orange); }
  .hdr__drawer-cta{ display:block; margin:16px 24px 0; padding:15px 20px; text-align:center; background:var(--bmi-orange); color:var(--bmi-ink); border-radius:var(--r-sm);
    font:var(--fw-bold) 13px/1 var(--font-display); letter-spacing:.07em; text-transform:uppercase; }
  .hdr__drawer-langs{ display:flex; gap:8px; padding:20px 24px 24px; }
  .hdr__drawer-lang{ min-width:48px; min-height:44px; background:none; border:1px solid rgba(255,255,255,.28); border-radius:var(--r-sm); color:#fff; cursor:pointer;
    font:var(--fw-bold) 12px/1 var(--font-mono); letter-spacing:.06em; }
  .hdr__drawer-lang.is-active{ border-color:var(--bmi-orange); color:var(--bmi-orange); }
  .form{ grid-template-columns:1fr; }
}

/* ============================================================
   Página interna — Así lo hacemos
   ============================================================ */
.pagebanner{ position:relative; height:46vh; min-height:340px; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
.pagebanner__img{ position:absolute; inset:0; background:url('../assets/imagery/team-blueprint-review.jpg') center/cover; animation:kenburns 16s ease-out forwards; }
@keyframes kenburns{ from{ transform:scale(1); } to{ transform:scale(1.14); } }
.pagebanner__wash{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,14,14,.15) 0%, rgba(14,14,14,.75) 100%); }
.pagebanner__inner{ position:relative; z-index:1; padding-bottom:clamp(36px,5vw,56px); }
.pagebanner__crumb{ font:var(--fw-semibold) 12px/1 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:14px; }
.pagebanner__crumb a{ color:rgba(255,255,255,.7); }
.pagebanner__crumb a:hover{ color:var(--bmi-orange); }
.pagebanner h1{
  font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase;
  font-size:calc(clamp(34px,4.6vw,58px) * var(--title-scale)); line-height:1; letter-spacing:-.02em;
  border-left:12px solid var(--bmi-orange); padding-left:22px; margin:0;
}

/* Como lo hacemos — link grid (reuses capgrid visuals via .navtile) */
.navgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.navtile{ position:relative; aspect-ratio:16/10; overflow:hidden; border-radius:var(--r-sm); color:#fff; cursor:pointer;
  transition:transform var(--dur-base) var(--ease-out); }
.navtile:hover{ transform:translateY(-4px); }
.navtile__img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform var(--dur-slow) var(--ease-out); }
.navtile:hover .navtile__img{ transform:scale(1.06); }
.navtile__wash{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,14,14,.1) 0%, rgba(14,14,14,.8) 100%); }
.navtile__num{ position:absolute; top:16px; right:18px; font:var(--fw-black) 20px/1 var(--font-display); color:var(--bmi-orange); }
.navtile__title{ position:absolute; left:18px; right:18px; bottom:18px; font-weight:800; font-size:16px; line-height:1.1; text-transform:uppercase; margin:0; transition:transform var(--dur-base) var(--ease-out); }
.navtile:hover .navtile__title{ transform:translateY(-23px); }
.navtile__link{ position:absolute; left:18px; bottom:15px; display:flex; align-items:center; gap:8px;
  font:var(--fw-bold) 11px/1 var(--font-display); letter-spacing:.12em; text-transform:uppercase; color:var(--bmi-orange);
  opacity:0; transform:translateY(6px); transition:opacity var(--dur-base),transform var(--dur-base); }
.navtile:hover .navtile__link{ opacity:1; transform:none; }
.navtile__link .ar{ transition:transform var(--dur-base) var(--ease-out); }
.navtile:hover .navtile__link .ar{ transform:translateX(4px); }

/* Sub-bloques de texto (Ingeniería propia) */
.subblocks{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(32px,4vw,48px); margin-top:clamp(36px,4vw,52px); border-top:1px solid var(--border); padding-top:clamp(28px,3vw,36px); }
.subblock{ display:flex; flex-direction:column; gap:12px; }
@media (max-width:900px){ .subblocks{ grid-template-columns:1fr; } }
.subblock__h{ font:var(--fw-black) 18px/1.2 var(--font-display); text-transform:uppercase; letter-spacing:-.01em; color:var(--bmi-green-800); }
.subblock p{ margin:0; font-size:16px; line-height:1.62; color:var(--fg-1); max-width:64ch; }

/* KPI stat rows (Máquinas & equipos / Campamentos) */
.statrow{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:clamp(32px,4vw,48px); }
.stat{ border-top:3px solid var(--bmi-orange); padding-top:18px; }
.stat__n{ font:var(--fw-black) clamp(38px,4vw,54px)/1 var(--font-display); letter-spacing:-.02em; color:var(--bmi-ink); }
.stat__l{ font:var(--fw-semibold) 13px/1.3 var(--font-body); color:var(--fg-2); margin-top:8px; max-width:20ch; }
.equiplist{ margin-top:clamp(28px,3vw,40px); display:flex; flex-wrap:wrap; gap:10px; }
.equiptag{ font:var(--fw-semibold) 12.5px/1 var(--font-body); padding:9px 14px; background:var(--bmi-white); border:1px solid var(--border); border-radius:var(--r-pill); color:var(--fg-2); }

.linea__scope{ display:flex; flex-wrap:wrap; gap:8px 10px; margin:16px 0 0; }
.linea__scope span{ font:var(--fw-bold) 12px/1 var(--font-body); text-transform:uppercase; letter-spacing:.06em; color:var(--bmi-green-800); background:rgba(0,114,54,.08); border-radius:var(--r-pill); padding:7px 14px; }
.linea__text p.lead + p.lead{ margin-top:14px; }
.servicelist-label{ font:var(--fw-bold) 12.5px/1 var(--font-body); text-transform:uppercase; letter-spacing:.12em; color:var(--bmi-green-800); margin:28px 0 0; }

/* Servicelist con check */
.servicelist{ display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; margin-top:20px; }
.servicelist li{ display:flex; align-items:center; gap:10px; font:var(--fw-medium) 14.5px/1.3 var(--font-body); color:rgba(255,255,255,.92); }
.servicelist svg{ color:var(--bmi-orange); flex:0 0 auto; }
.servicelist.on-light li{ color:var(--fg-1); }
.servicelist.on-light svg{ color:var(--bmi-green); }

/* Comunidades / Fundación Cóndor / Líneas de negocio — franja con imagen full-bleed */
.commsec{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.commsec--cream{ background:var(--bmi-cream); }
.commsec--white{ background:var(--bmi-white); }
.commsec.rev .commsec__media{ order:2; }
.commsec__media{ position:relative; overflow:hidden; min-height:460px; }
.commsec__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 18s ease-out forwards; }
.commsec__copy{ padding:clamp(56px,8vw,96px) clamp(32px,7vw,96px); display:flex; flex-direction:column; justify-content:center; }
.commsec__copy p{ font-size:16px; line-height:1.62; color:var(--fg-1); margin:var(--sp-4) 0 0; max-width:52ch; }
.commsec__copy--split .commsec__body p:first-child{ margin-top:0; }
.commsec__links{ display:flex; gap:12px; margin-top:var(--sp-5); flex-wrap:wrap; }
.commsec__copy .servicelist{ margin-top:20px; }

/* Partners strip */
.partners__row{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:96px; gap:0; border-radius:var(--r-md); overflow:hidden; background:#fff; }
.partners__row--sm{ grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:120px; }
.partners__row--lg{ grid-auto-rows:150px; }
.partner{ min-width:0; min-height:0; height:100%; display:grid; place-items:center; transition:background var(--dur-base); }
.partner:hover{ background:var(--bmi-cream); }
.partner span{ font:var(--fw-black) 15px/1 var(--font-display); letter-spacing:.02em; text-transform:uppercase; color:var(--bmi-steel); transition:color var(--dur-base); }
.partner:hover span{ color:var(--bmi-ink); }
.partners__row--dark{ background:transparent; }
.partner--dark{ padding:20px; }
.partner--dark:hover{ background:rgba(255,255,255,.05); }
.partner--dark img{ max-width:78%; max-height:44px; object-fit:contain; filter:brightness(0) invert(1); opacity:.82; transition:opacity var(--dur-base); }
.partner--dark:hover img{ opacity:1; }
.partner--dark span{ font:var(--fw-black) 15px/1 var(--font-display); letter-spacing:.02em; text-transform:uppercase; color:rgba(255,255,255,.82); transition:color var(--dur-base); }
.partner--dark:hover span{ color:#fff; }
.partners__row--lg .partner--dark{ padding:28px; }
.partners__row--lg .partner--dark img{ max-width:80%; max-height:56px; }
.partners__row--lg .partner--dark span{ font-size:22.5px; }
.partners__row--sm .partner--dark img{ max-width:62.4%; max-height:40px; }
.partners__row--sm .partner--dark span{ font-size:12px; }
@media (max-width:1060px){ .partners__row{ grid-template-columns:repeat(3,minmax(0,1fr)); } .partners__row--sm{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .partners__row{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* L\u00edneas de negocio \u2014 Lo que hacemos: franja de texto + franja de slideshow full-bleed */
.linea--cream .linea__text{ background:var(--bmi-cream); }
.linea--white .linea__text{ background:var(--bmi-white); }
.linea__text{ padding-block:clamp(64px,8vw,104px); }
.linea__cols{ display:flex; flex-direction:column; gap:40px; margin-top:18px; }
.linea__col-main{ max-width:62ch; }
.linea__col-services .servicelist-label{ margin-top:0; }
.linea__col-services .servicelist{ grid-template-columns:1fr; }
@media (orientation:landscape) and (min-width:860px){
  .linea__cols{ display:grid; grid-template-columns:1.35fr 1fr; gap:64px; align-items:start; }
  .linea__col-services{ border-left:1px solid var(--border); padding-left:40px; padding-top:25px; }
}
.linea__slides{ position:relative; width:100%; aspect-ratio:16/7; min-height:360px; overflow:hidden; }
.linea__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1100ms var(--ease-standard); }
.linea__slide.is-active{ opacity:1; }
.linea__slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 9s ease-out infinite alternate; }
@media (min-width:1600px) and (orientation:landscape){ .linea__slides{ aspect-ratio:auto; height:800px; } }
@media (max-width:900px){ .linea__slides{ aspect-ratio:4/3; }
  .statrow{ grid-template-columns:1fr 1fr; }
  .commsec{ grid-template-columns:1fr; }
  .commsec.rev .commsec__media{ order:0; }
  .commsec__media{ min-height:320px; }
  .servicelist{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .navgrid{ grid-template-columns:1fr; }
  .statrow{ grid-template-columns:1fr; }
  .capgrid, .clients__grid{ grid-template-columns:1fr; }
  .ftr__top{ grid-template-columns:1fr; }
  .hero__title{ border-left-width:8px; }
}

