@charset "UTF-8";
:root {
   --red: #d7193f;
   --red2: #e05768;
   --rose: #fff2f4;
   --deep: #2d2222;
   --heading: #4a4342;
   --ink: #282323;
   --muted: #756b6b;
   --line: #f1dfe1;
   --bg: #fffaf8;
   --white: #fff;
   --shadow: 0 24px 70px rgba(60, 20, 28, 0.11);
   --gothic: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
   --mincho: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "MS Mincho", serif;
   --en: Inter, Arial, sans-serif;
}
* {
   box-sizing: border-box;
}
html {
   scroll-behavior: smooth;
}
body {
   margin: 0;
   background: var(--bg);
   color: var(--ink);
   font-family: var(--gothic);
   line-height: 1.85;
   letter-spacing: 0.025em;
}
a {
   text-decoration: none;
   color: inherit;
}
img {
   display: block;
   max-width: 100%;
}
.reveal {
   opacity: 0;
   transform: translateY(22px);
   transition: 0.7s;
}
.reveal.on {
   opacity: 1;
   transform: none;
}
.service-link-btn {
   margin-top: auto;
   padding-top: 16px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 6px;
   border: 1px solid var(--line);
   border-radius: 10px;
   padding: 11px 14px;
   font-size: 13px;
   font-weight: 700;
   color: var(--heading);
   transition: 0.2s;
}
.service-link-btn:hover {
   background: var(--rose);
   border-color: var(--red);
   color: var(--red);
}
.service-link-btn svg {
   flex-shrink: 0;
}
.tab-bar-row {
   display: grid;
   grid-template-columns: 1fr auto 1fr;
   align-items: center;
   gap: 24px;
}
.tab-bar-row .tab-scope-label {
   justify-self: start;
}
.tab-scope-label {
   flex-shrink: 0;
   font-weight: 900;
   font-size: 14px;
   letter-spacing: 0.04em;
   color: var(--deep);
   background: #ececec;
   padding: 6px 22px 6px 16px;
   clip-path: polygon(0 0, 85% 0, 100% 50%, 85% 100%, 0 100%);
}
.tab-bar-row .business-tab-nav,
.tab-bar-row .sales-tab-nav,
.tab-bar-row .company-sub-tabs {
   grid-column: 2;
}
.company-sub-tabs-sticky {
   position: sticky;
   top: 78px;
   z-index: 40;
   background: #fff;
   border-bottom: 1px solid var(--line);
   box-shadow: 0 8px 24px rgba(60, 20, 28, 0.05);
}
.company-sub-tabs {
   display: flex;
   justify-content: center;
   gap: 8px;
   flex-wrap: wrap;
}
.company-sub-tabs a {
   border: 0;
   border-bottom: 3px solid transparent;
   padding: 12px 20px;
   font-family: var(--gothic);
   font-weight: 500;
   font-size: 15px;
   letter-spacing: 0.02em;
   line-height: 1.4;
   text-align: center;
   white-space: nowrap;
   color: var(--muted);
   transition: 0.2s;
   display: flex;
   align-items: center;
   justify-content: center;
}
.company-sub-tabs a:hover {
   color: var(--deep);
}
.company-sub-tabs a.active {
   color: var(--red);
   border-bottom-color: var(--red);
}
.container {
   width: min(1440px, calc(100% - 80px));
   margin: auto;
}
.header {
   position: fixed;
   left: 0;
   top: 0;
   width: 100%;
   z-index: 80;
   background: rgba(245, 245, 245, 0.78);
   backdrop-filter: blur(18px);
   border-bottom: 1px solid rgba(255, 255, 255, 0.3);
   transition:
      background 0.3s,
      border-color 0.3s;
}
.header.is-transparent {
   background: transparent;
   backdrop-filter: none;
   border-bottom-color: transparent;
}
.header.is-transparent .brand-text b,
.header.is-transparent .menu a {
   color: #fff;
   text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}
.header.is-transparent .hamburger-btn {
   background: rgba(0, 0, 0, 0.28);
   border-radius: 8px;
}
.header.is-transparent .hamburger-btn span {
   background: #fff;
   box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}
.header.is-transparent .brand-text span {
   background: rgba(255, 255, 255, 0.18);
   color: #fff;
}
.nav {
   width: min(1480px, calc(100% - 40px));
   margin: 0 auto;
   box-sizing: border-box;
   padding: 0;
   height: 78px;
   display: grid;
   grid-template-columns: 1fr auto 1fr;
   align-items: center;
   gap: 18px;
}
.brand {
   display: flex;
   align-items: center;
   gap: 13px;
   justify-self: start;
   min-width: 0;
   overflow: hidden;
}
.brand-logo {
   width: 54px;
   height: 42px;
   object-fit: contain;
   background: transparent;
   flex-shrink: 0;
}
.brand-text {
   display: flex;
   flex-direction: column;
   line-height: 1.4;
   gap: 2px;
   min-width: 0;
   overflow: hidden;
}
.brand-text b {
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   display: block;
   font-family: var(--en);
   font-weight: 700;
   letter-spacing: 0.08em;
   font-size: 15px;
   color: #111;
}
.brand-text span {
   display: inline-block;
   background: #111;
   color: #fff;
   font-weight: 700;
   font-size: 12px;
   letter-spacing: 0.04em;
   padding: 3px 11px;
   border-radius: 3px;
   width: fit-content;
}
.menu {
   display: flex;
   gap: 26px;
   align-items: center;
   font-size: 16px;
   font-weight: 900;
   color: #4c4242;
   justify-self: center;
}
.menu a {
   position: relative;
   padding-bottom: 4px;
}
.menu a::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -2px;
   width: 100%;
   height: 2px;
   background: var(--red);
   transform: scaleX(0);
   transform-origin: left;
   transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.menu a:hover::after {
   transform: scaleX(1);
}
.menu a:hover {
   color: var(--red);
}
.nav-entry {
   justify-self: end;
   white-space: nowrap;
   font-size: 14px;
   padding: 11px 20px;
}
.section {
   padding: 92px 0;
   scroll-margin-top: 96px;
}
.section.alt {
   background: #fff;
}
.section.soft {
   background: #fff7f5;
}
.news-bar {
   background: #fff;
   border-bottom: 1px solid var(--line);
   position: relative;
   z-index: 3;
}
.news-row {
   display: flex;
   align-items: center;
   gap: 16px;
   padding: 15px 0;
   flex-wrap: wrap;
}
.news-tag {
   color: var(--deep);
   font-size: 13px;
   font-weight: 900;
   letter-spacing: 0.1em;
   flex-shrink: 0;
}
.news-tag::before {
   content: "/ ";
   color: var(--red);
}
.news-tag::after {
   content: " /";
   color: var(--red);
}
.news-date {
   font-family: var(--en);
   font-size: 12px;
   color: var(--muted);
   font-weight: 700;
   flex-shrink: 0;
}
.news-text {
   flex: 1;
   font-size: 14px;
   color: var(--deep);
   font-weight: 700;
   min-width: 200px;
}
.news-text:hover {
   color: var(--red);
}
.news-more {
   font-size: 12px;
   color: var(--red);
   font-weight: 900;
   white-space: nowrap;
}
.section.dark {
   background: linear-gradient(135deg, #0b0b0e, #1c1013 60%, #150c0e);
   color: #fff;
   position: relative;
   overflow: hidden;
}
#ai-network-bg {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   z-index: 0;
   opacity: 0.6;
}
.section.dark > .container {
   position: relative;
   z-index: 1;
}
.section.dark .eyebrow {
   color: #ff5470;
}
.section.dark .section-head h2 {
   color: #fff;
}
.section.dark .section-head p {
   color: rgba(255, 255, 255, 0.66);
}
.section.dark .ai-card {
   background: rgba(255, 255, 255, 0.05);
   border: 1px solid rgba(255, 255, 255, 0.14);
   box-shadow: none;
}
.section.dark .ai-card:hover {
   border-color: rgba(255, 255, 255, 0.3);
   box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.section.dark .ai-card h3 {
   color: #fff;
}
.section.dark .ai-card p {
   color: rgba(255, 255, 255, 0.66);
}
.section.dark .ai-card .tag {
   background: rgba(255, 255, 255, 0.1);
   color: #ff8fa3;
}
.section.dark .btn.light {
   background: rgba(255, 255, 255, 0.08);
   border: 1px solid rgba(255, 255, 255, 0.24);
   color: #fff;
}
.section.dark .btn.light::before {
   background: rgba(255, 255, 255, 0.18);
}
.eyebrow {
   font-family: var(--gothic);
   letter-spacing: 0.2em;
   font-size: 14px;
   color: var(--red);
   font-weight: 900;
   display: inline-flex;
   align-items: center;
   gap: 6px;
}
.eyebrow::before {
   content: "/";
   display: inline-block;
   transform: skewX(-12deg);
   font-weight: 900;
}
.section-head {
   display: block;
   margin-bottom: 34px;
}
.section-head h2,
.hero-title,
.card h3,
.cta h2,
.page-hero h1,
.wide-card h2,
.role-card h2 {
   font-family: var(--mincho);
   font-weight: 400;
   letter-spacing: -0.02em;
}
.section-head h2 {
   font-family: var(--gothic);
   font-weight: 300;
   font-size: clamp(26px, 3.6vw, 42px);
   letter-spacing: 0.08em;
   line-height: 1.3;
   color: var(--heading);
   margin: 6px 0 0;
}
.section-head p {
   max-width: 620px;
   color: var(--muted);
   margin: 14px 0 0;
   font-size: 17px;
}
.hero-actions {
   display: flex;
   gap: 18px;
   flex-wrap: wrap;
}
.hero-actions .btn {
   min-width: 190px;
}
.hero-actions-glass .btn.glass {
   background: rgba(255, 255, 255, 0.12);
   backdrop-filter: blur(14px);
   -webkit-backdrop-filter: blur(14px);
   border: 1px solid rgba(255, 255, 255, 0.28);
   color: #fff;
   box-shadow: none;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 10px;
   border-radius: 10px;
}
.hero-actions-glass .btn.glass::after {
   content: "↗";
   font-size: 15px;
   opacity: 0.85;
   transition: transform 0.25s;
}
.hero-actions-glass .btn.glass:hover {
   background: rgba(255, 255, 255, 0.2);
   transform: translateY(-2px);
}
.hero-actions-glass .btn.glass:hover::after {
   transform: translate(3px, -3px);
}
@media (max-width: 620px) {
   .hero-actions-glass .btn.glass {
      min-width: 0;
      flex: 1 1 auto;
   }
}
.btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   border-radius: 999px;
   padding: 13px 22px;
   font-weight: 900;
   transition: 0.25s;
}
button.btn {
   border: 0;
   background: none;
   cursor: pointer;
   font-family: inherit;
   appearance: none;
   -webkit-appearance: none;
   -moz-appearance: none;
}
.btn.primary {
   background: linear-gradient(135deg, var(--red), #b91430);
   color: #fff;
   box-shadow: 0 16px 44px rgba(215, 25, 63, 0.28);
   position: relative;
   overflow: hidden;
   z-index: 0;
}
.btn.primary::before {
   content: "";
   position: absolute;
   inset: 0;
   background: linear-gradient(135deg, #ff3258, #8f0f28);
   transform: translateX(-100%);
   transition: transform 0.4s ease;
   z-index: -1;
}
.btn.primary:hover::before {
   transform: translateX(0);
}
.btn.secondary {
   background: rgba(255, 255, 255, 0.16);
   border: 1px solid rgba(255, 255, 255, 0.38);
   color: #fff;
   backdrop-filter: blur(10px);
}
.btn.light {
   background: #fff;
   border: 1px solid var(--line);
   color: var(--deep);
   position: relative;
   overflow: hidden;
   z-index: 0;
}
.btn.light::before {
   content: "";
   position: absolute;
   inset: 0;
   background: #ececec;
   transform: translateX(-100%);
   transition: transform 0.4s ease;
   z-index: -1;
}
.btn.light:hover::before {
   transform: translateX(0);
}
.btn.light::after {
   content: "→";
   margin-left: 7px;
   display: inline-block;
   transition: transform 0.25s ease;
}
.btn.light:hover::after {
   transform: translateX(3px);
}
.btn:hover {
   transform: translateY(-2px);
}
.hero {
   height: 100vh;
   min-height: 720px;
   position: relative;
   overflow: hidden;
   background: #111;
}
.hero-video-dummy {
   position: absolute;
   inset: 0;
   overflow: hidden;
}
.hero-bg-video {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.hero-video-mask {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.4);
}
.hero-video-mask::after {
   content: "";
   position: absolute;
   inset: 0;
   background-image: radial-gradient(circle, rgba(0, 0, 0, 0.85) 1.5px, transparent 1.5px);
   background-size: 8px 8px;
}
.hero::before {
   content: "";
   position: absolute;
   inset: 0;
   z-index: 1;
   background:
      linear-gradient(
         115deg,
         rgba(0, 0, 0, 0.78) 0%,
         rgba(0, 0, 0, 0.48) 38%,
         rgba(215, 25, 63, 0.18) 68%,
         rgba(0, 0, 0, 0.08) 100%
      ),
      repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 88px),
      repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 88px);
}
.hero::after {
   content: "";
   position: absolute;
   inset: 0;
   z-index: 1;
   background:
      radial-gradient(circle at 22% 56%, rgba(215, 25, 63, 0.3), transparent 0 18%, transparent 38%),
      linear-gradient(90deg, rgba(0, 0, 0, 0.44), rgba(0, 0, 0, 0.1) 58%, rgba(0, 0, 0, 0.05));
}
.hero-copy {
   position: relative;
   z-index: 2;
   height: 100%;
   display: flex;
   align-items: center;
   color: #fff;
   padding-top: 70px;
}
.hero-copy-inner {
   max-width: 1100px;
}
.hero-label {
   font-family: var(--en);
   letter-spacing: 0.2em;
   font-size: 12px;
   font-weight: 900;
   color: #ffb5bd;
   background: rgba(255, 255, 255, 0.12);
   border: 1px solid rgba(255, 255, 255, 0.18);
   border-radius: 999px;
   padding: 7px 13px;
   display: inline-flex;
   backdrop-filter: blur(10px);
}
.hero-ai-sequence {
   display: flex;
   align-items: baseline;
   gap: clamp(6px, 1vw, 14px);
   flex-wrap: wrap;
   font-family: var(--gothic);
   font-weight: 900;
   letter-spacing: 0;
   line-height: 1.3;
   margin: 28px 0 12px;
   text-shadow: 0 24px 60px rgba(0, 0, 0, 0.34);
}
.seq-ai {
   font-family: var(--en);
   font-size: clamp(48px, 7.5vw, 88px);
   color: #ff3258;
   background: linear-gradient(135deg, #ff3155 15%, #d7193f 48%, #ffb2bd 100%);
   -webkit-background-clip: text;
   background-clip: text;
   color: transparent;
   opacity: 0;
   transform: translateY(24px) scale(0.92);
   filter: blur(4px);
   cursor: pointer;
   transition:
      transform 0.35s ease,
      filter 0.35s ease,
      text-shadow 0.35s ease;
}
.seq-ai:hover {
   transform: translateY(-8px) scale(1.06) !important;
   filter: drop-shadow(0 0 22px rgba(215, 25, 63, 0.75));
   text-shadow: 0 0 34px rgba(215, 25, 63, 0.8);
}
.seq-x {
   font-size: clamp(54px, 7vw, 94px);
   color: #ffccd3;
   opacity: 0;
   transform: scale(0.2) rotate(-18deg);
}
.seq-speed {
   font-size: clamp(26px, 3.4vw, 44px);
   color: #fff;
   opacity: 0;
   transform: translateX(-22px);
   letter-spacing: 0.01em;
}
.seq-tagline {
   font-family: "Avenir Next", Montserrat, "Segoe UI", var(--gothic);
   font-size: clamp(24px, 3.2vw, 46px);
   font-weight: 900;
   letter-spacing: 0.08em;
   color: #fff;
   margin: 18px 0 25px;
   text-shadow: 0 20px 48px rgba(0, 0, 0, 0.36);
   min-height: 1.4em;
}
.seq-tagline::before {
   content: "";
   display: block;
   width: min(420px, 70%);
   height: 7px;
   border-radius: 999px;
   background: linear-gradient(90deg, #d7193f, #ffced5);
   box-shadow: 0 0 34px rgba(215, 25, 63, 0.55);
   margin: 0 0 22px;
}
.seq-tagline::after {
   content: "";
   display: inline-block;
   width: 2px;
   height: 0.95em;
   background: #ffb5bd;
   margin-left: 6px;
   vertical-align: -0.12em;
   animation: cursorBlink 0.9s steps(1) infinite;
}
@keyframes cursorBlink {
   50% {
      opacity: 0;
   }
}
.seq-actions {
   opacity: 0;
   transform: translateY(10px);
}
body.hero-ready .seq-ai {
   animation: seqAi 0.72s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 0.18s;
}
body.hero-ready .seq-x {
   animation: seqX 0.48s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 0.82s;
}
body.hero-ready .seq-speed {
   animation: seqSpeed 0.72s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 1.18s;
}
body.hero-ready .seq-actions {
   animation: seqTag 0.72s ease forwards 3.5s;
}
@keyframes seqAi {
   to {
      opacity: 1;
      transform: none;
      filter: blur(0);
   }
}
@keyframes seqX {
   to {
      opacity: 1;
      transform: none;
   }
}
@keyframes seqSpeed {
   to {
      opacity: 1;
      transform: none;
   }
}
@keyframes seqTag {
   to {
      opacity: 1;
      transform: none;
   }
}
.scroll {
   position: absolute;
   left: 50%;
   bottom: 28px;
   transform: translateX(-50%);
   z-index: 2;
   color: #fff;
   font-family: var(--en);
   letter-spacing: 0.2em;
   font-size: 11px;
}
.scroll::after {
   content: "";
   display: block;
   width: 1px;
   height: 48px;
   background: #fff;
   margin: 12px auto 0;
   animation: scrollLine 1.6s infinite;
}
@keyframes scrollLine {
   0% {
      transform: scaleY(0);
      transform-origin: top;
   }
   50% {
      transform: scaleY(1);
      transform-origin: top;
   }
   51% {
      transform-origin: bottom;
   }
   100% {
      transform: scaleY(0);
      transform-origin: bottom;
   }
}
.cards,
.business-grid,
.work-grid,
.ai-grid,
.content-grid,
.product-grid,
.role-grid {
   display: grid;
   gap: 24px;
}
.cards {
   grid-template-columns: repeat(3, 1fr);
}
.business-grid,
.ai-grid,
.content-grid,
.product-grid,
.role-grid {
   grid-template-columns: repeat(2, 1fr);
}
.work-grid {
   grid-template-columns: repeat(4, 1fr);
}
.work-card {
   min-height: 260px;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
}
.card,
.wide-card,
.role-card,
.product-card,
.ai-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 20px;
   padding: 32px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   transition: 0.25s;
}
.card:hover,
.wide-card:hover,
.role-card:hover,
.product-card:hover,
.ai-card:hover {
   transform: translateY(-3px);
   box-shadow: var(--shadow);
}
.tag {
   display: inline-block;
   background: var(--rose);
   color: var(--red);
   border-radius: 999px;
   padding: 5px 10px;
   font-size: 11px;
   font-weight: 900;
   margin-bottom: 12px;
}
.card h3,
.ai-card h3,
.wide-card h3,
.product-card h3 {
   font-family: var(--gothic);
   font-weight: 500;
   font-size: 26px;
   letter-spacing: 0.02em;
   line-height: 1.4;
   color: var(--heading);
   margin: 0 0 10px;
}
.card p,
.ai-card p,
.wide-card p,
.product-card p,
.role-card p {
   margin: 0;
   color: var(--muted);
   font-size: 16px;
}
.business-card {
   padding: 0;
   overflow: hidden;
   transition: 0.25s;
}
.business-card:hover {
   transform: translateY(-3px);
   box-shadow: var(--shadow);
}
.business-photo {
   height: 215px;
   overflow: hidden;
}
.business-photo img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.business-body {
   padding: 30px;
}
.business-body .btn {
   margin-top: 18px;
}
.ai-card .btn {
   margin-top: 16px;
}
.page-hero {
   padding: 160px 0 80px;
   background: linear-gradient(135deg, #fff6f3, #fff, #ffe8e2);
   position: relative;
   overflow: hidden;
}
.page-hero h1 {
   font-size: clamp(48px, 7vw, 86px);
   line-height: 1.05;
   color: var(--heading);
   margin: 10px 0 18px;
}
.page-hero p {
   max-width: 720px;
   color: var(--muted);
   font-size: 17px;
}
.lower-layout {
   display: grid;
   grid-template-columns: 230px 1fr;
   gap: 28px;
   align-items: start;
}
.lower-single {
   max-width: 960px;
}
.lower-visual {
   height: 300px;
   overflow: hidden;
   border-radius: 16px;
   margin: -10px -10px 24px;
}
.lower-visual img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.lower-nav {
   position: sticky;
   top: 104px;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 14px;
   box-shadow: 0 14px 40px rgba(60, 20, 28, 0.06);
}
.lower-nav a {
   display: block;
   padding: 12px 14px;
   border-radius: 10px;
   font-weight: 900;
   color: var(--deep);
}
.lower-nav a:hover {
   background: var(--rose);
   color: var(--red);
}
.lower-main {
   display: grid;
   gap: 22px;
}
.wide-card h2,
.role-card h2 {
   font-size: 34px;
   line-height: 1.25;
   margin: 8px 0 12px;
   color: var(--heading);
}
.info-grid,
.value-grid,
.profile-list {
   display: grid;
   gap: 22px;
}
.info-grid {
   grid-template-columns: repeat(2, 1fr);
   margin-top: 22px;
}
.info-grid > div,
.profile-list > div,
.value-grid > div {
   background: var(--rose);
   border: 1px solid var(--line);
   border-radius: 14px;
   padding: 22px;
}
.info-grid ul,
.product-card ul,
.role-card ul {
   margin: 10px 0 0;
   padding-left: 1.2em;
   color: var(--muted);
}
.back-btn {
   margin-top: 24px;
}
.process {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 12px;
   margin-top: 20px;
}
.process div {
   background: var(--deep);
   color: #fff;
   border-radius: 12px;
   padding: 18px;
   text-align: center;
   font-weight: 900;
}
.value-grid {
   grid-template-columns: repeat(3, 1fr);
   margin-top: 20px;
}
.value-grid b {
   display: block;
   font-family: var(--en);
   font-size: 20px;
   color: var(--red);
}
.value-grid span {
   display: block;
   color: var(--muted);
   margin-top: 4px;
}
.benefit-grid,
.data-visual-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 16px;
}
.benefit,
.visual-data {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 12px;
   padding: 15px 16px;
   font-weight: 900;
   color: var(--deep);
   font-size: 13px;
}
.visual-data {
   text-align: center;
   padding: 24px 16px;
}
.visual-data h3 {
   font-family: var(--mincho);
   font-weight: 400;
   font-size: 20px;
   margin: 0 0 4px;
}
.visual-data p {
   font-size: 14px;
   color: var(--muted);
   margin: 0;
}
.cta {
   background: linear-gradient(135deg, #fff, #ffe8e2);
   position: relative;
   overflow: hidden;
   padding: 150px 0;
}
.cta-photo-strip {
   position: absolute;
   inset: 0;
   z-index: 0;
   overflow: hidden;
}
.cta-photo-strip::after {
   content: "";
   position: absolute;
   inset: 0;
   background: linear-gradient(135deg, rgba(255, 255, 255, 0.87), rgba(255, 232, 226, 0.87));
   z-index: 2;
}
.cta-photo-track {
   display: flex;
   gap: 14px;
   height: 100%;
   width: max-content;
   animation: ctaPhotoScroll 42s linear infinite;
}
.cta-photo-track img {
   height: 100%;
   width: 280px;
   object-fit: cover;
   flex-shrink: 0;
}
@keyframes ctaPhotoScroll {
   from {
      transform: translateX(0);
   }
   to {
      transform: translateX(-50%);
   }
}
.section.cta > .container {
   position: relative;
   z-index: 3;
}
@media (max-width: 620px) {
   .cta-photo-track img {
      width: 200px;
   }
}
@media (prefers-reduced-motion: reduce) {
   .cta-photo-track {
      animation: none;
   }
}
@media (max-width: 620px) {
   .cta {
      padding: 80px 0;
   }
}
.recruit-box {
   position: relative;
   overflow: hidden;
   background: var(--red);
   border-radius: 24px;
   padding: 56px;
   box-shadow: 0 30px 80px rgba(90, 10, 25, 0.35);
}
.recruit-box-head {
   position: relative;
   z-index: 1;
   max-width: 640px;
}
.recruit-box-head .eyebrow {
   color: #ffd3da;
}
.recruit-box-head h2 {
   font-family: var(--mincho);
   font-weight: 400;
   font-size: clamp(31px, 5vw, 54px);
   line-height: 1.2;
   color: #fff;
   margin: 8px 0 0;
}
.recruit-box-head p {
   color: rgba(255, 255, 255, 0.82);
   font-size: 15px;
   margin: 14px 0 0;
}
.recruit-cards {
   position: relative;
   z-index: 1;
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 24px;
   margin-top: 36px;
}
.recruit-card {
   background: #fff;
   border-radius: 16px;
   padding: 28px;
   min-height: 150px;
   display: flex;
   flex-direction: column;
   color: var(--deep);
   transition: 0.25s;
}
.recruit-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.recruit-card .tag {
   align-self: flex-start;
}
.recruit-card-text {
   color: var(--muted);
   font-weight: 700;
   font-size: 14px;
   flex: 1;
}
.recruit-card-more {
   align-self: flex-end;
   color: var(--red);
   font-weight: 900;
   font-size: 13px;
   margin-top: 14px;
}
.cta-box {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 24px;
   padding: 48px;
   box-shadow: var(--shadow);
   display: flex;
   justify-content: space-between;
   gap: 28px;
   align-items: center;
}
.cta h2 {
   font-family: var(--mincho);
   font-size: clamp(28px, 3.8vw, 44px);
   line-height: 1.2;
   color: var(--heading);
   margin: 0;
}
.cta p {
   color: var(--muted);
   margin: 12px 0 0;
}
.chatbot {
   position: fixed;
   right: 18px;
   bottom: 18px;
   z-index: 90;
}
.chat-button {
   height: 64px;
   border: 0;
   border-radius: 999px;
   background: linear-gradient(135deg, var(--red), #bd1734);
   color: #fff;
   box-shadow: 0 18px 45px rgba(215, 25, 63, 0.35);
   display: flex;
   gap: 10px;
   align-items: center;
   padding: 0 20px;
   font-weight: 900;
}
.chat-icon {
   width: 34px;
   height: 34px;
   border-radius: 50%;
   background: rgba(255, 255, 255, 0.22);
   display: grid;
   place-items: center;
}
.chat-panel {
   position: absolute;
   right: 0;
   bottom: 78px;
   width: 340px;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   box-shadow: var(--shadow);
   overflow: hidden;
   display: none;
}
.chat-panel.open {
   display: block;
}
.chat-head {
   padding: 18px 20px;
   background: linear-gradient(135deg, var(--red), #bd1734);
   color: #fff;
}
.chat-body {
   padding: 18px 20px;
   color: var(--muted);
   font-size: 14px;
}
.chat-q {
   display: block;
   width: 100%;
   border: 1px solid var(--line);
   background: var(--rose);
   border-radius: 10px;
   padding: 11px 12px;
   margin-top: 9px;
   text-align: left;
   color: var(--deep);
   font-weight: 800;
}
.chat-input {
   display: flex;
   gap: 8px;
   border-top: 1px solid var(--line);
   padding: 14px;
}
.chat-input input {
   flex: 1;
   border: 1px solid var(--line);
   border-radius: 999px;
   padding: 10px 12px;
}
.chat-input button {
   border: 0;
   border-radius: 999px;
   background: var(--deep);
   color: #fff;
   padding: 0 14px;
   font-weight: 900;
}
.footer {
   background: var(--deep);
   color: #fff;
   padding: 64px 0 32px;
}
.footer-brand b {
   font-size: 16px;
   letter-spacing: 0.03em;
}
.footer-brand span {
   display: block;
   font-size: 12px;
   color: #d8c8c8;
   margin-top: 6px;
}
.footer-sitemap {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 24px;
   margin: 36px 0;
   padding-top: 32px;
   border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.footer-col h4 {
   font-size: 13px;
   letter-spacing: 0.04em;
   margin: 0 0 16px;
   padding-bottom: 12px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.18);
   color: #fff;
   font-weight: 900;
}
.footer-col ul {
   list-style: none;
   margin: 0;
   padding: 0;
   display: grid;
   gap: 11px;
}
.footer-col li {
   position: relative;
   padding-left: 14px;
}
.footer-col li::before {
   content: "▸";
   position: absolute;
   left: 0;
   color: #ff8fa3;
   font-size: 11px;
   top: 2px;
}
.footer-col a {
   color: #d8c8c8;
   font-size: 13px;
}
.footer-col a:hover {
   color: #ff8fa3;
}
.footer-contact {
   display: flex;
   justify-content: space-between;
   gap: 32px;
   flex-wrap: wrap;
   padding-top: 32px;
   border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.footer-contact-info h4 {
   font-size: 14px;
   font-weight: 900;
   margin: 0 0 16px;
   padding-bottom: 10px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.18);
   display: inline-block;
   color: #fff;
}
.footer-contact-info p {
   margin: 0 0 10px;
   font-size: 13px;
   color: #d8c8c8;
   line-height: 1.7;
}
.footer-contact-info p b {
   color: #fff;
}
.footer-tel {
   font-size: 19px !important;
   font-weight: 900;
   color: #fff !important;
}
.footer-tel span {
   font-size: 12px;
   color: #d8c8c8;
   font-weight: 400;
   margin-left: 10px;
}
.footer-mail a {
   color: #ffb5bd;
}
.footer-contact-actions {
   display: flex;
   flex-direction: column;
   gap: 12px;
   min-width: 210px;
}
.footer-action-btn {
   background: rgba(255, 255, 255, 0.08);
   border: 1px solid rgba(255, 255, 255, 0.22);
   border-radius: 10px;
   padding: 16px 20px;
   color: #fff;
   font-weight: 900;
   text-align: center;
   transition: 0.25s;
   display: inline-flex;
   align-items: center;
   justify-content: center;
}
.footer-action-btn:hover {
   background: rgba(255, 255, 255, 0.16);
}
.footer-bottom {
   text-align: center;
   margin-top: 32px;
   padding-top: 22px;
   border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.footer-bottom small {
   color: #a89696;
   letter-spacing: 0.05em;
}
.footer-row {
   display: flex;
   justify-content: space-between;
   gap: 20px;
}
.footer small {
   color: #d8c8c8;
}
body.is-loading {
   overflow: hidden;
}
main,
.chatbot,
.footer {
   transition:
      opacity 1.45s ease 0.2s,
      transform 1.45s ease 0.2s;
}
body.is-loading main,
body.is-loading .chatbot,
body.is-loading .footer {
   opacity: 0;
   transform: translateY(14px);
}
.sc-loader {
   position: fixed;
   inset: 0;
   z-index: 9999;
   background: #07070a;
   display: grid;
   place-items: center;
   transition:
      opacity 1.25s ease,
      visibility 1.25s ease;
}
.sc-loader.is-hide {
   opacity: 0;
   visibility: hidden;
   pointer-events: none;
}
.sc-loader::before {
   content: "";
   position: absolute;
   inset: 0;
   background:
      radial-gradient(circle at 22% 28%, rgba(215, 25, 63, 0.18), transparent 34%),
      radial-gradient(circle at 78% 72%, rgba(255, 255, 255, 0.08), transparent 32%),
      repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0 1px, transparent 1px 90px);
   opacity: 0.9;
}
.sc-loader-inner {
   position: relative;
   text-align: center;
   width: min(1180px, 92vw);
}
.sc-loader-mark {
   width: 100%;
   height: auto;
   overflow: visible;
}
.sc-loader-question {
   font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
   font-size: 42px;
   font-weight: 900;
   letter-spacing: 0.04em;
   fill: transparent;
   stroke: #fff;
   stroke-width: 1.2;
   stroke-linecap: round;
   stroke-linejoin: round;
   stroke-dasharray: 1900;
   stroke-dashoffset: 1900;
   animation:
      scDraw 3.25s ease-in-out forwards 0.35s,
      scFillQuestion 0.7s ease forwards 3.55s;
}
.sc-loader-underline {
   stroke: #d7193f;
   stroke-width: 2.5;
   stroke-linecap: round;
   stroke-dasharray: 760;
   stroke-dashoffset: 760;
   animation: scDrawLine 1.25s ease-in-out forwards 2.75s;
}
.sc-loader-sub {
   margin-top: 16px;
   font-family: var(--en);
   font-size: 14px;
   letter-spacing: 0.22em;
   color: rgba(255, 255, 255, 0.48);
   font-weight: 900;
   opacity: 0;
   animation: scSub 0.75s ease forwards 3.9s;
}
.sc-skip {
   position: absolute;
   right: 28px;
   bottom: 28px;
   z-index: 2;
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: rgba(255, 255, 255, 0.06);
   border: 1px solid rgba(255, 255, 255, 0.28);
   color: #fff;
   border-radius: 999px;
   padding: 11px 20px;
   font-family: var(--en);
   font-size: 12px;
   letter-spacing: 0.16em;
   font-weight: 900;
   cursor: pointer;
   transition: 0.25s;
   opacity: 0;
   animation: scSkipIn 0.6s ease forwards 0.6s;
}
.sc-skip:hover {
   background: rgba(255, 255, 255, 0.16);
   transform: translateY(-2px);
}
.sc-skip span {
   transition: transform 0.25s;
}
.sc-skip:hover span {
   transform: translateX(3px);
}
@keyframes scSkipIn {
   to {
      opacity: 1;
   }
}
@keyframes scDraw {
   to {
      stroke-dashoffset: 0;
   }
}
@keyframes scDrawLine {
   to {
      stroke-dashoffset: 0;
   }
}
@keyframes scFillQuestion {
   to {
      fill: #fff;
      stroke: #fff;
   }
}
@keyframes scSub {
   to {
      opacity: 1;
   }
}
.hamburger-btn {
   display: none;
   flex-direction: column;
   justify-content: center;
   gap: 5px;
   width: 28px;
   height: 28px;
   border: 0;
   background: none;
   cursor: pointer;
   padding: 0;
   z-index: 100;
   justify-self: end;
   margin-right: 8px;
}
.hamburger-btn span {
   display: block;
   width: 100%;
   height: 2.5px;
   background: var(--deep);
   border-radius: 2px;
   transition: 0.3s;
}
.hamburger-btn.is-open span:nth-child(1) {
   transform: translateY(7.5px) rotate(45deg);
}
.hamburger-btn.is-open span:nth-child(2) {
   opacity: 0;
}
.hamburger-btn.is-open span:nth-child(3) {
   transform: translateY(-7.5px) rotate(-45deg);
}
.mobile-menu-overlay {
   position: fixed;
   inset: 0;
   background: rgba(10, 8, 8, 0.5);
   z-index: 95;
   opacity: 0;
   visibility: hidden;
   transition: opacity 0.3s;
}
.mobile-menu-overlay.is-open {
   opacity: 1;
   visibility: visible;
}
.mobile-menu {
   position: fixed;
   top: 0;
   right: 0;
   width: min(320px, 84vw);
   height: 100vh;
   background: #fff;
   padding: 100px 28px 40px;
   display: flex;
   flex-direction: column;
   gap: 2px;
   transform: translateX(100%);
   transition: transform 0.35s ease;
   overflow-y: auto;
   box-shadow: -12px 0 40px rgba(0, 0, 0, 0.15);
}
.mobile-menu-close {
   position: absolute;
   top: 24px;
   right: 24px;
   width: 36px;
   height: 36px;
   border: 0;
   background: #f3eeee;
   border-radius: 999px;
   display: flex;
   align-items: center;
   justify-content: center;
   cursor: pointer;
   color: var(--deep);
   font-size: 18px;
   line-height: 1;
}
.mobile-menu-overlay.is-open .mobile-menu {
   transform: translateX(0);
}
.mobile-menu a {
   padding: 16px 4px;
   border-bottom: 1px solid var(--line);
   font-weight: 700;
   color: var(--deep);
   font-size: 16px;
}
.mobile-menu .mobile-menu-entry {
   margin-top: 20px;
   text-align: center;
   border-bottom: 0;
}
body.menu-open {
   overflow: hidden;
}
@media (max-width: 980px) {
   .hamburger-btn {
      display: flex;
   }
   .nav {
      grid-template-columns: 1fr auto;
      height: 70px;
   }
   .brand-logo {
      width: 46px;
      height: 36px;
   }
   .nav-entry {
      display: none !important;
   }
   .company-sub-tabs-sticky {
      top: 70px;
   }
}
.tab-scroll-arrow {
   display: none;
}
@media (max-width: 768px) {
   .tab-bar-row {
      display: block;
      position: relative;
      padding-top: 4px;
      line-height: 1;
   }
   .company-sub-tabs a {
      padding: 8px 20px;
   }
   .company-sub-tabs,
   .business-tab-nav,
   .sales-tab-nav {
      flex-wrap: nowrap !important;
      justify-content: center;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-bottom: 2px;
      -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent);
      mask-image: linear-gradient(90deg, #000 88%, transparent);
   }
   .company-sub-tabs::-webkit-scrollbar,
   .business-tab-nav::-webkit-scrollbar,
   .sales-tab-nav::-webkit-scrollbar {
      display: none;
   }
   .tab-scope-label {
      display: inline-block;
      padding-top: 4px;
      padding-bottom: 4px;
   }
   .tab-scroll-arrow {
      position: absolute;
      top: calc(50% + 7px);
      transform: translateY(-50%);
      width: 26px;
      height: 26px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.92);
      border: 1px solid var(--line);
      box-shadow: 0 4px 12px rgba(60, 20, 28, 0.12);
      align-items: center;
      justify-content: center;
      color: var(--red);
      font-weight: 900;
      font-size: 13px;
      z-index: 5;
      cursor: pointer;
   }
   .tab-scroll-arrow.is-visible {
      display: flex;
   }
   .tab-scroll-arrow.prev {
      left: -4px;
   }
   .tab-scroll-arrow.next {
      right: -4px;
   }
}
@media (max-width: 980px) {
   .menu {
      display: none;
   }
   .cards,
   .business-grid,
   .work-grid,
   .ai-grid,
   .content-grid,
   .product-grid,
   .role-grid,
   .info-grid,
   .value-grid,
   .benefit-grid,
   .data-visual-grid,
   .recruit-cards {
      grid-template-columns: 1fr 1fr;
   }
   .recruit-box {
      padding: 40px;
   }
   .footer-sitemap {
      grid-template-columns: repeat(3, 1fr);
   }
   .footer-contact {
      flex-direction: column;
   }
   .footer-contact-actions {
      flex-direction: row;
      min-width: 0;
   }
   .footer-action-btn {
      flex: 1;
   }
   .section-head {
      display: block;
   }
   .section-head p {
      margin-top: 12px;
   }
   .lower-layout {
      grid-template-columns: 1fr;
   }
   .lower-nav {
      position: static;
      display: grid;
      grid-template-columns: 1fr 1fr;
   }
   .process {
      grid-template-columns: 1fr 1fr;
   }
   .cta-box {
      display: grid;
   }
   .sc-loader-question {
      font-size: 36px;
   }
   .hero-ai-sequence {
      display: block;
   }
   .seq-x {
      display: inline-block;
      margin: 0 18px;
   }
   .seq-speed {
      display: inline-block;
   }
   .chat-panel {
      width: min(340px, calc(100vw - 36px));
   }
}
@media (max-width: 620px) {
   .cards,
   .business-grid,
   .work-grid,
   .ai-grid,
   .content-grid,
   .product-grid,
   .role-grid,
   .info-grid,
   .value-grid,
   .benefit-grid,
   .data-visual-grid,
   .process,
   .lower-nav,
   .recruit-cards {
      grid-template-columns: 1fr;
   }
   .recruit-box {
      padding: 28px;
      border-radius: 18px;
   }
   .footer-sitemap {
      grid-template-columns: 1fr 1fr;
   }
   .footer-contact-actions {
      flex-direction: column;
   }
   .section {
      padding: 64px 0;
   }
   .hero {
      min-height: 620px;
   }
   .hero-copy {
      align-items: flex-start;
      padding-top: 110px;
      padding-bottom: 80px;
   }
   .hero-actions-glass {
      gap: 12px;
   }
   .hero-actions-glass .btn.glass {
      padding: 14px 20px;
   }
   .container {
      width: min(100% - 28px, 1120px);
   }
   .nav {
      width: min(100% - 14px, 1160px);
   }
   .seq-ai {
      font-size: 52px;
   }
   .seq-x {
      font-size: 44px;
      margin: 0 10px;
   }
   .seq-speed {
      font-size: 24px;
   }
   .seq-tagline {
      font-size: 20px;
      letter-spacing: 0.02em;
   }
   .sc-loader-question {
      font-size: 28px;
   }
   .chat-button span:last-child {
      display: none;
   }
   .cta-box {
      padding: 30px;
   }
   .lower-visual {
      height: 210px;
   }
}

/* --- Top page requested revisions --- */
.sc-loader-text-mode {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 18px;
}
.sc-loader-copy {
   display: flex;
   flex-direction: column;
   gap: 10px;
   color: #fff;
   font-weight: 500;
   letter-spacing: 0.06em;
   line-height: 1.45;
   text-align: center;
   font-size: clamp(28px, 4.6vw, 56px);
   text-shadow: 0 18px 44px rgba(0, 0, 0, 0.45);
}
.sc-loader-copy span {
   display: block;
   opacity: 0;
   transform: translateY(18px);
   filter: blur(4px);
}
html.fonts-ready .sc-loader-copy span {
   animation: loaderTextIn 0.75s cubic-bezier(0.18, 0.9, 0.2, 1) forwards;
}
.sc-loader-copy span:nth-child(2) {
   animation-delay: 0.45s;
}
.sc-loader-line {
   width: min(560px, 72vw);
   height: 4px;
   border-radius: 999px;
   background: linear-gradient(90deg, #d7193f, #ffccd4);
   transform: scaleX(0);
   transform-origin: left;
   animation: loaderLineIn 1.2s ease forwards 0.95s;
   box-shadow: 0 0 30px rgba(215, 25, 63, 0.55);
}
.sc-loader-text-mode .sc-loader-sub {
   animation: scSub 0.75s ease forwards 1.55s;
}
.sc-loader-mark {
   display: none;
}
@keyframes loaderTextIn {
   to {
      opacity: 1;
      transform: none;
      filter: blur(0);
   }
}
@keyframes loaderLineIn {
   to {
      transform: scaleX(1);
   }
}
.hero-ai-sequence {
   display: flex;
   align-items: baseline;
   gap: clamp(8px, 1.1vw, 18px);
   flex-wrap: wrap;
   font-family: var(--en), var(--gothic);
   font-weight: 900;
   letter-spacing: 0.01em;
   line-height: 1.02;
   margin: 28px 0 12px;
   text-shadow: 0 24px 60px rgba(0, 0, 0, 0.34);
}
.seq-ai {
   font-size: clamp(86px, 13vw, 170px) !important;
   color: #d7193f !important;
   background: none !important;
   -webkit-background-clip: initial !important;
   background-clip: initial !important;
   line-height: 0.9;
   letter-spacing: -0.06em;
}
.seq-x,
.seq-and {
   font-size: clamp(42px, 5.5vw, 78px);
   color: #ffccd3;
   opacity: 0;
   transform: scale(0.25) rotate(-12deg);
}
.seq-speed,
.seq-change {
   font-size: clamp(44px, 6vw, 84px);
   color: #fff;
   opacity: 0;
   transform: translateX(-22px);
   letter-spacing: 0.01em;
}
.seq-change {
   transform: translateX(-16px);
}
body.hero-ready .seq-ai {
   animation: seqAi 0.72s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 0.15s;
}
body.hero-ready .seq-x {
   animation: seqX 0.42s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 0.72s;
}
body.hero-ready .seq-speed {
   animation: seqSpeed 0.58s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 1.02s;
}
body.hero-ready .seq-and {
   animation: seqX 0.42s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 1.46s;
}
body.hero-ready .seq-change {
   animation: seqSpeed 0.58s cubic-bezier(0.18, 0.9, 0.2, 1) forwards 1.74s;
}
.seq-tagline {
   min-height: 1.7em;
}
.seq-tagline::before {
   width: min(520px, 80%);
}
.news-button {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   border-radius: 999px;
   background: var(--deep);
   color: #fff !important;
   padding: 8px 16px;
   font-size: 12px;
   font-weight: 700;
   transition: 0.25s;
}
.news-button b {
   font-family: var(--en);
   font-weight: 400;
}
.news-button:hover {
   transform: translateY(-2px);
   box-shadow: 0 10px 24px rgba(45, 34, 34, 0.2);
}
.business-grid {
   grid-template-columns: repeat(2, 1fr);
}
.business-card {
   display: grid;
   grid-template-columns: 1fr 2fr;
   min-height: 260px;
}
.business-photo {
   height: 100%;
}
.business-body {
   display: flex;
   flex-direction: column;
   justify-content: center;
}
.business-body .btn {
   align-self: flex-end;
}
.business-body .card-link-hint {
   margin-top: 26px;
}
.section.dark .ai-grid {
   grid-template-columns: repeat(2, 1fr);
}
.section.dark .ai-card .tag {
   background: rgba(255, 255, 255, 0.13);
   color: #fff;
   border: 1px solid rgba(255, 255, 255, 0.18);
}
.footer {
   padding-top: 70px;
}
.footer-brand {
   display: flex;
   justify-content: space-between;
   gap: 20px;
   align-items: flex-end;
}
.footer-brand b {
   font-size: 18px;
}
.footer-sitemap {
   grid-template-columns: repeat(5, 1fr);
   gap: 28px;
}
.footer-contact {
   background: rgba(255, 255, 255, 0.055);
   border: 1px solid rgba(255, 255, 255, 0.12);
   border-radius: 18px;
   padding: 26px;
   margin-top: 24px;
}
.footer-action-btn {
   border-radius: 999px;
}
@media (max-width: 980px) {
   .business-card {
      grid-template-columns: 1fr;
   }
   .business-photo {
      height: 230px;
   }
   .hero-ai-sequence {
      display: flex;
   }
   .footer-sitemap {
      grid-template-columns: repeat(2, 1fr);
   }
}
@media (max-width: 620px) {
   .seq-ai {
      font-size: 70px !important;
   }
   .seq-x,
   .seq-and {
      font-size: 38px;
   }
   .seq-speed,
   .seq-change {
      font-size: 38px;
   }
   .sc-loader-copy {
      font-size: 22px;
   }
   .sc-loader-copy span {
      white-space: nowrap;
   }
   @media (max-width: 360px) {
      .sc-loader-copy {
         font-size: 19px;
      }
   }
   .business-grid,
   .section.dark .ai-grid {
      grid-template-columns: 1fr;
   }
   .news-button {
      width: 100%;
      justify-content: center;
   }
   .footer-brand {
      display: block;
   }
   .footer-sitemap {
      grid-template-columns: 1fr;
   }
}

/* --- Top page v2 refinements --- */
.company-card-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 22px;
}
.company-card-grid .business-card {
   grid-template-columns: 1fr;
}
.company-card-grid .business-photo {
   height: 230px;
}
.cta-box {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 24px;
   padding: 48px;
   box-shadow: var(--shadow);
   display: flex;
   justify-content: space-between;
   gap: 28px;
   align-items: center;
}
.cta-box h2 {
   font-family: var(--mincho);
   font-size: clamp(28px, 3.8vw, 44px);
   line-height: 1.2;
   color: var(--heading);
   margin: 0;
}
.cta-box p {
   color: var(--muted);
   margin: 12px 0 0;
}
.cta-actions {
   display: flex;
   gap: 12px;
   flex-wrap: wrap;
}
.cta-box-restored .cta-actions {
   flex-shrink: 0;
}
.cta-box-restored .cta-actions .btn {
   white-space: nowrap;
}
@media (max-width: 980px) {
   .company-card-grid {
      grid-template-columns: 1fr 1fr;
   }
   .cta-box {
      display: block;
   }
   .cta-actions {
      margin-top: 22px;
   }
}
@media (max-width: 620px) {
   .company-card-grid {
      grid-template-columns: 1fr;
   }
   .company-card-grid .business-photo {
      height: 210px;
   }
   .cta-box {
      padding: 30px;
   }
}

/* Restored subpage layout helpers */
.restored-hero {
   padding: 122px 0 46px;
   background: linear-gradient(135deg, #fff4f1, #fff, #ffe7e2);
   position: relative;
   overflow: hidden;
}
.hero-wave {
   position: absolute;
   left: 0;
   bottom: -4px;
   width: 100%;
   height: 110px;
   line-height: 0;
   z-index: 0;
   pointer-events: none;
   overflow: hidden;
}
.hero-wave svg {
   display: block;
   width: 100%;
   height: 100%;
}
.hero-wave-l1,
.hero-wave-l2,
.hero-wave-l3 {
   fill: #ffd7cf;
}
.hero-wave-l1 {
   opacity: 0.55;
   animation: heroWaveLoop 14s linear infinite;
}
.hero-wave-l2 {
   opacity: 0.35;
   fill: #fff0ba;
   animation: heroWaveLoop 20s linear infinite reverse;
}
.hero-wave-l3 {
   opacity: 0.25;
   animation: heroWaveLoop 9s linear infinite;
}
@keyframes heroWaveLoop {
   from {
      transform: translateX(-200px);
   }
   to {
      transform: translateX(0);
   }
}
.card-link-hint {
   display: inline-flex;
   align-items: center;
   gap: 5px;
   font-size: 13px;
   font-weight: 700;
   color: var(--red);
   text-decoration: underline;
   text-decoration-color: rgba(215, 25, 63, 0.35);
   text-underline-offset: 3px;
   transition: 0.2s;
   margin-top: auto;
   align-self: flex-start;
}
.card-link-hint::after {
   content: "";
   width: 12px;
   height: 12px;
   flex-shrink: 0;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7193f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'%3E%3C/line%3E%3Cpolyline points='7 7 17 7 17 17'%3E%3C/polyline%3E%3C/svg%3E");
   background-size: contain;
   background-repeat: no-repeat;
   transition: transform 0.25s;
}
.business-card:hover .card-link-hint,
.photo-card:hover .card-link-hint,
.restored-card:hover .card-link-hint,
.company-door-card:hover .card-link-hint,
.group-logo-card:hover .card-link-hint,
.ai-work-card:hover .card-link-hint,
.ai-product-card:hover .card-link-hint {
   text-decoration-color: var(--red);
}
.business-card:hover .card-link-hint::after,
.photo-card:hover .card-link-hint::after,
.restored-card:hover .card-link-hint::after,
.company-door-card:hover .card-link-hint::after,
.group-logo-card:hover .card-link-hint::after,
.ai-work-card:hover .card-link-hint::after,
.ai-product-card:hover .card-link-hint::after {
   transform: translate(2px, -2px);
}
.job-dark-card {
   position: relative;
   background: linear-gradient(135deg, #0b0b0e, #1c1013 60%, #150c0e);
   background-size: cover;
   background-position: center top;
   border-radius: 20px;
   padding: 44px 48px;
   box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25);
   overflow: hidden;
}
.job-dark-card::before {
   content: "";
   position: absolute;
   inset: 0;
   background: rgba(10, 8, 8, 0.62);
   z-index: 0;
}
.job-dark-card .tag {
   position: relative;
   z-index: 1;
   display: block;
   width: fit-content;
   background: rgba(255, 255, 255, 0.14);
   color: #fff;
}
.job-dark-card h2 {
   position: relative;
   z-index: 1;
   color: #fff;
   display: inline-block;
   font-family: var(--gothic);
   font-weight: 500;
   letter-spacing: 0.02em;
   font-size: clamp(24px, 3.2vw, 36px);
   line-height: 1.5;
   margin: 18px 0 18px;
   white-space: normal;
}
.job-dark-card h2::after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0.1em;
   height: 0.3em;
   background: var(--red);
   opacity: 0.7;
   z-index: -1;
}
.job-dark-card p {
   position: relative;
   z-index: 1;
   color: rgba(255, 255, 255, 0.82);
   font-size: 15px;
   line-height: 1.9;
   margin: 0;
   max-width: 760px;
}
@media (max-width: 620px) {
   .job-dark-card {
      padding: 30px 26px;
   }
}
.side-photo-card {
   display: flex;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   overflow: hidden;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   transition: 0.25s;
}
.side-photo-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 24px 64px rgba(60, 20, 28, 0.12);
}
.side-photo-card:hover h3 {
   color: var(--heading) !important;
}
.side-photo-card:hover .staff-message {
   color: var(--heading) !important;
}
.side-photo-card:hover .staff-year {
   color: var(--muted) !important;
}
.side-photo-card:hover .profile-table b {
   color: var(--red) !important;
}
.side-photo-card:hover .profile-table span {
   color: var(--deep) !important;
}
.side-photo-card:hover .tag {
   color: var(--red) !important;
}
.side-photo-card .photo {
   flex: 0 0 38%;
   min-height: 100%;
}
.side-photo-card .photo img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: top center;
   display: block;
}
.side-photo-card .body {
   flex: 1;
   padding: 26px;
   display: flex;
   flex-direction: column;
}
.side-photo-card .body .staff-message {
   font-weight: bold;
}
.side-photo-card .body .staff-year {
   margin-bottom: 0.5em;
}
.side-photo-card .body h3 {
   margin-top: 0;
}
.side-photo-card .body .profile-table div {
   grid-template-columns: 70px 1fr;
   font-size: 15px;
}
@media (max-width: 768px) {
   .side-photo-card {
      flex-direction: column !important;
   }
   .side-photo-card .photo {
      flex: 0 0 200px !important;
      height: 200px !important;
      min-height: 0 !important;
   }
   .side-photo-card h3 {
      font-family: var(--gothic);
      font-weight: 500;
      letter-spacing: 0.02em;
      font-size: 26px;
      line-height: 1.4;
      color: var(--heading);
      margin: 0 0 10px;
   }
   .side-photo-card .body .staff-message {
      font-size: 18px;
      font-weight: 700;
      color: var(--heading);
      line-height: 1.6;
      margin: 0 0 14px;
   }
   .side-photo-card .body .profile-table {
      margin: 0 0 14px;
   }
   .side-photo-card .body .profile-table div {
      grid-template-columns: 50px 1fr;
   }
   .side-photo-card .body .profile-table b {
      font-size: 12px;
      padding: 8px 8px;
   }
   .side-photo-card .body .profile-table span {
      font-size: 13px;
      padding: 8px 10px;
   }
   .side-photo-card .body .staff-year {
      font-size: 13px;
      color: var(--muted);
      font-weight: 700;
      margin: 0 0 2px;
   }
   .side-photo-card .body .staff-detail {
      font-size: 14px;
      color: var(--deep);
      line-height: 2;
      margin: 14px 0;
   }
   .side-photo-card .body .staff-detail b {
      color: var(--red);
      font-weight: 700;
      margin-right: 4px;
   }
}
.restored-hero > .container {
   position: relative;
   z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
   .hero-wave-l1,
   .hero-wave-l2,
   .hero-wave-l3 {
      animation: none;
   }
}
.job-hero-band {
   position: relative;
   background-size: cover;
   background-position: center;
   min-height: 440px;
   display: flex;
   align-items: center;
   overflow: hidden;
}
.job-hero-photo-mobile {
   display: none;
}
.job-hero-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(
      90deg,
      rgba(20, 18, 18, 0.84) 0%,
      rgba(20, 18, 18, 0.62) 48%,
      rgba(20, 18, 18, 0.15) 100%
   );
}
.job-hero-band > .container {
   position: relative;
   z-index: 1;
}
.job-hero-content {
   max-width: 620px;
   padding: 60px 0;
}
.job-hero-content .tag {
   background: rgba(255, 255, 255, 0.16);
   color: #fff;
}
.job-hero-content h2 {
   color: #fff;
   position: relative;
   display: inline-block;
   padding: 0;
   margin: 14px 0 20px;
   font-family: var(--gothic);
   font-weight: 500;
   font-size: clamp(22px, 2.8vw, 36px);
   letter-spacing: 0.02em;
   line-height: 1.4;
   white-space: nowrap;
   z-index: 1;
}
.job-hero-content h2::after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   top: 50%;
   transform: translateY(-50%);
   height: 0.45em;
   background: var(--red);
   opacity: 0.68;
   z-index: -1;
}
.job-hero-content p {
   color: rgba(255, 255, 255, 0.85);
   font-size: 15px;
   line-height: 1.9;
   margin: 0;
}
@media (max-width: 768px) {
   .job-hero-band {
      min-height: 0;
      display: block;
      background-image: none !important;
   }
   .job-hero-overlay {
      display: none;
   }
   .job-hero-photo-mobile {
      display: block;
      width: 100%;
      height: 220px;
      object-fit: cover;
   }
   .job-hero-content {
      max-width: none;
      padding: 28px 0;
   }
   .job-hero-content .tag {
      background: var(--rose);
      color: var(--red);
   }
   .job-hero-content h2 {
      color: var(--heading);
   }
   .job-hero-content h2::after {
      display: none;
   }
   .job-hero-content p {
      color: var(--muted);
   }
}
.restored-hero h1 {
   font-family: var(--gothic);
   font-weight: 300;
   font-size: clamp(34px, 4.8vw, 58px);
   letter-spacing: 0.11em;
   line-height: 1.3;
   margin: 10px 0 18px;
}
.restored-lead {
   max-width: 700px;
   color: var(--muted);
   font-size: 17px;
   line-height: 1.8;
   min-height: 64px;
}
.restored-grid2 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 22px;
}
.restored-grid3 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 22px;
}
.restored-grid4 {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
}
.restored-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   padding: 32px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   display: flex;
   flex-direction: column;
}
.restored-grid2 .restored-card,
.restored-grid3 .restored-card {
   transition: 0.25s;
}
.restored-grid2 .restored-card:hover,
.restored-grid3 .restored-card:hover {
   transform: translateY(-3px);
   box-shadow: var(--shadow);
}
.restored-grid2 .restored-card > .btn,
.restored-grid3 .restored-card > .btn {
   margin-top: auto;
   align-self: flex-end;
}
.restored-card h3 {
   font-family: var(--gothic);
   font-weight: 500;
   letter-spacing: 0.02em;
   font-size: 25px;
   line-height: 1.4;
   color: var(--heading);
   margin: 0 0 10px;
}
.restored-photo {
   border-radius: 18px;
   overflow: hidden;
   min-height: 260px;
   box-shadow: 0 20px 60px rgba(60, 20, 28, 0.1);
}
.restored-photo img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.restored-split {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 32px;
   align-items: center;
}
.kpi-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 22px;
}
.kpi {
   background: linear-gradient(135deg, #fff, #fff6f5);
   border: 1px solid var(--line);
   border-radius: 18px;
   padding: 26px 20px;
   text-align: center;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.kpi-icon {
   font-size: 26px;
   line-height: 1;
   margin-bottom: 10px;
}
.kpi-icon svg {
   width: 34px;
   height: 34px;
   color: var(--red);
}
.kpi strong {
   display: block;
   color: var(--red);
   font-family: var(--mincho);
   font-size: clamp(22px, 3vw, 36px);
   line-height: 1.2;
   letter-spacing: 0.01em;
}
.kpi span {
   display: block;
   color: var(--deep);
   font-size: 15px;
   font-weight: 900;
   letter-spacing: 0.03em;
   margin-top: 8px;
}
.kpi p {
   margin: 6px 0 0;
   color: var(--muted);
   font-size: 12px;
   line-height: 1.65;
}
.step-list {
   display: grid;
   gap: 16px;
}
.step {
   display: grid;
   grid-template-columns: 110px 1fr;
   gap: 18px;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 26px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.step b {
   font-family: var(--en);
   font-size: 26px;
   color: var(--red);
}
.photo-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   overflow: hidden;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   transition: 0.25s;
   display: flex;
   flex-direction: column;
}
.photo-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 24px 64px rgba(60, 20, 28, 0.12);
}
.photo-card .photo {
   height: 220px;
   overflow: hidden;
}
.photo-card img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: top center;
}
.photo-card .body {
   padding: 26px;
   display: flex;
   flex-direction: column;
   flex: 1;
}
.photo-card .body p {
   color: var(--muted);
   font-size: 16px;
   line-height: 1.8;
}
.photo-card .body > .btn {
   margin-top: auto;
   align-self: flex-end;
}
.photo-card h3 {
   font-family: var(--gothic);
   font-size: 23px;
   letter-spacing: 0.02em;
   line-height: 1.4;
   font-weight: 500;
   color: var(--heading);
   margin: 0 0 8px;
}
.pill-list {
   display: flex;
   gap: 8px;
   flex-wrap: wrap;
   margin-top: auto;
   padding-top: 12px;
}
.pill-list span {
   font-size: 12px;
   font-weight: 900;
   border-radius: 999px;
   padding: 6px 10px;
   background: #f1eded;
   border: 1px solid var(--line);
   color: var(--muted);
}
.message-dark {
   background: linear-gradient(135deg, #201818, #3a1018);
   color: #fff;
   border-radius: 22px;
   padding: 42px;
}
.message-dark h2,
.message-dark p {
   color: #fff;
}
.simple-table {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 20px;
   overflow: hidden;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.simple-table dl {
   display: grid;
   grid-template-columns: 210px 1fr;
   margin: 0;
   border-bottom: 1px solid var(--line);
}
.simple-table dt {
   background: var(--rose);
   font-weight: 900;
   padding: 16px;
}
.simple-table dd {
   margin: 0;
   padding: 16px;
}
.company-logos {
   display: grid;
   grid-template-columns: repeat(6, 1fr);
   gap: 12px;
}
.company-logos div {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 12px;
   padding: 18px;
   display: grid;
   place-items: center;
   text-align: center;
   font-weight: 900;
}
.schedule-strip {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 14px;
}
.schedule-strip .photo-card .photo {
   height: 120px;
}
.cta-box-restored {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 22px;
   padding: 38px;
   box-shadow: var(--shadow);
   display: flex;
   gap: 24px;
   align-items: center;
   justify-content: space-between;
}
.cta-box-restored h2 {
   font-family: var(--gothic);
   font-weight: 500;
   font-size: 28px;
   line-height: 1.4;
   color: var(--heading);
   margin: 8px 0 12px;
}
@media (max-width: 980px) {
   .restored-grid4,
   .kpi-grid,
   .schedule-strip {
      grid-template-columns: repeat(2, 1fr);
   }
   .restored-grid3,
   .company-logos {
      grid-template-columns: repeat(2, 1fr);
   }
   .restored-split,
   .restored-grid2 {
      grid-template-columns: 1fr;
   }
   .cta-box-restored {
      display: block;
   }
   .cta-box-restored .cta-actions {
      margin-top: 20px;
   }
}
@media (max-width: 620px) {
   .restored-grid4,
   .restored-grid3,
   .restored-grid2,
   .kpi-grid,
   .schedule-strip,
   .company-logos {
      grid-template-columns: 1fr;
   }
   .simple-table dl {
      grid-template-columns: 1fr;
   }
   .step {
      grid-template-columns: 1fr;
   }
}

/* --- v3 refinements: slower loading, company door, people detail page, video placeholder --- */
body.hero-ready .seq-ai {
   animation-duration: 1.05s !important;
   animation-delay: 0.25s !important;
}
body.hero-ready .seq-x {
   animation-duration: 0.7s !important;
   animation-delay: 1.15s !important;
}
body.hero-ready .seq-speed {
   animation-duration: 0.9s !important;
   animation-delay: 1.65s !important;
}
body.hero-ready .seq-and {
   animation-duration: 0.7s !important;
   animation-delay: 2.28s !important;
}
body.hero-ready .seq-change {
   animation-duration: 0.9s !important;
   animation-delay: 2.68s !important;
}
.sc-loader-copy span {
   animation-duration: 1.05s !important;
}
.sc-loader-copy span:nth-child(2) {
   animation-delay: 0.85s !important;
}
.sc-loader-line {
   animation-duration: 1.7s !important;
   animation-delay: 1.55s !important;
}
.sc-loader-text-mode .sc-loader-sub {
   animation-delay: 2.35s !important;
}
.company-door-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 24px;
}
.company-door-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 20px;
   overflow: hidden;
   box-shadow: 0 18px 54px rgba(60, 20, 28, 0.08);
   transition: 0.25s;
}
.company-door-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 26px 70px rgba(60, 20, 28, 0.14);
}
.company-door-card .photo {
   height: 260px;
   overflow: hidden;
}
.company-door-card img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.company-door-card .body {
   padding: 30px;
   display: flex;
   flex-direction: column;
}
.company-door-card .body > .btn {
   margin-top: auto;
   align-self: flex-end;
}
.company-door-card h3 {
   font-family: var(--gothic);
   font-weight: 500;
   letter-spacing: 0.02em;
   font-size: 28px;
   line-height: 1.4;
   color: var(--heading);
   margin: 0 0 10px;
}
.company-door-card p {
   margin: 0 0 20px;
   color: var(--muted);
   font-size: 16px;
}
.video-placeholder {
   border-radius: 22px;
   overflow: hidden;
   background: #111;
   min-height: 420px;
   position: relative;
   box-shadow: 0 24px 70px rgba(0, 0, 0, 0.18);
}
.video-placeholder img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   opacity: 0.55;
}
.video-play {
   position: absolute;
   inset: 0;
   display: grid;
   place-items: center;
   color: #fff;
   text-align: center;
}
.video-play .circle {
   width: 92px;
   height: 92px;
   border-radius: 50%;
   background: rgba(215, 25, 63, 0.92);
   display: grid;
   place-items: center;
   margin: auto auto 16px;
   box-shadow: 0 18px 44px rgba(215, 25, 63, 0.35);
   font-size: 34px;
}
.people-anchor-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 18px;
}
.people-anchor-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   overflow: hidden;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   transition: 0.25s;
}
.people-anchor-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 24px 64px rgba(60, 20, 28, 0.12);
}
.people-anchor-card .photo {
   height: 240px;
   overflow: hidden;
}
.people-anchor-card img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: top center;
}
.people-anchor-card .body {
   padding: 24px;
   display: flex;
   flex-direction: column;
   height: calc(100% - 240px);
}
.people-anchor-card h3 {
   font-size: 22px;
   margin: 0 0 6px;
}
.employee-detail {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 22px;
   padding: 38px;
   margin-bottom: 34px;
   box-shadow: 0 18px 54px rgba(60, 20, 28, 0.08);
   scroll-margin-top: 96px;
}
.employee-detail-grid {
   display: grid;
   grid-template-columns: 0.85fr 1.15fr;
   gap: 30px;
   align-items: start;
}
.employee-detail-grid h2 {
   font-family: var(--gothic);
   font-weight: 700;
   font-size: 26px;
   line-height: 1.5;
   color: var(--heading);
   margin: 8px 0 16px;
}
.employee-detail-photo {
   border-radius: 18px;
   overflow: hidden;
   min-height: 360px;
   position: relative;
}
.employee-detail-photo img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: top center;
}
.employee-detail-name {
   position: absolute;
   right: 20px;
   bottom: 18px;
   font-family: "Rock Salt", cursive;
   color: #fff;
   text-align: right;
   line-height: 1.25;
   text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
   pointer-events: none;
}
.employee-detail-name .en-first {
   display: block;
   font-size: clamp(16px, 2vw, 22px);
}
.employee-detail-name .en-last {
   display: block;
   font-size: clamp(16px, 2vw, 22px);
   margin-top: 4px;
}
.profile-table {
   display: grid;
   gap: 10px;
   margin: 16px 0;
}
.profile-table div {
   display: grid;
   grid-template-columns: 130px 1fr;
   border: 1px solid var(--line);
   border-radius: 10px;
   overflow: hidden;
}
.profile-table b {
   background: var(--rose);
   padding: 10px;
   color: var(--red);
}
.profile-table span {
   padding: 10px;
}
.interview-list {
   display: grid;
   gap: 14px;
   margin-top: 22px;
}
.interview-list article {
   background: linear-gradient(180deg, #fff, #fff8f7);
   border: 1px solid var(--line);
   border-radius: 14px;
   padding: 22px;
}
.interview-list h4 {
   margin: 0 0 6px;
   font-size: 18px;
}
.student-now {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 14px;
   margin-top: 16px;
}
.student-now div {
   background: var(--rose);
   border: 1px solid var(--line);
   border-radius: 12px;
   padding: 16px;
}
.career-mini-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 16px;
}
.career-mini {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 26px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.career-mini strong {
   display: block;
   color: var(--red);
   font-family: var(--en);
   font-size: 30px;
}
@media (max-width: 1080px) {
   .people-anchor-grid {
      grid-template-columns: repeat(3, 1fr);
   }
}
@media (max-width: 980px) {
   .company-door-grid,
   .employee-detail-grid,
   .student-now {
      grid-template-columns: 1fr;
   }
   .people-anchor-grid,
   .career-mini-grid {
      grid-template-columns: repeat(2, 1fr);
   }
   .video-placeholder {
      min-height: 300px;
   }
}
@media (max-width: 620px) {
   .company-door-grid,
   .people-anchor-grid,
   .career-mini-grid {
      grid-template-columns: 1fr;
   }
   .employee-detail {
      padding: 22px;
   }
   .employee-detail-photo {
      min-height: 260px;
   }
   .profile-table div {
      grid-template-columns: 1fr;
   }
   .video-placeholder {
      min-height: 230px;
   }
}

/* ==========================================
   Solution Sales tabs and page layout
========================================== */
.sales-tab-sticky {
   position: sticky;
   top: 78px;
   z-index: 40;
   background: #fff;
   border-bottom: 1px solid var(--line);
   box-shadow: 0 8px 24px rgba(60, 20, 28, 0.05);
}
.sales-tab-nav {
   display: flex;
   justify-content: center;
   gap: 8px;
   flex-wrap: wrap;
}
.sales-tab {
   cursor: pointer;
   border: 0;
   border-bottom: 3px solid transparent;
   background: none;
   color: var(--muted);
   font-family: var(--gothic);
   font-weight: 500;
   font-size: 15px;
   letter-spacing: 0.02em;
   white-space: nowrap;
   padding: 12px 20px;
   transition: 0.2s;
   display: flex;
   align-items: center;
   justify-content: center;
}
.sales-tab:hover {
   color: var(--deep);
}
.sales-tab.active {
   color: var(--red);
   border-bottom-color: var(--red);
}
.sales-content {
   display: none;
}
.sales-content.active {
   display: block;
   animation: fadeIn 0.45s ease;
}
@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translateY(15px);
   }
   to {
      opacity: 1;
      transform: none;
   }
}
.solution-sales-page {
   padding-top: 62px;
}
.sales-inner-section {
   padding: 74px 0;
}
.sales-intro {
   display: grid;
   grid-template-columns: 420px 1fr;
   gap: 40px;
   align-items: stretch;
   padding-top: 48px;
}
.sales-profile {
   display: grid;
   gap: 20px;
}
.sales-main-photo {
   min-height: 310px;
}
.profile-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 28px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.profile-card h4 {
   margin: 0 0 14px;
   color: var(--red);
   font-family: var(--en);
   letter-spacing: 0.16em;
}
.profile-card ul {
   margin: 0;
   padding-left: 18px;
   color: var(--muted);
}
.profile-card li {
   margin-bottom: 8px;
}
.sales-description {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   padding: 38px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
   display: flex;
   flex-direction: column;
   justify-content: center;
}
.sales-description h2 {
   font-family: var(--gothic);
   font-weight: 500;
   letter-spacing: 0.02em;
   font-size: clamp(28px, 3.6vw, 40px);
   line-height: 1.4;
   margin: 0 0 16px;
   color: var(--heading);
   position: relative;
   display: inline-block;
   z-index: 1;
}
.sales-description h2::after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0.08em;
   height: 0.28em;
   background: var(--red);
   opacity: 0.35;
   z-index: -1;
}
.sales-description p {
   color: var(--muted);
   margin: 0 0 12px;
}
.sales-step-flow {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 16px;
}
.sales-step {
   position: relative;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 16px;
   box-shadow: 0 14px 46px rgba(60, 20, 28, 0.06);
}
.sales-step:not(:last-child)::after {
   content: "→";
   position: absolute;
   right: -15px;
   top: 50%;
   transform: translateY(-50%);
   color: var(--red);
   font-weight: 900;
   font-size: 20px;
   z-index: 2;
}
.sales-step img {
   width: 100%;
   height: 126px;
   object-fit: cover;
   border-radius: 12px;
   margin-bottom: 14px;
}
.sales-step h3 {
   font-size: 18px;
   margin: 0 0 6px;
   color: var(--heading);
}
.sales-step p {
   font-size: 14px;
   color: var(--muted);
   margin: 0;
}
.sales-people-cards .btn {
   margin-top: 14px;
}
@media (max-width: 1080px) {
   .sales-step-flow {
      grid-template-columns: repeat(3, 1fr);
   }
   .sales-step:not(:last-child)::after {
      display: none;
   }
}
@media (max-width: 980px) {
   .sales-intro {
      grid-template-columns: 1fr;
   }
   .sales-flow-strip {
      grid-template-columns: repeat(2, 1fr);
   }
}
@media (max-width: 620px) {
   .sales-tab {
      width: 100%;
      justify-content: center;
   }
   .sales-step-flow,
   .sales-flow-strip {
      grid-template-columns: 1fr;
   }
   .sales-inner-section {
      padding: 54px 0;
   }
   .sales-description {
      padding: 24px;
   }
}

/* Sales page photo-based schedule and clearer process layout */
.sales-day-timeline {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 18px;
   align-items: stretch;
}
.sales-day-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 20px;
   overflow: hidden;
   box-shadow: 0 18px 54px rgba(60, 20, 28, 0.08);
   position: relative;
   display: flex;
   flex-direction: column;
   min-height: 100%;
}
.sales-day-card img {
   width: 100%;
   height: 170px;
   object-fit: cover;
}
.sales-day-time {
   position: absolute;
   top: 14px;
   left: 14px;
   z-index: 2;
   background: var(--red);
   color: #fff;
   border-radius: 999px;
   padding: 6px 13px;
   font-weight: 900;
   font-family: var(--en);
   letter-spacing: 0.08em;
   box-shadow: 0 10px 28px rgba(215, 25, 63, 0.22);
}
.sales-day-card h3 {
   margin: 18px 18px 8px;
   font-size: 18px;
   color: var(--heading);
   line-height: 1.45;
}
.sales-day-card p {
   margin: 0 18px 22px;
   color: var(--muted);
   font-size: 14px;
   line-height: 1.85;
}
.sales-process-journey {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
   counter-reset: salesprocess;
}
.sales-process-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 22px;
   box-shadow: 0 18px 54px rgba(60, 20, 28, 0.08);
   overflow: hidden;
   position: relative;
}
.sales-process-card:not(:last-child)::after {
   content: "";
   position: absolute;
   right: -14px;
   top: 50%;
   width: 28px;
   height: 28px;
   background: var(--red);
   mask: linear-gradient(#000, #000);
   clip-path: polygon(0 0, 100% 50%, 0 100%);
   z-index: 3;
   transform: translateY(-50%);
}
.sales-process-visual {
   position: relative;
   height: 160px;
   background: linear-gradient(135deg, #fff2f4, #fffaf8);
   overflow: hidden;
}
.sales-process-visual img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   filter: saturate(0.96);
}
.sales-process-num {
   position: absolute;
   left: 16px;
   bottom: 14px;
   background: #fff;
   color: var(--red);
   font-family: var(--en);
   font-weight: 900;
   font-size: 24px;
   line-height: 1;
   border-radius: 14px;
   padding: 10px 12px;
   box-shadow: 0 12px 34px rgba(60, 20, 28, 0.14);
}
.sales-process-text {
   padding: 22px 22px 26px;
}
.sales-process-text h3 {
   margin: 0 0 8px;
   font-size: 21px;
   color: var(--heading);
}
.sales-process-text p {
   margin: 0;
   color: var(--muted);
   font-size: 14px;
   line-height: 1.9;
}
@media (max-width: 1080px) {
   .sales-day-timeline {
      grid-template-columns: repeat(2, 1fr);
   }
   .sales-process-journey {
      grid-template-columns: repeat(2, 1fr);
   }
   .sales-process-card:not(:last-child)::after {
      display: none;
   }
}
@media (max-width: 620px) {
   .sales-day-timeline,
   .sales-process-journey {
      grid-template-columns: 1fr;
   }
   .sales-day-card img {
      height: 210px;
   }
   .sales-process-visual {
      height: 210px;
   }
}

/* IT solution sales requested refinements */
#it-sales .sales-day-time {
   display: none !important;
}
.sales-day-inline-time {
   color: var(--red);
   font-family: var(--en);
   font-weight: 900;
   letter-spacing: 0.08em;
   font-size: 14px;
   margin: 18px 18px 2px;
}
.sales-day-inline-time + h3 {
   margin-top: 4px !important;
}
.sales-simple-flow {
   display: grid;
   grid-template-columns: repeat(6, minmax(0, 1fr));
   gap: 14px;
   align-items: stretch;
   position: relative;
}
.sales-simple-step {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 18px;
   padding: 20px 16px 22px;
   box-shadow: 0 14px 42px rgba(60, 20, 28, 0.06);
   position: relative;
   min-height: 178px;
}
.sales-simple-num {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 38px;
   height: 38px;
   border-radius: 13px;
   background: var(--red);
   color: #fff;
   font-family: var(--en);
   font-weight: 900;
   margin-bottom: 14px;
   box-shadow: 0 10px 24px rgba(196, 0, 43, 0.18);
}
.sales-simple-step h3 {
   font-size: 18px;
   line-height: 1.35;
   margin: 0 0 9px;
   color: var(--heading);
}
.sales-simple-step p {
   font-size: 14px;
   line-height: 1.75;
   color: var(--muted);
   margin: 0;
   text-align: left;
}
.sales-simple-arrow {
   align-self: center;
   justify-self: center;
   color: var(--red);
   font-size: 24px;
   font-weight: 900;
   display: none;
}
@media (max-width: 1180px) {
   .sales-simple-flow {
      grid-template-columns: repeat(3, 1fr);
   }
}
@media (max-width: 720px) {
   .sales-simple-flow {
      grid-template-columns: 1fr;
   }
   .sales-simple-step {
      min-height: auto;
   }
   .sales-simple-arrow {
      display: block;
      transform: rotate(90deg);
   }
}

/* IT solution sales page-only refinements */
#it-sales .sales-main-photo img.sales-main-person-photo {
   object-position: center 32% !important;
}
.sales-people-cards .photo img.career-sales-img-1 {
   object-position: center 18% !important;
}
.sales-people-cards .photo img.career-sales-img-2 {
   object-position: center 16% !important;
}
.sales-people-cards .photo img.career-sales-img-3 {
   object-position: center 18% !important;
}
