/* やめる営業 ポータル版（ローカル確認用） */

body.portal-site {
    --portal-container: 1180px;
    background: #fffdf7;
}

/*
 * Image 2選定案のハイブリッド実装。
 * 人物・背景・手書き装飾は1枚のビジュアルで保持し、訴求・数値・CTA・フォーム・AIチャットは実DOMで構成する。
 */
.portal-coded-fv,
.portal-coded-brand-tagline,
.portal-coded-rail-brand,
.portal-coded-rail-kicker {
    display: none;
}

.portal-coded-symbols {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

@media (min-width: 1280px) {
    body.portal-site.portal-page-overview.ye-chat-docked {
        --ye-chat-rail: 25vw;
        --ye-chat-split: clamp(400px, calc(100dvh - 360px), 650px);
        padding-right: var(--ye-chat-rail);
        background: #fff;
    }

    body.portal-site.portal-page-overview.ye-chat-docked main {
        overflow: hidden;
        background: #fff;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-header.is-scrolled {
        right: var(--ye-chat-rail);
        display: block;
        width: auto;
        height: 72px;
        border-bottom: 1px solid #ecebe6;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: none;
        backdrop-filter: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-inner {
        display: grid;
        width: 100%;
        min-height: 72px;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: 20px;
        padding: 0 38px 0 40px;
        margin: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header .brand {
        display: inline-flex;
        align-items: center;
        gap: 23px;
        min-width: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header .brand-mark,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-header .nav-toggle,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-login,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-mobile-actions,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-nav-number,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-nav-arrow {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header .brand-name {
        position: relative;
        z-index: 0;
        font-size: clamp(28px, 2.08vw, 32px);
        font-weight: 950;
        letter-spacing: -0.07em;
        line-height: 1;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header .brand-name::after {
        position: absolute;
        z-index: -1;
        right: -2px;
        bottom: -8px;
        left: 0;
        height: 6px;
        transform: rotate(-1.5deg);
        border-radius: 99px;
        background: #fed626;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-brand-tagline {
        display: inline;
        color: #161713;
        font-size: clamp(13px, 0.91vw, 14px);
        font-weight: 700;
        letter-spacing: 0.01em;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-global-nav,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-global-nav.is-open {
        position: static;
        inset: auto;
        display: flex;
        width: auto;
        max-height: none;
        grid-column: 2;
        align-items: center;
        justify-content: flex-end;
        gap: clamp(18px, 1.7vw, 27px);
        padding: 0 8px 0 0;
        border: 0;
        overflow: visible;
        background: transparent;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-global-nav .portal-nav-link {
        display: inline-flex;
        min-height: 72px;
        align-items: center;
        justify-content: center;
        padding: 0 !important;
        border: 0;
        background: transparent;
        color: #10110e;
        font-size: clamp(13px, 0.91vw, 14px);
        font-weight: 750;
        letter-spacing: 0;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-global-nav .portal-nav-link::after {
        right: 0;
        bottom: 14px;
        left: 0;
        display: block;
        height: 3px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions {
        display: flex;
        grid-column: 3;
        align-items: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta {
        display: inline-flex;
        min-width: 196px;
        min-height: 46px;
        align-items: center;
        justify-content: center;
        gap: 13px;
        padding: 10px 22px;
        border: 0;
        border-radius: 999px;
        background: #fed626;
        box-shadow: 0 5px 13px rgba(90, 67, 0, 0.18);
        color: #060705;
        font-size: 14px;
        font-weight: 900;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta:focus-visible {
        transform: translateY(-2px);
        box-shadow: 0 7px 16px rgba(90, 67, 0, 0.23);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-fv {
        display: block;
        padding-top: 72px;
        background: #fff;
        color: #050604;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-hero {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-main {
        position: relative;
        container-type: inline-size;
        width: 100%;
        height: 43.945vw;
        overflow: hidden;
        background: #fdfcf8;
        isolation: isolate;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-copy {
        position: absolute;
        z-index: 3;
        inset: 2.6cqw auto auto 40px;
        width: 51cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-copy h1 {
        margin: 0;
        color: #050604;
        font-size: clamp(70px, 7.47cqw, 94px);
        font-weight: 950;
        letter-spacing: -0.085em;
        line-height: 0.94;
        text-wrap: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-copy h1 > span {
        display: block;
        margin-top: 0.85cqw;
        transform: rotate(-1.7deg);
        transform-origin: left center;
        font-size: 1.02em;
        letter-spacing: -0.09em;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-copy h1 em {
        display: inline-block;
        margin-right: 0.1em;
        color: #fdcd16;
        font-size: 1.42em;
        font-style: normal;
        letter-spacing: -0.12em;
        line-height: 0.74;
        vertical-align: -0.04em;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-claim {
        position: absolute;
        top: 20.35cqw;
        left: 0;
        width: 46cqw;
        margin: 0;
        font-size: clamp(23px, 2.43cqw, 31px);
        font-weight: 950;
        letter-spacing: -0.045em;
        line-height: 1.34;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-description {
        position: absolute;
        top: 28.15cqw;
        left: 0;
        width: 35cqw;
        margin: 0;
        font-size: clamp(17px, 1.74cqw, 22px);
        font-weight: 550;
        letter-spacing: 0;
        line-height: 1.45;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metrics {
        position: absolute;
        top: 35.9cqw;
        left: 0;
        display: grid;
        width: 46.8cqw;
        height: 7.2cqw;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric {
        position: relative;
        display: grid;
        min-width: 0;
        height: 100%;
        place-content: center;
        padding: 0 2.4cqw;
        text-align: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > span,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > strong,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > b {
        position: relative;
        z-index: 1;
        display: block;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > span {
        font-size: clamp(13px, 1.13cqw, 14px);
        font-weight: 900;
        line-height: 1.2;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > strong {
        margin-top: 0.25cqw;
        font-size: clamp(31px, 3.3cqw, 42px);
        font-weight: 950;
        letter-spacing: -0.06em;
        line-height: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > strong small {
        margin-left: 0.08em;
        font-size: 0.48em;
        font-weight: 950;
        letter-spacing: -0.02em;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric > b {
        margin-top: 0.2cqw;
        font-size: 13px;
        font-weight: 900;
        line-height: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-laurel {
        position: absolute;
        z-index: 0;
        top: 50%;
        width: 2.95cqw;
        height: 6.77cqw;
        transform: translateY(-50%);
        color: #f0c619;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-laurel.is-left {
        left: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-laurel.is-right {
        right: 0;
        transform: translateY(-50%) scaleX(-1);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-photo {
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        width: 51.4cqw;
        height: 51.5cqw;
        margin: 0;
        overflow: hidden;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-photo::after {
        position: absolute;
        z-index: 1;
        inset: 0;
        background: linear-gradient(0deg, #fdfcf8 0%, rgba(253, 252, 248, 0.78) 3%, transparent 15%);
        content: "";
        pointer-events: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-photo > img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-actions {
        position: absolute;
        z-index: 5;
        top: 46.35cqw;
        left: 19.79cqw;
        width: 53.3cqw;
        height: 11cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-free {
        position: absolute;
        z-index: 2;
        top: 0;
        left: -7.64cqw;
        display: grid;
        width: 8.16cqw;
        height: 7.29cqw;
        place-content: center;
        border-radius: 50%;
        background: #11120f;
        color: #fed626;
        box-shadow: 0 8px 22px rgba(17, 18, 15, 0.16);
        text-align: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-free b,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-free strong {
        display: block;
        font-size: clamp(17px, 1.74cqw, 22px);
        font-weight: 950;
        line-height: 1.22;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult {
        position: absolute;
        z-index: 1;
        top: 0;
        left: 7.64cqw;
        display: inline-flex;
        width: 45.66cqw;
        height: 6.42cqw;
        align-items: center;
        justify-content: center;
        gap: 1.7cqw;
        border-radius: 999px;
        background: #fed626;
        box-shadow: 0 8px 18px rgba(95, 72, 0, 0.18);
        color: #070805;
        font-size: clamp(20px, 2.08cqw, 27px);
        font-weight: 950;
        letter-spacing: -0.03em;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult:focus-visible {
        transform: translateY(-2px);
        box-shadow: 0 11px 22px rgba(95, 72, 0, 0.24);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-download {
        position: absolute;
        top: 7.75cqw;
        left: 20.8cqw;
        display: inline-flex;
        align-items: center;
        gap: 1.1cqw;
        padding: 0.15cqw 0;
        border-bottom: 2px solid #090a07;
        color: #090a07;
        font-size: clamp(15px, 1.48cqw, 19px);
        font-weight: 900;
        line-height: 1.35;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefits {
        container-type: inline-size;
        min-height: 277px;
        padding: 20px 40px 24px;
        border-top: 1px solid #f1f0ed;
        background: #fff;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefits-heading {
        text-align: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefits-heading h2 {
        margin: 0 0 2px;
        font-size: clamp(24px, 2.43cqw, 31px);
        font-weight: 950;
        letter-spacing: -0.055em;
        line-height: 1.3;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefits-heading p {
        margin: 0;
        color: #4b4d48;
        font-size: clamp(13px, 1.13cqw, 14px);
        font-weight: 550;
        line-height: 1.5;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin-top: 16px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list article {
        position: relative;
        min-width: 0;
        padding: 0 1.7cqw;
        text-align: center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list article + article::before {
        position: absolute;
        top: 23px;
        bottom: 2px;
        left: 0;
        width: 1px;
        background: #e7e7e3;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-icon {
        display: grid;
        width: 76px;
        height: 72px;
        place-items: center;
        margin: 0 auto 4px;
        border-radius: 50%;
        background: #fef7d7;
        color: #10110e;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-icon svg {
        width: 48px;
        height: 48px;
        overflow: visible;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list h3 {
        margin: 0 0 6px;
        font-size: clamp(16px, 1.56cqw, 20px);
        font-weight: 950;
        letter-spacing: -0.045em;
        line-height: 1.35;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list p {
        margin: 0;
        color: #4f514c;
        font-size: clamp(13px, 1.13cqw, 14px);
        font-weight: 550;
        line-height: 1.5;
    }

    /* Right rail: real consultation form. */
    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail {
        position: fixed;
        z-index: 1201;
        inset: 0 0 auto auto;
        display: block;
        width: var(--ye-chat-rail);
        height: var(--ye-chat-split);
        overflow: hidden;
        border: 0;
        border-bottom: 1px solid #dedfd9;
        border-left: 1px solid #dddeda;
        background: #faf9f5;
        box-shadow: -6px 0 17px rgba(31, 31, 25, 0.06);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 5px;
        height: min(200px, 28.65%);
        background: #fed626;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-brand {
        position: absolute;
        top: 10px;
        right: 17px;
        display: block;
        margin: 0;
        font-size: 17px;
        font-weight: 950;
        letter-spacing: -0.06em;
        line-height: 1.4;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading {
        position: absolute;
        top: 42px;
        right: 27px;
        left: 32px;
        display: block;
        min-height: 0;
        padding: 0;
        border: 0;
        background: transparent;
        color: #070805;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-kicker {
        display: block;
        margin: 0 0 3px;
        color: #252722;
        font-size: 13px;
        font-weight: 650;
        letter-spacing: 0.01em;
        line-height: 1.45;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading strong {
        display: block;
        color: #060705;
        font-size: 28px;
        font-weight: 950;
        letter-spacing: -0.045em;
        line-height: 1.18;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading > span {
        display: block;
        margin-top: 5px;
        color: #5e615b;
        font-size: 13px;
        font-weight: 550;
        line-height: 1.45;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form {
        position: absolute;
        top: 152px;
        right: 27px;
        bottom: 0;
        left: 32px;
        display: block;
        min-height: 0;
        padding: 0 0 8px;
        overflow-x: hidden;
        overflow-y: auto;
        background: transparent;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-fields {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-fields {
        display: contents;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-toggle {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field {
        position: static;
        display: block;
        width: auto;
        height: auto;
        min-width: 0;
        margin: 0;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-exact-only {
        display: block;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .portal-rail-field-label {
        display: flex;
        min-height: 18px;
        align-items: center;
        gap: 7px;
        margin: 0 0 3px;
        color: #11120f;
        font-size: 14px;
        font-weight: 900;
        line-height: 18px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-field-label > span {
        display: inline-flex;
        min-height: 17px;
        align-items: center;
        padding: 1px 5px;
        border-radius: 2px;
        background: #cf534b;
        color: #fff;
        font-size: 12px;
        font-weight: 800;
        line-height: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-field-label > small {
        color: #60635d;
        font-size: 13px;
        font-weight: 550;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control].has-value,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        position: static;
        display: block;
        width: 100%;
        height: 34px;
        min-height: 34px;
        padding: 6px 11px;
        resize: none;
        border: 1px solid #cfd3d8;
        border-radius: 6px;
        outline: 0;
        background: #fff;
        color: #171813;
        caret-color: #171813;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.4;
        opacity: 1;
        box-shadow: none;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select {
        height: 35px;
        min-height: 35px;
        padding-top: 4px;
        padding-bottom: 4px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field.is-message > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        height: 64px;
        min-height: 64px;
        padding-top: 8px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]::placeholder,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input::placeholder,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea::placeholder {
        color: #a1a6ae;
        opacity: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea:focus {
        border-color: #8e7a23;
        outline: 0;
        box-shadow: 0 0 0 3px rgba(254, 214, 38, 0.28);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit {
        display: flex;
        width: 100%;
        height: 53px;
        min-height: 53px;
        align-items: center;
        justify-content: center;
        gap: 12px;
        margin: 14px 0 0;
        padding: 8px 18px;
        border: 0;
        border-radius: 999px;
        background: #fed626;
        color: #070805;
        box-shadow: 0 5px 14px rgba(95, 72, 0, 0.15);
        font-size: 15px;
        font-weight: 950;
        cursor: pointer;
        opacity: 1;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit:focus-visible {
        transform: translateY(-2px);
        box-shadow: 0 7px 17px rgba(95, 72, 0, 0.2);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail .hp-field {
        display: none;
    }

    /* Right rail: live AI from the first frame. */
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root {
        position: fixed;
        z-index: 1200;
        inset: var(--ye-chat-split) 0 0 auto;
        display: block;
        width: var(--ye-chat-rail);
        border: 0;
        border-left: 1px solid #dddeda;
        background: #faf9f5;
        box-shadow: -6px 0 17px rgba(31, 31, 25, 0.06);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-launcher,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-close {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-panel,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-panel[hidden] {
        position: absolute;
        inset: 0;
        display: flex;
        width: 100%;
        height: 100%;
        max-height: none;
        min-height: 0;
        flex-direction: column;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        background: #faf9f5;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head {
        display: flex;
        min-height: 66px;
        flex: 0 0 66px;
        align-items: center;
        justify-content: flex-start;
        gap: 9px;
        padding: 13px 18px 7px 22px;
        border: 0;
        background: #faf9f5;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-mark {
        display: grid;
        width: 27px;
        height: 27px;
        flex: 0 0 27px;
        place-items: center;
        border: 2px solid #11120f;
        border-radius: 8px;
        background: #fed626;
        color: #11120f;
        font-size: 12px;
        font-weight: 950;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy {
        display: flex;
        min-width: 0;
        flex: 1 1 auto;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy strong {
        position: relative;
        z-index: 0;
        display: block;
        flex: 0 1 auto;
        color: #070805;
        font-size: 20px;
        font-weight: 950;
        letter-spacing: -0.045em;
        line-height: 1.3;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy strong::after {
        position: absolute;
        z-index: -1;
        right: 0;
        bottom: 0;
        left: 0;
        height: 4px;
        transform: rotate(-1deg);
        border-radius: 99px;
        background: #fed626;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy .ye-chat-online {
        position: relative;
        display: block;
        flex: 0 0 auto;
        padding-left: 12px;
        margin: 0;
        color: #4a4e48;
        font-size: 13px;
        font-weight: 650;
        line-height: 1.3;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy .ye-chat-online::before {
        position: absolute;
        top: 50%;
        left: 0;
        width: 8px;
        height: 8px;
        transform: translateY(-50%);
        border-radius: 50%;
        background: #2db650;
        box-shadow: 0 0 0 2px #dff3e4;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log {
        position: relative;
        min-height: 78px;
        flex: 1 1 auto;
        margin: 0;
        padding: 4px 17px 5px 79px;
        overflow-y: auto;
        border: 0;
        border-radius: 0;
        background: #faf9f5;
        overscroll-behavior: contain;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log::before {
        position: absolute;
        top: 16px;
        left: 28px;
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        border: 1px solid #d6d5ce;
        border-radius: 50%;
        background: #fffdf4 url("/eigyo/service/assets/ai-chat-avatar-v1.webp") center / 86% no-repeat;
        color: #11120f;
        content: "";
        box-shadow: 0 5px 12px rgba(23, 24, 19, 0.08);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-message {
        max-width: 100%;
        margin: 0 0 7px;
        padding: 8px 12px;
        border: 1px solid #e4e3de;
        border-radius: 13px;
        background: #fff;
        box-shadow: 0 5px 13px rgba(23, 24, 19, 0.07);
        color: #242621;
        font-size: 13px;
        font-weight: 550;
        line-height: 1.5;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-message.is-user {
        margin-left: auto;
        border-color: #e2c653;
        background: #fff7ce;
        box-shadow: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-feedback {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px 6px;
        margin: 0 0 8px;
        color: #666a63;
        font-size: 12px;
        line-height: 1.3;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-feedback > span {
        grid-column: 1 / -1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-feedback button {
        width: 100%;
        min-height: 32px;
        padding: 4px 7px;
        border: 1px solid #d3d6da;
        font-size: 12px;
        line-height: 1.2;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-action {
        width: auto;
        min-height: 38px;
        margin: 1px 0 9px;
        padding: 7px 13px;
        border-width: 1px;
        border-radius: 9px;
        font-size: 13px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-controls,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.has-messages .ye-chat-controls {
        min-height: 0;
        flex: 0 0 auto;
        padding: 8px 17px 1px 29px;
        overflow: visible;
        border: 0;
        background: #faf9f5;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-presets {
        display: flex;
        flex-wrap: wrap;
        gap: 5px 6px;
        margin: 0 0 19px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-presets-group {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-controls {
        padding-top: 5px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-log {
        padding-left: 29px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-log::before {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset {
        width: auto;
        min-height: 36px;
        padding: 6px 11px;
        border: 1px solid #d3d6da;
        border-radius: 999px;
        background: #fff;
        color: #333630;
        font-size: 13px;
        font-weight: 650;
        line-height: 1.2;
        text-align: center;
        white-space: nowrap;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset:focus-visible {
        border-color: #a58a12;
        background: #fff8d8;
        outline: 2px solid rgba(254, 214, 38, 0.32);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-form {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 52px;
        gap: 4px 7px;
        margin: 0;
        padding: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-textarea {
        width: 100%;
        height: 52px;
        min-height: 52px;
        max-height: 52px;
        grid-column: 1;
        grid-row: 1;
        padding: 12px 13px;
        resize: none;
        border: 1px solid #cfd3d8;
        border-radius: 12px;
        background: #fff;
        color: #171813;
        font-size: 13px;
        line-height: 1.4;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        position: relative;
        width: 52px;
        height: 52px;
        min-height: 52px;
        grid-column: 2;
        grid-row: 1;
        align-self: stretch;
        overflow: hidden;
        padding: 0;
        border: 1px solid #e2b90c;
        border-radius: 50%;
        background: #fed626;
        color: transparent;
        box-shadow: 0 5px 13px rgba(81, 63, 0, 0.16);
        font-size: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit::before {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 18px;
        height: 13px;
        transform: translate(-54%, -50%) rotate(-28deg);
        border-top: 3px solid #11120f;
        border-right: 3px solid #11120f;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit::after {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 16px;
        height: 3px;
        transform: translate(-48%, -50%) rotate(-28deg);
        border-radius: 99px;
        background: #11120f;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-consent {
        display: grid;
        min-height: 17px;
        grid-column: 1 / -1;
        grid-template-columns: 15px minmax(0, 1fr);
        gap: 6px;
        align-items: start;
        color: #666a63;
        font-size: 13px;
        line-height: 1.4;
        transform: translateY(-2px);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-consent input {
        width: 14px;
        height: 14px;
        margin: 1px 0 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-status {
        min-height: 0;
        grid-column: 1 / -1;
        margin: 0;
        font-size: 12px;
        line-height: 1.35;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-status:empty {
        display: none;
    }
}

@media (min-width: 1280px) and (max-height: 950px) {
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-brand {
        top: 5px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading {
        top: 30px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-kicker,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading > span {
        font-size: 13px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading strong {
        font-size: 24px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form {
        top: 119px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-fields {
        gap: 5px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .portal-rail-field-label {
        min-height: 16px;
        margin-bottom: 2px;
        font-size: 13px;
        line-height: 16px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control].has-value,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select {
        height: 30px;
        min-height: 30px;
        padding-top: 4px;
        padding-bottom: 4px;
        font-size: 13px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field.is-message > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        height: 46px;
        min-height: 46px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit {
        height: 46px;
        min-height: 46px;
        margin-top: 8px;
        font-size: 14px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head {
        min-height: 58px;
        flex-basis: 58px;
        padding-top: 9px;
        padding-bottom: 5px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-message {
        padding: 8px 11px;
        font-size: 13px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset {
        min-height: 31px;
        padding: 5px 9px;
        font-size: 13px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-textarea,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        height: 45px;
        min-height: 45px;
        max-height: 45px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        width: 45px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-form {
        grid-template-columns: minmax(0, 1fr) 45px;
    }
}

@media (min-width: 1280px) and (max-height: 950px) {
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional {
        display: block;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-toggle {
        display: flex;
        width: 100%;
        min-height: 34px;
        align-items: center;
        justify-content: space-between;
        padding: 6px 10px;
        border: 1px solid #cfd3d8;
        border-radius: 6px;
        background: #fff;
        color: #30322e;
        font-size: 13px;
        font-weight: 750;
        line-height: 1.35;
        cursor: pointer;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-toggle::after {
        content: "+";
        font-size: 17px;
        font-weight: 500;
        line-height: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional.is-open > .portal-rail-optional-toggle::after {
        content: "−";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional:not(.is-open) > .portal-rail-optional-fields {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional.is-open > .portal-rail-optional-fields {
        display: grid;
        gap: 5px;
        margin-top: 5px;
    }
}

body.portal-site main {
    overflow: hidden;
}

body.portal-site .container {
    width: min(calc(100% - 48px), var(--portal-container));
}

.portal-header,
.portal-header.is-scrolled {
    background: rgba(255, 255, 255, 0.96);
}

.portal-header-inner {
    display: grid;
    width: min(calc(100% - 48px), var(--portal-container));
    min-height: 78px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    margin-inline: auto;
}

.portal-header .brand {
    grid-column: 1;
}

.portal-header-actions {
    display: flex;
    grid-column: 3;
    align-items: center;
    gap: 22px;
}

.portal-header-login {
    position: relative;
    padding: 10px 2px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 850;
}

.portal-header-login::after {
    position: absolute;
    right: 2px;
    bottom: 5px;
    left: 2px;
    height: 2px;
    transform: scaleX(0);
    transform-origin: right;
    background: var(--yellow-deep);
    content: "";
    transition: transform 0.2s ease;
}

.portal-header-login:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.portal-header-actions .header-cta {
    min-height: 40px;
    gap: 9px;
    padding: 8px 14px;
    white-space: nowrap;
}

.portal-global-nav {
    display: flex;
    width: auto;
    grid-column: 2;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0;
    border: 0;
    font-size: 14px;
    letter-spacing: 0;
}

.portal-global-nav .portal-nav-link {
    position: relative;
    display: inline-flex;
    min-height: 78px;
    align-items: center;
    justify-content: center;
    padding: 0 7px !important;
    border-radius: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
    transition: color 0.18s ease, background 0.18s ease;
}

.portal-global-nav .portal-nav-link::after {
    position: absolute;
    right: 10px;
    bottom: 0;
    left: 10px;
    height: 3px;
    transform: scaleX(0);
    transform-origin: right;
    background: var(--yellow-deep);
    content: "";
    transition: transform 0.18s ease;
}

.portal-global-nav .portal-nav-link:hover,
.portal-global-nav .portal-nav-link[aria-current="page"] {
    background: rgba(255, 204, 25, 0.1);
}

.portal-global-nav .portal-nav-link:hover::after,
.portal-global-nav .portal-nav-link[aria-current="page"]::after {
    transform: scaleX(1);
    transform-origin: left;
}

.portal-nav-number {
    display: none;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid rgba(23, 23, 18, 0.26);
    border-radius: 50%;
    color: #775e00;
    font-size: 9px;
    font-weight: 950;
}

.portal-nav-arrow {
    display: none;
}

.portal-mobile-actions {
    display: none;
}

.portal-hero {
    position: relative;
    padding: 118px 0 62px;
    overflow: hidden;
    border-bottom: 1px solid rgba(23, 23, 18, 0.08);
    background: linear-gradient(180deg, #fffdf7 0%, #fff8e8 100%);
}

.portal-breadcrumb {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 28px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
}

.portal-breadcrumb a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.portal-breadcrumb span[aria-hidden="true"] {
    color: #b0aa9c;
}

.portal-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    gap: 54px;
    align-items: center;
}

.portal-hero-copy {
    min-width: 0;
}

.portal-hero .section-kicker {
    margin-bottom: 16px;
}

.portal-hero h1 {
    max-width: 810px;
    margin: 0 0 34px;
    font-size: clamp(48px, 5vw, 72px);
    font-weight: 950;
    letter-spacing: -0.072em;
    line-height: 1.13;
    text-wrap: balance;
}

.portal-hero h1 mark {
    background: linear-gradient(transparent 74%, var(--yellow) 0);
}

.portal-no-break {
    white-space: nowrap;
}

.portal-case-mobile-break {
    display: none;
}

.portal-hero-lead {
    max-width: 700px;
    margin: 0 0 31px;
    color: #4f4d45;
    font-size: 17px;
    font-weight: 650;
    line-height: 2;
}

.portal-hero .hero-actions {
    display: grid;
    width: auto;
    max-width: 560px;
    gap: 14px;
    grid-area: auto;
    justify-self: stretch;
    margin: 0;
}

.portal-hero .hero-actions .button {
    width: 100%;
    min-width: 280px;
}

.portal-text-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 4px;
    border-bottom: 2px solid var(--ink);
    font-size: 13px;
    font-weight: 900;
}

.portal-hero-art {
    position: relative;
    min-height: 410px;
    margin: 0;
}

.portal-hero-art img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 760px;
    max-width: none;
    transform: translate(-52%, -47%);
    mix-blend-mode: multiply;
}

.portal-hero-art-label {
    position: absolute;
    z-index: 2;
    right: 4%;
    bottom: 4%;
    padding: 8px 12px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: var(--yellow);
    font-size: 10px;
    font-weight: 950;
    line-height: 1.2;
}

.portal-video-frame {
    position: relative;
    overflow: hidden;
    border: 2px solid var(--ink);
    border-radius: 18px;
    background: var(--ink);
    box-shadow: 8px 8px 0 var(--yellow);
}

.portal-video-frame video {
    display: block;
    width: 100%;
    aspect-ratio: 7 / 4;
    background: var(--ink);
    object-fit: cover;
}

.portal-video-badge {
    position: absolute;
    z-index: 3;
    top: 14px;
    left: 14px;
    padding: 7px 10px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: rgba(255, 204, 25, 0.94);
    box-shadow: 2px 2px 0 var(--ink);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.04em;
    line-height: 1;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.portal-video-play {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    padding: 24px;
    border: 0;
    background: radial-gradient(circle, rgba(255, 204, 25, 0.08) 0, rgba(23, 23, 18, 0.08) 38%, rgba(23, 23, 18, 0.42) 100%);
    color: var(--ink);
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.portal-video-play-content {
    display: grid;
    grid-template-columns: 64px auto;
    align-items: center;
    gap: 13px;
    padding: 8px 20px 8px 8px;
    border: 2px solid var(--ink);
    border-radius: 999px;
    background: #fff;
    box-shadow: 5px 5px 0 var(--ink);
    text-align: left;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.portal-video-play:hover .portal-video-play-content {
    transform: translate(-2px, -2px);
    box-shadow: 8px 8px 0 var(--ink);
}

.portal-video-play-icon {
    position: relative;
    display: grid;
    width: 64px;
    height: 64px;
    place-items: center;
    padding-left: 4px;
    border: 2px solid var(--ink);
    border-radius: 50%;
    background: var(--yellow);
    font-size: 23px;
    line-height: 1;
}

.portal-video-play-icon::after {
    position: absolute;
    inset: -9px;
    border: 2px solid rgba(255, 204, 25, 0.7);
    border-radius: 50%;
    content: "";
    animation: portal-video-pulse 1.8s ease-out infinite;
}

.portal-video-play-copy {
    display: grid;
}

.portal-video-play-copy strong {
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -0.02em;
}

.portal-video-play-copy small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 750;
}

.portal-video-frame.is-playing .portal-video-play {
    opacity: 0;
    pointer-events: none;
}

.portal-video-frame.is-playing .portal-video-badge {
    opacity: 0;
}

@keyframes portal-video-pulse {
    0% {
        transform: scale(0.88);
        opacity: 0.85;
    }

    75%,
    100% {
        transform: scale(1.24);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-video-play-icon::after {
        animation: none;
    }
}

.portal-video-section {
    position: relative;
    padding: 72px 0;
    background: #fff;
}

.portal-video-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.68fr) minmax(0, 1.32fr);
    gap: 58px;
    align-items: center;
}

.portal-video-copy h2 {
    margin: 0;
    font-size: clamp(38px, 4.2vw, 58px);
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 1.18;
}

.portal-video-copy h2 mark {
    background: linear-gradient(transparent 72%, var(--yellow) 0);
}

.portal-video-copy > p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.9;
}

/* Four-section design: HTML copy with four unchanged, full-resolution 1448 x 1086 PNGs. */
.portal-features,
.portal-case-showcase {
    container-type: inline-size;
    color: #090909;
    background: #fff;
}

.portal-feature-row {
    display: grid;
    grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
    align-items: center;
    margin: 0;
}

.portal-feature-row + .portal-feature-row {
    margin-top: clamp(16px, 2.2cqw, 32px);
}

.portal-feature-copy {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding: 2.7cqw .8cqw 3.2cqw 4.6875cqw;
}

.portal-feature-number {
    display: flex;
    align-items: baseline;
    gap: 1.2cqw;
    margin: 0 0 1.2cqw;
    font-weight: 900;
    line-height: 1;
}

.portal-feature-number span {
    font-size: 2.15cqw;
}

.portal-feature-number strong {
    color: #ffdc35;
    font-size: 5.8cqw;
    letter-spacing: -.055em;
}

.portal-feature-copy h3 {
    margin: 0;
    color: #090909;
    font-size: 3.55cqw;
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: 1.3;
}

.portal-feature-copy h3 mark {
    color: inherit;
    background: linear-gradient(transparent 77%, #ffe35a 77%);
}

.portal-feature-description {
    margin: 1.6cqw 0 0;
    font-size: 1.55cqw;
    font-weight: 500;
    letter-spacing: -.025em;
    line-height: 1.6;
}

.portal-feature-tip {
    display: grid;
    grid-template-columns: 3.2cqw minmax(0, 1fr);
    align-items: center;
    gap: 1.4cqw;
    padding: 1.3cqw 1.7cqw;
    margin: 1.9cqw 0 0;
    border-radius: 1cqw;
    background: #fff8d7;
    font-size: 1.5cqw;
    font-weight: 500;
    line-height: 1.6;
}

.portal-feature-bulb {
    display: block;
    width: 3.2cqw;
    height: 4.2cqw;
    overflow: visible;
}

/* Each supplied illustration is displayed in full, without zooming or cropping. */
.portal-feature-original {
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 0;
    overflow: hidden;
}

.portal-feature-original img,
.portal-case-original img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.portal-case-showcase {
    padding-top: clamp(20px, 2.8cqw, 40px);
}

.portal-case-story {
    display: grid;
    grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
    align-items: center;
    padding-bottom: 1.2cqw;
}

.portal-case-copy {
    min-width: 0;
    padding: 2cqw 1cqw 1.5cqw 4.6875cqw;
}

.portal-case-badge {
    display: inline-block;
    padding: .35em .95em;
    margin: 0 0 1.1cqw;
    border-radius: .4em;
    background: #ffe25a;
    font-size: 1.35cqw;
    font-weight: 900;
    line-height: 1.3;
    transform: rotate(-5deg);
}

.portal-case-copy h2 {
    margin: 0;
    font-size: 2.7cqw;
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: 1.35;
}

.portal-case-description {
    margin: .8cqw 0 0;
    font-size: 1.35cqw;
    font-weight: 500;
    letter-spacing: -.025em;
    line-height: 1.6;
}

.portal-case-metrics {
    display: grid;
    grid-template-columns: 1.12fr 1fr 1fr;
    gap: 2.1cqw;
    padding: 0;
    margin: 1.4cqw 0 0;
    list-style: none;
}

.portal-case-metrics li {
    position: relative;
    display: flex;
    align-items: center;
    gap: .5cqw;
    min-width: 0;
    padding: 1.2cqw .8cqw;
    border-radius: 1cqw;
    background: #fff8d7;
}

.portal-case-metrics li + li::before {
    position: absolute;
    top: 50%;
    left: -1.8cqw;
    width: 1.45cqw;
    height: 1.9cqw;
    background: #ffdc19;
    clip-path: polygon(0 30%, 48% 30%, 48% 0, 100% 50%, 48% 100%, 48% 70%, 0 70%);
    content: "";
    transform: translateY(-50%);
}

.portal-case-metric-icon {
    display: grid;
    flex: 0 0 3.4cqw;
    width: 3.4cqw;
    height: 3.4cqw;
    place-items: center;
    border-radius: 50%;
    background: #fff0a6;
}

.portal-case-metric-icon svg {
    width: 2.8cqw;
    height: 2.8cqw;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.portal-case-metrics li > div > span {
    display: block;
    font-size: 1cqw;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}

.portal-case-metrics strong {
    display: block;
    margin-top: .2em;
    font-size: 2.45cqw;
    font-weight: 900;
    letter-spacing: -.06em;
    line-height: 1;
    white-space: nowrap;
}

.portal-case-metrics small {
    margin-left: .05em;
    font-size: .5em;
}

.portal-case-visual {
    min-width: 0;
    margin: 0;
}

.portal-case-original {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.portal-case-takeaway {
    position: relative;
    z-index: 1;
    margin: 0 -3cqw 0 4.6875cqw;
    font-size: 1.65cqw;
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1.6;
}

.portal-case-takeaway span {
    background: linear-gradient(transparent 76%, #ffdf2d 76%, #ffdf2d 97%, transparent 97%);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.portal-case-disclaimer {
    margin: 1cqw 3cqw 0 8cqw;
    color: #505050;
    font-size: max(10px, .95cqw);
    line-height: 1.6;
}

.portal-case-detail-link {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 1em;
    min-height: 44px;
    margin: .2cqw 0 0 4.6875cqw;
    color: inherit;
    font-size: max(12px, 1.05cqw);
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: .25em;
}

@container (max-width: 760px) {
    .portal-feature-row,
    .portal-case-story {
        grid-template-columns: minmax(0, 1fr);
    }

    .portal-feature-row {
        padding-bottom: 24px;
    }

    .portal-feature-copy {
        padding: 32px 22px 20px;
    }

    .portal-feature-number {
        gap: 12px;
        margin-bottom: 16px;
    }

    .portal-feature-number span {
        font-size: 20px;
    }

    .portal-feature-number strong {
        font-size: 56px;
    }

    .portal-feature-copy h3 {
        font-size: clamp(25px, 7.15cqw, 43px);
    }

    .portal-feature-description {
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.75;
    }

    .portal-feature-tip {
        grid-template-columns: 30px minmax(0, 1fr);
        gap: 14px;
        padding: 15px 16px;
        margin-top: 20px;
        border-radius: 12px;
        font-size: 15px;
    }

    .portal-feature-bulb {
        width: 30px;
        height: 42px;
    }

    .portal-feature-original,
    .portal-case-visual {
        width: calc(100% - 44px);
        max-width: 600px;
        justify-self: center;
    }

    .portal-case-story {
        padding-bottom: 24px;
    }

    .portal-case-copy {
        padding: 32px 22px 24px;
    }

    .portal-case-badge {
        margin-bottom: 16px;
        font-size: 16px;
    }

    .portal-case-copy h2 {
        font-size: clamp(25px, 6.5cqw, 38px);
        line-height: 1.4;
    }

    .portal-case-description {
        margin-top: 16px;
        font-size: 16px;
        line-height: 1.75;
    }

    .portal-case-description br {
        display: none;
    }

    .portal-case-metrics {
        gap: 16px;
        margin-top: 22px;
    }

    .portal-case-metrics li {
        flex-direction: column;
        gap: 10px;
        padding: 14px 4px;
        border-radius: 12px;
        text-align: center;
    }

    .portal-case-metrics li + li::before {
        left: -14px;
        width: 12px;
        height: 20px;
    }

    .portal-case-metric-icon {
        flex-basis: 40px;
        width: 40px;
        height: 40px;
    }

    .portal-case-metric-icon svg {
        width: 30px;
        height: 30px;
    }

    .portal-case-metrics li > div > span {
        font-size: 13px;
    }

    .portal-case-metrics strong {
        margin-top: 8px;
        font-size: clamp(23px, 6.8cqw, 40px);
    }

    .portal-case-takeaway {
        margin: 24px 22px 0;
        font-size: 19px;
        line-height: 1.7;
    }

    .portal-case-disclaimer {
        margin: 16px 22px 0;
        font-size: 12px;
    }

    .portal-case-detail-link {
        margin: 8px 22px 0;
        font-size: 14px;
    }
}

.portal-video-showcase {
    display: block;
    margin: 0;
}

.portal-video-showcase figcaption {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
    text-align: right;
}

.portal-hero-aside {
    padding: 28px;
    border: 2px solid var(--ink);
    border-radius: 18px;
    background: #fff;
    box-shadow: 7px 7px 0 var(--yellow);
}

.portal-hero-aside > p:first-child {
    margin: 0 0 16px;
    color: #866e12;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.portal-hero-aside ul {
    display: grid;
    gap: 0;
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-hero-aside li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.portal-hero-aside li:last-child {
    border-bottom: 0;
}

.portal-hero-aside li span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: var(--yellow);
    font-size: 10px;
    font-weight: 950;
}

.portal-hero-aside li strong {
    display: block;
    margin-bottom: 2px;
    font-size: 15px;
    line-height: 1.45;
}

.portal-hero-aside li small {
    display: block;
    color: var(--muted);
    font-size: 10px;
    font-weight: 650;
    line-height: 1.65;
}

.portal-proof {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 42px;
    overflow: hidden;
    border: 1px solid #d9d2c1;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.9);
}

.portal-proof > div {
    display: grid;
    min-height: 98px;
    place-items: center;
    padding: 18px 24px;
    border-right: 1px solid #ddd5c4;
    text-align: center;
}

.portal-proof > div:last-child {
    border-right: 0;
}

.portal-proof strong {
    display: block;
    font-size: 19px;
    font-weight: 950;
    line-height: 1.35;
}

.portal-section {
    padding: 92px 0;
}

.portal-section.is-white {
    background: #fff;
}

.portal-section.is-cream {
    background: var(--cream);
}

.portal-section.is-dark {
    background: var(--ink);
    color: #fff;
}

.portal-section.is-yellow {
    background: var(--yellow-soft);
}

.portal-heading {
    max-width: 900px;
    margin-bottom: 42px;
}

.portal-heading.is-center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.portal-heading h2 {
    margin: 0 0 18px;
    font-size: clamp(36px, 4.2vw, 56px);
    font-weight: 950;
    letter-spacing: -0.06em;
    line-height: 1.22;
    text-wrap: balance;
}

.portal-heading > p:last-child {
    max-width: 760px;
    margin-bottom: 0;
    color: var(--muted);
    font-size: 15px;
    font-weight: 650;
    line-height: 1.95;
}

.portal-heading.is-center > p:last-child {
    margin-inline: auto;
}

.is-dark .portal-heading > p:last-child {
    color: #c8c5bb;
}

.portal-directory {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.portal-directory a {
    position: relative;
    display: flex;
    min-height: 230px;
    flex-direction: column;
    padding: 25px 22px;
    border: 2px solid var(--ink);
    border-radius: 16px;
    background: #fff;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.portal-directory a:hover {
    transform: translate(-3px, -3px);
    box-shadow: 7px 7px 0 var(--ink);
}

.portal-directory small {
    color: #8a6e0a;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.portal-directory h3 {
    margin: 20px 0 9px;
    font-size: 23px;
    font-weight: 950;
    letter-spacing: -0.045em;
    line-height: 1.35;
}

.portal-directory p {
    margin: 0 0 20px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.75;
}

.portal-directory b {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    margin-top: auto;
    margin-left: auto;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
}

.portal-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.portal-card-grid.is-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-card-grid.is-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portal-card {
    min-width: 0;
    padding: 28px;
    border: 2px solid var(--ink);
    border-radius: 17px;
    background: #fff;
    color: var(--ink);
}

.portal-card.is-featured {
    background: var(--yellow-soft);
    box-shadow: 6px 6px 0 var(--ink);
}

.portal-card.is-dark {
    background: var(--ink);
    color: #fff;
    box-shadow: 6px 6px 0 var(--yellow);
}

.portal-card-number,
.portal-card-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 26px;
    padding: 4px 9px;
    margin-bottom: 18px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: var(--yellow);
    color: var(--ink);
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.07em;
}

.portal-card h3 {
    margin: 0 0 12px;
    font-size: 24px;
    font-weight: 950;
    letter-spacing: -0.045em;
    line-height: 1.4;
}

.portal-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.9;
}

.portal-card.is-dark p {
    color: #cfccc2;
}

.portal-card ul {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 18px 0 0;
    list-style: none;
}

.portal-card li {
    position: relative;
    padding-left: 18px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.65;
}

.portal-card li::before {
    position: absolute;
    top: 0.62em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--yellow);
    content: "";
}

.portal-concept-visual {
    margin: 0 0 26px;
    overflow: hidden;
    border: 2px solid var(--ink);
    border-radius: 18px;
    background: #fff;
}

.portal-concept-media {
    overflow: hidden;
    background: #fffaf0;
}

.portal-concept-media picture {
    display: block;
}

.portal-concept-media img {
    display: block;
    width: 100%;
    height: auto;
}

.portal-concept-legend {
    display: grid;
    border-top: 2px solid var(--ink);
    background: #fff;
}

.portal-concept-legend.is-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portal-concept-legend.is-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-concept-legend.is-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-concept-legend span {
    display: grid;
    min-width: 0;
    gap: 4px;
    padding: 15px 18px;
    border-right: 1px solid var(--line);
}

.portal-concept-legend span:last-child {
    border-right: 0;
}

.portal-concept-legend b {
    color: #846900;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.06em;
}

.portal-concept-legend strong {
    font-size: 13px;
    font-weight: 950;
    line-height: 1.45;
}

.portal-concept-legend small {
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
    line-height: 1.55;
}

.portal-use-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.portal-use-mobile-break {
    display: none;
}

.portal-use-option {
    display: grid;
    min-height: 390px;
    align-content: start;
    gap: 0;
    padding: 38px;
    border: 2px solid var(--ink);
    border-radius: 20px;
    background: #fff;
    box-shadow: 8px 8px 0 var(--yellow);
}

.portal-use-option.is-managed {
    background: var(--ink);
    color: #fff;
}

.portal-use-option h3 {
    margin: 0 0 30px;
    font-size: clamp(31px, 3.2vw, 43px);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.2;
}

.portal-use-price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 24px;
    margin: 0 0 24px;
    border-bottom: 1px solid rgba(23, 23, 18, 0.2);
}

.portal-use-option.is-managed .portal-use-price {
    border-bottom-color: rgba(255, 255, 255, 0.25);
}

.portal-use-price strong {
    font-size: clamp(34px, 3.8vw, 50px);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1;
}

.portal-use-price span {
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
}

.portal-use-point {
    min-height: 58px;
    margin: 0 0 28px;
    font-size: 18px;
    font-weight: 850;
    line-height: 1.6;
}

.portal-use-option .button {
    align-self: end;
    margin-top: auto;
}

.portal-use-option.is-managed .button-outline {
    background: #fff;
    color: var(--ink);
}

.portal-setup-visual {
    width: min(100%, 960px);
    margin-right: auto;
    margin-left: auto;
}

.portal-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-flow.is-six {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-flow li {
    position: relative;
    min-width: 0;
    padding: 24px 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.portal-flow li::after {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: -22px;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid var(--ink);
    border-radius: 50%;
    background: var(--yellow);
    content: "→";
    font-size: 12px;
    font-weight: 950;
}

.portal-flow li:last-child::after,
.portal-flow.is-six li:nth-child(3)::after,
.portal-flow.is-six li:nth-child(6)::after {
    display: none;
}

.portal-flow b {
    color: #8a6e0a;
    font-size: 10px;
    letter-spacing: 0.1em;
}

.portal-flow h3 {
    margin: 12px 0 7px;
    font-size: 18px;
    line-height: 1.45;
}

.portal-flow p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.75;
}

.portal-compare {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
}

.portal-compare-arrow {
    display: grid;
    width: 48px;
    height: 48px;
    place-self: center;
    place-items: center;
    border: 2px solid var(--ink);
    border-radius: 50%;
    background: var(--yellow);
    box-shadow: 3px 3px 0 var(--ink);
    font-weight: 950;
}

.portal-positioning {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 2px solid var(--ink);
    border-radius: 17px;
    background: #fff;
}

.portal-position-axis {
    display: grid;
    grid-template-columns: auto minmax(100px, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 0 8px;
    margin: 0 0 12px;
    color: #5f5c51;
    font-size: 10px;
    font-weight: 900;
}

.portal-position-axis b {
    position: relative;
    display: grid;
    height: 22px;
    align-items: center;
    color: var(--ink);
    text-align: right;
}

.portal-position-axis b::before {
    position: absolute;
    right: 12px;
    left: 0;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ded9cb, var(--yellow));
    content: "";
}

.portal-positioning article {
    position: relative;
    padding: 30px;
    border-right: 1px solid var(--line);
}

.portal-positioning article:last-child {
    border-right: 0;
}

.portal-positioning article.is-middle {
    background: var(--yellow-soft);
}

.portal-positioning span {
    color: #8a6e0a;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.portal-position-level {
    display: block;
    width: max-content;
    padding: 5px 8px;
    margin-top: 10px;
    border: 1px solid rgba(23, 23, 18, 0.18);
    border-radius: 999px;
    background: #f5f3eb;
    color: #5e5b50;
    font-size: 9px;
    font-weight: 900;
}

.portal-positioning .is-middle .portal-position-level {
    background: var(--yellow);
}

.portal-positioning h3 {
    margin: 12px 0 9px;
    font-size: 23px;
    line-height: 1.4;
}

.portal-decision-route {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
    align-items: center;
    gap: 5px;
    padding: 10px;
    margin: 0 0 13px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f7f5ef;
}

.portal-decision-route em {
    font-size: 9px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.45;
    text-align: center;
}

.portal-decision-route b {
    color: #846900;
    font-size: 12px;
    text-align: center;
}

.portal-positioning p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.85;
}

.portal-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 20px;
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #f7f5ee;
}

.portal-tags span {
    padding: 7px 12px;
    border: 1px solid rgba(23, 23, 18, 0.22);
    border-radius: 999px;
    background: #fff;
    font-size: 10px;
    font-weight: 850;
}

.portal-tag-gate {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) 58px minmax(220px, 0.65fr);
    align-items: center;
    gap: 18px;
    padding: 24px;
    margin: 0 0 24px;
    border: 2px solid var(--ink);
    border-radius: 16px;
    background: #fff;
}

.portal-tag-gate-inputs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.portal-tag-gate-inputs span {
    padding: 8px 12px;
    border: 1px solid rgba(23, 23, 18, 0.26);
    border-radius: 999px;
    background: var(--yellow-soft);
    font-size: 10px;
    font-weight: 900;
}

.portal-tag-gate-inputs small {
    width: 100%;
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 750;
}

.portal-tag-gate-arrow {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    justify-self: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    background: var(--yellow);
    font-weight: 950;
}

.portal-tag-gate-result {
    display: grid;
    gap: 3px;
    padding: 18px;
    border: 2px solid var(--ink);
    border-radius: 12px;
    background: var(--yellow);
    text-align: center;
}

.portal-tag-gate-result b {
    color: #695400;
    font-size: 9px;
    letter-spacing: 0.08em;
}

.portal-tag-gate-result strong {
    font-size: 19px;
    font-weight: 950;
}

.portal-tag-gate-result small {
    color: #5e594c;
    font-size: 9px;
    font-weight: 750;
}

.portal-note {
    padding: 16px 18px;
    margin-top: 18px;
    border-left: 4px solid var(--yellow);
    border-radius: 0 9px 9px 0;
    background: #f8f6ef;
    color: var(--muted);
    font-size: 10px;
    font-weight: 650;
    line-height: 1.8;
}

.portal-narrowing-funnel {
    display: grid;
    gap: 28px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-narrowing-funnel li {
    position: relative;
    width: var(--stage-width);
    min-width: 380px;
    padding: 18px 24px;
    margin-inline: auto;
    border: 2px solid var(--ink);
    border-radius: 13px;
    background: #fff;
    text-align: center;
}

.portal-narrowing-funnel li:not(:last-child)::after {
    position: absolute;
    bottom: -27px;
    left: 50%;
    content: "↓";
    transform: translateX(-50%);
    color: #826700;
    font-size: 18px;
    font-weight: 950;
}

.portal-narrowing-funnel li.is-goal {
    background: var(--yellow);
}

.portal-narrowing-funnel span,
.portal-narrowing-funnel strong,
.portal-narrowing-funnel p {
    display: block;
}

.portal-narrowing-funnel span {
    color: #6d685c;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.06em;
}

.portal-narrowing-funnel strong {
    margin: 3px 0 2px;
    font-size: 30px;
    font-weight: 950;
    letter-spacing: -0.045em;
    line-height: 1.15;
}

.portal-narrowing-funnel p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.55;
}

.portal-result-path,
.portal-data-path {
    display: grid;
    align-items: stretch;
    gap: 14px;
}

.portal-result-path {
    grid-template-columns: minmax(260px, 1.45fr) 46px minmax(190px, 0.8fr) 46px minmax(190px, 0.8fr);
}

.portal-data-path {
    grid-template-columns: minmax(0, 1fr) 82px minmax(0, 1fr) 72px minmax(0, 1fr);
}

.portal-followup-path {
    grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr) 92px minmax(0, 1fr);
}

.portal-result-path article,
.portal-data-path article {
    min-width: 0;
    padding: 25px 22px;
    border: 2px solid var(--ink);
    border-radius: 15px;
    background: #fff;
}

.portal-result-path article.is-goal,
.portal-data-path article.is-confirmed,
.portal-data-path article.is-human {
    background: var(--yellow);
}

.portal-data-path article.is-outside {
    border-style: dashed;
    border-color: #8e897d;
    background: #f2f0e9;
}

.portal-result-path article > span,
.portal-node-state {
    display: block;
    color: #796100;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.portal-result-path strong {
    display: block;
    margin: 7px 0 5px;
    font-size: 46px;
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 1;
}

.portal-result-path strong small {
    margin-left: 3px;
    font-size: 14px;
}

.portal-page-overview .portal-result-path article > span {
    font-size: 14px;
    letter-spacing: 0;
}

.portal-page-overview .portal-result-path strong small {
    font-size: 17px;
}

.portal-case-link {
    margin-top: 28px;
}

.portal-result-path p,
.portal-data-path p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.7;
}

.portal-data-path h3 {
    margin: 12px 0 8px;
    font-size: 20px;
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 1.4;
}

.portal-path-arrow,
.portal-path-boundary,
.portal-path-condition {
    align-self: center;
    justify-self: center;
}

.portal-path-arrow {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
    font-size: 14px;
    font-weight: 950;
}

.portal-path-boundary {
    display: grid;
    gap: 7px;
    justify-items: center;
    color: #777267;
}

.portal-path-condition {
    display: grid;
    gap: 7px;
    justify-items: center;
    color: #6e5900;
}

.portal-path-condition b {
    padding: 5px 7px;
    border: 1px solid #8a7000;
    border-radius: 999px;
    background: var(--yellow-soft);
    font-size: 8px;
    white-space: nowrap;
}

.portal-path-condition i {
    font-size: 16px;
    font-style: normal;
    font-weight: 950;
}

.portal-path-boundary b {
    padding: 5px 7px;
    border: 1px dashed #777267;
    border-radius: 999px;
    font-size: 8px;
    white-space: nowrap;
}

.portal-path-boundary i {
    font-size: 16px;
    font-style: normal;
    font-weight: 950;
}

.portal-result-context {
    display: flex;
    width: max-content;
    max-width: 100%;
    align-items: center;
    gap: 13px;
    padding: 10px 14px;
    margin: 14px 0 0;
    border: 1px solid rgba(23, 23, 18, 0.25);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    font-size: 10px;
    line-height: 1.5;
}

.portal-result-context strong {
    font-size: 11px;
    font-weight: 950;
    white-space: nowrap;
}

.portal-result-context span {
    color: var(--muted);
    font-weight: 700;
}

.portal-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.portal-stat {
    padding: 26px 22px;
    border: 2px solid var(--ink);
    border-radius: 15px;
    background: #fff;
}

.portal-stat.is-goal {
    background: var(--yellow);
    box-shadow: 5px 5px 0 var(--ink);
}

.portal-stat strong {
    display: block;
    margin-bottom: 4px;
    font-size: 42px;
    font-weight: 950;
    letter-spacing: -0.06em;
    line-height: 1.1;
}

.portal-stat strong small {
    margin-left: 3px;
    font-size: 14px;
}

.portal-stat span {
    display: block;
    font-size: 12px;
    font-weight: 900;
}

.portal-stat p {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 10px;
    font-weight: 650;
    line-height: 1.65;
}

.portal-ui-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.portal-ui-shot {
    margin: 0;
    overflow: hidden;
    border: 2px solid var(--ink);
    border-radius: 16px;
    background: #fff;
    box-shadow: 6px 6px 0 var(--ink);
    color: var(--ink);
}

.portal-ui-shot img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    border-bottom: 1px solid var(--line);
}

.portal-ui-shot figcaption {
    padding: 17px 20px;
}

.portal-ui-shot figcaption strong,
.portal-ui-shot figcaption span {
    display: block;
}

.portal-ui-shot figcaption strong {
    font-size: 14px;
}

.portal-ui-shot figcaption span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 650;
}

.portal-message-demo {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) 58px minmax(0, 1.15fr);
    gap: 16px;
    align-items: stretch;
}

.portal-message-demo article {
    padding: 27px;
    border: 2px solid var(--ink);
    border-radius: 16px;
    background: #fff;
}

.portal-message-demo article:last-child {
    border-color: #1e67d4;
    box-shadow: 5px 5px 0 #1e67d4;
}

.portal-message-demo pre {
    margin: 0;
    overflow: visible;
    white-space: pre-wrap;
    color: #35342f;
    font-family: inherit;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.85;
}

.portal-message-arrow {
    display: grid;
    place-items: center;
    color: #9b7900;
    font-size: 28px;
    font-weight: 950;
}

.portal-ab-source {
    width: min(100%, 520px);
    padding: 19px 24px;
    margin-inline: auto;
    border: 2px solid var(--ink);
    border-radius: 15px;
    background: #fff;
    text-align: center;
}

.portal-ab-source span {
    color: #806600;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.1em;
}

.portal-ab-source h3 {
    margin: 5px 0 3px;
    font-size: 22px;
    font-weight: 950;
}

.portal-ab-source p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
}

.portal-ab-split {
    display: grid;
    width: min(100%, 760px);
    height: auto;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    padding: 12px 0 10px;
    margin-inline: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 10px;
    font-weight: 950;
}

.portal-ab-split span {
    display: grid;
    min-height: 34px;
    place-items: center;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: var(--yellow);
}

.portal-ab-split b {
    color: #6b675d;
    font-size: 9px;
    letter-spacing: 0.08em;
}

.portal-ab-board {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.portal-ab-branch {
    min-height: 260px;
    padding: 30px;
    border: 2px solid var(--ink);
    border-radius: 17px;
    background: #fff;
}

.portal-ab-branch h3 {
    margin: 8px 0 12px;
    font-size: 28px;
}

.portal-ab-branch p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.85;
}

.portal-ab-branch dl {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 15px;
    margin: 20px 0 0;
    font-size: 11px;
}

.portal-ab-branch dt {
    color: var(--muted);
    font-weight: 700;
}

.portal-ab-branch dd {
    margin: 0;
    font-weight: 950;
}

.portal-formula {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr) 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}

.portal-formula > div {
    display: grid;
    min-height: 128px;
    align-content: center;
    gap: 8px;
    padding: 22px;
    border: 2px solid var(--ink);
    border-radius: 15px;
    background: #fff;
    text-align: center;
}

.portal-formula > div.is-result {
    background: var(--yellow);
}

.portal-formula span {
    color: #806600;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.portal-formula strong {
    font-size: 17px;
    font-weight: 950;
    line-height: 1.45;
}

.portal-formula > b {
    font-size: 30px;
    font-weight: 950;
    text-align: center;
}

.portal-card-grid-compact .portal-card {
    padding: 22px;
}

.portal-table-wrap {
    overflow-x: auto;
    border: 2px solid var(--ink);
    border-radius: 16px;
    background: #fff;
}

.portal-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-size: 12px;
}

.portal-table th,
.portal-table td {
    padding: 18px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.portal-table th:last-child,
.portal-table td:last-child {
    border-right: 0;
}

.portal-table tbody tr:last-child th,
.portal-table tbody tr:last-child td {
    border-bottom: 0;
}

.portal-table thead th {
    background: #f7f5ef;
    font-size: 10px;
    letter-spacing: 0.08em;
}

.portal-table .is-brand {
    background: var(--yellow-soft);
    font-weight: 850;
}

.portal-pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.portal-price-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 28px;
    border: 2px solid var(--ink);
    border-radius: 17px;
    background: #fff;
}

.portal-price-card.is-recommended {
    background: var(--yellow-soft);
    box-shadow: 7px 7px 0 var(--ink);
}

.portal-price-card > small {
    color: #876c0b;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.portal-price {
    margin: 21px 0 4px;
    line-height: 1;
}

.portal-price strong {
    font-size: 54px;
    font-weight: 950;
    letter-spacing: -0.07em;
}

.portal-price b {
    margin-left: 4px;
    font-size: 15px;
}

.portal-price-card > p {
    min-height: 48px;
    margin-bottom: 17px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.portal-price-card ul {
    display: grid;
    gap: 0;
    padding: 0;
    margin: 0 0 24px;
    list-style: none;
}

.portal-price-card li {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(23, 23, 18, 0.12);
    font-size: 10px;
}

.portal-price-card li span {
    color: var(--muted);
    font-weight: 700;
}

.portal-price-card li strong {
    text-align: right;
}

.portal-price-card .button {
    margin-top: auto;
}

.portal-faq-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.portal-faq-list details {
    align-self: start;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

.portal-faq-list summary {
    position: relative;
    display: flex;
    min-height: 75px;
    align-items: center;
    gap: 12px;
    padding: 17px 48px 17px 17px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.55;
    list-style: none;
}

.portal-faq-list summary::-webkit-details-marker {
    display: none;
}

.portal-faq-list summary::after {
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    content: "+";
    font-size: 22px;
    font-weight: 800;
}

.portal-faq-list details[open] summary::after {
    content: "−";
}

.portal-faq-list summary span {
    display: grid;
    width: 31px;
    height: 31px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--yellow);
    font-size: 11px;
}

.portal-faq-list details > div {
    padding: 0 22px 22px 60px;
}

.portal-faq-list details p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.9;
}

.portal-next-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.portal-next-grid.is-spaced {
    margin-top: 24px;
}

.portal-next-grid a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    border: 2px solid var(--ink);
    border-radius: 14px;
    background: #fff;
    color: var(--ink);
    font-weight: 900;
}

.portal-next-grid a:last-child {
    background: var(--yellow-soft);
}

.portal-next-grid a span:last-child {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
}

.portal-conversion {
    padding: 82px 0 90px;
    background: #fff8e8;
}

.portal-conversion-offer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr);
    align-items: center;
    gap: 54px;
    padding: 46px 50px;
    border: 2px solid var(--ink);
    border-radius: 20px;
    background: var(--yellow);
    box-shadow: 8px 8px 0 var(--ink);
}

.portal-conversion-offer h2 {
    margin: 0 0 8px;
    font-size: clamp(40px, 4.5vw, 62px);
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 1.15;
}

.portal-conversion-offer p {
    margin: 0;
    font-size: 19px;
    font-weight: 850;
}

.portal-conversion-offer .button-primary {
    width: 100%;
    background: #fff;
}

.portal-contact {
    display: grid;
    grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1.42fr);
    align-items: start;
    gap: 58px;
    padding-top: 76px;
}

.portal-contact-heading h2 {
    margin: 0 0 14px;
    font-size: clamp(34px, 4vw, 50px);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.2;
}

.portal-contact-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.8;
}

.portal-contact-form.contact-card {
    padding: 34px;
    border-radius: 18px;
    box-shadow: 7px 7px 0 var(--ink);
}

.portal-contact-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.portal-contact-form .contact-field {
    margin: 0;
}

.portal-contact-form .contact-field label {
    margin-bottom: 8px;
    font-size: 15px;
}

.portal-contact-form .contact-field input,
.portal-contact-form .contact-field select,
.portal-contact-form .contact-field textarea {
    min-height: 52px;
    padding: 13px 15px;
    font-size: 16px;
}

.portal-contact-form .contact-field textarea {
    min-height: 150px;
}

.portal-contact-wide {
    grid-column: 1 / -1;
}

.portal-contact-form .button {
    margin-top: 24px;
}

.portal-contact-form .contact-legal {
    margin-top: 18px;
    font-size: 14px;
    line-height: 1.7;
}

.portal-footer .footer-bottom {
    font-size: 14px;
}

.portal-footer .footer-grid nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    font-size: 14px;
}

.portal-footer .footer-grid > div:first-child > p,
.portal-footer .footer-company p,
.portal-footer .footer-company a {
    font-size: 14px;
}

.portal-footer .footer-company strong {
    font-size: 16px;
}

@media (max-width: 1100px) {
    .portal-hero-grid {
        gap: 38px;
    }

    .portal-directory {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-card-grid.is-four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-card-grid > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1241px) {
    .portal-hero {
        padding-top: 118px;
    }
}

@media (min-width: 1241px) and (max-width: 1340px) {
    .portal-header-inner {
        gap: 16px;
    }

    .portal-global-nav .portal-nav-link {
        padding-inline: 7px !important;
        font-size: 13px;
    }

    .portal-header-actions {
        gap: 14px;
    }
}

/* 各ページへのメニューを、タッチしやすい1段のアコーディオンへ切り替える。 */
@media (max-width: 1240px) {
    .portal-header-inner {
        display: flex;
        min-height: 68px;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }

    .portal-header-actions {
        display: none;
    }

    .portal-header .nav-toggle {
        display: block;
    }

    .portal-header .nav-toggle[aria-expanded="true"] > span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .portal-header .nav-toggle[aria-expanded="true"] > span:nth-child(2) {
        opacity: 0;
    }

    .portal-header .nav-toggle[aria-expanded="true"] > span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .portal-global-nav {
        position: fixed;
        inset: 68px 0 auto;
        display: grid;
        width: auto;
        max-height: 0;
        grid-template-columns: 1fr;
        align-self: auto;
        justify-content: stretch;
        gap: 0;
        padding: 0;
        border-top: 0;
        overflow-x: hidden;
        overflow-y: auto;
        background: #fffdf8;
        font-size: 13px;
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        transition: max-height 0.28s ease, opacity 0.2s ease;
    }

    .portal-global-nav.is-open {
        max-height: calc(100vh - 68px);
        max-height: calc(100dvh - 68px);
        padding: 8px 18px 18px;
        border-top: 1px solid var(--line);
        border-bottom: 2px solid var(--ink);
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
    }

    .portal-global-nav .portal-nav-link {
        display: grid;
        min-height: 56px;
        grid-template-columns: 34px minmax(0, 1fr) auto;
        justify-content: stretch;
        gap: 12px;
        padding: 8px 10px !important;
        border-bottom: 1px solid var(--line);
        background: transparent;
        font-size: 14px;
        text-align: left;
    }

    .portal-global-nav .portal-nav-link::after {
        display: none;
    }

    .portal-global-nav .portal-nav-link:hover,
    .portal-global-nav .portal-nav-link[aria-current="page"] {
        background: var(--yellow-soft);
    }

    .portal-nav-number {
        display: grid;
    }

    .portal-nav-arrow {
        display: block;
        font-size: 16px;
        line-height: 1;
    }

    .portal-mobile-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
        gap: 10px;
        padding-top: 18px;
    }

    .portal-mobile-login {
        display: flex;
        min-height: 50px;
        align-items: center;
        justify-content: center;
        padding: 10px 12px;
        border: 1px solid rgba(23, 23, 18, 0.18);
        border-radius: 7px;
        background: #fff;
        font-weight: 850;
    }

    .portal-mobile-cta {
        display: flex;
        min-height: 50px;
        justify-content: center;
        margin-top: 0;
    }
}

@media (min-width: 901px) and (max-width: 1279px) {
    .portal-page-overview .portal-hero-grid {
        gap: 28px;
    }

    .portal-page-overview .portal-hero-art img {
        width: min(600px, 50vw);
        transform: translate(-50%, -47%);
    }
}

@media (max-width: 900px) {
    .portal-header-inner {
        min-height: 68px;
    }

    .portal-hero {
        padding: 112px 0 64px;
    }

    .portal-hero-grid,
    .portal-video-layout,
    .portal-conversion-offer,
    .portal-contact {
        grid-template-columns: 1fr;
    }

    .portal-use-options {
        grid-template-columns: 1fr;
    }

    .portal-use-option {
        min-height: 0;
    }

    .portal-video-layout {
        gap: 34px;
    }


    .portal-hero-art {
        min-height: 390px;
        order: -1;
    }

    .portal-hero-art img {
        width: min(790px, calc(100vw - 32px));
    }

    .portal-page-overview .portal-hero-art {
        order: 0;
    }

    .portal-hero-aside {
        max-width: 650px;
    }

    .portal-proof,
    .portal-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-proof > div:nth-child(2) {
        border-right: 0;
    }

    .portal-proof > div:nth-child(-n+2) {
        border-bottom: 1px solid #ddd5c4;
    }

    .portal-flow,
    .portal-flow.is-six {
        grid-template-columns: 1fr;
    }

    .portal-flow li::after,
    .portal-flow li:nth-child(2n)::after,
    .portal-flow.is-six li:nth-child(3)::after {
        top: auto;
        right: 50%;
        bottom: -21px;
        display: grid;
        transform: translate(50%, 0) rotate(90deg);
    }

    .portal-flow li:last-child::after,
    .portal-flow.is-six li:nth-child(6)::after {
        display: none;
    }

    .portal-concept-legend.is-four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-concept-legend.is-four span:nth-child(2) {
        border-right: 0;
    }

    .portal-concept-legend.is-four span:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }

    .portal-position-axis {
        display: none;
    }

    .portal-result-path,
    .portal-data-path,
    .portal-followup-path {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .portal-path-arrow {
        transform: rotate(90deg);
    }

    .portal-path-boundary,
    .portal-path-condition {
        gap: 5px;
    }

    .portal-path-boundary i,
    .portal-path-condition i {
        transform: rotate(90deg);
    }

    .portal-positioning {
        grid-template-columns: 1fr;
    }

    .portal-positioning article {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .portal-positioning article:last-child {
        border-bottom: 0;
    }

    .portal-pricing-grid {
        grid-template-columns: 1fr;
    }

    .portal-price-card {
        max-width: 680px;
        width: 100%;
        margin-inline: auto;
    }

    .portal-conversion-offer,
    .portal-contact {
        gap: 34px;
    }
}

@media (max-width: 600px) {

    .portal-case-mobile-break {
        display: inline;
    }

    body.portal-site .container {
        width: min(calc(100% - 28px), var(--portal-container));
    }

    .portal-header-inner {
        width: min(calc(100% - 28px), var(--portal-container));
    }

    .portal-breadcrumb {
        margin-bottom: 21px;
        font-size: 9px;
    }

    .portal-hero {
        padding: 98px 0 48px;
    }

    .portal-hero-grid {
        gap: 30px;
    }

    .portal-mobile-actions {
        grid-template-columns: 1fr;
    }

    .portal-hero h1 {
        margin-bottom: 18px;
        font-size: clamp(39px, 12vw, 50px);
        line-height: 1.16;
    }

    .portal-hero-lead {
        margin-bottom: 24px;
        font-size: 14px;
        line-height: 1.85;
    }

    .portal-hero .hero-actions {
        display: grid;
        width: 100%;
        max-width: none;
    }

    .portal-hero .hero-actions .button {
        min-width: 0;
        width: 100%;
    }

    .portal-hero-art {
        min-height: 270px;
    }

    .portal-hero-art img {
        width: 530px;
        transform: translate(-50%, -47%);
    }

    .portal-hero-art-label {
        right: 0;
        bottom: 0;
        padding: 7px 10px;
        font-size: 9px;
    }

    .portal-hero-aside {
        padding: 20px;
        box-shadow: 5px 5px 0 var(--yellow);
    }

    .portal-video-section {
        padding: 58px 0;
    }

    .portal-video-layout {
        gap: 26px;
    }

    .portal-video-copy h2 {
        margin-bottom: 15px;
        font-size: 38px;
    }

    .portal-video-copy > p:last-child {
        font-size: 13px;
        line-height: 1.8;
    }

    .portal-video-frame {
        border-radius: 12px;
        box-shadow: 5px 5px 0 var(--yellow);
    }

    .portal-video-badge {
        top: 9px;
        left: 9px;
        padding: 6px 8px;
        font-size: 9px;
    }

    .portal-video-play {
        padding: 12px;
    }

    .portal-video-play-content {
        grid-template-columns: 50px auto;
        gap: 10px;
        padding: 6px 14px 6px 6px;
        box-shadow: 4px 4px 0 var(--ink);
    }

    .portal-video-play-icon {
        width: 50px;
        height: 50px;
        font-size: 18px;
    }

    .portal-video-play-copy strong {
        font-size: 15px;
    }

    .portal-video-play-copy small {
        font-size: 8px;
    }

    .portal-proof {
        margin-top: 30px;
    }

    .portal-proof > div {
        min-height: 82px;
        padding: 15px;
    }

    .portal-proof b {
        width: 34px;
        height: 34px;
    }

    .portal-proof strong {
        font-size: 15px;
    }

    .portal-section {
        padding: 61px 0;
    }

    .portal-heading {
        margin-bottom: 30px;
    }

    .portal-heading h2 {
        font-size: 35px;
        line-height: 1.28;
    }

    .portal-heading > p:last-child {
        font-size: 13px;
        line-height: 1.85;
    }

    .portal-concept-visual {
        border-radius: 13px;
    }

    .portal-concept-legend.is-four,
    .portal-concept-legend.is-three,
    .portal-concept-legend.is-two {
        grid-template-columns: 1fr;
    }

    .portal-concept-legend span,
    .portal-concept-legend.is-four span:nth-child(2) {
        padding: 12px 14px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .portal-concept-legend span:last-child {
        border-bottom: 0;
    }

    .portal-narrowing-funnel li {
        width: 100%;
        min-width: 0;
        padding: 16px 14px;
        margin-right: 0;
    }

    .portal-narrowing-funnel li:nth-child(2) {
        width: calc(100% - 12px);
    }

    .portal-narrowing-funnel li:nth-child(3) {
        width: calc(100% - 24px);
    }

    .portal-narrowing-funnel li:nth-child(4) {
        width: calc(100% - 36px);
    }

    .portal-narrowing-funnel strong {
        font-size: 25px;
    }

    .portal-result-context {
        display: grid;
        width: 100%;
        gap: 3px;
        border-radius: 12px;
    }

    .portal-formula {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .portal-formula > div {
        min-height: 0;
        padding: 18px;
    }

    .portal-formula > b {
        font-size: 22px;
        line-height: 1;
    }

    .portal-tag-gate {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 18px;
    }

    .portal-tag-gate-arrow {
        transform: rotate(90deg);
    }

    .portal-directory,
    .portal-card-grid,
    .portal-card-grid.is-two,
    .portal-card-grid.is-four,
    .portal-flow,
    .portal-flow.is-six,
    .portal-stat-grid,
    .portal-ui-grid,
    .portal-next-grid,
    .portal-faq-list {
        grid-template-columns: 1fr;
    }

    .portal-card-grid > :last-child:nth-child(odd) {
        grid-column: auto;
    }

    .portal-directory a {
        min-height: 190px;
    }

    .portal-card {
        padding: 23px 20px;
    }

    .portal-flow li {
        padding: 21px 19px;
    }

    .portal-compare,
    .portal-message-demo,
    .portal-ab-board {
        grid-template-columns: 1fr;
    }

    .portal-compare-arrow {
        transform: none;
    }

    .portal-message-arrow {
        min-height: 42px;
        transform: rotate(90deg);
    }

    .portal-ab-split {
        width: 100%;
        height: auto;
        justify-self: stretch;
        transform: none;
    }

    .portal-positioning article {
        padding: 24px 21px;
    }

    .portal-stat strong {
        font-size: 40px;
    }

    .portal-ui-shot {
        box-shadow: 4px 4px 0 var(--ink);
    }

    .portal-table-wrap::before {
        display: block;
        padding: 9px 13px;
        border-bottom: 1px solid var(--line);
        background: #f7f5ef;
        color: var(--muted);
        content: "表は横にスクロールできます →";
        font-size: 9px;
        font-weight: 750;
    }

    .portal-price-card {
        padding: 24px 20px;
    }

    .portal-faq-list summary {
        min-height: 68px;
        padding: 15px 44px 15px 14px;
        font-size: 12px;
    }

    .portal-faq-list details > div {
        padding: 0 18px 20px 56px;
    }

    .portal-use-mobile-break {
        display: inline;
    }

    .portal-use-option {
        padding: 28px 22px;
        border-radius: 15px;
        box-shadow: 5px 5px 0 var(--yellow);
    }

    .portal-use-option h3 {
        margin-bottom: 24px;
        font-size: 34px;
    }

    .portal-use-price {
        display: grid;
        justify-content: start;
        gap: 10px;
    }

    .portal-use-price strong {
        font-size: 42px;
    }

    .portal-use-point {
        min-height: 0;
        font-size: 17px;
    }

    .portal-conversion {
        padding: 60px 0 68px;
    }

    .portal-conversion-offer {
        padding: 30px 22px;
        border-radius: 15px;
        box-shadow: 5px 5px 0 var(--ink);
    }

    .portal-conversion-offer h2 {
        font-size: 39px;
    }

    .portal-conversion-offer p {
        font-size: 17px;
    }

    .portal-contact {
        padding-top: 60px;
    }

    .portal-contact-heading h2 {
        font-size: 36px;
    }

    .portal-contact-form.contact-card {
        padding: 24px 18px;
        border-radius: 14px;
        box-shadow: 5px 5px 0 var(--ink);
    }

    .portal-contact-fields {
        grid-template-columns: 1fr;
    }

    .portal-contact-wide {
        grid-column: auto;
    }
}

/* 2026-09-13: copy and flows stay fixed; visual density only is refined. */
@media (min-width: 1280px) {
    body.portal-site.portal-page-overview.ye-chat-docked {
        --ye-chat-split: clamp(400px, calc(100dvh - 360px), 650px);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta {
        box-shadow: 0 3px 10px rgba(90, 67, 0, 0.1);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-header-actions .header-cta:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 5px 13px rgba(90, 67, 0, 0.13);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-main {
        height: 45.1vw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-description {
        top: 28.5cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metrics {
        top: 36.95cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric {
        padding-inline: 1.6cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-metric::before {
        position: absolute;
        top: -0.38cqw;
        left: 50%;
        width: clamp(24px, 2.4cqw, 28px);
        height: 3px;
        transform: translateX(-50%);
        border-radius: 999px;
        background: #fed626;
        content: "";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-laurel {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-photo > img {
        object-position: 72% center;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-actions {
        top: 47.55cqw;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-free {
        top: 0.15cqw;
        left: -7cqw;
        width: 7.34cqw;
        height: 6.56cqw;
        box-shadow: 0 4px 12px rgba(17, 18, 15, 0.11);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult {
        box-shadow: 0 3px 10px rgba(95, 72, 0, 0.1);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-consult:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 5px 14px rgba(95, 72, 0, 0.13);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefits {
        min-height: 289px;
        padding: 26px 40px 28px;
        border-top-color: rgba(5, 6, 4, 0.06);
        background: #f8f8f4;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-benefit-list {
        margin-top: 20px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail {
        border-bottom-color: #ecebe5;
        border-left-color: rgba(17, 18, 15, 0.08);
        background: #fffdf9;
        box-shadow: -2px 0 10px rgba(23, 24, 19, 0.035);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail::before {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-brand {
        top: 15px;
        right: 28px;
        font-size: 15px;
        letter-spacing: -0.04em;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading {
        top: 49px;
        right: 34px;
        left: 34px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-kicker {
        margin-bottom: 6px;
        color: #55584f;
        font-weight: 650;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading strong {
        font-size: 27px;
        letter-spacing: -0.035em;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading > span {
        margin-top: 7px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form {
        top: 154px;
        right: 34px;
        bottom: 0;
        left: 34px;
        padding-bottom: 0;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-fields {
        gap: 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .portal-rail-field-label {
        margin-bottom: 4px;
        font-size: 13px;
        font-weight: 800;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-field-label > span {
        min-height: 16px;
        padding: 2px 5px;
        border-radius: 4px;
        background: rgba(254, 214, 38, 0.24);
        color: #5a4800;
        font-size: 11px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control].has-value,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        height: 35px;
        min-height: 35px;
        padding: 7px 12px;
        border-color: #dedfd9;
        border-radius: 9px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select {
        height: 35px;
        min-height: 35px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field.is-message > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        height: 65px;
        min-height: 65px;
        padding-top: 9px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea:focus {
        border-color: #b69a1f;
        box-shadow: 0 0 0 2px rgba(254, 214, 38, 0.18);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit {
        height: 50px;
        min-height: 50px;
        margin-top: 14px;
        border-radius: 12px;
        box-shadow: 0 2px 7px rgba(95, 72, 0, 0.1);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit:hover,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 4px 10px rgba(95, 72, 0, 0.12);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root {
        border-left-color: rgba(17, 18, 15, 0.08);
        background: #fffdf9;
        box-shadow: -2px 0 10px rgba(23, 24, 19, 0.035);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-panel,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-panel[hidden],
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-controls,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.has-messages .ye-chat-controls {
        background: #fffdf9;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head {
        min-height: 68px;
        flex-basis: 68px;
        gap: 10px;
        padding: 14px 22px 9px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-mark {
        width: 25px;
        height: 25px;
        flex-basis: 25px;
        border: 0;
        border-radius: 7px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy strong::after {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy .ye-chat-online::before {
        width: 7px;
        height: 7px;
        box-shadow: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log {
        padding: 8px 22px 9px 74px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log::before {
        top: 15px;
        left: 25px;
        width: 38px;
        height: 38px;
        border-color: #e7e5dc;
        box-shadow: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-message {
        margin-bottom: 10px;
        padding: 9px 13px;
        border: 0;
        border-radius: 14px;
        box-shadow: 0 2px 8px rgba(23, 24, 19, 0.055);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-controls,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.has-messages .ye-chat-controls {
        padding: 10px 22px 12px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-presets {
        gap: 7px 8px;
        margin-bottom: 18px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-controls {
        padding-top: 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.is-engaged .ye-chat-log {
        padding-left: 24px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset {
        min-height: 36px;
        padding: 7px 12px;
        border-color: #dedfd9;
        font-weight: 650;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-form {
        grid-template-columns: minmax(0, 1fr) 48px;
        gap: 8px 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-textarea {
        height: 50px;
        min-height: 50px;
        max-height: 50px;
        padding: 12px 14px;
        border-color: #dedfd9;
        border-radius: 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        width: 48px;
        height: 48px;
        min-height: 48px;
        border: 0;
        border-radius: 12px;
        box-shadow: 0 2px 7px rgba(81, 63, 0, 0.1);
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-consent {
        gap: 8px;
        margin-top: 2px;
        transform: none;
    }
}

@media (min-width: 1280px) and (max-height: 1023px) {
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional {
        display: block;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-toggle {
        display: flex;
        width: 100%;
        min-height: 34px;
        align-items: center;
        justify-content: space-between;
        padding: 6px 10px;
        border: 1px solid #dedfd9;
        border-radius: 9px;
        background: #fff;
        color: #30322e;
        font-size: 13px;
        font-weight: 750;
        line-height: 1.35;
        cursor: pointer;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional-toggle::after {
        content: "+";
        font-size: 17px;
        font-weight: 500;
        line-height: 1;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional.is-open > .portal-rail-optional-toggle::after {
        content: "−";
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional:not(.is-open) > .portal-rail-optional-fields {
        display: none;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-optional.is-open > .portal-rail-optional-fields {
        display: grid;
        gap: 11px;
        margin-top: 11px;
    }
}

@media (min-width: 1280px) and (max-width: 1439px) {
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head {
        gap: 9px;
        padding-right: 18px;
        padding-left: 18px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-mark {
        width: 24px;
        height: 24px;
        flex-basis: 24px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy {
        gap: 6px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy strong {
        font-size: 18px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head-copy .ye-chat-online {
        padding-left: 10px;
        font-size: 11.5px;
    }
}

@media (min-width: 1280px) and (max-height: 950px) {
    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-brand {
        top: 7px;
        right: 22px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading {
        top: 35px;
        right: 28px;
        left: 28px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-coded-rail-kicker {
        margin-bottom: 2px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading strong {
        font-size: 24px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-consult-rail-heading > span {
        margin-top: 4px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form {
        top: 122px;
        right: 28px;
        bottom: 8px;
        left: 28px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-fields {
        gap: 7px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .portal-rail-field-label {
        min-height: 16px;
        margin-bottom: 2px;
        font-size: 13px;
        line-height: 16px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control]:focus,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field > [data-exact-control].has-value,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field input,
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field select {
        height: 34px;
        min-height: 34px;
        padding-top: 5px;
        padding-bottom: 5px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-exact-field.is-message > [data-exact-control],
    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-form .contact-field textarea {
        height: 50px;
        min-height: 50px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .portal-rail-contact-submit {
        height: 46px;
        min-height: 46px;
        margin-top: 10px;
        border-radius: 11px;
        font-size: 14px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-head {
        min-height: 62px;
        flex-basis: 62px;
        padding-top: 12px;
        padding-bottom: 7px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log {
        padding: 8px 18px 8px 65px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-log::before {
        top: 13px;
        left: 18px;
        width: 36px;
        height: 36px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-message {
        margin-bottom: 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-controls,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-root.has-messages .ye-chat-controls {
        padding: 10px 18px 12px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-presets {
        margin-bottom: 14px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-preset {
        min-height: 34px;
        padding: 6px 10px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-form {
        grid-template-columns: minmax(0, 1fr) 47px;
        gap: 7px 9px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-textarea,
    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        height: 47px;
        min-height: 47px;
        max-height: 47px;
    }

    body.portal-site.portal-page-overview.ye-chat-docked .ye-chat-submit {
        width: 47px;
    }
}

@media (max-width: 1279px) {
    body.portal-site.portal-page-overview .portal-header-actions .header-cta {
        border-width: 1px;
        box-shadow: 0 3px 10px rgba(23, 23, 18, 0.1);
    }

    body.portal-site.portal-page-overview .portal-header-actions .header-cta:hover,
    body.portal-site.portal-page-overview .portal-header-actions .header-cta:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 5px 13px rgba(23, 23, 18, 0.13);
    }

    body.portal-site.portal-page-overview .portal-hero .hero-actions .button {
        border-width: 1.5px;
        box-shadow: 0 3px 10px rgba(23, 23, 18, 0.1);
    }

    body.portal-site.portal-page-overview .portal-hero .hero-actions .button:hover,
    body.portal-site.portal-page-overview .portal-hero .hero-actions .button:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 5px 14px rgba(23, 23, 18, 0.13);
    }

    body.portal-site.portal-page-overview .portal-hero {
        border-bottom-color: rgba(23, 23, 18, 0.1);
    }
}
