/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/
@view-transition {
  navigation: auto;
}

:root {

  /* -------------------------------------------------------
     COLORS — Brand
     ------------------------------------------------------- */
  --almar-primary: #101921;
  --almar-bg: #F9FAFB;
  --almar-bg-dark: #0E1922;

  --almar-accent: #A0DDFF;
  --almar-accent-75: rgba(160, 221, 255, 0.75);
  /* pastilla translúcida (Hero) */
  --almar-accent-50: rgba(160, 221, 255, 0.50);
  /* overlays ligeros */
  --almar-blue-deep: #0A9DE6;
  --almar-blue-med: #9FDCFF;
  --almar-blue-soft: #D7EEFF;
  --almar-blue-pale: #E5F6FF;

  --almar-gray-warm: #CBC3B2;
  --almar-gray-2light: #E5E5E5;
  --almar-gray-mid: #D3D3D3;

  --almar-orange: #FF6939;

  --sdg6-blue: #26BDE2;

  /* -------------------------------------------------------
     COLORS — Semantic text
     ------------------------------------------------------- */
  --almar-text-on-dark: #FFFFFF;
  --almar-text-on-dark-muted: rgba(255, 255, 255, 0.82);
  --almar-text-on-dark-faint: rgba(255, 255, 255, 0.6);
  --almar-text-on-light: var(--almar-primary);
  --almar-text-on-light-muted: rgba(16, 25, 33, 0.75);
  --almar-text-on-light-faint: rgba(16, 25, 33, 0.55);

  /* -------------------------------------------------------
     TYPOGRAPHY
     ------------------------------------------------------- */
  --almar-font-sans: "BRSonoma", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --almar-fs-hero-xl: 54px;
  --almar-fs-hero: 48px;
  --almar-fs-h1: 40px;
  --almar-fs-h2: 32px;
  --almar-fs-h3: 22px;
  --almar-fs-lead: 18px;
  --almar-fs-body: 16px;
  --almar-fs-small: 14px;
  --almar-fs-micro: 12px;

  --almar-fw-light: 200;
  --almar-fw-regular: 400;
  --almar-fw-medium: 500;
  --almar-fw-default: 500;
  /* peso por defecto de Almar */

  --almar-lh-tight: 0.88;
  --almar-lh-snug: 1.1;
  --almar-lh-body: 1.5;
  --almar-lh-loose: 1.7;

  --almar-ls-tight: -0.5px;
  --almar-ls-normal: 0;
  --almar-ls-wide: 1.5px;

  /* -------------------------------------------------------
     SPACING — Escala modular (múltiplos de 4px)
     ------------------------------------------------------- */
  --almar-sp-xs: 4px;
  --almar-sp-sm: 8px;
  --almar-sp-md: 16px;
  --almar-sp-lg: 24px;
  --almar-sp-xl: 32px;
  --almar-sp-2xl: 48px;
  --almar-sp-3xl: 64px;
  --almar-sp-4xl: 96px;
  --almar-sp-5xl: 128px;

  /* Section padding */
  --almar-section-py: 96px;
  --almar-section-py-tablet: 72px;
  --almar-section-py-mobile: 56px;

  /* Container horizontal padding */
  --almar-container-px: 64px;
  --almar-container-px-tablet: 40px;
  --almar-container-px-mobile: 24px;

  /* -------------------------------------------------------
     LAYOUT
     ------------------------------------------------------- */
  --almar-container-max: 1320px;
  --almar-content-max: 720px;

  /* -------------------------------------------------------
     BORDERS & RADII
     ------------------------------------------------------- */
  --almar-radius-sm: 4px;
  --almar-radius-md: 8px;
  --almar-radius-lg: 12px;
  --almar-radius-pill: 9999px;

  --almar-border-dark: 0.5px solid rgba(255, 255, 255, 0.12);
  --almar-border-light: 0.5px solid rgba(16, 25, 33, 0.1);
  --almar-border-accent: 1px solid var(--almar-accent);

  /* -------------------------------------------------------
     SHADOWS
     ------------------------------------------------------- */
  --almar-shadow-sm: 0 1px 3px rgba(16, 25, 33, 0.08);
  --almar-shadow-md: 0 4px 12px rgba(16, 25, 33, 0.1);
  --almar-shadow-lg: 0 10px 30px rgba(16, 25, 33, 0.15);
  --almar-shadow-xl: 0 20px 50px rgba(16, 25, 33, 0.2);

  /* -------------------------------------------------------
     TRANSITIONS
     ------------------------------------------------------- */
  --almar-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --almar-transition-fast: 0.2s var(--almar-ease);
  --almar-transition-med: 0.3s var(--almar-ease);
  --almar-transition-slow: 0.5s var(--almar-ease);

  /* -------------------------------------------------------
     ANIMATIONS — Durations & delays
     ------------------------------------------------------- */
  --almar-anim-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* easing editorial, suave */
  --almar-anim-fade-up: 0.6s var(--almar-anim-ease);
  --almar-anim-bounce: 1.6s ease-in-out;
  --almar-anim-kenburns: 20s ease-out;

  /* Delays escalonados para entrada secuencial */
  --almar-anim-delay-1: 0ms;
  --almar-anim-delay-2: 150ms;
  --almar-anim-delay-3: 300ms;
  --almar-anim-delay-4: 450ms;

  /* -------------------------------------------------------
     Z-INDEX SCALE
     ------------------------------------------------------- */
  --almar-z-base: 1;
  --almar-z-elevated: 10;
  --almar-z-sticky: 100;
  --almar-z-overlay: 1000;
  --almar-z-modal: 10000;
}

::selection {
  color: white;
  background: #22d0ff;
}

/* Global stuff */
.brxe-section.almar-home-hero,
.brxe-section.almar-hero {
  min-height: 100dvh ! important;
}

.brxe-div.almar-home-hero__card.almar-stack,
.brxe-div.almar-hero_stack {
  margin-top: auto !important;

}

html .width-full {
  max-width: 100% !important;
  width: 100% !important;
}

/* h1,
h2,
h3,
h4,
h5,
h6,
p,
span,
a,
button,
.brxe-text-basic,
.brxe-text,
.wp-block-heading,
.wp-block-paragraph {

  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
 
} */
.split-line {
  line-height: 1.15em;
  /* Desactivar text-box-trim para evitar que se corten las descendentes */
  text-box-trim: none;
  text-box-edge: auto;
}

.bricks-button {
  transition: all 0.3s ease;
  gap: 10px;
  filter: brightness(1);
}

.bricks-button.bricks-background-primary:hover {
  filter: brightness(1.2);
}

.bricks-button.bricks-background-secondary:hover {
  opacity: 0.95;
}


/* scroll lenis */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}


/* IMPORTED */
/* =========================================================
   ALMAR DESIGN SYSTEM
   01 · BASE — Reset mínimo + utilidades tipográficas
   ---------------------------------------------------------
   Las clases `almar-text-*` y `almar-title-*` reemplazan
   a los widgets "Encabezado" / "Editor de texto" de
   Elementor o Bricks. Se usan dentro de los componentes.
   ========================================================= */


/* -------------------------------------------------------
   Reset suave (sin tocar el reset del tema)
   Solo aplica DENTRO de componentes almar-*
   ------------------------------------------------------- */
[class^="almar-"],
[class^="almar-"] *,
[class^="almar-"] *::before,
[class^="almar-"] *::after {
  box-sizing: border-box;
  font-family: var(--almar-font-sans);
}


/* -------------------------------------------------------
   Títulos (utilidades tipográficas)
   Uso: <h2 class="almar-title-lg">...</h2>
   ------------------------------------------------------- */

.almar-title-xl {
  font-size: var(--almar-fs-hero-xl);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-tight);
  letter-spacing: var(--almar-ls-tight);
  margin: 0;
}

.almar-title-lg {
  font-size: var(--almar-fs-hero);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-snug);
  letter-spacing: var(--almar-ls-tight);
  margin: 0;
}

.almar-title-md {
  font-size: var(--almar-fs-h1);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-snug);
  margin: 0;
}

.almar-title-sm {
  font-size: var(--almar-fs-h2);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-snug);
  margin: 0;
}

.almar-title-xs {
  font-size: var(--almar-fs-h3);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-snug);
  margin: 0;
}


/* -------------------------------------------------------
   Textos (cuerpo y variantes)
   ------------------------------------------------------- */

.almar-text-lead {
  font-size: var(--almar-fs-lead);
  font-weight: var(--almar-fw-regular);
  line-height: var(--almar-lh-body);
  margin: 0;
}

.almar-text-body {
  font-size: var(--almar-fs-body);
  font-weight: var(--almar-fw-regular);
  line-height: var(--almar-lh-body);
  margin: 0;
}

.almar-text-small {
  font-size: var(--almar-fs-small);
  font-weight: var(--almar-fw-regular);
  line-height: var(--almar-lh-body);
  margin: 0;
}

.almar-text-micro {
  font-size: var(--almar-fs-micro);
  font-weight: var(--almar-fw-regular);
  line-height: var(--almar-lh-body);
  margin: 0;
}


/* -------------------------------------------------------
   Eyebrow / Overline — etiqueta pequeña de sección
   Uso: <p class="almar-eyebrow">Sustainability</p>
   ------------------------------------------------------- */

.almar-eyebrow {
  font-size: var(--almar-fs-small);
  font-weight: var(--almar-fw-regular);
  letter-spacing: var(--almar-ls-wide);
  text-transform: uppercase;
  line-height: 1.6;
  margin: 0;
}


/* -------------------------------------------------------
   Variantes de color sobre fondos claros/oscuros
   Apilables con cualquier clase de texto
   Uso: <h2 class="almar-title-lg almar-on-dark">...</h2>
   ------------------------------------------------------- */

.almar-on-light {
  color: var(--almar-text-on-light);
}

.almar-on-light-muted {
  color: var(--almar-text-on-light-muted);
}

.almar-on-light-faint {
  color: var(--almar-text-on-light-faint);
}

.almar-on-dark {
  color: var(--almar-text-on-dark);
}

.almar-on-dark-muted {
  color: var(--almar-text-on-dark-muted);
}

.almar-on-dark-faint {
  color: var(--almar-text-on-dark-faint);
}

.almar-on-accent {
  color: var(--almar-accent);
}


/* -------------------------------------------------------
   Links dentro de componentes almar-*
   Uso: <a class="almar-link">...</a>
   ------------------------------------------------------- */

.almar-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 0.5px;
  transition: opacity var(--almar-transition-fast);
}

.almar-link:hover {
  opacity: 0.7;
}


/* -------------------------------------------------------
   Responsive typography — se escala en tablet y móvil
   ------------------------------------------------------- */

@media (max-width: 1100px) {
  .almar-title-xl {
    font-size: 48px;
  }

  .almar-title-lg {
    font-size: 40px;
  }

  .almar-title-md {
    font-size: 32px;
  }

  .almar-title-sm {
    font-size: 26px;
  }
}

@media (max-width: 780px) {
  .almar-title-xl {
    font-size: 36px;
    line-height: 1;
  }

  .almar-title-lg {
    font-size: 30px;
  }

  .almar-title-md {
    font-size: 26px;
  }

  .almar-title-sm {
    font-size: 22px;
  }

  .almar-title-xs {
    font-size: 18px;
  }

  .almar-text-lead {
    font-size: 16px;
  }
}

@media (max-width: 420px) {
  .almar-title-xl {
    font-size: 28px;
  }

  .almar-title-lg {
    font-size: 26px;
  }
}


/* -------------------------------------------------------
   Accesibilidad — reducir animaciones si el usuario
   lo tiene activo en su sistema operativo
   ------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

  [class^="almar-"] *,
  [class^="almar-"] *::before,
  [class^="almar-"] *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.1s !important;
  }
}

/* =========================================================
   ALMAR DESIGN SYSTEM
   02 · LAYOUT — Secciones, contenedores, grids
   ---------------------------------------------------------
   Primitivas estructurales. Reemplazan los "Contenedores"
   nativos de Elementor/Bricks. Se usan como wrappers
   de los componentes individuales.
   ========================================================= */


/* -------------------------------------------------------
   SECTION — Bloque vertical de página
   Uso: <section class="almar-section">...</section>

   Variantes:
   .almar-section--dark   → fondo oscuro (navy)
   .almar-section--bg     → fondo gris claro (F9FAFB)
   .almar-section--flush  → sin padding vertical (0)
   .almar-section--tight  → padding reducido a la mitad
   ------------------------------------------------------- */

.almar-section {
  position: relative;
  width: 100%;
  padding: var(--almar-section-py) 0;
  background: transparent;
}

.almar-section--dark {
  background: var(--almar-bg-dark);
  color: var(--almar-text-on-dark);
}

.almar-section--bg {
  background: var(--almar-bg);
  color: var(--almar-text-on-light);
}

.almar-section--flush {
  padding-top: 0;
  padding-bottom: 0;
}

.almar-section--tight {
  padding: var(--almar-sp-2xl) 0;
}


/* -------------------------------------------------------
   CONTAINER — Centra contenido horizontalmente
   Uso: <div class="almar-container">...</div>

   Variantes:
   .almar-container--narrow → ancho más reducido (720px)
   .almar-container--full   → ancho completo (sin max)
   ------------------------------------------------------- */

.almar-container {
  width: 100%;
  max-width: var(--almar-container-max);
  margin: 0 auto;
  padding-left: var(--almar-container-px);
  padding-right: var(--almar-container-px);
}

.almar-container--narrow {
  max-width: 960px;
}

.almar-container--full {
  max-width: none;
}


/* -------------------------------------------------------
   CONTENT — Bloque de texto con ancho óptimo de lectura
   Uso: <div class="almar-content">párrafos largos...</div>
   ------------------------------------------------------- */

.almar-content {
  max-width: var(--almar-content-max);
}


/* -------------------------------------------------------
   GRID — Sistema simple de columnas basado en CSS Grid
   Uso: <div class="almar-grid almar-grid--3">...</div>

   Variantes de columnas:
   .almar-grid--2  → 2 columnas desktop
   .almar-grid--3  → 3 columnas desktop
   .almar-grid--4  → 4 columnas desktop
   .almar-grid--5  → 5 columnas desktop
   ------------------------------------------------------- */

.almar-grid {
  display: grid;
  gap: var(--almar-sp-lg);
}

.almar-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

.almar-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.almar-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

.almar-grid--5 {
  grid-template-columns: repeat(5, 1fr);
}

/* Gap modifiers */
.almar-grid--gap-sm {
  gap: var(--almar-sp-sm);
}

.almar-grid--gap-md {
  gap: var(--almar-sp-md);
}

.almar-grid--gap-lg {
  gap: var(--almar-sp-lg);
}

.almar-grid--gap-xl {
  gap: var(--almar-sp-xl);
}


/* -------------------------------------------------------
   STACK — Espaciado vertical entre hijos
   Uso: <div class="almar-stack">hijo 1, hijo 2, hijo 3</div>

   Variantes:
   .almar-stack--sm  → gap reducido
   .almar-stack--lg  → gap amplio
   ------------------------------------------------------- */

.almar-stack {
  display: flex;
  flex-direction: column;
  gap: var(--almar-sp-md);
}

.almar-stack--sm {
  gap: var(--almar-sp-sm);
}

.almar-stack--lg {
  gap: var(--almar-sp-lg);
}

.almar-stack--xl {
  gap: var(--almar-sp-xl);
}


/* -------------------------------------------------------
   ROW — Layout horizontal con gaps
   Uso: <div class="almar-row">...</div>
   ------------------------------------------------------- */

.almar-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--almar-sp-md);
  align-items: center;
}

.almar-row--sm {
  gap: var(--almar-sp-sm);
}

.almar-row--lg {
  gap: var(--almar-sp-lg);
}

.almar-row--between {
  justify-content: space-between;
}

.almar-row--center {
  justify-content: center;
}


/* -------------------------------------------------------
   RESPONSIVE — Ajusta padding y grids automáticamente
   ------------------------------------------------------- */

@media (max-width: 1100px) {
  .almar-section {
    padding: var(--almar-section-py-tablet) 0;
  }

  .almar-container {
    padding-left: var(--almar-container-px-tablet);
    padding-right: var(--almar-container-px-tablet);
  }

  .almar-grid--5 {
    grid-template-columns: repeat(4, 1fr);
  }

  .almar-grid--4 {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 780px) {
  .almar-section {
    padding: var(--almar-section-py-mobile) 0;
  }

  .almar-container {
    padding-left: var(--almar-container-px-mobile);
    padding-right: var(--almar-container-px-mobile);
  }

  .almar-grid--5,
  .almar-grid--4,
  .almar-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .almar-grid--2 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {

  .almar-grid--5,
  .almar-grid--4,
  .almar-grid--3,
  .almar-grid--2 {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   ALMAR DESIGN SYSTEM
   03 · UTILITIES — Helpers puntuales
   ---------------------------------------------------------
   Uso con moderación: para ajustes finos, no como estilo
   principal. Los componentes deberían cubrir el 90% de casos.
   ========================================================= */


/* -------------------------------------------------------
   TEXT ALIGN
   ------------------------------------------------------- */
.almar-u-text-left {
  text-align: left;
}

.almar-u-text-center {
  text-align: center;
}

.almar-u-text-right {
  text-align: right;
}


/* -------------------------------------------------------
   DISPLAY
   ------------------------------------------------------- */
.almar-u-hidden {
  display: none !important;
}

.almar-u-block {
  display: block;
}

.almar-u-inline {
  display: inline;
}

.almar-u-inline-block {
  display: inline-block;
}

.almar-u-flex {
  display: flex;
}

.almar-u-grid {
  display: grid;
}


/* -------------------------------------------------------
   MARGIN TOP (mt) / MARGIN BOTTOM (mb)
   ------------------------------------------------------- */
.almar-u-mt-0 {
  margin-top: 0;
}

.almar-u-mt-xs {
  margin-top: var(--almar-sp-xs);
}

.almar-u-mt-sm {
  margin-top: var(--almar-sp-sm);
}

.almar-u-mt-md {
  margin-top: var(--almar-sp-md);
}

.almar-u-mt-lg {
  margin-top: var(--almar-sp-lg);
}

.almar-u-mt-xl {
  margin-top: var(--almar-sp-xl);
}

.almar-u-mt-2xl {
  margin-top: var(--almar-sp-2xl);
}

.almar-u-mt-3xl {
  margin-top: var(--almar-sp-3xl);
}

.almar-u-mb-0 {
  margin-bottom: 0;
}

.almar-u-mb-xs {
  margin-bottom: var(--almar-sp-xs);
}

.almar-u-mb-sm {
  margin-bottom: var(--almar-sp-sm);
}

.almar-u-mb-md {
  margin-bottom: var(--almar-sp-md);
}

.almar-u-mb-lg {
  margin-bottom: var(--almar-sp-lg);
}

.almar-u-mb-xl {
  margin-bottom: var(--almar-sp-xl);
}

.almar-u-mb-2xl {
  margin-bottom: var(--almar-sp-2xl);
}

.almar-u-mb-3xl {
  margin-bottom: var(--almar-sp-3xl);
}


/* -------------------------------------------------------
   WIDTH
   ------------------------------------------------------- */
.almar-u-w-full {
  width: 100%;
}

.almar-u-w-auto {
  width: auto;
}

.almar-u-max-content {
  max-width: var(--almar-content-max);
}


/* -------------------------------------------------------
   VISIBILITY (responsive)
   Útil para ocultar elementos en móvil o desktop
   ------------------------------------------------------- */

@media (max-width: 780px) {
  .almar-u-hide-mobile {
    display: none !important;
  }
}

@media (min-width: 781px) {
  .almar-u-hide-desktop {
    display: none !important;
  }
}


/* -------------------------------------------------------
   LISTS
   ---------------------------------------------------------
   Sistema global de listas con bullets.
   Bullet • negro a la izquierda, interlineado compacto.
   Aplicar la clase .almar-list a cualquier <ul>.

   Modificadores opcionales:
   · --tight      (menos espacio entre items)
   · --loose      (más espacio entre items)
   · --accent     (bullet en azul)
   · --divider    (añade línea divisoria entre items, estilo editorial)
   ------------------------------------------------------- */

.almar-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.almar-list li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 12px;
  line-height: 1.5;
  font-size: var(--almar-fs-body);
  color: var(--almar-primary);
}

.almar-list li:last-child {
  margin-bottom: 0;
}

.almar-list li::before {
  content: "•";
  position: absolute;
  left: 4px;
  top: 0;
  color: var(--almar-primary);
  font-weight: var(--almar-fw-medium);
  line-height: 1.5;
}

/* Tight — menos aire */
.almar-list--tight li {
  margin-bottom: 6px;
}

/* Loose — más aire */
.almar-list--loose li {
  margin-bottom: 20px;
}

/* Accent — bullet azul */
.almar-list--accent li::before {
  color: var(--almar-blue-deep);
}

/* Divider — añade línea divisoria entre items (estilo editorial) */
.almar-list--divider li {
  padding: 14px 0 14px 22px;
  border-bottom: 1px solid rgba(16, 25, 33, 0.08);
  margin-bottom: 0;
}

.almar-list--divider li:first-child {
  padding-top: 0;
}

.almar-list--divider li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.almar-list--divider li::before {
  top: 14px;
}

.almar-list--divider li:first-child::before {
  top: 0;
}


@media (max-width: 780px) {
  .almar-list li {
    padding-left: 20px;
    margin-bottom: 10px;
  }

  .almar-list li::before {
    left: 2px;
  }

  .almar-list--tight li {
    margin-bottom: 4px;
  }

  .almar-list--loose li {
    margin-bottom: 16px;
  }

  .almar-list--divider li {
    padding: 12px 0 12px 20px;
  }

  .almar-list--divider li::before {
    top: 12px;
  }

  .almar-list--divider li:first-child::before {
    top: 0;
  }
}

/* =========================================================
   ALMAR DESIGN SYSTEM
   04 · ANIMATIONS — Keyframes and animation utilities
   ---------------------------------------------------------
   Animaciones reutilizables del sistema.

   Todas respetan prefers-reduced-motion.
   ========================================================= */


/* =========================================================
   KEYFRAMES
   ========================================================= */

/* 1. Fade + desplazamiento hacia arriba (entrada secuencial) */
@keyframes almar-fade-up {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 2. Rebote vertical sutil (scroll indicator) */
@keyframes almar-bounce-down {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(4px);
  }
}

/* 3. Zoom lento tipo Ken Burns (imagen de fondo) */
@keyframes almar-kenburns {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.05);
  }
}


/* =========================================================
   UTILITY CLASSES — aplica animaciones
   ========================================================= */

/* Fade-up genérico — aparece con desplazamiento */
.almar-anim-fade-up {
  animation: almar-fade-up var(--almar-anim-fade-up) both;
}

/* Delays escalonados para secuencia */
.almar-anim-delay-1 {
  animation-delay: var(--almar-anim-delay-1);
}

.almar-anim-delay-2 {
  animation-delay: var(--almar-anim-delay-2);
}

.almar-anim-delay-3 {
  animation-delay: var(--almar-anim-delay-3);
}

.almar-anim-delay-4 {
  animation-delay: var(--almar-anim-delay-4);
}

/* Rebote infinito — para iconos scroll */
.almar-anim-bounce {
  animation: almar-bounce-down var(--almar-anim-bounce) infinite;
}

/* Zoom Ken Burns — para imagen/video de fondo */
.almar-anim-kenburns {
  animation: almar-kenburns var(--almar-anim-kenburns) forwards;
}


/* =========================================================
   ACCESSIBILITY — Respeta prefers-reduced-motion
   ---------------------------------------------------------
   Si el usuario ha activado "Reducir movimiento" en su OS,
   todas las animaciones se desactivan automáticamente.
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .almar-anim-fade-up,
  .almar-anim-bounce,
  .almar-anim-kenburns {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* =========================================================
   ALMAR DESIGN SYSTEM
   05 · COMPONENTS — Reusable UI patterns
   ---------------------------------------------------------
   Componentes reutilizables que se usan en varias páginas.
   ========================================================= */


/* =========================================================
   CIRCLE BADGE
   ---------------------------------------------------------
   Orb con anillo de gradiente + centro oscuro + icono.
   Usado en: Sustainability (SDG 6), y otras páginas donde
   haga falta destacar un elemento visual central.

   Estructura HTML:
   <div class="almar-circle-badge" data-orb>
     <div class="almar-circle-badge__ring"></div>
     <div class="almar-circle-badge__center">
       <img src="icono.svg" alt="">
     </div>
   </div>

   Modificadores:
   · --sm  (200px)
   · --md  (280px) — default
   · --lg  (360px)

   La rotación del anillo se calcula según el scroll del
   usuario (no es loop continuo).
   ========================================================= */

.almar-circle-badge {
  --cb-size: 280px;
  --cb-inner: 62%;
  width: var(--cb-size);
  height: var(--cb-size);
  position: relative;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.almar-circle-badge--sm {
  --cb-size: 180px;
}

.almar-circle-badge--md {
  --cb-size: 240px;
}

.almar-circle-badge--lg {
  --cb-size: 300px;
}

.almar-circle-badge__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(135deg,
      var(--almar-blue-soft) 0%,
      #FFFFFF 50%,
      var(--almar-accent) 100%);
  transform-origin: center;
  transition: transform 0.1s linear;
  will-change: transform;
}

.almar-circle-badge__center {
  position: relative;
  width: var(--cb-inner);
  height: var(--cb-inner);
  border-radius: 50%;
  background: var(--almar-bg-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

.almar-circle-badge__center img,
.almar-circle-badge__center svg {
  width: 55%;
  height: 55%;
  object-fit: contain;
  filter: brightness(0) invert(1);
}


/* =========================================================
   ACCESSIBILITY — Respeta prefers-reduced-motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  .almar-circle-badge__ring {
    transform: none !important;
    transition: none !important;
  }
}


/* =========================================================
   PILLAR CARD
   ---------------------------------------------------------
   Rejilla 2×2 de pilares (3 contenidos + 1 celda vacía).
   Sin cards — las celdas se separan con líneas divisorias.
   Hover activa gradiente azul horizontal.

   Estructura HTML:
   <div class="almar-pillars-grid">
     <div class="almar-pillar-card">
       <div class="almar-pillar-card__header">
         <h3 class="almar-pillar-card__title">Título</h3>
         <img src="icono.svg" class="almar-pillar-card__icon" alt="">
       </div>
       <ul class="almar-pillar-card__list">
         <li>Punto 1.</li>
         <li>Punto 2.</li>
       </ul>
     </div>
     ...
     <div class="almar-pillar-card almar-pillar-card--empty"></div>
   </div>
   ========================================================= */

.almar-pillars-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(16, 25, 33, 0.12);
}

.almar-pillar-card {
  position: relative;
  padding: 48px 56px;
  overflow: hidden;
  transition: background 0.3s ease;
  isolation: isolate;
  border-bottom: 1px solid rgba(16, 25, 33, 0.12);
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Line between columns (odd cells only) */
.almar-pillar-card:nth-child(odd) {
  border-right: 1px solid rgba(16, 25, 33, 0.12);
}

/* Gradient overlay — hidden by default, revealed on hover */
.almar-pillar-card:not(.almar-pillar-card--empty)::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
      var(--almar-blue-med) 0%,
      transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

.almar-pillar-card:not(.almar-pillar-card--empty):hover::before {
  opacity: 1;
}

/* Empty cell — no hover, no content */
.almar-pillar-card--empty {
  pointer-events: none;
}

/* Header with title + icon */
.almar-pillar-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}

.almar-pillar-card__title {
  font-size: var(--almar-fs-h2);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-primary);
  line-height: 1.15;
  margin: 0;
  letter-spacing: -0.01em;
}

.almar-pillar-card__icon {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: contain;
  color: var(--almar-primary);
}

.almar-pillar-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* List of points — hereda estilos de .almar-list en utilities */
.almar-pillar-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
}


@media (max-width: 1100px) {
  .almar-pillar-card {
    padding: 40px 44px;
    min-height: 300px;
  }

  .almar-pillar-card__title {
    font-size: var(--almar-fs-h3);
  }
}

@media (max-width: 780px) {
  .almar-pillars-grid {
    grid-template-columns: 1fr;
  }

  .almar-pillar-card {
    padding: 32px 28px;
    min-height: auto;
  }

  /* Single column: remove right borders */
  .almar-pillar-card:nth-child(odd) {
    border-right: none;
  }

  .almar-pillar-card--empty {
    display: none;
  }

  .almar-pillar-card__title {
    font-size: 24px;
  }

  .almar-pillar-card__icon {
    width: 44px;
    height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {

  .almar-pillar-card,
  .almar-pillar-card::before {
    transition: none !important;
  }
}


/* =========================================================
   BUTTON
   ---------------------------------------------------------
   Botón de acción reutilizable para toda la web.

   Variantes:
   · .almar-btn (default) → sólido negro, texto blanco
   · .almar-btn--outline → borde negro, texto negro, fondo transparente
   · .almar-btn--white   → sólido blanco, texto negro (para fondos oscuros)

   Uso:
   <a href="#" class="almar-btn">Download</a>
   <a href="#" class="almar-btn almar-btn--outline">Read the report</a>
   ========================================================= */

.almar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 28px;
  background: var(--almar-primary);
  color: var(--almar-text-on-dark);
  font-family: var(--almar-font-sans);
  font-size: var(--almar-fs-small);
  font-weight: var(--almar-fw-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1.5px solid var(--almar-primary);
  border-radius: var(--almar-radius-sm);
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.15s ease;
  white-space: nowrap;
}

.almar-btn:hover {
  background: #000;
  border-color: #000;
  transform: translateY(-1px);
}

.almar-btn:active {
  transform: translateY(0);
}

/* Small variant */
.almar-btn--sm {
  padding: 8px 18px;
  font-size: var(--almar-fs-micro);
  letter-spacing: 0.06em;
  border-width: 1px;
}

/* Outline variant */
.almar-btn--outline {
  background: transparent;
  color: var(--almar-primary);
  border-color: var(--almar-primary);
}

.almar-btn--outline:hover {
  background: var(--almar-primary);
  color: var(--almar-text-on-dark);
}

/* White variant — para botones sobre fondos oscuros */
.almar-btn--white {
  background: #FFFFFF;
  color: var(--almar-primary);
  border-color: #FFFFFF;
}

.almar-btn--white:hover {
  background: #F0F0F0;
  border-color: #F0F0F0;
}

/* Group of buttons */
.almar-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

@media (max-width: 780px) {
  .almar-btn {
    padding: 12px 24px;
    font-size: 13px;
  }
}


/* =========================================================
   BUTTON · PILL
   ---------------------------------------------------------
   Botón pill alternativo al .almar-btn clásico.
   Look más moderno (sin uppercase, font-size body, totalmente
   redondeado). Usado en la home de Almar como CTA principal.

   Uso:
   <a href="#" class="almar-btn-pill">Learn About Us</a>

   Variantes:
   · --dark  → fondo primary oscuro + texto claro (para fondos claros)
   ========================================================= */

.almar-btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: var(--almar-accent);
  color: var(--almar-primary);
  border: none;
  border-radius: var(--almar-radius-md);
  font-family: var(--almar-font-sans);
  font-size: var(--almar-fs-body);
  font-weight: var(--almar-fw-medium);
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--almar-transition-med),
    background var(--almar-transition-med),
    color var(--almar-transition-med),
    box-shadow var(--almar-transition-med);
  white-space: nowrap;
  align-self: flex-start;
}

.almar-btn-pill:hover {
  transform: scale(1.04);
  background: var(--almar-blue-deep);
  color: var(--almar-blue-pale);
  box-shadow: 0 6px 16px rgba(14, 25, 34, 0.15);
}

/* Variante para fondos claros: oscuro con texto blanco */
.almar-btn-pill--dark {
  background: var(--almar-primary);
  color: var(--almar-text-on-dark);
}

.almar-btn-pill--dark:hover {
  background: var(--almar-blue-deep);
  color: var(--almar-blue-pale);
}

@media (max-width: 780px) {
  .almar-btn-pill {
    padding: 12px 22px;
    font-size: var(--almar-fs-small);
  }
}


/* =========================================================
   REPORT CARD
   ---------------------------------------------------------
   Card grande de 2 columnas para destacar informes / documentos
   descargables. Lado izquierdo: eyebrow + título + descripción
   + botones. Lado derecho: label + lista de highlights.

   Estructura HTML:
   <div class="almar-report-card">
     <div class="almar-report-card__body">
       <p class="almar-eyebrow">Eyebrow</p>
       <h2 class="almar-report-card__title">Título del informe</h2>
       <p class="almar-text-body">Descripción...</p>
       <div class="almar-btn-group">
         <a class="almar-btn almar-btn--outline">Read</a>
         <a class="almar-btn">Download</a>
       </div>
     </div>
     <div class="almar-report-card__highlights">
       <p class="almar-report-card__label">Key highlights</p>
       <ul class="almar-list">
         <li>Highlight 1</li>
         <li>Highlight 2</li>
       </ul>
     </div>
   </div>
   ========================================================= */

.almar-report-card {
  background: var(--almar-blue-pale);
  border-radius: var(--almar-radius-lg);
  padding: 64px 72px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.almar-report-card__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.almar-report-card__title {
  font-size: var(--almar-fs-h1);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-primary);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0;
}

.almar-report-card__body p {
  font-size: var(--almar-fs-body);
  line-height: 1.6;
  color: var(--almar-primary);
  margin: 0;
}

.almar-report-card__body .almar-btn-group {
  margin-top: 16px;
}

.almar-report-card__highlights {
  padding-top: 8px;
}

.almar-report-card__label {
  font-size: var(--almar-fs-body);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-primary);
  margin: 0 0 24px 0;
}


@media (max-width: 1100px) {
  .almar-report-card {
    padding: 48px 56px;
    gap: 56px;
  }
}

@media (max-width: 780px) {
  .almar-report-card {
    grid-template-columns: 1fr;
    padding: 40px 32px;
    gap: 40px;
  }

  .almar-report-card__title {
    font-size: var(--almar-fs-h2);
  }
}


/* =========================================================
   IMPACT CARD — Flip card on hover
   ---------------------------------------------------------
   Card con flip al :hover.
   Frente: glass morphism translúcido (deja ver la imagen).
   Reverso: azul claro Almar (destacado al voltear).
   En mobile, donde no hay hover, el tap simula hover
   (comportamiento nativo del navegador).

   Estructura HTML:
   <article class="almar-impact-card">
     <div class="almar-impact-card__inner">
       <div class="almar-impact-card__face almar-impact-card__front">
         <div class="almar-impact-card__header">
           <img class="almar-impact-card__icon" src="icon.svg" alt="">
           <span class="almar-impact-card__number">01</span>
         </div>
         <h3 class="almar-impact-card__title">Título</h3>
       </div>
       <div class="almar-impact-card__face almar-impact-card__back">
         <p class="almar-impact-card__desc">Descripción...</p>
       </div>
     </div>
   </article>
   ========================================================= */

.almar-impact-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.almar-impact-card {
  perspective: 1400px;
  aspect-ratio: 4 / 3;
}

.almar-impact-card__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
}

/* Flip on hover (desktop) / tap (mobile via native behavior) */
.almar-impact-card:hover .almar-impact-card__inner,
.almar-impact-card:focus-within .almar-impact-card__inner {
  transform: rotateY(180deg);
}

.almar-impact-card__face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: var(--almar-radius-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Front — glass morphism translúcido (deja ver la imagen de fondo) */
.almar-impact-card__front {
  background: rgba(255, 255, 255, 0.55);
  justify-content: space-between;
}

/* Back — azul claro Almar (destacado al voltear) */
.almar-impact-card__back {
  background: var(--almar-accent-75);
  transform: rotateY(180deg);
  justify-content: center;
}

/* Header: icon left + number right */
.almar-impact-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px;
}

/* Icon — grande
   Acepta tanto <img src="..."> como <span><svg>...</svg></span>.
   El span se dimensiona y el SVG interno lo rellena. */
.almar-impact-card__icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: contain;
  opacity: 0.85;
  color: var(--almar-primary);
}

.almar-impact-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Big decorative number */
.almar-impact-card__number {
  font-size: 64px;
  font-weight: var(--almar-fw-light);
  color: rgba(16, 25, 33, 0.2);
  line-height: 1;
  letter-spacing: -0.02em;
  pointer-events: none;
}

/* Title */
.almar-impact-card__title {
  font-size: var(--almar-fs-h3);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-primary);
  line-height: 1.2;
  margin: 0;
  letter-spacing: -0.01em;
}

/* Description (back face) */
.almar-impact-card__desc {
  font-size: var(--almar-fs-body);
  line-height: 1.55;
  color: var(--almar-primary);
  margin: 0;
}


@media (max-width: 1100px) {
  .almar-impact-card__face {
    padding: 28px;
  }

  .almar-impact-card__icon {
    width: 44px;
    height: 44px;
  }

  .almar-impact-card__number {
    font-size: 52px;
  }
}

@media (max-width: 780px) {
  .almar-impact-cards {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .almar-impact-card {
    aspect-ratio: 16 / 9;
  }

  .almar-impact-card__face {
    padding: 24px;
  }

  .almar-impact-card__icon {
    width: 40px;
    height: 40px;
  }

  .almar-impact-card__number {
    font-size: 44px;
  }

  .almar-impact-card__title {
    font-size: var(--almar-fs-lead);
  }
}

@media (prefers-reduced-motion: reduce) {
  .almar-impact-card__inner {
    transition: none !important;
  }
}


/* =========================================================
   ACCORDION
   ---------------------------------------------------------
   Accordion single-open. Click en un item abre ese y cierra
   los demás. Cada item: header (icon + título) + body
   (imagen opcional + texto).

   Estructura HTML:
   <div class="almar-accordion" data-accordion>
     <div class="almar-accordion__item">
       <button class="almar-accordion__header">
         <span class="almar-accordion__icon" aria-hidden="true"></span>
         <span class="almar-accordion__title">Título</span>
       </button>
       <div class="almar-accordion__body">
         <div class="almar-accordion__content">
           <img class="almar-accordion__image" src="..." alt="">
           <p class="almar-accordion__text">Texto...</p>
         </div>
       </div>
     </div>
   </div>

   Usa data-accordion en el contenedor para que el JS lo active.
   ========================================================= */

.almar-accordion {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.almar-accordion__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.almar-accordion__header {
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  gap: 24px;
  padding: 28px 0;
  width: 100%;
  background: transparent;
  border: none;
  color: inherit;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: opacity 0.2s ease;
}

.almar-accordion__header:hover {
  opacity: 0.85;
}

.almar-accordion__icon {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  background: var(--almar-blue-pale);
  border-radius: var(--almar-radius-sm);
}

.almar-accordion__icon::before,
.almar-accordion__icon::after {
  content: '';
  position: absolute;
  background: var(--almar-primary);
  transition: transform 0.3s var(--almar-anim-ease);
}

.almar-accordion__icon::before {
  top: 50%;
  left: 28%;
  right: 28%;
  height: 2px;
  transform: translateY(-50%);
}

.almar-accordion__icon::after {
  left: 50%;
  top: 28%;
  bottom: 28%;
  width: 2px;
  transform: translateX(-50%);
}

/* Open state: vertical line collapses (+ becomes −) */
.almar-accordion__item.is-open .almar-accordion__icon::after {
  transform: translateX(-50%) scaleY(0);
}

.almar-accordion__title {
  font-size: var(--almar-fs-h3);
  font-weight: var(--almar-fw-medium);
  line-height: 1.3;
  margin: 0;
}

.almar-accordion__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--almar-anim-ease);
}

.almar-accordion__item.is-open .almar-accordion__body {
  max-height: 1200px;
}

/* Grid idéntico al header — así mini-icon se alinea con el toggle */
.almar-accordion__content {
  display: grid;
  grid-template-columns: 120px 1fr;
  column-gap: 24px;
  row-gap: 16px;
  padding: 8px 0 32px 0;
}

/* Imagen opcional — ocupa col 2, alineada a la derecha */
.almar-accordion__image {
  grid-column: 2;
  justify-self: end;
  width: 100%;
  max-width: 520px;
  border-radius: var(--almar-radius-md);
  display: block;
}

/* Icono temático opcional — col 1, alineado con el texto */
.almar-accordion__mini-icon {
  grid-column: 1;
  width: 36px;
  height: 36px;
  justify-self: start;
  align-self: start;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

/* Texto — col 2, alineado a la derecha */
.almar-accordion__text {
  grid-column: 2;
  justify-self: end;
  text-align: right;
  font-size: var(--almar-fs-body);
  line-height: 1.6;
  margin: 0;
  max-width: 640px;
}


@media (max-width: 1100px) {

  .almar-accordion__header,
  .almar-accordion__content {
    grid-template-columns: 80px 1fr;
    gap: 20px;
  }

  .almar-accordion__content {
    column-gap: 20px;
  }

  .almar-accordion__header {
    padding: 24px 0;
  }

  .almar-accordion__mini-icon {
    width: 32px;
    height: 32px;
  }
}

@media (max-width: 780px) {

  .almar-accordion__header,
  .almar-accordion__content {
    grid-template-columns: 40px 1fr;
    gap: 16px;
  }

  .almar-accordion__header {
    padding: 20px 0;
  }

  .almar-accordion__icon,
  .almar-accordion__mini-icon {
    width: 28px;
    height: 28px;
  }

  .almar-accordion__title {
    font-size: var(--almar-fs-lead);
  }
}

@media (prefers-reduced-motion: reduce) {

  .almar-accordion__body,
  .almar-accordion__icon::before,
  .almar-accordion__icon::after {
    transition: none !important;
  }
}


/* =========================================================
   ISO CARD
   ---------------------------------------------------------
   Card compacta para certificaciones ISO (o similares).
   Estructura: punto decorativo + título con código entre
   paréntesis + botón download + imagen abajo.

   Estructura HTML:
   <article class="almar-iso-card">
     <h4 class="almar-iso-card__title">
       <span class="almar-iso-card__dot" aria-hidden="true"></span>
       <span>Quality Excellence
         <span class="almar-iso-card__code">(ISO 9001)</span>
       </span>
     </h4>
     <a href="#" class="almar-btn almar-btn--sm">Download</a>
     <img class="almar-iso-card__image" src="..." alt="">
   </article>
   ========================================================= */

.almar-iso-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.almar-iso-card {
  background: rgba(255, 255, 255, 0.5);
  border-radius: var(--almar-radius-md);
  padding: 20px 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.almar-iso-card__title {
  font-size: var(--almar-fs-body);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-primary);
  line-height: 1.35;
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.almar-iso-card__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--almar-blue-deep);
  flex-shrink: 0;
  margin-top: 7px;
}

.almar-iso-card__code {
  display: block;
  font-weight: var(--almar-fw-regular);
  margin-top: 2px;
}

.almar-iso-card__image {
  aspect-ratio: 16 / 10;
  width: 100%;
  object-fit: cover;
  border-radius: var(--almar-radius-sm);
  background-color: var(--almar-gray-warm);
  display: block;
  margin-top: auto;
}

.almar-iso-card .almar-btn {
  align-self: flex-start;
}


@media (max-width: 1100px) {
  .almar-iso-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .almar-iso-cards {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   STANDARD CARD
   ---------------------------------------------------------
   Card para estándares internacionales sobre fondo oscuro.
   Estilo más minimal que ISO card (sin imagen).

   Estructura HTML:
   <div class="almar-standard-card">
     <h4 class="almar-standard-card__title">Equator Principles</h4>
     <p class="almar-standard-card__desc">Descripción...</p>
   </div>
   ========================================================= */

.almar-standard-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.almar-standard-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--almar-radius-md);
  padding: 28px 32px;
}

.almar-standard-card__title {
  font-size: var(--almar-fs-lead);
  font-weight: var(--almar-fw-medium);
  color: var(--almar-accent);
  margin: 0 0 10px 0;
  line-height: 1.3;
}

.almar-standard-card__desc {
  font-size: var(--almar-fs-body);
  line-height: 1.55;
  color: var(--almar-text-on-dark-muted);
  margin: 0;
}


@media (max-width: 780px) {
  .almar-standard-cards {
    grid-template-columns: 1fr;
  }

  .almar-standard-card {
    padding: 24px;
  }
}

/* =========================================================
   SOLUTION CARD — Flip card with front thumbnail
   ---------------------------------------------------------
   Card con flip al :hover. Se usa para presentar áreas de
   servicio, capacidades o soluciones en grids de 2/3/4 col.

   Front:  blanco · título arriba + thumbnail abajo
   Back:   azul pale · título arriba + descripción al fondo
   En mobile, sin hover, el tap simula hover (focus-within).

   Estructura HTML:
   <div class="almar-solution-cards almar-solution-cards--4">
     <article class="almar-solution-card" tabindex="0">
       <div class="almar-solution-card__inner">
         <div class="almar-solution-card__face almar-solution-card__front">
           <h3 class="almar-solution-card__title">
             <span class="almar-solution-card__dot"></span>
             Card title
           </h3>
           <img class="almar-solution-card__thumb"
                src="image.jpg" alt="" loading="lazy">
         </div>
         <div class="almar-solution-card__face almar-solution-card__back">
           <h3 class="almar-solution-card__title">
             <span class="almar-solution-card__dot"></span>
             Card title
           </h3>
           <p class="almar-solution-card__body">Body text...</p>
         </div>
       </div>
     </article>
   </div>

   Modificadores del grid:
   · --2  (2 columnas desktop)
   · --3  (3 columnas desktop)
   · --4  (4 columnas desktop) — default
   ========================================================= */

/* Grid wrapper */
.almar-solution-cards {
  display: grid;
  gap: var(--almar-sp-lg);
  align-items: stretch;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.almar-solution-cards--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.almar-solution-cards--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.almar-solution-cards--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Card */
.almar-solution-card {
  perspective: 1200px;
  height: clamp(440px, 32vw, 520px);
}

.almar-solution-card__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.7s var(--almar-anim-ease);
  border-radius: var(--almar-radius-lg);
}

@media (hover: hover) and (pointer: fine) {

  .almar-solution-card:hover .almar-solution-card__inner,
  .almar-solution-card:focus-within .almar-solution-card__inner {
    transform: rotateY(180deg);
  }
}

/* Modificador: desactiva el flip. El card se queda estático mostrando
   solo la cara frontal. El elemento __back puede omitirse del HTML
   cuando se usa este modificador. Útil cuando el front ya comunica
   todo lo necesario y no queremos un reverso textual. */
.almar-solution-card--static:hover .almar-solution-card__inner,
.almar-solution-card--static:focus-within .almar-solution-card__inner {
  transform: none;
}

/* Face base */
.almar-solution-card__face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  border: var(--almar-border-light);
  border-radius: var(--almar-radius-lg);
  padding: var(--almar-sp-lg);
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  height: 100%;
}

/* Front: blanco, título arriba, thumb abajo */
.almar-solution-card__front {
  background: var(--almar-bg);
  color: var(--almar-primary);
  gap: var(--almar-sp-sm);
  justify-content: flex-start;
}

.almar-solution-card__thumb {
  display: block;
  width: 100%;
  flex: 1 1 auto;
  min-height: 200px;
  object-fit: cover;
  border-radius: var(--almar-radius-md);
}

/* Back: azul pale, título arriba, body al fondo */
.almar-solution-card__back {
  background: var(--almar-blue-pale);
  transform: rotateY(180deg);
  justify-content: flex-start;
}

.almar-solution-card__body {
  font-size: var(--almar-fs-small);
  font-weight: var(--almar-fw-regular);
  line-height: 1.65;
  color: var(--almar-text-on-light-muted);
  margin: auto 0 0 0;
}

/* Título compartido (front + back) */
.almar-solution-card__title {
  font-size: var(--almar-fs-lead);
  font-weight: var(--almar-fw-medium);
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--almar-primary);
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* Punto decorativo junto al título */
.almar-solution-card__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
  margin-top: 6px;
}

.almar-solution-card__front .almar-solution-card__dot {
  background: var(--almar-blue-deep);
}

.almar-solution-card__back .almar-solution-card__dot {
  background: var(--almar-primary);
}


/* Responsive */
@media (max-width: 1100px) {

  .almar-solution-cards,
  .almar-solution-cards--3,
  .almar-solution-cards--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {

  .almar-solution-cards,
  .almar-solution-cards--2,
  .almar-solution-cards--3,
  .almar-solution-cards--4 {
    grid-template-columns: 1fr;
  }

  .almar-solution-card {
    height: 460px;
  }

  .almar-solution-card__face {
    padding: var(--almar-sp-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .almar-solution-card__inner {
    transition: none !important;
  }
}


/* =========================================================
   CLOSING CTA — Final call-to-action block
   ---------------------------------------------------------
   Bloque de cierre de página con pregunta + botón sobre
   fondo navy con dos arcos de luz (glows radiales) a los
   lados que crean profundidad sin necesidad de imagen.

   Se usa al final de cada página como cierre estándar.

   Estructura HTML:
   <section class="almar-closing-cta">
     <div class="almar-closing-cta__inner">
       <h2 class="almar-closing-cta__title">
         Looking to maximize the value of your water assets?
       </h2>
       <a href="#" class="almar-btn-pill almar-closing-cta__cta">
         Contact
       </a>
     </div>
   </section>

   Modificadores:
   · --compact  → padding vertical reducido (cierre más ligero)
   ========================================================= */

.almar-closing-cta {
  position: relative;
  background: var(--almar-bg-dark);
  padding: 120px var(--almar-container-px);
  overflow: hidden;
  text-align: center;
}

/* Arco de luz izquierdo (borde de un círculo grande que entra
   desde fuera del viewport) */
.almar-closing-cta::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -35%;
  width: 70%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translateY(-50%);
  background: radial-gradient(circle,
      transparent 68%,
      rgba(160, 221, 255, 0.55) 70.5%,
      rgba(160, 221, 255, 0.15) 74%,
      transparent 80%);
  pointer-events: none;
}

/* Arco de luz derecho (mirror del izquierdo) */
.almar-closing-cta::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -35%;
  width: 70%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translateY(-50%);
  background: radial-gradient(circle,
      transparent 68%,
      rgba(160, 221, 255, 0.55) 70.5%,
      rgba(160, 221, 255, 0.15) 74%,
      transparent 80%);
  pointer-events: none;
}

.almar-closing-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--almar-sp-2xl);
}

/* El .almar-btn-pill base tiene align-self: flex-start — aquí lo centramos */
.almar-closing-cta__inner>.almar-btn-pill {
  align-self: center;
}

.almar-closing-cta__title {
  font-size: var(--almar-fs-h1);
  font-weight: var(--almar-fw-default);
  line-height: var(--almar-lh-snug);
  letter-spacing: var(--almar-ls-tight);
  color: var(--almar-text-on-dark);
  margin: 0;
}

/* Bajada / descripción · debajo del título, encima del botón.
   Opcional. Cuando se incluye, recomendado usar variante --compact
   o reducir el gap del inner si el aire entre los 3 elementos
   queda excesivo. */
.almar-closing-cta__desc {
  font-size: var(--almar-fs-lead);
  line-height: var(--almar-lh-body);
  color: var(--almar-text-on-dark-muted);
  margin: 0;
  max-width: 600px;
}

/* Variante compacta — padding reducido */
.almar-closing-cta--compact {
  padding: 80px var(--almar-container-px);
}

.almar-closing-cta--compact .almar-closing-cta__inner {
  gap: var(--almar-sp-xl);
}

.almar-closing-cta--compact .almar-closing-cta__title {
  font-size: var(--almar-fs-h2);
}

@media (max-width: 1100px) {
  .almar-closing-cta {
    padding: 100px var(--almar-container-px-tablet);
  }

  .almar-closing-cta__title {
    font-size: var(--almar-fs-h2);
  }
}

@media (max-width: 780px) {
  .almar-closing-cta {
    padding: 72px var(--almar-container-px-mobile);
  }

  .almar-closing-cta__inner {
    gap: var(--almar-sp-xl);
  }

  .almar-closing-cta__title {
    font-size: 28px;
  }

  .almar-closing-cta__desc {
    font-size: var(--almar-fs-body);
  }

  /* En mobile los arcos se acercan más al centro */
  .almar-closing-cta::before,
  .almar-closing-cta::after {
    width: 110%;
  }

  .almar-closing-cta::before {
    left: -55%;
  }

  .almar-closing-cta::after {
    right: -55%;
  }
}