/* Campaign typography and form styling; background geometry stays in app.css. */
.hero__content { align-items: center; gap: 14px; transform: translateY(-40px); }
.hero__title { margin: 0; text-align: center; text-transform: none; text-shadow: none; letter-spacing: -.035em; font-size: clamp(28px, 4.5vw, 56px); font-weight: 700; line-height: 1.15; }
.hero__title strong { display: block; max-width: 560px; margin: 18px auto 0; font-size: clamp(20px, 1.8vw, 26px); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; text-wrap: balance; }
.hero__description { margin: 0; font-size: clamp(17px, 1.4vw, 20px); font-weight: 400; line-height: 1.45; text-align: center; text-wrap: balance; }
.hero .form-2 { background-color: #EB7994; padding: 30px; border-radius: 8px; }
.hero .form-2__main-title { font-size: 21px; line-height: 1.3; font-weight: 400; }
.hero .form-2__wrapper, .hero .form-2__rows { gap: 16px; }
.hero .form-2__label { font-size: 12px; line-height: 1.4; }
.hero .form-2__input input, .hero .form-2__input select, .hero .form-2__input textarea { color: #414141; font-size: 16px; font-weight: 400; }
.hero .form-2__input input, .hero .form-2__input select { min-height: 48px; }
.hero .form-2__input textarea { height: 108px; resize: vertical; }
.hero .form-2__input .iti .iti__selected-dial-code { color: #414141; font-size: 16px; }
.hero .form-2__checkbox { flex-wrap: nowrap; }
.hero .form-2__checkbox input { flex-shrink: 0; margin-top: 2px; }
.hero .form-2__checkbox label { flex: 1; font-size: 12px; line-height: 1.5; }
.hero .form-2__submit { margin-top: 0; }
.hero .form-submit { background: #dc507b; min-height: 48px; font-size: 16px; font-weight: 500; }
.hero :is(input, select, textarea, button):focus-visible { outline: 2px solid #83264c; outline-offset: 3px; }
/* Mobile: keep the existing image crop, give the copy its own space. */
@media (max-width: 991px) {
    .hero { padding-bottom: 32px; background-color: #ed7898; }
    .hero:before { background-image: linear-gradient(to bottom, rgba(237,120,152,0) 65%, #ed7898 100%), url(../img/1.jpg); }
    .hero__wrapper { gap: 16px; }
    /* Keep delayed entrance animations from leaving gaps in the mobile banner. */
    .hero [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
    .hero__left { width: 100%; margin: -48px 0 0; padding: 0; position: relative; }
    .hero__content { gap: 12px; padding: 8px 0 0; transform: none; }
    .hero__title { font-size: clamp(30px, 8.2vw, 40px); line-height: 1.15; letter-spacing: -.04em; text-wrap: balance; }
    .hero__title strong { max-width: 340px; margin: 14px auto 0; font-size: clamp(18px, 4.8vw, 22px); line-height: 1.4; }
    .hero__description { max-width: 330px; margin: 0 auto; font-size: 16px; line-height: 1.45; }
    .hero__right { width: 100%; max-width: 500px; margin: 0; }
    .hero .form-2 { padding: 24px 22px; border: 1px solid rgba(255,255,255,.25); border-radius: 20px; box-shadow: 0 12px 32px rgba(131,38,76,.12); }
    .hero .form-2__main-title { font-size: 17px; line-height: 1.55; font-weight: 400; text-wrap: pretty; }
    .hero .form-2__wrapper { margin-top: 22px; gap: 16px; }
    .hero .form-2__rows { gap: 16px; }
    .hero .form-2__label { font-size: 11px; font-weight: 600; letter-spacing: .025em; }
    .hero .form-2__rows .form-2__row { gap: 7px; }
    .hero .form-2__input input, .hero .form-2__input select { height: 48px; border-radius: 9px; }
    .hero .form-2__input textarea { height: 96px; border-radius: 9px; }
    .hero .form-2__checkbox label { font-size: 12px; line-height: 1.5; }
    .hero .form-submit { border-radius: 10px; height: 50px; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
}
@media (max-width: 375px) {
    .hero .form-2 { padding: 22px 16px; }
    .hero__title { font-size: 29px; }
    .hero .form-2__main-title { font-size: 16px; }
}
