/* Variant A: poster evolution of concept alt4 (+ alt1 tiles / call-out / glass) */
:root {
  --primary: #E30B54;
  --primary-hover: #B80845;
  --plum: #810331;
  --ivory: #FDF5F5;
  --ivory-2: #FFF6F3;
  --soft: #F7DCE5;
  --text: #262126;
  --muted: #625A5F;
  --line: #EED7E0;
  --error: #B80845;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ring: 0 0 0 4px rgba(227, 11, 84, .18);
  --font: "IRANYekanX", "IRANYekanX Fallback", Tahoma, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
  margin: 0;
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.75;
  background:
    radial-gradient(48rem 30rem at 50% -6rem, #F9D7E2 0, rgba(249, 215, 226, 0) 70%),
    linear-gradient(180deg, #FCEAEF 0, var(--ivory) 46rem);
  background-color: var(--ivory);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
p, h1, h2, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ic { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
:focus-visible { outline: 3px solid var(--plum); outline-offset: 3px; }

/* ---------- Brand: logo + slogan pair ---------- */
.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: max(14px, env(safe-area-inset-top)) 16px 0;
  text-align: center;
}
.brand__logo { display: block; border-radius: 12px; }
.brand__logo img { width: 148px; height: auto; }
.slogan { display: grid; justify-items: center; gap: 2px; margin-top: 4px; }
.slogan__fa { font-size: 15px; font-weight: 800; line-height: 1.6; color: var(--plum); }
.slogan__en {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Cormorant", Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: .03em;
  color: #6B2741;
}
.slogan__en::before, .slogan__en::after { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .45; }

/* ---------- Hero ---------- */
.hero {
  display: grid;
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px 16px 0;
  overflow-x: clip; /* decorative wave may be wider than the screen */
}
.hero__content { display: contents; } /* mobile: its children join the hero grid so the photo sits between title and form */
.hero__intro { order: 1; position: relative; z-index: 3; text-align: center; }
.card { order: 2; } /* form first, photo below it */
.hero__stage { order: 3; }
.tiles { order: 4; }

.hero__title {
  position: relative;
  display: inline-block;
  font-size: clamp(31px, 9vw, 58px);
  font-weight: 800;
  line-height: 1.38;
  letter-spacing: -.01em;
  color: var(--plum);
}
.hero__title .row { display: block; white-space: nowrap; }
.hero__title em { font-style: normal; color: var(--primary); }
.hero__sub {
  max-width: 30ch;
  margin: 8px auto 0;
  font-size: 16px;
  line-height: 1.85;
  color: #4A4247;
  text-wrap: balance;
}

.spark { position: absolute; fill: var(--primary); }
.spark--title { width: 26px; height: 26px; top: -6px; left: -30px; }

/* Stage: model + liquid wave */
.hero__stage {
  position: relative;
  width: min(100%, 360px);
  margin: 22px auto 0;
}
.stage__glow { /* gradient halo, cheap (no filter blur) */
  position: absolute;
  inset: 10% -8% 8%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(247, 205, 220, .95), rgba(247, 220, 229, 0));
}
.stage__woman {
  position: relative;
  width: 300px;
  height: auto;
  margin: 0 auto;
  /* the photo is cropped at its left and bottom edges: fade both into the page */
  -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent), linear-gradient(to right, transparent, #000 9%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(to bottom, #000 78%, transparent), linear-gradient(to right, transparent, #000 9%);
          mask-composite: intersect;
}
.stage__wave {
  position: absolute;
  left: 50%;
  bottom: 120px;
  width: 135%;
  height: auto;
  max-width: none;
  translate: -50% 0;
  transform: scaleX(-1);
  pointer-events: none;
}
.spark--a { width: 18px; height: 18px; top: 18%; right: 4%; }
.spark--b { width: 11px; height: 11px; top: 30%; right: 12%; opacity: .7; }

/* ---------- Form card ---------- */
.card {
  position: relative;
  z-index: 2;
  margin-top: 42px;
  padding: 42px 18px 20px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .97), rgba(255, 250, 251, .95));
  border: 1px solid #fff;
  border-radius: 28px;
  box-shadow: 0 0 0 1px rgba(227, 11, 84, .06), 0 24px 48px -24px rgba(129, 3, 49, .35), 0 2px 8px rgba(129, 3, 49, .05);
}
.card__badge {
  position: absolute;
  top: 0;
  left: 50%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 22px;
  white-space: nowrap;
  color: #fff;
  background: linear-gradient(135deg, #EE2B6C, #B80845);
  border-radius: 999px;
  box-shadow: 0 12px 22px -12px rgba(184, 8, 69, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
  translate: -50% -50%;
}
.card__badge .ic { width: 22px; height: 22px; }
.card__badge h2 { margin-block: 6px; font-size: 17px; font-weight: 800; line-height: 1.4; }
.card__lead {
  margin: 0 0 16px;
  font-size: 14.5px;
  line-height: 1.8;
  text-align: center;
  color: var(--muted);
}

.field { margin-bottom: 12px; }
.field label { display: block; margin-bottom: 6px; font-size: 15px; font-weight: 700; }
.control { position: relative; }
.control__icon {
  position: absolute; right: 16px; top: 50%; translate: 0 -50%;
  color: #A3959C; pointer-events: none; transition: color .2s;
}
.control input {
  width: 100%;
  height: 54px;
  padding: 0 48px 0 18px;
  font: inherit;
  font-size: 16px; /* >=16px stops iOS zoom */
  color: var(--text);
  background: #FFFCFD;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
#phone { text-align: right; letter-spacing: .04em; }
.control input::placeholder { color: #968A91; opacity: 1; letter-spacing: 0; }
.control input:hover { border-color: #E5C3CF; }
.control input:focus { border-color: var(--primary); background: #fff; box-shadow: var(--ring); }
.control:focus-within .control__icon { color: var(--primary); }
.control input[aria-invalid="true"] { border-color: var(--error); background: #FFF7F9; }
.control:has(input[aria-invalid="true"]) .control__icon { color: var(--error); }

.error { display: flex; align-items: center; gap: 6px; margin-top: 6px; padding-inline: 8px; font-size: 14px; line-height: 1.5; font-weight: 700; color: var(--error); }
.error::before {
  content: "!"; flex: none; display: grid; place-items: center; width: 17px; height: 17px;
  font-size: 12px; font-weight: 800; line-height: 1; color: #fff; background: var(--error); border-radius: 50%;
}
.error:empty { display: none; }
.error--form { margin: 2px 0 12px; padding: 10px 12px; background: #FFF0F4; border-radius: 14px; }
.hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 58px;
  margin-top: 6px;
  padding: 10px 20px;
  overflow: hidden;
  font: inherit;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(180deg, #EE2B6C 0%, var(--primary) 52%, #C9094B 100%);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 14px 24px -14px rgba(227, 11, 84, .85), inset 0 1px 0 rgba(255, 255, 255, .25);
  -webkit-tap-highlight-color: transparent;
  transition: transform .15s var(--ease), box-shadow .2s, filter .2s;
}
.btn::after { /* light sweep on hover: a moving gradient, transform only */
  content: ""; position: absolute; inset: 0 auto 0 -40%; width: 30%;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .35), rgba(255, 255, 255, 0));
  transform: translateX(-120%) skewX(-18deg); pointer-events: none;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .btn:hover::after { transform: translateX(560%) skewX(-18deg); transition: transform .9s var(--ease); }
}
.btn:hover { background: linear-gradient(180deg, #D90A51, var(--primary-hover)); }
.btn:active { transform: scale(.98); }
.btn:focus-visible { outline: 3px solid var(--plum); outline-offset: 3px; }
.btn[disabled] { cursor: progress; }
.btn__arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .2); }
.btn__arrow .ic { width: 18px; height: 18px; stroke-width: 2.6; }
.btn__busy, .btn__spinner { display: none; }
.btn.is-loading { background: var(--primary-hover); }
.btn.is-loading .btn__label, .btn.is-loading .btn__arrow { display: none; }
.btn.is-loading .btn__busy { display: inline; }
.btn.is-loading .btn__spinner { display: block; width: 20px; height: 20px; border: 2.5px solid rgba(255, 255, 255, .35); border-top-color: #fff; border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.assure { display: grid; gap: 6px; margin-top: 14px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.assure li { display: flex; align-items: center; justify-content: center; gap: 7px; text-align: center; }
.assure .ic { width: 17px; height: 17px; color: var(--primary); }

.success { padding: 4px 0; text-align: center; }
.success:focus { outline: none; }
.success__check { width: 74px; height: 74px; margin: 0 auto 10px; }
.success__check circle { fill: var(--soft); stroke: var(--primary); stroke-width: 2.5; }
.success__check path { fill: none; stroke: var(--primary); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 34; }
.success__title { margin-bottom: 6px; font-size: 21px; font-weight: 800; color: var(--plum); }
.success p + p { color: #4A4247; }
.success__phone { font-weight: 800; color: var(--primary); white-space: nowrap; }
.success__hint { margin-top: 6px; font-size: 14px; color: var(--muted) !important; }

/* ---------- Benefit tiles (alt1) ---------- */
.tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.tile {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 60px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--plum);
  background: linear-gradient(180deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .6));
  border: 1px solid #fff;
  border-radius: 18px;
  box-shadow: 0 10px 20px -16px rgba(129, 3, 49, .35);
}
.tile__ic { display: grid; place-items: center; flex: none; width: 36px; height: 36px; color: var(--primary); background: var(--soft); border-radius: 12px; }

/* ---------- Trust strip ---------- */
.trust { max-width: 1180px; margin: 22px auto 0; padding: 0 16px; }
.trust__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  background: rgba(255, 255, 255, .8);
  border: 1px solid #fff;
  border-radius: 24px;
  box-shadow: 0 14px 30px -24px rgba(129, 3, 49, .45);
}
.trust__list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 8px;
  text-align: center;
  font-size: 13px;
  line-height: 1.55;
  color: var(--muted);
}
.trust__list li:nth-child(odd) { border-inline-end: 1px solid var(--line); }
.trust__list li:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
.trust__list .ic { width: 30px; height: 30px; stroke-width: 1.6; color: var(--primary); }
.trust__list strong { display: block; font-size: 15px; font-weight: 800; color: var(--plum); }

/* ---------- Products on the liquid wave ---------- */
.shelf { position: relative; margin-top: 34px; padding: 0 16px; text-align: center; overflow: hidden; overflow: clip; }
.section-title { font-size: 21px; font-weight: 800; line-height: 1.5; color: var(--plum); }
.shelf__stage { position: relative; max-width: 860px; margin: 8px auto 0; }
.stage__wave, .shelf__wave { /* the art is cropped at its sides: fade both ends into the page */
  -webkit-mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
}
.shelf .section-title { position: relative; z-index: 1; }
.shelf__products { position: relative; width: 100%; height: auto; }
.shelf__wave { position: absolute; left: 50%; bottom: -12%; width: 130%; height: auto; max-width: none; translate: -50% 0; }
.kpill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 18px auto 0;
  padding: 8px 10px 8px 22px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  background: linear-gradient(135deg, #9A0A40, var(--plum));
  border-radius: 999px;
  box-shadow: 0 14px 26px -16px rgba(129, 3, 49, .9);
}
.kflag { width: 32px; height: 32px; flex: none; }

/* ---------- Steps + FAQ ---------- */
.more { max-width: 1180px; margin: 36px auto 0; padding: 0 16px 44px; display: grid; gap: 30px; }
.steps { display: grid; gap: 10px; margin-top: 12px; }
.steps li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 8px 14px;
  font-weight: 700;
  background: rgba(255, 255, 255, .8);
  border: 1px solid #fff;
  border-radius: 999px;
  box-shadow: 0 10px 22px -20px rgba(129, 3, 49, .6);
}
.steps li .ic { color: var(--primary); }
.steps__n {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px;
  font-size: 15px; font-weight: 800; line-height: 1; color: var(--primary); background: var(--soft); border-radius: 50%;
}

.faq { display: grid; gap: 10px; align-content: start; }
.faq .section-title { margin-bottom: 2px; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: 18px; transition: border-color .2s, box-shadow .2s; }
.faq details[open] { border-color: #EBC2D1; box-shadow: 0 12px 26px -20px rgba(129, 3, 49, .45); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  min-height: 54px; padding: 10px 18px; font-size: 15px; font-weight: 700; line-height: 1.6;
  cursor: pointer; list-style: none; border-radius: 18px; -webkit-tap-highlight-color: transparent;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(var(--primary) 0 0) 50% 50% / 11px 2px no-repeat, linear-gradient(var(--primary) 0 0) 50% 50% / 2px 11px no-repeat, var(--soft);
  transition: transform .3s var(--ease), background-size .3s var(--ease);
}
.faq details[open] summary::after { transform: rotate(180deg); background-size: 11px 2px, 2px 0, auto; }
.faq summary:focus-visible { outline: 3px solid var(--primary); outline-offset: -3px; }
.faq details p { padding: 0 18px 16px; font-size: 15px; line-height: 1.95; color: #4A4247; }

/* ---------- Footer ---------- */
.site-footer {
  padding: 22px 16px calc(22px + env(safe-area-inset-bottom));
  text-align: center;
  color: #FBE9EF;
  background: linear-gradient(180deg, #8E0638, var(--plum));
}
.site-footer__consent { font-size: 14px; line-height: 1.7; }
.site-footer__consent .ic { display: inline-block; width: 18px; height: 18px; margin-inline-end: 6px; vertical-align: -3px; color: #F7B6CB; }
.site-footer__copy { margin-top: 4px; font-size: 13px; color: #EAC6D3; }

/* ---------- Sticky mobile CTA ---------- */
.sticky-cta {
  position: fixed; inset: auto 0 0; z-index: 20;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: rgba(253, 245, 245, .95);
  border-top: 1px solid var(--line);
  box-shadow: 0 -10px 24px -18px rgba(129, 3, 49, .5);
  transform: translateY(110%); visibility: hidden;
  transition: transform .3s var(--ease), visibility 0s linear .3s;
}
.sticky-cta.is-shown { transform: none; visibility: visible; transition: transform .3s var(--ease), visibility 0s; }
.btn--sticky { margin: 0; min-height: 52px; }
.btn--sticky .ic { width: 22px; height: 22px; }
@media (max-width: 959px) { .site-footer { padding-bottom: calc(96px + env(safe-area-inset-bottom)); } }

/* ---------- Motion (transform / opacity only) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .hero__title { animation: rise .7s var(--ease) both; }
  .hero__sub { animation: fade-up .7s .08s var(--ease) both; }
  .stage__woman { animation: settle 1.2s var(--ease) both; }
  .stage__wave { animation: drift 9s ease-in-out infinite alternate; }
  .card { animation: fade-up .7s .15s var(--ease) both; }
  .tiles { animation: fade-up .7s .25s var(--ease) both; }
  .spark { animation: twinkle 3.2s ease-in-out infinite; }
  .spark--b { animation-delay: 1.1s; }
  .spark--title { animation-delay: .5s; }
  .success:not([hidden]) { animation: fade-up .5s var(--ease) both; }
  .success:not([hidden]) .success__check circle { animation: pop .5s var(--ease) both; transform-origin: center; }
  .success:not([hidden]) .success__check path { stroke-dashoffset: 34; animation: check .45s .3s var(--ease) forwards; }
  .faq details[open] p { animation: fade-up .35s var(--ease) both; }
  .error:not(:empty) { animation: nudge .3s var(--ease); }
}
@keyframes rise { from { transform: translateY(14px); } }
@keyframes fade-up { from { opacity: 0; transform: translateY(16px); } }
@keyframes settle { from { transform: translateY(10px) scale(1.03); } }
@keyframes drift { to { transform: scaleX(-1) translateX(-14px); } }
@keyframes twinkle { 0%, 100% { transform: scale(.8) rotate(0); opacity: .55; } 50% { transform: scale(1.1) rotate(20deg); opacity: 1; } }
@keyframes pop { from { transform: scale(.6); opacity: 0; } }
@keyframes check { to { stroke-dashoffset: 0; } }
@keyframes nudge { 30% { transform: translateX(-4px); } 60% { transform: translateX(3px); } }

/* ---------- Small phones ---------- */
@media (max-width: 359px) {
  .card { padding-inline: 14px; }
  .card__badge { padding-inline: 16px; }
  .card__badge h2 { font-size: 16px; }
  .btn { font-size: 16px; gap: 8px; }
  .tile { font-size: 13px; gap: 8px; padding-inline: 10px; }
  .tile__ic { width: 32px; height: 32px; }
}

/* ---------- Tablet ---------- */
@media (min-width: 600px) {
  .brand__logo img { width: 170px; }
  .hero__sub { max-width: 36ch; }
  .hero__stage { width: 420px; }
  .stage__woman { width: 360px; }
  .card { width: 100%; max-width: 560px; margin-inline: auto; padding: 44px 30px 24px; }
  .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; max-width: 760px; margin-inline: auto; }
  .tile { flex-direction: column; justify-content: center; text-align: center; padding: 14px 8px; }
  .trust__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trust__list li { border: 0 !important; }
  .trust__list li + li { border-inline-start: 1px solid var(--line) !important; }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Desktop: model beside the form ---------- */
@media (min-width: 960px) {
  .brand { padding-top: 22px; }
  .brand__logo img { width: 196px; }
  .slogan__fa { font-size: 17px; }
  .slogan__en { font-size: 17px; }
  .sticky-cta { display: none; }

  .hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); /* RTL: content right, model left */
    column-gap: 36px;
    align-items: start;
    padding-top: 26px;
  }
  .hero__content { display: flex; flex-direction: column; grid-column: 1; grid-row: 1; padding-top: 6px; }
  .hero__intro { order: 0; text-align: right; }
  .hero__title { font-size: clamp(44px, 4.2vw, 58px); }
  .spark--title { width: 32px; height: 32px; top: 2px; left: -44px; }
  .hero__sub { margin: 10px 0 0; max-width: 34ch; font-size: 18px; text-wrap: wrap; }
  .tiles { order: 2; max-width: none; margin: 22px 0 0; }
  .tile { min-height: 96px; font-size: 13.5px; }
  .card { order: 1; max-width: none; margin: 42px 0 0; padding: 46px 32px 26px; }
  .card__lead { text-align: right; }
  .assure { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; }

  .hero__stage { grid-column: 2; grid-row: 1; width: auto; margin: 0; align-self: stretch; }
  .stage__glow { inset: 4% 0 14%; }
  .stage__woman { width: 100%; max-width: 540px; margin: 0 auto; }
  .stage__wave { left: -14%; bottom: 10%; width: 120%; translate: 0 0; }
  .hero__content { position: relative; z-index: 2; }
  .spark--a { width: 26px; height: 26px; top: 12%; right: 6%; }
  .spark--b { width: 15px; height: 15px; top: 22%; right: 14%; }

  .trust { margin-top: 30px; }
  .trust__list li { flex-direction: row; justify-content: center; gap: 12px; padding: 20px 12px; text-align: right; font-size: 13.5px; }
  .shelf { margin-top: 48px; }
  .section-title { font-size: 24px; }
  .shelf__stage { margin-top: 14px; }
  .shelf__wave { width: 136%; bottom: -26%; }
  .more { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 56px; padding-bottom: 64px; }
  .steps { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation: none !important; }
  .btn.is-loading .btn__spinner { animation: spin 1.6s linear infinite !important; }
}
