/* Biolase theme — CSS entry. Cascade order is intentional: tokens → reset →
 * typography → layout → components → pages. Don't reorder casually. */

/* ═════════════ Biolase tokens ═════════════
 * Source of truth: /ref/Biolase/theme.css and /ref/Biolase/index.html (handoff lines 849–887).
 * Mirrored in /theme.json as a `palette` so Gutenberg picks them up automatically.
 */

/* ─────────── BREAKPOINTS (mobile-first, min-width only) ─────────── */

/* event card two-column */

/* header contact visible */

/* desktop navigation */

/* hero slider desktop */

/* hero full title */

/* featured products horizontal strip */

:root {
  /* Biolase scale */
  --biolase-50: #f0f9ff;
  --biolase-100: #dbefff;
  --biolase-200: #c0dbf6;
  --biolase-300: #a5c6ee;
  --biolase-400: #8ab2e5;
  --biolase-500: #5c93cb;
  --biolase-600: #2f73b1;
  --biolase-700: #015497;
  --biolase-800: #08437e;
  --biolase-900: #103166;
  --biolase-950: #17204d;

  /* Slate */
  --white: #ffffff;
  --slate-0: #ffffff;
  --slate-50: #f8fafc;
  --slate-100: #f1f5f9;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1e293b;
  --slate-900: #0f172a;
  --slate-950: #020617;

  /* Neutral */
  --neutral-50: #fafafa;
  --neutral-100: #f5f5f5;
  --neutral-200: #e5e5e5;
  --neutral-300: #d4d4d4;
  --neutral-400: #a3a3a3;
  --neutral-500: #737373;
  --neutral-600: #525252;
  --neutral-700: #404040;
  --neutral-800: #262626;
  --neutral-900: #171717;
  --neutral-950: #0a0a0a;

  /* Radii */
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 9999px;

  /* Component sizes */
  --btn-h: 40px;
  --btn-icon: 32px;
  --btn-icon-ghost: 28px;

  /* Shadows */
  --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

  /* Layout */
  --container: 1440px;
  --container-header: 1220px;
  --container-wide: 1408px;
  --gutter-x: max(16px, min(4vw, 128px));

  /* Typography */
  --font-sans: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;

  /* Type scale */
  --fs-xs: 12px;
  --fs-sm: 14px;
  --fs-base: 16px;
  --fs-lg: 18px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 30px;
  --fs-4xl: 36px;
  --fs-5xl: 48px;
  --fs-6xl: 60px;
  --fs-super: 86px;

  /* Spacing scale (matches theme.json spacingSizes) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  /* Focus */
  --focus-ring: 0 0 0 2px var(--biolase-500);
}

/* Modern reset — minimal, opinionated. */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	     text-size-adjust: 100%;
}

body {
	margin: 0;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}

input,
button,
textarea,
select {
	font: inherit;
	color: inherit;
}

button {
	cursor: pointer;
	background: none;
	border: 0;
}

a {
	color: inherit;
	-webkit-text-decoration: none;
	text-decoration: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	word-wrap: break-word;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px #5c93cb;
	box-shadow: var(--focus-ring);
	border-radius: 2px;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.screen-reader-text:focus-visible {
	background-color: #015497;
	background-color: var(--biolase-700);
	border-radius: 6px;
	clip: auto !important;
	clip-path: none;
	color: #fff;
	display: block;
	font-size: 1rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 1rem 1.5rem;
	-webkit-text-decoration: none;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* ═════════════ Typography ═════════════
 * Source: ref/Biolase/theme.css §1 + index.html §typography (lines 109–145).
 * Utility classes (.mono, .dim, .eyebrow, .c-biolase) are intentionally
 * lightweight so they read on top of any block.
 */

body {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.5;
  color: #0f172a;
  color: var(--slate-900);
  background: #fff;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: -0.4px;
  line-height: 1;
  color: inherit;
}

h1 {
  font-size: clamp(36px, 4vw + 1rem, 60px);
  font-size: clamp(var(--fs-4xl), 4vw + 1rem, var(--fs-6xl));
  letter-spacing: -0.8px;
}

h2 {
  font-size: 48px;
  font-size: var(--fs-5xl);
}

h3 {
  font-size: 36px;
  font-size: var(--fs-4xl);
  line-height: 1.1;
}

h4 {
  font-size: 30px;
  font-size: var(--fs-3xl);
  line-height: 1.1;
}

h5 {
  font-size: 24px;
  font-size: var(--fs-2xl);
  line-height: 1.3;
}

h6 {
  font-size: 20px;
  font-size: var(--fs-xl);
  line-height: 1.4;
}

p {
  margin: 0;
}

a {
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 150ms ease;
}

a:hover {
  color: #08437e;
  color: var(--biolase-800);
}

code,
kbd,
samp,
pre {
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
}

/* ─────────── Utilities ─────────── */

.mono {
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  font-size: 12px;
  font-size: var(--fs-xs);
  letter-spacing: 0.02em;
}

.eyebrow {
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 500;
  color: #015497;
  color: var(--biolase-700);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dim {
  color: #94a3b8;
  color: var(--slate-400);
}

.c-biolase {
  color: #015497;
  color: var(--biolase-700);
}

/* Icon sizing (inline `<svg>`) */

.ico-16,
.ico16 {
  width: 16px;
  height: 16px;
  flex: none;
}

.ico-20,
.ico20 {
  width: 20px;
  height: 20px;
  flex: none;
}

.ico-24,
.ico24 {
  width: 24px;
  height: 24px;
  flex: none;
}

.ico-32 {
  width: 32px;
  height: 32px;
  flex: none;
}

/* ═════════════ Layout primitives ═════════════
 * Source: ref/Biolase/theme.css §SECTIONS / page layout (lines 224–230).
 * The handoff hardcodes 1536px / 1280px / 128px — we make those fluid.
 */

.container {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  /* padding-inline: var(--gutter-x); */
}

.container--wide {
  max-width: 1408px;
  max-width: var(--container-wide);
}

.site-main {
  min-height: 50vh;
}

/* ─────────── SECTION ─────────── */

.section {
  position: relative;
  padding: max(40px, min(6vw, 56px)) max(16px, min(4vw, 128px));
  padding: max(40px, min(6vw, 56px)) max(16px, min(4vw, 128px));
  padding: max(40px, min(6vw, 56px)) var(--gutter-x);
}

main > .section:first-of-type {
  padding-top: 0;
}

.section--full {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.section--tinted-products {
  background: linear-gradient(rgba(250, 250, 250, 0), rgb(250, 250, 250));
  padding-top: max(56px, min(8vw, 96px));
}

.section--neutral {
  background: #fafafa;
  background: var(--neutral-50);
}

.section--events {
  background: #fafafa;
  background: var(--neutral-50);
  padding-bottom: max(56px, min(8vw, 96px));
}

.section--crosslinks {
  background: #fafafa;
  background: var(--neutral-50);
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) max(40px, min(6vw, 56px));
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) max(40px, min(6vw, 56px));
  padding: max(32px, min(5vw, 40px)) var(--gutter-x) max(40px, min(6vw, 56px));
}

.section--md-full {
  max-width: 100%;
  padding: 0;
}

.section--md-full .feature-panel {
    border-radius: 0;
  }

@media (min-width: 1024px) {

.section--md-full {
    padding: max(40px, min(6vw, 56px)) max(16px, min(4vw, 128px));
    padding: max(40px, min(6vw, 56px)) max(16px, min(4vw, 128px));
    padding: max(40px, min(6vw, 56px)) var(--gutter-x);
}

    .section--md-full .feature-panel {
      border-radius: 24px;
      border-radius: var(--radius-lg);
    }
  }

/* Nosotros banda CTA (Figma 558-1734): `.section--nosotros-faded-band` en components.css */

.section-hd {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: max(32px, min(5vw, 48px));
}

.section-hd--center {
  align-items: center;
  text-align: center;
}

.section-hd--between {
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
}

.section-hd h2 {
  margin: 0;
  font-size: 36px;
  font-size: var(--fs-4xl);
  line-height: 1.1;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.section-hd p {
  margin: 0;
  max-width: 842px;
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.55;
  font-weight: 700;
  color: #171717;
  color: var(--neutral-900);
}

.section-hd__lead {
  font-weight: 400;
  color: #334155;
  color: var(--slate-700);
}

/* ─────────── GRIDS ─────────── */

/* Product cards: explicit columns (avoids auto-fit showing 2 cols between ~552–768px). */

.product-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-gap: 32px;
  gap: 32px;
}

@media (min-width: 768px) {
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Horizontal strip + drag scroll: section-products only (<1440px). */

@media (max-width: 1439.98px) {
  .product-strip {
    margin-left: calc(-1 * max(16px, min(4vw, 128px)));
    margin-right: calc(-1 * max(16px, min(4vw, 128px)));
    margin-left: calc(-1 * max(16px, min(4vw, 128px)));
    margin-left: calc(-1 * var(--gutter-x));
    margin-right: calc(-1 * max(16px, min(4vw, 128px)));
    margin-right: calc(-1 * var(--gutter-x));
    padding-left: max(16px, min(4vw, 128px));
    padding-right: max(16px, min(4vw, 128px));
    padding-left: max(16px, min(4vw, 128px));
    padding-left: var(--gutter-x);
    padding-right: max(16px, min(4vw, 128px));
    padding-right: var(--gutter-x);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-padding-inline: max(16px, min(4vw, 128px));
    scroll-padding-inline: var(--gutter-x);
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    cursor: grab;
    padding-top: 2px;
    padding-bottom: 24px;
  }

  .product-strip.is-dragging {
    cursor: grabbing;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }

  .product-strip .product-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 32px;
    width: -moz-max-content;
    width: max-content;
  }

  .product-strip .card-product {
    flex: 0 0 min(296px, 85vw);
    max-width: min(296px, 85vw);
    scroll-snap-align: start;
    scroll-snap-stop: normal;
  }
}

@media (min-width: 1440px) {
  .product-strip {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    overflow: visible;
    cursor: default;
  }

  .product-strip.is-dragging {
    cursor: default;
    -webkit-user-select: auto;
       -moz-user-select: auto;
            user-select: auto;
  }

  .product-strip .product-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-gap: 32px;
    gap: 32px;
    width: auto;
  }

  @media (min-width: 768px) {
    .product-strip .product-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (min-width: 1024px) {
    .product-strip .product-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (min-width: 1280px) {
    .product-strip .product-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }

  .product-strip .card-product {
    flex: initial;
    max-width: none;
  }
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  grid-gap: 32px;
  gap: 32px;
}

.crosslinks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  grid-gap: 32px;
  gap: 32px;
  aspect-ratio: 4 / 1.2;
}

.locations-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 32px;
  gap: 32px;
}

@media (min-width: 1024px) {
  .locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ─────────── SKIP LINK ─────────── */

.skip-link {
  position: absolute;
  left: -9999px;
  top: 1rem;
  z-index: 100000;
}

.skip-link:focus,
.skip-link:focus-visible {
  left: 1rem;
}

main > section,
.site-header {
  padding-left: max(16px, min(4vw, 128px));
  padding-right: max(16px, min(4vw, 128px));
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
}

/* Nosotros CTA band: foto a todo el ancho del main (el texto sigue en .container con gutter). */

main > section.section--nosotros-faded-band--has-copy {
  padding-left: 0;
  padding-right: 0;
}

main > section > .container,
section > .container {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
}

/* ─────────── HEROES ─────────── */

.hero-slider {
  position: relative;
  margin: 0 max(16px, min(4vw, 128px));
  margin: 0 var(--gutter-x);
  padding: 0;
  border-radius: 24px;
  border-radius: var(--radius-lg);
  background: linear-gradient(#f8fafc, #e2e8f0);
  overflow: hidden;
}

.hero-slider__track {
  display: flex;
  width: 100%;
  transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.hero-slider__slide {
  flex: 0 0 100%;
  min-width: 0;
  padding: max(32px, min(6vw, 64px)) max(32px, min(6vw, 64px)) 64px;
}

.hero-slider__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  grid-gap: 32px;
  gap: 32px;
  align-items: center;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  min-height: 460px;
}

@media (min-width: 1024px) {

.hero-slider__inner {
    max-width: min(1280px, 100% - 120px);
}
  }

.hero-slider__text h1 {
  margin: 0 0 20px;
  font-size: max(48px, min(8vw, 86px));
  font-size: max(48px, min(8vw, var(--fs-super)));
  line-height: 1;
  letter-spacing: -0.8px;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.hero-slider__text p {
  font-size: 24px;
  font-size: var(--fs-2xl);
  line-height: 1.33;
  color: #0f172a;
  color: var(--slate-900);
}

.hero-slider__media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
}

.hero-slider__media picture {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;
}

.hero-slider__media img,
.hero-slider__media picture img,
.hero-slider__media video {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/* Prev/next anchored bottom-right (Figma "bottom-right cluster"). */

.hero-slider__arrow {
  position: absolute;
  left: auto;
  top: auto;
  bottom: max(16px, min(3vw, 24px));
  right: calc(max(16px, min(3vw, 32px)) + 40px);
  transform: none;
  z-index: 3;
}

.hero-slider__arrow--right {
  right: max(16px, min(3vw, 32px));
}

/* Bullets bottom-left (Figma cluster opposite the arrows). */

.hero-slider__bullets {
  position: absolute;
  bottom: max(16px, min(3vw, 24px));
  left: max(16px, min(3vw, 32px));
  transform: none;
  display: flex;
  gap: 8px;
}

.hero-slider__bullet {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: background-color 150ms ease;
}

.hero-slider__bullet.is-active,
.hero-slider__bullet[aria-current='true'] {
  background: #fff;
}

/* Hero slider CTA inherits the new .btn--tertiary spec; reserve room above bullets/arrows. */

.hero-slider__cta {
  margin-top: 24px;
}

/* Desktop: split arrows on the side edges, bullets centered. */

@media (min-width: 1024px) {
  .hero-slider__arrow {
    top: 50%;
    bottom: auto;
    right: auto;
    left: max(16px, min(3vw, 32px));
    transform: translateY(-50%);
  }
  .hero-slider__arrow--right {
    left: auto;
    right: max(16px, min(3vw, 32px));
  }
  .hero-slider__bullets {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}

/* Full-bleed hero (Nosotros): cover img + gradient overlay (no inline bg) */

.hero-full {
  position: relative;
  overflow: hidden;
  min-height: max(460px, min(75vh, 620px));
  height: 90vh;
  padding-top: max(80px, min(16vw, 128px));
  padding-bottom: max(80px, min(16vw, 128px));
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.hero-full__media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
}

.hero-full__media .biolase-picture {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-full__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.hero-full::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0) 60%);
  pointer-events: none;
}

.hero-full__title {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  max-width: var(--container);
  margin: 0;
  padding: 0;
  /* Stepped display: 48 → 60 → 72 → 96 (see tokens.css @custom-media) */
  font-size: 48px;
  line-height: 1;
  letter-spacing: -0.8px;
  font-weight: 700;
  color: #fff;
  max-width: 64%;
}

@media (min-width: 640px) {
  .hero-full__title {
    font-size: 60px;
    max-width: 50%;
  }
}

@media (min-width: 720px) {
  .hero-full__title {
    font-size: 72px;
  }
}

@media (min-width: 1440px) {
  .hero-full__title {
    font-size: 96px;
  }
}

/* ─────────── SHOP HEADER ─────────── */

.section--shop-hd {
  padding: 0 max(16px, min(4vw, 128px)) 0;
  padding: 0 var(--gutter-x) 0;
  text-align: center;
}

.shop-title {
  margin: 0;
  line-height: 1;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
  text-align: center;
}

.section--shop-filters {
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(32px, min(5vw, 40px)) var(--gutter-x) 0;
  overflow-x: hidden;
}

@media (min-width: 720px) {
  .section--shop-filters {
    overflow-x: visible;
  }
}

/* Toolbar: category chips (left) + WooCommerce ordering (right on desktop, stacked on mobile). */

.section--shop-filters .shop-filters-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  gap: var(--space-4) var(--space-5);
  width: 100%;
}

.section--shop-filters .shop-filters-toolbar .chip-row--shop {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-start;
}

.section--shop-filters .shop-filters-toolbar .woocommerce-ordering {
  flex: 0 0 auto;
  width: 100%;
}

@media (max-width: 719.98px) {
  .section--shop-filters .shop-filters-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .section--shop-filters .shop-filters-toolbar .woocommerce-ordering {
    margin-left: 0;
    max-width: none;
  }
}

@media (min-width: 720px) {
  .section--shop-filters .shop-filters-toolbar .woocommerce-ordering {
    width: auto;
    max-width: min(320px, 100%);
    margin-left: auto;
  }
}

.section--shop-products {
  padding-top: max(32px, min(5vw, 40px));
  padding-bottom: max(56px, min(8vw, 96px));
  background: linear-gradient(rgba(250, 250, 250, 0), rgb(250, 250, 250) 20%);
}

/* ═════════════ Biolase components ═════════════
 * Source: ref/Biolase/theme.css §BUTTONS / TABS / CHIPS / DROPDOWN / CARDS
 * Naming: BEM-light. `.btn`, `.btn--primary`. No deep nesting.
 *
 * Surface contract: native HTML elements pick these up via class.
 * Editor parity: `core/button` style variations are registered in
 * inc/block-styles.php — `is-style-secondary`, `is-style-tertiary`.
 */

/* ─────────── BUTTONS ─────────── */

.btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 40px;
  height: var(--btn-h);
  padding: 0 16px;
  border: 0;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
  transition:
    background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
  cursor: pointer;
}

.btn:focus-visible,
.wp-block-button__link:focus-visible {
  outline: none;
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1),
    0 0 0 3px #a5c6ee;
  box-shadow:
    var(--shadow-sm),
    0 0 0 3px var(--biolase-300);
}

/* default = primary */

.btn,
.wp-block-button__link {
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

.btn:hover,
.wp-block-button__link:hover,
.btn.is-hover {
  background: #08437e;
  background: var(--biolase-800);
  color: #fff;
}

.btn:disabled,
.wp-block-button__link:disabled,
.wp-block-button.is-disabled .wp-block-button__link {
  background: #cbd5e1;
  background: var(--slate-300);
  color: #64748b;
  color: var(--slate-500);
  box-shadow: none;
  cursor: not-allowed;
}

/* secondary: white surface, biolase-700 text */

.btn--secondary,
.is-style-secondary .wp-block-button__link {
  background: #fff;
  color: #015497;
  color: var(--biolase-700);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

.btn--secondary:hover,
.is-style-secondary .wp-block-button__link:hover {
  background: #f8fafc;
  background: var(--slate-50);
  color: #08437e;
  color: var(--biolase-800);
}

/* tertiary: text-only inline link — Figma "Saber más" pattern (uppercase, biolase-800, gap animation) */

.btn--tertiary,
.is-style-tertiary .wp-block-button__link {
  height: auto;
  padding: 0;
  gap: 8px;
  background: none;
  color: #08437e;
  color: var(--biolase-800);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: none;
  border-radius: 0;
  transition:
    gap 150ms ease, color 150ms ease;
}

.btn--tertiary:hover,
.is-style-tertiary .wp-block-button__link:hover {
  background: none;
  color: #103166;
  color: var(--biolase-900);
  gap: 12px;
}

@media (prefers-reduced-motion: reduce) {
  .btn--tertiary,
  .is-style-tertiary .wp-block-button__link {
    transition: none;
  }

  .btn--tertiary:hover,
  .is-style-tertiary .wp-block-button__link:hover {
    gap: 8px;
  }
}

/* ghost-light: transparent + white border, used on dark/tinted overlays (crosslink CTA) */

.btn--ghost-light {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: auto;
  padding: 8px 16px;
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 400;
  box-shadow: none;
  transition: background-color 150ms ease;
}

.btn--ghost-light:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

/* explicit primary modifier (== default, used on dark surfaces with editor variations) */

.btn--primary,
.is-style-primary .wp-block-button__link {
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
}

/* icon-only square buttons (next/prev, header utility icons) */

.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  width: var(--btn-icon);
  height: 32px;
  height: var(--btn-icon);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #fff;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
  color: #334155;
  color: var(--slate-700);
  transition:
    color 150ms ease, border-color 150ms ease, background-color 150ms ease;
  cursor: pointer;
}

.btn-icon:hover {
  color: #015497;
  color: var(--biolase-700);
  border-color: #a5c6ee;
  border-color: var(--biolase-300);
}

/* soft: tinted square button used inside cards and the slider — Figma `bg-[#f0f9ff] hover:bg-[#015497]` */

.btn-icon--soft {
  background: #f0f9ff;
  background: var(--biolase-50);
  border: 0;
  box-shadow: none;
  color: #015497;
  color: var(--biolase-700);
}

.btn-icon--soft:hover {
  background: #015497;
  background: var(--biolase-700);
  border-color: #015497;
  border-color: var(--biolase-700);
  color: #fff;
}

/* ghost: header utility icons — Figma `text-[#08437e] hover:bg-[#f0f9ff]` (icon stays biolase-800) */

.btn-icon--ghost {
  width: 28px;
  width: var(--btn-icon-ghost);
  height: 28px;
  height: var(--btn-icon-ghost);
  background: none;
  border: 0;
  box-shadow: none;
  color: #08437e;
  color: var(--biolase-800);
}

.btn-icon--ghost:hover {
  background: #f0f9ff;
  background: var(--biolase-50);
  border-color: transparent;
  color: #08437e;
  color: var(--biolase-800);
}

.btn-group {
  display: inline-flex;
  gap: 4px;
}

/* ─────────── TABS ─────────── */

/* Named `.menu-tabs` to avoid clashes with WooCommerce / UI libs targeting `.tabs`. */

.menu-tabs {
  display: flex;
  gap: 20px;
  align-items: center;
}

/* Inactive: biolase-800. Hover/active: neutral-950 + 1px black underline. No font-weight bump.
 * Selectors handle BOTH possible markup shapes:
 *   - inner span: `<a aria-current="page"><span class="nav-tab">…</span></a>` (wp_nav_menu walker)
 *   - direct link: `<a class="nav-tab" aria-current="page">…</a>`             (custom usages)
 */

.nav-tab {
  position: relative;
  display: inline-block;
  padding: 4px 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.5;
  font-weight: 400;
  color: #08437e;
  color: var(--biolase-800);
  cursor: pointer;
  transition: color 150ms ease;
}

.nav-tab:hover,
a:hover > .nav-tab {
  color: #0a0a0a;
  color: var(--neutral-950);
}

.nav-tab.is-active,
.nav-tab[aria-current='page'],
[aria-current='page'] > .nav-tab,
.current-menu-item > a > .nav-tab,
.current-menu-item > .nav-tab {
  color: #0a0a0a;
  color: var(--neutral-950);
  font-weight: 400;
}

.nav-tab.is-active::after,
.nav-tab[aria-current='page']::after,
[aria-current='page'] > .nav-tab::after,
.current-menu-item > a > .nav-tab::after,
.current-menu-item > .nav-tab::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: #0a0a0a;
  background: var(--neutral-950);
}

.site-header--overlay:not(.is-shrunk) [aria-current='page'] > .nav-tab::after {
  background: rgba(255, 255, 255, 0.9);
}

.menu-tabs[data-mode='dark'] .nav-tab,
.nav-tab[data-mode='dark'] {
  color: rgba(255, 255, 255, 0.85);
}

.menu-tabs[data-mode='dark'] [aria-current='page'] > .nav-tab,
.menu-tabs[data-mode='dark'] .current-menu-item > a > .nav-tab,
.menu-tabs[data-mode='dark'] .nav-tab.is-active,
.nav-tab[data-mode='dark'].is-active {
  color: #fff;
}

.menu-tabs[data-mode='dark'] [aria-current='page'] > .nav-tab::after,
.menu-tabs[data-mode='dark'] .current-menu-item > a > .nav-tab::after,
.menu-tabs[data-mode='dark'] .nav-tab.is-active::after,
.nav-tab[data-mode='dark'].is-active::after {
  background: #fff;
}

/* Submenu chevron (header + mobile drawer); rotation when parent `li.is-open` */

.nav-submenu-toggle {
  flex-shrink: 0;
}

.nav-submenu-toggle__icon {
  display: block;
  transition: transform 180ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .nav-submenu-toggle__icon {
    transition: none;
  }
}

/* Mobile drawer: top-level chevron-down flips; nested flyout chevron-right turns “down” when open */

.site-mobile-nav
  .menu-item-has-children.is-open
  > .nav-submenu-toggle:not(.nav-submenu-toggle--flyout)
  .nav-submenu-toggle__icon {
  transform: rotate(180deg);
}

.site-mobile-nav
  .menu-item-has-children.is-open
  > .nav-submenu-toggle--flyout
  .nav-submenu-toggle__icon {
  transform: rotate(90deg);
}

/* ─────────── CHIPS ─────────── */

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 16px;
  border-radius: 9999px;
  border-radius: var(--radius-pill);
  background: #f1f5f9;
  background: var(--slate-100);
  color: #334155;
  color: var(--slate-700);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 500;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

.chip:hover {
  background: #e2e8f0;
  background: var(--slate-200);
}

.chip.is-active {
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
  border-color: #015497;
  border-color: var(--biolase-700);
}

.chip--folder {
  background: #f8fafc;
  background: var(--slate-50);
  border-color: #e2e8f0;
  border-color: var(--slate-200);
}

/* Squared filter chips (shop, blog, single-product family nav; global .chip stays pill elsewhere). */

.chip-row--shop .chip,
.chip-row--blog .chip,
.chip-row--product-cats .chip {
  border-radius: 8px;
  border-radius: var(--radius-sm);
}

/* Mobile-first: horizontal scroll strip (shop / blog / single-product breadcrumbs). */

.chip-row--shop,
.chip-row--blog,
.chip-row--product-cats {
  flex-wrap: nowrap;
  justify-content: flex-start;
  margin-left: calc(-1 * max(16px, min(4vw, 128px)));
  margin-right: calc(-1 * max(16px, min(4vw, 128px)));
  margin-left: calc(-1 * max(16px, min(4vw, 128px)));
  margin-left: calc(-1 * var(--gutter-x));
  margin-right: calc(-1 * max(16px, min(4vw, 128px)));
  margin-right: calc(-1 * var(--gutter-x));
  padding-left: max(16px, min(4vw, 128px));
  padding-right: max(16px, min(4vw, 128px));
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-padding-inline: max(16px, min(4vw, 128px));
  scroll-padding-inline: var(--gutter-x);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.chip-row--shop::-webkit-scrollbar,
.chip-row--blog::-webkit-scrollbar,
.chip-row--product-cats::-webkit-scrollbar {
  display: none;
}

.chip-row--shop .chip,
.chip-row--blog .chip,
.chip-row--product-cats .chip {
  flex-shrink: 0;
}

@media (min-width: 720px) {
  .chip-row--shop,
  .chip-row--blog,
  .chip-row--product-cats {
    flex-wrap: wrap;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    overflow-x: visible;
    overflow-y: visible;
    scrollbar-width: auto;
  }

  .chip-row--shop::-webkit-scrollbar,
  .chip-row--blog::-webkit-scrollbar,
  .chip-row--product-cats::-webkit-scrollbar {
    display: block;
  }

  .chip-row--shop .chip,
  .chip-row--blog .chip,
  .chip-row--product-cats .chip {
    flex-shrink: initial;
  }
}

/* ─────────── DROPDOWN (visual shell only) ─────────── */

.dropdown {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  min-width: 240px;
  padding: 0 12px 0 16px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #fff;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #334155;
  color: var(--slate-700);
  cursor: pointer;
}

.dropdown__label {
  color: #94a3b8;
  color: var(--slate-400);
}

.dropdown__value {
  font-weight: 600;
  color: #0f172a;
  color: var(--slate-900);
  flex: 1;
}

/* ─────────── COVER MEDIA (photo = <img> + srcset, not CSS background-image) ─────────── */

.biolase-cover-media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.biolase-cover-media .biolase-picture {
  display: block;
  width: 100%;
  height: 100%;
}

.biolase-cover-media picture {
  position: absolute;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
  width: 100%;
}

.biolase-cover-media source,
.biolase-cover-media img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* ─────────── PRODUCT CARD ─────────── */

.card-product {
  display: flex;
  flex-direction: column;
  padding: 32px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-md);
  transition:
    transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.card-product:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.15);
}

.card-product__media {
  position: relative;
  overflow: hidden;
  flex: 1;
  min-height: 217px;
}

.card-product--priced .card-product__media .biolase-cover-media {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  height: auto;
  width: 100%;
}

.card-product--priced .card-product__media .biolase-cover-media img {
  -o-object-fit: contain;
     object-fit: contain;
}

.card-product__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
}

.card-product--simple .card-product__media {
  padding: 0;
}

.card-product--simple .card-product__media .biolase-cover-media {
  top: 32px;
  right: 32px;
  bottom: 32px;
  left: 32px;
}

.card-product--simple .card-product__media .biolase-cover-media img {
  -o-object-fit: contain;
     object-fit: contain;
}

.card-product__foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-top: 24px;
}

.card-product__title {
  margin: 0;
  font-size: 24px;
  font-size: var(--fs-2xl);
  line-height: 1.3;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
  flex: 1;
}

.card-product--priced .card-product__title {
  margin-top: 16px;
  min-height: 56px;
}

.card-product__priced-foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: auto;
}

.card-product__price {
  font-size: 36px;
  font-size: var(--fs-4xl);
  line-height: 1.1;
  font-weight: 400;
  color: #94a3b8;
  color: var(--slate-400);
  transition: color 200ms ease;
}

.card-product--priced .card-product__price .woocommerce-Price-amount {
  color: inherit;
}

.card-product--priced .card-product__price ins {
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
}

.card-product--priced .card-product__price del {
  margin-right: 0.35em;
  font-size: 0.55em;
  font-weight: 400;
  color: #94a3b8;
  color: var(--slate-400);
  opacity: 0.65;
}

.card-product--priced:hover,
.card-product--priced:focus-visible {
  border-color: #5c93cb;
  border-color: var(--biolase-500);
  box-shadow:
    0 20px 30px -10px rgba(0, 0, 0, 0.15),
    0 0 0 1px #5c93cb;
  box-shadow:
    0 20px 30px -10px rgba(0, 0, 0, 0.15),
    0 0 0 1px var(--biolase-500);
}

.card-product--priced:hover .card-product__price,
.card-product--priced:focus-visible .card-product__price,
.card-product--priced:hover .card-product__price .woocommerce-Price-amount,
.card-product--priced:focus-visible .card-product__price .woocommerce-Price-amount,
.card-product--priced:hover .card-product__price ins,
.card-product--priced:focus-visible .card-product__price ins {
  color: #015497;
  color: var(--biolase-700);
}

.card-product--priced:hover .card-product__price del,
.card-product--priced:focus-visible .card-product__price del {
  color: #64748b;
  color: var(--slate-500);
  opacity: 0.9;
}

/* Simple variant — square media + title + plus button (Home grid). No price. */

.card-product--simple {
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
  border-radius: var(--radius-md);
}

.card-product--simple .card-product__media {
  flex: none;
  aspect-ratio: 1 / 1;
  min-height: 0;
  background-color: #ffffff;
  background-color: var(--slate-0);
}

.card-product--simple .card-product__foot {
  padding: 0 32px 32px 32px;
  margin-top: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-grow: 1;
}

.card-product--simple .card-product__title {
  margin: 0;
  min-height: 0;
}

/* ─────────── EVENT CARD ─────────── */

.card-event {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 20px;
  gap: 20px;
  min-height: 232px;
}

.card-event__media {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 16px;
  border-radius: var(--radius-md);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  min-height: 200px;
}

.card-event__media .biolase-cover-media img {
  -o-object-fit: cover;
     object-fit: cover;
}

@media (min-width: 640px) {
  .card-event {
    grid-template-columns: 187px 1fr;
  }
  .card-event__media {
    min-height: auto;
  }
}

.card-event__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 0;
}

.card-event__title {
  margin: 0;
  font-size: 30px;
  font-size: var(--fs-3xl);
  line-height: 1.1;
  font-weight: 700;
  color: #015497;
  color: var(--biolase-700);
}

.card-event__meta {
  display: flex;
  gap: 12px;
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
  letter-spacing: 0.02em;
}

.card-event__excerpt {
  margin: 0;
  font-size: 12px;
  font-size: var(--fs-xs);
  line-height: 1.4;
  color: #262626;
  color: var(--neutral-800);
  flex: 1;
}

.card-event .btn {
  margin-top: auto;
  align-self: flex-start;
}

/* ─────────── CROSS-LINK CARD ─────────── */

.card-crosslink {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 240px;
  padding: 32px;
  border-radius: 24px;
  border-radius: var(--radius-lg);
  color: #fff;
  overflow: hidden;
  cursor: pointer;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: transform 200ms ease;
}

.card-crosslink__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.card-crosslink__bg .biolase-picture {
  display: block;
  width: 100%;
  height: 100%;
}

.card-crosslink__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.card-crosslink:hover {
  transform: translateY(-2px);
}

.card-crosslink::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(1, 84, 151, 0.7);
  z-index: 1;
  transition: background-color 200ms ease;
}

.card-crosslink:hover::before {
  background: rgba(8, 67, 126, 0.75);
}

.card-crosslink > *:not(.card-crosslink__bg) {
  position: relative;
  z-index: 1;
}

.card-crosslink__title {
  margin: 0;
  font-size: 36px;
  font-size: var(--fs-4xl);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.4px;
  color: #fff;
  text-align: center;
}

/* ─────────── FEATURE TILE ─────────── */

.feature-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 32px;
  gap: 32px;
}

@media (min-width: 480px) {
  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .feature-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.feature-grid--text-center .feature {
  text-align: center;
  align-items: center;
}

/* Fewer than four tiles: center the row as a group; cap tile width */

.feature-grid.feature-grid--few {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: flex-start;
  gap: 32px;
  width: 100%;
}

.feature-grid.feature-grid--few .feature {
  flex: 0 1 300px;
  max-width: min(100%, 300px);
  margin-left: 0;
  margin-right: 0;
}

.feature {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 420px;
}

.feature__ico {
  color: #015497;
  color: var(--biolase-700);
  width: 20px;
  height: 20px;
}

.feature__title {
  margin: 0;
  font-size: 20px;
  font-size: var(--fs-xl);
  line-height: 1.2;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.feature__copy {
  margin: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.4;
  color: #262626;
  color: var(--neutral-800);
}

/* ─────────── VISIT CARD (locations) ─────────── */

.visit-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 280px;
  padding: 0;
  border-radius: 24px;
  border-radius: var(--radius-lg);
  background: #f8fafc;
  background: var(--slate-50);
  aspect-ratio: 4 / 4;
  max-width: 420px;
  margin: auto;
}

@media (min-width: 1024px) {

.visit-card {
    aspect-ratio: 4 / 3;
    max-width: none;
    margin: 0;
}
  }

.visit-card__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  min-height: 0;
}

@media (min-width: 1024px) {
  .visit-card__inner {
    flex-direction: row;
    align-items: stretch;
  }
}

.visit-card__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  justify-content: flex-start;
  gap: 16px;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: max(24px, min(4vw, 40px));
}

.visit-card__text {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  min-height: 0;
  background: transparent;
}

.visit-card__title {
  margin: 0;
  font-size: 30px;
  font-size: var(--fs-3xl);
  line-height: 1.1;
  font-weight: 700;
  color: #015497;
  color: var(--biolase-700);
}

.visit-card__address {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.visit-card__address-line {
  margin: 0;
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.45;
  color: #0f172a;
  color: var(--slate-900);
  font-weight: 600;
}

.visit-card__address--custom {
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.45;
  color: #0f172a;
  color: var(--slate-900);
}

.visit-card__address--custom p {
  margin: 0 0 0.35em;
}

.visit-card__address--custom p:last-child {
  margin-bottom: 0;
}

/* Ubicaciones: ancho texto ~60% (escritorio) — Figma 559-1735 */

.section--locations--copy-60 .visit-card__text {
  max-width: 80%;
}

@media (min-width: 1024px) {

.section--locations--copy-60 .visit-card__text {
    max-width: 60%;
}
  }

/* Imagen a la izquierda: invertir fila y degradado */

@media (min-width: 1024px) {
  .visit-card--media-left .visit-card__inner {
    flex-direction: row-reverse;
  }

  .visit-card--media-left .visit-card__body {
    background: linear-gradient(
      270deg,
      rgba(255, 255, 255, 0.96) 0%,
      rgba(255, 255, 255, 0.92) 70%,
      rgba(255, 255, 255, 0) 100%
    );
  }

  .visit-card--media-left .visit-card__picture .visit-card__img {
    -o-object-position: left center;
       object-position: left center;
  }
}

.visit-card__phone,
.visit-card__email {
  margin: 0;
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.4;
}

.visit-card__phone a,
.visit-card__email a {
  font-weight: 700;
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.visit-card__phone a:hover,
.visit-card__email a:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.visit-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-self: stretch;
  gap: 12px 20px;
  flex-shrink: 0;
  margin-top: auto;
  width: 100%;
}

.visit-card__map-link {
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.visit-card__map-link:hover {
  color: #08437e;
  color: var(--biolase-800);
}

.visit-card__copy-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.visit-card__copy-btn.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.visit-card__copy-tooltip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  padding: 8px 12px;
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 600;
  white-space: nowrap;
  color: #fff;
  background: #0f172a;
  background: var(--slate-900);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.visit-card__copy-tooltip.is-visible {
  opacity: 1;
}

/* Imagen como “fondo”: marco fijo + img con object-fit: cover */

.visit-card__media {
  max-width: 100%;
  min-height: 200px;
  position: absolute;
  inset: 0;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  pointer-events: none;
}

@media (max-width: 1023.98px) {
  .visit-card__media {
    flex: 0 0 auto;
    width: 100%;
    min-height: 220px;
    order: -1;
  }
}

.visit-card__picture {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}

.visit-card__picture .visit-card__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: right center;
     object-position: right center;
}

/* ─────────── NOSOTROS FADED BAND (Figma 558-1734: foto + degradado + copy + CTA) ─────────── */

.section--nosotros-faded-band {
  position: relative;
  background: #ffffff;
  background: var(--white);
  padding-bottom: 0;
}

.section--nosotros-faded-band--has-copy {
  isolation: isolate;
}

.section--nosotros-faded-band--has-copy .nosotros-faded-band--with-copy .container {
  padding-left: max(16px, min(4vw, 128px));
  padding-right: max(16px, min(4vw, 128px));
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
}

/* Con texto: banda alta; la foto vive en .nosotros-faded-band__visual (hijo de section, ancho completo). */

.nosotros-faded-band--with-copy {
  position: relative;
  z-index: 1;
  min-height: max(420px, min(52vw, 640px));
  padding-top: max(48px, min(7vw, 80px));
  padding-bottom: max(48px, min(7vw, 80px));
}

.nosotros-faded-band__visual {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.nosotros-faded-band__photo-crop {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  min-height: 100%;
}

/* Figma: imagen ~72% ancho, anclada a la derecha (texto a la izquierda). */

.section--nosotros-faded-band--has-copy:not(.section--nosotros-faded-band--image-left)
  .nosotros-faded-band__photo-crop {
  left: -50%;
  right: 0;
  width: auto;
}

@media (min-width: 640px) {

.section--nosotros-faded-band--has-copy:not(.section--nosotros-faded-band--image-left)
  .nosotros-faded-band__photo-crop {
    left: -2vw;
}
  }

.section--nosotros-faded-band--has-copy.section--nosotros-faded-band--image-left
  .nosotros-faded-band__photo-crop {
  right: 28.35%;
  left: 0;
  width: auto;
}

.section--nosotros-faded-band--has-copy .nosotros-faded-band__img {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 115%;
  max-width: none;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* Degradado Figma: from-white 30% → transparent 60% (to right). */

.nosotros-faded-band__scrim {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: linear-gradient(
    90deg,
    #fff 0%,
    #fff 30%,
    rgba(255, 255, 255, 0.6) 48%,
    rgba(255, 255, 255, 0) 62%
  );
}

.section--nosotros-faded-band--image-left .nosotros-faded-band__scrim {
  background: linear-gradient(
    270deg,
    #fff 0%,
    #fff 30%,
    rgba(255, 255, 255, 0.6) 48%,
    rgba(255, 255, 255, 0) 62%
  );
}

@media (max-width: 1023.98px) {
  /* Móvil: banda más alta, foto a ancho completo, cover rellena todo el alto. */
  .nosotros-faded-band--with-copy {
    min-height: max(360px, min(88dvh, 640px));
    padding-top: max(40px, min(10dvh, 72px));
    padding-bottom: max(40px, min(10dvh, 72px));
  }

  @supports not (height: 1dvh) {
    .nosotros-faded-band--with-copy {
      min-height: max(360px, min(88vh, 640px));
      padding-top: max(40px, min(10vh, 72px));
      padding-bottom: max(40px, min(10vh, 72px));
    }
  }

  .section--nosotros-faded-band--has-copy .nosotros-faded-band__photo-crop {
    left: 0;
    right: 0;
    width: auto;
    min-height: 100%;
  }

  .section--nosotros-faded-band--has-copy.section--nosotros-faded-band--image-left
    .nosotros-faded-band__photo-crop {
    left: 0;
    right: 0;
  }

  .section--nosotros-faded-band--has-copy .nosotros-faded-band__img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    max-height: none;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
}

.nosotros-faded-band__content {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  min-height: inherit;
  flex: 1 1 auto;
}

.nosotros-faded-band--image-left .nosotros-faded-band__content {
  justify-content: flex-end;
}

.nosotros-faded-band__copy {
  display: flex;
  flex-direction: column;
  gap: max(16px, min(2.2vw, 20px));
  width: 100%;
  max-width: min(39rem, 60%);
  padding-top: max(8px, min(2vw, 16px));
  padding-bottom: max(8px, min(2vw, 16px));
}

.nosotros-faded-band--image-left .nosotros-faded-band__copy {
  text-align: right;
  align-items: flex-end;
}

.nosotros-faded-band__title {
  margin: 0;
  font-size: max(24px, min(2.5vw, 36px));
  font-size: max(var(--fs-2xl), min(2.5vw, var(--fs-4xl)));
  line-height: 1.1;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

@media (min-width: 1024px) {
  .nosotros-faded-band__title {
    font-size: 36px;
    font-size: var(--fs-4xl);
    line-height: 1.11;
  }
}

.nosotros-faded-band__lead {
  margin: 0;
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.5;
  color: #171717;
  color: var(--neutral-900);
  max-width: 36em;
}

@media (min-width: 1024px) {
  .nosotros-faded-band__lead {
    font-size: 24px;
    font-size: var(--fs-2xl);
    line-height: 1.33;
  }
}

.nosotros-faded-band__lead p {
  margin: 0 0 0.5em;
}

.nosotros-faded-band__lead p:last-child {
  margin-bottom: 0;
}

.nosotros-faded-band__cta {
  margin: max(20px, min(3vw, 40px)) 0 0;
}

.nosotros-faded-band__cta-link .ico {
  flex-shrink: 0;
  color: #fff;
}

.nosotros-faded-band--image-left .nosotros-faded-band__cta-link {
  direction: ltr;
}

/* Solo imagen (legacy / sin copy): tarjeta contenida. */

.nosotros-faded-band--media-only {
  padding-top: max(32px, min(5vw, 56px));
  padding-bottom: max(32px, min(5vw, 56px));
}

.nosotros-faded-band--media-only .nosotros-faded-band__media {
  position: relative;
  border-radius: 24px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: max(200px, min(28vw, 360px));
  background: #e2e8f0;
  background: var(--slate-200);
}

.nosotros-faded-band--media-only .nosotros-faded-band__picture {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
}

.nosotros-faded-band--media-only .nosotros-faded-band__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* ─────────── TEXT-IMAGE ROW ─────────── */

.text-image {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  grid-gap: 32px;
  gap: 32px;
  align-items: center;
}

.text-image--media-left .text-image__media {
  order: -1;
}

.text-image__copy {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding: max(24px, min(4vw, 80px)) max(16px, min(4vw, 56px));
}

.text-image__copy h2 {
  margin: 0;
  font-size: 36px;
  font-size: var(--fs-4xl);
  line-height: 1;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

@media (min-width: 1024px) {

.text-image__copy h2 {
    font-size: 48px;
    font-size: var(--fs-5xl);
}
  }

.text-image__body {
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: #0f172a;
  color: var(--slate-900);
}

.text-image__body > *:first-child {
  margin-top: 0;
}

.text-image__body > *:last-child {
  margin-bottom: 0;
}

.text-image__body p {
  margin: 0 0 0.85em;
}

.text-image__body p:last-child {
  margin-bottom: 0;
}

.text-image__body ul,
.text-image__body ol {
  margin: 0.35em 0 0.85em;
  padding-left: 1.5em;
  list-style-position: outside;
}

.text-image__body ul {
  list-style-type: disc;
}

.text-image__body ol {
  list-style-type: decimal;
}

.text-image__body li {
  margin: 0.25em 0;
}

.text-image__body a {
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.text-image__body a:hover {
  color: #08437e;
  color: var(--biolase-800);
}

.text-image__body strong {
  font-weight: 700;
}

.text-image__copy svg {
  color: #015497;
  color: var(--biolase-700);
}

.text-image__media {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  border-radius: 24px;
  border-radius: var(--radius-lg);
}

.text-image__media .biolase-cover-media img {
  -o-object-fit: cover;
     object-fit: cover;
}

/* ─────────── FEATURE PANEL ─────────── */

.feature-panel {
  display: flex;
  flex-direction: column;
  gap: 56px;
  align-items: center;
  padding: max(40px, min(8vw, 80px)) max(24px, min(6vw, 82px));
  border-radius: 24px;
  border-radius: var(--radius-lg);
  background: #dbefff;
  background: var(--biolase-100);
}

.feature-panel__hd {
  max-width: 842px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: center;
  align-items: center;
}

.feature-panel__hd h2 {
  margin: 0;
  font-size: max(36px, min(2.5vw, 48px));
  font-size: max(var(--fs-4xl), min(2.5vw, var(--fs-5xl)));
  line-height: 1;
  letter-spacing: -0.06em;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.feature-panel__hd p {
  margin: 0;
  font-size: 18px;
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: #0f172a;
  color: var(--slate-900);
}

/* ─────────── NOSOTROS PRICING ─────────── */

.section--nosotros-pricing {
  background: #f5f5f5;
  background: var(--neutral-100, #f5f5f5);
}

.nosotros-pricing {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: max(32px, min(5vw, 48px));
  padding-top: max(40px, min(8vw, 80px));
  padding-bottom: max(40px, min(8vw, 80px));
  padding-left: max(16px, min(4vw, 32px));
  padding-right: max(16px, min(4vw, 32px));
}

.nosotros-pricing__heading {
  margin: 0;
  max-width: 1200px;
  text-align: center;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans, 'DM Sans', 'Helvetica Neue', arial, sans-serif);
  font-size: 36px;
  font-size: var(--fs-4xl, 36px);
  font-style: normal;
  font-weight: 700;
  line-height: 40px;
  color: #0f172a;
  color: var(--slate-900, #0f172a);
}

.nosotros-pricing__grid {
  width: 100%;
  max-width: 1200px;
  display: grid;
  grid-gap: max(16px, min(3vw, 24px));
  gap: max(16px, min(3vw, 24px));
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .nosotros-pricing__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.nosotros-pricing-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 140px;
  padding: max(24px, min(4vw, 40px)) 24px;
  padding: max(24px, min(4vw, 40px)) var(--space-5, 24px);
  text-align: center;
  border-radius: 16px;
  border-radius: var(--radius-md, 16px);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200, #e2e8f0);
  background: #ffffff;
  background: var(--white, #fff);
}

.nosotros-pricing-card__title {
  margin: 0;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 24px;
  font-size: var(--fs-2xl);
  font-style: normal;
  font-weight: 700;
  line-height: 32px;
  color: #0f172a;
  color: var(--slate-900);
  text-align: center;
}

.nosotros-pricing-card__price {
  margin: 0;
  font-size: 18px;
  font-size: var(--fs-lg, 18px);
  line-height: 1.45;
  font-weight: 500;
  color: #64748b;
  color: var(--slate-500, #64748b);
  text-align: center;
}

/* ─────────── NOSOTROS OUTLINE CTA BAND ─────────── */

.section--nosotros-outline-cta {
  background: #015497;
  background: var(--biolase-700, #015497);
}

.section--nosotros-outline-cta .nosotros-outline-cta__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 180px;
}

@media (min-width: 1024px) {
  .section--nosotros-outline-cta {
    padding-left: 0;
    padding-right: 0;
  }

  .section--nosotros-outline-cta .nosotros-outline-cta__inner {
    padding-left: max(16px, min(4vw, 128px));
    padding-right: max(16px, min(4vw, 128px));
    padding-left: max(16px, min(4vw, 128px));
    padding-left: var(--gutter-x);
    padding-right: max(16px, min(4vw, 128px));
    padding-right: var(--gutter-x);
  }
}

.nosotros-outline-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: max(20px, min(4vw, 28px));
  text-align: center;
}

.nosotros-outline-cta__title {
  margin: 0;
  max-width: 40rem;
  color: #ffffff;
  color: var(--white, #fff);
  text-align: center;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--family-sans, var(--font-sans, 'DM Sans', 'Helvetica Neue', arial, sans-serif));
  font-size: max(20px, min(2.5vw, 36px));
  font-size: max(var(--fs-xl), min(2.5vw, var(--fs-4xl)));
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}

.nosotros-outline-cta__actions {
  margin: 0;
}

.nosotros-outline-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 10px 24px;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #ffffff;
  color: var(--white, #fff);
  text-align: center;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--family-sans, var(--font-sans, 'DM Sans', 'Helvetica Neue', arial, sans-serif));
  font-size: 20px;
  font-size: var(--size-xl, var(--fs-xl, 20px));
  font-style: normal;
  font-weight: 400;
  font-weight: var(--weight-normal, 400);
  line-height: 28px;
  line-height: var(--leading-4, 28px);
  border-radius: 8px;
  border-radius: var(--lg, var(--radius-sm, 8px));
  border: 1px solid #ffffff;
  border: 1px solid var(--white, #fff);
  background: transparent;
  transition:
    color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.nosotros-outline-cta__btn:hover {
  color: #015497;
  color: var(--biolase-700, #015497);
  background: #ffffff;
  background: var(--white, #fff);
}

.nosotros-outline-cta__btn:focus-visible {
  outline: 2px solid #ffffff;
  outline: 2px solid var(--white, #fff);
  outline-offset: 3px;
}

/* ─────────── TESTIMONIAL ─────────── */

.card-testimonial {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 32px;
  margin: 0;
  background: #f8fafc;
  background: var(--slate-50);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
}

.card-testimonial__quote {
  margin: 0;
  font-size: 20px;
  font-size: var(--fs-xl);
  line-height: 1.4;
  color: #0f172a;
  color: var(--slate-900);
  font-weight: 500;
}

.card-testimonial__quote::before {
  content: '“';
  display: block;
  font-size: 48px;
  line-height: 0.8;
  color: #a5c6ee;
  color: var(--biolase-300);
  margin-bottom: 8px;
}

.card-testimonial__attrib {
  display: flex;
  align-items: center;
  gap: 12px;
}

.card-testimonial__attrib .biolase-picture {
  display: block;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex: none;
}

.card-testimonial__photo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  flex: none;
}

.card-testimonial__attrib .biolase-picture .card-testimonial__photo {
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.card-testimonial__attrib-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-testimonial__name {
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.card-testimonial__role {
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #64748b;
  color: var(--slate-500);
}

/* Placeholder/empty states */

.card-event--placeholder,
.card-product--placeholder,
.visit-card--placeholder {
  background: #f8fafc;
  background: var(--slate-50);
  border: 1px dashed #cbd5e1;
  border: 1px dashed var(--slate-300);
  color: #64748b;
  color: var(--slate-500);
}

/* ═════════════ Site chrome + page templates ═════════════ */

/* ─────────── SITE HEADER ─────────── *
 *
 * Single row: brand · primary nav · contact + cart + account + menu-toggle.
 *
 * Sticky-by-default. The `--height` custom property drives both the header
 * box height and any layout maths (e.g. scroll-margin offsets). When
 * `src/js/modules/sticky-header.js` flips the `.is-shrunk` modifier past
 * the threshold (default 80px), the property is overridden inside the
 * header rule so paddings, logo size, and shadow all interpolate together.
 */

.site-header {
  --site-header-height: 100px;
  --site-header-shadow: 0 0 0 0 transparent;
  --site-header-bottom-margin: max(16px, min(4vw, 128px));
  position: sticky;
  top: 0;
  /* Above typical Woo / page overlays; `.site-header--overlay` overrides lower for hero pages. */
  z-index: 200;
  height: 100px;
  height: var(--site-header-height);
  background: #fff;
  border-bottom: 1px solid #f1f5f9;
  border-bottom: 1px solid var(--slate-100);
  box-shadow: 0 0 0 0 transparent;
  box-shadow: var(--site-header-shadow);
  margin-bottom: max(16px, min(4vw, 128px));
  margin-bottom: var(--site-header-bottom-margin);
  transition:
    height 220ms ease, box-shadow 220ms ease, background-color 220ms ease, border-color 220ms ease;
}

.site-header.is-shrunk {
  --site-header-height: 68px;
  --site-header-shadow: 0 4px 16px -8px rgba(15, 23, 42, 0.18);

  border-bottom-color: transparent;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  height: 100%;
  max-width: 1220px;
  max-width: var(--container-header);
  margin: 0 auto;
  padding: 0;
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
}

.site-header__brand .site-logo {
  display: block;
  width: 114px;
  height: 44px;
  transition:
    width 220ms ease, height 220ms ease;
}

.site-header.is-shrunk .site-header__brand .site-logo {
  width: 88px;
  height: 34px;
}

.site-header__tabs {
  display: none;
  gap: 20px;
  align-items: center;
  flex-grow: 1;
  justify-content: end;
  min-width: 0;
}

.site-header__icons {
  display: flex;
  gap: 4px;
  align-items: center;
}

.site-header__cart {
  position: relative;
}

.site-header__cart-count {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #08437e;
  background: var(--biolase-800);
  color: #fff;
  font-size: 9px;
  line-height: 16px;
  font-weight: 600;
  text-align: center;
  pointer-events: none;
}

.site-header--overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 5;
  background: transparent;
  border-bottom: 0;
}

.site-header--overlay path {
    transition: fill 220ms ease;
  }

.site-header--overlay .site-header__tabs .nav-tab,
.site-header--overlay .site-header__tabs .nav-submenu-toggle,
.site-header--overlay .site-header__icons .btn-icon--ghost {
  color: rgba(255, 255, 255, 0.9);
}

.site-header--overlay.is-shrunk {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: saturate(140%) blur(10px);
}

.site-header--overlay.is-shrunk path {
  fill: #015497;
  fill: var(--biolase-700);
}

.site-header--overlay:not(.is-shrunk) .btn-icon--ghost:hover {
  background-color: transparent;
}

.site-header--overlay.is-shrunk .site-header__tabs .nav-tab,
.site-header--overlay.is-shrunk .site-header__tabs .nav-submenu-toggle,
.site-header--overlay.is-shrunk .site-header__icons .btn-icon--ghost {
  color: #0f172a;
  color: var(--slate-900);
}

.site-header__contact {
  display: none;
}

/* Primary nav: parent row + dropdown (desktop only; markup also exists for a11y) */

.site-header__tabs .menu-tabs > .menu-item-has-children {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 2px;
}

.site-header__tabs .menu-tabs > .menu-item-has-children > .nav-submenu-toggle {
  width: 28px;
  width: var(--btn-icon-ghost);
  height: 28px;
  height: var(--btn-icon-ghost);
  margin: 0;
  padding: 0;
}

@media (min-width: 720px) {
  .site-header__contact {
    display: flex;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-header__brand .site-logo {
    transition: none;
  }
}

/* ─────────── SITE FOOTER ─────────── */

.site-footer {
  position: relative;
  background: #17204d;
  background: var(--biolase-950);
  color: #fff;
  padding: 56px 0;
}

.site-footer__inner {
  max-width: 1440px;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 max(16px, min(4vw, 128px));
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 40px;
  width: 100%;
}

.site-footer__inner--brand-only {
  align-items: center;
  text-align: center;
}

.site-footer__inner--with-menus {
  text-align: center;
}

@media (min-width: 1024px) {
  .site-footer__inner--with-menus {
    display: grid;
    grid-template-columns: minmax(260px, 623px) 1fr;
    grid-gap: 48px 40px;
    gap: 48px 40px;
    align-items: start;
    text-align: left;
  }
}

.site-footer__brand {
  max-width: 42rem;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.site-footer__inner--with-menus .site-footer__brand {
  text-align: center;
}

@media (min-width: 1024px) {
  .site-footer__inner--with-menus .site-footer__brand {
    max-width: 623px;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
}

.site-footer__inner--brand-only .site-footer__brand {
  margin-left: auto;
  margin-right: auto;
}

.site-footer__brand .site-logo {
  display: block;
  width: 160px;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1024px) {
  .site-footer__inner--with-menus .site-footer__brand .site-logo {
    margin-left: 0;
    margin-right: 0;
  }
}

.site-footer__intro {
  margin-top: 24px;
  font-size: 20px;
  font-size: var(--fs-xl);
  line-height: 1.4;
  color: #fff;
}

.site-footer__intro p {
  margin: 0;
}

.site-footer__intro p + p {
  margin-top: 0.75em;
}

.site-footer__address {
  margin-top: 20px;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
}

.site-footer__address p {
  margin: 0;
}

.site-footer__address p + p {
  margin-top: 0.5em;
}

/* Row 1: two nav columns; row 2: icon strip spanning both. */

.site-footer__menus {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-gap: 24px 20px;
  gap: 24px 20px;
  width: 100%;
  min-width: 0;
}

@media (min-width: 720px) {
  .site-footer__menus {
    gap: 28px 40px;
  }
}

.site-footer__col-primary,
.site-footer__col-secondary {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}

.site-footer__col-primary--empty,
.site-footer__col-secondary--empty {
  min-height: 0;
}

.site-footer__icon-row {
  grid-column: 1 / -1;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 20px;
  color: #fff;
}

.site-footer__icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: #fff;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 150ms ease;
}

.site-footer__icon-link:hover,
.site-footer__icon-link:focus-visible {
  color: #a5c6ee;
  color: var(--biolase-300);
}

.site-footer__icon-link .ico {
  color: inherit;
}

.site-footer__menus .site-footer__nav .menu,
.site-footer__menus .site-footer__legal .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #fff;
  text-align: left;
}

.site-footer__nav li,
.site-footer__legal li {
  padding: 4px 0;
  transition: color 150ms ease;
}

.site-footer__nav a,
.site-footer__legal a {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.site-footer__nav a:hover,
.site-footer__nav a:focus-visible,
.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
  color: #a5c6ee;
  color: var(--biolase-300);
}

.site-footer__nav .sub-menu,
.site-footer__legal .sub-menu {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.92);
}

.site-footer__nav .sub-menu > li,
.site-footer__legal .sub-menu > li {
  position: relative;
  padding: 2px 0 2px 1rem;
}

.site-footer__nav .sub-menu > li::before,
.site-footer__legal .sub-menu > li::before {
  content: '\2013\00a0';
  position: absolute;
  left: 0;
  color: inherit;
}

@media (min-width: 1024px) {
  .site-footer__inner--brand-only {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ─────────── PAGE LAYOUTS ─────────── */

/* Prose: global reset strips ul/ol markers — restore for page/post/block copy. */

article.page .page-content ul, article.page .page-content ol, body.single-post .post-content .entry-blocks ul, body.single-post .post-content .entry-blocks ol, .single-post__content ul, .single-post__content ol, #site-content ul.wp-block-list, #site-content ol.wp-block-list {
  margin: 0.75em 0 1em;
  padding-left: 1.5em;
  list-style-position: outside;
}

article.page .page-content ul,
body.single-post .post-content .entry-blocks ul,
.single-post__content ul,
#site-content ul.wp-block-list {
  list-style-type: disc;
}

article.page .page-content ol,
body.single-post .post-content .entry-blocks ol,
.single-post__content ol,
#site-content ol.wp-block-list {
  list-style-type: decimal;
}

article.page .page-content li,
body.single-post .post-content .entry-blocks li,
.single-post__content li,
#site-content ul.wp-block-list > li,
#site-content ol.wp-block-list > li {
  margin: 0.25em 0;
}

.page-header {
  padding-top: 24px;
  padding-bottom: 24px;
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
}

.page-header__title {
  color: #0f172a;
  color: var(--slate-900);
  text-align: center;
}

/* ─────────── PAGE HERO (featured image) ─────────── */

.page-hero {
  padding: max(24px, min(4vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(24px, min(4vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(24px, min(4vw, 40px)) var(--gutter-x) 0;
}

.page-hero__frame {
  position: relative;
  border-radius: 16px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-md);
}

.page-hero__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1920 / 900;
  -o-object-fit: cover;
     object-fit: cover;
}

.page-hero__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: max(24px, min(5vw, 48px));
  text-align: center;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.35) 0%, rgba(15, 23, 42, 0.55) 100%);
}

.page-hero--overlay .page-hero__title {
  margin: 0;
  max-width: 20ch;
  font-size: max(30px, min(4vw, 60px));
  font-size: max(var(--fs-3xl), min(4vw, var(--fs-6xl)));
  line-height: 1.05;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.page-hero__kicker {
  margin: 0 0 12px;
  margin: 0 0 var(--space-3);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #cbd5e1;
  color: var(--slate-300);
}

.page-hero__kicker--on-image {
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}

.page-hero__kicker--plain {
  margin-top: 12px;
  margin-top: var(--space-3);
  text-align: center;
  color: #64748b;
  color: var(--slate-500);
}

.page-hero__caption-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 12px max(16px, min(3vw, 28px));
  background: rgba(15, 23, 42, 0.78);
  color: #fff;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.45;
  text-align: center;
}

.page-hero__caption-bar p {
  margin: 0;
}

.page-hero--stacked .page-hero__intro {
  text-align: center;
  padding-bottom: max(20px, min(3vw, 28px));
}

.page-hero__title--stacked {
  margin: 0;
  font-size: max(30px, min(4vw, 60px));
  font-size: max(var(--fs-3xl), min(4vw, var(--fs-6xl)));
  line-height: 1.05;
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.page-hero--stacked .page-hero__kicker {
  color: #64748b;
  color: var(--slate-500);
}

.page-hero--stacked .page-hero__frame .page-hero__image {
  aspect-ratio: 16 / 9;
}

.page-hero--overlay .single-post__meta--on-hero {
  margin: 12px 0 0;
  margin: var(--space-3) 0 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.single-post__meta--intro {
  margin: 16px 0 0;
  margin: var(--space-4) 0 0;
  text-align: center;
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #475569;
  color: var(--slate-600);
}

.single-post__header {
  padding-top: 32px;
  padding-bottom: 16px;
  padding-top: var(--space-6);
  padding-bottom: var(--space-4);
}

.single-post__title {
  margin: 0;
  text-align: center;
  font-size: max(30px, min(4vw, 48px));
  font-size: max(var(--fs-3xl), min(4vw, var(--fs-5xl)));
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.single-post__meta {
  margin: 12px 0 0;
  margin: var(--space-3) 0 0;
  text-align: center;
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #475569;
  color: var(--slate-600);
}

.post-content.section {
  padding-bottom: 128px;
  padding-top: 0;
  padding-bottom: var(--space-10);
}

/* ─────────── BLOG SINGLE: block entry (Gutenberg) ─────────── */

.entry-blocks {
  --page-prose-max: 48rem;
}

.entry-blocks > * {
  margin-bottom: 32px;
  margin-top: 0;
  margin-bottom: var(--space-6);
}

.entry-blocks > *:first-child {
  margin-top: 0;
}

.entry-blocks > *:last-child {
  margin-bottom: 0;
}

.entry-blocks > p, .entry-blocks > h1, .entry-blocks > h2, .entry-blocks > h3, .entry-blocks > h4, .entry-blocks > h5, .entry-blocks > h6 {
  max-width: var(--page-prose-max);
  margin-left: auto;
  margin-right: auto;
}

.entry-blocks > .alignwide {
  max-width: min(1408px, 100%);
  max-width: min(var(--container-wide), 100%);
  margin-left: auto;
  margin-right: auto;
}

.entry-blocks > .alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
  box-sizing: border-box;
}

.entry-blocks .has-text-align-center {
  margin-left: auto;
  margin-right: auto;
}

.entry-blocks .wp-block-image, .entry-blocks .wp-block-media-text {
  margin-left: auto;
  margin-right: auto;
}

.entry-blocks .wp-block-image img,
.entry-blocks .wp-block-media-text__media img {
  border-radius: 16px;
  border-radius: var(--radius-md);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

.entry-blocks .wp-block-group.is-layout-constrained > * {
  max-width: var(--page-prose-max);
  margin-left: auto;
  margin-right: auto;
}

.entry-blocks .wp-block-group.is-layout-constrained.alignwide > * {
  max-width: min(1408px, 100%);
  max-width: min(var(--container-wide), 100%);
}

.entry-blocks .wp-block-columns {
  gap: 24px;
  gap: var(--space-5);
}

/* ─────────── EVENT / LANDING BLOCKS ─────────── */

.speakers-carousel {
  margin-top: 48px;
  margin-bottom: 48px;
  margin-top: var(--space-7);
  margin-bottom: var(--space-7);
  padding: max(24px, min(4vw, 40px));
  border-radius: 24px;
  border-radius: var(--radius-lg);
  background: #f1f5f9;
  background: var(--slate-100);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
}

.speakers-carousel__heading {
  margin: 0 0 32px;
  margin: 0 0 var(--space-6);
  text-align: center;
  font-size: 36px;
  font-size: var(--fs-4xl);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.speakers-carousel__shell {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}

.speakers-carousel__viewport {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.speakers-carousel__track {
  display: flex;
  gap: max(20px, min(4vw, 40px));
  padding: 8px 4px 16px;
}

.speakers-carousel__card {
  flex: 0 0 min(160px, 42vw);
  scroll-snap-align: start;
  text-align: center;
}

.speakers-carousel__photo {
  width: 112px;
  height: 112px;
  margin: 0 auto 12px;
  margin: 0 auto var(--space-3);
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #fff;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

.speakers-carousel__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.speakers-carousel__name {
  margin: 0 0 4px;
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.speakers-carousel__country {
  margin: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #475569;
  color: var(--slate-600);
}

.speakers-carousel__btn {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #fff;
  color: #015497;
  color: var(--biolase-700);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color 150ms ease, border-color 150ms ease;
}

.speakers-carousel__btn:hover {
  background: #f0f9ff;
  background: var(--biolase-50);
  border-color: #a5c6ee;
  border-color: var(--biolase-300);
}

.speakers-carousel__btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #5c93cb;
  box-shadow: var(--focus-ring);
}

.event-pricing-table {
  margin-top: 48px;
  margin-bottom: 48px;
  margin-top: var(--space-7);
  margin-bottom: var(--space-7);
  text-align: center;
}

.event-pricing-table__heading {
  margin: 0 0 32px;
  margin: 0 0 var(--space-6);
  font-size: 36px;
  font-size: var(--fs-4xl);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.event-pricing-table__wrap {
  overflow-x: auto;
  border-radius: 16px;
  border-radius: var(--radius-md);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
  text-align: left;
}

.event-pricing-table table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  background: #fff;
}

.event-pricing-table thead th {
  padding: 14px 20px;
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: #1e293b;
  color: var(--slate-800);
  background: #f1f5f9;
  background: var(--slate-100);
  border-bottom: 1px solid #e2e8f0;
  border-bottom: 1px solid var(--slate-200);
}

.event-pricing-table tbody tr:nth-child(even) {
  background: #fafafa;
  background: var(--neutral-50);
}

.event-pricing-table td {
  padding: 18px 20px;
  vertical-align: middle;
  border-bottom: 1px solid #e2e8f0;
  border-bottom: 1px solid var(--slate-200);
}

.event-pricing-table tbody tr:last-child td {
  border-bottom: 0;
}

.event-pricing-table__title {
  margin: 0 0 6px;
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 700;
  color: #015497;
  color: var(--biolase-700);
}

.event-pricing-table__body {
  margin: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: #1e293b;
  color: var(--slate-800);
}

.event-pricing-table__price {
  margin: 0;
  font-size: 30px;
  font-size: var(--fs-3xl);
  font-weight: 700;
  line-height: 1.1;
  color: #64748b;
  color: var(--slate-500);
  text-align: right;
  white-space: nowrap;
}

.event-pricing-table__cta-wrap {
  margin-top: 32px;
  margin-top: var(--space-6);
}

.event-pricing-table__cta.btn {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

.speakers-carousel__empty,
.event-pricing-table__empty {
  margin: 0;
  text-align: center;
  color: #475569;
  color: var(--slate-600);
  font-size: 16px;
  font-size: var(--fs-base);
}

.archive-header {
  padding-top: clamp(24px, 4vw + 1rem, 48px);
  padding-bottom: clamp(24px, 4vw + 1rem, 48px);
  padding-top: clamp(var(--space-5), 4vw + 1rem, var(--space-7));
  padding-bottom: clamp(var(--space-5), 4vw + 1rem, var(--space-7));
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: max(16px, min(4vw, 128px));
  padding-right: max(16px, min(4vw, 128px));
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
}

/* ─────────── BLOG LANDING (post index / archives) ─────────── */

.section--blog-hd {
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(32px, min(5vw, 40px)) max(16px, min(4vw, 128px)) 0;
  padding: max(32px, min(5vw, 40px)) var(--gutter-x) 0;
}

.archive-header--blog {
  padding: 0;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.blog-landing__description {
  margin-top: 16px;
  margin-top: var(--space-4);
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.55;
  color: #334155;
  color: var(--slate-700);
}

.search-results__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35em;
  text-align: center;
  line-height: 1.1;
}

.search-results__title.shop-title {
  font-size: max(1.75rem, min(4vw, 3.75rem));
}

.search-results__label {
  display: block;
  font-size: 0.45em;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #475569;
  color: var(--slate-600);
}

.search-results__query {
  display: block;
  max-width: min(100%, 28ch);
  word-break: break-word;
  color: #0f172a;
  color: var(--slate-900);
}

.section--blog-filters {
  padding: max(20px, min(4vw, 28px)) max(16px, min(4vw, 128px)) 0;
  padding: max(20px, min(4vw, 28px)) max(16px, min(4vw, 128px)) 0;
  padding: max(20px, min(4vw, 28px)) var(--gutter-x) 0;
  overflow-x: hidden;
}

@media (min-width: 720px) {
  .section--blog-filters {
    overflow-x: visible;
  }
}

.section--blog-filters__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 20px;
}

@media (min-width: 720px) {
  .section--blog-filters__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px 32px;
  }

  .section--blog-filters__inner .chip-row--blog {
    flex: 1;
    min-width: 0;
  }
}

.search-form--blog {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  gap: 0;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 9999px;
  border-radius: var(--radius-pill);
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
  padding: 0 14px 0 16px;
  min-height: 40px;
  min-height: var(--btn-h);
}

.search-form--blog:focus-within {
  border-color: #5c93cb;
  border-color: var(--biolase-500);
}

.search-form__label--blog {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0;
  cursor: pointer;
}

.search-form__icon {
  display: flex;
  color: #64748b;
  color: var(--slate-500);
}

.search-form__input--blog {
  flex: 1;
  min-width: 0;
  height: 38px;
  padding: 0 12px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  font-size: 16px;
  font-size: var(--fs-base);
}

.search-form__input--blog:focus {
  outline: none;
  border: 0;
}

.section--blog-grid {
  padding-top: max(24px, min(4vw, 40px));
  padding-bottom: max(56px, min(8vw, 96px));
}

.post-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 32px;
  gap: 32px;
}

@media (min-width: 720px) {
  .post-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1440px) {
  .post-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.post-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 100%;
}

.post-card__media {
  display: block;
  overflow: hidden;
  border-radius: 16px;
  border-radius: var(--radius-md);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  aspect-ratio: 480 / 320;
  position: relative;
}

.post-card__media .biolase-cover-media {
  height: 100%;
}

.post-card__media .biolase-cover-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.post-card__media-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  background: #f1f5f9;
  background: var(--slate-100);
}

.post-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.post-card__title {
  margin: 0;
  font-size: 20px;
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.2;
}

.post-card__title a {
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.post-card__title a:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.post-card__meta {
  margin: 0;
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #0f172a;
  color: var(--slate-900);
}

.post-card__meta-sep {
  font-weight: 400;
  color: #94a3b8;
  color: var(--slate-400);
}

.post-card__excerpt {
  margin: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: #262626;
  color: var(--neutral-800);
  flex: 1;
}

.post-card__excerpt p {
  margin: 0;
}

.post-card__link {
  margin-top: auto;
  align-self: flex-start;
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: none;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.post-card__link:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.post-card__link-arrow {
  line-height: 1;
}

.blog-landing__empty {
  margin: 0;
  padding-top: 64px;
  padding-bottom: 64px;
  padding-top: var(--space-8);
  padding-bottom: var(--space-8);
  text-align: center;
  color: #475569;
  color: var(--slate-600);
}

.section--blog-grid .posts-navigation {
  margin-top: max(32px, min(6vw, 56px));
}

.section--blog-grid .posts-navigation .nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
}

body:not(.paged) .section--blog-grid .posts-navigation .nav-previous {
  display: none;
}

.section--blog-grid .posts-navigation a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 32px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
  font-weight: 700;
  -webkit-text-decoration: none;
  text-decoration: none;
  width: 100%;
  max-width: 22rem;
}

@media (min-width: 720px) {
  .section--blog-grid .posts-navigation a {
    width: auto;
  }
}

.section--blog-grid .posts-navigation a:hover {
  background: #08437e;
  background: var(--biolase-800);
  color: #fff;
}

.error-404 {
  padding-top: 96px;
  padding-bottom: 128px;
  padding-top: var(--space-9);
  padding-bottom: var(--space-10);
  text-align: center;
}

.error-404__eyebrow {
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  color: #015497;
  color: var(--biolase-700);
  letter-spacing: 4px;
}

.error-404__actions {
  margin-top: 48px;
  margin-top: var(--space-7);
  display: flex;
  gap: 16px;
  gap: var(--space-4);
  justify-content: center;
  flex-wrap: wrap;
}

/* ─────────── SEARCH FORM ─────────── */

.search-form {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

.search-form__input {
  height: 40px;
  height: var(--btn-h);
  padding: 0 16px;

  background: #fff;
  font-size: 16px;
  font-size: var(--fs-base);
  min-width: 240px;
}

.search-form__input:focus {
  outline: none;
  border-color: #5c93cb;
  border-color: var(--biolase-500);
}

.search-form__submit {
  height: 40px;
  height: var(--btn-h);
  padding: 0 16px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
  font-weight: 400;
  border: 0;
  cursor: pointer;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

.search-form__submit:hover {
  background: #08437e;
  background: var(--biolase-800);
}

/* ─────────── MOBILE NAV DRAWER ─────────── */

.site-mobile-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /* Above `.site-header` (200); drawer is a sibling after `</header>`. */
  z-index: 400;
  background: rgba(15, 23, 42, 0.6);
  display: flex;
  justify-content: flex-end;
}

.site-mobile-nav[hidden] {
  display: none;
}

.site-mobile-nav__panel {
  position: relative;
  width: min(360px, 88vw);
  height: 100%;
  background: #fff;
  padding: 24px 24px 48px;
  box-shadow: -12px 0 30px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.site-mobile-nav__menu {
  overflow-x: auto;
}

.site-mobile-nav__close {
  align-self: flex-end;
}

.site-mobile-nav__list,
.site-mobile-nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.site-mobile-nav a {
  display: block;
  padding: 12px 8px;
  font-size: 18px;
  font-size: var(--fs-lg);
  font-weight: 600;
  color: #0f172a;
  color: var(--slate-900);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  transition:
    background-color 150ms ease, color 150ms ease;
}

.site-mobile-nav a:hover,
.site-mobile-nav .current-menu-item > a {
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #015497;
  color: var(--biolase-700);
}

.site-mobile-nav .menu-item-has-children {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  grid-gap: 0;
  gap: 0;
}

.site-mobile-nav .menu-item-has-children > a {
  grid-column: 1;
  grid-row: 1;
}

.site-mobile-nav .menu-item-has-children > .nav-submenu-toggle {
  grid-column: 2;
  grid-row: 1;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  justify-self: end;
}

.site-mobile-nav .menu-item-has-children > .sub-menu {
  grid-column: 1 / -1;
  grid-row: 2;
  display: none;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 4px 0 8px 12px;
  list-style: none;
  box-sizing: border-box;
}

.site-mobile-nav .menu-item-has-children.is-open > .sub-menu {
  display: block;
}

.site-mobile-nav .sub-menu .sub-menu {
  padding-left: 12px;
}

.site-mobile-nav .sub-menu .sub-menu .sub-menu {
  padding-left: 8px;
}

.site-mobile-nav .sub-menu a {
  padding: 10px 8px;
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 500;
}

.has-open-drawer {
  overflow: hidden;
}

@media (min-width: 960px) {
  .site-header__tabs {
    display: flex;
  }

  .site-header__menu-toggle {
    display: none;
  }

  .site-header__tabs .menu-item-has-children {
    position: relative;
  }

  .site-header__tabs .sub-menu > .menu-item-has-children {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 2px;
  }

  .site-header__tabs .sub-menu > .menu-item-has-children > a {
    flex: 1 1 auto;
    min-width: 0;
  }

  .site-header__tabs .sub-menu > .menu-item-has-children > .nav-submenu-toggle {
    width: 28px;
    width: var(--btn-icon-ghost);
    height: 28px;
    height: var(--btn-icon-ghost);
    margin: 0;
    padding: 0;
    flex-shrink: 0;
  }

  .site-header__tabs .sub-menu .nav-submenu-toggle {
    color: #08437e;
    color: var(--biolase-800);
  }

  /* top: 100% + padding-top = hover bridge (no dead air; abs children do not extend li hit box) */
  .site-header__tabs .menu-tabs > .menu-item-has-children > .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 60;
    min-width: 220px;
    max-width: min(320px, 70vw);
    margin: 0;
    padding: 12px 0 8px;
    list-style: none;
    border-radius: 8px;
    border-radius: var(--radius-sm);
    background: #fff;
    box-shadow:
      0 4px 24px -6px rgba(15, 23, 42, 0.22),
      0 0 0 1px rgba(15, 23, 42, 0.06);
  }

  /* overlap + padding-left = horizontal bridge into nested flyout */
  .site-header__tabs .sub-menu .menu-item-has-children > .sub-menu {
    position: absolute;
    top: 0;
    left: 100%;
    z-index: 70;
    min-width: 200px;
    max-width: min(280px, 55vw);
    margin: 0;
    margin-left: -8px;
    padding: 8px 0 8px 10px;
    list-style: none;
    border-radius: 8px;
    border-radius: var(--radius-sm);
    background: #fff;
    box-shadow:
      0 4px 24px -6px rgba(15, 23, 42, 0.22),
      0 0 0 1px rgba(15, 23, 42, 0.06);
  }

  .site-header__tabs .sub-menu > li > a {
    display: block;
    padding: 8px 16px;
    font-size: 14px;
    font-size: var(--fs-sm);
    font-weight: 400;
    color: #1e293b;
    color: var(--slate-800);
    -webkit-text-decoration: none;
    text-decoration: none;
    transition:
      background-color 150ms ease, color 150ms ease;
  }

  .site-header__tabs .sub-menu > li > a:hover,
  .site-header__tabs .sub-menu > li > a:focus-visible {
    background: #f0f9ff;
    background: var(--biolase-50);
    color: #015497;
    color: var(--biolase-700);
    outline: none;
  }

  .site-header__tabs .sub-menu .nav-tab {
    padding: 0;
    font-size: inherit;
    color: inherit;
  }

  .site-header__tabs .sub-menu .nav-tab::after {
    display: none;
  }

  .site-header__tabs .sub-menu .current-menu-item > a,
  .site-header__tabs .sub-menu .current-menu-item > a .nav-tab {
    color: #015497;
    color: var(--biolase-700);
    font-weight: 600;
  }

  .site-header--overlay .site-header__tabs .sub-menu {
    background: #fff;
    color: #0f172a;
    color: var(--slate-900);
  }

  .site-header--overlay .site-header__tabs .sub-menu a,
  .site-header--overlay .site-header__tabs .sub-menu .nav-tab {
    color: #1e293b;
    color: var(--slate-800);
  }

  .site-header--overlay .site-header__tabs .sub-menu > li > a:hover,
  .site-header--overlay .site-header__tabs .sub-menu > li > a:focus-visible {
    color: #015497;
    color: var(--biolase-700);
  }

  .site-header--overlay .site-header__tabs .sub-menu .nav-submenu-toggle {
    color: #08437e;
    color: var(--biolase-800);
  }

  @media (hover: none), (pointer: coarse) {
    .site-header__tabs .menu-item-has-children > .sub-menu {
      display: none;
    }

    .site-header__tabs .menu-item-has-children:hover > .sub-menu {
      display: none;
    }

    .site-header__tabs .menu-item-has-children.is-open > .sub-menu,
    .site-header__tabs .menu-item-has-children:focus-within > .sub-menu {
      display: block;
    }
  }
}

/* Desktop fine pointer: submenus via hover / focus-within only (no .is-open) */

@media (min-width: 960px) and (hover: hover) and (pointer: fine) {
  .site-header__tabs .menu-item-has-children > .sub-menu {
    display: none;
  }

  .site-header__tabs .menu-item-has-children:hover > .sub-menu,
  .site-header__tabs .menu-item-has-children:focus-within > .sub-menu {
    display: block;
  }
}

/* ─────────── BREADCRUMBS ─────────── */

.breadcrumbs {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding: 24px max(16px, min(4vw, 128px)) 0;
  padding: 24px var(--gutter-x) 0;
  color: #64748b;
  color: var(--slate-500);
}

.breadcrumbs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.breadcrumbs__item + .breadcrumbs__item::before {
  content: '›';
  margin-right: 8px;
  color: #cbd5e1;
  color: var(--slate-300);
}

.breadcrumbs a {
  color: #64748b;
  color: var(--slate-500);
}

.breadcrumbs a:hover {
  color: #015497;
  color: var(--biolase-700);
}

.breadcrumbs [aria-current='page'] {
  color: #0f172a;
  color: var(--slate-900);
  font-weight: 600;
}

/* ─────────── FIGMA / WP COMPONENT MAP (ref handoff: .map-table in index.html) ─────────── */

.map-table {
  width: 100%;
  max-width: 1408px;
  max-width: var(--container-wide);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.map-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) minmax(180px, 2fr) minmax(
      140px,
      1.2fr
    );
  grid-gap: 16px 24px;
  gap: 16px 24px;
  padding: 14px 20px;
  border-bottom: 1px solid #f1f5f9;
  border-bottom: 1px solid var(--slate-100);
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.45;
  align-items: center;
  min-width: min(100%, 920px);
}

.map-row:last-child {
  border-bottom: 0;
}

.map-row--hd {
  background: #f8fafc;
  background: var(--slate-50);
  color: #64748b;
  color: var(--slate-500);
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.map-row code {
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  color: #015497;
  color: var(--biolase-700);
  background: #f0f9ff;
  background: var(--biolase-50);
  padding: 2px 6px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-size: var(--fs-xs);
  word-break: break-word;
}

.map-row span:nth-child(3) {
  color: #334155;
  color: var(--slate-700);
  font-family: 'IBM Plex Mono', ui-monospace, sfmono-regular, monospace;
  font-family: var(--font-mono);
  font-size: 12px;
  font-size: var(--fs-xs);
  word-break: break-word;
}

.map-row .dim {
  color: #64748b;
  color: var(--slate-500);
}

@media (min-width: 640px) {
  .map-row {
    grid-template-columns: minmax(140px, 220px) minmax(140px, 220px) minmax(0, 1fr) minmax(
        160px,
        280px
      );
    min-width: 720px;
  }
}

/* ─────────── CONTACT FORM 7 (Figma 576-1744: 2 cols desktop, stack mobile) ─────────── */

.page-content .wpcf7 {
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-bottom: clamp(18px, 3vw + 1rem, 26px);
}

.page-content .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  gap: var(--space-4);
  width: 100%;
}

.page-content .wpcf7-form > p {
  margin: 0;
}

.page-content .wpcf7-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  gap: var(--space-2);
  color: #525252;
  color: var(--neutral-600);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 700;
  line-height: 16px;
  text-transform: uppercase;
}

.page-content .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit) {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid #94a3b8;
  border: 1px solid var(--slate-400);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #f8fafc;
  background: var(--slate-50);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.45;
  color: #0f172a;
  color: var(--slate-900);
  box-shadow: none;
  transition: border-color 0.15s ease;
}

.page-content .wpcf7-form textarea.wpcf7-form-control {
  min-height: 160px;
  resize: vertical;
}

.page-content .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):focus {
  outline: 2px solid #a5c6ee;
  outline: 2px solid var(--biolase-300);
  outline-offset: 2px;
  border-color: #5c93cb;
  border-color: var(--biolase-500);
  box-shadow: none;
}

.page-content .wpcf7-form .wpcf7-form-control.wpcf7-not-valid {
  border-color: #64748b;
  border-color: var(--slate-500);
}

.page-content .wpcf7-form .wpcf7-not-valid-tip {
  margin-top: 8px;
  margin-top: var(--space-2);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: #08437e;
  color: var(--biolase-800);
}

.page-content .wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  font-weight: 400;
}

.page-content .wpcf7-form #form_consulta {
  margin: 0;
  text-align: center;
}

.page-content .wpcf7-form #form_consulta p {
  margin: 0;
}

.page-content .wpcf7-form .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 40px;
  min-height: var(--btn-h);
  padding: 0 24px;
  border: 0;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-transform: uppercase;
  cursor: pointer;
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
  box-shadow: none;
  transition:
    background-color 150ms ease, color 150ms ease;
}

.page-content .wpcf7-form .wpcf7-submit:hover {
  background: #08437e;
  background: var(--biolase-800);
  color: #fff;
}

.page-content .wpcf7-form .wpcf7-submit:focus-visible {
  outline: 2px solid #a5c6ee;
  outline: 2px solid var(--biolase-300);
  outline-offset: 2px;
  box-shadow: none;
}

.page-content .wpcf7-form .wpcf7-response-output {
  margin: 12px 0 0;
  margin: var(--space-3) 0 0;
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #1e293b;
  color: var(--slate-800);
  background: #f8fafc;
  background: var(--slate-50);
  box-shadow: none;
}

.page-content .wpcf7-form.invalid .wpcf7-response-output,
.page-content .wpcf7-form.unaccepted .wpcf7-response-output,
.page-content .wpcf7-form.payment-required .wpcf7-response-output {
  border-color: #c0dbf6;
  border-color: var(--biolase-200);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #103166;
  color: var(--biolase-900);
}

.page-content .wpcf7-form.sent .wpcf7-response-output {
  border-color: #e2e8f0;
  border-color: var(--slate-200);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #103166;
  color: var(--biolase-900);
}

.page-content .wpcf7-spinner {
  position: absolute;
}

@media (min-width: 1024px) {
  .page-content .wpcf7-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(60%, 1fr);
    grid-column-gap: 32px;
    grid-column-gap: var(--space-6);
    -moz-column-gap: 32px;
         column-gap: 32px;
    -moz-column-gap: var(--space-6);
         column-gap: var(--space-6);
    grid-row-gap: 16px;
    grid-row-gap: var(--space-4);
    row-gap: 16px;
    row-gap: var(--space-4);
    align-items: start;
  }

  .page-content .wpcf7-form > p:nth-of-type(1) {
    grid-column: 1;
    grid-row: 1;
  }

  .page-content .wpcf7-form > p:nth-of-type(2) {
    grid-column: 1;
    grid-row: 2;
  }

  .page-content .wpcf7-form > p:nth-of-type(3) {
    grid-column: 1;
    grid-row: 3;
  }

  .page-content .wpcf7-form > p:nth-of-type(4) {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .page-content .wpcf7-form > p:nth-of-type(4) .wpcf7-form-control-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .page-content .wpcf7-form > p:nth-of-type(4) textarea.wpcf7-form-control {
    flex: 1;
    min-height: 220px;
  }

  .page-content .wpcf7-form > #form_consulta {
    grid-column: 1 / -1;
    grid-row: 4;
  }

  .page-content .wpcf7-form > .wpcf7-response-output {
    grid-column: 1 / -1;
    grid-row: 5;
  }
}

/* ═════════════ WooCommerce storefront (Biolase tokens + CF7 / .btn parity) ═════════════
 * Scoped to WC body classes. Loaded after pages.css in index.css.
 */

/* ─────────── Notices ─────────── */

body.woocommerce-account .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper,
body.single-product .woocommerce-notices-wrapper,
body.post-type-archive-product .woocommerce-notices-wrapper,
body.tax-product_cat .woocommerce-notices-wrapper,
body.tax-product_tag .woocommerce-notices-wrapper,
body[class*='tax-pa_'] .woocommerce-notices-wrapper {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: max(16px, min(4vw, 128px));
  padding-right: max(16px, min(4vw, 128px));
  padding-left: max(16px, min(4vw, 128px));
  padding-left: var(--gutter-x);
  padding-right: max(16px, min(4vw, 128px));
  padding-right: var(--gutter-x);
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  padding: 12px 16px 12px 48px;
  padding: var(--space-3) var(--space-4) var(--space-3) var(--space-7);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: #0f172a;
  color: var(--slate-900);
  background: #f8fafc;
  background: var(--slate-50);
  list-style: none;
}

.woocommerce-message {
  border-color: #c0dbf6;
  border-color: var(--biolase-200);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #103166;
  color: var(--biolase-900);
}

.woocommerce-error {
  border-color: #94a3b8;
  border-color: var(--slate-400);
  background: #f1f5f9;
  background: var(--slate-100);
  color: #0f172a;
  color: var(--slate-900);
}

.woocommerce-info {
  border-color: #cbd5e1;
  border-color: var(--slate-300);
  background: #ffffff;
  background: var(--white);
}

/* Woo default notice “icon” pseudo — theme uses flat bordered notices */

.woocommerce-info::before {
  display: none !important;
}

.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
  color: #015497;
  color: var(--biolase-700);
  font-weight: 600;
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.woocommerce-message a:hover,
.woocommerce-error a:hover,
.woocommerce-info a:hover {
  color: #08437e;
  color: var(--biolase-800);
}

article.page .page-content .woocommerce ul {
  padding-left: inherit;
}

.woocommerce .woocommerce-MyAccount-content h3 {
  margin-bottom: 1rem;
}

/* ─────────── Buttons (match .btn / .btn--primary / .btn--secondary) ─────────── */

body.woocommerce-account .button,
body.woocommerce-cart .button,
body.woocommerce-checkout .button,
body.single-product .button,
body.post-type-archive-product .button,
body.tax-product_cat .button,
body.tax-product_tag .button,
body[class*='tax-pa_'] .button,
body.woocommerce-account a.button,
body.woocommerce-cart a.button,
body.woocommerce-checkout a.button,
body.single-product a.button,
body.woocommerce-account button.button,
body.woocommerce-cart button.button,
body.woocommerce-checkout button.button,
body.single-product button.button,
body.woocommerce-account input.button,
body.woocommerce-cart input.button,
body.woocommerce-checkout input.button,
body.single-product input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  gap: var(--space-2);
  min-height: 40px;
  min-height: var(--btn-h);
  padding: 0 24px;
  padding: 0 var(--space-5);
  border: 0;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
  transition:
    background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

body.woocommerce-account .button,
body.woocommerce-cart .button,
body.woocommerce-checkout .button,
body.single-product .button,
body.post-type-archive-product .button,
body.tax-product_cat .button,
body.tax-product_tag .button,
body[class*='tax-pa_'] .button,
body.woocommerce-account a.button,
body.woocommerce-cart a.button,
body.woocommerce-checkout a.button,
body.single-product a.button,
body.woocommerce-account button.button,
body.woocommerce-cart button.button,
body.woocommerce-checkout button.button,
body.single-product button.button,
body.woocommerce-account input.button,
body.woocommerce-cart input.button,
body.woocommerce-checkout input.button,
body.single-product input.button {
  background: #015497;
  background: var(--biolase-700);
  color: #fff;
}

body.woocommerce-account .button:hover,
body.woocommerce-cart .button:hover,
body.woocommerce-checkout .button:hover,
body.single-product .button:hover,
body.woocommerce-account a.button:hover,
body.woocommerce-cart a.button:hover,
body.woocommerce-checkout a.button:hover,
body.single-product a.button:hover,
body.woocommerce-account button.button:hover,
body.woocommerce-cart button.button:hover,
body.woocommerce-checkout button.button:hover,
body.single-product button.button:hover,
body.woocommerce-account input.button:hover,
body.woocommerce-cart input.button:hover,
body.woocommerce-checkout input.button:hover,
body.single-product input.button:hover {
  background: #08437e;
  background: var(--biolase-800);
  color: #fff;
}

body.woocommerce-account .button:focus-visible,
body.woocommerce-cart .button:focus-visible,
body.woocommerce-checkout .button:focus-visible,
body.single-product .button:focus-visible,
body.woocommerce-account a.button:focus-visible,
body.woocommerce-cart a.button:focus-visible,
body.woocommerce-checkout a.button:focus-visible,
body.single-product a.button:focus-visible,
body.woocommerce-account button.button:focus-visible,
body.woocommerce-cart button.button:focus-visible,
body.woocommerce-checkout button.button:focus-visible,
body.single-product button.button:focus-visible,
body.woocommerce-account input.button:focus-visible,
body.woocommerce-cart input.button:focus-visible,
body.woocommerce-checkout input.button:focus-visible,
body.single-product input.button:focus-visible {
  outline: none;
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1),
    0 0 0 3px #a5c6ee;
  box-shadow:
    var(--shadow-sm),
    0 0 0 3px var(--biolase-300);
}

body.woocommerce-account .button.alt,
body.woocommerce-cart .button.alt,
body.woocommerce-checkout .button.alt,
body.single-product .button.alt,
body.woocommerce-account a.button.alt,
body.woocommerce-cart a.button.alt,
body.woocommerce-checkout a.button.alt,
body.single-product a.button.alt,
body.woocommerce-account button.button.alt,
body.woocommerce-cart button.button.alt,
body.woocommerce-checkout button.button.alt,
body.single-product button.button.alt,
body.woocommerce-account input.button.alt,
body.woocommerce-cart input.button.alt,
body.woocommerce-checkout input.button.alt,
body.single-product input.button.alt {
  background: #fff;
  color: #015497;
  color: var(--biolase-700);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
}

body.woocommerce-account .button.alt:hover,
body.woocommerce-cart .button.alt:hover,
body.woocommerce-checkout .button.alt:hover,
body.single-product .button.alt:hover,
body.woocommerce-account a.button.alt:hover,
body.woocommerce-cart a.button.alt:hover,
body.woocommerce-checkout a.button.alt:hover,
body.single-product a.button.alt:hover {
  background: #f8fafc;
  background: var(--slate-50);
  color: #08437e;
  color: var(--biolase-800);
}

body.woocommerce-account .button:disabled,
body.woocommerce-cart .button:disabled,
body.woocommerce-checkout .button:disabled,
body.single-product .button:disabled,
body.woocommerce-account button.button:disabled,
body.woocommerce-cart button.button:disabled,
body.woocommerce-checkout button.button:disabled,
body.single-product button.button:disabled,
body.woocommerce-account input.button:disabled,
body.woocommerce-cart input.button:disabled,
body.woocommerce-checkout input.button:disabled,
body.single-product input.button:disabled {
  background: #cbd5e1;
  background: var(--slate-300);
  color: #64748b;
  color: var(--slate-500);
  cursor: not-allowed;
  box-shadow: none;
}

/* ─────────── Form controls (CF7-style: uppercase labels, slate borders) ─────────── */

body.woocommerce-account .woocommerce form .form-row label,
body.woocommerce-cart .woocommerce form .form-row label,
body.woocommerce-checkout .woocommerce form .form-row label,
body.single-product .woocommerce form .form-row label {
  display: block;
  margin-bottom: 8px;
  margin-bottom: var(--space-2);
  color: #525252;
  color: var(--neutral-600);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
}

body.woocommerce-account .woocommerce .input-text,
body.woocommerce-cart .woocommerce .input-text,
body.woocommerce-checkout .woocommerce .input-text,
body.single-product .woocommerce .input-text,
body.woocommerce-account .woocommerce input[type='text'],
body.woocommerce-account .woocommerce input[type='email'],
body.woocommerce-account .woocommerce input[type='password'],
body.woocommerce-account .woocommerce input[type='tel'],
body.woocommerce-account .woocommerce input[type='number'],
body.woocommerce-cart .woocommerce input[type='text'],
body.woocommerce-cart .woocommerce input[type='email'],
body.woocommerce-cart .woocommerce input[type='tel'],
body.woocommerce-cart .woocommerce input[type='number'],
body.woocommerce-checkout .woocommerce input[type='text'],
body.woocommerce-checkout .woocommerce input[type='email'],
body.woocommerce-checkout .woocommerce input[type='tel'],
body.woocommerce-checkout .woocommerce input[type='number'],
body.single-product .woocommerce input[type='number'],
body.woocommerce-account .woocommerce select,
body.woocommerce-cart .woocommerce select,
body.woocommerce-checkout .woocommerce select,
body.single-product .woocommerce select,
body.woocommerce-account .woocommerce textarea,
body.woocommerce-cart .woocommerce textarea,
body.woocommerce-checkout .woocommerce textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid #94a3b8;
  border: 1px solid var(--slate-400);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #f8fafc;
  background: var(--slate-50);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.45;
  color: #0f172a;
  color: var(--slate-900);
  box-shadow: none;
  transition: border-color 0.15s ease;
}

body.woocommerce-account .woocommerce .input-text:focus,
body.woocommerce-cart .woocommerce .input-text:focus,
body.woocommerce-checkout .woocommerce .input-text:focus,
body.single-product .woocommerce .input-text:focus,
body.woocommerce-account .woocommerce input:focus-visible,
body.woocommerce-cart .woocommerce input:focus-visible,
body.woocommerce-checkout .woocommerce input:focus-visible,
body.single-product .woocommerce input:focus-visible,
body.woocommerce-account .woocommerce select:focus-visible,
body.woocommerce-cart .woocommerce select:focus-visible,
body.woocommerce-checkout .woocommerce select:focus-visible,
body.single-product .woocommerce select:focus-visible,
body.woocommerce-account .woocommerce textarea:focus-visible,
body.woocommerce-cart .woocommerce textarea:focus-visible,
body.woocommerce-checkout .woocommerce textarea:focus-visible {
  outline: 2px solid #a5c6ee;
  outline: 2px solid var(--biolase-300);
  outline-offset: 2px;
  border-color: #5c93cb;
  border-color: var(--biolase-500);
}

body.woocommerce-account .woocommerce form .form-row,
body.woocommerce-cart .woocommerce form .form-row,
body.woocommerce-checkout .woocommerce form .form-row,
body.single-product .woocommerce form .form-row {
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  padding: 0;
}

body.woocommerce-account .woocommerce form .form-row-first,
body.woocommerce-account .woocommerce form .form-row-last,
body.woocommerce-checkout .woocommerce form .form-row-first,
body.woocommerce-checkout .woocommerce form .form-row-last {
  width: 100%;
}

@media (min-width: 720px) {
  body.woocommerce-account .woocommerce form .form-row-first,
  body.woocommerce-checkout .woocommerce form .form-row-first {
    float: left;
    width: 47%;
    margin-right: 3%;
  }

  body.woocommerce-account .woocommerce form .form-row-last,
  body.woocommerce-checkout .woocommerce form .form-row-last {
    float: right;
    width: 47%;
    margin-right: 0;
  }
}

body.woocommerce-account .woocommerce form .clear,
body.woocommerce-checkout .woocommerce form .clear {
  clear: both;
}

body.woocommerce-account .woocommerce form.login,
body.woocommerce-account .woocommerce form.register,
body.woocommerce-account .woocommerce .woocommerce-form-login {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
  padding: 32px;
  padding: var(--space-6);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  background: #ffffff;
  background: var(--white);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

body.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 8px;
  gap: var(--space-2);
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 500;
  text-transform: none;
  color: #334155;
  color: var(--slate-700);
}

body.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme input {
  width: auto;
  accent-color: #2f73b1;
  accent-color: var(--biolase-600);
}

body.woocommerce-account .woocommerce-LostPassword {
  margin-top: 16px;
  margin-top: var(--space-4);
  font-size: 14px;
  font-size: var(--fs-sm);
}

body.woocommerce-account .woocommerce-LostPassword a {
  color: #015497;
  color: var(--biolase-700);
  font-weight: 600;
}

/* ─────────── Tables (cart, orders, account) ─────────── */

body.woocommerce-account .shop_table,
body.woocommerce-cart .shop_table,
body.woocommerce-checkout .shop_table {
  width: 100%;
  margin: 0 0 32px;
  margin: 0 0 var(--space-6);
  border-collapse: collapse;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  overflow: hidden;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  background: #ffffff;
  background: var(--white);
}

body.woocommerce-account .shop_table th,
body.woocommerce-cart .shop_table th,
body.woocommerce-checkout .shop_table th,
body.woocommerce-account .shop_table td,
body.woocommerce-cart .shop_table td,
body.woocommerce-checkout .shop_table td {
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  text-align: left;
  border-bottom: 1px solid #e2e8f0;
  border-bottom: 1px solid var(--slate-200);
  vertical-align: middle;
}

body.woocommerce-account .shop_table thead th,
body.woocommerce-cart .shop_table thead th,
body.woocommerce-checkout .shop_table thead th {
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #525252;
  color: var(--neutral-600);
  background: #f8fafc;
  background: var(--slate-50);
}

body.woocommerce-account .shop_table tbody tr:last-child td,
body.woocommerce-cart .shop_table tbody tr:last-child td,
body.woocommerce-checkout .shop_table tbody tr:last-child td {
  border-bottom: 0;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-checkout .woocommerce-checkout-review-order {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ─────────── My Account layout ─────────── */

body.woocommerce-account .woocommerce {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) var(--gutter-x) max(48px, min(8vw, 96px));
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: 32px;
  margin-bottom: var(--space-6);
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation-link {
  margin: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation-link a {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 9999px;
  border-radius: var(--radius-pill);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #334155;
  color: var(--slate-700);
  background: #ffffff;
  background: var(--white);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition:
    border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover {
  border-color: #a5c6ee;
  border-color: var(--biolase-300);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #08437e;
  color: var(--biolase-800);
}

@media (min-width: 1024px) {
  /* body.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
    gap: var(--space-7);
    align-items: start;
  } */

  body.woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 0;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    flex-direction: column;
    align-items: stretch;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation-link a {
    width: 100%;
    border-radius: 8px;
    border-radius: var(--radius-sm);
    justify-content: flex-start;
  }
}

body.woocommerce-account .woocommerce-MyAccount-content {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.6;
  color: #1e293b;
  color: var(--slate-800);
}

body.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}

/* My Account — addresses index (billing / shipping) */

body.woocommerce-account .woocommerce-MyAccount-content > p:has(+ .woocommerce-Addresses) {
  margin: 0 0 24px;
  margin: 0 0 var(--space-5);
  max-width: 52ch;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: #475569;
  color: var(--slate-600);
}

/* Woo legacy .col2-set sometimes uses ::before/::after clears — grid handles layout */

body.woocommerce-account .woocommerce-Addresses.u-columns.col2-set.addresses::before,
body.woocommerce-account .woocommerce-Addresses.u-columns.col2-set.addresses::after {
  display: none !important;
  content: none !important;
}

body.woocommerce-account .col2-set .col-1,
body.woocommerce-account .col2-set .col-2 {
  width: 100%;
}

body.woocommerce-account .woocommerce-Addresses {
  display: grid;
  grid-gap: 24px;
  grid-gap: var(--space-5);
  gap: 24px;
  gap: var(--space-5);
  margin: 0;
  padding: 0;
  border: 0;
  clear: both;
}

@media (min-width: 720px) {
  body.woocommerce-account .woocommerce-Addresses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
}

body.woocommerce-account .woocommerce-Address {
  margin: 0;
  padding: 24px;
  padding: var(--space-5);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  background: #ffffff;
  background: var(--white);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-sm);
}

body.woocommerce-account .woocommerce-Address .woocommerce-Address-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  gap: var(--space-3);
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  padding-bottom: 12px;
  padding-bottom: var(--space-3);
  border-bottom: 1px solid #e2e8f0;
  border-bottom: 1px solid var(--slate-200);
}

body.woocommerce-account .woocommerce-Address .woocommerce-Address-title h3 {
  margin: 0;
  font-size: 18px;
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

body.woocommerce-account .woocommerce-Address .woocommerce-Address-title .edit {
  margin: 0;
  padding: 6px 14px;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #015497;
  color: var(--biolase-700);
  background: #f8fafc;
  background: var(--slate-50);
  transition:
    border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

body.woocommerce-account .woocommerce-Address .woocommerce-Address-title .edit:hover {
  border-color: #a5c6ee;
  border-color: var(--biolase-300);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #08437e;
  color: var(--biolase-800);
}

body.woocommerce-account .woocommerce-Address address {
  margin: 0;
  font-style: normal;
  font-size: 14px;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: #334155;
  color: var(--slate-700);
}

/* Select2 (state / country fields) — match WC form controls */

body.woocommerce-account .woocommerce-input-wrapper .select2-container,
body.woocommerce-checkout .woocommerce-input-wrapper .select2-container,
body.woocommerce-cart .woocommerce-input-wrapper .select2-container {
  width: 100% !important;
  max-width: 100%;
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single {
  height: auto;
  min-height: 46px;
  padding: 0;
  border: 1px solid #94a3b8;
  border: 1px solid var(--slate-400);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #f8fafc;
  background: var(--slate-50);
  transition: border-color 0.15s ease;
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--open
  .select2-selection--single,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--open
  .select2-selection--single,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--open
  .select2-selection--single {
  border-color: #5c93cb;
  border-color: var(--biolase-500);
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  padding: 12px 40px 12px 16px;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.45;
  color: #0f172a;
  color: var(--slate-900);
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 100%;
  top: 0;
  right: 8px;
  width: 28px;
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  b,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  b,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  b {
  border-color: #475569 transparent transparent transparent;
  border-color: var(--slate-600) transparent transparent transparent;
}

body.woocommerce-account
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--focus
  .select2-selection--single,
body.woocommerce-checkout
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--focus
  .select2-selection--single,
body.woocommerce-cart
  .woocommerce-input-wrapper
  .select2-container--default.select2-container--focus
  .select2-selection--single {
  outline: 2px solid #a5c6ee;
  outline: 2px solid var(--biolase-300);
  outline-offset: 2px;
  border-color: #5c93cb;
  border-color: var(--biolase-500);
}

body.woocommerce-account .select2-dropdown,
body.woocommerce-checkout .select2-dropdown,
body.woocommerce-cart .select2-dropdown {
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #1e293b;
  color: var(--slate-800);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  box-shadow: var(--shadow-md);
}

body.woocommerce-account
  .select2-container--default
  .select2-results__option--highlighted[aria-selected],
body.woocommerce-checkout
  .select2-container--default
  .select2-results__option--highlighted[aria-selected],
body.woocommerce-cart
  .select2-container--default
  .select2-results__option--highlighted[aria-selected] {
  background: #2f73b1;
  background: var(--biolase-600);
  color: #fff;
}

body.woocommerce-account
  .select2-container--default
  .select2-search--dropdown
  .select2-search__field,
body.woocommerce-checkout
  .select2-container--default
  .select2-search--dropdown
  .select2-search__field,
body.woocommerce-cart .select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #cbd5e1;
  border: 1px solid var(--slate-300);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
}

/* ─────────── Cart ─────────── */

body.woocommerce-cart .woocommerce {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) var(--gutter-x) max(48px, min(8vw, 96px));
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  margin-top: 32px;
  margin-top: var(--space-6);
  padding: 24px;
  padding: var(--space-5);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  background: #f8fafc;
  background: var(--slate-50);
}

body.woocommerce-cart .cart-collaterals .cart_totals h2 {
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  font-size: 18px;
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

body.woocommerce-cart .coupon {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  gap: var(--space-3);
  margin-bottom: 24px;
  margin-bottom: var(--space-5);
}

body.woocommerce-cart .coupon .input-text {
  flex: 1 1 200px;
  max-width: 320px;
}

/* ─────────── Checkout (classic) ─────────── */

body.woocommerce-checkout .woocommerce {
  max-width: 1440px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) max(16px, min(4vw, 128px)) max(48px, min(8vw, 96px));
  padding: max(24px, min(4vw, 48px)) var(--gutter-x) max(48px, min(8vw, 96px));
}

body.woocommerce-checkout #customer_details {
  margin-bottom: 32px;
  margin-bottom: var(--space-6);
}

body.woocommerce-checkout #order_review_heading {
  margin: 32px 0 12px;
  margin: var(--space-6) 0 var(--space-3);
  font-size: 20px;
  font-size: var(--fs-xl);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

body.woocommerce-checkout #payment {
  margin-top: 24px;
  margin-top: var(--space-5);
  padding: 24px;
  padding: var(--space-5);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 16px;
  border-radius: var(--radius-md);
  background: #f8fafc;
  background: var(--slate-50);
}

body.woocommerce-checkout #payment ul.payment_methods {
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  padding: 0;
  list-style: none;
  border-bottom: 1px solid #e2e8f0;
  border-bottom: 1px solid var(--slate-200);
}

body.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0;
  margin: var(--space-3) 0;
  padding: 12px;
  padding: var(--space-3);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #ffffff;
  background: var(--white);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #334155;
  color: var(--slate-700);
}

/* ─────────── Block checkout / cart (Woo Blocks) ─────────── */

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.woocommerce-cart .wc-block-components-text-input input {
  border: 1px solid #94a3b8 !important;
  border: 1px solid var(--slate-400) !important;
  border-radius: 8px !important;
  border-radius: var(--radius-sm) !important;
  background: #f8fafc !important;
  background: var(--slate-50) !important;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif !important;
  font-family: var(--font-sans) !important;
}

body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-cart .wc-block-components-button:not(.is-link) {
  min-height: 40px;
  min-height: var(--btn-h);
  padding: 0 24px !important;
  padding: 0 var(--space-5) !important;
  border-radius: 8px !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

body.woocommerce-checkout .wc-block-checkout__actions .wc-block-components-button,
body.woocommerce-cart .wc-block-cart__submit-button {
  background: #015497 !important;
  background: var(--biolase-700) !important;
  color: #fff !important;
}

body.woocommerce-checkout .wc-block-checkout__actions .wc-block-components-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:hover {
  background: #08437e !important;
  background: var(--biolase-800) !important;
}

body.woocommerce-checkout .wc-block-components-sidebar-layout,
body.woocommerce-cart .wc-block-cart {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  color: #1e293b;
  color: var(--slate-800);
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-checkout .wc-block-components-panel {
  border-color: #e2e8f0 !important;
  border-color: var(--slate-200) !important;
  border-radius: 16px !important;
  border-radius: var(--radius-md) !important;
}

/* ─────────── Shop archive chrome ─────────── */

body.post-type-archive-product
  .section--shop-products
  .container, body.tax-product_cat
  .section--shop-products
  .container, body.tax-product_tag
  .section--shop-products
  .container, body[class*='tax-pa_'] .section--shop-products .container {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 12px;
  grid-gap: var(--space-3);
  gap: 12px;
  gap: var(--space-3);
  align-items: start;
}

body.post-type-archive-product
  .section--shop-products
  .container
  > .woocommerce-notices-wrapper, body.tax-product_cat
  .section--shop-products
  .container
  > .woocommerce-notices-wrapper, body.tax-product_tag
  .section--shop-products
  .container
  > .woocommerce-notices-wrapper, body[class*='tax-pa_'] .section--shop-products .container > .woocommerce-notices-wrapper, body.post-type-archive-product
  .section--shop-products
  .container
  > .shop-result-count, body.tax-product_cat
  .section--shop-products
  .container
  > .shop-result-count, body.tax-product_tag
  .section--shop-products
  .container
  > .shop-result-count, body[class*='tax-pa_'] .section--shop-products .container > .shop-result-count, body.post-type-archive-product
  .section--shop-products
  .container
  > .product-grid, body.tax-product_cat
  .section--shop-products
  .container
  > .product-grid, body.tax-product_tag
  .section--shop-products
  .container
  > .product-grid, body[class*='tax-pa_'] .section--shop-products .container > .product-grid, body.post-type-archive-product
  .section--shop-products
  .container
  > .shop-load-more, body.tax-product_cat
  .section--shop-products
  .container
  > .shop-load-more, body.tax-product_tag
  .section--shop-products
  .container
  > .shop-load-more, body[class*='tax-pa_'] .section--shop-products .container > .shop-load-more, body.post-type-archive-product
  .section--shop-products
  .container
  > .woocommerce-pagination, body.tax-product_cat
  .section--shop-products
  .container
  > .woocommerce-pagination, body.tax-product_tag
  .section--shop-products
  .container
  > .woocommerce-pagination, body[class*='tax-pa_'] .section--shop-products .container > .woocommerce-pagination {
  grid-column: 1 / -1;
}

body.post-type-archive-product .shop-result-count, body.tax-product_cat .shop-result-count, body.tax-product_tag .shop-result-count, body[class*='tax-pa_'] .shop-result-count {
  margin: 0 0 8px;
  margin: 0 0 var(--space-2);
}

body.post-type-archive-product .shop-result-count .woocommerce-result-count, body.tax-product_cat .shop-result-count .woocommerce-result-count, body.tax-product_tag .shop-result-count .woocommerce-result-count, body[class*='tax-pa_'] .shop-result-count .woocommerce-result-count {
  margin: 0;
}

body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count,
body[class*='tax-pa_'] .woocommerce-result-count,
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering,
body[class*='tax-pa_'] .woocommerce-ordering {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #475569;
  color: var(--slate-600);
}

/* Catalog sort control (toolbar + optional elsewhere). */

.section--shop-filters .shop-ordering {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  gap: var(--space-2);
  width: 100%;
  margin: 0;
}

.section--shop-filters .shop-ordering__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.section--shop-filters .shop-ordering__inner {
  display: flex;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
  min-width: 0;
  width: 100%;
  min-height: 40px;
  min-height: var(--btn-h);
  padding: 0 12px 0 14px;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: #f1f5f9;
  background: var(--slate-100);
  box-sizing: border-box;
}

.section--shop-filters .shop-ordering__sort-ico {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  color: #64748b;
  color: var(--slate-500);
}

.section--shop-filters .shop-ordering__sort-ico-svg {
  color: inherit;
}

.section--shop-filters .shop-ordering select.orderby {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  min-height: calc(40px - 2px);
  min-height: calc(var(--btn-h) - 2px);
  margin: 0;
  padding: 8px 36px 8px 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 2px center;
  background-size: 16px;
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #1e293b;
  color: var(--slate-800);
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}

.section--shop-filters .shop-ordering select.orderby::-ms-expand {
  display: none;
}

.section--shop-filters .shop-ordering select.orderby:focus {
  outline: none;
}

.section--shop-filters .shop-ordering select.orderby:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #a5c6ee;
  box-shadow: 0 0 0 2px var(--biolase-300);
  border-radius: 8px;
  border-radius: var(--radius-sm);
}

@media (min-width: 720px) {
  .section--shop-filters .shop-ordering {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    gap: var(--space-3);
    width: auto;
  }

  .section--shop-filters .shop-ordering__label {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: nowrap;
    font-weight: 500;
    color: #475569;
    color: var(--slate-600);
    cursor: default;
  }

  .section--shop-filters .shop-ordering__sort-ico {
    display: none;
  }

  .section--shop-filters .shop-ordering__inner {
    flex: 0 1 auto;
    width: auto;
    min-width: min(240px, 42vw);
    max-width: 320px;
    padding: 0 12px 0 16px;
  }

  .section--shop-filters .shop-ordering select.orderby {
    padding: 8px 36px 8px 0;
  }
}

body.post-type-archive-product
  .section--shop-products
  .product-grid, body.tax-product_cat
  .section--shop-products
  .product-grid, body.tax-product_tag
  .section--shop-products
  .product-grid, body[class*='tax-pa_'] .section--shop-products .product-grid {
  display: grid;
  /* <768: 1 col; 768: 2; 1024: 3; 1280: 4 (matches layout.css .product-grid) */
  grid-template-columns: minmax(0, 1fr);
  grid-gap: max(20px, min(4vw, 32px));
  gap: max(20px, min(4vw, 32px));
}

@media (min-width: 720px) {
  body.post-type-archive-product
    .section--shop-products
    .product-grid, body.tax-product_cat
    .section--shop-products
    .product-grid, body.tax-product_tag
    .section--shop-products
    .product-grid, body[class*='tax-pa_'] .section--shop-products .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  body.post-type-archive-product
    .section--shop-products
    .product-grid, body.tax-product_cat
    .section--shop-products
    .product-grid, body.tax-product_tag
    .section--shop-products
    .product-grid, body[class*='tax-pa_'] .section--shop-products .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  body.post-type-archive-product
    .section--shop-products
    .product-grid, body.tax-product_cat
    .section--shop-products
    .product-grid, body.tax-product_tag
    .section--shop-products
    .product-grid, body[class*='tax-pa_'] .section--shop-products .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.shop-load-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  gap: var(--space-3);
  margin-top: 64px;
  margin-top: var(--space-8);
}

.shop-load-more__sentinel {
  height: 1px;
  width: 100%;
  max-width: 12rem;
  pointer-events: none;
}

.shop-load-more__btn {
  min-width: min(100%, 14rem);
}

.shop-load-more.is-near-end .shop-load-more__btn {
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1),
    0 0 0 3px #a5c6ee;
  box-shadow:
    var(--shadow-sm),
    0 0 0 3px var(--biolase-300);
}

body.post-type-archive-product .woocommerce-pagination ul,
body.tax-product_cat .woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  gap: var(--space-2);
  justify-content: center;
  margin: 32px 0 0;
  margin: var(--space-6) 0 0;
  padding: 0;
  list-style: none;
  border: 0;
}

body.post-type-archive-product .woocommerce-pagination ul li,body.tax-product_cat .woocommerce-pagination ul li {
    border: 0;
  }

body.post-type-archive-product .woocommerce-pagination ul li a,
body.post-type-archive-product .woocommerce-pagination ul li span,
body.tax-product_cat .woocommerce-pagination ul li a,
body.tax-product_cat .woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-width: var(--btn-h);
  height: 40px;
  height: var(--btn-h);
  padding: 0 12px;
  padding: 0 var(--space-3);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #334155;
  color: var(--slate-700);
  background: #ffffff;
  background: var(--white);
  -webkit-text-decoration: none;
  text-decoration: none;
}

body.post-type-archive-product .woocommerce-pagination ul li span.current,
body.tax-product_cat .woocommerce-pagination ul li span.current {
  border-color: #5c93cb;
  border-color: var(--biolase-500);
  background: #f0f9ff;
  background: var(--biolase-50);
  color: #103166;
  color: var(--biolase-900);
}

body.post-type-archive-product .woocommerce-pagination ul li a:hover,
body.tax-product_cat .woocommerce-pagination ul li a:hover {
  border-color: #a5c6ee;
  border-color: var(--biolase-300);
  color: #08437e;
  color: var(--biolase-800);
}

body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.single-product .woocommerce-breadcrumb {
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  font-size: 14px;
  font-size: var(--fs-sm);
  color: #475569;
  color: var(--slate-600);
}

body.post-type-archive-product .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb a,
body.single-product .woocommerce-breadcrumb a {
  color: #015497;
  color: var(--biolase-700);
  -webkit-text-decoration: none;
  text-decoration: none;
}

/* ─────────── Single product ─────────── */

body.single-product .section--single-product {
  padding-bottom: max(48px, min(8vw, 96px));
  overflow-x: hidden;
}

@media (min-width: 720px) {
  body.single-product .section--single-product {
    overflow-x: visible;
  }
}

body.single-product .chip-row--product-cats {
  gap: 10px 12px;
  margin-bottom: 24px;
  margin-bottom: var(--space-5);
  padding-top: 12px;
  padding-top: var(--space-3);
}

body.single-product .chip-row--product-cats .chip {
  min-height: 40px;
  border-radius: 8px;
  border-radius: var(--radius-sm);
  background: transparent;
  border-color: transparent;
  color: #475569;
  color: var(--slate-600);
  font-weight: 500;
  padding-left: 10px;
  padding-right: 10px;
}

body.single-product .chip-row--product-cats .chip:hover {
  background: #f1f5f9;
  background: var(--slate-100);
  color: #1e293b;
  color: var(--slate-800);
}

body.single-product .chip-row--product-cats .chip.is-active {
  background: transparent;
  border-color: transparent;
  color: #2f73b1;
  color: var(--biolase-600);
  font-weight: 700;
}

body.single-product .chip-row--product-cats .chip__ico {
  flex-shrink: 0;
  color: inherit;
}

body.single-product .chip-row--product-cats .chip--folder .chip__ico {
  color: #475569;
  color: var(--slate-600);
}

body.single-product .chip-row--product-cats .chip.is-active .chip__ico {
  color: #2f73b1;
  color: var(--biolase-600);
}

@media (min-width: 720px) {
  body.single-product .chip-row--product-cats .chip:not(.is-active) {
    background: #f1f5f9;
    background: var(--slate-100);
    color: #334155;
    color: var(--slate-700);
    border-color: transparent;
    font-weight: 500;
    padding-left: 16px;
    padding-right: 16px;
  }

  body.single-product .chip-row--product-cats .chip--folder:not(.is-active) {
    background: #f8fafc;
    background: var(--slate-50);
    border-color: #e2e8f0;
    border-color: var(--slate-200);
    color: #334155;
    color: var(--slate-700);
  }

  body.single-product .chip-row--product-cats .chip.is-active {
    background: #015497;
    background: var(--biolase-700);
    color: #fff;
    border-color: #015497;
    border-color: var(--biolase-700);
    font-weight: 500;
    padding-left: 16px;
    padding-right: 16px;
  }

  body.single-product .chip-row--product-cats .chip.is-active .chip__ico {
    color: #fff;
  }
}

/* Product gallery panel */

body.single-product .woocommerce-product-gallery {
  background: #f1f5f9;
  background: var(--slate-100);
  border-radius: 16px;
  border-radius: var(--radius-md);
  padding: max(16px, min(4vw, 28px));
}

body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .flex-viewport {
  background: transparent;
}

body.single-product .flex-viewport {
  display: flex;
  align-items: center;
  justify-content: center;
}

body.single-product .woocommerce-product-gallery__image img {
  margin-left: auto;
  margin-right: auto;
}

body.single-product div.product {
  font-family: 'DM Sans', 'Helvetica Neue', arial, sans-serif;
  font-family: var(--font-sans);
  color: #1e293b;
  color: var(--slate-800);
}

body.single-product .product-meta-sku {
  margin: 0 0 8px;
  margin: 0 0 var(--space-2);
  font-size: 14px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: #64748b;
  color: var(--slate-500);
  letter-spacing: 0.02em;
}

body.single-product .product-meta-sku__value {
  color: #475569;
  color: var(--slate-600);
  font-weight: 600;
}

body.single-product .product_title {
  margin: 0 0 12px;
  margin: 0 0 var(--space-3);
  font-size: 30px;
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: #103166;
  color: var(--biolase-900);
  line-height: 1.15;
}

@media (min-width: 720px) {
  body.single-product .product_title {
    font-size: 36px;
    font-size: var(--fs-4xl);
  }
}

body.single-product .woocommerce-product-details__short-description {
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.6;
  color: #334155;
  color: var(--slate-700);
}

body.single-product p.price,
body.single-product span.price {
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  font-size: 20px;
  font-size: var(--fs-xl);
  font-weight: 700;
  color: #64748b;
  color: var(--slate-500);
}

body.single-product p.price .woocommerce-Price-amount,
body.single-product span.price .woocommerce-Price-amount {
  color: #64748b;
  color: var(--slate-500);
}

/* Quantity stepper + cart layout */

body.single-product form.cart,
body.single-product .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  gap: var(--space-3);
  margin-bottom: 32px;
  margin-bottom: var(--space-6);
}

@media (max-width: 719.98px) {
  body.single-product form.cart,
  body.single-product .woocommerce-variation-add-to-cart {
    flex-direction: column;
    align-items: stretch;
  }

  body.single-product form.cart .quantity,
  body.single-product .woocommerce-variation-add-to-cart .quantity {
    width: 100%;
    max-width: none;
  }

  body.single-product form.cart .single_add_to_cart_button,
  body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    width: 100%;
    flex: 1 1 auto;
  }
}

body.single-product .cart .quantity .qty,
body.single-product .woocommerce-variation-add-to-cart .quantity .qty {
  max-width: none;
  text-align: center;
}

body.single-product .quantity {
  position: relative;
}

body.single-product .qty-stepper__inner {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: #ffffff;
  background: var(--white);
  min-height: 40px;
  min-height: var(--btn-h);
}

body.single-product .qty-stepper__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  flex-shrink: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: #f8fafc;
  background: var(--slate-50);
  color: #1e293b;
  color: var(--slate-800);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background-color 150ms ease;
}

body.single-product .qty-stepper__btn:hover {
  background: #f1f5f9;
  background: var(--slate-100);
}

body.single-product .qty-stepper__btn:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px #a5c6ee;
  box-shadow: inset 0 0 0 2px var(--biolase-300);
  z-index: 1;
}

body.single-product .qty-stepper__btn--minus {
  border-right: 1px solid #e2e8f0;
  border-right: 1px solid var(--slate-200);
}

body.single-product .qty-stepper__btn--plus {
  border-left: 1px solid #e2e8f0;
  border-left: 1px solid var(--slate-200);
}

body.single-product .qty-stepper .qty {
  flex: 1 1 3.5rem;
  min-width: 3rem;
  max-width: 5rem;
  height: 40px;
  height: var(--btn-h);
  margin: 0;
  border: 0;
  border-radius: 0;
  text-align: center;
  font-weight: 600;
  font-size: 16px;
  font-size: var(--fs-base);
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

body.single-product .qty-stepper .qty::-webkit-outer-spin-button,
body.single-product .qty-stepper .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
  margin: 0;
}

body.single-product .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  gap: var(--space-3);
  flex: 1 1 auto;
  min-height: 40px;
  min-height: var(--btn-h);
  padding-left: 24px;
  padding-right: 24px;
  padding-left: var(--space-5);
  padding-right: var(--space-5);
}

body.single-product .single_add_to_cart_button__icons {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

body.single-product .single_add_to_cart_button__icon-cart.ico,
body.single-product .single_add_to_cart_button__icon-plus.ico {
  color: #fff;
}

body.single-product .single_add_to_cart_button__label {
  font-weight: 700;
  letter-spacing: 0.04em;
}

body.single-product table.variations {
  width: 100%;
  max-width: 420px;
  margin-bottom: 16px;
  margin-bottom: var(--space-4);
  border-collapse: collapse;
}

body.single-product table.variations th,
body.single-product table.variations td {
  padding: 8px 8px 8px 0;
  padding: var(--space-2) var(--space-2) var(--space-2) 0;
  vertical-align: middle;
}

body.single-product table.variations label {
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  color: #525252;
  color: var(--neutral-600);
}

.woo-details {
  margin-top: 48px;
  margin-top: var(--space-7);
  padding-top: 32px;
  padding-top: var(--space-6);
  border-top: 1px solid #e2e8f0;
  border-top: 1px solid var(--slate-200);
}

.woo-details__section {
  margin-bottom: 48px;
  margin-bottom: var(--space-7);
}

.woo-details__section:last-child {
  margin-bottom: 0;
}

.woo-details__heading {
  margin: 0 0 16px;
  margin: 0 0 var(--space-4);
  font-size: 18px;
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

.woo-details__body {
  font-size: 16px;
  font-size: var(--fs-base);
  line-height: 1.65;
  color: #334155;
  color: var(--slate-700);
}

.woo-details__body > :first-child {
  margin-top: 0;
}

.woo-details .woocommerce-product-attributes {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 14px;
  font-size: var(--fs-sm);
}

.woo-details .woocommerce-product-attributes th,
.woo-details .woocommerce-product-attributes td {
  padding: 12px 16px;
  padding: var(--space-3) var(--space-4);
  border: 1px solid #e2e8f0;
  border: 1px solid var(--slate-200);
  text-align: left;
  vertical-align: top;
}

.woo-details .woocommerce-product-attributes th {
  width: 30%;
  font-size: 12px;
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  color: #525252;
  color: var(--neutral-600);
  background: #f8fafc;
  background: var(--slate-50);
}

body.single-product .woocommerce-tabs {
  display: none;
}

/* Related / upsells spacing */

body.single-product .related.products,
body.single-product .upsells.products {
  margin-top: 64px;
  margin-top: var(--space-8);
  padding-top: 32px;
  padding-top: var(--space-6);
  border-top: 1px solid #e2e8f0;
  border-top: 1px solid var(--slate-200);
}

body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
  margin: 0 0 24px;
  margin: 0 0 var(--space-5);
  font-size: 24px;
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: #0f172a;
  color: var(--slate-900);
}

@media (min-width: 1440px) {
  body.single-product .related.products .product-strip .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}


/*# sourceMappingURL=appCss.BUsburqj.css.map */