/* Dirección visual: empresa operativa, clara y dinámica. */
:root { --lemuy-blue: #126b98; --lemuy-deep-blue: #075273; --lemuy-orange: #e86f1f; --lemuy-yellow: #f3c744; --lemuy-green: #2d895d; --lemuy-ink: #143f56; }

html { scroll-padding-top: 84px; }
.site-header { position: sticky; top: 0; background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
.main-nav > a, .button, .service-card a, .text-link { font-size: 13px; }
.eyebrow { font-size: 12px; letter-spacing: .13em; }
.button span, .service-card a span, .text-link span { display: none; }
.button { gap: 0; min-height: 50px; }

.hero { min-height: min(780px, calc(100vh - 82px)); }
.hero { background: #246e51; }
.hero::after { background: linear-gradient(90deg, rgba(10, 62, 44, .96) 0%, rgba(29, 111, 78, .9) 46%, rgba(45, 137, 93, .52) 72%, rgba(45, 137, 93, .16) 100%); }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding-top: 90px; padding-bottom: 90px; }
.hero-copy::before { content: ""; width: 58px; height: 6px; margin-bottom: 30px; background: linear-gradient(90deg, var(--lemuy-orange) 0 36%, var(--lemuy-yellow) 36% 67%, var(--lemuy-green) 67%); box-shadow: 0 5px 16px rgba(0, 0, 0, .16); }
.hero h1 { max-width: 760px; font-size: clamp(64px, 7.3vw, 106px); }
.hero h1 em { display: inline-block; }
.hero-text { max-width: 575px; font-size: 17px; line-height: 1.68; }
.hero-actions { margin-top: 40px; }
.hero-visual::before { content: ""; position: absolute; z-index: 3; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 65%, rgba(10, 62, 44, .54)); }
.hero-card { z-index: 4; right: 7%; bottom: 8%; min-width: 240px; padding: 19px 21px; background: rgba(255, 255, 255, .94); border-left: 5px solid var(--lemuy-orange); color: var(--lemuy-ink); }
.hero-card p { color: #41687b; font-size: 12px; font-weight: 700; }
.hero-card strong { color: #216947; font-size: 25px; }
.status-dot { background: var(--lemuy-green); }

.intro { padding-top: 122px; padding-bottom: 122px; }
.section-heading { border-bottom: 3px solid var(--lemuy-blue); }
.service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; border: 0; }
.service-card, .service-card:first-child { grid-row: auto; min-height: 360px; padding: 30px 26px 27px; border: 1px solid rgba(20, 63, 86, .12); border-top-width: 6px; }
.service-card:first-child .service-icon { margin-top: 30px; }
.service-card:first-child h3 { font-size: 31px; }
.service-card .service-icon { margin-top: 30px; }
.service-card h3 { font-size: 30px; line-height: .96; }
.service-card p { font-size: 15px; line-height: 1.62; }
.service-card:first-child, .service-card:nth-child(3) { background: linear-gradient(145deg, #fff1cc 0%, #fffaf0 100%); border-top-color: var(--lemuy-orange); }
.service-card:first-child .service-icon, .service-card:nth-child(3) .service-icon { background: #fff1df; border-color: #f7c78e; color: #d86218; }
.service-card:first-child .service-number, .service-card:nth-child(3) .service-number { color: #c85312; }
.service-card:first-child a, .service-card:nth-child(3) a { color: #a74610; border-color: #efb763; }
.service-card:nth-child(2) { background: linear-gradient(145deg, #dff3fc 0%, #f8fdff 100%); border-top-color: var(--lemuy-blue); }
.service-card:nth-child(4) { background: linear-gradient(145deg, #e4f4e7 0%, #f8fcf6 100%); border-top-color: var(--lemuy-green); }
.service-card:nth-child(4) .service-icon { background: #eff9ed; border-color: #abd4b2; color: var(--lemuy-green); }
.service-card:nth-child(4) .service-number { color: var(--lemuy-green); }
.service-card:nth-child(4) a { color: #216947; border-color: #9bc7a4; }

.special-services { position: relative; overflow: hidden; background: linear-gradient(120deg, var(--lemuy-deep-blue), var(--lemuy-blue) 60%, #2180aa); }
.special-services::after { content: ""; position: absolute; width: 540px; height: 540px; right: -180px; top: -360px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255, 255, 255, .035), 0 0 0 84px rgba(255, 255, 255, .03); }
.special-services > * { position: relative; z-index: 1; }
.special-grid { border-top-color: rgba(255, 255, 255, .35); }
.special-grid article { padding-top: 34px; padding-bottom: 34px; border-right-color: rgba(255, 255, 255, .25); }
.special-grid h3 { font-size: 34px; }
.special-grid p { font-size: 15px; line-height: 1.7; }

.logistics { min-height: 640px; }
.logistics-image { overflow: hidden; }
.logistics-image img { transition: transform 1s ease; }
.logistics-image:hover img { transform: scale(1.045); }
.logistics-copy { position: relative; }
.logistics-copy::after { content: ""; position: absolute; width: 88px; height: 6px; background: linear-gradient(90deg, var(--lemuy-yellow), var(--lemuy-orange)); top: 82px; left: max(7vw, 34px); }
.logistics-copy > p:not(.eyebrow) { margin-top: 27px; font-size: 16px; }
.logistics-copy li { padding: 10px 0; }

.work-gallery { background: #f6fafb; }
.gallery-heading h2 { color: var(--lemuy-deep-blue); }
.gallery-grid { gap: 16px; }
.gallery-grid img { box-shadow: 0 10px 22px rgba(7, 82, 115, .12); }

.coverage { background: linear-gradient(135deg, #edf9fd, #e4f3f7); }
.coverage h2 { color: var(--lemuy-deep-blue); }
.coverage-map { border: 8px solid #fff; background: linear-gradient(145deg, #126b98, #1d7fa9); }
.map-shape { background: #77b975; box-shadow: inset 22px 0 0 #2d895d; }
.map-dot { color: #fff; font-size: 12px; }
.map-dot span { background: var(--lemuy-orange); }
.text-link { color: var(--lemuy-deep-blue); border-bottom: 2px solid var(--lemuy-orange); }

.cta { background: linear-gradient(120deg, #e86f1f 0%, #f3c744 100%); }
.cta h2 { color: #143f56; }
.cta .eyebrow { color: #174e68; }
.cta .button-light { background: var(--lemuy-deep-blue); color: #fff; }
.cta .button-light:hover { background: #fff; color: var(--lemuy-deep-blue); }
footer { background: #063852; }
.contact-email { display: inline-flex; margin: 4px 0 28px; color: #143f56; font-size: 15px; font-weight: 700; text-decoration: underline; text-decoration-color: rgba(20, 63, 86, .45); text-underline-offset: 5px; }
.footer-contact { display: flex; flex-direction: column; gap: 7px; text-align: right; }
.footer-contact a { white-space: nowrap; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .66s ease var(--reveal-delay, 0ms), transform .66s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1120px) { .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .hero { min-height: auto; } .hero-copy { padding-top: 70px; padding-bottom: 70px; } .hero h1 { font-size: clamp(58px, 10vw, 84px); } .hero-card { bottom: 11%; } .logistics-copy::after { top: 56px; } }
@media (max-width: 560px) { html { scroll-padding-top: 72px; } .brand strong { font-size: 16px; line-height: .95; } .eyebrow { font-size: 11px; } .hero-copy { padding-top: 54px; padding-bottom: 55px; } .hero-copy::before { margin-bottom: 23px; } .hero h1 { font-size: 58px; } .hero-text, .service-card p, .special-grid p { font-size: 15px; } .hero-card { left: 24px; right: auto; min-width: 0; } .intro { padding-top: 78px; padding-bottom: 78px; } .service-grid { grid-template-columns: 1fr; } .service-card, .service-card:first-child { min-height: 325px; } .logistics-copy::after { left: 24px; top: 54px; } .coverage-map { min-height: 285px; } footer .footer-brand { max-width: 100%; } .footer-contact { text-align: left; } }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* Cobertura: diagrama de alcance operativo, no mapa geográfico. */
.coverage-diagram { display: flex; flex-direction: column; justify-content: center; gap: 0; min-height: 365px; padding: 34px clamp(25px, 6vw, 70px); color: #fff; box-shadow: 0 15px 32px rgba(7, 82, 115, .2); }
.coverage-label { margin: 0 0 23px; color: #d7f1fa; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.coverage-stop { align-items: center; display: flex; gap: 15px; position: relative; z-index: 1; }
.coverage-stop strong, .coverage-stop small { display: block; }
.coverage-stop strong { color: #fff; font-family: "Barlow Condensed", sans-serif; font-size: 28px; letter-spacing: .02em; line-height: 1; text-transform: uppercase; }
.coverage-stop small { color: #d8f1f8; font-size: 14px; margin-top: 4px; }
.coverage-pin { align-items: center; background: #fff; border: 5px solid var(--lemuy-orange); border-radius: 50%; box-shadow: 0 0 0 6px rgba(255, 255, 255, .13); display: flex; flex: 0 0 auto; height: 25px; justify-content: center; width: 25px; }
.coverage-pin::after { background: var(--lemuy-green); border-radius: 50%; content: ""; height: 7px; width: 7px; }
.coverage-route { align-items: center; color: #d7f1fa; display: flex; font-size: 12px; font-weight: 600; gap: 10px; margin: 10px 0 10px 11px; min-height: 27px; padding-left: 29px; position: relative; }
.coverage-route::before { border-left: 2px dashed rgba(255, 255, 255, .7); content: ""; height: 27px; left: 0; position: absolute; top: 0; }
.coverage-route::after { background: var(--lemuy-yellow); border-radius: 50%; content: ""; height: 7px; left: -3px; position: absolute; top: 10px; width: 7px; }
.route-final span { display: none; }
@media (max-width: 560px) { .coverage-diagram { min-height: 355px; padding: 30px 27px; } .coverage-stop strong { font-size: 25px; } }

/* Mapa ilustrado de cobertura: acompaña los hitos sin reemplazar el texto. */
.coverage-diagram { display: grid; grid-template-columns: minmax(220px, 1.05fr) minmax(230px, .95fr); align-items: center; column-gap: clamp(18px, 3vw, 36px); }
.coverage-map-frame { position: relative; width: 100%; overflow: hidden; border: 3px solid rgba(255, 255, 255, .86); border-radius: 12px; box-shadow: 0 12px 22px rgba(1, 50, 76, .2); background: #dbeef4; }
.coverage-map-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; background: #b4d5df; }
.coverage-map-tiles img { display: block; width: 100%; height: auto; }
.map-base-pin { position: absolute; left: 38%; top: 76%; width: 17px; height: 17px; border: 4px solid #fff; border-radius: 50%; background: var(--lemuy-orange); box-shadow: 0 2px 8px rgba(6, 56, 82, .35); transform: translate(-50%, -50%); }
.coverage-map-frame p { position: absolute; left: 12px; bottom: 12px; margin: 0; padding: 8px 10px; border-radius: 5px; background: rgba(6, 56, 82, .9); color: #fff; font-size: 12px; font-weight: 700; }
.coverage-map-frame p span { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--lemuy-orange); box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); }
.map-attribution { position: absolute; right: 8px; bottom: 7px; color: rgba(6, 56, 82, .78); font-size: 10px; text-decoration: none; }
.coverage-flow { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
@media (max-width: 560px) { .coverage-diagram { grid-template-columns: 1fr; row-gap: 21px; min-height: auto; padding: 28px 24px 31px; } .coverage-map-frame { max-width: 335px; margin: 0 auto; } .coverage-flow { width: min(100%, 310px); margin: 0 auto; } }

/* En teléfono y tablet vertical, el mapa y los hitos deben leerse uno bajo otro. */
@media (max-width: 900px) {
  .coverage { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .coverage-diagram { grid-template-columns: minmax(0, 1fr); min-width: 0; padding: 28px 24px 31px; row-gap: 24px; }
  .coverage-map-frame, .coverage-flow { width: min(100%, 520px); max-width: 100%; margin-inline: auto; }
  .coverage-map-tiles, .coverage-map-tiles img { min-width: 0; max-width: 100%; }
}

@media (max-width: 480px) {
  .coverage-diagram { padding: 22px 18px 26px; }
  .coverage-stop { align-items: flex-start; }
  .coverage-stop strong { font-size: 24px; }
  .coverage-route { padding-left: 25px; }
}
