
  :root{
    --paper:#eef1f0;
    --paper-raised:#e2e7e5;
    --ink:#151a1e;
    --ink-soft:#4b565c;
    --line:rgba(21,26,30,0.14);
    --line-strong:rgba(21,26,30,0.28);
    --accent:#c8531c;
    --accent-ink:#fff6ef;
    --accent-soft:rgba(200,83,28,0.12);
    --card:#f7f8f6;
    --shadow: 0 1px 0 rgba(21,26,30,0.06);
    --focus:#1f6fb2;
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#12161a;
      --paper-raised:#181d22;
      --ink:#eef1ee;
      --ink-soft:#a7b0b3;
      --line:rgba(238,241,238,0.14);
      --line-strong:rgba(238,241,238,0.28);
      --accent:#e8783a;
      --accent-ink:#1a1005;
      --accent-soft:rgba(232,120,58,0.16);
      --card:#171c20;
      --shadow: 0 1px 0 rgba(0,0,0,0.4);
      --focus:#6cb4ec;
    }
  }
  :root[data-theme="dark"]{
    --paper:#12161a;
    --paper-raised:#181d22;
    --ink:#eef1ee;
    --ink-soft:#a7b0b3;
    --line:rgba(238,241,238,0.14);
    --line-strong:rgba(238,241,238,0.28);
    --accent:#e8783a;
    --accent-ink:#1a1005;
    --accent-soft:rgba(232,120,58,0.16);
    --card:#171c20;
    --shadow: 0 1px 0 rgba(0,0,0,0.4);
    --focus:#6cb4ec;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  a{color:inherit;}
  img{max-width:100%;}

  h1,h2,h3{
    font-family:'Barlow Semi Condensed', 'Public Sans', sans-serif;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.01em;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }

  .mono{
    font-family:'IBM Plex Mono', ui-monospace, monospace;
    letter-spacing:0.06em;
  }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--accent);
    display:flex;
    align-items:center;
    gap:0.6em;
    margin:0 0 1rem 0;
  }
  .eyebrow::before{
    content:"";
    width:0.55em;
    height:0.55em;
    background:var(--accent);
    display:inline-block;
    border-radius:1px;
    transform:rotate(45deg);
    flex:none;
  }

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(1.25rem, 4vw, 3rem);
  }

  /* ---------- header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:1.05rem clamp(1.25rem, 4vw, 3rem);
    max-width:1180px;
    margin:0 auto;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:0.6rem;
    font-family:'Barlow Semi Condensed', sans-serif;
    font-weight:800;
    font-size:1.15rem;
    text-transform:uppercase;
    letter-spacing:0.04em;
    text-decoration:none;
  }
  .brand-mark{
    width:1.6rem;
    height:1.6rem;
    border:2px solid var(--ink);
    position:relative;
    flex:none;
  }
  .brand-mark::after{
    content:"";
    position:absolute;
    inset:3px;
    background:var(--accent);
  }
  nav.primary-nav{
    display:flex;
    align-items:center;
    gap:clamp(0.9rem, 2vw, 1.8rem);
  }
  nav.primary-nav a{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--ink-soft);
    padding:0.3rem 0;
    border-bottom:1px solid transparent;
    transition:color 150ms ease, border-color 150ms ease;
  }
  nav.primary-nav a:hover, nav.primary-nav a:focus-visible{
    color:var(--ink);
    border-color:var(--accent);
  }
  .nav-cta{
    background:var(--ink) !important;
    color:var(--paper) !important;
    padding:0.55rem 1rem !important;
    border-radius:2px;
  }
  .nav-cta:hover{ background:var(--accent) !important; color:var(--accent-ink) !important; }

  .menu-btn{
    display:none;
    background:none;
    border:1px solid var(--line-strong);
    color:var(--ink);
    width:2.4rem;
    height:2.4rem;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .menu-btn span, .menu-btn span::before, .menu-btn span::after{
    display:block;
    width:1.1rem;
    height:2px;
    background:var(--ink);
    position:relative;
    transition:transform 200ms ease, opacity 200ms ease;
  }
  .menu-btn span::before, .menu-btn span::after{ content:""; position:absolute; }
  .menu-btn span::before{ top:-6px; }
  .menu-btn span::after{ top:6px; }
  .menu-open .menu-btn span{ background:transparent; }
  .menu-open .menu-btn span::before{ transform:translateY(6px) rotate(45deg); }
  .menu-open .menu-btn span::after{ transform:translateY(-6px) rotate(-45deg); }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--focus);
    outline-offset:2px;
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding:clamp(4rem,10vw,7rem) 0 clamp(3rem,6vw,4.5rem);
    overflow:hidden;
    isolation:isolate;
  }
  .hero-photo{
    position:absolute;
    inset:0;
    z-index:0;
    background-size:cover;
    background-position:center 38%;
    filter:saturate(0.88) contrast(1.05);
  }
  .hero-photo::after{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg, rgba(15,12,10,0.78) 0%, rgba(15,12,10,0.62) 45%, rgba(15,12,10,0.88) 100%),
      linear-gradient(var(--line-strong) 1px, transparent 1px),
      linear-gradient(90deg, var(--line-strong) 1px, transparent 1px);
    background-size:100% 100%, 56px 56px, 56px 56px;
    mix-blend-mode:normal;
  }
  .hero-content{
    position:relative;
    z-index:1;
  }
  .hero h1{
    font-size:clamp(2.4rem, 5.4vw, 4.2rem);
    line-height:1.04;
    max-width:16ch;
    color:#f5f2ec;
  }
  .hero-sub{
    margin-top:1.5rem;
    max-width:56ch;
    font-size:1.08rem;
    color:rgba(245,242,236,0.82);
  }
  .hero .eyebrow{ color:#f0a06a; }
  .hero .eyebrow::before{ background:#f0a06a; }
  .hero .btn-solid{ background:var(--accent); border-color:var(--accent); color:#1a1005; }
  .hero .btn-solid:hover{ background:#fff; border-color:#fff; color:#151a1e; }
  .hero .btn-ghost{ border-color:rgba(245,242,236,0.4); color:#f5f2ec; }
  .hero .btn-ghost:hover{ border-color:#f5f2ec; }
  .hero-tags{ border-top-color:rgba(245,242,236,0.22); }
  .hero-tag{ color:rgba(245,242,236,0.7); }
  .hero-tag b{ color:#f5f2ec; }
  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:0.9rem;
    margin-top:2.2rem;
  }
  .btn{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    text-decoration:none;
    padding:0.85rem 1.4rem;
    border-radius:2px;
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    transition:transform 150ms ease, background 150ms ease, color 150ms ease, border-color 150ms ease;
  }
  .btn-solid{
    background:var(--ink);
    color:var(--paper);
    border:1px solid var(--ink);
  }
  .btn-solid:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); transform:translateY(-1px); }
  .btn-ghost{
    background:transparent;
    color:var(--ink);
    border:1px solid var(--line-strong);
  }
  .btn-ghost:hover{ border-color:var(--ink); transform:translateY(-1px); }

  .hero-tags{
    margin-top:3rem;
    display:flex;
    flex-wrap:wrap;
    gap:0.75rem 1.75rem;
    padding-top:1.5rem;
    border-top:1px solid var(--line);
  }
  .hero-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:flex;
    align-items:center;
    gap:0.5em;
  }
  .hero-tag b{ color:var(--ink); font-weight:600; }
  .hero-tag::before{
    content:"";
    width:6px;height:6px;
    background:var(--accent);
    display:inline-block;
  }

  /* ---------- generic section ---------- */
  section{
    padding:clamp(3.5rem, 7vw, 6rem) 0;
    border-top:1px solid var(--line);
  }
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:2rem;
    flex-wrap:wrap;
    margin-bottom:clamp(2rem, 5vw, 3rem);
  }
  .section-head h2{
    font-size:clamp(1.7rem, 3.4vw, 2.4rem);
  }
  .section-code{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.75rem;
    letter-spacing:0.1em;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  .lede{
    max-width:62ch;
    color:var(--ink-soft);
    font-size:1.05rem;
  }

  .reveal{
    opacity:0;
    transform:translateY(14px);
    transition:opacity 500ms ease, transform 500ms ease;
  }
  .reveal.is-visible{ opacity:1; transform:none; }

  /* ---------- el grupo: nameplates ---------- */
  .nameplates{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.5rem;
    margin-top:2.5rem;
  }
  .nameplate{
    background:var(--card);
    border:1px solid var(--line);
    padding:1.9rem;
    position:relative;
  }
  .nameplate::before{
    content:"";
    position:absolute;
    top:0.9rem; left:0.9rem; right:0.9rem; bottom:0.9rem;
    border:1px solid var(--line);
    pointer-events:none;
  }
  .nameplate-loc{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--accent);
  }
  .nameplate h3{
    margin-top:0.6rem;
    font-size:1.5rem;
  }
  .nameplate p{
    margin-top:0.9rem;
    color:var(--ink-soft);
    font-size:0.96rem;
  }

  /* ---------- brand grid ---------- */
  .brand-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:2rem;
  }
  .brand-tile{
    background:var(--card);
    padding:1.8rem 1.4rem;
    display:flex;
    flex-direction:column;
    gap:0.6rem;
    min-height:110px;
    justify-content:center;
    transition:background 150ms ease;
  }
  .brand-tile:hover{ background:var(--accent-soft); }
  .brand-tile .ref{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--ink-soft);
    letter-spacing:0.1em;
  }
  .brand-tile .name{
    font-family:'Barlow Semi Condensed', sans-serif;
    font-weight:700;
    font-size:1.35rem;
    text-transform:uppercase;
    letter-spacing:0.02em;
  }
  .brand-tile--active{ cursor:pointer; }
  .brand-tile--active:hover{ background:var(--accent-soft); }
  .brand-tile--active:focus-visible{ outline:2px solid var(--focus); outline-offset:-2px; }
  .brand-tile .cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.04em;
    color:var(--accent);
    opacity:0;
    transform:translateY(-2px);
    transition:opacity 150ms ease, transform 150ms ease;
  }
  .brand-tile--active:hover .cta,
  .brand-tile--active:focus-visible .cta{ opacity:1; transform:translateY(0); }
  .catalog-note{
    margin-top:1.75rem;
    display:flex;
    align-items:center;
    gap:0.8rem;
    font-size:0.92rem;
    color:var(--ink-soft);
    padding:1rem 1.2rem;
    border-left:2px solid var(--accent);
    background:var(--paper-raised);
  }

  /* ---------- contact-only sectors ---------- */
  .sector-block{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:clamp(2rem,4vw,3.5rem);
    align-items:stretch;
  }
  .sector-text{
    display:flex;
    flex-direction:column;
    gap:1.75rem;
  }
  .photo-panel{
    position:relative;
    min-height:280px;
    border:1px solid var(--line);
    background-size:cover;
    background-position:center;
    filter:saturate(0.9) contrast(1.04);
  }
  .photo-panel::after{
    content:"";
    position:absolute; inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(15,12,10,0) 40%, rgba(15,12,10,0.68) 100%);
  }
  .photo-tag{
    position:absolute; left:1.1rem; bottom:1.1rem; z-index:2;
    font-family:'IBM Plex Mono',monospace;
    font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
    color:#f5f2ec;
    display:flex; align-items:center; gap:0.5em;
    margin:0;
  }
  .photo-tag::before{ content:""; width:6px; height:6px; background:var(--accent); display:inline-block; flex:none; }
  .contact-card{
    background:var(--card);
    border:1px solid var(--line);
    padding:1.9rem;
  }
  .contact-card .eyebrow{ margin-bottom:1.2rem; }
  .contact-row{
    display:flex;
    align-items:center;
    gap:0.9rem;
    padding:0.85rem 0;
    border-top:1px solid var(--line);
    text-decoration:none;
    color:var(--ink);
  }
  .contact-row:first-of-type{ border-top:none; }
  .contact-row .ico{
    width:2.1rem; height:2.1rem;
    border:1px solid var(--line-strong);
    display:flex; align-items:center; justify-content:center;
    flex:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.75rem;
  }
  .contact-row .label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.66rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:block;
  }
  .contact-row .value{
    font-weight:600;
    font-size:1.02rem;
  }
  .contact-row:hover .value{ color:var(--accent); }

  /* ---------- footer ---------- */
  footer{
    border-top:1px solid var(--line);
    padding:clamp(2.5rem,5vw,3.5rem) 0 2rem;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:2.5rem;
  }
  footer h4{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin:0 0 1rem 0;
  }
  footer p, footer a{
    font-size:0.92rem;
    color:var(--ink-soft);
    text-decoration:none;
    line-height:1.8;
  }
  footer a:hover{ color:var(--accent); }
  .footer-bottom{
    margin-top:2.5rem;
    padding-top:1.5rem;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0.8rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.06em;
    color:var(--ink-soft);
  }

  @media (max-width: 860px){
    .nameplates{ grid-template-columns:1fr; }
    .brand-grid{ grid-template-columns:repeat(2, 1fr); }
    .sector-block{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }

  @media (max-width: 700px){
    nav.primary-nav{
      position:fixed;
      inset:64px 0 auto 0;
      background:var(--paper);
      border-bottom:1px solid var(--line);
      flex-direction:column;
      align-items:flex-start;
      padding:1rem clamp(1.25rem, 4vw, 3rem) 1.5rem;
      gap:0.2rem;
      transform:translateY(-8px);
      opacity:0;
      pointer-events:none;
      transition:opacity 180ms ease, transform 180ms ease;
    }
    nav.primary-nav a{ padding:0.7rem 0; width:100%; }
    .menu-open nav.primary-nav{
      transform:translateY(0);
      opacity:1;
      pointer-events:auto;
    }
    .menu-btn{ display:flex; }
    .brand-grid{ grid-template-columns:1fr 1fr; }
    .footer-grid{ grid-template-columns:1fr; gap:1.75rem; }
  }

/* ---- chat ---- */
  #ibx-chat-root{ font-family:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
  #ibx-chat-root *{ box-sizing:border-box; }

  #ibx-chat-toggle{
    position:fixed;
    right:clamp(1rem, 3vw, 1.75rem);
    bottom:calc(clamp(1rem, 3vw, 1.75rem) + 4.75rem);
    z-index:999999999;
    width:3.6rem;
    height:3.6rem;
    border-radius:2px;
    background:var(--ink);
    color:var(--paper);
    border:1px solid var(--line-strong);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 4px 18px rgba(21,26,30,0.25);
    transition:background 0.15s ease, transform 0.15s ease;
  }
  #ibx-chat-toggle:hover{ background:var(--accent); color:var(--accent-ink); transform:translateY(-1px); }
  #ibx-chat-toggle svg{ width:1.5rem; height:1.5rem; }
  #ibx-chat-toggle .ibx-close-icon{ display:none; }
  #ibx-chat-root.ibx-open #ibx-chat-toggle .ibx-open-icon{ display:none; }
  #ibx-chat-root.ibx-open #ibx-chat-toggle .ibx-close-icon{ display:block; }

  #ibx-chat-panel{
    position:fixed;
    right:clamp(1rem, 3vw, 1.75rem);
    bottom:calc(clamp(1rem, 3vw, 1.75rem) + 4.75rem + 4.4rem);
    z-index:999999999;
    width:min(23rem, calc(100vw - 2rem));
    height:min(32rem, calc(100vh - 8rem));
    background:var(--card);
    border:1px solid var(--line-strong);
    border-radius:2px;
    box-shadow:0 12px 40px rgba(21,26,30,0.28);
    display:none;
    flex-direction:column;
    overflow:hidden;
  }
  #ibx-chat-root.ibx-open #ibx-chat-panel{ display:flex; }

  #ibx-chat-header{
    background:var(--ink);
    color:var(--paper);
    padding:0.9rem 1.1rem;
    flex:none;
  }
  #ibx-chat-header .ibx-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.66rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:#f0a06a;
    display:flex;
    align-items:center;
    gap:0.6em;
    margin:0 0 0.3rem 0;
  }
  #ibx-chat-header .ibx-eyebrow::before{
    content:"";
    width:0.5em;
    height:0.5em;
    background:#f0a06a;
    display:inline-block;
    border-radius:1px;
    transform:rotate(45deg);
    flex:none;
  }
  #ibx-chat-header h3{
    font-family:'Barlow Semi Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    font-size:1.1rem;
    margin:0;
    font-weight:600;
  }

  #ibx-chat-body{
    flex:1 1 auto;
    overflow-y:auto;
    padding:1rem;
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    background:var(--paper);
  }

  .ibx-msg{
    max-width:88%;
    padding:0.6rem 0.8rem;
    border-radius:2px;
    font-size:0.88rem;
    line-height:1.45;
    white-space:pre-wrap;
  }
  .ibx-msg-bot{
    align-self:flex-start;
    background:var(--card);
    border:1px solid var(--line);
    color:var(--ink);
  }
  .ibx-msg-user{
    align-self:flex-end;
    background:var(--accent);
    color:var(--accent-ink);
    border:1px solid var(--accent);
  }

  .ibx-quick-replies{
    display:flex;
    flex-wrap:wrap;
    gap:0.4rem;
    align-self:flex-start;
    max-width:100%;
  }
  .ibx-quick-btn{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.02em;
    padding:0.45rem 0.7rem;
    border-radius:2px;
    border:1px solid var(--line-strong);
    background:transparent;
    color:var(--ink);
    cursor:pointer;
    transition:border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
  }
  .ibx-quick-btn:hover{ border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }

  #ibx-chat-footer{
    flex:none;
    padding:0.7rem;
    border-top:1px solid var(--line);
    background:var(--card);
  }
  #ibx-chat-form{
    display:flex;
    gap:0.4rem;
    margin-bottom:0.5rem;
  }
  #ibx-chat-input{
    flex:1 1 auto;
    min-width:0;
    font-family:'Public Sans', sans-serif;
    font-size:0.85rem;
    padding:0.55rem 0.7rem;
    border-radius:2px;
    border:1px solid var(--line-strong);
    background:var(--paper);
    color:var(--ink);
  }
  #ibx-chat-input:focus{ outline:2px solid var(--focus); outline-offset:1px; }
  #ibx-chat-send{
    flex:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.02em;
    text-transform:uppercase;
    padding:0 0.9rem;
    border-radius:2px;
    border:1px solid var(--ink);
    background:var(--ink);
    color:var(--paper);
    cursor:pointer;
    transition:background 0.15s ease, color 0.15s ease;
  }
  #ibx-chat-send:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
  #ibx-chat-footer .ibx-hint{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--ink-soft);
    letter-spacing:0.02em;
    text-align:center;
  }

  @media (prefers-reduced-motion: reduce){
    #ibx-chat-toggle, .ibx-quick-btn{ transition:none; }
  }

/* ---- catálogo ---- */
  #ibx-catalog-root *{ box-sizing:border-box; }

  #ibx-catalog-overlay{
    position:fixed;
    inset:0;
    z-index:9999;
    background:rgba(10,12,14,0.6);
    display:none;
    align-items:center;
    justify-content:center;
    padding:1.25rem;
  }
  #ibx-catalog-root.ibx-catalog-open #ibx-catalog-overlay{ display:flex; }

  #ibx-catalog-panel{
    background:var(--card);
    border:1px solid var(--line-strong);
    border-radius:2px;
    box-shadow:0 20px 60px rgba(0,0,0,0.4);
    width:min(38rem, 100%);
    max-height:min(34rem, 85vh);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    font-family:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }

  #ibx-catalog-head{
    padding:1.4rem 1.6rem 1.2rem;
    border-bottom:1px solid var(--line);
    flex:none;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
  }
  #ibx-catalog-head .ibx-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--accent);
    display:flex;
    align-items:center;
    gap:0.6em;
    margin:0 0 0.4rem 0;
  }
  #ibx-catalog-head .ibx-eyebrow::before{
    content:"";
    width:0.5em;
    height:0.5em;
    background:var(--accent);
    display:inline-block;
    border-radius:1px;
    transform:rotate(45deg);
    flex:none;
  }
  #ibx-catalog-head h3{
    font-family:'Barlow Semi Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    font-size:1.5rem;
    font-weight:700;
    margin:0;
    color:var(--ink);
  }
  #ibx-catalog-close{
    flex:none;
    width:2.2rem;
    height:2.2rem;
    display:flex;
    align-items:center;
    justify-content:center;
    background:transparent;
    border:1px solid var(--line-strong);
    border-radius:2px;
    color:var(--ink);
    cursor:pointer;
    transition:background 150ms ease, color 150ms ease;
  }
  #ibx-catalog-close:hover{ background:var(--ink); color:var(--paper); }
  #ibx-catalog-close svg{ width:1rem; height:1rem; }

  #ibx-catalog-body{
    flex:1 1 auto;
    overflow-y:auto;
    padding:0.4rem 1.6rem;
  }
  .ibx-catalog-item{
    display:flex;
    align-items:baseline;
    gap:1rem;
    padding:0.85rem 0;
    border-bottom:1px solid var(--line);
  }
  .ibx-catalog-item:last-child{ border-bottom:none; }
  .ibx-catalog-item .ref{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--ink-soft);
    letter-spacing:0.08em;
    flex:none;
    min-width:3.2em;
  }
  .ibx-catalog-item .label{
    font-size:0.94rem;
    color:var(--ink);
    line-height:1.4;
  }

  #ibx-catalog-foot{
    flex:none;
    padding:1rem 1.6rem 1.3rem;
    border-top:1px solid var(--line);
    background:var(--paper);
  }
  #ibx-catalog-foot p{
    margin:0;
    font-size:0.82rem;
    color:var(--ink-soft);
    line-height:1.5;
  }
  #ibx-catalog-foot a{ color:var(--accent); text-decoration:none; }
  #ibx-catalog-foot a:hover{ text-decoration:underline; }

  @media (prefers-reduced-motion: reduce){
    .brand-tile .cta{ transition:none; }
  }


/* =========================================================
   Añadidos v2: accesos, páginas de actividad, formularios, legal
   ========================================================= */

/* Insignia de Netlify: fuera */
#nl-badge-frame{display:none!important}

nav.primary-nav a[aria-current="page"]{ color:var(--ink); border-color:var(--accent); }

/* ---------- portada: tres accesos ---------- */
.hero--home{ padding-bottom:clamp(2.5rem,5vw,3.5rem); }
.access{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2.4rem;
}
.access-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0.55rem;
  padding:1.35rem 1.35rem 1.2rem;
  text-decoration:none;
  color:#f5f2ec;
  background:rgba(15,12,10,0.55);
  border:1px solid rgba(245,242,236,0.24);
  border-radius:2px;
  backdrop-filter:blur(4px);
  transition:background 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.access-card:hover, .access-card:focus-visible{
  background:rgba(200,83,28,0.28);
  border-color:#f0a06a;
  transform:translateY(-2px);
}
.access-num{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.14em;
  color:#f0a06a;
}
.access-card h2{
  font-size:clamp(1.25rem,2vw,1.5rem);
  color:#f5f2ec;
  line-height:1.1;
}
.access-card p{
  margin:0;
  font-size:0.92rem;
  line-height:1.5;
  color:rgba(245,242,236,0.78);
}
.access-go{
  margin-top:auto;
  padding-top:0.6rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:#f5f2ec;
}
.access-card:hover .access-go{ color:#f0a06a; }

/* ---------- franja de datos ---------- */
.facts{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.fact{
  background:var(--card);
  padding:1.3rem 1.3rem 1.2rem;
}
.fact .k{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
  display:block;
  margin-bottom:0.35rem;
}
.fact .v{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:700;
  font-size:1.2rem;
  text-transform:uppercase;
  line-height:1.15;
}
.section-tight{ padding:clamp(2rem,4vw,2.75rem) 0; }

.nameplate .legal-line{
  margin-top:1rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.04em;
  color:var(--ink-soft);
}

.more-link{
  display:inline-flex;
  margin-top:1.75rem;
}

/* ---------- cabecera de página de actividad ---------- */
.page-hero{
  position:relative;
  padding:clamp(3.5rem,8vw,5.5rem) 0 clamp(2.5rem,5vw,3.5rem);
  overflow:hidden;
  isolation:isolate;
  border-top:none;
}
.page-hero h1{
  font-size:clamp(2.1rem,4.6vw,3.6rem);
  line-height:1.04;
  max-width:18ch;
  color:#f5f2ec;
}
.crumbs{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(245,242,236,0.66);
  margin:0 0 1.4rem;
}
.crumbs a{ color:rgba(245,242,236,0.86); text-decoration:none; }
.crumbs a:hover{ color:#f0a06a; }
.page-hero .hero-sub{ max-width:60ch; }
.page-hero .eyebrow{ color:#f0a06a; }
.page-hero .eyebrow::before{ background:#f0a06a; }
.page-hero .btn-solid{ background:var(--accent); border-color:var(--accent); color:#1a1005; }
.page-hero .btn-solid:hover{ background:#fff; border-color:#fff; color:#151a1e; }
.page-hero .btn-ghost{ border-color:rgba(245,242,236,0.4); color:#f5f2ec; }
.page-hero .btn-ghost:hover{ border-color:#f5f2ec; }

/* ---------- servicios ---------- */
.services{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.service{
  background:var(--card);
  padding:1.6rem 1.5rem;
}
.service .ref{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.12em;
  color:var(--accent);
}
.service h3{
  font-size:1.2rem;
  margin-top:0.55rem;
  line-height:1.15;
}
.service p{
  margin:0.6rem 0 0;
  color:var(--ink-soft);
  font-size:0.95rem;
}

/* ---------- zona de trabajo ---------- */
.zone{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.zone > div{ background:var(--card); padding:1.6rem 1.5rem; }
.zone .k{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
}
.zone .v{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.4rem,2.6vw,1.9rem);
  line-height:1.1;
  margin-top:0.4rem;
}
.zone p{ margin:0.6rem 0 0; color:var(--ink-soft); font-size:0.95rem; }

/* ---------- formularios ---------- */
.form-layout{
  display:grid;
  grid-template-columns:1.35fr 0.85fr;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:start;
}
.ibx-form{
  background:var(--card);
  border:1px solid var(--line);
  padding:clamp(1.3rem,3vw,2rem);
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem 1.1rem;
}
.field{ display:flex; flex-direction:column; gap:0.35rem; min-width:0; }
.field.full{ grid-column:1 / -1; }
.field label, .field .lbl{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.field label .opt{ text-transform:none; letter-spacing:0; opacity:0.8; }
.field input, .field select, .field textarea{
  font:inherit;
  font-size:1rem;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--line-strong);
  border-radius:2px;
  padding:0.7rem 0.8rem;
  width:100%;
  min-width:0;
}
.field textarea{ min-height:8rem; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:2px solid var(--focus);
  outline-offset:1px;
  border-color:transparent;
}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"], .field select[aria-invalid="true"]{
  border-color:#c0392b;
}
.check{
  grid-column:1 / -1;
  display:flex;
  gap:0.6rem;
  align-items:flex-start;
  font-size:0.88rem;
  color:var(--ink-soft);
  line-height:1.45;
}
.check input{ margin-top:0.2rem; width:1.05rem; height:1.05rem; flex:none; accent-color:var(--accent); }
.check a{ color:var(--accent); }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-actions{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
  margin-top:0.3rem;
}
.form-actions button{ cursor:pointer; font:inherit; }
.form-actions .btn{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; }
.form-actions button[disabled]{ opacity:0.6; cursor:progress; }
.form-note{ font-size:0.82rem; color:var(--ink-soft); margin:0; }
.form-status{
  grid-column:1 / -1;
  margin:0;
  padding:0.9rem 1rem;
  font-size:0.92rem;
  border-left:2px solid var(--accent);
  background:var(--paper-raised);
}
.form-status[hidden]{ display:none; }
.form-status.err{ border-left-color:#c0392b; }
.form-done{
  padding:0.5rem 0;
}
.form-done h3{ font-size:1.5rem; }
.form-done p{ color:var(--ink-soft); margin:0.8rem 0 0; }

/* tarjeta de contacto con horario */
.hours{
  display:flex;
  align-items:center;
  gap:0.9rem;
  padding:0.85rem 0;
  border-top:1px solid var(--line);
}
.hours .ico{
  width:2.1rem; height:2.1rem;
  border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  flex:none;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.62rem;
}
.hours .label{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:block;
}
.hours .value{ font-weight:600; font-size:1.02rem; }
.aside-note{ margin:1rem 0 0; font-size:0.86rem; color:var(--ink-soft); }

/* ---------- marcas en portada ---------- */
.brand-strip{
  display:flex;
  flex-wrap:wrap;
  gap:0.6rem;
  margin-top:1.5rem;
}
.brand-strip span{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:700;
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:0.03em;
  padding:0.45rem 0.9rem;
  border:1px solid var(--line-strong);
  background:var(--card);
}

/* ---------- páginas legales ---------- */
.legal{ max-width:72ch; }
.legal h1{ font-size:clamp(1.9rem,4vw,2.8rem); margin-bottom:1.5rem; }
.legal h2{ font-size:1.25rem; margin:2.2rem 0 0.6rem; }
.legal p, .legal li{ color:var(--ink-soft); }
.legal dl{ display:grid; grid-template-columns:max-content 1fr; gap:0.4rem 1.2rem; margin:1rem 0; }
.legal dt{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); padding-top:0.2rem; }
.legal dd{ margin:0; color:var(--ink); }
.legal a{ color:var(--accent); }

/* ---------- pie ---------- */
.footer-grid.four{ grid-template-columns:1.3fr 1fr 1fr 1fr; }
.footer-legal a{ margin-left:1.2rem; font-size:0.68rem; }
.footer-legal a:first-child{ margin-left:0; }

@media (max-width: 960px){
  .access{ grid-template-columns:1fr; }
  .facts{ grid-template-columns:1fr 1fr; }
  .services{ grid-template-columns:1fr 1fr; }
  .form-layout{ grid-template-columns:1fr; }
  .footer-grid.four{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 700px){
  .services{ grid-template-columns:1fr; }
  .zone{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .footer-grid.four{ grid-template-columns:1fr; }
  .legal dl{ grid-template-columns:1fr; gap:0.1rem; }
  .legal dd{ margin-bottom:0.6rem; }
  .access-card{ padding:1.1rem 1.1rem 1rem; }
}

/* ---------- logo IBALEX Industria ---------- */
.brand-logo{ display:flex; align-items:center; line-height:0; }
.brand-logo img{ height:2.6rem; width:auto; display:block; }
.brand-logo .logo-oscuro{ display:none; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .brand-logo .logo-claro{ display:none; }
  :root:not([data-theme="light"]) .brand-logo .logo-oscuro{ display:block; }
}
:root[data-theme="dark"] .brand-logo .logo-claro{ display:none; }
:root[data-theme="dark"] .brand-logo .logo-oscuro{ display:block; }
@media (max-width: 700px){ .brand-logo img{ height:2.2rem; } }

/* ---- botón flotante de WhatsApp ---- */
  .wa-fab{
    position:fixed;
    right:clamp(1rem, 3vw, 1.75rem);
    bottom:clamp(1rem, 3vw, 1.75rem);
    z-index:999999999;
    height:3.6rem;
    padding:0 1.1rem;
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    border-radius:2px;
    background:#1f8a4c;
    color:#fff;
    border:1px solid #16673a;
    text-decoration:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.74rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    box-shadow:0 4px 18px rgba(21,26,30,0.25);
    transition:background 0.15s ease, transform 0.15s ease;
  }
  .wa-fab:hover{ background:#176e3d; transform:translateY(-1px); color:#fff; }
  .wa-fab:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }
  .wa-fab svg{ width:1.45rem; height:1.45rem; flex:none; }

  @media (max-width: 560px){
    .wa-fab{ padding:0; width:3.6rem; justify-content:center; }
    .wa-fab span{ display:none; }
  }

  .contact-row .ico-wa{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#1f8a4c;
  }
  .contact-row .ico-wa svg{ width:1.15rem; height:1.15rem; }

/* ---------- cifras de trayectoria ---------- */
.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.stat{ background:var(--card); padding:1.5rem 1.4rem 1.4rem; }
.stat .n{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:800;
  font-size:clamp(2.1rem,4.4vw,3.1rem);
  line-height:0.95;
  letter-spacing:-0.01em;
  color:var(--accent);
  display:block;
}
.stat .t{
  display:block;
  margin-top:0.55rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
  line-height:1.5;
}

/* ---------- proceso de trabajo ---------- */
.steps{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  counter-reset:paso;
}
.step{ background:var(--card); padding:1.6rem 1.4rem; position:relative; }
.step .num{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.12em;
  color:var(--accent);
  display:block;
}
.step h3{ font-size:1.08rem; margin-top:0.55rem; line-height:1.2; }
.step p{ margin:0.55rem 0 0; color:var(--ink-soft); font-size:0.92rem; }

/* ---------- compromiso de respuesta ---------- */
.pledge{
  display:flex;
  align-items:center;
  gap:1.1rem;
  border:1px solid var(--line-strong);
  border-left:3px solid var(--accent);
  background:var(--card);
  padding:1.1rem 1.3rem;
  margin:0 0 1.75rem;
}
.pledge .pl-k{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:800;
  font-size:1.5rem;
  line-height:1;
  color:var(--accent);
  white-space:nowrap;
}
.pledge p{ margin:0; font-size:0.94rem; color:var(--ink-soft); }
.pledge p strong{ color:var(--ink); }

/* ---------- equipo ---------- */
.team{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.member{ background:var(--card); padding:1.8rem 1.6rem; }
.member .role{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
}
.member h3{ font-size:1.35rem; margin-top:0.5rem; line-height:1.15; }
.member p{ margin:0.7rem 0 0; color:var(--ink-soft); font-size:0.95rem; }
.member .member-link{
  display:inline-block;
  margin-top:0.9rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.74rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid var(--accent);
  text-decoration:none;
  padding-bottom:2px;
}
.member .member-link:hover{ color:var(--accent); }

/* ---------- preguntas frecuentes ---------- */
.faq{ border:1px solid var(--line); border-bottom:none; }
.faq details{ border-bottom:1px solid var(--line); background:var(--card); }
.faq summary{
  cursor:pointer;
  list-style:none;
  padding:1.15rem 3rem 1.15rem 1.4rem;
  position:relative;
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:700;
  font-size:1.12rem;
  line-height:1.25;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:'+';
  position:absolute;
  right:1.3rem;
  top:50%;
  transform:translateY(-50%);
  font-family:'IBM Plex Mono', monospace;
  font-size:1.2rem;
  color:var(--accent);
  line-height:1;
}
.faq details[open] summary::after{ content:'–'; }
.faq summary:hover{ color:var(--accent); }
.faq .answer{ padding:0 1.4rem 1.3rem; color:var(--ink-soft); font-size:0.96rem; max-width:78ch; }
.faq .answer p{ margin:0 0 0.7rem; }
.faq .answer p:last-child{ margin-bottom:0; }
.faq-group{ margin-bottom:2.5rem; }
.faq-group > h3{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 0.9rem;
}

@media (max-width: 900px){
  .stats{ grid-template-columns:1fr 1fr; }
  .steps{ grid-template-columns:1fr 1fr; }
  .team{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .steps{ grid-template-columns:1fr; }
  .pledge{ flex-direction:column; align-items:flex-start; gap:0.5rem; }
}

/* ---- menú: pasar a hamburguesa antes, ahora que hay 6 enlaces ---- */
.header-inner{ gap:1.5rem; }
nav.primary-nav{ flex-wrap:nowrap; }
@media (max-width: 1180px){
  nav.primary-nav{
    position:fixed;
    inset:64px 0 auto 0;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    padding:1rem clamp(1.25rem, 4vw, 3rem) 1.5rem;
    gap:0.2rem;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity 180ms ease, transform 180ms ease;
  }
  nav.primary-nav a{ padding:0.7rem 0; width:100%; }
  .menu-open nav.primary-nav{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .menu-btn{ display:flex; }
}

.team.one{ grid-template-columns:1fr; }
.team.one .member{ padding:2rem 1.8rem; }
.team.one .member p{ max-width:72ch; }

/* ---------- menú: desplegable de familias de Suministros ---------- */
.nav-group{ position:relative; display:flex; align-items:center; }
.nav-sub{
  position:absolute;
  top:100%;
  left:-1rem;
  z-index:60;
  display:flex;
  flex-direction:column;
  min-width:15rem;
  padding:0.6rem 1rem;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:2px;
  opacity:0;
  pointer-events:none;
  transform:translateY(4px);
  transition:opacity 150ms ease, transform 150ms ease;
}
.nav-group:hover .nav-sub, .nav-group:focus-within .nav-sub{ opacity:1; pointer-events:auto; transform:translateY(0); }
nav.primary-nav .nav-sub a{ padding:0.45rem 0; white-space:nowrap; }
nav.primary-nav a[aria-current="true"]{ color:var(--ink); border-color:var(--accent); }
@media (max-width: 1180px){
  nav.primary-nav{ max-height:calc(100vh - 64px); overflow-y:auto; }
  .nav-group{ flex-direction:column; align-items:flex-start; width:100%; }
  .nav-sub{ position:static; min-width:0; padding:0 0 0.4rem 1rem; background:none; border:0; opacity:1; pointer-events:auto; transform:none; transition:none; }
  nav.primary-nav .nav-sub a{ padding:0.5rem 0; font-size:0.68rem; }
}

/* ---------- suministros: tarjetas que enlazan a cada familia ---------- */
a.service--link{ display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:background 150ms ease; }
a.service--link:hover{ background:var(--accent-soft); }
a.service--link:focus-visible{ outline:2px solid var(--focus); outline-offset:-2px; }
.service-go{
  margin-top:auto;
  padding-top:0.9rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--accent);
}

/* ---------- menú: selector de idioma ES / EN / DE ---------- */
.lang-switch{ display:flex; align-items:center; gap:0.65rem; }
nav.primary-nav .lang-switch a{ padding:0.3rem 0; }
@media (max-width: 1180px){
  .lang-switch{ gap:1.4rem; padding:0.4rem 0 0.8rem; }
  nav.primary-nav .lang-switch a{ width:auto; padding:0.5rem 0; }
}

/* ---------- menú: desplegable de Suministros a dos columnas (diez familias) ---------- */
.nav-sub--cols{ display:grid; grid-template-columns:repeat(2, minmax(12rem, 1fr)); column-gap:1.6rem; min-width:28rem; }
@media (max-width: 1180px){
  .nav-sub--cols{ display:flex; min-width:0; }
}
