:root {
    --blue: #1976d2;
    --blue-bright: #2497e8;
    --blue-pale: #eaf5ff;
    --aqua: #28b8d5;
    --navy: #0c1f33;
    --navy-soft: #15324d;
    --ink: #122235;
    --muted: #66788a;
    --line: #dce5ec;
    --surface: #f4f8fb;
    --white: #ffffff;
    --content: min(1120px, calc(100% - 64px));
    --font-en: "Manrope", sans-serif;
    --font-jp: "Noto Sans JP", sans-serif;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 100px;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: var(--font-jp);
    font-size: 16px;
    line-height: 1.85;
    -webkit-font-smoothing: antialiased;
}

body.menu-open {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(25, 118, 210, 0.28);
    outline-offset: 4px;
}

img {
    display: block;
    max-width: 100%;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.section-shell {
    width: var(--content);
    margin-inline: auto;
}

.site-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    height: 80px;
    border-bottom: 1px solid rgba(12, 31, 51, 0.08);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(18px);
}

.home-page .site-header {
    position: fixed;
    z-index: 1000;
    top: 0;
    right: 0;
    left: 0;
    border-bottom-color: transparent;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.home-page .site-header.is-scrolled {
    border-bottom-color: rgba(12, 31, 51, 0.12);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4px 0 rgba(23, 58, 84, 0.045);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(1360px, calc(100% - 48px));
    height: 100%;
    margin-inline: auto;
}

.brand {
    display: flex;
    align-items: center;
    width: 190px;
    height: 54px;
    overflow: hidden;
}

.brand img {
    width: 174px;
    height: auto;
}

.site-navigation {
    display: flex;
    align-items: center;
    height: 100%;
    gap: clamp(24px, 2.1vw, 36px);
    font-family: var(--font-jp);
    font-size: 12.5px;
    font-weight: 600;
    font-feature-settings: "palt";
    letter-spacing: 0.075em;
}

.site-navigation > a:not(.nav-contact) {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    transition: color 180ms ease;
}

.site-navigation > a:not(.nav-contact)::after {
    position: absolute;
    right: 0;
    bottom: 17px;
    left: 0;
    height: 2px;
    content: "";
    background: var(--blue);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 180ms ease;
}

.site-navigation > a:hover,
.site-navigation > a.is-active {
    color: var(--blue);
}

.site-navigation > a:hover::after,
.site-navigation > a.is-active::after {
    transform: scaleX(1);
}

.site-navigation .nav-portal {
    color: #435e73;
}

.nav-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    color: var(--white);
    background: var(--navy);
    gap: 18px;
    transition: background 180ms ease, transform 180ms ease;
}

.nav-contact:hover {
    background: var(--blue);
    transform: translateY(-2px);
}

.menu-toggle {
    display: none;
}

.hero {
    position: relative;
    display: grid;
    min-height: min(760px, calc(100svh - 80px));
    padding: 72px max(32px, calc((100vw - 1120px) / 2)) 68px;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.96) 48%, rgba(234, 245, 255, 0.4) 72%, rgba(234, 245, 255, 0.78) 100%);
    grid-template-columns: 1.08fr 0.92fr;
    align-items: center;
}

.hero::before {
    position: absolute;
    inset: 0;
    pointer-events: none;
    content: "";
    opacity: 0.32;
    background-image:
        linear-gradient(rgba(25, 118, 210, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(25, 118, 210, 0.08) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(90deg, transparent 30%, #000 70%);
}

.hero-copy {
    position: relative;
    z-index: 2;
    padding-bottom: 20px;
}

.hero-eyebrow,
.section-kicker {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.21em;
}

.hero-eyebrow {
    display: flex;
    align-items: center;
    margin-bottom: 28px;
    gap: 14px;
}

.hero-eyebrow::before {
    width: 36px;
    height: 2px;
    content: "";
    background: var(--blue);
}

.hero h1 {
    margin-bottom: 26px;
    color: var(--navy);
    font-size: clamp(46px, 4.55vw, 64px);
    font-weight: 700;
    letter-spacing: -0.055em;
    line-height: 1.25;
}

.hero-title-line {
    display: block;
    white-space: nowrap;
}

.hero-title-line--accent {
    color: var(--blue);
}

.hero-lead {
    margin-bottom: 32px;
    color: #465b70;
    font-size: 16px;
    font-weight: 500;
    line-height: 2;
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 34px;
}

.button {
    display: inline-flex;
    min-height: 56px;
    padding: 0 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    gap: 24px;
    letter-spacing: 0.04em;
    transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.button:hover {
    transform: translateY(-3px);
}

.button--primary {
    color: var(--white);
    background: var(--blue);
}

.button--primary:hover {
    background: var(--navy);
}

.button--light {
    color: var(--navy);
    background: var(--white);
}

.button--light:hover {
    color: var(--white);
    border-color: var(--white);
    background: transparent;
}

.button--large {
    min-height: 68px;
    padding-inline: 34px;
}

.text-link,
.arrow-link {
    display: inline-flex;
    align-items: center;
    border-bottom: 1px solid var(--ink);
    font-size: 14px;
    font-weight: 700;
    gap: 28px;
    transition: color 180ms ease, border-color 180ms ease;
}

.text-link:hover,
.arrow-link:hover {
    color: var(--blue);
    border-color: var(--blue);
}

.hero-visual {
    position: relative;
    z-index: 1;
    width: min(40vw, 530px);
    aspect-ratio: 1;
    justify-self: end;
}

.hero-visual::before {
    position: absolute;
    inset: 10%;
    border-radius: 50%;
    content: "";
    background: radial-gradient(circle at 35% 30%, #fff 0, #d8efff 29%, #79c5f5 72%, #1e7dc5 100%);
    box-shadow: 0 42px 100px rgba(32, 116, 184, 0.2);
}

.visual-core {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    display: grid;
    width: 33%;
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 32%;
    color: var(--white);
    background: linear-gradient(145deg, #41a7ec, #0e5fa8);
    box-shadow: 0 24px 50px rgba(13, 75, 129, 0.3);
    transform: translate(-50%, -50%) rotate(8deg);
    place-items: center;
}

.visual-core span {
    font-family: var(--font-en);
    font-size: clamp(42px, 5vw, 76px);
    font-weight: 800;
    letter-spacing: -0.09em;
    transform: rotate(-8deg);
}

.orbit {
    position: absolute;
    z-index: 2;
    inset: 3%;
    border: 1px solid rgba(25, 118, 210, 0.35);
    border-radius: 50%;
}

.orbit::after {
    position: absolute;
    top: 13%;
    left: 14%;
    width: 14px;
    height: 14px;
    border: 5px solid white;
    border-radius: 50%;
    content: "";
    background: var(--blue);
    box-shadow: 0 5px 14px rgba(14, 67, 109, 0.22);
}

.orbit--one {
    animation: spin 24s linear infinite;
}

.orbit--two {
    inset: 17%;
    border-style: dashed;
    border-color: rgba(255, 255, 255, 0.8);
    animation: spin 18s linear infinite reverse;
}

.orbit--two::after {
    top: auto;
    right: 6%;
    bottom: 15%;
    left: auto;
    background: var(--aqua);
}

.tech-chip {
    position: absolute;
    z-index: 4;
    display: grid;
    min-width: 90px;
    height: 44px;
    padding-inline: 16px;
    border: 1px solid rgba(255, 255, 255, 0.85);
    color: var(--navy);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 14px 34px rgba(23, 80, 124, 0.16);
    backdrop-filter: blur(12px);
    font-family: var(--font-en);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    place-items: center;
}

.tech-chip--java {
    top: 15%;
    right: 2%;
}

.tech-chip--cloud {
    right: 1%;
    bottom: 19%;
}

.tech-chip--react {
    bottom: 9%;
    left: 11%;
}

.signal {
    position: absolute;
    z-index: 4;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.2);
}

.signal--one {
    top: 27%;
    left: 8%;
}

.signal--two {
    right: 16%;
    bottom: 35%;
}

.hero-scroll {
    position: absolute;
    z-index: 4;
    bottom: 28px;
    left: max(32px, calc((100vw - 1120px) / 2));
    display: flex;
    align-items: center;
    color: var(--muted);
    font-family: var(--font-en);
    font-size: 10px;
    font-weight: 800;
    gap: 14px;
    letter-spacing: 0.16em;
    transform: rotate(90deg);
    transform-origin: left center;
}

.hero-scroll i {
    display: block;
    width: 48px;
    height: 1px;
    background: var(--muted);
}

.intro {
    display: grid;
    padding-block: 112px;
    grid-template-columns: 1fr 1fr;
    gap: 78px;
}

.section-heading h2,
.technology h2,
.footer-cta h2,
.message-section h2,
.page-hero h1,
.contact-aside h2 {
    margin-bottom: 0;
    color: var(--navy);
    font-size: clamp(32px, 3.5vw, 50px);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 1.45;
}

.section-heading .section-kicker,
.technology .section-kicker {
    margin-bottom: 24px;
}

.intro-body {
    padding-top: 36px;
}

.intro-body p {
    margin-bottom: 30px;
    color: #43586b;
    font-size: 16px;
    line-height: 2.05;
}

.section-heading--row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 44px;
}

.services-showcase {
    padding-block: 104px 112px;
    background: var(--surface);
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.service-card {
    position: relative;
    min-height: 440px;
    padding: 36px 32px 32px;
    overflow: hidden;
    color: var(--white);
    transition: transform 240ms ease, box-shadow 240ms ease;
}

.service-card::before {
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 280px;
    height: 280px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    content: "";
}

.service-card:hover {
    box-shadow: 0 26px 60px rgba(11, 43, 72, 0.2);
    transform: translateY(-8px);
}

.service-card--blue {
    background: linear-gradient(145deg, #1e8de0, #1265b0);
}

.service-card--navy {
    background: linear-gradient(145deg, #193b58, #091a2c);
}

.service-card--aqua {
    background: linear-gradient(145deg, #29b7cf, #188aa9);
}

.service-number {
    position: absolute;
    top: 26px;
    right: 30px;
    color: rgba(255, 255, 255, 0.65);
    font-family: var(--font-en);
    font-size: 12px;
    font-weight: 800;
}

.service-icon {
    display: grid;
    width: 72px;
    height: 72px;
    margin-bottom: 42px;
    border: 1px solid rgba(255, 255, 255, 0.48);
    border-radius: 50%;
    font-family: var(--font-en);
    font-size: 20px;
    font-weight: 800;
    place-items: center;
}

.service-icon--people {
    font-size: 38px;
}

.service-icon--spark {
    font-size: 35px;
}

.service-en {
    margin-bottom: 12px;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--font-en);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.service-card h3 {
    margin-bottom: 16px;
    font-size: 23px;
    line-height: 1.45;
}

.service-card > p:not(.service-en) {
    color: rgba(255, 255, 255, 0.82);
    font-size: 14px;
    line-height: 1.9;
}

.service-more {
    position: absolute;
    bottom: 30px;
    left: 32px;
    font-size: 13px;
    font-weight: 700;
}

.technology {
    display: grid;
    padding-block: 112px;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 88px;
    align-items: center;
}

.technology-copy > p:last-child {
    margin-top: 32px;
    color: var(--muted);
    line-height: 2.1;
}

.technology-stack {
    border-top: 1px solid var(--line);
}

.technology-stack div {
    display: grid;
    padding: 30px 8px;
    border-bottom: 1px solid var(--line);
    grid-template-columns: 120px 1fr;
    align-items: center;
}

.technology-stack span {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.technology-stack strong {
    font-family: var(--font-en);
    font-size: clamp(18px, 2vw, 27px);
    letter-spacing: -0.03em;
}

.news-section {
    padding-block: 104px;
    background: #f7fafc;
}

.news-list {
    border-top: 1px solid var(--line);
}

.news-row {
    display: grid;
    padding: 28px 8px;
    border-bottom: 1px solid var(--line);
    transition: color 180ms ease, padding 180ms ease, background 180ms ease;
    grid-template-columns: 120px 90px 1fr 24px;
    gap: 20px;
    align-items: center;
}

.news-row:hover {
    padding-inline: 20px;
    color: var(--blue);
    background: var(--white);
}

.news-row time,
.content-card-meta time,
.journal-card time {
    color: var(--muted);
    font-family: var(--font-en);
    font-size: 12px;
    font-weight: 700;
}

.content-badge {
    display: inline-flex;
    width: max-content;
    min-width: 60px;
    height: 24px;
    padding-inline: 10px;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    background: var(--blue-pale);
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.news-row h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}

.empty-state {
    color: var(--muted);
}

.journal-section {
    padding-block: 112px;
}

.journal-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.journal-card {
    display: block;
    min-width: 0;
}

.journal-visual,
.content-card-visual {
    position: relative;
    display: grid;
    aspect-ratio: 1.5;
    margin-bottom: 18px;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.9);
    background: linear-gradient(145deg, var(--blue), #6dc9ee);
    place-items: center;
}

.journal-visual::after,
.content-card-visual::after {
    position: absolute;
    width: 70%;
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    content: "";
}

.journal-visual span,
.content-card-visual > span {
    position: relative;
    z-index: 1;
    font-family: var(--font-en);
    font-size: 74px;
    font-weight: 800;
}

.journal-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms ease;
}

.journal-card:hover .journal-visual img {
    transform: scale(1.04);
}

.journal-visual--2,
.content-card-visual--2 {
    background: linear-gradient(145deg, #12314c, #276e9b);
}

.journal-visual--3,
.content-card-visual--3 {
    background: linear-gradient(145deg, #27b7ce, #91d9e8);
}

.journal-card h3 {
    margin: 8px 0 9px;
    font-size: 17px;
    line-height: 1.65;
}

.journal-card > p {
    display: -webkit-box;
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.journal-card:hover h3 {
    color: var(--blue);
}

.recruit-banner {
    position: relative;
    min-height: 520px;
    padding: 100px max(32px, calc((100vw - 1120px) / 2));
    overflow: hidden;
    color: var(--white);
    background: linear-gradient(120deg, #102b44 0%, #0c1f33 54%, #164e74 100%);
}

.recruit-banner > div:first-child {
    position: relative;
    z-index: 2;
}

.section-kicker--light {
    color: #76d3f0;
}

.recruit-banner h2,
.footer-cta h2 {
    margin: 20px 0 28px;
    color: var(--white);
}

.recruit-banner p:not(.section-kicker) {
    margin-bottom: 36px;
    color: rgba(255, 255, 255, 0.73);
}

.recruit-pattern {
    position: absolute;
    top: 50%;
    right: max(3vw, calc((100vw - 1340px) / 2));
    display: flex;
    font-family: var(--font-en);
    font-size: min(31vw, 460px);
    font-weight: 800;
    letter-spacing: -0.2em;
    line-height: 0.7;
    opacity: 0.06;
    transform: translateY(-50%);
}

.site-footer {
    border-top: 1px solid #d7e5ee;
    color: #17344b;
    background: #f4f8fb;
}

.footer-cta {
    display: flex;
    min-height: 214px;
    padding: 46px max(32px, calc((100vw - 1120px) / 2));
    border-bottom: 1px solid #d7e7f0;
    align-items: center;
    justify-content: space-between;
    background:
        radial-gradient(circle at 84% 12%, rgba(62, 175, 222, 0.13), transparent 30%),
        linear-gradient(112deg, #f9fcfe 0%, #edf7fc 100%);
    gap: 48px;
}

.footer-cta .section-kicker--light {
    color: #1976d2;
}

.footer-cta__copy h2 {
    margin: 14px 0 10px;
    color: #102b43;
    font-size: clamp(30px, 3.2vw, 43px);
    letter-spacing: -0.04em;
    line-height: 1.35;
}

.footer-cta__copy > p:last-child {
    margin: 0;
    color: #60778a;
    font-size: 13px;
}

.footer-cta__link {
    min-width: 182px;
    border: 1px solid #1976d2;
    color: var(--white);
    background: #1976d2;
    box-shadow: 6px 6px 0 #cae5f4;
}

.footer-main {
    display: grid;
    width: var(--content);
    padding-block: 62px 54px;
    margin-inline: auto;
    align-items: start;
    grid-template-columns: minmax(190px, 0.78fr) minmax(280px, 1.12fr) minmax(154px, 0.36fr);
    gap: clamp(28px, 4vw, 70px);
}

.footer-brand > a {
    display: inline-flex;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.footer-brand img {
    width: 202px;
    padding: 0;
    opacity: 1;
    background: transparent;
    filter: none;
}

.footer-brand p {
    max-width: 270px;
    margin-top: 24px;
    color: #6a8091;
    font-size: 12px;
    letter-spacing: 0.02em;
}

.footer-trustmark {
    display: block;
    width: clamp(154px, 12vw, 184px);
    padding: 0;
    border: 0;
    justify-self: end;
    align-self: center;
    line-height: 0;
    background: transparent;
    transition: opacity 160ms ease, transform 160ms ease;
}

.footer-trustmark img {
    display: block;
    width: 100%;
    height: auto;
    opacity: 0.96;
    mix-blend-mode: multiply;
}

.footer-trustmark:hover {
    opacity: 0.82;
    transform: translateY(-2px);
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    gap: clamp(42px, 6vw, 84px);
}

.footer-links > div {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-label {
    margin-bottom: 11px;
    color: #1976d2;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.22em;
}

.footer-links a {
    width: fit-content;
    color: #496377;
    font-size: 12px;
    letter-spacing: 0.035em;
    transition: color 160ms ease, transform 160ms ease;
}

.footer-links a:hover {
    color: #1976d2;
    transform: translateX(3px);
}

.footer-bottom {
    display: flex;
    width: var(--content);
    padding: 24px 0 32px;
    border-top: 1px solid #d9e5ec;
    margin-inline: auto;
    justify-content: space-between;
}

.footer-bottom p {
    margin: 0;
    color: #788b99;
    font-family: var(--font-en);
    font-size: 10px;
    letter-spacing: 0.04em;
}

/* 下層ページ */
.page-hero {
    position: relative;
    min-height: 340px;
    padding: 82px 0 62px;
    overflow: hidden;
    background: linear-gradient(115deg, #f4f9fd 0%, #e8f4fb 100%);
}

.page-hero::before {
    position: absolute;
    inset: 0;
    content: "";
    opacity: 0.42;
    background-image: linear-gradient(90deg, transparent 49.8%, rgba(25, 118, 210, 0.11) 50%);
    background-size: 180px 100%;
}

.page-hero .section-shell {
    position: relative;
    z-index: 2;
}

.page-hero .section-kicker {
    margin-bottom: 18px;
}

.page-hero h1 {
    margin-bottom: 20px;
    font-size: clamp(42px, 4.5vw, 62px);
}

.page-hero > .section-shell > p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.9;
}

.page-hero-mark {
    position: absolute;
    z-index: 1;
    top: 50%;
    right: max(3vw, calc((100vw - 1320px) / 2));
    color: rgba(25, 118, 210, 0.08);
    font-family: var(--font-en);
    font-size: 300px;
    font-weight: 800;
    line-height: 1;
    transform: translateY(-50%);
}

.message-section {
    display: grid;
    padding-block: 140px;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 120px;
}

.message-copy {
    padding-top: 55px;
}

.message-copy p {
    margin-bottom: 30px;
    color: #42586c;
    font-size: 17px;
    line-height: 2.2;
}

.values-section {
    padding-block: 130px;
    background: var(--surface);
}

.values-grid {
    display: grid;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
    grid-template-columns: repeat(2, 1fr);
}

.values-grid article {
    min-height: 265px;
    padding: 38px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--white);
}

.values-grid article > span,
.feature-grid article > span {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 11px;
    font-weight: 800;
}

.values-grid h3 {
    margin: 34px 0 15px;
    font-size: 23px;
}

.values-grid p {
    color: var(--muted);
    font-size: 14px;
}

.profile-section {
    display: grid;
    padding-block: 140px;
    grid-template-columns: 0.55fr 1.45fr;
    gap: 100px;
}

.profile-table {
    margin: 0;
    border-top: 1px solid var(--line);
}

.profile-table > div {
    display: grid;
    padding: 25px 8px;
    border-bottom: 1px solid var(--line);
    grid-template-columns: 160px 1fr;
}

.profile-table dt {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.profile-table dd {
    margin: 0;
    font-size: 14px;
}

.profile-table a {
    border-bottom: 1px solid var(--line);
}

.access-section {
    padding-block: 110px;
    background: var(--surface);
}

.access-grid {
    display: grid;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 100px;
    align-items: center;
}

.access-grid h2 {
    margin: 18px 0 28px;
    font-size: 44px;
}

.access-note {
    color: var(--muted);
    font-size: 13px;
}

.access-map {
    position: relative;
    min-height: 380px;
    border: 1px solid #bfd2de;
    border-radius: 2px 18px 2px 2px;
    overflow: hidden;
    background: #dcebf3;
    box-shadow: 8px 9px 0 #d7e3ea;
}

.access-map iframe {
    display: block;
    width: 100%;
    min-height: 380px;
    border: 0;
}

.anchor-navigation {
    display: grid;
    padding-block: 52px;
    grid-template-columns: repeat(3, 1fr);
}

.anchor-navigation a {
    display: flex;
    min-height: 72px;
    padding: 0 28px;
    border-right: 1px solid var(--line);
    align-items: center;
    font-size: 14px;
    font-weight: 700;
    gap: 18px;
}

.anchor-navigation a:first-child {
    border-left: 1px solid var(--line);
}

.anchor-navigation span {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 10px;
}

.anchor-navigation a:hover {
    color: var(--blue);
    background: var(--surface);
}

.service-detail {
    display: grid;
    padding-block: 135px;
    grid-template-columns: 150px 1fr;
    gap: 45px;
}

.service-detail--tint {
    background: var(--surface);
}

.service-detail-inner {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 45px;
}

.service-detail-number {
    padding-top: 7px;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 13px;
    font-weight: 800;
}

.service-detail-main h2 {
    margin: 14px 0 35px;
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1.35;
}

.service-detail-lead {
    max-width: 780px;
    margin-bottom: 64px;
    color: #465c70;
    font-size: 17px;
    line-height: 2.1;
}

.feature-grid {
    display: grid;
    border-top: 1px solid var(--line);
    grid-template-columns: repeat(3, 1fr);
}

.feature-grid article {
    min-height: 235px;
    padding: 28px 28px 28px 0;
    border-right: 1px solid var(--line);
}

.feature-grid article:not(:first-child) {
    padding-left: 28px;
}

.feature-grid article:last-child {
    border-right: 0;
}

.feature-grid h3 {
    margin: 30px 0 13px;
    font-size: 19px;
}

.feature-grid p {
    color: var(--muted);
    font-size: 13px;
}

.process-section {
    padding-block: 130px;
    color: var(--white);
    background: var(--navy);
}

.process-section h2 {
    color: var(--white);
}

.process-list {
    display: grid;
    padding: 0;
    margin: 60px 0 0;
    list-style: none;
    grid-template-columns: repeat(4, 1fr);
}

.process-list li {
    position: relative;
    min-height: 230px;
    padding: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.process-list li:first-child {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.process-list span {
    display: block;
    margin-bottom: 45px;
    color: #72cfed;
    font-family: var(--font-en);
    font-size: 11px;
    font-weight: 800;
}

.process-list strong {
    font-size: 18px;
}

.process-list p {
    margin-top: 12px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 12px;
}

.content-index {
    padding-block: 82px 120px;
}

.content-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 52px 24px;
}

.content-card {
    min-width: 0;
    padding-bottom: 26px;
    border-bottom: 1px solid var(--line);
}

.content-card-visual {
    margin-bottom: 20px;
}

.content-card-visual--image::after {
    display: none;
}

.content-card-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms ease;
}

.content-card:hover .content-card-visual img {
    transform: scale(1.04);
}

.content-card-meta {
    display: flex;
    align-items: center;
    gap: 18px;
}

.content-card h2 {
    margin: 14px 0 10px;
    font-size: 18px;
    line-height: 1.65;
    transition: color 180ms ease;
}

.content-card:hover h2 {
    color: var(--blue);
}

.content-card > p {
    display: -webkit-box;
    min-height: 52px;
    margin-bottom: 20px;
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.content-card-link {
    font-size: 12px;
    font-weight: 700;
}

.content-card-link i {
    margin-left: 16px;
    color: var(--blue);
    font-style: normal;
}

.empty-state--large {
    display: grid;
    min-height: 320px;
    border: 1px solid var(--line);
    text-align: center;
    place-content: center;
}

.empty-state--large span {
    color: var(--blue);
    font-size: 40px;
}

.pagination {
    display: flex;
    margin-top: 80px;
    align-items: center;
    justify-content: center;
    gap: 28px;
}

.pagination a {
    display: grid;
    width: 46px;
    height: 46px;
    border: 1px solid var(--line);
    color: var(--blue);
    place-items: center;
}

.pagination a:hover {
    color: var(--white);
    background: var(--blue);
}

.pagination span {
    color: var(--muted);
    font-family: var(--font-en);
    font-size: 12px;
}

.pagination strong {
    color: var(--ink);
}

.article-page {
    padding-block: 28px 112px;
}

.breadcrumbs {
    display: flex;
    padding: 20px 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    gap: 12px;
    white-space: nowrap;
}

.breadcrumbs a:hover {
    color: var(--blue);
}

.breadcrumbs span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

.article-header {
    max-width: 800px;
    padding: 58px 0 50px;
    margin-inline: auto;
}

.article-header h1 {
    margin: 20px 0;
    font-size: clamp(32px, 3.6vw, 50px);
    letter-spacing: -0.04em;
    line-height: 1.5;
}

.article-header > p {
    color: var(--muted);
    font-size: 16px;
}

.article-cover {
    max-width: 900px;
    margin: 0 auto 58px;
    overflow: hidden;
    background: var(--surface);
}

.article-cover img {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
}

.article-body {
    max-width: 720px;
    min-height: 180px;
    margin-inline: auto;
    color: #30475b;
    font-size: 16px;
    line-height: 2.05;
    white-space: pre-line;
}

.article-gallery {
    display: grid;
    max-width: 900px;
    margin: 68px auto 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.article-gallery figure {
    margin: 0;
    overflow: hidden;
    background: var(--surface);
}

.article-gallery figure:first-child:nth-last-child(3) {
    grid-column: 1 / -1;
}

.article-gallery img {
    width: 100%;
    height: 100%;
    max-height: 680px;
    object-fit: cover;
}

.article-back {
    max-width: 720px;
    padding-top: 62px;
    margin: 68px auto 0;
    border-top: 1px solid var(--line);
}

.arrow-link--back {
    gap: 16px;
}

.policy-page {
    padding-block: 100px 150px;
}

.policy-tabs {
    position: sticky;
    z-index: 20;
    top: 80px;
    display: flex;
    border-bottom: 1px solid var(--line);
    margin-bottom: 68px;
    background: rgba(255, 255, 255, 0.96);
}

.policy-tab {
    position: relative;
    padding: 20px 32px;
    border: 0;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.03em;
    outline: none;
}

.policy-tab::after {
    position: absolute;
    right: 32px;
    bottom: -1px;
    left: 32px;
    height: 2px;
    background: var(--blue);
    content: "";
    opacity: 0;
    transform: scaleX(0.4);
    transition: opacity 160ms ease, transform 160ms ease;
}

.policy-tab:hover,
.policy-tab:focus-visible,
.policy-tab.is-active {
    color: var(--blue);
}

.policy-tab:focus-visible {
    background: #edf6fb;
}

.policy-tab.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.policy-document {
    max-width: 900px;
    margin-inline: auto;
}

.policy-panel[hidden] {
    display: none;
}

.policy-panel h2 {
    padding-bottom: 25px;
    border-bottom: 1px solid var(--line);
    margin: 0 0 38px;
    color: var(--ink);
    font-size: clamp(28px, 3.2vw, 40px);
    letter-spacing: -0.035em;
}

.policy-panel h3 {
    margin: 58px 0 18px;
    color: var(--ink);
    font-size: 20px;
}

.policy-panel h4 {
    margin: 36px 0 12px;
    color: #17344b;
    font-size: 16px;
    line-height: 1.7;
}

.policy-panel p {
    margin: 0 0 22px;
    color: #42586b;
    font-size: 14px;
    line-height: 2;
}

.policy-panel a {
    color: var(--blue);
    text-decoration: underline;
    text-decoration-color: rgba(25, 118, 210, 0.3);
    text-underline-offset: 4px;
}

.policy-signature {
    padding-top: 18px;
    text-align: right;
}

.policy-table-wrap {
    width: 100%;
    margin: 22px 0 44px;
    overflow-x: auto;
}

.policy-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    color: #42586b;
    font-size: 13px;
    line-height: 1.8;
}

.policy-table th,
.policy-table td {
    padding: 17px 18px;
    border: 1px solid #cddce6;
    text-align: left;
    vertical-align: top;
}

.policy-table thead th,
.policy-table--measures th {
    color: #17344b;
    background: #edf6fb;
    font-weight: 700;
}

.policy-table--purpose th:first-child,
.policy-table--purpose td:first-child {
    width: 38%;
}

.policy-table--measures th {
    width: 26%;
}

.contact-section {
    display: grid;
    padding-block: 120px 160px;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 110px;
}

.contact-aside {
    position: sticky;
    top: 125px;
    height: max-content;
}

.contact-aside h2 {
    margin: 18px 0 30px;
    font-size: 35px;
}

.contact-aside > p:not(.section-kicker) {
    color: var(--muted);
    font-size: 14px;
}

.contact-aside dl {
    margin-top: 50px;
}

.contact-aside dl > div {
    padding: 18px 0;
    border-top: 1px solid var(--line);
}

.contact-aside dl > div:last-child {
    border-bottom: 1px solid var(--line);
}

.contact-aside dt {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.contact-aside dd {
    margin: 5px 0 0;
    font-family: var(--font-en);
    font-size: 16px;
    font-weight: 700;
}

.contact-form {
    padding: 52px;
    background: var(--surface);
}

.contact-planner {
    padding: 0 0 42px;
    border: 0;
    border-bottom: 1px solid #cfdae3;
    margin: 0 0 38px;
    scroll-margin-top: 0;
}

.contact-planner legend {
    display: block;
    width: 100%;
    padding: 0;
    margin-bottom: 25px;
}

.contact-planner legend > span {
    display: block;
    margin-bottom: 10px;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.2em;
}

.contact-planner legend > strong {
    display: block;
    color: var(--navy);
    font-size: clamp(25px, 2.4vw, 34px);
    letter-spacing: -0.045em;
    line-height: 1.45;
}

.contact-planner legend > small {
    display: block;
    margin-top: 12px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.8;
}

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

.contact-system-option {
    position: relative;
    display: block;
    cursor: pointer;
}

.contact-system-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.contact-system-option__body {
    position: relative;
    display: grid;
    min-height: 108px;
    padding: 17px 18px 16px 52px;
    border: 1px solid #cad8e2;
    background: #ffffff;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.contact-system-option__body::after {
    position: absolute;
    top: 17px;
    right: 16px;
    width: 8px;
    height: 8px;
    border: 1px solid #aebfcb;
    border-radius: 50%;
    content: "";
    background: #ffffff;
}

.contact-system-option__body > i {
    position: absolute;
    top: 18px;
    left: 17px;
    color: #91a4b4;
    font-family: var(--font-en);
    font-size: 8px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.contact-system-option__body > strong {
    padding-right: 16px;
    color: var(--navy);
    font-size: 13px;
    line-height: 1.55;
}

.contact-system-option__body > small {
    margin-top: 7px;
    color: #718596;
    font-size: 9px;
    line-height: 1.65;
}

.contact-system-option:hover .contact-system-option__body {
    border-color: #83b8e4;
    transform: translateY(-2px);
}

.contact-system-option input:focus-visible + .contact-system-option__body {
    outline: 3px solid rgba(25, 118, 210, 0.28);
    outline-offset: 3px;
}

.contact-system-option input:checked + .contact-system-option__body {
    border-color: var(--blue);
    background: #f4faff;
    box-shadow: 5px 6px 0 #cfe4f4;
    transform: translate(-2px, -2px);
}

.contact-system-option input:checked + .contact-system-option__body::after {
    border-color: var(--blue);
    background: var(--blue);
    box-shadow: inset 0 0 0 2px #ffffff;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.form-field {
    margin-bottom: 32px;
}

.form-field label {
    display: block;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
}

.form-field label span {
    display: inline-flex;
    padding: 2px 7px;
    margin-left: 8px;
    color: var(--white);
    background: var(--blue);
    font-size: 9px;
    font-weight: 600;
    vertical-align: 2px;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    border: 1px solid #cfdae3;
    border-radius: 0;
    outline: none;
    background: var(--white);
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.form-field input,
.form-field select {
    height: 56px;
    padding: 0 16px;
}

.form-field textarea {
    padding: 16px;
    resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.1);
}

.form-field .has-error {
    border-color: #d63d4c;
}

.field-error {
    margin: 6px 0 0;
    color: #c82e3d;
    font-size: 11px;
}

.honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.privacy-check {
    padding: 22px;
    margin-bottom: 32px;
    background: var(--white);
}

.privacy-check label {
    display: flex;
    align-items: flex-start;
    cursor: pointer;
    font-size: 13px;
    gap: 12px;
}

.privacy-check input {
    width: 18px;
    height: 18px;
    margin-top: 4px;
    accent-color: var(--blue);
}

.privacy-check a {
    color: var(--blue);
    border-bottom: 1px solid var(--blue);
}

.button--submit {
    width: 100%;
    min-height: 64px;
    border: 0;
}

.result-page {
    display: grid;
    min-height: 680px;
    padding: 100px 32px;
    background: var(--surface);
    place-items: center;
}

.result-card {
    width: min(700px, 100%);
    padding: 80px 50px;
    text-align: center;
    background: var(--white);
    box-shadow: 0 30px 80px rgba(26, 65, 98, 0.08);
}

.result-icon {
    display: grid;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    margin: 0 auto 28px;
    color: var(--white);
    background: var(--blue);
    font-size: 28px;
    place-items: center;
}

.result-card h1 {
    margin: 18px 0 24px;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.5;
}

.result-card > p:not(.section-kicker) {
    margin-bottom: 36px;
    color: var(--muted);
}

.error-code {
    color: var(--blue-pale);
    font-family: var(--font-en);
    font-size: 92px;
    font-weight: 800;
    line-height: 1;
}

.reveal {
    opacity: 1;
    transform: none;
}

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

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1120px) {
    :root {
        --content: min(100% - 48px, 1024px);
    }

    .site-header {
        height: 76px;
    }

    .header-inner {
        width: calc(100% - 36px);
    }

    .brand {
        width: 180px;
        height: 54px;
    }

    .brand img {
        width: 168px;
    }

    .menu-toggle {
        position: relative;
        z-index: 1002;
        display: flex;
        width: 46px;
        height: 46px;
        padding: 12px 10px;
        border: 0;
        background: transparent;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
    }

    .menu-toggle > span:not(.sr-only) {
        display: block;
        width: 26px;
        height: 2px;
        background: var(--navy);
        transition: transform 180ms ease, opacity 180ms ease;
    }

    .menu-toggle[aria-expanded="true"] > span:first-child {
        transform: translateY(8px) rotate(45deg);
    }

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

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

    .site-navigation {
        position: fixed;
        z-index: 1001;
        inset: 0;
        display: flex;
        height: 100vh;
        padding: 100px 36px 40px;
        visibility: hidden;
        opacity: 0;
        background: rgba(255, 255, 255, 0.98);
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        transition: opacity 200ms ease, visibility 200ms ease;
    }

    .site-navigation.is-open {
        visibility: visible;
        opacity: 1;
    }

    .site-navigation > a:not(.nav-contact) {
        width: 100%;
        height: auto;
        padding: 15px 0;
        border-bottom: 1px solid var(--line);
        font-size: 17px;
    }

    .site-navigation > a:not(.nav-contact)::after {
        display: none;
    }

    .nav-contact {
        width: 100%;
        margin-top: 28px;
    }

    .hero {
        min-height: min(720px, calc(100svh - 76px));
        padding-inline: 32px;
        grid-template-columns: 1fr 0.75fr;
    }

    .service-grid {
        grid-template-columns: 1fr 1fr;
    }

    .service-card:last-child {
        grid-column: span 2;
        min-height: 420px;
    }

    .contact-section {
        gap: 55px;
    }

    .contact-form {
        padding: 38px;
    }
}

@media (max-width: 768px) {
    :root {
        --content: calc(100% - 40px);
    }

    body {
        font-size: 15px;
    }

    .desktop-only {
        display: none;
    }

    .hero {
        display: block;
        min-height: 680px;
        padding: 68px 20px 52px;
    }

    .hero-copy {
        position: relative;
        z-index: 3;
    }

    .hero h1 {
        margin-bottom: 22px;
        font-size: clamp(34px, 9.2vw, 38px);
        letter-spacing: -0.07em;
    }

    .hero-lead {
        max-width: 94%;
        font-size: 14px;
        line-height: 1.85;
    }

    .hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 24px;
    }

    .hero-visual {
        position: absolute;
        z-index: 1;
        right: -86px;
        bottom: -48px;
        width: 360px;
        opacity: 0.48;
    }

    .hero-scroll {
        display: none;
    }

    .intro,
    .technology,
    .message-section,
    .profile-section,
    .access-grid,
    .contact-section {
        display: block;
        padding-block: 72px;
    }

    .intro-body,
    .message-copy {
        padding-top: 38px;
    }

    .intro-body p,
    .message-copy p {
        font-size: 15px;
    }

    .section-heading--row {
        display: block;
        margin-bottom: 38px;
    }

    .section-heading--row > .arrow-link {
        margin-top: 24px;
    }

    .services-showcase,
    .news-section,
    .journal-section,
    .values-section,
    .process-section {
        padding-block: 72px;
    }

    .service-grid,
    .journal-grid,
    .content-card-grid,
    .values-grid,
    .footer-links,
    .feature-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .service-card,
    .service-card:last-child {
        min-height: 390px;
        grid-column: auto;
    }

    .technology-stack {
        margin-top: 50px;
    }

    .technology-stack div {
        grid-template-columns: 100px 1fr;
    }

    .news-row {
        padding-block: 22px;
        grid-template-columns: 90px 1fr 18px;
        gap: 12px;
    }

    .news-row .content-badge {
        display: none;
    }

    .news-row h3 {
        font-size: 13px;
    }

    .journal-grid,
    .content-card-grid {
        gap: 42px;
    }

    .recruit-banner {
        min-height: 500px;
        padding: 76px 20px;
    }

    .recruit-pattern {
        right: -40px;
        bottom: 40px;
        top: auto;
        font-size: 250px;
        transform: none;
    }

    .footer-cta {
        display: block;
        min-height: 0;
        padding: 48px 24px 52px;
    }

    .footer-cta .button {
        width: 100%;
        margin-top: 28px;
    }

    .footer-main {
        display: block;
        padding-block: 52px 46px;
    }

    .footer-links {
        display: grid;
        margin-top: 44px;
        gap: 38px 24px;
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-trustmark {
        width: 128px;
        margin: 38px 0 0 auto;
    }

    .footer-bottom {
        display: block;
    }

    .footer-bottom p + p {
        margin-top: 8px;
    }

    .page-hero {
        min-height: 290px;
        padding: 68px 0 52px;
    }

    .page-hero h1 {
        font-size: clamp(36px, 10vw, 43px);
    }

    .page-hero-mark {
        right: -30px;
        font-size: 220px;
    }

    .values-grid {
        border-left: 0;
    }

    .values-grid article {
        min-height: 230px;
    }

    .profile-table {
        margin-top: 45px;
    }

    .profile-table > div {
        grid-template-columns: 100px 1fr;
        gap: 14px;
    }

    .access-map {
        min-height: 320px;
        margin-top: 50px;
        border-radius: 2px 12px 2px 2px;
        box-shadow: 6px 7px 0 #d7e3ea;
    }

    .access-map iframe {
        min-height: 320px;
    }

    .anchor-navigation {
        padding-block: 25px;
        grid-template-columns: 1fr;
    }

    .anchor-navigation a {
        min-height: 60px;
        border-right: 1px solid var(--line);
        border-bottom: 1px solid var(--line);
    }

    .anchor-navigation a:first-child {
        border-top: 1px solid var(--line);
    }

    .service-detail,
    .service-detail-inner {
        display: block;
        padding-block: 90px;
    }

    .service-detail-number {
        margin-bottom: 15px;
    }

    .service-detail-main h2 {
        font-size: 36px;
    }

    .service-detail-lead {
        font-size: 15px;
    }

    .feature-grid article,
    .feature-grid article:not(:first-child) {
        min-height: auto;
        padding: 28px 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .process-list {
        grid-template-columns: 1fr 1fr;
    }

    .process-list li {
        min-height: 210px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }

    .content-index {
        padding-block: 64px 88px;
    }

    .article-header {
        padding: 44px 0 38px;
    }

    .article-header h1 {
        font-size: 32px;
    }

    .article-body {
        font-size: 15px;
    }

    .article-cover {
        margin-bottom: 44px;
    }

    .article-gallery {
        margin-top: 52px;
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .article-gallery figure:first-child:nth-last-child(3) {
        grid-column: auto;
    }

    .article-back {
        padding-top: 48px;
        margin-top: 54px;
    }

    .policy-page {
        padding-block: 62px 100px;
    }

    .policy-tabs {
        position: static;
        margin-bottom: 48px;
        flex-direction: column;
    }

    .policy-tab {
        padding: 16px 8px;
        border-bottom: 1px solid var(--line);
        text-align: left;
    }

    .policy-tab::after {
        right: auto;
        left: 8px;
        width: 42px;
    }

    .policy-panel h2 {
        font-size: 28px;
    }

    .policy-panel h3 {
        margin-top: 46px;
        font-size: 18px;
    }

    .policy-panel h4 {
        font-size: 15px;
    }

    .policy-panel p {
        font-size: 13px;
        line-height: 1.9;
    }

    .contact-aside {
        position: static;
        margin-bottom: 55px;
    }

    .contact-form {
        padding: 28px 20px;
    }

    .contact-planner {
        padding-bottom: 34px;
        margin-bottom: 32px;
    }

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

    .contact-system-option__body {
        min-height: 96px;
    }

    .result-page {
        min-height: 600px;
        padding: 70px 20px;
    }

    .result-card {
        padding: 55px 22px;
    }
}

/* Home page / 2026 visual system */
.home-page {
    --content: min(1320px, calc(100% - 64px));
    --home-radius-lg: 28px;
    --home-radius-md: 20px;
    --home-shadow: 0 28px 80px rgba(11, 46, 77, 0.12);
    overflow-x: hidden;
}

.home-page main {
    overflow: hidden;
}

.home-hero {
    position: relative;
    min-height: 100svh;
    overflow: hidden;
    background: linear-gradient(108deg, #ffffff 0%, #ffffff 52%, #f3f8fc 52%, #f3f8fc 100%);
}

.home-hero::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 52%;
    width: 1px;
    pointer-events: none;
    content: "";
    background: #e4edf4;
    transform: rotate(7deg);
    transform-origin: top;
}

.home-hero::after {
    position: absolute;
    top: -31%;
    right: -14%;
    width: min(48vw, 680px);
    aspect-ratio: 1;
    border: 1px solid rgba(25, 118, 210, 0.08);
    border-radius: 50%;
    pointer-events: none;
    content: "";
}

.home-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: inherit;
    padding-block: 84px 104px;
    grid-template-columns: minmax(0, 0.88fr) minmax(520px, 1.12fr);
    gap: clamp(34px, 4.5vw, 70px);
    align-items: center;
}

.home-hero__copy {
    position: relative;
    z-index: 2;
}

.home-eyebrow {
    display: flex;
    margin-bottom: 30px;
    align-items: center;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 11px;
    font-weight: 800;
    gap: 12px;
    letter-spacing: 0.2em;
}

.home-eyebrow > span {
    position: relative;
    width: 28px;
    height: 1px;
    background: var(--blue);
}

.home-eyebrow > span::before {
    position: absolute;
    top: -3px;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    content: "";
    background: var(--blue);
}

.home-hero h1 {
    margin-bottom: 28px;
    color: var(--navy);
    font-size: clamp(47px, 4.45vw, 66px);
    font-weight: 700;
    letter-spacing: -0.065em;
    line-height: 1.28;
}

.home-hero h1 > span {
    display: block;
    white-space: nowrap;
}

.home-hero__accent {
    position: relative;
    z-index: 1;
    display: inline-block;
    color: var(--blue);
}

.home-hero__slogan-line {
    color: var(--blue);
}

.home-hero__accent--change {
    color: #f5a623;
}

.home-hero__accent::after {
    position: absolute;
    z-index: -1;
    right: -4px;
    bottom: 5px;
    left: -4px;
    height: 11px;
    content: "";
    background: rgba(40, 184, 213, 0.16);
    transform: skewX(-12deg);
}

.home-hero__accent--change::after {
    background: rgba(245, 166, 35, 0.18);
}

.home-hero__lead {
    max-width: 550px;
    margin-bottom: 34px;
    color: #435a70;
    font-size: 15px;
    font-weight: 500;
    line-height: 2.05;
}

.home-hero__actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.home-cta {
    position: relative;
    display: inline-flex;
    min-width: 218px;
    min-height: 70px;
    padding: 11px 11px 11px 18px;
    align-items: center;
    justify-content: space-between;
    border: 1px solid;
    overflow: hidden;
    gap: 20px;
    isolation: isolate;
    transition: color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.home-cta__copy {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
}

.home-cta__copy small {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    opacity: 0.7;
}

.home-cta__copy strong {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.035em;
    line-height: 1.45;
    white-space: nowrap;
}

.home-cta__icon {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border: 1px solid currentColor;
    place-items: center;
}

.home-cta__icon i {
    font-size: 16px;
    font-style: normal;
    line-height: 1;
    transition: transform 180ms ease;
}

.home-cta--primary {
    color: #fff;
    border-color: #1674c9;
    border-radius: 3px 3px 11px 3px;
    background: #197bd2;
    box-shadow: 4px 4px 0 #0b3d6c;
}

.home-cta--primary::before {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 5px;
    height: 23px;
    content: "";
    background: #63e0eb;
}

.home-cta--primary .home-cta__icon {
    border-color: rgba(255, 255, 255, 0.58);
}

.home-cta--primary:hover {
    color: #fff;
    border-color: #092e51;
    background: #0c416f;
    box-shadow: 6px 6px 0 #1b80d3;
    transform: translate(-2px, -2px);
}

.home-cta--primary:hover .home-cta__icon i {
    transform: translateY(4px);
}

.home-cta--secondary {
    min-width: 210px;
    color: #0b2944;
    border-color: #a9c9e1;
    border-radius: 2px 10px 2px 2px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 3px 3px 0 #d7e7f2;
}

.home-cta--secondary::before {
    position: absolute;
    z-index: -1;
    top: 13px;
    bottom: 13px;
    left: 0;
    width: 3px;
    content: "";
    background: #31c5da;
    transition: bottom 180ms ease, top 180ms ease;
}

.home-cta--secondary .home-cta__icon {
    color: #147bd1;
    border-color: #b7d5e9;
    background: #eef8fc;
}

.home-cta--secondary:hover {
    color: #0e68b6;
    border-color: #147bd1;
    background: #fff;
    box-shadow: 5px 5px 0 #bcddee;
    transform: translate(-2px, -2px);
}

.home-cta--secondary:hover::before {
    top: 0;
    bottom: 0;
}

.home-cta--secondary:hover .home-cta__icon i {
    transform: translate(3px, -3px);
}

.home-cta:focus-visible {
    outline: 3px solid rgba(20, 123, 209, 0.32);
    outline-offset: 5px;
}

.home-button {
    min-height: 58px;
    border-radius: 2px;
    gap: 34px;
}

@media (prefers-reduced-motion: reduce) {
    .home-cta,
    .home-cta__icon i,
    .home-cta--secondary::before {
        transition: none;
    }
}

/* Homepage polish: golden-ratio hero plane, integrated chest branding and action dock */
@media (min-width: 1121px) {
    .home-page {
        position: relative;
        isolation: isolate;
    }

    .home-page::before {
        position: absolute;
        z-index: 0;
        top: 0;
        right: 0;
        width: 100%;
        height: min(840px, 100svh);
        pointer-events: none;
        content: "";
        background-color: #f3f8fc;
        background-image:
            radial-gradient(circle at 80% 22%, transparent 0 154px, rgba(25, 118, 210, 0.075) 155px 156px, transparent 157px),
            radial-gradient(circle at 72% 43%, rgba(255, 255, 255, 0.9) 0 7%, rgba(235, 248, 253, 0.54) 24%, transparent 49%),
            radial-gradient(circle at 92% 17%, rgba(67, 190, 224, 0.22) 0 2px, transparent 3px),
            radial-gradient(circle at 70% 28%, rgba(25, 118, 210, 0.15) 0 2px, transparent 3px),
            linear-gradient(rgba(25, 118, 210, 0.025) 1px, transparent 1px),
            linear-gradient(90deg, rgba(25, 118, 210, 0.025) 1px, transparent 1px);
        background-position: center;
        background-size: auto, auto, auto, auto, 72px 72px, 72px 72px;
        clip-path: polygon(61.8% 0, 100% 0, 100% 100%, 46% 100%);
    }

    .home-page > main,
    .home-page > footer {
        position: relative;
        z-index: 1;
    }

    .home-page > .site-header {
        z-index: 1000;
    }

    .home-page .site-header:not(.is-scrolled),
    .home-page .home-hero {
        background: transparent;
    }

    .home-page .home-hero::after {
        opacity: 0.72;
    }
}

/* 首页首屏：自然文案、毛玻璃入口与 CloudByte AI 对话 */
.home-hero .home-hero__lead {
    width: auto;
    max-width: 560px;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #3b566b;
    background: transparent;
    box-shadow: none;
    letter-spacing: 0.015em;
    line-height: 2.05;
}

.home-hero .home-hero__lead::before {
    display: none;
}

.home-hero__actions {
    gap: 14px;
}

.home-cta,
.home-cta--primary,
.home-cta--secondary {
    min-width: 218px;
    min-height: 68px;
    padding: 13px 44px 13px 20px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 15px 15px 6px 15px;
    color: #153f5e;
    background: rgba(255, 255, 255, 0.46);
    box-shadow:
        0 13px 28px rgba(58, 112, 151, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(18px) saturate(145%);
    -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.home-cta--primary {
    background: rgba(202, 233, 251, 0.56);
}

.home-cta--secondary {
    border-radius: 15px 6px 15px 15px;
    background: rgba(255, 255, 255, 0.54);
}

.home-cta--primary::before,
.home-cta--secondary::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    width: auto;
    height: auto;
    content: "";
    opacity: 0.56;
    background: linear-gradient(
        125deg,
        rgba(255, 255, 255, 0.86),
        rgba(255, 255, 255, 0.18) 48%,
        rgba(83, 183, 231, 0.12)
    );
    transition: opacity 180ms ease;
}

.home-cta::after {
    position: absolute;
    top: 50%;
    right: 20px;
    width: 8px;
    height: 8px;
    border: 2px solid rgba(36, 127, 209, 0.72);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 5px rgba(56, 175, 218, 0.08);
    transform: translateY(-50%);
    transition: background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-cta:hover,
.home-cta--primary:hover,
.home-cta--secondary:hover,
.home-cta.is-linked {
    color: #0e5f9d;
    border-color: rgba(110, 191, 230, 0.84);
    background: rgba(255, 255, 255, 0.66);
    box-shadow:
        0 17px 34px rgba(48, 118, 165, 0.18),
        inset 0 1px 0 #ffffff;
    transform: translateY(-3px);
}

.home-cta:hover::before,
.home-cta.is-linked::before {
    top: 0;
    bottom: 0;
    opacity: 0.86;
}

.home-cta:hover::after,
.home-cta.is-linked::after {
    background: #45c6dc;
    box-shadow:
        0 0 0 6px rgba(69, 198, 220, 0.13),
        0 0 18px rgba(69, 198, 220, 0.38);
    transform: translateY(-50%) scale(1.08);
}

.home-engine.is-cta-reacting .home-engine__robot {
    filter:
        drop-shadow(0 20px 24px rgba(50, 131, 177, 0.16))
        drop-shadow(0 0 18px rgba(69, 198, 220, 0.2));
}

.home-engine .home-engine__focus {
    top: 52px;
    left: -4px;
    width: min(228px, 35%);
    min-width: 204px;
    padding: 0;
    overflow: visible;
    border: 1px solid rgba(129, 191, 224, 0.58);
    border-radius: 18px 18px 6px 18px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow:
        0 18px 36px rgba(54, 116, 157, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
}

.home-engine .home-engine__focus::after {
    right: -11px;
    bottom: 21px;
    width: 13px;
    height: 17px;
    background: rgba(255, 255, 255, 0.88);
    filter: drop-shadow(1px 1px 0 rgba(129, 191, 224, 0.45));
}

.home-engine__focus-header {
    display: flex;
    min-height: 35px;
    padding: 0 13px;
    border-bottom: 1px solid rgba(163, 205, 226, 0.46);
    align-items: center;
    justify-content: space-between;
}

.home-engine__focus-header > span {
    display: flex;
    align-items: center;
    color: #245b7d;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    gap: 7px;
    letter-spacing: 0.08em;
}

.home-engine__focus-header > span i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #34c99b;
    box-shadow: 0 0 0 4px rgba(52, 201, 155, 0.12);
}

.home-engine__focus-header > small {
    display: inline-flex;
    margin: 0;
    align-items: center;
    color: #7b98a9;
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    gap: 5px;
    letter-spacing: 0.14em;
}

.home-engine__focus-header > small i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #34c99b;
}

.home-engine .home-engine__focus-header > small {
    display: inline-flex;
    align-items: center;
}

.home-engine__focus > p {
    min-height: 72px;
    padding: 13px 14px 14px;
    margin: 0;
    color: #173f5a;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.75;
}

.home-engine__typing {
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: none;
    align-items: center;
    gap: 4px;
}

.home-engine__typing i {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #43b9d3;
    animation: home-engine-typing 780ms ease-in-out infinite;
}

.home-engine__typing i:nth-child(2) {
    animation-delay: 120ms;
}

.home-engine__typing i:nth-child(3) {
    animation-delay: 240ms;
}

.home-engine__focus.is-thinking > p {
    padding-right: 50px;
    color: #658092;
}

.home-engine__focus.is-thinking .home-engine__typing {
    display: flex;
}

.home-engine__chat {
    position: relative;
    z-index: 7;
    width: min(560px, 92%);
    margin: -37px auto 0;
    transform: translateY(-17px);
}

.home-engine__chat-form {
    width: 100%;
}

.home-engine__chat-control {
    display: flex;
    min-height: 62px;
    padding: 7px 7px 7px 16px;
    border: 1px solid rgba(141, 194, 220, 0.62);
    border-radius: 17px 17px 7px 17px;
    align-items: center;
    background: rgba(255, 255, 255, 0.64);
    box-shadow:
        0 15px 30px rgba(64, 123, 158, 0.13),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    gap: 10px;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.home-engine__chat-control:focus-within {
    border-color: rgba(48, 151, 211, 0.86);
    box-shadow:
        0 17px 34px rgba(47, 127, 175, 0.17),
        0 0 0 3px rgba(56, 165, 218, 0.08);
}

.home-engine__chat-control > span {
    color: #38afd0;
    font-size: 15px;
}

.home-engine__chat-control input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    color: #173f5a;
    background: transparent;
    font-size: 12px;
    font-weight: 600;
}

.home-engine__chat-control input::placeholder {
    color: #7c98a9;
    opacity: 1;
}

.home-engine__chat-control button {
    min-width: 88px;
    height: 46px;
    padding: 0 14px;
    border: 1px solid rgba(35, 129, 202, 0.62);
    border-radius: 11px 11px 4px 11px;
    color: #ffffff;
    background: rgba(30, 127, 204, 0.9);
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
    transition: background 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.home-engine__chat-control button:hover:not(:disabled) {
    background: #0e5f9f;
    transform: translateY(-1px);
}

.home-engine__chat-control button:disabled {
    cursor: default;
    opacity: 0.38;
}

.home-engine__chat-form > p {
    margin: 9px 8px 0;
    color: #7690a1;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.home-engine__chat-form.is-sending .home-engine__chat-control {
    border-color: rgba(69, 198, 220, 0.72);
}

@keyframes home-engine-typing {
    0%,
    100% {
        opacity: 0.35;
        transform: translateY(1px);
    }
    50% {
        opacity: 1;
        transform: translateY(-2px);
    }
}

@media (max-width: 720px) {
    .home-hero .home-hero__lead {
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        line-height: 1.9;
    }

    .home-hero__actions {
        gap: 12px;
    }

    .home-hero__actions .home-cta {
        width: min(100%, 292px);
        min-height: 64px;
        padding: 11px 42px 11px 17px;
    }

    .home-engine__scene {
        height: 322px;
    }

    .home-engine .home-engine__focus {
        top: 14px;
        left: -2px;
        width: 164px;
        min-width: 0;
        padding: 0;
        border-radius: 14px 14px 5px 14px;
        box-shadow: 0 12px 24px rgba(54, 116, 157, 0.15);
    }

    .home-engine__focus-header {
        min-height: 29px;
        padding-inline: 10px;
    }

    .home-engine__focus-header > span {
        font-size: 7px;
    }

    .home-engine__focus > p {
        min-height: 61px;
        padding: 10px 11px 11px;
        font-size: 9px;
        line-height: 1.65;
    }

    .home-engine__chat {
        width: 100%;
        margin-top: 2px;
    }

    .home-engine__chat-control {
        min-height: 58px;
        padding: 6px 6px 6px 12px;
        border-radius: 14px 14px 5px 14px;
        gap: 8px;
    }

    .home-engine__chat-control > span {
        font-size: 12px;
    }

    .home-engine__chat-control input {
        font-size: 10px;
    }

    .home-engine__chat-control button {
        min-width: 74px;
        height: 44px;
        padding-inline: 10px;
        font-size: 9px;
    }

    .home-engine__chat-form > p {
        font-size: 7px;
        line-height: 1.55;
    }
}

/* 首页：简洁的自社开发产品入口 */
.home-products--simple {
    padding-block: 112px 118px;
    background: #f5f8fa;
}

.home-products--simple::before {
    display: none;
}

.home-products--simple .home-products__heading {
    margin-bottom: 46px;
    grid-template-columns: 150px minmax(0, 1fr) minmax(260px, 0.52fr);
}

.home-products--simple .home-products__lead {
    max-width: 360px;
    line-height: 1.95;
}

.home-product-teasers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.home-product-teaser {
    position: relative;
    display: grid;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #d7e3eb;
    color: var(--navy);
    background: #fff;
    box-shadow: 6px 7px 0 #dfebf2;
    grid-template-rows: auto auto 1fr auto;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-product-teaser--restaurant {
    border-radius: 2px 18px 2px 2px;
}

.home-product-teaser--hotel {
    border-radius: 12px 2px 2px 2px;
}

.home-product-teaser--property {
    border-radius: 2px 2px 16px 2px;
}

.home-product-teaser:hover {
    border-color: #8fbcdc;
    box-shadow: 9px 10px 0 #c8deeb;
    transform: translate(-3px, -3px);
}

.home-product-teaser__visual {
    position: relative;
    aspect-ratio: 3 / 2;
    margin: 0;
    overflow: hidden;
    background: #edf7fa;
}

.home-product-teaser--hotel .home-product-teaser__visual {
    background: #f0f2fb;
}

.home-product-teaser--property .home-product-teaser__visual {
    background: #faf5eb;
}

.home-product-teaser__visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 260ms ease;
}

.home-product-teaser:hover .home-product-teaser__visual img {
    transform: scale(1.025);
}

.home-product-teaser__meta {
    display: grid;
    min-height: 50px;
    padding: 0 19px;
    border-top: 1px solid #dbe6ed;
    border-bottom: 1px solid #e2eaf0;
    grid-template-columns: 28px 1fr auto;
    gap: 8px;
    align-items: center;
}

.home-product-teaser__meta > span {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
}

.home-product-teaser__meta > small {
    color: #678092;
    font-size: 9px;
    font-weight: 700;
}

.home-product-teaser__meta > em {
    display: flex;
    align-items: center;
    color: #8a6d28;
    font-size: 8px;
    font-style: normal;
    gap: 7px;
}

.home-product-teaser__meta > em i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e2ad32;
}

.home-product-teaser__meta > em.is-live {
    color: #168260;
}

.home-product-teaser__meta > em.is-live i {
    background: #27bd8f;
}

.home-product-teaser__meta > em b {
    font-weight: 800;
}

.home-product-teaser__copy {
    padding: 24px 20px 27px;
}

.home-product-teaser__copy h3 {
    min-height: 58px;
    margin: 0 0 13px;
    font-size: clamp(19px, 1.7vw, 23px);
    letter-spacing: -0.035em;
    line-height: 1.45;
}

.home-product-teaser__copy p {
    margin: 0;
    color: #52697b;
    font-size: 12px;
    line-height: 1.85;
}

.home-product-teaser__link {
    display: flex;
    min-height: 50px;
    padding: 0 20px;
    border-top: 1px solid #e0e9ef;
    align-items: center;
    justify-content: space-between;
    color: #31556f;
    font-size: 10px;
    font-weight: 800;
}

.home-product-teaser__link i {
    color: var(--blue);
    font-size: 15px;
    font-style: normal;
    transition: transform 180ms ease;
}

.home-product-teaser:hover .home-product-teaser__link i {
    transform: translateX(4px);
}

.home-products__actions {
    display: flex;
    margin-top: 42px;
    align-items: center;
    justify-content: flex-end;
    gap: 30px;
}

.home-products--simple .home-products__library-link {
    margin: 0;
}

.home-products__consult-link {
    display: inline-flex;
    min-height: 42px;
    border-bottom: 1px solid #32536b;
    align-items: center;
    color: #25465f;
    font-size: 10px;
    font-weight: 800;
    gap: 24px;
    transition: border-color 180ms ease, color 180ms ease;
}

.home-products__consult-link:hover {
    border-color: var(--blue);
    color: var(--blue);
}

@media (max-width: 980px) {
    .home-products--simple .home-products__heading {
        grid-template-columns: 120px 1fr;
        row-gap: 24px;
    }

    .home-products--simple .home-products__lead {
        margin-left: 120px;
        grid-column: 1 / -1;
    }

    .home-product-teasers {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .home-product-teaser {
        grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
        grid-template-rows: auto 1fr auto;
    }

    .home-product-teaser__visual {
        grid-row: 1 / 4;
    }
}

@media (max-width: 640px) {
    .home-products--simple {
        padding-block: 82px 88px;
    }

    .home-products--simple .home-products__heading {
        display: block;
        margin-bottom: 34px;
    }

    .home-products--simple .home-section-index {
        margin-bottom: 24px;
    }

    .home-products--simple .home-section-heading h2 {
        font-size: 28px;
        line-height: 1.55;
    }

    .home-products--simple .home-products__lead {
        max-width: none;
        margin: 22px 0 0;
        font-size: 12px;
    }

    .home-product-teaser {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto 1fr auto;
    }

    .home-product-teaser__visual {
        grid-row: auto;
    }

    .home-product-teaser__copy {
        padding: 21px 18px 24px;
    }

    .home-product-teaser__copy h3 {
        min-height: 0;
        font-size: 20px;
    }

    .home-products__actions {
        display: grid;
        width: 100%;
        margin-top: 32px;
        gap: 20px;
    }

    .home-products--simple .home-products__library-link {
        width: 100%;
        justify-content: space-between;
    }

    .home-products__consult-link {
        width: fit-content;
    }
}

/* Product library and product detail pages */
.product-library-page main,
.product-detail-page main {
    overflow: hidden;
    color: var(--navy);
    background: #f5f8fa;
}

.product-library-hero {
    padding-block: 116px 106px;
    color: #fff;
    background: #0e2a41;
}

.product-library-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.72fr);
    gap: 90px;
    align-items: end;
}

.product-library-hero h1 {
    margin-top: 16px;
    font-size: clamp(54px, 7vw, 90px);
    letter-spacing: -0.06em;
    line-height: 0.95;
}

.product-library-hero__inner > p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    line-height: 2;
}

.product-library {
    padding-block: 72px 126px;
}

.product-library__window {
    border: 1px solid #b9cedb;
    border-radius: 3px 18px 3px 3px;
    overflow: hidden;
    background: #e9f0f4;
    box-shadow: 10px 12px 0 #d3e0e7;
}

.product-library__toolbar {
    display: flex;
    min-height: 54px;
    padding: 0 19px;
    color: rgba(255, 255, 255, 0.74);
    background: #102d44;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.product-library__toolbar > div,
.product-library__toolbar > span {
    display: flex;
    align-items: center;
}

.product-library__toolbar > div {
    gap: 6px;
}

.product-library__toolbar > div i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.36);
}

.product-library__toolbar > div i:first-child {
    background: #30bdd7;
}

.product-library__toolbar strong {
    margin-left: 8px;
    font-size: 9px;
    letter-spacing: 0.1em;
}

.product-library__toolbar > span {
    font-size: 8px;
    font-weight: 700;
    gap: 8px;
}

.product-library__toolbar > span i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #27b47e;
    box-shadow: 0 0 0 5px rgba(39, 180, 126, 0.11);
}

.product-library__tabs {
    display: flex;
    padding: 14px 20px 0;
    background: #dfe8ed;
    gap: 8px;
}

.product-library__tabs span {
    padding: 10px 13px;
    color: #6a8292;
    font-size: 9px;
    font-weight: 800;
}

.product-library__tabs .is-active {
    color: #fff;
    background: #197bd2;
    box-shadow: 3px 3px 0 #9dbdcc;
}

.product-library__grid {
    display: grid;
    padding: 22px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.product-library-card {
    display: flex;
    min-width: 0;
    border: 1px solid #b9cedb;
    color: var(--navy);
    background: #fff;
    box-shadow: 5px 6px 0 #cbd9e0;
    flex-direction: column;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.product-library-card:hover {
    color: var(--navy);
    border-color: #197bd2;
    box-shadow: 9px 10px 0 #8ab9d3;
    transform: translate(-3px, -6px);
}

.product-library-card__cover {
    position: relative;
    display: grid;
    min-height: 250px;
    margin: 0;
    overflow: hidden;
    place-items: end center;
}

.product-library-card--restaurant .product-library-card__cover {
    background: #e7f5fa;
}

.product-library-card--hotel .product-library-card__cover {
    background: #edf1fb;
}

.product-library-card--property .product-library-card__cover {
    background: #f8f2e8;
}

.product-library-card__cover::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 5px;
    content: "";
    background: #197bd2;
}

.product-library-card--hotel .product-library-card__cover::after {
    background: #596fc8;
}

.product-library-card--property .product-library-card__cover::after {
    background: #c88732;
}

.product-library-card__cover img {
    z-index: 1;
    width: 112%;
    height: auto;
    max-width: none;
    transition: transform 260ms ease;
}

.product-library-card:hover .product-library-card__cover img {
    transform: scale(1.045);
}

.product-library-card__number,
.product-library-card__status {
    position: absolute;
    z-index: 2;
    top: 16px;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.product-library-card__number {
    left: 16px;
    display: grid;
    width: 34px;
    height: 34px;
    color: #fff;
    background: #0e2a41;
    place-items: center;
}

.product-library-card__status {
    right: 16px;
    padding: 7px 8px;
    color: #0c7758;
    background: rgba(255, 255, 255, 0.88);
}

.product-library-card__body {
    display: flex;
    padding: 25px 23px 22px;
    flex: 1;
    flex-direction: column;
}

.product-library-card__body > p {
    margin-bottom: 10px;
    color: #197bd2;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.09em;
}

.product-library-card__body h2 {
    margin-bottom: 5px;
    font-size: 21px;
    line-height: 1.45;
}

.product-library-card__body > small {
    margin-bottom: 18px;
    color: #7b91a1;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.product-library-card__body > strong {
    margin-bottom: 11px;
    font-size: 13px;
    line-height: 1.65;
}

.product-library-card__body > span {
    color: #627989;
    font-size: 10px;
    line-height: 1.8;
}

.product-library-card__body ul {
    display: flex;
    padding: 0;
    margin: 20px 0 24px;
    list-style: none;
    flex-wrap: wrap;
    gap: 6px;
}

.product-library-card__body li {
    padding: 5px 7px;
    border: 1px solid #c8dce8;
    color: #52758b;
    background: #f6fbfd;
    font-size: 7px;
    font-weight: 800;
}

.product-library-card__body > b {
    display: flex;
    margin-top: auto;
    padding-top: 15px;
    border-top: 1px solid #dbe6ec;
    align-items: center;
    justify-content: space-between;
    color: #0e2a41;
    font-size: 10px;
}

.product-library-card__body > b i {
    display: grid;
    width: 30px;
    height: 30px;
    color: #fff;
    background: #197bd2;
    font-style: normal;
    place-items: center;
    transition: transform 180ms ease;
}

.product-library-card:hover .product-library-card__body > b i {
    transform: translateX(4px);
}

.product-library__guide {
    display: grid;
    margin-top: 38px;
    border: 1px solid #bfd2de;
    border-radius: 2px 13px 2px 2px;
    overflow: hidden;
    background: #fff;
    box-shadow: 6px 7px 0 #dbe6ec;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-library__guide p {
    position: relative;
    display: flex;
    min-height: 92px;
    padding: 20px 24px 18px 70px;
    border-right: 1px solid #d7e3e9;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
}

.product-library__guide p:last-child {
    border-right: 0;
}

.product-library__guide p::before {
    position: absolute;
    top: 23px;
    left: 22px;
    display: grid;
    width: 30px;
    height: 30px;
    border: 1px solid #9bc7df;
    color: #197bd2;
    background: #edf7fc;
    content: "01";
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    place-items: center;
}

.product-library__guide p:nth-of-type(2)::before {
    content: "02";
}

.product-library__guide p:nth-of-type(3)::before {
    content: "03";
}

.product-library__guide p:first-child {
    color: #fff;
    background: #102d44;
}

.product-library__guide p:first-child::before {
    border-color: #3099dc;
    color: #fff;
    background: #197bd2;
}

.product-library__guide strong {
    color: #102d44;
    font-size: 12px;
    letter-spacing: 0.02em;
}

.product-library__guide small {
    color: #667f90;
    font-size: 9px;
    line-height: 1.6;
}

.product-library__guide p:first-child strong {
    color: #fff;
}

.product-library__guide p:first-child small {
    color: rgba(255, 255, 255, 0.68);
}

.product-switcher {
    border-bottom: 1px solid #bdcfdb;
    color: #fff;
    background: #102d44;
}

.product-switcher .section-shell {
    display: grid;
    min-height: 72px;
    grid-template-columns: 0.72fr repeat(3, 1fr);
}

.product-switcher a {
    display: flex;
    min-width: 0;
    padding: 0 18px;
    border-right: 1px solid rgba(255, 255, 255, 0.11);
    color: rgba(255, 255, 255, 0.59);
    align-items: center;
    gap: 10px;
}

.product-switcher a:first-child {
    border-left: 1px solid rgba(255, 255, 255, 0.11);
}

.product-switcher a:hover,
.product-switcher a.is-active {
    color: #fff;
    background: #197bd2;
}

.product-switcher a span {
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.product-switcher a strong {
    overflow: hidden;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.product-detail-hero {
    padding-block: 92px 104px;
    background: #fff;
}

.product-detail-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(500px, 1.18fr);
    gap: 78px;
    align-items: center;
}

.product-detail-hero__meta {
    display: flex;
    margin-bottom: 34px;
    align-items: center;
    gap: 10px;
}

.product-detail-hero__meta > span,
.product-detail-hero__meta > b {
    padding: 7px 9px;
    font-size: 8px;
    font-weight: 800;
}

.product-detail-hero__meta > span {
    color: #fff;
    background: #197bd2;
}

.product-detail-hero__meta > b {
    display: flex;
    color: #277058;
    background: #eaf7f2;
    align-items: center;
    gap: 7px;
}

.product-detail-hero__meta > b i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #27b47e;
}

.product-detail-hero__copy h1 {
    margin-top: 14px;
    font-size: clamp(38px, 4.2vw, 60px);
    letter-spacing: -0.045em;
    line-height: 1.18;
}

.product-detail-hero__copy > small {
    display: block;
    margin: 8px 0 31px;
    color: #7b91a1;
    font-family: var(--font-en);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.product-detail-hero__copy h2 {
    margin-bottom: 17px;
    font-size: 21px;
    line-height: 1.6;
}

.product-detail-hero__copy > p:not(.section-kicker) {
    color: #586f80;
    font-size: 12px;
    line-height: 2;
}

.product-detail-hero__copy > ul {
    display: flex;
    padding: 0;
    margin: 25px 0 0;
    list-style: none;
    flex-wrap: wrap;
    gap: 7px;
}

.product-detail-hero__copy > ul li {
    padding: 7px 9px;
    border: 1px solid #bed7e6;
    color: #386e8c;
    background: #f4fbfe;
    font-size: 8px;
    font-weight: 800;
}

.product-detail-hero__actions {
    display: flex;
    margin-top: 38px;
    align-items: center;
    gap: 28px;
}

.product-detail-text-link {
    display: inline-flex;
    color: #3e5b6e;
    font-size: 10px;
    font-weight: 800;
    gap: 12px;
}

.product-detail-text-link:hover {
    color: #197bd2;
}

.product-detail-hero__visual {
    position: relative;
    min-height: 540px;
    margin: 0;
    border: 1px solid #bdd4e1;
    border-radius: 3px 22px 3px 3px;
    overflow: hidden;
    background: #eaf6fa;
    box-shadow: 10px 12px 0 #d8e8ef;
}

.product-detail-page--hotel .product-detail-hero__visual {
    background: #edf1fb;
}

.product-detail-page--property .product-detail-hero__visual {
    background: #f8f2e8;
}

.product-detail-hero__visual > span {
    position: absolute;
    z-index: 2;
    top: 22px;
    left: 23px;
    display: grid;
    width: 42px;
    height: 42px;
    color: #fff;
    background: #0e2a41;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    place-items: center;
}

.product-detail-hero__visual img {
    position: absolute;
    top: 52%;
    left: 50%;
    width: 125%;
    height: auto;
    max-width: none;
    transform: translate(-50%, -50%);
}

.product-detail-hero__visual figcaption {
    position: absolute;
    z-index: 2;
    right: 18px;
    bottom: 18px;
    left: 18px;
    display: flex;
    padding: 15px 17px;
    color: #fff;
    background: #102d44;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.product-detail-hero__visual figcaption small {
    color: #64d0e3;
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.product-detail-hero__visual figcaption strong {
    font-family: var(--font-en);
    font-size: 10px;
}

.product-before-after {
    padding-block: 120px 132px;
}

.product-detail-heading {
    display: grid;
    margin-bottom: 50px;
    grid-template-columns: 160px minmax(0, 1fr) minmax(300px, 0.7fr);
    gap: 42px;
    align-items: end;
}

.product-detail-heading h2 {
    font-size: clamp(38px, 4.6vw, 58px);
    letter-spacing: -0.05em;
    line-height: 1.15;
}

.product-detail-heading > span {
    color: #637a8a;
    font-size: 11px;
    line-height: 1.9;
}

.product-before-after__grid {
    display: grid;
    grid-template-columns: 1fr 92px 1fr;
    gap: 19px;
    align-items: stretch;
}

.product-comparison {
    padding: 32px;
    border: 1px solid #d6e2e9;
    background: #fff;
    box-shadow: 7px 8px 0 #dfe9ee;
}

.product-comparison--before {
    border-left: 4px solid #d99a63;
    background: #fcf9f5;
}

.product-comparison--after {
    border-left: 4px solid #21a879;
    background: #f0faf7;
}

.product-comparison header > span {
    display: inline-block;
    padding: 6px 8px;
    margin-bottom: 17px;
    font-size: 8px;
    font-weight: 800;
}

.product-comparison--before header > span {
    color: #a55d27;
    background: #f2e2d4;
}

.product-comparison--after header > span {
    color: #087655;
    background: #d7f0e6;
}

.product-comparison h3 {
    min-height: 62px;
    font-size: 18px;
    line-height: 1.65;
}

.product-comparison ol {
    padding: 0;
    margin: 25px 0 0;
    border-top: 1px solid rgba(72, 103, 121, 0.17);
    list-style: none;
}

.product-comparison li {
    display: grid;
    padding: 20px 0;
    border-bottom: 1px solid rgba(72, 103, 121, 0.13);
    grid-template-columns: 35px 1fr;
    gap: 14px;
}

.product-comparison li > i {
    display: grid;
    width: 34px;
    height: 34px;
    border: 1px solid #c8d8e1;
    color: #728897;
    font-family: var(--font-en);
    font-size: 7px;
    font-style: normal;
    font-weight: 800;
    place-items: center;
}

.product-comparison li strong {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
}

.product-comparison li p {
    color: #6b8190;
    font-size: 9px;
    line-height: 1.7;
}

.product-before-after__change {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 11px;
}

.product-before-after__change small {
    color: #748a99;
    font-size: 7px;
    font-weight: 800;
}

.product-before-after__change span {
    display: grid;
    width: 42px;
    height: 42px;
    color: #fff;
    background: #197bd2;
    box-shadow: 5px 5px 0 #b5d6e7;
    font-size: 18px;
    place-items: center;
}

.product-flow {
    padding-block: 120px 128px;
    background: #fff;
}

.product-detail-heading--center {
    display: block;
    max-width: 760px;
    margin-inline: auto;
    text-align: center;
}

.product-detail-heading--center h2 {
    margin: 15px 0 16px;
}

.product-flow__illustration {
    position: relative;
    max-width: 1020px;
    min-height: 0;
    aspect-ratio: 3 / 2;
    margin: 0 auto;
    border-bottom: 1px solid #b8d4e3;
    overflow: hidden;
    background: #f0f8fb;
}

.product-detail-page--hotel .product-flow__illustration {
    background: #f1f3fb;
}

.product-detail-page--property .product-flow__illustration {
    background: #faf6ee;
}

.product-flow__illustration img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.product-flow__steps {
    display: grid;
    padding: 0;
    margin: 24px 0 0;
    list-style: none;
    grid-template-columns: repeat(4, 1fr);
}

.product-flow__steps li {
    position: relative;
    display: grid;
    min-width: 0;
    padding: 20px 24px;
    border-right: 1px solid #d5e3eb;
    grid-template-columns: 28px 1fr;
    gap: 10px;
}

.product-flow__steps li:last-child {
    border-right: 0;
}

.product-flow__steps li > span {
    color: #197bd2;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
}

.product-flow__steps strong {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
}

.product-flow__steps p {
    color: #718695;
    font-size: 8px;
    line-height: 1.65;
}

.product-flow__steps li > i {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: -15px;
    display: grid;
    width: 29px;
    height: 29px;
    border: 1px solid #bed6e4;
    color: #197bd2;
    background: #fff;
    font-size: 10px;
    font-style: normal;
    place-items: center;
    transform: translateY(-50%);
}

.product-features {
    padding-block: 126px 136px;
}

.product-features__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.product-features__grid article {
    min-height: 230px;
    padding: 26px 23px;
    border: 1px solid #cddde6;
    background: #fff;
    box-shadow: 5px 6px 0 #e0e9ee;
}

.product-features__grid article:nth-child(2) {
    border-radius: 2px 14px 2px 2px;
}

.product-features__grid article:nth-child(3) {
    margin-top: 9px;
}

.product-features__grid article > span {
    display: grid;
    width: 34px;
    height: 34px;
    margin-bottom: 39px;
    color: #fff;
    background: #0e2a41;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    place-items: center;
}

.product-features__grid h3 {
    margin-bottom: 11px;
    font-size: 14px;
    line-height: 1.55;
}

.product-features__grid p {
    color: #697f8f;
    font-size: 9px;
    line-height: 1.8;
}

.product-ai-notice {
    margin-top: 24px;
    padding: 16px 18px;
    border-left: 3px solid #c88732;
    color: #715d42;
    background: #faf6ee;
    font-size: 9px;
    line-height: 1.8;
}

.product-detail-cta {
    color: #fff;
    background: #102d44;
}

.product-detail-cta .section-shell {
    display: flex;
    min-height: 360px;
    align-items: center;
    justify-content: space-between;
    gap: 70px;
}

.product-detail-cta h2 {
    margin: 17px 0 18px;
    font-size: clamp(38px, 4.6vw, 58px);
    letter-spacing: -0.05em;
    line-height: 1.2;
}

.product-detail-cta p:not(.section-kicker) {
    max-width: 570px;
    color: rgba(255, 255, 255, 0.67);
    font-size: 11px;
    line-height: 1.9;
}

@media (max-width: 1120px) {
    .product-library__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-library-card:last-child {
        grid-column: 1 / -1;
        max-width: calc(50% - 10px);
    }

    .product-library__guide {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .product-detail-hero__inner {
        grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
        gap: 44px;
    }

    .product-detail-hero__visual {
        min-height: 470px;
    }

    .product-detail-heading {
        grid-template-columns: 130px 1fr;
    }

    .product-detail-heading > span {
        grid-column: 2;
    }
}

@media (max-width: 768px) {
    .product-library-hero {
        padding-block: 76px 70px;
    }

    .product-library-hero__inner {
        display: block;
    }

    .product-library-hero h1 {
        font-size: 50px;
    }

    .product-library-hero__inner > p {
        margin-top: 30px;
        font-size: 12px;
        line-height: 1.9;
    }

    .product-library {
        padding-block: 48px 88px;
    }

    .product-library__toolbar {
        padding-inline: 14px;
    }

    .product-library__toolbar > span {
        display: none;
    }

    .product-library__tabs {
        padding: 11px 12px 0;
        overflow-x: auto;
    }

    .product-library__tabs span {
        flex: 0 0 auto;
    }

    .product-library__grid {
        display: flex;
        padding: 15px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 13px;
    }

    .product-library-card,
    .product-library-card:last-child {
        min-width: min(82vw, 310px);
        max-width: none;
        scroll-snap-align: start;
    }

    .product-library-card__cover {
        min-height: 215px;
    }

    .product-library__guide {
        display: block;
        margin-top: 32px;
        border-radius: 2px 10px 2px 2px;
        box-shadow: 5px 6px 0 #dbe6ec;
    }

    .product-library__guide p {
        min-height: 82px;
        padding: 17px 18px 17px 64px;
        border-right: 0;
        border-bottom: 1px solid #cddce5;
    }

    .product-library__guide p:last-child {
        border-bottom: 0;
    }

    .product-library__guide p::before {
        top: 50%;
        left: 17px;
        transform: translateY(-50%);
    }

    .product-switcher {
        overflow-x: auto;
    }

    .product-switcher .section-shell {
        width: max-content;
        min-height: 62px;
        grid-template-columns: 110px repeat(3, 190px);
    }

    .product-switcher a {
        padding-inline: 14px;
    }

    .product-detail-hero {
        padding-block: 68px 80px;
    }

    .product-detail-hero__inner {
        display: block;
    }

    .product-detail-hero__copy h1 {
        font-size: 37px;
    }

    .product-detail-hero__copy h2 {
        font-size: 18px;
    }

    .product-detail-hero__copy > p:not(.section-kicker) {
        font-size: 11px;
    }

    .product-detail-hero__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .product-detail-hero__visual {
        min-height: 360px;
        margin-top: 54px;
        box-shadow: 7px 8px 0 #d8e8ef;
    }

    .product-detail-hero__visual img {
        width: 158%;
    }

    .product-detail-hero__visual figcaption {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .product-before-after {
        padding-block: 82px 92px;
    }

    .product-detail-heading {
        display: block;
        margin-bottom: 36px;
    }

    .product-detail-heading h2 {
        margin: 14px 0 16px;
        font-size: 39px;
    }

    .product-before-after__grid {
        display: block;
    }

    .product-comparison {
        padding: 24px 20px;
    }

    .product-comparison h3 {
        min-height: 0;
        font-size: 16px;
    }

    .product-before-after__change {
        min-height: 78px;
        flex-direction: row;
    }

    .product-before-after__change span {
        transform: rotate(90deg);
    }

    .product-flow {
        padding-block: 82px 88px;
    }

    .product-flow__illustration {
        min-height: 0;
    }

    .product-flow__illustration img {
        width: 100%;
    }

    .product-flow__steps {
        display: block;
    }

    .product-flow__steps li {
        min-height: 104px;
        padding: 22px 10px;
        border-right: 0;
        border-bottom: 1px solid #d5e3eb;
    }

    .product-flow__steps li > i {
        top: auto;
        right: 50%;
        bottom: -15px;
        transform: translateX(50%) rotate(90deg);
    }

    .product-features {
        padding-block: 86px 96px;
    }

    .product-features__grid {
        grid-template-columns: 1fr 1fr;
        gap: 11px;
    }

    .product-features__grid article {
        min-height: 230px;
        padding: 21px 18px;
    }

    .product-features__grid article:nth-child(3) {
        margin-top: 0;
    }

    .product-features__grid article > span {
        margin-bottom: 30px;
    }

    .product-detail-cta .section-shell {
        min-height: 0;
        padding-block: 75px 82px;
        align-items: flex-start;
        flex-direction: column;
        gap: 36px;
    }

    .product-detail-cta h2 {
        font-size: 39px;
    }
}

.home-product-others {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-product-preview {
    display: flex;
    min-width: 0;
    min-height: 480px;
    padding: 26px;
    border: 1px solid #cddde6;
    color: var(--navy);
    background: #fff;
    box-shadow: 7px 8px 0 #dfe9ee;
    flex-direction: column;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-product-preview--hotel {
    border-radius: 3px 16px 3px 3px;
    background: #f2f5fb;
}

.home-product-preview--property {
    border-radius: 14px 3px 3px 3px;
    background: #faf6ee;
}

.home-product-preview:hover {
    color: var(--navy);
    border-color: #197bd2;
    box-shadow: 9px 10px 0 #a9cddd;
    transform: translate(-2px, -4px);
}

.home-product-preview__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.home-product-preview figure {
    display: grid;
    height: 205px;
    margin: 22px 0 20px;
    overflow: hidden;
    place-items: end center;
}

.home-product-preview--hotel figure {
    background: #e5eaf7;
}

.home-product-preview--property figure {
    background: #f3eadb;
}

.home-product-preview figure img {
    width: 106%;
    height: auto;
    max-width: none;
    transition: transform 240ms ease;
}

.home-product-preview:hover figure img {
    transform: scale(1.04);
}

.home-product-preview__copy > p {
    margin-bottom: 7px;
    color: #197bd2;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.09em;
}

.home-product-preview__copy h3 {
    margin-bottom: 4px;
    font-size: 22px;
    line-height: 1.45;
}

.home-product-preview__copy > small {
    display: block;
    margin-bottom: 13px;
    color: #7b91a1;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
}

.home-product-preview__copy > strong {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    line-height: 1.65;
}

.home-product-preview__copy > span {
    display: block;
    color: #647b8b;
    font-size: 9px;
    line-height: 1.75;
}

.home-product-preview__link {
    display: flex;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid #d5e2e9;
    align-items: center;
    justify-content: space-between;
    font-size: 9px;
}

.home-product-preview__link i {
    display: grid;
    width: 28px;
    height: 28px;
    color: #fff;
    background: #197bd2;
    font-style: normal;
    place-items: center;
    transition: transform 180ms ease;
}

.home-product-preview:hover .home-product-preview__link i {
    transform: translateX(4px);
}

.home-products__library-link {
    display: flex;
    width: fit-content;
    min-height: 52px;
    padding: 0 17px;
    margin: 48px 0 0 auto;
    border: 1px solid #0e2a41;
    color: #fff;
    background: #0e2a41;
    box-shadow: 4px 4px 0 #b5d6e7;
    align-items: center;
    font-size: 10px;
    font-weight: 800;
    gap: 28px;
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-products__library-link:hover {
    color: #fff;
    background: #197bd2;
    box-shadow: 6px 6px 0 #0e2a41;
    transform: translate(-2px, -2px);
}

@media (max-width: 900px) {
    .home-product-others {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .home-product-preview {
        min-height: 430px;
        padding: 22px;
    }

    .home-product-preview figure {
        height: 185px;
    }

    .home-product-preview__copy h3 {
        font-size: 19px;
    }

    .home-products__library-link {
        width: 100%;
        justify-content: space-between;
    }
}

/* Homepage refinement: continuous hero, left-aligned navigation and quieter product entry */
@media (min-width: 1121px) {
    .header-inner {
        justify-content: flex-start;
    }

    .site-navigation {
        flex: 1;
        margin-left: clamp(28px, 3vw, 48px);
        gap: clamp(14px, 1.4vw, 24px);
    }

    .site-navigation .nav-contact {
        margin-left: auto;
    }

    .home-page .site-header:not(.is-scrolled),
    .home-page .home-hero {
        background: linear-gradient(
            90deg,
            #ffffff 0%,
            #ffffff 52%,
            #f3f8fc 52%,
            #f3f8fc 100%
        );
    }

    .home-page .site-header:not(.is-scrolled) {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .home-page .home-hero::before {
        display: none;
    }
}

.home-page .home-cta,
.home-page .home-cta--primary,
.home-page .home-cta--secondary {
    border-color: rgba(255, 255, 255, 0.94);
    color: #153f5e;
    background: linear-gradient(
        135deg,
        rgba(220, 243, 255, 0.68) 0%,
        rgba(255, 255, 255, 0.36) 58%,
        rgba(231, 247, 252, 0.5) 100%
    );
    box-shadow:
        0 16px 36px rgba(42, 105, 147, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.98),
        inset 0 -1px 0 rgba(133, 190, 219, 0.2);
    backdrop-filter: blur(24px) saturate(155%);
    -webkit-backdrop-filter: blur(24px) saturate(155%);
}

.home-page .home-cta--secondary {
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.64) 0%,
        rgba(240, 249, 253, 0.34) 58%,
        rgba(220, 242, 250, 0.46) 100%
    );
}

.home-page .home-cta--primary::before,
.home-page .home-cta--secondary::before {
    opacity: 0.7;
    background: linear-gradient(
        118deg,
        rgba(255, 255, 255, 0.96) 0%,
        rgba(255, 255, 255, 0.18) 44%,
        rgba(72, 188, 229, 0.14) 100%
    );
}

.home-page .home-cta:hover,
.home-page .home-cta--primary:hover,
.home-page .home-cta--secondary:hover,
.home-page .home-cta.is-linked {
    border-color: rgba(117, 199, 234, 0.88);
    background: rgba(255, 255, 255, 0.7);
    box-shadow:
        0 19px 40px rgba(44, 111, 154, 0.19),
        inset 0 1px 0 #ffffff;
}

.home-products--simple {
    padding-block: 86px 96px;
}

.home-products--simple .home-products__heading {
    display: flex;
    margin-bottom: 30px;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
}

.home-products__heading-main {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 18px;
}

.home-products__heading-icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border: 1px solid #a8cce3;
    border-radius: 14px 14px 5px 14px;
    color: #1976d2;
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 4px 5px 0 #deebf2;
    place-items: center;
}

.home-products__heading-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.home-products__heading-copy .section-kicker {
    margin-bottom: 7px;
    color: #4d7189;
    font-size: 9px;
    letter-spacing: 0.14em;
}

.home-products--simple .home-products__heading h2 {
    font-size: clamp(28px, 3vw, 40px);
    letter-spacing: -0.04em;
    line-height: 1.35;
}

.home-products--simple .home-products__lead {
    max-width: 410px;
    margin: 0;
    color: #5a7183;
    font-size: 13px;
    line-height: 1.85;
}

.home-product-teasers {
    gap: 16px;
}

.home-product-teaser__visual {
    aspect-ratio: 16 / 10;
}

.home-product-teaser__meta {
    min-height: 54px;
    padding-inline: 16px;
    grid-template-columns: 32px 1fr auto;
    gap: 10px;
}

.home-product-teaser__icon {
    display: grid;
    width: 28px;
    height: 28px;
    border-radius: 8px 8px 3px 8px;
    color: #1976d2;
    background: #edf7fc;
    place-items: center;
}

.home-product-teaser__icon.is-hotel {
    color: #536dc7;
    background: #f0f2fb;
}

.home-product-teaser__icon.is-property {
    color: #a36f24;
    background: #fbf4e8;
}

.home-product-teaser__icon svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.home-product-teaser__copy {
    padding: 20px 18px 22px;
}

.home-product-teaser__copy h3 {
    min-height: 48px;
    margin-bottom: 8px;
    font-size: clamp(18px, 1.55vw, 21px);
}

.home-product-teaser__copy p {
    font-size: 11px;
    line-height: 1.75;
}

.home-product-teaser__link {
    min-height: 46px;
    padding-inline: 18px;
}

@media (max-width: 980px) {
    .home-products--simple .home-products__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
    }

    .home-products--simple .home-products__lead {
        max-width: 580px;
    }
}

@media (max-width: 720px) {
    .home-page .home-cta,
    .home-page .home-cta--primary,
    .home-page .home-cta--secondary {
        width: 100%;
        min-width: 0;
    }

    .home-products--simple {
        padding-block: 72px 78px;
    }

    .home-products__heading-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .home-products--simple .home-products__heading h2 {
        font-size: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .product-library-card,
    .product-library-card__cover img,
    .product-library-card__body > b i,
    .home-product-preview,
    .home-product-preview figure img,
    .home-product-preview__link i,
    .home-products__library-link {
        transition: none;
    }
}

.home-text-link,
.home-arrow-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    gap: 28px;
}

.home-text-link::after,
.home-arrow-link::after {
    position: absolute;
    right: 0;
    bottom: -7px;
    left: 0;
    height: 1px;
    content: "";
    background: currentColor;
    transform: scaleX(0.24);
    transform-origin: left;
    transition: transform 220ms ease;
}

.home-text-link:hover,
.home-arrow-link:hover {
    color: var(--blue);
}

.home-text-link:hover::after,
.home-arrow-link:hover::after {
    transform: scaleX(1);
}

.home-hero__visual {
    position: relative;
    justify-self: stretch;
}

.home-engine {
    --engine-blue: #3d9dff;
    --engine-cyan: #48d6e7;
    --engine-violet: #8798ff;
    --engine-amber: #f2ae49;
    --engine-line: #2b6389;
    --engine-text: #e9f6ff;
    position: relative;
    isolation: isolate;
    min-height: 0;
    overflow: hidden;
    border: 1px solid #1f587e;
    border-radius: 16px 34px 16px 16px;
    color: #315d7a;
    background: #061725;
    box-shadow: 12px 14px 0 #dceaf3;
    transform: none;
}

.home-engine::before,
.home-engine::after {
    position: absolute;
    z-index: 5;
    width: 76px;
    height: 76px;
    pointer-events: none;
    content: "";
}

.home-engine::before {
    top: 10px;
    right: 10px;
    border-top: 1px solid rgba(72, 214, 231, 0.54);
    border-right: 1px solid rgba(72, 214, 231, 0.54);
    border-radius: 0 22px 0 0;
}

.home-engine::after {
    bottom: 10px;
    left: 10px;
    border-bottom: 1px solid rgba(61, 157, 255, 0.34);
    border-left: 1px solid rgba(61, 157, 255, 0.34);
    border-radius: 0 0 0 10px;
}

.home-engine__bar {
    display: flex;
    height: 58px;
    padding-inline: 23px;
    border-bottom: 1px solid #1d4059;
    align-items: center;
    justify-content: space-between;
    color: #93aec2;
    background: #091d2e;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.home-engine__bar > div {
    display: flex;
    align-items: center;
    gap: 7px;
}

.home-engine__bar > div > i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #385a70;
}

.home-engine__bar > div > i:first-child {
    background: var(--engine-blue);
}

.home-engine__bar > div > i:nth-child(2) {
    background: var(--engine-cyan);
}

.home-engine__bar > div > i:nth-child(3) {
    background: var(--engine-violet);
}

.home-engine__bar > div > span {
    margin-left: 7px;
}

.home-engine__bar > b {
    display: flex;
    align-items: center;
    color: #b1c9d8;
    gap: 7px;
}

.home-engine__bar > b > i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4cdfb3;
    box-shadow: 0 0 0 4px rgba(76, 223, 179, 0.12);
    animation: home-engine-status 2s ease-in-out infinite;
}

.home-engine__viewport {
    position: relative;
    min-height: 496px;
    overflow: hidden;
    border-radius: 0 0 2px 2px;
    background: #071a2a;
}

.home-engine__viewport::before {
    position: absolute;
    z-index: 0;
    top: 10%;
    right: -8%;
    width: 54%;
    height: 54%;
    border: 1px solid rgba(61, 157, 255, 0.11);
    border-radius: 50%;
    content: "";
}

.home-engine__viewport svg {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
}

.home-engine__grid {
    color: rgba(127, 180, 214, 0.2);
}

.home-engine__scan {
    fill: var(--engine-cyan);
    opacity: 0;
    animation: home-engine-scan 5.2s ease-in-out infinite;
}

.home-engine__radar {
    transform-box: view-box;
    transform-origin: 350px 248px;
    animation: home-engine-orbit 32s linear infinite;
}

.home-engine__orbit,
.home-engine__radar-arc {
    fill: none;
    stroke: rgba(80, 155, 202, 0.36);
    stroke-width: 1;
}

.home-engine__orbit--outer {
    stroke-dasharray: 2 11;
}

.home-engine__orbit--inner {
    stroke: rgba(72, 214, 231, 0.28);
    stroke-dasharray: 32 13 4 13;
}

.home-engine__radar-arc {
    stroke: rgba(72, 214, 231, 0.82);
    stroke-width: 2;
}

.home-engine__radar-arc--muted {
    stroke: rgba(135, 152, 255, 0.48);
}

.home-engine__particle {
    stroke: none;
    animation: home-engine-node 2.6s ease-in-out infinite;
}

.home-engine__particle--blue {
    fill: var(--engine-blue);
}

.home-engine__particle--cyan {
    fill: var(--engine-cyan);
    animation-delay: -0.65s;
}

.home-engine__particle--violet {
    fill: var(--engine-violet);
    animation-delay: -1.3s;
}

.home-engine__particle--amber {
    fill: var(--engine-amber);
    animation-delay: -1.95s;
}

.home-engine__link {
    fill: none;
    stroke: var(--engine-line);
    stroke-width: 1.2;
}

.home-engine__signal {
    stroke: var(--engine-cyan);
    stroke-width: 2;
    stroke-dasharray: 4 22;
    animation: home-engine-signal 2.2s linear infinite;
}

.home-engine__signal--slow {
    animation-duration: 2.7s;
}

.home-engine__signal--reverse {
    animation-direction: reverse;
}

.home-engine__node {
    opacity: 0.94;
}

.home-engine__node--ai .home-engine__node-ring {
    animation-delay: -1.6s;
}

.home-engine__node--store .home-engine__node-ring {
    animation-delay: -3.2s;
}

.home-engine__node--business .home-engine__node-ring {
    animation-delay: -4.8s;
}

.home-engine__node-ring {
    fill: rgba(11, 38, 59, 0.72);
    stroke: rgba(61, 157, 255, 0.42);
    stroke-width: 1;
    stroke-dasharray: 3 5;
    transform-box: fill-box;
    transform-origin: center;
    animation: home-engine-node-ring 6.4s ease-in-out infinite;
}

.home-engine__node--ai .home-engine__node-ring {
    stroke: rgba(135, 152, 255, 0.62);
}

.home-engine__node--store .home-engine__node-ring {
    stroke: rgba(72, 214, 231, 0.62);
}

.home-engine__node--business .home-engine__node-ring {
    stroke: rgba(242, 174, 73, 0.48);
}

.home-engine__node-core {
    fill: #0a2439;
    stroke: rgba(72, 214, 231, 0.48);
    stroke-width: 1;
}

.home-engine__node-index,
.home-engine__node-title,
.home-engine__core text,
.home-engine__pipeline text {
    font-family: var(--font-en);
    text-anchor: middle;
}

.home-engine__node-index {
    fill: #71b8e8;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1px;
}

.home-engine__node-title {
    fill: var(--engine-text);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.home-engine__core-aura {
    fill: rgba(61, 157, 255, 0.06);
    stroke: rgba(72, 214, 231, 0.2);
    stroke-width: 1;
    stroke-dasharray: 2 7;
    transform-box: fill-box;
    transform-origin: center;
    animation: home-engine-orbit-reverse 22s linear infinite;
}

.home-engine__core-ring {
    fill: rgba(61, 157, 255, 0.08);
    stroke: var(--engine-cyan);
    stroke-width: 1.5;
    transform-box: view-box;
    transform-origin: 350px 248px;
    animation: home-engine-core 2.8s ease-in-out infinite;
}

.home-engine__core-body {
    fill: #126fb8;
    stroke: #8ce9f2;
    stroke-width: 1;
    filter: drop-shadow(0 0 12px rgba(61, 157, 255, 0.28));
}

.home-engine__core-label {
    fill: #bfeaf3;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-anchor: middle;
}

.home-engine__core-title {
    fill: #ffffff;
    font-size: 25px;
    font-weight: 800;
    letter-spacing: 1px;
    text-anchor: middle;
}

.home-engine__core-subtitle {
    fill: #b7e8f2;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-anchor: middle;
}

.home-engine__core-dot {
    fill: #54e0b7;
    animation: home-engine-status 2s ease-in-out infinite;
}

.home-engine__pipeline > path {
    fill: none;
    stroke: #315f7e;
    stroke-width: 1.2;
}

.home-engine__pipeline > .home-engine__pipeline-signal {
    stroke: var(--engine-cyan);
    stroke-width: 2;
    stroke-dasharray: 12 34;
    animation: home-engine-signal 3.2s linear infinite;
}

.home-engine__pipeline g circle {
    fill: #071a2a;
    stroke: #567f9a;
    stroke-width: 1.2;
}

.home-engine__pipeline g.is-active circle {
    fill: var(--engine-blue);
    stroke: #9bedf4;
    transform-box: fill-box;
    transform-origin: center;
    animation: home-engine-node 2s ease-in-out infinite;
}

.home-engine__pipeline text {
    fill: #8da9ba;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-anchor: middle;
}

.home-engine__telemetry {
    position: absolute;
    z-index: 3;
    right: 28px;
    bottom: 13px;
    left: 28px;
    display: flex;
    align-items: center;
    color: #819fb2;
    font-family: var(--font-en);
    font-size: 6px;
    font-weight: 800;
    gap: 15px;
    letter-spacing: 0.1em;
}

.home-engine__telemetry > span {
    display: flex;
    align-items: baseline;
    white-space: nowrap;
    gap: 8px;
}

.home-engine__telemetry small {
    color: #7b9bae;
    font-size: 6px;
}

.home-engine__telemetry strong {
    color: #d8edf7;
    font-size: 8px;
}

.home-engine__telemetry > i {
    height: 1px;
    background: #315b75;
    flex: 1;
}

.home-hero__scroll {
    position: absolute;
    z-index: 3;
    bottom: 27px;
    left: max(32px, calc((100vw - 1320px) / 2));
    display: flex;
    align-items: center;
    color: #7890a3;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    gap: 14px;
    letter-spacing: 0.16em;
}

.home-hero__scroll i {
    display: block;
    width: 62px;
    height: 1px;
    overflow: hidden;
    background: #b8c8d5;
}

.home-hero__scroll i::after {
    display: block;
    width: 22px;
    height: 1px;
    content: "";
    background: var(--blue);
    animation: home-scroll 2.4s ease-in-out infinite;
}

.home-products {
    position: relative;
    padding-block: 128px 116px;
    scroll-margin-top: 88px;
    background: #f7fafc;
}

.home-products::before {
    position: absolute;
    top: 0;
    right: max(24px, calc((100vw - 1120px) / 2));
    width: 37%;
    height: 1px;
    content: "";
    background: var(--blue);
}

.home-products__heading {
    grid-template-columns: 150px minmax(0, 1fr) minmax(280px, 0.62fr);
}

.home-products__lead {
    max-width: 420px;
    margin: 0 0 3px;
    color: #506578;
    font-size: 14px;
    line-height: 2;
}

.home-products__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
    gap: 18px;
}

.home-products__side {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 18px;
}

.home-product-card {
    position: relative;
    display: flex;
    padding: 30px;
    overflow: hidden;
    border: 1px solid #dbe6ee;
    color: var(--navy);
    background: var(--white);
    box-shadow: 7px 9px 0 rgba(15, 55, 84, 0.06);
    flex-direction: column;
}

.home-product-card--core {
    min-height: 624px;
    border-radius: 3px 22px 3px 3px;
    background: #0e2a41;
    box-shadow: 9px 11px 0 rgba(20, 84, 128, 0.14);
    color: var(--white);
}

.home-product-card--restaurant {
    min-height: 303px;
    border-radius: 3px 3px 18px 3px;
}

.home-product-card--business {
    min-height: 303px;
    border-radius: 16px 3px 3px 3px;
    background: #edf7fc;
}

.home-product-card__header {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.home-product-card__number {
    color: #758b9d;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.home-product-card--core .home-product-card__number {
    color: rgba(255, 255, 255, 0.47);
}

.home-product-status {
    display: inline-flex;
    align-items: center;
    color: #4d6577;
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    gap: 7px;
    letter-spacing: 0.11em;
    white-space: nowrap;
}

.home-product-status i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.home-product-status--live i {
    background: #23ad78;
    box-shadow: 0 0 0 4px rgba(35, 173, 120, 0.12);
}

.home-product-card--core .home-product-status {
    color: rgba(255, 255, 255, 0.64);
}

.home-product-status--build i {
    background: #d79828;
    box-shadow: 0 0 0 4px rgba(215, 152, 40, 0.13);
}

.home-product-card__body {
    display: grid;
    margin-top: 72px;
    grid-template-columns: minmax(0, 0.84fr) minmax(250px, 1.16fr);
    gap: 44px;
    align-items: center;
}

.home-product-card__copy {
    position: relative;
    z-index: 2;
}

.home-product-card__copy > p {
    margin-bottom: 8px;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.home-product-card__copy h3 {
    margin-bottom: 19px;
    font-family: var(--font-en);
    font-size: clamp(25px, 2.35vw, 34px);
    letter-spacing: -0.035em;
    line-height: 1.15;
}

.home-product-card__copy > strong {
    display: block;
    margin-bottom: 15px;
    font-size: 16px;
    line-height: 1.7;
}

.home-product-card__copy > span {
    display: block;
    color: #506578;
    font-size: 12px;
    line-height: 1.9;
}

.home-product-card--core .home-product-card__copy > p {
    color: #6bd0eb;
}

.home-product-card--core .home-product-card__copy > span {
    color: rgba(255, 255, 255, 0.65);
}

.home-product-card__copy ul {
    display: flex;
    padding: 0;
    margin: 27px 0 0;
    list-style: none;
    flex-wrap: wrap;
    gap: 7px;
}

.home-product-card__copy li {
    padding: 7px 9px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--font-en);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.home-product-console {
    border: 1px solid rgba(255, 255, 255, 0.13);
    background: #153b58;
    box-shadow: 12px 14px 0 rgba(2, 17, 28, 0.22);
}

.home-product-console__bar {
    display: flex;
    height: 38px;
    padding-inline: 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    align-items: center;
    gap: 5px;
}

.home-product-console__bar > span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.28);
}

.home-product-console__bar > span:first-child {
    background: #4ac4e5;
}

.home-product-console__bar b {
    margin-left: auto;
    color: rgba(255, 255, 255, 0.36);
    font-family: var(--font-en);
    font-size: 6px;
    letter-spacing: 0.12em;
}

.home-product-console__identity {
    display: grid;
    padding: 22px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    grid-template-columns: 46px 1fr auto;
    gap: 14px;
    align-items: center;
}

.home-product-console__identity > i {
    display: grid;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    color: var(--white);
    background: #1976b9;
    font-family: var(--font-en);
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    place-items: center;
}

.home-product-console small {
    display: block;
    margin-bottom: 4px;
    color: rgba(255, 255, 255, 0.38);
    font-family: var(--font-en);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.home-product-console__identity strong {
    font-family: var(--font-en);
    font-size: 11px;
    letter-spacing: 0.04em;
}

.home-product-console__identity > b {
    padding: 5px 7px;
    color: #75e0b7;
    background: rgba(35, 173, 120, 0.13);
    font-family: var(--font-en);
    font-size: 6px;
    letter-spacing: 0.1em;
}

.home-product-console__metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.home-product-console__metrics > div {
    padding: 19px 17px;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.home-product-console__metrics > div:last-child {
    border-right: 0;
}

.home-product-console__metrics strong {
    font-family: var(--font-en);
    font-size: 8px;
    letter-spacing: 0.04em;
}

.home-product-console__metrics span {
    display: block;
    width: 72%;
    height: 3px;
    margin-top: 12px;
    background: #31b6d4;
}

.home-product-console__metrics > div:last-child span {
    width: 90%;
    background: #2da77b;
}

.home-product-console__events {
    display: grid;
    padding: 17px;
    color: rgba(255, 255, 255, 0.45);
    font-family: var(--font-en);
    font-size: 6px;
    grid-template-columns: auto 1fr auto;
    gap: 8px;
    align-items: center;
}

.home-product-console__events i {
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
}

.home-product-console__events b {
    color: rgba(255, 255, 255, 0.72);
    font-size: 6px;
}

.home-product-card__footer {
    display: flex;
    margin-top: auto;
    padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.home-product-card__footer > span {
    color: rgba(255, 255, 255, 0.4);
    font-family: var(--font-en);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: 0.11em;
}

.home-product-card__footer a {
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
}

.home-product-card__footer a b {
    margin-left: 10px;
    color: #62cbea;
}

.home-product-flow {
    display: flex;
    margin: 38px 0 30px;
    align-items: center;
}

.home-product-flow span {
    display: grid;
    width: 48px;
    height: 48px;
    border: 1px solid #b9d7e8;
    color: #326784;
    background: #f4fbfe;
    font-family: var(--font-en);
    font-size: 6px;
    font-weight: 800;
    place-items: center;
}

.home-product-flow span:nth-of-type(2),
.home-product-flow span:nth-of-type(4) {
    color: var(--white);
    background: var(--blue);
}

.home-product-flow i {
    height: 1px;
    background: #b9d7e8;
    flex: 1;
}

.home-products__side .home-product-card__copy h3 {
    margin-bottom: 12px;
    font-size: 23px;
}

.home-products__side .home-product-card__copy > strong {
    margin-bottom: 8px;
    font-size: 14px;
}

.home-products__side .home-product-card__copy > span {
    font-size: 11px;
    line-height: 1.8;
}

.home-product-card--business .home-product-card__copy {
    margin-top: 42px;
}

.home-product-progress {
    display: grid;
    margin-top: auto;
    padding-top: 24px;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

.home-product-progress > span {
    display: grid;
    grid-template-columns: 8px 1fr auto;
    gap: 7px;
    align-items: center;
}

.home-product-progress i {
    width: 6px;
    height: 6px;
    background: var(--blue);
}

.home-product-progress b,
.home-product-progress small {
    font-family: var(--font-en);
    font-size: 6px;
    letter-spacing: 0.08em;
}

.home-product-progress small {
    color: #7a91a3;
}

.home-products__showcase {
    display: grid;
    gap: 20px;
}

.home-product-feature {
    padding: 34px;
    border: 1px solid #d5e3ec;
    border-radius: 3px 22px 3px 3px;
    color: var(--navy);
    background: #fff;
    box-shadow: 9px 11px 0 #e2edf3;
}

.home-product-feature__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.home-product-feature__hero {
    display: grid;
    padding: 58px 0 48px;
    grid-template-columns: minmax(250px, 0.72fr) minmax(460px, 1.28fr);
    gap: 58px;
    align-items: center;
}

.home-product-feature__copy > p {
    margin-bottom: 11px;
    color: var(--blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.11em;
}

.home-product-feature__copy h3 {
    margin-bottom: 22px;
    font-family: var(--font-en);
    font-size: clamp(38px, 4vw, 54px);
    letter-spacing: -0.055em;
    line-height: 0.96;
}

.home-product-feature__copy > strong {
    display: block;
    margin-bottom: 15px;
    font-size: 19px;
    line-height: 1.65;
}

.home-product-feature__copy > span {
    display: block;
    color: #506578;
    font-size: 12px;
    line-height: 1.95;
}

.home-product-feature__copy ul {
    display: flex;
    padding: 0;
    margin: 24px 0 0;
    list-style: none;
    flex-wrap: wrap;
    gap: 7px;
}

.home-product-feature__copy li {
    padding: 7px 9px;
    border: 1px solid #bed7e6;
    color: #326784;
    background: #f4fbfe;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.home-restaurant-demo {
    overflow: hidden;
    border: 1px solid #bed3e1;
    border-radius: 2px 13px 2px 2px;
    background: #f7fafc;
    box-shadow: 10px 12px 0 #dfeaf0;
}

.home-restaurant-demo__bar {
    display: flex;
    height: 42px;
    padding: 0 14px;
    border-bottom: 1px solid #d9e5ec;
    align-items: center;
    gap: 5px;
}

.home-restaurant-demo__bar > span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #9eb4c3;
}

.home-restaurant-demo__bar > span:first-child {
    background: #1a80d2;
}

.home-restaurant-demo__bar > b {
    margin-left: 6px;
    color: #557082;
    font-size: 7px;
    letter-spacing: 0.08em;
}

.home-restaurant-demo__bar > small {
    display: flex;
    margin-left: auto;
    align-items: center;
    color: #447363;
    font-size: 7px;
    font-weight: 800;
    gap: 6px;
}

.home-restaurant-demo__bar > small i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #24af7b;
    box-shadow: 0 0 0 4px rgba(36, 175, 123, 0.11);
}

.home-restaurant-demo__body {
    display: grid;
    min-height: 326px;
    grid-template-columns: 128px 1fr;
}

.home-restaurant-demo__nav {
    display: flex;
    padding: 22px 13px;
    color: rgba(255, 255, 255, 0.62);
    background: #102d44;
    flex-direction: column;
    gap: 7px;
}

.home-restaurant-demo__nav b {
    padding: 0 8px 18px;
    color: #fff;
    font-family: var(--font-en);
    font-size: 9px;
    letter-spacing: 0.09em;
}

.home-restaurant-demo__nav span {
    padding: 9px 8px;
    font-size: 7px;
    font-weight: 700;
}

.home-restaurant-demo__nav .is-active {
    color: #fff;
    background: #197bd2;
    box-shadow: 3px 3px 0 #071c2b;
}

.home-restaurant-demo__main {
    padding: 24px;
}

.home-restaurant-demo__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.home-restaurant-demo__title small,
.home-restaurant-demo__title strong {
    display: block;
}

.home-restaurant-demo__title small {
    margin-bottom: 3px;
    color: #8297a6;
    font-size: 7px;
}

.home-restaurant-demo__title strong {
    font-size: 16px;
}

.home-restaurant-demo__title > b {
    padding: 7px 9px;
    color: #fff;
    background: #197bd2;
    font-size: 7px;
    letter-spacing: 0.05em;
}

.home-restaurant-demo__metrics {
    display: grid;
    margin-top: 19px;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.home-restaurant-demo__metrics span {
    padding: 12px;
    border: 1px solid #dbe6ed;
    background: #fff;
}

.home-restaurant-demo__metrics small,
.home-restaurant-demo__metrics strong {
    display: block;
}

.home-restaurant-demo__metrics small {
    margin-bottom: 6px;
    color: #748c9e;
    font-size: 6px;
}

.home-restaurant-demo__metrics strong {
    font-family: var(--font-en);
    font-size: 17px;
}

.home-restaurant-demo__orders {
    margin-top: 10px;
    border: 1px solid #dbe6ed;
    background: #fff;
}

.home-restaurant-demo__orders > div {
    display: grid;
    min-height: 55px;
    padding: 9px 11px;
    border-bottom: 1px solid #e5edf2;
    grid-template-columns: 26px 1fr auto;
    gap: 10px;
    align-items: center;
}

.home-restaurant-demo__orders > div:last-child {
    border-bottom: 0;
}

.home-restaurant-demo__orders i {
    display: grid;
    width: 25px;
    height: 25px;
    color: #197bd2;
    background: #edf7fc;
    font-size: 7px;
    font-style: normal;
    font-weight: 800;
    place-items: center;
}

.home-restaurant-demo__orders b,
.home-restaurant-demo__orders small {
    display: block;
}

.home-restaurant-demo__orders b {
    margin-bottom: 3px;
    font-size: 7px;
}

.home-restaurant-demo__orders small {
    color: #8295a3;
    font-size: 6px;
}

.home-restaurant-demo__orders em {
    padding: 5px 7px;
    color: #0b8260;
    background: #eaf8f3;
    font-size: 6px;
    font-style: normal;
    font-weight: 800;
}

.home-product-change {
    display: grid;
    padding-top: 32px;
    border-top: 1px solid #d9e5ec;
    grid-template-columns: 1fr 88px 1fr;
    gap: 18px;
    align-items: stretch;
}

.home-product-change__panel {
    padding: 25px 26px;
    border: 1px solid #dce6ec;
}

.home-product-change__panel--before {
    border-left: 4px solid #d99a63;
    background: #fcf9f5;
}

.home-product-change__panel--after {
    border-left: 4px solid #22a779;
    background: #f1faf7;
}

.home-product-change__panel header {
    display: flex;
    margin-bottom: 20px;
    align-items: center;
    gap: 12px;
}

.home-product-change__panel header span {
    padding: 5px 7px;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.home-product-change__panel--before header span {
    color: #a55d27;
    background: #f4e4d6;
}

.home-product-change__panel--after header span {
    color: #087655;
    background: #d9f1e8;
}

.home-product-change__panel header strong {
    font-size: 14px;
}

.home-product-change__panel ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

.home-product-change__panel li {
    display: grid;
    padding: 12px 0;
    border-top: 1px solid rgba(65, 94, 112, 0.12);
    grid-template-columns: 27px 1fr;
    gap: 10px;
    align-items: center;
}

.home-product-change__panel li > i {
    display: grid;
    width: 26px;
    height: 26px;
    border: 1px solid #cddce5;
    color: #6f8798;
    font-family: var(--font-en);
    font-size: 6px;
    font-style: normal;
    font-weight: 800;
    place-items: center;
}

.home-product-change__panel li b,
.home-product-change__panel li small {
    display: block;
}

.home-product-change__panel li b {
    margin-bottom: 3px;
    font-size: 10px;
}

.home-product-change__panel li small {
    color: #6d8291;
    font-size: 8px;
    line-height: 1.55;
}

.home-product-change__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 9px;
}

.home-product-change__arrow small {
    color: #718898;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.home-product-change__arrow span {
    display: grid;
    width: 38px;
    height: 38px;
    color: #fff;
    background: var(--blue);
    box-shadow: 4px 4px 0 #b8d7e9;
    font-size: 17px;
    place-items: center;
}

.home-product-feature__outcomes {
    display: grid;
    margin-top: 28px;
    border-top: 1px solid #d9e5ec;
    border-bottom: 1px solid #d9e5ec;
    grid-template-columns: repeat(3, 1fr);
}

.home-product-feature__outcomes p {
    padding: 21px 22px;
    border-right: 1px solid #d9e5ec;
}

.home-product-feature__outcomes p:last-child {
    border-right: 0;
}

.home-product-feature__outcomes small,
.home-product-feature__outcomes strong,
.home-product-feature__outcomes span {
    display: block;
}

.home-product-feature__outcomes small {
    margin-bottom: 7px;
    color: #197bd2;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.home-product-feature__outcomes strong {
    margin-bottom: 7px;
    font-size: 14px;
}

.home-product-feature__outcomes span {
    color: #697f8f;
    font-size: 8px;
    line-height: 1.65;
}

.home-product-feature__footer {
    display: flex;
    padding-top: 25px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.home-product-feature__footer > span {
    color: #6a8191;
    font-size: 9px;
}

.home-product-feature__footer a {
    padding: 12px 14px;
    color: #fff;
    background: #0e2a41;
    box-shadow: 4px 4px 0 #afd5e8;
    font-size: 10px;
    font-weight: 800;
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-product-feature__footer a:hover {
    color: #fff;
    background: #197bd2;
    box-shadow: 6px 6px 0 #0e2a41;
    transform: translate(-2px, -2px);
}

.home-product-feature__footer a b {
    margin-left: 12px;
    color: #66d4e7;
}

.home-product-others {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.65fr);
    gap: 20px;
}

.home-product-others .home-product-card--core {
    min-height: 445px;
}

.home-product-others .home-product-card__body {
    margin-top: 45px;
    grid-template-columns: minmax(0, 0.8fr) minmax(280px, 1.2fr);
    gap: 28px;
}

.home-product-others .home-product-card--business {
    min-height: 445px;
}

.home-product-others .home-product-card--business .home-product-card__copy {
    margin-top: 72px;
}

.home-products__principle {
    display: grid;
    margin-top: 48px;
    grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
    gap: 20px;
    align-items: center;
}

.home-products__principle > p {
    display: grid;
    margin: 0;
    grid-template-columns: 22px auto;
    align-items: center;
}

.home-products__principle > p span {
    color: #91a4b4;
    font-family: var(--font-en);
    font-size: 7px;
    grid-row: 1 / 3;
}

.home-products__principle strong {
    color: var(--navy);
    font-family: var(--font-en);
    font-size: 9px;
    letter-spacing: 0.1em;
}

.home-products__principle small {
    margin-top: 3px;
    color: #72889a;
    font-size: 10px;
}

.home-products__principle > i {
    height: 1px;
    background: #ccdbe5;
}

.home-proof {
    color: var(--white);
    background: var(--navy);
}

.home-proof__inner {
    display: grid;
    min-height: 142px;
    grid-template-columns: 0.72fr 1.7fr;
    gap: 60px;
    align-items: center;
}

.home-proof__label > span,
.home-proof__steps small {
    color: #75cae9;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.home-proof__label p {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    font-weight: 600;
}

.home-proof__steps {
    display: grid;
    padding: 0;
    margin: 0;
    list-style: none;
    grid-template-columns: repeat(3, 1fr);
}

.home-proof__steps li {
    position: relative;
    display: grid;
    min-height: 70px;
    padding-left: 26px;
    border-left: 1px solid rgba(255, 255, 255, 0.13);
    align-content: center;
}

.home-proof__steps li > span {
    position: absolute;
    top: 5px;
    left: 9px;
    color: rgba(255, 255, 255, 0.22);
    font-family: var(--font-en);
    font-size: 8px;
}

.home-proof__steps strong {
    color: rgba(255, 255, 255, 0.9);
    font-size: 13px;
    font-weight: 600;
}

.home-proof__steps small {
    margin-top: 3px;
}

.home-section-index {
    display: flex;
    align-items: center;
    align-self: start;
    gap: 11px;
}

.home-section-index > span {
    display: grid;
    width: 28px;
    height: 28px;
    border: 1px solid #b9cbd8;
    border-radius: 50%;
    color: #71879a;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    place-items: center;
}

.home-section-index > p {
    margin: 0;
    color: #71879a;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.17em;
}

.home-statement {
    display: grid;
    padding-block: 126px 136px;
    grid-template-columns: 150px 1fr;
}

.home-statement__content {
    display: grid;
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
    gap: 80px;
}

.home-statement h2,
.home-section-heading h2 {
    margin: 0;
    color: var(--navy);
    font-size: clamp(36px, 4vw, 54px);
    font-weight: 700;
    letter-spacing: -0.055em;
    line-height: 1.42;
}

.home-statement .section-kicker,
.home-section-heading .section-kicker {
    margin-bottom: 20px;
}

.home-statement__body {
    padding-top: 36px;
}

.home-statement__body h3 {
    margin-bottom: 20px;
    color: var(--blue);
    font-size: 18px;
}

.home-statement__body > p {
    margin-bottom: 32px;
    color: #506578;
    font-size: 15px;
    line-height: 2.15;
}

.home-statement__media {
    margin: 62px 0 0;
    grid-column: 1 / -1;
}

.home-statement__media img {
    display: block;
    width: 100%;
    height: clamp(340px, 30vw, 430px);
    border-radius: 2px 28px 2px 2px;
    object-fit: cover;
    object-position: center 46%;
    box-shadow: 12px 14px 0 #deebf4;
}

.home-statement__media figcaption,
.home-ai__photo figcaption {
    display: flex;
    margin-top: 17px;
    align-items: center;
    justify-content: space-between;
}

.home-statement__media figcaption span,
.home-ai__photo figcaption span {
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.home-statement__media figcaption small,
.home-ai__photo figcaption small {
    color: #73889a;
    font-size: 10px;
    font-weight: 600;
}

.home-services {
    padding-block: 118px 128px;
    background:
        linear-gradient(rgba(25, 118, 210, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(25, 118, 210, 0.035) 1px, transparent 1px),
        #f3f8fc;
    background-size: 72px 72px;
}

.home-section-heading {
    display: grid;
    margin-bottom: 52px;
    grid-template-columns: 150px 1fr auto;
    gap: 0;
    align-items: end;
}

.home-service-grid {
    display: grid;
    grid-template-columns: 1.65fr 1fr 1fr;
    gap: 18px;
}

.home-service-card {
    position: relative;
    display: flex;
    min-height: 444px;
    padding: 30px;
    overflow: hidden;
    border-radius: var(--home-radius-md);
    color: var(--white);
    flex-direction: column;
    transition: transform 240ms ease, box-shadow 240ms ease;
}

.home-service-card:hover {
    box-shadow: 0 30px 72px rgba(9, 38, 64, 0.18);
    transform: translateY(-7px);
}

.home-service-card--lead {
    background:
        radial-gradient(circle at 93% 12%, rgba(255, 255, 255, 0.17), transparent 28%),
        linear-gradient(145deg, #228ddd 0%, #1263aa 100%);
}

.home-service-card--navy {
    background: linear-gradient(150deg, #173b59 0%, #0a1d30 100%);
}

.home-service-card--aqua {
    background: linear-gradient(150deg, #31bad1 0%, #187f9d 100%);
}

.home-service-card::after {
    position: absolute;
    right: -88px;
    bottom: -100px;
    width: 270px;
    height: 270px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    content: "";
}

.home-service-card__top {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.home-service-card__number,
.home-service-card__arrow {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--font-en);
    font-size: 10px;
    font-weight: 800;
}

.home-service-card__arrow {
    display: grid;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    font-size: 14px;
    place-items: center;
    transition: color 200ms ease, background 200ms ease, transform 200ms ease;
}

.home-service-card:hover .home-service-card__arrow {
    color: var(--navy);
    background: var(--white);
    transform: rotate(45deg);
}

.home-service-card__content {
    position: relative;
    z-index: 2;
    margin-top: auto;
}

.home-service-card__content > p {
    margin-bottom: 10px;
    color: rgba(255, 255, 255, 0.64);
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.home-service-card__content h3 {
    margin-bottom: 15px;
    font-size: 21px;
    line-height: 1.45;
}

.home-service-card__content > span {
    display: block;
    color: rgba(255, 255, 255, 0.74);
    font-size: 12px;
    line-height: 1.9;
}

.home-service-card--lead .home-service-card__content {
    width: 52%;
}

.home-service-card__terminal {
    position: absolute;
    z-index: 1;
    top: 94px;
    right: -24px;
    width: 50%;
    padding: 18px 18px 24px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 14px;
    background: rgba(7, 43, 76, 0.28);
    box-shadow: 0 20px 44px rgba(5, 41, 72, 0.16);
    backdrop-filter: blur(7px);
    transform: rotate(-3deg);
}

.home-service-card__terminal > div {
    display: flex;
    padding-bottom: 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    gap: 5px;
}

.home-service-card__terminal i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
}

.home-service-card__terminal p {
    margin: 17px 0 0;
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.home-service-card__terminal p span {
    margin-right: 9px;
    color: rgba(255, 255, 255, 0.35);
}

.home-service-card__symbol {
    position: absolute;
    top: 105px;
    left: 50%;
    width: 145px;
    height: 145px;
    transform: translateX(-50%);
}

.home-service-card__symbol i {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}

.home-service-card__symbol i:nth-child(2) {
    inset: 25px;
}

.home-service-card__symbol i:nth-child(3) {
    inset: 55px;
    border: 0;
    background: var(--blue);
    box-shadow: 0 0 0 12px rgba(25, 118, 210, 0.2);
}

.home-service-card__spark {
    position: absolute;
    top: 87px;
    left: 50%;
    color: rgba(255, 255, 255, 0.88);
    font-size: 112px;
    line-height: 1;
    text-shadow: 0 20px 50px rgba(7, 80, 102, 0.2);
    transform: translateX(-50%);
}

.home-ai {
    position: relative;
    padding-block: 126px 140px;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 16%, rgba(49, 186, 209, 0.1), transparent 25%),
        linear-gradient(rgba(25, 118, 210, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(25, 118, 210, 0.025) 1px, transparent 1px),
        #fbfdff;
    background-size: auto, 72px 72px, 72px 72px, auto;
}

.home-ai::before {
    position: absolute;
    top: -230px;
    right: -180px;
    width: 560px;
    height: 560px;
    border: 1px solid rgba(25, 118, 210, 0.08);
    border-radius: 50%;
    content: "";
    box-shadow:
        0 0 0 86px rgba(25, 118, 210, 0.025),
        0 0 0 172px rgba(25, 118, 210, 0.015);
}

.home-ai .section-shell {
    position: relative;
    z-index: 1;
}

.home-ai__heading {
    align-items: start;
}

.home-ai__lead {
    max-width: 310px;
    padding-top: 38px;
    color: #536a7e;
    font-size: 13px;
    line-height: 2.05;
}

.home-ai__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    gap: clamp(42px, 5vw, 72px);
    align-items: center;
}

.home-ai__workflow {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--home-radius-lg);
    color: var(--white);
    background:
        radial-gradient(circle at 86% 13%, rgba(49, 186, 209, 0.22), transparent 27%),
        linear-gradient(135deg, #0c2236 0%, #0e314d 56%, #145981 100%);
    box-shadow: 0 36px 90px rgba(8, 43, 72, 0.2);
}

.home-ai__workflow::before {
    position: absolute;
    right: -70px;
    bottom: -120px;
    width: 330px;
    height: 330px;
    border: 1px solid rgba(101, 201, 232, 0.16);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 62px rgba(101, 201, 232, 0.035);
}

.home-ai__workflow::after {
    position: absolute;
    right: 24px;
    bottom: -30px;
    color: rgba(255, 255, 255, 0.035);
    content: "AI";
    font-family: var(--font-en);
    font-size: 190px;
    font-weight: 800;
    letter-spacing: -0.12em;
    line-height: 1;
}

.home-ai__workflow-bar {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 54px;
    padding-inline: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    align-items: center;
    justify-content: space-between;
}

.home-ai__workflow-bar span,
.home-ai__workflow-bar b {
    display: flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    gap: 9px;
    letter-spacing: 0.15em;
}

.home-ai__workflow-bar span i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--aqua);
    box-shadow: 0 0 0 5px rgba(49, 186, 209, 0.12);
    animation: home-ai-pulse 2.2s ease-in-out infinite;
}

.home-ai__workflow-bar b {
    color: rgba(255, 255, 255, 0.32);
    font-size: 7px;
}

.home-ai__workflow-body {
    position: relative;
    z-index: 2;
    min-height: 510px;
    padding: 32px;
}

.home-ai__prompt {
    padding: 19px 22px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.055);
    backdrop-filter: blur(10px);
}

.home-ai__prompt small,
.home-ai__result > span {
    color: #65c9e8;
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.17em;
}

.home-ai__prompt p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 13px;
    font-weight: 600;
}

.home-ai__flow {
    display: grid;
    padding: 0;
    margin: 22px 0;
    list-style: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.home-ai__flow li {
    position: relative;
    display: grid;
    min-height: 112px;
    padding: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.045);
    grid-template-columns: 30px 1fr;
    gap: 9px;
    align-items: center;
}

.home-ai__flow li::after {
    position: absolute;
    right: -26px;
    bottom: -28px;
    width: 64px;
    height: 64px;
    border: 1px solid rgba(101, 201, 232, 0.16);
    border-radius: 50%;
    content: "";
}

.home-ai__flow li > span {
    display: grid;
    width: 27px;
    height: 27px;
    border: 1px solid rgba(101, 201, 232, 0.45);
    border-radius: 50%;
    color: #65c9e8;
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    place-items: center;
}

.home-ai__flow li > div {
    min-width: 0;
}

.home-ai__flow strong {
    display: block;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.9);
    font-family: var(--font-en);
    font-size: 10px;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-ai__flow small {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 9px;
}

.home-ai__flow li:nth-child(2),
.home-ai__flow li:nth-child(3) {
    background: rgba(37, 145, 210, 0.12);
}

.home-ai__result {
    display: flex;
    min-height: 54px;
    padding-inline: 20px;
    border: 1px solid rgba(101, 201, 232, 0.2);
    border-radius: 10px;
    align-items: center;
    background: rgba(49, 186, 209, 0.08);
    justify-content: space-between;
}

.home-ai__result strong {
    display: flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--font-en);
    font-size: 8px;
    gap: 9px;
    letter-spacing: 0.12em;
}

.home-ai__result strong i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #1db979;
    box-shadow: 0 0 0 5px rgba(29, 185, 121, 0.12);
}

.home-ai__content {
    padding-block: 20px;
}

.home-ai__photo {
    margin: 0 0 32px;
}

.home-ai__photo img {
    display: block;
    width: 100%;
    height: clamp(210px, 18vw, 250px);
    border-radius: 2px 20px 2px 2px;
    object-fit: cover;
    object-position: center;
    box-shadow: 9px 10px 0 #dcebf4;
}

.home-ai__photo figcaption {
    margin-top: 14px;
}

.home-ai__content-label {
    margin: 0 0 17px;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.home-ai__content h3 {
    margin: 0 0 22px;
    color: var(--navy);
    font-size: clamp(27px, 2.8vw, 38px);
    letter-spacing: -0.045em;
    line-height: 1.45;
}

.home-ai__content > p:not(.home-ai__content-label) {
    margin: 0;
    color: #52697d;
    font-size: 13px;
    line-height: 2.05;
}

.home-ai__features {
    padding: 0;
    margin: 34px 0 32px;
    border-top: 1px solid var(--line);
    list-style: none;
}

.home-ai__features li {
    display: grid;
    min-height: 76px;
    padding-block: 15px;
    border-bottom: 1px solid var(--line);
    grid-template-columns: 38px 1fr;
    align-items: center;
}

.home-ai__features li > span {
    color: #a2b3c1;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
}

.home-ai__features strong {
    display: block;
    color: var(--navy);
    font-family: var(--font-en);
    font-size: 10px;
    letter-spacing: 0.05em;
}

.home-ai__features small {
    display: block;
    margin-top: 5px;
    color: #6a7f91;
    font-size: 10px;
}

.home-capability {
    position: relative;
    padding-block: 126px 136px;
    overflow: hidden;
    color: var(--white);
    background:
        radial-gradient(circle at 8% 85%, rgba(25, 118, 210, 0.22), transparent 32%),
        linear-gradient(125deg, #0b1d2f 0%, #0d263b 65%, #113653 100%);
}

.home-capability::after {
    position: absolute;
    right: -180px;
    bottom: -240px;
    width: 640px;
    height: 640px;
    border: 1px solid rgba(87, 187, 232, 0.13);
    border-radius: 50%;
    content: "";
}

.home-capability__ambient {
    position: absolute;
    top: 24%;
    right: -3%;
    display: flex;
    color: rgba(255, 255, 255, 0.025);
    font-family: var(--font-en);
    font-size: min(32vw, 460px);
    font-weight: 800;
    letter-spacing: -0.21em;
    line-height: 0.8;
}

.home-section-heading--dark {
    position: relative;
    z-index: 2;
    align-items: start;
}

.home-section-heading--dark .home-section-index > span {
    border-color: rgba(255, 255, 255, 0.24);
    color: rgba(255, 255, 255, 0.48);
}

.home-section-heading--dark .home-section-index > p {
    color: rgba(255, 255, 255, 0.48);
}

.home-section-heading--dark h2 {
    color: var(--white);
}

.home-section-heading--dark .section-kicker {
    color: #65c9e8;
}

.home-capability__lead {
    max-width: 300px;
    padding-top: 40px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    line-height: 2.05;
}

.home-capability__grid {
    position: relative;
    z-index: 2;
    display: grid;
    margin-top: 70px;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    grid-template-columns: 0.74fr 1.26fr;
}

.home-capability__manifesto {
    display: flex;
    min-height: 375px;
    padding: 44px 40px 30px 0;
    border-right: 1px solid rgba(255, 255, 255, 0.13);
    flex-direction: column;
}

.home-capability__manifesto > p {
    color: #65c9e8;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.home-capability__manifesto > strong {
    margin-top: auto;
    font-family: var(--font-en);
    font-size: clamp(27px, 3vw, 39px);
    letter-spacing: -0.055em;
    line-height: 1.32;
}

.home-capability__manifesto > span {
    max-width: 310px;
    margin-top: 23px;
    color: rgba(255, 255, 255, 0.51);
    font-size: 12px;
    line-height: 1.9;
}

.home-capability__stack > div {
    position: relative;
    display: grid;
    min-height: 125px;
    padding: 27px 12px 27px 42px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
    grid-template-columns: 145px 1fr;
    align-items: center;
    transition: background 200ms ease, padding 200ms ease;
}

.home-capability__stack > div:hover {
    padding-left: 52px;
    background: rgba(255, 255, 255, 0.035);
}

.home-capability__stack span,
.home-capability__stack i {
    color: #65c9e8;
    font-family: var(--font-en);
    font-size: 8px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.home-capability__stack strong {
    padding-right: 130px;
    font-family: var(--font-en);
    font-size: clamp(20px, 2.1vw, 28px);
    letter-spacing: -0.04em;
}

.home-capability__stack i {
    position: absolute;
    right: 12px;
    color: rgba(255, 255, 255, 0.32);
    font-size: 7px;
}

.home-updates {
    padding-block: 126px 140px;
    background: var(--white);
}

.home-updates__grid {
    display: grid;
    grid-template-columns: 0.75fr 1.35fr;
    gap: 60px;
}

.home-updates__subheading {
    display: flex;
    min-height: 58px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--navy);
    align-items: end;
    justify-content: space-between;
}

.home-updates__subheading h3 {
    margin: 0;
    color: var(--navy);
    font-family: var(--font-en);
    font-size: 12px;
    letter-spacing: 0.12em;
}

.home-journal .home-updates__subheading h3 {
    font-family: var(--font-jp);
    font-size: 17px;
    letter-spacing: 0;
}

.home-updates__subheading > div > p {
    margin: 3px 0 0;
    color: var(--blue);
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.home-updates__subheading > a {
    color: #657a8d;
    font-size: 11px;
    font-weight: 700;
}

.home-updates__subheading > a:hover {
    color: var(--blue);
}

.home-news__row {
    position: relative;
    display: block;
    min-height: 128px;
    padding: 24px 42px 24px 0;
    border-bottom: 1px solid var(--line);
    transition: padding 180ms ease, color 180ms ease;
}

.home-news__row:hover {
    padding-left: 10px;
    color: var(--blue);
}

.home-news__row > div {
    display: flex;
    margin-bottom: 11px;
    align-items: center;
    gap: 14px;
}

.home-news__row time,
.home-journal__content time {
    color: #7d8f9f;
    font-family: var(--font-en);
    font-size: 9px;
    font-weight: 700;
}

.home-news__row > div span {
    display: inline-flex;
    height: 19px;
    padding-inline: 8px;
    align-items: center;
    color: var(--blue);
    background: var(--blue-pale);
    font-family: var(--font-en);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.home-news__row h4 {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.65;
}

.home-news__row > i {
    position: absolute;
    top: 50%;
    right: 5px;
    color: #93a5b4;
    font-size: 12px;
    font-style: normal;
    transform: translateY(-50%);
}

.home-journal__grid {
    display: grid;
    padding-top: 24px;
    grid-template-columns: 1.4fr 1fr;
    gap: 22px;
}

.home-journal__card {
    min-width: 0;
}

.home-journal__card.is-feature {
    grid-row: span 2;
}

.home-journal__visual {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, var(--blue), var(--aqua));
}

.home-journal__card.is-feature .home-journal__visual {
    aspect-ratio: 1.27;
}

.home-journal__card.is-compact {
    display: grid;
    grid-template-columns: 0.78fr 1fr;
    gap: 14px;
    align-items: start;
}

.home-journal__card.is-compact .home-journal__visual {
    aspect-ratio: 1;
}

.home-journal__visual::after {
    position: absolute;
    inset: 0;
    pointer-events: none;
    content: "";
    background: linear-gradient(180deg, transparent 58%, rgba(8, 29, 47, 0.48));
}

.home-journal__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 320ms ease;
}

.home-journal__visual > span {
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 160px;
    color: rgba(255, 255, 255, 0.84);
    font-family: var(--font-en);
    font-size: 58px;
    font-weight: 800;
    place-items: center;
}

.home-journal__visual > i {
    position: absolute;
    z-index: 2;
    right: 14px;
    bottom: 11px;
    color: var(--white);
    font-family: var(--font-en);
    font-size: 7px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.home-journal__card:hover img {
    transform: scale(1.045);
}

.home-journal__content {
    padding-top: 13px;
}

.home-journal__content h4 {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.65;
    transition: color 180ms ease;
}

.home-journal__card.is-feature .home-journal__content h4 {
    font-size: 17px;
}

.home-journal__content > p {
    display: -webkit-box;
    margin: 9px 0 0;
    overflow: hidden;
    color: #728596;
    font-size: 11px;
    line-height: 1.8;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-journal__card:hover h4 {
    color: var(--blue);
}

.home-recruit {
    position: relative;
    min-height: 0;
    padding-block: 96px;
    color: var(--ink);
    background: #f3f8fb;
}

.home-recruit__inner {
    display: grid;
    min-height: 360px;
    border: 1px solid #d6e4ed;
    border-radius: 4px 24px 4px 4px;
    overflow: hidden;
    background: #fbfdfe;
    box-shadow: 10px 12px 0 #e0ebf1;
    grid-template-columns: minmax(320px, 0.78fr) minmax(480px, 1.22fr);
    gap: 0;
    align-items: center;
}

.home-recruit__copy {
    position: relative;
    z-index: 2;
    padding: clamp(42px, 5vw, 68px);
}

.home-recruit h2 {
    max-width: 420px;
    margin: 16px 0 18px;
    color: #102840;
    font-size: clamp(31px, 3.2vw, 43px);
    letter-spacing: -0.045em;
    line-height: 1.4;
}

.home-recruit__copy > p:not(.section-kicker) {
    max-width: 390px;
    margin-bottom: 24px;
    color: #607588;
    font-size: 13px;
    line-height: 1.9;
}

.home-recruit__visual {
    position: relative;
    align-self: stretch;
    height: 100%;
    min-height: 360px;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.home-recruit__visual::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(251, 253, 254, 0.2), transparent 34%);
    pointer-events: none;
}

.home-recruit__visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@keyframes home-scroll {
    0% {
        transform: translateX(-24px);
    }
    50% {
        transform: translateX(62px);
    }
    100% {
        transform: translateX(62px);
    }
}

@keyframes home-ai-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 4px rgba(49, 186, 209, 0.12);
        transform: scale(0.92);
    }
    50% {
        box-shadow: 0 0 0 9px rgba(49, 186, 209, 0);
        transform: scale(1);
    }
}

@keyframes home-engine-scan {
    0%,
    8% {
        opacity: 0;
        transform: translateY(0);
    }
    18% {
        opacity: 0.68;
    }
    72% {
        opacity: 0.14;
        transform: translateY(424px);
    }
    73%,
    100% {
        opacity: 0;
        transform: translateY(424px);
    }
}

@keyframes home-engine-orbit {
    to {
        transform: rotate(360deg);
    }
}

@keyframes home-engine-orbit-reverse {
    to {
        transform: rotate(-360deg);
    }
}

@keyframes home-engine-signal {
    to {
        stroke-dashoffset: -66;
    }
}

@keyframes home-engine-core {
    0%,
    100% {
        opacity: 0.66;
        transform: scale(0.96);
    }
    50% {
        opacity: 1;
        transform: scale(1.035);
    }
}

@keyframes home-engine-node-ring {
    0%,
    100% {
        opacity: 0.58;
        transform: scale(0.94);
    }
    35% {
        opacity: 1;
        transform: scale(1.06);
    }
    70% {
        opacity: 0.7;
        transform: scale(1);
    }
}

@keyframes home-engine-node {
    0%,
    100% {
        filter: drop-shadow(0 0 0 rgba(45, 200, 223, 0));
        transform: scale(0.92);
    }
    50% {
        filter: drop-shadow(0 0 7px rgba(45, 200, 223, 0.8));
        transform: scale(1.12);
    }
}

@keyframes home-engine-status {
    0%,
    100% {
        opacity: 0.65;
        transform: scale(0.86);
    }
    50% {
        opacity: 1;
        transform: scale(1.12);
    }
}

@media (max-width: 1120px) {
    .home-page {
        --content: min(100% - 48px, 1040px);
    }

    .home-hero {
        min-height: 710px;
    }

    .home-hero__inner {
        padding-block: 70px 90px;
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.78fr);
        gap: 32px;
    }

    .home-hero h1 {
        font-size: clamp(42px, 5.7vw, 58px);
    }

    .home-engine {
        min-height: 0;
        box-shadow: 10px 12px 0 #dceaf3;
    }

    .home-engine__viewport {
        min-height: 0;
    }

    .home-products__heading {
        grid-template-columns: 120px minmax(0, 1fr) minmax(260px, 0.58fr);
        gap: 24px;
    }

    .home-products__grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
    }

    .home-product-card--core {
        min-height: 626px;
        padding: 26px;
    }

    .home-product-card__body {
        margin-top: 60px;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .home-product-card--core .home-product-card__copy > span {
        max-width: 520px;
    }

    .home-product-console {
        max-width: 430px;
    }

    .home-product-feature__hero {
        grid-template-columns: minmax(230px, 0.68fr) minmax(420px, 1.32fr);
        gap: 36px;
    }

    .home-product-change {
        grid-template-columns: 1fr 68px 1fr;
        gap: 13px;
    }

    .home-product-change__panel {
        padding-inline: 20px;
    }

    .home-product-others .home-product-card__body {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .home-product-others .home-product-console {
        max-width: 100%;
    }

    .home-proof__inner {
        grid-template-columns: 0.54fr 1.7fr;
        gap: 30px;
    }

    .home-statement {
        grid-template-columns: 120px 1fr;
    }

    .home-statement__content {
        grid-template-columns: 1fr 1fr;
        gap: 50px;
    }

    .home-section-heading {
        grid-template-columns: 120px 1fr auto;
    }

    .home-service-grid {
        grid-template-columns: 1fr 1fr;
    }

    .home-service-card--lead {
        min-height: 420px;
        grid-column: span 2;
    }

    .home-service-card--lead .home-service-card__content {
        width: 50%;
    }

    .home-service-card--navy,
    .home-service-card--aqua {
        min-height: 400px;
    }

    .home-service-card__terminal {
        right: 6%;
        width: 38%;
    }

    .home-ai__grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
        gap: 38px;
    }

    .home-ai__workflow-body {
        padding: 26px;
    }

    .home-recruit__inner {
        grid-template-columns: minmax(280px, 0.85fr) minmax(400px, 1.15fr);
        gap: 32px;
    }

    .home-ai__flow li {
        padding: 15px;
    }

    .home-capability__stack > div {
        padding-left: 28px;
        grid-template-columns: 120px 1fr;
    }

    .home-capability__stack strong {
        padding-right: 0;
    }

    .home-capability__stack i {
        display: none;
    }

    .home-updates__grid {
        grid-template-columns: 1fr;
        gap: 70px;
    }

    .home-news__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
    }

    .home-news__row {
        min-height: 160px;
        padding: 24px 28px 24px 0;
    }

    .home-journal__grid {
        grid-template-columns: 1.25fr 1fr 1fr;
    }

    .home-journal__card.is-feature {
        grid-row: auto;
    }

    .home-journal__card.is-compact {
        display: block;
    }

    .home-journal__card.is-compact .home-journal__visual {
        aspect-ratio: 1.27;
    }
}

@media (min-width: 769px) and (max-width: 900px) {
    .home-hero__inner {
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
        gap: 20px;
    }

    .home-hero__actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .home-cta {
        width: 224px;
    }

    .home-engine__bar {
        padding-inline: 16px;
    }

    .home-engine__bar > div > span {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .home-products__heading {
        display: block;
    }

    .home-products__lead {
        max-width: 620px;
        margin-top: 28px;
    }

    .home-products__grid {
        grid-template-columns: 1fr;
    }

    .home-products__side {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .home-product-feature__hero {
        grid-template-columns: 1fr;
    }

    .home-restaurant-demo {
        max-width: 680px;
    }

    .home-product-change {
        grid-template-columns: 1fr;
    }

    .home-product-change__arrow {
        min-height: 62px;
        flex-direction: row;
    }

    .home-product-change__arrow span {
        transform: rotate(90deg);
    }

    .home-product-others {
        grid-template-columns: 1fr;
    }

    .home-product-others .home-product-card--core,
    .home-product-others .home-product-card--business {
        min-height: auto;
    }
}

@media (max-width: 768px) {
    .home-page {
        --content: calc(100% - 40px);
        --home-radius-lg: 20px;
        --home-radius-md: 16px;
    }

    .home-hero {
        min-height: auto;
    }

    .home-hero::before {
        top: 51%;
        bottom: auto;
        left: 0;
        width: 100%;
        height: 1px;
        transform: rotate(-5deg);
    }

    .home-hero::after {
        top: 58%;
        right: -46%;
        width: 116vw;
    }

    .home-hero__inner {
        display: block;
        padding-block: 58px 78px;
    }

    .home-eyebrow {
        margin-bottom: 23px;
        font-size: 8px;
        letter-spacing: 0.14em;
    }

    .home-hero h1 {
        margin-bottom: 22px;
        font-size: clamp(34px, 10vw, 42px);
        line-height: 1.3;
    }

    .home-hero h1 > span {
        white-space: normal;
    }

    .home-hero__lead {
        margin-bottom: 27px;
        font-size: 13px;
        line-height: 1.9;
    }

    .home-hero__actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .home-hero__actions .home-cta {
        width: min(100%, 280px);
        min-height: 66px;
    }

    .home-hero__visual {
        position: relative;
        right: auto;
        bottom: auto;
        width: calc(100% + 22px);
        margin: 52px -11px 0;
    }

    .home-engine {
        border-radius: 12px 24px 12px 12px;
        box-shadow: 8px 9px 0 #dceaf3;
        transform: none;
    }

    .home-engine__bar {
        height: 48px;
        padding-inline: 14px;
        font-size: 6px;
    }

    .home-engine__bar > b {
        font-size: 0;
    }

    .home-engine__bar > b::after {
        font-size: 6px;
        content: "稼働中";
    }

    .home-engine__viewport svg {
        width: 108%;
        margin-left: -4%;
    }

    .home-engine__telemetry {
        right: 14px;
        bottom: 7px;
        left: 14px;
        font-size: 5px;
        gap: 8px;
    }

    .home-engine__telemetry small {
        font-size: 5px;
    }

    .home-engine__telemetry strong {
        font-size: 6px;
    }

    .home-hero__scroll {
        display: none;
    }

    .home-products {
        padding-block: 82px 88px;
        scroll-margin-top: 74px;
    }

    .home-products::before {
        right: 20px;
        width: 44%;
    }

    .home-products__heading {
        display: block;
    }

    .home-products__lead {
        margin-top: 27px;
        font-size: 13px;
        line-height: 1.9;
    }

    .home-products__grid {
        display: block;
    }

    .home-product-feature {
        padding: 22px;
        border-radius: 3px 18px 3px 3px;
        box-shadow: 6px 8px 0 #e2edf3;
    }

    .home-product-feature__header {
        align-items: flex-start;
    }

    .home-product-feature__hero {
        display: block;
        padding: 45px 0 38px;
    }

    .home-product-feature__copy h3 {
        font-size: 38px;
    }

    .home-product-feature__copy > strong {
        font-size: 17px;
    }

    .home-product-feature__copy > span {
        font-size: 11px;
    }

    .home-restaurant-demo {
        margin-top: 36px;
        box-shadow: 6px 8px 0 #dfeaf0;
    }

    .home-restaurant-demo__bar > b {
        max-width: 130px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .home-restaurant-demo__body {
        display: block;
        min-height: 0;
    }

    .home-restaurant-demo__nav {
        display: none;
    }

    .home-restaurant-demo__main {
        padding: 17px;
    }

    .home-restaurant-demo__title > b {
        padding-inline: 7px;
    }

    .home-restaurant-demo__metrics span {
        padding: 10px;
    }

    .home-restaurant-demo__orders > div {
        grid-template-columns: 25px 1fr;
    }

    .home-restaurant-demo__orders em {
        display: none;
    }

    .home-product-change {
        display: block;
        padding-top: 24px;
    }

    .home-product-change__panel {
        padding: 21px 18px;
    }

    .home-product-change__panel header {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .home-product-change__arrow {
        min-height: 72px;
        flex-direction: row;
    }

    .home-product-change__arrow span {
        transform: rotate(90deg);
    }

    .home-product-feature__outcomes {
        display: block;
        margin-top: 23px;
    }

    .home-product-feature__outcomes p {
        padding: 18px 4px;
        border-right: 0;
        border-bottom: 1px solid #d9e5ec;
    }

    .home-product-feature__outcomes p:last-child {
        border-bottom: 0;
    }

    .home-product-feature__footer {
        padding-top: 23px;
        align-items: flex-start;
        flex-direction: column;
    }

    .home-product-feature__footer a {
        width: 100%;
        min-height: 50px;
        text-align: center;
    }

    .home-product-others {
        display: block;
        margin-top: 16px;
    }

    .home-product-card {
        padding: 24px;
    }

    .home-product-card--core {
        min-height: auto;
        border-radius: 3px 18px 3px 3px;
    }

    .home-product-card__header {
        align-items: flex-start;
    }

    .home-product-status {
        font-size: 6px;
        text-align: right;
        white-space: normal;
    }

    .home-product-card__body {
        display: block;
        margin-top: 52px;
    }

    .home-product-card__copy h3 {
        font-size: 28px;
    }

    .home-product-card__copy > strong {
        font-size: 15px;
    }

    .home-product-console {
        margin-top: 36px;
    }

    .home-product-console__identity {
        grid-template-columns: 42px 1fr auto;
        gap: 10px;
    }

    .home-product-console__identity > i {
        width: 42px;
        height: 42px;
    }

    .home-product-card__footer {
        margin-top: 36px;
        align-items: flex-start;
        flex-direction: column;
    }

    .home-products__side {
        display: block;
    }

    .home-product-card--restaurant,
    .home-product-card--business {
        min-height: 330px;
        margin-top: 14px;
    }

    .home-product-flow {
        margin-top: 34px;
    }

    .home-product-flow span {
        width: 44px;
        height: 44px;
    }

    .home-product-card--business .home-product-card__copy {
        margin-top: 48px;
    }

    .home-product-progress {
        margin-top: 34px;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .home-product-others .home-product-card--core,
    .home-product-others .home-product-card--business {
        min-height: auto;
    }

    .home-product-others .home-product-card__body {
        display: block;
        margin-top: 52px;
    }

    .home-products__principle {
        margin-top: 42px;
        grid-template-columns: 1fr 1fr;
        gap: 24px 16px;
    }

    .home-products__principle > i {
        display: none;
    }

    .home-proof__inner {
        display: block;
        padding-block: 27px 31px;
    }

    .home-proof__label {
        display: flex;
        margin-bottom: 23px;
        align-items: center;
        justify-content: space-between;
    }

    .home-proof__label p {
        font-size: 11px;
    }

    .home-proof__steps {
        grid-template-columns: 1fr;
    }

    .home-proof__steps li {
        min-height: 62px;
        padding-left: 39px;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        border-left: 0;
    }

    .home-proof__steps li > span {
        top: 23px;
        left: 2px;
    }

    .home-statement {
        display: block;
        padding-block: 82px 92px;
    }

    .home-statement > .home-section-index {
        margin-bottom: 35px;
    }

    .home-statement__content {
        display: block;
    }

    .home-statement h2,
    .home-section-heading h2 {
        font-size: clamp(31px, 9vw, 39px);
    }

    .home-statement__body {
        padding-top: 40px;
    }

    .home-statement__body > p {
        font-size: 14px;
        line-height: 2;
    }

    .home-statement__media {
        margin-top: 48px;
    }

    .home-statement__media img {
        height: 360px;
        border-radius: 2px 18px 2px 2px;
        object-position: 52% center;
        box-shadow: 8px 9px 0 #deebf4;
    }

    .home-statement__media figcaption,
    .home-ai__photo figcaption {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .home-services,
    .home-ai,
    .home-capability,
    .home-updates {
        padding-block: 84px 94px;
    }

    .home-section-heading {
        display: block;
        margin-bottom: 38px;
    }

    .home-section-heading > .home-section-index {
        margin-bottom: 34px;
    }

    .home-section-heading > .home-arrow-link {
        margin-top: 26px;
    }

    .home-service-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .home-service-card,
    .home-service-card--lead,
    .home-service-card--navy,
    .home-service-card--aqua {
        min-height: 360px;
        padding: 25px;
        grid-column: auto;
    }

    .home-service-card--lead .home-service-card__content {
        width: 100%;
    }

    .home-service-card__content > span {
        max-width: 88%;
    }

    .home-service-card__terminal {
        top: 80px;
        right: -38px;
        width: 62%;
        opacity: 0.72;
    }

    .home-service-card__symbol {
        top: 74px;
    }

    .home-service-card__spark {
        top: 65px;
    }

    .home-ai__heading .home-ai__lead {
        max-width: 100%;
        padding-top: 30px;
    }

    .home-ai__grid {
        display: block;
    }

    .home-ai__workflow-body {
        min-height: auto;
        padding: 22px;
    }

    .home-ai__flow {
        grid-template-columns: 1fr;
    }

    .home-ai__flow li {
        min-height: 86px;
    }

    .home-ai__content {
        padding: 52px 0 0;
    }

    .home-ai__photo {
        margin-bottom: 38px;
    }

    .home-ai__photo img {
        height: 240px;
        border-radius: 2px 17px 2px 2px;
        box-shadow: 7px 8px 0 #dcebf4;
    }

    .home-ai__content h3 {
        font-size: 31px;
    }

    .home-ai__workflow::after {
        right: 5px;
        font-size: 140px;
    }

    .home-section-heading--dark .home-capability__lead {
        max-width: 100%;
        padding-top: 30px;
    }

    .home-capability__grid {
        display: block;
        margin-top: 50px;
    }

    .home-capability__manifesto {
        min-height: 300px;
        padding: 34px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.13);
    }

    .home-capability__manifesto > strong {
        font-size: 31px;
    }

    .home-capability__stack > div {
        display: block;
        min-height: 116px;
        padding: 25px 0;
    }

    .home-capability__stack > div:hover {
        padding-left: 0;
    }

    .home-capability__stack strong {
        display: block;
        margin-top: 8px;
        font-size: 19px;
    }

    .home-capability__ambient {
        right: -23%;
        font-size: 76vw;
    }

    .home-updates__grid {
        gap: 58px;
    }

    .home-news__list {
        display: block;
    }

    .home-news__row {
        min-height: 118px;
        padding: 22px 34px 22px 0;
    }

    .home-journal__grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .home-journal__card.is-compact {
        display: grid;
        grid-template-columns: 0.8fr 1fr;
    }

    .home-journal__card.is-compact .home-journal__visual {
        aspect-ratio: 1;
    }

    .home-journal__card.is-feature .home-journal__visual {
        aspect-ratio: 1.36;
    }

    .home-recruit {
        min-height: auto;
        padding-block: 64px;
    }

    .home-recruit__inner {
        display: block;
        border-radius: 3px 18px 3px 3px;
        box-shadow: 7px 8px 0 #e0ebf1;
    }

    .home-recruit__copy {
        padding: 38px 24px 34px;
    }

    .home-recruit h2 {
        font-size: 30px;
    }

    .home-recruit__visual {
        width: 100%;
        height: auto;
        min-height: 0;
        margin: 0;
        aspect-ratio: 1.5 / 1;
        border-radius: 0;
        box-shadow: none;
    }

    .home-recruit__visual img {
        object-position: 45% center;
    }

}

/* Light interactive product scene */
.home-hero__title {
    position: relative;
    perspective: 900px;
}

.home-hero__slogan-line {
    position: relative;
    isolation: isolate;
    width: max-content;
    color: transparent;
    background: linear-gradient(180deg, #2d9be5 0%, #247fce 44%, #1266ad 100%);
    background-clip: text;
    filter: drop-shadow(0 12px 18px rgba(20, 106, 169, 0.12));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.home-hero__slogan-line::before {
    position: absolute;
    z-index: -2;
    inset: 0;
    color: #0b5d9c;
    content: attr(data-shadow);
    opacity: 0.2;
    text-shadow: none;
    transform: translate(3px, 5px);
    -webkit-text-fill-color: #0b5d9c;
}

.home-hero__accent--change {
    color: transparent;
    background: linear-gradient(180deg, #ffc04f 0%, #f3a11f 58%, #d77d08 100%);
    background-clip: text;
    filter: drop-shadow(0 5px 0 rgba(207, 118, 0, 0.13));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.home-hero__lead {
    position: relative;
    width: fit-content;
    max-width: 550px;
    padding: 13px 28px 13px 21px;
    border: 1px solid #d7e7f0;
    border-left: 3px solid #46b9d1;
    border-radius: 2px 13px 3px 2px;
    color: #304c63;
    background: #ffffff;
    box-shadow: 8px 8px 0 #e9f3f8;
    line-height: 1.9;
}

.home-hero__lead::before {
    position: absolute;
    top: 22px;
    left: -6px;
    width: 9px;
    height: 9px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    content: "";
    background: #2b91d8;
    box-shadow: 0 0 0 1px #2b91d8;
}

.home-engine {
    --engine-blue: #247fd1;
    --engine-cyan: #39bfd2;
    --engine-amber: #efa532;
    --engine-navy: #123b5a;
    --scene-x: 0px;
    --scene-y: 0px;
    --eye-x: 0px;
    --eye-y: 0px;
    --robot-shift-x: -4px;
    --robot-shift-y: 0px;
    --robot-tilt: -1deg;
    min-height: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    color: var(--engine-navy);
    background: transparent;
    box-shadow: none;
    transform: none;
    transition: none;
}

.home-engine:hover,
.home-engine:focus-within {
    border-color: transparent;
    box-shadow: none;
}

.home-engine[data-active-stage="build"] {
    --robot-shift-x: 5px;
    --robot-shift-y: -4px;
    --robot-tilt: 0.8deg;
}

.home-engine[data-active-stage="grow"] {
    --robot-shift-x: -2px;
    --robot-shift-y: -8px;
    --robot-tilt: -1.2deg;
}

.home-engine::before,
.home-engine::after {
    display: none;
}

.home-engine__bar {
    display: none;
}

.home-engine__bar > div > i {
    width: 6px;
    height: 6px;
    background: #bfd2de;
}

.home-engine__bar > div > i:first-child {
    background: var(--engine-blue);
}

.home-engine__bar > div > i:nth-child(2) {
    background: var(--engine-cyan);
}

.home-engine__bar > div > i:nth-child(3) {
    background: #88a9bb;
}

.home-engine__bar > b {
    color: #3f6f84;
}

.home-engine__bar > b > i {
    background: #34c99b;
    box-shadow: 0 0 0 4px rgba(52, 201, 155, 0.13);
}

.home-engine__viewport {
    min-height: 0;
    overflow: visible;
    background: transparent;
}

.home-engine__viewport::before {
    display: none;
}

.home-engine__scene {
    position: relative;
    height: 430px;
    overflow: visible;
    background: radial-gradient(
        ellipse at 56% 50%,
        rgba(255, 255, 255, 0.82) 0 21%,
        rgba(225, 244, 253, 0.54) 48%,
        transparent 72%
    );
}

.home-engine__scene::before {
    display: none;
}

.home-engine__weather {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.home-engine__weather-sun,
.home-engine__weather-rain,
.home-engine__weather-snow {
    position: absolute;
    display: block;
    visibility: hidden;
    opacity: 0;
    transition: opacity 600ms ease;
}

.home-engine__weather-sun {
    top: 27px;
    right: 48px;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(255, 224, 135, 0.48) 0 15%,
        rgba(255, 221, 119, 0.2) 32%,
        transparent 68%
    );
    animation: home-engine-weather-sun 5.2s ease-in-out infinite;
}

.home-engine__weather-rain,
.home-engine__weather-rain::after {
    position: absolute;
    display: block;
    top: -26px;
    left: 9%;
    width: 2px;
    height: 14px;
    border-radius: 999px;
    content: "";
    background: rgba(58, 165, 217, 0.34);
    box-shadow:
        72px 18px 0 rgba(58, 165, 217, 0.28),
        148px 70px 0 rgba(58, 165, 217, 0.32),
        236px 27px 0 rgba(58, 165, 217, 0.25),
        326px 88px 0 rgba(58, 165, 217, 0.34),
        418px 42px 0 rgba(58, 165, 217, 0.28),
        510px 105px 0 rgba(58, 165, 217, 0.3),
        603px 12px 0 rgba(58, 165, 217, 0.24);
    transform: rotate(12deg);
    animation: home-engine-weather-rain 1.15s linear infinite;
}

.home-engine__weather-rain::after {
    top: 156px;
    left: 32px;
}

.home-engine__weather-snow,
.home-engine__weather-snow::after {
    position: absolute;
    display: block;
    top: 6px;
    left: 8%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    content: "";
    background: rgba(112, 200, 235, 0.68);
    box-shadow:
        68px 36px 0 1px rgba(255, 255, 255, 0.9),
        143px 4px 0 rgba(98, 190, 229, 0.7),
        221px 73px 0 1px rgba(255, 255, 255, 0.86),
        304px 26px 0 rgba(88, 183, 224, 0.72),
        392px 86px 0 1px rgba(255, 255, 255, 0.88),
        478px 17px 0 rgba(97, 190, 229, 0.72),
        574px 60px 0 1px rgba(255, 255, 255, 0.86);
    filter: drop-shadow(0 1px 2px rgba(53, 137, 181, 0.28));
    animation: home-engine-weather-snow 4.8s linear infinite;
}

.home-engine__weather-snow::after {
    top: 138px;
    left: 44px;
    animation-delay: -2.1s;
}

.home-engine[data-weather="sun"] .home-engine__weather-sun,
.home-engine[data-weather="rain"] .home-engine__weather-rain,
.home-engine[data-weather="snow"] .home-engine__weather-snow {
    visibility: visible;
    opacity: 1;
}

.home-engine__scene::after {
    position: absolute;
    z-index: 1;
    right: 27%;
    bottom: 31px;
    left: 27%;
    height: 38px;
    border-radius: 50%;
    content: "";
    background: radial-gradient(ellipse, rgba(63, 173, 218, 0.18), transparent 70%);
    box-shadow: none;
    animation: home-engine-platform 3.8s ease-in-out infinite;
}

.home-engine__robot-motion {
    position: absolute;
    z-index: 3;
    top: -44px;
    bottom: auto;
    left: 53%;
    width: 114%;
    height: auto;
    aspect-ratio: 3 / 2;
    transform: translate3d(
        calc(-50% + var(--scene-x) + var(--robot-shift-x)),
        calc(var(--scene-y) + var(--robot-shift-y)),
        0
    ) rotate(var(--robot-tilt));
    transform-origin: 50% 47%;
    transition: transform 520ms cubic-bezier(0.2, 0.78, 0.24, 1);
    will-change: transform;
}

.home-engine__robot-body {
    position: relative;
    width: 100%;
    height: 100%;
    transform-origin: 52% 43%;
    animation: home-engine-robot-float 4.8s ease-in-out infinite;
    will-change: transform;
}

.home-engine__robot {
    display: block;
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 20px 24px rgba(50, 131, 177, 0.16));
    object-fit: contain;
}

.home-engine.is-reacting .home-engine__robot-body {
    animation: home-engine-robot-react 620ms cubic-bezier(0.2, 0.82, 0.28, 1) both;
}

.home-engine.is-spinning .home-engine__robot-body {
    animation: home-engine-robot-spin 1.35s cubic-bezier(0.4, 0.08, 0.2, 1) both;
}

.home-engine.is-running-away .home-engine__robot-body {
    animation: home-engine-robot-run 2.55s cubic-bezier(0.44, 0.04, 0.18, 1) both;
}

.home-engine.is-running-away .home-engine__robot-shadow {
    animation: home-engine-shadow-run 2.55s ease both;
}

.home-engine__blink {
    display: none;
}

.home-engine__blink::before,
.home-engine__blink::after {
    position: absolute;
    width: 6.5%;
    height: 11.2%;
    border-radius: 50%;
    content: "";
    opacity: 0;
    background:
        linear-gradient(
            to bottom,
            #061d35 0 47%,
            rgba(91, 230, 255, 0.98) 48% 54%,
            #061d35 55% 100%
        );
    box-shadow: 0 0 6px 3px rgba(6, 29, 53, 0.78);
    transform: scaleY(0.12);
    transform-origin: 50% 50%;
    animation: home-engine-eye-blink 5.6s ease-in-out infinite;
}

.home-engine__blink::before {
    top: 35.8%;
    left: 42.6%;
}

.home-engine__blink::after {
    top: 37%;
    left: 57%;
}

.home-engine__expression {
    position: absolute;
    z-index: 3;
    top: 30.8%;
    left: 38.6%;
    width: 29.6%;
    height: 20.4%;
    overflow: visible;
    opacity: 1;
    background: transparent;
    transform: rotate(0.4deg);
    pointer-events: none;
}

.home-engine__expression::before {
    content: none;
}

.home-engine__expression-eye,
.home-engine__expression-mouth,
.home-engine__expression-blush,
.home-engine__expression-tear {
    position: absolute;
    z-index: 2;
    display: block;
}

.home-engine__expression-eye {
    top: 23%;
    width: 20%;
    height: 42%;
    border: 2px solid rgba(112, 240, 255, 0.92);
    border-radius: 50%;
    background:
        radial-gradient(
            ellipse at center,
            rgba(5, 31, 53, 0.92) 0 55%,
            rgba(5, 31, 53, 0) 58%
        ),
        repeating-conic-gradient(
            from -4deg,
            #b5fbff 0deg 3deg,
            #48dff5 3deg 6deg,
            rgba(42, 176, 224, 0.48) 6deg 9deg
        );
    box-shadow:
        inset 0 0 9px rgba(121, 239, 255, 0.3),
        0 0 5px rgba(105, 236, 255, 0.82),
        0 0 12px rgba(44, 185, 238, 0.45);
    transform-origin: 50% 50%;
}

.home-engine__expression-eye::before {
    position: absolute;
    top: 19%;
    left: 22%;
    width: 56%;
    height: 62%;
    border-radius: 50%;
    content: "";
    background:
        radial-gradient(circle at 68% 20%, #ffffff 0 11%, rgba(214, 251, 255, 0.92) 12% 15%, transparent 16%),
        radial-gradient(circle at 49% 54%, #031421 0 62%, #0b3f67 65% 100%);
    box-shadow:
        inset -2px -3px 5px rgba(45, 190, 239, 0.24),
        0 0 5px rgba(86, 226, 255, 0.3);
    transform: translate3d(var(--eye-x), var(--eye-y), 0);
    transition: transform 90ms linear;
    will-change: transform;
}

.home-engine__expression-eye--left {
    left: 18%;
}

.home-engine__expression-eye--right {
    right: 18%;
}

.home-engine__expression-mouth {
    top: 68%;
    left: 45%;
    width: 10%;
    height: 9%;
    border-bottom: 4px solid #68eaff;
    border-radius: 0 0 50% 50%;
}

.home-engine[data-expression="normal"] .home-engine__expression-eye {
    animation: home-engine-expression-blink 5.6s ease-in-out infinite;
}

.home-engine__expression-blush {
    top: 60%;
    width: 15%;
    height: 12%;
    border-radius: 50%;
    opacity: 0;
    background: radial-gradient(ellipse, rgba(255, 126, 151, 0.75), transparent 70%);
    filter: blur(1px);
}

.home-engine__expression-blush--left {
    left: 8%;
}

.home-engine__expression-blush--right {
    right: 8%;
}

.home-engine__expression-tear {
    top: 53%;
    width: 7%;
    height: 32%;
    border-radius: 50% 50% 58% 58%;
    opacity: 0;
    background: linear-gradient(to bottom, #91f1ff, rgba(53, 177, 233, 0.72));
    box-shadow: 0 0 5px rgba(91, 220, 255, 0.72);
}

.home-engine__expression-tear--left {
    left: 27%;
}

.home-engine__expression-tear--right {
    right: 27%;
}

.home-engine[data-expression="cute"] .home-engine__expression-eye,
.home-engine[data-expression="grin"] .home-engine__expression-eye {
    top: 37%;
    height: 22%;
    border: 0;
    border-bottom: 6px solid #6cecff;
    border-radius: 0 0 50% 50%;
    background: transparent;
    box-shadow: 0 3px 7px rgba(71, 224, 255, 0.3);
}

.home-engine[data-expression="cute"] .home-engine__expression-eye::before,
.home-engine[data-expression="grin"] .home-engine__expression-eye::before,
.home-engine[data-expression="cry"] .home-engine__expression-eye::before {
    opacity: 0;
}

.home-engine[data-expression="cute"] .home-engine__expression-eye--left,
.home-engine[data-expression="grin"] .home-engine__expression-eye--left {
    transform: rotate(6deg);
}

.home-engine[data-expression="cute"] .home-engine__expression-eye--right,
.home-engine[data-expression="grin"] .home-engine__expression-eye--right {
    transform: rotate(-6deg);
}

.home-engine[data-expression="cute"] .home-engine__expression-mouth {
    top: 66%;
    left: 43%;
    width: 14%;
    height: 12%;
    border-bottom-width: 5px;
}

.home-engine[data-expression="cute"] .home-engine__expression-blush,
.home-engine[data-expression="blush"] .home-engine__expression-blush {
    opacity: 1;
}

.home-engine[data-expression="blush"] .home-engine__expression-mouth {
    top: 66%;
    left: 42%;
    width: 16%;
    height: 13%;
    border-bottom-width: 5px;
}

.home-engine[data-expression="grin"] .home-engine__expression-mouth {
    top: 61%;
    left: 33%;
    width: 34%;
    height: 24%;
    border: 2px solid rgba(198, 237, 248, 0.9);
    border-radius: 6px 6px 14px 14px;
    background: repeating-linear-gradient(
        90deg,
        #ffffff 0 20%,
        #d5e8ee 21% 23%,
        #ffffff 24% 45%
    );
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.26);
}

.home-engine[data-expression="cry"] .home-engine__expression-eye {
    top: 36%;
    height: 20%;
    border: 0;
    border-top: 6px solid #6cecff;
    border-radius: 50% 50% 0 0;
    background: transparent;
    box-shadow: none;
}

.home-engine[data-expression="cry"] .home-engine__expression-eye--left {
    transform: rotate(-8deg);
}

.home-engine[data-expression="cry"] .home-engine__expression-eye--right {
    transform: rotate(8deg);
}

.home-engine[data-expression="cry"] .home-engine__expression-mouth {
    top: 70%;
    left: 43%;
    width: 14%;
    height: 10%;
    border: 0;
    border-top: 5px solid #6cecff;
    border-radius: 50% 50% 0 0;
}

.home-engine[data-expression="cry"] .home-engine__expression-tear {
    opacity: 1;
    animation: home-engine-expression-tear 900ms ease-in infinite;
}

.home-engine[data-expression="cry"] .home-engine__expression-tear--right {
    animation-delay: -360ms;
}

.home-engine__robot-shadow {
    position: absolute;
    z-index: 2;
    bottom: 34px;
    left: 54%;
    width: 230px;
    height: 16px;
    border-radius: 50%;
    background: rgba(39, 135, 191, 0.1);
    filter: blur(10px);
    transform: translateX(-50%);
    animation: home-engine-shadow 4.8s ease-in-out infinite;
}

.home-engine__focus {
    position: absolute;
    z-index: 5;
    top: 76px;
    left: 8px;
    display: block;
    width: min(188px, 29%);
    min-width: 158px;
    min-height: 0;
    padding: 13px 15px 14px;
    border: 0;
    border-radius: 13px 13px 13px 5px;
    background: #ffffff;
    box-shadow: 4px 5px 0 rgba(154, 195, 216, 0.28);
    transform: translate3d(0, 0, 0);
}

.home-engine__focus::after {
    position: absolute;
    right: -12px;
    bottom: 15px;
    width: 14px;
    height: 18px;
    clip-path: polygon(0 0, 100% 54%, 0 100%);
    content: "";
    background: #ffffff;
}

.home-engine__focus.is-updating {
    animation: home-engine-focus-in 260ms ease both;
}

.home-engine__focus small {
    display: block;
    margin: 0;
    color: #617f92;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.home-engine__focus small span {
    color: var(--engine-blue);
    margin-left: 6px;
}

.home-engine__focus strong {
    display: block;
    margin: 6px 0 0;
    color: #143f5d;
    font-size: 14px;
    line-height: 1.45;
}

.home-engine__stages {
    display: grid;
    width: min(520px, 88%);
    height: 58px;
    margin: -7px auto 0;
    padding: 0;
    background: transparent;
    gap: 8px;
    grid-template-columns: repeat(3, 1fr);
}

.home-engine__stage {
    position: relative;
    display: flex;
    padding: 0 12px;
    border: 0;
    border-radius: 10px 10px 10px 4px;
    color: #567386;
    background: transparent;
    align-items: center;
    cursor: pointer;
    font-family: var(--font-jp);
    gap: 10px;
    text-align: left;
    box-shadow: none;
    transition: color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.home-engine__stage::before {
    display: none;
}

.home-engine__stage:hover,
.home-engine__stage:focus-visible,
.home-engine__stage.is-active {
    color: #173f5b;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 3px 4px 0 rgba(184, 213, 227, 0.26);
}

.home-engine__stage:focus-visible {
    z-index: 1;
    outline: 2px solid var(--engine-blue);
    outline-offset: -4px;
}

.home-engine__stage small {
    display: block;
    width: auto;
    height: auto;
    border: 0;
    border-radius: 0;
    color: #5c8297;
    font-size: 8px;
    font-weight: 800;
    transition: color 180ms ease;
}

.home-engine__stage.is-active small {
    color: var(--engine-blue);
    background: transparent;
}

.home-engine__stage span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.03em;
}

@keyframes home-engine-robot-float {
    0%,
    100% {
        transform: translate3d(0, 0, 0) rotate(-0.45deg) scale(1.08);
    }
    48% {
        transform: translate3d(0, -9px, 0) rotate(0.65deg) scale(1.09);
    }
    72% {
        transform: translate3d(0, -6px, 0) rotate(0.2deg) scale(1.085);
    }
}

@keyframes home-engine-robot-react {
    0% {
        transform: translate3d(0, 0, 0) rotate(0) scale(1.08);
    }
    42% {
        transform: translate3d(0, -13px, 0) rotate(2.2deg) scale(1.105);
    }
    72% {
        transform: translate3d(0, -5px, 0) rotate(-0.8deg) scale(1.09);
    }
    100% {
        transform: translate3d(0, 0, 0) rotate(0) scale(1.08);
    }
}

@keyframes home-engine-robot-spin {
    0% {
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1.08);
    }
    44% {
        transform: translate3d(0, -10px, 0) rotate(180deg) scale(0.96);
    }
    100% {
        transform: translate3d(0, 0, 0) rotate(360deg) scale(1.08);
    }
}

@keyframes home-engine-robot-run {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1.08);
    }
    30% {
        opacity: 1;
        transform: translate3d(116%, -20px, 0) rotate(12deg) scale(0.92);
    }
    39% {
        opacity: 0;
        transform: translate3d(132%, -25px, 0) rotate(15deg) scale(0.88);
    }
    45% {
        opacity: 0;
        transform: translate3d(-128%, 18px, 0) rotate(-9deg) scale(0.9);
    }
    58% {
        opacity: 1;
        transform: translate3d(-92%, 10px, 0) rotate(-7deg) scale(0.94);
    }
    84% {
        opacity: 1;
        transform: translate3d(5%, -7px, 0) rotate(2deg) scale(1.1);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1.08);
    }
}

@keyframes home-engine-shadow-run {
    0%,
    100% {
        opacity: 0.58;
        transform: translateX(-50%) scale(1);
    }
    28%,
    66% {
        opacity: 0;
        transform: translateX(-50%) scale(0.55);
    }
}

@keyframes home-engine-weather-sun {
    0%,
    100% {
        opacity: 0.72;
        transform: scale(0.94);
    }
    50% {
        opacity: 1;
        transform: scale(1.08);
    }
}

@keyframes home-engine-weather-rain {
    from {
        transform: translate3d(0, -42px, 0) rotate(12deg);
    }
    to {
        transform: translate3d(-12px, 185px, 0) rotate(12deg);
    }
}

@keyframes home-engine-weather-snow {
    0% {
        transform: translate3d(0, -28px, 0) rotate(0);
    }
    50% {
        transform: translate3d(18px, 116px, 0) rotate(110deg);
    }
    100% {
        transform: translate3d(-9px, 242px, 0) rotate(220deg);
    }
}

@keyframes home-engine-expression-tear {
    0% {
        opacity: 0.48;
        transform: translateY(-5px) scaleY(0.7);
    }
    34% {
        opacity: 1;
    }
    100% {
        opacity: 0.48;
        transform: translateY(11px) scaleY(1.08);
    }
}

@keyframes home-engine-eye-blink {
    0%,
    40%,
    43%,
    100% {
        opacity: 0;
        transform: scaleY(0.12);
    }
    40.7%,
    42.2% {
        opacity: 1;
        transform: scaleY(1);
    }
}

@keyframes home-engine-expression-blink {
    0%,
    39%,
    44%,
    100% {
        transform: scaleY(1);
    }
    41.5% {
        transform: scaleY(0.08);
    }
}

@keyframes home-engine-platform {
    0%,
    100% {
        opacity: 0.58;
        transform: scale(0.92);
    }
    50% {
        opacity: 1;
        transform: scale(1.04);
    }
}

@keyframes home-engine-shadow {
    0%,
    100% {
        opacity: 0.58;
        transform: translateX(-50%) scale(1);
    }
    48% {
        opacity: 0.34;
        transform: translateX(-50%) scale(0.84);
    }
}

@keyframes home-engine-focus-in {
    from {
        opacity: 0.55;
        transform: translate3d(0, 5px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 1120px) {
    .home-engine__chat {
        margin-top: -26px;
        transform: none;
    }

    .home-engine__scene {
        height: 390px;
    }

    .home-engine__robot-motion {
        top: -34px;
        width: 120%;
    }

    .home-engine__focus {
        top: 66px;
        left: 2px;
        width: min(172px, 30%);
        min-width: 150px;
    }
}

@media (max-width: 720px) {
    .home-engine__chat {
        margin-top: 2px;
        transform: none;
    }

    .home-hero__slogan-line::before {
        transform: translate(2px, 3px);
    }

    .home-hero__lead {
        padding: 11px 15px 11px 17px;
        box-shadow: 6px 6px 0 #e9f3f8;
        line-height: 1.8;
    }

    .home-engine {
        min-height: 0;
        overflow: visible;
        border-radius: 0;
        box-shadow: none;
    }

    .home-engine__bar {
        height: 46px;
        padding-inline: 14px;
    }

    .home-engine__bar > b {
        font-size: 6px;
    }

    .home-engine__bar > b::after {
        content: none;
    }

    .home-engine__viewport {
        min-height: 0;
        overflow: visible;
    }

    .home-engine__scene {
        height: 310px;
        overflow: visible;
    }

    .home-engine__robot-motion {
        top: -2px;
        bottom: auto;
        left: 56%;
        width: 154%;
        height: auto;
    }

    .home-engine__focus {
        top: 24px;
        left: 0;
        width: 132px;
        min-width: 0;
        padding: 10px 11px 11px;
        border-radius: 10px 10px 10px 4px;
        box-shadow: 4px 5px 0 rgba(154, 195, 216, 0.3);
    }

    .home-engine__focus small {
        margin: 0;
        font-size: 7px;
    }

    .home-engine__focus strong {
        margin-top: 4px;
        font-size: 11px;
        line-height: 1.45;
    }

    .home-engine__stages {
        width: 100%;
        height: 58px;
        margin-top: -5px;
        gap: 3px;
    }

    .home-engine__stage {
        padding-inline: 8px;
        justify-content: center;
        gap: 5px;
    }

    .home-engine__stage small {
        width: auto;
        height: auto;
        flex: 0 0 auto;
        font-size: 7px;
    }

    .home-engine__stage span {
        font-size: 8px;
        line-height: 1.35;
    }
}

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

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }

    .home-engine {
        --scene-x: 0px !important;
        --scene-y: 0px !important;
        --eye-x: 0px !important;
        --eye-y: 0px !important;
    }
}

/* Final homepage polish cascade */
@media (min-width: 1121px) {
    .home-page .site-header:not(.is-scrolled),
    .home-page .home-hero {
        background: transparent;
    }
}

.home-products__actions {
    display: flex;
    min-height: 88px;
    margin-top: 28px;
    padding: 17px 18px 17px 22px;
    border: 1px solid #d4e3ec;
    border-radius: 16px 5px 16px 16px;
    align-items: center;
    justify-content: space-between;
    color: #17384f;
    background: rgba(255, 255, 255, 0.74);
    box-shadow:
        6px 7px 0 #deebf2,
        inset 0 1px 0 #ffffff;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    gap: 28px;
}

.home-products__actions-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.home-products__actions-copy span {
    color: #4583aa;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.home-products__actions-copy strong {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.015em;
}

.home-products__action-links {
    display: flex;
    flex: 0 0 auto;
    gap: 10px;
}

.home-products--simple .home-products__library-link,
.home-products__consult-link {
    display: inline-flex;
    width: auto;
    min-height: 52px;
    padding: 0 18px;
    margin: 0;
    border: 1px solid #174f78;
    border-radius: 10px 10px 3px 10px;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 800;
    gap: 10px;
    transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

.home-products--simple .home-products__library-link {
    color: #ffffff;
    background: #174f78;
    box-shadow: none;
}

.home-products__consult-link {
    border-color: #b6d0df;
    color: #24506d;
    background: rgba(240, 249, 253, 0.78);
}

.home-products__library-link svg,
.home-products__consult-link svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.home-products--simple .home-products__library-link:hover,
.home-products__consult-link:hover {
    border-color: #1976d2;
    color: #ffffff;
    background: #1976d2;
    box-shadow: 4px 4px 0 #b9d9e9;
    transform: translate(-2px, -2px);
}

@media (max-width: 880px) {
    .home-products__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-products__action-links {
        width: 100%;
    }

    .home-products--simple .home-products__library-link,
    .home-products__consult-link {
        flex: 1 1 0;
    }
}

@media (max-width: 560px) {
    .home-products__actions {
        padding: 18px;
    }

    .home-products__action-links {
        flex-direction: column;
    }

    .home-products--simple .home-products__library-link,
    .home-products__consult-link {
        width: 100%;
    }
}

/* 首页产品区：将插画、产品信息和入口收束为一层目录结构 */
.home-products--simple {
    padding-block: clamp(76px, 7.5vw, 104px);
    background: #f4f8fb;
}

.home-products--simple .home-products__heading {
    display: grid;
    margin-bottom: 32px;
    align-items: end;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 410px);
    gap: clamp(36px, 6vw, 78px);
}

.home-products__heading-main {
    display: block;
}

.home-products__heading-copy .section-kicker {
    display: flex;
    margin-bottom: 12px;
    align-items: center;
    color: #357899;
    font-size: 10px;
    gap: 10px;
}

.home-products__heading-copy .section-kicker::before {
    width: 22px;
    height: 2px;
    content: "";
    background: #1c83c9;
}

.home-products--simple .home-products__heading h2 {
    max-width: 780px;
    font-size: clamp(30px, 3vw, 42px);
    letter-spacing: -0.045em;
    line-height: 1.28;
}

.home-products--simple .home-products__lead {
    max-width: 410px;
    padding-left: 18px;
    border-left: 2px solid #b9d8e9;
    color: #526b7d;
    font-size: 12px;
    line-height: 1.9;
}

.home-product-teasers {
    gap: 20px;
}

.home-product-teaser,
.home-product-teaser--restaurant,
.home-product-teaser--hotel,
.home-product-teaser--property {
    display: grid;
    overflow: hidden;
    border: 1px solid #cfdee7;
    border-radius: 4px 14px 4px 4px;
    background: #ffffff;
    box-shadow: 4px 5px 0 #deebf2;
    grid-template-rows: auto 1fr;
}

.home-product-teaser--hotel {
    border-radius: 10px 4px 4px 4px;
}

.home-product-teaser--property {
    border-radius: 4px 4px 14px 4px;
}

.home-product-teaser:hover {
    border-color: #8fbcdc;
    box-shadow: 6px 7px 0 #cfe2ec;
    transform: translate(-2px, -2px);
}

.home-product-teaser__visual {
    position: relative;
    aspect-ratio: 16 / 9;
    border-bottom: 1px solid #d8e5ec;
}

.home-product-teaser__status {
    position: absolute;
    top: 13px;
    right: 13px;
    display: inline-flex;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid rgba(211, 170, 67, 0.3);
    border-radius: 3px;
    align-items: center;
    color: #876c27;
    background: rgba(255, 253, 247, 0.94);
    font-size: 8px;
    font-style: normal;
    gap: 7px;
}

.home-product-teaser__status i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #dda927;
}

.home-product-teaser__status b {
    font-weight: 800;
}

.home-product-teaser__status.is-live {
    border-color: rgba(39, 189, 143, 0.28);
    color: #157957;
    background: rgba(247, 255, 252, 0.95);
}

.home-product-teaser__status.is-live i {
    background: #27bd8f;
}

.home-product-teaser__body {
    display: flex;
    min-height: 184px;
    padding: 18px 18px 16px;
    flex-direction: column;
}

.home-product-teaser__meta {
    display: flex;
    min-height: 0;
    padding: 0;
    border: 0;
    align-items: center;
    gap: 9px;
}

.home-product-teaser__icon {
    width: 25px;
    height: 25px;
    border-radius: 6px 6px 2px 6px;
}

.home-product-teaser__icon svg {
    width: 13px;
    height: 13px;
}

.home-product-teaser__meta > small {
    color: #597487;
    font-size: 9px;
    font-weight: 800;
}

.home-product-teaser__copy {
    padding: 15px 0 0;
}

.home-product-teaser__copy h3 {
    min-height: 0;
    margin-bottom: 7px;
    font-size: clamp(18px, 1.55vw, 21px);
    line-height: 1.4;
}

.home-product-teaser__copy p {
    font-size: 11px;
    line-height: 1.7;
}

.home-product-teaser__link {
    min-height: 0;
    padding: 15px 0 0;
    margin-top: auto;
    border: 0;
    justify-content: flex-start;
    color: #27658d;
    gap: 11px;
}

.home-products__actions {
    min-height: 0;
    margin-top: 24px;
    padding: 16px 18px;
    border: 1px solid #d2e0e8;
    border-radius: 4px 12px 4px 4px;
    background: #ffffff;
    box-shadow: 4px 5px 0 #deebf2;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.home-products__actions-copy strong {
    font-size: 12px;
}

.home-products--simple .home-products__library-link,
.home-products__consult-link {
    min-height: 46px;
    border-radius: 4px 8px 4px 4px;
}

@media (max-width: 1100px) {
    .home-products--simple .home-products__heading {
        align-items: start;
        grid-template-columns: 1fr;
        gap: 17px;
    }

    .home-products--simple .home-products__lead {
        max-width: 620px;
    }

    .home-product-teasers {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-product-teaser {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
    }

    .home-product-teaser__visual {
        grid-row: auto;
    }
}

@media (max-width: 720px) {
    .home-products--simple {
        padding-block: 68px 74px;
    }

    .home-products--simple .home-products__heading {
        margin-bottom: 26px;
    }

    .home-products--simple .home-products__heading h2 {
        font-size: 29px;
    }

    .home-products--simple .home-products__lead {
        padding-left: 14px;
    }

    .home-product-teasers {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .home-product-teaser__body {
        min-height: 174px;
    }
}

/* 精简首页：用可核对的公司信息替代空泛的大图叙事 */
.home-company-snapshot {
    padding-block: 86px 96px;
    background: #f5f9fc;
}

.home-company-snapshot__inner {
    display: grid;
    padding: clamp(34px, 4.2vw, 58px);
    border: 1px solid #cbdce7;
    border-radius: 4px 24px 4px 4px;
    background: #ffffff;
    box-shadow: 10px 10px 0 #deebf3;
    grid-template-columns: minmax(0, 0.92fr) minmax(390px, 1.08fr);
    gap: clamp(46px, 6vw, 86px);
    align-items: center;
}

.home-company-snapshot__copy .section-kicker {
    margin: 0 0 17px;
}

.home-company-snapshot__copy h2 {
    margin: 0;
    color: var(--navy);
    font-size: clamp(32px, 3.6vw, 48px);
    font-weight: 700;
    letter-spacing: -0.055em;
    line-height: 1.42;
}

.home-company-snapshot__copy > p:not(.section-kicker) {
    max-width: 560px;
    margin: 24px 0 0;
    color: #506578;
    font-size: 14px;
    line-height: 2;
}

.home-company-snapshot__link {
    display: inline-flex;
    min-height: 44px;
    padding: 0 17px;
    margin-top: 28px;
    border: 1px solid #174f78;
    border-radius: 3px 10px 3px 3px;
    align-items: center;
    color: #174f78;
    font-size: 11px;
    font-weight: 800;
    transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.home-company-snapshot__link:hover {
    color: #ffffff;
    background: #174f78;
    transform: translate(-2px, -2px);
}

.home-company-snapshot__facts {
    padding: 0;
    margin: 0;
    border-top: 1px solid #b9cedc;
}

.home-company-snapshot__facts > div {
    display: grid;
    min-height: 82px;
    padding: 20px 4px;
    border-bottom: 1px solid #d5e2ea;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
}

.home-company-snapshot__facts dt {
    color: #4383aa;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.home-company-snapshot__facts dd {
    margin: 0;
    color: var(--navy);
    font-size: clamp(15px, 1.5vw, 19px);
    font-weight: 700;
    line-height: 1.55;
}

.home-updates {
    padding-block: 98px 116px;
}

@media (max-width: 900px) {
    .home-company-snapshot__inner {
        grid-template-columns: 1fr;
        gap: 44px;
    }
}

@media (max-width: 560px) {
    .home-company-snapshot {
        padding-block: 58px 68px;
    }

    .home-company-snapshot__inner {
        padding: 28px 22px 30px;
        border-radius: 3px 16px 3px 3px;
        box-shadow: 7px 7px 0 #deebf3;
        gap: 34px;
    }

    .home-company-snapshot__copy h2 {
        font-size: 30px;
    }

    .home-company-snapshot__copy > p:not(.section-kicker) {
        margin-top: 18px;
        font-size: 13px;
        line-height: 1.9;
    }

    .home-company-snapshot__facts > div {
        min-height: 72px;
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 12px;
    }

    .home-company-snapshot__facts dd {
        font-size: 15px;
    }

    .home-updates {
        padding-block: 70px 82px;
    }
}

/* 下層ページ共通：大きな曲線がゆっくり流れるエディトリアルヒーロー */
.page-hero,
.product-library-hero {
    --inner-wave-rgb: 31, 132, 203;
    position: relative;
    isolation: isolate;
    min-height: 340px;
    padding-block: 82px 62px;
    overflow: hidden;
    color: var(--navy);
    background: linear-gradient(105deg, #ffffff 0%, #f9fbfd 42%, #edf7fc 100%);
}

.page-hero--policy {
    --inner-wave-rgb: 39, 151, 194;
}

.product-library-hero {
    --inner-wave-rgb: 28, 125, 198;
}

.page-hero::before,
.product-library-hero::before {
    position: absolute;
    z-index: -2;
    inset: -8% -16% -6% 30%;
    content: "";
    opacity: 0.9;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 460' preserveAspectRatio='none'%3E%3Cpath d='M0 190 C210 42 410 72 610 176 C820 286 1060 248 1400 64 V460 H0 Z' fill='%23dceff9'/%3E%3Cpath d='M0 226 C230 88 424 112 624 206 C850 312 1112 264 1400 120' fill='none' stroke='%238fc7e6' stroke-opacity='.58' stroke-width='2'/%3E%3C/svg%3E");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.38) 9%, #000 21%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.38) 9%, #000 21%);
    animation: inner-wave-swell 15s ease-in-out infinite alternate;
    transform-origin: 55% 72%;
    will-change: transform;
}

.page-hero::after,
.product-library-hero::after {
    position: absolute;
    z-index: -1;
    inset: 4% -20% -16% 39%;
    content: "";
    opacity: 0.76;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 460' preserveAspectRatio='none'%3E%3Cpath d='M0 318 C260 126 506 314 754 194 C982 84 1188 164 1400 42 V460 H0 Z' fill='%23edf7fc' fill-opacity='.94'/%3E%3Cpath d='M0 318 C260 126 506 314 754 194 C982 84 1188 164 1400 42' fill='none' stroke='%23b4d9ec' stroke-opacity='.7' stroke-width='2'/%3E%3C/svg%3E");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 8%, #000 22%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 8%, #000 22%);
    animation: inner-wave-drift 19s ease-in-out infinite alternate;
    transform-origin: 48% 70%;
    will-change: transform;
}

.page-hero .section-shell,
.product-library-hero__inner {
    position: relative;
    z-index: 2;
}

.product-library-hero__inner {
    min-height: 196px;
}

.product-library-hero .section-kicker--light {
    color: rgb(var(--inner-wave-rgb));
}

.product-library-hero h1 {
    margin-top: 18px;
    font-size: clamp(42px, 4.5vw, 62px);
    letter-spacing: -0.045em;
    line-height: 1.18;
}

.product-library-hero__inner > p {
    color: #526c80;
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
}

.page-hero-mark {
    display: none;
}

@keyframes inner-wave-swell {
    0% {
        transform: translate3d(-2.5%, 1.5%, 0) scale(1.025, 0.98);
    }
    100% {
        transform: translate3d(2.2%, -1.5%, 0) scale(1.06, 1.035);
    }
}

@keyframes inner-wave-drift {
    0% {
        transform: translate3d(2.4%, -1%, 0) scale(1.04, 1.01);
    }
    100% {
        transform: translate3d(-2.6%, 2%, 0) scale(1.075, 0.97);
    }
}

/* 旧サイトの情報階層を引き継いだ、写真主体の採用入口 */
.home-recruit {
    padding-block: 108px 118px;
    color: var(--ink);
    background: #eef3f6;
}

.home-recruit__inner {
    display: block;
    min-height: 0;
    border: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
}

.home-recruit__copy {
    display: grid;
    padding: 0 0 32px;
    grid-template-columns: minmax(180px, 0.44fr) minmax(0, 1.56fr);
    gap: clamp(34px, 6vw, 90px);
    align-items: end;
}

.home-recruit__copy .section-kicker {
    display: flex;
    margin: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}

.home-recruit__copy .section-kicker span {
    color: #71889a;
    font-family: var(--font-en);
    font-size: 9px;
    letter-spacing: 0.16em;
}

.home-recruit h2 {
    max-width: none;
    margin: 0;
    color: #102840;
    font-size: clamp(34px, 4vw, 52px);
    letter-spacing: -0.05em;
    line-height: 1.28;
}

.home-recruit__copy > div > p {
    max-width: 620px;
    margin: 14px 0 0;
    color: #607588;
    font-size: 13px;
    line-height: 1.9;
}

.home-recruit__visual {
    position: relative;
    width: 100%;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border-radius: 0 28px 0 0;
    aspect-ratio: 2.25 / 1;
    background: #dce7ed;
}

.home-recruit__visual::after {
    background: linear-gradient(180deg, transparent 58%, rgba(10, 34, 55, 0.26));
}

.home-recruit__visual img {
    object-position: center 46%;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.home-recruit:hover .home-recruit__visual img {
    transform: scale(1.018);
}

.home-recruit__entry {
    display: grid;
    min-height: 108px;
    padding: 22px 26px 22px 30px;
    border: 1px solid #cfdee7;
    border-top: 0;
    background: #ffffff;
    grid-template-columns: minmax(150px, 0.55fr) minmax(280px, 1.35fr) auto;
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
}

.home-recruit__entry > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.home-recruit__entry span {
    color: #4f88aa;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.17em;
}

.home-recruit__entry strong {
    color: #102840;
    font-size: 16px;
}

.home-recruit__entry p {
    margin: 0;
    color: #617588;
    font-size: 12px;
    line-height: 1.8;
}

.home-recruit__entry a {
    display: inline-flex;
    min-height: 46px;
    padding: 0 18px;
    border: 1px solid #184f76;
    align-items: center;
    justify-content: center;
    color: #184f76;
    font-size: 11px;
    font-weight: 800;
    transition: color 180ms ease, background-color 180ms ease;
}

.home-recruit__entry a:hover {
    color: #ffffff;
    background: #184f76;
}

@media (max-width: 768px) {
    .page-hero,
    .product-library-hero {
        min-height: 300px;
        padding-block: 68px 54px;
    }

    .page-hero::before,
    .product-library-hero::before {
        inset: 0 -58% -5% 12%;
        opacity: 0.62;
    }

    .page-hero::after,
    .product-library-hero::after {
        inset: 8% -66% -12% 22%;
        opacity: 0.54;
    }

    .product-library-hero__inner {
        min-height: 0;
    }

    .product-library-hero h1 {
        font-size: 46px;
    }

    .product-library-hero__inner > p {
        max-width: 540px;
        margin-top: 24px;
        font-size: 13px;
    }

    .home-recruit {
        padding-block: 68px 76px;
    }

    .home-recruit__copy {
        display: block;
        padding-bottom: 24px;
    }

    .home-recruit h2 {
        margin-top: 22px;
        font-size: 32px;
    }

    .home-recruit__visual {
        border-radius: 0 18px 0 0;
        aspect-ratio: 1.35 / 1;
    }

    .home-recruit__visual img {
        object-position: 54% center;
    }

    .home-recruit__entry {
        display: grid;
        padding: 22px;
        grid-template-columns: 1fr auto;
        gap: 18px;
    }

    .home-recruit__entry p {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 480px) {
    .home-recruit__entry {
        grid-template-columns: 1fr;
    }

    .home-recruit__entry p,
    .home-recruit__entry a {
        grid-column: 1;
    }

    .home-recruit__entry a {
        width: 100%;
    }
}

/* 饮食店产品：使用真实产品画面替代概念插画 */
.product-detail-hero__visual.is-actual-screen {
    min-height: 0;
    border-color: #ead8ca;
    border-radius: 3px 18px 3px 3px;
    aspect-ratio: 16 / 9;
    background: #fffaf5;
    box-shadow: 9px 10px 0 #eee2d8;
}

.product-detail-hero__visual.is-actual-screen img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    transform: none;
}

.product-detail-page--restaurant .product-flow__illustration {
    border: 1px solid #ead8ca;
    background: #fffaf5;
}

.product-library-card--restaurant .product-library-card__cover img {
    width: 100%;
    max-width: 100%;
}

.product-screens {
    padding-block: 120px 132px;
}

.product-screen-feature,
.product-screen-card {
    overflow: hidden;
    margin: 0;
    border: 1px solid #dddad5;
    color: #182d3c;
    background: #fffdfa;
    box-shadow: 6px 7px 0 #eee7df;
}

.product-screen-feature {
    border-radius: 3px 18px 3px 3px;
}

.product-screen-feature img,
.product-screen-card img {
    display: block;
    width: 100%;
    height: auto;
    border-bottom: 1px solid #e7ded7;
    background: #fffaf5;
}

.product-screen-feature figcaption,
.product-screen-card figcaption {
    display: flex;
    min-height: 82px;
    padding: 17px 20px;
    align-items: center;
    gap: 15px;
}

.product-screen-feature figcaption > span,
.product-screen-card figcaption > span {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border: 1px solid #efb180;
    color: #e86518;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    place-items: center;
}

.product-screen-feature figcaption strong,
.product-screen-card figcaption strong {
    display: block;
    margin-bottom: 5px;
    font-size: 13px;
}

.product-screen-feature figcaption small,
.product-screen-card figcaption small {
    display: block;
    color: #6b7c88;
    font-size: 9px;
    line-height: 1.65;
}

.product-screens__grid {
    display: grid;
    margin-top: 20px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.product-screen-card:nth-child(2),
.product-screen-card:nth-child(5) {
    border-radius: 12px 3px 3px 3px;
}

.product-screen-card:nth-child(4),
.product-screen-card--wide {
    border-radius: 3px 3px 14px 3px;
}

.product-screen-card--wide {
    grid-column: 1 / -1;
}

@media (max-width: 768px) {
    .product-detail-hero__visual.is-actual-screen {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .product-detail-hero__visual.is-actual-screen img {
        width: 100%;
    }

    .product-screens {
        padding-block: 82px 92px;
    }

    .product-screens__grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .product-screen-card--wide {
        grid-column: auto;
    }

    .product-screen-feature figcaption,
    .product-screen-card figcaption {
        min-height: 76px;
        padding: 15px 16px;
    }
}

/* 首页内容区：统一编号、标题和说明的阅读节奏 */
.home-page .home-products--simple,
.home-page .home-company-snapshot,
.home-page .home-updates {
    position: relative;
    border-top: 1px solid #dce8ef;
}

.home-page .home-products--simple {
    padding-block: 92px 104px;
    background: #f3f7fa;
}

.home-page .home-company-snapshot {
    padding-block: 92px 106px;
    background: #ffffff;
}

.home-page .home-updates {
    padding-block: 92px 112px;
    background: #f6f9fb;
}

.home-section-heading--unified,
.home-products--simple .home-products__heading.home-section-heading--unified {
    display: grid;
    margin-bottom: 38px;
    grid-template-columns: 150px minmax(0, 1fr) minmax(290px, 390px);
    gap: 28px;
    align-items: start;
}

.home-section-heading--unified .home-section-index {
    display: flex;
    padding-top: 5px;
    align-items: center;
    gap: 12px;
}

.home-section-heading--unified .home-section-index > span {
    display: grid;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 2px 9px 2px 2px;
    color: #ffffff;
    background: #187dbe;
    box-shadow: 3px 3px 0 #d6e7f0;
    font-family: var(--font-en);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.04em;
    place-items: center;
}

.home-section-heading--unified .home-section-index > p {
    color: #3e6f89;
    font-family: var(--font-jp);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.11em;
    white-space: nowrap;
}

.home-section-heading--unified .home-section-heading__title h2,
.home-products--simple .home-products__heading.home-section-heading--unified h2 {
    max-width: 760px;
    margin: 0;
    color: #102840;
    font-size: clamp(32px, 3.2vw, 46px);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.32;
}

.home-section-heading--unified .home-section-heading__lead,
.home-products--simple .home-products__lead.home-section-heading__lead {
    max-width: 390px;
    padding: 3px 0 3px 18px;
    margin: 4px 0 0;
    border-left: 1px solid #9fc6da;
    color: #587084;
    font-size: 12px;
    line-height: 1.9;
}

.home-company-snapshot__inner {
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.home-company-snapshot__body {
    display: grid;
    padding-top: 38px;
    border-top: 1px solid #c9dce7;
    grid-template-columns: 150px minmax(0, 0.82fr) minmax(390px, 1.18fr);
    column-gap: 28px;
    align-items: start;
}

.home-company-snapshot__body .home-company-snapshot__copy {
    grid-column: 2;
}

.home-company-snapshot__copy > p:not(.section-kicker) {
    max-width: 540px;
    margin: 0;
    color: #50687b;
    font-size: 13px;
    line-height: 2;
}

.home-company-snapshot__link {
    min-height: 42px;
    margin-top: 25px;
    border-radius: 2px 8px 2px 2px;
}

.home-company-snapshot__facts {
    grid-column: 3;
    border-top: 0;
}

.home-company-snapshot__facts > div:first-child {
    border-top: 1px solid #d5e2ea;
}

.home-updates .home-section-heading--unified {
    margin-bottom: 42px;
}

.home-updates__grid {
    padding-top: 2px;
}

@media (max-width: 1100px) {
    .home-section-heading--unified,
    .home-products--simple .home-products__heading.home-section-heading--unified {
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 22px;
    }

    .home-section-heading--unified .home-section-heading__lead,
    .home-products--simple .home-products__lead.home-section-heading__lead {
        max-width: 660px;
        margin-top: 2px;
        grid-column: 2;
    }

    .home-company-snapshot__body {
        grid-template-columns: 120px minmax(0, 1fr);
        row-gap: 34px;
        column-gap: 22px;
    }

    .home-company-snapshot__body .home-company-snapshot__copy,
    .home-company-snapshot__facts {
        grid-column: 2;
    }
}

@media (max-width: 720px) {
    .home-page .home-products--simple,
    .home-page .home-company-snapshot,
    .home-page .home-updates {
        padding-block: 66px 76px;
    }

    .home-section-heading--unified,
    .home-products--simple .home-products__heading.home-section-heading--unified {
        margin-bottom: 30px;
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .home-section-heading--unified .home-section-index {
        padding-top: 0;
    }

    .home-section-heading--unified .home-section-index > span {
        width: 29px;
        height: 29px;
    }

    .home-section-heading--unified .home-section-heading__title,
    .home-section-heading--unified .home-section-heading__lead,
    .home-products--simple .home-products__lead.home-section-heading__lead {
        grid-column: 1;
    }

    .home-section-heading--unified .home-section-heading__title h2,
    .home-products--simple .home-products__heading.home-section-heading--unified h2 {
        font-size: 30px;
    }

    .home-section-heading--unified .home-section-heading__lead,
    .home-products--simple .home-products__lead.home-section-heading__lead {
        padding-left: 14px;
        margin: 0;
    }

    .home-company-snapshot__body {
        padding-top: 28px;
        grid-template-columns: 1fr;
        row-gap: 30px;
    }

    .home-company-snapshot__body .home-company-snapshot__copy,
    .home-company-snapshot__facts {
        grid-column: 1;
    }

    .home-company-snapshot__facts > div {
        min-height: 70px;
        grid-template-columns: 70px minmax(0, 1fr);
    }

    .home-updates .home-section-heading--unified {
        margin-bottom: 34px;
    }
}
