/* =========================================================
   TOWA SaaS Page
   Single stylesheet for the SaaS page.

   Consolidated from:
   - saas.css
   - home-ai-reception.css
   - repeat-starter.css

   Use this page with only:
   <link rel="stylesheet" href="~/css/saas.css" asp-append-version="true" />
========================================================= */

:root {
    --saas-blue: #2563eb;
    --saas-blue-dark: #1d4ed8;
    --saas-indigo: #4338ca;
    --saas-cyan: #06b6d4;
    --saas-navy: #0f172a;
    --saas-slate: #475569;
    --saas-muted: #64748b;
    --saas-border: rgba(148, 163, 184, .28);
    --saas-shadow: 0 24px 70px rgba(15, 23, 42, .12);

    --towa-blue: #2563eb;
    --towa-indigo: #4f46e5;
    --towa-purple: #7c3aed;
    --towa-teal: #14b8a6;
    --towa-green: #10b981;
    --towa-ink: #0f172a;
    --towa-text: #334155;
    --towa-muted: #64748b;
    --towa-border: rgba(148, 163, 184, .24);
    --towa-card: rgba(255, 255, 255, .84);
    --towa-shadow: 0 24px 64px rgba(15, 23, 42, .10);
}

/* =========================================================
   Existing SaaS shared styles
========================================================= */

.towa-saas-page {
    background: #fff;
    color: var(--saas-navy);
    overflow: hidden;
}

.saas-hero {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 18% 18%, rgba(34, 197, 94, .13), transparent 38%), radial-gradient(circle at 86% 22%, rgba(20, 184, 166, .10), transparent 36%), linear-gradient(180deg, #f2fbf5 0%, #f8fffb 56%, #ffffff 100%);
}

.saas-soft-section {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 16% 24%, rgba(34, 197, 94, .09), transparent 34%), radial-gradient(circle at 84% 18%, rgba(20, 184, 166, .07), transparent 36%), linear-gradient(180deg, #f2fbf5 0%, #f8fffb 100%);
}

.saas-white-section {
    background: #fff;
}

.saas-bg-orb {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(90px);
    opacity: .72;
}

.saas-bg-orb-one {
    width: 440px;
    height: 440px;
    right: -130px;
    top: 80px;
    background: rgba(34, 197, 94, .20);
}

.saas-bg-orb-two {
    width: 360px;
    height: 360px;
    left: -120px;
    bottom: 40px;
    background: rgba(20, 184, 166, .16);
}

.saas-hero-card,
.saas-carousel-card {
    border: 1px solid var(--saas-border) !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .84)), radial-gradient(circle at top right, rgba(34, 197, 94, .14), transparent 38%) !important;
    box-shadow: var(--saas-shadow) !important;
    backdrop-filter: blur(18px);
}

.saas-soft-card {
    background: rgba(255, 255, 255, .78) !important;
    border-color: var(--saas-border) !important;
}

.saas-carousel-img {
    height: min(72vh, 720px);
    min-height: 420px;
    object-fit: cover;
}

.saas-carousel-caption {
    left: 7%;
    right: auto;
    bottom: 42px;
    width: min(520px, 86%);
    padding: 22px 24px;
    border-radius: 28px;
    text-align: left;
    background: rgba(15, 23, 42, .50);
    backdrop-filter: blur(18px);
}

.saas-final-cta {
    position: relative;
    overflow: hidden;
    color: var(--saas-navy) !important;
    background: radial-gradient(circle at 12% 18%, rgba(34, 197, 94, .10), transparent 34%), radial-gradient(circle at 82% 22%, rgba(20, 184, 166, .08), transparent 34%), linear-gradient(135deg, #f2fbf5 0%, #f8fffb 56%, #ffffff 100%) !important;
    border: 1px solid var(--saas-border);
}

    .saas-final-cta h2,
    .saas-final-cta p,
    .saas-final-cta .small {
        color: inherit !important;
    }

    .saas-final-cta p,
    .saas-final-cta .small {
        opacity: .76 !important;
    }

.saas-cta-orb {
    position: absolute;
    width: 360px;
    height: 360px;
    right: -120px;
    top: -150px;
    border-radius: 999px;
    background: rgba(34, 197, 94, .18);
    filter: blur(76px);
    opacity: .78;
    pointer-events: none;
}

.saas-final-cta .btn-outline-primary {
    color: var(--saas-blue);
    border-color: rgba(37, 99, 235, .28);
    background: rgba(255, 255, 255, .74);
}

    .saas-final-cta .btn-outline-primary:hover {
        color: var(--saas-blue-dark);
        background: #fff;
    }

@media (max-width: 991.98px) {
    .saas-hero {
        padding-top: 64px !important;
        padding-bottom: 58px !important;
    }

        .saas-hero .display-4 {
            font-size: clamp(2.35rem, 8vw, 3.5rem);
            line-height: 1.12;
            letter-spacing: -.04em;
        }

        .saas-hero .lead {
            font-size: 1.02rem;
            line-height: 1.9;
        }

    .saas-hero-card {
        margin-top: 10px;
        border-radius: 28px !important;
    }

    .saas-carousel-img {
        height: 520px;
        min-height: 520px;
    }

    .saas-carousel-caption {
        bottom: 28px;
        width: min(500px, 88%);
    }
}

@media (max-width: 767.98px) {
    .towa-saas-page .container {
        width: min(100% - 24px, 540px);
    }

    .saas-hero {
        padding-top: 46px !important;
        padding-bottom: 46px !important;
        background: radial-gradient(circle at 18% 12%, rgba(34, 197, 94, .14), transparent 46%), radial-gradient(circle at 92% 28%, rgba(20, 184, 166, .12), transparent 42%), linear-gradient(180deg, #f2fbf5 0%, #f8fffb 62%, #ffffff 100%);
    }

        .saas-hero .display-4 {
            font-size: clamp(2.05rem, 12vw, 2.85rem);
            line-height: 1.12;
            letter-spacing: -.045em;
            word-break: keep-all;
        }

        .saas-hero .lead,
        .towa-saas-page .text-secondary {
            line-height: 1.85;
        }

        .saas-hero .badge {
            padding: .72rem .9rem !important;
            font-size: .82rem;
        }

        .saas-hero .btn,
        .saas-final-cta .btn {
            width: 100%;
            justify-content: center;
        }

    .saas-hero-card {
        border-radius: 24px !important;
    }

        .saas-hero-card .card-body {
            padding: 22px !important;
        }

    .saas-soft-section,
    .towa-saas-page section.py-5 {
        padding-top: 54px !important;
        padding-bottom: 54px !important;
    }

    .saas-carousel-card {
        border-radius: 24px !important;
    }

    .saas-carousel-img {
        height: 390px;
        min-height: 390px;
    }

    .saas-carousel-caption {
        display: block !important;
        left: 16px;
        right: 16px;
        bottom: 18px;
        width: auto;
        padding: 16px 18px;
        border-radius: 20px;
        background: rgba(15, 23, 42, .58);
    }

        .saas-carousel-caption h2 {
            font-size: 1.25rem;
            margin-bottom: 6px !important;
        }

        .saas-carousel-caption p {
            font-size: .88rem;
            line-height: 1.65;
        }

    .carousel-indicators {
        margin-bottom: .45rem;
    }

    .carousel-control-prev,
    .carousel-control-next {
        width: 12%;
    }

    .towa-saas-page h2.fw-bold {
        font-size: clamp(1.65rem, 7vw, 2.15rem);
        line-height: 1.25;
        letter-spacing: -.03em;
    }

    .towa-saas-page .card-body {
        padding: 22px !important;
    }

    .towa-saas-page .rounded-5 {
        border-radius: 26px !important;
    }

    .towa-saas-page .rounded-4 {
        border-radius: 20px !important;
    }

    .saas-final-cta {
        padding: 28px 22px !important;
        text-align: left !important;
    }

        .saas-final-cta h2 {
            font-size: clamp(1.65rem, 7vw, 2.15rem);
            line-height: 1.28;
        }

    .saas-cta-orb {
        display: block !important;
        width: 240px;
        height: 240px;
        right: -110px;
        top: -95px;
        filter: blur(62px);
        opacity: .64;
    }
}

@media (max-width: 575.98px) {
    .saas-hero .display-4 {
        font-size: clamp(1.9rem, 11vw, 2.45rem);
    }

    .saas-hero .d-inline-flex.rounded-pill {
        max-width: 100%;
        white-space: normal;
        line-height: 1.5;
    }

    .saas-hero .d-flex.flex-wrap.gap-2 {
        gap: 8px !important;
    }

    .saas-hero .badge {
        flex: 1 1 calc(50% - 8px);
        text-align: center;
        justify-content: center;
    }

    .saas-carousel-img {
        height: 330px;
        min-height: 330px;
    }

    .saas-carousel-caption {
        padding: 14px 15px;
    }

        .saas-carousel-caption .badge {
            font-size: .72rem;
            padding: .45rem .7rem !important;
        }

        .saas-carousel-caption h2 {
            font-size: 1.12rem;
        }

        .saas-carousel-caption p {
            font-size: .8rem;
            line-height: 1.55;
        }

    .carousel-control-prev-icon,
    .carousel-control-next-icon {
        width: 1.45rem;
        height: 1.45rem;
    }

    .towa-saas-page .row.g-4 {
        --bs-gutter-y: 1rem;
    }
}
.towa-saas-page .rs-hero-title {
    font-size: clamp(2.8rem, 5.6vw, 5.1rem);
    line-height: 1.12;
    letter-spacing: -0.045em;
    font-weight: 900;
    color: #111827;
    margin-bottom: 1.5rem;
}

@media (max-width: 991.98px) {
    .towa-saas-page .rs-hero-title {
        font-size: clamp(2.4rem, 8vw, 4rem);
        line-height: 1.14;
    }
}

@media (max-width: 575.98px) {
    .towa-saas-page .rs-hero-title {
        font-size: clamp(2rem, 10vw, 3rem);
        line-height: 1.16;
        letter-spacing: -0.035em;
    }
}

/* =========================================================
   TOWA Repeat AI SaaS page styles
========================================================= */

/* =========================================================
   TOWA Repeat AI Home
   Optimized single-page stylesheet
========================================================= */

/* 3D background canvas */
#container {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    opacity: .54;
    mix-blend-mode: multiply;
    overflow: hidden !important;
}

#container canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    pointer-events: none !important;
}

main,
.site-footer {
    position: relative;
    z-index: 10;
}

.towa-home {
    position: relative;
    z-index: 10;
    color: var(--towa-ink);
    background: transparent;
}

.towa-home > section > .container,
.towa-final-cta .container {
    position: relative;
    z-index: 20;
}

/* =========================================================
   Shared UI
========================================================= */
.towa-eyebrow,
.towa-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 900;
    letter-spacing: .04em;
}

.towa-eyebrow {
    padding: 12px 20px;
    color: #fff;
    background: linear-gradient(135deg, var(--towa-blue), var(--towa-teal));
    border-radius: 999px;
    box-shadow: 0 18px 40px rgba(37, 99, 235, .22);
}

.towa-section-kicker {
    color: #0f766e;
    font-size: .9rem;
}

.towa-section {
    padding: 86px 0;
    background-color: transparent;
}

.towa-section-heading {
    max-width: 780px;
    margin: 0 auto 46px;
}

.towa-section-heading h2 {
    margin: 12px 0 14px;
    font-size: clamp(2rem, 3.2vw, 3.25rem);
    line-height: 1.22;
    font-weight: 900;
    letter-spacing: -.04em;
}

.towa-section-heading p {
    color: var(--towa-muted);
    line-height: 1.9;
    font-size: 1.04rem;
}

.towa-btn-primary,
.towa-btn-outline {
    border-radius: 999px;
    padding: 14px 24px;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.towa-btn-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--towa-blue), var(--towa-teal));
    border: 0;
    box-shadow: 0 18px 36px rgba(37, 99, 235, .24);
}

.towa-btn-primary:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 22px 44px rgba(37, 99, 235, .30);
}

.towa-btn-outline {
    color: #1d4ed8;
    border: 1px solid rgba(37, 99, 235, .28);
    background: rgba(255, 255, 255, .72);
    backdrop-filter: blur(14px);
}

.towa-btn-outline:hover {
    color: #1d4ed8;
    background: #eff6ff;
}

/* =========================================================
   Hero
========================================================= */
.towa-hero {
    min-height: calc(100vh - 88px);
    display: flex;
    align-items: center;
    padding: 88px 0 64px;
    isolation: isolate;
}

.towa-hero::before,
.towa-hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(4px);
    z-index: -1;
}

.towa-hero::before {
    width: 440px;
    height: 440px;
    right: 6%;
    top: 14%;
    background: radial-gradient(circle, rgba(37, 99, 235, .18), transparent 64%);
}

.towa-hero::after {
    width: 320px;
    height: 320px;
    left: 2%;
    bottom: 10%;
    background: radial-gradient(circle, rgba(20, 184, 166, .15), transparent 66%);
}

.towa-hero-copy--center {
    max-width: 1320px;
    margin: 0 auto;
    text-align: center;
}

.towa-hero-title {
    display: grid;
    gap: .34em;
    margin: 32px auto 26px;
    font-size: clamp(2.45rem, 4.6vw, 5.35rem);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -.075em;
    text-align: center;
}

.towa-hero-title-line {
    display: block;
}

.towa-hero-title-line--sub {
    font-size: .74em;
    letter-spacing: -.055em;
}

.towa-hero-lead {
    max-width: 1000px;
    margin: 0 auto;
    color: #5b6472;
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    line-height: 2.05;
}

.towa-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 34px;
}

.towa-trust-row {
    display: grid;
    grid-template-columns: repeat(7, minmax(118px, 1fr));
    gap: 16px;
    max-width: 1180px;
    margin: 34px auto 0;
}

.towa-trust-item {
    min-height: 86px;
    padding: 14px 18px;
    border: 1px solid var(--towa-border);
    border-radius: 20px;
    background: rgba(255, 255, 255, .74);
    box-shadow: 0 18px 46px rgba(15, 23, 42, .06);
    backdrop-filter: blur(14px);
}

.towa-trust-item--wide {
    grid-column: span 2;
}

.towa-trust-item strong {
    display: block;
    color: var(--towa-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.towa-trust-item span {
    display: block;
    margin-top: 5px;
    color: var(--towa-muted);
    font-size: .88rem;
    line-height: 1.55;
}

/* =========================================================
   Video + ChatAI overlay
========================================================= */
.towa-repeat-purchase-section {
    padding: 36px 0 46px !important;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(239,246,255,.55) 52%, rgba(255,255,255,0));
}

.towa-repeat-purchase-section > .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: clamp(16px, 3.2vw, 56px) !important;
    padding-right: clamp(16px, 3.2vw, 56px) !important;
}

.support-video-composite {
    position: relative;
    width: 100%;
    min-height: clamp(560px, 48vw, 760px);
    overflow: hidden;
    border-radius: 2rem;
    background: #111827;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .14);
    isolation: isolate;
}

.support-video-composite > .home-hero-video {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center center;
    filter: brightness(1.06) contrast(1.05) saturate(1.06);
}

.towa-repeat-video-composite::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(15,23,42,.14) 0%, rgba(15,23,42,.03) 44%, rgba(255,255,255,.10) 100%);
}

.support-card-dock {
    position: absolute !important;
    top: clamp(24px, 3.6vw, 54px) !important;
    right: clamp(24px, 3.6vw, 58px) !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 4;
    width: min(520px, 38vw) !important;
    min-width: 430px !important;
    max-width: 560px !important;
    height: auto !important;
    display: block !important;
    padding: 0 !important;
}

.support-glass-card,
.support-card-dock .support-glass-card {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.support-glass-card .card-body {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    padding: 0 !important;
}

/* =========================================================
   Dynamic ChatAI component
========================================================= */
.towa-ai-chat,
.towa-ai-chat * {
    box-sizing: border-box;
}

.towa-ai-chat {
    --chat-blue: #2563eb;
    --chat-purple: #7c3aed;
    --chat-green: #10b981;
    --chat-ink: #0f172a;
    --chat-text: #334155;
    --chat-muted: #64748b;
    position: relative;
    width: 100%;
    color: var(--chat-ink);
    font-family: 'Segoe UI', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
}

.home-hero-ai-chat,
.home-hero-ai-chat .towa-ai-chat,
.home-hero-ai-chat .towa-ai-chat[data-ai-chat] {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    z-index: 30 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
}

.home-hero-ai-chat .towa-ai-chat__launcher,
.home-hero-ai-chat .towa-ai-chat__close {
    display: none !important;
}

.towa-ai-chat__panel,
.towa-ai-chat__panel[hidden] {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex-direction: column;
    gap: 16px;
    width: 100% !important;
    min-height: 430px !important;
    padding: 24px !important;
    padding-top: 26px !important;
    border-radius: 32px !important;
    border: 1px solid rgba(255, 255, 255, .58) !important;
    background:
        radial-gradient(circle at 95% 0%, rgba(79, 70, 229, .26), transparent 34%),
        radial-gradient(circle at 0% 100%, rgba(20, 184, 166, .22), transparent 36%),
        linear-gradient(145deg, rgba(255, 255, 255, .74), rgba(239, 246, 255, .54)) !important;
    box-shadow: 0 26px 66px rgba(15, 23, 42, .22) !important;
    backdrop-filter: blur(18px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.18) !important;
    isolation: isolate;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
}

.towa-ai-chat__aurora {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

.towa-ai-chat__assistant-portrait {
    position: absolute;
    top: -34px !important;
    right: -18px !important;
    z-index: 5;
    width: 74px !important;
    height: 74px !important;
    border-radius: 999px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.96);
    border: 7px solid rgba(255,255,255,.88) !important;
    box-shadow: 0 24px 58px rgba(15,23,42,.18);
}

.towa-ai-chat__assistant-portrait img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: inherit;
}

.towa-ai-chat__assistant-portrait::after,
.towa-chat-avatar::after {
    content: none !important;
    display: none !important;
}

.towa-ai-chat__header {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 46px;
}

.towa-ai-chat__avatar {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    color: #fff;
    background: linear-gradient(135deg, var(--chat-blue), var(--chat-purple));
    box-shadow: 0 16px 34px rgba(37,99,235,.28);
}

.towa-ai-chat__title {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.towa-ai-chat__title span {
    color: var(--chat-blue);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.towa-ai-chat__title strong {
    color: var(--chat-ink);
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 900;
}

.towa-ai-chat__status {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    max-width: 100%;
    padding: 10px 15px;
    border-radius: 999px;
    color: #0f766e;
    background: rgba(204,251,241,.68) !important;
    border: 1px solid rgba(45,212,191,.42);
    font-size: .82rem;
    line-height: 1.4;
    font-weight: 900;
    backdrop-filter: blur(8px);
}

.towa-ai-chat__pulse {
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--chat-green);
    box-shadow: 0 0 0 6px rgba(16,185,129,.14);
}

.towa-ai-chat__messages {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 150px !important;
    max-height: 210px !important;
    overflow-y: auto;
    padding: 2px 2px 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(148,163,184,.7) transparent;
}

.towa-ai-chat__message {
    display: flex;
    max-width: 100%;
}

.towa-ai-chat__message.is-bot {
    justify-content: flex-start;
}

.towa-ai-chat__message.is-user,
.towa-ai-chat__message.user,
.towa-ai-chat__message.is-user-message {
    justify-content: flex-end;
}

.towa-ai-chat__bubble {
    max-width: 94%;
    padding: 15px 17px;
    border-radius: 22px;
    color: #475569;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(226,232,240,.86);
    box-shadow: 0 14px 34px rgba(15,23,42,.07);
    line-height: 1.75;
    font-size: .9rem;
    font-weight: 700;
    word-break: break-word;
    backdrop-filter: blur(8px);
}

.towa-ai-chat__message.is-bot .towa-ai-chat__bubble {
    border-bottom-left-radius: 8px;
}

.towa-ai-chat__message.is-user .towa-ai-chat__bubble,
.towa-ai-chat__message.user .towa-ai-chat__bubble,
.towa-ai-chat__message.is-user-message .towa-ai-chat__bubble {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--chat-blue), var(--chat-purple)) !important;
}

.towa-ai-chat__chips {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.towa-ai-chat__chips button {
    appearance: none;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid rgba(147,197,253,.72);
    color: #1e3a8a;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.05);
    font-size: .78rem;
    font-weight: 900;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: transform .2s ease, box-shadow .2s ease;
}

.towa-ai-chat__chips button:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(37,99,235,.12);
}

.towa-ai-chat__form {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    gap: 10px;
    min-height: 100px !important;
    margin-top: auto;
    padding: 12px 12px 12px 18px;
    border-radius: 26px;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(203,213,225,.86);
    box-shadow: 0 16px 38px rgba(15,23,42,.06);
    backdrop-filter: blur(8px);
}

.towa-ai-chat__form textarea {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 72px;
    max-height: 150px;
    padding: 6px 0;
    border: 0;
    outline: 0;
    resize: vertical;
    overflow-y: auto;
    color: var(--chat-text);
    background: transparent;
    font: inherit;
    font-size: .94rem;
    font-weight: 700;
    line-height: 1.55;
}

.towa-ai-chat__form textarea::placeholder {
    color: #94a3b8;
}

.towa-ai-chat__form button[type="submit"] {
    appearance: none;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--chat-blue), var(--chat-purple));
    box-shadow: 0 14px 30px rgba(37,99,235,.24);
    cursor: pointer;
}

.towa-ai-chat__footer {
    display: none !important;
}

/* =========================================================
   Cards / Sections
========================================================= */
.towa-problem-card,
.towa-feature-card,
.towa-plan-card {
    height: 100%;
    border: 1px solid rgba(226,232,240,.92);
    border-radius: 28px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 20px 54px rgba(15,23,42,.06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.towa-problem-card:hover,
.towa-feature-card:hover,
.towa-plan-card:hover {
    transform: translateY(-6px);
    border-color: rgba(37,99,235,.28);
    box-shadow: 0 28px 70px rgba(15,23,42,.10);
}

.towa-problem-card {
    padding: 28px;
}

.towa-problem-card i {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--towa-blue);
    background: #eff6ff;
    font-size: 1.35rem;
    margin-bottom: 22px;
}

.towa-problem-card h3,
.towa-feature-card h3,
.towa-plan-card h3 {
    font-size: 1.22rem;
    font-weight: 900;
    margin-bottom: 12px;
}

.towa-problem-card p,
.towa-feature-card p,
.towa-plan-card p {
    margin: 0;
    color: var(--towa-muted);
    line-height: 1.8;
}

.towa-solution-section {
    background: linear-gradient(180deg, rgba(248,250,252,.72), rgba(239,246,255,.76));
}

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

.towa-feature-card,
.towa-plan-card {
    padding: 28px;
}

.towa-feature-num,
.towa-plan-label {
    color: var(--towa-blue);
    font-weight: 900;
    letter-spacing: .08em;
}

.towa-feature-num {
    margin-bottom: 18px;
}

.towa-plan-card.recommended {
    border-color: rgba(37,99,235,.46);
    background: linear-gradient(180deg, rgba(239,246,255,.96), rgba(255,255,255,.96));
}

.towa-plan-label {
    display: inline-flex;
    padding: 7px 11px;
    border-radius: 999px;
    background: #dbeafe;
    font-size: .78rem;
    margin-bottom: 18px;
}

.towa-plan-card ul {
    display: grid;
    gap: 10px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.towa-plan-card li {
    display: flex;
    gap: 10px;
    align-items: center;
    color: #334155;
    font-weight: 700;
}

.towa-plan-card li::before {
    content: "✓";
    display: grid;
    place-items: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    color: #0f766e;
    background: #ccfbf1;
    font-size: .82rem;
    font-weight: 900;
}

.towa-industries {
    background: #f8fafc;
}

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

.towa-industry-list div {
    padding: 20px 22px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(226,232,240,.9);
    box-shadow: 0 16px 44px rgba(15,23,42,.05);
    font-weight: 800;
    color: #334155;
}

.towa-industry-list i {
    color: var(--towa-blue);
    margin-right: 10px;
}

.towa-final-cta {
    padding: 72px 0 96px;
}

.towa-final-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 42px;
    border-radius: 34px;
    color: #fff !important;
    background: radial-gradient(circle at 90% 10%, rgba(45,212,191,.36), transparent 30%), linear-gradient(135deg, #1d4ed8, #0f172a);
    box-shadow: 0 30px 80px rgba(30,64,175,.24);
}

.towa-final-cta-inner .towa-section-kicker,
.towa-final-cta-inner h2,
.towa-final-cta-inner p {
    color: #fff !important;
}

.towa-final-cta-inner h2 {
    margin: 12px 0;
    font-weight: 900;
    letter-spacing: -.04em;
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.towa-final-cta-inner p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.86) !important;
    line-height: 1.85;
}

/* =========================================================
   Fly-in card animation restore
========================================================= */
.strength-fly-section {
    position: relative;
    overflow: hidden;
}

@supports (overflow: clip) {
    .strength-fly-section {
        overflow: clip;
    }
}

.strength-fly-section .strength-fly-item:nth-child(4n+1) { --fly-x: -42vw; --fly-y: -16vh; --fly-rotate: -12deg; --fly-delay: 0ms; }
.strength-fly-section .strength-fly-item:nth-child(4n+2) { --fly-x: 36vw; --fly-y: -20vh; --fly-rotate: 10deg; --fly-delay: 100ms; }
.strength-fly-section .strength-fly-item:nth-child(4n+3) { --fly-x: -34vw; --fly-y: 22vh; --fly-rotate: 8deg; --fly-delay: 200ms; }
.strength-fly-section .strength-fly-item:nth-child(4n+4) { --fly-x: 42vw; --fly-y: 18vh; --fly-rotate: -10deg; --fly-delay: 300ms; }

html.home-js .strength-fly-section .strength-fly-item {
    opacity: 0;
    transform: translate3d(var(--fly-x, 0), var(--fly-y, 0), 0) rotate(var(--fly-rotate, 0deg)) scale(.86);
    filter: blur(12px);
    will-change: transform, opacity, filter;
    animation: strengthFlyIn 1.25s cubic-bezier(.16, 1, .3, 1) forwards;
    animation-delay: var(--fly-delay, 0ms);
}

html.home-js .strength-fly-section.fly-ready .strength-fly-item {
    transition: opacity 1.05s ease, filter 1.05s ease, transform 1.55s cubic-bezier(.16, 1, .3, 1);
    transition-delay: var(--fly-delay, 0ms);
}

html.home-js .strength-fly-section.fly-landed .strength-fly-item,
html.home-js .strength-fly-section.fly-complete .strength-fly-item {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
    filter: blur(0);
    animation: none;
    will-change: auto;
}

html:not(.home-js) .strength-fly-section .strength-fly-item {
    opacity: 1;
    transform: none;
    filter: none;
}

@keyframes strengthFlyIn {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
        filter: blur(0);
    }
}

/* Reveal fallback */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .8s ease, transform .8s ease;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* =========================================================
   Responsive
========================================================= */
@media (max-width: 1399.98px) {
    .towa-hero-title { font-size: clamp(2.2rem, 4vw, 4.3rem); }
    .support-card-dock { width: min(500px, 44vw) !important; min-width: 400px !important; right: 28px !important; top: 28px !important; }
}

@media (max-width: 1199.98px) {
    .towa-trust-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .towa-trust-item--wide { grid-column: span 1; }
    .towa-hero-title { font-size: clamp(2.2rem, 5vw, 4rem); }
}

@media (max-width: 991.98px) {
    .towa-hero { padding: 64px 0 56px; }
    .towa-feature-grid,
    .towa-industry-list { grid-template-columns: 1fr; }
    .support-video-composite { min-height: 560px !important; }
    .support-card-dock { top: 24px !important; right: 24px !important; width: min(460px, calc(100% - 48px)) !important; min-width: 0 !important; max-width: none !important; }
    .towa-final-cta-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767.98px) {
    .towa-trust-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .towa-hero-actions .btn { width: 100%; }
}

@media (max-width: 575.98px) {
    #container { opacity: .46; }
    .towa-hero-title { font-size: 2.25rem; letter-spacing: -.055em; }
    .towa-hero-title-line--sub { font-size: .78em; }
    .towa-trust-row { grid-template-columns: 1fr; }
    .towa-repeat-purchase-section > .container { padding-left: 12px !important; padding-right: 12px !important; }
    .support-video-composite { min-height: 680px !important; border-radius: 1.5rem; }
    .support-card-dock { top: 18px !important; right: 18px !important; left: 18px !important; width: auto !important; }
    .towa-ai-chat__panel { min-height: auto !important; padding: 22px !important; border-radius: 26px !important; }
    .towa-ai-chat__assistant-portrait { top: -28px !important; right: -8px !important; width: 64px !important; height: 64px !important; }
    .towa-ai-chat__messages { min-height: 130px !important; max-height: 180px !important; }
    .towa-ai-chat__form { min-height: 92px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll,
    html.home-js .strength-fly-section .strength-fly-item,
    html.home-js .strength-fly-section.fly-ready .strength-fly-item,
    html.home-js .strength-fly-section.fly-landed .strength-fly-item {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
        animation: none !important;
    }
}

/* =========================================================
   Final refinements: larger assistant portrait + reliable fly-in
========================================================= */
.towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
    width: 148px !important;
    height: 148px !important;
    top: -68px !important;
    right: -30px !important;
    border-width: 10px !important;
    box-shadow: 0 30px 70px rgba(15, 23, 42, .22) !important;
}

.towa-repeat-ai-chat .towa-ai-chat__header,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__header {
    padding-right: 118px !important;
}

html.towa-fly-js .strength-fly-section .strength-fly-item {
    opacity: 0 !important;
    transform: translate3d(var(--fly-x, 0), var(--fly-y, 0), 0) rotate(var(--fly-rotate, 0deg)) scale(.86) !important;
    filter: blur(12px) !important;
    transition: opacity 1.05s ease, filter 1.05s ease, transform 1.55s cubic-bezier(.16, 1, .3, 1) !important;
    transition-delay: var(--fly-delay, 0ms) !important;
    will-change: transform, opacity, filter;
}

html.towa-fly-js .strength-fly-section.fly-landed .strength-fly-item,
html.towa-fly-js .strength-fly-section.fly-complete .strength-fly-item {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
    filter: blur(0) !important;
}

html.towa-fly-js .strength-fly-section.fly-complete .strength-fly-item {
    will-change: auto;
}

@supports (animation-timeline: view()) {
    html:not(.towa-fly-js) .strength-fly-section .strength-fly-item {
        animation: strengthFlyIn 1.25s cubic-bezier(.16, 1, .3, 1) both;
        animation-timeline: view();
        animation-range: entry 0% cover 34%;
    }
}

@media (max-width: 575.98px) {
    .towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
    .towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
        width: 96px !important;
        height: 96px !important;
        top: -42px !important;
        right: -10px !important;
        border-width: 8px !important;
    }

    .towa-repeat-ai-chat .towa-ai-chat__header,
    .towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__header {
        padding-right: 72px !important;
    }
}

/* =========================================================
   Final tweak: avatar without white ring + true multi-direction fly-in
========================================================= */
.towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
    width: 148px !important;
    height: 148px !important;
    top: -96px !important;
    right: -76px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.towa-repeat-ai-chat .towa-ai-chat__assistant-portrait img,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    filter: drop-shadow(0 22px 34px rgba(15, 23, 42, .22));
}

.towa-repeat-ai-chat .towa-ai-chat__header,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__header {
    padding-right: 72px !important;
}

/* Explicit directions beat nth-child so nested cards do not all fly from the same side. */
.strength-fly-section .strength-fly-item.fly-from-left-top { --fly-x: -48vw; --fly-y: -22vh; --fly-rotate: -12deg; --fly-delay: 0ms; }
.strength-fly-section .strength-fly-item.fly-from-top { --fly-x: 0; --fly-y: -30vh; --fly-rotate: 4deg; --fly-delay: 90ms; }
.strength-fly-section .strength-fly-item.fly-from-right-top { --fly-x: 48vw; --fly-y: -22vh; --fly-rotate: 12deg; --fly-delay: 180ms; }
.strength-fly-section .strength-fly-item.fly-from-left-bottom { --fly-x: -48vw; --fly-y: 24vh; --fly-rotate: 10deg; --fly-delay: 60ms; }
.strength-fly-section .strength-fly-item.fly-from-bottom { --fly-x: 0; --fly-y: 32vh; --fly-rotate: -4deg; --fly-delay: 150ms; }
.strength-fly-section .strength-fly-item.fly-from-right-bottom { --fly-x: 48vw; --fly-y: 24vh; --fly-rotate: -10deg; --fly-delay: 240ms; }

html.towa-fly-js .strength-fly-section.fly-ready .strength-fly-item {
    opacity: 0 !important;
    transform: translate3d(var(--fly-x, 0), var(--fly-y, 0), 0) rotate(var(--fly-rotate, 0deg)) scale(.84) !important;
    filter: blur(12px) !important;
    transition: opacity 1.05s ease, filter 1.05s ease, transform 1.55s cubic-bezier(.16, 1, .3, 1) !important;
    transition-delay: var(--fly-delay, 0ms) !important;
}

html.towa-fly-js .strength-fly-section.fly-ready.fly-landed .strength-fly-item,
html.towa-fly-js .strength-fly-section.fly-ready.fly-complete .strength-fly-item {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1) !important;
    filter: blur(0) !important;
}

@media (max-width: 575.98px) {
    .towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
    .towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
        width: 96px !important;
        height: 96px !important;
        top: -54px !important;
        right: -18px !important;
    }

    .towa-repeat-ai-chat .towa-ai-chat__header,
    .towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__header {
        padding-right: 54px !important;
    }
}

/* =========================================================
   Visual polish: protruding avatar, restored pale background,
   and prettier solution cards
========================================================= */
.towa-home {
    background:
        radial-gradient(circle at 86% 18%, rgba(37, 99, 235, .16), transparent 30%),
        radial-gradient(circle at 10% 28%, rgba(20, 184, 166, .10), transparent 28%),
        radial-gradient(circle at 52% 72%, rgba(147, 197, 253, .16), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f8fcff 34%, #eef8ff 68%, #ffffff 100%) !important;
}

.towa-hero {
    background:
        radial-gradient(circle at 78% 38%, rgba(37, 99, 235, .18), transparent 30%),
        radial-gradient(circle at 14% 82%, rgba(45, 212, 191, .14), transparent 28%),
        linear-gradient(120deg, rgba(255,255,255,.96), rgba(241,248,255,.84)) !important;
}

.towa-repeat-purchase-section {
    background:
        radial-gradient(circle at 90% 8%, rgba(59, 130, 246, .16), transparent 28%),
        radial-gradient(circle at 8% 88%, rgba(20, 184, 166, .12), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,.42), rgba(239,246,255,.70) 48%, rgba(255,255,255,.54)) !important;
}

/* Let the assistant portrait float outside the ChatAI card without being clipped. */
.towa-repeat-purchase-section .support-video-composite,
.towa-repeat-purchase-section .towa-repeat-video-composite {
    overflow: visible !important;
}

.towa-repeat-purchase-section .support-video-composite > .home-hero-video,
.towa-repeat-purchase-section .towa-repeat-video-composite > .home-hero-video,
.towa-repeat-video-composite::before {
    border-radius: inherit !important;
    clip-path: inset(0 round 2rem) !important;
}

.towa-repeat-purchase-section .support-card-dock,
.towa-repeat-purchase-section .support-glass-card,
.towa-repeat-purchase-section .support-glass-card .card-body,
.towa-repeat-ai-chat.home-hero-ai-chat,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__panel {
    overflow: visible !important;
}

.towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
    width: 150px !important;
    height: 150px !important;
    top: -86px !important;
    right: -92px !important;
    z-index: 20 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    pointer-events: none;
}

.towa-repeat-ai-chat .towa-ai-chat__assistant-portrait img,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    border-radius: 0 !important;
    filter: drop-shadow(0 22px 34px rgba(15, 23, 42, .28)) !important;
}

/* Give the solution area a cleaner SaaS-like gradient and richer cards. */
.towa-solution-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 18%, rgba(20, 184, 166, .18), transparent 30%),
        radial-gradient(circle at 86% 22%, rgba(37, 99, 235, .18), transparent 34%),
        radial-gradient(circle at 56% 92%, rgba(124, 58, 237, .10), transparent 32%),
        linear-gradient(135deg, #f8fbff 0%, #eef7ff 48%, #f7fbff 100%) !important;
}

.towa-solution-section::before,
.towa-solution-section::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(4px);
}

.towa-solution-section::before {
    width: 360px;
    height: 360px;
    right: -110px;
    top: -130px;
    background: rgba(37, 99, 235, .10);
}

.towa-solution-section::after {
    width: 280px;
    height: 280px;
    left: -90px;
    bottom: -100px;
    background: rgba(20, 184, 166, .10);
}

.towa-solution-section .container {
    position: relative;
    z-index: 2;
}

.towa-solution-section .towa-feature-card {
    border: 1px solid rgba(147, 197, 253, .42) !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, .10), transparent 35%),
        linear-gradient(145deg, rgba(255,255,255,.94), rgba(239,246,255,.82)) !important;
    box-shadow: 0 24px 64px rgba(15, 23, 42, .08) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.towa-solution-section .towa-feature-card:nth-child(2) {
    background:
        radial-gradient(circle at 100% 0%, rgba(20, 184, 166, .12), transparent 36%),
        linear-gradient(145deg, rgba(255,255,255,.95), rgba(236,253,245,.74)) !important;
}

.towa-solution-section .towa-feature-card:nth-child(3) {
    background:
        radial-gradient(circle at 100% 0%, rgba(124, 58, 237, .11), transparent 36%),
        linear-gradient(145deg, rgba(255,255,255,.95), rgba(245,243,255,.74)) !important;
}

.towa-solution-section .towa-feature-card:nth-child(4) {
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, .12), transparent 36%),
        linear-gradient(145deg, rgba(255,255,255,.95), rgba(240,249,255,.78)) !important;
}

.towa-solution-section .towa-feature-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 32px;
    border-radius: 999px;
    color: #1d4ed8 !important;
    background: rgba(219, 234, 254, .90);
    margin-bottom: 18px;
}

@media (max-width: 575.98px) {
    .towa-repeat-ai-chat .towa-ai-chat__assistant-portrait,
    .towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__assistant-portrait {
        width: 102px !important;
        height: 102px !important;
        top: -58px !important;
        right: -26px !important;
    }

    .towa-repeat-purchase-section .support-video-composite > .home-hero-video,
    .towa-repeat-purchase-section .towa-repeat-video-composite > .home-hero-video,
    .towa-repeat-video-composite::before {
        clip-path: inset(0 round 1.5rem) !important;
    }
}

/* =========================================================
   Chat behavior polish: overlay textarea + floating widget
   - Enter sends the message; Shift+Enter keeps a newline (handled in Index.cshtml)
   - Floating chat icon appears after scroll and opens as a small fixed panel
========================================================= */
.towa-repeat-ai-chat .towa-ai-chat__form,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__form {
    align-items: flex-end !important;
    min-height: 104px !important;
    padding: 14px 14px 14px 20px !important;
    border-radius: 28px !important;
}

.towa-repeat-ai-chat .towa-ai-chat__form textarea,
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__form textarea {
    min-height: 68px !important;
    max-height: 140px !important;
    line-height: 1.7 !important;
    white-space: pre-wrap;
}

.towa-repeat-ai-chat .towa-ai-chat__form button[type="submit"],
.towa-repeat-ai-chat.home-hero-ai-chat .towa-ai-chat__form button[type="submit"] {
    margin-bottom: 0 !important;
}

.home-floating-ai-chat {
    position: fixed !important;
    right: 28px !important;
    bottom: 28px !important;
    z-index: 1080 !important;
    width: auto !important;
    height: auto !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(0, 22px, 0) scale(.98);
    transition: opacity .55s ease, transform .55s ease, visibility .55s ease;
}

.home-floating-ai-chat.is-home-scroll-visible,
.home-floating-ai-chat.is-home-chat-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0, 0, 0) scale(1);
}

.home-floating-ai-chat .towa-ai-chat,
.home-floating-ai-chat .towa-ai-chat[data-ai-chat] {
    position: relative !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
}

.home-floating-ai-chat .towa-ai-chat__launcher {
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 64px;
    padding: 12px 18px 12px 12px;
    border: 0;
    border-radius: 999px;
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    box-shadow: 0 24px 58px rgba(37, 99, 235, .30);
    cursor: pointer;
    overflow: hidden;
}

.home-floating-ai-chat .towa-ai-chat__launcher-glow {
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.40), transparent 36%);
    pointer-events: none;
}

.home-floating-ai-chat .towa-ai-chat__launcher-icon {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
}

.home-floating-ai-chat .towa-ai-chat__launcher-text {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.25;
    white-space: nowrap;
}

.home-floating-ai-chat .towa-ai-chat__launcher-text strong {
    font-size: .92rem;
    font-weight: 900;
}

.home-floating-ai-chat .towa-ai-chat__launcher-text small {
    opacity: .82;
    font-weight: 700;
}

.home-floating-ai-chat .towa-ai-chat__panel,
.home-floating-ai-chat .towa-ai-chat__panel[hidden] {
    position: absolute !important;
    right: 0 !important;
    bottom: 78px !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-height: min(680px, calc(100vh - 120px)) !important;
    min-height: 0 !important;
    padding: 24px !important;
    border-radius: 30px !important;
    display: none !important;
    overflow: visible !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__panel:not([hidden]) {
    display: flex !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__launcher {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.home-floating-ai-chat .towa-ai-chat__assistant-portrait {
    width: 76px !important;
    height: 76px !important;
    top: -34px !important;
    right: -14px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.home-floating-ai-chat .towa-ai-chat__assistant-portrait img {
    object-fit: contain !important;
    border-radius: 0 !important;
    filter: drop-shadow(0 16px 26px rgba(15, 23, 42, .24));
}

.home-floating-ai-chat .towa-ai-chat__messages {
    min-height: 150px !important;
    max-height: 260px !important;
    overflow-y: auto !important;
}

.home-floating-ai-chat .towa-ai-chat__chips {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
}

.home-floating-ai-chat .towa-ai-chat__chips button {
    flex: 0 0 auto;
    white-space: nowrap;
}

.home-floating-ai-chat .towa-ai-chat__form {
    align-items: flex-end;
    min-height: 86px;
    padding: 12px 12px 12px 18px;
    border-radius: 26px;
}

.home-floating-ai-chat .towa-ai-chat__form textarea {
    min-height: 54px;
    max-height: 120px;
}

@media (max-width: 991.98px) {
    .home-floating-ai-chat {
        display: none !important;
    }
}

/* =========================================================
   2026-05 floating ChatAI final polish
   - Launcher appears only near the bottom of the page (handled in Index.cshtml)
   - Panel opens with a soft fade/scale animation
   - Reduce right/bottom margins
   - Add assistant portrait beside the floating AI launcher
========================================================= */
.home-floating-ai-chat {
    right: 10px !important;
    bottom: 10px !important;
    transform: translate3d(0, 14px, 0) scale(.98) !important;
    transition: opacity .42s ease, transform .42s cubic-bezier(.16, 1, .3, 1), visibility .42s ease !important;
}

.home-floating-ai-chat.is-home-scroll-visible,
.home-floating-ai-chat.is-home-chat-open {
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.home-floating-ai-chat .towa-ai-chat__launcher {
    min-height: 62px !important;
    padding: 10px 76px 10px 12px !important;
    transition: opacity .30s ease, transform .30s ease, visibility .30s ease !important;
}

.home-floating-ai-chat .towa-ai-chat__launcher::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 7px;
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background-image: url('/img/ai/tai-ai-customer-girl-01.png');
    background-size: cover;
    background-position: center;
    filter: drop-shadow(0 12px 18px rgba(15, 23, 42, .22));
    transform: translateY(-50%);
    pointer-events: none;
}

.home-floating-ai-chat .towa-ai-chat__launcher-icon {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
}

.home-floating-ai-chat .towa-ai-chat__panel,
.home-floating-ai-chat .towa-ai-chat__panel[hidden] {
    right: 0 !important;
    bottom: calc(100% + 10px) !important;
    width: min(410px, calc(100vw - 20px)) !important;
    max-height: min(650px, calc(100vh - 96px)) !important;
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, 18px, 0) scale(.96) !important;
    transform-origin: right bottom !important;
    transition:
        opacity .36s ease,
        transform .42s cubic-bezier(.16, 1, .3, 1),
        visibility .36s ease !important;
}

.home-floating-ai-chat .towa-ai-chat__panel:not([hidden]) {
    display: flex !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__panel:not([hidden]) {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__launcher {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, 8px, 0) scale(.96) !important;
}

.home-floating-ai-chat .towa-ai-chat__close {
    transition: background-color .2s ease, transform .2s ease;
}

.home-floating-ai-chat .towa-ai-chat__close:hover {
    transform: rotate(90deg) scale(1.04);
    background: rgba(255, 255, 255, .96) !important;
}

.home-floating-ai-chat .towa-ai-chat__chips {
    scrollbar-width: thin;
}

@media (max-width: 991.98px) {
    .home-floating-ai-chat {
        display: none !important;
    }
}

/* =========================================================
   Floating ChatAI interaction refinement
   - Floating input matches the main in-page ChatAI textarea
   - Remove native textarea resize handle
   - Smooth fade-out when leaving page bottom
   - Re-show reliably when returning to page bottom
========================================================= */
.home-floating-ai-chat {
    right: 8px !important;
    bottom: 8px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, 18px, 0) scale(.97) !important;
    transition:
        opacity .46s ease,
        transform .50s cubic-bezier(.16, 1, .3, 1),
        visibility .46s ease !important;
}

.home-floating-ai-chat.is-home-scroll-visible,
.home-floating-ai-chat.is-home-chat-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.home-floating-ai-chat .towa-ai-chat__panel,
.home-floating-ai-chat .towa-ai-chat__panel[hidden] {
    right: 0 !important;
    bottom: calc(100% + 8px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, 18px, 0) scale(.96) !important;
    transition:
        opacity .38s ease,
        transform .46s cubic-bezier(.16, 1, .3, 1),
        visibility .38s ease !important;
}

.home-floating-ai-chat .towa-ai-chat__panel:not([hidden]) {
    display: flex !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__panel:not([hidden]) {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.home-floating-ai-chat .towa-ai-chat__form {
    align-items: center !important;
    min-height: 96px !important;
    padding: 12px 12px 12px 20px !important;
    border-radius: 28px !important;
}

.home-floating-ai-chat .towa-ai-chat__form textarea,
.home-floating-ai-chat textarea[data-ai-chat-input] {
    display: block !important;
    align-self: stretch !important;
    min-height: 68px !important;
    height: 68px !important;
    max-height: 118px !important;
    padding: 8px 0 !important;
    line-height: 1.7 !important;
    resize: none !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
}

.home-floating-ai-chat .towa-ai-chat__form textarea::-webkit-scrollbar,
.home-floating-ai-chat textarea[data-ai-chat-input]::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
}

.home-floating-ai-chat .towa-ai-chat__form button[type="submit"] {
    align-self: flex-end !important;
    margin-bottom: 0 !important;
}

.home-floating-ai-chat:not(.is-home-chat-open) .towa-ai-chat__launcher {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.home-floating-ai-chat.is-home-chat-open .towa-ai-chat__launcher {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, 8px, 0) scale(.96) !important;
}

/* =========================================================
   SaaS page: Repeat Starter selector module
   Source consolidated from repeat-starter.css.
   Kept only the styles used by the SaaS page selector block.
========================================================= */

.rs-section {
    padding: 72px 0;
}

.rs-soft-section {
    background:
        radial-gradient(circle at 80% 8%, rgba(124, 58, 237, .08), transparent 28%),
        linear-gradient(180deg, rgba(239, 246, 255, .78), rgba(255, 255, 255, .95));
}

.rs-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #0f766e;
    font-weight: 900;
    letter-spacing: .055em;
}

.rs-section-heading {
    max-width: 860px;
    margin: 0 auto 42px;
}

.rs-section-heading h2 {
    margin: 12px 0 14px;
    font-size: clamp(1.9rem, 3.2vw, 3.25rem);
    font-weight: 950;
    letter-spacing: -.045em;
    line-height: 1.22;
}

.rs-section-heading p {
    color: #64748b;
    line-height: 1.9;
    font-size: 1.05rem;
}

.rs-step-card,
.rs-summary-card,
.rs-benefit-card {
    border: 1px solid rgba(203, 213, 225, .80);
    border-radius: 30px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, .08), transparent 28%),
        rgba(255, 255, 255, .88);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .07);
    backdrop-filter: blur(14px);
}

.rs-step-card {
    padding: 28px;
}

.rs-step-title {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
}

.rs-step-title span {
    flex: 0 0 auto;
    padding: 9px 12px;
    border-radius: 999px;
    color: #2563eb;
    background: #dbeafe;
    font-size: .82rem;
    font-weight: 950;
}

.rs-step-title h2,
.rs-step-title h3 {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 950;
    letter-spacing: -.035em;
}

.rs-step-title p {
    margin: 6px 0 0;
    color: #64748b;
    line-height: 1.65;
}

.rs-plan-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.rs-plan-option {
    position: relative;
    display: grid;
    gap: 10px;
    min-height: 190px;
    padding: 22px;
    border-radius: 24px;
    border: 1px solid rgba(203, 213, 225, .86);
    background: rgba(255, 255, 255, .84);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}

.rs-plan-option:hover,
.rs-plan-option.is-active {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, .62);
    box-shadow: 0 24px 52px rgba(37, 99, 235, .15);
    background: linear-gradient(180deg, rgba(239, 246, 255, .92), rgba(255, 255, 255, .94));
}

.rs-plan-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rs-plan-tag {
    width: fit-content;
    padding: 7px 10px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #dbeafe;
    font-size: .75rem;
    font-weight: 950;
}

.rs-plan-option strong {
    font-size: 1.12rem;
    font-weight: 950;
    line-height: 1.38;
}

.rs-plan-option small {
    color: #64748b;
    line-height: 1.75;
    font-weight: 700;
}

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

.rs-feature-option {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px;
    border-radius: 22px;
    border: 1px solid rgba(203, 213, 225, .78);
    background: rgba(255, 255, 255, .82);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.rs-feature-option:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, .46);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
}

.rs-feature-option input {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    accent-color: #2563eb;
}

.rs-feature-option strong {
    display: block;
    margin-bottom: 4px;
    font-size: 1rem;
    font-weight: 950;
}

.rs-feature-option small {
    display: block;
    color: #64748b;
    line-height: 1.65;
    font-weight: 700;
}

.rs-summary-card {
    position: sticky;
    top: 100px;
    padding: 28px;
}

.rs-summary-card h3 {
    margin: 10px 0 18px;
    font-size: 1.45rem;
    font-weight: 950;
}

.rs-summary-box {
    display: grid;
    gap: 16px;
    margin-bottom: 20px;
}

.rs-summary-box div {
    padding: 18px;
    border-radius: 22px;
    background: rgba(248, 250, 252, .90);
    border: 1px solid rgba(226, 232, 240, .90);
}

.rs-summary-box small {
    display: block;
    margin-bottom: 6px;
    color: #64748b;
    font-weight: 850;
}

.rs-summary-box strong {
    color: #0f172a;
    font-weight: 950;
}

.rs-summary-box ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 1.1rem;
    color: #334155;
    font-weight: 750;
}

.rs-summary-note {
    color: #64748b;
    line-height: 1.75;
    font-size: .95rem;
}

.rs-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    border: 0;
    border-radius: 999px;
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #14b8a6);
    box-shadow: 0 18px 36px rgba(37, 99, 235, .24);
    font-weight: 900;
}

.rs-btn-primary:hover {
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 22px 44px rgba(37, 99, 235, .30);
}

.rs-benefit-card {
    height: 100%;
    padding: 28px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.rs-benefit-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 76px rgba(15, 23, 42, .10);
}

.rs-benefit-card i {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 18px;
    color: #2563eb;
    background: #eff6ff;
    font-size: 1.35rem;
}

.rs-benefit-card h3 {
    margin-bottom: 10px;
    font-size: 1.22rem;
    font-weight: 950;
}

.rs-benefit-card p {
    margin: 0;
    color: #64748b;
    line-height: 1.8;
}

@media (max-width: 1199.98px) {
    .rs-plan-grid {
        grid-template-columns: 1fr;
    }

    .rs-summary-card {
        position: relative;
        top: auto;
    }
}

@media (max-width: 991.98px) {
    .rs-section {
        padding: 56px 0;
    }

    .rs-feature-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .rs-step-card,
    .rs-summary-card {
        border-radius: 26px;
        padding: 24px;
    }

    .rs-btn-primary {
        width: 100%;
    }
}

/* =========================================================
   SaaS flow: Input / Complete pages
   Needed when Views/Saas/Input.cshtml and Complete.cshtml use saas.css only.
========================================================= */

.repeat-starter-page {
    min-height: calc(100vh - 160px);
    color: #0f172a;
    background:
        radial-gradient(circle at 12% 10%, rgba(37, 99, 235, .11), transparent 26%),
        radial-gradient(circle at 88% 12%, rgba(20, 184, 166, .10), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f8fbff 44%, #ffffff 100%);
}

.rs-diagnosis-hero,
.rs-complete-hero {
    padding: 72px 0 56px;
}

.rs-complete-hero {
    min-height: calc(100vh - 160px);
    display: flex;
    align-items: center;
}

.rs-section-heading h1,
.rs-diagnosis-hero h1,
.rs-complete-card h1 {
    margin: 12px 0 14px;
    font-size: clamp(2.1rem, 4vw, 4.2rem);
    line-height: 1.12;
    font-weight: 950;
    letter-spacing: -.055em;
    color: #0f172a;
}

.rs-diagnosis-hero p,
.rs-complete-card p {
    color: #64748b;
    line-height: 1.9;
    font-size: 1.05rem;
}

.rs-diagnosis-form {
    padding: 30px;
}

.rs-diagnosis-form .row {
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 1.25rem;
}

.rs-diagnosis-form .row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

.rs-form-label {
    display: block;
    margin-bottom: 8px;
    color: #0f172a;
    font-weight: 900;
    line-height: 1.45;
}

.rs-form-control {
    display: block;
    width: 100% !important;
    min-height: 58px;
    padding: 14px 18px;
    border-radius: 18px;
    border: 1px solid rgba(203, 213, 225, .95);
    background: rgba(248, 250, 252, .78);
    color: #334155;
    outline: none;
    font: inherit;
    line-height: 1.55;
    box-shadow: none;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.rs-form-control:focus {
    border-color: rgba(37, 99, 235, .62);
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .10);
}

select.rs-form-control {
    appearance: auto;
}

textarea.rs-form-control,
.rs-form-textarea {
    min-height: 150px;
    resize: vertical;
}

.rs-diagnosis-form .text-danger.small,
.rs-diagnosis-form span[data-valmsg-for] {
    display: block;
    margin-top: 6px;
    font-size: .86rem;
}

.rs-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(226, 232, 240, .92);
}

.rs-form-footer p {
    margin: 0;
    color: #64748b;
    line-height: 1.75;
}

.rs-sticky-summary {
    top: 100px;
}

.rs-back-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #2563eb;
    font-weight: 900;
    text-decoration: none;
}

.rs-back-link:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

.rs-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    border-radius: 999px;
    color: #1d4ed8;
    border: 1px solid rgba(37, 99, 235, .30);
    background: rgba(255, 255, 255, .80);
    font-weight: 900;
}

.rs-btn-outline:hover {
    color: #1d4ed8;
    background: #eff6ff;
}

.rs-complete-card {
    max-width: 880px;
    margin: 0 auto;
    padding: 48px;
    text-align: center;
    border: 1px solid rgba(203, 213, 225, .80);
    border-radius: 30px;
    background: radial-gradient(circle at 100% 0%, rgba(37, 99, 235, .08), transparent 28%), rgba(255, 255, 255, .88);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .07);
    backdrop-filter: blur(14px);
}

.rs-complete-icon {
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    margin: 0 auto 20px;
    border-radius: 999px;
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #14b8a6);
    box-shadow: 0 22px 48px rgba(37, 99, 235, .25);
    font-size: 2.4rem;
}

.rs-complete-card p {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.rs-complete-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 32px 0 0;
}

.rs-complete-flow div {
    padding: 18px;
    border-radius: 22px;
    background: rgba(248, 250, 252, .90);
    border: 1px solid rgba(226, 232, 240, .90);
}

.rs-complete-flow strong {
    display: block;
    color: #2563eb;
    font-weight: 950;
    margin-bottom: 6px;
}

.rs-complete-flow span {
    color: #334155;
    font-weight: 800;
}

.rs-complete-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 32px;
}

@media (max-width: 991.98px) {
    .rs-diagnosis-hero,
    .rs-complete-hero {
        padding: 56px 0 42px;
    }

    .rs-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .rs-complete-flow {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .rs-section-heading h1,
    .rs-diagnosis-hero h1,
    .rs-complete-card h1 {
        font-size: 2.35rem;
    }

    .rs-diagnosis-form,
    .rs-complete-card {
        border-radius: 26px;
        padding: 24px;
    }

    .rs-form-footer .btn,
    .rs-complete-actions .btn,
    .rs-btn-outline {
        width: 100%;
    }
}
