/* One native consultation form: fixed desktop rail, in-flow on mobile. */
.portal-start-area { width: 100%; background: #fff; scroll-margin-top: 88px; }
.portal-start {
    position: relative;
    width: 100%;
    container-type: inline-size;
    color: #080808;
    background: radial-gradient(ellipse at 60% 60%, #f7f5ee55, transparent 70%), #fff;
    scroll-margin-top: 88px;
}

.portal-start-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 2cqw;
    padding: 3.7cqw 3.2cqw 3.2cqw;
}

.portal-start-copy,
.portal-start-choice-copy {
    min-width: 0;
}

.portal-start-heading { position: relative; }
.portal-start-badge {
    display: inline-block;
    margin: 0 0 1.4cqw;
    padding: .3em 1.15em;
    border-radius: 2em;
    background: #ffdc20;
    font-size: clamp(16px, 1.6cqw, 28px);
    font-weight: 900;
    line-height: 1.3;
    transform: rotate(-3deg);
}

.portal-start-note {
    position: absolute;
    top: 0;
    right: 1.3cqw;
    margin: 0;
    font-family: "Klee", "Hiragino Mincho ProN", serif;
    font-size: 2.5cqw;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.4;
    transform: rotate(-12deg);
}
.portal-start-note span { border-bottom: .28cqw solid #ffdc20; }

.portal-start-heading h2 {
    margin: 0;
    color: #050505;
    font-size: 4.8cqw;
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: 1.12;
}
.portal-start-heading h2 mark {
    color: inherit;
    background: linear-gradient(transparent 77%, #ffdc20 77%, #ffdc20 97%, transparent 97%);
    border-radius: .1em;
}
.portal-start-description {
    margin: 1.3cqw 0 1.6cqw;
    font-size: clamp(16px, 1.58cqw, 27px);
    font-weight: 650;
    line-height: 1.65;
}

.portal-start-choice {
    position: relative;
    display: grid;
    grid-template-columns: 5.3cqw minmax(0, 1fr) 15cqw;
    align-items: start;
    gap: 1.5cqw;
    padding: 1.5cqw 1.8cqw;
    border: 1.5px solid #e3e3df;
    border-radius: 1.2cqw;
    background: #fff9;
}
.portal-start-choice + .portal-start-choice { margin-top: 1.1cqw; }
.portal-start-icon {
    display: grid;
    width: 5.3cqw;
    height: 5.3cqw;
    place-items: center;
    border-radius: 50%;
    background: #fff6d2;
}
.portal-start-icon svg {
    width: 3.4cqw;
    height: 3.4cqw;
    stroke: currentColor;
    stroke-width: 2.7;
    stroke-linejoin: round;
    stroke-linecap: round;
}
.portal-start-choice h3 {
    margin: 0;
    font-size: 2.65cqw;
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: 1.2;
}
.portal-start-choice-copy > p {
    margin: .2cqw 0 0;
    font-size: clamp(14px, 1.18cqw, 21px);
    font-weight: 500;
    line-height: 1.6;
}
.portal-start-choice ul {
    display: grid;
    gap: .3cqw;
    padding: 0;
    margin: .8cqw 0 0;
    list-style: none;
    font-size: clamp(14px, 1.12cqw, 20px);
    font-weight: 500;
    line-height: 1.55;
}
.portal-start-choice li {
    position: relative;
    padding-left: 1.9em;
}
.portal-start-choice li::before {
    position: absolute;
    top: .08em;
    left: 0;
    display: grid;
    width: 1.35em;
    height: 1.35em;
    place-items: center;
    border-radius: 50%;
    background: #ffdf31;
    color: #080808;
    font-size: .95em;
    font-weight: 900;
    content: "✓";
}
.portal-start-consult-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    align-self: stretch;
    gap: .3em;
    padding: 0 0 0 1.6cqw;
    border-left: 1px solid #dededb;
    color: inherit;
    font-size: clamp(16px, 1.3cqw, 25px);
    font-weight: 900;
    line-height: 1.45;
    text-decoration: none;
}
.portal-start-arrow { font-size: 2.4cqw; }
.portal-start-direction-desktop { white-space: nowrap; }
.portal-start-direction-mobile { display: none; }
.portal-start-choice.is-signup {
    grid-template-columns: 5.3cqw minmax(0, 1fr);
    border-color: #ffd20c;
    background: #fffbea;
}
.portal-start-choice.is-signup .portal-start-icon { background: #fff0a8; }
.portal-start-choice.is-signup ul { max-width: 50%; margin-top: 1.2cqw; }
.portal-start-signup-link,
.portal-start-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7em;
    min-height: 52px;
    padding: 1.1cqw 1.6cqw;
    border: 0;
    border-radius: 999px;
    background: #ffdc20;
    color: #080808;
    font-family: inherit;
    font-size: clamp(16px, 1.6cqw, 29px);
    font-weight: 900;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
.portal-start-signup-link {
    position: absolute;
    right: 1.8cqw;
    bottom: 1.8cqw;
    width: 45%;
    font-size: clamp(15px, 1.55cqw, 27px);
}
.portal-start-signup-link span,
.portal-start-submit span { font-size: 1.3em; line-height: 1; }

.portal-start-form-card {
    min-width: 0;
    padding: 2.2cqw;
    border-radius: 1.1cqw;
    background: #fff;
    box-shadow: 0 .7cqw 2.5cqw #423a2610;
    scroll-margin-top: 92px;
}
.portal-start-form-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 10px;
}
.portal-start-form-free {
    flex: 0 0 auto;
    padding: 3px 14px;
    border-radius: 999px;
    background: #ffdf2d;
    color: #080808;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.5;
}
.portal-start-form-response {
    color: #273244;
    font-size: 12px;
    font-weight: 550;
    line-height: 1.5;
}
.portal-start-form-heading h2 {
    margin: 0;
    font-size: clamp(26px, 2.65cqw, 47px);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1.2;
}
.portal-start-form-intro {
    margin: .5cqw 0 1.5cqw;
    font-size: clamp(14px, 1.12cqw, 20px);
    font-weight: 500;
    line-height: 1.6;
}
.portal-start-fields { display: grid; gap: 1cqw; }
.portal-start-field label {
    display: flex;
    align-items: center;
    gap: 1em;
    margin-bottom: .4cqw;
    font-size: clamp(14px, 1.12cqw, 20px);
    font-weight: 750;
    line-height: 1.5;
}
.portal-start-required,
.portal-start-optional {
    display: inline-block;
    padding: .05em .45em;
    border-radius: 3px;
    background: #ffdc20;
    font-size: .72em;
    font-weight: 800;
    line-height: 1.6;
    vertical-align: middle;
    white-space: nowrap;
}
.portal-start-optional { background: #eef1f5; color: #475366; font-weight: 650; }
.portal-start-field input,
.portal-start-field textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: .62cqw 1cqw;
    border: 1.5px solid #d8d8d8;
    border-radius: 5px;
    background: #fff;
    color: #111;
    font-family: inherit;
    font-size: max(16px, 1cqw);
    font-weight: 400;
    line-height: 1.5;
}
.portal-start-field textarea { min-height: 5.3cqw; resize: vertical; }
.portal-start-field input::placeholder,
.portal-start-field textarea::placeholder { color: #909090; opacity: 1; }
.portal-start-consent {
    display: flex;
    align-items: flex-start;
    gap: .65em;
    margin: 1.3cqw 0;
    font-size: clamp(13px, 1.06cqw, 19px);
    font-weight: 500;
    line-height: 1.6;
}
.portal-start-consent input {
    flex: 0 0 auto;
    width: 21px;
    height: 21px;
    margin: .15em 0 0;
    accent-color: #ffcf00;
}
.portal-start-consent label { cursor: pointer; }
.portal-start-consent a { color: inherit; text-underline-offset: .15em; }
.portal-start-consent .portal-start-required { margin-left: .6em; }
.portal-start-submit { width: 100%; }
:is(.portal-start, .portal-start-form-card) :is(a, button, input, textarea):focus-visible {
    outline: 3px solid #b98b00;
    outline-offset: 4px;
}
:is(.portal-start-signup-link, .portal-start-submit):hover { background: #ffd10c; }
.portal-start-consult-link:hover { text-decoration: underline; text-underline-offset: .2em; }

body.portal-page-overview .portal-footer { width: 100%; }
@media (min-width: 1280px) {
    .portal-following-form {
        position: fixed;
        z-index: 1201;
        inset: 0 0 0 auto;
        box-sizing: border-box;
        width: var(--portal-consult-width, 25vw);
        min-width: 320px;
        height: 100vh;
        height: 100dvh;
        margin: 0;
        padding: 32px 24px 24px;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        border-left: 1px solid #e4e1d9;
        border-radius: 0;
        background: #fffefa;
        box-shadow: -5px 0 13px rgb(34 31 17 / 8%);
    }
    .portal-following-form .portal-start-form-kicker { gap: 8px; }
    .portal-following-form .portal-start-form-response { font-size: clamp(10px, .78vw, 13px); white-space: nowrap; }
    .portal-following-form .portal-start-form-heading h2 { font-size: clamp(26px, 1.95vw, 34px); line-height: 1.3; white-space: nowrap; }
    .portal-following-form .portal-start-form-intro { margin: 8px 0 20px; font-size: 13px; line-height: 1.65; }
    .portal-following-form .portal-start-fields { gap: 12px; }
    .portal-following-form .portal-start-field label { margin-bottom: 5px; gap: 12px; font-size: 14px; }
    .portal-following-form .portal-start-field input,
    .portal-following-form .portal-start-field textarea { padding: 9px 11px; font-size: 16px; }
    .portal-following-form .portal-start-field textarea { min-height: 96px; }
    .portal-following-form .portal-start-consent { gap: 8px; margin: 18px 0; font-size: 13px; }
    .portal-following-form .portal-start-consent input { width: 19px; height: 19px; }
    .portal-following-form .portal-start-submit { min-height: 54px; padding: 12px 8px; font-size: clamp(16px, 1.25vw, 22px); }
}

@media (max-width: 1279px) {
    .portal-start-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 44px 28px; }
    .portal-start-form-card { width: calc(100% - 44px); max-width: 700px; margin: 0 auto 36px; padding: 32px; border-radius: 18px; }
    .portal-start-form-heading h2 { font-size: 32px; }
    .portal-start-form-intro { margin: 8px 0 28px; font-size: 16px; }
    .portal-start-fields { gap: 20px; }
    .portal-start-field label { margin-bottom: 8px; font-size: 16px; }
    .portal-start-field input, .portal-start-field textarea { padding: 10px 12px; }
    .portal-start-field textarea { min-height: 110px; }
    .portal-start-consent { margin: 22px 0; font-size: 15px; }
    .portal-start-submit { padding: 15px 20px; font-size: 20px; }
    .portal-start-direction-desktop { display: none; }
    .portal-start-direction-mobile { display: inline; }
}

@media (max-width: 700px) {
    .portal-start-layout { gap: 28px; padding: 36px 22px; }
    .portal-start-badge { margin-bottom: 24px; font-size: 16px; }
    .portal-start-note { top: 0; right: 4px; font-size: 18px; }
    .portal-start-note span { border-bottom-width: 3px; }
    .portal-start-heading h2 { font-size: clamp(26px, 7.75cqw, 50px); line-height: 1.35; }
    .portal-start-description { margin: 18px 0 24px; font-size: 16px; line-height: 1.75; }
    .portal-start-choice, .portal-start-choice.is-signup { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 20px 16px; border-radius: 16px; }
    .portal-start-choice + .portal-start-choice { margin-top: 16px; }
    .portal-start-icon { width: 44px; height: 44px; }
    .portal-start-icon svg { width: 29px; height: 29px; }
    .portal-start-choice h3 { font-size: clamp(22px, 6cqw, 32px); }
    .portal-start-choice-copy > p { margin-top: 8px; font-size: 15px; }
    .portal-start-choice ul { gap: 7px; margin-top: 16px; font-size: 14px; }
    .portal-start-choice.is-signup ul { max-width: none; margin-top: 16px; }
    .portal-start-consult-link { grid-column: 1 / -1; justify-content: center; gap: 30px; min-height: 60px; margin-top: 4px; padding: 14px 0 0; border-left: 0; border-top: 1px solid #e3e3df; font-size: 17px; }
    .portal-start-arrow { font-size: 30px; }
    .portal-start-signup-link { position: static; grid-column: 1 / -1; width: 100%; margin-top: 8px; padding: 15px 10px; font-size: clamp(14px, 4.05cqw, 16px); letter-spacing: -.025em; white-space: nowrap; }
    .portal-start-form-card { padding: 24px 18px; }
    .portal-start-form-heading h2 { font-size: clamp(22px, 6.2vw, 32px); }
    .portal-start-form-kicker { gap: 8px; }
    .portal-start-form-free { padding: 3px 12px; font-size: 16px; }
    .portal-start-form-response { font-size: clamp(10px, 2.8vw, 12px); }
    .portal-start-form-intro { font-size: 15px; }
    .portal-start-consent { font-size: 14px; }
    .portal-start-submit { font-size: 18px; padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .portal-start { scroll-behavior: auto; }
}

/* A single soft cue identifies the form after a consultation CTA is clicked. */
.portal-start-form-card.is-contact-highlighted {
    animation: portal-contact-cue 1.4s ease-out both;
}
.portal-start-form-card.is-contact-highlighted .portal-start-form-heading {
    animation: portal-contact-heading-cue 1.4s ease-out both;
}
@keyframes portal-contact-cue {
    0%, 20% { outline: 3px solid #ffda24; outline-offset: -3px; }
    100% { outline: 3px solid transparent; outline-offset: -3px; }
}
@keyframes portal-contact-heading-cue {
    0% { background-color: #fff1ac; transform: translateY(-3px); }
    100% { background-color: transparent; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .portal-start-form-card.is-contact-highlighted,
    .portal-start-form-card.is-contact-highlighted .portal-start-form-heading { animation: none; }
    .portal-start-form-card.is-contact-highlighted { outline: 3px solid #ffda24; outline-offset: -3px; }
}
