/* Editorial product information, unclipped logos and fluid mobile hero. */
.hero-caption-track { position:absolute; inset:0 0 0 45%; overflow:hidden; pointer-events:none; }
.hero-caption-track .hero-caption { pointer-events:auto; }
.hero-caption,.dark .hero-caption { inset:29% 2.5vw auto auto; width:21vw; padding:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; opacity:1; transition:transform .8s cubic-bezier(.4,0,.2,1); }
.hero-caption h2 { font-size:clamp(23px,2.25vw,38px); line-height:1.04; letter-spacing:-.045em; font-weight:800; margin-bottom:10px; }
.hero-caption .hero-subtitle { font-size:clamp(11px,1vw,15px); font-weight:700; line-height:1.4; text-transform:uppercase; letter-spacing:.03em; margin:0 0 24px; }
.hero-specs { margin:0 0 22px; padding:20px 0; border-block:1px solid currentColor; border-color:#1b2a4933; display:grid; gap:16px; }
.dark .hero-specs { border-color:#ffffff33; }
.hero-specs div { display:grid; gap:5px; }
.hero-specs dt { font-size:10px; line-height:1.4; text-transform:uppercase; letter-spacing:.1em; opacity:.7; }
.hero-specs dd { margin:0; font-size:14px; font-weight:600; line-height:1.4; }
.hero-caption .hero-detail { font-size:13px; line-height:1.7; margin-bottom:22px; }
.hero-slide.is-leaving .hero-caption { transform:translate3d(var(--caption-exit,-100vw),0,0); opacity:1; transition:transform .8s cubic-bezier(.4,0,.2,1); }
.hero-slide.is-current .hero-caption { opacity:1; }
.brand-mark { width:112px; height:56px; overflow:visible; }
.brand-mark img { position:static; width:100%; height:100%; max-width:100%; object-fit:contain; transform:none; }
.footer-menus > .footer-brand { grid-column:2; grid-row:2; justify-self:start; width:190px; max-width:100%; height:auto; margin-top:4px; overflow:visible; }
.footer-brand img { position:static; width:100%; height:auto; max-width:100%; object-fit:contain; transform:none; }
.footer-bottom { display:grid; grid-template-columns:1fr auto 1fr; }
.footer-bottom > span { grid-column:2; text-align:center; }
.footer-bottom > a { grid-column:3; justify-self:end; }
@media(min-width:901px) and (max-height:740px) {
 .hero-caption,.dark .hero-caption { top:24%; }
 .hero-caption h2 { font-size:25px; }
 .hero-specs { padding:12px 0; gap:10px; margin-bottom:14px; }
 .hero-caption .hero-subtitle { margin-bottom:14px; }
 .hero-caption .hero-detail { margin-bottom:14px; font-size:12px; }
}
@media(max-width:1100px) {
 .brand { gap:14px; }
 .brand-mark { width:95px; height:48px; }
 .brand-nameplate { font-size:11px; }
}
@media(max-width:900px) {
 .hero { --intro-bottom:350px; --caption-height:280px; --product-height:max(clamp(285px,52vw,400px),calc(var(--caption-height) + 32px)); height:auto; min-height:0; padding:0 0 calc(var(--product-height) + 64px); display:block; }
 .hero-copy { position:relative; inset:auto; width:auto; max-width:none; margin:0; padding:calc(var(--header-height) + 24px) 6% 18px; display:block; }
 .hero-copy .eyebrow { font-size:9px; letter-spacing:.12em; margin-bottom:12px; }
 .hero-copy h1 { font-size:clamp(28px,5.8vw,40px); line-height:1.08; margin-bottom:16px; }
 .hero-copy .hero-lede { font-size:14px; line-height:1.65; max-width:600px; margin-bottom:18px; }
 .hero-copy .button { padding:12px 19px; font-size:12px; }
 .hero-stage { position:absolute; inset:0; width:100%; height:100%; }
 .hero-scene-image,.product .hero-scene-image { top:var(--intro-bottom); height:var(--product-height); width:100%; object-fit:cover; object-position:62% 52%; }
 .hero-media::after { background:linear-gradient(#edf3f6 0%,#edf3f6 calc(var(--intro-bottom) - 18px),transparent calc(var(--intro-bottom) + 28px),transparent calc(var(--intro-bottom) + var(--product-height) - 30px),#edf3f6 calc(var(--intro-bottom) + var(--product-height) + 2px)); }
 .dark .hero-media::after { background:linear-gradient(#080f20 0%,#080f20 calc(var(--intro-bottom) - 18px),transparent calc(var(--intro-bottom) + 28px),transparent calc(var(--intro-bottom) + var(--product-height) - 30px),#080f20 calc(var(--intro-bottom) + var(--product-height) + 2px)); }
 .hero-caption-track { inset:0; }
 .hero-caption,.dark .hero-caption { inset:calc(var(--intro-bottom) + var(--product-height) + 12px) 6% auto; width:auto; max-width:none; padding:0; margin:0; }
 .hero-caption h2 { font-size:clamp(25px,5vw,32px); line-height:1.08; margin-bottom:8px; }
 .hero-caption .hero-subtitle { font-size:11px; margin-bottom:14px; }
 .hero-specs { grid-template-columns:1fr 1fr; padding:12px 0; gap:14px; margin-bottom:14px; }
 .hero-specs dd { font-size:13px; }
 .hero-caption .hero-detail { font-size:12px; line-height:1.6; margin-bottom:14px; max-width:560px; }
 .hero-caption .hero-product-link { font-size:10px; }
 .hero-controls { bottom:18px; }
 .brand-mark { width:86px; height:43px; }
 .brand-nameplate { font-size:10px; }
 .brand { gap:12px; }
 .footer-menus { grid-template-columns:1fr 1fr; }
 .footer-menus > .footer-brand { width:180px; }
}
@media(max-width:420px) {
 .site-header { padding-inline:14px; gap:7px; }
 .brand-mark { width:74px; height:38px; }
 .brand { gap:9px; }
 .brand-nameplate { font-size:9px; }
 .hero-copy h1 { font-size:29px; }
 .hero-copy .hero-lede { font-size:13px; }
 .hero-specs dd { font-size:12px; }
 .footer-bottom { grid-template-columns:1fr; gap:12px; }
 .footer-bottom > span,.footer-bottom > a { grid-column:1; justify-self:center; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-caption,.hero-slide.is-leaving .hero-caption { transition:none!important; }
}

@media(max-width:900px) {
 .laboratory .hero-scene-image { height:var(--product-height); object-position:70% center; }
 .laboratory .hero-media::after { background:linear-gradient(#edf3f6 0%,#edf3f6 calc(var(--intro-bottom) - 18px),transparent calc(var(--intro-bottom) + 28px),transparent calc(100% - 85px),#edf3f6 100%); }
}

/* Footer revision — navigation and contact, with shared centered brand. */
#contacto .footer-menus {
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  grid-template-areas: "navigation contact" "brand brand";
  align-items: start;
  gap: 28px 24px;
}
#contacto .footer-menus > nav { grid-area: navigation; min-width: 0; }
#contacto .footer-direct {
  grid-area: contact;
  min-width: 0;
  border: 0;
  padding: 0;
}
#contacto .footer-direct .footer-contact-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 0;
  line-height: 1.5;
  text-decoration: none;
}
#contacto .footer-contact-link span { min-width: 0; overflow-wrap: anywhere; }
#contacto .footer-contact-icon { flex: 0 0 19px; width: 19px; height: 19px; color: var(--gold, #d6c29a); }
#contacto .footer-direct > p { margin-top: 10px; }
#contacto .footer-menus > .footer-brand {
  grid-area: brand;
  justify-self: center;
  width: clamp(180px, 17vw, 230px);
  max-width: 70%;
  height: auto;
  margin: 24px 0 0;
}
#contacto .footer-brand img { display: block; width: 100%; height: auto; }
#contacto .footer-menus a:focus-visible { outline: 2px solid var(--gold, #d6c29a); outline-offset: 5px; border-radius: 3px; }
@media (max-width: 1000px) {
  #contacto .footer-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  #contacto .footer-menus { padding-top: 0; }
}
@media (max-width: 600px) {
  #contacto .footer-menus { gap: 26px 16px; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  #contacto .footer-menus > nav a { min-height: 44px; display: flex; align-items: center; margin: 0; line-height: 1.5; }
  #contacto .footer-contact-link { font-size: 12px; }
  #contacto .footer-direct .footer-contact-link { gap: 7px; }
  #contacto .footer-menus > .footer-brand { width: 180px; margin-top: 14px; }
}
@media (max-width: 359px) {
  #contacto .footer-menus { grid-template-columns: minmax(0, 1fr); grid-template-areas: "navigation" "contact" "brand"; }
}


/* Keep home section headings subordinate to the hero title. */
#lines-title,
#catalog-title,
#services-title,
#contact-title {
  font-size: clamp(28px, 3.15vw, 49px);
}
@media (max-width: 900px) {
  #lines-title,
  #catalog-title,
  #services-title,
  #contact-title {
    font-size: clamp(25px, 5.1vw, 35px);
  }
}

/* Align Solutions with the shared section margins. */
#lineas .lines-content,
#lineas .lines-content > h2,
#lineas .solutions-intro {
  max-width: none;
}
#lineas .lines-content {
  margin-inline: 0;
}

/* Direct form delivery feedback. */

.form-status { display: block; flex: 1 1 220px; color: #d6c29a; font-size: 12px; line-height: 1.5; }
.form-status.error { color: #f3b2a8; }
#contact-form button[type=submit]:disabled, #quote-form button[type=submit]:disabled { cursor: wait; opacity: .65; }
@media (max-width: 600px) { .form-status { flex-basis: 100%; } }

#contact-form .form-status { grid-column: 1 / -1; }
#quote-form .form-status { color: inherit; }
#quote-form .form-status.error { color: #a12721; }

.product-card[href] { color: inherit; text-decoration: none; }
.product-card[href]:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

.related-products { padding-block: clamp(32px, 5vw, 72px); }
.related-products .section-heading h2 { font-size: clamp(25px, 3.15vw, 42px); }

@media (max-width: 900px) {
  .product { --scene-background: #edf3f6; }
  .product.dark { --scene-background: #080f20; }
  .product .hero-scene-image {
    inset: var(--intro-bottom) clamp(20px, 6vw, 42px) auto auto;
    width: 155%;
    max-width: none;
    object-position: right center;
  }
  .product .hero-media::after {
    background:
      linear-gradient(to bottom,
        var(--scene-background) calc(var(--intro-bottom) - 1px),
        transparent calc(var(--intro-bottom) + 24px),
        transparent calc(var(--intro-bottom) + var(--product-height) - 22px),
        var(--scene-background) calc(var(--intro-bottom) + var(--product-height))),
      linear-gradient(to right,
        transparent 35%,
        color-mix(in srgb, var(--scene-background) 90%, transparent) 60%,
        var(--scene-background));
  }
  .product .hero-caption,
  .product.dark .hero-caption {
    inset: calc(var(--intro-bottom) + (var(--product-height) - var(--caption-height)) / 2) 5% auto auto;
    width: 46%;
  }
  .product .hero-caption h2 { font-size: clamp(19px, 4.5vw, 29px); }
  .product .hero-subtitle { font-size: 10px; margin-bottom: 8px; }
  .product .hero-specs { grid-template-columns: 1fr; gap: 7px; padding: 8px 0; margin-bottom: 8px; }
  .product .hero-specs dt { font-size: 9px; }
  .product .hero-specs dd { font-size: clamp(11px, 2.6vw, 14px); }
  .product .hero-caption .hero-detail { font-size: clamp(11px, 2.6vw, 14px); line-height: 1.4; margin-bottom: 8px; }
}
