:root {
  --ink: #132b2a;
  --green: #123b38;
  --lime: #d8ff58;
  --sand: #f0eee7;
  --paper: #faf9f5;
  --line: rgba(19,43,42,.17);
  --muted: #657270;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; }
a { color: inherit; text-decoration: none; }
p { line-height: 1.9; }

.site-header { height: 88px; padding: 0 4.2vw; display: flex; align-items: center; justify-content: space-between; background: var(--paper); border-bottom: 1px solid var(--line); position: relative; z-index: 10; }
.logo { display: flex; align-items: center; gap: 13px; }
.logo-mark { font-size: 29px; line-height: 1; font-weight: 900; letter-spacing: -.08em; }
.logo-copy { padding-left: 12px; border-left: 1px solid var(--line); font: 700 8px/1.35 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
nav { display: flex; align-items: center; gap: 2.6vw; font-size: 12px; font-weight: 700; }
nav a:not(.nav-contact) { position: relative; }
nav a:not(.nav-contact)::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--ink); transition:.25s; }
nav a:hover::after { right:0; }
.language-link { padding:8px 0; color:var(--muted); font:800 11px/1 Arial,sans-serif; letter-spacing:.08em; }
.nav-contact { background: var(--ink); color: white; padding: 16px 21px; display:flex; gap:30px; align-items:center; }
.nav-contact span { color: var(--lime); }

.hero { min-height: 730px; background: var(--green); color: white; display:grid; grid-template-columns: 54% 46%; position:relative; overflow:hidden; }
.hero-grid { position:absolute; inset:0; opacity:.085; background-image: linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(to right, black, transparent 75%); }
.hero::before { content:""; position:absolute; width:480px; height:480px; border:1px solid rgba(216,255,88,.25); border-radius:50%; left:-220px; bottom:-260px; }
.hero-content { padding: 108px 5vw 80px 8vw; z-index:1; }
.eyebrow { margin:0 0 30px; color:#4e6663; font:700 10px/1 Arial,sans-serif; letter-spacing:.28em; }
.eyebrow::before { content:""; display:inline-block; width:32px; height:1px; background:currentColor; vertical-align:middle; margin-right:14px; }
.eyebrow.light { color: var(--lime); }
.hero h1 { font-size: clamp(58px,6.4vw,98px); line-height:1.08; letter-spacing:-.06em; margin:0 0 32px; font-weight:800; }
.hero h1 em { color:var(--lime); font-style:normal; }
.hero-lead { color:rgba(255,255,255,.78); font-size:15px; margin:0 0 40px; }
.hero-actions { display:flex; align-items:center; gap:34px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:50px; min-width:270px; padding:20px 23px; font-size:13px; font-weight:800; transition:.2s; }
.button.primary { background:var(--lime); color:var(--ink); }
.button:hover { transform:translateY(-2px); }
.button span { font-size:19px; }
.text-link { color:white; border-bottom:1px solid rgba(255,255,255,.4); padding:10px 0; font-size:12px; font-weight:700; }
.text-link span { margin-left:18px; color:var(--lime); }

.network-card { align-self:center; height:590px; margin-right:5vw; background:#e7e5dc; color:var(--ink); position:relative; border-radius:2px; box-shadow:0 30px 70px rgba(0,0,0,.25); }
.network-card>p { margin:26px 30px; font:700 9px/1 Arial; letter-spacing:.22em; }
.network-map { position:absolute; inset:70px 0 64px; overflow:hidden; background: radial-gradient(circle at center,rgba(18,59,56,.08),transparent 45%); }
.network-map::before,.network-map::after { content:""; position:absolute; border:1px solid rgba(19,43,42,.1); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.network-map::before { width:320px; height:320px; }.network-map::after { width:490px; height:490px; }
.hub { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:130px; height:130px; border-radius:50%; background:var(--ink); color:white; display:flex; flex-direction:column; justify-content:center; align-items:center; font:900 32px Arial; z-index:2; }
.hub small { color:var(--lime); font:700 7px Arial; letter-spacing:.22em; margin-top:6px; }
.point { position:absolute; width:112px; height:112px; border:1px solid var(--ink); border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; background:#e7e5dc; z-index:2; }
.point b { font:800 11px Arial; letter-spacing:.1em; }.point small { font-size:9px; color:var(--muted); margin-top:5px; }
.point.jp { top:6%; left:10%; }.point.sz { top:9%; right:7%; }.point.dl { bottom:3%; right:15%; }
.line { position:absolute; height:1px; background:var(--ink); transform-origin:left; left:50%; top:50%; width:230px; opacity:.45; }.line-a { transform:rotate(-140deg); }.line-b { transform:rotate(44deg); }
.network-note { position:absolute; left:30px; right:30px; bottom:22px; padding-top:16px; border-top:1px solid var(--line); font-size:11px; font-weight:700; display:flex; gap:15px; }.network-note span { color:#7e8c89; }

.section { padding:120px 8vw; }
.intro { display:grid; grid-template-columns:43% 57%; gap:6vw; }
.section-heading h2,.section-top h2,.flow h2,.partner h2 { font-size:clamp(39px,4.4vw,66px); line-height:1.32; letter-spacing:-.05em; margin:0; }
.section-heading h2 span { color:#8e9b97; }
.intro-body { padding-top:38px; }
.intro-body>p { max-width:670px; font-size:14px; color:var(--muted); }
.intro-body .intro-large { color:var(--ink); font-size:18px; font-weight:700; line-height:2; margin-bottom:28px; }
.strength-list { display:grid; grid-template-columns:repeat(3,1fr); margin-top:48px; border-top:1px solid var(--line); }
.strength-list div { padding:24px 20px 15px 0; display:flex; gap:18px; align-items:flex-start; border-right:1px solid var(--line); }
.strength-list div+div { padding-left:22px; }.strength-list div:last-child { border:0; }
.strength-list strong { color:#9aa6a2; font:700 10px Arial; }.strength-list span { font-size:13px; font-weight:800; line-height:1.6; }

.service { background:var(--sand); }
.section-top { display:grid; grid-template-columns:1fr 36%; align-items:end; gap:8vw; margin-bottom:65px; }
.section-top>p { color:var(--muted); font-size:14px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(19,43,42,.18); border:1px solid var(--line); }
.service-card { background:var(--sand); }
.service-visual { height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:rgba(255,255,255,.7); background-color:#33534f; background-image:linear-gradient(135deg,transparent 46%,rgba(216,255,88,.12) 46%,rgba(216,255,88,.12) 54%,transparent 54%); }
.visual-02 { background-color:#50635f; }.visual-03 { background-color:#263e3b; }
.service-visual span { font:800 13px/1.4 Arial; letter-spacing:.18em; text-align:center; }.service-visual small { font-size:9px; margin-top:10px; opacity:.7; }
.slideshow { position:relative; overflow:hidden; background:#263e3b; background-image:none; }
.slideshow img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.025); transition:opacity .75s ease,transform 4.8s ease; }
.slideshow img.is-active { opacity:1; transform:scale(1); }
.slide-dots { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); display:flex; gap:8px; z-index:2; padding:7px 10px; border-radius:20px; background:rgba(9,29,27,.54); backdrop-filter:blur(5px); }
.slide-dots button { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.55); cursor:pointer; transition:.2s; }
.slide-dots button.is-active { width:22px; border-radius:8px; background:var(--lime); }
.pending-visual { padding:30px; }
.pending-visual::before { content:""; width:54px; height:54px; margin-bottom:20px; border:1px solid rgba(216,255,88,.65); border-radius:50%; background:linear-gradient(135deg,transparent 48%,rgba(216,255,88,.8) 49%,rgba(216,255,88,.8) 51%,transparent 52%); }
.service-card-body { padding:32px; min-height:330px; position:relative; }
.card-no { color:#8d9a96; font:700 10px Arial; }
.service-card h3 { font-size:23px; margin:22px 0 16px; }
.service-card p { color:var(--muted); font-size:13px; min-height:100px; }
.service-card ul { list-style:none; padding:20px 0 0; margin:25px 0 0; display:flex; gap:7px; flex-wrap:wrap; border-top:1px solid var(--line); }
.service-card li { border:1px solid var(--line); border-radius:30px; padding:6px 11px; font-size:9px; font-weight:700; }

.compare { background:var(--green); color:white; display:grid; grid-template-columns:40% 1fr; gap:9vw; }
.compare-copy h2 { font-size:clamp(42px,5vw,72px); line-height:1.25; margin:0 0 36px; letter-spacing:-.05em; }.compare-copy>p:last-child { color:rgba(255,255,255,.64); font-size:14px; max-width:470px; }
.compare-table { align-self:center; border-top:1px solid rgba(255,255,255,.25); }
.compare-row { display:grid; grid-template-columns:23% 1fr 40px; align-items:center; padding:24px 12px; border-bottom:1px solid rgba(255,255,255,.18); }
.compare-row.heading { color:var(--lime); font:700 8px Arial; letter-spacing:.2em; padding:13px 12px; }.compare-row b { font-size:19px; }.compare-row span { color:rgba(255,255,255,.65); font-size:12px; }.compare-row i { font:normal 9px Arial; color:var(--lime); }
.compare-result { background:var(--lime); color:var(--ink); padding:21px 24px; display:grid; grid-template-columns:23% 1fr 35px; align-items:center; }.compare-result strong { font:900 22px Arial; }.compare-result span { font-size:12px; font-weight:700; line-height:1.55; }.compare-result b { font-size:24px; }

.flow-list { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.flow-list article { padding:33px 28px 33px 0; min-height:240px; position:relative; border-right:1px solid var(--line); }.flow-list article+article { padding-left:28px; }.flow-list article:last-child { border:0; }
.flow-list span { color:#899792; font:700 10px Arial; }.flow-list h3 { margin:38px 0 16px; font-size:17px; }.flow-list p { color:var(--muted); font-size:11px; line-height:1.8; }.flow-list b { position:absolute; right:17px; top:30px; color:#9da8a5; }

.partner { background:var(--lime); display:grid; grid-template-columns:27% 1fr; }.partner .eyebrow { color:var(--ink); }.partner>div { max-width:850px; }.partner h2 { font-size:clamp(38px,4vw,60px); }.partner p { font-size:14px; max-width:700px; margin:36px 0 24px; }.text-link.dark { color:var(--ink); border-color:rgba(19,43,42,.35); }.text-link.dark span { color:var(--ink); }

.contact { background:#102825; color:white; text-align:center; padding-top:130px; padding-bottom:130px; }.contact .eyebrow::before { display:none; }.contact h2 { font-size:clamp(50px,6vw,84px); line-height:1.25; letter-spacing:-.06em; margin:0 0 25px; }.contact>p { color:rgba(255,255,255,.62); font-size:13px; }.contact-button { background:white; color:var(--ink); margin:28px auto 12px; }.contact small { display:block; color:rgba(255,255,255,.4); font-size:9px; }

footer { padding:60px 5vw 28px; background:#091d1b; color:white; display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:end; border-top:1px solid rgba(255,255,255,.12); }.footer-logo .logo-copy { border-color:rgba(255,255,255,.3); }.footer-logo .logo-mark { color:var(--lime); } footer>p { color:rgba(255,255,255,.5); font-size:11px; text-align:right; } footer>div:nth-of-type(2) { display:flex; gap:24px; font-size:10px; } footer>small { text-align:right; color:rgba(255,255,255,.35); font-size:8px; }

.back-to-top { position:fixed; right:24px; bottom:24px; width:62px; height:62px; z-index:50; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:1px solid rgba(216,255,88,.72); border-radius:50%; background:rgba(19,43,42,.92); color:white; box-shadow:0 10px 28px rgba(9,29,27,.24); backdrop-filter:blur(8px); transition:transform .2s ease,background .2s ease; }
.back-to-top:hover { transform:translateY(-3px); background:var(--ink); }
.back-to-top span { color:var(--lime); font-size:21px; line-height:1; }
.back-to-top small { font:700 7px/1 Arial,sans-serif; letter-spacing:.16em; }

.cn-page { font-family:"Noto Sans SC","Microsoft YaHei","PingFang SC","Noto Sans JP",sans-serif; }
.cn-hero { min-height:700px; display:grid; grid-template-columns:48% 52%; background:var(--green); color:white; overflow:hidden; }
.cn-hero-photo { min-height:700px; position:relative; overflow:hidden; }
.cn-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 60%,var(--green)); }
.cn-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.cn-hero-copy { padding:105px 7vw 80px 5vw; align-self:center; }
.cn-hero-copy h1 { font-size:clamp(54px,5.5vw,86px); line-height:1.16; letter-spacing:-.055em; margin:0 0 30px; }
.cn-hero-copy h1 em { color:var(--lime); font-style:normal; }
.cn-hero-copy>p:not(.eyebrow) { color:rgba(255,255,255,.75); font-size:15px; margin-bottom:38px; }
.cn-market { display:grid; grid-template-columns:42% 1fr; gap:9vw; background:var(--green); color:white; }
.cn-market h2 { font-size:clamp(42px,4.5vw,68px); line-height:1.3; letter-spacing:-.04em; margin:0; }
.cn-market-points { border-top:1px solid rgba(255,255,255,.22); }
.cn-market-points div { display:grid; grid-template-columns:28% 1fr; gap:25px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.cn-market-points b { color:var(--lime); font-size:18px; }
.cn-market-points p { margin:0; color:rgba(255,255,255,.65); font-size:13px; }

@media (max-width: 900px) {
  .site-header { height:74px; padding:0 22px; }.site-header nav a:not(.nav-contact) { display:none; }.nav-contact { padding:13px 15px; gap:15px; }
  .hero { grid-template-columns:1fr; padding-bottom:70px; }.hero-content { padding:80px 7vw 50px; }.network-card { width:auto; height:490px; margin:0 7vw; }.point { width:90px; height:90px; }.network-map::before { width:270px; height:270px; }.network-map::after { width:400px; height:400px; }.hub { width:110px; height:110px; }
  .cn-hero { grid-template-columns:1fr; }.cn-hero-photo { min-height:430px; }.cn-hero-photo::after { background:linear-gradient(0deg,var(--green),transparent 42%); }.cn-hero-copy { padding:55px 7vw 75px; }.cn-market { grid-template-columns:1fr; }
  .section { padding:85px 7vw; }.intro,.compare,.partner { grid-template-columns:1fr; }.intro-body { padding-top:0; }.section-top { grid-template-columns:1fr; }.service-grid { grid-template-columns:1fr; }.service-card { display:grid; grid-template-columns:40% 1fr; }.service-card-body { min-height:280px; }.service-visual { height:auto; min-height:280px; }.compare { gap:55px; }.flow-list { grid-template-columns:repeat(2,1fr); }.flow-list article:nth-child(2) { border-right:0; }.flow-list article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}

@media (max-width: 600px) {
  .logo-copy { display:none; }.nav-contact { font-size:10px; }.desktop { display:none; }
  .language-link { font-size:9px; }.cn-hero-photo { min-height:320px; }.cn-hero-copy h1 { font-size:47px; }.cn-hero-copy { padding-top:35px; }.cn-market-points div { grid-template-columns:1fr; gap:8px; }
  .hero { min-height:auto; }.hero-content { padding-top:68px; }.hero h1 { font-size:51px; }.hero-lead { font-size:13px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }.network-card { height:420px; }.network-map { inset-top:60px; }.point { width:76px; height:76px; }.point b { font-size:8px; }.hub { width:92px; height:92px; font-size:25px; }.point.jp { left:4%; }.point.sz { right:2%; }.point.dl { right:8%; }.network-map::before { width:230px; height:230px; }.network-map::after { width:340px; height:340px; }
  .section-heading h2,.section-top h2,.flow h2,.partner h2 { font-size:36px; }.intro { gap:35px; }.intro-body .intro-large { font-size:15px; }.strength-list { grid-template-columns:1fr; }.strength-list div,.strength-list div+div { padding:18px 0; border-right:0; border-bottom:1px solid var(--line); }.service-card { display:block; }.service-visual { height:210px; min-height:0; }.service-card-body { min-height:0; }.service-card p { min-height:0; }.compare { gap:35px; }.compare-row { grid-template-columns:28% 1fr 25px; }.compare-result { grid-template-columns:28% 1fr 25px; }.flow-list { grid-template-columns:1fr; }.flow-list article,.flow-list article+article { min-height:0; padding:26px 0; border-right:0; border-bottom:1px solid var(--line); }.flow-list article:nth-child(2) { border-right:0; }.flow-list h3 { margin:22px 0 8px; }.flow-list b { right:0; top:25px; }.partner { gap:26px; }.contact { padding:90px 7vw; }.contact h2 { font-size:48px; }.contact-button { min-width:100%; gap:15px; } footer { grid-template-columns:1fr; } footer>p,footer>small { text-align:left; } footer>div:nth-of-type(2) { flex-wrap:wrap; }.back-to-top { right:14px; bottom:14px; width:54px; height:54px; }
}
