.cv3-hero { position: relative; isolation: isolate; overflow: hidden; padding: 148px 0 68px; background: radial-gradient(ellipse at 84% 28%, rgba(222, 213, 255, .82), transparent 43%), linear-gradient(112deg, #fcfbff 0%, #f7f4ff 55%, #f1edfb 100%); }
.cv3-hero::before, .cv3-hero::after { position: absolute; z-index: -1; border: 1px solid rgba(115, 84, 207, .12); border-radius: 50%; content: ""; pointer-events: none; }
.cv3-hero::before { top: -230px; left: -100px; width: 460px; height: 460px; box-shadow: 0 0 0 30px rgba(115, 84, 207, .025), 0 0 0 64px rgba(115, 84, 207, .02); }
.cv3-hero::after { right: -100px; bottom: -230px; width: 420px; height: 420px; background: radial-gradient(circle, rgba(255, 255, 255, .55), transparent 70%); }
.cv3-hero-inner { position: relative; z-index: 1; }
.cv3-hero h1 { max-width: 800px; margin: 0 0 14px; font-size: clamp(2.8rem, 5.5vw, 4.6rem); letter-spacing: -.03em; line-height: 1.05; }
.cv3-hero h1 span { color: var(--v3-purple); }
.cv3-hero-inner > p:not(.v3-kicker) { max-width: 660px; margin: 0 0 24px; color: var(--v3-muted); font-size: 1.05rem; }

.cv3-main { padding: 56px 0 84px; background: radial-gradient(ellipse at 4% 8%, rgba(236, 231, 255, .48), transparent 32%), #fbfaff; }
.cv3-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr); gap: clamp(22px, 3vw, 38px); align-items: start; }
.cv3-form-card, .cv3-contact-card { min-width: 0; padding: clamp(24px, 3.2vw, 40px); border: 1px solid var(--v3-line); border-radius: 22px; background: #fff; box-shadow: var(--v3-shadow); }
.cv3-card-heading { margin-bottom: 26px; }
.cv3-card-heading .v3-kicker, .cv3-contact-card .v3-kicker, .cv3-map-heading .v3-kicker { margin-bottom: 8px; }
.cv3-card-heading h2, .cv3-contact-card h2, .cv3-map-heading h2 { margin: 0 0 10px; font-size: clamp(1.65rem, 3vw, 2.2rem); letter-spacing: -.02em; line-height: 1.2; }
.cv3-card-heading > p:last-child, .cv3-contact-card > p:not(.v3-kicker) { margin: 0; color: var(--v3-muted); font-size: .93rem; line-height: 1.75; }
.cv3-card-heading a, .cv3-contact-card a { color: var(--v3-purple-dark); font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cv3-card-heading a:hover, .cv3-contact-card a:hover { color: var(--v3-purple); }
.cv3-form .contable { display: grid; gap: 18px; }
.cv3-form .contabrow { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 16px; align-items: start; }
.cv3-form .contabblk1 { padding-top: 12px; color: #38354f; font-size: .9rem; font-weight: 600; }
.cv3-form .contabblk2 { min-width: 0; }
.cv3-form input[type="text"], .cv3-form input[type="email"], .cv3-form textarea { display: block; width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #dcd8e9; border-radius: 11px; outline: none; color: var(--v3-ink); background: #fff; font: inherit; font-size: .92rem; transition: border-color .2s ease, box-shadow .2s ease; }
.cv3-form textarea { min-height: 150px; resize: vertical; }
.cv3-form input:focus, .cv3-form textarea:focus { border-color: var(--v3-purple); box-shadow: 0 0 0 4px rgba(115, 84, 207, .12); }
.cv3-form input::placeholder, .cv3-form textarea::placeholder { color: #9692a5; }
.cv3-captcha-row .contabblk1 { padding: 0; }
.cv3-captcha-row .contabblk2 { display: grid; gap: 12px; }
.cv3-form .captcha-wrap { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; }
.cv3-form .cu_captcha img { display: block; max-width: 100%; min-height: 48px; border: 1px solid var(--v3-line); border-radius: 8px; }
.cv3-form .cu_txtgrp3 { display: grid; flex: 1 1 170px; gap: 6px; color: #38354f; font-size: .84rem; font-weight: 600; }
.cv3-form .cu_txtgrp3 input { min-height: 44px; }
.cv3-form .error { font-size: .84rem; font-weight: 600; }
.cv3-form-error { margin: 0; color: #b4233d; font-size: .88rem; font-weight: 600; line-height: 1.55; }
.cv3-form-error[hidden] { display: none; }
.cv3-submit { min-height: 48px; padding: 0 25px; border: 0; font: inherit; cursor: pointer; }
.cv3-submit:disabled { opacity: .65; cursor: wait; }
.cv3-success { display: flex; align-items: flex-start; gap: 16px; padding: 22px; border: 1px solid #d9d1f4; border-radius: 16px; background: linear-gradient(135deg, #fff, #f6f2ff); }
.cv3-success-mark { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #fff; background: var(--v3-purple); font-weight: 700; }
.cv3-success h3 { margin: 0 0 5px; color: var(--v3-ink); font-family: Poppins, "Segoe UI", sans-serif; font-size: 1.05rem; font-weight: 700; }
.cv3-success p { margin: 0; color: var(--v3-muted); font-size: .9rem; line-height: 1.6; }

.cv3-contact-card { position: relative; overflow: hidden; background: radial-gradient(ellipse at 100% 0, rgba(231, 224, 255, .7), transparent 50%), #fff; }
.cv3-contact-card > p:not(.v3-kicker) { margin-bottom: 24px; }
.cv3-contact-method { display: flex; gap: 14px; align-items: flex-start; padding: 17px 0; border-top: 1px solid var(--v3-line); }
.cv3-contact-icon { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 13px; color: var(--v3-purple); background: var(--v3-lavender); font-size: 1.1rem; font-weight: 700; }
.cv3-contact-method h3 { margin: 0 0 4px; color: #393650; font-family: Poppins, "Segoe UI", sans-serif; font-size: .84rem; font-weight: 700; }
.cv3-contact-method p, .cv3-contact-method address { margin: 0; color: #5f5b72; font-size: .88rem; font-style: normal; line-height: 1.7; }
.cv3-contact-method a { font-size: .88rem; overflow-wrap: anywhere; }
.cv3-response-note { display: grid; gap: 4px; margin-top: 12px; padding: 15px 17px; border-left: 3px solid var(--v3-purple); border-radius: 0 10px 10px 0; color: #5f5b72; background: var(--v3-lavender); font-size: .82rem; line-height: 1.6; }
.cv3-response-note strong { color: var(--v3-purple-dark); }
.cv3-map-wrap { margin-top: 48px; }
.cv3-map-heading { margin-bottom: 16px; }
.cv3-map { height: 330px; overflow: hidden; border: 1px solid var(--v3-line); border-radius: 20px; background: var(--v3-lavender); box-shadow: var(--v3-shadow); }
.cv3-map iframe { display: block; width: 100%; height: 100%; border: 0; }

@media (max-width: 900px) {
    .cv3-layout { grid-template-columns: 1fr; }
    .cv3-contact-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
    .cv3-contact-card > .v3-kicker, .cv3-contact-card > h2, .cv3-contact-card > p:not(.v3-kicker), .cv3-response-note { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .cv3-hero { padding: 116px 0 48px; }
    .cv3-main { padding: 30px 0 60px; }
    .cv3-layout, .cv3-map-wrap { width: min(100% - 36px, 540px); }
    .cv3-form-card, .cv3-contact-card { padding: 23px 18px; border-radius: 17px; }
    .cv3-form .contabrow { grid-template-columns: 1fr; gap: 7px; }
    .cv3-form .contabblk1 { padding-top: 0; }
    .cv3-form .captcha-wrap { align-items: stretch; flex-direction: column; }
    .cv3-form .cu_txtgrp3 { flex: auto; }
    .cv3-submit { width: 100%; }
    .cv3-contact-card { display: block; }
    .cv3-map-wrap { margin-top: 34px; }
    .cv3-map { height: 260px; }
}
