@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=Shippori+Mincho:wght@500;600;700&family=Space+Grotesk:wght@500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root {
  --mint: #7BCFC5;
  --mint-deep: #327E79;
  --mint-dark: #286763;
  --lavender: #B5A8B2;
  --blue-pale: #EDF8FB;
  --blush: #FAEEF5;
  --white: #FFFDFC;
  --beige: #D8C7B2;
  --ink: #3F4146;
  --body: #55565B;
  --note: #77757A;
  --line: #DDE9E8;
  --max: 1120px;
  --wide: 1360px;
  --radius: 22px;
  --shadow: 0 24px 70px rgba(65, 92, 99, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--body);
  background: var(--white);
  font-family: 'Zen Kaku Gothic New', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, .lead, .button, summary { word-break: auto-phrase; text-wrap: pretty; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); }
.mincho { font-family: 'Shippori Mincho', serif; }
.serif-en { font-family: 'Cormorant Garamond', serif; }
.mono { font-family: 'Space Grotesk', sans-serif; }
.wrap { width: min(var(--max), calc(100% - 56px)); margin-inline: auto; }
.wrap-wide { width: min(var(--wide), calc(100% - 56px)); margin-inline: auto; }
.section { position: relative; padding: 104px 0; }
.section-soft { background: var(--blue-pale); }
.section-blush { background: var(--blush); }
.section-ink { background: #324D50; color: #FFFFFF; }
.section-ink h2, .section-ink h3 { color: #FFFFFF; }
.section-head { max-width: 720px; margin-bottom: 52px; }
.section-head.center { margin-inline: auto; text-align: center; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  color: var(--mint-dark);
  font: 700 12px/1 'Space Grotesk', sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.eyebrow::before { content: ''; width: 34px; height: 1px; background: currentColor; }
.section-title { margin-bottom: 20px; font: 600 clamp(32px, 4vw, 42px)/1.5 'Shippori Mincho', serif; }
.section-lead { max-width: 620px; color: var(--note); font-size: 17px; }
.tiny-note { color: var(--note); font-size: 13px; }
.button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 0 24px;
  border: 1px solid var(--mint-deep);
  border-radius: 999px;
  color: #FFFFFF;
  background: var(--mint-deep);
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  transition: transform .25s ease, background .25s ease, color .25s ease;
}
.button::after { content: '→'; font-family: 'Space Grotesk', sans-serif; }
.button:hover { transform: translateY(-2px); background: var(--mint-dark); }
.button-outline { color: var(--mint-dark); background: rgba(255,255,255,.76); }
.button-outline:hover { color: #FFFFFF; }
.text-link { display: inline-flex; gap: 10px; align-items: center; color: var(--mint-dark); font-weight: 700; text-decoration: none; }
.text-link::after { content: '→'; }
.skip-link { position: fixed; left: 12px; top: -100px; z-index: 200; padding: 10px 16px; background: #FFFFFF; }
.skip-link:focus { top: 12px; }

/* ZOROYA HEADER */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: 78px;
  border-bottom: 1px solid rgba(123, 207, 197, .14);
  background: rgba(255, 253, 252, .88);
  backdrop-filter: blur(18px);
}
.header-inner { width: min(var(--wide), calc(100% - 48px)); height: 100%; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-logo { display: inline-flex; align-items: center; text-decoration: none; }
.site-logo img { width: 216px; height: 48px; object-fit: contain; object-position: left center; }
.site-nav { display: flex; align-items: center; gap: 25px; }
.site-nav a { color: var(--ink); text-decoration: none; font-size: 13px; font-weight: 700; }
.site-nav a:hover { color: var(--mint-dark); }
.site-nav .nav-cta { min-height: 42px; padding: 0 18px; border-radius: 999px; color: #FFFFFF; background: var(--mint-deep); display: inline-flex; align-items: center; }
.nav-toggle { display: none; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: #FFFFFF; color: var(--mint-dark); }
.nav-toggle span, .nav-toggle::before, .nav-toggle::after { display: block; width: 20px; height: 1px; margin: 5px auto; background: currentColor; content: ''; transition: .25s; }
.nav-toggle[aria-expanded='true'] span { opacity: 0; }
.nav-toggle[aria-expanded='true']::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded='true']::after { transform: translateY(-6px) rotate(-45deg); }

/* RootOrbit hero */
.hero { position: relative; width: 100%; min-height: 780px; padding-top: 78px; overflow: hidden; isolation: isolate; background: linear-gradient(132deg, #FFFFFF 0%, #F3FBFB 42%, #F8F1FA 100%); }
.hero-bg { position: absolute; inset: 0; z-index: 0; opacity: .96; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation:hero-bg-breathe 16s ease-in-out infinite alternate; }
.hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,253,252,.95) 0 38%, rgba(255,253,252,.48) 60%, rgba(255,253,252,.15)); }
.hero-inner { position: relative; z-index: 3; width: min(var(--wide), calc(100% - 56px)); min-height: 702px; margin-inline: auto; display: grid; grid-template-columns: 45% 55%; align-items: center; }
.hero-copy { position: relative; z-index: 5; padding: 78px 0 52px; }
.hero-kicker { margin-bottom: 22px; color: var(--mint-dark); font: 700 12px/1.4 'Space Grotesk', sans-serif; letter-spacing: .18em; }
.hero h1 { margin: 0 0 26px; font: 600 clamp(48px, 5.1vw, 64px)/1.42 'Shippori Mincho', serif; letter-spacing: 0; }
.hero h1 span { display: block; white-space: nowrap; }
.hero-lead { max-width: 560px; margin-bottom: 28px; font-size: 17px; line-height: 2; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.hero-concept { display:flex; align-items:center; gap:12px; margin:0; color:var(--mint-dark); font:600 14px/1.5 'Shippori Mincho',serif; letter-spacing:.04em; }
.hero-concept::before { content:''; width:38px; height:1px; background:linear-gradient(90deg,var(--mint),var(--lavender)); }
.hero-concept span { color:var(--note); }
.hero-visual { position: relative; align-self: stretch; display:grid; place-items:center; padding:82px 0 62px 54px; }
.hero-flow { position:relative; width:min(100%,540px); padding:34px 34px 30px; overflow:hidden; border:1px solid rgba(123,207,197,.32); border-radius:54px 4px 54px 4px; background:rgba(255,255,255,.82); box-shadow:0 28px 80px rgba(72,96,103,.12); backdrop-filter:blur(14px); }
.hero-flow::before { content:''; position:absolute; inset:-30% -28% auto auto; width:280px; aspect-ratio:1; border:1px solid rgba(232,171,200,.28); border-radius:50%; box-shadow:0 0 0 42px rgba(207,232,247,.14),0 0 0 88px rgba(123,207,197,.08); }
.hero-flow-head { position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.hero-flow-head span { color:var(--mint-dark); font:700 10px/1.4 'Space Grotesk',sans-serif; letter-spacing:.18em; }
.hero-flow-head strong { max-width:18em; color:var(--ink); text-align:right; font:600 14px/1.6 'Shippori Mincho',serif; }
.hero-flow-list { position:relative; z-index:1; display:grid; gap:0; margin:0; padding:0; list-style:none; }
.hero-flow-list::before { content:''; position:absolute; left:19px; top:24px; bottom:24px; width:1px; background:linear-gradient(var(--mint),var(--blue),var(--pink),var(--lavender)); }
.hero-flow-list li { position:relative; display:grid; grid-template-columns:40px 1fr; gap:16px; align-items:center; min-height:76px; padding:9px 0; }
.flow-no { position:relative; z-index:1; display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(123,207,197,.52); border-radius:50%; color:var(--mint-dark); background:#fff; font:700 10px 'Space Grotesk',sans-serif; box-shadow:0 0 0 7px rgba(255,255,255,.82); }
.flow-copy { display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding-bottom:10px; border-bottom:1px solid rgba(123,207,197,.2); }
.flow-copy strong { color:var(--ink); font:600 16px/1.5 'Shippori Mincho',serif; }
.flow-copy small { color:var(--note); text-align:right; font-size:11px; line-height:1.5; }
.hero-flow-result { position:relative; z-index:1; display:flex; align-items:center; gap:16px; margin-top:20px; padding:18px 20px; border-radius:2px 26px 2px 26px; color:#fff; background:linear-gradient(115deg,var(--mint-deep),#537782); box-shadow:0 15px 32px rgba(50,126,121,.18); }
.hero-flow-result img { width:38px; filter:brightness(0) invert(1); opacity:.92; }
.hero-flow-result span { display:grid; gap:4px; }
.hero-flow-result small { color:rgba(255,255,255,.68); font:700 8px 'Space Grotesk',sans-serif; letter-spacing:.18em; }
.hero-flow-result strong { color:#fff; font:600 18px/1.4 'Shippori Mincho',serif; }
.hero-portfolio { position:relative; width:min(100%,590px); height:570px; }
.hero-portfolio::before { content:''; position:absolute; left:5%; top:8%; width:82%; height:77%; border:1px solid rgba(123,207,197,.28); border-radius:50%; transform:rotate(-12deg); box-shadow:0 0 0 28px rgba(255,255,255,.2),0 0 0 64px rgba(207,232,247,.1); }
.portfolio-label { position:absolute; left:2%; top:0; margin:0; color:var(--mint-dark); font:700 10px 'Space Grotesk',sans-serif; letter-spacing:.18em; writing-mode:vertical-rl; }
.portfolio-work { position:absolute; z-index:2; margin:0; overflow:hidden; border:9px solid rgba(255,255,255,.94); background:#fff; box-shadow:0 28px 70px rgba(60,84,91,.16); }
.portfolio-work img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; object-position:top center; }
.portfolio-work figcaption { display:grid; gap:4px; padding:14px 16px 16px; background:rgba(255,255,255,.97); }
.portfolio-work figcaption span { color:var(--mint-dark); font:700 8px 'Space Grotesk',sans-serif; letter-spacing:.16em; }
.portfolio-work figcaption strong { color:var(--ink); font:600 13px/1.5 'Shippori Mincho',serif; }
.portfolio-work-main { left:11%; top:10%; width:68%; transform:rotate(-3deg); border-radius:3px 30px 3px 30px; }
.portfolio-work-sub { right:0; bottom:5%; width:54%; transform:rotate(3.5deg); border-radius:28px 3px 28px 3px; }
.portfolio-brand { position:absolute; z-index:4; right:2%; top:2%; display:flex; align-items:center; gap:12px; padding:15px 18px; border:1px solid rgba(123,207,197,.3); border-radius:2px 22px 2px 22px; background:rgba(255,255,255,.9); box-shadow:0 14px 34px rgba(72,96,103,.1); backdrop-filter:blur(10px); }
.portfolio-brand img { width:34px; }
.portfolio-brand span { display:grid; gap:3px; }
.portfolio-brand small { color:var(--mint-dark); font:700 7px 'Space Grotesk',sans-serif; letter-spacing:.16em; }
.portfolio-brand strong { color:var(--ink); font:600 11px/1.45 'Shippori Mincho',serif; }
.portfolio-colors { position:absolute; z-index:3; left:5%; bottom:10%; display:flex; gap:7px; padding:9px; border-radius:99px; background:rgba(255,255,255,.9); box-shadow:0 10px 28px rgba(72,96,103,.09); }
.portfolio-colors i { width:17px; height:17px; border-radius:50%; background:var(--mint); }
.portfolio-colors i:nth-child(2) { background:var(--blue); }
.portfolio-colors i:nth-child(3) { background:var(--pink); }
.portfolio-colors i:nth-child(4) { background:var(--lavender); }
.hero-creative { position:relative; width:min(47vw,680px); height:590px; isolation:isolate; }
.creative-picture { position:absolute; z-index:4; left:50%; top:50%; width:92%; max-width:620px; transform:translate(-50%,-50%); animation:creative-float 6.4s ease-in-out infinite; }
.creative-main { display:block; width:100%; height:auto; max-width:100%; filter:drop-shadow(0 32px 52px rgba(55,84,91,.17)); }
.creative-halo { position:absolute; z-index:0; border-radius:50%; filter:blur(2px); opacity:.62; animation:creative-morph 9s ease-in-out infinite alternate; }
.creative-halo-a { left:7%; top:16%; width:68%; aspect-ratio:1; background:radial-gradient(circle,rgba(123,207,197,.28),rgba(207,232,247,.07) 65%,transparent 70%); }
.creative-halo-b { right:-3%; bottom:6%; width:54%; aspect-ratio:1; background:radial-gradient(circle,rgba(237,186,216,.25),rgba(181,168,178,.06) 66%,transparent 70%); animation-delay:-3s; }
.creative-orbit { position:absolute; z-index:1; left:50%; top:50%; border:1px dashed rgba(50,126,121,.28); border-radius:50%; pointer-events:none; }
.creative-orbit-a { width:92%; aspect-ratio:1; transform:translate(-50%,-50%) rotate(8deg); animation:creative-orbit 26s linear infinite; }
.creative-orbit-b { width:68%; aspect-ratio:1; border-color:rgba(232,171,200,.34); transform:translate(-50%,-50%) rotate(-18deg); animation:creative-orbit-reverse 19s linear infinite; }
.creative-ring { position:absolute; z-index:2; left:50%; top:50%; width:108%; aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; }
.creative-ring svg { width:100%; height:100%; overflow:visible; transform-origin:center; animation:creative-ring-spin 34s linear infinite; }
.creative-ring circle { fill:none; stroke:url(#creativeRingGradient); stroke-width:2; stroke-dasharray:5 13; opacity:.72; }
.creative-ring text { fill:rgba(63,65,70,.62); font:700 13px 'Cormorant Garamond',serif; letter-spacing:.17em; }
.creative-chip { position:absolute; z-index:6; padding:10px 14px; border:1px solid rgba(123,207,197,.34); border-radius:99px; color:var(--mint-dark); background:rgba(255,255,255,.84); box-shadow:0 12px 30px rgba(72,96,103,.1); backdrop-filter:blur(10px); font:700 9px/1 'Space Grotesk',sans-serif; letter-spacing:.12em; animation:creative-chip 5.2s ease-in-out infinite; }
.creative-chip-web { left:-1%; top:22%; }
.creative-chip-utage { right:-4%; top:30%; animation-delay:-1.2s; }
.creative-chip-marketing { left:2%; bottom:18%; animation-delay:-2.4s; }
.creative-chip-ai { right:2%; bottom:13%; animation-delay:-3.4s; }
.creative-spark { position:absolute; z-index:7; width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 0 7px rgba(123,207,197,.12),0 0 24px rgba(123,207,197,.8); animation:creative-spark 3.2s ease-in-out infinite; }
.creative-spark-a { left:15%; top:13%; }
.creative-spark-b { right:12%; top:17%; animation-delay:-1s; }
.creative-spark-c { left:24%; bottom:9%; animation-delay:-2s; }
@keyframes hero-bg-breathe { from { transform:scale(1); } to { transform:scale(1.035) translate3d(-.5%,.5%,0); } }
@keyframes creative-float { 0%,100% { transform:translate(-50%,-50%) rotate(-.3deg); } 50% { transform:translate(-50%,-53%) rotate(.6deg); } }
@keyframes creative-morph { 0% { transform:scale(.92) translate3d(-2%,2%,0); } 100% { transform:scale(1.1) translate3d(3%,-3%,0); } }
@keyframes creative-orbit { to { transform:translate(-50%,-50%) rotate(368deg); } }
@keyframes creative-orbit-reverse { to { transform:translate(-50%,-50%) rotate(-378deg); } }
@keyframes creative-ring-spin { to { transform:rotate(360deg); } }
@keyframes creative-chip { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes creative-spark { 0%,100% { opacity:.35; transform:scale(.7); } 50% { opacity:1; transform:scale(1.25); } }

/* 13〜16インチMacの全画面幅では、右側のアートに余白を確保して全体を見せる。 */
@media (min-width: 1200px) and (max-width: 1600px) {
  .hero-inner { grid-template-columns:47% 53%; }
  .hero-visual { padding-left:8px; padding-right:28px; }
  .hero-creative { width:min(42vw,620px); height:590px; }
  .creative-picture { width:100%; max-width:620px; }
  .creative-ring { width:100%; }
  .creative-chip-utage { right:0; }
  .creative-chip-ai { right:3%; }
}
.orbit { position: absolute; left: 52%; top: 49%; z-index: 2; width: min(40vw, 580px); aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; }
.orbit svg { width: 100%; height: 100%; overflow: visible; animation: orbit-spin 42s linear infinite; }
.orbit circle { fill: none; stroke: url(#orbitGradient); stroke-width: 2; stroke-dasharray: 4 12; }
.orbit text { fill: rgba(63, 65, 70, .55); font: 700 14px 'Cormorant Garamond', serif; letter-spacing: .16em; }
.orbit-core { position: absolute; left: 52%; top: 49%; z-index: 1; width: 58%; transform: translate(-50%, -50%); opacity: .48; mix-blend-mode: multiply; animation: orbit-float 8s ease-in-out infinite; }
.hero-prism { position:absolute; left:52%; top:49%; z-index:4; width:min(23vw,330px); aspect-ratio:1; transform:translate(-50%,-50%); display:grid; place-items:center; border:1px solid rgba(255,255,255,.85); border-radius:50%; background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.95),rgba(237,248,251,.68) 40%,rgba(250,238,245,.62)); box-shadow:0 34px 90px rgba(80,119,126,.16),inset 0 0 0 18px rgba(255,255,255,.24); backdrop-filter:blur(8px); }
.prism-plane { position:absolute; inset:8%; opacity:.54; mix-blend-mode:multiply; }
.prism-plane-a { clip-path:polygon(12% 17%,87% 6%,69% 82%); background:linear-gradient(135deg,rgba(123,207,197,.56),rgba(181,168,178,.12)); }
.prism-plane-b { clip-path:polygon(8% 68%,78% 20%,94% 91%); background:linear-gradient(135deg,rgba(237,186,216,.46),rgba(181,168,178,.12)); }
.prism-plane-c { clip-path:polygon(19% 8%,92% 58%,24% 94%); background:linear-gradient(135deg,rgba(207,232,247,.52),rgba(255,255,255,.08)); }
.hero-mark-ring { position:absolute; width:46%; aspect-ratio:1; border:1px solid rgba(50,126,121,.28); border-radius:50%; box-shadow:0 0 0 15px rgba(255,255,255,.32); }
.hero-mark { position:relative; z-index:2; width:31%; filter:drop-shadow(0 12px 20px rgba(40,103,99,.16)); }
.hero-prism p { position:absolute; bottom:14%; z-index:2; margin:0; color:var(--mint-dark); text-align:center; font:700 10px/1.4 'Space Grotesk',sans-serif; letter-spacing:.18em; }
.hero-prism small { color:var(--note); font-size:8px; }
.hero-links { position:absolute; left:52%; top:49%; z-index:3; width:1px; height:1px; }
.hero-links span { position:absolute; left:0; top:0; width:min(18vw,250px); height:1px; transform-origin:left center; background:linear-gradient(90deg,rgba(50,126,121,.48),rgba(181,168,178,.18)); }
.hero-links span::after { content:''; position:absolute; right:0; top:-3px; width:7px; height:7px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 6px rgba(123,207,197,.12); }
.hero-links span:nth-child(1) { transform:rotate(-148deg); }
.hero-links span:nth-child(2) { transform:rotate(-32deg); }
.hero-links span:nth-child(3) { transform:rotate(32deg); }
.hero-links span:nth-child(4) { transform:rotate(148deg); }
.hero-node { position:absolute; z-index:5; min-width:148px; padding:12px 15px; border:1px solid rgba(123,207,197,.35); background:rgba(255,255,255,.74); box-shadow:0 12px 32px rgba(72,96,103,.08); backdrop-filter:blur(10px); }
.hero-node small { display:block; margin-bottom:4px; color:var(--mint); font:700 10px 'Space Grotesk',sans-serif; }
.hero-node strong { color:var(--ink); font:700 10px/1.4 'Space Grotesk',sans-serif; letter-spacing:.08em; }
.hero-node-web { left:2%; top:18%; border-radius:20px 2px 20px 2px; }
.hero-node-utage { right:1%; top:18%; border-radius:2px 20px 2px 20px; }
.hero-node-marketing { right:-1%; bottom:17%; border-radius:20px 2px 20px 2px; }
.hero-node-ai { left:4%; bottom:17%; border-radius:2px 20px 2px 20px; }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes orbit-float { 50% { transform: translate(-50%, -53%) scale(1.025); } }
.hero-caption { display:none; }

/* Connected support diagram */
.support-flow { position:relative; min-height:440px; padding:38px 42px 34px; overflow:hidden; border:1px solid rgba(123,207,197,.3); border-radius:46px 4px 46px 4px; background:rgba(255,255,255,.8); box-shadow:0 24px 70px rgba(72,96,103,.1); }
.support-flow::after { content:''; position:absolute; right:-110px; bottom:-140px; width:320px; aspect-ratio:1; border:1px solid rgba(232,171,200,.28); border-radius:50%; box-shadow:0 0 0 46px rgba(207,232,247,.13),0 0 0 92px rgba(123,207,197,.07); }
.support-flow-label { position:relative; z-index:1; margin:0 0 22px; color:var(--mint-dark); font:700 10px 'Space Grotesk',sans-serif; letter-spacing:.2em; }
.support-flow ol { position:relative; z-index:1; display:grid; gap:0; margin:0; padding:0; list-style:none; }
.support-flow ol::before { content:''; position:absolute; left:18px; top:21px; bottom:21px; width:1px; background:linear-gradient(var(--mint),var(--blue),var(--pink),var(--lavender)); }
.support-flow li { position:relative; display:grid; grid-template-columns:38px 1fr; gap:16px; align-items:center; min-height:62px; }
.support-flow li > span { position:relative; z-index:1; display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(123,207,197,.5); border-radius:50%; color:var(--mint-dark); background:#fff; font:700 9px 'Space Grotesk',sans-serif; box-shadow:0 0 0 6px rgba(255,255,255,.86); }
.support-flow li div { display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid rgba(123,207,197,.2); }
.support-flow li strong { color:var(--ink); font:600 15px/1.4 'Shippori Mincho',serif; }
.support-flow li small { color:var(--note); text-align:right; font-size:10px; }
.support-flow-result { position:relative; z-index:1; display:grid; gap:4px; margin:24px 0 0 54px; padding:18px 20px; border-radius:2px 24px 2px 24px; color:#fff; background:linear-gradient(115deg,var(--mint-deep),#537782); }
.support-flow-result small { color:rgba(255,255,255,.72); }
.support-flow-result strong { color:#fff; font:600 18px/1.5 'Shippori Mincho',serif; }
.support-words { align-self:center; border-top:1px solid rgba(50,126,121,.28); }
.support-words > p { display:grid; grid-template-columns:38px 1fr auto; gap:18px; align-items:baseline; margin:0; padding:21px 0; border-bottom:1px solid rgba(50,126,121,.2); }
.support-words > p span { color:var(--mint); font:700 10px 'Space Grotesk',sans-serif; }
.support-words > p strong { color:var(--ink); font:600 16px/1.5 'Shippori Mincho',serif; }
.support-words > p small { color:var(--note); text-align:right; }
.support-words > div { display:grid; gap:6px; margin-top:28px; padding:22px 26px; border-left:3px solid var(--mint); background:rgba(255,255,255,.58); }
.support-words > div small { color:var(--note); }
.support-words > div strong { color:var(--mint-dark); font:600 23px/1.5 'Shippori Mincho',serif; }
.support-statement { margin-top:32px!important; padding:20px 0 0 24px; border-left:2px solid var(--mint); color:var(--note); }
.support-statement strong { color:var(--mint-dark); font:600 23px/1.6 'Shippori Mincho',serif; }
.support-image { position:relative; align-self:center; margin:0; overflow:hidden; border-radius:52px 4px 52px 4px; background:#fff; box-shadow:0 28px 80px rgba(72,96,103,.13); }
.support-image::after { content:''; position:absolute; inset:0; border:1px solid rgba(255,255,255,.78); border-radius:inherit; pointer-events:none; }
.support-image img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .8s ease; }
.support-image:hover img { transform:scale(1.025); }
.support-image figcaption { position:absolute; left:22px; right:22px; bottom:20px; z-index:2; padding:12px 16px; border:1px solid rgba(255,255,255,.72); border-radius:99px; color:var(--mint-dark); background:rgba(255,255,255,.76); text-align:center; backdrop-filter:blur(10px); font:700 9px 'Space Grotesk',sans-serif; letter-spacing:.12em; }
.support-image figcaption span { padding:0 5px; color:var(--pink); }

/* Intro */
.intro-layout { display: grid; grid-template-columns: 34% 66%; gap: 72px; align-items: start; }
.intro-label { position: sticky; top: 120px; }
.intro-label .large-en { margin-bottom: 16px; color: var(--mint); font: 700 clamp(54px, 7vw, 92px)/.9 'Cormorant Garamond', serif; }
.intro-copy { position: relative; padding: 32px 0 20px 58px; border-left: 1px solid var(--line); }
.intro-copy::before { content: ''; position: absolute; left: -5px; top: 42px; width: 9px; height: 9px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 8px rgba(123,207,197,.16); }
.intro-copy h2 { font: 600 clamp(32px,4vw,44px)/1.55 'Shippori Mincho', serif; }
.intro-copy p { max-width: 660px; }

/* Services board */
.service-board { border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 82px 1fr 250px; gap: 30px; align-items: center; padding: 30px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.service-no { color: var(--mint); font: 700 15px 'Space Grotesk', sans-serif; }
.service-row h3 { margin-bottom: 8px; font: 600 25px/1.5 'Shippori Mincho', serif; }
.service-row p { margin-bottom: 0; color: var(--note); }
.service-thumb { aspect-ratio: 4/3; overflow: hidden; padding: 8px; border: 1px solid rgba(123,207,197,.25); border-radius: 18px; background: rgba(255,255,255,.82); }
.service-thumb picture { display:block; width:100%; height:100%; }
.service-thumb img { width: 100%; height: 100%; object-fit: contain; border-radius: 12px; filter: saturate(1.12) contrast(1.06); transition: transform .45s; }
.service-row:hover .service-thumb img { transform: scale(1.04); }

/* Reasons route */
.reason-route { position: relative; margin-top: 56px; }
.reason-line { position: absolute; left: 38px; top: 30px; bottom: 30px; width: 1px; background: linear-gradient(var(--mint), var(--lavender)); }
.js .home-page .reason-line { transform:scaleY(0); transform-origin:top; transition:transform 1.6s cubic-bezier(.22,1,.36,1); }
.js .home-page .reason-route.is-active .reason-line { transform:scaleY(1); }
.reason-item { position: relative; display: grid; grid-template-columns: 78px 1fr; gap: 30px; padding: 0 0 52px; }
.reason-item:last-child { padding-bottom: 0; }
.home-page .reason-item:nth-of-type(2) { transition-delay:.13s; }
.home-page .reason-item:nth-of-type(3) { transition-delay:.26s; }
.home-page .reason-item:nth-of-type(4) { transition-delay:.39s; }
.js .home-page .reason-item[data-reveal] .reason-dot { opacity:0; transform:scale(.62) rotate(-12deg); transition:opacity .55s ease,transform .8s cubic-bezier(.16,1,.3,1),box-shadow .4s ease; }
.js .home-page .reason-item[data-reveal] .reason-body { opacity:0; transform:translateX(22px); transition:opacity .65s ease,transform .85s cubic-bezier(.16,1,.3,1); }
.js .home-page .reason-item[data-reveal].is-visible .reason-dot { opacity:1; transform:none; box-shadow:0 0 0 9px rgba(123,207,197,.1),0 12px 28px rgba(50,126,121,.12); }
.js .home-page .reason-item[data-reveal].is-visible .reason-body { opacity:1; transform:none; }
.reason-dot { position: relative; z-index: 2; width: 78px; height: 78px; display: grid; place-items: center; border: 1px solid var(--mint); border-radius: 50%; color: var(--mint-dark); background: var(--white); font: 700 14px 'Space Grotesk', sans-serif; }
.reason-body { padding: 8px 0 30px; border-bottom: 1px solid var(--line); }
.reason-body h3 { margin-bottom: 10px; font: 600 24px/1.5 'Shippori Mincho', serif; }

/* Metrics */
.metrics { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.metric { min-height: 310px; padding: 38px 26px; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.metric-number { display: block; margin: 48px 0 24px; color: #B8EEE8; font: 700 clamp(48px,5.5vw,72px)/1 'Cormorant Garamond', serif; }
[data-count] { display:inline-block; min-width:1ch; font-variant-numeric:tabular-nums; transform-origin:left bottom; }
[data-count].is-counting { animation:evidence-number-rise 1.05s cubic-bezier(.16,1,.3,1) both; }
[data-count].is-counted { text-shadow:0 0 28px rgba(184,238,232,.16); }
@keyframes evidence-number-rise { 0% { opacity:.28; filter:blur(5px); transform:translateY(.18em) scale(.94); } 48% { opacity:1; filter:blur(0); } 100% { opacity:1; filter:blur(0); transform:none; } }
.metric h3 { font-size: 18px; }
.metric p { font-size: 14px; color: rgba(255,255,255,.75); }

/* Evidence story — about page */
.c-evidence { overflow: hidden; }
.c-evidence::before { content: ''; position: absolute; width: 520px; height: 520px; right: -210px; top: -240px; border: 1px solid rgba(184,238,232,.14); border-radius: 50%; box-shadow: 0 0 0 90px rgba(184,238,232,.025), 0 0 0 180px rgba(181,168,178,.025); pointer-events: none; }
.c-evidence__head { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 70px; align-items: end; margin-bottom: 58px; }
.c-evidence__head .eyebrow { color: #B8EEE8; }
.c-evidence__head .section-title { margin-bottom: 0; }
.c-evidence__lead { margin-bottom: 8px; color: rgba(255,255,255,.72); font-size: 15px; }
.c-evidence__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(320px,.82fr) minmax(0,1.18fr); border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.c-evidence__result { display: flex; min-height: 510px; flex-direction: column; justify-content: center; padding: 48px 54px 48px 0; border-right: 1px solid rgba(255,255,255,.25); }
.c-evidence__label,.c-evidence__subhead { color: #B8EEE8; font: 700 11px/1.4 'Space Grotesk', sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.c-evidence__big { display: flex; align-items: flex-end; gap: 10px; margin: 20px 0 26px; color: #B8EEE8; }
.c-evidence__big strong { font: 700 clamp(108px,12vw,154px)/.72 'Cormorant Garamond', serif; letter-spacing: -.05em; }
.c-evidence__big span { padding-bottom: 8px; font: 600 clamp(30px,3vw,42px)/1 'Shippori Mincho', serif; }
.c-evidence__result h3 { margin-bottom: 18px; font: 600 clamp(23px,2.4vw,31px)/1.55 'Shippori Mincho', serif; }
.c-evidence__result > p:not(.c-evidence__label):not(.c-evidence__big) { max-width: 440px; color: rgba(255,255,255,.78); }
.c-evidence__result small { color: rgba(255,255,255,.5); font-size: 11px; }
.c-evidence__experience { padding-left: 54px; }
.c-evidence__subhead { margin: 28px 0 2px; }
.c-evidence__item { position: relative; display: grid; grid-template-columns: 34px 160px minmax(0,1fr); gap: 20px; align-items: center; min-height: 148px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.c-evidence__item:last-child { border-bottom: 0; }
.c-evidence__index { align-self: start; padding-top: 17px; color: rgba(184,238,232,.64); font: 600 10px 'Space Grotesk', sans-serif; letter-spacing: .12em; }
.c-evidence__number { display: flex; align-items: baseline; gap: 5px; margin: 0; color: #B8EEE8; white-space: nowrap; }
.c-evidence__number strong { font: 700 clamp(54px,5.3vw,72px)/1 'Cormorant Garamond', serif; letter-spacing: -.035em; }
.c-evidence__number span { font: 600 16px 'Shippori Mincho', serif; }
.c-evidence__copy h3 { margin-bottom: 7px; font-size: 18px; }
.c-evidence__copy p { margin-bottom: 0; color: rgba(255,255,255,.7); font-size: 13px; line-height: 1.75; }
.c-evidence__copy b { color: #FFFFFF; }

/* Cases */
.case-feature { display: grid; grid-template-columns: minmax(240px,320px) 1fr; min-height: 320px; max-width: 1100px; margin-inline:auto; background: #FFFFFF; box-shadow: var(--shadow); }
.case-feature.reverse { grid-template-columns: 1fr minmax(240px,320px); }
.case-feature + .case-feature { margin-top: 34px; }
.case-image { min-height: 320px; overflow: hidden; }
.case-image img { width: 100%; height: 100%; object-fit: cover; }
.case-image--working img { object-position:center 44%; }
.case-image--consulting img { object-position:center 38%; }
.case-image--utage img { object-position:center 42%; }
.case-image--front img { object-position:center 40%; }
.case-image--kanaoka img { object-position:center 36%; }
.case-image--imanaka img { object-position:center 34%; }
.case-image--sasagawa img { object-position:center 30%; }
.case-image--shioiri img { object-position:center 45%; }
.case-image--izumikawa img { object-position:center 38%; }
.case-copy { padding: 40px 44px; align-self: center; }
.case-tag { color: var(--mint-dark); font: 700 11px 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.case-copy h3 { margin: 13px 0 24px; font: 600 28px/1.5 'Shippori Mincho', serif; }
.case-result { padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); font-weight: 700; }

/* Message spread */
.message-spread { display: grid; grid-template-columns: 36% 64%; gap: 64px; align-items: start; }
.message-photo { position: relative; }
.message-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center top; }
.about-story-photo img { object-position:center 32%; }
.message-photo figcaption { margin-top: 18px; color: var(--note); font-size: 13px; }
.message-body { max-width: 650px; }
.message-body .drop { float: left; margin: 8px 18px -5px 0; color: var(--mint); font: 700 104px/.72 'Shippori Mincho', serif; }
.message-body .lead-line { font: 600 25px/1.65 'Shippori Mincho', serif; }
.message-body p { margin-bottom: 1.5em; }
.message-sign { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--ink); font: 600 17px 'Shippori Mincho', serif; }

/* Pricing */
.price-map { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.price-card { position: relative; padding: 34px; border: 1px solid var(--line); background: rgba(255,255,255,.82); }
.price-card.featured { grid-column: 1/-1; background: linear-gradient(120deg,#F1FBFA,#FAF1F8); }
.price-card h3 { margin-bottom: 18px; font: 600 23px/1.5 'Shippori Mincho', serif; }
.price-list { list-style: none; margin: 0; padding: 0; }
.price-list li { display: grid; grid-template-columns: 1fr auto; gap: 24px; padding: 14px 0; border-top: 1px solid var(--line); }
.price-list strong { color: var(--mint-dark); font: 700 18px 'Space Grotesk', sans-serif; white-space: nowrap; }
.pricing-tax { display: inline-block; margin-left: .35em; color: var(--note); font: 600 .58em/1 'Noto Sans JP', sans-serif; letter-spacing: .04em; vertical-align: .15em; white-space: nowrap; }
.price-card .estimate { color: var(--mint-dark); font: 700 28px 'Shippori Mincho', serif; }

/* Process */
.process-index { border-top: 1px solid var(--line); }
.process-item { border-bottom: 1px solid var(--line); }
.process-title { width: 100%; display: grid; grid-template-columns: 74px 1fr 30px; gap: 20px; align-items: center; padding: 24px 0; border: 0; color: var(--ink); background: none; text-align: left; cursor: pointer; }
.process-title .no { color: var(--mint-dark); font: 700 13px 'Space Grotesk', sans-serif; }
.process-title strong { font: 600 21px 'Shippori Mincho', serif; }
.process-title .plus { position: relative; width: 18px; height: 18px; }
.process-title .plus::before,.process-title .plus::after { content:''; position:absolute; background:var(--mint-dark); }
.process-title .plus::before { left:0; top:8px; width:18px; height:1px; }
.process-title .plus::after { left:8px; top:0; width:1px; height:18px; transition:.25s; }
.process-item.open .plus::after { transform: rotate(90deg); opacity: 0; }
.process-answer { max-height: 0; overflow: hidden; transition: max-height .45s ease; }
.process-answer > div { padding: 0 0 28px 94px; color: var(--note); }
.process-item.open .process-answer { max-height: 180px; }

/* FAQ */
.faq-layout { display:grid; grid-template-columns:34% 66%; gap:60px; align-items:start; }
.faq-side { position:sticky; top:112px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q { width:100%; display:grid; grid-template-columns:48px 1fr 24px; align-items:center; gap:14px; padding:24px 4px; border:0; color:var(--ink); background:none; text-align:left; cursor:pointer; }
.faq-q .no { color:var(--mint-dark); font:700 12px 'Space Grotesk',sans-serif; }
.faq-q strong { font-size:16px; }
.faq-icon { position:relative; width:18px; height:18px; }
.faq-icon::before,.faq-icon::after { content:''; position:absolute; background:var(--mint-dark); transition:.25s; }
.faq-icon::before { left:0; top:8px; width:18px; height:1px; }
.faq-icon::after { left:8px; top:0; width:1px; height:18px; }
.faq-item.open .faq-icon::after { transform:rotate(90deg); opacity:0; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .45s ease; }
.faq-a > div { padding:0 8px 28px 66px; color:var(--note); }
.faq-item.open .faq-a { max-height:420px; }

/* News */
.journal-section { overflow:hidden; background:linear-gradient(125deg,#FFFEFD 0%,#F3FBFB 48%,#FBF3F8 100%); }
.journal-section::before { content:''; position:absolute; right:-9%; top:-32%; width:540px; aspect-ratio:1; border:1px solid rgba(123,207,197,.2); border-radius:50%; box-shadow:0 0 0 62px rgba(181,168,178,.04),0 0 0 124px rgba(123,207,197,.035); }
.journal-section .wrap { position:relative; z-index:1; }
.news-layout { display:grid; grid-template-columns:280px 1fr; gap:64px; }
.news-side { position:sticky; top:110px; align-self:start; }
.news-side .large-en { color:var(--mint); font:700 68px/1 'Cormorant Garamond',serif; }
.news-list { border-top:1px solid var(--line); }
.news-item { display:grid; grid-template-columns:170px 1fr auto; gap:26px; align-items:center; padding:24px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.news-thumb { aspect-ratio:16/10; overflow:hidden; border:1px solid rgba(123,207,197,.22); border-radius:36px 2px 36px 2px; background:#FFFFFF; }
.news-thumb img { width:100%; height:100%; object-fit:cover; }
.news-date { color:var(--mint-dark); font:600 12px 'Space Grotesk',sans-serif; }
.news-item h3 { margin:6px 0 0; font-size:16px; }

/* CTA */
.contact-cta { position:relative; overflow:hidden; padding:110px 0; background:linear-gradient(122deg,#DFF4F2 0%,#F8EEF6 55%,#EEF2FB 100%); }
.contact-cta::before { content:''; position:absolute; inset:0; background:url('../images/section-bg-5.webp') center/cover; opacity:.34; mix-blend-mode:multiply; }
.contact-cta-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr 360px; gap:60px; align-items:end; }
.contact-cta h2 { font:600 clamp(34px,4.3vw,48px)/1.5 'Shippori Mincho',serif; }
.assurance { list-style:none; margin:28px 0 34px; padding:0; }
.assurance li { margin:8px 0; }
.assurance li::before { content:'—'; margin-right:10px; color:var(--mint-dark); }
.cta-photo { align-self:stretch; }
.cta-photo img { width:100%; height:100%; min-height:420px; object-fit:cover; object-position:center 20%; border-radius:180px 180px 0 0; }

/* Fixed pages */
.page-hero { position:relative; min-height:470px; padding:168px 0 90px; overflow:hidden; background:linear-gradient(120deg,#F0FAFA,#FAF0F7); }
.page-hero::before { content:''; position:absolute; inset:0; background:url('../images/hero-sub.webp') center/cover; opacity:.35; mix-blend-mode:multiply; }
.page-hero .wrap { position:relative; z-index:1; }
.page-hero h1 { max-width:820px; margin:0; font:600 clamp(38px,5vw,58px)/1.5 'Shippori Mincho',serif; }
.page-hero p { max-width:680px; margin:24px 0 0; font-size:17px; }
.breadcrumb { margin-bottom:24px; color:var(--note); font-size:12px; }
.breadcrumb a { text-decoration:none; }
.content-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.content-card { padding:34px; border:1px solid var(--line); background:#FFFFFF; }
.content-card h2,.content-card h3 { font-family:'Shippori Mincho',serif; }
.content-card img { width:100%; aspect-ratio:16/10; object-fit:cover; margin-bottom:24px; }
.company-table { width:100%; border-collapse:collapse; }
.company-table th,.company-table td { padding:18px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.company-table th { width:180px; color:var(--ink); }
.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:60px; align-items:start; }
.contact-info { position:sticky; top:110px; }
.contact-embed { padding:38px; background:#FFFFFF; box-shadow:var(--shadow); }
.sales-policy { margin:-38px -38px 32px; padding:30px 38px; border-bottom:1px solid rgba(179,75,103,.22); background:linear-gradient(120deg,#FFF8FA,#F4FBFA); }
.sales-policy .eyebrow { margin-bottom:8px; color:#8E3852; }
.sales-policy h2 { margin:0 0 12px; font:600 24px/1.55 'Shippori Mincho',serif; }
.sales-policy p:last-child { margin:0; font-size:14px; line-height:1.9; }
.form-trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-row { margin-bottom:22px; }
.form-row label,.form-row legend { display:block; margin-bottom:8px; color:var(--ink); font-weight:700; }
.form-row input[type='text'],.form-row input[type='email'],.form-row input[type='tel'],.form-row textarea,.form-row select { width:100%; min-height:52px; padding:12px 14px; border:1px solid #CBDAD8; border-radius:4px; background:#FFFFFF; }
.form-row textarea { min-height:160px; resize:vertical; }
.check-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.check-grid label,.privacy-check,.sales-confirm { font-weight:400; }
.sales-confirm { padding:14px 16px; border:1px solid rgba(179,75,103,.3); border-radius:4px; background:#FFF8FA; }
.required { color:#B34B67; font-size:12px; }
.form-error { display:none; margin-top:20px; padding:16px; border:1px solid #B34B67; background:#FFF4F7; color:#7A2E45; }
.form-error.show { display:block; }
.form-success { display:none; margin-top:20px; padding:16px; border:1px solid var(--mint); background:var(--blue-pale); }
.form-success.show { display:block; }
.article-list { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.article-card { overflow:hidden; border:1px solid rgba(123,207,197,.26); border-radius:54px 4px 54px 4px; background:#FFFFFF; box-shadow:0 18px 50px rgba(65,92,99,.07); text-decoration:none; transition:transform .3s ease,box-shadow .3s ease; }
.article-card:hover { transform:translateY(-5px); box-shadow:0 24px 60px rgba(65,92,99,.12); }
.article-card-thumb { display:block; width:100%; aspect-ratio:16/10; overflow:hidden; background:#f7faf9; }
.article-card-thumb img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.article-card-body { padding:24px; }
.article-card h2,.article-card h3 { font:600 20px/1.6 'Shippori Mincho',serif; }

/* Blog single pages */
.post-hero { position:relative; min-height:560px; padding:170px 0 80px; overflow:hidden; display:flex; align-items:flex-end; color:var(--body); background:linear-gradient(125deg,#EEF9F8,#FBF2F8 57%,#F2F4FB); }
.post-hero__bg { position:absolute; inset:0; }
.post-hero__bg::before { content:''; position:absolute; right:-9%; top:-48%; z-index:1; width:650px; aspect-ratio:1; border:1px solid rgba(50,126,121,.20); border-radius:50%; box-shadow:0 0 0 70px rgba(123,207,197,.05),0 0 0 140px rgba(181,168,178,.045); }
.post-hero__bg::after { content:''; position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,rgba(255,253,252,.94) 0 48%,rgba(255,253,252,.58) 72%,rgba(255,253,252,.28)); }
.post-hero__bg img { width:100%; height:100%; object-fit:cover; opacity:.65; mix-blend-mode:multiply; }
.post-hero .wrap { position:relative; z-index:3; }
.post-hero h1 { max-width:900px; margin:18px 0 24px; color:var(--ink); font:600 clamp(34px,4.5vw,52px)/1.5 'Shippori Mincho',serif; }
.post-hero__meta { display:flex; gap:14px; align-items:center; font:600 12px 'Space Grotesk',sans-serif; }
.post-hero__cat { padding:5px 12px; border:1px solid rgba(50,126,121,.42); border-radius:999px; color:var(--mint-dark); background:rgba(255,255,255,.48); }
.crumb { font-size:12px; }
.crumb a { text-decoration:none; }
.post-wrap { width:min(1120px,calc(100% - 56px)); margin:80px auto 110px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:64px; align-items:start; }
.post-main { width:100%; min-width:0; }
.post-figure { width:min(100%,680px); aspect-ratio:16/9; overflow:hidden; margin:0 auto 42px; border:1px solid rgba(123,207,197,.25); border-radius:54px 4px 54px 4px; background:#F5FBFA; }
.post-figure picture { display:block; width:100%; height:100%; }
.post-figure img { display:block; width:100%; height:100%!important; object-fit:cover; object-position:center; }
.post-body { max-width:740px; }
.post-body .post-lead { padding:26px 28px; border-left:3px solid var(--mint); background:var(--blue-pale); font-size:17px; }
.post-body h2 { margin:62px 0 22px; padding-bottom:14px; border-bottom:1px solid var(--line); font:600 28px/1.55 'Shippori Mincho',serif; }
.post-body h3 { margin:40px 0 18px; font:600 22px/1.55 'Shippori Mincho',serif; }
.post-body p { margin-bottom:1.35em; }
.post-body a { color:var(--mint-dark); font-weight:700; }
.post-foot { margin-top:58px; padding-top:28px; border-top:1px solid var(--line); }
.post-foot__bar { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.post-foot__back { text-decoration:none; }
.post-foot__cta { padding:12px 20px; border-radius:999px; color:#FFFFFF; background:var(--mint-deep); text-decoration:none; font-weight:700; }
.post-side { position:sticky; top:105px; display:grid; gap:24px; }
.widget { padding:24px; border:1px solid var(--line); background:#FFFFFF; }
.widget__ttl { margin:0 0 16px; font:600 18px 'Shippori Mincho',serif; }
.w-cta { color:#FFFFFF; background:linear-gradient(135deg,#397F7B,#616D79); }
.w-cta h3 { color:#FFFFFF; }
.w-cta > a { display:inline-block; padding:9px 16px; border-radius:999px; color:var(--mint-dark); background:#FFFFFF; text-decoration:none; font-weight:700; }
.post-side .search-form { display:flex; }
.post-side .search-field { min-width:0; width:100%; padding:10px; border:1px solid var(--line); }
.post-side .search-submit { border:0; padding:0 16px; color:#FFFFFF; background:var(--mint-deep); }
.w-recent { display:grid; gap:14px; }
.w-recent a { display:grid; grid-template-columns:70px 1fr; gap:12px; text-decoration:none; }
.w-recent img { width:70px; height:54px; object-fit:cover; object-position:center; border-radius:14px 2px 14px 2px; }
.w-recent .recent-copy { display:block; min-width:0; }
.w-recent b { display:block; font-size:12px; line-height:1.5; }
.w-recent time { display:block; margin-top:4px; color:var(--note); font-size:10px; }
.w-list { list-style:none; margin:0; padding:0; }
.w-list li + li { border-top:1px solid var(--line); }
.w-list a { display:flex; justify-content:space-between; gap:14px; padding:10px 0; text-decoration:none; font-size:13px; }

/* ZOROYA FOOTER */
.site-footer { padding:72px 0 24px; color:rgba(255,255,255,.8); background:#2F4B4D; }
.footer-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:54px; padding-bottom:48px; }
.footer-grid:has(> :nth-child(3)) { grid-template-columns:1.3fr .7fr .8fr; }
.footer-logo { width:230px; margin-bottom:24px; filter:brightness(0) invert(1); opacity:.92; }
.footer-nav { display:grid; gap:10px; }
.footer-nav a,.footer-social a { text-decoration:none; }
.footer-social { display:flex; gap:15px; flex-wrap:wrap; }
.footer-social a { display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.72); border-radius:50%; color:#2F4B4D; background:#FFFFFF; box-shadow:0 6px 18px rgba(15,35,36,.14); transition:background-color .25s ease,border-color .25s ease,transform .25s ease; }
.footer-social a:hover { background:#E8F7F5; border-color:#FFFFFF; transform:translateY(-2px); }
.footer-social svg,.footer-social img { display:block; width:20px; height:20px; object-fit:contain; fill:currentColor; }
.copyright { padding-top:20px; border-top:1px solid rgba(255,255,255,.18); font-size:12px; }

[data-reveal] { transition: opacity .8s ease, transform .8s ease; }
.js [data-reveal] { opacity:0; transform:translateY(28px); }
.js [data-reveal].is-visible { opacity:1; transform:none; }
.section[id] { scroll-margin-top:96px; }

@media (max-width: 980px) {
  .site-nav { position:fixed; inset:78px 0 auto; display:none; padding:28px; background:rgba(255,253,252,.98); box-shadow:var(--shadow); flex-direction:column; align-items:stretch; }
  .site-nav.open { display:flex; }
  .nav-toggle { display:block; }
  .hero-inner { grid-template-columns:52% 48%; }
  .hero-visual { padding-left:28px; }
  .hero-flow { padding:28px 24px 24px; }
  .hero-portfolio { height:520px; }
  .hero-creative { width:min(49vw,600px); height:520px; }
  .creative-chip { padding:8px 10px; font-size:7px; }
  .flow-copy { display:grid; gap:2px; }
  .flow-copy small { text-align:left; }
  .orbit { width:66vw; left:50%; }
  .orbit-core,.hero-prism,.hero-links { left:50%; }
  .hero-prism { width:min(28vw,280px); }
  .hero-node { min-width:124px; padding:10px 12px; }
  .hero-node-web,.hero-node-ai { left:-2%; }
  .hero-node-utage,.hero-node-marketing { right:-5%; }
  .metrics { grid-template-columns:1fr 1fr; }
  .c-evidence__head { gap:40px; }
  .c-evidence__layout { grid-template-columns:minmax(280px,.76fr) minmax(0,1.24fr); }
  .c-evidence__result { padding-right:34px; }
  .c-evidence__experience { padding-left:34px; }
  .c-evidence__item { grid-template-columns:28px 120px minmax(0,1fr); gap:14px; }
  .message-spread,.contact-cta-inner { grid-template-columns:42% 58%; gap:36px; }
  .price-map { grid-template-columns:1fr; }
  .price-card.featured { grid-column:auto; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-info { position:static; }
}

@media (max-width: 768px) {
  body { font-size:15px; }
  .wrap,.wrap-wide,.header-inner,.hero-inner { width:min(100% - 36px, var(--max)); }
  .site-header { height:68px; }
  .site-logo img { width:172px; height:40px; }
  .site-nav { top:68px; }
  .section { padding:68px 0; }
  .section-head { margin-bottom:36px; }
  .section-title { font-size:29px; }
  .hero { min-height:auto; padding-top:68px; }
  .hero-bg::after { background:linear-gradient(180deg,rgba(255,253,252,.96) 0 48%,rgba(255,253,252,.35) 76%,rgba(255,253,252,.72)); }
  .hero-inner { min-height:0; display:block; }
  .hero-copy { padding-top:68px; }
  .hero h1 {
    font-size:clamp(25px,7.6vw,36px);
    line-height:1.55;
    letter-spacing:-.02em;
  }
  .hero h1 span { display:block; white-space:nowrap; }
  .hero-lead { max-width:28em; font-size:15px; }
  .hero-actions { margin-bottom:24px; }
  .hero-concept { font-size:13px; }
  .hero-visual { height:auto; margin-top:0; padding:10px 0 58px; }
  .hero-flow { width:100%; padding:26px 22px 22px; border-radius:34px 3px 34px 3px; }
  .hero-flow-head { display:grid; gap:8px; }
  .hero-flow-head strong { max-width:none; text-align:left; }
  .hero-flow-list li { min-height:70px; gap:13px; }
  .flow-copy strong { font-size:15px; }
  .hero-flow-result { padding:16px 18px; }
  .hero-portfolio { height:510px; }
  .hero-creative { width:100%; height:470px; }
  .creative-picture { width:100%; }
  .creative-chip-web { left:0; top:18%; }
  .creative-chip-utage { right:0; top:25%; }
  .creative-chip-marketing { left:0; bottom:18%; }
  .creative-chip-ai { right:0; bottom:13%; }
  .portfolio-work-main { left:8%; width:78%; }
  .portfolio-work-sub { right:1%; width:61%; }
  .portfolio-brand { right:0; }
  .portfolio-label { display:none; }
  .orbit,.orbit-core,.hero-prism,.hero-links { left:50%; top:50%; }
  .orbit { width:420px; max-width:108vw; }
  .orbit-core { width:330px; max-width:78vw; }
  .hero-prism { width:210px; max-width:58vw; }
  .hero-links span { width:150px; }
  .hero-node { min-width:112px; padding:8px 10px; }
  .hero-node strong { font-size:8px; }
  .hero-node-web { left:0; top:10%; }
  .hero-node-utage { right:0; top:10%; }
  .hero-node-marketing { right:0; bottom:8%; }
  .hero-node-ai { left:0; bottom:8%; }
  .hero-caption { display:none; }
  .support-flow { min-height:auto; padding:30px 22px 24px; border-radius:34px 3px 34px 3px; }
  .support-flow li div { display:grid; gap:2px; }
  .support-flow li small { text-align:left; }
  .support-flow-result { margin-left:0; }
  .support-words > p { grid-template-columns:32px 1fr; gap:12px; }
  .support-words > p small { grid-column:2; text-align:left; }
  .support-image { border-radius:34px 3px 34px 3px; }
  .support-image figcaption { left:14px; right:14px; bottom:12px; font-size:7px; }
  .intro-layout,.service-row,.case-feature,.case-feature.reverse,.message-spread,.faq-layout,.news-layout,.contact-cta-inner,.content-grid,.footer-grid { grid-template-columns:1fr; }
  .footer-grid:has(> :nth-child(3)) { grid-template-columns:1fr; gap:34px; }
  .footer-grid > * { min-width:0; }
  .footer-nav { gap:12px; }
  .footer-social { justify-content:flex-start; }
  .intro-label,.faq-side,.news-side { position:static; }
  .intro-copy { padding:20px 0 0 24px; }
  .service-row { gap:14px; }
  .service-thumb {
    width:min(82vw,292px);
    max-width:100%;
    aspect-ratio:1/1;
    justify-self:center;
  }
  .service-thumb img { object-fit:contain; object-position:center; }
  .price-card { min-width:0; padding:24px; }
  .price-list li { gap:12px; }
  .metrics { grid-template-columns:1fr; }
  .metric { min-height:auto; }
  .metric-number { margin:24px 0 18px; }
  .c-evidence__head,.c-evidence__layout { grid-template-columns:1fr; }
  .c-evidence__head { gap:18px; margin-bottom:38px; }
  .c-evidence__lead { max-width:600px; }
  .c-evidence__result { min-height:auto; padding:46px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.25); }
  .c-evidence__big strong { font-size:112px; }
  .c-evidence__experience { padding-left:0; }
  .c-evidence__subhead { margin-top:34px; }
  .c-evidence__item { grid-template-columns:32px 120px minmax(0,1fr); }
  .case-image { min-height:280px; }
  .case-copy { padding:30px 24px; }
  .message-photo { max-width:320px; }
  .message-body .drop { font-size:76px; }
  .message-body .lead-line { font-size:22px; }
  .price-list li { grid-template-columns:1fr; gap:4px; }
  .process-answer > div { padding-left:0; }
  .news-item { grid-template-columns:110px 1fr; gap:16px; }
  .news-item > :last-child { display:none; }
  .cta-photo { display:none; }
  .page-hero { min-height:410px; padding:140px 0 68px; }
  .page-hero h1 { font-size:38px; }
  .company-table th,.company-table td { display:block; width:100%; padding:12px 4px; }
  .company-table th { border-bottom:0; padding-bottom:0; }
  .contact-embed { padding:26px 18px; }
  .sales-policy { margin:-26px -18px 26px; padding:24px 18px; }
  .reason-line { left:31px; }
  .reason-item { grid-template-columns:62px minmax(0,1fr); gap:16px; }
  .reason-dot { width:62px; height:62px; }
  .reason-body { min-width:0; }
  .reason-body p { overflow-wrap:anywhere; }
  .check-grid,.article-list { grid-template-columns:1fr; }
  .post-hero { min-height:500px; padding:138px 0 60px; }
  .post-hero__inner { width:calc(100vw - 36px)!important; min-width:0; }
  .post-hero h1 { width:100%!important; max-width:100%!important; font-size:clamp(27px,7.8vw,32px); white-space:normal!important; word-break:normal; overflow-wrap:anywhere; text-wrap:wrap!important; }
  .post-wrap { width:calc(100vw - 36px)!important; min-width:0; grid-template-columns:minmax(0,1fr); margin:58px auto 76px; }
  .post-figure { width:calc(100vw - 36px)!important; max-width:calc(100vw - 36px)!important; height:auto!important; aspect-ratio:16/9; margin-bottom:34px; border-radius:36px 3px 36px 3px; }
  .post-body { width:100%; max-width:100%; min-width:0; }
  .post-body p,.post-body h2,.post-body h3 { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  .post-side { position:static; }
}

@media (max-width: 560px) {
  .c-evidence__big strong { font-size:96px; }
  .c-evidence__big span { font-size:28px; }
  .c-evidence__item { grid-template-columns:28px 1fr; gap:6px 14px; padding:25px 0; }
  .c-evidence__index { grid-row:1 / span 2; }
  .c-evidence__number { grid-column:2; }
  .c-evidence__copy { grid-column:2; }
  .c-evidence__number strong { font-size:60px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .js [data-reveal] { opacity:1; transform:none; }
  .js .home-page [data-reveal] { opacity:1; transform:none; }
  .js .home-page .reason-line { transform:scaleY(1); }
  .js .home-page .reason-item[data-reveal] .reason-dot,.js .home-page .reason-item[data-reveal] .reason-body { opacity:1; transform:none; }
  [data-count] { text-shadow:none!important; }
}


    .hero { width: 100%; }
    .hero-decoration { mix-blend-mode: multiply; }
    h1, h2, h3, .lead, .button, summary { word-break: auto-phrase; }
    .oversized-pull { font-size: 64px; }
    @keyframes leap-orbit-trace { to { transform: rotate(360deg); } }
    @media (max-width: 768px) { .hero { width: 100%; } }
