/* NALTRUS / editorial visual direction. Isolated from functional styles. */
:root{--max:1200px;--visual-gap:clamp(24px,4vw,64px)}
body{font-size:16px;line-height:1.65}
body[data-page] h1{font-size:clamp(2.65rem,5.4vw,4.75rem);line-height:1.04;letter-spacing:-.055em;text-wrap:balance}
body[data-page] h2{font-size:clamp(1.85rem,3.3vw,2.85rem);line-height:1.13;letter-spacing:-.045em;text-wrap:balance}
body[data-page] h3{font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.25;letter-spacing:-.025em}
body[data-page] .lead{font-size:clamp(1rem,1.35vw,1.14rem);line-height:1.75;max-width:62ch}
.kicker{font-size:.69rem;letter-spacing:.16em;line-height:1.4;margin-bottom:20px}.kicker:before{width:24px;height:2px}
body[data-page] main>section:where(:not(.hero):not(.page-hero)){padding-block:76px}
.button{min-height:50px;padding:12px 21px;font-size:.86rem;line-height:1.4;gap:16px}
.text-link{display:inline-flex;gap:30px;align-items:center;font-size:.88rem;font-weight:800;padding:14px 0;border-bottom:1px solid currentColor}
.nav{height:88px}.navlinks{gap:20px;font-size:.76rem}.nav .brand-slogan{font-size:.49rem}
.hero{min-height:730px;max-height:950px;align-items:center}.hero-inner{padding:170px 0 75px;width:min(calc(100% - 48px),var(--max))}
.hero-media{background:linear-gradient(90deg,rgba(17,17,17,.95),rgba(17,17,17,.76) 40%,rgba(17,17,17,.08) 85%),url('/assets/naltrus-architecture.webp') center/cover}
.hero-media:after{background:linear-gradient(0deg,#1119,transparent 50%)}
body[data-page=home] .hero h1{font-size:clamp(2.7rem,5.6vw,5rem);max-width:850px;line-height:1.05}.hero-copy{grid-template-columns:1fr .55fr;gap:65px;margin-top:30px}.hero-copy p{max-width:540px;margin-bottom:26px}.location{font-size:.65rem;border-width:1px;line-height:1.6}.location strong{font-size:.83rem}.signal-rail{height:4px;margin-top:40px;max-width:540px}
.manifesto .split,.name-story-grid,.human-head,.section-intro,.service-page .top,.deliver-grid,.band-grid,.split{gap:var(--visual-gap)}
.manifesto .facts{margin-top:40px}.fact{padding-block:20px}.fact strong{font-size:1rem}.fact span{font-size:.67rem;line-height:1.6}
body[data-page] section.home-about{padding-block:64px;background:var(--paper);color:var(--ink);border-top:1px solid var(--line)}
.home-about .human-head{align-items:center}.home-about .human-head .lead{color:var(--graphite)}.home-about .text-link{color:var(--ink)}
.divisions{background:#171817}.section-intro{margin-bottom:38px}.section-intro .lead{max-width:43ch}
.division-grid{gap:20px;border:0}.division-card{padding:0;min-height:0;border:1px solid #43443f;display:flex;flex-direction:column;background:#20211f}
.division-card:before{display:none}.division-card:after{right:25px;top:auto;bottom:29px;font-size:1.4rem}.division-image{height:230px;overflow:hidden;background:#c5c3bc}.division-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.division-card:hover .division-image img{transform:scale(1.04)}.division-card:hover{transform:translateY(-3px);background:var(--paper)}
.division-copy{padding:26px 28px 32px;flex:1}.division-copy .num{font-size:.65rem;color:#b5b6ad}.division-card h3{margin:14px 0 14px!important;font-size:clamp(1.55rem,2.4vw,2rem)!important;letter-spacing:-.035em}.division-card p{font-size:.94rem;margin-bottom:20px;max-width:44ch}.division-card ul{margin:0;gap:7px;padding-right:26px}.division-card li{font-size:.64rem;padding:4px 8px}
.partner-section .split{grid-template-columns:1fr 1fr;align-items:start}.partner-points{margin:20px 0 24px;font-size:.9rem}.partner-points li{padding:11px 0}.partner-section .lead{font-size:1rem}
body[data-page] section.focus{padding:0;min-height:510px}.focus-image{background-image:url('/assets/naltrus-energy.webp');min-height:440px}.focus-content{padding:clamp(36px,5vw,76px);border:0;background:#e4e2da}.focus-content p{margin:23px 0 26px}.focus-content .button{align-self:flex-start}
.method-grid{grid-template-columns:.9fr 1.1fr;gap:60px;margin-top:36px;align-items:stretch}.method-image{background-image:url('/assets/naltrus-planning.webp');min-height:440px;border-radius:2px}.step{padding:22px 0;grid-template-columns:36px 1fr;gap:16px}.step h3{font-size:1.1rem!important;margin-bottom:7px}.step p{font-size:.94rem}.method h2 br{display:block}
.client-types{background:#e8e6df}.client-types h2{max-width:740px}.client-grid{margin-top:32px}.client-grid li{font-size:.86rem;gap:20px;padding-top:24px}.client-grid svg{width:28px;height:28px}
/* Service page openings: different imagery, composition and tone per line. */
body[data-page] .page-hero{min-height:620px;display:flex;align-items:center;background:#171817}
body[data-page] .page-hero:before{display:none}body[data-page] .page-hero:after{display:none}
body[data-page] .page-hero .inner{padding:150px 0 65px;position:relative;z-index:2}
body[data-page] .page-hero h1{max-width:55%;font-size:clamp(2.65rem,4.7vw,4.3rem);line-height:1.06}
body[data-page] .page-hero .intro{max-width:47%;font-size:1.02rem;line-height:1.75;margin:26px 0 0;color:#cfcec6}
.backlink{margin-bottom:34px;font-size:.65rem}.page-hero .line-tag{margin-top:24px;padding:6px 10px;font-size:.62rem;letter-spacing:.12em}
.page-visual{position:absolute;right:0;top:0;width:45%;height:100%;overflow:hidden}.page-visual img{width:100%;height:100%;object-fit:cover;display:block}.page-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#17181722,transparent 40%)}
body[data-page=engineering] .page-visual{right:3.2%;top:125px;bottom:38px;height:auto;width:39%;clip-path:polygon(13% 0,100% 0,100% 88%,87% 100%,0 100%,0 13%)}
body[data-page=engineering] .page-visual img{object-position:68% center}
body[data-page=energy] .page-hero{background:#e5e2d9;color:#171817}
body[data-page=energy] .header,body[data-page=about] .header{color:var(--ink);border-color:#17171725}
body[data-page=energy] .header .nav-contact,body[data-page=about] .header .nav-contact{border-color:#17171760}
body[data-page=energy] .header a:hover,body[data-page=about] .header a:hover{color:#686960}
body[data-page=energy] .page-hero .intro,body[data-page=about] .page-hero .intro{color:#4a4b45}
body[data-page=energy] .backlink,body[data-page=about] .backlink{color:#585950}
body[data-page=energy] .page-visual{width:44%;border-radius:150px 0 0 0;top:115px;height:calc(100% - 115px)}
body[data-page=energy] .page-visual img{object-position:70% center}
body[data-page=energy] .service-page{background:#f6f5ef}
body[data-page=energy] .service-cards{grid-template-columns:1fr 1fr;gap:18px;border:0}
body[data-page=energy] .service-card{border:1px solid #d3d1c6;background:#eeece4;min-height:190px}
body[data-page=energy] .service-card .number{display:inline-flex;border:1px solid #7e8074;border-radius:50%;height:34px;width:34px;align-items:center;justify-content:center;letter-spacing:0;margin-bottom:22px;font-size:.6rem}
body[data-page=technical] .page-hero{background:#383b38}
body[data-page=technical] .page-visual{width:40%;height:calc(100% - 166px);top:126px;right:4%;transform:rotate(3deg);box-shadow:0 25px 70px #0003}
body[data-page=technical] .page-visual img{object-position:72% center}
body[data-page=technical] .service-cards{grid-template-columns:1fr;gap:0;border:0;max-width:100%}
.service-detail{border-top:1px solid #bcbeb4}.service-detail:last-child{border-bottom:1px solid #bcbeb4}
.service-detail summary{display:grid;grid-template-columns:60px 1fr 24px;gap:18px;align-items:center;cursor:pointer;list-style:none;min-height:90px;padding:23px 10px}
.service-detail summary::-webkit-details-marker{display:none}.service-detail summary .number{font-size:.72rem;color:#74776c;font-weight:800}.service-detail summary h3{margin:0;font-size:1.2rem!important}.detail-toggle{font-size:1.5rem;font-weight:400;transition:transform .2s}.service-detail[open] .detail-toggle{transform:rotate(45deg)}.service-detail[open]{background:#eeeee6}.service-detail-content{padding:0 55px 28px 88px}.service-detail-content p{max-width:66ch;margin-bottom:15px;color:#55574e}.service-detail summary:focus-visible{outline:2px solid #111;outline-offset:-2px}
body[data-page=permits] .page-hero{background:#252a28}
body[data-page=permits] .page-visual{width:46%;top:118px;height:calc(100% - 118px);border-top-left-radius:160px}
body[data-page=permits] .page-visual img{object-fit:cover;object-position:center}
body[data-page=permits] .service-cards{grid-template-columns:1fr 1fr;border:0;gap:20px}
body[data-page=permits] .service-card{border:0;border-top:2px solid #778276;background:#e8ebe3;min-height:200px}
body[data-page=about] .page-hero{background:#e9e5dc;color:#171817;min-height:560px}
body[data-page=about] .page-visual{width:38%;right:4%;top:125px;height:calc(100% - 165px);border-radius:160px 160px 0 0}
body[data-page=about] .page-visual img{object-position:65% center}
body[data-page=about] .page-hero h1{max-width:53%}
body[data-page=about] .about-story .split{align-items:start;grid-template-columns:1fr 1fr}
body[data-page=about] .human{padding-block:60px}.human-head{align-items:start}.human-head .lead{font-size:1.1rem!important}
.about-purpose .purpose-grid{gap:40px}.purpose-grid article{padding:25px 0}.purpose-grid .number{font-size:.7rem}.about-values{background:#e7e6de}.values-grid{gap:16px}.about-value{min-height:190px;padding:22px}.about-value h3{margin-top:24px}.about-value p{font-size:.9rem}.about-value-number{font-size:.65rem}
.founder-grid{grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}.founder-photo{max-width:400px;margin:0}.founder-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:120px 0 0 0}.about-founder .lead{font-size:1rem!important}.specialty-tags{margin-top:22px;gap:7px}.specialty-tags li{font-size:.66rem;padding:5px 8px}
body[data-page=contact] .page-hero{min-height:410px;background:#202420}
body[data-page=contact] .page-hero h1{max-width:750px;font-size:clamp(2.6rem,4.5vw,4rem)}
body[data-page=contact] .page-hero .intro{max-width:680px}.contact-hero .backlink{margin-bottom:24px}
body[data-page=legal] .page-hero,body[data-page=projects] .page-hero{min-height:390px}
body[data-page=legal] .page-hero h1,body[data-page=projects] .page-hero h1{max-width:100%}
body[data-page=legal] .page-hero .intro,body[data-page=projects] .page-hero .intro{max-width:680px}
.service-page .top{margin-bottom:38px;align-items:start}.service-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.service-card{padding:26px;min-height:225px}.service-card .number{margin-bottom:28px;font-size:.68rem}.service-card p{font-size:.94rem;line-height:1.7}.service-card h3{margin-bottom:14px}
.deliver-grid{grid-template-columns:.85fr 1.15fr;gap:65px;align-items:start}.deliver-figure{margin:28px 0 0;overflow:hidden;aspect-ratio:16/10}.deliver-figure img{width:100%;height:100%;object-fit:cover;object-position:center}.deliver-item{padding-block:20px;grid-template-columns:32px 1fr}.deliver-item p{font-size:.96rem}
.band-grid{grid-template-columns:1fr auto}.band-grid .lead{max-width:58ch}.band .button{white-space:nowrap}
body[data-page] section.technical-teaser{padding-block:38px;background:#e5e6dd}.technical-teaser .wrap{display:grid;grid-template-columns:1fr auto;gap:10px 35px;align-items:center}.technical-teaser .kicker{grid-column:1/-1;margin:0}.technical-teaser h2{font-size:1.55rem!important}.technical-teaser p{font-size:.93rem;margin:0;max-width:60ch}.technical-teaser .button{grid-column:2;grid-row:2/4}
.related{padding-block:48px!important}.related-grid{margin-top:24px;gap:12px}.related a{padding:20px;font-size:.86rem}.related .lead{margin-top:18px}
.contact-form-band{border-top:1px solid var(--line)}.home-form-wrap{max-width:900px}.contact-layout{gap:50px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
body[data-page] h2.form-heading{font-size:clamp(1.6rem,2.5vw,2.15rem);max-width:630px;margin-bottom:30px}.contact-form-band h2{max-width:720px;margin-bottom:32px}.contact-aside{padding:25px}.contact-aside h2{font-size:1.65rem!important}.contact-aside address{font-size:.91rem;gap:12px}.contact-aside .location-card{margin-top:25px}
.form-grid{gap:18px}.form-field label{font-size:.81rem}.form-field input,.form-field select,.form-field textarea{font-size:.95rem;padding:12px}.form-privacy,.form-consent label{font-size:.76rem}.form-status{font-size:.82rem}.contact-form .button{font-size:.86rem}
@media(min-width:1281px){.header .navlinks{transform:none}.header .navlinks.open{background:none}}
@media(max-width:1000px){.hero{min-height:670px}.hero-copy{gap:34px}.page-visual{opacity:.83}.page-hero .inner{padding-top:140px!important}.page-hero .intro{max-width:48%!important}.service-cards{grid-template-columns:1fr 1fr}.founder-grid{gap:35px}.deliver-grid{gap:35px}.client-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.nav{height:74px}.hero-inner{padding-top:130px}.hero-copy{grid-template-columns:1fr}.location{display:none}.split,.human-head,.section-intro,.service-page .top,.deliver-grid,.partner-section .split,.about-story .split,.band-grid{grid-template-columns:1fr!important;gap:30px}.hero{min-height:650px}.hero-media{background-position:65% center}.division-grid{grid-template-columns:1fr 1fr}.division-image{height:180px}.division-copy{padding:22px}.division-card h3{font-size:1.55rem!important}.focus{grid-template-columns:1fr 1fr}.focus-content{padding:40px 28px}.focus-image{min-height:400px}.method-grid{gap:30px;grid-template-columns:1fr 1fr}.method-image{min-height:420px}.page-visual{width:43%!important;right:0!important}.page-hero h1{max-width:55%!important}.page-hero .intro{max-width:52%!important}.page-hero{min-height:560px!important}.page-hero .inner{padding-bottom:55px!important}.backlink{margin-bottom:28px}.technical-teaser .wrap{grid-template-columns:1fr}.technical-teaser .button{grid-column:1;grid-row:auto;justify-self:start;margin-top:12px}.founder-grid{grid-template-columns:1fr 1.1fr}.contact-layout{gap:30px;grid-template-columns:1.2fr 1fr}.band .button{justify-self:start}.deliver-figure{max-width:620px;aspect-ratio:16/7}.navlinks.open{color:#f2f0e9}.navlinks.open a:hover{color:#c5c3bc}.navlinks.open .nav-contact{border-color:#f2f0e980}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}body[data-page] main>section:where(:not(.hero):not(.page-hero)){padding-block:52px}body[data-page] h1{font-size:2.65rem}body[data-page] h2{font-size:1.85rem}body[data-page] .lead{font-size:1rem}.hero{min-height:650px;align-items:center}.hero-inner{width:calc(100% - 36px);padding:130px 0 55px}.hero-media{background:linear-gradient(90deg,#111d,#1118),url('/assets/naltrus-architecture.webp') 68% center/cover}.hero h1 br{display:none}.hero-copy{margin-top:25px}.hero-copy p{font-size:1rem}.manifesto .facts{margin-top:28px;display:grid;grid-template-columns:1fr;gap:0}.fact,.fact:first-child{padding:14px 0}.fact strong{font-size:.92rem}.fact span{font-size:.63rem}.division-grid{grid-template-columns:1fr}.division-image{height:210px}.division-copy{padding:22px}.division-card p{font-size:.92rem}.division-card ul{margin-top:16px}.focus{grid-template-columns:1fr}.focus-image{min-height:270px}.focus-content{padding:36px 22px}.method-grid{grid-template-columns:1fr}.method-image{min-height:0;height:270px;order:0}.steps{order:1}.client-grid{grid-template-columns:1fr 1fr}.client-grid li{font-size:.8rem}.page-hero{display:block!important;min-height:0!important}.page-hero .inner{padding:118px 0 40px!important}.page-hero h1,.page-hero .intro{max-width:100%!important}.page-hero h1{font-size:2.55rem!important}.page-hero .intro{font-size:.98rem!important;margin-top:22px!important}.page-hero .backlink{margin-bottom:22px}.page-hero .line-tag{margin-top:22px}.page-visual{position:relative!important;right:auto!important;top:auto!important;bottom:auto!important;width:calc(100% - 36px)!important;height:240px!important;transform:none!important;clip-path:none!important;border-radius:60px 0 0 0!important;margin:0 18px 24px!important;opacity:1;box-shadow:none!important;float:none;order:2}.page-hero{display:flex!important;flex-direction:column;align-items:stretch!important}.page-hero .inner{order:1}.page-hero .page-visual{order:2}.page-visual img{object-position:center!important}.page-visual:after{display:none}.service-cards,body[data-page=energy] .service-cards,body[data-page=permits] .service-cards{grid-template-columns:1fr}.service-card{min-height:0;padding:24px}.service-card .number{margin-bottom:20px}.service-detail summary{grid-template-columns:38px 1fr 18px;gap:12px;padding:21px 4px;min-height:80px}.service-detail summary h3{font-size:1.05rem!important}.service-detail-content{padding:0 18px 24px 54px;font-size:.92rem}.founder-grid{grid-template-columns:1fr;gap:35px}.founder-photo{max-width:340px;width:100%;margin-inline:auto}.founder-photo img{aspect-ratio:4/4.5;border-radius:90px 0 0 0}.purpose-grid{grid-template-columns:1fr;gap:25px!important}.values-grid{grid-template-columns:1fr!important}.about-value{min-height:0;padding:22px}.about-value h3{margin-top:14px}.about-value p{margin-bottom:0}.deliver-figure{aspect-ratio:16/9}.band-grid{gap:25px!important}.related-grid{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr}.contact-aside{padding:22px}.form-grid{grid-template-columns:1fr}.form-heading{font-size:1.7rem!important}.technical-teaser h2{font-size:1.4rem!important}.client-types h2{font-size:1.65rem!important}.footer-unified{padding-top:45px}.footer-grid{gap:26px}.footer-unified .brand-slogan{font-size:.5rem}}
@media(prefers-reduced-motion:reduce){.division-image img,.division-card,.detail-toggle{transition:none}.division-card:hover{transform:none}}
.header .menu{position:relative;z-index:42}.header .navlinks.open{z-index:40}.header .brand,.header .lang-mobile{position:relative;z-index:41}
body.menu-open .header .brand,body.menu-open .header .lang-mobile,body.menu-open .header .menu{color:#f2f0e9}
body[data-page=energy] .navlinks.open a:hover,body[data-page=about] .navlinks.open a:hover{color:#e6e5df}

body[data-page=technical] .page-visual img{object-position:65% center}
body[data-page=permits] .page-visual img{object-position:55% center}
body[data-page=about] .page-visual img{object-position:center}

/* G6 — Footer headings as discreet section labels, across every page and breakpoint. */
.footer-unified .footer-grid h2,
body[data-page] .footer-unified .footer-grid h2 {
  font-family: inherit;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #c5c3bc;
  margin: 0 0 13px;
  text-wrap: initial;
}

/* G7 — Hero division identifier: editorial label, not a clickable button. */
.page-hero .line-tag{
  display:inline-block;
  background:transparent;
  color:#e8e8e2;
  border:0;
  border-left:2px solid var(--accent);
  border-radius:0;
  padding:2px 0 2px 12px;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  cursor:default;
  box-shadow:none;
}
@media(max-width:640px){.page-hero .line-tag{padding:2px 0 2px 10px;font-size:.62rem}}

/* G8: two non-duplicated related divisions on line pages */
@media(min-width:901px){.related-grid.related-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* G11 — Coherencia vertical de las tarjetas de Ingeniería y Tramitaciones.
   Las tarjetas comparten altura por fila y los textos mantienen una línea base
   consistente sin imponer alturas fijas en pantallas pequeñas. */
body[data-page="engineering"] .service-cards,
body[data-page="permits"] .service-cards { align-items: stretch; }
body[data-page="engineering"] .service-card,
body[data-page="permits"] .service-card { display: flex; flex-direction: column; height: 100%; min-width: 0; }
body[data-page="engineering"] .service-card h3,
body[data-page="permits"] .service-card h3 { min-height: 2.7em; }
body[data-page="engineering"] .service-card p,
body[data-page="permits"] .service-card p { margin-top: auto; }
@media (max-width:640px) {
  body[data-page="engineering"] .service-card h3,
  body[data-page="permits"] .service-card h3 { min-height: 0; }
  body[data-page="engineering"] .service-card p,
  body[data-page="permits"] .service-card p { margin-top: 0; }
}

/* E3.5: primary request action in each technical service accordion */
.service-detail-content .service-request-button{display:inline-flex;align-items:center;justify-content:center;background:#171917;color:#fff;border:1px solid #171917;padding:10px 16px;font-size:.78rem;font-weight:750;text-decoration:none;line-height:1.35;min-height:42px}
.service-detail-content .service-request-button:hover{background:#363a35;color:#fff}
.service-detail-content .service-request-button:focus-visible{outline:3px solid #627c5f;outline-offset:3px}
.service-detail-content .service-tags{align-items:center}
.service-detail-content .service-tags .service-tag{margin-top:0}
