#modular-sitio{
    --bg:#FFFFFF;
    --surface:#FFFFFF;
    --surface-2:#F3F2FA;
    --ink:#111111;
    --muted:#5B5875;
    --line:#E3E1EF;
    --navy:#272361;
    --navy-light:#3B3592;
    --navy-deep:#1B1846;
    --navy-tint:#EDEBFA;
    --yellow:#F6D905;
    --yellow-deep:#C59E2C;
    --on-navy:#FFFFFF;
    --on-yellow:#272361;
    --ok:#2F7A4D; --ok-tint:#E4F1E8;
    --warn:#A6740F; --warn-tint:#F6EED2;
    --danger:#B23A2E; --danger-tint:#F7E1DC;
    --map-land:#F6F5FB; --map-grid:rgba(39,35,97,.07);
    --water:#CAD7F1; --water-edge:#6F87C6; --water-ink:#34508F;
    --zone-fill:rgba(246,217,5,.24); --zone-edge:#272361;
    --shadow: 0 1px 2px rgba(20,15,60,.06), 0 14px 30px -18px rgba(20,15,60,.28);
  }
  @media (prefers-color-scheme: dark){
    #modular-sitio{
      --bg:#231F20; --surface:#242035; --surface-2:#25213F;
      --ink:#F2F0FA; --muted:#B4AFD9; --line:#2D2850;
      --navy:#3B3592; --navy-light:#5E59A6; --navy-deep:#272361; --navy-tint:#2B2647;
      --yellow:#F6D905; --yellow-deep:#C59E2C;
      --on-navy:#FFFFFF; --on-yellow:#1B1846;
      --ok:#7BC08F; --ok-tint:#1E3327;
      --warn:#E3B85B; --warn-tint:#3A2E10;
      --danger:#E58371; --danger-tint:#3D1F1A;
      --map-land:#1D1930; --map-grid:rgba(255,255,255,.06);
      --water:#2B3A6A; --water-edge:#7B92D6; --water-ink:#B3C3EE;
      --zone-fill:rgba(246,217,5,.14); --zone-edge:#F6D905;
      --shadow: 0 1px 2px rgba(0,0,0,.5), 0 18px 34px -18px rgba(0,0,0,.65);
    }
  }

  
/* Base: el tema de WordPress no puede cambiar tipografías, márgenes ni colores del sitio */
html, body{ margin:0 !important; padding:0 !important; }
body.modular-pantalla-completa{ background:#1B1846; }
#modular-sitio{ position:relative; display:flex; font-size:16px; line-height:1.55; text-align:left; -webkit-text-size-adjust:100%; }
#modular-sitio [hidden]{ display:none !important; }
#modular-sitio header, #modular-sitio footer, #modular-sitio nav, #modular-sitio section, #modular-sitio article, #modular-sitio aside, #modular-sitio figure, #modular-sitio main{ margin:0; padding:0; border:0; box-shadow:none; float:none; width:auto; max-width:none; min-height:0; background:none; }
#modular-sitio h1, #modular-sitio h2, #modular-sitio h3, #modular-sitio h4{ padding:0; border:0; background:none; text-transform:none; text-shadow:none; }
#modular-sitio p, #modular-sitio label, #modular-sitio li, #modular-sitio dd, #modular-sitio dt{ text-transform:none; letter-spacing:normal; }
#modular-sitio a{ box-shadow:none; text-shadow:none; border:0; }
#modular-sitio a:hover, #modular-sitio a:focus{ box-shadow:none; }
#modular-sitio button{ margin:0; padding:0; color:inherit; background:none; font-size:inherit; text-transform:none; letter-spacing:normal; box-shadow:none; text-shadow:none; border-radius:0; min-height:0; height:auto; line-height:normal; }
#modular-sitio input, #modular-sitio select, #modular-sitio textarea{ margin:0; height:auto; min-height:0; max-width:100%; box-shadow:none; line-height:normal; }
#modular-sitio input[type="checkbox"]{ width:auto; height:auto; padding:0; }
#modular-sitio table, #modular-sitio th, #modular-sitio td{ border:0; background:none; }
#modular-sitio table{ margin:0; border-collapse:collapse; }
#modular-sitio ul{ list-style:disc; } #modular-sitio ol{ list-style:decimal; }
#modular-sitio ul, #modular-sitio ol, #modular-sitio dl{ margin:0; }
#modular-sitio li{ margin:0; padding:0; }
#modular-sitio img{ max-width:100%; height:auto; border:0; box-shadow:none; }
#modular-sitio strong{ font-weight:700; }
/* Barra de administración de WordPress (solo la ve quien está logueado) */
@media (min-width:783px){ body.admin-bar #modular-sitio header.site{ top:32px; } }
@media (min-width:601px) and (max-width:782px){ body.admin-bar #modular-sitio header.site{ top:46px; } }
/* Formulario de contraseña de WordPress */
#modular-sitio .pw-form{ max-width:520px; }
#modular-sitio .pw-form p{ margin:0 0 16px; }
#modular-sitio .pw-form input[type="submit"]{ width:auto; margin-top:9.6px; background:#F6D905; color:#272361; border:0; padding:12px 20.8px; font-weight:700; cursor:pointer; }

#modular-sitio,#modular-sitio *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } #modular-sitio,#modular-sitio *{ animation-duration:.001ms !important; transition-duration:.001ms !important; } }
  #modular-sitio{ margin:0; background:var(--bg); color:var(--ink); font-family:'Noto Sans',system-ui,sans-serif; line-height:1.55; }
  #modular-sitio ::-moz-selection{ background:var(--yellow); color:var(--on-yellow); }
  #modular-sitio ::selection{ background:var(--yellow); color:var(--on-yellow); }
  #modular-sitio img{ max-width:100%; }
  #modular-sitio a{ color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio a:not(.btn):not(.icon-link):not(.brand):not(.obra-card):not(.serv-row):not(.hero-step):not(.contact-link):not(.photo-card):not(.tile):not(.obra-nav-link):not(.skip-link){ color:var(--yellow); } }
  #modular-sitio h1,#modular-sitio h2,#modular-sitio h3,#modular-sitio h4{ font-family:'Orbitron',sans-serif; font-weight:600; text-wrap:balance; line-height:1.15; margin:0; color:var(--navy); letter-spacing:-.01em; }
  @media (prefers-color-scheme:dark){ #modular-sitio h1, #modular-sitio h2, #modular-sitio h3, #modular-sitio h4{ color:var(--ink); } }
  #modular-sitio .label{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.1em; font-size:12.16px; font-weight:600; }
  #modular-sitio .eyebrow{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.12em; font-size:12.16px; color:var(--navy); font-weight:600; }
  @media (prefers-color-scheme:dark){ #modular-sitio .eyebrow{ color:var(--yellow); } }
  #modular-sitio .eyebrow-inverse{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.12em; font-size:12.16px; color:var(--yellow); font-weight:600; }
  #modular-sitio .num{ font-variant-numeric:tabular-nums; }
  #modular-sitio p{ margin:0; }
  #modular-sitio button{ font-family:inherit; }
  #modular-sitio :focus-visible{ outline:3px solid var(--yellow); outline-offset:2px; }

  #modular-sitio .wrap{ max-width:1120px; margin:0 auto; padding:0 22.4px; }
  #modular-sitio section{ scroll-margin-top:84px; }
  #modular-sitio .band{ padding:67.2px 0; border-bottom:1px solid var(--line); }
  #modular-sitio .band.alt{ background:var(--surface-2); }
  #modular-sitio .band.navy{ background:var(--navy); border-bottom:none; position:relative; overflow:hidden; }
  #modular-sitio .band.navy .eyebrow, #modular-sitio .band.navy h2{ color:var(--yellow); }
  #modular-sitio .band.navy p{ color:rgba(255,255,255,.78); }
  @media (prefers-color-scheme:dark){ #modular-sitio .band.navy h2{ color:var(--ink); } }
  #modular-sitio .blueprint{ position:absolute; top:0; right:0; bottom:0; left:0; pointer-events:none;
    background-image:
      linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size:34px 34px;
  }
  #modular-sitio .section-head{ max-width:62ch; margin-bottom:32px; position:relative; }
  #modular-sitio .section-head h2{ font-size:30.4px; font-size:clamp(30.4px,4vw,41.6px); margin-top:6.4px; }
  #modular-sitio .section-head p{ color:var(--muted); font-size:16.8px; margin-top:11.2px; }

  #modular-sitio .btn{ display:inline-flex; align-items:center; gap:8px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-weight:600; font-size:14.4px; padding:13.6px 22.4px; border-radius:3px; border:2px solid transparent; cursor:pointer; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; white-space:nowrap; }
  #modular-sitio .btn:hover{ transform:translateY(-1px); }
  #modular-sitio .btn-yellow{ background:var(--yellow); color:var(--on-yellow); box-shadow:var(--shadow); }
  #modular-sitio .btn-yellow:hover{ background:var(--yellow-deep); }
  #modular-sitio .btn-navy{ background:var(--navy); color:var(--on-navy); box-shadow:var(--shadow); }
  #modular-sitio .btn-navy:hover{ background:var(--navy-light); }
  #modular-sitio .btn-outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
  #modular-sitio .btn-outline-dark{ background:transparent; color:var(--navy); border-color:var(--line); }
  @media (prefers-color-scheme:dark){ #modular-sitio .btn-outline-dark{ color:var(--ink); } }
  #modular-sitio .btn-block{ width:100%; justify-content:center; }
  #modular-sitio .btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none; }

  /* ---------- Header ---------- */
  #modular-sitio header.site{ position:-webkit-sticky; position:sticky; top:0; z-index:50; background:var(--navy-deep); border-bottom:1px solid rgba(255,255,255,.08); }
  #modular-sitio .nav-row{ max-width:1120px; margin:0 auto; padding:10.4px 22.4px; display:flex; align-items:center; gap:17.6px; }
  #modular-sitio .brand{ display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
  #modular-sitio .brand img{ display:block; height:38px; width:auto; border-radius:2px; }
  #modular-sitio nav.primary{ display:flex; align-items:center; gap:1.6px; margin-left:9.6px; }
  #modular-sitio nav.primary > .nav-item{ position:relative; }
  #modular-sitio nav.primary > .nav-item > a, #modular-sitio nav.primary > .nav-item > button.nav-link{
    display:flex; align-items:center; gap:4.8px; background:none; border:none; cursor:pointer;
    font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em;
    font-size:13.12px; font-weight:600; color:#fff; text-decoration:none; padding:9.6px 9.6px; border-radius:3px;
  }
  #modular-sitio nav.primary > .nav-item > a:hover, #modular-sitio nav.primary > .nav-item > button.nav-link:hover{ background:rgba(255,255,255,.1); }
  #modular-sitio nav.primary > .nav-item.is-active > a{ color:var(--yellow); }
  #modular-sitio .caret{ width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.8; }
  #modular-sitio .mega{
    position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%);
    background:var(--surface); border:1px solid var(--line); border-radius:6px; box-shadow:var(--shadow);
    padding:14.4px; display:none; min-width:280px; z-index:60;
  }
  #modular-sitio .nav-item.open .mega{ display:block; }
  #modular-sitio .mega a{ display:flex; gap:9.6px; align-items:flex-start; padding:9.6px 9.6px; border-radius:4px; text-decoration:none; color:var(--ink); }
  #modular-sitio .mega a:hover{ background:var(--surface-2); }
  #modular-sitio .mega a .ico{ color:var(--navy); flex-shrink:0; margin-top:1.6px; font-weight:700; }
  @media (prefers-color-scheme:dark){ #modular-sitio .mega a .ico{ color:var(--yellow); } }
  #modular-sitio .mega a .t{ font-weight:700; font-size:14.4px; display:block; font-family:'Noto Sans',sans-serif; text-transform:none; }
  #modular-sitio .mega a .d{ font-weight:400; font-size:12.8px; color:var(--muted); display:block; }
  #modular-sitio .nav-utility{ margin-left:auto; display:flex; align-items:center; gap:8px; }
  #modular-sitio .icon-link{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--yellow); color:var(--on-yellow); text-decoration:none; flex-shrink:0; }
  #modular-sitio .icon-link:hover{ background:var(--yellow-deep); }
  #modular-sitio .burger{ display:none; width:38px; height:38px; border-radius:3px; border:1px solid rgba(255,255,255,.3); background:transparent; align-items:center; justify-content:center; cursor:pointer; }
  #modular-sitio .burger span, #modular-sitio .burger span::before, #modular-sitio .burger span::after{ content:''; display:block; width:18px; height:2px; background:#fff; position:relative; transition:.2s; }
  #modular-sitio .burger span::before{ position:absolute; top:-6px; }
  #modular-sitio .burger span::after{ position:absolute; top:6px; }

  @media (max-width:960px){
    #modular-sitio nav.primary{ display:none; }
    #modular-sitio .burger{ display:flex; }
    #modular-sitio .nav-utility .icon-link.tel-only{ display:none; }
  }
  @media (max-width:600px){
    #modular-sitio .nav-utility .btn{ display:none; }
  }

  #modular-sitio .mobile-drawer{ display:none; flex-direction:column; gap:1.6px; padding:9.6px 22.4px 19.2px; background:var(--surface); border-top:1px solid var(--line); }
  #modular-sitio .mobile-drawer.open{ display:flex; }
  #modular-sitio .mobile-drawer a, #modular-sitio .mobile-drawer summary{ padding:12px 4.8px; font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:13.6px; font-weight:600; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line); cursor:pointer; list-style:none; }
  #modular-sitio .mobile-drawer summary::-webkit-details-marker{ display:none; }
  #modular-sitio .mobile-drawer details[open] summary{ color:var(--navy); }
  #modular-sitio .mobile-drawer .sub a{ display:block; padding-left:16px; font-weight:500; color:var(--muted); border-bottom:none; }
  #modular-sitio .mobile-drawer a.cta{ margin-top:12.8px; color:var(--on-navy); border-bottom:none; text-align:center; justify-content:center; }

  /* ---------- Hero ---------- */
  #modular-sitio .hero{ position:relative; overflow:hidden; padding:73.6px 0 60.8px; background:var(--navy); }
  #modular-sitio .hero .ring{ position:absolute; right:-120px; top:-120px; width:420px; height:420px; border-radius:50%; border:2px solid rgba(255,255,255,.12); }
  #modular-sitio .hero .ring2{ position:absolute; right:-40px; top:-40px; width:260px; height:260px; border-radius:50%; border:2px solid rgba(246,217,5,.18); }
  #modular-sitio .hero-inner{ position:relative; }
  #modular-sitio .hero-inner > div{ max-width:640px; }
  #modular-sitio .hero h1{ font-size:36.8px; font-size:clamp(36.8px,5.2vw,57.6px); margin-top:8px; color:#fff; }
  #modular-sitio .hero h1 em{ font-style:normal; color:var(--yellow); }
  #modular-sitio .hero p.lead{ margin-top:17.6px; font-size:17.6px; color:rgba(255,255,255,.8); max-width:52ch; }
  #modular-sitio .hero-steps{ list-style:none; margin:28.8px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; max-width:940px; }
  @media (max-width:760px){ #modular-sitio .hero-steps{ grid-template-columns:1fr; } }
  #modular-sitio .hero-step{ display:flex; align-items:center; gap:13.6px; height:100%; padding:16px 17.6px; border-radius:6px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.24); color:#fff; text-decoration:none; transition:transform .15s ease, border-color .15s ease, background .15s ease; }
  #modular-sitio .hero-step:hover{ transform:translateY(-2px); border-color:var(--yellow); background:rgba(255,255,255,.12); }
  #modular-sitio .hero-step:focus-visible{ transform:translateY(-2px); border-color:var(--yellow); background:rgba(255,255,255,.12); }
  #modular-sitio .hero-step .n{ width:36px; height:36px; border-radius:50%; background:var(--yellow); color:var(--on-yellow); display:grid; place-items:center; font-family:'Oswald',sans-serif; font-weight:700; font-size:16px; flex-shrink:0; }
  #modular-sitio .hero-step .t{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; font-weight:600; font-size:15.2px; line-height:1.25; min-width:0; }
  #modular-sitio .hero-step .go{ margin-left:auto; color:var(--yellow); font-weight:700; flex-shrink:0; }
  #modular-sitio .hero-note{ margin-top:20.8px; font-size:13.6px; color:rgba(255,255,255,.7); display:flex; align-items:center; gap:6.4px; }
  #modular-sitio .hero-note .dot{ width:7px; height:7px; border-radius:50%; background:var(--yellow); flex-shrink:0; }

  /* ---------- Cards grids ---------- */
  #modular-sitio .grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
  #modular-sitio .grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  #modular-sitio .grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
  @media (max-width:900px){ #modular-sitio .grid-4{ grid-template-columns:repeat(2,1fr); } #modular-sitio .grid-3{ grid-template-columns:1fr; } #modular-sitio .grid-2{ grid-template-columns:1fr; } }
  @media (max-width:560px){ #modular-sitio .grid-4{ grid-template-columns:1fr; } }
  #modular-sitio .use-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:19.2px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:9.6px; width:100%; text-align:left; font-family:inherit; cursor:pointer; transition:transform .15s ease, border-color .15s ease; position:relative; }
  #modular-sitio .use-card:hover{ transform:translateY(-2px); border-color:var(--navy); }
  #modular-sitio .use-card:focus-visible{ transform:translateY(-2px); border-color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio .use-card:hover{ border-color:var(--yellow); } #modular-sitio .use-card:focus-visible{ border-color:var(--yellow); } }
  #modular-sitio .use-card .ico{ width:40px; height:40px; border-radius:6px; background:var(--navy-tint); color:var(--navy); display:grid; place-items:center; font-family:'Oswald',sans-serif; font-weight:600; }
  @media (prefers-color-scheme:dark){ #modular-sitio .use-card .ico{ color:var(--yellow); } }
  #modular-sitio .use-card h3{ font-size:16.8px; }
  #modular-sitio .use-card p{ font-size:14.08px; color:var(--muted); }
  #modular-sitio .use-card .go{ position:absolute; top:17.6px; right:16px; font-size:12.8px; font-weight:700; color:var(--navy); opacity:0; transition:opacity .15s ease; }
  @media (prefers-color-scheme:dark){ #modular-sitio .use-card .go{ color:var(--yellow); } }
  #modular-sitio .use-card:hover .go{ opacity:1; }
  #modular-sitio .use-card:focus-visible .go{ opacity:1; }

  /* ---------- Pedido / calculator + form ---------- */
  #modular-sitio .pedido-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:25.6px; align-items:start; }
  @media (max-width:900px){ #modular-sitio .pedido-grid{ grid-template-columns:1fr; } }
  #modular-sitio .calc-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:24px; box-shadow:var(--shadow); position:-webkit-sticky; position:sticky; top:80px; }
  @media (max-width:900px){ #modular-sitio .calc-card{ position:static; top:auto; } }
  #modular-sitio .calc-card h3{ font-size:18.4px; }
  #modular-sitio .field{ margin-top:14.4px; }
  #modular-sitio .field label{ display:block; font-size:12.8px; font-weight:700; margin-bottom:4.8px; color:var(--ink); }
  #modular-sitio .field .hint{ font-size:12.16px; color:var(--muted); margin-top:4px; }
  #modular-sitio .field .hint.err-text{ color:var(--danger); }
  #modular-sitio .field label .qn{ display:inline-grid; place-items:center; width:18.4px; height:18.4px; border-radius:50%; background:var(--navy); color:var(--on-navy); font-family:'Oswald',sans-serif; font-size:10.88px; font-weight:700; line-height:1; margin-right:7.2px; vertical-align:-.2em; }
  @media (prefers-color-scheme:dark){ #modular-sitio .field label .qn{ background:var(--yellow); color:var(--on-yellow); } }
  #modular-sitio .link-btn{ display:inline-flex; align-items:center; gap:6.4px; background:none; border:none; padding:0; margin-top:9.6px; font-family:'Oswald',sans-serif; font-size:12.8px; font-weight:600; color:var(--navy); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
  #modular-sitio .link-btn:hover{ color:var(--navy-light); }
  #modular-sitio .link-btn[disabled]{ opacity:.5; cursor:not-allowed; text-decoration:none; }
  @media (prefers-color-scheme:dark){ #modular-sitio .link-btn{ color:var(--yellow); } }
  #modular-sitio input, #modular-sitio select, #modular-sitio textarea{
    width:100%; font-family:'Noto Sans',sans-serif; font-size:15.2px; padding:10.4px 12px; border-radius:3px;
    border:1px solid var(--line); background:var(--surface); color:var(--ink);
  }
  #modular-sitio textarea{ resize:vertical; min-height:83.2px; }
  #modular-sitio .calc-row{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:9.6px; }
  #modular-sitio .calc-result{ margin-top:17.6px; background:var(--navy-tint); border:1px solid var(--navy); border-radius:6px; padding:14.4px; }
  #modular-sitio .calc-result .big{ font-family:'Oswald',sans-serif; font-weight:600; font-size:24px; color:var(--navy); font-variant-numeric:tabular-nums; }
  @media (prefers-color-scheme:dark){ #modular-sitio .calc-result .big{ color:var(--yellow); } }
  #modular-sitio .calc-result p{ font-size:12.8px; color:var(--muted); margin-top:3.2px; }

  #modular-sitio .form-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:25.6px; box-shadow:var(--shadow); }
  #modular-sitio .steps{ display:flex; align-items:center; gap:6.4px; margin-bottom:24px; scroll-margin-top:90px; }
  #modular-sitio .step-dot{ display:flex; align-items:center; gap:8px; flex:1; }
  #modular-sitio .step-dot .circ{ width:26px; height:26px; border-radius:50%; border:2px solid var(--line); display:grid; place-items:center; font-family:'Oswald',sans-serif; font-size:12.48px; color:var(--muted); flex-shrink:0; background:var(--surface); }
  #modular-sitio .step-dot .lbl{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; font-size:11.52px; color:var(--muted); font-weight:600; }
  #modular-sitio .step-dot .line{ flex:1; height:2px; background:var(--line); }
  #modular-sitio .step-dot.active .circ, #modular-sitio .step-dot.done .circ{ border-color:var(--navy); color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio .step-dot.active .circ, #modular-sitio .step-dot.done .circ{ border-color:var(--yellow); color:var(--yellow); } }
  #modular-sitio .step-dot.done .circ{ background:var(--navy); color:#fff; }
  @media (prefers-color-scheme:dark){ #modular-sitio .step-dot.done .circ{ background:var(--yellow); color:var(--on-yellow); } }
  #modular-sitio .step-dot.active .lbl{ color:var(--ink); }

  #modular-sitio .form-step{ display:none; }
  #modular-sitio .form-step.active{ display:block; animation: fadeIn .25s ease; }
  @keyframes fadeIn{ from{ opacity:0; transform:translateY(4px);} to{ opacity:1; transform:none; } }
  #modular-sitio .form-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:560px){ #modular-sitio .form-grid-2{ grid-template-columns:1fr; } }
  #modular-sitio .check-row{ display:flex; align-items:center; gap:8.8px; margin-top:16px; }
  #modular-sitio .check-row input{ width:auto; }
  #modular-sitio .step-actions{ display:flex; justify-content:space-between; gap:12.8px; margin-top:24px; }
  #modular-sitio .err{ color:var(--danger); font-size:12.48px; margin-top:4.8px; display:none; }
  #modular-sitio .field.invalid input, #modular-sitio .field.invalid select{ border-color:var(--danger); }
  #modular-sitio .field.invalid .err{ display:block; }

  #modular-sitio .confirm{ display:none; text-align:center; padding:16px 0; }
  #modular-sitio .confirm.active{ display:block; }
  #modular-sitio .confirm .badge{ width:52px; height:52px; border-radius:50%; background:var(--ok-tint); color:var(--ok); display:grid; place-items:center; margin:0 auto 16px; font-size:22.4px; }
  #modular-sitio .confirm h3{ font-size:22.4px; }
  #modular-sitio .confirm p{ color:var(--muted); margin-top:9.6px; max-width:44ch; margin-left:auto; margin-right:auto; }
  #modular-sitio .confirm .confirm-cta{ display:flex; gap:11.2px; justify-content:center; margin-top:22.4px; flex-wrap:wrap; }

  /* ---------- Obras / servicios teaser ---------- */
  #modular-sitio .obra-card{ display:block; border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow); text-decoration:none; color:inherit; transition:transform .15s ease, border-color .15s ease; }
  #modular-sitio .obra-card:hover{ transform:translateY(-2px); border-color:var(--navy); }
  #modular-sitio .obra-card:focus-visible{ transform:translateY(-2px); border-color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio .obra-card:hover{ border-color:var(--yellow); } #modular-sitio .obra-card:focus-visible{ border-color:var(--yellow); } }
  #modular-sitio .obra-card .swatch{ height:110px; background:
      repeating-linear-gradient(45deg, var(--navy) 0 2px, transparent 2px 34px),
      var(--navy-tint);
    display:flex; align-items:flex-end; padding:9.6px; }
  #modular-sitio .obra-card .swatch span{ background:var(--yellow); color:var(--on-yellow); font-family:'Oswald',sans-serif; font-weight:600; font-size:11.2px; padding:3.2px 8.8px; border-radius:3px; }
  #modular-sitio .obra-card .body{ padding:16px; }
  #modular-sitio .obra-card h4{ font-size:16px; }
  #modular-sitio .obra-card p{ font-size:13.12px; color:var(--muted); margin-top:4.8px; }
  #modular-sitio .obra-card .go{ display:block; margin-top:9.6px; font-size:12.8px; font-weight:700; color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio .obra-card .go{ color:var(--yellow); } }

  #modular-sitio .serv-row{ display:flex; align-items:center; gap:16px; padding:16px 9.6px; margin:0 -9.6px; border-top:1px solid var(--line); text-decoration:none; color:inherit; border-radius:6px; transition:background .15s ease; }
  #modular-sitio .serv-row:first-child{ border-top:none; }
  #modular-sitio .serv-row:hover{ background:var(--surface-2); }
  #modular-sitio .serv-row:focus-visible{ background:var(--surface-2); }
  #modular-sitio .serv-row .ico{ width:42px; height:42px; border-radius:6px; background:var(--navy-tint); color:var(--navy); display:grid; place-items:center; flex-shrink:0; font-weight:700; }
  @media (prefers-color-scheme:dark){ #modular-sitio .serv-row .ico{ color:var(--yellow); } }
  #modular-sitio .serv-row h4{ font-size:16px; }
  #modular-sitio .serv-row p{ font-size:13.6px; color:var(--muted); margin-top:2.4px; }
  #modular-sitio .serv-row .go{ margin-left:auto; font-size:12.8px; font-weight:700; color:var(--navy); flex-shrink:0; white-space:nowrap; }
  @media (prefers-color-scheme:dark){ #modular-sitio .serv-row .go{ color:var(--yellow); } }

  /* ---------- Ventas (Hormigón / Materiales) ---------- */
  #modular-sitio .venta-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:20.8px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:11.2px; }
  #modular-sitio .venta-card .tag{ align-self:flex-start; font-family:'Oswald',sans-serif; font-size:11.2px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; padding:4px 9.6px; border-radius:3px; background:var(--navy-tint); color:var(--navy); }
  @media (prefers-color-scheme:dark){ #modular-sitio .venta-card .tag{ color:var(--yellow); } }
  #modular-sitio .venta-card h3{ font-size:17.6px; }
  #modular-sitio .venta-card > p{ font-size:14.08px; color:var(--muted); }
  #modular-sitio .venta-card ul{ margin:0; padding-left:17.6px; font-size:13.44px; color:var(--muted); display:flex; flex-direction:column; gap:4.8px; }
  #modular-sitio .venta-actions{ margin-top:auto; display:flex; flex-direction:column; gap:8px; padding-top:8px; }

  #modular-sitio .materiales-lista{ margin-top:32px; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22.4px; box-shadow:var(--shadow); }
  #modular-sitio .ml-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:17.6px; }
  #modular-sitio .ml-head h3{ font-size:20px; margin-top:4.8px; }
  #modular-sitio .ml-search input{ width:260px; max-width:100%; }
  #modular-sitio .ml-table-wrap{ max-height:480px; overflow-y:auto; border:1px solid var(--line); border-radius:6px; }
  #modular-sitio .ml-table{ width:100%; border-collapse:collapse; font-size:13.76px; }
  #modular-sitio .ml-table{ min-width:640px; }
  #modular-sitio .ml-table th{ position:-webkit-sticky; position:sticky; top:0; text-align:left; font-family:'Oswald',sans-serif; font-size:11.2px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); background:var(--surface-2); padding:11.2px 12.8px; border-bottom:1px solid var(--line); white-space:nowrap; }
  #modular-sitio .ml-table td{ padding:9.6px 12.8px; border-bottom:1px solid var(--line); color:var(--ink); white-space:nowrap; }
  #modular-sitio .ml-table tr:last-child td{ border-bottom:none; }
  #modular-sitio .ml-table td.mc{ color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
  #modular-sitio .ml-table td.mp{ text-align:right; font-weight:700; color:var(--navy); font-variant-numeric:tabular-nums; white-space:nowrap; }
  @media (prefers-color-scheme:dark){ #modular-sitio .ml-table td.mp{ color:var(--yellow); } }
  #modular-sitio .ml-empty{ margin-top:16px; font-size:14.08px; color:var(--muted); text-align:center; }
  #modular-sitio .ml-empty a{ font-weight:600; }
  #modular-sitio .ml-foot{ margin-top:17.6px; display:flex; justify-content:center; }
  #modular-sitio .materiales-lista{ scroll-margin-top:90px; }
  @media (max-width:560px){
    #modular-sitio .materiales-lista{ padding:17.6px; }
  }

  /* ---------- Contact (matches real site: navy page, white cards) ---------- */
  #modular-sitio .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:19.2px; position:relative; }
  @media (max-width:860px){ #modular-sitio .contact-grid{ grid-template-columns:1fr; } }
  #modular-sitio .contact-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15); border-radius:6px; padding:20.8px; text-align:center; }
  #modular-sitio .contact-card .avatar{ width:44px; height:44px; border-radius:50%; background:var(--yellow); color:var(--on-yellow); display:grid; place-items:center; margin:0 auto 11.2px; font-weight:700; }
  #modular-sitio .contact-card .name{ color:#fff; font-weight:700; }
  #modular-sitio .contact-card .info{ color:rgba(255,255,255,.75); font-size:15.2px; margin-top:4.8px; }
  #modular-sitio .contact-card .contact-link{ color:#fff; text-decoration:underline; -webkit-text-decoration-color:rgba(255,255,255,.4); text-decoration-color:rgba(255,255,255,.4); text-underline-offset:3px; -webkit-user-select:all; -moz-user-select:all; user-select:all; }
  #modular-sitio .contact-card .contact-link:hover{ -webkit-text-decoration-color:var(--yellow); text-decoration-color:var(--yellow); }
  #modular-sitio .contact-cta-card{ background:#fff; border-radius:6px; padding:22.4px; grid-column:1 / -1; }
  #modular-sitio .contact-cta-card h3{ font-size:18.4px; color:#1B1846 !important; }
  #modular-sitio .contact-cta-card p{ color:#5B5875 !important; margin-top:6.4px; }
  #modular-sitio .contact-cta-card .actions{ display:flex; gap:11.2px; flex-wrap:wrap; margin-top:16px; }
  #modular-sitio .contact-social{ display:flex; gap:9.6px; justify-content:center; margin-top:32px; }

  #modular-sitio footer.site{ padding:28.8px 0; text-align:center; color:rgba(255,255,255,.6); font-size:13.12px; background:var(--navy-deep); }

  #modular-sitio .table-wrap{ overflow-x:auto; }

  /* ---------- Zona de cobertura (página propia, #cobertura) ---------- */
  #modular-sitio .hero-note .hero-link{ color:var(--yellow); font-weight:600; text-underline-offset:3px; }
  #modular-sitio .cov-page{ scroll-margin-top:90px; }
  #modular-sitio .cov-page .band{ border-bottom:none; padding-top:41.6px; }
  #modular-sitio .back-link{ display:inline-flex; align-items:center; gap:6.4px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:12.8px; font-weight:600; text-decoration:none; margin-bottom:25.6px; }
  #modular-sitio .cov-page h1{ font-size:30.4px; font-size:clamp(30.4px,4vw,41.6px); margin-top:6.4px; }
  #modular-sitio .cov-grid{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); gap:25.6px; align-items:start; }
  @media (max-width:900px){ #modular-sitio .cov-grid{ grid-template-columns:1fr; } }
  #modular-sitio .cov-map{ margin:0; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:9.6px; box-shadow:var(--shadow); }
  #modular-sitio .cov-map figcaption{ font-size:11.52px; color:var(--muted); padding:8.8px 4.8px 1.6px; }
  #modular-sitio .cov-info{ display:flex; flex-direction:column; gap:17.6px; }
  #modular-sitio .cov-stat{ display:flex; align-items:baseline; gap:12.8px; flex-wrap:wrap; padding-bottom:17.6px; border-bottom:1px solid var(--line); }
  #modular-sitio .cov-num{ font-family:'Orbitron',sans-serif; font-weight:700; font-size:41.6px; line-height:1; color:var(--navy); font-variant-numeric:tabular-nums; }
  @media (prefers-color-scheme:dark){ #modular-sitio .cov-num{ color:var(--yellow); } }
  #modular-sitio .cov-num-lab{ color:var(--muted); font-size:14.72px; max-width:24ch; }
  #modular-sitio .cov-legend{ list-style:none; margin:0; padding:0; display:grid; gap:9.6px; font-size:14.08px; }
  #modular-sitio .cov-legend li{ display:flex; align-items:center; gap:10.4px; }
  #modular-sitio .sw{ width:24px; height:14px; border-radius:3px; flex-shrink:0; }
  #modular-sitio .sw-zone{ background:var(--zone-fill); border:2px solid var(--zone-edge); }
  #modular-sitio .sw-ring{ height:0; border-radius:0; border-top:2px dashed var(--zone-edge); }
  #modular-sitio .sw-water{ background:var(--water); border:1px solid var(--water-edge); }
  #modular-sitio .sw-border{ height:0; border-radius:0; border-top:2px dashed var(--muted); }
  #modular-sitio .cov-out{ background:var(--surface-2); border:1px solid var(--line); border-radius:6px; padding:17.6px; display:grid; gap:10.4px; }
  #modular-sitio .cov-out h3{ font-size:16.8px; }
  #modular-sitio .cov-out p{ font-size:14.08px; color:var(--muted); }

  #modular-sitio .cov-svg{ display:block; width:100%; height:auto; border-radius:4px; }
  #modular-sitio .cov-svg text{ font-family:'Oswald',sans-serif; }
  #modular-sitio .cv-land{ fill:var(--map-land); }
  #modular-sitio .cv-grid{ fill:none; stroke:var(--map-grid); stroke-width:.08; }
  #modular-sitio .cv-zone{ fill:var(--zone-fill); }
  #modular-sitio .cv-zone-edge{ fill:none; stroke:var(--zone-edge); stroke-width:.32; }
  #modular-sitio .cv-ring10{ fill:none; stroke:var(--zone-edge); stroke-width:.13; stroke-dasharray:.7 .55; opacity:.75; }
  #modular-sitio .cv-lake{ fill:var(--water); stroke:var(--water-edge); stroke-width:.12; }
  #modular-sitio .cv-river{ fill:none; stroke:var(--water-edge); stroke-width:.38; stroke-linecap:round; stroke-linejoin:round; }
  #modular-sitio .cv-border{ fill:none; stroke:var(--muted); stroke-width:.16; stroke-dasharray:1 .45 .2 .45; opacity:.85; }
  #modular-sitio .cv-prov{ font-size:1.25px; font-weight:600; letter-spacing:.18px; fill:var(--muted); }
  #modular-sitio .cov-svg .cv-water{ font-family:'Noto Sans',sans-serif; font-style:italic; font-size:1.3px; fill:var(--water-ink); }
  #modular-sitio .cv-ring-lab{ font-size:1.2px; font-weight:600; fill:var(--zone-edge); paint-order:stroke; stroke:var(--map-land); stroke-width:.45px; stroke-linejoin:round; }
  #modular-sitio .cv-dir path{ fill:none; stroke:var(--ink); stroke-width:.32; stroke-linecap:round; stroke-linejoin:round; }
  #modular-sitio .cv-dir text{ font-size:1.2px; font-weight:600; fill:var(--ink); paint-order:stroke; stroke:var(--map-land); stroke-width:.4px; stroke-linejoin:round; }
  #modular-sitio .cv-dot-halo{ fill:var(--surface); }
  #modular-sitio .cv-dot{ fill:var(--zone-edge); }
  #modular-sitio .cv-town{ font-size:1.5px; font-weight:700; fill:var(--ink); paint-order:stroke; stroke:var(--surface); stroke-width:.6px; stroke-linejoin:round; }
  #modular-sitio .cv-north path, #modular-sitio .cv-north text{ fill:var(--ink); }
  #modular-sitio .cv-north text{ font-size:1.3px; font-weight:700; }
  #modular-sitio .cv-scale path{ fill:none; stroke:var(--ink); stroke-width:.18; }
  #modular-sitio .cv-scale text{ font-size:1.15px; fill:var(--ink); }
  @media (max-width:600px){
    #modular-sitio .cv-prov{ font-size:1.8px; } #modular-sitio .cov-svg .cv-water{ font-size:1.8px; } #modular-sitio .cv-ring-lab{ font-size:1.7px; }
    #modular-sitio .cv-dir text{ font-size:1.7px; } #modular-sitio .cv-town{ font-size:2.1px; } #modular-sitio .cv-north text{ font-size:1.8px; } #modular-sitio .cv-scale text{ font-size:1.7px; }
  }

/* ===================== Sitio completo: componentes compartidos ===================== */
#modular-sitio{ background:var(--bg); color:var(--ink); min-height:100vh; display:flex; flex-direction:column; }
#modular-sitio > main{ flex:1 0 auto; }
#modular-sitio .skip-link{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--yellow); color:var(--on-yellow); padding:9.6px 16px; font-weight:700; }
#modular-sitio .skip-link:focus{ left:16px; top:9.6px; }
#modular-sitio .visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Header: link activo según la página */
#modular-sitio nav.primary > .nav-item.is-active > a, #modular-sitio nav.primary > .nav-item.is-active > button.nav-link{ color:var(--yellow); }
#modular-sitio .mobile-drawer a[aria-current="page"]{ color:var(--navy); }
@media (prefers-color-scheme:dark){ #modular-sitio .mobile-drawer summary{ color:var(--yellow); } }

/* ---------- Cabecera de páginas internas ---------- */
#modular-sitio .page-head{ position:relative; overflow:hidden; background:var(--navy); padding:51.2px 0 44.8px; }
#modular-sitio .page-head .ring{ position:absolute; right:-140px; top:-160px; width:420px; height:420px; border-radius:50%; border:2px solid rgba(255,255,255,.1); pointer-events:none; }
#modular-sitio .page-head .wrap{ position:relative; }
#modular-sitio .page-head h1{ font-size:32px; font-size:clamp(32px,4.6vw,48px); color:#fff; margin-top:7.2px; max-width:22ch; }
#modular-sitio .page-head h1 em{ font-style:normal; color:var(--yellow); }
#modular-sitio .page-head .lead{ margin-top:14.4px; font-size:16.8px; color:rgba(255,255,255,.8); max-width:60ch; }
#modular-sitio .page-head .actions{ display:flex; gap:11.2px; flex-wrap:wrap; margin-top:22.4px; }
#modular-sitio .crumbs{ display:flex; flex-wrap:wrap; gap:5.6px; align-items:center; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:11.84px; font-weight:600; color:rgba(255,255,255,.65); }
#modular-sitio .crumbs a{ color:var(--yellow) !important; text-decoration:none; }
#modular-sitio .crumbs a:hover{ text-decoration:underline; }
#modular-sitio .crumbs .sep{ opacity:.6; }

/* Cabecera con foto (fichas de obra) */
#modular-sitio .page-head.has-photo{ padding:88px 0 41.6px; min-height:360px; display:flex; align-items:flex-end; }
#modular-sitio .page-head.has-photo .ph-img{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; object-fit:cover; }
#modular-sitio .page-head.has-photo::after{ content:''; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(180deg, rgba(27,24,70,.25) 0%, rgba(27,24,70,.55) 45%, rgba(27,24,70,.94) 100%); }
#modular-sitio .page-head.has-photo .wrap{ z-index:1; width:100%; }
#modular-sitio .ph-meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
#modular-sitio .pill{ display:inline-flex; align-items:center; gap:5.6px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:11.84px; font-weight:600; padding:4.8px 10.4px; border-radius:3px; background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.22); }
#modular-sitio .pill.yellow{ background:var(--yellow); color:var(--on-yellow); border-color:var(--yellow); }

/* ---------- Tarjetas con foto ---------- */
#modular-sitio .photo-card{ display:flex; flex-direction:column; border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow); text-decoration:none; color:inherit; transition:transform .15s ease, border-color .15s ease; height:100%; }
#modular-sitio .photo-card:hover{ transform:translateY(-2px); border-color:var(--navy); }
#modular-sitio .photo-card:focus-visible{ transform:translateY(-2px); border-color:var(--navy); }
@media (prefers-color-scheme:dark){ #modular-sitio .photo-card:hover{ border-color:var(--yellow); } #modular-sitio .photo-card:focus-visible{ border-color:var(--yellow); } }
#modular-sitio .photo-card .ph{ position:relative; aspect-ratio:4/3; background:var(--navy-tint); overflow:hidden; }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .photo-card .ph{
        position:relative;
        height:0;
        padding-top:75%;
    }
    #modular-sitio .photo-card .ph > img, #modular-sitio .photo-card .ph > iframe, #modular-sitio .photo-card .ph > svg, #modular-sitio .photo-card .ph > picture, #modular-sitio .photo-card .ph > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .photo-card .ph img{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
#modular-sitio .photo-card:hover .ph img{ transform:scale(1.04); }
#modular-sitio .photo-card .ph .tag{ position:absolute; left:11.2px; top:11.2px; background:var(--yellow); color:var(--on-yellow); font-family:'Oswald',sans-serif; font-weight:600; font-size:11.2px; text-transform:uppercase; letter-spacing:.04em; padding:3.52px 8.8px; border-radius:3px; }
#modular-sitio .photo-card .body{ padding:16px 16.8px 17.6px; display:flex; flex-direction:column; gap:4.8px; flex:1; }
#modular-sitio .photo-card .loc{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:11.52px; font-weight:600; color:var(--muted); }
#modular-sitio .photo-card h3{ font-size:16px; }
#modular-sitio .photo-card p{ font-size:13.76px; color:var(--muted); }
#modular-sitio .photo-card .go{ margin-top:auto; padding-top:8px; font-size:12.8px; font-weight:700; color:var(--navy); }
@media (prefers-color-scheme:dark){ #modular-sitio .photo-card .go{ color:var(--yellow); } }

/* Grillas */
#modular-sitio .grid-3.cards, #modular-sitio .grid-4.cards{ align-items:stretch; }
@media (max-width:900px){ #modular-sitio .grid-3.cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ #modular-sitio .grid-3.cards{ grid-template-columns:1fr; } }
#modular-sitio .section-foot{ margin-top:25.6px; display:flex; gap:11.2px; flex-wrap:wrap; }

/* Filtros de obras */
#modular-sitio .chips{ display:flex; flex-wrap:wrap; gap:7.2px; margin:-9.6px 0 25.6px; }
#modular-sitio .chip{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:12.48px; font-weight:600; padding:8px 13.6px; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; }
#modular-sitio .chip:hover{ border-color:var(--navy); }
#modular-sitio .chip[aria-pressed="true"]{ background:var(--navy); border-color:var(--navy); color:#fff; }
@media (prefers-color-scheme:dark){ #modular-sitio .chip[aria-pressed="true"]{ background:var(--yellow); border-color:var(--yellow); color:var(--on-yellow); } }
#modular-sitio .chip .n{ opacity:.65; margin-left:4px; }

/* ---------- Inicio: qué hacemos ---------- */
#modular-sitio .tile{ position:relative; display:block; border-radius:6px; overflow:hidden; aspect-ratio:4/5; text-decoration:none; color:#fff; background:var(--navy); box-shadow:var(--shadow); }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .tile{
        position:relative;
        height:0;
        padding-top:125%;
    }
    #modular-sitio .tile > img, #modular-sitio .tile > iframe, #modular-sitio .tile > svg, #modular-sitio .tile > picture, #modular-sitio .tile > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .tile img{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
#modular-sitio .tile::after{ content:''; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(180deg, rgba(27,24,70,0) 30%, rgba(27,24,70,.92) 100%); }
#modular-sitio .tile:hover img{ transform:scale(1.05); }
#modular-sitio .tile .tile-body{ position:absolute; left:0; right:0; bottom:0; padding:17.6px; z-index:1; display:flex; flex-direction:column; gap:5.6px; }
#modular-sitio .tile .k{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:11.52px; font-weight:600; color:var(--yellow); }
#modular-sitio .tile h3{ color:#fff !important; font-size:18.4px; }
#modular-sitio .tile p{ color:rgba(255,255,255,.82); font-size:13.76px; }
#modular-sitio .tile .go{ color:var(--yellow); font-weight:700; font-size:13.12px; margin-top:3.2px; }
#modular-sitio .tile.no-photo{ background:var(--navy); }
#modular-sitio .tile.no-photo .blueprint{ z-index:0; }
@media (max-width:900px){ #modular-sitio .tile{ aspect-ratio:16/11; } @supports not (aspect-ratio: 1 / 1){
        #modular-sitio .tile{
            position:relative;
            height:0;
            padding-top:68.75%;
        }
        #modular-sitio .tile > img, #modular-sitio .tile > iframe, #modular-sitio .tile > svg, #modular-sitio .tile > picture, #modular-sitio .tile > video{
            position:absolute;
            top:0;
            left:0;
            width:100%;
            height:100%;
        }
    } }

/* Franja empresa (inicio) */
#modular-sitio .empresa{ display:grid; grid-template-columns:1.1fr .9fr; gap:32px; align-items:center; }
@media (max-width:900px){ #modular-sitio .empresa{ grid-template-columns:1fr; } }
#modular-sitio .empresa .foto{ border-radius:6px; overflow:hidden; aspect-ratio:3/2; box-shadow:var(--shadow); background:var(--navy-tint); }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .empresa .foto{
        position:relative;
        height:0;
        padding-top:66.6667%;
    }
    #modular-sitio .empresa .foto > img, #modular-sitio .empresa .foto > iframe, #modular-sitio .empresa .foto > svg, #modular-sitio .empresa .foto > picture, #modular-sitio .empresa .foto > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .empresa .foto img{ width:100%; height:100%; object-fit:cover; display:block; }
#modular-sitio .checks{ list-style:none; padding:0; margin:19.2px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:9.6px 16px; }
@media (max-width:560px){ #modular-sitio .checks{ grid-template-columns:1fr; } }
#modular-sitio .checks li{ display:flex; gap:8.8px; align-items:flex-start; font-size:14.72px; }
#modular-sitio .checks li::before{ content:''; flex-shrink:0; width:18px; height:18px; margin-top:2.4px; border-radius:50%; background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23272361' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat; }

/* Cobertura compacta (inicio) */
#modular-sitio .cov-teaser{ display:grid; grid-template-columns:.9fr 1.1fr; gap:32px; align-items:center; }
@media (max-width:900px){ #modular-sitio .cov-teaser{ grid-template-columns:1fr; } }
#modular-sitio .cov-teaser .cov-map{ margin:0; }

/* ---------- Servicios: filas foto + texto ---------- */
#modular-sitio .split{ display:grid; grid-template-columns:1fr 1fr; gap:35.2px; align-items:center; padding:38.4px 0; border-top:1px solid var(--line); scroll-margin-top:90px; }
#modular-sitio .split:first-of-type{ border-top:none; padding-top:0; }
#modular-sitio .split.rev .split-media{ order:2; }
@media (max-width:860px){ #modular-sitio .split{ grid-template-columns:1fr; gap:19.2px; } #modular-sitio .split.rev .split-media{ order:0; } }
#modular-sitio .split-media{ border-radius:6px; overflow:hidden; aspect-ratio:4/3; background:var(--navy-tint); box-shadow:var(--shadow); }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .split-media{
        position:relative;
        height:0;
        padding-top:75%;
    }
    #modular-sitio .split-media > img, #modular-sitio .split-media > iframe, #modular-sitio .split-media > svg, #modular-sitio .split-media > picture, #modular-sitio .split-media > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .split-media img{ width:100%; height:100%; object-fit:cover; display:block; }
#modular-sitio .split h2{ font-size:24px; font-size:clamp(24px,3vw,32px); margin-top:5.6px; }
#modular-sitio .split p{ color:var(--muted); margin-top:11.2px; font-size:16px; }
#modular-sitio .split ul{ margin:14.4px 0 0; padding-left:17.6px; color:var(--muted); display:flex; flex-direction:column; gap:4.8px; }
#modular-sitio .split .actions{ display:flex; gap:11.2px; flex-wrap:wrap; margin-top:20.8px; }

/* ---------- Nosotros ---------- */
#modular-sitio .feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:900px){ #modular-sitio .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ #modular-sitio .feature-grid{ grid-template-columns:1fr; } }
#modular-sitio .feature{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:19.2px; box-shadow:var(--shadow); }
#modular-sitio .feature .ico{ width:40px; height:40px; border-radius:6px; background:var(--navy-tint); color:var(--navy); display:grid; place-items:center; font-family:'Oswald',sans-serif; font-weight:600; margin-bottom:11.2px; }
@media (prefers-color-scheme:dark){ #modular-sitio .feature .ico{ color:var(--yellow); } }
#modular-sitio .feature h3{ font-size:16.32px; }
#modular-sitio .feature p{ font-size:14.08px; color:var(--muted); margin-top:5.6px; }
#modular-sitio .mv{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:760px){ #modular-sitio .mv{ grid-template-columns:1fr; } }
#modular-sitio .mv-card{ border-radius:6px; padding:24px; background:var(--navy); color:#fff; position:relative; overflow:hidden; }
#modular-sitio .mv-card .eyebrow-inverse{ display:block; }
#modular-sitio .mv-card p{ color:rgba(255,255,255,.85); margin-top:9.6px; }

/* ---------- Ficha de obra ---------- */
#modular-sitio .obra-intro{ display:grid; grid-template-columns:1.2fr .8fr; gap:32px; align-items:start; }
@media (max-width:900px){ #modular-sitio .obra-intro{ grid-template-columns:1fr; } }
#modular-sitio .obra-intro .txt h2{ font-size:20.8px; margin-top:22.4px; }
#modular-sitio .obra-intro .txt h2:first-child{ margin-top:0; }
#modular-sitio .obra-intro .txt p{ color:var(--muted); margin-top:9.6px; }
#modular-sitio .obra-side{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:19.2px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14.4px; }
#modular-sitio .obra-side dl{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:7.2px 14.4px; font-size:14.4px; }
#modular-sitio .obra-side dt{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:11.52px; font-weight:600; color:var(--muted); padding-top:2.4px; }
#modular-sitio .obra-side dd{ margin:0; }
#modular-sitio .obra-side .map{ border-radius:4px; overflow:hidden; aspect-ratio:4/3; background:var(--map-land); border:1px solid var(--line); }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .obra-side .map{
        position:relative;
        height:0;
        padding-top:75%;
    }
    #modular-sitio .obra-side .map > img, #modular-sitio .obra-side .map > iframe, #modular-sitio .obra-side .map > svg, #modular-sitio .obra-side .map > picture, #modular-sitio .obra-side .map > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .obra-side .map iframe{ width:100%; height:100%; border:0; display:block; }

#modular-sitio .avances{ display:flex; flex-direction:column; gap:16px; }
#modular-sitio .avance{ border:1px solid var(--line); border-radius:6px; background:var(--surface); box-shadow:var(--shadow); overflow:hidden; }
#modular-sitio .avance > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:12.8px; padding:16px 17.6px; }
#modular-sitio .avance > summary::-webkit-details-marker{ display:none; }
#modular-sitio .avance > summary .when{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-weight:600; font-size:15.2px; color:var(--navy); }
@media (prefers-color-scheme:dark){ #modular-sitio .avance > summary .when{ color:var(--yellow); } }
#modular-sitio .avance > summary .cnt{ font-size:12.8px; color:var(--muted); }
#modular-sitio .avance > summary .caret{ margin-left:auto; transition:transform .15s ease; color:var(--muted); }
#modular-sitio .avance[open] > summary .caret{ transform:rotate(225deg); margin-top:3px; }
#modular-sitio .avance .av-body{ padding:0 17.6px 19.2px; display:flex; flex-direction:column; gap:16px; }
#modular-sitio .gal{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:8px; }
#modular-sitio .gal-item{ display:block; position:relative; aspect-ratio:4/3; border-radius:4px; overflow:hidden; background:var(--navy-tint); padding:0; border:0; cursor:zoom-in; }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .gal-item{
        position:relative;
        height:0;
        padding-top:75%;
    }
    #modular-sitio .gal-item > img, #modular-sitio .gal-item > iframe, #modular-sitio .gal-item > svg, #modular-sitio .gal-item > picture, #modular-sitio .gal-item > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .gal-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
#modular-sitio .gal-item:hover img{ transform:scale(1.05); }

/* Video liviano: carga YouTube recién al tocar */
#modular-sitio .lite-yt{ position:relative; display:block; width:100%; max-width:760px; aspect-ratio:16/9; border-radius:6px; overflow:hidden; background:#000; border:0; padding:0; cursor:pointer; }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .lite-yt{
        position:relative;
        height:0;
        padding-top:56.25%;
    }
    #modular-sitio .lite-yt > img, #modular-sitio .lite-yt > iframe, #modular-sitio .lite-yt > svg, #modular-sitio .lite-yt > picture, #modular-sitio .lite-yt > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .lite-yt img{ width:100%; height:100%; object-fit:cover; display:block; opacity:.85; }
#modular-sitio .lite-yt .play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:68px; height:48px; border-radius:12px; background:var(--yellow); display:grid; place-items:center; box-shadow:0 6px 20px rgba(0,0,0,.4); }
#modular-sitio .lite-yt .play::before{ content:''; border-left:18px solid var(--on-yellow); border-top:11px solid transparent; border-bottom:11px solid transparent; margin-left:4px; }
#modular-sitio .lite-yt:hover .play{ background:var(--yellow-deep); }
#modular-sitio .lite-yt iframe{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; border:0; }

/* Visor de fotos */
#modular-sitio .lightbox{ position:fixed; top:0; right:0; bottom:0; left:0; z-index:1000; background:rgba(10,8,30,.94); display:none; align-items:center; justify-content:center; }
#modular-sitio .lightbox.open{ display:flex; }
#modular-sitio .lightbox img{ max-width:min(94vw,1400px); max-height:84vh; object-fit:contain; border-radius:4px; }
#modular-sitio .lightbox button{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff; width:46px; height:46px; border-radius:50%; cursor:pointer; font-size:20.8px; line-height:1; display:grid; place-items:center; }
#modular-sitio .lightbox button:hover{ background:rgba(255,255,255,.2); }
#modular-sitio .lightbox .lb-close{ top:16px; right:16px; }
#modular-sitio .lightbox .lb-prev{ left:16px; top:50%; transform:translateY(-50%); }
#modular-sitio .lightbox .lb-next{ right:16px; top:50%; transform:translateY(-50%); }
#modular-sitio .lightbox .lb-count{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.75); font-size:13.6px; font-variant-numeric:tabular-nums; }

/* Navegación entre obras */
#modular-sitio .obra-nav{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ #modular-sitio .obra-nav{ grid-template-columns:1fr; } }
#modular-sitio .obra-nav a{ display:flex; flex-direction:column; gap:3.2px; padding:16px 17.6px; border:1px solid var(--line); border-radius:6px; text-decoration:none; background:var(--surface); }
#modular-sitio .obra-nav a:hover{ border-color:var(--navy); }
#modular-sitio .obra-nav a.next{ text-align:right; }
#modular-sitio .obra-nav .k{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:11.52px; font-weight:600; color:var(--muted); }
#modular-sitio .obra-nav .t{ font-weight:700; color:var(--ink); }

/* ---------- Franja de llamada a la acción ---------- */
#modular-sitio .cta-band{ display:flex; align-items:center; justify-content:space-between; gap:22.4px; flex-wrap:wrap; position:relative; }
#modular-sitio .cta-band h2{ font-size:24px; font-size:clamp(24px,3.2vw,33.6px); }
#modular-sitio .cta-band p{ margin-top:8px; }
#modular-sitio .cta-band .actions{ display:flex; gap:11.2px; flex-wrap:wrap; }

/* ---------- Pie ---------- */
#modular-sitio .site-footer{ background:var(--navy-deep); color:rgba(255,255,255,.72); padding:48px 0 25.6px; font-size:14.4px; }
#modular-sitio .ft-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:32px; }
@media (max-width:900px){ #modular-sitio .ft-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ #modular-sitio .ft-grid{ grid-template-columns:1fr; } }
#modular-sitio .ft-brand .brand img{ height:40px; width:auto; display:block; }
#modular-sitio .ft-brand p{ margin-top:14.4px; max-width:34ch; }
#modular-sitio .ft-cov{ display:inline-flex; align-items:center; gap:7.2px; margin-top:14.4px; color:var(--yellow) !important; font-weight:600; text-decoration:none; }
#modular-sitio .ft-cov:hover{ text-decoration:underline; }
#modular-sitio .ft-cov .dot{ width:7px; height:7px; border-radius:50%; background:var(--yellow); }
#modular-sitio .ft-col{ display:flex; flex-direction:column; gap:7.2px; }
#modular-sitio .ft-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:12.48px; font-weight:600; color:#fff; margin-bottom:3.2px; }
#modular-sitio .ft-col a{ color:rgba(255,255,255,.78) !important; text-decoration:none; }
#modular-sitio .ft-col a:hover{ color:var(--yellow) !important; }
#modular-sitio .ft-social{ display:flex; gap:8px; margin-top:8px; }
#modular-sitio .ft-social .icon-link{ color:var(--on-yellow) !important; font-weight:700; font-size:12.48px; }
#modular-sitio .ft-legal{ margin-top:35.2px; padding-top:19.2px; border-top:1px solid rgba(255,255,255,.1); font-size:12.8px; color:rgba(255,255,255,.5); }

/* Contacto: tarjetas sobre fondo claro */
#modular-sitio .contact-grid.light .contact-card{ background:var(--surface); border-color:var(--line); box-shadow:var(--shadow); }
#modular-sitio .contact-grid.light .contact-card .name{ color:var(--ink); }
#modular-sitio .contact-grid.light .contact-card .info{ color:var(--muted); }
#modular-sitio .contact-grid.light .contact-card .contact-link{ color:var(--navy); -webkit-text-decoration-color:var(--line); text-decoration-color:var(--line); }
@media (prefers-color-scheme:dark){ #modular-sitio .contact-grid.light .contact-card .contact-link{ color:var(--yellow); } }
#modular-sitio .contact-grid.three{ grid-template-columns:repeat(3,1fr); }
@media (max-width:860px){ #modular-sitio .contact-grid.three{ grid-template-columns:1fr; } }

/* Migas sobre fondo claro (zona de cobertura) */
#modular-sitio .crumbs-light{ color:var(--muted); margin-bottom:16px; }
#modular-sitio .crumbs-light a{ color:var(--navy) !important; }
@media (prefers-color-scheme:dark){ #modular-sitio .crumbs-light a{ color:var(--yellow) !important; } }
#modular-sitio .band.cov-page{ border-bottom:none; padding-top:35.2px; }
#modular-sitio .hero .crumbs{ margin-bottom:3.2px; }
#modular-sitio .page-head .crumbs + .eyebrow-inverse{ margin-top:14.4px; }
#modular-sitio .gal.gal-lg{ grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:9.6px; }
@media (max-width:560px){
  #modular-sitio .gal{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:5.6px; }
  #modular-sitio .gal.gal-lg{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:6.4px; }
  #modular-sitio .avance .av-body{ padding:0 12.8px 16px; }
}

/* ---------- Mapa real de la zona de entrega ---------- */
#modular-sitio .mh-mapa{ position:relative; z-index:0; width:100%; aspect-ratio:1/1; max-height:600px; border-radius:4px; overflow:hidden; background:var(--map-land); }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .mh-mapa{
        position:relative;
        height:0;
        padding-top:100%;
    }
    #modular-sitio .mh-mapa > img, #modular-sitio .mh-mapa > iframe, #modular-sitio .mh-mapa > svg, #modular-sitio .mh-mapa > picture, #modular-sitio .mh-mapa > video{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
}
#modular-sitio .mh-mapa:not(.is-live){ aspect-ratio:auto; max-height:none; }
@supports not (aspect-ratio: 1 / 1){
    #modular-sitio .mh-mapa:not(.is-live){
        height:auto;
        padding-top:0;
    }
}
@media (max-width:600px){ #modular-sitio .mh-mapa.is-live{ aspect-ratio:4/5; } @supports not (aspect-ratio: 1 / 1){
        #modular-sitio .mh-mapa.is-live{
            position:relative;
            height:0;
            padding-top:125%;
        }
        #modular-sitio .mh-mapa.is-live > img, #modular-sitio .mh-mapa.is-live > iframe, #modular-sitio .mh-mapa.is-live > svg, #modular-sitio .mh-mapa.is-live > picture, #modular-sitio .mh-mapa.is-live > video{
            position:absolute;
            top:0;
            left:0;
            width:100%;
            height:100%;
        }
    } }
#modular-sitio .mh-mapa.leaflet-container{ font-family:'Noto Sans',sans-serif; }
#modular-sitio .mh-mapa .leaflet-bar{ border:0; box-shadow:var(--shadow); }
#modular-sitio .mh-mapa .leaflet-bar a, #modular-sitio .mh-mapa .leaflet-bar a:hover{ background:var(--navy) !important; color:#fff !important; border:0 !important; width:34px; height:34px; line-height:34px; font-size:20px; }
#modular-sitio .mh-mapa .leaflet-bar a:hover{ background:var(--navy-light) !important; }
#modular-sitio .mh-mapa .leaflet-bar a.leaflet-disabled{ opacity:.45; }
#modular-sitio .mh-mapa .leaflet-control-attribution{ font-size:11px; }
#modular-sitio .mh-pin-dot{ position:absolute; left:-9px; top:-9px; width:18px; height:18px; border-radius:50%; background:var(--navy); border:3px solid #fff; box-shadow:0 0 0 2px var(--navy), 0 4px 10px rgba(0,0,0,.3); }
#modular-sitio .mh-pin-lab{ position:absolute; left:50%; top:-40px; transform:translateX(-50%); white-space:nowrap; background:var(--navy); color:#fff; font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:4px 9px; border-radius:3px; box-shadow:0 4px 12px rgba(0,0,0,.25); }
@media (prefers-color-scheme:dark){
  #modular-sitio .mh-mapa .leaflet-tile-pane{ filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.7); }
  #modular-sitio .mh-pin-dot{ background:var(--yellow); box-shadow:0 0 0 2px var(--yellow), 0 4px 10px rgba(0,0,0,.4); border-color:#1B1846; }
  #modular-sitio .mh-pin-lab{ background:var(--yellow); color:#1B1846; }
}

/* Franja con foto de fondo (Nosotros en el inicio) */
#modular-sitio .band.photo-band{ position:relative; overflow:hidden; background:var(--navy-deep); border-bottom:none; padding:96px 0; }
#modular-sitio .photo-band > img.bg{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; }
#modular-sitio .photo-band::before{ content:''; position:absolute; top:0; right:0; bottom:0; left:0; z-index:1; background:linear-gradient(90deg, rgba(27,24,70,.97) 0%, rgba(27,24,70,.9) 42%, rgba(27,24,70,.45) 72%, rgba(27,24,70,.2) 100%); }
#modular-sitio .photo-band .wrap{ position:relative; z-index:2; }
#modular-sitio .photo-band .eyebrow{ color:var(--yellow); }
#modular-sitio .photo-band h2{ color:#fff !important; }
#modular-sitio .photo-band .section-head p{ color:rgba(255,255,255,.86); }
@media (max-width:760px){
  #modular-sitio .band.photo-band{ padding:72px 0; }
  #modular-sitio .photo-band::before{ background:linear-gradient(180deg, rgba(27,24,70,.82) 0%, rgba(27,24,70,.94) 100%); }
}

/* Tarjeta blanca de contacto: el botón secundario siempre en azul, también en modo oscuro */
#modular-sitio .contact-cta-card .btn-outline-dark, #modular-sitio .contact-cta-card .btn-outline-dark:hover{ color:#272361 !important; border:2px solid #272361 !important; background:#fff; }
#modular-sitio .contact-cta-card .btn-outline-dark:hover{ background:#EDEBFA; }

/* Íconos de redes (Dashicons de WordPress) */
#modular-sitio .icon-link .dashicons{ font-size:18px; width:18px; height:18px; line-height:1; color:var(--on-yellow); }
#modular-sitio .contact-social .icon-link{ width:40px; height:40px; }
#modular-sitio .split.no-media{ grid-template-columns:1fr; }
#modular-sitio .mega a{ padding:10.4px 12.8px; }

/* Carrusel de obras (Nosotros) */
#modular-sitio .carrusel{ position:relative; }
#modular-sitio .carrusel .slide{ position:absolute; top:0; right:0; bottom:0; left:0; display:block; opacity:0; transition:opacity .9s ease; text-decoration:none; }
#modular-sitio .carrusel .slide.is-on{ opacity:1; z-index:1; }
#modular-sitio .carrusel .slide img{ width:100%; height:100%; object-fit:cover; display:block; }
#modular-sitio .carrusel .cap{ position:absolute; left:0; right:0; bottom:0; padding:35.2px 16px 12.8px; background:linear-gradient(180deg, rgba(27,24,70,0) 0%, rgba(27,24,70,.88) 100%); color:#fff; font-family:'Oswald',sans-serif; font-weight:600; font-size:13.6px; letter-spacing:.04em; text-transform:uppercase; }
#modular-sitio .carrusel .dots{ position:absolute; top:11.2px; right:11.2px; z-index:2; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; max-width:70%; }
#modular-sitio .carrusel .dots button{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.55); cursor:pointer; box-shadow:0 1px 3px rgba(0,0,0,.35); }
#modular-sitio .carrusel .dots button[aria-current="true"]{ background:var(--yellow); }

/* Menú: links en blanco y solo la página actual en amarillo (también en modo oscuro) */
#modular-sitio nav.primary > .nav-item > a{ color:#fff !important; }
#modular-sitio nav.primary > .nav-item.is-active > a, #modular-sitio nav.primary > .nav-item.is-active > button.nav-link{ color:var(--yellow) !important; }

/* Página protegida: formulario de contraseña */
#modular-sitio .mh-pw .wrap{ display:flex; justify-content:center; }
#modular-sitio .mh-pw-card{ width:100%; max-width:520px; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:32px; box-shadow:var(--shadow); }
#modular-sitio .mh-pw-card h1{ font-size:25.6px; font-size:clamp(25.6px,3.6vw,33.6px); margin-top:6.4px; }
#modular-sitio .mh-pw-lead{ color:var(--muted); margin-top:11.2px; }
#modular-sitio .mh-pw-err{ margin-top:14.4px; padding:9.6px 12.8px; border-radius:4px; background:var(--danger-tint); color:var(--danger); font-weight:600; font-size:14.4px; }
#modular-sitio .mh-pw-card form{ margin-top:19.2px; }
#modular-sitio .mh-pw-card label{ display:block; font-size:12.8px; font-weight:700; margin-bottom:5.6px; }
#modular-sitio .mh-pw-row{ display:flex; gap:9.6px; flex-wrap:wrap; }
#modular-sitio .mh-pw-row input{ flex:1 1 200px; width:auto; }
#modular-sitio .mh-pw-row .btn{ flex:0 0 auto; }
#modular-sitio .ml-table td.mq{ text-align:right; font-variant-numeric:tabular-nums; color:var(--muted); }
#modular-sitio .ml-table th:nth-child(4), #modular-sitio .ml-table th:nth-child(5){ text-align:right; }
#modular-sitio .ml-table td:nth-child(2){ white-space:normal; min-width:220px; } /* descripciones largas: bajan de renglón y el precio no se corta */
/* Precios de alquiler de maquinaria y fletes (Servicios) */
#modular-sitio .precios-serv{ padding:0 0 41.6px; scroll-margin-top:90px; }
#modular-sitio .precios-serv .ps-head{ margin-bottom:14.4px; }
#modular-sitio .precios-serv h3{ font-size:19.2px; }
#modular-sitio .precios-serv .ps-note{ font-size:13.76px; color:var(--muted); margin-top:4.8px; }
#modular-sitio .ps-wrap{ border:1px solid var(--line); border-radius:6px; overflow-x:auto; }
#modular-sitio .ml-table.ps-table{ min-width:0; }
#modular-sitio .ps-table th{ position:static; }
#modular-sitio .ps-table td:first-child{ white-space:normal; }
#modular-sitio .ps-table th:not(:first-child){ text-align:right; }
#modular-sitio .ps-foot{ margin-top:17.6px; display:flex; flex-wrap:wrap; gap:11.2px; }
#modular-sitio .ps-table td:nth-child(2){ min-width:0; white-space:nowrap; }
@media (max-width:520px){ #modular-sitio .ps-table th, #modular-sitio .ps-table td{ padding:8.8px 8px; } #modular-sitio .ml-table.ps-table{ font-size:12.8px; } }
/* Menús desplegables: puente invisible entre el botón y la lista, para que no se cierre al bajar el mouse */
#modular-sitio .mega::before{ content:''; position:absolute; left:-12px; right:-12px; top:-16px; height:16px; }
#modular-sitio nav.primary > .nav-item > a.nav-link{ cursor:pointer; }
#modular-sitio .precios-serv[hidden]{ display:none !important; }
#modular-sitio .hp-field{ position:absolute !important; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
/* Celulares chicos: las grillas de una columna no se estiran más que la pantalla */
@media (max-width:900px){ #modular-sitio .pedido-grid, #modular-sitio .cov-grid{ grid-template-columns:minmax(0,1fr); } }
#modular-sitio .pedido-grid > *, #modular-sitio .cov-grid > *{ min-width:0; }
@media (max-width:380px){ #modular-sitio .form-card, #modular-sitio .calc-card{ padding:17.6px; } #modular-sitio .cov-map{ padding:6.4px; } }
@media (max-width:400px){ #modular-sitio .ps-table th, #modular-sitio .ps-table td{ padding:8px 5.6px; } #modular-sitio .ml-table.ps-table{ font-size:11.84px; } }
/* Lista de materiales en el celular: sin la columna Código (se puede buscar igual) para que el precio se vea sin deslizar */
@media (max-width:640px){
  #modular-sitio .ml-table:not(.ps-table){ min-width:0; font-size:12.48px; }
  #modular-sitio .ml-table:not(.ps-table) th:first-child, #modular-sitio .ml-table:not(.ps-table) td.mc{ display:none; }
  #modular-sitio .ml-table:not(.ps-table) th, #modular-sitio .ml-table:not(.ps-table) td{ padding:8.8px 7.2px; }
  #modular-sitio .ml-table:not(.ps-table) td:nth-child(2){ min-width:0; }
}
/* Carrusel: flechas y puntitos fáciles de tocar */
#modular-sitio .carrusel .car-prev, #modular-sitio .carrusel .car-next{ position:absolute; top:50%; z-index:2; width:40px; height:40px; margin-top:-20px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:rgba(27,24,70,.55); color:#fff; font-size:24px; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0 0 3px; }
#modular-sitio .carrusel .car-prev{ left:10px; } #modular-sitio .carrusel .car-next{ right:10px; }
#modular-sitio .carrusel .car-prev:hover, #modular-sitio .carrusel .car-next:hover{ background:rgba(27,24,70,.85); }
@media (pointer:coarse){ #modular-sitio .carrusel .dots{ gap:0; } #modular-sitio .carrusel .dots button{ box-sizing:content-box; border:7px solid transparent; background-clip:padding-box; } }
/* Grillas: nunca más anchas que la pantalla (textos o botones largos) */
#modular-sitio .grid-2 > *, #modular-sitio .grid-3 > *, #modular-sitio .grid-4 > *, #modular-sitio .form-grid-2 > *{ min-width:0; }
@media (max-width:900px){ #modular-sitio .grid-3, #modular-sitio .grid-2{ grid-template-columns:minmax(0,1fr); } #modular-sitio .grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ #modular-sitio .form-grid-2{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:400px){ #modular-sitio .btn{ white-space:normal; text-align:center; } }
/* Materiales: en el celular la unidad va junto a la cantidad y los títulos se acortan */
#modular-sitio .ml-table .mu, #modular-sitio .ml-table .l-short{ display:none; }
@media (max-width:640px){
  #modular-sitio .materiales-lista{ padding:14.4px; }
  #modular-sitio .ml-table:not(.ps-table) th:nth-child(3), #modular-sitio .ml-table:not(.ps-table) td.mun{ display:none; }
  #modular-sitio .ml-table .mu{ display:inline; }
  #modular-sitio .ml-table .l-full{ display:none; } #modular-sitio .ml-table .l-short{ display:inline; }
}
@media (max-width:640px){ #modular-sitio .ml-table:not(.ps-table) td:nth-child(2), #modular-sitio .ps-table td:first-child{ word-break:break-word; overflow-wrap:break-word; } }
@media (max-width:360px){
  #modular-sitio .materiales-lista{ padding:9.6px; }
  #modular-sitio .ml-table:not(.ps-table){ font-size:11.52px; }
  #modular-sitio .ml-table:not(.ps-table) th, #modular-sitio .ml-table:not(.ps-table) td{ padding:7.2px 4.8px; }
}
/* Materiales: botón + para armar el presupuesto y barra de presupuesto */
#modular-sitio .ml-table th.ma, #modular-sitio .ml-table td.ma{ width:44px; text-align:center; padding-left:4.8px; padding-right:8px; }
#modular-sitio .ml-add{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; border:1.5px solid var(--navy); background:transparent; color:var(--navy); font-weight:700; font-size:18px; line-height:1; cursor:pointer; padding:0; }
#modular-sitio .ml-add:hover{ background:var(--navy-tint); }
#modular-sitio .ml-add.is-sel{ background:var(--yellow); border-color:var(--yellow); color:var(--on-yellow); font-size:15px; }
@media (prefers-color-scheme:dark){ #modular-sitio .ml-add{ border-color:var(--yellow); color:var(--yellow); } #modular-sitio .ml-add.is-sel{ color:var(--on-yellow); } }
#modular-sitio .ml-table tr.is-sel td{ background:var(--navy-tint); }
#modular-sitio .ml-foot{ flex-wrap:wrap; gap:11.2px; }
#modular-sitio .ml-presu{ position:fixed; left:12px; right:12px; bottom:12px; z-index:70; max-width:760px; margin:0 auto; background:#272361; color:#fff; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.35); }
#modular-sitio .ml-presu[hidden]{ display:none !important; }
#modular-sitio .ml-presu-bar{ display:flex; align-items:center; flex-wrap:wrap; gap:9.6px 16px; padding:12px 16px; }
#modular-sitio .ml-presu-count{ font-weight:700; margin-right:auto; }
#modular-sitio .ml-presu-ver{ background:none; border:0; color:#F6D905; text-decoration:underline; cursor:pointer; font-size:14.4px; padding:4.8px 0; }
#modular-sitio .ml-presu-panel{ max-height:45vh; overflow-y:auto; padding:12.8px 16px 3.2px; border-bottom:1px solid rgba(255,255,255,.15); }
#modular-sitio .ml-presu-list{ list-style:none !important; margin:0; padding:0; }
#modular-sitio .ml-presu-list li{ display:flex; align-items:center; gap:8px; padding:7.2px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:13.76px; }
#modular-sitio .ml-presu-list .pd{ flex:1; min-width:0; }
#modular-sitio .ml-presu-list .pd small{ opacity:.7; }
#modular-sitio .ml-presu-list .pq input{ width:62px; padding:4.8px 6.4px; border-radius:4px; border:1px solid rgba(255,255,255,.35); background:#fff; color:#1d1b3a; text-align:right; }
#modular-sitio .ml-presu-list .pu{ width:32px; opacity:.8; }
#modular-sitio .ml-presu-list .px{ background:none; border:0; color:#fff; opacity:.7; cursor:pointer; font-size:14px; width:28px; height:28px; padding:0; }
#modular-sitio .ml-presu-vaciar{ background:none; border:0; color:#fff; opacity:.75; text-decoration:underline; cursor:pointer; font-size:13.12px; margin:8px 0; padding:0; }
@media (max-width:480px){ #modular-sitio .ml-presu-bar .btn{ width:100%; } #modular-sitio .ml-presu{ left:8px; right:8px; bottom:8px; } }
/* que la barra no tape las últimas filas */
#modular-sitio .materiales-lista.con-presu{ margin-bottom:120px; }
@media (max-width:360px){ #modular-sitio .ml-table th.ma, #modular-sitio .ml-table td.ma{ width:32px; padding-left:2.4px; padding-right:4px; } #modular-sitio .ml-add{ width:26px; height:26px; font-size:16px; } }
@media (max-width:360px){ #modular-sitio .ml-table:not(.ps-table) td.mp{ font-size:10.56px; padding-left:3.2px; padding-right:3.2px; } #modular-sitio .ml-table:not(.ps-table) td.mq{ padding-left:3.2px; padding-right:3.2px; } }
@media (max-width:360px){ #modular-sitio .materiales-lista{ padding:7.2px; } #modular-sitio .ml-table:not(.ps-table) td:nth-child(2){ padding-left:4.8px; padding-right:3.2px; } }

/* Email de contacto: sin "user-select:all" (en celulares podía seleccionar en vez de abrir) + botón Copiar */
#modular-sitio .contact-card .contact-link{ -moz-user-select:auto; user-select:auto; -webkit-user-select:auto; word-break:break-word; }
#modular-sitio .mail-acciones{ margin-top:9.6px; }
#modular-sitio .mail-copiar{ font:inherit; font-size:13.6px; font-weight:600; cursor:pointer; padding:5.6px 14.4px; border-radius:999px; border:1px solid rgba(255,255,255,.35); background:transparent; color:#fff; -webkit-appearance:none; -moz-appearance:none; appearance:none; }
#modular-sitio .mail-copiar:hover{ border-color:var(--yellow); color:var(--yellow); }
#modular-sitio .mail-copiar:focus-visible{ border-color:var(--yellow); color:var(--yellow); }
#modular-sitio .mail-copiar.copiado{ background:var(--yellow); border-color:var(--yellow); color:var(--on-yellow); }

/* Materiales: columnas nuevas que se agreguen en la planilla (después del precio). En el celular van debajo de la descripción. */
#modular-sitio .ml-table th.mx{ text-align:right; }
#modular-sitio .ml-table td.mx{ text-align:right; font-variant-numeric:tabular-nums; color:var(--muted); }
#modular-sitio .ml-table .mx-m{ display:none; }
@media (max-width:640px){
  #modular-sitio .ml-table:not(.ps-table) th.mx, #modular-sitio .ml-table:not(.ps-table) td.mx{ display:none; }
  #modular-sitio .ml-table .mx-m{ display:block; font-size:.92em; color:var(--muted); margin-top:2.4px; }
}
/* Tablas de alquiler: columnas de texto que se agreguen en la planilla (por ejemplo una capacidad) */
#modular-sitio .ps-table td.mt{ text-align:right; color:var(--muted); white-space:nowrap; }
#modular-sitio .ml-table .mx-m .nw{ white-space:nowrap; }

/* ---------- Portada (Inicio): video de fondo, velo de la marca, logo grande y botones a cada página ---------- */
#modular-sitio[data-seccion="inicio"] > header.site, #modular-sitio[data-seccion="inicio"] > footer.site{ display:none; }
#modular-sitio .portada{ position:relative; overflow:hidden; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; align-items:stretch; background:#1B1846; color:#fff; isolation:isolate; }
#modular-sitio .portada > img.portada-foto, #modular-sitio .portada > video.portada-video{ position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; object-position:center; }
#modular-sitio .portada > img.portada-foto{ z-index:0; }
#modular-sitio .portada > video.portada-video{ z-index:1; opacity:0; transition:opacity 1.2s ease; }
#modular-sitio .portada.con-video > video.portada-video{ opacity:1; }
#modular-sitio .portada-velo{ position:absolute; top:0; left:0; right:0; bottom:0; z-index:2; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(39,35,97,.55) 0%, rgba(27,24,70,.78) 70%, rgba(27,24,70,.9) 100%); }
#modular-sitio .portada > .blueprint{ z-index:3; opacity:.55; }
#modular-sitio .portada-inner{ position:relative; z-index:4; flex:1 0 auto; width:100%; max-width:980px; margin:0 auto; box-sizing:border-box; padding:72px 16px 32px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
#modular-sitio .portada-logo{ margin:0; line-height:0; animation:pn-sube .9s ease both; }
#modular-sitio .portada-logo img{ display:block; width:230px; width:clamp(230px, 46vw, 560px); height:auto; filter:drop-shadow(0 6px 24px rgba(0,0,0,.35)); }
#modular-sitio .portada-lema{ margin:17.6px 0 0; font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:.14em; text-transform:uppercase; font-size:12.48px; font-size:clamp(12.48px, 1.6vw, 15.2px); color:rgba(255,255,255,.88) !important; animation:pn-sube .9s .15s ease both; }
#modular-sitio .portada-nav{ margin-top:35.2px; width:100%; display:flex; flex-direction:column; align-items:center; gap:16px; }
#modular-sitio .portada .pn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12.8px 22.4px; border-radius:6px;
  font-family:'Oswald',sans-serif; font-weight:600; font-size:16px; letter-spacing:.08em; text-transform:uppercase; text-decoration:none !important;
  color:#fff !important; background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.45); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease; animation:pn-sube .7s ease both; }
#modular-sitio .portada .pn .pn-go{ display:inline-block; max-width:0; opacity:0; overflow:hidden; transition:max-width .25s ease, opacity .25s ease; }
#modular-sitio .portada .pn:hover{ background:var(--yellow); border-color:var(--yellow); color:#1B1846 !important; transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.3); }
#modular-sitio .portada .pn:focus-visible{ background:var(--yellow); border-color:var(--yellow); color:#1B1846 !important; transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.3); }
#modular-sitio .portada .pn:hover .pn-go{ max-width:1.2em; opacity:1; }
#modular-sitio .portada .pn:focus-visible .pn-go{ max-width:1.2em; opacity:1; }
#modular-sitio .portada .pn:focus{ outline:none; }
#modular-sitio .portada .pn:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
#modular-sitio .portada .pn-cta{ background:var(--yellow); border-color:var(--yellow); color:#1B1846 !important; font-size:17.92px; padding:15.2px 35.2px; box-shadow:0 10px 30px rgba(0,0,0,.35); animation-delay:.3s; }
#modular-sitio .portada .pn-cta .pn-go{ max-width:1.2em; opacity:1; }
#modular-sitio .portada .pn-cta:hover{ background:#fff; border-color:#fff; }
#modular-sitio .portada .pn-cta:focus-visible{ background:#fff; border-color:#fff; }
#modular-sitio .pn-grid{ display:grid; grid-template-columns:repeat(6, minmax(0, auto)); gap:11.2px; justify-content:center; }
#modular-sitio .pn-grid .pn:nth-child(1){ animation-delay:.4s; } #modular-sitio .pn-grid .pn:nth-child(2){ animation-delay:.47s; } #modular-sitio .pn-grid .pn:nth-child(3){ animation-delay:.54s; }
#modular-sitio .pn-grid .pn:nth-child(4){ animation-delay:.61s; } #modular-sitio .pn-grid .pn:nth-child(5){ animation-delay:.68s; } #modular-sitio .pn-grid .pn:nth-child(6){ animation-delay:.75s; }
@media (max-width:900px){ #modular-sitio .pn-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); width:100%; max-width:560px; } }
@media (max-width:420px){ #modular-sitio .pn-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); } #modular-sitio .portada .pn{ padding:12px 9.6px; font-size:15.2px; } #modular-sitio .portada .pn-cta{ width:100%; max-width:340px; } }
@keyframes pn-sube{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ #modular-sitio .portada-logo, #modular-sitio .portada-lema, #modular-sitio .portada .pn{ animation:none; } #modular-sitio .portada > video.portada-video{ display:none; } }
#modular-sitio .portada-pie{ position:relative; z-index:4; flex:0 0 auto; padding:9.6px 16px 19.2px; display:flex; align-items:center; justify-content:center; gap:19.2px; flex-wrap:wrap; font-size:14.4px; }
#modular-sitio .portada-pie .pp-link{ color:rgba(255,255,255,.9) !important; text-decoration:underline; -webkit-text-decoration-color:rgba(255,255,255,.4); text-decoration-color:rgba(255,255,255,.4); text-underline-offset:3px; }
#modular-sitio .portada-pie .pp-link:hover{ -webkit-text-decoration-color:var(--yellow); text-decoration-color:var(--yellow); }
#modular-sitio .portada-pie .pp-redes{ display:inline-flex; gap:8px; }
@media (max-height:620px){ #modular-sitio .portada-inner{ padding-top:35.2px; padding-bottom:16px; } #modular-sitio .portada-nav{ margin-top:22.4px; } #modular-sitio .portada-lema{ margin-top:11.2px; } }
