.page--service {
  background: #f3f1ee;
  --service-pricing-bg: url("../../images/prestations/mariage/mariage-t01.webp");
}

.page--mariage {
  --service-pricing-bg: url("../../images/prestations/mariage/mariage-t01.webp");
}

.page--enfant-famille {
  --service-pricing-bg: url("../../images/prestations/famille/famille-t01.webp");
}

.page--grossesse {
  --service-pricing-bg: url("../../images/prestations/grossesse/grossesse-t01.webp");
}

.page--naissance {
  --service-pricing-bg: url("../../images/prestations/naissance/naissance-t01.webp");
}

.page--smash-the-cake {
  --service-pricing-bg: url("../../images/prestations/smash-cake/smash-cake-t01.webp");
}

.page--bapteme-communion {
  --service-pricing-bg: url("../../images/prestations/bapteme/bapteme-t01.webp");
}

.service-page {
  background: #f3f1ee;
  padding: clamp(116px, 8vw, 148px) clamp(18px, 3vw, 48px) clamp(48px, 4vw, 72px);
}

.service-page__intro {
  max-width: var(--content-wide, 1440px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, 0.82fr);
  align-items: stretch;
  gap: clamp(28px, 3vw, 52px);
}

.service-page__copy {
  min-width: 0;
  display: block;
}

.service-page__title-row {
  display: inline-flex;
  align-items: center;
  gap: clamp(16px, 1.4vw, 26px);
}

.service-page__title {
  margin: 0;
  font-family: "Allura", "Above The Beyond Script", "Brush Script MT", cursive;
  font-size: clamp(44px, 3vw, 64px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: 0.02em;
}

.service-page__title-leaf {
  width: clamp(82px, 6vw, 120px);
  height: auto;
  transform: translateY(4%);
  user-select: none;
  pointer-events: none;
}

.service-page__text {
  margin-top: clamp(22px, 1.8vw, 32px);
  max-width: min(100%, 760px);
  padding-right: clamp(6px, 0.7vw, 14px);
  display: block;
}

.service-page__text p {
  margin: 0;
  font-size: clamp(16px, 1.02vw, 19px);
  line-height: 1.5;
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
}

.page--mariage .service-page__title {
  font-size: clamp(40px, 2.3vw, 52px);
  white-space: nowrap;
}

.page--mariage .service-page__title-row {
  display: inline-flex;
  align-items: center;
  gap: clamp(14px, 1.1vw, 24px);
}

.page--mariage .service-page__title-leaf {
  display: block;
  width: clamp(82px, 5.5vw, 112px);
  height: auto;
}

.service-page__text p + p {
  margin-top: clamp(14px, 1.1vw, 20px);
}

.service-page__text sup {
  font-size: 0.72em;
}

.service-page__media {
  --service-carousel-width: 370px;
  --service-action-width: calc(var(--service-carousel-width) + 110px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 0.8vw, 14px);
  padding-top: clamp(10px, 1vw, 20px);
  width: 100%;
  max-width: 520px;
  min-height: 100%;
  justify-self: center;
}

.service-page__carousel {
  width: 100%;
}

.service-page__carousel .carousel__viewport {
  width: min(100%, var(--service-carousel-width));
  max-width: var(--service-carousel-width);
}

.service-page__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: var(--control-height, 52px);
  padding: 0 clamp(22px, 1.4vw, 28px);
  border-radius: 999px;
  background: #ebe7e1;
  border: 1px solid rgba(16, 16, 16, 0.08);
  color: #151515;
  text-decoration: none;
  font-size: var(--control-font-size, 17px);
  line-height: 1.1;
  text-align: center;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.service-page__button:hover,
.service-page__button:focus-visible {
  background: #e2ddd5;
  color: #101010;
}

.service-page__button:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring, 0 0 0 3px rgba(74, 57, 45, 0.28));
}

.service-page__button--tarifs {
  background: #ebe7e1;
  width: clamp(210px, 14vw, 250px);
  margin-top: 0;
}

.service-page__button--tarifs:hover,
.service-page__button--tarifs:focus-visible {
  background: #e2ddd5;
}

.service-page__actions {
  --service-action-gap: clamp(14px, 1vw, 22px);
  width: 100%;
  max-width: 100%;
  margin: clamp(14px, 1.1vw, 22px) 0 0;
  display: grid;
  justify-items: center;
  row-gap: var(--service-action-gap);
  position: relative;
}

.service-page__branch {
  width: min(100%, 620px);
  height: auto;
  display: block;
  margin-inline: auto;
  object-fit: contain;
  object-position: center;
  user-select: none;
  pointer-events: none;
}

.service-page__actions-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 0.95vw, 18px);
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
}

.service-page__actions-row .service-page__button {
  min-width: clamp(210px, 14vw, 250px);
  width: clamp(210px, 14vw, 250px);
  white-space: nowrap;
}

.service-page__actions--copy {
  margin-top: clamp(16px, 1.3vw, 24px);
  width: 100%;
  max-width: 100%;
  display: grid;
  justify-items: center;
  row-gap: clamp(16px, 1.3vw, 24px);
}

.service-page__actions--copy .service-page__branch {
  width: min(100%, 620px);
  transform: none;
}

.service-page__actions--copy .service-page__actions-row {
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  justify-content: center;
  gap: clamp(16px, 1.2vw, 24px);
  transform: translateX(calc(clamp(8px, 0.55vw, 12px) * -1));
}

.service-page__actions--copy .service-page__actions-row .service-page__button {
  width: clamp(210px, 14vw, 250px);
  max-width: none;
  min-width: clamp(210px, 14vw, 250px);
  justify-self: center;
  min-height: var(--control-height, 52px);
  font-size: var(--control-font-size, 17px);
  padding: 0 clamp(14px, 0.95vw, 22px);
}

.service-page__actions--copy .service-page__actions-row .service-page__button--tight {
  min-width: clamp(210px, 14vw, 250px);
  width: clamp(210px, 14vw, 250px);
  padding: 0 clamp(14px, 0.95vw, 22px);
}

.service-pricing {
  position: relative;
  scroll-margin-top: 118px;
  margin-top: clamp(34px, 3vw, 52px);
  padding: clamp(54px, 4.5vw, 76px) clamp(16px, 2.6vw, 34px) clamp(60px, 4.8vw, 82px);
  border-radius: var(--radius-lg, 26px);
  overflow: hidden;
  background-image:
    linear-gradient(180deg, rgba(14, 20, 14, 0.56) 0%, rgba(14, 20, 14, 0.62) 100%),
    var(--service-pricing-bg);
  background-size: cover;
  background-position: center 36%;
  background-repeat: no-repeat;
}

.service-pricing__inner {
  position: relative;
  z-index: 1;
  max-width: var(--content, 1280px);
  margin: 0 auto;
}

.service-pricing__title {
  margin: 0;
  text-align: center;
  font-family: "Allura", "Above The Beyond Script", "Brush Script MT", cursive;
  font-size: clamp(58px, 4.2vw, 82px);
  font-weight: 400;
  line-height: 0.95;
  color: #f8f5f2;
  text-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
}

.service-pricing__grid {
  margin-top: clamp(28px, 2.4vw, 42px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(16px, 1.5vw, 24px);
}

@media (min-width: 1181px) {
  .service-pricing__grid:has(> .pricing-card:nth-child(5):last-child) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .service-pricing__grid:has(> .pricing-card:nth-child(5):last-child) > .pricing-card {
    grid-column: span 2;
  }

  .service-pricing__grid:has(> .pricing-card:nth-child(5):last-child)
    > .pricing-card:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .service-pricing__grid:has(> .pricing-card:nth-child(5):last-child)
    > .pricing-card:nth-child(5) {
    grid-column: 4 / span 2;
  }
}

.pricing-card {
  --pricing-gutter: clamp(16px, 1.25vw, 20px);
  --heart-1: #dad0ff;
  --heart-2: #cab9ff;
  --heart-3: #b8a3f5;
  --heart-4: #a28be8;
  --heart-5: #8b72d7;
  background: rgba(251, 250, 248, 0.96);
  border-radius: var(--radius-lg, 26px);
  padding: var(--pricing-gutter);
  height: 100%;
  box-shadow:
    var(--shadow-card, 0 16px 36px rgba(22, 18, 15, 0.11)),
    inset 0 0 0 1px rgba(17, 17, 17, 0.05);
}

.pricing-card--tier-2 {
  --heart-1: #d0c5ff;
  --heart-2: #c0adff;
  --heart-3: #aa95f2;
  --heart-4: #947de6;
  --heart-5: #7e68d7;
}

.pricing-card--tier-3 {
  --heart-1: #c7baff;
  --heart-2: #b7a3fb;
  --heart-3: #a18be9;
  --heart-4: #8b73dd;
  --heart-5: #765fce;
}

.pricing-card--tier-4 {
  --heart-1: #bfaeff;
  --heart-2: #ae97f7;
  --heart-3: #9982ea;
  --heart-4: #856ddc;
  --heart-5: #725acf;
}

.pricing-card__name {
  margin: 0;
  text-align: center;
  font-family: "Allura", "Above The Beyond Script", "Brush Script MT", cursive;
  font-size: clamp(38px, 2.7vw, 54px);
  font-weight: 400;
  line-height: 0.94;
  word-spacing: 0.03em;
  color: #111;
}

.pricing-card__name--tier4 {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.24em;
  width: 100%;
  white-space: nowrap;
}

.pricing-card__price {
  margin: clamp(8px, 0.6vw, 12px) 0 0;
  text-align: center;
  font-size: clamp(27px, 1.8vw, 36px);
  line-height: 1;
  color: #171717;
}

.pricing-card__items {
  margin: var(--pricing-gutter) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(5px, 0.5vw, 10px);
}

.pricing-card__items li {
  --heart-color: var(--heart-3);
  display: grid;
  grid-template-columns: 1em 1fr;
  align-items: center;
  column-gap: 0.46em;
  font-size: clamp(16px, 1.05vw, 19px);
  line-height: 1.3;
  color: #121212;
}

.pricing-card__items li::before {
  content: "";
  width: 1em;
  height: 1em;
  background: var(--heart-color);
  -webkit-mask-image: url("../../images/decorations/heart-mask.png");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 235% 235%;
  mask-image: url("../../images/decorations/heart-mask.png");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 235% 235%;
  transform: translateY(1px);
  filter: drop-shadow(0 1px 1px rgba(118, 90, 206, 0.28));
}

.pricing-card__items li:nth-child(1) {
  --heart-color: var(--heart-1);
}

.pricing-card__items li:nth-child(2) {
  --heart-color: var(--heart-2);
}

.pricing-card__items li:nth-child(3) {
  --heart-color: var(--heart-3);
}

.pricing-card__items li:nth-child(4) {
  --heart-color: var(--heart-4);
}

.pricing-card__items li:nth-child(n + 5) {
  --heart-color: var(--heart-5);
}
