/* ═══════════════════════════════════════════════════════════
   Paleta tomada directamente del logotipo:
   azul petróleo #003244 y verde #009F36
   ═══════════════════════════════════════════════════════════ */
:root{
  --brand:#003244; --brand-600:#00465E; --brand-900:#001C27;
  --green:#009F36; --green-600:#00892E; --green-ink:#00792A; --green-bright:#17C24E;
  --surface:#FFFFFF; --surface-alt:#F4F8F9; --surface-sunk:#EDF3F5;
  --g100:#DFE9EC; --g200:#C3D3D8; --g400:#8CA3AB; --g600:#4A616A;
  --text:#0C1E26; --text-sub:#4A616A;
  --border:rgba(0,50,68,.13); --border-strong:rgba(0,50,68,.26);
  --on-brand:#FFFFFF; --on-brand-sub:rgba(255,255,255,.68);
  --hero-1:#071A28; --hero-2:#0C2B3C; --hero-3:#10394E;
  --nav-h:74px; --r:10px; --ease:.22s ease;
  --shadow:0 1px 3px rgba(0,50,68,.08), 0 6px 20px rgba(0,50,68,.07);
  --shadow-lg:0 10px 38px rgba(0,50,68,.16);
  --max:1200px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --brand:#04131B; --brand-600:#0A2C3A; --brand-900:#020C11;
    --hero-1:#04121C; --hero-2:#071E2B; --hero-3:#0A2838;
    --green:#17C24E; --green-600:#12A742; --green-ink:#4FDC7C; --green-bright:#17C24E;
    --surface:#081218; --surface-alt:#0C1A22; --surface-sunk:#102530;
    --g100:#16303C; --g200:#1F404F; --g400:#5B7E8C; --g600:#93B2BE;
    --text:#DCEAEF; --text-sub:#90AFBB;
    --border:rgba(255,255,255,.11); --border-strong:rgba(255,255,255,.22);
    --shadow:0 1px 3px rgba(0,0,0,.45), 0 6px 20px rgba(0,0,0,.35);
    --shadow-lg:0 10px 38px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --brand:#04131B; --brand-600:#0A2C3A; --brand-900:#020C11;
  --hero-1:#04121C; --hero-2:#071E2B; --hero-3:#0A2838;
  --green:#17C24E; --green-600:#12A742; --green-ink:#4FDC7C; --green-bright:#17C24E;
  --surface:#081218; --surface-alt:#0C1A22; --surface-sunk:#102530;
  --g100:#16303C; --g200:#1F404F; --g400:#5B7E8C; --g600:#93B2BE;
  --text:#DCEAEF; --text-sub:#90AFBB;
  --border:rgba(255,255,255,.11); --border-strong:rgba(255,255,255,.22);
  --shadow:0 1px 3px rgba(0,0,0,.45), 0 6px 20px rgba(0,0,0,.35);
  --shadow-lg:0 10px 38px rgba(0,0,0,.5);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 18px);-webkit-text-size-adjust:100%}
body{
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.65;color:var(--text);background:var(--surface);
  transition:background var(--ease),color var(--ease);
}
img{max-width:100%;display:block}
ul{list-style:none}
:where(a,button,input,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--green-ink);outline-offset:3px;border-radius:4px;
}
.wrap{max-width:var(--max);margin:0 auto;width:100%}
.skip{
  position:absolute;left:-9999px;top:0;z-index:900;background:var(--brand);color:#fff;
  padding:12px 20px;border-radius:0 0 var(--r) 0;font-weight:600;text-decoration:none;
}
.skip:focus{left:0}

/* ═══ NAVEGACIÓN ═══ */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:300;height:var(--nav-h);
  background:var(--surface);border-bottom:1px solid var(--border);
  transition:background var(--ease),box-shadow var(--ease),border-color var(--ease);
}
#navbar::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:var(--brand)}
:root[data-theme="dark"] #navbar::after{background:var(--g200)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) #navbar::after{background:var(--g200)}}
#navbar.scrolled{box-shadow:var(--shadow-lg)}
.nav-inner{
  height:100%;max-width:var(--max);margin:0 auto;padding:0 20px;
  display:flex;align-items:center;gap:14px;
}
.nav-logo{display:block;flex-shrink:0;margin-right:8px}
.nav-logo img{height:36px;width:auto}
.nav-logo .logo-dark{display:none}
:root[data-theme="dark"] .nav-logo .logo-dark{display:block}
:root[data-theme="dark"] .nav-logo .logo-light{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .nav-logo .logo-dark{display:block}
  :root:not([data-theme="light"]) .nav-logo .logo-light{display:none}
}

.nav-links{display:flex;align-items:center;gap:4px;margin-right:auto}
.nav-links > li{position:relative}
.nav-link,.nav-btn{
  display:inline-flex;align-items:center;gap:6px;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-sub);text-decoration:none;
  background:none;border:none;cursor:pointer;padding:9px 12px;border-radius:7px;
  transition:color var(--ease),background var(--ease);
}
.nav-link:hover,.nav-btn:hover,.nav-btn[aria-expanded="true"]{color:var(--text);background:var(--surface-sunk)}
.nav-btn svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--ease)}
.nav-btn[aria-expanded="true"] svg{transform:rotate(180deg)}

/* Menú desplegable de servicios */
.mega{
  position:absolute;top:calc(var(--nav-h) + 3px);left:0;right:0;z-index:280;
  background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg);
  padding:30px 20px 26px;
}
.mega[hidden]{display:none!important}
.mega-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr 268px;gap:30px}
.mega h3{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--g400);margin-bottom:14px;
}
.mega ul{display:flex;flex-direction:column;gap:2px}
.mega a{
  display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;
  text-decoration:none;transition:background var(--ease);
}
.mega a:hover{background:var(--surface-sunk)}
.mega a svg{width:19px;height:19px;stroke:var(--brand);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.mega a strong{display:block;font-size:.86rem;font-weight:600;color:var(--text);line-height:1.35}
.mega a span{display:block;font-size:.75rem;color:var(--text-sub);line-height:1.45}
.mega-side{background:var(--surface-sunk);border:1px solid var(--border);border-radius:12px;padding:22px}
.mega-side p{font-size:.82rem;color:var(--text-sub);line-height:1.6;margin-bottom:16px}
.mega-side ul{gap:9px}
.mega-side li{display:flex;align-items:center;gap:9px;font-size:.85rem;font-weight:500;color:var(--text)}
.mega-side li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand);flex-shrink:0}

.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.btn-wa{
  display:inline-flex;align-items:center;gap:8px;
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.71rem;letter-spacing:.07em;
  text-transform:uppercase;color:#fff;background:#25D366;border:none;border-radius:var(--r);
  padding:10px 16px;cursor:pointer;text-decoration:none;transition:background .2s,transform .15s;
}
.btn-wa:hover{background:#1EBE5A;transform:translateY(-1px)}
.btn-wa svg{width:15px;height:15px;fill:currentColor;flex-shrink:0}
.icon-btn{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface-sunk);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--g600);
  transition:background var(--ease),color var(--ease);flex-shrink:0;
}
.icon-btn:hover{background:var(--g100);color:var(--text)}
.icon-btn svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.i-sun{display:none}
:root[data-theme="dark"] .i-sun{display:block}
:root[data-theme="dark"] .i-moon{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .i-sun{display:block}
  :root:not([data-theme="light"]) .i-moon{display:none}
}
.nav-toggle{display:none}

/* Menú móvil */
/* Cajón lateral: entra desde la izquierda, al alcance del pulgar.
   No se usa display:none porque impediría animar la entrada; en su
   lugar se esconde con visibility, que además lo saca del tabulador. */
.mobile{
  position:fixed;top:calc(var(--nav-h) + 3px);left:0;bottom:0;z-index:290;
  width:min(86vw,330px);
  background:var(--surface);overflow-y:auto;padding:10px 20px 40px;
  box-shadow:14px 0 44px rgba(0,0,0,.28);
  transition:transform .28s ease,visibility .28s;
}
.mobile[hidden]{
  display:block!important;visibility:hidden;transform:translateX(-100%);
}
/* Velo que atenúa la página mientras el cajón está abierto. */
body.menu-abierto::after{
  content:"";position:fixed;inset:0;z-index:285;background:rgba(4,18,28,.5);
}
@media (prefers-reduced-motion: reduce){
  .mobile{transition:none}
}
.mobile > ul > li > a,.mobile summary{
  display:flex;align-items:center;justify-content:space-between;padding:15px 4px;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.84rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--text);text-decoration:none;
  border-bottom:1px solid var(--border);cursor:pointer;list-style:none;
}
.mobile summary::-webkit-details-marker{display:none}
.mobile summary svg{width:13px;height:13px;stroke:var(--g400);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--ease)}
.mobile details[open] summary svg{transform:rotate(180deg)}
.mobile details ul{padding:6px 0 12px}
.mobile details a{
  display:block;padding:10px 14px;font-size:.88rem;color:var(--text-sub);text-decoration:none;
  border-left:2px solid var(--border);
}
.mobile details a:hover{color:var(--green-ink);border-left-color:var(--green)}
.mobile .btn-wa{margin-top:22px;width:100%;justify-content:center;font-size:.78rem;padding:14px}

/* ═══ HERO ═══ */
.hero{display:grid;grid-template-columns:1.05fr .95fr;margin-top:var(--nav-h);
  background:linear-gradient(120deg,var(--hero-1) 0%,var(--hero-2) 55%,var(--hero-3) 100%)}
.hero-left{
  display:flex;flex-direction:column;justify-content:center;
  padding:80px 46px 80px max(20px, calc((100vw - var(--max)) / 2 + 20px));
}
.hero-eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.67rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--on-brand-sub);margin-bottom:24px;
}
.hero-eyebrow::before{content:"";width:30px;height:2px;background:rgba(255,255,255,.45);flex-shrink:0}
h1{
  font-family:"Montserrat",sans-serif;font-weight:800;
  font-size:clamp(2rem,4vw,3.35rem);line-height:1.1;letter-spacing:-.02em;
  color:var(--on-brand);margin-bottom:20px;text-wrap:balance;
}
/* Sin párrafo debajo, el titular necesita más aire antes de los botones. */
.hero-left h1:has(+ .hero-btns){margin-bottom:32px}
/* Única excepción a la regla del verde: es un acento que aparece
   una sola vez en toda la portada, no una repetición. */
h1 .accent{color:var(--green-bright)}
.hero-desc{font-size:1.04rem;color:var(--on-brand-sub);line-height:1.72;margin-bottom:30px;max-width:50ch}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}
.hero-btns:last-child{margin-bottom:0}
/* Los botones pasaron debajo de las cifras: necesitan aire por arriba. */
.hero-cifras + .hero-btns{margin-top:30px}
.btn-primary,.btn-ghost{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.77rem;letter-spacing:.1em;
  text-transform:uppercase;border-radius:var(--r);padding:14px 28px;cursor:pointer;
  text-decoration:none;display:inline-block;border:1px solid transparent;
  transition:background .2s,transform .15s,border-color .2s,color .2s;
}
.btn-primary{color:#fff;background:var(--green)}
.btn-primary:hover{background:var(--green-600);transform:translateY(-2px)}
.btn-ghost{color:rgba(255,255,255,.9);background:transparent;border-color:rgba(255,255,255,.28)}
.btn-ghost:hover{border-color:rgba(255,255,255,.65);color:#fff}
.hero-sectors{display:flex;flex-wrap:wrap;gap:8px 10px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12)}

/* ── Franja de cifras del hero ──
   Las cuatro salen del propio contenido del sitio, así que cualquiera
   puede comprobarlas bajando la página. Cuando haya años de operación
   y plantas intervenidas, entran aquí sin tocar nada más. */
.hero-cifras{
  display:flex;flex-wrap:wrap;
  padding-top:26px;border-top:1px solid rgba(255,255,255,.12);
}
.hero-cifras > div{
  display:flex;flex-direction:column;gap:5px;
  padding:0 18px;border-left:1px solid rgba(255,255,255,.14);
}
.hero-cifras > div:first-child{padding-left:0;border-left:none}
.hero-cifras strong{
  font-family:"Montserrat",sans-serif;font-weight:800;font-size:1.7rem;
  line-height:1;color:var(--on-brand);
}
.hero-cifras span{
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.59rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--on-brand-sub);
  line-height:1.45;
}
.hero-sectors span{
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.66rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--on-brand-sub);
  border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:6px 14px;
}
.hero-right{position:relative;overflow:hidden;min-height:360px}
.hero-right img{width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.9)}
.hero-right img{
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.28) 20%,#000 58%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.28) 20%,#000 58%);
}

/* ═══ BARRA DE MARCAS ═══ */
.trust{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 20px;transition:background var(--ease)}
.trust .wrap{
  display:flex;align-items:center;justify-content:center;gap:14px 40px;flex-wrap:wrap;
  padding:16px 24px;border-radius:14px;transition:background var(--ease);
}
.trust-label{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--g400);width:100%;text-align:center;margin-bottom:4px;
}
.trust img{height:27px;width:auto;max-width:120px;object-fit:contain}
.trust img.logo-tall{height:34px}

/* En modo oscuro los logos conservan su color sobre una placa clara.
   Pintarlos de blanco con un filtro los dejaba grises y sin identidad. */
:root[data-theme="dark"] .trust .wrap{background:#FFFFFF}
:root[data-theme="dark"] .trust-label{color:#6E8A97}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .trust .wrap{background:#FFFFFF}
  :root:not([data-theme="light"]) .trust-label{color:#6E8A97}
}

/* ═══ SECCIONES ═══ */
section{padding:86px 20px}
.sec-light{background:var(--surface);transition:background var(--ease)}
.sec-alt{background:var(--surface-alt);transition:background var(--ease)}
.sec-brand{background:var(--surface-sunk);position:relative;overflow:hidden;transition:background var(--ease)}
.sec-head{max-width:66ch;margin-bottom:46px}
.eyebrow{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.67rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--brand);margin-bottom:12px;
  display:flex;align-items:center;gap:12px;
}
.eyebrow::after{content:"";flex:1;height:1px;max-width:42px;background:currentColor;opacity:.5}
.sec-brand .eyebrow{color:var(--brand)}
h2{
  font-family:"Montserrat",sans-serif;font-weight:800;
  font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.18;letter-spacing:-.015em;
  color:var(--text);margin-bottom:14px;text-wrap:balance;
}
.sec-brand h2{color:var(--text)}
.sec-sub{font-size:1rem;color:var(--text-sub);line-height:1.75}
.sec-brand .sec-sub{color:var(--text-sub)}

/* ═══ SOBRE NOSOTROS ═══ */
.about{display:grid;grid-template-columns:1.45fr .95fr;gap:68px;align-items:center}
.about-purpose{
  border-left:3px solid var(--brand);padding-left:22px;margin-bottom:26px;
  font-size:1.12rem;line-height:1.6;color:var(--text);font-weight:500;
}
.about p{color:var(--text-sub);line-height:1.8;margin-bottom:16px}
.about-facts{display:flex;flex-direction:column;gap:14px}
.fact{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 24px;
  display:flex;gap:16px;align-items:flex-start;transition:border-color .2s,box-shadow .2s;
}
.fact:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}
.fact-ico{
  width:42px;height:42px;border-radius:9px;background:var(--surface-sunk);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--brand);
}
:root[data-theme="dark"] .fact-ico{color:var(--g600)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .fact-ico{color:var(--g600)}}
.fact-ico svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fact h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:.94rem;color:var(--text);margin-bottom:4px}
.fact p{font-size:.85rem;color:var(--text-sub);line-height:1.6;margin:0}

/* ═══ SERVICIOS ═══ */
.srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.srv-card{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:28px 26px;position:relative;overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow .25s,transform .25s,border-color .25s,background var(--ease);
}
.srv-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--brand);
  transform:scaleX(0);transform-origin:left;transition:transform .35s ease;
}
.srv-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--border-strong)}
.srv-card:hover::before{transform:scaleX(1)}
.srv-icon{
  width:46px;height:46px;border-radius:9px;background:var(--surface-sunk);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;margin-bottom:17px;color:var(--brand);
}
:root[data-theme="dark"] .srv-icon{color:var(--g600)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .srv-icon{color:var(--g600)}}
.srv-icon svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.srv-card h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1.02rem;color:var(--text);margin-bottom:12px;line-height:1.3}
.srv-card ul{display:flex;flex-direction:column;gap:7px}
.srv-card li{
  position:relative;padding-left:17px;font-size:.855rem;color:var(--text-sub);line-height:1.6;
}
.srv-card li::before{
  content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:1px;
  background:var(--brand);transform:rotate(45deg);
}

/* ═══ SECTORES ═══ */
.sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.sector{
  position:relative;overflow:hidden;border-radius:12px;border:1px solid var(--border);
  background:var(--brand-900);min-height:330px;display:flex;align-items:flex-end;
  transition:box-shadow .2s,border-color .2s,transform .2s;
}
.sector:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-3px)}
.sector h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1rem;color:var(--text);margin-bottom:8px}
.sector p{font-size:.86rem;color:var(--text-sub);line-height:1.65}

/* ═══ EXPERIENCIA ═══ */
.exp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.exp{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:26px 26px 24px;
  transition:border-color .2s,box-shadow .2s;
}
.exp:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}
.exp-head{display:flex;align-items:center;gap:13px;margin-bottom:15px}
.exp-ico{
  width:38px;height:38px;border-radius:8px;background:var(--surface-sunk);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--brand);
}
:root[data-theme="dark"] .exp-ico{color:var(--g600)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .exp-ico{color:var(--g600)}}
.exp-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.exp h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:.98rem;color:var(--text);line-height:1.3}
.exp ul{display:flex;flex-direction:column;gap:8px}
.exp li{position:relative;padding-left:17px;font-size:.855rem;color:var(--text-sub);line-height:1.6}
.exp li::before{
  content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:1px;
  background:var(--brand);transform:rotate(45deg);
}

/* ═══ MARCAS Y SCADA ═══ */
.brands{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.brand{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:26px 24px;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.brand:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}
.brand-logo{
  height:40px;display:flex;align-items:center;margin-bottom:16px;
  border-radius:8px;transition:background var(--ease);
}
.brand-logo img{height:34px;width:auto;max-width:145px;object-fit:contain}
.brand-logo img.logo-tall{height:40px}

/* Misma razón que en la franja: placa clara en vez de filtro monocromo. */
:root[data-theme="dark"] .brand-logo{
  background:#FFFFFF;width:-moz-fit-content;width:fit-content;
  height:auto;min-height:40px;padding:6px 12px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .brand-logo{
    background:#FFFFFF;width:-moz-fit-content;width:fit-content;
    height:auto;min-height:40px;padding:6px 12px;
  }
}

.brand-name{
  font-family:"Montserrat",sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:-.01em;
  color:var(--text);
}
.brand-name small{
  display:block;font-family:"Inter",sans-serif;font-weight:600;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--g400);margin-top:3px;
}
.brand p{font-size:.855rem;color:var(--text-sub);line-height:1.65}
.brand-sep{height:1px;background:var(--border);margin:0 0 14px}

/* ═══ POR QUÉ REXIC ═══ */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:44px}
.pillar{
  background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:32px 28px;transition:box-shadow .2s,border-color .2s,background var(--ease);
}
.pillar:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}
.pillar-ico{color:var(--brand);margin-bottom:18px}
.pillar-ico svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pillar h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1.05rem;color:var(--text);margin-bottom:10px}
.pillar p{font-size:.89rem;color:var(--text-sub);line-height:1.75}
.quote{
  max-width:74ch;margin:0 auto;text-align:center;padding:0 20px;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:clamp(1.02rem,1.7vw,1.28rem);
  line-height:1.55;color:var(--text);
}
.quote::before,.quote::after{content:"\201C";color:var(--brand)}
.quote::after{content:"\201D"}

/* ═══ CONTACTO ═══ */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:start}
.contact-info > p{color:var(--text-sub);line-height:1.8;margin-bottom:26px}
.c-list{display:flex;flex-direction:column;gap:10px}
.c-row{display:flex;align-items:center;gap:13px;font-size:.93rem;color:var(--text-sub);text-decoration:none;transition:color .2s}
a.c-row:hover{color:var(--green-ink)}
.c-ico{
  width:36px;height:36px;border-radius:8px;background:var(--surface-sunk);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--brand);
}
:root[data-theme="dark"] .c-ico{color:var(--g600)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .c-ico{color:var(--g600)}}
.c-ico svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.c-promise{
  margin-top:26px;padding:20px 22px;background:var(--surface-sunk);border-radius:12px;
  border-left:3px solid var(--brand);font-size:.9rem;color:var(--text-sub);line-height:1.7;
}
form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.65rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--text-sub);
}
label .req{color:var(--brand)}
input,textarea{
  font-family:inherit;font-size:.94rem;color:var(--text);background:var(--surface);
  border:1.5px solid var(--border);border-radius:var(--r);padding:12px 14px;
  outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s,background var(--ease);width:100%;
}
input::placeholder,textarea::placeholder{color:var(--g400)}
input:focus,textarea:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px rgba(0,70,94,.12)}
:root[data-theme="dark"] input:focus,:root[data-theme="dark"] textarea:focus{
  border-color:var(--green);box-shadow:0 0 0 3px rgba(23,194,78,.14);
}
input:user-invalid,textarea:user-invalid{border-color:#D93025}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn-submit{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.77rem;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:var(--green);border:none;border-radius:var(--r);
  padding:14px 30px;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;
}
.btn-submit:hover{background:var(--green-600);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,159,54,.3)}
.btn-alt{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.77rem;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:#25D366;border:none;border-radius:var(--r);
  padding:14px 26px;cursor:pointer;display:inline-flex;align-items:center;gap:9px;
  transition:background .2s,transform .15s;
}
.btn-alt:hover{background:#1EBE5A;transform:translateY(-2px)}
.btn-alt svg{width:16px;height:16px;fill:currentColor}
.form-note{font-size:.8rem;color:var(--text-sub);margin-top:-4px}
.form-status{font-size:.88rem;color:var(--text-sub);font-weight:500;min-height:1.4em}

/* ═══ PIE ═══ */
footer{background:var(--brand-900);padding:56px 20px 26px}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;margin-bottom:42px}
.footer-brand img{height:32px;width:auto;margin-bottom:16px}
.footer-brand p{font-size:.88rem;color:rgba(255,255,255,.52);line-height:1.7;max-width:34ch;margin-bottom:14px}
.footer-col h3{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.64rem;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:16px;
}
.footer-col a,.footer-col p{
  display:block;font-size:.86rem;color:rgba(255,255,255,.62);text-decoration:none;
  margin-bottom:9px;line-height:1.6;transition:color .2s;
}
.footer-col a:hover{color:var(--green-bright)}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);padding-top:22px;max-width:var(--max);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
}
.footer-copy{font-size:.76rem;color:rgba(255,255,255,.34)}
.footer-mark{display:flex;align-items:center;gap:9px}
.footer-mark img{width:24px;height:24px}
.footer-mark span{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--on-brand-sub);
}

.wa-float{
  position:fixed;bottom:24px;right:24px;z-index:400;width:54px;height:54px;border-radius:50%;
  background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.45);text-decoration:none;transition:transform .2s,box-shadow .2s;
}
.wa-float:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(37,211,102,.6)}
.wa-float svg{width:27px;height:27px;fill:currentColor}

.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.shown{opacity:1;transform:none}


/* ═══════════════════════════════════════════════════════════
   COMPONENTES DE SITIO MULTIPÁGINA
   Agregados al pasar de una sola página larga a varias páginas.
   ═══════════════════════════════════════════════════════════ */

/* ── Tarjetas de servicio que además son enlace (resumen de portada) ──
   Centradas y con el icono como protagonista: sobre placa azul petróleo,
   que es lo que las separa visualmente de las tarjetas de la página Servicios. */
a.srv-card{text-decoration:none;text-align:center;align-items:center}
a.srv-card p{font-size:.875rem;color:var(--text-sub);line-height:1.6}
a.srv-card .srv-icon{
  width:58px;height:58px;border-radius:15px;margin-bottom:18px;
  background:var(--brand);border-color:transparent;color:var(--green-bright);
  transition:transform .25s,background var(--ease);
}
a.srv-card .srv-icon svg{width:27px;height:27px;stroke-width:1.7}
a.srv-card:hover .srv-icon{transform:scale(1.07)}
a.srv-card h3{font-size:1.06rem;margin-bottom:9px}
a.srv-card::after{
  content:"Ver alcance →";display:block;margin-top:15px;
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.67rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--green-ink);
  opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;
}
html[lang="en"] a.srv-card::after{content:"See scope →"}
a.srv-card:hover::after,a.srv-card:focus-visible::after{opacity:1;transform:none}
@media (hover:none){a.srv-card::after{opacity:1;transform:none}}

/* En oscuro el azul petróleo se confunde con el fondo de la tarjeta. */
:root[data-theme="dark"] a.srv-card .srv-icon{background:rgba(23,194,78,.13);color:var(--green-bright)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) a.srv-card .srv-icon{background:rgba(23,194,78,.13);color:var(--green-bright)}
}

/* ── Enlace activo del menú ── */
.nav-link[aria-current="page"],.nav-btn[aria-current="page"]{color:var(--text);background:var(--surface-sunk)}
.nav-link[aria-current="page"]::after,.nav-btn[aria-current="page"]::after{
  content:"";position:absolute;left:12px;right:12px;bottom:1px;height:2px;background:var(--brand);border-radius:2px;
}
.mobile > ul > li > a[aria-current="page"],.mobile summary[aria-current="page"]{color:var(--green-ink)}
.nav-link.is-active{color:var(--text)}

/* ── Selector de idioma ── */
.lang{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;flex-shrink:0}
.lang a{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-sub);text-decoration:none;padding:9px 11px;
  background:var(--surface-sunk);transition:background var(--ease),color var(--ease);
}
.lang a:hover{background:var(--g100);color:var(--text)}
.lang a[aria-current="true"]{background:var(--brand);color:#fff}
:root[data-theme="dark"] .lang a[aria-current="true"]{background:var(--green);color:#04131B}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .lang a[aria-current="true"]{background:var(--green);color:#04131B}
}
.mobile .lang{margin-top:14px;width:100%}
.mobile .lang a{flex:1;text-align:center;padding:13px}

/* ── Encabezado de página interior ── */
.pagehero{
  margin-top:var(--nav-h);background:var(--brand-900);position:relative;overflow:hidden;
  padding:60px 20px 54px;
}
.pagehero::after{
  content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(23,194,78,.16),transparent 68%);pointer-events:none;
}
.pagehero .wrap{position:relative;z-index:1}
.pagehero h1{font-size:clamp(1.85rem,3.6vw,2.9rem);margin-bottom:14px}
.pagehero .eyebrow{color:var(--on-brand-sub)}
.pagehero p{font-size:1.01rem;color:var(--on-brand-sub);line-height:1.75;max-width:66ch}

/* ── Miga de pan ── */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:18px;font-size:.78rem}
.crumbs a{color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s}
.crumbs a:hover{color:var(--green-bright)}
.crumbs span{color:rgba(255,255,255,.38)}
.crumbs .sep{color:rgba(255,255,255,.28)}

/* ── Buscador y filtro de servicios ── */
.filterbar{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:26px;
  padding:16px 18px;background:var(--surface-sunk);border:1px solid var(--border);border-radius:12px;
}
.search{position:relative;flex:1 1 260px;min-width:0}
.search svg{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;
  stroke:var(--g400);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;
}
.search input{padding-left:40px;padding-right:38px;background:var(--surface)}
.search-clear{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;
  border:none;background:var(--g100);color:var(--g600);cursor:pointer;display:none;
  align-items:center;justify-content:center;font-size:1rem;line-height:1;
}
.search-clear.on{display:flex}
.search-clear:hover{background:var(--g200);color:var(--text)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:.68rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--text-sub);background:var(--surface);
  border:1px solid var(--border);border-radius:100px;padding:8px 15px;cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.chip:hover{border-color:var(--border-strong);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
:root[data-theme="dark"] .chip[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#04131B}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .chip[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#04131B}
}
.filter-count{font-size:.82rem;color:var(--text-sub);margin-left:auto;white-space:nowrap}
.srv-card[hidden],.exp[hidden],.shot[hidden]{display:none!important}
.no-results{
  grid-column:1/-1;text-align:center;padding:46px 20px;color:var(--text-sub);
  background:var(--surface-sunk);border:1px dashed var(--border-strong);border-radius:12px;
}
.no-results strong{display:block;font-family:"Montserrat",sans-serif;color:var(--text);font-size:1.02rem;margin-bottom:6px}
.no-results[hidden]{display:none!important}
mark{background:rgba(23,194,78,.24);color:inherit;border-radius:3px;padding:0 2px}

/* ── Certificaciones y normas ── */
/* Cinco tarjetas en tres columnas dejan la última fila coja. Con flex,
   las dos sobrantes se centran y el hueco deja de leerse como un error. */
.norms{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.norms > .norm{flex:1 1 calc((100% - 32px) / 3);min-width:265px;max-width:calc((100% - 32px) / 3)}
.norm{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 24px 22px;
  display:flex;flex-direction:column;gap:10px;transition:border-color .2s,box-shadow .2s;
}
.norm:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}
.norm-tag{
  align-self:flex-start;font-family:"Montserrat",sans-serif;font-weight:700;font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brand);
  background:rgba(0,159,54,.10);border:1px solid rgba(0,159,54,.28);border-radius:100px;padding:5px 12px;
}
:root[data-theme="dark"] .norm-tag{background:rgba(23,194,78,.12);border-color:rgba(23,194,78,.32)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .norm-tag{background:rgba(23,194,78,.12);border-color:rgba(23,194,78,.32)}
}
.norm h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:.98rem;color:var(--text);line-height:1.35}
.norm p{font-size:.855rem;color:var(--text-sub);line-height:1.65}

/* ── Galería de proyectos ── */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.shot{
  position:relative;margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);
  background:var(--surface-sunk);cursor:zoom-in;aspect-ratio:4/3;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.shot:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.shot:hover img{transform:scale(1.04)}
.shot figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 16px 13px;
  background:linear-gradient(to top,rgba(0,28,39,.92),transparent);
  color:#fff;font-size:.82rem;line-height:1.45;font-weight:500;
}
.shot figcaption small{
  display:block;font-family:"Montserrat",sans-serif;font-weight:700;font-size:.68rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--on-brand-sub);margin-bottom:3px;
}
.shot.placeholder{cursor:default;display:flex;align-items:center;justify-content:center;border-style:dashed;border-color:var(--border-strong)}
.shot.placeholder span{font-size:.82rem;color:var(--g400);text-align:center;padding:0 18px;line-height:1.5}

/* Visor ampliado */
.lightbox{
  position:fixed;inset:0;z-index:500;background:rgba(2,12,17,.94);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.lightbox[hidden]{display:none!important}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;max-width:100%}
.lightbox img{max-width:100%;max-height:82vh;width:auto;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lightbox figcaption{color:#fff;text-align:center;margin-top:14px;font-size:.9rem;max-width:60ch}
.lb-btn{
  position:absolute;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.lb-btn:hover{background:rgba(255,255,255,.18)}
.lb-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lb-close{top:20px;right:20px}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}

/* ── Tarjetas de descarga ── */
.downloads{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.dl{
  display:flex;gap:18px;align-items:flex-start;text-decoration:none;
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.dl:hover{border-color:var(--green);box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.dl-ico{
  width:46px;height:46px;border-radius:9px;background:var(--surface-sunk);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--brand);
}
:root[data-theme="dark"] .dl-ico{color:var(--g600)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dl-ico{color:var(--g600)}}
.dl-ico svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dl h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1rem;color:var(--text);margin-bottom:5px}
.dl p{font-size:.855rem;color:var(--text-sub);line-height:1.6}
.dl-meta{
  display:inline-block;margin-top:9px;font-family:"Montserrat",sans-serif;font-weight:700;font-size:.66rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--brand);
}
.dl.disabled{opacity:.62;pointer-events:none;border-style:dashed}

/* ── Franja de llamada a la acción ── */
.cta-band{background:var(--brand-900);padding:56px 20px;position:relative;overflow:hidden}
.cta-band .wrap{
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;position:relative;z-index:1;
}
.cta-band h2{font-size:clamp(1.4rem,2.4vw,1.95rem);color:var(--on-brand);margin-bottom:8px}
.cta-band p{color:var(--on-brand-sub);font-size:.95rem;line-height:1.7;max-width:52ch}
.cta-band .hero-btns{margin-bottom:0}

/* ── Páginas legales ── */
.legal{max-width:78ch;margin:0 auto}
.legal h2{font-size:clamp(1.15rem,2vw,1.45rem);margin:40px 0 12px}
.legal h2:first-child{margin-top:0}
.legal h3{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1rem;color:var(--text);margin:24px 0 8px}
.legal p,.legal li{color:var(--text-sub);line-height:1.8;margin-bottom:13px}
.legal ul{margin:0 0 16px 0}
.legal li{position:relative;padding-left:19px}
.legal li::before{content:"";position:absolute;left:0;top:.68em;width:6px;height:6px;border-radius:1px;background:var(--brand);transform:rotate(45deg)}
.legal a{color:var(--green-ink);text-decoration:underline;text-underline-offset:2px}
.legal .updated{font-size:.82rem;color:var(--g400);border-top:1px solid var(--border);padding-top:16px;margin-top:34px}

/* ── Botón volver arriba ── */
.totop{
  position:fixed;bottom:88px;right:24px;z-index:390;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .25s,transform .25s,visibility .25s,background .2s;
}
.totop.on{opacity:1;visibility:visible;transform:none}
.totop:hover{background:var(--surface-sunk)}
.totop svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ── Formulario: privacidad, trampa antispam y avisos ── */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;align-items:flex-start;gap:11px}
.consent input[type="checkbox"]{width:19px;height:19px;flex-shrink:0;margin-top:2px;accent-color:var(--green);cursor:pointer}
.consent label{
  font-family:inherit;font-size:.84rem;font-weight:400;letter-spacing:0;text-transform:none;
  color:var(--text-sub);line-height:1.6;cursor:pointer;
}
.consent a{color:var(--green-ink);text-decoration:underline;text-underline-offset:2px}
.form-status{padding:0;border-radius:var(--r);transition:padding .2s,background .2s}
.form-status.ok{background:rgba(0,159,54,.10);border:1px solid rgba(0,159,54,.3);color:var(--green-ink);padding:13px 16px}
.form-status.err{background:rgba(217,48,37,.09);border:1px solid rgba(217,48,37,.32);color:#D93025;padding:13px 16px}
.btn-submit[disabled],.btn-alt[disabled]{opacity:.6;cursor:progress;transform:none}

/* ── Barra de acciones fija en celular ── */
.mobilebar{display:none}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   Orden: de pantalla grande a chica. La lectura en celular es
   prioridad: menos relleno, una sola columna y acciones a mano.
   ═══════════════════════════════════════════════════════════ */
@media (max-width:1180px){
  .nav-link,.nav-btn{padding:9px 9px;font-size:.7rem}
  .mega-inner{grid-template-columns:1fr 1fr 240px}
  .norms > .norm{flex-basis:calc((100% - 16px) / 2);max-width:calc((100% - 16px) / 2)}
}
@media (max-width:1000px){
  .hero{grid-template-columns:1fr}
  .hero-left{padding:54px 20px 48px}
  .hero-right{min-height:230px;max-height:290px}
  .hero-right::after{background:linear-gradient(to bottom,var(--brand-900) 0%,transparent 45%)}
  .about{grid-template-columns:1fr;gap:38px}
  .srv-grid{grid-template-columns:repeat(2,1fr)}
  .sectors{grid-template-columns:repeat(2,1fr)}
  .exp-grid{grid-template-columns:1fr}
  .brands{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .downloads{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr;gap:40px}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px}
  .cta-band .wrap{flex-direction:column;align-items:flex-start;gap:22px}
}

/* ── Tabletas y celulares: el menú pasa a hamburguesa ── */
@media (max-width:900px){
  .nav-links{display:none}
  .nav-right .btn-wa{display:none}
  .nav-right .lang{display:none}
  .nav-toggle{display:flex}
  .mega{display:none!important}
  .pillars{grid-template-columns:1fr}
  section{padding:54px 20px}
  .pagehero{padding:40px 20px 38px}
  .sec-head{margin-bottom:30px}
  .norms > .norm{flex-basis:100%;max-width:100%;min-width:0}

  /* La barra fija de abajo sustituye al botón flotante de WhatsApp */
  .wa-float{display:none}
  body{padding-bottom:64px}
  .mobilebar{
    position:fixed;left:0;right:0;bottom:0;z-index:400;display:grid;grid-template-columns:repeat(3,1fr);
    background:var(--surface);border-top:1px solid var(--border);
    box-shadow:0 -4px 20px rgba(0,50,68,.10);
    padding-bottom:env(safe-area-inset-bottom,0);
  }
  :root[data-theme="dark"] .mobilebar{box-shadow:0 -4px 20px rgba(0,0,0,.4)}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .mobilebar{box-shadow:0 -4px 20px rgba(0,0,0,.4)}
  }
  .mobilebar a{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:60px;padding:9px 6px;text-decoration:none;color:var(--text-sub);
    font-family:"Montserrat",sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.08em;
    text-transform:uppercase;border-right:1px solid var(--border);transition:background .2s,color .2s;
  }
  .mobilebar a:last-child{border-right:none}
  .mobilebar a:active{background:var(--surface-sunk)}
  .mobilebar svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .mobilebar .mb-wa{color:#1EBE5A}
  .mobilebar .mb-wa svg{fill:currentColor;stroke:none}
  .mobilebar .mb-cta{color:#fff;background:var(--green)}
  .mobilebar .mb-cta:active{background:var(--green-600)}
  .totop{bottom:78px;right:16px;width:42px;height:42px}
}

/* ── Celular ── */
@media (max-width:620px){
  .srv-grid{grid-template-columns:1fr}
  .sectors{grid-template-columns:1fr}
  .brands{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:26px}
  .hero-btns{flex-direction:column;align-items:stretch}
  .hero-btns a{text-align:center}
  .btn-submit,.btn-alt{width:100%;justify-content:center}

  section{padding:44px 16px}
  .pagehero{padding:32px 16px 32px}
  .hero-left{padding:42px 16px 40px}
  .hero-desc{font-size:.96rem;margin-bottom:26px}
  .hero-sectors{padding-top:20px;gap:7px}
  .hero-cifras{display:grid;grid-template-columns:1fr 1fr;gap:20px 0;padding-top:22px}
  .hero-cifras > div{padding:0 16px}
  .hero-cifras > div:nth-child(odd){padding-left:0;border-left:none}
  .hero-cifras strong{font-size:1.5rem}
  .sec-head{margin-bottom:26px}
  .sec-sub{font-size:.94rem}

  /* Tarjetas más compactas para que quepa más contenido sin tanto desplazamiento */
  .srv-card{padding:22px 20px}
  .exp{padding:22px 20px 20px}
  .brand{padding:22px 20px}
  .sector{padding:24px 20px}
  .pillar{padding:26px 22px}
  .fact{padding:18px 18px;gap:13px}
  .norm{padding:20px 20px 18px}
  .dl{padding:20px;gap:14px}
  .c-promise{padding:17px 18px}
  .filterbar{padding:13px 14px;gap:10px}
  .filter-count{margin-left:0;width:100%}

  /* La barra de marcas se ve ordenada en rejilla, no amontonada */
  .trust{padding:20px 16px}
  .trust .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 14px;justify-items:center}
  .trust-label{grid-column:1/-1;margin-bottom:0}
  .trust img{height:22px;max-width:100%}

  /* Términos técnicos largos (RX3I-SAMS, ILC 330 PN) no deben desbordar */
  .srv-card li,.exp li,.brand p,.norm p,.c-row,.legal li,.legal p{overflow-wrap:break-word}

  footer{padding:44px 16px 22px}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:14px}
  .lightbox{padding:14px}
  .lb-close{top:12px;right:12px}
  .lb-prev{left:8px}
  .lb-next{right:8px}
  .lb-btn{width:40px;height:40px}
  .lightbox img{max-height:70vh}
}

@media (max-width:380px){
  .nav-logo img{height:30px}
  h1{font-size:1.72rem}
  .mobilebar a{font-size:.57rem;letter-spacing:.05em}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .js .reveal{opacity:1;transform:none}
  .shot:hover img{transform:none}
}

/* ── Impresión: la ficha técnica sale limpia desde el navegador ── */
@media print{
  nav,.mega,.mobile,.wa-float,.mobilebar,.totop,.filterbar,.cta-band,.lightbox,.skip{display:none!important}
  body{padding-bottom:0;background:#fff;color:#000}
  .pagehero,.hero{margin-top:0;background:#fff}
  .pagehero h1,.hero h1,.pagehero p,.sec-brand h2,.sector h3,.sector p,.pillar h3,.pillar p,.quote{color:#000}
  .sec-brand,footer{background:#fff}
  section{padding:18px 0;break-inside:avoid}
  .srv-card,.exp,.brand,.norm{break-inside:avoid;border:1px solid #ccc;box-shadow:none}
  .footer-col a,.footer-brand p,.footer-copy{color:#333}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.7em;color:#555}
}

/* ═══════════════════════════════════════════════════════════
   AJUSTES PARA PANTALLA TÁCTIL
   Dos problemas que solo se ven en un teléfono real:
   1. iOS Safari amplía la página al tocar un campo con letra
      menor de 16px. El visitante queda con la página en zoom
      y tiene que alejarla a mano. 16px exactos lo evitan.
   2. Un dedo necesita más blanco que un puntero: los enlaces
      del pie y los filtros medían 21–31px de alto.
   ═══════════════════════════════════════════════════════════ */
@media (max-width:900px){
  input,textarea,select{font-size:16px}
}
@media (max-width:620px){
  .footer-col a{padding:7px 0;margin-bottom:1px}
  .chip{padding:11px 17px}
  .consent input[type="checkbox"]{width:22px;height:22px;margin-top:1px}
  .consent label{line-height:1.75}
  .c-row{padding:4px 0}
}


/* ── «Sectores» y «Por qué REXIC» sobre fondo claro ──
   El botón fantasma estaba pensado para fondo oscuro (texto y borde
   blancos): sobre claro desaparecía. Y los iconos en azul petróleo se
   perderían en el tema oscuro, así que ahí pasan a gris de apoyo. */
.sec-brand .btn-ghost{color:var(--brand);border-color:var(--border-strong)}
.sec-brand .btn-ghost:hover{color:var(--brand);border-color:var(--brand);background:var(--surface)}
:root[data-theme="dark"] .sec-brand .btn-ghost{color:var(--text);border-color:var(--border-strong)}
:root[data-theme="dark"] .pillar-ico{color:var(--g600)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .sec-brand .btn-ghost{color:var(--text);border-color:var(--border-strong)}
  :root:not([data-theme="light"]) .pillar-ico{color:var(--g600)}
}


/* ── El verde queda reservado a botones y enlaces ──
   Todo lo decorativo (antetítulos, viñetas, barras, iconos, comillas)
   pasa a azul petróleo. Sobre fondo oscuro ese azul sería invisible,
   así que ahí se sustituye por el gris azulado de apoyo. */
:root[data-theme="dark"] .eyebrow,
:root[data-theme="dark"] .sec-brand .eyebrow,
:root[data-theme="dark"] .norm-tag,
:root[data-theme="dark"] .dl-meta,
:root[data-theme="dark"] .quote::before,
:root[data-theme="dark"] .quote::after,
:root[data-theme="dark"] label .req{color:var(--g600)}
:root[data-theme="dark"] .mega a svg{stroke:var(--g600)}
:root[data-theme="dark"] .srv-card::before,
:root[data-theme="dark"] .exp li::before,
:root[data-theme="dark"] .srv-card li::before,
:root[data-theme="dark"] .legal li::before,
:root[data-theme="dark"] .mega-side li::before,
:root[data-theme="dark"] .nav-link[aria-current="page"]::after{background:var(--g600)}
:root[data-theme="dark"] .about-purpose,
:root[data-theme="dark"] .c-promise{border-left-color:var(--g600)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .eyebrow,
  :root:not([data-theme="light"]) .sec-brand .eyebrow,
  :root:not([data-theme="light"]) .norm-tag,
  :root:not([data-theme="light"]) .dl-meta,
  :root:not([data-theme="light"]) .quote::before,
  :root:not([data-theme="light"]) .quote::after,
  :root:not([data-theme="light"]) label .req{color:var(--g600)}
  :root:not([data-theme="light"]) .mega a svg{stroke:var(--g600)}
  :root:not([data-theme="light"]) .srv-card::before,
  :root:not([data-theme="light"]) .exp li::before,
  :root:not([data-theme="light"]) .srv-card li::before,
  :root:not([data-theme="light"]) .legal li::before,
  :root:not([data-theme="light"]) .mega-side li::before,
  :root:not([data-theme="light"]) .nav-link[aria-current="page"]::after{background:var(--g600)}
  :root:not([data-theme="light"]) .about-purpose,
  :root:not([data-theme="light"]) .c-promise{border-left-color:var(--g600)}
}


/* ── Palabra que rota en la banda de contacto ──
   Rota solo el sustantivo, no la frase entera: el lector siempre tiene
   una oración completa delante, y así da igual en qué segundo llegue.
   El ancho lo fija el guion con la opción más larga, para que el punto
   final no dé saltos en cada cambio. */
.cta-frase .rota{
  display:inline-block;color:var(--on-brand);font-weight:600;
  transition:opacity .3s ease,transform .3s ease;
}
.cta-frase .rota.saliendo{opacity:0;transform:translateY(-5px)}
@media (prefers-reduced-motion: reduce){
  .cta-frase .rota{transition:none}
}


/* ── Tarjetas de sector con fotografía ──
   La foto va como <img> y no como background-image, para poder cargarla
   en diferido y declararle medidas: así no hay salto de maquetación.
   Encima, un degradado que oscurece de abajo arriba, que es donde cae
   el texto; arriba se deja ver la imagen. */
.sector-foto{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.sector::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,
    rgba(4,18,28,.92) 0%, rgba(4,18,28,.74) 40%,
    rgba(4,18,28,.36) 70%, rgba(4,18,28,.10) 100%);
}
.sector-cuerpo{position:relative;z-index:1;padding:26px 24px}
.sector:hover .sector-foto{transform:scale(1.05)}
.sector h3{color:#fff}
.sector p{color:rgba(255,255,255,.78)}
@media (prefers-reduced-motion: reduce){
  .sector-foto,.sector:hover .sector-foto{transition:none;transform:none}
}
@media (max-width:620px){
  .sector{min-height:260px}
}

/* ── Banner por sector en la página de Sectores ──
   Aquí la foto va ancha y no recortada en vertical como en las tarjetas
   de la portada: los originales son muy apaisados y así se ve la escena
   casi completa. El titular va encima, sobre el degradado. */
.sector-hero{
  position:relative;overflow:hidden;border-radius:14px;
  height:clamp(200px,26vw,320px);display:flex;align-items:flex-end;
  margin-bottom:26px;background:var(--brand-900);
}
.sector-hero-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sector-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,
    rgba(4,18,28,.90) 0%, rgba(4,18,28,.48) 50%, rgba(4,18,28,.06) 100%);
}
.sector-hero-txt{position:relative;z-index:1;padding:26px 30px}
.sector-hero-txt .eyebrow{color:rgba(255,255,255,.72);margin-bottom:9px}
.sector-hero-txt h2{color:#fff;margin-bottom:0}
.sector-hero + .sec-head{margin-bottom:40px}
@media (max-width:620px){
  .sector-hero{height:170px;border-radius:12px;margin-bottom:20px}
  .sector-hero-txt{padding:20px 18px}
}



/* ── Listas dentro de las tarjetas de «Sobre nosotros» ──
   Antes eran una línea de texto con puntos medios de separación; en
   lista se leen de un vistazo y cada elemento se distingue solo. */
.fact ul{display:flex;flex-direction:column;gap:5px;margin-top:7px}
.fact li{
  position:relative;padding-left:15px;font-size:.85rem;
  color:var(--text-sub);line-height:1.55;
}
.fact li::before{
  content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  border-radius:1px;background:var(--brand);transform:rotate(45deg);
}
:root[data-theme="dark"] .fact li::before{background:var(--g600)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .fact li::before{background:var(--g600)}
}
