/* SERVICIOS INTEGRALES DEL SURESTE | Sitio estático para Cloudflare Pages */
:root {
  --navy: #071b2e;
  --navy-2: #102d44;
  --navy-deep: #051525;
  --ink: #122b3e;
  --text: #4b6070;
  --muted: #718594;
  --blue: #247caa;
  --aqua: #82e4dc;
  --aqua-strong: #aaf3e7;
  --mist: #eef5f8;
  --surface: #ffffff;
  --outline: #dce8ed;
  --shadow: 0 22px 58px rgba(13,49,72,.1);
  --radius: 20px;
  --container: 1220px;
  --ease: cubic-bezier(.22,1,.36,1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body { margin:0; min-width:320px; font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-size:16px; line-height:1.65; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
body.is-modal-open { overflow:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor:pointer; }
::selection { background:var(--aqua); color:var(--navy); }
:focus-visible { outline:3px solid #38cbbf; outline-offset:4px; }
[hidden] { display:none !important; }
.svg-library { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.container { width:min(var(--container),calc(100% - 96px)); margin-inline:auto; }
.skip-link { position:fixed; top:-90px; left:24px; background:var(--aqua); color:var(--navy); padding:12px 20px; border-radius:5px; z-index:1000; font-weight:700; }
.skip-link:focus { top:15px; }

/* Utilidad superior y navegación */
.topline { background:var(--navy-deep); border-bottom:1px solid rgba(202,234,242,.11); color:#bdd2df; }
.topline-inner { height:40px; display:flex; justify-content:space-between; align-items:center; gap:22px; }
.topline-kicker, .topline-details, .topline-details span, .topline-details a { display:flex; align-items:center; gap:9px; }
.topline-kicker { font-size:11px; font-weight:650; letter-spacing:.105em; text-transform:uppercase; }
.topline-dot { display:block; width:7px; height:7px; background:var(--aqua); border-radius:50%; box-shadow:0 0 0 4px rgba(130,228,220,.10); }
.topline-details { gap:18px; font-size:12px; letter-spacing:.025em; }
.topline-details .icon { width:14px; height:14px; color:var(--aqua); }
.topline-details a:hover { color:var(--aqua); }
.topline-separator { width:1px; height:15px; background:rgba(255,255,255,.18); }
.site-header { position:sticky; top:0; z-index:60; background:rgba(7,27,46,.985); border-bottom:1px solid rgba(187,214,224,.11); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.header-inner { height:83px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; flex-direction:column; align-items:flex-start; width:max-content; max-width:100%; color:white; flex-shrink:0; line-height:1.18; }
.brand-line { font-size:15px; font-weight:820; letter-spacing:.07em; }
.brand-bottom { display:flex; align-items:center; gap:8px; margin-top:5px; font-size:12px; font-weight:750; color:#cde8ee; letter-spacing:.27em; }
.brand-divider { width:23px; height:2px; background:var(--aqua); display:inline-block; }
.desktop-nav { display:flex; align-items:center; gap:34px; margin-left:auto; }
.nav-link { position:relative; font-size:13px; font-weight:600; white-space:nowrap; color:#d0dce2; transition:color .25s; }
.nav-link::after { content:""; position:absolute; bottom:-8px; left:0; width:0; height:2px; background:var(--aqua); transition:width .3s var(--ease); }
.nav-link:hover, .nav-link.active { color:#fff; }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.header-actions { display:flex; align-items:center; gap:16px; }
.header-contact { display:inline-flex; align-items:center; gap:14px; justify-content:center; background:var(--aqua); color:var(--navy); padding:12px 17px; border:1px solid var(--aqua); border-radius:7px; font-size:12px; font-weight:800; white-space:nowrap; transition:transform .25s var(--ease),background .25s; }
.header-contact .icon { width:16px; height:16px; }
.header-contact:hover { background:var(--aqua-strong); transform:translateY(-2px); }
.menu-toggle { display:none; width:44px; height:44px; padding:10px; align-items:center; justify-content:center; color:#fff; border:1px solid rgba(255,255,255,.22); border-radius:8px; background:transparent; }
.menu-toggle .icon { width:24px; height:24px; }
.mobile-nav { display:none; padding:10px 28px 24px; background:var(--navy); border-top:1px solid rgba(255,255,255,.12); }
.mobile-nav a { color:#e8f4f7; display:block; padding:12px 6px; font-weight:600; font-size:14px; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-nav a:last-child { border-bottom:0; }

/* Presentación principal */
.hero { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 94% 0%,#164767 0%,transparent 40%),linear-gradient(128deg,#071b2e 0%,#09273e 54%,#071d31 100%); color:#fff; }
.hero-grid-pattern { position:absolute; z-index:-1; inset:0; opacity:.37; pointer-events:none; background-image:linear-gradient(rgba(173,220,238,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(173,220,238,.06) 1px,transparent 1px); background-size:75px 75px; -webkit-mask-image:linear-gradient(90deg, transparent 13%,#000 100%); mask-image:linear-gradient(90deg, transparent 13%,#000 100%); }
.hero-halo { position:absolute; z-index:-1; width:540px; height:540px; right:-200px; bottom:-330px; border:1px solid rgba(130,228,220,.20); border-radius:50%; box-shadow:0 0 0 66px rgba(119,234,226,.025),0 0 0 132px rgba(119,234,226,.022),0 0 0 200px rgba(119,234,226,.012); }
.hero-inner { min-height:665px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; gap:42px; padding:88px 0 96px; }
.hero-copy { position:relative; z-index:2; max-width:710px; }
.eyebrow { display:flex; align-items:center; gap:12px; font-size:11px; line-height:1.4; letter-spacing:.19em; font-weight:800; text-transform:uppercase; }
.eyebrow-bar { width:25px; height:2px; background:var(--aqua); display:inline-block; flex-shrink:0; }
.hero-eyebrow { color:var(--aqua-strong); margin:0 0 28px; }
.hero h1 { max-width:750px; margin:0; font-size:clamp(43px,5.1vw,72px); font-weight:760; line-height:1.105; letter-spacing:-.047em; text-wrap:balance; }
.hero h1 .highlight { color:var(--aqua); }
.hero-description { max-width:575px; margin:26px 0 0; font-size:17px; line-height:1.82; color:#c1d3de; }
.hero-cta { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-height:54px; padding:13px 22px; border-radius:8px; font-weight:790; line-height:1.3; font-size:13px; transition:transform .25s var(--ease), background .25s, border-color .25s, box-shadow .25s; }
.btn:hover { transform:translateY(-3px); }
.btn .icon { width:18px; height:18px; }
.btn-primary { background:var(--aqua); color:var(--navy); border:1px solid var(--aqua); box-shadow:0 12px 30px rgba(130,228,220,.14); }
.btn-primary:hover { background:#b9f8ef; border-color:#b9f8ef; box-shadow:0 15px 33px rgba(130,228,220,.22); }
.btn-ghost { background:rgba(255,255,255,.045); color:#fff; border:1px solid rgba(255,255,255,.29); }
.btn-ghost:hover, .btn-outline:hover { background:rgba(255,255,255,.12); border-color:#e5fbf9; }
.hero-benefits { max-width:635px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px; padding-top:22px; border-top:1px solid rgba(213,239,244,.18); }
.hero-benefits > div { display:flex; align-items:center; gap:12px; color:#e1edf2; font-size:12px; font-weight:650; line-height:1.4; }
.hero-benefits > div .icon { height:26px; width:26px; stroke-width:1.45; color:var(--aqua); }
.hero-visual { position:relative; width:100%; min-height:506px; height:100%; max-height:570px; }
.hero-main-image { position:absolute; top:6px; right:0; height:85%; width:88%; border:1px solid rgba(210,247,250,.35); border-radius:17px 17px 75px 17px; padding:7px; background:rgba(255,255,255,.08); overflow:hidden; box-shadow:0 35px 60px rgba(1,11,20,.32); }
.hero-main-image::after { content:""; position:absolute; inset:7px; z-index:1; background:linear-gradient(180deg,transparent 52%,rgba(1,20,36,.32)); border-radius:11px 11px 69px 11px; pointer-events:none; }
.hero-main-image img { width:100%; height:100%; object-fit:cover; object-position:49% center; border-radius:11px 11px 69px 11px; }
.hero-img-rail { position:absolute; top:28px; left:4px; display:flex; align-items:center; gap:15px; writing-mode:vertical-rl; transform:rotate(180deg); color:#aacbd8; font-size:10px; letter-spacing:.25em; font-weight:750; }
.hero-img-rail .rail-line { width:1px; height:65px; background:var(--aqua); }
.hero-image-detail { position:absolute; bottom:0; left:0; width:58%; height:178px; border-radius:13px; overflow:hidden; background:var(--navy); border:7px solid #0a243b; box-shadow:0 16px 44px rgba(0,7,14,.45); }
.hero-image-detail::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,20,33,.89),transparent 74%); }
.hero-image-detail img { width:100%; height:100%; object-fit:cover; object-position:center 56%; }
.hero-detail-caption { position:absolute; inset:auto 16px 14px; z-index:2; display:flex; flex-direction:column; gap:2px; }
.mini-kicker { color:var(--aqua); font-size:9px; font-weight:750; letter-spacing:.17em; }
.hero-detail-caption strong { font-size:14px; line-height:1.2; }
.hero-corner { position:absolute; right:-12px; top:-7px; width:72px; height:72px; border-top:2px solid var(--aqua); border-right:2px solid var(--aqua); border-radius:0 2px 0 0; opacity:.8; }
.hero-bottom-line { position:absolute; bottom:0; width:100%; height:4px; background:linear-gradient(90deg,rgba(130,228,220,0),var(--aqua),rgba(130,228,220,0)); opacity:.5; }
.service-ribbon { overflow:hidden; background:#e6f0f4; border-bottom:1px solid #d4e4eb; }
.ribbon-inner { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:24px; white-space:nowrap; color:#335369; font-size:10px; font-weight:850; letter-spacing:.11em; }
.ribbon-inner i { display:inline-block; flex:0 0 4px; height:4px; border-radius:50%; background:#6ba6bb; }

/* Secciones y servicios */
.section { padding:112px 0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:48px; margin-bottom:50px; }
.section-eyebrow { color:#14779d; margin:0 0 17px; }
.section-eyebrow .eyebrow-bar { background:#30b8bb; }
h2 { margin:0; font-size:clamp(34px,4.2vw,54px); line-height:1.16; letter-spacing:-.045em; font-weight:770; text-wrap:balance; }
.muted-heading { color:#78939e; }
.section-lead { width:300px; max-width:100%; margin:0 0 4px; color:var(--text); font-size:15px; line-height:1.75; }
.services-section { background:#fff; }
.services-heading h2 { max-width:700px; }
.service-group-label { display:flex; align-items:center; gap:25px; margin:0 0 18px; color:#296987; font-size:11px; letter-spacing:.14em; font-weight:850; }
.service-group-label div { height:1px; flex:1; background:#e0ebef; }
.second-label { margin-top:43px; }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-card { min-height:290px; display:flex; flex-direction:column; padding:31px 29px 27px; border:1px solid #deeaee; border-radius:var(--radius); background:#fbfdfe; box-shadow:0 10px 28px rgba(6,46,70,.028); transition:transform .4s var(--ease),border-color .3s,box-shadow .35s,background .3s; }
.service-card:hover { transform:translateY(-7px); background:#fff; border-color:#98d7db; box-shadow:var(--shadow); }
.service-card-top { display:flex; align-items:start; justify-content:space-between; gap:15px; margin-bottom:26px; }
.service-icon { width:60px; height:60px; display:flex; align-items:center; justify-content:center; border:1px solid #c7e9eb; border-radius:15px; background:#e8f7f6; color:#146f8b; }
.service-icon .icon { height:32px; width:32px; stroke-width:1.45; }
.service-index { font-size:12px; font-weight:850; color:#b0c0c9; letter-spacing:.12em; }
.service-card h3 { font-size:22px; line-height:1.28; letter-spacing:-.025em; margin:0 0 11px; font-weight:760; }
.service-card p { color:#637786; margin:0 0 23px; line-height:1.7; font-size:14px; }
.service-card > a { display:inline-flex; align-items:center; justify-content:space-between; gap:10px; width:100%; margin-top:auto; padding-top:17px; border-top:1px solid #e3ecf0; font-size:12px; font-weight:800; color:#0a7294; }
.service-card > a .icon { width:16px; height:16px; transition:transform .25s; }
.service-card > a:hover .icon { transform:translateX(5px); }
.assurances { position:relative; overflow:hidden; background:linear-gradient(111deg,#e7f3f5,#edf7f9 63%,#e0f0f1); padding:78px 0; border-top:1px solid #dcebf0; border-bottom:1px solid #dcebf0; }
.assurances::after { content:""; position:absolute; right:-80px; top:-130px; border:1px solid rgba(29,123,150,.10); border-radius:50%; width:400px; height:400px; box-shadow:0 0 0 70px rgba(29,123,150,.03); pointer-events:none; }
.assurance-layout { position:relative; display:grid; grid-template-columns:.95fr 1.05fr; gap:75px; align-items:center; z-index:1; }
.assurance-intro h2 { font-size:clamp(31px,3.35vw,43px); max-width:480px; }
.assurance-intro > p:last-child { margin:22px 0 0; max-width:425px; font-size:15px; color:#4d6777; }
.assurance-items { display:grid; gap:16px; }
.assurance-item { display:flex; gap:21px; align-items:center; min-height:122px; padding:24px 26px; background:#fff; border:1px solid #d6e9ec; border-radius:15px; box-shadow:0 12px 30px rgba(6,48,64,.05); }
.assurance-icon { width:62px; height:62px; border-radius:13px; display:grid; flex-shrink:0; place-items:center; background:#e5f6f4; color:#13889b; }
.assurance-icon .icon { width:29px; height:29px; }
.assurance-item h3 { margin:0 0 4px; font-size:18px; line-height:1.3; }
.assurance-item p { margin:0; font-size:14px; color:#647c88; }

/* Portafolio fotográfico */
.gallery-section { background:#f8fbfc; }
.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:34px; margin-bottom:37px; }
.gallery-heading h2 { max-width:750px; }
.gallery-heading p:not(.eyebrow) { margin:15px 0 0; font-size:15px; color:var(--text); }
.gallery-counter { flex-shrink:0; display:inline-flex; align-items:center; color:#447687; border:1px solid #c9dfe6; border-radius:30px; font-size:10px; letter-spacing:.14em; font-weight:850; padding:9px 15px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:176px; gap:16px; }
.gallery-card { position:relative; display:block; width:100%; height:100%; padding:6px; text-align:left; border:1px solid #c7dbe2; border-radius:17px; background:#fff; overflow:hidden; box-shadow:0 7px 20px rgba(8,44,65,.045); transition:border-color .35s,box-shadow .35s,transform .45s var(--ease); }
.gallery-card:hover { transform:translateY(-4px); border-color:#67bdbc; box-shadow:0 16px 35px rgba(10,50,76,.14); }
.gallery-card::after { content:""; position:absolute; inset:6px; border-radius:11px; pointer-events:none; background:linear-gradient(180deg,transparent 50%,rgba(3,18,30,.79)); }
.gallery-card img { width:100%; height:100%; border-radius:11px; object-fit:cover; transition:transform .7s var(--ease), filter .35s; }
.gallery-card:hover img { transform:scale(1.055); filter:saturate(1.08); }
.gallery-card-featured { grid-column:span 2; grid-row:span 2; }
.gallery-card-wide { grid-column:span 2; }
.gallery-card:last-child { grid-column:span 2; }
.gallery-card:nth-child(7) img, .gallery-card:nth-child(10) img { object-position:center 28%; }
.gallery-card:nth-child(12) img { object-position:center 24%; }
.gallery-card-bottom { position:absolute; z-index:1; bottom:19px; left:18px; right:18px; display:flex; align-items:center; justify-content:space-between; gap:14px; color:#fff; font-size:11px; font-weight:800; letter-spacing:.12em; }
.gallery-card-bottom .icon { width:19px; height:19px; }
.gallery-hint { margin:20px 0 0; display:flex; align-items:center; gap:8px; color:#6d8291; font-size:13px; }
.gallery-hint .icon { width:17px; height:17px; color:#268e9d; }

/* Zona de atención */
.coverage-section { padding:104px 0; background:#fff; overflow:hidden; }
.coverage-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
.coverage-copy h2 { max-width:525px; }
.coverage-copy h2 span { color:#1382a5; }
.coverage-copy > p:not(.eyebrow) { max-width:465px; color:#5c7581; margin:26px 0; font-size:16px; line-height:1.8; }
.text-link { display:inline-flex; align-items:center; gap:24px; color:#0a7696; font-weight:800; border-bottom:2px solid #9ad7da; padding:4px 0 9px; font-size:14px; }
.text-link .icon { width:17px; height:17px; transition:transform .25s; }
.text-link:hover .icon { transform:translateX(5px); }
.coverage-visual { position:relative; display:grid; place-items:center; isolation:isolate; min-height:380px; background:radial-gradient(circle at 50% 50%,#e9f7f7 0,#f2f8fa 42%,#f8fbfc 70%); border:1px solid #dfedf1; border-radius:24px; overflow:hidden; }
.coverage-visual::before { content:""; position:absolute; width:650px; height:1px; transform:rotate(-28deg); background:rgba(32,130,154,.12); }
.coverage-visual::after { content:""; position:absolute; width:650px; height:1px; transform:rotate(28deg); background:rgba(32,130,154,.12); }
.coverage-circle { position:absolute; border-radius:50%; border:1px solid rgba(37,146,164,.19); z-index:-1; }
.circle-one { width:190px; height:190px; background:rgba(129,221,215,.08); }
.circle-two { width:300px; height:300px; }
.circle-three { width:420px; height:420px; border-style:dashed; }
.coverage-center { z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; padding:26px; }
.coverage-pin { display:grid; place-items:center; width:54px; height:54px; margin-bottom:16px; background:#0c7793; border:7px solid #d5f2f0; color:#fff; border-radius:50%; box-shadow:0 7px 20px rgba(12,110,138,.14); }
.coverage-pin .icon { width:21px; height:21px; }
.coverage-center strong { font-size:20px; letter-spacing:.13em; font-weight:850; }
.coverage-center small { font-size:9px; letter-spacing:.13em; font-weight:800; color:#527b8a; }
.coverage-corner-label { position:absolute; bottom:19px; right:22px; font-size:9px; letter-spacing:.17em; color:#7b9baa; font-weight:850; }

/* Contacto */
.contact-section { position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(120deg,#06192b 0%,#123953 100%); padding:102px 0; color:#fff; }
.contact-section::before { content:""; position:absolute; z-index:-1; inset:0; background-image:radial-gradient(rgba(187,239,238,.12) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(to left,#000,transparent 75%); -webkit-mask-image:linear-gradient(to left,#000,transparent 75%); }
.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) 370px; align-items:center; gap:85px; }
.contact-eyebrow { color:var(--aqua); margin:0 0 24px; }
.contact-main h2 { max-width:760px; font-size:clamp(36px,4.4vw,57px); }
.contact-main > p:not(.eyebrow) { max-width:580px; font-size:16px; color:#bfd2dc; margin:24px 0 0; }
.contact-buttons { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }
.btn-outline { background:transparent; border:1px solid rgba(255,255,255,.37); color:#fff; }
.contact-panel { padding:33px 29px 31px; border:1px solid rgba(167,228,229,.22); border-radius:19px; background:rgba(255,255,255,.055); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.panel-overline { display:block; font-size:10px; letter-spacing:.18em; color:#a9c9d7; font-weight:800; }
.contact-number { display:block; font-size:clamp(26px,3vw,33px); font-weight:820; letter-spacing:-.035em; line-height:1.3; margin-top:10px; color:var(--aqua); }
.contact-number:hover { text-decoration:underline; }
.contact-divider { height:1px; background:rgba(199,232,240,.2); margin:27px 0; }
.contact-info-row { display:flex; gap:14px; align-items:flex-start; margin-top:21px; }
.contact-info-icon { display:grid; flex-shrink:0; place-items:center; width:37px; height:37px; border-radius:9px; background:rgba(130,228,220,.11); color:var(--aqua); }
.contact-info-icon .icon { width:18px; height:18px; }
.contact-info-row div { display:flex; flex-direction:column; gap:2px; padding-top:1px; }
.contact-info-row strong { font-size:13px; font-weight:760; }
.contact-info-row div > span, .contact-info-row div > a { color:#bcdbdf; font-size:13px; }
.contact-info-row div > a:hover { color:var(--aqua); }

/* Pie de página */
.site-footer { background:#041321; color:#cedfe6; }
.footer-content { padding-top:70px; padding-bottom:64px; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,.65fr) minmax(0,1fr); gap:80px; }
.footer-about p { max-width:400px; color:#849eae; font-size:14px; margin:24px 0 0; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:13px; }
.footer-links > span:first-child { color:var(--aqua); font-size:10px; font-weight:800; letter-spacing:.17em; margin:1px 0 7px; }
.footer-links a, .footer-normal { color:#b9cdd6; font-size:13px; line-height:1.5; }
.footer-links a:hover { color:#fff; }
.footer-bottom { min-height:75px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid rgba(215,239,245,.10); color:#7292a2; font-size:10px; font-weight:750; letter-spacing:.12em; }
.footer-bottom a { display:inline-flex; align-items:center; gap:9px; font-size:11px; color:#acc4ce; letter-spacing:0; }
.footer-bottom a:hover { color:var(--aqua); }
.footer-bottom .icon { width:16px; height:16px; }

/* Acceso continuo a WhatsApp */
.floating-contact { position:fixed; bottom:24px; right:24px; z-index:70; display:grid; place-items:center; width:60px; height:60px; border-radius:18px; background:#117e79; color:white; box-shadow:0 15px 30px rgba(3,46,44,.29); border:2px solid rgba(255,255,255,.79); transition:transform .25s var(--ease),background .25s; }
.floating-contact:hover { transform:translateY(-5px); background:#0a6d69; }
.floating-contact > .icon { width:29px; height:29px; stroke-width:1.7; }
.floating-tooltip { position:absolute; right:70px; top:50%; transform:translate(6px,-50%); opacity:0; visibility:hidden; pointer-events:none; padding:6px 12px; background:var(--navy); color:#fff; border-radius:6px; font-size:12px; font-weight:750; transition:transform .25s,opacity .25s,visibility .25s; }
.floating-contact:hover .floating-tooltip { transform:translate(0,-50%); opacity:1; visibility:visible; }

/* Visor de imágenes */
.lightbox { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:25px 72px; color:#fff; }
.lightbox-backdrop { position:absolute; inset:0; background:rgba(2,13,23,.94); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.lightbox-viewer { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:100%; max-width:1240px; height:100%; max-height:96vh; }
.lightbox-figure { margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:0; max-width:100%; max-height:100%; }
.lightbox-figure img { display:block; max-width:min(100%,1050px); max-height:calc(100vh - 136px); object-fit:contain; border:1px solid rgba(255,255,255,.23); border-radius:7px; box-shadow:0 30px 90px rgba(0,0,0,.42); }
.lightbox-figure figcaption { padding-top:16px; color:#cae4e6; font-size:12px; font-weight:800; letter-spacing:.16em; }
.lightbox-close, .lightbox-prev, .lightbox-next { display:grid; place-items:center; position:absolute; z-index:3; width:46px; height:46px; padding:9px; border:1px solid rgba(255,255,255,.23); border-radius:50%; background:rgba(255,255,255,.09); color:#fff; transition:background .2s,transform .2s; }
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover { background:rgba(130,228,220,.19); }
.lightbox-close { top:3px; right:-34px; }
.lightbox-prev { left:-54px; top:50%; transform:translateY(-50%); }
.lightbox-next { right:-54px; top:50%; transform:translateY(-50%); }
.lightbox-prev:hover, .lightbox-next:hover { transform:translateY(-50%) scale(1.08); }
.lightbox-close .icon, .lightbox-prev .icon, .lightbox-next .icon { width:23px; height:23px; }

/* Animaciones discretas; el contenido se mantiene visible sin JavaScript */
.js .reveal { opacity:0; transform:translateY(25px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.js .reveal.is-visible { opacity:1; transform:translateY(0); }
.services-grid > .reveal:nth-child(2), .assurance-items > .reveal:nth-child(2) { transition-delay:.07s; }
.services-grid > .reveal:nth-child(3) { transition-delay:.13s; }

/* Tablets y pantallas intermedias */
@media (max-width:1160px) {
  .container { width:min(var(--container),calc(100% - 64px)); }
  .desktop-nav { gap:23px; }
  .nav-link { font-size:12px; }
  .hero-inner { gap:26px; }
  .hero h1 { font-size:clamp(40px,5.1vw,62px); }
  .hero-visual { min-height:450px; }
  .hero-benefits { gap:12px; }
  .hero-benefits > div { font-size:11px; gap:8px; }
  .ribbon-inner { gap:18px; font-size:9px; }
  .contact-layout { gap:50px; }
  .footer-content { gap:48px; }
}
@media (max-width:930px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:flex; }
  .mobile-nav:not([hidden]) { display:block; }
  .header-inner { height:76px; }
  .hero-inner { min-height:auto; grid-template-columns:1.05fr .95fr; gap:20px; padding:77px 0 75px; }
  .hero h1 { font-size:clamp(38px,5.2vw,50px); }
  .hero-description { font-size:15px; }
  .hero-visual { min-height:390px; }
  .hero-image-detail { height:126px; width:67%; }
  .hero-benefits { margin-top:32px; grid-template-columns:1fr 1fr; }
  .hero-benefits > div:last-child { grid-column:span 2; }
  .section { padding:86px 0; }
  .section-heading { gap:22px; }
  .services-grid { gap:12px; }
  .service-card { padding:24px 20px 22px; min-height:282px; }
  .service-card h3 { font-size:19px; }
  .assurance-layout { gap:35px; }
  .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:170px; }
  .gallery-card-featured { grid-column:span 2; grid-row:span 2; }
  .gallery-card:last-child { grid-column:span 1; }
  .coverage-layout { gap:30px; }
  .contact-layout { grid-template-columns:minmax(0,1fr) 330px; gap:26px; }
  .contact-section { padding:84px 0; }
  .footer-content { gap:25px; }
}

/* Teléfonos grandes y tabletas verticales */
@media (max-width:720px) {
  .container { width:calc(100% - 42px); }
  .topline-inner { height:37px; }
  .topline-kicker { font-size:9px; }
  .topline-details > span, .topline-separator { display:none !important; }
  .topline-details { font-size:11px; }
  .brand-line { font-size:13px; }
  .brand-bottom { font-size:11px; letter-spacing:.23em; }
  .brand-divider { width:18px; }
  .header-contact { display:none; }
  .header-inner { height:70px; }
  .hero-inner { grid-template-columns:1fr; padding:66px 0 58px; gap:43px; }
  .hero-copy { max-width:620px; }
  .hero h1 { font-size:clamp(40px,9vw,64px); }
  .hero-description { font-size:16px; max-width:580px; }
  .hero-benefits { grid-template-columns:repeat(3,1fr); margin-top:35px; }
  .hero-benefits > div:last-child { grid-column:span 1; }
  .hero-visual { max-width:565px; width:100%; height:460px; min-height:0; margin-inline:auto; }
  .hero-main-image { top:0; height:88%; width:89%; }
  .hero-image-detail { height:150px; width:54%; }
  .service-ribbon { overflow-x:auto; scrollbar-width:none; }
  .service-ribbon::-webkit-scrollbar { display:none; }
  .ribbon-inner { justify-content:flex-start; width:max-content; min-width:100%; gap:21px; }
  .section { padding:79px 0; }
  .section-heading, .gallery-heading { flex-direction:column; align-items:flex-start; gap:18px; }
  .section-lead { width:auto; }
  .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .service-card { min-height:270px; }
  .services-grid > .service-card:last-child { grid-column:span 2; }
  .services-grid > .service-card:last-child .service-card-top { margin-bottom:15px; }
  .assurance-layout { grid-template-columns:1fr; gap:27px; }
  .assurances { padding:72px 0; }
  .assurance-items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .assurance-item { flex-direction:column; align-items:flex-start; padding:20px; }
  .assurance-icon { width:50px; height:50px; }
  .gallery-counter { margin:4px 0 0; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:180px; gap:12px; }
  .gallery-card-featured { grid-column:span 2; grid-row:span 2; }
  .gallery-card-wide, .gallery-card:last-child { grid-column:span 2; }
  .coverage-layout { grid-template-columns:1fr; gap:35px; }
  .coverage-section { padding:75px 0; }
  .coverage-visual { min-height:340px; }
  .contact-layout { grid-template-columns:1fr; gap:40px; }
  .contact-main h2 { max-width:650px; }
  .contact-panel { max-width:500px; width:100%; }
  .footer-content { grid-template-columns:repeat(2,1fr); gap:38px 24px; padding-top:60px; padding-bottom:50px; }
  .footer-about { grid-column:span 2; }
  .footer-about p { max-width:550px; }
  .lightbox { padding:20px 38px; }
  .lightbox-prev { left:-35px; }
  .lightbox-next { right:-35px; }
  .lightbox-close { right:-18px; }
}
@media (max-width:500px) {
  .container { width:calc(100% - 36px); }
  .topline-kicker { font-size:8.5px; letter-spacing:.045em; }
  .topline-details { font-size:10px; }
  .topline-details .icon { display:none; }
  .brand-line { font-size:12px; }
  .brand-bottom { font-size:10px; }
  .hero-inner { padding-top:58px; gap:32px; }
  .hero-eyebrow { margin-bottom:20px; font-size:9px; letter-spacing:.15em; }
  .hero h1 { font-size:clamp(37px,10.7vw,53px); }
  .hero-description { font-size:15px; margin-top:20px; }
  .hero-cta { flex-direction:column; align-items:stretch; margin-top:25px; }
  .hero-cta .btn { width:100%; }
  .hero-benefits { gap:9px; margin-top:32px; padding-top:21px; }
  .hero-benefits > div { flex-direction:column; align-items:flex-start; gap:9px; font-size:10.5px; }
  .hero-benefits > div .icon { width:23px; height:23px; }
  .hero-visual { height:355px; }
  .hero-main-image { width:91%; height:86%; border-radius:12px 12px 50px 12px; }
  .hero-main-image img { border-radius:9px 9px 42px 9px; }
  .hero-image-detail { width:56%; height:119px; }
  .hero-detail-caption { inset:auto 9px 9px; }
  .hero-detail-caption strong { font-size:11px; }
  .mini-kicker { font-size:8px; }
  .hero-img-rail { top:13px; left:2px; font-size:8px; }
  .hero-corner { width:42px; height:42px; right:-4px; }
  h2 { font-size:clamp(30px,8.2vw,43px); }
  .section { padding:70px 0; }
  .services-grid { grid-template-columns:1fr; gap:13px; }
  .services-grid > .service-card:last-child { grid-column:auto; }
  .service-card { min-height:0; padding:24px; }
  .service-card-top { margin-bottom:16px; }
  .service-icon { width:54px; height:54px; }
  .service-icon .icon { width:29px; height:29px; }
  .service-card h3 { font-size:21px; }
  .service-card p { margin-bottom:20px; }
  .second-label { margin-top:32px; }
  .assurances { padding:64px 0; }
  .assurance-items { grid-template-columns:1fr; }
  .assurance-item { flex-direction:row; align-items:center; min-height:108px; }
  .gallery-grid { grid-auto-rows:140px; gap:9px; }
  .gallery-card { border-radius:12px; padding:4px; }
  .gallery-card img { border-radius:8px; }
  .gallery-card::after { inset:4px; border-radius:8px; }
  .gallery-card-bottom { bottom:13px; left:12px; right:12px; font-size:9px; }
  .gallery-card-bottom .icon { width:16px; height:16px; }
  .gallery-card-featured { grid-row:span 2; }
  .gallery-heading p:not(.eyebrow) { font-size:14px; }
  .coverage-section { padding:70px 0; }
  .coverage-visual { min-height:310px; }
  .circle-one { width:160px; height:160px; }
  .circle-two { width:260px; height:260px; }
  .circle-three { width:375px; height:375px; }
  .coverage-center strong { font-size:18px; }
  .contact-section { padding:70px 0; }
  .contact-main h2 { font-size:clamp(33px,9vw,46px); }
  .contact-buttons { flex-direction:column; }
  .contact-buttons .btn { width:100%; }
  .contact-panel { padding:27px 23px; }
  .footer-content { gap:32px 16px; }
  .footer-links { gap:12px; }
  .footer-bottom { align-items:flex-start; padding:23px 0; flex-direction:column; gap:10px; }
  .floating-contact { width:55px; height:55px; border-radius:16px; right:15px; bottom:15px; }
  .floating-contact > .icon { width:26px; height:26px; }
  .floating-tooltip { display:none; }
  .lightbox { padding:18px; }
  .lightbox-viewer { width:100%; }
  .lightbox-figure { width:100%; }
  .lightbox-figure img { max-width:100%; max-height:calc(100vh - 145px); }
  .lightbox-close { right:0; top:0; width:42px; height:42px; }
  .lightbox-prev, .lightbox-next { top:auto; bottom:34px; width:42px; height:42px; }
  .lightbox-prev { left:4px; }
  .lightbox-next { right:4px; }
  .lightbox-figure figcaption { padding-top:19px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js .reveal { opacity:1; transform:none; }
}
