/* PMO: photographic composition, precise geometry and the original brand palette. */
h1,h2,h3 { text-wrap: balance; }
h1 { letter-spacing: -.055em; }
p { text-wrap: pretty; }
.site-header { background:var(--petrol); color:var(--powder); border-bottom:1px solid #fffef91f; }
.header-inner { min-height: 96px; }
.brand img { transform:translateY(-3px); }
.primary-nav :where(.nav-item>a,.nav-cta) { font-size: 13px; }
.primary-nav :where(.nav-item>a,.nav-cta):hover { color:var(--lime); }
.primary-nav .nav-cta { background:var(--lime); color:var(--petrol); border:0; }
.primary-nav .nav-cta:hover { background:#cee25c; color:var(--petrol); }
.menu-toggle { color:var(--powder); }
.button { border-radius: 0; padding: 0 0 0 22px; gap: 24px; overflow: hidden; }
.arrow { position:relative; display:inline-block; width:16px; height:16px; font-size:0!important; line-height:0; vertical-align:middle; }
/* Single continuous stroke: shaft and head are one path. */
:root { --arrow-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.5 12.5 3.5H5.5 12.5V10.5'/%3E%3C/svg%3E"); }
.arrow::before { content:''; position:absolute; left:50%; top:50%; width:16px; height:16px; transform:translate(-50%,-50%); background:currentColor; -webkit-mask:var(--arrow-icon) center/contain no-repeat; mask:var(--arrow-icon) center/contain no-repeat; }
.button .arrow { display: grid; place-items: center; align-self: stretch; width: 54px; min-height: 54px; border-left: 1px solid #203e4a30; flex-shrink: 0; }
.cta-band .button .arrow { border-color: #fffef933; }
.text-link { border-bottom-color: #203e4a40; gap: 32px; }
.section-heading .text-link { white-space:nowrap; }
.text-link:hover { border-bottom-color: var(--petrol); }
.eyebrow { display: flex; align-items: center; gap: 12px; letter-spacing: .13em; }
.eyebrow::before { content: ''; width: 24px; height: 2px; background: var(--lime); flex-shrink: 0; }
.hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height:max(650px,calc(100svh - 96px)); overflow: hidden; background:var(--petrol); }
.hero-photo { position: absolute; z-index: -2; inset: 0; width:100%; height:auto; min-height: 0; overflow:hidden; pointer-events:none; }
.hero-photo img { --hero-pan-overflow:72px; --hero-pan-start:-36px; --hero-pan-end:36px; position:relative; left:var(--hero-pan-start); width:calc(100% + var(--hero-pan-overflow)); max-width:none; height:100%; object-fit:cover; object-position:53% 58%; transform:translate3d(0,0,0); backface-visibility:hidden; }
.hero-photo::before { content:''; position:absolute; z-index:1; inset:0 0 0 40%; pointer-events:none; background-image:linear-gradient(#c4dd2530 1px,transparent 1px),linear-gradient(90deg,#c4dd2530 1px,transparent 1px); background-size:64px 64px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 38%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 38%,#000 90%,transparent); opacity:.56; }
.hero-photo::after { content:''; position:absolute; z-index:2; right:4%; top:28%; width:min(44vw,680px); height:2px; pointer-events:none; background:linear-gradient(90deg,transparent 0%,#c4dd2570 24%,var(--lime) 68%,#efff87 72%,transparent 100%); box-shadow:0 0 8px #c4dd25cc,0 0 22px #c4dd2573; opacity:.88; }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(32,62,74,.82) 0%, rgba(32,62,74,.78) 28%, rgba(32,62,74,.68) 50%, rgba(32,62,74,.36) 70%, rgba(32,62,74,.1) 86%, rgba(32,62,74,0) 100%); }
.hero::after { content: ''; position: absolute; right: 0; bottom: 0; width: 132px; height: 16px; background: var(--lime); }
.hero-copy { position:relative; z-index:1; width: min(760px, 59%); padding: 76px 44px 76px max(56px, calc((100vw - 1280px)/2)); }
.hero-copy h1 { font-size: clamp(48px, 4.8vw, 72px); line-height: 1.04; max-width: 720px; }
.hero-copy .accent { display: block; }
.hero-copy p:not(.eyebrow) { max-width: 540px; font-size: 15px; line-height: 1.85; }
.hero-copy .eyebrow { font-size: 10px; }
.hero .button { padding: 0 0 0 22px; font-size: 13px; }
.route-strip { background:var(--petrol); color:var(--powder); border-top:1px solid #fffef924; border-bottom:0; padding:0; }
.route-strip > .wrap { display:block; }
.route-options { display:grid; grid-template-columns:1fr 1fr; }
.route-option { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 20px; align-content:center; min-height:142px; padding:25px 32px; border-right:1px solid #fffef92b; transition:background .2s; }
.route-option:last-child { border-right:0; }
.route-option:hover { background:#fffef90a; }
.route-kind { grid-column:1/-1; color:var(--lime); font-size:9px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.route-name { display:flex; align-items:center; flex-wrap:wrap; gap:9px; min-width:0; color:var(--powder); font-size:15px; line-height:1.55; }
.route-name strong { font-weight:500; }
.route-direction { color:var(--lime); font-family:Arial,sans-serif; font-size:18px; }
.route-action { align-self:end; color:#d5dfdf; font-size:10px; font-weight:500; white-space:nowrap; }
.route-action > span:not(.arrow) { position:relative; display:inline-block; width:12px; height:12px; margin-left:3px; font-size:0!important; line-height:0; vertical-align:middle; }
.route-action > span:not(.arrow)::before { content:''; position:absolute; inset:0; background:currentColor; -webkit-mask:var(--arrow-icon) center/contain no-repeat; mask:var(--arrow-icon) center/contain no-repeat; }
.route-option:hover .route-action { color:var(--lime); }
.intro-photo { padding: 0 0 24px 24px; }
.intro-photo img { height: 410px; width: 100%; }
.intro-photo::before { content: ''; position: absolute; inset: 24px 24px 0 0; background: var(--lime); z-index: -1; }
.intro-photo { isolation: isolate; }
.intro-photo::after { display: none; }
.services-overview { background: var(--petrol); color: var(--powder); }
.services-overview .section-heading { padding-bottom: 32px; border-bottom: 1px solid #fffef92b; margin-bottom: var(--content-space); }
.services-overview .heading-copy { max-width: 640px; }
.services-overview .text-link { color: var(--powder); border-color: #fffef960; }
.services-overview .text-link:hover { border-color: var(--lime); }
.services-overview .service-row { grid-template-columns: 1.12fr 1fr; gap: clamp(40px, 6vw, 88px); }
.services-overview .service-row.reverse { grid-template-columns: 1fr 1.12fr; }
.services-overview .service-row + .service-row { margin-top: 64px; padding-top: 64px; border-top: 1px solid #fffef92b; }
.service-row figure { position: relative; }
.service-row figure::after { content: ''; position: absolute; bottom: 0; right: 0; width: 56px; height: 8px; background: var(--lime); }
.service-row figure img { height: 400px; }
.service-row h3 { font-size: clamp(30px, 3vw, 44px); }
.services-overview .service-row p { color: #d5dfdf; }
.services-overview .service-row .eyebrow { color: var(--lime); }
.services-overview .service-row .eyebrow::before { display: none; }
.location-section .split { grid-template-columns: 1.12fr 1fr; }
.location-section .landscape img { height: 380px; }
.location-copy h2 { font-size: clamp(32px, 3.2vw, 46px); }
.cta-band { position: relative; overflow: hidden; padding-block: var(--section-space-small); }
.cta-band .cta-copy { max-width: 690px; }
.cta-band h2 { font-size: clamp(30px, 3vw, 44px); }
.cta-band p { max-width: 590px; }
.site-footer { padding-top: var(--section-space-small); }
.footer-main { padding-bottom: var(--section-space-small); }
.footer-nav a:hover,.footer-contact a:hover { color: var(--lime); }
/* Inner pages use the same brand signature, without repeating the home hero. */
.page-masthead { position: relative; isolation: isolate; overflow: hidden; background: var(--petrol); color: var(--powder); padding-block: var(--section-space); border: 0; }
.page-masthead::after { content: ''; position: absolute; z-index: -1; right: max(56px, calc((100vw - 1280px)/2)); top: 24px; bottom: 24px; width: 240px; background: url('favicon.svg') center/contain no-repeat; opacity: .075; }
.page-masthead::before { content: ''; position: absolute; left: 0; bottom: 0; width: max(56px, calc((100vw - 1280px)/2)); height: 5px; background: var(--lime); }
.page-masthead h1 { max-width: 940px; font-size: clamp(42px, 4.6vw, 66px); }
.page-masthead .eyebrow { color: var(--lime); }
.page-masthead .lead { color: #d5dfdf; font-size: 16px; max-width: 700px; }
.company-purpose { background: #edf0e7; color: var(--petrol); border-left: 8px solid var(--lime); }
.company-purpose .eyebrow { color: var(--petrol); }
.company-purpose p.lead,.company-values p { color: var(--muted); }
.company-values { border-color: #203e4a30; }
.company-values .value { padding-left: 20px; border-left: 2px solid var(--lime); }
.service-detail .service-photo { position: relative; padding-bottom: 20px; }
.service-detail .service-photo::after { content: ''; position: absolute; left: 0; bottom: 0; height: 4px; width: 72px; background: var(--lime); }
.service-detail .service-photo img { height: 620px; }
.service-detail .copy h2 { font-size: clamp(34px, 3.2vw, 46px); }
.service-feature { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px; }
.service-feature h3 { font-size: 14px; line-height: 1.5; margin: 0; }
.service-detail .copy .service-feature p { line-height: 1.7; }
.contact-layout .landscape { border-bottom: 6px solid var(--lime); }
.contact-details h2 { color: var(--muted); }
.contact-email { font-weight: 500; }
.links-page { background: var(--petrol); border-top: 0; position: relative; isolation: isolate; }
.links-page::before { content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(125deg, transparent 55%, #fffef904 55%, #fffef904 75%, transparent 75%); }
.links-shell { border-top: 5px solid var(--lime); }
.link-list > a { background: #fffef905; border-color: #fffef938; padding-right: 0; }
.link-list > a .arrow { display: grid; place-items: center; width: 52px; flex-shrink: 0; }
.link-list > a:hover { transform: translateY(-2px); }
@media (max-width: 1100px) {
 .hero-copy { padding-left: 32px; width: 63%; }
 .hero-copy h1 { font-size: 56px; }
 .service-feature { grid-template-columns: 1fr; gap: 6px; }
 .services-overview .service-row { gap: 40px; }
 .route-option { padding-inline:22px; }
 .route-action { grid-column:1/-1; justify-self:start; }
}
@media (min-width:901px) {
 .hero { height:var(--hero-stage-height,calc(100svh - 238px)); min-height:510px; }
}
@media (min-width:901px) and (max-height:820px) {
 .hero-copy { padding-block:38px; }
 .hero-copy h1 { font-size:56px; }
}
@media (max-width: 900px) {
 .primary-nav { background:var(--petrol); color:var(--powder); border-bottom-color:#fffef92b; box-shadow:0 15px 18px #10252d33; }
 .primary-nav .nav-cta { color:var(--petrol); }
 .hero { min-height:max(600px,calc(100svh - 96px)); }
 .hero-copy { padding-block: 56px; width: 68%; }
 .hero-copy h1 { font-size: 50px; }
 .hero-copy .eyebrow { font-size: 9px; }
 .intro-photo img { height: 370px; }
 .service-row figure img { height: 350px; }
 .services-overview .service-row,.services-overview .service-row.reverse { grid-template-columns: 1fr 1fr; gap: 32px; }
 .page-masthead { padding-block: var(--section-space); }
 .page-masthead::after { right: 24px; opacity: .045; }
 .service-detail .service-photo img { height: 600px; }
 .route-options { grid-template-columns:1fr; }
 .route-option { min-height:108px; border-right:0; border-bottom:1px solid #fffef92b; }
 .route-option:last-child { border-bottom:0; }
}
@media (min-width:601px) and (max-width:900px) {
 .hero { height:var(--hero-stage-height,calc(100svh - 312px)); min-height:600px; }
}
@media (min-width:601px) and (max-width:1100px) {
 .route-options.home-service-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .route-options.home-service-options .route-option { min-height:112px; padding:20px 16px; border-right:1px solid #fffef92b; border-bottom:1px solid #fffef92b; }
 .route-options.home-service-options .route-option:nth-child(2n) { border-right:0; }
 .route-options.home-service-options .route-option:nth-child(odd) { padding-left:0; }
 .route-options.home-service-options .route-option:nth-child(n+3) { border-bottom:0; }
}
@media (max-width: 600px) {
 .header-inner { min-height: 79px; }
 .hero { display: flex; flex-direction: column; min-height:calc(100svh - 79px); align-items: stretch; }
 .hero-copy { width: 100%; padding: 32px 20px 56px; }
 .hero-copy h1 { font-size: clamp(39px, 10.7vw, 56px); max-width: 100%; }
 .hero-copy p:not(.eyebrow) { font-size: 14px; max-width: 390px; }
 .hero-copy .eyebrow { font-size: 8px; gap: 8px; }
 .hero-copy .eyebrow::before { width: 16px; }
 .hero-photo { position: relative; z-index: -2; inset: auto; flex:1 0 280px; width:auto; height:auto; min-height:280px; margin-left: 20px; }
 .hero-photo img { --hero-pan-overflow:48px; --hero-pan-start:-24px; --hero-pan-end:24px; height: 100%; object-position: 74% 58%; }
 .hero-photo::before { inset:0; background-size:54px 54px; opacity:.36; }
 .hero-photo::after { right:5%; width:76%; }
 .hero::before { display: none; }
 .hero::after { width: 80px; height: 8px; }
 .route-options { display:block; }
 .route-option { min-height:0; padding:22px 0; grid-template-columns:minmax(0,1fr) auto; }
 .route-kind { font-size:8px; }
 .route-name { font-size:14px; }
 .route-action { font-size:9px; }
 .intro-photo { padding: 0 0 16px 16px; }
 .intro-photo::before { inset: 16px 16px 0 0; }
 .intro-photo img { height: 290px; }
 .services-overview .section-heading { padding-bottom: 24px; margin-bottom: var(--content-space); }
 .services-overview .service-row,.services-overview .service-row.reverse,.location-section .split { grid-template-columns: 1fr; gap: 28px; }
 .services-overview .service-row + .service-row { margin-top: 36px; padding-top: 36px; }
 .service-row figure img { height: 280px; }
 .service-row h3 { font-size: 30px; }
 .location-section .landscape img { height: 280px; }
 .cta-band { padding-block: var(--section-space-small); }
 .cta-band .button,.service-detail .button { padding: 0 0 0 18px; }
 .page-masthead { padding-block: 32px 56px; }
 .page-masthead h1 { font-size: 39px; }
 .page-masthead .lead { font-size: 14px; }
 .page-masthead::after { width: 170px; right: -50px; opacity: .045; }
 .company-purpose { border-left-width: 4px; }
 .service-detail .service-photo img { height: 330px; }
 .service-detail .copy h2 { font-size: 34px; }
 .service-feature { grid-template-columns: 1fr; gap: 6px; }
 .site-footer { padding-top: var(--section-space-small); }
 .footer-main { padding-bottom: 48px; }
}

/* Site composition v2: each page has a purpose-built native-block layout. */
.home .services-overview > .wrap { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--column-space); }
.home .services-overview .section-heading { grid-column: 1/-1; }
.home .services-overview .service-row,
.home .services-overview .service-row.reverse { display: flex; flex-direction: column; align-items: stretch; gap: 28px; margin: 0; padding: 0; border: 0; }
.home .service-row.reverse figure,.home .service-row.reverse .service-copy { order: initial; }
.home .service-row figure img { height: 360px; }
.home .service-row h3 { font-size: 36px; }
.home .service-row p { max-width: 520px; }
.home .service-copy { padding-right: 20px; }
.home .location-section .split { grid-template-columns: 1.4fr 1fr; gap: var(--column-space); }
.home .location-section .landscape img { height: 420px; }
/* Empresa: panorama, institutional introduction, purpose and people. */
.company-hero { position: relative; background: var(--petrol); padding-top: 1px; }
.company-hero .page-masthead { padding-bottom: 48px; }
.company-hero .page-masthead h1 { font-size: clamp(40px,4.5vw,64px); }
.company-hero .page-masthead::after,.company-hero .page-masthead::before { display:none; }
.company-hero > .landscape { width: min(1280px,calc(100% - 112px)); margin: auto; position:relative; }
.company-hero > .landscape img { height: 470px; object-position: center 78%; }
.company-hero::after { content:''; height: 88px; position:absolute; inset:auto 0 0; background:var(--powder); }
.company-hero > .landscape { z-index:1; }
.company-intro { padding-top: var(--section-space); }
.company-intro > .copy { display:grid; grid-template-columns: 1fr 1fr; column-gap:var(--column-space); }
.company-intro .eyebrow { grid-column:1; }
.company-intro h2 { grid-column:1; grid-row:2/4; max-width:480px; font-size:42px; }
.company-intro .lead { grid-column:2; grid-row:2; font-size:17px; color:var(--muted); }
.company-intro .copy > p:last-child { grid-column:2; color:var(--muted); }
.company-purpose { background:var(--petrol); color:var(--powder); border-left:0; }
.company-purpose > .wrap { display:grid; grid-template-columns:1.15fr 1fr; gap:var(--column-space); }
.company-purpose .split { display:block; }
.company-purpose .eyebrow { color:var(--lime); }
.company-purpose p.lead,.company-values p { color:#d5dfdf; }
.company-purpose h2 { font-size:40px; margin-bottom:20px; }
.company-purpose .company-values { display:block; margin:0; padding:0; border:0; }
.company-values .value { border-left:0; border-top:1px solid #fffef938; padding:24px 0; }
.company-values .value:first-child { border-top:3px solid var(--lime); }
.company-values h3 { font-size:24px; }
/* Servicios: route navigation and full-width service compositions. */
/* Only the intro and then the menu (client, 7 oct 2026): the H1 keeps its words for search engines, set as the small label. */
/* Cover like Empresa's: title and lead on the dark band, and the menu cards rising into it,
   so the cards are still the first part of the page. */
.pmo-servicios { --menu-rise:200px; }
.pmo-servicios .page-masthead { padding-block:var(--section-space) calc(32px + var(--menu-rise)); }
.pmo-servicios .page-masthead::before { display:none; }
.pmo-servicios .page-masthead h1 { max-width:760px; margin:0; font-size:clamp(40px,4.5vw,64px); }
.pmo-servicios .service-menu { position:relative; z-index:1; margin-top:calc(-1 * var(--menu-rise)); }
.pmo-servicios .service-menu-group:first-child .service-menu-label { color:var(--powder); }
@media (max-width: 1100px) { .pmo-servicios { --menu-rise:150px; } }
@media (max-width: 900px) { .pmo-servicios { --menu-rise:120px; } }
@media (max-width: 600px) { .pmo-servicios { --menu-rise:96px; } .pmo-servicios .page-masthead { padding-top:40px; } .pmo-servicios .page-masthead h1 { font-size:39px; } }
/* The introduction, after the menu: its own section on the security system. */
.service-intro { padding-block:var(--section-space-small); background:var(--soft); }
.service-intro > .wrap { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:var(--column-space); align-items:start; }
.service-intro-heading h2 { max-width:460px; margin:0; }
.service-intro-heading .eyebrow { margin-bottom:18px; }
.service-intro .lead { margin:0; color:var(--petrol); font-size:17px; line-height:1.75; }
.security-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; margin:32px 0 0; padding:0; list-style:none; }
.security-list li { position:relative; padding:13px 0 13px 22px; border-top:1px solid #203e4a26; color:var(--petrol); font-size:15px; font-weight:500; line-height:1.5; }
.security-list li::before { content:''; position:absolute; left:0; top:20px; width:8px; height:8px; background:var(--lime); }
@media (max-width: 900px) { .service-intro > .wrap { grid-template-columns:1fr; gap:28px; } }
.pmo-servicios .page-masthead::after { display:none; }
.service-top { display:grid; grid-template-columns:1fr 1.12fr; gap:var(--column-space); align-items:center; }
.service-top .copy h2 { font-size:clamp(38px,4vw,58px); margin-bottom:20px; }
.service-top .copy p { color:var(--muted); }
.service-top .copy .eyebrow { color:var(--petrol); }
.service-top .service-photo { padding:0; }
.service-top .service-photo img { height:440px; }
.service-top .service-photo::after { bottom:0; left:auto; right:0; height:8px; }
.service-bottom.wp-block-group { margin-top:var(--content-space); }
.service-bottom .service-features { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:0; }
.service-bottom .service-feature { display:block; padding:20px 0 0; border-top:2px solid var(--petrol); }
.service-bottom .service-feature h3 { font-size:18px; margin-bottom:12px; }
.service-bottom .service-feature p { font-size:14px; color:var(--muted); }
.service-bottom .button { margin-top:24px; }
.service-detail.alt .service-top .service-photo { grid-column:1; grid-row:1; }
.service-detail.alt .service-top .copy { grid-column:2; grid-row:1; }
.service-detail.alt .service-top { grid-template-columns:1.12fr 1fr; }
.integration .split { border-left:4px solid var(--lime); padding-left:32px; }
/* Contacto: an arrival photograph beside the title; a clear contact directory below. */
.contact-stage { display:grid; grid-template-columns:1fr 1fr; background:var(--petrol); color:var(--powder); }
.contact-stage .page-masthead { display:flex; align-items:center; padding:var(--section-space) 56px var(--section-space) max(56px,calc((100vw - 1280px)/2)); overflow:visible; }
.contact-stage .page-masthead > .wrap { width:100%; margin:0; }
.contact-stage .page-masthead h1 { font-size:clamp(40px,4.3vw,64px); }
.contact-stage .page-masthead::before,.contact-stage .page-masthead::after { display:none; }
/* The photo fills the height set by the heading; it must never set the row height itself. */
.contact-stage .contact-image { position:relative; min-height:540px; }
.contact-stage .landscape { position:absolute; inset:0; height:auto; margin:0; }
.contact-stage .landscape img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.contact-stage .contact-caption { position:absolute; bottom:0; left:0; right:0; background:var(--petrol); color:var(--powder); margin:0; padding:16px 24px; border-left:5px solid var(--lime); }
.contact-directory .contact-details { display:grid; grid-template-columns:1fr 1fr; gap:64px var(--column-space); }
.contact-directory .contact-details > div { margin:0; padding:24px 0 0; border:0; border-top:2px solid var(--petrol); }
.contact-directory .contact-details h2 { font-size:11px; margin-bottom:16px; }
.contact-directory .contact-email { font-size:clamp(18px,2vw,28px); }
.contact-directory .contact-details p { max-width:460px; }
/* Links: a dedicated brand panel and a functional directory, responsive by design. */
.links-shell { width:min(1120px,calc(100% - 80px)); min-height:100svh; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; text-align:left; padding-block:56px; border:0; }
.links-intro { position:relative; padding:48px 0; border-top:3px solid var(--lime); }
.links-logo { width:300px; margin:0 0 28px; }
.links-shell h1 { max-width:420px; margin:0 0 20px; font-size:36px; line-height:1.25; }
.links-intro > p { font-size:14px; color:#d5dfdf; max-width:340px; margin:0; }
.links-directory .link-list { margin:0; gap:0; }
.links-directory .link-list > a { min-height:70px; border:0; border-bottom:1px solid #fffef938; background:none; padding-left:0; }
.links-directory .link-list > .link-primary { background:var(--lime); padding-left:20px; margin-bottom:10px; }
.links-directory .link-list > a:hover { background:#fffef909; transform:none; }
.links-directory .link-list > .link-primary:hover { background:#cee25c; }
.links-directory .links-signoff { margin:28px 0 12px; font-size:13px; color:var(--lime); }
@media(max-width:1100px) {
 .company-hero > .landscape { width:calc(100% - 64px); }
 .company-hero .page-masthead > .wrap,.company-intro > .copy,.company-purpose > .wrap,.service-top,.service-detail.alt .service-top { gap:40px; }
 .contact-stage .page-masthead { padding:var(--section-space) 32px; }
 .links-shell { gap:64px; }
}
@media(max-width:900px) {
 .home .services-overview > .wrap { column-gap:32px; }
 .home .service-row figure img { height:300px; }
 .home .service-row h3 { font-size:29px; }
 .company-hero > .landscape img { height:400px; }
 .company-purpose > .wrap { grid-template-columns:1fr; gap:32px; }
 .company-purpose .company-values { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
 .company-values .value { border-top:1px solid #fffef938; }
 .company-values .value:first-child { border-top-width:1px; }
 .service-top,.service-detail.alt .service-top { gap:32px; }
 .service-top .service-photo img { height:440px; }
 .service-bottom .service-features { gap:24px; }
 .contact-stage .contact-image { min-height:560px; }
 .links-shell { width:calc(100% - 48px); gap:40px; }
 .links-logo { width:240px; }
 .links-shell h1 { font-size:29px; }
}
@media(max-width:600px) {
 .home .services-overview > .wrap { display:block; }
 .home .services-overview .service-row + .service-row { margin-top:64px; padding-top:64px; border-top:1px solid #fffef938; }
 .home .service-row figure img { height:280px; }
 .home .service-copy { padding:0; }
 .home .location-section .split { grid-template-columns:1fr; gap:32px; }
 .home .location-section .landscape img { height:280px; }
 .company-hero .page-masthead { padding-block:32px 32px; }
 .company-hero .page-masthead h1 { font-size:39px; }
 .company-hero > .landscape { width:calc(100% - 40px); }
 .company-hero > .landscape img { height:300px; }
 .company-hero::after { height:40px; }
 .company-intro { padding-top:var(--section-space); }
 .company-intro > .copy { display:block; }
 .company-intro h2 { font-size:32px; }
 .company-intro .lead { font-size:16px; }
 .company-purpose h2 { font-size:32px; }
 .company-purpose .company-values { display:block; }
 .company-values .value:last-child { padding-bottom:0; }
 .service-intro .lead { font-size:15px; }
 .security-list { grid-template-columns:1fr; }
 .service-top,.service-detail.alt .service-top { display:flex; flex-direction:column; align-items:stretch; gap:32px; }
 .service-top .copy h2 { font-size:36px; }
 .service-top .service-photo img { height:300px; }
 .service-bottom.wp-block-group { margin-top:var(--content-space); }
 .service-bottom .service-features { grid-template-columns:1fr; gap:32px; }
 .service-bottom .service-feature { border-top:1px solid var(--line); padding-top:20px; }
 .service-bottom .service-feature h3 { font-size:17px; }
 .integration .split { padding-left:20px; }
 .contact-stage { grid-template-columns:1fr; }
 .contact-stage .page-masthead { padding:32px 20px 56px; }
 .contact-stage .page-masthead h1 { font-size:39px; }
 .contact-stage .contact-image { min-height:0; }
 .contact-stage .landscape,.contact-stage .landscape img { position:static; }
 .contact-stage .landscape img { height:330px; }
 .contact-stage .contact-caption { font-size:10px; padding:14px 20px; }
 .contact-directory .contact-details { grid-template-columns:1fr; gap:36px; }
 .contact-directory .contact-email { font-size:18px; }
 .links-shell { width:calc(100% - 40px); min-height:100svh; display:block; padding:40px 0 32px; }
 .links-intro { padding:40px 0 56px; text-align:center; }
 .links-logo { width:220px; margin:0 auto 24px; }
 .links-shell h1 { font-size:23px; margin:0 auto 14px; }
 .links-intro > p { margin:auto; font-size:12px; }
 .links-directory .link-list > a { min-height:60px; }
 .links-directory .links-signoff { text-align:center; margin-top:24px; }
 .links-directory .links-home { display:flex; justify-content:center; }
}

.company-intro .copy > p:last-child { grid-row:3; }
.company-purpose .split .copy h2 { margin-bottom:20px; }

/* Keep the outer alignment gutter outside the hero's reading measure.
   Including it in a capped border-box squeezed the text on wide screens. */
@media (min-width: 1101px) {
    .hero-copy {
        margin-left: max(56px, calc((100% - 1280px) / 2));
        width: 680px;
        max-width: calc(100% - 112px);
        flex: 0 0 auto;
        padding: 76px 0;
    }
    .hero-copy h1 { width: 100%; }
    .hero-copy .accent { white-space: nowrap; }
}
.inquiry-section { display:grid; grid-template-columns:1fr 1.2fr; gap:var(--column-space); margin-top:var(--section-space-small); padding-top:var(--section-space-small); border-top:1px solid var(--line); scroll-margin-top:110px; }
.inquiry-heading .eyebrow { margin-bottom:12px; }
.inquiry-heading h2 { font-size:40px; margin-bottom:20px; }
.inquiry-heading > p:last-child { color:var(--muted); max-width:380px; margin-bottom:0; }
.inquiry-form { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.inquiry-form label { display:block; font-size:12px; font-weight:600; }
.inquiry-form input,.inquiry-form select,.inquiry-form textarea { display:block; width:100%; min-width:0; margin-top:10px; border:1px solid #94a3a5; border-radius:0; background:var(--powder); color:var(--petrol); font:inherit; font-size:15px; padding:12px; min-height:48px; }
.inquiry-form [aria-invalid="true"] { border-color:#852525; box-shadow:0 0 0 1px #852525; }
.field-error { display:block; margin-top:8px; color:#852525; font-size:12px; line-height:1.5; }
.inquiry-form textarea { resize:vertical; }
.field-wide { grid-column:1/-1; }
.form-help { font-size:12px; color:var(--muted); margin:0; }
.inquiry-form .button { justify-self:start; cursor:pointer; }
.form-actions { display:flex; align-items:stretch; gap:12px; flex-wrap:wrap; }
.form-notice { border-left:3px solid var(--lime); background:#edf0e7; padding:16px; font-size:14px; }
.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-actions { display:flex; align-items:stretch; gap:12px; flex-wrap:wrap; }
.cta-band .contact-actions { flex-shrink:0; }

.commercial-promises { background:var(--petrol); color:var(--powder); }
.commercial-promises > .wrap { position:relative; }
.promises-heading { display:grid; grid-template-columns:.92fr 1.08fr; column-gap:var(--column-space); row-gap:18px; align-items:end; margin-bottom:56px; }
.promises-heading .eyebrow { grid-column:1/-1; color:var(--lime); margin:0; }
.promises-heading h2 { max-width:620px; margin:0; font-size:clamp(38px,3.6vw,52px); }
.promises-heading .lead { max-width:540px; color:#d5dfdf; margin:0; }
.promise-grid { display:grid; grid-template-columns:minmax(340px,.88fr) minmax(0,1.12fr); grid-auto-flow:row; column-gap:var(--column-space); }
.promise-card { min-width:0; }
.promise-card:not(.promise-featured) { grid-column:2; display:grid; grid-template-columns:minmax(210px,.72fr) minmax(240px,1.28fr); gap:clamp(28px,3vw,48px); align-items:start; padding:22px 0; border-top:1px solid #fffef936; }
.promise-card:not(.promise-featured):first-child { border-top:2px solid var(--lime); }
.promise-card:not(.promise-featured) h3 { color:var(--powder); font-size:19px; line-height:1.55; margin:0; }
.promise-card:not(.promise-featured) p { color:#d5dfdf; font-size:13px; line-height:1.75; margin:0; padding-top:2px; }
.promise-featured { grid-column:1; grid-row:1 / span 5; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; min-height:100%; padding:clamp(34px,4vw,56px); background:var(--lime); color:var(--petrol); }
.promise-featured::before { content:''; position:absolute; width:240px; aspect-ratio:1; top:-88px; right:-70px; border:1px solid #203e4a2e; transform:rotate(45deg); }
.promise-featured::after { content:''; position:absolute; width:170px; aspect-ratio:1; top:-54px; right:-34px; border:1px solid #203e4a2e; transform:rotate(45deg); }
.promise-featured h3 { position:relative; z-index:1; margin:0 0 28px; color:var(--petrol); letter-spacing:-.04em; }
.promise-featured h3 span { display:block; margin-bottom:8px; font-size:12px; font-weight:600; letter-spacing:.14em; line-height:1.5; text-transform:uppercase; }
.promise-featured h3 strong { display:block; font-size:clamp(58px,6.5vw,92px); font-weight:600; line-height:.95; white-space:nowrap; }
.promise-featured p { position:relative; z-index:1; max-width:420px; margin:0; color:var(--petrol); font-size:15px; }

.faq-section { background:var(--powder); padding:72px 0 88px; }
.faq-section > .wrap { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); gap:var(--column-space); align-items:start; }
.faq-heading { position:sticky; top:var(--sticky-top); padding-right:clamp(0px,2vw,28px); }
.faq-heading .eyebrow { margin-bottom:28px; }
.faq-heading h2 { max-width:500px; margin:0 0 24px; font-size:clamp(38px,3.6vw,52px); }
.faq-heading .lead { max-width:440px; color:var(--muted); margin:0; font-size:15px; }
.faq-heading::after { content:''; display:block; width:72px; height:4px; margin-top:36px; background:var(--lime); }
.faq-list { border-top:2px solid var(--petrol); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { display:grid; grid-template-columns:38px minmax(0,1fr) 32px; gap:18px; align-items:start; padding:25px 0; cursor:pointer; list-style:none; font-size:17px; font-weight:600; line-height:1.55; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::before { content:''; width:16px; height:2px; margin-top:11px; background:var(--lime); }
.faq-item summary::after { content:'+'; color:var(--lime); font-family:Arial,sans-serif; font-size:28px; font-weight:400; line-height:1; text-align:right; }
.faq-item[open] summary::after { content:'−'; }
.faq-item[open] summary { padding-bottom:16px; }
.faq-item p { max-width:720px; padding:0 50px 28px 56px; margin:0; color:var(--muted); font-size:14px; }

@media(max-width:900px){
 .inquiry-section{gap:24px;grid-template-columns:1fr}
 .inquiry-heading>p:last-child{max-width:600px}
 .promises-heading{grid-template-columns:1fr;row-gap:20px;margin-bottom:40px}
 .promises-heading .eyebrow{grid-column:auto}
 .promise-grid{grid-template-columns:1fr;gap:0}
 .promise-featured{grid-column:1;grid-row:auto;order:-1;min-height:360px;margin-bottom:28px}
 .promise-card:not(.promise-featured){grid-column:1}
 .faq-section>.wrap{grid-template-columns:1fr;gap:48px}
 .faq-heading{position:static;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;padding:0}
 .faq-heading .eyebrow{grid-column:1/-1;margin-bottom:20px}
 .faq-heading h2{margin:0}
 .faq-heading .lead{align-self:end}
 .faq-heading::after{grid-column:1/-1;margin-top:28px}
}
@media(max-width:600px){
 .inquiry-section{margin-top:72px;padding-top:64px}
 .inquiry-heading h2{font-size:32px}
 .inquiry-form{grid-template-columns:1fr;gap:20px}
 .contact-actions{display:grid;grid-template-columns:1fr}
 .contact-actions .button{width:100%}
 .form-actions{display:grid;grid-template-columns:1fr}
 .form-actions .button{width:100%}
 .promises-heading{row-gap:14px;margin-bottom:32px}
 .promises-heading h2,.faq-heading h2{font-size:32px}
 .promise-featured{min-height:300px;padding:32px 24px;margin-bottom:16px}
 .promise-featured h3 strong{font-size:58px}
 .promise-card:not(.promise-featured){grid-template-columns:1fr;gap:6px;padding:22px 0}
 .promise-card:not(.promise-featured) h3{font-size:18px}
 .promise-card:not(.promise-featured) p{font-size:13px;padding-top:0}
 .faq-section>.wrap{gap:36px}
 .faq-section{padding-block:64px}
 .faq-heading{display:block}
 .faq-heading .eyebrow{margin-bottom:16px}
 .faq-heading h2{margin-bottom:16px}
 .faq-heading::after{margin-top:24px}
 .faq-item summary{grid-template-columns:28px minmax(0,1fr) 26px;gap:12px;padding:22px 0;font-size:15px}
 .faq-item summary::before{padding-top:5px}
 .faq-item summary::after{font-size:25px}
 .faq-item p{padding:0 32px 24px 40px;font-size:13px}
}

/* Client content v3: preserve the existing visual system while making the
   expanded location, infrastructure and service information easy to scan. */
.home-service-options { grid-template-columns:repeat(4,minmax(0,1fr)); }
.home-service-options .route-option { align-content:start; }
.home-service-options .route-action { grid-column:1/-1; justify-self:start; }
@media (min-width:1101px) { .home-service-options .route-option:first-child { padding-left:0; } }
.home-service-options .route-name { font-size:17px; }
.location-v3 .split { grid-template-columns:.82fr 1.18fr; }
.connectivity { background:var(--powder); }
.connectivity .section-heading { max-width:780px; }
.connection-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--column-space); }
.connection-item { padding-top:22px; border-top:2px solid var(--petrol); }
.connection-item h3 { margin:0 0 8px; color:var(--petrol); font-size:clamp(28px,3vw,42px); }
.connection-item p { margin:0; color:var(--muted); font-size:13px; }
.connectivity-copy { display:grid; grid-template-columns:1fr 1fr; gap:var(--column-space); max-width:1080px; margin-top:48px; }
.connectivity-copy p { margin:0; color:var(--muted); }
.infrastructure { background:#edf0e7; }
.infrastructure .section-heading > p { max-width:360px; color:var(--muted); margin:0; }
.infrastructure-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--column-space); }
.infrastructure-item { padding-top:24px; border-top:3px solid var(--petrol); }
.infrastructure-item h3 { margin-bottom:20px; font-size:22px; }
.spec-list,.policy-commitments { margin:0; padding-left:1.25em; }
.spec-list li,.policy-commitments li { margin-bottom:12px; padding-left:6px; color:var(--muted); }
.spec-list li:last-child,.policy-commitments li:last-child { margin-bottom:0; }
.home-services-v3 > .wrap { grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-services-v3 .service-row figure img { height:300px; }
.home-services-v3 .service-row h3 { font-size:32px; }
.trade-solutions { background:var(--petrol); color:var(--powder); }
.trade-heading { display:grid; grid-template-columns:1fr 1fr; gap:18px var(--column-space); align-items:end; margin-bottom:48px; }
.trade-heading .eyebrow { grid-column:1/-1; color:var(--lime); margin:0; }
.trade-heading h2 { margin:0; }
.trade-heading .lead { margin:0; color:#d5dfdf; }
.trade-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--column-space); }
.trade-solution { padding-top:24px; border-top:2px solid var(--lime); }
.trade-solution h3 { min-height:4.4em; margin-bottom:16px; color:inherit; font-size:19px; line-height:1.48; }
.trade-solution p { margin:0; color:inherit; opacity:.8; font-size:14px; }
.trade-solution p + p { margin-top:16px; }
.trade-solutions .text-link { margin-top:40px; color:var(--powder); border-color:#fffef960; }
.company-purpose-v3 > .wrap { display:block; }
.purpose-intro { display:grid; grid-template-columns:1fr 1fr; gap:18px var(--column-space); align-items:start; }
.purpose-intro .eyebrow { grid-column:1/-1; margin:0; }
.purpose-intro h2,.purpose-intro .lead { margin:0; }
/* The purpose is one official text, published whole (client, 7 oct 2026). */
.purpose-intro h2 { grid-column:1/-1; max-width:1000px; }
.company-purpose-v3 .values-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 var(--column-space); margin-top:56px; padding:0; }
.company-purpose-v3 .value,.company-purpose-v3 .value:first-child { padding:24px 0; border-top:1px solid #fffef938; }
.company-purpose-v3 .value h3 { font-size:20px; }
.company-purpose-v3 .value p { font-size:13px; }
.quality-policy > .wrap { display:grid; grid-template-columns:.8fr 1.2fr; gap:var(--column-space); align-items:start; }
.policy-heading { position:sticky; top:var(--sticky-top); }
.policy-heading h2 { font-size:clamp(36px,3.5vw,50px); }
.policy-heading .lead { color:var(--muted); font-size:16px; }
.policy-copy > p { color:var(--muted); }
.policy-copy h3 { margin:36px 0 20px; font-size:22px; }
.policy-commitments { list-style:none; padding:0; }
.policy-commitments li { position:relative; min-height:52px; padding:18px 0 18px 52px; margin:0; border-top:1px solid var(--line); }
.policy-commitments li::before { content:''; position:absolute; left:0; top:30px; width:16px; height:2px; background:var(--lime); }
.commerce-solutions { scroll-margin-top:100px; background:#edf0e7; }
.commerce-intro { display:grid; grid-template-columns:.82fr 1.18fr; gap:var(--column-space); align-items:center; margin-bottom:56px; }
.commerce-intro .copy p { color:var(--muted); }
.commerce-map { overflow:hidden; }
.commerce-map img { width:100%; height:440px; object-fit:cover; }
.commerce-solutions .trade-grid { color:var(--petrol); }
.commerce-solutions .trade-solution { border-color:var(--petrol); }
.commerce-solutions .trade-solution p { color:var(--muted); opacity:1; }

@media(max-width:1100px) {
 .home-service-options { grid-template-columns:1fr; }
 .home-service-options .route-option { border-right:0; border-bottom:1px solid #fffef92b; }
 .home-service-options .route-option:last-child { border-bottom:0; }
 .home-services-v3 > .wrap { grid-template-columns:1fr 1fr; }
 .company-purpose-v3 .values-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:900px) {
 .location-v3 .split,.commerce-intro { grid-template-columns:1fr; }
 .connection-grid { grid-template-columns:1fr 1fr; }
 .infrastructure-grid { grid-template-columns:1fr; gap:32px; }
 .home-services-v3 > .wrap { grid-template-columns:1fr 1fr; }
 .trade-grid { grid-template-columns:1fr; gap:32px; }
 .trade-solution h3 { min-height:0; }
 .purpose-intro,.quality-policy > .wrap { grid-template-columns:1fr; }
 .policy-heading { position:static; }
}
@media(max-width:600px) {
 .connection-grid,.connectivity-copy,.home-services-v3 > .wrap,.company-purpose-v3 .values-grid { display:block; }
 .connection-item + .connection-item { margin-top:28px; }
 .connectivity-copy p + p { margin-top:20px; }
 .infrastructure .section-heading > p { margin-top:16px; }
 .home-services-v3 .service-row + .service-row { margin-top:40px; padding-top:40px; }
 .trade-heading { display:block; margin-bottom:36px; }
 .trade-heading h2 { margin-bottom:16px; }
 .company-purpose-v3 .value { margin:0; }
 .commerce-map img { height:300px; }
 .quality-policy > .wrap { gap:36px; }
}

/* Content design refinement: sections alternate by purpose, repeated items use
   deliberate grids, and visual media supports the institutional narrative. */
:root { --soft:#edf0e7; --soft-strong:#e2e8df; --petrol-raised:#294b57; }

/* Home: make each content chapter visually distinct. */
.home .location-v3 { background:var(--powder); }
.home .connectivity { background:var(--soft); }
.home .infrastructure { background:var(--powder); }
.home .home-services-v3 { background:var(--petrol); }
.home .trade-solutions { background:var(--soft-strong); color:var(--petrol); }
.home .trade-solutions .eyebrow { color:var(--petrol); }
.home .trade-solutions .lead,.home .trade-solution p { color:var(--muted); opacity:1; }
.home .trade-solutions .text-link { color:var(--petrol); border-color:#203e4a55; }
.home .trade-grid { gap:24px; }
.home .trade-solution { min-height:250px; padding:28px; background:var(--powder); border-top:4px solid var(--lime); }
.home .trade-solution h3 { min-height:0; }

.location-v3 .split { grid-template-columns:.82fr 1.18fr; }
.connectivity .section-heading { margin-bottom:52px; }
.connection-grid { gap:0; border-top:1px solid #203e4a30; border-bottom:1px solid #203e4a30; }
.connection-item { min-height:170px; padding:28px 24px; border-top:0; border-right:1px solid #203e4a30; }
.connection-item:first-child { padding-left:0; }
.connection-item:last-child { border-right:0; }
.connectivity-copy { margin-top:42px; }

.infrastructure-intro { display:grid; grid-template-columns:.86fr 1.14fr; gap:var(--column-space); align-items:center; margin-bottom:56px; }
.infrastructure-intro .heading-copy { max-width:520px; }
.infrastructure-intro .lead { color:var(--muted); }
.infrastructure-photo { position:relative; overflow:hidden; }
.infrastructure-photo::after { content:''; position:absolute; right:0; bottom:0; width:84px; height:8px; background:var(--lime); }
.infrastructure-photo img { width:100%; height:360px; object-fit:cover; object-position:center 74%; }
.infrastructure-grid { gap:24px; }
.infrastructure-item { min-height:100%; padding:30px; background:var(--soft); border-top:4px solid var(--petrol); }
.infrastructure-item h3 { margin-bottom:24px; }

/* A service comparison: three equally weighted options, no orphan card. */
.home .home-services-v3 > .wrap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 28px; }
.home .home-services-v3 .section-heading { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; margin-bottom:48px; }
.home .home-services-v3 .service-row,
.home .home-services-v3 .service-row.reverse { display:flex; flex-direction:column; align-items:stretch; gap:0; min-width:0; height:100%; margin:0; padding:0; overflow:hidden; background:var(--petrol-raised); border:1px solid #fffef91f; }
.home .home-services-v3 .service-row + .service-row { margin:0; padding:0; border-top:1px solid #fffef91f; }
.home .home-services-v3 .service-row figure { flex:0 0 auto; }
.home .home-services-v3 .service-row figure::after { width:72px; height:6px; }
.home .home-services-v3 .service-row figure img { width:100%; height:auto; aspect-ratio:1.6/1; object-fit:cover; }
.home .home-services-v3 .service-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; min-height:310px; padding:28px; }
.home .home-services-v3 .service-copy h3 { font-size:30px; }
.home .home-services-v3 .service-copy > p:not(.eyebrow) { flex:1; }
.home .home-services-v3 .service-copy .text-link { margin-top:18px; }

/* Empresa: pair dense institutional copy with relevant operational imagery. */
.company-intro { background:var(--powder); }
.company-intro-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:var(--column-space); align-items:center; }
.company-intro-copy h2 { max-width:560px; }
.company-intro-copy .lead,.company-intro-copy > p:last-child { color:var(--muted); max-width:590px; }
.company-intro-media { position:relative; padding:0 0 24px 24px; }
.company-intro-media::before { content:''; position:absolute; inset:24px 24px 0 0; z-index:0; background:var(--lime); }
.company-team-photo,.company-intro-media .image-caption { position:relative; z-index:1; }
.company-team-photo img { width:100%; height:500px; object-fit:cover; object-position:70% 50%; }
.company-intro-media .image-caption { margin:14px 0 0; color:var(--petrol); font-size:12px; }

.company-purpose-v3 .purpose-intro { max-width:1080px; }
.purpose-visuals { margin-top:56px; }
.purpose-photo { position:relative; overflow:hidden; }
.purpose-photo::after { content:''; position:absolute; right:0; bottom:0; width:72px; height:7px; background:var(--lime); }
.purpose-photo img { width:100%; height:420px; object-fit:cover; object-position:center 30%; }
.company-purpose-v3 .values-grid { gap:24px; margin-top:24px; }
.company-purpose-v3 .value,.company-purpose-v3 .value:first-child { min-height:220px; padding:28px; background:var(--petrol-raised); border-top:3px solid var(--lime); }
.company-purpose-v3 .value h3 { margin-bottom:14px; }

.quality-policy { background:var(--soft); }
.quality-policy > .wrap { display:block; }
.policy-heading { position:static; display:grid; grid-template-columns:1fr 1fr; gap:18px var(--column-space); align-items:start; margin-bottom:52px; }
.policy-heading .eyebrow { grid-column:1/-1; margin:0; }
.policy-heading h2,.policy-heading .lead { margin:0; }
.policy-heading .lead { max-width:540px; }
.policy-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:var(--column-space); align-items:stretch; }
.policy-photo { position:relative; min-height:680px; overflow:hidden; }
.policy-photo::after { content:''; position:absolute; left:0; bottom:0; width:84px; height:8px; background:var(--lime); }
.policy-photo img { width:100%; height:100%; min-height:680px; object-fit:cover; object-position:center; }
.policy-copy { padding:42px; background:var(--powder); }
.policy-copy > p { font-size:15px; }
.policy-copy h3 { margin-top:32px; }
.policy-commitments { list-style:none; padding:0; }
.policy-commitments li { position:relative; min-height:0; padding:18px 0 18px 34px; margin:0; border-top:1px solid var(--line); }
.policy-commitments li::before { content:''; position:absolute; left:0; top:30px; width:16px; height:2px; background:var(--lime); }

/* Services: alternate backgrounds to make each offering a distinct chapter. */
.pmo-servicios .service-detail { border-top:0; }
.pmo-servicios #intermodal { background:var(--powder); }
.pmo-servicios #crossdock { background:var(--soft); }
.pmo-servicios #trasvase { background:var(--petrol); color:var(--powder); }
.pmo-servicios #trasvase .service-summary p,
.pmo-servicios #trasvase .service-feature p { color:#d5dfdf; }
.pmo-servicios #trasvase .service-summary .eyebrow { color:var(--lime); }
.pmo-servicios #trasvase .service-feature { border-color:#fffef947; }
.pmo-servicios #trasvase .service-photo::after { background:var(--lime); }
/* Keep the operator in frame when the section crops the shared service photos. */
.pmo-servicios #crossdock .service-photo img { object-position:25% 50%; }
.pmo-servicios #trasvase .service-photo img { object-position:75% 50%; }
.pmo-servicios .commerce-solutions { background:var(--soft-strong); }

/* Contact form is a task-focused panel, visually separated from the directory. */
.contact-directory .inquiry-section { margin-top:80px; padding:48px; background:var(--soft); border-top:4px solid var(--lime); }

/* Never use decorative numerical markers. */
.faq-item summary::before { padding:0; }

@media(max-width:1100px) {
 .home .home-services-v3 > .wrap { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .home .home-services-v3 .service-copy { min-height:340px; padding:24px; }
 .home .home-services-v3 .service-copy h3 { font-size:27px; }
 .company-purpose-v3 .value { min-height:245px; }
 .policy-copy { padding:34px; }
}

@media(max-width:900px) {
 .infrastructure-intro,.company-intro-grid,.policy-layout { grid-template-columns:1fr; }
 .infrastructure-photo img { height:340px; }
 .home .home-services-v3 > .wrap { grid-template-columns:1fr; gap:28px; }
 .home .home-services-v3 .service-row,
 .home .home-services-v3 .service-row.reverse { display:grid; grid-template-columns:.9fr 1.1fr; }
 .home .home-services-v3 .service-row + .service-row { margin:0; padding:0; }
 .home .home-services-v3 .service-row figure img { height:100%; min-height:340px; aspect-ratio:auto; }
 .home .home-services-v3 .service-copy { min-height:340px; }
 .company-purpose-v3 .values-grid { grid-template-columns:1fr 1fr; }
 .policy-heading { grid-template-columns:1fr; }
 .policy-heading .eyebrow { grid-column:auto; }
 .policy-photo,.policy-photo img { min-height:480px; height:480px; }
 .contact-directory .inquiry-section { padding:36px; }
}

@media(max-width:600px) {
 .connection-grid { display:block; border-bottom:0; }
 .connection-item,.connection-item:first-child { min-height:0; padding:22px 0; border-right:0; border-bottom:1px solid #203e4a30; }
 .infrastructure-intro { gap:30px; margin-bottom:36px; }
 .infrastructure-photo img { height:270px; }
 .infrastructure-item { padding:24px 20px; }
 .home .home-services-v3 .section-heading { display:block; margin-bottom:34px; }
 .home .home-services-v3 .service-row,
 .home .home-services-v3 .service-row.reverse { display:flex; }
 .home .home-services-v3 .service-row figure img { height:auto; min-height:0; aspect-ratio:1.38/1; }
 .home .home-services-v3 .service-copy { min-height:0; padding:24px 20px 28px; }
 .home .trade-solution { min-height:0; padding:24px 20px; }
 .company-intro-media { padding:0 0 16px 16px; }
 .company-intro-media::before { inset:16px 16px 0 0; }
 .company-team-photo img { height:340px; }
 .purpose-visuals { margin-top:36px; }
 .purpose-photo img { height:250px; }
 .company-purpose-v3 .values-grid { display:block; margin-top:20px; }
 .company-purpose-v3 .value,.company-purpose-v3 .value:first-child { min-height:0; margin-top:16px; padding:24px 20px; }
 .policy-heading { margin-bottom:34px; }
 .policy-photo,.policy-photo img { min-height:0; height:360px; }
 .policy-copy { padding:28px 20px; }
 .policy-commitments li { padding-left:28px; }
 .contact-directory .inquiry-section { margin-top:56px; padding:28px 20px; }
}

/* Graphics from the client document (TEXTO PAG WEB): 3D plan with its route
   labels, regional connectivity map with legend and the rail cars per trade route. */
.home .location-v3 .split { grid-template-columns:1fr; gap:56px; }
.home .location-copy { display:grid; grid-template-columns:1fr 1fr; gap:0 var(--column-space); align-items:start; }
.home .location-copy > * { grid-column:2; }
.home .location-copy > .location-heading { grid-column:1; grid-row:1/span 4; }
.home .location-heading h2 { max-width:520px; }
.home .location-heading .eyebrow { margin-bottom:12px; }
/* Inline layout, not flex: the box width must include the swatch in every browser. */

/* The map is about as tall as the text and legend beside it. */
.connectivity-layout { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1fr); gap:var(--column-space); align-items:start; margin-bottom:56px; }
.connectivity-map { margin:0; border-top:4px solid var(--petrol); }
.connectivity-map img { display:block; width:100%; height:auto; }
/* OpenStreetMap credit (ODbL): next to the map, not inside it. */
.connectivity-map figcaption { margin:10px 0 0; color:#586b70; font-size:11px; line-height:1.4; text-align:right; }
/* Phones get a closer map whose names stay readable (tools/map-mobile.php). */
.connectivity-map-mobile { display:none; }
.legend-title { margin:0 0 8px; color:var(--petrol); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.map-legend { margin:0; padding:0; list-style:none; }
.map-legend li { display:flex; align-items:center; gap:14px; padding:13px 0; border-bottom:1px solid #203e4a26; color:var(--petrol); font-size:14px; font-weight:500; line-height:1.4; }
.map-legend li::before { content:''; flex:0 0 28px; height:3px; background:#b7bfb4; }
.map-legend .legend-ring::before { background:#a10f0c; }
.map-legend .legend-rail::before { height:0; background:none; border-top:3px dashed #ff6217; }
.map-legend .legend-free::before { height:4px; background:#2c8fb8; }
.map-legend .legend-highway::before { height:4px; background:var(--petrol); }
.map-legend .legend-pmo::before { height:22px; background:#fc1e1e; -webkit-mask:url(images/icono-ubicacion.svg) center/contain no-repeat; mask:url(images/icono-ubicacion.svg) center/contain no-repeat; }
.connectivity-aside .connectivity-copy { display:block; margin:0 0 36px; }
.connectivity-aside .connectivity-copy > * + * { margin-top:16px; }
.connectivity-list li { margin-bottom:8px; color:var(--petrol); font-weight:500; }
.company-purpose-v3 .values-label { margin:56px 0 0; }
.connection-item::before { content:''; display:block; width:44px; height:44px; margin-bottom:18px; border:2px solid var(--lime); border-radius:50%; background:var(--petrol) center/20px no-repeat; }
.connection-airport::before { background-image:url(images/icono-avion.png); }
.connection-rail::before { background-image:url(images/icono-tren.png); }
.connection-port::before { background-image:url(images/icono-barco.png); }
.connection-road::before { background-image:url(images/icono-carretera.svg); }

.trade-solution:has(.trade-railcar) { display:flex; flex-direction:column; }
.trade-railcar { margin:auto 0 0; padding-top:28px; }
.trade-railcar img { display:block; width:auto; max-width:100%; height:64px; object-fit:contain; object-position:left bottom; }

@media(max-width:900px) {
 .home .location-copy { display:block; }
 .connectivity-layout { grid-template-columns:1fr; }
 .connection-item:nth-child(odd) { padding-left:0; }
 .connection-item:nth-child(even) { border-right:0; }
}
@media(max-width:600px) {
 .home .location-v3 .split { gap:36px; }
 .connectivity-layout { margin-bottom:36px; }
 .connectivity-map:not(.connectivity-map-mobile) { display:none; }
 .connectivity-map-mobile { display:block; }
 .trade-railcar img { height:56px; }
}

/* Servicios (document v4): detailed capabilities, the train fit check and
   complementary services. */
.service-bottom .service-feature p + p { margin-top:10px; }
.service-bottom .service-feature .spec-list { padding-left:1.1em; }
.service-bottom .service-feature .spec-list li { margin-bottom:6px; font-size:14px; }
.service-summary strong,.service-feature strong { color:var(--petrol); font-weight:600; }
.pmo-servicios #trasvase .service-summary strong { color:var(--powder); }
.rail-facts { display:grid; gap:12px; margin:28px 0 0; padding:0; list-style:none; }
.rail-facts li { position:relative; padding-left:28px; font-weight:600; }
.rail-facts li::before { content:''; position:absolute; left:0; top:.8em; width:16px; height:2px; background:var(--lime); }
.fit-check { margin:0; padding:0; list-style:none; }
.fit-check li { position:relative; padding:12px 0 12px 34px; border-bottom:1px solid var(--line); color:var(--petrol); font-size:15px; }
.fit-check li::before { content:''; position:absolute; left:0; top:15px; width:16px; height:16px; border:2px solid var(--lime); }
.fit-result { margin:20px 0 0; color:var(--petrol); font-weight:500; }
.fit-check.is-interactive li { padding:0; }
.fit-check.is-interactive li::before { display:none; }
.fit-check label { display:flex; gap:18px; align-items:flex-start; padding:12px 0; cursor:pointer; transition:color 180ms; }
.fit-check input { flex:0 0 auto; appearance:none; width:20px; height:20px; margin:3px 0 0; border:2px solid var(--lime); background:var(--powder) center/12px no-repeat; cursor:pointer; transition:background-color 180ms; }
.fit-check input:checked { background-color:var(--lime); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23203E4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5 5 9.2 10 3'/%3E%3C/svg%3E"); }
.fit-check input:focus-visible { outline:2px solid var(--petrol); outline-offset:3px; }
.fit-check label:hover input:not(:checked) { background-color:#bdd63126; }
.fit-check li:has(input:checked) label { font-weight:600; }
.rail-offer-check.is-fit .fit-result { padding:14px 16px; background:#bdd63126; border-left:4px solid var(--lime); }
.fit-action { margin-top:20px; }
.fit-action[hidden] { display:none; }
/* Furgón and ferrotolva: the button sits between the questions and the text that follows. */
.solution-questions + .fit-action { margin:0 0 32px; }
.trade-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.trade-grid-two .trade-solution h3 { min-height:0; }
@media(max-width:900px) {
 .trade-grid-two { grid-template-columns:1fr; }
}

/* Sticky blocks sit 32px below the sticky header (96px), also when the WordPress admin bar (32px) pushes it down. */
:root { --sticky-top:128px; }
.admin-bar { --sticky-top:160px; }

/* Header submenus: each section lists its contents (client request, 7 oct 2026).
   Desktop opens them on hover or keyboard focus; the mobile menu lists them under their section. */
.nav-item { position:relative; }
.nav-submenu { position:absolute; z-index:5; top:calc(100% + 34px); left:-24px; display:grid; min-width:280px; padding:10px 0; background:var(--petrol); border:1px solid #fffef92b; border-top:3px solid var(--lime); box-shadow:0 18px 30px #10252d40; opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity 180ms ease, transform 180ms ease, visibility 0s 180ms; }
.nav-submenu::before { content:''; position:absolute; left:0; right:0; bottom:100%; height:37px; }
.nav-submenu a { padding:9px 24px; color:#d5dfdf; font-size:13px; line-height:1.5; transition:color 180ms ease, background-color 180ms ease; }
.nav-submenu a:hover { color:var(--lime); background:#fffef90a; }
.nav-item:hover .nav-submenu,.nav-item:focus-within .nav-submenu { opacity:1; visibility:visible; transform:none; transition-delay:0s; }
@media (max-width: 900px) {
 .primary-nav.is-open { max-height:calc(100svh - 86px); overflow-y:auto; }
 .nav-submenu { position:static; display:grid; min-width:0; padding:0 0 10px 16px; background:none; border:0; border-left:1px solid #fffef92b; box-shadow:none; opacity:1; visibility:visible; transform:none; transition:none; }
 .nav-submenu::before { display:none; }
 .nav-submenu a { padding:7px 0 7px 4px; font-size:12px; }
}
@media (max-width: 600px) {
 .primary-nav.is-open { max-height:calc(100svh - 79px); }
}
@media (prefers-reduced-motion: reduce) {
 .nav-submenu { transition:none; }
}

/* Servicios: services and foreign-trade solutions in one view; each card jumps to its detail.
   Services are photo cards with the text on a gradient; solutions are Inicio's «Súbela al tren»
   cards, with the rail car at the foot. Both rows fit on a 1440×900 screen. */
.service-menu { display:grid; gap:26px; padding-block:22px var(--section-space); }
.service-menu-label { margin-bottom:12px; }
.service-menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-menu-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; transition:box-shadow 200ms ease, transform 200ms ease; }
.service-menu-card:hover { box-shadow:0 18px 36px #203e4a1a; transform:translateY(-2px); }
.service-menu-card:focus-visible { outline:2px solid var(--petrol); outline-offset:3px; }
.service-menu-media { display:block; overflow:hidden; }
.service-menu-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; }
.service-menu-kind { margin-bottom:8px; font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.service-menu-card strong { font-size:30px; font-weight:600; line-height:1.2; letter-spacing:-.03em; }
.service-menu-text { margin-top:8px; font-size:16px; line-height:1.75; }
.service-menu-text strong { font-size:inherit!important; font-weight:600; letter-spacing:0; }
/* Services: the photo fills the card; the gradient keeps the text readable. */
.service-menu-card:has(.is-photo) { min-height:312px; background:var(--petrol); }
.service-menu-card:has(.is-photo)::after { content:''; position:absolute; z-index:3; left:0; bottom:0; width:72px; height:5px; background:var(--lime); }
.service-menu-media.is-photo { position:absolute; inset:0; }
.service-menu-media.is-photo::before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,#203e4a00 0%,#203e4a33 30%,#203e4ad9 62%,#203e4af5 100%); }
.service-menu-media.is-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 400ms ease; }
.service-menu-card:hover .is-photo img { transform:scale(1.03); }
.service-menu-card:has(.is-photo) .service-menu-copy { position:relative; z-index:2; justify-content:flex-end; padding:24px 26px 26px; }
.service-menu-card:has(.is-photo) .service-menu-kind { color:var(--lime); }
.service-menu-card:has(.is-photo) strong { color:var(--powder); }
.service-menu-card:has(.is-photo) .service-menu-text { color:#e1e6e5; }
/* Solutions: question and answer first, the rail car at the foot. */
.service-menu-card:has(.is-railcar) { background:var(--soft-strong); border-top:2px solid var(--petrol); }
.service-menu-media.is-railcar { order:2; padding:0 26px 24px; }
.service-menu-media.is-railcar img { width:auto; max-width:100%; height:46px; object-fit:contain; }
.service-menu-card:has(.is-railcar) .service-menu-copy { padding:20px 26px 14px; }
.service-menu-card:has(.is-railcar) .service-menu-kind { color:#4b6421; }
.service-menu-card:has(.is-railcar) strong { color:var(--petrol); font-size:21px; line-height:1.35; letter-spacing:-.01em; }
.service-menu-card:has(.is-railcar) .service-menu-text { flex:1; color:var(--muted); }
@media (max-width: 1100px) {
 .service-menu-grid { gap:16px; }
 .service-menu-card strong { font-size:27px; }
}
@media (max-width: 900px) {
 .service-menu-grid { grid-template-columns:1fr; gap:20px; }
 .service-menu-card:has(.is-photo) { min-height:280px; }
}
@media (max-width: 600px) {
 .service-menu { gap:28px; padding-block:24px 88px; }
 .service-menu-card:has(.is-photo) { min-height:300px; }
 .service-menu-card:has(.is-photo) .service-menu-copy { padding:22px 20px 24px; }
 .service-menu-card:has(.is-railcar) .service-menu-copy { padding:20px 20px 14px; }
 .service-menu-media.is-railcar { padding:0 20px 22px; }
 .service-menu-card strong { font-size:27px; }
 .service-menu-card:has(.is-railcar) strong { font-size:19px; }
 .service-menu-text { font-size:15px; }
}
@media (prefers-reduced-motion: reduce) {
 .service-menu-card,.service-menu-media img { transition:none; }
 .service-menu-card:hover,.service-menu-card:hover .is-photo img { transform:none; }
}

/* Servicios · comercio exterior: one detail per solution card, all with the same structure.
   The summary (rail car, question, answer, contact) stays in view while the detail scrolls. */
.solution-detail { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:var(--column-space); margin-top:28px; padding:clamp(28px,3.6vw,56px); background:var(--powder); border-top:4px solid var(--petrol); scroll-margin-top:110px; }
.commerce-intro + .solution-detail { margin-top:0; }
.solution-summary { align-self:start; }
.solution-railcar { margin:0 0 28px; }
.solution-railcar img { display:block; width:auto; max-width:100%; height:64px; object-fit:contain; object-position:left bottom; }
.solution-summary .eyebrow { margin-bottom:12px; }
.solution-summary h3 { margin:0 0 16px; font-size:clamp(24px,2.2vw,30px); line-height:1.3; letter-spacing:-.02em; }
.solution-summary .lead { margin:0; color:var(--muted); font-size:17px; }
.solution-tagline { margin:20px 0 0; color:#4b6421; font-weight:600; }
.solution-summary .rail-facts { margin-top:20px; }
.solution-summary .contact-actions { margin-top:32px; }
.solution-body > p { margin:0 0 16px; color:var(--muted); }
.solution-body h4 { margin:36px 0 16px; color:var(--petrol); font-size:18px; line-height:1.4; }
.solution-body > :first-child { margin-top:0; }
.rail-offer-check { margin-top:36px; }
.rail-offer-check h4 { margin-top:0; }
.solution-questions,.solution-benefits,.solution-steps { margin:0 0 24px; padding:0; list-style:none; }
.solution-questions li { position:relative; padding:12px 0 12px 34px; border-bottom:1px solid var(--line); color:var(--petrol); font-size:15px; }
.solution-questions li::before { content:''; position:absolute; left:0; top:15px; width:16px; height:16px; border:2px solid var(--lime); }
.solution-benefits li { position:relative; padding:10px 0 10px 28px; border-bottom:1px solid var(--line); color:var(--petrol); font-size:15px; font-weight:500; }
.solution-benefits li::before { content:''; position:absolute; left:0; top:1.3em; width:14px; height:2px; background:var(--lime); }
.solution-steps { counter-reset:step; }
.solution-steps > li { position:relative; min-height:32px; padding:4px 0 16px 48px; color:var(--muted); counter-increment:step; }
.solution-steps > li::before { content:counter(step); position:absolute; left:0; top:2px; display:grid; place-items:center; width:30px; height:30px; background:var(--lime); color:var(--petrol); font-size:13px; font-weight:700; }
.solution-steps ul { margin:10px 0 0; padding-left:18px; }
.solution-steps ul li { margin-bottom:6px; }
.solution-extras { margin-top:56px; padding-top:48px; border-top:1px solid #203e4a26; scroll-margin-top:110px; }
.solution-extras > .eyebrow { margin-bottom:12px; }
.solution-extras > h3 { margin:0 0 32px; font-size:clamp(26px,2.4vw,34px); }
@media (min-width: 1101px) {
 .solution-summary { position:sticky; top:var(--sticky-top); }
}
@media (max-width: 1100px) {
 .solution-detail { grid-template-columns:1fr; gap:36px; }
}

/* Inicio · Ubicación: PMO's aerial photo, with the brand corner of the other photos. */
.location-photo { position:relative; margin:0; overflow:hidden; }
.location-photo::after { content:''; position:absolute; right:0; bottom:0; width:72px; height:7px; background:var(--lime); }
.location-photo img { display:block; width:100%; height:clamp(260px,38vw,540px); object-fit:cover; }

