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

a:focus-visible,
button:focus-visible,
.nav-dropdown__trigger:focus-visible {
  outline: 2px solid #21180c;
  outline-offset: 2px;
  border-radius: 4px;
}

html {
  height: 100%;
  width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  min-height: 100%;
  width: 100%;
  overflow-x: hidden;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #1c1712;
  background: #f7f5f1;
  -webkit-font-smoothing: antialiased;
}

.page {
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: 100%;
  max-width: 100vw;
  min-height: 100dvh;
  overflow: visible;
  position: relative;
  margin: 0 auto;
}

.page > * {
  min-width: 0;
}

.page::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(145, 130, 119, 0.14), transparent 70%),
    radial-gradient(ellipse 50% 40% at 100% 100%, rgba(33, 24, 12, 0.06), transparent 60%);
  pointer-events: none;
}

/* Header */

.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  min-width: 0;
  max-width: 90rem;
  margin: 0 auto;
  padding: 1.25rem clamp(1.25rem, 4vw, 2.5rem);
  position: relative;
  z-index: 10;
}

.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

.brand__name {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #21180c;
}

/* Registered mark next to the Ducha wordmark */
.brand-rm {
  font-family: system-ui, sans-serif;
  font-size: 0.42em;
  font-weight: 500;
  vertical-align: super;
  letter-spacing: 0;
  margin-left: 0.06em;
  opacity: 0.7;
}

.header__start {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-width: 0;
}

.header__nav {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  min-width: 0;
}

.header__nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b635a;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.header__nav-link:hover,
.header__nav-link--active {
  color: #1c1712;
}

.nav-dropdown__menu--wide {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0.125rem;
  width: max-content;
  min-width: 11rem;
  padding: 0.625rem;
}

.nav-dropdown__menu--products {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0.125rem;
  width: max-content;
  min-width: 13.5rem;
  padding: 0.625rem;
}

.nav-dropdown__menu--wide .nav-dropdown__item,
.nav-dropdown__menu--products .nav-dropdown__item {
  white-space: nowrap;
}

.nav-dropdown__group-label {
  margin: 0;
  padding: 0.25rem 0.75rem 0.125rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #9a9088;
}

.nav-dropdown__divider {
  margin: 0.375rem 0.5rem;
  border: 0;
  border-top: 1px solid rgba(33, 24, 12, 0.08);
}

/* The first group label sits flush under the menu's top padding */
.nav-dropdown__menu--products .nav-dropdown__group-label:first-child {
  padding-top: 0;
}

/* Nested "Cartões" flyout */
.nav-subdropdown {
  position: relative;
}

.nav-dropdown__item--sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  width: 100%;
  margin: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: #1c1712;
  text-align: left;
  cursor: default;
}

.nav-subdropdown__chevron {
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  color: rgba(33, 24, 12, 0.4);
  transition: transform 0.15s ease, color 0.15s ease;
}

.nav-subdropdown:hover .nav-dropdown__item--sub,
.nav-subdropdown:focus-within .nav-dropdown__item--sub {
  background: rgba(33, 24, 12, 0.05);
  color: #21180c;
}

.nav-subdropdown:hover .nav-subdropdown__chevron,
.nav-subdropdown:focus-within .nav-subdropdown__chevron {
  color: #21180c;
}

.nav-subdropdown__menu {
  position: absolute;
  top: -0.625rem;
  left: 100%;
  margin-left: 0.5rem;
  min-width: 10rem;
  padding: 0.625rem 0.375rem;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.75rem;
  box-shadow: 0 8px 24px rgba(33, 24, 12, 0.08);
  backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.nav-subdropdown__menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: -0.5rem;
  width: 0.5rem;
  height: 100%;
}

.nav-subdropdown:hover .nav-subdropdown__menu,
.nav-subdropdown:focus-within .nav-subdropdown__menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

.nav-dropdown {
  position: relative;
}

.nav-dropdown__trigger {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b635a;
  cursor: pointer;
  user-select: none;
  transition: color 0.2s ease;
}

.nav-dropdown:hover .nav-dropdown__trigger,
.nav-dropdown:focus-within .nav-dropdown__trigger {
  color: #1c1712;
}

.nav-dropdown__menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 10rem;
  padding: 0.625rem 0.375rem 0.375rem;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.75rem;
  box-shadow: 0 8px 24px rgba(33, 24, 12, 0.08);
  backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.nav-dropdown__menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0.625rem;
  transform: translateY(-100%);
}

.nav-dropdown:hover .nav-dropdown__menu,
.nav-dropdown:focus-within .nav-dropdown__menu,
.nav-dropdown.is-open .nav-dropdown__menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.nav-dropdown__item {
  display: block;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #1c1712;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 0.5rem;
  transition: background 0.15s ease, color 0.15s ease;
}

.nav-dropdown__item:hover {
  background: rgba(33, 24, 12, 0.05);
  color: #21180c;
}

.nav-dropdown__item--active {
  background: rgba(33, 24, 12, 0.06);
  color: #21180c;
}

html:has(.page--home) body,
html:has(.page--product) body,
html:has(.page--pricing) body,
html:has(.page--cases) body {
  overflow-y: auto;
}

body.nav-open {
  overflow: hidden;
}

.page--home {
  height: auto;
  min-height: 100dvh;
  max-height: none;
}

.page--home .home {
  position: relative;
  z-index: 1;
}

.page--home .hero {
  min-height: calc(100dvh - 8rem);
  padding-bottom: 2rem;
}

.market {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 clamp(1.25rem, 5vw, 3rem) 3rem;
}

.market__inner {
  max-width: 56rem;
  margin: 0 auto;
  padding: 2.25rem clamp(1.5rem, 4vw, 2.5rem);
  text-align: center;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.58) 100%);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.125rem;
  box-shadow: 0 12px 40px rgba(33, 24, 12, 0.05);
  backdrop-filter: blur(12px);
}

.market__eyebrow {
  margin: 0 0 1rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
}

.market__headline {
  margin: 0 auto 2rem;
  max-width: 34rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: #21180c;
}

.market__headline em {
  font-style: italic;
  color: #6b635a;
}

.market__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.market-stat {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1.25rem 1rem;
  background: rgba(247, 245, 241, 0.65);
  border: 1px solid rgba(33, 24, 12, 0.06);
  border-radius: 0.875rem;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.market-stat:hover {
  border-color: rgba(33, 24, 12, 0.12);
  transform: translateY(-2px);
}

.market-stat--accent {
  background: #21180c;
  border-color: #21180c;
}

.market-stat--accent .market-stat__value,
.market-stat--accent .market-stat__label {
  color: #f7f5f1;
}

.market-stat--accent .market-stat__label {
  opacity: 0.72;
}

.market-stat__value {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.375rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #21180c;
}

.market-stat__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.45;
  color: #6b635a;
}

.market__footnote {
  margin: 0;
  max-width: 38rem;
  margin-inline: auto;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #6e6356;
}

.market__sources {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.6875rem;
  letter-spacing: 0.02em;
  color: #6e6356;
}

@media (max-width: 640px) {
  .market {
    padding-bottom: 2rem;
  }

  .market__inner {
    padding: 1.75rem 1.25rem;
  }

  .market__stats {
    grid-template-columns: 1fr;
  }

  .market-stat--accent {
    order: -1;
  }
}

.home .section {
  width: 100%;
  max-width: 90rem;
  margin: 0 auto;
  padding: 4rem clamp(1.25rem, 4vw, 2.5rem);
}

.home .section + .section {
  padding-top: 0;
}

.section__intro {
  max-width: 48rem;
  margin: 0 auto 2.5rem;
  text-align: center;
}

.section__title {
  margin: 0 0 0.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #21180c;
}

.section__desc {
  margin: 0 auto;
  max-width: 42ch;
  font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
  line-height: 1.65;
  color: #6b635a;
}

.card-grid {
  display: grid;
  gap: 1rem;
  width: 100%;
}

.card-grid--solutions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.solutions-carousel {
  width: 100%;
  max-width: 56rem;
  margin: 0 auto;
}

.solutions-carousel__controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: -0.75rem 0 0.75rem;
}

.solutions-carousel__button {
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #21180c;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 999px;
  box-shadow: 0 10px 26px rgba(33, 24, 12, 0.08);
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease,
    opacity 0.2s ease;
}

.solutions-carousel__button span {
  display: block;
  margin-top: -0.08em;
  font-size: 1.9rem;
  line-height: 1;
}

.solutions-carousel__button:hover {
  background: #fff;
  border-color: rgba(33, 24, 12, 0.16);
  box-shadow: 0 14px 32px rgba(33, 24, 12, 0.12);
  transform: translateY(-1px);
}

.solutions-carousel__button:disabled {
  opacity: 0.35;
  cursor: default;
  transform: none;
  box-shadow: none;
}

.solutions-carousel__track {
  display: flex;
  grid-template-columns: none;
  gap: 1.25rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 1.5rem clamp(0.75rem, 2.5vw, 1.25rem) 2rem;
  margin-block: -1.25rem -0.75rem;
  scroll-behavior: smooth;
  scroll-padding-inline: clamp(0.75rem, 2.5vw, 1.25rem);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.solutions-carousel__track::-webkit-scrollbar {
  display: none;
}

.solutions-carousel__track .feature-card {
  flex: 0 0 calc((100% - 1.25rem) / 2);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.solutions-carousel__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.solutions-carousel__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(33, 24, 12, 0.18);
  cursor: pointer;
  transition:
    width 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

.solutions-carousel__dot[aria-current="true"] {
  width: 1.35rem;
  background: #21180c;
}

.card-grid--products {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 56rem;
  margin: 0 auto;
}

.feature-card {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 1.5rem;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  backdrop-filter: blur(8px);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.feature-card:hover {
  border-color: rgba(33, 24, 12, 0.14);
  box-shadow: 0 8px 24px rgba(33, 24, 12, 0.06);
  transform: translateY(-2px);
}

.feature-card__title {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #21180c;
}

.feature-card__desc {
  margin: 0;
  flex: 1;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #6b635a;
}

.feature-card__link {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #21180c;
}

.feature-card__link::after {
  content: " →";
}

/* Platform products rendered as Ducha wallet passes */
.card-grid--passes .feature-card {
  position: relative;
  display: block;
  gap: 0;
  padding: 0;
  min-height: 15rem;
  border: none;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  overflow: visible;
}

.card-grid--passes .feature-card:hover {
  border: none;
  transform: none;
  box-shadow: none;
}

.feature-card__flip {
  position: relative;
  display: block;
  width: 100%;
  min-height: 15rem;
}

.card-grid--passes .feature-card__flip {
  border-radius: 0.875rem;
  box-shadow: 0 16px 40px -14px rgba(33, 24, 12, 0.16);
  transition: box-shadow 0.25s ease;
}

.feature-card__face {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-height: 15rem;
  padding: 1.375rem 1.5rem 1.5rem;
  border-radius: inherit;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.38);
  background: linear-gradient(135deg, #f7f5f1 0%, #e8dcc8 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

/* Back face removed along with the hover flip */
.feature-card__face--back {
  display: none;
}

.feature-card__face::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(118deg, rgba(255, 255, 255, 0.5) 0%, transparent 46%);
  pointer-events: none;
}

.card-grid--passes .feature-card:hover .feature-card__flip {
  box-shadow: 0 24px 52px -18px rgba(33, 24, 12, 0.22);
}

.feature-card__pass-head {
  position: absolute;
  top: 1.4rem;
  right: 1.5rem;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.feature-card__brand {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #21180c;
  opacity: 0.82;
}

.feature-card__rm {
  font-family: system-ui, sans-serif;
  font-size: 0.5em;
  font-weight: 500;
  vertical-align: super;
  letter-spacing: 0;
  margin-left: 0.06em;
  opacity: 0.7;
}

.feature-card__nfc {
  width: 1.05rem;
  height: 1.05rem;
  stroke: rgba(33, 24, 12, 0.5);
  stroke-width: 1.6;
  stroke-linecap: round;
}

.card-grid--passes .feature-card__title,
.card-grid--passes .feature-card__desc,
.card-grid--passes .feature-card__solutions,
.card-grid--passes .feature-card__link {
  position: relative;
  z-index: 1;
}

.card-grid--passes .feature-card__title {
  margin-top: 0.15rem;
  padding-right: 4.75rem;
}

.card-grid--passes .feature-card__solution {
  color: rgba(33, 24, 12, 0.6);
  background: rgba(33, 24, 12, 0.07);
}

.card-grid--passes .feature-card__link {
  margin-top: 0.15rem;
}

.card-grid--passes .feature-card__link::after {
  content: " →";
}

/* Back face content */
.feature-card__back-label {
  position: relative;
  z-index: 1;
  margin-top: 0.35rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(33, 24, 12, 0.55);
}

.feature-card__steps {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9rem;
  line-height: 1.35;
  color: #3a332b;
}

.feature-card__steps li {
  position: relative;
  padding-left: 1.1rem;
}

.feature-card__steps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: rgba(33, 24, 12, 0.4);
}

/* Per-product palettes (match the carousel + wallet passes) */
.card-grid--passes .feature-card--guest .feature-card__face {
  background: linear-gradient(135deg, #f7f5f1 0%, #e8e2d8 100%);
}

.card-grid--passes .feature-card--session .feature-card__face {
  background: linear-gradient(135deg, #d4e4dc 0%, #a8c4b8 100%);
}

.card-grid--passes .feature-card--loyalty .feature-card__face {
  background: linear-gradient(135deg, #f0e0c8 0%, #c9a876 100%);
}

.card-grid--passes .feature-card--membership .feature-card__face {
  background: linear-gradient(135deg, #384d3e 0%, #21180c 100%);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.card-grid--passes .feature-card--membership .feature-card__face::before {
  background: linear-gradient(118deg, rgba(255, 255, 255, 0.16) 0%, transparent 46%);
}

.feature-card--membership .feature-card__title,
.feature-card--membership .feature-card__brand {
  color: #fff;
}

.feature-card--membership .feature-card__desc {
  color: rgba(255, 255, 255, 0.78);
}

.feature-card--membership .feature-card__solution {
  color: rgba(255, 255, 255, 0.82);
  background: rgba(255, 255, 255, 0.14);
}

.feature-card--membership .feature-card__link {
  color: #fff;
}

.feature-card--membership .feature-card__nfc {
  stroke: rgba(255, 255, 255, 0.65);
}

.feature-card--membership .feature-card__back-label {
  color: rgba(255, 255, 255, 0.6);
}

.feature-card--membership .feature-card__steps {
  color: rgba(255, 255, 255, 0.85);
}

.feature-card--membership .feature-card__steps li::before {
  background: rgba(255, 255, 255, 0.5);
}

@media (max-width: 900px) {
  .card-grid--solutions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .solutions-carousel__track .feature-card {
    flex-basis: calc((100% - 1.25rem) / 2);
  }

  .card-grid--products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .page--home .hero {
    min-height: auto;
    padding-top: 1rem;
    padding-bottom: 2rem;
  }

  .home .section {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .card-grid--solutions,
  .card-grid--products {
    grid-template-columns: 1fr;
  }

  .solutions-carousel__controls {
    justify-content: center;
    margin-top: -0.5rem;
  }

  .solutions-carousel__track {
    padding-bottom: 1.75rem;
    margin-block: -1rem -0.5rem;
  }

  .solutions-carousel__track .feature-card {
    flex-basis: 100%;
  }

  .section__intro {
    margin-bottom: 1.75rem;
  }
}

.page--product {
  grid-template-rows: auto 1fr auto;
  height: auto;
  min-height: 100dvh;
}

.page--product .hero {
  justify-content: flex-start;
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}

.page--cases {
  grid-template-rows: auto 1fr auto;
  height: auto;
  min-height: 100dvh;
}

.cases {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.75rem;
  width: 100%;
  min-width: 0;
  max-width: 48rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 5vw, 3rem) 1rem;
  position: relative;
  z-index: 1;
  min-height: 0;
  overflow-y: auto;
}

.cases__intro {
  text-align: center;
}

.cases__intro .badge {
  margin-bottom: 1rem;
}

.cases__title {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.cases__lead {
  max-width: 42ch;
  margin: 0.875rem auto 0;
  font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
  line-height: 1.65;
  color: #6b635a;
}

.cases__grid {
  display: grid;
  grid-template-columns: minmax(0, 28rem);
  justify-content: center;
  gap: 1rem;
  width: 100%;
}

.case-card {
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  backdrop-filter: blur(8px);
}

.case-card__name {
  margin: 0 0 0.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.case-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-bottom: 0.75rem;
}

.case-card__tag {
  padding: 0.25rem 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b635a;
  background: rgba(33, 24, 12, 0.05);
  border-radius: 999px;
}

.case-card__desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #6b635a;
}

@media (max-width: 640px) {
  .cases__grid {
    grid-template-columns: 1fr;
  }

  .cases {
    gap: 1.25rem;
    justify-content: flex-start;
    padding-top: 0.5rem;
  }
}

.page--pricing {
  grid-template-rows: auto 1fr auto;
  height: auto;
  min-height: 100dvh;
}

.pricing {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  width: 100%;
  min-width: 0;
  max-width: 56rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 5vw, 3rem) 2rem;
  position: relative;
  z-index: 1;
  min-height: 0;
  overflow-y: auto;
}

.pricing__intro {
  text-align: center;
}

.pricing__intro .badge {
  margin-bottom: 1rem;
}

.pricing__title {
  margin: 0 0 0.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.pricing__desc {
  margin: 0;
  max-width: 36rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #6b635a;
}

.pricing-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.pricing-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: separate;
  border-spacing: 0;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  backdrop-filter: blur(8px);
}

.pricing-table th,
.pricing-table td {
  padding: 0.875rem 1rem;
  text-align: center;
  border-bottom: 1px solid rgba(33, 24, 12, 0.06);
  vertical-align: middle;
}

.pricing-table thead th {
  padding-top: 1.25rem;
  border-bottom: 1px solid rgba(33, 24, 12, 0.08);
}

.pricing-table tbody tr:last-child th,
.pricing-table tbody tr:last-child td {
  border-bottom: none;
}

.pricing-table__feature {
  text-align: left;
  font-size: 0.875rem;
  font-weight: 500;
  color: #21180c;
}

.pricing-table__plan {
  min-width: 7rem;
}

.pricing-table__name {
  display: block;
  margin-bottom: 0.25rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #21180c;
}

.pricing-table__price {
  display: block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b635a;
}

.pricing-table__price-note {
  display: block;
  margin-top: 0.125rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #6e6356;
}

.pricing-table__feature-note {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6e6356;
}

.pricing-table__value {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #21180c;
}

.pricing-table__value-sub {
  display: block;
  margin-top: 0.125rem;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #6e6356;
}

.pricing-table__footnote {
  margin: 0.875rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #6e6356;
  text-align: center;
}

.pricing-table__plan--highlight {
  background: rgba(33, 24, 12, 0.04);
}

.pricing-table thead th.pricing-table__plan--highlight {
  background: rgba(33, 24, 12, 0.05);
  border-bottom-color: rgba(33, 24, 12, 0.12);
}

.pricing-table__recommended {
  display: inline-flex;
  align-items: center;
  margin-bottom: 0.375rem;
  padding: 0.2rem 0.6rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #f7f5f1;
  background: #21180c;
  border-radius: 999px;
}

.pricing-table__check,
.pricing-table__dash {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1;
}

.pricing-table__check {
  color: #21180c;
  font-weight: 600;
}

.pricing-table__dash {
  color: #c4bdb4;
}

.pricing-table tfoot td {
  padding: 1.25rem 1rem;
  border-bottom: none;
  border-top: 1px solid rgba(33, 24, 12, 0.08);
}

.pricing-table__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7rem;
  padding: 0.5rem 1rem;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #21180c;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(33, 24, 12, 0.12);
  border-radius: 999px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.pricing-table__cta:hover {
  border-color: rgba(33, 24, 12, 0.2);
  box-shadow: 0 4px 12px rgba(33, 24, 12, 0.06);
}

.pricing-table__cta--primary {
  color: #f7f5f1;
  background: #21180c;
  border-color: #21180c;
}

.pricing-table__cta--primary:hover {
  background: #2e2214;
  border-color: #2e2214;
  box-shadow: 0 4px 12px rgba(33, 24, 12, 0.15);
}

@media (max-width: 640px) {
  .pricing {
    gap: 1.5rem;
    padding-top: 0.5rem;
  }
}

.header__menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 0.625rem;
  background: rgba(255, 255, 255, 0.85);
  color: #21180c;
  cursor: pointer;
  flex-shrink: 0;
}

.header__menu-icon,
.header__menu-icon::before,
.header__menu-icon::after {
  display: block;
  width: 1rem;
  height: 1.5px;
  background: currentColor;
  border-radius: 1px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.header__menu-icon {
  position: relative;
}

.header__menu-icon::before,
.header__menu-icon::after {
  content: "";
  position: absolute;
  left: 0;
}

.header__menu-icon::before {
  top: -5px;
}

.header__menu-icon::after {
  top: 5px;
}

body.nav-open .header__menu-icon {
  background: transparent;
}

body.nav-open .header__menu-icon::before {
  top: 0;
  transform: rotate(45deg);
}

body.nav-open .header__menu-icon::after {
  top: 0;
  transform: rotate(-45deg);
}

.header__nav-backdrop,
.header__nav-close,
.header__nav-sublevel,
.header__nav-back {
  display: none;
}

.header__actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.header__lang {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  flex-shrink: 0;
}

.header__lang-link {
  padding: 0.25rem 0.4375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #918277;
  text-decoration: none;
  border-radius: 0.375rem;
  transition: color 0.2s ease, background 0.2s ease;
}

.header__lang-link:hover {
  color: #21180c;
}

.header__lang-link--active {
  color: #21180c;
  background: rgba(33, 24, 12, 0.06);
}

.header__lang-sep {
  font-size: 0.75rem;
  color: #c4bdb4;
  user-select: none;
}

.header__link {
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b635a;
  text-decoration: none;
  transition: color 0.2s ease;
}

.header__link:hover {
  color: #1c1712;
}

/* Hero */

.hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  max-width: 72rem;
  margin: 0 auto;
  text-align: center;
  padding: 0 clamp(1.25rem, 5vw, 3rem);
  position: relative;
  z-index: 1;
  min-height: 0;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1.75rem;
  padding: 0.375rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b635a;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  animation: fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.headline {
  margin: 0 auto 1.25rem;
  width: 100%;
  max-width: min(900px, 100%);
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.25rem, 5.5vw, 3.75rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.headline__copy {
  display: block;
}

.headline__line {
  display: block;
  animation: fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.headline__line--nowrap {
  white-space: nowrap;
  font-size: clamp(1.125rem, 4.2vw, 3.75rem);
}

.headline__line:nth-child(1) {
  animation-delay: 0.08s;
}

.headline__line:nth-child(2) {
  animation-delay: 0.16s;
}

.headline__line--accent {
  font-style: italic;
  color: #21180c;
}

.subhead {
  margin: 0 auto 2rem;
  width: 100%;
  max-width: 48ch;
  font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
  line-height: 1.65;
  color: #6b635a;
  animation: fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.24s both;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  animation: fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.32s both;
}

.hero--with-visual {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem 3rem;
  max-width: 80rem;
  padding-top: 1rem;
  padding-bottom: 2rem;
  text-align: left;
}

.hero--with-visual .hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
}

.hero--with-visual .headline,
.hero--with-visual .subhead {
  margin-left: 0;
  margin-right: 0;
}

.hero--with-visual .headline {
  display: grid;
}

.hero--with-visual .headline__copy {
  grid-area: 1 / 1;
}

.hero__visual {
  position: relative;
  margin: 0;
  flex-shrink: 0;
  --hero-pass-width: min(23rem, 86vw);
  --hero-pass-height: calc(var(--hero-pass-width) / 1.586);
  --hero-stack-step-1: calc(var(--hero-pass-height) * 0.0543);
  --hero-stack-step-2: calc(var(--hero-pass-height) * 0.1087);
  --hero-stack-step-3: calc(var(--hero-pass-height) * 0.163);
  --hero-stack-step-4: calc(var(--hero-pass-height) * 0.2174);
  --hero-stack-peek: var(--hero-stack-step-4);
  --hero-dots-area: 1.75rem;
}

.hero__visual-image {
  display: block;
  width: min(280px, 42vw);
  height: auto;
  filter: drop-shadow(0 24px 48px rgba(33, 24, 12, 0.18));
}

.hero__visual-image--browser {
  width: min(470px, 52vw);
}

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

.hero-cards {
  position: relative;
  width: var(--hero-pass-width);
  margin-inline: auto;
}

.hero-cards__stack {
  position: relative;
  height: calc(var(--hero-pass-height) + var(--hero-stack-peek));
}

.hero-card {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--hero-pass-height);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.5rem;
  border-radius: 1.25rem;
  color: #21180c;
  text-align: left;
  border: 1px solid rgba(33, 24, 12, 0.1);
  box-shadow: 0 24px 60px -28px rgba(33, 24, 12, 0.5);
  transform: translateY(calc(-1 * var(--hero-stack-step-4))) scale(0.94);
  opacity: 0.45;
  transition:
    transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.85s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  transform-origin: center bottom;
  will-change: transform, opacity;
}

.hero-card.is-stack-4 {
  z-index: 0;
  transform: translateY(calc(-1 * var(--hero-stack-step-4))) scale(0.94);
  opacity: 0.45;
  box-shadow: 0 12px 32px -24px rgba(33, 24, 12, 0.35);
}

.hero-card.is-stack-3 {
  z-index: 1;
  transform: translateY(calc(-1 * var(--hero-stack-step-3))) scale(0.955);
  opacity: 0.55;
  box-shadow: 0 16px 40px -24px rgba(33, 24, 12, 0.4);
}

.hero-card.is-stack-2 {
  z-index: 2;
  transform: translateY(calc(-1 * var(--hero-stack-step-2))) scale(0.97);
  opacity: 0.72;
  box-shadow: 0 20px 48px -26px rgba(33, 24, 12, 0.45);
}

.hero-card.is-stack-1 {
  z-index: 3;
  transform: translateY(calc(-1 * var(--hero-stack-step-1))) scale(0.985);
  opacity: 0.88;
  box-shadow: 0 22px 54px -28px rgba(33, 24, 12, 0.48);
}

.hero-card.is-active {
  z-index: 4;
  transform: translateY(0) scale(1);
  opacity: 1;
  pointer-events: auto;
  box-shadow: 0 24px 60px -28px rgba(33, 24, 12, 0.5);
}

.hero-card__brand {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.25rem;
  line-height: 1;
}

.hero-card__partner {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.hero-card__label {
  margin-top: 0.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.7;
}

.hero-card__title {
  margin-top: auto;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.625rem;
  line-height: 1.1;
}

.hero-card__guest {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.2;
  color: rgba(33, 24, 12, 0.88);
}

.hero-card__meta {
  font-size: 0.8125rem;
  color: rgba(33, 24, 12, 0.7);
}

.hero-card__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.65rem;
}

.hero-card__dates {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(33, 24, 12, 0.7);
}

.hero-card__footer .hero-card__brand {
  margin-left: auto;
  line-height: 0.9;
}

.hero-card__cobrand {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: auto;
  line-height: 1;
}

.hero-card__cobrand-mark {
  display: flex;
  align-items: center;
}

.hero-card__cobrand-mark .hero-card__mark-svg {
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  color: currentColor;
}

.hero-card__cobrand-sep {
  font-size: 0.55rem;
  opacity: 0.45;
  line-height: 1;
  font-weight: 400;
}

.hero-card__cobrand .hero-card__brand {
  margin-left: 0;
  line-height: 0.9;
}

.hero-card--wellness-store {
  background: linear-gradient(135deg, #f7f5f1 0%, #e8dcc8 100%);
}

.hero-card--wellness-store .hero-card__label,
.hero-card--wellness-store .hero-card__meta,
.hero-card--wellness-store .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--guest {
  background: linear-gradient(135deg, #f7f5f1 0%, #e8e2d8 100%);
}

.hero-card--guest .hero-card__label,
.hero-card--guest .hero-card__meta,
.hero-card--guest .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--session {
  background: linear-gradient(135deg, #d4e4dc 0%, #a8c4b8 100%);
}

.hero-card--session .hero-card__label,
.hero-card--session .hero-card__meta,
.hero-card--session .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--membership {
  background: linear-gradient(135deg, #384d3e 0%, #21180c 100%);
  color: #fff;
}

.hero-card--membership .hero-card__label,
.hero-card--membership .hero-card__meta,
.hero-card--membership .hero-card__guest,
.hero-card--membership .hero-card__partner,
.hero-card--membership .hero-card__dates,
.hero-card--membership .hero-card__divider {
  color: rgba(255, 255, 255, 0.72);
}

.hero-card--membership .hero-card__brand {
  color: #fff;
}

.hero-card--loyalty {
  background: linear-gradient(135deg, #f0e0c8 0%, #c9a876 100%);
}

.hero-card--loyalty .hero-card__label,
.hero-card--loyalty .hero-card__meta,
.hero-card--loyalty .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--gift-anniversary {
  background: linear-gradient(155deg, #f0e4f2, #dcc8df 60%, #c9afc9);
}

.hero-card--gift-anniversary .hero-card__label,
.hero-card--gift-anniversary .hero-card__meta,
.hero-card--gift-anniversary .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--gift-care {
  background: linear-gradient(155deg, #dce8e0, #b8cfc2 60%, #9eb8a8);
}

.hero-card--gift-care .hero-card__label,
.hero-card--gift-care .hero-card__meta,
.hero-card--gift-care .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--gift-spa {
  background: linear-gradient(155deg, #e8dfd4, #d4c4b0 60%, #c0a890);
}

.hero-card--gift-spa .hero-card__label,
.hero-card--gift-spa .hero-card__meta,
.hero-card--gift-spa .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--gift-couple {
  background: linear-gradient(155deg, #f5ead8, #e8d4a8 60%, #d8c090);
}

.hero-card--gift-couple .hero-card__label,
.hero-card--gift-couple .hero-card__meta,
.hero-card--gift-couple .hero-card__guest {
  color: rgba(33, 24, 12, 0.62);
}

.hero-card--inline {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  width: 100%;
  height: auto;
  min-height: 0;
  transform: none;
  opacity: 1;
  pointer-events: auto;
  will-change: auto;
  box-shadow: 0 12px 28px -18px rgba(33, 24, 12, 0.28);
}

.hero-card--compact {
  gap: 0.25rem;
  padding: 0.875rem 1rem;
  border-radius: 1rem;
}

.hero-card--compact .hero-card__label {
  margin-top: 0.35rem;
  font-size: 0.625rem;
}

.hero-card--compact .hero-card__title {
  margin-top: 0.15rem;
  font-size: 1.125rem;
}

.hero-card--compact .hero-card__guest {
  font-size: 0.8125rem;
}

.hero-card--compact .hero-card__meta {
  font-size: 0.6875rem;
}

.hero-card--compact .hero-card__footer {
  margin-top: 0.35rem;
}

.hero-card--compact .hero-card__dates {
  font-size: 0.6875rem;
}

.hero-card--compact .hero-card__footer .hero-card__brand {
  font-size: 1rem;
}

/* Mini wallet card for the demo screen headers. */
.hero-card--micro {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  gap: 0.1rem;
  width: auto;
  max-width: 13.5rem;
  height: auto;
  min-height: 0;
  margin: 0 auto 0.85rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.75rem;
  text-align: left;
  transform: none;
  opacity: 1;
  pointer-events: auto;
  will-change: auto;
  box-shadow: 0 10px 24px -16px rgba(0, 0, 0, 0.55);
}

.hero-card--micro .hero-card__partner {
  font-size: 0.6rem;
}

.hero-card--micro .hero-card__label {
  margin-top: 0.1rem;
  font-size: 0.5625rem;
}

.hero-card--micro .hero-card__footer {
  margin-top: 0.3rem;
}

.hero-card--micro .hero-card__footer .hero-card__brand {
  font-size: 0.9rem;
}

.store-demo__screen .hero-card--micro,
.card-demo__screen .hero-card--micro,
.menu-demo__screen .hero-card--micro {
  width: 3.35rem;
  height: 2.05rem;
  max-width: none;
  margin: 0;
  padding: 0;
  border-radius: 0.5rem;
  gap: 0;
  overflow: hidden;
  box-shadow: 0 4px 12px -8px rgba(0, 0, 0, 0.4);
}

.store-demo__screen .hero-card--micro .hero-card__partner,
.card-demo__screen .hero-card--micro .hero-card__partner,
.menu-demo__screen .hero-card--micro .hero-card__partner,
.store-demo__screen .hero-card--micro .hero-card__label,
.card-demo__screen .hero-card--micro .hero-card__label,
.menu-demo__screen .hero-card--micro .hero-card__label,
.store-demo__screen .hero-card--micro .hero-card__title,
.card-demo__screen .hero-card--micro .hero-card__title,
.menu-demo__screen .hero-card--micro .hero-card__title,
.store-demo__screen .hero-card--micro .hero-card__guest,
.card-demo__screen .hero-card--micro .hero-card__guest,
.menu-demo__screen .hero-card--micro .hero-card__guest,
.store-demo__screen .hero-card--micro .hero-card__meta,
.card-demo__screen .hero-card--micro .hero-card__meta,
.menu-demo__screen .hero-card--micro .hero-card__meta {
  display: none;
}

.store-demo__screen .hero-card--micro .hero-card__footer,
.card-demo__screen .hero-card--micro .hero-card__footer,
.menu-demo__screen .hero-card--micro .hero-card__footer {
  display: flex;
  position: absolute;
  bottom: 0.2rem;
  left: 0.28rem;
  right: 0.28rem;
  margin: 0;
}

.store-demo__screen .hero-card--micro .hero-card__brand,
.card-demo__screen .hero-card--micro .hero-card__brand,
.menu-demo__screen .hero-card--micro .hero-card__brand {
  font-size: 0.44rem;
  line-height: 1;
  opacity: 0.8;
}

.hero-card--gift-featured {
  min-height: 6.75rem;
  padding: 0.875rem 1rem 1rem;
  border-color: rgba(232, 212, 168, 0.55);
  box-shadow:
    0 -8px 24px rgba(0, 0, 0, 0.28),
    0 0 0 1px rgba(255, 255, 255, 0.35) inset;
}

.hero-card--gift-featured .hero-card__title {
  font-size: 1.25rem;
}

.hero-cards__stack--wallet {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  height: auto;
  min-height: 0;
  padding: 0.25rem 1rem 1.25rem;
  overflow: hidden;
}

.hero-cards__stack--wallet.is-animated .hero-card--inline {
  transition:
    margin-top 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-cards__stack--wallet .hero-card--inline {
  position: relative;
  flex-shrink: 0;
  z-index: auto;
}

.hero-cards__stack--wallet .hero-card--inline + .hero-card--inline {
  margin-top: -5.5rem;
}

/* Keep the front wallet card a consistent pass-sized card across products,
   independent of how many text lines its content has. */
.hero-cards__stack--wallet .hero-card--inline.is-active {
  aspect-ratio: 1.586;
}

.hero-cards__stack--wallet.is-expanded .hero-card--inline + .hero-card--inline,
[data-gift-wallet].is-expanded .hero-cards__stack--wallet .hero-card--inline + .hero-card--inline {
  margin-top: -2rem;
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card--inline {
  cursor: default;
}

[data-gift-wallet].is-expanded .hero-cards__stack--wallet .hero-card--inline {
  cursor: pointer;
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card--inline:not(.is-active) {
  pointer-events: none;
}

[data-gift-wallet].is-expanded .hero-cards__stack--wallet .hero-card--inline {
  pointer-events: auto;
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card:not(.is-active) .hero-card__guest,
[data-gift-wallet] .hero-cards__stack--wallet .hero-card:not(.is-active) .hero-card__meta,
[data-gift-wallet] .hero-cards__stack--wallet .hero-card:not(.is-active) .hero-card__footer {
  display: none;
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card--inline:not(.is-active) {
  opacity: 0.88;
  transform: scale(0.99);
  box-shadow: 0 10px 24px -16px rgba(33, 24, 12, 0.35);
}

[data-gift-wallet].is-expanded .hero-cards__stack--wallet .hero-card--inline:not(.is-active) {
  opacity: 0.94;
}

[data-gift-wallet].is-expanded .hero-cards__stack--wallet .hero-card--inline:not(.is-active):hover {
  transform: translateY(-3px) scale(1.005);
  opacity: 1;
  box-shadow: 0 16px 32px -12px rgba(33, 24, 12, 0.28);
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card--inline:not(.is-active) .hero-card__title {
  margin-top: 0.1rem;
  font-size: 1.125rem;
}

[data-gift-wallet].is-expanded .hero-cards__stack--wallet {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

[data-gift-wallet] .hero-cards__stack--wallet .hero-card--inline:focus-visible {
  outline: 2px solid #384d3e;
  outline-offset: 2px;
}

.hero-cards__dots {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.25rem;
}

.hero-cards__dot {
  width: 0.4375rem;
  height: 0.4375rem;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(33, 24, 12, 0.18);
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.hero-cards__dot.is-active {
  transform: scale(1.35);
  background: #21180c;
}

.hero-cards__dot:focus-visible {
  outline: 2px solid #21180c;
  outline-offset: 2px;
}

.page--home .hero--with-visual {
  min-height: calc(100dvh - 8rem);
}

.page--home .hero--with-visual .hero__visual {
  padding-bottom: 2rem;
}

@media (prefers-reduced-motion: reduce) {
  .hero-card {
    transition: none;
  }

  .hero-card:not(.is-active) {
    opacity: 0;
    visibility: hidden;
  }
}

.section--wallet {
  padding-top: 2rem;
}

.wallet-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem 3rem;
  max-width: 56rem;
  margin: 0 auto;
}

.wallet-showcase__copy .section__title,
.wallet-showcase__copy .section__desc {
  text-align: left;
  margin-left: 0;
}

.wallet-showcase__figure {
  margin: 0;
}

.wallet-showcase__image {
  display: block;
  width: min(260px, 70vw);
  height: auto;
  filter: drop-shadow(0 20px 40px rgba(33, 24, 12, 0.14));
}

@media (max-width: 900px) {
  .hero--with-visual,
  .wallet-showcase {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .hero--with-visual .hero__content {
    align-items: center;
  }

  .hero--with-visual .headline,
  .hero--with-visual .subhead {
    margin-inline: auto;
  }

  .wallet-showcase__copy .section__title,
  .wallet-showcase__copy .section__desc {
    text-align: center;
    margin-inline: auto;
  }

  .wallet-showcase__figure {
    order: -1;
  }
}

.product-solutions {
  margin-top: 1.75rem;
}

.product-solutions__label {
  margin: 0 0 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6e6356;
}

.product-solutions__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.product-solutions__item {
  display: inline-flex;
  padding: 0.3125rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #21180c;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 999px;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.product-solutions__item:hover {
  background: #fff;
  border-color: rgba(33, 24, 12, 0.18);
}

.hero--with-visual .product-solutions {
  width: 100%;
}

.hero:not(.hero--with-visual) .product-solutions {
  text-align: center;
}

.hero:not(.hero--with-visual) .product-solutions__list {
  justify-content: center;
}

.feature-card__solutions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3125rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.feature-card__solution {
  padding: 0.2rem 0.5rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6e6356;
  background: rgba(33, 24, 12, 0.04);
  border-radius: 999px;
}

.solution {
  width: 100%;
  min-width: 0;
}

.solution-products {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 5vw, 3rem) clamp(2.5rem, 6vw, 4rem);
}

.solution-products .section__intro {
  margin-bottom: 1.5rem;
}

.page--product .solution > .hero {
  max-width: none;
}

.solution-products .card-grid--passes {
  gap: 1.25rem;
}

.card-grid--passes .feature-card__face--front .feature-card__desc {
  flex: 1;
}

.card-grid--passes .feature-card__face--front .feature-card__link {
  margin-top: auto;
}

.feature-card__use-cases {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
  flex: 1;
}

.feature-card__use-cases-label {
  margin: 0.125rem 0 0;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6e6356;
}

.feature-card__use-case {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #6e655c;
}

.feature-card:has(.feature-card__use-cases) .feature-card__desc {
  flex: none;
}

.feature-card:has(.feature-card__use-cases) .feature-card__use-cases {
  flex: 1;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 999px;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.btn--primary {
  color: #f7f5f1;
  background: #21180c;
  box-shadow: 0 1px 2px rgba(33, 24, 12, 0.12), 0 4px 16px rgba(33, 24, 12, 0.12);
}

.btn--primary:hover {
  background: #3d2f1f;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(33, 24, 12, 0.14), 0 8px 24px rgba(33, 24, 12, 0.16);
}

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

.btn--header {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

.btn--ghost {
  color: #21180c;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.12);
  backdrop-filter: blur(8px);
}

.btn--ghost:hover {
  background: #fff;
  border-color: rgba(33, 24, 12, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(33, 24, 12, 0.08);
}

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

.integrations__badge {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0.28rem 0.55rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
  color: #5c4a32;
  background: rgba(201, 168, 118, 0.28);
  border-radius: 999px;
}

/* Integrations page — glu-style grid */
.page--integrations .integrations-page {
  width: min(100%, 72rem);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem) 4rem;
}

.integrations-page__hero {
  max-width: 42rem;
  margin: 0 auto;
  padding: 1.5rem 0 2.5rem;
  text-align: center;
}

.integrations-page__hero .badge {
  margin-bottom: 1rem;
}

.integrations-page__hero .headline {
  margin-bottom: 1rem;
}

.integrations-page__lede {
  max-width: 38ch;
  margin-left: auto;
  margin-right: auto;
}

.integrations-page__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.integrations-page__filter {
  margin: 0;
  padding: 0.55rem 1rem;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  color: rgba(33, 24, 12, 0.72);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 999px;
  cursor: pointer;
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

.integrations-page__filter:hover {
  color: #21180c;
  border-color: rgba(33, 24, 12, 0.18);
}

.integrations-page__filter.is-active {
  color: #f7f5f1;
  background: #21180c;
  border-color: #21180c;
}

.integrations-page__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
  gap: 1rem;
  margin-bottom: 3rem;
}

.integrations-card {
  position: relative;
  display: grid;
  gap: 0.65rem;
  min-height: 10.5rem;
  padding: 1.25rem 1.25rem 1.35rem;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.125rem;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 16px 36px rgba(33, 24, 12, 0.06);
}

.integrations-card[hidden] {
  display: none;
}

.integrations-card__logo {
  display: flex;
  align-items: center;
  min-height: 2rem;
}

.integrations-card__logo--dark {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.65rem;
  background: #191919;
  border-radius: 0.5rem;
}

.integrations-card__logo img {
  display: block;
  width: auto;
  max-width: 8.25rem;
  height: 2rem;
  object-fit: contain;
  object-position: left center;
}

.integrations-card__name {
  margin: 0;
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #21180c;
}

.integrations-card__type {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: rgba(33, 24, 12, 0.62);
}

.integrations-card__badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.55rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
  color: #5c4a32;
  background: rgba(201, 168, 118, 0.22);
  border-radius: 999px;
}

.integrations-page__cta {
  max-width: 36rem;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.5));
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.25rem;
  box-shadow: 0 18px 40px rgba(33, 24, 12, 0.06);
}

.integrations-page__cta-title {
  margin: 0 0 0.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #21180c;
}

.integrations-page__cta-copy {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: rgba(33, 24, 12, 0.68);
}

@media (min-width: 48rem) {
  .integrations-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.125rem;
  }
}

.footer__soon {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6e655c;
}

.section--stories {
  padding-top: 0;
  padding-bottom: 3rem;
}

.section--stories .section__intro {
  margin-bottom: 1.75rem;
}

.stories-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  max-width: 48rem;
  margin: 0 auto;
}

.story-card {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  padding: 1.5rem;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  backdrop-filter: blur(8px);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.story-card:hover {
  border-color: rgba(33, 24, 12, 0.14);
  box-shadow: 0 8px 24px rgba(33, 24, 12, 0.06);
  transform: translateY(-2px);
}

.story-card__name {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #21180c;
}

.story-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.story-card__tag {
  padding: 0.25rem 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b635a;
  background: rgba(33, 24, 12, 0.05);
  border-radius: 999px;
}

.story-card__desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #6b635a;
}

.stories-grid__footer {
  margin: 1.25rem 0 0;
  text-align: center;
}

.stories-grid__link {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6e6356;
  text-decoration: none;
  transition: color 0.2s ease;
}

.stories-grid__link:hover {
  color: #21180c;
}

@media (max-width: 640px) {
  .stories-grid {
    grid-template-columns: 1fr;
  }
}

.page--home .footer {
  margin-top: 1rem;
}

.footer {
  width: 100%;
  min-width: 0;
  padding: 3rem clamp(1.25rem, 4vw, 2.5rem) 2rem;
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(33, 24, 12, 0.08);
  background: rgba(255, 255, 255, 0.35);
}

.footer__inner {
  max-width: 90rem;
  margin: 0 auto;
}

.footer__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2rem 1.5rem;
  margin-bottom: 2.5rem;
}

.footer__heading {
  margin: 0 0 0.875rem;
  font-family: inherit;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6e6356;
}

.footer__heading--follow {
  margin-top: 1.25rem;
}

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

.footer__list li + li {
  margin-top: 0.5rem;
}

/* Pillar labels inside the Produtos footer column (Cards / Commerce / Concierge) */
.footer__list-label {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #a89e93;
}

.footer__list-label + li {
  margin-top: 0.375rem;
}

.footer__list .footer__list-label:not(:first-child) {
  margin-top: 0.875rem;
}

.footer__list a {
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b635a;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer__list a:hover {
  color: #21180c;
}

.footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(33, 24, 12, 0.06);
}

.footer__company {
  display: inline-grid;
  place-items: center;
  width: max-content;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
  text-decoration: none;
  white-space: nowrap;
}

.footer__note {
  margin: 0;
  font-size: 0.75rem;
  color: #6e6356;
}

.footer__short,
.footer__full {
  grid-area: 1 / 1;
  justify-self: center;
  align-self: center;
  transition: opacity 0.5s ease-in-out;
}

.footer__short {
  opacity: 0.35;
}

.footer__full {
  opacity: 0;
}

.footer__company:hover .footer__short {
  opacity: 0;
}

.footer__company:hover .footer__full {
  opacity: 0.65;
}

@media (max-width: 900px) {
  .footer__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .footer {
    padding-top: 2.5rem;
    padding-bottom: 1.5rem;
  }

  .footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 1rem;
    margin-bottom: 2rem;
  }

}

/* Card lifecycle ("Do cliente à assinatura") */

.card-lifecycle {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 1.25rem 0.65rem;
  max-width: 56rem;
  margin: 0 auto;
  align-items: start;
}

.card-lifecycle__stage {
  min-width: 0;
}

.card-lifecycle__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.card-lifecycle__goal {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(33, 24, 12, 0.48);
}

.card-lifecycle__phase {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b635a;
  padding: 0.35rem 0.75rem;
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.65);
}

.card-lifecycle__stage--membership .card-lifecycle__phase {
  color: #f7f5f1;
  background: #21180c;
  border-color: rgba(33, 24, 12, 0.2);
}

.card-lifecycle__grid {
  display: grid;
  gap: 0.875rem;
  width: 100%;
  max-width: 15.5rem;
  margin-inline: auto;
}

.card-lifecycle__connector {
  display: flex;
  align-items: center;
  align-self: center;
  padding-top: 2rem;
  color: rgba(33, 24, 12, 0.28);
}

.card-lifecycle__arrow {
  width: 1.35rem;
  height: 1.35rem;
}

.card-lifecycle__role {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(33, 24, 12, 0.52);
}

.card-lifecycle .card-grid--passes .feature-card,
.card-lifecycle .feature-card__flip,
.card-lifecycle .feature-card__face {
  min-height: 12.5rem;
}

.card-lifecycle .feature-card__flip {
  box-shadow: 0 6px 18px -10px rgba(33, 24, 12, 0.08);
}

.card-lifecycle .feature-card:hover .feature-card__flip {
  box-shadow: 0 10px 24px -12px rgba(33, 24, 12, 0.11);
}

@media (max-width: 960px) {
  .card-lifecycle {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    max-width: 22rem;
  }

  .card-lifecycle__connector {
    justify-content: center;
    padding: 0.15rem 0;
  }

  .card-lifecycle__arrow {
    transform: rotate(90deg);
  }
}

/* Products carousel ("Explore nossa plataforma de cartões") */

.products-carousel {
  width: 100%;
  max-width: 56rem;
  margin: 0 auto;
}

.products-carousel__controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: -0.75rem 0 0.75rem;
}

.products-carousel__track {
  display: flex;
  grid-template-columns: none;
  gap: 1.25rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 1.5rem clamp(0.75rem, 2.5vw, 1.25rem) 2rem;
  margin-block: -1.25rem -0.75rem;
  scroll-behavior: smooth;
  scroll-padding-inline: clamp(0.75rem, 2.5vw, 1.25rem);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  max-width: none;
  margin-inline: 0;
}

.products-carousel__track::-webkit-scrollbar {
  display: none;
}

.products-carousel__track .feature-card {
  flex: 0 0 calc((100% - 1.25rem) / 2);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  min-height: 15rem;
}

.products-carousel__track .feature-card__flip {
  box-shadow: 0 6px 18px -10px rgba(33, 24, 12, 0.08);
}

.products-carousel__track .feature-card:hover .feature-card__flip {
  box-shadow: 0 10px 24px -12px rgba(33, 24, 12, 0.11);
}

.products-carousel__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.products-carousel__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(33, 24, 12, 0.18);
  cursor: pointer;
  transition:
    width 0.2s ease,
    background-color 0.2s ease;
}

.products-carousel__dot[aria-current="true"] {
  width: 1.35rem;
  background: #21180c;
}

@media (max-width: 900px) {
  .products-carousel__controls {
    justify-content: center;
    margin-top: -0.5rem;
  }

  .products-carousel__track .feature-card {
    flex-basis: calc((100% - 1.25rem) / 2);
  }
}

@media (max-width: 640px) {
  .products-carousel__controls {
    justify-content: center;
  }

  .products-carousel__track {
    padding-bottom: 1.75rem;
    margin-block: -1rem -0.5rem;
  }

  .products-carousel__track .feature-card {
    flex-basis: 80vw;
  }
}

/* Animations */

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hero-visual-reveal {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.96);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .badge,
  .headline__line,
  .subhead,
  .hero__actions {
    animation: none;
  }
}

@media (max-width: 900px) {
  .header {
    flex-wrap: nowrap;
    gap: 0.5rem;
    padding: 1rem 1rem;
    position: relative;
    z-index: 210;
  }

  .header__start {
    flex: 0 0 auto;
    gap: 0.5rem;
    min-width: 0;
  }

  .header__menu-btn {
    display: inline-flex;
    margin-left: 0;
  }

  .header__nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: min(100vw, 20rem);
    margin: 0;
    padding: 4.5rem 1.25rem 2rem;
    background: #f7f5f1;
    border-left: 1px solid rgba(33, 24, 12, 0.08);
    box-shadow: -12px 0 40px rgba(33, 24, 12, 0.08);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.25s ease;
    visibility: hidden;
  }

  body.nav-open .header__nav {
    transform: translateX(0);
    visibility: visible;
  }

  .header__nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 150;
    margin: 0;
    padding: 0;
    border: none;
    background: rgba(33, 24, 12, 0.35);
    cursor: pointer;
  }

  body.nav-open .header__nav-backdrop {
    display: block;
  }

  body.nav-open .header__nav-close {
    display: flex;
  }

  .header__nav-close {
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 1px solid rgba(33, 24, 12, 0.1);
    border-radius: 0.625rem;
    background: rgba(255, 255, 255, 0.85);
    color: #21180c;
    cursor: pointer;
    z-index: 10;
  }

  .header__nav-close-icon,
  .header__nav-close-icon::before {
    display: block;
    width: 1rem;
    height: 1.5px;
    background: currentColor;
    border-radius: 1px;
  }

  .header__nav-close-icon {
    position: relative;
    transform: rotate(45deg);
  }

  .header__nav-close-icon::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    transform: rotate(-90deg);
  }

  .header__nav-link {
    display: block;
    padding: 0.875rem 0;
    font-size: 1rem;
    border-bottom: 1px solid rgba(33, 24, 12, 0.06);
  }

  .nav-dropdown {
    border-bottom: none;
  }

  .nav-dropdown__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.875rem 0;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: #21180c;
    cursor: pointer;
    border-bottom: 1px solid rgba(33, 24, 12, 0.06);
  }

  .nav-dropdown__trigger::after {
    content: "";
    display: inline-block;
    width: 0.4375rem;
    height: 0.4375rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(-45deg);
    flex-shrink: 0;
    opacity: 0.45;
  }

  .nav-dropdown__menu,
  .nav-dropdown__menu--wide,
  .nav-dropdown__menu--products {
    display: none;
  }

  .nav-dropdown__menu::before {
    display: none;
  }

  .nav-dropdown__item {
    padding: 0.625rem 0;
    font-size: 0.9375rem;
    border-radius: 0;
  }

  .nav-subdropdown {
    padding: 0.25rem 0 0.375rem;
  }

  .nav-dropdown__item--sub {
    padding: 0.5rem 0 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7f766c;
    cursor: default;
  }

  .nav-dropdown__menu--products .nav-dropdown__group-label {
    padding-left: 0;
    padding-right: 0;
  }

  .nav-dropdown__menu--products .nav-dropdown__divider {
    margin-inline: 0;
  }

  .nav-subdropdown__menu {
    position: static;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    min-width: 0;
    margin-left: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
  }

  .nav-subdropdown__menu .nav-dropdown__item {
    padding: 0.5rem 0;
    font-size: 1rem;
  }

  .nav-subdropdown__menu::before {
    display: none;
  }

  .nav-subdropdown__chevron {
    display: none;
  }

  /* Mobile two-level menu: sublevel panel */
  .header__nav-sublevel {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 4.5rem 1.25rem 2rem;
    background: #f7f5f1;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.25s ease;
    z-index: 5;
  }

  .header__nav--sublevel-open {
    overflow-y: hidden;
  }

  .header__nav--sublevel-open .header__nav-sublevel {
    transform: translateX(0);
  }

  .header__nav-back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
    padding: 0.25rem 0;
    background: none;
    border: none;
    font-size: 0.8125rem;
    color: #6e6356;
    cursor: pointer;
  }

  .header__nav-sublevel-content {
    flex: 1;
    padding-top: 0.25rem;
  }

  .header__actions {
    gap: 0.5rem;
    min-width: 0;
    flex-shrink: 0;
    margin-left: auto;
  }

  .header__link {
    display: none;
  }

  .btn--header {
    padding: 0.5rem 0.625rem;
    font-size: 0.75rem;
    white-space: nowrap;
  }

  .headline {
    font-size: clamp(1.875rem, 8vw, 2.75rem);
  }

  .headline__line--nowrap {
    white-space: normal;
  }

  .hero {
    padding-inline: 1rem;
  }

  .hero--with-visual {
    gap: 1.5rem;
    padding-top: 0.5rem;
    padding-bottom: 2rem;
  }

  .hero__visual-image {
    width: min(220px, 72vw);
    margin-inline: auto;
  }

  .hero__visual-image--browser {
    width: min(340px, 88vw);
  }

  .wallet-showcase__image {
    width: min(220px, 72vw);
    margin-inline: auto;
  }

  .market {
    padding-inline: 1rem;
  }

  .market__inner {
    padding: 1.5rem 1rem;
  }

  .home .section {
    padding-inline: 1rem;
  }

  .section__title {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  .product-solutions__list {
    justify-content: center;
  }

  .hero--with-visual .product-solutions__list {
    justify-content: center;
  }

  .pricing-table-wrap {
    margin-inline: -0.25rem;
  }

  .pricing-table__feature {
    font-size: 0.8125rem;
    padding-inline: 0.75rem;
  }

  .pricing-table th,
  .pricing-table td {
    padding: 0.75rem 0.625rem;
  }

  .pricing-table__cta {
    min-width: 0;
    width: 100%;
    padding-inline: 0.625rem;
    font-size: 0.75rem;
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .page--home .hero {
    min-height: auto;
    padding-top: 1rem;
    padding-bottom: 2rem;
  }

  .page--home .hero--with-visual {
    min-height: auto;
  }

}

@media (max-width: 480px) {
  .header {
    padding-top: 1rem;
  }

  .header__start {
    gap: 0.375rem;
  }

  .header__actions {
    gap: 0.375rem;
  }

  .footer__grid {
    grid-template-columns: 1fr;
  }

  .badge {
    margin-bottom: 1.25rem;
    font-size: 0.75rem;
  }

  .subhead {
    margin-bottom: 1.5rem;
  }

  .footer {
    padding-bottom: 1rem;
  }
}

@media (max-width: 340px) {
  .header__actions .btn--ghost.btn--header {
    display: none;
  }

  .hero__actions {
    width: min(100%, 18rem);
  }

  .hero__actions .btn {
    flex: 1 1 100%;
    justify-content: center;
  }
}

@media (max-height: 640px) {
  .badge {
    margin-bottom: 1rem;
  }

  .headline {
    margin-bottom: 0.75rem;
    font-size: clamp(1.75rem, 4.5vw, 2.5rem);
  }

  .subhead {
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.55;
  }
}

/* ============================================================
   Rede de acesso ao bem-estar — home sections (2026 reposition)
   ============================================================ */

.audience__eyebrow {
  margin: 0 0 1rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
}

/* Wellness Menu platform */
.card-grid--problem {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.platform-carousel:not(.is-enhanced) .platform-carousel__track {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: visible;
  padding: 0;
  margin: 0;
  scroll-snap-type: none;
}

@media (max-width: 640px) {
  .card-grid--problem,
  .platform-carousel:not(.is-enhanced) .platform-carousel__track {
    grid-template-columns: 1fr;
  }
}

.problem-card {
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1rem;
  backdrop-filter: blur(8px);
}

.problem-card__role {
  display: inline-block;
  margin-bottom: 0.75rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #384d3e;
}

.problem-card__title {
  margin: 0 0 0.5rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #21180c;
}

.problem-card__desc {
  margin: 0;
  flex: 1;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #6b635a;
}

.problem-card__link {
  margin-top: 1rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #21180c;
  text-decoration: none;
}

.problem-card__link::after {
  content: " →";
}

.problem-card__link:hover {
  text-decoration: underline;
}

.problem-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 1rem;
  color: #384d3e;
  background: rgba(56, 77, 62, 0.09);
  border-radius: 0.75rem;
}

.problem-card__icon svg {
  width: 1.375rem;
  height: 1.375rem;
}

/* Platform carousel ("A plataforma") */

.platform-carousel {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
}

.platform-carousel__controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: -0.75rem 0 0.75rem;
}

.platform-carousel__button {
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #21180c;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 999px;
  box-shadow: 0 10px 26px rgba(33, 24, 12, 0.08);
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease,
    opacity 0.2s ease;
}

.platform-carousel__button span {
  display: block;
  margin-top: -0.08em;
  font-size: 1.9rem;
  line-height: 1;
}

.platform-carousel__button:hover {
  background: #fff;
  border-color: rgba(33, 24, 12, 0.16);
  box-shadow: 0 14px 32px rgba(33, 24, 12, 0.12);
  transform: translateY(-1px);
}

.platform-carousel__button:disabled {
  opacity: 0.35;
  cursor: default;
  transform: none;
  box-shadow: none;
}

.platform-carousel__track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 1.5rem clamp(0.75rem, 2.5vw, 1.25rem) 2rem;
  margin-block: -1.25rem -0.75rem;
  scroll-behavior: smooth;
  scroll-padding-inline: clamp(0.75rem, 2.5vw, 1.25rem);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.platform-carousel__track::-webkit-scrollbar {
  display: none;
}

.platform-carousel__track .problem-card {
  flex: 0 0 calc((100% - 1.25rem) / 2);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  min-width: 0;
}

.platform-carousel__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.platform-carousel__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(33, 24, 12, 0.18);
  cursor: pointer;
  transition:
    width 0.2s ease,
    background-color 0.2s ease;
}

.platform-carousel__dot[aria-current="true"] {
  width: 1.35rem;
  background: #21180c;
}

@media (max-width: 900px) {
  .platform-carousel__controls {
    justify-content: center;
    margin-top: -0.5rem;
  }
}

@media (max-width: 640px) {
  .platform-carousel__controls {
    justify-content: center;
  }

  .platform-carousel__track {
    padding-bottom: 1.75rem;
    margin-block: -1rem -0.5rem;
  }

  .platform-carousel__track .problem-card {
    flex-basis: 85vw;
  }
}

/* Prova social — faixa de parceiros */
.trust {
  width: 100%;
  max-width: 90rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem) clamp(2rem, 5vw, 3.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.trust + .trust {
  padding-top: 0;
  margin-top: -1rem;
}

.trust__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
}

.trust__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem;
  width: 100%;
  max-width: 38rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trust__cards--solo {
  grid-template-columns: 1fr;
  max-width: 19rem;
}

.trust-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  height: 100%;
  padding: 1.25rem 1.375rem;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(145deg, #fff 0%, rgba(244, 234, 214, 0.6) 100%);
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 1rem;
  box-shadow: 0 10px 28px -14px rgba(33, 24, 12, 0.2);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.trust-card:hover {
  transform: translateY(-2px);
  border-color: rgba(56, 77, 62, 0.24);
  box-shadow: 0 16px 36px -16px rgba(33, 24, 12, 0.28);
}

.trust-card__dot {
  flex: none;
  width: 0.6875rem;
  height: 0.6875rem;
  border-radius: 999px;
  background: #384d3e;
  box-shadow: 0 0 0 4px rgba(56, 77, 62, 0.16);
}

.trust-card__copy {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
}

.trust-card__name {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.5rem, 3.5vw, 1.75rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #21180c;
}

.trust-card:hover .trust-card__name {
  text-decoration: underline;
}

.trust-card__type {
  font-size: 0.875rem;
  line-height: 1.35;
  color: #6b635a;
}

@media (max-width: 32rem) {
  .trust__cards {
    grid-template-columns: 1fr;
    max-width: 22rem;
  }
}

.problem-close {
  margin: 2.5rem auto 0;
  max-width: 32ch;
  text-align: center;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  line-height: 1.2;
  color: #21180c;
}

/* 3 — Como funciona */
.flows-carousel {
  width: 100%;
  overflow: hidden;
}

.flows-carousel__track {
  display: flex;
  transition: transform 0.4s ease;
  align-items: stretch;
}

.flow-card {
  flex: 0 0 100%;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.09);
  border-radius: 1.25rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 2px 20px rgba(33, 24, 12, 0.05);
}

.flow-card__header {
  margin-bottom: 1.75rem;
}

.flow-card__eyebrow {
  display: inline-block;
  margin-bottom: 0.6rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(33, 24, 12, 0.5);
}

.flow-card__title {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.25rem, 2.5vw, 1.6rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #21180c;
}

.flow-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.flow-step {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.flow-step__num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.1rem;
  color: #f7f5f1;
  background: #21180c;
  border-radius: 999px;
}

.flow-step__title {
  margin: 0 0 0.3rem;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  color: #21180c;
}

.flow-step__desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #6b635a;
}

.flows-carousel__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.flows-carousel__btn {
  appearance: none;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.12);
  border-radius: 50%;
  width: 2.25rem;
  height: 2.25rem;
  font-size: 1.1rem;
  color: #21180c;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, background 0.15s;
  line-height: 1;
}

.flows-carousel__btn:hover {
  border-color: rgba(33, 24, 12, 0.3);
  background: #fff;
}

.flows-carousel__dots {
  display: flex;
  gap: 0.4rem;
}

.flows-carousel__dot {
  appearance: none;
  border: none;
  padding: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: rgba(33, 24, 12, 0.18);
  cursor: pointer;
  transition: background 0.2s;
}

.flows-carousel__dot--active {
  background: #21180c;
}

/* Product demos */
.page--product .hero.hero--with-visual {
  max-width: 80rem;
  width: 100%;
  padding-bottom: clamp(2rem, 5vw, 3rem);
}

.page--product .hero--with-visual .headline {
  max-width: min(20ch, 100%);
}

.page--product .hero--with-visual .subhead {
  max-width: 42ch;
}

.hero--with-visual .hero__visual.menu-demo,
.hero--with-visual .hero__visual.store-demo,
.hero--with-visual .hero__visual.card-demo,
.hero--with-visual .hero__visual.gift-card-demo,
.hero--with-visual .hero__visual.concierge-demo {
  --hero-pass-width: auto;
  --demo-phone-width: 22.5rem;
  width: min(var(--demo-phone-width), 36vw);
  max-width: var(--demo-phone-width);
  margin: 0;
  justify-self: end;
}

.hero--with-visual .menu-demo,
.hero--with-visual .store-demo,
.hero--with-visual .card-demo,
.hero--with-visual .gift-card-demo,
.hero--with-visual .concierge-demo {
  width: 100%;
  max-width: none;
  margin: 0;
}

.menu-demo,
.store-demo,
.card-demo,
.gift-card-demo,
.concierge-demo {
  max-width: 22.5rem;
  width: 100%;
}

/* Shared product demo shell */
.demo-phone__screen > .menu-demo__screen,
.demo-phone__screen > .store-demo__screen,
.demo-phone__screen > .card-demo__screen,
.demo-phone__screen > .concierge-demo__screen {
  flex: 1;
  min-height: 0;
  height: auto;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.menu-demo__screen,
.store-demo__screen,
.card-demo__screen,
.gift-card-demo__screen,
.concierge-demo__screen {
  display: flex;
  flex-direction: column;
  height: 34.75rem;
  overflow: hidden;
  border: 1px solid rgba(33, 24, 12, 0.12);
  border-radius: 1.35rem;
  background: #fff;
  box-shadow:
    0 18px 42px rgba(33, 24, 12, 0.08),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}

.menu-demo__header,
.store-demo__header,
.card-demo__header,
.gift-card-demo__header,
.concierge-demo__header {
  flex-shrink: 0;
  padding: 0.875rem 1.25rem 0.8rem;
  text-align: center;
  color: #e8e3db;
  background:
    radial-gradient(ellipse 70% 50% at 10% -10%, rgba(244, 234, 214, 0.18), transparent 55%),
    radial-gradient(ellipse 55% 70% at 92% 115%, rgba(33, 24, 12, 0.22), transparent 55%),
    linear-gradient(158deg, #3c5443 0%, #283b2e 52%, #1c2820 100%);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.16);
}

.product-demo__cobrand {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  margin-bottom: 0.35rem;
}

.product-demo__brand {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 0.9375rem;
  line-height: 1;
}

.product-demo__divider {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  opacity: 0.45;
}

.product-demo__partner {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-demo__label {
  margin: 0 0 0.5rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(247, 245, 241, 0.62);
}

.product-demo__cobrand--compact {
  justify-content: flex-start;
  margin-bottom: 0.2rem;
}

.product-demo__cobrand--compact .product-demo__brand {
  font-size: 0.8125rem;
}

.product-demo__cobrand--on-light .product-demo__divider {
  color: rgba(33, 24, 12, 0.42);
}

.product-demo__cobrand--on-light .product-demo__partner {
  color: rgba(33, 24, 12, 0.68);
}


.menu-demo__heading,
.store-demo__heading,
.card-demo__heading,
.gift-card-demo__heading,
.concierge-demo__heading {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #f0ece4;
}

.menu-demo__sub,
.store-demo__sub,
.card-demo__sub,
.gift-card-demo__sub,
.concierge-demo__sub {
  margin: 0.25rem 0 0;
  font-size: 0.6875rem;
  letter-spacing: 0.025em;
  color: rgba(232, 227, 219, 0.54);
}

.menu-demo__body,
.store-demo__body,
.card-demo__body,
.gift-card-demo__body,
.concierge-demo__body {
  flex: 1;
  min-height: 0;
  padding: 0.875rem;
  background: #f4f1ea;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.menu-demo__body::-webkit-scrollbar,
.store-demo__body::-webkit-scrollbar,
.card-demo__body::-webkit-scrollbar,
.gift-card-demo__body::-webkit-scrollbar,
.concierge-demo__body::-webkit-scrollbar {
  display: none;
}

.menu-demo__footer,
.store-demo__footer,
.card-demo__footer,
.gift-card-demo__footer,
.concierge-demo__footer {
  flex-shrink: 0;
  display: grid;
  gap: 0.5rem;
  padding: 0.75rem 0.875rem 0.875rem;
  text-align: center;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid rgba(33, 24, 12, 0.07);
  backdrop-filter: blur(8px);
}

.menu-demo__footer.demo-footer--chat,
.concierge-demo__footer.demo-footer--chat {
  padding: 0.625rem 0.75rem 0.875rem;
  text-align: center;
  background: #f0f2f5;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.wa-composer {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
}

.wa-composer__input {
  display: flex;
  flex: 1;
  align-items: center;
  min-height: 2.25rem;
  min-width: 0;
  padding: 0.5rem 0.875rem;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.wa-composer__text {
  font-size: 0.8125rem;
  line-height: 1.35;
  color: #111b21;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wa-composer__field {
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: #111b21;
  outline: none;
}

.wa-composer__field::placeholder {
  color: #8696a0;
}

.wa-composer__field:disabled {
  opacity: 0.6;
}

.wa-composer__send {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: none;
  background: #25d366 center / 1rem 1rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M2.01 21 23 12 2.01 3 2 10l15 2-15 2z'/%3E%3C/svg%3E");
  border-radius: 50%;
  cursor: pointer;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.wa-composer__send:hover:not(:disabled) {
  transform: scale(1.04);
}

.wa-composer__send:disabled {
  opacity: 0.42;
  cursor: default;
}

.menu-demo__cta,
.store-demo__cta,
.card-demo__cta,
.gift-card-demo__cta,
.gift-card-demo__action-cta,
.concierge-demo__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #ede9e1;
  background: linear-gradient(160deg, #2d4334 0%, #1d2d22 100%);
  border-radius: 999px;
  box-shadow:
    0 4px 14px rgba(29, 45, 34, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.menu-demo__cta:hover,
.store-demo__cta:hover,
.card-demo__cta:hover {
  transform: translateY(-1px);
  box-shadow:
    0 6px 18px rgba(29, 45, 34, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.menu-demo__cta::before,
.store-demo__cta::before {
  content: "";
  flex-shrink: 0;
  width: 0.9375rem;
  height: 0.9375rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ede9e1'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.menu-demo__powered,
.store-demo__powered,
.card-demo__powered,
.gift-card-demo__powered,
.concierge-demo__powered {
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9a9084;
}

.menu-demo__caption,
.store-demo__caption,
.card-demo__caption,
.gift-card-demo__caption,
.concierge-demo__caption {
  margin-top: 1rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #6b635a;
}

.menu-demo__body {
  display: grid;
  gap: 1rem;
}

.menu-demo__upsell {
  display: grid;
  gap: 0.5rem;
}

.menu-demo__upsell-card {
  padding: 0.6875rem 0.75rem;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow: 0 1px 3px rgba(33, 24, 12, 0.04);
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.menu-demo__upsell-card:hover {
  border-color: rgba(33, 24, 12, 0.14);
  box-shadow: 0 4px 10px rgba(33, 24, 12, 0.06);
}

.menu-demo__upsell-card.is-selected {
  border-color: rgba(56, 77, 62, 0.28);
  background: linear-gradient(160deg, rgba(212, 228, 220, 0.2) 0%, #fff 100%);
  box-shadow:
    0 4px 12px rgba(56, 77, 62, 0.08),
    inset 3px 0 0 #384d3e;
}

.menu-demo__upsell-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.menu-demo__upsell-check {
  position: relative;
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  border: 1.5px solid rgba(33, 24, 12, 0.2);
  border-radius: 50%;
  background: #fff;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.menu-demo__upsell-check::after {
  content: "";
  position: absolute;
  left: 0.34rem;
  top: 0.15rem;
  width: 0.26rem;
  height: 0.48rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transform-origin: center;
  transition: transform 0.15s ease;
}

.menu-demo__upsell-card.is-selected .menu-demo__upsell-check {
  border-color: #384d3e;
  background: #384d3e;
  box-shadow: 0 0 0 1px #384d3e;
}

.menu-demo__upsell-card.is-selected .menu-demo__upsell-check::after {
  transform: rotate(45deg) scale(1);
}

.menu-demo__upsell-copy {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.menu-demo__upsell-name {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  color: #1e1509;
}

.menu-demo__upsell-meta {
  font-size: 0.625rem;
  line-height: 1.35;
  color: #7a6e63;
}

.menu-demo__upsell-price {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #2e4535;
  white-space: nowrap;
}

.menu-demo__upsell-wallet,
.card-demo__addon-wallet {
  flex-shrink: 0;
  line-height: 0;
}

.store-demo__product-wallet {
  flex-shrink: 0;
  line-height: 0;
}

.concierge-demo__body {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.concierge-demo__body .concierge__chat {
  margin: 0;
  padding: 0;
  max-width: none;
  gap: 0.5rem;
}

.concierge-demo__body .concierge__bubble {
  padding: 0.5rem 0.75rem 0.375rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.concierge-demo__body .concierge__bubble-time {
  font-size: 0.5625rem;
}

.demo-phone__screen--whatsapp .concierge-demo__screen {
  background: #efeae2;
}

.demo-phone__screen--whatsapp .concierge-demo__body {
  padding: 1rem 0.75rem 0.85rem;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18) 25%, transparent 25%) 0 0 / 1rem 1rem,
    linear-gradient(315deg, rgba(255, 255, 255, 0.14) 25%, transparent 25%) 0 0 / 1rem 1rem,
    #efeae2;
}

.demo-phone__screen--whatsapp .concierge-demo__body .concierge__bubble--in {
  color: #111b21;
  background: #d9fdd3;
  border-bottom-right-radius: 0.22rem;
  box-shadow: 0 1px 0 rgba(17, 27, 33, 0.08);
}

.demo-phone__screen--whatsapp .concierge-demo__body .concierge__bubble--out {
  color: #111b21;
  background: #fff;
  border-bottom-left-radius: 0.22rem;
  box-shadow: 0 1px 0 rgba(17, 27, 33, 0.08);
}

.menu-demo__group {
  display: grid;
  gap: 0.5rem;
}

.menu-demo__group-title,
.card-demo__group-title {
  margin: 0 0 0.1rem;
  padding-bottom: 0.45rem;
  font-size: 0.5938rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9a8f83;
  border-bottom: 1px solid rgba(33, 24, 12, 0.07);
}

.menu-demo__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.menu-demo__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.625rem;
  padding: 0.75rem 0.875rem;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow: 0 1px 3px rgba(33, 24, 12, 0.04);
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.menu-demo__item:hover,
.menu-demo__item.is-selected {
  border-color: rgba(56, 77, 62, 0.26);
  background: linear-gradient(160deg, #fff 0%, rgba(212, 228, 220, 0.2) 100%);
  box-shadow:
    0 8px 20px rgba(33, 24, 12, 0.07),
    inset 3px 0 0 #384d3e;
}

.menu-demo__item:hover {
  transform: translateY(-1px);
}

.menu-demo__item-radio {
  position: relative;
  flex-shrink: 0;
  width: 1.0625rem;
  height: 1.0625rem;
  border: 1.5px solid rgba(33, 24, 12, 0.18);
  border-radius: 50%;
  background: #fff;
  transition: border-color 0.15s ease;
}

.menu-demo__item-radio::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.46rem;
  height: 0.46rem;
  transform: translate(-50%, -50%) scale(0);
  background: #384d3e;
  border-radius: 50%;
  transition: transform 0.15s ease;
}

.menu-demo__item.is-selected .menu-demo__item-radio {
  border-color: #384d3e;
}

.menu-demo__item.is-selected .menu-demo__item-radio::after {
  transform: translate(-50%, -50%) scale(1);
}

.menu-demo__item-copy {
  display: grid;
  gap: 0.1rem;
  flex: 1;
  min-width: 0;
}

.menu-demo__item-name {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  color: #1e1509;
}

.menu-demo__item-meta {
  font-size: 0.6875rem;
  line-height: 1.4;
  color: #7a6e63;
}

.menu-demo__item-price {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #2e4535;
}

.menu-demo__item-badge {
  flex-shrink: 0;
  padding: 0.2rem 0.5rem;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2e4535;
  background: rgba(212, 228, 220, 0.9);
  border-radius: 999px;
}

/* Member benefit: when the Wellness Card is added, services drop to Grátis or a
   discounted price. The base price strikes through while the member value
   slides in. */
.menu-demo__item-price--switch {
  display: inline-grid;
  justify-items: end;
  align-items: center;
  line-height: 1.05;
  text-align: right;
}

.menu-demo__price-base {
  position: relative;
  grid-row: 1;
  grid-column: 1;
  transition:
    color 0.25s ease,
    opacity 0.25s ease,
    font-size 0.25s ease,
    font-weight 0.25s ease,
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-demo__price-base::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 52%;
  height: 1.5px;
  background: currentColor;
  border-radius: 1px;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-demo__price-member {
  grid-row: 2;
  grid-column: 1;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #2e7d4f;
  white-space: nowrap;
  max-height: 0;
  opacity: 0;
  transform: translateY(-0.2rem);
  transition:
    max-height 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.25s ease,
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-demo__screen.is-member .menu-demo__price-base {
  color: #a79d92;
  opacity: 0.85;
  font-size: 0.6875rem;
  font-weight: 500;
  transform: translateY(-0.05rem);
}

.menu-demo__screen.is-member .menu-demo__price-base::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.menu-demo__screen.is-member .menu-demo__price-member {
  max-height: 1.5rem;
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .menu-demo__price-base,
  .menu-demo__price-base::after,
  .menu-demo__price-member {
    transition: none;
  }
}

/* Wellness Store demo */
.store-demo__products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.store-demo__product {
  position: relative;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow: 0 1px 3px rgba(33, 24, 12, 0.04);
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.store-demo__product-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.store-demo__product:hover,
.store-demo__product.is-selected {
  border-color: rgba(56, 77, 62, 0.28);
  box-shadow:
    0 8px 20px rgba(33, 24, 12, 0.07),
    inset 3px 0 0 #384d3e;
}

.store-demo__product:hover {
  transform: translateY(-1px);
}

.store-demo__product.is-selected {
  background: linear-gradient(160deg, rgba(244, 234, 214, 0.3) 0%, #fff 100%);
}

.store-demo__product-radio {
  position: relative;
  flex-shrink: 0;
  width: 1.0625rem;
  height: 1.0625rem;
  border: 1.5px solid rgba(33, 24, 12, 0.18);
  border-radius: 50%;
  background: #fff;
  transition: border-color 0.15s ease;
}

.store-demo__product-radio::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.46rem;
  height: 0.46rem;
  transform: translate(-50%, -50%) scale(0);
  background: #384d3e;
  border-radius: 50%;
  transition: transform 0.15s ease;
}

.store-demo__product.is-selected .store-demo__product-radio {
  border-color: #384d3e;
}

.store-demo__product.is-selected .store-demo__product-radio::after {
  transform: translate(-50%, -50%) scale(1);
}

.store-demo__product-copy {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.store-demo__product-tag {
  width: fit-content;
  margin-bottom: 0.2rem;
  padding: 0.15rem 0.5rem;
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a3e10;
  background: rgba(244, 224, 168, 0.7);
  border: 1px solid rgba(180, 130, 40, 0.18);
  border-radius: 999px;
}

.store-demo__product-name {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  color: #1e1509;
}

.store-demo__product-meta {
  font-size: 0.6875rem;
  line-height: 1.4;
  color: #7a6e63;
}

.store-demo__product-action {
  display: grid;
  justify-items: end;
  gap: 0.3rem;
  flex-shrink: 0;
}

.store-demo__product-price {
  font-size: 0.875rem;
  font-weight: 700;
  color: #2e4535;
}

/* Product demo phone shell */
.demo-phone {
  width: 100%;
  margin: 0 auto;
}

.demo-phone__device {
  padding: 0.7rem;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.18), transparent 24%),
    linear-gradient(165deg, #566151 0%, #3d4539 52%, #24291f 100%);
  border-radius: 2.45rem;
  box-shadow:
    0 30px 70px rgba(33, 24, 12, 0.24),
    0 10px 24px rgba(33, 24, 12, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.demo-phone__screen {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 40.75rem;
  overflow: hidden;
  background:
    linear-gradient(180deg, #faf8f2 0%, #f3efe7 100%);
  border-radius: 1.9rem;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.44) inset,
    0 0 0 1px rgba(33, 24, 12, 0.16);
}

.demo-phone__screen::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.42rem;
  transform: translateX(-50%);
  width: 6rem;
  height: 0.24rem;
  background: rgba(33, 24, 12, 0.16);
  border-radius: 999px;
  pointer-events: none;
}

.demo-phone__browser {
  flex-shrink: 0;
  padding: 0.72rem 0.82rem 0.7rem;
  background: rgba(249, 247, 241, 0.96);
  border-bottom: 1px solid rgba(33, 24, 12, 0.08);
}

.demo-phone__browser-status,
.demo-phone__whatsapp-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0 0.35rem 0.45rem;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

.demo-phone__browser-status {
  color: rgba(33, 24, 12, 0.82);
}

.demo-phone__browser-indicators,
.demo-phone__whatsapp-indicators {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
}

.demo-phone__signal {
  position: relative;
  width: 0.78rem;
  height: 0.56rem;
  border-bottom: 0.16rem solid currentColor;
  border-left: 0.16rem solid currentColor;
  border-radius: 0 0 0 0.12rem;
}

.demo-phone__signal::before,
.demo-phone__signal::after {
  content: "";
  position: absolute;
  bottom: -0.16rem;
  width: 0.16rem;
  background: currentColor;
  border-radius: 999px 999px 0 0;
}

.demo-phone__signal::before {
  left: 0.26rem;
  height: 0.38rem;
}

.demo-phone__signal::after {
  right: 0;
  height: 0.56rem;
}

.demo-phone__wifi {
  width: 0.72rem;
  height: 0.48rem;
  border: 0.14rem solid currentColor;
  border-bottom: 0;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 999px 999px 0 0;
}

.demo-phone__battery {
  position: relative;
  width: 1.02rem;
  height: 0.48rem;
  border: 0.12rem solid currentColor;
  border-radius: 0.16rem;
}

.demo-phone__battery::before {
  content: "";
  position: absolute;
  top: 50%;
  right: -0.24rem;
  width: 0.12rem;
  height: 0.26rem;
  transform: translateY(-50%);
  background: currentColor;
  border-radius: 0 999px 999px 0;
}

.demo-phone__battery::after {
  content: "";
  position: absolute;
  inset: 0.08rem 0.28rem 0.08rem 0.08rem;
  background: currentColor;
  border-radius: 0.08rem;
}

.demo-phone__addressbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.15rem;
  padding: 0 0.72rem;
  color: #21180c;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.9rem;
  box-shadow:
    0 10px 22px rgba(33, 24, 12, 0.05),
    0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.demo-phone__browser-lock {
  position: relative;
  width: 0.56rem;
  height: 0.48rem;
  border: 0.1rem solid currentColor;
  border-radius: 0.12rem;
  opacity: 0.58;
}

.demo-phone__browser-lock::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.32rem;
  width: 0.42rem;
  height: 0.38rem;
  transform: translateX(-50%);
  border: 0.1rem solid currentColor;
  border-bottom: 0;
  border-radius: 999px 999px 0 0;
}

.demo-phone__browser-url {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(33, 24, 12, 0.72);
}

.demo-phone__browser-menu {
  position: relative;
  width: 0.18rem;
  height: 0.18rem;
  color: rgba(33, 24, 12, 0.5);
  background: currentColor;
  border-radius: 999px;
  box-shadow: 0 -0.34rem 0 currentColor, 0 0.34rem 0 currentColor;
}

.demo-phone__screen--whatsapp {
  background: #efeae2;
}

.demo-phone__screen--whatsapp::after {
  background: rgba(17, 27, 33, 0.24);
}

.demo-phone__whatsapp {
  flex-shrink: 0;
  color: #eafff7;
  background: #075e54;
}

.demo-phone__whatsapp-status {
  padding: 0.72rem 1rem 0.35rem;
  color: rgba(234, 255, 247, 0.92);
}

.wa-chat-header {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.55rem;
  min-height: 3.2rem;
  padding: 0.2rem 0.75rem 0.65rem;
}

.wa-chat-header__back {
  width: 0.62rem;
  height: 0.62rem;
  border-left: 0.14rem solid currentColor;
  border-bottom: 0.14rem solid currentColor;
  transform: rotate(45deg);
  opacity: 0.92;
}

.wa-chat-header__avatar {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.1rem;
  line-height: 1;
  color: #075e54;
  background: #e7f3ee;
  border-radius: 999px;
}

.wa-chat-header__copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.wa-chat-header__title,
.wa-chat-header__status {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wa-chat-header__title {
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.1;
}

.wa-chat-header__status {
  font-size: 0.69rem;
  line-height: 1.1;
  color: rgba(234, 255, 247, 0.78);
}

.wa-chat-header__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
}

.wa-chat-header__icon {
  position: relative;
  display: block;
  width: 1rem;
  height: 1rem;
  opacity: 0.9;
}

.wa-chat-header__icon--video {
  border: 0.12rem solid currentColor;
  border-radius: 0.18rem;
}

.wa-chat-header__icon--video::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -0.42rem;
  width: 0;
  height: 0;
  transform: translateY(-50%);
  border-top: 0.28rem solid transparent;
  border-bottom: 0.28rem solid transparent;
  border-left: 0.38rem solid currentColor;
}

.wa-chat-header__icon--phone {
  border: 0.12rem solid currentColor;
  border-top-color: transparent;
  border-right-color: transparent;
  border-radius: 0 0 0 0.62rem;
  transform: rotate(-45deg);
}

.wa-chat-header__icon--more {
  width: 0.2rem;
  height: 0.2rem;
  margin-inline: 0.2rem;
  background: currentColor;
  border-radius: 999px;
  box-shadow: 0 -0.34rem 0 currentColor, 0 0.34rem 0 currentColor;
}

.demo-phone__toolbar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  min-height: 3.875rem;
  padding: 1.2rem 1rem 0.55rem;
}

.demo-phone__toolbar::before {
  content: "";
  position: absolute;
  top: 0.58rem;
  left: 50%;
  width: 4.5rem;
  height: 0.38rem;
  transform: translateX(-50%);
  background: rgba(33, 24, 12, 0.18);
  border-radius: 999px;
}

.demo-phone__nav-btn {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(33, 24, 12, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.52);
  color: #21180c;
  cursor: pointer;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.demo-phone__nav-btn:hover {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(33, 24, 12, 0.22);
  box-shadow: 0 8px 18px rgba(33, 24, 12, 0.08);
  transform: translateY(-1px);
}

.demo-phone__nav-btn:focus-visible {
  outline: 2px solid #384d3e;
  outline-offset: 2px;
}

.demo-phone__nav-btn--chat .demo-phone__nav-icon {
  width: 0.875rem;
  height: 0.75rem;
  border: 1.5px solid currentColor;
  border-radius: 0.5rem;
  border-bottom-left-radius: 0.125rem;
  box-shadow:
    -0.2rem 0.18rem 0 -0.12rem #f4f0e8,
    -0.2rem 0.18rem 0 -0.05rem currentColor;
}

.demo-phone__nav-btn--chat .demo-phone__nav-icon::before,
.demo-phone__nav-btn--chat .demo-phone__nav-icon::after {
  content: "";
  position: absolute;
  width: 0.125rem;
  height: 0.125rem;
  border-radius: 999px;
  background: currentColor;
  top: 50%;
  transform: translateY(-50%);
}

.demo-phone__nav-btn--chat .demo-phone__nav-icon::before {
  left: 0.2rem;
  box-shadow: 0.18rem 0 0 currentColor, 0.36rem 0 0 currentColor;
}

.demo-phone__nav-btn--chat .demo-phone__nav-icon::after {
  display: none;
}

.demo-phone__nav-icon--menu {
  width: 0.9rem;
  height: 0.55rem;
}

.demo-phone__nav-icon--menu::before {
  top: 0;
  box-shadow: 0 0.22rem 0 currentColor, 0 0.44rem 0 currentColor;
}

.demo-phone__nav-icon--menu::after {
  display: none;
}

.demo-phone__nav-icon {
  position: relative;
  display: block;
}

.demo-phone__nav-icon::before,
.demo-phone__nav-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 0.9rem;
  height: 0.125rem;
  border-radius: 999px;
  background: currentColor;
}

.demo-phone__brand {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.1875rem;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #21180c;
}

.demo-phone__status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2rem;
  margin: 0 1rem 0.75rem;
  padding: 0.45rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  color: rgba(33, 24, 12, 0.72);
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(33, 24, 12, 0.05);
}

.demo-phone__status::before {
  content: "";
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  background: #6e9a7f;
  border-radius: 999px;
  box-shadow: 0 0 0 0.18rem rgba(110, 154, 127, 0.14);
}

.demo-phone__status.is-updating {
  animation: product-demo-status 0.32s ease;
}

.demo-phone__status.visually-hidden {
  width: 1px;
  min-height: 0;
  height: 1px;
  padding: 0;
  margin: -1px;
}

[data-demo-action] {
  cursor: pointer;
}

[data-demo-action]:focus-visible {
  outline: 2px solid #384d3e;
  outline-offset: 2px;
}

[data-demo-action].is-pressed,
.demo-phone__nav-btn.is-pressed {
  animation: product-demo-press 0.42s ease;
}

@keyframes product-demo-status {
  0% {
    transform: translateY(0);
  }

  35% {
    transform: translateY(-1px);
  }

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

@keyframes product-demo-press {
  0% {
    transform: scale(1);
  }

  45% {
    transform: scale(0.98);
  }

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

.demo-phone__intro {
  flex-shrink: 0;
  padding: 0.25rem 1.25rem 0.875rem;
}

.demo-phone__hello {
  margin: 0;
  font-size: clamp(1.625rem, 5vw, 1.875rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #21180c;
}

.demo-phone__count {
  margin: 0.4rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: rgba(33, 24, 12, 0.62);
}

.demo-phone__screen .store-demo__header,
.demo-phone__screen .menu-demo__header,
.demo-phone__screen .concierge-demo__header {
  padding: 0.75rem 1rem 0.6875rem;
}

.demo-phone__screen .store-demo__heading,
.demo-phone__screen .menu-demo__heading,
.demo-phone__screen .concierge-demo__heading {
  font-size: 1.125rem;
}

.demo-phone__screen .card-demo__header--checkout {
  padding: 0.5rem 0.75rem;
}

[data-gift-wallet] .demo-phone__device {
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.16), transparent 22%),
    linear-gradient(165deg, #2b2b2d 0%, #111113 52%, #050506 100%);
  box-shadow:
    0 34px 76px rgba(0, 0, 0, 0.34),
    0 14px 28px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

[data-gift-wallet] .demo-phone__screen {
  background: #000;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.1) inset,
    0 0 0 1px rgba(0, 0, 0, 0.74);
}

[data-gift-wallet] .demo-phone__screen::after {
  background: rgba(255, 255, 255, 0.42);
}

[data-gift-wallet] .demo-phone__browser-status {
  color: #f5f5f7;
}

[data-gift-wallet] .demo-phone__intro {
  padding: 0.35rem 1.2rem 0.95rem;
  background: #000;
}

[data-gift-wallet] .demo-phone__hello {
  color: #f5f5f7;
}

[data-gift-wallet] .demo-phone__count {
  color: rgba(245, 245, 247, 0.62);
}

.gift-card-demo__wallet {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  padding: 0 0 1.35rem;
}

[data-gift-wallet] .hero-cards__stack--wallet {
  padding: 0.15rem 1rem 0.65rem;
  background: #000;
}

.gift-card-demo__action-panel {
  display: grid;
  gap: 0.2rem;
  margin: auto 1rem 0;
  padding: 0.875rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1rem;
  box-shadow: 0 14px 28px rgba(33, 24, 12, 0.07);
}

[data-gift-wallet] .gift-card-demo__action-panel {
  background: rgba(28, 28, 30, 0.96);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 18px 34px rgba(0, 0, 0, 0.36),
    0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

.gift-card-demo__action-label {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(33, 24, 12, 0.5);
}

[data-gift-wallet] .gift-card-demo__action-label {
  color: rgba(245, 245, 247, 0.48);
}

.gift-card-demo__action-title {
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.25;
  color: #21180c;
}

[data-gift-wallet] .gift-card-demo__action-title {
  color: #f5f5f7;
}

.gift-card-demo__action-meta {
  font-size: 0.75rem;
  line-height: 1.4;
  color: #6b635a;
}

[data-gift-wallet] .gift-card-demo__action-meta {
  color: rgba(245, 245, 247, 0.66);
}

.gift-card-demo__action-cta {
  margin-top: 0.45rem;
  padding-block: 0.65rem;
  font-size: 0.8125rem;
}

[data-gift-wallet] .gift-card-demo__action-cta {
  color: #fff;
  background: #0a84ff;
}

/* Legacy single-pass demo (unused) */
.gift-card-demo__body {
  display: grid;
  gap: 0.875rem;
  align-content: center;
}

.gift-card-demo__pass {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  color: #21180c;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.1);
  border-radius: 0.875rem;
  box-shadow: 0 12px 28px -18px rgba(33, 24, 12, 0.28);
}

.gift-card-demo__pass-title {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.25rem;
  line-height: 1.1;
}

.gift-card-demo__pass-meta,
.gift-card-demo__pass-recipient {
  font-size: 0.75rem;
  line-height: 1.4;
  color: #6b635a;
}

.gift-card-demo__note {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.45;
  text-align: center;
  color: #6e6356;
}

/* Wellness Concierge demo — layout uses shared shell above */

@media (min-width: 48rem) {
  .menu-demo,
  .store-demo,
  .card-demo,
  .gift-card-demo,
  .concierge-demo {
    max-width: 22.5rem;
  }

  .hero--with-visual .hero__visual.menu-demo,
  .hero--with-visual .hero__visual.store-demo,
  .hero--with-visual .hero__visual.card-demo,
  .hero--with-visual .hero__visual.gift-card-demo,
  .hero--with-visual .hero__visual.concierge-demo {
    width: 22.5rem;
  }
}

/* Wellness Card demo */
.card-demo__header--checkout {
  padding: 0.625rem 0.875rem;
  text-align: left;
  color: #21180c;
  background: linear-gradient(180deg, #fdfcf9 0%, #f8f5ef 100%);
  border-bottom: 1px solid rgba(33, 24, 12, 0.08);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.card-demo__checkout-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 0.25rem;
  font: inherit;
  text-align: left;
  color: inherit;
  background: none;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.card-demo__checkout-trigger:hover {
  background: rgba(33, 24, 12, 0.04);
}

.card-demo__checkout-trigger:focus-visible {
  outline: 2px solid #384d3e;
  outline-offset: 2px;
}

.card-demo__checkout-trigger-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.card-demo__checkout-chevron {
  flex-shrink: 0;
  font-size: 1.125rem;
  line-height: 1;
  color: rgba(33, 24, 12, 0.35);
  transform: rotate(90deg);
  transition: transform 0.2s ease;
}

.card-demo__checkout-trigger:active .card-demo__checkout-chevron {
  transform: rotate(90deg) translateX(1px);
}

.card-demo__checkout-title {
  display: block;
  margin: 0;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.card-demo__checkout-meta {
  display: block;
  margin: 0;
  font-size: 0.75rem;
  color: rgba(33, 24, 12, 0.62);
}

.card-demo__body {
  display: grid;
  gap: 0.875rem;
}

.card-demo__summary {
  padding: 0.875rem 1rem;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow: 0 1px 4px rgba(33, 24, 12, 0.05);
}

.card-demo__summary-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.card-demo__summary-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.card-demo__summary-label {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  color: #1e1509;
}

.card-demo__summary-meta {
  font-size: 0.6875rem;
  line-height: 1.4;
  color: #7a6e63;
}

.card-demo__summary-price {
  flex-shrink: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #2e4535;
}

.card-demo__addons {
  display: grid;
  gap: 0.4rem;
}

.card-demo__addon {
  padding: 0.6875rem 0.75rem;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow: 0 1px 3px rgba(33, 24, 12, 0.04);
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.card-demo__addon:hover {
  border-color: rgba(33, 24, 12, 0.14);
  box-shadow: 0 4px 10px rgba(33, 24, 12, 0.06);
}

.card-demo__addon:focus-visible {
  outline: 2px solid #384d3e;
  outline-offset: 2px;
}

.card-demo__addon--selected {
  border-color: rgba(56, 77, 62, 0.28);
  background: linear-gradient(160deg, rgba(212, 228, 220, 0.2) 0%, #fff 100%);
  box-shadow:
    0 4px 12px rgba(56, 77, 62, 0.08),
    inset 3px 0 0 #384d3e;
}

.card-demo__addon-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.card-demo__addon-check {
  position: relative;
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0;
  border: 1.5px solid rgba(33, 24, 12, 0.2);
  border-radius: 50%;
  background: #fff;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.card-demo__addon-check::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #384d3e;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.15s ease;
}

.card-demo__addon--selected .card-demo__addon-check {
  border-color: #384d3e;
  box-shadow: 0 0 0 1px #384d3e;
}

.card-demo__addon--selected .card-demo__addon-check::after {
  transform: translate(-50%, -50%) scale(1);
}

.card-demo__addon-copy {
  display: grid;
  gap: 0.08rem;
  flex: 1;
  min-width: 0;
}

.card-demo__addon-name {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  color: #1e1509;
}

.card-demo__addon-meta {
  font-size: 0.625rem;
  line-height: 1.35;
  color: #7a6e63;
}

.card-demo__addon-price {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #2e4535;
  white-space: nowrap;
}

/* Upgrade discount on Platinum/Black: struck list price, discounted price, and
   a small savings chip. */
.card-demo__addon-price--discount {
  display: inline-grid;
  justify-items: end;
  gap: 0.05rem;
  line-height: 1.1;
  text-align: right;
}

.card-demo__addon-was {
  font-size: 0.625rem;
  font-weight: 500;
  color: #a79d92;
  text-decoration: line-through;
}

.card-demo__addon-now {
  font-size: 0.8125rem;
  font-weight: 800;
  color: #2e7d4f;
}

.card-demo__addon-badge {
  flex-shrink: 0;
  padding: 0.2rem 0.5rem;
  font-size: 0.5938rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2e4535;
  background: rgba(212, 228, 220, 0.9);
  border: 1px solid rgba(56, 77, 62, 0.14);
  border-radius: 999px;
}

.card-demo__total {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 0.875rem;
  box-shadow:
    0 -8px 20px rgba(244, 241, 234, 0.92),
    0 2px 8px rgba(33, 24, 12, 0.04);
  backdrop-filter: blur(6px);
}

.card-demo__total-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: #7a6e63;
}

.card-demo__total-value {
  font-size: 1rem;
  font-weight: 700;
  color: #1e1509;
}

@media (max-width: 900px) {
  .page--product .hero--with-visual .headline,
  .page--product .hero--with-visual .subhead {
    max-width: 42ch;
  }

  .hero--with-visual .hero__visual.menu-demo,
  .hero--with-visual .hero__visual.store-demo,
  .hero--with-visual .hero__visual.card-demo,
  .hero--with-visual .hero__visual.gift-card-demo,
  .hero--with-visual .hero__visual.concierge-demo {
    width: min(22.5rem, 100%);
    justify-self: center;
  }
}

/* 4 & 5 — Para hospedagens / estúdios */
.audience {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  max-width: 72rem;
  margin: 0 auto;
}

.audience__copy .section__title,
.audience__copy .section__desc {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
  max-width: 36ch;
}

.audience__list {
  margin: 1.5rem 0 2rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.625rem;
}

.audience__list li {
  position: relative;
  padding-left: 1.75rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #1c1712;
}

.audience__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 999px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23384d3e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 0.7rem no-repeat,
    #d4e4dc;
}

.audience__visual {
  margin: 0;
  display: flex;
  justify-content: center;
}

.audience-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  max-width: 22rem;
  aspect-ratio: 1.586;
  padding: 1.5rem;
  border-radius: 1.25rem;
  color: #21180c;
  background: linear-gradient(155deg, #f4ead6, #e8dcc8 60%, #d8c7ac);
  border: 1px solid rgba(33, 24, 12, 0.1);
  box-shadow: 0 24px 60px -28px rgba(33, 24, 12, 0.5);
}

.audience-card--studio {
  background: linear-gradient(155deg, #d4e4dc, #a8c4b8 60%, #8fb0a2);
}

.audience-card__brand {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.25rem;
}

.audience-card__label {
  margin-top: auto;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.7;
}

.audience-card__title {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.625rem;
  line-height: 1.1;
}

.audience-card__meta {
  font-size: 0.8125rem;
  color: rgba(33, 24, 12, 0.7);
}

/* 6 — Wellness Concierge */
.section--concierge .concierge {
  max-width: 44rem;
  margin: 0 auto;
  text-align: center;
}

.concierge .section__title,
.concierge .section__desc {
  margin-left: auto;
  margin-right: auto;
}

.concierge .audience__eyebrow {
  text-align: center;
}

.concierge__chat {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 30rem;
  margin: 2rem auto 0;
}

.concierge__bubble {
  position: relative;
  padding: 0.75rem 1rem 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  border-radius: 1.1rem;
}

.concierge__bubble--in {
  align-self: flex-end;
  text-align: left;
  background: #21180c;
  color: #f7f5f1;
  border-bottom-right-radius: 0.3rem;
}

.concierge__bubble--out {
  align-self: flex-start;
  text-align: left;
  background: #d4e4dc;
  color: #21180c;
  border-bottom-left-radius: 0.3rem;
}

.concierge__bubble-time {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.625rem;
  font-weight: 500;
  opacity: 0.46;
  text-align: right;
  line-height: 1;
}

/* 7 — O que não somos */
.not-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 48rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.625rem;
}

.not-list__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.9375rem;
  color: #6b635a;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 999px;
}

.not-list__item::before {
  content: "✕";
  font-size: 0.75rem;
  color: #b0a89c;
}

/* 8 — Visão */
.section--vision {
  padding-block: clamp(2.5rem, 6vw, 4rem);
}

.home .section.section--vision {
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.home .section + .section.section--vision {
  padding-top: clamp(2.5rem, 6vw, 4rem);
}

.home .section--vision + .section {
  padding-top: clamp(2rem, 5vw, 3rem);
}

.page--product .solution > .section {
  width: 100%;
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.page--product .solution > .section:not(.section--vision) {
  padding-bottom: clamp(1.5rem, 4vw, 2rem);
}

.page--product .solution > .section--vision {
  padding-block: clamp(2.5rem, 6vw, 4rem);
}

.section--vision .vision {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 52rem;
  margin: 0 auto;
  text-align: center;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 2.5rem);
  background: linear-gradient(160deg, rgba(212, 228, 220, 0.45), rgba(244, 234, 214, 0.45));
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.5rem;
}

.vision .audience__eyebrow {
  margin-bottom: 0.75rem;
  text-align: center;
}

.vision__title {
  max-width: min(58ch, 100%);
  margin-inline: auto;
  font-size: clamp(1.6rem, 3.4vw, 2.4rem);
}

.vision__market-headline {
  margin-top: clamp(2rem, 4vw, 2.75rem);
}

.vision__stats {
  width: 100%;
  margin-top: 1.5rem;
}

.vision .hero__actions {
  justify-content: center;
  margin-top: 1.5rem;
}

/* 9 — Waitlist */
.section--waitlist .waitlist {
  max-width: 44rem;
  margin: 0 auto;
}

.wl-form {
  margin-top: 0.5rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.25rem;
  backdrop-filter: blur(8px);
}

.wl-form__segment {
  margin: 0 0 1.5rem;
  padding: 0;
  border: 0;
}

.wl-form__segment-legend {
  padding: 0;
  margin-bottom: 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
}

.segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}

.segmented__option {
  position: relative;
  display: block;
  cursor: pointer;
}

.segmented__option input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.segmented__label {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 3rem;
  padding: 0.5rem 0.875rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #6b635a;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(33, 24, 12, 0.12);
  border-radius: 0.75rem;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.segmented__option input:checked + .segmented__label {
  color: #f7f5f1;
  background: #21180c;
  border-color: #21180c;
}

.segmented__option input:focus-visible + .segmented__label {
  outline: 2px solid #21180c;
  outline-offset: 2px;
}

.wl-form__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.wl-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.wl-field__label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b635a;
}

.wl-field__input {
  width: 100%;
  padding: 0.75rem 0.875rem;
  font-family: inherit;
  font-size: 0.9375rem;
  color: #1c1712;
  background: #fff;
  border: 1px solid rgba(33, 24, 12, 0.14);
  border-radius: 0.625rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wl-field__input:focus {
  outline: none;
  border-color: #384d3e;
  box-shadow: 0 0 0 3px rgba(56, 77, 62, 0.12);
}

.wl-form__footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.wl-form__submit {
  width: 100%;
}

.wl-form__note {
  margin: 0;
  font-size: 0.8125rem;
  color: #6e6356;
}

.wl-form__status {
  margin: 1rem 0 0;
  padding: 0.875rem 1rem;
  font-size: 0.9375rem;
  border-radius: 0.625rem;
}

.wl-form__status--ok {
  color: #2f4a36;
  background: #d4e4dc;
}

.wl-form__status--error {
  color: #6b2f2f;
  background: #f0dada;
}

@media (min-width: 48rem) {
  .card-grid--problem {
    grid-template-columns: repeat(2, 1fr);
  }

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

  .audience {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }

  .audience--reverse .audience__copy {
    order: 2;
  }

  .wl-form__grid {
    grid-template-columns: 1fr 1fr;
  }

  .wl-field--full {
    grid-column: 1 / -1;
  }

  .wl-form__footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .wl-form__submit {
    width: auto;
  }
}

@media (min-width: 64rem) {
  .steps {
    grid-template-columns: repeat(4, 1fr);
  }
}

.network__note {
  font-size: 0.875rem;
  color: #6e6356;
}

/* Rede — mapa de parceiros */
.rede-map {
  display: grid;
  gap: 2rem;
  align-items: center;
  max-width: 60rem;
  margin: 0 auto;
}

.rede-map__figure {
  margin: 0;
  padding: 1.5rem;
  background: linear-gradient(160deg, rgba(212, 228, 220, 0.45), rgba(244, 234, 214, 0.45));
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.5rem;
  text-align: center;
}

.rede-map__svg {
  display: block;
  width: 100%;
  max-width: 22rem;
  height: auto;
  margin: 0 auto;
}

.rede-map__land {
  fill: #d4e4dc;
  stroke: #a8c4b8;
  stroke-width: 1.5;
}

.rede-map__pin-dot { fill: #384d3e; }

.rede-map__pin-ring {
  fill: #384d3e;
  opacity: 0.3;
  transform-box: fill-box;
  transform-origin: center;
  animation: rede-pulse 2.6s ease-out infinite;
}

.rede-map__pin:nth-of-type(2) .rede-map__pin-ring { animation-delay: 1.1s; }

@keyframes rede-pulse {
  0% { transform: scale(0.5); opacity: 0.5; }
  70% { transform: scale(1.8); opacity: 0; }
  100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .rede-map__pin-ring { animation: none; opacity: 0.3; }
}

.rede-map__caption {
  margin-top: 1rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6356;
}

.rede-list {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.rede-list__item {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}

.rede-list__dot {
  flex: none;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 999px;
  background: #384d3e;
}

.rede-list__body {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.rede-list__name {
  font-size: 1.0625rem;
  font-weight: 600;
  color: #21180c;
}

.rede-list__body:hover .rede-list__name { text-decoration: underline; }

.rede-list__type {
  font-size: 0.8125rem;
  color: #6b635a;
}

.rede-list__note {
  margin: 0 0 1.25rem;
  font-size: 0.875rem;
  color: #6e6356;
}

.partner-roster {
  width: min(100%, 44rem);
  margin-inline: auto;
}

.partner-roster .section__intro {
  margin-bottom: 1.5rem;
}

.partner-roster .rede-list {
  margin: 0;
}

.partner-roster .rede-list__item {
  align-items: stretch;
}

.partner-roster .rede-list__body--card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.875rem;
  width: 100%;
  padding: 1rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(247, 245, 241, 0.82)),
    radial-gradient(circle at 10% 0%, rgba(212, 228, 220, 0.55), transparent 34%);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1rem;
  box-shadow: 0 18px 42px rgba(33, 24, 12, 0.08);
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.partner-roster .rede-list__body--card:hover {
  border-color: rgba(56, 77, 62, 0.22);
  box-shadow: 0 22px 48px rgba(33, 24, 12, 0.11);
  transform: translateY(-1px);
}

.partner-roster .rede-list__body--card:hover .rede-list__name {
  text-decoration: none;
}

.rede-list__avatar {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #f7f5f1;
  background: linear-gradient(155deg, #384d3e, #21180c);
  border-radius: 0.875rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.rede-list__copy {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.rede-list__eyebrow {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(56, 77, 62, 0.78);
}

.rede-list__action {
  align-self: center;
  padding: 0.45rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #384d3e;
  background: rgba(212, 228, 220, 0.72);
  border-radius: 999px;
}

@media (max-width: 480px) {
  .partner-roster .rede-list__body--card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rede-list__action {
    grid-column: 2;
    justify-self: start;
    margin-top: 0.25rem;
  }
}

@media (min-width: 48rem) {
  .rede-map { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

/* ─── Tier ladder (Cartão Acesso) ───────────────────────────── */

.tier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

@media (max-width: 880px) {
  .tier-grid { grid-template-columns: 1fr; }
}

.tier-card {
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1rem;
  backdrop-filter: blur(8px);
}

.tier-card__eyebrow {
  display: inline-block;
  margin-bottom: 0.75rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #384d3e;
}

.tier-card__name {
  margin: 0 0 0.25rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #21180c;
}

.tier-card__tagline {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #6b635a;
}

.tier-card__list {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  flex: 1;
}

.tier-card__item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: #21180c;
}

.tier-card__item::before {
  content: "";
  flex: none;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.1rem;
  border-radius: 999px;
  background: rgba(56, 77, 62, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23384d3e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
}

.tier-card__item--locked {
  color: #a39b90;
}

.tier-card__item--locked::before {
  background: rgba(33, 24, 12, 0.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a39b90' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / 0.62rem no-repeat;
}

.tier-card__foot {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #6b635a;
}

/* Black — the premium tier reads as a dark, quiet object */
.tier-card--black {
  background: #1a160f;
  border-color: rgba(214, 197, 162, 0.22);
  box-shadow: 0 1px 0 rgba(214, 197, 162, 0.12) inset;
}

.tier-card--black .tier-card__eyebrow { color: #d6c5a2; }
.tier-card--black .tier-card__name { color: #f5f0e6; }
.tier-card--black .tier-card__tagline { color: #b8ae9d; }
.tier-card--black .tier-card__item { color: #f0eadd; }
.tier-card--black .tier-card__foot { color: #b8ae9d; }

.tier-card--black .tier-card__item::before {
  background: rgba(214, 197, 162, 0.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d6c5a2' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
}

/* Black spotlight — concierge as the marquee privilege */
.tier-spotlight {
  display: grid;
  grid-template-columns: 1fr minmax(0, 21rem);
  gap: clamp(1.5rem, 5vw, 3.5rem);
  align-items: center;
  max-width: 72rem;
  margin-inline: auto;
}

@media (max-width: 880px) {
  .tier-spotlight {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
}

.tier-spotlight__visual {
  justify-self: center;
  width: min(22.5rem, 36vw);
  max-width: 22.5rem;
  margin: 0;
}

@media (max-width: 880px) {
  .tier-spotlight__visual {
    width: min(22.5rem, 100%);
  }
}

/* ─── Cartão Acesso card tiers (Gold · Platinum · Black) ─────── */

/* Gold — warm champagne metallic */
.hero-card--gold {
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 38%),
    linear-gradient(135deg, #f7ecd0 0%, #e6cd92 46%, #caa258 100%);
}

.hero-card--gold .hero-card__label,
.hero-card--gold .hero-card__meta,
.hero-card--gold .hero-card__guest,
.hero-card--gold .hero-card__dates {
  color: rgba(33, 24, 12, 0.62);
}

/* Platinum — cool brushed silver */
.hero-card--platinum {
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 40%),
    linear-gradient(135deg, #f3f5f7 0%, #d4d9df 46%, #b0b7c0 100%);
}

.hero-card--platinum .hero-card__label,
.hero-card--platinum .hero-card__meta,
.hero-card--platinum .hero-card__guest,
.hero-card--platinum .hero-card__dates {
  color: rgba(30, 34, 40, 0.6);
}

/* Black — matte graphite with champagne accents */
.hero-card--black {
  background:
    linear-gradient(120deg, rgba(214, 197, 162, 0.12) 0%, rgba(214, 197, 162, 0) 42%),
    linear-gradient(150deg, #2b2620 0%, #17130d 100%);
  color: #f3efe7;
  border-color: rgba(214, 197, 162, 0.28);
}

.hero-card--black .hero-card__label,
.hero-card--black .hero-card__meta,
.hero-card--black .hero-card__guest,
.hero-card--black .hero-card__partner,
.hero-card--black .hero-card__dates,
.hero-card--black .hero-card__divider {
  color: rgba(243, 239, 231, 0.72);
}

.hero-card--black .hero-card__brand {
  color: #e9dcc0;
}


/* Tier chip — small marker pinned to the card's top-right */
.hero-card__tier {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 999px;
  border: 1px solid currentColor;
  line-height: 1;
}

.hero-card--gold .hero-card__tier {
  color: #8a6a2c;
  background: rgba(255, 255, 255, 0.35);
}

.hero-card--platinum .hero-card__tier {
  color: #5a626d;
  background: rgba(255, 255, 255, 0.45);
}

.hero-card--black .hero-card__tier {
  color: #e9dcc0;
  background: rgba(214, 197, 162, 0.1);
}

.hero-card--compact .hero-card__tier {
  top: 0.85rem;
  right: 0.85rem;
}

.hero-card__tier--gift {
  width: 1.45rem;
  height: 1.45rem;
  padding: 0;
  color: rgba(33, 24, 12, 0.55);
  background: rgba(33, 24, 12, 0.07);
  border-color: rgba(33, 24, 12, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-card__tier--gift svg {
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  flex: 0 0 auto;
}

/* The gift badge inherits the full-size position/box, which overflows the tiny
   mini card. Scale and pin it to the corner so it reads as a clean gift mark. */
.store-demo__screen .hero-card--micro .hero-card__tier--gift,
.card-demo__screen .hero-card--micro .hero-card__tier--gift,
.menu-demo__screen .hero-card--micro .hero-card__tier--gift {
  top: 0.26rem;
  right: 0.26rem;
  width: 0.85rem;
  height: 0.85rem;
  border-width: 1px;
}

.store-demo__screen .hero-card--micro .hero-card__tier--gift svg,
.card-demo__screen .hero-card--micro .hero-card__tier--gift svg,
.menu-demo__screen .hero-card--micro .hero-card__tier--gift svg {
  width: 0.5rem;
  height: 0.5rem;
}

/* ─── Cartão Presente — a refined gift-card treatment ─── */

.hero-card--gift-wrap {
  overflow: hidden;
}

.hero-card--gift-wrap > * {
  position: relative;
  z-index: 1;
}

.hero-card--gift-wrap > .hero-card__tier {
  position: absolute;
  z-index: 2;
}

.hero-card--gift-wrap::before {
  content: "";
  position: absolute;
  top: -2.8rem;
  right: -2.2rem;
  width: 6.2rem;
  height: 6.2rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 55% 55%, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.16) 38%, transparent 68%);
  opacity: 0.48;
  z-index: 0;
  pointer-events: none;
}

.hero-card--gift-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, transparent 0 58%, rgba(255, 255, 255, 0.18) 58%, transparent 72%);
  opacity: 0.42;
  z-index: 0;
  pointer-events: none;
}

/* Wallet visual at the top of each tier card */
.tier-card__visual {
  margin-bottom: 1.25rem;
}

/* Keep the tier preview at a real card proportion instead of a wide, short
   banner stretched to the column width. */
.tier-card__visual .hero-card--inline {
  width: 100%;
  max-width: 17rem;
  margin-inline: auto;
  aspect-ratio: 1.586;
}

/* Now that the card has real height, spread the content like a wallet pass:
   label at the top, title pushed toward the bottom, brand on the baseline. */
.tier-card__visual .hero-card--inline .hero-card__title {
  margin-top: auto;
}

.tier-card__visual .hero-card--inline .hero-card__footer {
  margin-top: 0.4rem;
}

/* ─── Partner network options ───────────────────────────────── */
.network-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}

@media (max-width: 640px) {
  .network-options { grid-template-columns: 1fr; }
}

.network-option {
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1rem;
  backdrop-filter: blur(8px);
}

.network-option__eyebrow {
  display: inline-block;
  margin-bottom: 0.75rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #384d3e;
}

.network-option__title {
  margin: 0 0 0.5rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #21180c;
}

.network-option__desc {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #6b635a;
}

.network-option__features {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
}

.network-option__feature {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #21180c;
  padding-left: 1.25rem;
  position: relative;
}

.network-option__feature::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #384d3e;
  font-weight: 600;
  font-size: 0.8125rem;
}

.network-option__ideal {
  margin-top: auto;
  padding: 1rem 1.125rem;
  background: rgba(56, 77, 62, 0.06);
  border-radius: 0.625rem;
  border-left: 3px solid rgba(56, 77, 62, 0.35);
}

.network-option__ideal--cobrand {
  background: rgba(33, 24, 12, 0.05);
  border-left-color: rgba(33, 24, 12, 0.2);
}

.network-option__ideal-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #384d3e;
  margin-bottom: 0.375rem;
}

.network-option__ideal--cobrand .network-option__ideal-label {
  color: #6b4c2a;
}

.network-option__ideal-text {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #21180c;
  margin: 0;
}

/* ─── Apple Wallet app header (gift-card demo) ──────────────── */
.demo-phone__wallet-app {
  flex-shrink: 0;
  padding: 0.72rem 0.82rem 0.55rem;
  color: #f5f5f7;
  background: #000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.demo-phone__wallet-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.05rem 0.35rem 0;
}

.demo-phone__wallet-title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #f5f5f7;
}

.demo-phone__wallet-add {
  position: relative;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: rgba(10, 132, 255, 0.18);
}

.demo-phone__wallet-add::before,
.demo-phone__wallet-add::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.7rem;
  height: 2px;
  border-radius: 1px;
  background: #0a84ff;
  transform: translate(-50%, -50%);
}

.demo-phone__wallet-add::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* ─── Pricing — plan cards ──────────────────────────────────── */
.pricing { max-width: 64rem; }

.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
  align-items: start;
}

@media (max-width: 860px) {
  .plan-grid {
    grid-template-columns: 1fr;
    max-width: 26rem;
    margin-inline: auto;
  }
}

.plan-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.85rem 1.5rem 1.6rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(33, 24, 12, 0.08);
  border-radius: 1.25rem;
  backdrop-filter: blur(8px);
}

.plan-card--featured {
  background: #fff;
  border-color: rgba(33, 24, 12, 0.16);
  box-shadow: 0 28px 64px -34px rgba(33, 24, 12, 0.45);
}

.plan-card__badge {
  position: absolute;
  top: -0.7rem;
  left: 1.5rem;
  padding: 0.25rem 0.7rem;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #f7f5f1;
  background: #21180c;
  border-radius: 999px;
}

.plan-card__head {
  padding-bottom: 1.25rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgba(33, 24, 12, 0.08);
}

.plan-card__name {
  margin: 0 0 0.6rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #21180c;
}

.plan-card__price {
  margin: 0;
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #21180c;
}

.plan-card__price-unit {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0;
  color: #6b635a;
}

.plan-card__note {
  margin: 0.4rem 0 0;
  font-size: 0.8125rem;
  color: #6b635a;
}

.plan-card__for {
  margin: 0 0 1.35rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #6b635a;
}

.plan-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1rem;
  margin-bottom: 1.6rem;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: #21180c;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(33, 24, 12, 0.14);
  border-radius: 999px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.plan-card__cta:hover {
  border-color: rgba(33, 24, 12, 0.28);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(33, 24, 12, 0.07);
}

.plan-card__cta--primary {
  color: #f7f5f1;
  background: #21180c;
  border-color: #21180c;
}

.plan-card__cta--primary:hover {
  background: #3d2f1f;
  border-color: #3d2f1f;
  box-shadow: 0 10px 24px -10px rgba(33, 24, 12, 0.45);
}

.plan-card__list-label {
  margin: 0 0 0.85rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #9a9088;
}

.plan-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.plan-card__feat {
  position: relative;
  padding-left: 1.65rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: #21180c;
}

.plan-card__feat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.05rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 999px;
  background: rgba(56, 77, 62, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23384d3e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
}

.pricing__footnote {
  margin: 1.85rem auto 0;
  max-width: 42rem;
  text-align: center;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #6e6356;
}

/* Detailed comparison, collapsed by default */
.pricing-compare {
  width: 100%;
  margin-top: 0.5rem;
}

.pricing-compare__summary {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 auto;
  width: max-content;
  padding: 0.55rem 1rem;
  list-style: none;
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #384d3e;
  border-radius: 999px;
  transition: background 0.18s ease;
}

.pricing-compare__summary::-webkit-details-marker { display: none; }
.pricing-compare__summary::after {
  content: "▾";
  font-size: 0.7rem;
  transition: transform 0.2s ease;
}
.pricing-compare[open] .pricing-compare__summary::after { transform: rotate(180deg); }
.pricing-compare__summary:hover { background: rgba(56, 77, 62, 0.08); }

.pricing-compare .pricing-table {
  margin-top: 1rem;
}

.pricing-compare {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ─── Header actions polish ─────────────────────────────────── */
.header__actions-divider {
  width: 1px;
  height: 1.35rem;
  background: rgba(33, 24, 12, 0.14);
}

@media (max-width: 900px) {
  .header__actions-divider { display: none; }
}

/* ─── Partner roster ("Na rede hoje") ───────────────────────── */
.partner-roster .rede-list--partners {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

.partner-roster .rede-list--partners .rede-list__item {
  flex: 1 1 20rem;
  max-width: 24rem;
}

.partner-roster .rede-list__body--card {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 26px -16px rgba(33, 24, 12, 0.22);
}

.rede-list__avatar {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
}

.rede-list__action {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #384d3e;
  background: none;
  border-radius: 0;
}

.rede-list__action::after {
  content: "↗";
  font-size: 0.875rem;
}

.partner-roster .rede-list__body--card:hover .rede-list__action {
  text-decoration: underline;
}
