@media (max-width: 1180px) {
  .brand__logo {
    width: clamp(250px, 22vw, 320px);
  }

  .menu__list {
    gap: 14px;
    padding: 0 22px;
  }

  .menu__link {
    font-size: clamp(14px, 1.35vw, 19px);
  }

  .hero__content {
    left: 34px;
    top: clamp(184px, 16vw, 202px);
    max-width: min(64vw, 760px);
  }

  .hero__title {
    font-size: clamp(42px, 5.2vw, 68px);
  }

  .hero__title-line--offset {
    margin-left: clamp(36px, 3.2vw, 64px);
  }

  .hero__cta-cluster {
    margin-left: clamp(48px, 5.5vw, 120px);
  }

  .hero__subtitle {
    font-size: clamp(20px, 2.45vw, 32px);
  }

  .sticky-nav__inner {
    min-height: 58px;
    padding: 6px 14px;
  }

  .sticky-nav__brand {
    width: clamp(86px, 9vw, 110px);
  }

  .sticky-nav__logo {
    width: clamp(166px, 16vw, 208px);
  }

  .sticky-nav__list {
    gap: clamp(10px, 1.2vw, 18px);
  }

  .sticky-nav__link {
    font-size: clamp(13px, 1.42vw, 17px);
  }

  .sticky-nav__social {
    gap: 6px;
  }

  .sticky-nav__social-link {
    width: clamp(24px, 2.1vw, 30px);
    height: clamp(24px, 2.1vw, 30px);
  }

  .about-preview__layout {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .about-card {
    max-width: 980px;
  }

  .about-card__portrait {
    right: -2px;
    width: clamp(220px, 31vw, 300px);
    bottom: -24px;
  }

  .about-card__panel p:not(:first-child):not(.about-card__quote) {
    max-width: calc(100% - clamp(240px, 26vw, 320px));
  }

  .about-card__panel .about-card__quote {
    max-width: calc(100% - clamp(240px, 26vw, 320px));
    font-size: clamp(26px, 2.1vw, 34px);
  }

  .about-card__social-row {
    max-width: calc(100% - clamp(190px, 24vw, 260px));
    margin-left: 14px;
  }

  .carousel {
    max-width: 640px;
    margin: 0 auto;
  }

  .sessions-catalog__grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 78px 44px;
  }

  .service-page {
    padding-top: clamp(132px, 10.6vw, 164px);
  }

  .service-page__intro {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .service-page__copy {
    max-width: 980px;
    margin: 0 auto;
    display: block;
  }

  .service-page__media {
    --service-carousel-width: 390px;
    padding-top: 0;
    width: min(100%, 560px);
    min-height: 0;
  }

  .service-page__actions--copy {
    row-gap: 12px;
    max-width: 760px;
    margin-inline: auto;
  }

  .service-page__actions--copy .service-page__actions-row {
    max-width: 680px;
    gap: 12px;
  }

  .service-pricing {
    border-radius: 24px;
    padding: clamp(52px, 5.4vw, 84px) clamp(14px, 2.2vw, 26px) clamp(60px, 5.2vw, 92px);
    background-position: center 32%;
  }

  .service-pricing__title {
    font-size: clamp(58px, 5.3vw, 86px);
  }

  .service-pricing__grid {
    margin-top: clamp(28px, 2.7vw, 44px);
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: clamp(16px, 1.8vw, 26px);
  }

  .pricing-card {
    --pricing-gutter: clamp(14px, 1.15vw, 20px);
    padding: var(--pricing-gutter);
  }

  .pricing-card__name {
    font-size: clamp(44px, 3.2vw, 60px);
  }

  .pricing-card__price {
    font-size: clamp(30px, 2.2vw, 40px);
  }

  .pricing-card__items li {
    font-size: clamp(20px, 1.45vw, 26px);
  }

  .pricing-card__items li::before {
    width: 1em;
    height: 1em;
  }

  .gift-page {
    padding-top: clamp(138px, 10.6vw, 170px);
  }

  .gift-page__title {
    font-size: clamp(62px, 5.7vw, 90px);
  }

  .gift-page__leaf {
    width: clamp(90px, 8.4vw, 130px);
  }

  .gift-page__layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .gift-page__media {
    max-width: 980px;
    margin: 0 auto;
    width: 100%;
  }

  .gift-page__content {
    max-width: 980px;
    margin: 0 auto;
    width: 100%;
    gap: 28px;
  }

  .gift-page__actions {
    max-width: 760px;
    width: 100%;
    margin: 0 auto;
  }

  .contact-page {
    padding-top: clamp(138px, 10.6vw, 170px);
  }

  .contact-page__title {
    font-size: clamp(56px, 5.4vw, 80px);
  }

  .contact-page__leaf {
    width: clamp(110px, 9.8vw, 164px);
  }

  .reviews-page {
    padding-top: clamp(136px, 10.4vw, 164px);
  }

  .reviews-page__title {
    font-size: clamp(62px, 5.3vw, 86px);
  }

  .reviews-page__subtitle {
    font-size: clamp(22px, 2vw, 30px);
  }

  .reviews-page__google-link a {
    font-size: clamp(18px, 1.55vw, 24px);
  }

  .reviews-page__grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
  }

  .offers-page {
    padding-top: clamp(138px, 10.6vw, 170px);
  }

  .offers-page__hero {
    max-width: 980px;
  }

  .offers-page__script-title {
    font-size: clamp(64px, 5.9vw, 94px);
  }

  .offers-page__title {
    font-size: clamp(52px, 4.8vw, 82px);
  }

  .offers-page__intro {
    max-width: 940px;
    font-size: clamp(20px, 1.55vw, 26px);
  }

  .offers-page__grid {
    max-width: 940px;
    grid-template-columns: 1fr;
  }

  .offer-card {
    padding-inline: clamp(20px, 3vw, 32px);
  }

  .offer-card__items li {
    font-size: clamp(30px, 2.4vw, 42px);
  }

  .offer-card__price {
    font-size: clamp(44px, 3.5vw, 66px);
  }

  .offers-page__options {
    max-width: 940px;
  }

  .offers-page__options-list li {
    font-size: clamp(28px, 2.2vw, 38px);
  }

  .session-card {
    max-width: 460px;
    margin: 0 auto;
  }

  .session-card__stack {
    width: clamp(176px, 18vw, 236px);
  }

  .site-footer__quote {
    font-size: clamp(58px, 7vw, 88px);
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .footer-contact {
    max-width: 980px;
    margin: 0 auto;
    padding-top: 44px;
  }

  .footer-reviews {
    max-width: 980px;
    margin: 0 auto;
  }

  .footer-reviews__row {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .review-card {
    flex-basis: clamp(212px, 22vw, 280px);
  }
}

/* Passe d'harmonisation 2026 — le footer est volontairement exclu de ces ajustements. */
@media (max-width: 1180px) {
  .brand__logo {
    width: clamp(220px, 20vw, 278px);
  }

  .menu__list {
    min-height: 52px;
    gap: 12px;
    padding-inline: 20px;
  }

  .menu__link {
    font-size: clamp(14px, 1.25vw, 17px);
  }

  .hero__content {
    top: clamp(184px, 16vw, 202px);
    max-width: min(62vw, 680px);
  }

  .hero__title {
    font-size: clamp(40px, 4.8vw, 58px);
  }

  .hero__subtitle {
    font-size: clamp(20px, 2.25vw, 27px);
  }

  .service-page,
  .gift-page,
  .contact-page,
  .reviews-page,
  .offers-page {
    padding-top: clamp(108px, 9.5vw, 128px);
  }

  .service-page__intro {
    gap: 34px;
  }

  .service-page__copy {
    max-width: 860px;
  }

  .service-page__media {
    --service-carousel-width: 360px;
    width: min(100%, 500px);
  }

  .service-pricing {
    padding: clamp(48px, 5vw, 66px) clamp(14px, 2vw, 24px) clamp(54px, 5.2vw, 72px);
  }

  .service-pricing__title {
    font-size: clamp(52px, 5vw, 68px);
  }

  .service-pricing__grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
  }

  .pricing-card__name {
    font-size: clamp(38px, 3.2vw, 48px);
  }

  .pricing-card__price {
    font-size: clamp(26px, 2.2vw, 32px);
  }

  .pricing-card__items li {
    font-size: clamp(16px, 1.45vw, 18px);
  }

  .gift-page__title {
    font-size: clamp(54px, 5.2vw, 70px);
  }

  .gift-page__leaf {
    width: clamp(74px, 7vw, 102px);
  }

  .contact-page__title {
    font-size: clamp(50px, 5vw, 66px);
  }

  .contact-page__leaf {
    width: clamp(82px, 7.4vw, 110px);
  }

  .reviews-page__title {
    font-size: clamp(52px, 5.1vw, 68px);
  }

  .reviews-page__subtitle {
    font-size: clamp(18px, 1.8vw, 22px);
  }

  .reviews-page__google-link a {
    font-size: clamp(16px, 1.4vw, 18px);
  }

  .offers-page__script-title {
    font-size: clamp(54px, 5.4vw, 72px);
  }

  .offers-page__title {
    font-size: clamp(40px, 4.2vw, 54px);
  }

  .offers-page__intro {
    font-size: clamp(17px, 1.5vw, 20px);
  }

  .offer-card__items li {
    font-size: clamp(20px, 2vw, 24px);
  }

  .offer-card__price {
    font-size: clamp(32px, 3vw, 42px);
  }

  .offers-page__options-list li {
    font-size: clamp(18px, 1.8vw, 22px);
  }
}

@media (max-width: 860px) {
  .topbar {
    position: relative;
    top: 0;
    min-height: 0;
    padding: 18px 18px 0;
  }

  .brand {
    position: static;
  }

  .brand__logo {
    width: clamp(148px, 34vw, 198px);
    transform: none;
  }

  .menu {
    position: static;
    transform: none;
    margin-top: 12px;
    width: 100%;
  }

  .menu__list {
    min-height: unset;
    flex-wrap: wrap;
    justify-content: flex-start;
    border-radius: 24px;
    padding: 14px 18px;
    gap: 10px 18px;
  }

  .hero__content {
    position: relative;
    top: 0;
    left: 0;
    max-width: 100%;
    padding: 14px 18px 120px;
  }

  .hero__title {
    white-space: normal;
  }

  .hero__title-line--offset {
    margin-top: 0.08em;
    margin-left: 0;
  }

  .hero__background {
    object-position: 66% center;
  }

  .hero__actions {
    flex-wrap: wrap;
    justify-content: center;
  }

  .hero__cta-cluster {
    width: 100%;
    margin-left: 0;
  }

  .hero__floral {
    left: -7px;
    bottom: -10px;
    width: clamp(175px, 52vw, 220px);
    opacity: 0.68;
  }

  .hero__subtitle br {
    display: none;
  }

  .sticky-nav {
    display: none;
  }

  .about-preview {
    padding-inline: 16px;
  }

  .service-page {
    padding: 84px 16px 52px;
  }

  .contact-page {
    padding: 94px 16px 0;
  }

  .contact-page__hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 10px;
  }

  .contact-page__title {
    font-size: clamp(44px, 9.8vw, 60px);
    line-height: 0.97;
    white-space: normal;
  }

  .contact-page__leaf {
    width: clamp(62px, 16vw, 96px);
  }

  .reviews-page {
    padding: 94px 16px 42px;
  }

  .reviews-page__hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 8px;
  }

  .reviews-page__title {
    font-size: clamp(46px, 10.4vw, 64px);
    white-space: normal;
    line-height: 0.98;
  }

  .reviews-page__leaf {
    width: clamp(58px, 14vw, 84px);
  }

  .reviews-page__subtitle {
    margin-top: 20px;
    font-size: clamp(18px, 4.6vw, 24px);
    line-height: 1.14;
  }

  .reviews-page__google-link a {
    font-size: clamp(16px, 4.1vw, 21px);
  }

  .reviews-page__grid {
    margin-top: 26px;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .reviews-page__card {
    min-height: 0;
    padding: 22px 16px 18px;
  }

  .offers-page {
    padding: 94px 16px 48px;
  }

  .offers-page__hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 8px;
  }

  .offers-page__leaf {
    width: clamp(60px, 14vw, 88px);
  }

  .offers-page__script-title {
    font-size: clamp(44px, 11vw, 62px);
  }

  .offers-page__title {
    margin-top: 4px;
    font-size: clamp(34px, 8.8vw, 52px);
    letter-spacing: 0.02em;
    line-height: 1;
  }

  .offers-page__intro {
    margin-top: 14px;
    font-size: clamp(17px, 4.7vw, 22px);
    line-height: 1.3;
    padding: 0 6px;
  }

  .offers-page__grid {
    margin-top: 18px;
    gap: 12px;
  }

  .offer-card {
    border-radius: 20px;
    padding: 14px 14px 18px;
  }

  .offer-card__name {
    min-height: 52px;
    padding-inline: 18px;
    font-size: clamp(36px, 8.2vw, 46px);
  }

  .offer-card__items {
    margin-top: 12px;
    gap: 6px;
  }

  .offer-card__items li {
    font-size: clamp(24px, 6.8vw, 34px);
    line-height: 1.08;
  }

  .offer-card__price {
    margin-top: 14px;
    font-size: clamp(34px, 8.4vw, 46px);
  }

  .offers-page__options {
    margin-top: 14px;
    border-radius: 18px;
    padding: 14px 14px 16px;
  }

  .offers-page__options-title {
    font-size: clamp(38px, 10vw, 50px);
    text-underline-offset: 3px;
  }

  .offers-page__options-list {
    margin-top: 10px;
    gap: 6px;
  }

  .offers-page__options-list li {
    font-size: clamp(21px, 5.6vw, 28px);
    line-height: 1.16;
    flex-wrap: wrap;
  }

  .offers-page__branch {
    width: min(100%, 340px);
    margin-top: 18px;
  }

  .offers-page__actions {
    display: grid;
    margin-top: 14px;
    gap: 10px;
    grid-template-columns: 1fr;
    width: min(100%, 320px);
    transform: none;
  }

  .offers-page__button {
    min-height: 54px;
    font-size: clamp(18px, 5.2vw, 24px);
    width: 100%;
    min-width: 0;
  }

  .service-page__title-row {
    display: flex;
    justify-content: center;
    gap: 12px;
  }

  .service-page__title {
    font-size: clamp(48px, 11vw, 66px);
  }

  .page--mariage .service-page__title {
    white-space: normal;
    font-size: clamp(40px, 9.4vw, 60px);
  }

  .service-page__title-leaf {
    width: clamp(74px, 18vw, 116px);
  }

  .service-page__actions-row {
    display: grid;
    width: 100%;
    max-width: 320px;
    grid-template-columns: 1fr;
    gap: 14px;
    justify-items: center;
    transform: none;
  }

  .service-page__actions-row .service-page__button {
    width: min(100%, 320px);
    max-width: 320px;
  }

  .service-page__actions--copy .service-page__actions-row .service-page__button,
  .service-page__actions--copy .service-page__actions-row .service-page__button--tight {
    min-width: 0;
    width: min(100%, 320px);
    max-width: 320px;
    padding-inline: 18px;
  }

  .service-page__text p {
    text-align: left;
  }

  .service-page__text {
    display: block;
  }

  .service-page__text p + p {
    margin-top: clamp(18px, 1.4vw, 28px);
  }

  .service-pricing {
    margin-top: 26px;
    border-radius: 20px;
    padding: 44px 12px 54px;
    background-position: center 30%;
  }

  .service-pricing__title {
    font-size: clamp(44px, 11.6vw, 66px);
    line-height: 0.98;
  }

  .service-pricing__grid {
    margin-top: 22px;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .pricing-card {
    border-radius: 28px;
    --pricing-gutter: 14px;
    padding: var(--pricing-gutter);
  }

  .pricing-card__name {
    font-size: clamp(38px, 8.4vw, 48px);
  }

  .pricing-card__price {
    margin-top: 8px;
    font-size: clamp(26px, 6.2vw, 34px);
  }

  .pricing-card__items {
    margin-top: var(--pricing-gutter);
    gap: 6px;
  }

  .pricing-card__items li {
    grid-template-columns: 1em 1fr;
    column-gap: 0.44em;
    font-size: clamp(19px, 4.9vw, 26px);
  }

  .pricing-card__items li::before {
    width: 1em;
    height: 1em;
  }

  .gift-page {
    padding: 94px 16px 42px;
  }

  .gift-page__hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 8px;
  }

  .gift-page__title {
    font-size: clamp(46px, 10.5vw, 64px);
    line-height: 0.97;
  }

  .gift-page__leaf {
    width: clamp(58px, 14vw, 84px);
  }

  .gift-page__layout {
    margin-top: 20px;
    gap: 24px;
  }

  .gift-page__carousel .carousel__slides {
    aspect-ratio: 16 / 10;
    border-radius: 20px;
  }

  .gift-page__carousel .carousel__arrow {
    font-size: clamp(30px, 7.2vw, 42px);
  }

  .gift-page__text {
    gap: 14px;
  }

  .gift-page__text p {
    font-size: clamp(18px, 4.8vw, 24px);
    text-align: left;
  }

  .gift-page__cards-title {
    font-size: clamp(24px, 7vw, 34px);
  }

  .gift-page__actions {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .gift-page__button {
    min-height: 54px;
    font-size: clamp(18px, 5.2vw, 24px);
  }

  .about-card__panel {
    padding-bottom: 34px;
  }

  .about-card__panel p:not(:first-child):not(.about-card__quote) {
    max-width: 100%;
  }

  .about-card__panel .about-card__quote {
    max-width: 100%;
    font-size: clamp(34px, 9.2vw, 52px);
    white-space: normal;
  }

  .about-card__portrait {
    position: static;
    display: block;
    margin: 16px auto 0;
    width: min(100%, 330px);
  }

  .about-card__social-row {
    margin-top: 16px;
    padding-left: 0;
    justify-content: center;
    flex-wrap: wrap;
    text-align: center;
  }

  .about-card__social-link {
    width: 34px;
    height: 34px;
  }

  .sessions-catalog {
    padding-inline: 16px;
  }

  .sessions-catalog__grid {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  .session-card__stack {
    width: min(62vw, 240px);
  }

  .session-card:hover .session-card__image--left,
  .session-card:focus-within .session-card__image--left {
    transform: translateX(-55%) rotate(-16deg) scale(0.94);
  }

  .session-card:hover .session-card__image--right,
  .session-card:focus-within .session-card__image--right {
    transform: translateX(55%) rotate(16deg) scale(0.94);
  }

  .session-card__title {
    font-size: clamp(22px, 6vw, 30px);
  }

  .session-card__description {
    font-size: clamp(18px, 4.2vw, 24px);
    max-width: 95%;
  }

  .sessions-catalog__actions {
    margin-top: 40px;
    gap: 14px;
  }

  .sessions-catalog__button {
    width: min(100%, 320px);
  }

  .site-footer__quote {
    font-size: clamp(44px, 11.2vw, 66px);
  }

  .footer-contact {
    padding-top: 42px;
  }

  .footer-contact__leaf {
    top: -72px;
    left: 6px;
    width: 104px;
  }

  .footer-form input:not([type="checkbox"]),
  .footer-form select,
  .footer-form textarea {
    font-size: 20px;
  }

  .footer-form__submit {
    width: 100%;
  }

  .footer-reviews__contact {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .reviews-carousel {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .reviews-carousel__viewport {
    order: 1;
  }

  .reviews-carousel__arrow {
    width: 34px;
    height: 34px;
  }

  .reviews-carousel__arrow--prev {
    justify-self: start;
  }

  .reviews-carousel__arrow--next {
    justify-self: end;
    margin-top: -44px;
  }

  .review-card {
    flex-basis: min(78vw, 300px);
  }

  .site-footer__legal nav {
    gap: 12px 28px;
  }
}

/* Ajustements mobiles finaux, placés après les règles historiques. Footer non concerné. */
@media (max-width: 860px) {
  .hero__content {
    padding: 12px 16px 82px;
  }

  .service-page,
  .gift-page,
  .contact-page,
  .reviews-page,
  .offers-page {
    padding-top: 92px;
  }

  .service-page__title {
    font-size: clamp(40px, 10vw, 52px);
  }

  .page--mariage .service-page__title {
    font-size: clamp(36px, 9vw, 48px);
  }

  .service-page__title-leaf {
    width: clamp(62px, 16vw, 84px);
  }

  .service-pricing {
    border-radius: 20px;
    padding: 38px 10px 46px;
  }

  .service-pricing__title {
    font-size: clamp(44px, 11vw, 56px);
  }

  .pricing-card {
    border-radius: 20px;
  }

  .pricing-card__name {
    font-size: clamp(34px, 8.5vw, 42px);
  }

  .pricing-card__price {
    font-size: clamp(25px, 6.4vw, 30px);
  }

  .pricing-card__items li {
    font-size: clamp(16px, 4.35vw, 18px);
    line-height: 1.32;
  }

  .gift-page__title,
  .reviews-page__title {
    font-size: clamp(42px, 10.6vw, 52px);
  }

  .gift-page__leaf,
  .reviews-page__leaf {
    width: clamp(54px, 13vw, 72px);
  }

  .gift-page__text p {
    font-size: clamp(16px, 4.35vw, 18px);
    line-height: 1.5;
  }

  .gift-page__cards-title {
    font-size: clamp(22px, 6vw, 28px);
  }

  .gift-page__button,
  .offers-page__button {
    min-height: 50px;
    font-size: 16px;
  }

  .contact-page__title {
    font-size: clamp(42px, 10vw, 52px);
  }

  .contact-page__leaf {
    width: clamp(58px, 14vw, 78px);
  }

  .reviews-page__subtitle {
    margin-top: 16px;
    font-size: clamp(17px, 4.6vw, 20px);
    line-height: 1.35;
  }

  .reviews-page__google-link a {
    font-size: 16px;
  }

  .reviews-page__card {
    border-radius: 18px;
    padding: 20px 16px 18px;
  }

  .reviews-page__card-text,
  .reviews-page__more-toggle {
    font-size: 16px;
  }

  .offers-page__script-title {
    font-size: clamp(40px, 10.5vw, 50px);
  }

  .offers-page__title {
    font-size: clamp(28px, 7.6vw, 36px);
  }

  .offers-page__intro {
    font-size: clamp(16px, 4.35vw, 18px);
    line-height: 1.45;
  }

  .offer-card {
    border-radius: 20px;
    padding: 16px 14px 18px;
  }

  .offer-card__name {
    min-height: 48px;
    font-size: clamp(34px, 8vw, 40px);
  }

  .offer-card__items li {
    font-size: clamp(18px, 5vw, 21px);
    line-height: 1.24;
  }

  .offer-card__price {
    font-size: clamp(30px, 7.6vw, 36px);
  }

  .offers-page__options-title {
    font-size: clamp(34px, 8.5vw, 42px);
  }

  .offers-page__options-list li {
    font-size: clamp(17px, 4.6vw, 20px);
  }

  .about-card__panel .about-card__quote {
    font-size: clamp(30px, 8vw, 40px);
  }

  .about-card__social-row {
    max-width: 100%;
    margin-inline: auto;
  }

  .session-card__title {
    font-size: clamp(20px, 5.6vw, 25px);
  }

  .session-card__description {
    font-size: clamp(16px, 4.35vw, 18px);
    line-height: 1.45;
  }
}
