.srp-contact {
    position: relative;
    z-index: 4;
    overflow: clip;
    padding-block: clamp(5.5rem,8vw,8.5rem);
    color: #fbf9ff;
    background:
        radial-gradient(circle at 80% 18%,rgba(117,98,207,.26),transparent 25%),
        linear-gradient(145deg,#0a0811,#181020 62%,#241431);
    scroll-margin-top: 5rem;
}

.srp-contact > .srp-shell { position: relative; z-index: 3; }

.srp-contact__compact {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(18rem,.65fr) auto;
    align-items: end;
    gap: clamp(2rem,5vw,5rem);
}

.srp-contact__head {
    position: relative;
    min-width: 0;
}

.srp-contact__eyebrow {
    display: block;
    margin-bottom: 1.2rem;
    color: #aeb6ff;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.srp-contact__head h2 { margin: 0; }

.srp-contact__head h2 span {
    display: block;
    font-size: clamp(3.3rem,6.5vw,7.4rem);
    font-weight: 850;
    letter-spacing: -.075em;
    line-height: .84;
    text-transform: uppercase;
}

.srp-contact__head h2 span:last-child {
    color: transparent;
    -webkit-text-stroke: 1.2px rgba(255,255,255,.72);
}

.srp-contact__details {
    display: grid;
    gap: 1rem;
    align-self: end;
}

.srp-contact__details a {
    display: grid;
    gap: .22rem;
    padding-block: .85rem;
    border-bottom: 1px solid rgba(255,255,255,.13);
}

.srp-contact__details small {
    color: rgba(255,255,255,.42);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.srp-contact__details strong {
    color: rgba(255,255,255,.88);
    font-size: clamp(.96rem,.9rem + .2vw,1.12rem);
    font-weight: 720;
}

.srp-contact__toggle {
    display: inline-flex;
    min-width: 9.5rem;
    min-height: 3.6rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-inline: 1.25rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    color: #160d20;
    background: linear-gradient(135deg,#aeb6ff,#f7f5ff);
    font-size: .78rem;
    font-weight: 850;
    cursor: pointer;
    transition: transform 260ms cubic-bezier(.2,.7,.2,1),box-shadow 260ms cubic-bezier(.2,.7,.2,1);
}

.srp-contact__toggle i {
    color: #5b3f91;
    font-size: 1.05rem;
    font-style: normal;
    transition: transform 260ms cubic-bezier(.2,.7,.2,1);
}

.srp-contact__panel {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows 620ms cubic-bezier(.2,.7,.2,1),opacity 420ms ease;
}

.srp-contact__panel.is-open {
    grid-template-rows: 1fr;
    opacity: 1;
}

.srp-contact__panel-inner {
    min-height: 0;
    overflow: hidden;
}

.srp-contact-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 1.4rem 2rem;
    margin-top: clamp(2.5rem,4vw,4rem);
    padding-top: clamp(2rem,3vw,3rem);
    border-top: 1px solid rgba(255,255,255,.12);
}

.srp-form-row {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1.5rem;
}

.srp-field {
    position: relative;
    display: grid;
    gap: .35rem;
}

.srp-field--message { grid-column: 1; }

.srp-field label {
    color: rgba(255,255,255,.5);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.srp-field input,
.srp-field textarea {
    width: 100%;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.2);
    border-radius: 0;
    outline: 0;
    color: #fff;
    background: transparent;
    transition: border-color 220ms ease,box-shadow 220ms ease;
}

.srp-field input { min-height: 3rem; padding: .45rem 0 .7rem; }
.srp-field textarea { min-height: 5.6rem; padding: .55rem 0 .75rem; resize: vertical; }
.srp-field input:focus,.srp-field textarea:focus { border-color: #aeb6ff; box-shadow: 0 1px 0 #aeb6ff; }

.srp-contact-form__submit {
    align-self: end;
    min-width: 9rem;
    min-height: 3.5rem;
    padding-inline: 1.2rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.06);
    font-size: .78rem;
    font-weight: 850;
    cursor: pointer;
}

.srp-contact-form__submit span { margin-left: .6rem; color: #aeb6ff; }

.srp-form-notice {
    margin: 2rem 0 0;
    padding: .8rem 1rem;
    border: 1px solid;
    border-radius: .8rem;
    font-size: var(--srp-text-sm);
}

.srp-form-notice--success { color: #d9f6e3; border-color: rgba(104,200,134,.3); background: rgba(75,160,103,.1); }
.srp-form-notice--error { color: #ffd9d5; border-color: rgba(226,112,101,.3); background: rgba(187,71,61,.1); }
.srp-honeypot { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }

.srp-contact [data-home-reveal] { opacity: 0; transform: translateY(1.6rem); }
.srp-contact [data-home-reveal].is-visible { opacity: 1; transform: none; transition: opacity 720ms cubic-bezier(.2,.7,.2,1),transform 820ms cubic-bezier(.2,.7,.2,1); }

@media (hover:hover) {
    .srp-contact__toggle:hover { transform: translateY(-2px); box-shadow: 0 1rem 2.8rem rgba(117,98,207,.22); }
    .srp-contact__toggle:hover i { transform: translate(.2rem,-.2rem); }
    .srp-contact__details a { transition: padding-left 240ms ease,border-color 240ms ease; }
    .srp-contact__details a:hover { padding-left: .45rem; border-color: rgba(174,182,255,.35); }
}

@media (max-width:68rem) {
    .srp-contact__compact { grid-template-columns: 1fr auto; }
    .srp-contact__details { grid-column: 1; grid-row: 2; }
    .srp-contact__toggle { grid-column: 2; grid-row: 2; align-self: end; }
}

@media (max-width:45rem) {
    .srp-contact__compact { grid-template-columns: 1fr; gap: 2rem; }
    .srp-contact__details,.srp-contact__toggle { grid-column: auto; grid-row: auto; }
    .srp-contact__toggle { width: 100%; }
    .srp-contact-form { grid-template-columns: 1fr; gap: 1.25rem; }
    .srp-form-row { grid-template-columns: 1fr; gap: 1.25rem; }
    .srp-field--message { grid-column: auto; }
    .srp-contact-form__submit { width: 100%; }
}

@media (max-width:39.9375rem) {
    .srp-contact { padding-block: 5rem; }
    .srp-contact__head h2 span { font-size: clamp(3rem,13.5vw,4.4rem); }
    .srp-contact__head h2 span:last-child { -webkit-text-stroke-width: 1px; }
}

@media (prefers-reduced-motion:reduce) {
    .srp-contact [data-home-reveal] { opacity: 1; transform: none; }
    .srp-contact__panel { transition: none; }
}
