/* Identidad E3C: blanco dominante, grises fríos y los azules del logo. */
:root {
  --ink: #001d2c;
  --ink2: #00314a;
  --paper: #ffffff;
  --white: #ffffff;
  --line: #dce5ea;
  --accent: #014468;
  --muted: #607480;
}
body { background: #fff; color: var(--ink); }
.eyebrow { color: #46687a; }
.eyebrow.light { color: #b9e5fa; }
.site-header { background: #fff; color: var(--ink); border-bottom: 1px solid #dce5ea; box-shadow: 0 5px 24px rgba(0,29,44,.04); }
.header-inner { height: 98px; }
.brand { min-width: 264px; gap: 16px; }
.brand-logo { display: block; width: 128px; height: 82px; object-fit: contain; flex: none; }
.brand-divider { height: 36px; background: #c8d8e0; }
.brand-text { color: #4f6b7a; }
.desktop-nav a { color: #425d6d; }
.desktop-nav a:hover, .desktop-nav a[aria-current=page] { color: var(--accent); }
.desktop-nav a[aria-current=page] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 9px; }
.header-cta, .button-primary { background: var(--accent); color: #fff; }
.header-cta:hover, .button-primary:hover { background: #002b42; color: #fff; }
.button-dark { background: var(--ink); }
.button-dark:hover { background: var(--accent); }
.text-link:hover, .card-quote:hover { color: var(--accent); }
.hero { background: #fff; color: var(--ink); height: min(790px,calc(100vh - 98px)); }
.hero-image { background: linear-gradient(90deg,#fff 0%,#fff 25%,rgba(255,255,255,.98) 37%,rgba(255,255,255,.76) 54%,rgba(255,255,255,.09) 82%),url('/assets/equipment/ex-29.webp') 62% center / cover; }
.hero-grid { opacity: .18; background-image: linear-gradient(to right,transparent calc(25% - 1px),#8bacbd calc(25% - 1px),#8bacbd 25%,transparent 25%),linear-gradient(to right,transparent calc(50% - 1px),#8bacbd calc(50% - 1px),#8bacbd 50%,transparent 50%),linear-gradient(to right,transparent calc(75% - 1px),#8bacbd calc(75% - 1px),#8bacbd 75%,transparent 75%); }
.hero .eyebrow.light { color: var(--accent); }
.hero-index, .hero-bottom { color: #456579; }
.hero h1 { font-size: clamp(7rem,12.8vw,13.2rem); }
.hero h1 em { color: var(--accent); }
.hero-lower p { color: #304e60; }
.hero-bottom { border-top-color: #cddbe3; background: rgba(255,255,255,.85); }
.intro-grid h2 span, .editorial-grid h2 span { color: #7291a2; }
.category-section, .principles-section { background: #f0f4f6; }
.section-note, .card-kicker, .catalog-footnote { color: #5e7887; }
.category-tile { background: #dce5ea; }
.tile-shade { background: linear-gradient(180deg,rgba(0,29,44,.48),transparent 35%,rgba(0,29,44,.78)); }
.featured-section { background: #fff; }
.equipment-card { border: 1px solid #e0e8ec; box-shadow: none; }
.equipment-card:hover { box-shadow: 0 14px 30px rgba(0,42,64,.11); }
.card-photo { background: #dce5ea; }
.photo-corner { background: #fff; color: var(--ink); }
.card-bottom { border-top-color: #e2e9ed; }
.card-bottom>span { color: #607582; }
.statement-section { background: #001d2c; }
.statement-grid > * { min-width: 0; }
.statement-copy p { color: #ccdae1; }
.statement-copy h2 em { color: #9bd4ef; }
.light-link:hover { color: #9bd4ef; }
.cta-band { background: #014468; color: #fff; }
.cta-grid .eyebrow { color: #b9e5fa; }
.cta-grid .button-primary { background: #fff; color: var(--ink); }
.cta-grid .button-primary:hover { background: #e6f2f8; color: var(--ink); }
.site-footer { background: #001d2c; }
.footer-main { grid-template-columns: 1.15fr .72fr 1.08fr .9fr; gap: 36px; }
.footer-brand { display: inline-flex; align-items: center; justify-content: flex-start; background: transparent; width: 178px; height: 108px; padding: 0; }
.footer-brand img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.footer-links>span { color: #9bd4ef; }
.footer-links a:hover { color: #9bd4ef; }
.social-links { display: flex; flex-wrap: wrap; gap: 12px; }
.social-link { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; font-size: .9rem; font-weight: 600; transition: color .2s, transform .2s; }
.social-link:hover { transform: translateX(3px); }
.social-link svg { width: 16px; height: 16px; margin-left: 2px; }
.social-mark { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid currentColor; font-family: Arial,sans-serif; font-size: .95rem; font-weight: 800; line-height: 1; letter-spacing: -.07em; text-transform: lowercase; flex: none; }
.footer-social-links { flex-direction: column; align-items: flex-start; gap: 4px; }
.footer-social-links .social-link { color: #d2d8d1; }
.footer-social-links .social-link:hover { color: #9bd4ef; }
.footer-bottom { border-top-color: #294858; }
.page-hero { background: #fff; color: var(--ink); border-bottom: 1px solid #dce5ea; }
.page-hero:before { background: linear-gradient(90deg,#fff 0%,#fff 21%,rgba(255,255,255,.95) 37%,rgba(255,255,255,.65) 59%,rgba(255,255,255,.12) 90%),var(--hero-image) center / cover; }
.page-hero .eyebrow.light { color: var(--accent); }
.page-hero h1 em { color: var(--accent); }
.page-hero p { color: #355366; }
.catalog-section { background: #fff; }
.search-wrap input { border-color: #cbd9e1; }
.search-wrap input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(1,68,104,.18); }
.search-wrap svg { color: #4e6979; }
.filter-button { border-color: #c9d8e0; color: #37596b; }
.filter-button.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.empty-state { border-color: var(--line); }
.editorial-grid p:not(.lead), .principles p, .contact-grid p, .legal-copy p { color: #526b78; }
.about-photo { background: #001d2c; }
.about-photo:after { background: linear-gradient(0deg,rgba(0,29,44,.58),transparent 50%); }
.principles span { color: #4b7c97; }
.contact-panel { background: #edf3f6; }
.contact-grid .contact-number { color: var(--accent); font-weight: 800; letter-spacing: .02em; margin: 0 0 19px; }
.contact-social { margin-top: 40px; padding-top: 24px; border-top: 1px solid #d4e0e6; }
.contact-social .eyebrow { display: block; margin-bottom: 14px; }
.contact-social-links { gap: 13px 25px; }
.contact-social-links .social-link { color: var(--accent); }
.contact-social-links .social-link:hover { color: #002b42; }
.contact-panel li { border-top-color: #cad9e1; }
.contact-panel li span { color: #3c7899; }
.contact-panel p { color: #526b78; }
.legal-location { background: #eaf3f8; border-left: 4px solid var(--accent); padding: 18px 20px; color: #214b62!important; }
.legal-location strong { color: var(--ink); }
.toast { background: var(--ink); }
:focus-visible { outline-color: #1b83b8; }

/* Las secciones aparecen al entrar en pantalla; sin JavaScript permanecen visibles. */
.intro-section, .featured-section { position: relative; overflow: hidden; }
.intro-section::before, .featured-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: var(--accent); transform: scaleX(0); transform-origin: left; }
.motion-ready .intro-section.is-visible::before { transform: scaleX(1); transition: transform 1s cubic-bezier(.2,.8,.2,1); }
.motion-ready .featured-section.is-visible::before { transform: scaleX(1); transition: transform 1.15s cubic-bezier(.2,.8,.2,1); }
.motion-ready .intro-section .intro-grid > div:first-child,
.motion-ready .intro-section .intro-copy { opacity: 0; transform: translate3d(0,58px,0); }
.motion-ready .intro-section .intro-copy { transform: translate3d(62px,35px,0); }
.motion-ready .intro-section.is-visible .intro-grid > div:first-child,
.motion-ready .intro-section.is-visible .intro-copy { opacity: 1; transform: translate3d(0,0,0); transition: opacity .8s ease, transform .95s cubic-bezier(.18,.8,.25,1); }
.motion-ready .intro-section.is-visible .intro-copy { transition-delay: .16s; }
.motion-ready .featured-section .section-heading { opacity: 0; transform: translate3d(0,58px,0); }
.motion-ready .featured-section.is-visible .section-heading { opacity: 1; transform: translate3d(0,0,0); transition: opacity .75s ease, transform .9s cubic-bezier(.18,.8,.25,1); }
.motion-ready .featured-section .equipment-card { opacity: 0; transform: translate3d(0,95px,0) scale(.94); }
.motion-ready .featured-section .equipment-card.is-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); transition: opacity .72s ease, transform .9s cubic-bezier(.16,.8,.2,1); transition-delay: calc(var(--i) * 110ms); }

@media(max-width:1050px) {
  .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px 48px; }
  .footer-main>div:first-child { grid-column: auto; }
}

@media(max-width:980px) {
  .header-inner { height: 82px; }
  .brand { min-width: auto; }
  .brand-logo { width: 111px; height: 72px; }
  .menu-toggle { color: var(--ink); }
  .mobile-nav { background: #fff; border-top-color: #dce5ea; box-shadow: 0 16px 26px rgba(0,29,44,.08); }
  .mobile-nav>a:not(.button) { border-bottom-color: #dce5ea; color: var(--ink); }
  .hero { height: calc(100vh - 82px); }
  .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-main>div:first-child { grid-column: auto; }
}
@media(max-width:600px) {
  .header-inner { height: 76px; }
  .brand { gap: 10px; }
  .brand-logo { width: 91px; height: 66px; }
  .brand-divider { height: 29px; }
  .brand-text { font-size: .44rem; }
  .hero { height: calc(100svh - 76px); }
  .hero-image { background: linear-gradient(0deg,#fff 0%,#fff 20%,rgba(255,255,255,.97) 36%,rgba(255,255,255,.72) 63%,rgba(255,255,255,.24) 100%),url('/assets/equipment/ex-29.webp') 63% top / cover; }
  .hero h1 { font-size: clamp(5.3rem,16vw,8rem); }
  .hero-bottom { background: #fff; }
  .page-hero:before { background: linear-gradient(0deg,#fff 0%,rgba(255,255,255,.97) 20%,rgba(255,255,255,.8) 60%,rgba(255,255,255,.3) 100%),var(--hero-image) center / cover; }
  .page-hero h1 { font-size: clamp(5rem,14.5vw,8rem); }
  .footer-brand { width: 160px; height: 96px; }
  .footer-main { grid-template-columns: 1fr; gap: 38px; }
  .contact-social-links { flex-direction: column; align-items: flex-start; gap: 6px; }
}
@media(max-width:360px) {
  .page-hero h1 { font-size: 3.9rem; }
  .statement-copy h2 { font-size: 3.8rem; }
  .statement-copy { padding-inline: 17px; }
}
@media(prefers-reduced-motion:reduce) {
  .motion-ready .intro-section .intro-grid > div:first-child,
  .motion-ready .intro-section .intro-copy,
  .motion-ready .featured-section .section-heading,
  .motion-ready .featured-section .equipment-card { opacity: 1; transform: none; }
  .intro-section::before, .featured-section::before { display: none; }
}
