/* SASALELE BEM CSS - Dra Flávia (1:1 Fidelidade) */
:root {
  /* Colors */
  --color-on-primary: #ffffff;
  --color-primary-container: #b85854;
  --color-surface-dim: #d8dadf;
  --color-on-primary-fixed: #410005;
  --color-on-primary-container: #fffdff;
  --color-error-container: #ffdad6;
  --color-error: #ba1a1a;
  --color-primary-fixed: #ffdad7;
  --color-on-tertiary-fixed-variant: #773120;
  --color-secondary-fixed: #ffd6fb;
  --color-secondary-container: #fcd3f9;
  --color-primary-fixed-dim: #ffb3ae;
  --color-surface-bright: #f8f9fe;
  --color-surface-container-highest: #e1e2e7;
  --color-surface-container-lowest: #ffffff;
  --color-on-tertiary-container: #fffdff;
  --color-on-surface: #191c20;
  --color-outline: #887270;
  --color-on-secondary-container: #795878;
  --color-on-error: #ffffff;
  --color-secondary: #745473;
  --color-tertiary-fixed: #ffdad2;
  --color-on-primary-fixed-variant: #7d2b2a;
  --color-on-surface-variant: #554241;
  --color-on-secondary-fixed-variant: #5b3c5b;
  --color-on-tertiary-fixed: #3d0600;
  --color-inverse-on-surface: #eff1f6;
  --color-on-secondary-fixed: #2b112d;
  --color-inverse-surface: #2e3135;
  --color-surface: #f8f9fe;
  --color-tertiary: #934634;
  --color-surface-variant: #e1e2e7;
  --color-background: #f8f9fe;
  --color-inverse-primary: #ffb3ae;
  --color-tertiary-container: #b25e4a;
  --color-on-tertiary: #ffffff;
  --color-tertiary-fixed-dim: #ffb4a3;
  --color-surface-container-low: #f2f3f9;
  --color-surface-container: #eceef3;
  --color-primary: #99403d;
  --color-surface-tint: #9b423f;
  --color-on-secondary: #ffffff;
  --color-outline-variant: #dbc0be;
  --color-surface-container-high: #e6e8ed;
  --color-secondary-fixed-dim: #e2badf;
  --color-on-error-container: #93000a;
  --color-on-background: #191c20;

  /* Spacing */
  --spacing-gutter-mobile: 1rem;
  --spacing-space-xs: 0.25rem;
  --spacing-margin-mobile: 1.25rem;
  --spacing-space-2xl: 4rem;
  --spacing-margin: 3rem;
  --spacing-space-lg: 1.5rem;
  --spacing-space-sm: 0.5rem;
  --spacing-space-md: 1rem;
  --spacing-space-xl: 2.5rem;
  --spacing-gutter: 1.5rem;

  /* Font Families */
  --font-label-sm: "Plus Jakarta Sans", sans-serif;
  --font-headline-md: "Playfair Display", serif;
  --font-headline-lg-mobile: "Playfair Display", serif;
  --font-body-lg: "Plus Jakarta Sans", sans-serif;
  --font-headline-sm: "Playfair Display", serif;
  --font-headline-lg: "Playfair Display", serif;
  --font-display-hero-mobile: "Playfair Display", serif;
  --font-title-md: "Plus Jakarta Sans", sans-serif;
  --font-body-sm: "Plus Jakarta Sans", sans-serif;
  --font-display-hero: "Playfair Display", serif;
  --font-label-md: "Plus Jakarta Sans", sans-serif;
  --font-body-md: "Plus Jakarta Sans", sans-serif;

  /* Font Sizes */
  --text-label-sm-size: 0.75rem;
  --text-headline-md-size: 2rem;
  --text-headline-lg-mobile-size: 1.75rem;
  --text-body-lg-size: 1.125rem;
  --text-headline-sm-size: 1.375rem;
  --text-headline-lg-size: 2.5rem;
  --text-display-hero-mobile-size: 2.25rem;
  --text-title-md-size: 1.125rem;
  --text-body-sm-size: 0.875rem;
  --text-display-hero-size: 3.5rem;
  --text-label-md-size: 0.875rem;
  --text-body-md-size: 1rem;

  /* Font Line Heights (lh) */
  --text-label-sm-lh: 1rem;
  --text-headline-md-lh: 2.5rem;
  --text-headline-lg-mobile-lh: 2.25rem;
  --text-body-lg-lh: 1.875rem;
  --text-headline-sm-lh: 1.875rem;
  --text-headline-lg-lh: 3rem;
  --text-display-hero-mobile-lh: 2.75rem;
  --text-title-md-lh: 1.625rem;
  --text-body-sm-lh: 1.375rem;
  --text-display-hero-lh: 4.25rem;
  --text-label-md-lh: 1.25rem;
  --text-body-md-lh: 1.625rem;

  /* Font Weights */
  --text-label-sm-weight: 600;
  --text-headline-md-weight: 500;
  --text-headline-lg-mobile-weight: 600;
  --text-body-lg-weight: 400;
  --text-headline-sm-weight: 600;
  --text-headline-lg-weight: 600;
  --text-display-hero-mobile-weight: 600;
  --text-title-md-weight: 600;
  --text-body-sm-weight: 400;
  --text-display-hero-weight: 600;
  --text-label-md-weight: 600;
  --text-body-md-weight: 400;

  /* Font Letter Spacing (ls) */
  --text-label-sm-ls: 0.05em;
  --text-headline-md-ls: normal;
  --text-headline-lg-mobile-ls: normal;
  --text-body-lg-ls: normal;
  --text-headline-sm-ls: normal;
  --text-headline-lg-ls: -0.015em;
  --text-display-hero-mobile-ls: -0.01em;
  --text-title-md-ls: normal;
  --text-body-sm-ls: normal;
  --text-display-hero-ls: -0.02em;
  --text-label-md-ls: 0.02em;
  --text-body-md-ls: normal;
}

/* Reset & Utilities */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body-md);
  font-size: 1rem;
  line-height: 1.625rem;
  font-weight: 400;
  background-color: var(--color-background);
  color: var(--color-on-surface);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
}

/* Base Utility Helpers to map Tailwind functions easily */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.hidden { display: none; }
.block { display: block; }
.relative { position: relative; }
.absolute { position: absolute; }
.w-full { width: 100%; }
.h-full { height: 100%; }

/* ==============================================
   TOP BAR DINÂMICA (HUB SEO)
   ============================================== */
.sasalele-topbar {
    position: relative;
    z-index: 51;
    background-color: var(--color-primary);
    color: var(--color-on-primary);
    padding: 8px 0;
    font-family: var(--font-label-sm);
    font-size: 0.75rem;
}
.sasalele-topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .sasalele-topbar-inner {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}
.sasalele-topbar-status {
    display: flex;
    align-items: center;
    gap: 8px;
}
.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #ccc;
}
.status-dot.open { background-color: #4CAF50; }
.status-dot.closed { background-color: #F44336; }

.status-text-wrapper {
    position: relative;
    cursor: help;
}
.status-text-wrapper:hover #hoursTooltip {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.sasalele-tooltip {
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 15px;
    background-color: var(--color-surface-container-lowest);
    color: var(--color-on-surface);
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    min-width: 220px;
    z-index: 10000;
    border: 1px solid rgba(219, 192, 190, 0.3);
}
.hours-day {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
    font-size: 0.75rem;
}

.sasalele-topbar-contact {
    display: flex;
    align-items: center;
    gap: 15px;
}
.sasalele-topbar-socials {
    display: flex;
    align-items: center;
    gap: 12px;
}
.sasalele-topbar-divider {
    width: 1px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.3);
}
.sasalele-topbar-link {
    color: var(--color-on-primary);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.sasalele-topbar-link svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.3s ease;
}
.sasalele-topbar-link:hover {
    opacity: 0.8;
    transform: scale(1.05);
}

@media (max-width: 480px) {
  .sasalele-topbar-inner {
    flex-direction: column;
    gap: 8px;
  }
}

/* --- BEM Classes for Header --- */
.header {
  background-color: var(--color-surface-container-lowest);
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(219, 192, 190, 0.3); /* outline-variant/30 */
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */
  transition: all 0.3s;
}

.header__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem; /* px-6 */
  padding-right: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 5rem; /* h-20 */
}

@media (min-width: 768px) {
  .header__container {
    padding-left: 3rem; /* md:px-12 */
    padding-right: 3rem;
  }
}

.header__brand {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

.header__brand-title {
  font-family: var(--font-headline-sm);
  font-size: 1.375rem;
  line-height: 1.875rem;
  font-weight: 600;
  color: var(--color-primary);
  letter-spacing: -0.015em; /* tracking-tight */
  white-space: nowrap;
}

.header__brand-subtitle {
  font-family: var(--font-label-sm);
  font-size: 5px; /* as inline styled */
  line-height: 1rem;
  font-weight: 600;
  color: var(--color-on-surface-variant);
  letter-spacing: 0.05em; /* tracking-wider */
  text-transform: uppercase;
  white-space: nowrap;
}

.header__nav {
  display: none;
}

@media (min-width: 1024px) {
  .header__nav {
    display: flex;
    align-items: center;
    gap: 1.5rem; /* gap-6 */
    flex-shrink: 0;
  }
}

.header__nav-link {
  font-family: var(--font-label-md);
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: var(--color-on-surface-variant);
  letter-spacing: 0.02em;
  transition: color 0.2s;
  padding-bottom: 0.25rem; /* pb-1 */
  white-space: nowrap;
}

.header__nav-link:hover {
  color: var(--color-primary);
}

.header__nav-link--active {
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
}

.header__cta-wrapper {
  display: none;
}

@media (min-width: 640px) {
  .header__cta-wrapper {
    display: flex;
    align-items: center;
    gap: 0.75rem; /* gap-3 */
    flex-shrink: 0;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem; /* rounded-lg */
  transition: all 0.2s;
  cursor: pointer;
  border: none;
}

.btn--primary {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
  font-family: var(--font-label-md);
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  padding: 0.625rem 1.25rem; /* py-2.5 px-5 */
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.btn--primary:hover {
  background-color: var(--color-primary-container);
}

.btn--primary:active {
  transform: scale(0.98);
}

.header__mobile-toggle {
  display: flex;
  flex-shrink: 0;
  padding: 0.5rem;
  border-radius: 0.5rem;
  color: var(--color-on-surface-variant);
  border: none;
  background: transparent;
  cursor: pointer;
}

.header__mobile-toggle:hover {
  background-color: var(--color-surface-container);
}

@media (min-width: 1024px) {
  .header__mobile-toggle {
    display: none;
  }
}

.header__mobile-menu {
  display: block; /* toggled via JS */
  border-top: 1px solid rgba(219, 192, 190, 0.3);
  background-color: var(--color-surface-container-lowest);
  padding: 1.25rem 1.5rem; /* py-5 px-6 */
  overflow: hidden;
  max-height: 500px;
  opacity: 1;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.header__mobile-menu.hidden {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-top-color: transparent;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .header__mobile-menu { display: none !important; }
}

.header__mobile-menu-links {
  display: flex;
  flex-direction: column;
  row-gap: 0.75rem; /* space-y-3 */
  padding-bottom: 1rem; /* pb-4 */
}

.header__mobile-link {
  color: var(--color-on-surface-variant);
  font-family: var(--font-label-md);
  font-size: 0.875rem;
  font-weight: 600;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.header__mobile-link:hover { color: var(--color-primary); }
.header__mobile-link--active { color: var(--color-primary); }

.header__mobile-cta {
  width: 100%;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

/* --- BEM Classes for Hero --- */
.hero {
  position: relative;
  overflow: hidden;
  padding-top: 2rem; /* pt-8 */
  padding-bottom: 4rem; /* pb-16 */
}
@media (min-width: 768px) {
  .hero {
    padding-top: calc(4rem + 50px); /* Pushes content down but keeps background flush with header */
    padding-bottom: 6rem; /* md:pb-24 */
  }
}

.hero__bg-shape-1 {
  position: absolute;
  top: -8rem;
  right: -8rem;
  width: 24rem;
  height: 24rem;
  border-radius: 9999px;
  background-color: rgba(255, 214, 251, 0.3); /* secondary-fixed/30 */
  filter: blur(64px); /* blur-3xl */
  z-index: -10;
  pointer-events: none;
}

.hero__bg-shape-2 {
  position: absolute;
  top: 50%;
  left: -8rem;
  width: 20rem;
  height: 20rem;
  border-radius: 9999px;
  background-color: rgba(255, 218, 215, 0.4); /* primary-fixed/40 */
  filter: blur(64px);
  z-index: -10;
  pointer-events: none;
}

.hero__container {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .hero__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.hero__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 3rem; /* gap-12 */
  align-items: center;
}
@media (min-width: 1024px) {
  .hero__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}

.hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 1024px) {
  .hero__content {
    grid-column: span 7 / span 7;
  }
}

.hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.875rem; /* py-1.5 px-3.5 */
  border-radius: 9999px;
  background-color: var(--color-surface-container-low);
  border: 1px solid rgba(219, 192, 190, 0.4);
  margin-bottom: 1.5rem;
}

.hero__chip-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--color-primary);
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .5; }
}

.hero__chip-text {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  font-weight: var(--text-label-sm-weight);
  letter-spacing: var(--text-label-sm-tracking);
  color: var(--color-primary);
}

.hero__title {
  font-family: var(--font-headline-lg-mobile);
  font-size: var(--text-headline-lg-mobile-size);
  font-weight: var(--text-headline-lg-mobile-weight);
  line-height: var(--text-headline-lg-mobile-lh);
  letter-spacing: var(--text-headline-lg-mobile-ls);
  font-weight: var(--text-headline-lg-mobile-weight);
  line-height: var(--text-headline-lg-mobile-lh);
  color: var(--color-on-surface);
  letter-spacing: -0.015em;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .hero__title {
    font-family: var(--font-headline-lg);
    font-size: var(--text-headline-lg-size);
  font-weight: var(--text-headline-lg-weight);
  line-height: var(--text-headline-lg-lh);
  letter-spacing: var(--text-headline-lg-ls);
    font-weight: var(--text-headline-lg-weight);
    line-height: var(--text-headline-lg-lh);
  }
}

.hero__title-highlight {
  display: block;
  color: var(--color-primary);
  font-family: var(--font-headline-md); /* serif italic */
  font-style: italic;
  font-weight: 400;
  margin-top: 0.25rem;
}

.hero__desc {
  font-family: var(--font-body-lg);
  font-size: var(--text-body-lg-size);
  font-weight: var(--text-body-lg-weight);
  line-height: var(--text-body-lg-lh);
  letter-spacing: var(--text-body-lg-ls);
  color: var(--color-on-surface-variant);
  max-width: 42rem; /* max-w-2xl */
  margin-bottom: 2rem;
  line-height: 1.625;
}

.hero__actions {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 1rem;
  margin-bottom: 2.5rem; /* mb-10 */
}
@media (min-width: 640px) {
  .hero__actions {
    flex-direction: row;
    align-items: center;
    width: auto;
  }
}

.btn--lg {
  padding: 0.875rem 1.75rem; /* py-3.5 px-7 */
}

.btn--outline {
  background-color: var(--color-surface-container-lowest);
  color: var(--color-on-surface);
  border: 1px solid rgba(219, 192, 190, 0.6);
  padding: 0.875rem 1.5rem;
}
.btn--outline:hover {
  background-color: var(--color-surface-container-low);
}

.hero__badges {
  width: 100%;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(219, 192, 190, 0.3);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.hero__badge-val {
  font-family: var(--font-headline-sm);
  font-size: var(--text-headline-sm-size);
  font-weight: var(--text-headline-sm-weight);
  line-height: var(--text-headline-sm-lh);
  letter-spacing: var(--text-headline-sm-ls);
  font-weight: 700; /* font-bold */
  color: var(--color-primary);
}

.hero__badge-label {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface-variant);
}

.hero__visual {
  position: relative;
}
@media (min-width: 1024px) {
  .hero__visual {
    grid-column: span 5 / span 5;
  }
}

.hero__image-wrapper {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: 28rem;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-top: 2rem;
}
@media (min-width: 1024px) {
  .hero__image-wrapper { max-width: none; transform: translateX(20px); }
}

.hero__image-bg {
  position: absolute;
  bottom: 0;
  width: 88%;
  height: 480px;
  background: linear-gradient(to top, rgba(255,218,215,0.4), var(--color-surface-container-low), rgba(255,214,251,0.3));
  border-radius: 140px 140px 1rem 1rem; /* rounded-t-[140px] rounded-b-2xl */
  border: 1px solid rgba(219, 192, 190, 0.3);
  z-index: -10;
  box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
}

.hero__image-glow {
  position: absolute;
  bottom: -1.5rem;
  width: 18rem; /* w-72 */
  height: 4rem; /* h-16 */
  background-color: rgba(153, 64, 61, 0.1); /* primary/10 */
  border-radius: 9999px;
  filter: blur(24px); /* blur-xl */
  z-index: -10;
}

.hero__img-container {
  position: relative;
  z-index: 10;
  width: 100%;
  display: flex;
  justify-content: center;
}

.hero__img {
  height: 520px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: bottom;
  filter: drop-shadow(0 20px 13px rgba(0, 0, 0, 0.03)) drop-shadow(0 8px 5px rgba(0, 0, 0, 0.08));
  transform: scale(1.3);
  transform-origin: bottom center;
  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
  mask-image: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
}

.hero__float-card {
  position: absolute;
  bottom: 1rem;
  left: -1rem;
  z-index: 20;
  padding: 1rem;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(219, 192, 190, 0.4);
  display: flex;
  align-items: center;
  gap: 0.875rem;
  max-width: 20rem;
}

.hero__float-icon {
  width: 2.75rem; /* w-11 */
  height: 2.75rem;
  border-radius: 9999px;
  background-color: var(--color-primary-fixed);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  flex-shrink: 0;
}

.hero__float-title {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  font-weight: 600;
  line-height: 1.25;
}

.hero__float-subtitle {
  font-family: var(--font-body-sm);
  font-size: 0.75rem; /* text-xs */
  color: var(--color-on-surface-variant);
  margin-top: 0.125rem;
}

/* --- BEM Classes for Alerts Section --- */
.alerts {
  padding-top: 4rem; /* py-16 */
  padding-bottom: 4rem;
  background-image: linear-gradient(to bottom right, var(--color-primary-container), var(--color-primary));
  color: var(--color-on-primary);
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); /* shadow-inner */
}
@media (min-width: 768px) {
  .alerts {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.alerts__bg-glow-1 {
  position: absolute;
  top: -6rem; /* -top-24 */
  right: -6rem; /* -right-24 */
  width: 24rem; /* w-96 */
  height: 24rem; /* h-96 */
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.05); /* bg-white/5 */
  filter: blur(64px); /* blur-3xl */
  pointer-events: none;
}

.alerts__bg-glow-2 {
  position: absolute;
  bottom: -6rem;
  left: -6rem;
  width: 24rem;
  height: 24rem;
  border-radius: 9999px;
  background-color: rgba(0, 0, 0, 0.1); /* bg-black/10 */
  filter: blur(64px);
  pointer-events: none;
}

.alerts__container {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  position: relative;
  z-index: 10;
}
@media (min-width: 768px) {
  .alerts__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.alerts__header {
  text-align: center;
  max-width: 48rem; /* max-w-3xl */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.5rem; /* mb-14 */
}

.alerts__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em; /* tracking-widest */
  color: var(--color-secondary-fixed);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.alerts__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-primary);
  margin-bottom: 1rem;
  font-weight: 400; /* font-serif default */
}

.alerts__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: rgba(255, 255, 255, 0.9); /* text-white/90 */
}

.alerts__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
  .alerts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .alerts__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.alerts__card {
  background-color: rgba(255, 255, 255, 0.1); /* bg-white/10 */
  backdrop-filter: blur(12px); /* backdrop-blur-md */
  padding: 1.5rem; /* p-6 */
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(255, 255, 255, 0.2); /* border-white/20 */
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
}
.alerts__card:hover {
  background-color: rgba(255, 255, 255, 0.15); /* hover:bg-white/15 */
}

.alerts__icon-wrapper {
  width: 3rem; /* w-12 */
  height: 3rem;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--color-on-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem; /* mb-5 */
}

.alerts__card-title {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-primary);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.alerts__card-desc {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.625;
  margin-bottom: 1rem;
}

.alerts__link {
  display: inline-flex;
  align-items: center;
  color: var(--color-primary-fixed); /* text-[#ffdad7] */
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  font-weight: 600;
  transition: color 0.2s;
}
.alerts__link:hover {
  color: var(--color-on-primary);
}

/* --- BEM Classes for Services Section --- */
.services {
  padding-top: 4rem; /* py-16 */
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .services {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.services__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem; /* px-6 */
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .services__container {
    padding-left: 3rem; /* md:px-12 */
    padding-right: 3rem;
  }
}

.services__header {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; /* gap-6 */
  margin-bottom: 3.5rem; /* mb-14 */
}
@media (min-width: 768px) {
  .services__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.services__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em; /* tracking-widest */
  color: var(--color-primary);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.services__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400; /* font-serif default */
}

.services__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  max-width: 32rem; /* max-w-lg */
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
  .services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.services__card {
  background-color: var(--color-surface-container-lowest);
  padding: 1.75rem; /* p-7 */
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(219, 192, 190, 0.3); /* border-outline-variant/30 */
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); /* soft-tactile-shadow */
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.services__card:hover {
  border-color: rgba(153, 64, 61, 0.4); /* hover:border-primary/40 */
}

.services__card--featured {
  border: 2px solid rgba(153, 64, 61, 0.2); /* border-2 border-primary/20 */
  background: linear-gradient(to bottom, var(--color-surface-container-lowest), rgba(242, 243, 249, 0.4)); /* to-surface-container-low/40 */
}
.services__card--featured:hover {
  border-color: rgba(153, 64, 61, 0.5); /* hover:border-primary/50 */
}

.services__card-badge {
  position: absolute;
  top: 0;
  right: 0;
  background-color: var(--color-primary);
  color: var(--color-on-primary);
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  padding: 0.25rem 0.75rem; /* px-3 py-1 */
  border-bottom-left-radius: 0.5rem; /* rounded-bl-lg */
}

.services__card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.25rem; /* mb-5 */
}

.services__icon-wrapper {
  width: 3rem; /* w-12 */
  height: 3rem;
  border-radius: 0.5rem; /* rounded-lg */
  background-color: var(--color-surface-container);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.services__icon-wrapper--featured {
  background-color: var(--color-primary-fixed);
}

.services__tag {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: var(--color-on-surface-variant);
  background-color: var(--color-surface-container);
  padding: 0.25rem 0.625rem; /* px-2.5 py-1 */
  border-radius: 0.375rem; /* rounded-md */
}

.services__card-title {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.services__card-desc {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface-variant);
  line-height: 1.625;
  margin-bottom: 1.5rem; /* mb-6 */
}

.services__link {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  color: var(--color-primary);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: all 0.2s;
}

/* --- BEM Classes for CTA Banner --- */
.cta-banner {
  position: relative;
  overflow: hidden;
  padding-top: 5rem; /* py-20 */
  padding-bottom: 5rem;
}
@media (min-width: 768px) {
  .cta-banner {
    padding-top: 7rem; /* md:py-28 */
    padding-bottom: 7rem;
  }
}

.cta-banner__bg {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0; /* inset-0 */
  background-image: url("https://lh3.googleusercontent.com/aida/AEtjO1XK95rv_FtrxFc9g6E_BZIvlOjOXZqnStZSye-Z0m7JIGzVG8rzUQC3UnZfRSG6bChRg_zZgrdbO0fO1tnY8PYAlsfg9dq0cbiVghcdR1mOxIqc2U7NfFy8aEKU6fM4cDd4Bk-u0BWJoSzn173wwAdmJLgPhHY6T3ZHzzL2NGSnYUmZ2ngMbCExygI79HLw19K5Txf6BSOrWtX9yoSqPTz-7n-09QE9cilhZ43xHBOSKcQafDnuMZaBKFl5");
  background-attachment: fixed;
  background-size: cover;
  background-position: center center;
}

.cta-banner__gradient {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: linear-gradient(to right, rgba(255, 218, 215, 0.95), rgba(255, 218, 210, 0.9), rgba(255, 214, 251, 0.85)); /* from-[#ffdad7]/95 via-[#ffdad2]/90 to-[#ffd6fb]/85 */
}

.cta-banner__blur {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(1px);
}

.cta-banner__container {
  position: relative;
  max-width: 64rem; /* max-w-5xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  text-align: center;
  color: var(--color-on-surface);
  z-index: 10;
}

.cta-banner__pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 1rem; /* px-4 py-1.5 */
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.8); /* bg-surface-container-lowest/80 */
  border: 1px solid rgba(219, 192, 190, 0.4);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */
  backdrop-filter: blur(4px); /* backdrop-blur-sm */
  margin-bottom: 1.5rem; /* mb-6 */
}

.cta-banner__pill-text {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  letter-spacing: 0.025em; /* tracking-wide */
  color: var(--color-primary);
  text-transform: uppercase;
  font-weight: 600;
}

.cta-banner__title {
  font-family: var(--font-headline-lg-mobile);
  font-size: var(--text-headline-lg-mobile-size);
  font-weight: var(--text-headline-lg-mobile-weight);
  line-height: var(--text-headline-lg-mobile-lh);
  letter-spacing: var(--text-headline-lg-mobile-ls);
  font-weight: 600;
  color: var(--color-on-primary-fixed); /* text-[#410005] */
  letter-spacing: -0.015em;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .cta-banner__title {
    font-family: var(--font-headline-lg);
    font-size: var(--text-headline-lg-size);
  font-weight: var(--text-headline-lg-weight);
  line-height: var(--text-headline-lg-lh);
  letter-spacing: var(--text-headline-lg-ls);
  }
}

.cta-banner__desc {
  font-family: var(--font-body-lg);
  font-size: var(--text-body-lg-size);
  font-weight: var(--text-body-lg-weight);
  line-height: var(--text-body-lg-lh);
  letter-spacing: var(--text-body-lg-ls);
  color: var(--color-on-surface-variant);
  max-width: 42rem; /* max-w-2xl */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.25rem; /* mb-9 */
  line-height: 1.625; /* leading-relaxed */
  font-weight: 400; /* font-normal */
}

.cta-banner__actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem; /* gap-4 */
}
@media (min-width: 640px) {
  .cta-banner__actions {
    flex-direction: row;
  }
}

.btn--xl {
  width: 100%;
  padding: 1rem 2rem; /* px-8 py-4 */
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
  border-radius: 0.75rem; /* rounded-xl */
}
@media (min-width: 640px) {
  .btn--xl { width: auto; }
}

.btn--outline-light {
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--color-on-surface);
  border: 1px solid rgba(219, 192, 190, 0.6);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.btn--outline-light:hover { background-color: #ffffff; }

/* --- BEM Classes for Bio Section (Sobre a Médica) --- */
.bio {
  padding-top: 4rem; /* py-16 */
  padding-bottom: 4rem;
  background-color: rgba(242, 243, 249, 0.8); /* bg-surface-container-low/80 */
  border-top: 1px solid rgba(219, 192, 190, 0.3); /* border-outline-variant/30 */
}
@media (min-width: 768px) {
  .bio {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.bio__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .bio__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.bio__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 3rem; /* gap-12 */
  align-items: center;
}
@media (min-width: 1024px) {
  .bio__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}

.bio__visual {
  order: 2;
}
@media (min-width: 1024px) {
  .bio__visual {
    grid-column: span 5 / span 5;
    order: 1;
  }
}

.bio__visual-inner {
  position: relative;
  max-width: 28rem; /* max-w-md */
  margin-left: auto;
  margin-right: auto;
}

.bio__card {
  background-color: var(--color-surface-container-lowest);
  padding: 0.875rem; /* p-3.5 */
  border-radius: 1.5rem; /* rounded-3xl */
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); /* soft-tactile-shadow */
  border: 1px solid rgba(219, 192, 190, 0.4);
  position: relative;
}

.bio__carousel {
  position: relative;
  width: 100%;
  height: 540px; /* h-[540px] */
  border-radius: 1rem; /* rounded-2xl */
  overflow: hidden;
  box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); /* shadow-inner */
  background-color: var(--color-surface-container);
}

.bio__badge {
  position: absolute;
  top: 0.875rem;
  left: 0.875rem;
  z-index: 30;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem; /* gap-1.5 */
  padding: 0.375rem 0.75rem; /* px-3 py-1.5 */
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.9); /* bg-surface-container-lowest/90 */
  backdrop-filter: blur(12px); /* backdrop-blur-md */
  border: 1px solid rgba(219, 192, 190, 0.4);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  color: var(--color-primary);
}

.bio__badge-dot {
  width: 0.5rem; /* w-2 */
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--color-primary);
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.bio__badge-text {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  font-weight: 600;
  letter-spacing: 0.025em; /* tracking-wide */
}

.bio__slide {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  transition: opacity 0.7s ease-in-out;
}

.bio__slide-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.bio__slide-overlay {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.45), transparent, rgba(0, 0, 0, 0.1));
  pointer-events: none;
}

.bio__slide-content {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 4rem; /* right-16 */
  z-index: 20;
  pointer-events: none;
}

.bio__slide-tag {
  display: inline-block;
  font-size: 0.75rem; /* text-xs */
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em; /* tracking-wider */
  color: rgba(255, 255, 255, 0.9);
  background-color: rgba(153, 64, 61, 0.8); /* bg-primary/80 */
  backdrop-filter: blur(4px);
  padding: 0.125rem 0.625rem; /* px-2.5 py-0.5 */
  border-radius: 0.375rem; /* rounded-md */
  margin-bottom: 0.25rem;
}

.bio__slide-desc {
  color: #ffffff;
  font-size: 0.75rem; /* text-xs */
  font-weight: 500;
  line-height: 1.25; /* leading-tight */
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05)); /* drop-shadow-sm */
}

.bio__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 30;
  width: 2.25rem; /* w-9 */
  height: 2.25rem;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--color-on-surface);
  border: 1px solid rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); /* shadow-md */
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  cursor: pointer;
}
.bio__btn:hover {
  background-color: var(--color-surface-container-lowest);
  color: var(--color-primary);
}
.bio__btn:active {
  transform: translateY(-50%) scale(0.95); /* active:scale-95 */
}
.bio__btn--prev { left: 0.75rem; }
.bio__btn--next { right: 0.75rem; }

.bio__dots {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 0.375rem; /* gap-1.5 */
  background-color: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(12px);
  padding: 0.375rem 0.625rem; /* px-2.5 py-1.5 */
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.bio__dot {
  width: 0.5rem; /* w-2 */
  height: 0.5rem;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.5); /* bg-white/50 */
  transition: all 0.2s;
  border: none;
  cursor: pointer;
}
.bio__dot:hover { background-color: rgba(255, 255, 255, 0.8); }
.bio__dot--active { background-color: #ffffff; width: 1rem; /* w-4 */ }

.bio__credentials {
  margin-top: 0.875rem; /* mt-3.5 */
  padding: 1rem; /* p-4 */
  border-radius: 0.75rem; /* rounded-xl */
  background-color: var(--color-surface-container-low);
  border: 1px solid rgba(219, 192, 190, 0.4);
}

.bio__cred-group {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.bio__cred-label {
  font-family: var(--font-label-sm);
  font-size: 11px; /* text-[11px] */
  color: var(--color-on-surface-variant);
  text-transform: uppercase;
  letter-spacing: 0.05em; /* tracking-wider */
}

.bio__cred-val {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  font-weight: 700; /* font-bold */
}

.bio__cred-val-sm {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  color: var(--color-primary);
  font-weight: 600;
}

.bio__content {
  order: 1;
}
@media (min-width: 1024px) {
  .bio__content {
    grid-column: span 7 / span 7;
    order: 2;
  }
}

.bio__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-primary);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.bio__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400;
  margin-bottom: 1rem;
}

.bio__role {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-primary);
  font-weight: 600;
  margin-bottom: 1.5rem;
}

.bio__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  margin-bottom: 1.5rem;
  line-height: 1.625;
}

.bio__quote {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  padding: 1.5rem; /* p-6 */
  border-radius: 0.75rem; /* rounded-xl */
  background-color: var(--color-primary-container); /* bg-[#b85854] */
  color: #ffffff;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.bio__quote-bg {
  position: absolute;
  top: -1rem; /* -top-4 */
  right: -1rem; /* -right-4 */
  width: 5rem; /* w-20 */
  height: 5rem;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.1);
  pointer-events: none;
}

.bio__quote-text {
  font-family: var(--font-headline-sm);
  font-size: var(--text-headline-sm-size);
  font-weight: var(--text-headline-sm-weight);
  line-height: var(--text-headline-sm-lh);
  letter-spacing: var(--text-headline-sm-ls);
  font-weight: 400; /* font-serif */
  font-style: italic;
  line-height: 1.375; /* leading-snug */
  margin-bottom: 0.5rem;
  color: #ffffff;
}

.bio__quote-author {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: var(--color-primary-fixed); /* text-[#ffdad7] */
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  display: block;
}

.bio__list {
  display: flex;
  flex-direction: column;
  gap: 0.875rem; /* space-y-3.5 */
  margin-top: 2rem; /* my-8 */
  margin-bottom: 2rem;
}

.bio__list-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem; /* gap-3 */
}

.bio__list-icon {
  color: var(--color-primary);
  margin-top: 0.125rem; /* mt-0.5 */
}

.bio__list-text {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface);
}

.bio__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem; /* gap-4 */
  padding-top: 0.5rem; /* pt-2 */
}

.btn--icon {
  padding: 0.75rem 1.5rem; /* px-6 py-3 */
}

/* --- BEM Classes for Media Section (Mídia e Eventos) --- */
.media {
  padding-top: 4rem; /* py-16 */
  padding-bottom: 4rem;
  background-color: var(--color-surface);
  border-top: 1px solid rgba(219, 192, 190, 0.3); /* border-outline-variant/30 */
  overflow: hidden;
}
@media (min-width: 768px) {
  .media {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.media__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .media__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.media__header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 2.5rem; /* mb-10 */
  gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
  .media__header {
    flex-direction: row;
    align-items: flex-end;
  }
}

.media__title-wrapper {
  max-width: 48rem; /* max-w-3xl */
}

.media__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-primary);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.media__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400; /* font-serif */
  margin-bottom: 0.75rem;
}

.media__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  line-height: 1.625;
}

.media__controls {
  display: flex;
  align-items: center;
  gap: 0.75rem; /* gap-3 */
  align-self: flex-start;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .media__controls {
    align-self: flex-end;
  }
}

.media__btn {
  width: 2.75rem; /* w-11 */
  height: 2.75rem;
  border-radius: 9999px;
  border: 1px solid rgba(219, 192, 190, 0.4);
  background-color: var(--color-surface-container-lowest);
  color: var(--color-on-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  transition: all 0.2s;
  cursor: pointer;
}
.media__btn:hover {
  background-color: var(--color-surface-container);
  color: var(--color-primary);
}
.media__btn:active {
  transform: scale(0.98);
}

.media__carousel {
  display: flex;
  gap: 1.5rem; /* gap-6 */
  width: 100%;
  padding-bottom: 1rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none; /* Firefox */
}
.media__carousel::-webkit-scrollbar {
  display: none; /* Chrome/Safari */
}



.media__card {
  width: 20rem; /* w-80 */
  flex-shrink: 0;
  scroll-snap-align: start;
  background-color: var(--color-surface-container-lowest);
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(219, 192, 190, 0.3);
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); /* soft-tactile-shadow */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: all 0.2s;
  cursor: pointer;
}
@media (min-width: 768px) {
  .media__card {
    width: 24rem; /* md:w-96 */
  }
}
.media__card:hover {
  border-color: rgba(153, 64, 61, 0.4); /* hover:border-primary/40 */
}

.media__card-thumb {
  position: relative;
  height: 12rem; /* h-48 */
  width: 100%;
  overflow: hidden;
  background-color: var(--color-surface-container);
}

.media__card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.2s;
}
.media__card:hover .media__card-img {
  transform: scale(1.05);
}

.media__card-overlay {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent, rgba(0, 0, 0, 0.2));
}

.media__card-badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  padding: 0.25rem 0.625rem; /* px-2.5 py-1 */
  border-radius: 0.375rem; /* rounded-md */
  border: 1px solid rgba(219, 192, 190, 0.3);
  display: flex;
  align-items: center;
  gap: 0.375rem; /* gap-1.5 */
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.media__card-badge-text {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  font-weight: 700;
  color: var(--color-on-surface);
  letter-spacing: -0.025em; /* tracking-tight */
}

.media__card-badge-bottom {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  background-color: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(4px);
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  box-shadow: 0 1px 3px 0 rgba(0,0,0,0.1);
}

.media__card-play {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  width: 2.5rem; /* w-10 */
  height: 2.5rem;
  border-radius: 9999px;
  background-color: var(--color-primary);
  color: var(--color-on-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s;
}
.media__card:hover .media__card-play {
  transform: scale(1.1);
}

.media__card-duration {
  position: absolute;
  bottom: 0.75rem;
  left: 0.75rem;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  padding: 0.125rem 0.5rem; /* px-2 py-0.5 */
  border-radius: 0.25rem; /* rounded */
  font-size: 11px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.05em;
}

.media__card-content {
  padding: 1.5rem; /* p-6 */
}

.media__card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.media__card-tag {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.75rem; /* px-3 py-1 */
  border-radius: 0.375rem; /* rounded-md */
}
.media__card-tag--primary {
  color: var(--color-primary);
  background-color: rgba(255, 218, 215, 0.4); /* bg-primary-fixed/40 */
}
.media__card-tag--secondary {
  color: var(--color-secondary);
  background-color: rgba(255, 218, 214, 0.3); /* bg-secondary-fixed/30 */
}
.media__card-tag--tertiary {
  color: var(--color-tertiary);
  background-color: rgba(255, 217, 227, 0.4); /* bg-tertiary-fixed/40 */
}

.media__card-ep {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: var(--color-on-surface-variant);
  font-weight: 500;
}

.media__card-title {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  font-weight: 600;
  margin-bottom: 0.75rem;
  line-height: 1.375;
}

.media__card-desc {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface-variant);
  line-height: 1.625;
  margin-bottom: 1rem;
}

.media__card-footer {
  padding: 0.75rem 1.5rem 1.5rem; /* px-6 pb-6 pt-3 */
  border-top: 1px solid rgba(219, 192, 190, 0.2);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.media__card-link {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  color: var(--color-primary);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem; /* gap-1.5 */
  text-decoration: none;
}
.media__card:hover .media__card-link {
  text-decoration: underline;
}
.media__card-link-icon {
  font-size: 16px;
  transition: transform 0.2s;
}
.media__card:hover .media__card-link-icon {
  transform: translateX(0.25rem);
}

.media__card-platform {
  font-size: 0.75rem; /* text-xs */
  color: var(--color-on-surface-variant);
}

/* --- BEM Classes for Testimonials (Depoimentos) --- */
.testimonials {
  padding-top: 4rem; /* py-16 */
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .testimonials {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.testimonials__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .testimonials__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.testimonials__header {
  text-align: center;
  max-width: 42rem; /* max-w-2xl */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.5rem; /* mb-14 */
}

.testimonials__rating {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem; /* gap-1.5 */
  color: var(--color-tertiary);
  margin-bottom: 0.75rem; /* mb-3 */
}
.testimonials__rating-stars {
  font-size: 18px;
}
.testimonials__rating-text {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  margin-left: 0.25rem;
  color: var(--color-on-surface);
  font-weight: 600;
}

.testimonials__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400; /* font-serif */
  margin-bottom: 0.75rem;
}

.testimonials__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
}

.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
  .testimonials__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.testimonials__card {
  background-color: var(--color-surface-container-lowest);
  padding: 1.75rem; /* p-7 */
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(219, 192, 190, 0.3); /* border-outline-variant/30 */
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); /* soft-tactile-shadow */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.testimonials__card-stars {
  display: flex;
  color: #f59e0b; /* text-amber-500 */
  margin-bottom: 1rem;
}

.testimonials__card-quote {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface);
  line-height: 1.625; /* leading-relaxed */
  margin-bottom: 1.5rem;
  font-style: italic;
}

.testimonials__author {
  display: flex;
  align-items: center;
  gap: 0.75rem; /* gap-3 */
  padding-top: 1rem; /* pt-4 */
  border-top: 1px solid rgba(219, 192, 190, 0.2);
}

.testimonials__avatar {
  width: 2.5rem; /* w-10 */
  height: 2.5rem;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}
.testimonials__avatar--primary {
  background-color: var(--color-primary-fixed);
  color: var(--color-primary);
}
.testimonials__avatar--secondary {
  background-color: var(--color-secondary-fixed);
  color: var(--color-secondary);
}
.testimonials__avatar--neutral {
  background-color: var(--color-surface-container);
  color: var(--color-on-surface);
}

.testimonials__author-name {
  font-family: var(--font-title-md);
  font-size: 0.875rem; /* text-sm */
  color: var(--color-on-surface);
  font-weight: 600;
}

.testimonials__author-role {
  font-family: var(--font-body-sm);
  font-size: 0.75rem; /* text-xs */
  color: var(--color-on-surface-variant);
}

/* --- BEM Classes for Consultorio --- */
.consulting {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background-color: rgba(242, 243, 249, 0.7); /* bg-surface-container-low/70 */
  border-top: 1px solid rgba(219, 192, 190, 0.3);
  border-bottom: 1px solid rgba(219, 192, 190, 0.3);
}
@media (min-width: 768px) {
  .consulting {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.consulting__container {
  max-width: 80rem; /* max-w-7xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .consulting__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.consulting__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 3rem; /* gap-12 */
  align-items: flex-start;
}
@media (min-width: 1024px) {
  .consulting__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}

.consulting__content {
}
@media (min-width: 1024px) {
  .consulting__content {
    grid-column: span 6 / span 6;
  }
}

.consulting__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-primary);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.consulting__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400; /* font-serif */
  margin-bottom: 1rem;
}

.consulting__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  margin-bottom: 2rem;
  line-height: 1.625;
}

.consulting__list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem; /* space-y-5 */
  margin-bottom: 2rem;
}

.consulting__item {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem; /* gap-3.5 */
}

.consulting__icon {
  width: 2.5rem; /* w-10 */
  height: 2.5rem;
  border-radius: 0.5rem; /* rounded-lg */
  background-color: var(--color-surface-container-lowest);
  border: 1px solid rgba(219, 192, 190, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  flex-shrink: 0;
}

.consulting__item-title {
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  font-weight: 600;
}

.consulting__item-desc {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface-variant);
}

.consulting__item-note {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: var(--color-primary);
  margin-top: 0.25rem;
}

.consulting__cities {
  padding-top: 1.5rem; /* pt-6 */
  border-top: 1px solid rgba(219, 192, 190, 0.3);
}

.consulting__cities-title {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: var(--color-on-surface-variant);
  text-transform: uppercase;
  font-weight: 600;
  display: block;
  margin-bottom: 0.75rem; /* mb-3 */
}

.consulting__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem; /* gap-2 */
}

.consulting__chip {
  padding: 0.25rem 0.75rem; /* px-3 py-1 */
  background-color: var(--color-surface-container-lowest);
  border-radius: 9999px;
  border: 1px solid rgba(219, 192, 190, 0.4);
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: var(--color-on-surface);
}

.consulting__map-col {
}
@media (min-width: 1024px) {
  .consulting__map-col {
    grid-column: span 6 / span 6;
  }
}

.consulting__map-card {
  background-color: var(--color-surface-container-lowest);
  padding: 1rem; /* p-4 */
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(219, 192, 190, 0.3);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); /* soft-tactile-shadow */
}

.consulting__map-frame {
  position: relative;
  border-radius: 0.5rem; /* rounded-lg */
  overflow: hidden;
  border: 1px solid rgba(219, 192, 190, 0.2);
  margin-bottom: 1rem; /* mb-4 */
  height: 320px; /* h-[320px] */
}

.consulting__map-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.consulting__map-badge {
  position: absolute;
  bottom: 0.75rem; /* bottom-3 */
  left: 0.75rem; /* left-3 */
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  padding: 0.75rem; /* p-3 */
  border-radius: 0.5rem; /* rounded-lg */
  border: 1px solid rgba(219, 192, 190, 0.4);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.consulting__map-badge-title {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  color: var(--color-primary);
  font-weight: 700;
}

.consulting__map-badge-desc {
  font-family: var(--font-body-sm);
  font-size: 0.75rem; /* text-xs */
  color: var(--color-on-surface-variant);
}

.consulting__map-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; /* gap-3 */
}
@media (min-width: 640px) {
  .consulting__map-actions {
    flex-direction: row;
  }
}

.btn--map {
  flex: 1;
  padding: 0.875rem 1rem; /* py-3.5 */
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.75rem; /* rounded-xl */
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
}
.btn--map-primary {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
}
.btn--map-primary:hover {
  background-color: var(--color-primary-container);
  color: var(--color-on-primary-container);
}
.btn--map-secondary {
  background-color: var(--color-surface-container);
  color: var(--color-on-surface);
  border: 1px solid rgba(219, 192, 190, 0.4);
}
.btn--map-secondary:hover {
  background-color: var(--color-surface-container-high);
}

/* --- BEM Classes for FAQ (Perguntas Frequentes) --- */
.faq {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .faq {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.faq__container {
  max-width: 56rem; /* max-w-4xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .faq__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.faq__header {
  text-align: center;
  margin-bottom: 3rem; /* mb-12 */
}

.faq__subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-primary);
  font-weight: 600;
  display: block;
  margin-bottom: 0.5rem;
}

.faq__title {
  font-family: var(--font-headline-md);
  font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  color: var(--color-on-surface);
  font-weight: 400; /* font-serif */
  margin-bottom: 0.75rem;
}

.faq__desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
}

.faq__list {
  display: flex;
  flex-direction: column;
  gap: 1rem; /* space-y-4 */
}

.faq__item {
  background-color: var(--color-surface-container-lowest);
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(219, 192, 190, 0.3);
  padding: 1.5rem; /* p-6 */
}
.faq__item[open] {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* open:shadow-sm */
}

.faq__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-title-md);
  font-size: var(--text-title-md-size);
  font-weight: var(--text-title-md-weight);
  line-height: var(--text-title-md-lh);
  letter-spacing: var(--text-title-md-ls);
  color: var(--color-on-surface);
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}
.faq__summary::-webkit-details-marker {
  display: none;
}

.faq__icon {
  color: var(--color-primary);
  transition: transform 0.2s;
}
.faq__item[open] .faq__icon {
  transform: rotate(180deg);
}

.faq__content {
  margin-top: 1rem;
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  line-height: 1.625;
  border-top: 1px solid rgba(219, 192, 190, 0.2);
  padding-top: 1rem;
}

.faq__cta {
  margin-top: 2.5rem; /* mt-10 */
  text-align: center;
}

.faq__cta-desc {
  font-family: var(--font-body-md);
  font-size: var(--text-body-md-size);
  font-weight: var(--text-body-md-weight);
  line-height: var(--text-body-md-lh);
  letter-spacing: var(--text-body-md-ls);
  color: var(--color-on-surface-variant);
  margin-bottom: 1rem;
}

.faq__cta-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem; /* gap-2 */
  color: var(--color-primary);
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  font-weight: 600;
  text-decoration: none;
}
.faq__cta-link:hover {
  text-decoration: underline;
}

/* --- BEM Classes for Final CTA --- */
.final-cta {
  position: relative;
  padding-top: 5rem; /* py-20 */
  padding-bottom: 5rem;
  overflow: hidden;
  border-top: 1px solid rgba(219, 192, 190, 0.3);
}
@media (min-width: 768px) {
  .final-cta {
    padding-top: 6rem; /* md:py-24 */
    padding-bottom: 6rem;
  }
}

.final-cta__bg {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: url("https://lh3.googleusercontent.com/aida/AEtjO1UMmVuOlckRFZVlmBYbPxNyeHLBTNtBvl5RzfuAJEIKeQC16QGltpeyvvWoQrES2SvMhixr-8apKbQd3U4ytWnLBpBKxhqe_8lmUnpLym9KcKSvmxewhXfbOzYuVK16ddkWiOSFa4ZeLf83784bVXXE7wBH44wAQ3zk52UBccOxOb2Z5Svm_npCcMEjN-52bj5PhS4bAuH_aPcx_Mbq1RrM-bDlAkGYa8MBLmMpB9aFUQUwdpUyoecDhSJM");
  background-attachment: fixed;
  background-size: cover;
  background-position: center center;
}

.final-cta__overlay-gradient {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: linear-gradient(to top, rgba(119, 49, 32, 0.95), rgba(153, 64, 61, 0.9), rgba(184, 88, 84, 0.85));
  mix-blend-mode: multiply;
}

.final-cta__overlay-blur {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-color: rgba(153, 64, 61, 0.3);
  backdrop-filter: blur(1px);
}

.final-cta__content {
  position: relative;
  z-index: 10;
  max-width: 56rem; /* max-w-4xl */
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  text-align: center;
  color: #ffffff;
}
@media (min-width: 768px) {
  .final-cta__content {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.final-cta__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem; /* w-16 */
  height: 4rem;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.15); /* bg-white/15 */
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(4px); /* backdrop-blur-sm */
  color: #ffd6fb;
  margin-bottom: 1.5rem; /* mb-6 */
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.final-cta__title {
  font-family: var(--font-headline-lg-mobile);
  font-size: var(--text-headline-lg-mobile-size);
  font-weight: var(--text-headline-lg-mobile-weight);
  line-height: var(--text-headline-lg-mobile-lh);
  letter-spacing: var(--text-headline-lg-mobile-ls);
  font-weight: 400; /* font-serif */
  color: #ffffff;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .final-cta__title {
    font-family: var(--font-headline-md);
    font-size: var(--text-headline-md-size);
  font-weight: var(--text-headline-md-weight);
  line-height: var(--text-headline-md-lh);
  letter-spacing: var(--text-headline-md-ls);
  }
}

.final-cta__desc {
  font-family: var(--font-body-lg);
  font-size: var(--text-body-lg-size);
  font-weight: var(--text-body-lg-weight);
  line-height: var(--text-body-lg-lh);
  letter-spacing: var(--text-body-lg-ls);
  color: rgba(255, 255, 255, 0.9);
  max-width: 42rem; /* max-w-2xl */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem; /* mb-8 */
  font-weight: 300; /* font-light */
  line-height: 1.625;
}

.final-cta__actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem; /* gap-4 */
}
@media (min-width: 640px) {
  .final-cta__actions {
    flex-direction: row;
  }
}

.final-cta__btn-primary {
  width: 100%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.625rem; /* gap-2.5 */
  background-color: #ffffff;
  color: #99403d;
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  padding: 1rem 2rem; /* px-8 py-4 */
  border-radius: 0.75rem; /* rounded-xl */
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* shadow-xl */
  transition: all 0.2s;
  font-weight: 700; /* font-bold */
}
@media (min-width: 640px) {
  .final-cta__btn-primary { width: auto; }
}
.final-cta__btn-primary:hover {
  background-color: #f8f9fe;
}
.final-cta__btn-primary:active {
  transform: scale(0.98);
}

.final-cta__btn-secondary {
  width: 100%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem; /* gap-2 */
  background-color: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  padding: 1rem 1.75rem; /* px-7 py-4 */
  border-radius: 0.75rem; /* rounded-xl */
  border: 1px solid rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(4px); /* backdrop-blur-sm */
  transition: background-color 0.2s;
}
@media (min-width: 640px) {
  .final-cta__btn-secondary { width: auto; }
}
.final-cta__btn-secondary:hover {
  background-color: rgba(255, 255, 255, 0.25);
}

/* --- BEM Classes for Footer --- */
.footer {
  width: 100%;
  background-color: #99403d;
  color: #ffffff;
  border-top: 1px solid #b85854;
}

.footer__container {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 3.5rem; /* py-14 */
  padding-bottom: 3.5rem;
}
@media (min-width: 768px) {
  .footer__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.footer__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2.5rem; /* gap-10 */
  padding-bottom: 3rem; /* pb-12 */
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
@media (min-width: 768px) {
  .footer__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}

.footer__col-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .footer__col-brand { grid-column: span 5 / span 5; }
}

.footer__brand-title {
  font-family: var(--font-headline-sm);
  font-size: var(--text-headline-sm-size);
  font-weight: var(--text-headline-sm-weight);
  line-height: var(--text-headline-sm-lh);
  letter-spacing: var(--text-headline-sm-ls);
  color: #ffffff;
  font-weight: 700;
  letter-spacing: -0.025em; /* tracking-tight */
}

.footer__brand-subtitle {
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  color: #ffd6fb;
  letter-spacing: 0.05em; /* tracking-wider */
  text-transform: uppercase;
  margin-top: 0.25rem;
  margin-bottom: 0.75rem;
}

.footer__brand-desc {
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.625;
  max-width: 24rem; /* max-w-sm */
  margin-bottom: 1rem;
}

.footer__brand-creds {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem; /* gap-2 */
  padding: 0.375rem 0.75rem; /* px-3 py-1.5 */
  border-radius: 0.5rem; /* rounded-lg */
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  font-family: var(--font-label-sm);
  font-size: var(--text-label-sm-size);
  font-weight: var(--text-label-sm-weight);
  line-height: var(--text-label-sm-lh);
  letter-spacing: var(--text-label-sm-ls);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.footer__col-nav {
}
@media (min-width: 768px) {
  .footer__col-nav { grid-column: span 3 / span 3; }
}

.footer__title {
  font-family: var(--font-label-md);
  font-size: var(--text-label-md-size);
  font-weight: var(--text-label-md-weight);
  line-height: var(--text-label-md-lh);
  letter-spacing: var(--text-label-md-ls);
  text-transform: uppercase;
  letter-spacing: 0.05em; /* tracking-wider */
  color: #ffd6fb;
  font-weight: 600;
  margin-bottom: 1rem;
}

.footer__list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem; /* space-y-2.5 */
  font-family: var(--font-body-sm);
  font-size: var(--text-body-sm-size);
  font-weight: var(--text-body-sm-weight);
  line-height: var(--text-body-sm-lh);
  letter-spacing: var(--text-body-sm-ls);
  color: rgba(255, 255, 255, 0.85);
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer__link {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.footer__link:hover { color: #ffffff; }

.footer__col-contact {
}
@media (min-width: 768px) {
  .footer__col-contact { grid-column: span 4 / span 4; }
}

.footer__contact-item {
  display: flex;
  align-items: center;
  gap: 0.625rem; /* gap-2.5 */
}
.footer__contact-item--align-start {
  align-items: flex-start;
}

.footer__contact-icon {
  color: #ffd6fb;
}

.footer__bottom {
  padding-top: 2rem; /* pt-8 */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 1rem; /* gap-4 */
  font-size: 0.75rem; /* text-xs */
  color: rgba(255, 255, 255, 0.7);
}
@media (min-width: 768px) {
  .footer__bottom {
    flex-direction: row;
  }
}

.footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem; /* gap-6 */
}
