/* offer-gift.css */
[data-gift-preparing] {
  position: relative;
}
.offer-gift-preparing-spinner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: inherit;
  background: inherit;
  color: inherit;
  pointer-events: none;
}
.offer-gift-preparing-spinner::before {
  content: "";
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: offer-gift-prepare .65s linear infinite;
}
@keyframes offer-gift-prepare {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .offer-gift-preparing-spinner::before {
    animation: none;
  }
}
dialog.offer-gift-dialog {
  box-sizing: border-box;
  width: min(520px, calc(100% - 24px));
  max-width: 520px;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: 0;
  border: 1px solid #e5dff1;
  border-radius: 26px;
  overflow: auto;
  overflow-anchor: none;
  overscroll-behavior: contain;
  background: #fff;
  color: #202334;
  box-shadow: 0 30px 100px #111a484d;
  font-family:
    Arial,
    Helvetica,
    sans-serif;
  text-align: center;
}
.offer-gift-dialog::backdrop {
  background: #161c45a8;
  backdrop-filter: blur(7px);
}
.offer-gift-dialog * {
  box-sizing: border-box;
}
.offer-gift-dialog [hidden] {
  display: none !important;
}
.offer-gift-content {
  position: relative;
  padding: 36px 24px 27px;
  background:
    radial-gradient(
      ellipse at 50% 24%,
      #f4efff 0,
      #fff 60%);
}
.offer-gift-close {
  position: sticky;
  z-index: 5;
  top: 6px;
  float: right;
  margin: 6px 6px -50px 0;
  display: grid;
  place-items: center;
  width: 44px;
  min-height: 44px;
  padding: 10px;
  border: 0;
  border-radius: 50%;
  background: #fffffff2;
  color: #77788c;
  cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
  .offer-gift-close:hover {
    background: #eeebf7;
  }
}
.offer-gift-close svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}
.offer-gift-brand {
  display: block;
  color: #626780;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
}
.offer-gift-dialog .offer-gift-header h2 {
  margin: 13px 0 10px;
  color: #24263e;
  font-size: 30px;
  line-height: 1.12;
  letter-spacing: -1px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.offer-gift-choices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin: 26px -5px 23px;
  align-items: end;
}
.offer-gift-choice {
  --gift: #576fdd;
  --gift-light: #7992f4;
  --gift-dark: #344fb6;
  display: block;
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 5px 0 10px;
  border: 0;
  border-radius: 15px;
  background: transparent;
  cursor: pointer;
  color: #626780;
  transition:
    background .2s,
    transform .2s,
    opacity .2s;
}
.offer-gift-choice.gift-violeta {
  --gift: #9261d2;
  --gift-light: #b486ed;
  --gift-dark: #6941a5;
}
.offer-gift-choice.gift-coral {
  --gift: #e77d79;
  --gift-light: #f6a09a;
  --gift-dark: #c6565b;
}
@media (hover: hover) and (pointer: fine) {
  .offer-gift-choice:not(:disabled):hover {
    background: #ede9fb;
    transform: translateY(-4px);
  }
}
.offer-gift-choice:disabled {
  cursor: default;
}
.offer-gift-choice .offer-gift-label {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
  font-weight: 600;
}
.offer-gift-dialog .offer-gift-art {
  display: block;
  width: 100%;
  height: auto;
  max-width: 140px;
  margin: auto;
  fill: none;
  stroke: none;
  overflow: visible;
}
.offer-gift-art .gift-shadow {
  fill: #30324c;
  opacity: .08;
}
.offer-gift-art .gift-body {
  fill: var(--gift);
}
.offer-gift-art .gift-side {
  fill: var(--gift-dark);
}
.offer-gift-art .gift-lid-body {
  fill: var(--gift-light);
}
.offer-gift-art .gift-lid-shine {
  fill: #fff;
  opacity: .25;
}
.offer-gift-art .gift-ribbon,
.offer-gift-art .gift-bow {
  fill: #e9bc5a;
}
.offer-gift-art .gift-bow-shade {
  fill: #bb842c;
}
.offer-gift-art .gift-ribbon-light {
  fill: #ffe4a0;
}
.offer-gift-art .gift-box-shine {
  stroke: #fff;
  stroke-width: 2;
  opacity: .22;
  fill: none;
}
.offer-gift-art .gift-hearts {
  fill: #e94b68;
  opacity: 0;
  transform-origin: 60px 25px;
}
.offer-gift-art .gift-lid {
  transform-origin: 60px 60px;
}
.offer-gift-discount {
  display: table;
  min-width: 54px;
  max-width: 100%;
  margin: 0 auto 8px;
  padding: 5px 9px;
  border-radius: 20px;
  background: #e7e8ef;
  color: #545973;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.offer-gift-choice[aria-pressed=true] .offer-gift-discount {
  color: #11683f;
  background: #def3e7;
}
.offer-gift-dialog[data-state=opening] .offer-gift-choice .gift-lid {
  animation: gift-lid-open .85s cubic-bezier(.2, .8, .3, 1) forwards;
}
.offer-gift-dialog[data-state=opening] .offer-gift-choice .gift-box {
  animation: gift-box-bounce .7s ease-out;
}
.offer-gift-dialog[data-state=opening] .offer-gift-choice[aria-pressed=true] .gift-hearts {
  animation: gift-hearts-rise .85s ease-out forwards;
}
.offer-gift-dialog[data-state=revealed] .offer-gift-choice .gift-lid {
  transform: translateY(-30px) rotate(-10deg);
}
.offer-gift-dialog[data-state=revealed] .offer-gift-choice[aria-pressed=true] .gift-hearts {
  opacity: 1;
  transform: translateY(-12px);
}
.offer-gift-detail {
  position: relative;
}
.offer-gift-dialog h3 {
  margin: 0;
  color: #24263e;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -.45px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.offer-gift-dialog [data-gift-invite] {
  padding: 7px 7px 0;
}
.offer-gift-dialog [data-gift-invite] > p {
  color: #62677d;
  font-size: 14px;
  line-height: 1.5;
  margin: 12px 0 0;
}
.offer-gift-dialog .offer-gift-opening {
  color: #455aba;
  font-weight: 600;
}
.offer-gift-dialog .offer-gift-saving {
  margin: 10px 0 0;
  color: #545973;
  font-size: 16px;
  line-height: 1.45;
}
.offer-gift-saving strong {
  color: #b42332;
  white-space: normal;
}
.offer-gift-saving s {
  text-decoration-thickness: 1.5px;
}
.offer-gift-prices {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
.offer-gift-prices > span {
  color: #62677d;
  font-size: 14px;
  line-height: 1.4;
}
.offer-gift-prices > strong {
  max-width: 100%;
  color: #137b4b;
  font-size: clamp(35px, 11vw, 46px);
  line-height: 1.1;
  letter-spacing: -1.5px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.offer-gift-prices small {
  font-size: 15px;
  color: #62677d;
  font-weight: 400;
  letter-spacing: 0;
}
.offer-gift-dialog .offer-gift-payment {
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: #62677d;
}
.offer-gift-payment span {
  padding: 0 3px;
}
.offer-gift-checkout {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 54px;
  margin-top: 22px;
  padding: 15px 13px;
  border-radius: 15px;
  background: #5064c9;
  color: #fff;
  text-decoration: none;
  font-size: 17px;
  line-height: 1.3;
  font-weight: 700;
  overflow-wrap: anywhere;
  animation: gift-checkout-pulse 2.2s ease-in-out infinite;
}
@media (hover: hover) and (pointer: fine) {
  .offer-gift-checkout:hover {
    background: #4154b7;
  }
}
.offer-gift-dialog .offer-gift-safe {
  margin: 11px 0 0;
  color: #62677d;
  font-size: 11px;
  line-height: 1.45;
}
.offer-gift-confetti {
  position: absolute;
  inset: -4px 0 0;
  pointer-events: none;
  overflow: hidden;
}
.offer-gift-confetti i {
  position: absolute;
  top: 0;
  left: calc(7% + var(--piece) * 6.5%);
  width: 5px;
  height: 9px;
  border-radius: 1px;
  background: #ddad42;
  opacity: 0;
}
.offer-gift-confetti i:nth-child(3n) {
  background: #a484df;
}
.offer-gift-confetti i:nth-child(3n+1) {
  background: #6c89e4;
}
.offer-gift-dialog[data-gift-celebrating] .offer-gift-confetti i {
  animation: gift-confetti 800ms calc(var(--piece) * 17ms) ease-out both;
}
.offer-gift-expired {
  padding: 12px 3px;
}
.offer-gift-dialog .offer-gift-expired p {
  margin: 13px 0 20px;
  color: #62677d;
  font-size: 14px;
  line-height: 1.5;
}
.offer-gift-expired button {
  min-height: 48px;
  padding: 11px 22px;
  border: 1px solid #d8dcec;
  background: #fff;
  border-radius: 12px;
  color: #4a5dba;
  font-weight: 600;
}
.offer-gift-dialog :is(button, a):focus-visible {
  outline: 3px solid #3359b5;
  outline-offset: 3px;
}
.offer-gift-dialog [tabindex="-1"]:focus {
  outline: none;
}
@keyframes gift-checkout-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 #5064c900;
  }
  50% {
    box-shadow: 0 0 0 7px #5064c933;
  }
}
@keyframes gift-lid-open {
  0%, 15% {
    transform: translateY(0) rotate(0);
  }
  28% {
    transform: translateY(1px) rotate(-5deg);
  }
  42% {
    transform: translateY(0) rotate(5deg);
  }
  75% {
    transform: translateY(-39px) rotate(-15deg);
  }
  100% {
    transform: translateY(-30px) rotate(-10deg);
  }
}
@keyframes gift-box-bounce {
  0%, 35%, 100% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(3px);
  }
  60% {
    transform: translateY(-3px);
  }
}
@keyframes gift-hearts-rise {
  0%, 20% { opacity: 0; transform: translateY(28px) scale(.45); }
  55% { opacity: 1; transform: translateY(2px) scale(1.08); }
  100% { opacity: 1; transform: translateY(-12px) scale(1); }
}
@keyframes gift-confetti {
  0% {
    opacity: 0;
    transform: translateY(-10px) rotate(0);
  }
  12% {
    opacity: .9;
  }
  100% {
    opacity: 0;
    transform: translateY(140px) rotate(240deg);
  }
}
@media (max-width: 350px) {
  .offer-gift-content {
    padding: 34px 16px 24px;
  }
  .offer-gift-dialog .offer-gift-header h2 {
    font-size: 27px;
  }
  .offer-gift-choices {
    gap: 4px;
    margin-inline: -2px;
  }
  .offer-gift-choice .offer-gift-label {
    font-size: 10px;
  }
  .offer-gift-dialog h3 {
    font-size: 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .offer-gift-dialog *,
  .offer-gift-dialog *::before,
  .offer-gift-dialog *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* c-gifts.css */
dialog.c-gift-dialog {
  border-color: #dbe8f4;
  font-family: inherit;
}
.c-gift-dialog .offer-gift-content {
  background:
    radial-gradient(
      ellipse at 50% 24%,
      #eff7ff 0,
      #fff 60%);
}
.c-gift-dialog[data-state=revealed] .offer-gift-header h2 {
  color: #137b4b;
}
.c-gift-dialog .offer-gift-checkout {
  border: 0;
  background: var(--blue, #5b70dc);
  font-family: inherit;
  cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
  .c-gift-dialog .offer-gift-checkout:hover {
    background: var(--blue, #5b70dc);
    filter: brightness(.94);
  }
}

.intro-headline-accent {
  color: #e76d31;
  background:
    linear-gradient(
      110deg,
      #f29a25,
      #ee633a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.offer-gift-dialog[data-state=revealed] .offer-gift-choices { margin-top: 16px; }

/* Visibilidade do CTA controlada pelo pitch do VTurb. */
.offer-local-action { --offer-gift-ready: 1; width: 100%; max-width: 400px; margin: 22px auto 18px; text-align: center; }
.offer-local-cta { text-decoration: none; display: block; width: 100%; min-height: 58px; padding: 18px 14px; border: 0; border-radius: 10px; background: #d52b2b; color: #fff; font: 800 18px/1.25 Arial, sans-serif; cursor: pointer; box-shadow: 0 5px 20px #d52b2b30; }
.offer-local-cta:hover { background: #b91f1f; }
.offer-local-cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.offer-checkout-status { color: #ddd; font: 14px/1.5 Arial, sans-serif; margin: 12px 0 0; }
.offer-checkout-status:empty { display: none; }
.offer-gift-dialog { --blue: #d52b2b; }
.offer-gift-dialog .offer-gift-checkout { background: #d52b2b; }
@keyframes gift-checkout-pulse { 0%, 100% { box-shadow: 0 0 0 0 #d52b2b00; } 50% { box-shadow: 0 0 0 7px #d52b2b22; } }

/* Todas flutuam antes da escolha; depois, somente a caixa selecionada. */
.offer-gift-dialog[data-state=idle] .offer-gift-art,
.offer-gift-dialog[data-state=revealed] .offer-gift-choice[aria-pressed=true] .offer-gift-art {
  animation: gift-idle-float 3.2s ease-in-out infinite;
}
.offer-gift-dialog[data-state=idle] .offer-gift-choice:nth-child(2) .offer-gift-art { animation-delay: -.9s; }
.offer-gift-dialog[data-state=idle] .offer-gift-choice:nth-child(3) .offer-gift-art { animation-delay: -1.8s; }
@keyframes gift-idle-float {
  0%, 100% { transform: translateY(0) rotate(-.6deg); }
  50% { transform: translateY(-5px) rotate(.6deg); }
}
