/* ENERPLE — páginas editoriales y galería de campo.
   Estilos aislados de la tienda, formularios y otras páginas existentes. */
.editorial-page { background: #fff; }
.editorial-container { width: min(100% - 96px, 1376px); margin-inline: auto; }
.editorial-section { padding-block: clamp(64px, 7vw, 112px); }
.editorial-eyebrow { font-size: .72rem; font-weight: 600; letter-spacing: .16em; color: var(--color-primary); margin-bottom: 18px; }
.editorial-page h1, .editorial-page h2, .editorial-page h3 { font-family: var(--font-body); }
.editorial-page h2 { font-size: clamp(1.85rem, 3.1vw, 3rem); font-weight: 400; line-height: 1.16; letter-spacing: -.035em; color: var(--color-primary-dark); }
.editorial-link { display: inline-flex; align-items: center; gap: 18px; padding-block: 12px; border-bottom: 1px solid #a8c4b8; color: var(--color-primary-dark); font-size: .94rem; font-weight: 500; }
.editorial-link svg { width: 22px; height: 22px; transition: transform .2s ease; }
.editorial-link:hover svg { transform: translateX(4px); }
.editorial-link-light { color: #fff; border-color: #6c9789; }
.editorial-link:focus-visible, .project-specs summary:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 5px; }
.editorial-link-light:focus-visible { outline-color: #d4e9c0; }
.editorial-section-heading { max-width: 780px; margin-bottom: 38px; }
.editorial-section-heading > p:last-child { color: var(--color-text-muted); margin-top: 22px; line-height: 1.75; }
#nuestra-esencia, #portafolio, #contactForm, #servicios-explorar-title { scroll-margin-top: 115px; }

/* Evidencia: imágenes contenidas, datos legibles y navegación compartida. */
.field-showcase { background: #fff; border-block: 1px solid var(--color-border-subtle); }
.field-showcase .showcase-title { max-width: 25ch; }
.field-showcase .showcase-slide { flex-basis: calc((100% - 48px) / 2.28); }
.field-showcase .showcase-card-link { overflow: hidden; border: 1px solid var(--color-border); background: #fff; display: flex; flex-direction: column; }
.field-showcase-image { position: relative; height: clamp(240px, 22vw, 350px); overflow: hidden; background: var(--color-bg-alt); }
.field-showcase-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #092e343b, transparent 40%); pointer-events: none; }
.field-showcase-copy { padding: 28px; flex: 1; display: flex; flex-direction: column; }
.field-showcase-copy h3 { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-family: var(--font-body); font-weight: 400; font-size: clamp(1.4rem, 1.9vw, 1.85rem); color: var(--color-primary-dark); }
.field-showcase-copy h3 svg { width: 23px; height: 23px; }
.field-showcase-description { color: var(--color-text-muted); font-size: .95rem; line-height: 1.65; margin: 14px 0 24px; }
.field-showcase-location { padding-top: 18px; border-top: 1px solid var(--color-border); margin-top: auto; display: flex; flex-direction: column; gap: 4px; }
.field-showcase-location span { font-size: .85rem; font-weight: 500; color: var(--color-primary-dark); }
.field-showcase-location small { font-family: var(--font-mono); font-size: .72rem; color: var(--color-text-muted); overflow-wrap: anywhere; }

/* Nosotros: equipo humano, fotografías de obra y contenidos con jerarquía. */
.about-cover { display: grid; grid-template-columns: 1.04fr 1fr; background: #103c33; max-width: 1920px; margin-inline: auto; }
.about-cover-copy { padding: clamp(40px, 5vw, 86px) clamp(32px, 5vw, 96px); position: relative; }
.about-cover h1 { font-size: clamp(2.5rem, 4.1vw, 4.5rem); line-height: 1.07; font-weight: 400; letter-spacing: -.045em; color: #fff; max-width: 17ch; }
.about-cover h1 em { color: #c9dfa7; font-style: normal; }
.about-cover-copy > p:not(.editorial-eyebrow) { color: #deebe4; font-size: 1rem; line-height: 1.75; max-width: 49ch; margin: 26px 0 20px; }
.about-cover-location { display: flex; align-items: center; gap: 10px; color: #dce9dd; font-size: .76rem; margin-top: 42px; }
.editorial-dot { width: 7px; height: 7px; border-radius: 50%; background: #c6df9d; box-shadow: 0 0 0 5px #c6df9d18; }
.about-cover-photo { margin: 0; position: relative; min-width: 0; }
.about-cover-photo > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 48% 43%; }
.about-cover-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, #0c2924d9 76%, #0c2924 88%); }
.about-cover-photo figcaption { position: absolute; z-index: 1; bottom: 42px; left: 38px; right: 24px; color: #fff; }
.about-cover-photo figcaption strong { font-size: 1.4rem; line-height: 1.3; font-weight: 400; }
.about-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; align-items: center; }
.about-story-visual { position: relative; padding: 0 26px 32px 0; }
.about-story-main { width: 100%; height: 530px; object-fit: cover; object-position: 43% center; border-radius: 16px; }
.about-story-note { position: absolute; bottom: 0; right: 0; width: 260px; padding: 26px; background: #e6eedd; border-radius: 12px; box-shadow: 0 15px 30px #18362a0f; }
.about-story-note p { font-size: 1.65rem; line-height: 1.2; color: #194d39; }
.about-story-copy > p:not(.editorial-eyebrow) { color: var(--color-text-muted); margin-top: 19px; font-size: .97rem; line-height: 1.8; }
.about-story-copy > p.editorial-lead { font-size: 1.2rem; line-height: 1.65; color: var(--color-primary-dark); }
.about-purpose { background: #f5f8f5; }
.about-purpose-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.about-purpose-grid article { border-radius: 18px; position: relative; overflow: hidden; }
.about-mission { isolation: isolate; padding: 44px; background: #173d30; }
.about-purpose h3 { font-size: 2.25rem; font-weight: 400; color: #194d39; margin-bottom: 22px; }
.about-purpose p { font-size: 1rem; line-height: 1.8; color: #3d5647; position: relative; z-index: 1; }
.about-vision { isolation: isolate; padding: 44px; background: #173d30; }
.about-mission > img, .about-vision > img { position: absolute; width: 100%; height: 100%; object-fit: cover; inset: 0; z-index: -2; }
.about-mission > img { object-position: center 66%; }
.about-mission::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, #102f27e3 0%, #163f3194 100%); z-index: -1; }
.about-vision::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, #123728df 0%, #163b3098 100%); z-index: -1; }
.about-mission h3, .about-mission p, .about-vision h3, .about-vision p { color: #fff; }
.about-principles-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 9%; align-items: start; }
.about-principles-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 42px 40px; }
.about-principles-grid article { border-top: 1px solid #bfd2c5; padding-top: 22px; }
.about-principles-grid h3 { font-size: 1.25rem; font-weight: 500; line-height: 1.3; margin: 0 0 14px; color: #204836; }
.about-principles-grid p { color: var(--color-text-muted); font-size: .92rem; line-height: 1.75; }
.about-recognition { padding-top: 0; }
.about-recognition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.about-award { position: relative; isolation: isolate; display: flex; flex-direction: column; background: linear-gradient(135deg, #103d31, #225a43); border-radius: 12px; padding: 40px; overflow: hidden; border: 1px solid #32664c; box-shadow: 0 18px 32px #103d3112; }
.about-award::before { content: ''; position: absolute; z-index: -1; width: 340px; height: 340px; border: 1px solid #d9c38826; border-radius: 50%; top: -140px; right: -100px; box-shadow: 0 0 0 35px #d9c38808, 0 0 0 70px #d9c38808; pointer-events: none; }
.about-award-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.about-award-icon { display: grid; place-items: center; width: 76px; height: 76px; border: 1px solid #d9c38870; border-radius: 50%; background: #e2d19b12; color: #e8d6a5; }
.about-award-icon svg { width: 54px; height: 54px; }
.about-award-edition { padding-left: 20px; border-left: 1px solid #d9c38870; color: #ecdcaf; }
.about-award-edition strong { display: block; font-size: 2rem; line-height: 1.2; }
.about-award-kicker { color: #ead8a5; font-size: .95rem; font-weight: 600; margin-bottom: 14px; }
.about-award h2 { font-size: clamp(2rem, 3.1vw, 3rem); color: #fff; font-weight: 700; line-height: 1.05; }
.about-award-description { color: #e0ebe3; font-size: .95rem; line-height: 1.75; margin: 22px 0 28px; }
.about-alliance { padding: 40px 36px; }
.about-alliance h2 { font-size: clamp(1.8rem, 2.7vw, 2.5rem); }
.about-alliance ul { list-style: none; margin-top: 30px; }
.about-alliance li { padding: 18px 0; border-bottom: 1px solid var(--color-border); }
.about-alliance strong { display: block; font-size: .96rem; color: #244c3b; font-weight: 500; }
.about-alliance li span { display: block; font-size: .86rem; color: var(--color-text-muted); margin-top: 4px; }
.about-alliance-note { margin-top: 20px; font-size: .8rem; color: var(--color-text-muted); }
.about-page .trust-section-title { font-size: 1.05rem; font-weight: 500; letter-spacing: .07em; color: var(--color-primary-dark); }
.about-page .trust-section-warm, .about-page .trust-section-white { padding-block: 54px; }
.about-page .brand-logo-card, .about-page .client-logo-card { border-radius: 10px; }
.editorial-cta { padding: 64px 0; background: #e9f0e2; }
.editorial-cta > div { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.editorial-cta h2 { font-size: clamp(1.7rem, 2.5vw, 2.5rem); }
.editorial-cta .editorial-link { flex-shrink: 0; }

/* Cabeceras interiores: un lenguaje común, con fotografías propias. */
.editorial-page-hero { background: linear-gradient(110deg, #f0f5ef, #fff); padding: 58px 0 64px; }
.editorial-page-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 7%; align-items: center; }
.editorial-page-hero h1 { font-size: clamp(2.4rem, 3.8vw, 4.1rem); color: #174a38; font-weight: 400; letter-spacing: -.045em; line-height: 1.08; }
.editorial-page-hero em { color: #53725b; font-style: normal; }
.editorial-hero-desc { font-size: 1.02rem; color: #56645d; max-width: 52ch; margin: 25px 0 20px; line-height: 1.75; }
.editorial-page-hero-image { margin: 0; position: relative; }
.editorial-page-hero-image img { width: 100%; height: 385px; object-fit: cover; border-radius: 16px; }
.editorial-page-hero-image::after { content: ''; position: absolute; left: -18px; bottom: -18px; width: 70px; height: 70px; border-left: 1px solid #95b59c; border-bottom: 1px solid #95b59c; pointer-events: none; }
.collection-heading { display: flex; justify-content: space-between; align-items: end; gap: 25px; margin-bottom: 32px; }
.collection-heading h2 { font-size: clamp(1.7rem, 2.7vw, 2.5rem); }
.collection-heading > p { font-size: .82rem; color: var(--color-text-muted); }
.projects-page .project-collection { background: #fff; }
.projects-page .projects-filter-bar { justify-content: flex-start; gap: 10px; border-bottom: 1px solid var(--color-border); padding-bottom: 22px; }
.projects-page .p-filter-btn { border-radius: 25px; font-family: var(--font-body); font-weight: 500; font-size: .84rem; padding: 10px 19px; }
.projects-page .portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 30px; }
.projects-page .portfolio-item { box-shadow: none; border: 1px solid var(--color-border); border-radius: 16px; }
.projects-page .portfolio-item:hover { box-shadow: 0 15px 40px #163e3310; transform: translateY(-3px); }
.projects-page .portfolio-img-box { height: 310px; }
.projects-page .portfolio-badge { background: #12382eea; font-size: .72rem; font-weight: 400; max-width: calc(100% - 32px); border-radius: 5px; padding: 8px 12px; }
.projects-page .portfolio-body { padding: 28px; }
.projects-page .portfolio-body h3 { font-size: 1.45rem; font-weight: 400; line-height: 1.3; color: var(--color-primary-dark); margin-bottom: 18px; }
.projects-page .service-pill-tag { font-size: .65rem; letter-spacing: .09em; color: #597257; font-weight: 600; margin-bottom: 10px; }
.projects-page .portfolio-body > p { font-size: .92rem; line-height: 1.7; order: 1; }
.projects-page .project-specs { order: 2; margin-top: 4px; border-top: 1px solid var(--color-border); }
.project-specs summary { padding: 16px 0; cursor: pointer; color: var(--color-primary-dark); font-size: .88rem; }
.projects-page .project-specs .tech-data-box { border: 0 !important; padding: 0 0 16px !important; background: transparent !important; }
.projects-page .portfolio-body > a { order: 3; align-self: flex-start; border: 0; border-bottom: 1px solid #acc5b7; border-radius: 0; background: none; padding: 9px 0; color: var(--color-primary-dark); }
.projects-page .portfolio-body > a:hover { color: var(--color-primary); background: none; }
.projects-page .project-equip-list li { font-size: .84rem; }

/* Contacto: canales directos y formulario distinguidos por superficie. */
.contact-page .contact-layout-b2b { grid-template-columns: .85fr 1.15fr; gap: 7%; margin: 0; }
.contact-channel-heading { margin-bottom: 14px; }
.contact-channel-heading > p:last-child { margin-top: 16px; font-size: .95rem; line-height: 1.7; color: var(--color-text-muted); }
.contact-page .channel-card-b2b { border: 0; border-bottom: 1px solid var(--color-border); box-shadow: none; border-radius: 0; padding: 20px 0; }
.contact-page .channel-card-b2b:hover { transform: none; }
.contact-page .channel-icon-wrap { border-radius: 50%; background: #edf4ed; }
.contact-page .channel-content { min-width: 0; }
.contact-page .channel-content h4 { font-family: var(--font-body); font-size: 1rem; font-weight: 500; }
.contact-page .channel-content a { color: var(--color-primary); font-family: var(--font-body); overflow-wrap: anywhere; }
.contact-page .contact-form-b2b { padding: 38px; border-radius: 18px; background: #f4f7f3; border-color: #e0e8dc; box-shadow: 0 18px 48px #153f2c09; }
.contact-page .contact-form-b2b h2 { font-size: 2rem; margin-bottom: 15px; }
.contact-page .form-field-group label { text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-size: .83rem; font-weight: 500; }
.contact-page .form-field-group input, .contact-page .form-field-group select, .contact-page .form-field-group textarea { background: #fff; border-radius: 8px; min-height: 46px; min-width: 0; }
.contact-page .form-field-group { min-width: 0; }
.contact-page #btnSubmitContact { background: #146653; border-color: #146653; border-radius: 8px; }
.contact-page #btnSubmitContact:hover { background: #0d493c; }

/* Catálogo: conservar filtros, búsqueda y carrito, mejorar su distribución. */
.catalog-page .editorial-page-hero-image img { object-position: center 38%; }
.catalog-collection { padding-top: 58px; }
.catalog-page .catalog-toolbar { display: flex; flex-direction: column; align-items: stretch; min-width: 0; padding: 24px; border-radius: 14px; background: #f6f8f5; box-shadow: none; margin-top: 26px; gap: 22px; }
.catalog-page .category-tabs-block { min-width: 0; flex-shrink: 1; gap: 10px; }
.catalog-page .category-tabs-row { flex-wrap: wrap; gap: 8px; }
.catalog-page .category-tab-btn { border-radius: 22px; font-family: var(--font-body); font-size: .82rem; padding: 9px 16px; font-weight: 500; background: #fff; }
.catalog-page .category-tab-btn.active { background: var(--color-primary); }
.catalog-page .toolbar-right-controls { min-width: 0; flex-wrap: wrap; }
.catalog-page .search-box { flex: 1 1 250px; min-width: 0; }
.catalog-page .search-box input { height: 45px; background: #fff; border-radius: 8px; }
.catalog-page .sort-select { height: 45px; border-radius: 8px; background: #fff; }
.catalog-page .btn-toolbar-cart-icon { width: 45px; height: 45px; border-radius: 8px; }
.catalog-page .catalog-item-card { border-radius: 14px; box-shadow: 0 6px 20px #163e3305; }
.catalog-page .catalog-item-img-link { background: linear-gradient(135deg, #fff, #f7f9f5); }
.catalog-page .catalog-item-title { font-family: var(--font-body); font-weight: 500; }

@media (max-width: 1100px) {
  .editorial-container { width: calc(100% - 64px); }
  .about-cover-copy { padding: 45px 32px; }
  .about-cover h1 { font-size: 3.25rem; }
  .about-story-grid { gap: 40px; }
  .about-story-main { height: 500px; }
  .about-story-note { width: 210px; padding: 22px; }
  .about-purpose-grid article, .about-award { padding: 32px; }
  .about-alliance { padding: 28px 18px; }
  .editorial-page-hero-grid { gap: 40px; }
  .editorial-page-hero h1 { font-size: 3rem; }
  .editorial-page-hero-image img { height: 370px; }
  .contact-page .contact-layout-b2b { gap: 34px; }
}
@media (max-width: 850px) {
  .about-cover { grid-template-columns: 1fr; }
  .about-cover-copy { padding: 48px 32px; }
  .about-cover h1 { max-width: 16ch; font-size: clamp(2.7rem, 6vw, 3.7rem); }
  .about-cover-copy > p:not(.editorial-eyebrow) { max-width: 58ch; }
  .about-cover-photo { min-height: 420px; }
  .about-cover-photo > img { object-position: 50% 40%; }
  .about-cover-location { margin-top: 28px; }
  .about-story-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-story-visual { max-width: 610px; width: 100%; }
  .about-story-main { height: 420px; }
  .about-purpose-grid, .about-recognition-grid { grid-template-columns: 1fr; }
  .about-principles-layout { grid-template-columns: 1fr; gap: 12px; }
  .editorial-page-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .editorial-page-hero-image img { height: 310px; }
  .editorial-page-hero h1 { font-size: 3rem; }
  .editorial-page-hero { padding-block: 45px; }
  .editorial-cta > div { flex-direction: column; align-items: flex-start; gap: 22px; }
  .contact-page .contact-layout-b2b { grid-template-columns: 1fr; gap: 38px; }
  .contact-page .contact-form-b2b { order: -1; }
}
@media (max-width: 768px) {
  .editorial-container { width: calc(100% - 40px); }
  .editorial-eyebrow { font-size: .65rem; margin-bottom: 15px; }
  .field-showcase .showcase-slide { flex-basis: 86%; }
  .field-showcase .showcase-title { font-size: 1.95rem; }
  .field-showcase-image { height: 210px; }
  .field-showcase-copy { padding: 22px 20px; }
  .field-showcase-copy h3 { font-size: 1.4rem; gap: 12px; }
  .field-showcase-description { font-size: .88rem; margin-block: 13px 20px; }
  .field-showcase-location span { font-size: .79rem; }
  .field-showcase-location small { font-size: .66rem; }
  .field-showcase .showcase-category { font-size: .59rem; letter-spacing: .075em; }
  .about-cover-copy { padding: 44px 24px; }
  .about-cover h1 { font-size: 2.9rem; }
  .about-cover-copy > p:not(.editorial-eyebrow) { font-size: .94rem; }
  .about-cover-photo { min-height: 330px; }
  .about-cover-photo figcaption { left: 24px; bottom: 28px; }
  .about-cover-photo figcaption strong { font-size: 1.2rem; }
  .about-story-main { height: 355px; }
  .about-story-copy > p:not(.editorial-eyebrow) { font-size: .93rem; }
  .about-story-copy > p.editorial-lead { font-size: 1.12rem; }
  .about-purpose-grid article { padding: 30px 25px; }
  .about-purpose h3 { font-size: 2rem; }
  .about-purpose p { font-size: .94rem; }
  .about-principles { background: #f6f8f5; }
  .about-principles .editorial-section-heading { margin-bottom: 26px; }
  .about-principles-grid { grid-template-columns: 1fr; gap: 14px; }
  .about-principles-grid article { position: relative; padding: 23px 22px 22px 25px; border: 1px solid #d6e2d9; border-left: 4px solid #27664c; border-radius: 12px; background: linear-gradient(135deg, #fff, #f1f5ef); box-shadow: 0 8px 22px #173e3109; }
  .about-principles-grid h3 { font-size: 1.12rem; margin-bottom: 9px; }
  .about-principles-grid p { font-size: .9rem; line-height: 1.68; }
  .about-award { padding: 32px 26px; }
  .about-alliance { padding-inline: 4px; }
  .editorial-page-hero h1 { font-size: 2.5rem; }
  .editorial-hero-desc { font-size: .95rem; margin-top: 21px; }
  .editorial-page-hero-image img { height: 265px; }
  .editorial-page-hero-image::after { display: none; }
  .collection-heading { align-items: start; flex-direction: column; gap: 14px; }
  .projects-page .portfolio-grid { grid-template-columns: 1fr; gap: 26px; }
  .projects-page .portfolio-img-box { height: 245px; }
  .projects-page .portfolio-body { padding: 22px 20px !important; }
  .projects-page .portfolio-body h3 { font-size: 1.3rem !important; line-height: 1.3 !important; }
  .projects-page .portfolio-body > p { font-size: .9rem !important; line-height: 1.65 !important; }
  .contact-page .contact-form-b2b { padding: 26px 22px; }
  .contact-page .contact-form-b2b h2 { font-size: 1.8rem; }
  .contact-page .form-field-group input, .contact-page .form-field-group select, .contact-page .form-field-group textarea { font-size: 16px; }
  .catalog-page .catalog-toolbar { padding: 18px 14px; }
  .catalog-page .category-tabs-row { width: 100%; margin-bottom: 0 !important; scrollbar-width: thin; }
  .catalog-page .category-tab-btn { padding: 9px 14px !important; }
  .catalog-page .search-box { flex-basis: 100%; }
  .catalog-page .sort-select { flex: 1; min-width: 0; max-width: calc(100% - 54px); }
  .catalog-page .catalog-item-card { border-radius: 10px !important; }
}
@media (max-width: 380px) {
  .about-cover h1 { font-size: 2.6rem; }
  .about-principles-grid { grid-template-columns: 1fr; }
  .field-showcase-copy { padding: 20px 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .editorial-link svg, .projects-page .portfolio-item { transition: none; }
}

/* Revisión corporativa: jerarquía firme, acciones visibles y menos espacio vacío. */
html { background: var(--color-dark-surface); }
body { min-height: 100vh; margin: 0; }
.site-footer { margin-bottom: 0; }
.footer-bottom { font-family: var(--font-body); color: #b7cbc7; }
.footer-bottom a { color: #b7cbc7; }
.footer-bottom a:hover { color: #fff; }
.editorial-section { padding-block: clamp(48px, 5.2vw, 80px); }
.about-recognition { padding-top: 0; }
.editorial-page h2, .showcase-title { font-weight: 700; letter-spacing: -.025em; }
.editorial-page h3, .product-showcase-copy h3, .service-showcase-copy h3,
.field-showcase-copy h3 { font-weight: 600; letter-spacing: -.015em; }
.editorial-page-hero h1 { font-weight: 700; font-size: clamp(2.3rem, 3.7vw, 3.75rem); line-height: 1.12; letter-spacing: -.035em; }
.about-cover h1 { font-weight: 700; font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1.08; letter-spacing: -.035em; max-width: 19ch; }
.editorial-page-hero em { color: #426b53; }
.editorial-eyebrow, .showcase-eyebrow, .showcase-category { font-weight: 700; letter-spacing: .1em; }
.showcase-section { padding-block: clamp(44px, 5vw, 76px); }
.showcase-title { font-size: clamp(1.9rem, 3vw, 2.8rem); }
.showcase-header { margin-bottom: 28px; align-items: center; }
.showcase-subtitle { line-height: 1.65; }
.page-breadcrumb-band { background: #f2f3f0; border-top: 1px solid #e3e6e1; border-bottom: 1px solid #d9dfda; }
.page-breadcrumb { min-height: 54px; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; font-size: .86rem; color: #304b40; margin: 0 auto; }
.page-breadcrumb a { color: #31594a; text-decoration: none; font-weight: 500; }
.page-breadcrumb a:hover { color: #0f6448; }
.page-breadcrumb span[aria-current="page"] { color: #172f26; font-weight: 600; }
.page-breadcrumb a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Botones con relleno; los enlaces de navegación siguen siendo enlaces de texto. */
.btn-primary, .btn-secondary, .btn-cta, .btn-contacto,
.editorial-link, .showcase-text-link,
.services-page .service-card-action a, .projects-page .portfolio-body > a {
  display: inline-flex; justify-content: center; align-items: center; gap: 12px;
  min-height: 46px; padding: 12px 22px; border: 1px solid #155640;
  border-radius: 6px; background: #155640; color: #fff; font-weight: 600;
  font-family: var(--font-body); font-size: .9rem; line-height: 1.35;
  box-shadow: 0 3px 8px #103d3110; text-decoration: none;
}
.btn-primary:hover, .btn-secondary:hover, .btn-cta:hover, .btn-contacto:hover,
.editorial-link:hover, .showcase-text-link:hover,
.services-page .service-card-action a:hover, .projects-page .portfolio-body > a:hover {
  background: #0d4030; border-color: #0d4030; color: #fff;
}
.editorial-link-light { background: #2b7455; border-color: #5e9474; color: #fff; }
.editorial-link-light:hover { background: #348762; border-color: #82b48d; }
.editorial-link svg, .showcase-text-link svg { flex: 0 0 20px; width: 20px; height: 20px; }

/* Tarjetas con una base visual definida y fotografías propias. */
.service-showcase-card .showcase-card-link { overflow: hidden; background: #fff; border: 1px solid #d7e3dc; border-radius: 10px; box-shadow: 0 4px 14px #163e3307; }
.service-showcase-image { border-radius: 0; }
.service-showcase-copy { padding: 24px; border-top: 3px solid #236447; }
.service-showcase-copy h3 { font-size: clamp(1.25rem, 1.7vw, 1.65rem); }
.service-showcase-description { font-size: .91rem; line-height: 1.65; }
.service-showcase-image img[src*="ilustracion_"] { object-fit: contain; padding: 15px; background: #eef3e9; }
.services-page .service-details-section { background: #f1f5f2; }
.services-page .services-main-grid { gap: 28px; }
.services-page .service-card-clean { border: 1px solid #d8e3db; border-radius: 10px; background: #fff; padding: 0; gap: 0; }
.services-page .service-card-img-wrap { border-radius: 0; min-height: 340px; }
.services-page .service-card-body { padding: 30px; }
.services-page .service-card-body h3 { font-weight: 700; font-size: clamp(1.4rem, 2vw, 1.75rem); }
.services-page .service-card-clean:nth-child(even) .service-card-img-wrap { order: 2; }
.services-page #bombeo .service-card-img-wrap { background: #fff; }
.services-page #bombeo .service-card-img-wrap img { object-fit: contain; padding: 18px; }
.services-page .service-specs-box li { font-size: .91rem; line-height: 1.65; padding-block: 7px; }
.services-page .workflow-step-num { font-size: 1.6rem; }
.services-page .workflow-step-card { min-width: 0; }
.services-page .workflow-step-card h4 { overflow-wrap: anywhere; }
.editorial-page-hero-image::after { display: none; }
.editorial-page-hero-image { overflow: hidden; border-radius: 10px; }
.editorial-page-hero-image img { border-radius: 0; }
.editorial-page-hero-image figcaption { position: absolute; bottom: 0; inset-inline: 0; padding: 28px 24px 18px; background: linear-gradient(transparent, #102e26e8); color: #fff; font-size: .79rem; }
.home-page .stat-strip-num, .home-page .stat-strip-label, .home-page .stat-strip-desc { font-family: var(--font-body); }
.home-page .stat-strip-label { letter-spacing: .06em; }
.home-page .stat-strip-desc { color: #c2d7cf; }
.about-story-note p { font-weight: 600; }
.about-alliance strong { font-weight: 700; }
.about-alliance { background: #f2f5ef; border: 1px solid #e0e8dd; border-radius: 10px; }
.about-alliance li { padding-block: 17px; }
.projects-page .portfolio-body h3 { font-weight: 700; }
.projects-page .portfolio-body > a { margin-top: 10px; }
.contact-page .contact-form-b2b { border-top: 4px solid #155640; }
.catalog-collection .collection-heading p { font-size: .9rem; color: var(--color-text-muted); margin-top: 10px; }
#equipos { scroll-margin-top: 106px; }
.catalog-page .catalog-toolbar { border: 1px solid #d6e2d9; border-top: 3px solid #155640; background: #f1f5f0; }
.catalog-page .category-tab-btn { font-weight: 600; border-radius: 6px; }
.catalog-page .catalog-collection { padding-top: 40px; }
.service-faq { background: #fff; }
.service-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7%; }
.service-faq .editorial-section-heading { margin-bottom: 0; }
.service-faq details { border-bottom: 1px solid #d5e1d9; padding: 20px 0; }
.service-faq details:first-child { border-top: 1px solid #d5e1d9; }
.service-faq summary { cursor: pointer; font-size: 1.04rem; color: #174b37; font-weight: 600; line-height: 1.5; }
.service-faq details p { margin-top: 16px; font-size: .94rem; line-height: 1.75; }
.service-faq details a { color: #155640; text-decoration: underline; text-underline-offset: 3px; }
.service-faq summary:focus-visible { outline: 2px solid #155640; outline-offset: 5px; }
@media (max-width: 850px) {
  .catalog-page .editorial-page-hero-image { display: none; }
  .catalog-page .catalog-hero-link { display: none; }
  .catalog-page .editorial-page-hero { padding-block: 28px 30px; border-bottom: 1px solid #dbe5dc; }
  .catalog-page .editorial-hero-desc { margin-bottom: 0; }
  .catalog-page .catalog-collection { padding-top: 28px; }
  .catalog-page .collection-heading { margin-bottom: 20px; }
  .catalog-page .catalog-toolbar { margin-top: 0; }
  .service-faq-grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 768px) {
  .editorial-page-hero h1 { font-size: 2.15rem; }
  .about-cover h1 { font-size: 2.5rem; }
  .about-cover-copy { padding-block: 30px 38px; }
  .page-breadcrumb { min-height: 48px; gap: 10px; font-size: .82rem; }
  .showcase-title { font-size: 1.9rem; }
  .showcase-header { margin-bottom: 22px; }
  .showcase-text-link { margin-top: 18px; }
  .service-showcase-copy { padding: 22px 20px; }
  .service-showcase-image { height: 260px; }
  .services-page .service-card-clean { gap: 0; }
  .services-page .service-card-clean:nth-child(even) .service-card-img-wrap { order: 0; }
  .services-page .service-card-img-wrap { height: 260px; min-height: 0; }
  .services-page .service-card-body { padding: 24px 22px; }
  .services-page .service-card-action a { width: 100% !important; }
  .about-alliance { padding: 28px 24px; }
  .about-award h2 { font-size: 2.3rem; }
  .catalog-page .collection-heading h2 { font-size: 1.6rem; }
  .editorial-cta { padding-block: 42px; }
}
@media (max-width: 420px) {
  .services-page .workflow-process-grid { grid-template-columns: minmax(0, 1fr) !important; }
}
