/* =========================================================
   BLUE GROW — Corporate Site
   Editorial / mature (infobahn-inspired)
   white × ink · hairlines · restrained · #41c9f4 accent
   ========================================================= */

:root{
  --accent:#41c9f4;
  --accent-deep:#1aa6df;
  --ink:#15191c;
  --ink-2:#4a5258;
  --muted:#9aa3a9;
  --white:#ffffff;
  --paper:#f6f7f8;
  --line:#e3e6e8;
  --line-strong:#d2d6d9;
  --ease:cubic-bezier(.22,1,.36,1);
  --sans:"Noto Sans JP","Helvetica Neue",Arial,sans-serif;
  --num:"Manrope","Noto Sans JP",sans-serif;
  --maxw:1240px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:86px}
body{
  font-family:var(--sans);background:var(--white);color:var(--ink);
  line-height:1.95;letter-spacing:.015em;overflow-x:hidden;font-weight:500;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{list-style:none}
::selection{background:var(--ink);color:#fff}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:9px}

.wrap{width:88%;max-width:var(--maxw);margin-inline:auto}

/* responsive line-break helpers: .br-pc shows only on PC, .br-sp only on SP */
@media(min-width:681px){.br-sp{display:none}}
@media(max-width:680px){.br-pc{display:none}}

/* kill playful decoration from earlier iteration */
.deco{display:none!important}
.blob{display:none!important}

/* ===================== PRELOADER ===================== */
.loader{position:fixed;inset:0;z-index:9999;background:var(--white);
  display:flex;align-items:center;justify-content:center;transition:opacity .6s var(--ease),visibility .6s}
.loader.done{opacity:0;visibility:hidden}
.loader__inner{text-align:center;animation:loaderPop .7s var(--ease) both}
.loader__logo{position:relative;width:clamp(150px,42vw,230px);height:clamp(34px,9.5vw,52px);margin:0 auto;font-size:0;
  background:url(images/logo.svg) no-repeat center / contain}
.loader__logo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.92) 50%,transparent 60%);
  background-size:260% 100%;
  -webkit-mask:url(images/logo.svg) no-repeat center / contain;
          mask:url(images/logo.svg) no-repeat center / contain;
  animation:loaderSheen 1.9s var(--ease) infinite}
.loader__bar{width:120px;height:2px;border-radius:2px;background:var(--line);margin:20px auto 0;overflow:hidden}
.loader__bar i{display:block;height:100%;width:40%;border-radius:2px;background:var(--accent);animation:load 1.1s var(--ease) infinite}
@keyframes load{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}
@keyframes loaderSheen{0%{background-position:135% 0}100%{background-position:-35% 0}}
@keyframes loaderPop{0%{opacity:0;transform:translateY(10px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.loader__logo::after{display:none}.loader__inner{animation:none}}

.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:1200;background:var(--accent)}

.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:1300;transform:translate(-50%,-50%);border-radius:50%}
.cursor-dot{width:6px;height:6px;background:var(--ink)}
.cursor-ring{width:34px;height:34px;border:1px solid var(--line-strong);transition:width .25s var(--ease),height .25s var(--ease),border-color .25s}
.cursor-ring.hover{width:54px;height:54px;border-color:var(--accent)}
@media (hover:none){.cursor-dot,.cursor-ring{display:none}}

/* ===================== HEADER ===================== */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:1100;
  padding:17px 0;transition:padding .4s var(--ease),background .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent}
.site-header.scrolled{padding:16px 0;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom-color:var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;width:92%;max-width:1340px}
.brand{display:flex;align-items:center;gap:5px;z-index:1001}
.brand__mark{width:32px;height:32px;border-radius:50%;flex:none;background:var(--ink);
  display:grid;place-items:center}
.brand__mark svg{width:17px;height:17px}
.brand__name{font-family:var(--num);font-weight:700;font-size:1.18rem;letter-spacing:.1em;line-height:1;color:var(--ink)}
.brand__icon{height:30px;width:auto;flex:none;display:block}
.brand__logo{height:22px;width:auto;display:block}
.brand__name small{display:block;font-family:var(--sans);font-weight:600;font-size:.56rem;letter-spacing:.22em;color:var(--muted);margin-top:5px}

.nav{display:flex;align-items:center;gap:40px}
.nav a{position:relative;font-size:.86rem;font-weight:700;letter-spacing:.06em;color:var(--ink)}
.nav a:not(.nav__cta){padding-bottom:4px}
.nav a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--ink);transition:width .35s var(--ease)}
.nav a:not(.nav__cta):hover::after,.nav a.active:not(.nav__cta)::after{width:100%}
.nav__cta{display:inline-flex;align-items:center;gap:10px;padding:11px 22px;border:1px solid var(--accent);background:transparent;color:var(--accent-deep);border-radius:50px;font-weight:700;transition:background .35s var(--ease),color .35s,border-color .35s}
.nav__cta .dot{width:18px;height:18px;display:grid;place-items:center}
.nav__cta .dot svg{width:13px;height:13px;stroke:currentColor}
.nav__cta:hover{background:var(--accent);border-color:var(--accent);color:#fff}

.burger{display:none;flex-direction:column;gap:6px;width:32px;height:22px;justify-content:center;z-index:1001;background:none;border:0;cursor:pointer}
.burger span{height:1.5px;width:100%;background:var(--ink);transition:.4s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:1000;background:var(--white);
  display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:0;padding:96px 9% 44px;counter-reset:m;
  clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease)}
.mobile-menu.open{clip-path:inset(0 0 0 0)}
.mobile-menu a{position:relative;display:flex;align-items:center;gap:18px;
  font-family:var(--sans);font-weight:800;font-size:1.28rem;letter-spacing:.02em;color:var(--ink);
  padding:19px 4px;border-bottom:1px solid var(--line);
  opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s}
.mobile-menu a:first-child{border-top:1px solid var(--line)}
.mobile-menu a::before{counter-increment:m;content:counter(m,decimal-leading-zero);
  font-family:var(--num);font-weight:700;font-size:.8rem;letter-spacing:.06em;color:var(--accent-deep)}
.mobile-menu a::after{content:"";margin-left:auto;width:7px;height:7px;
  border-top:2px solid var(--line-strong);border-right:2px solid var(--line-strong);transform:rotate(45deg);
  transition:transform .3s var(--ease),border-color .3s}
.mobile-menu a:active{color:var(--accent-deep)}
.mobile-menu a:active::after{border-color:var(--accent-deep);transform:rotate(45deg) translate(2px,-2px)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu a:nth-child(1){transition-delay:.1s}
.mobile-menu a:nth-child(2){transition-delay:.16s}
.mobile-menu a:nth-child(3){transition-delay:.22s}
.mobile-menu a:nth-child(4){transition-delay:.28s}
.mobile-menu a:nth-child(5){transition-delay:.34s}
.mobile-menu a:nth-child(6){transition-delay:.4s}

/* ===================== BUTTONS ===================== */
.btn{display:inline-flex;align-items:center;gap:14px;padding:15px 26px;border-radius:50px;
  font-weight:700;font-size:.9rem;letter-spacing:.04em;transition:background .35s var(--ease),color .35s,border-color .35s,transform .35s}
.btn .ico{width:24px;height:24px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;flex:none;transition:transform .35s var(--ease)}
.btn .ico svg{width:12px;height:12px;stroke:currentColor}
.btn:hover .ico{transform:translateX(4px)}
.btn--primary{background:var(--ink);color:#fff}
.btn--primary:hover{background:#000}
.btn--accent{background:var(--accent);color:#fff;border:1px solid var(--accent)}
.btn--accent:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ===================== HERO ===================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--white)}
.hero::after{content:"";position:absolute;right:0;top:0;width:42%;height:100%;
  background:linear-gradient(180deg,var(--paper),#eef0f1);z-index:0}
.hero__inner{position:relative;z-index:3;width:88%;max-width:var(--maxw);margin-inline:auto;padding-top:80px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.18em;
  color:var(--ink-2);font-weight:700;margin-bottom:34px}
.hero__eyebrow i{width:26px;height:1px;background:var(--accent);border-radius:0}
.hero__title{font-family:var(--sans);font-weight:900;line-height:1.44;font-size:clamp(2.1rem,6.6vw,4.9rem);letter-spacing:.02em;color:var(--ink)}
.hero__title .l{display:block;overflow:hidden;padding:.02em 0}
.hero__title .l span{display:inline-block;transform:translateY(115%);animation:rise 1.05s var(--ease) forwards}
.hero__title .l:nth-child(1) span{animation-delay:.2s}
.hero__title .l:nth-child(2) span{animation-delay:.36s}
@keyframes rise{to{transform:translateY(0)}}
.uline{position:relative;color:var(--ink);box-shadow:inset 0 -.12em 0 var(--accent)}
.uline svg{display:none}
.hero__lead{max-width:480px;margin-top:36px;color:var(--ink-2);font-size:1rem;font-weight:500;
  opacity:0;animation:fadeUp 1s var(--ease) .8s forwards}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:42px;opacity:0;animation:fadeUp 1s var(--ease) .95s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero__scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.16em;color:var(--muted);font-weight:700}
.hero__scroll i{width:1px;height:42px;background:var(--line-strong);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;inset:0;background:var(--accent);animation:drop 1.8s var(--ease) infinite}
@keyframes drop{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}

/* ===================== MARQUEE (slim) ===================== */
.marquee{padding:18px 0;overflow:hidden;white-space:nowrap;background:var(--ink)}
.marquee__track{display:inline-block;animation:scroll-x 30s linear infinite}
.marquee__track span{font-family:var(--sans);font-weight:700;font-size:.82rem;letter-spacing:.22em;color:#fff;margin:0 18px;vertical-align:middle}
.marquee__track span.star{color:var(--accent)}
@keyframes scroll-x{to{transform:translateX(-50%)}}

/* ===================== IB HERO (editorial split type) ===================== */
.ib-hero{position:sticky;top:0;min-height:100svh;background:var(--white);overflow:hidden;display:flex;align-items:center;z-index:0}
.ib-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:130px;z-index:3;pointer-events:none;
  background:linear-gradient(to bottom,rgba(255,255,255,.92),rgba(255,255,255,0))}
/* rising panel that scrolls up over the hero — only the About/philosophy block */
.panel{position:relative;z-index:2;background:var(--white);border-radius:40px 40px 0 0;
  box-shadow:0 -26px 70px rgba(20,25,28,.10);margin-top:-18px}
.after{position:relative;z-index:2;background:#eef8fd}
/* flowing water-line where the white About panel meets the Service area */
.wave-sep{position:relative;z-index:3;line-height:0;margin-top:-46px;pointer-events:none}
.wave-sep svg{display:block;width:100%;height:96px}
.wave-sep .wf-back{fill:#d7eefb}
.wave-sep .wf-front{fill:#ffffff}
@media(max-width:680px){.wave-sep{margin-top:-30px}.wave-sep svg{height:64px}}
.ib-hero__stage{position:relative;width:100%;height:100svh;margin:0;container-type:inline-size}
.ib-w{position:absolute;font-family:var(--num);font-weight:800;line-height:.78;letter-spacing:-.03em;color:var(--ink);margin:0}
.ib-w.food{left:0;top:5%;font-size:13.5cqw}
.ib-w.design{right:0;bottom:30%;font-size:12.5cqw}
.ib-w.as{right:49.6%;left:auto;bottom:57%;font-size:6.8cqw;color:var(--ink);animation-delay:.33s}
/* per-character reveal (slide up + fade), with water sheen inside each glyph */
.ib-w .shine{display:inline-block}
.ib-w .ch{display:inline-block;white-space:pre;opacity:0;padding-right:.08em;margin-right:-.08em;
  background:linear-gradient(120deg,
    var(--ink) 0%, #20333c 18%, #2f586a 34%, #20333c 50%,
    var(--ink) 64%, #2f586a 82%, var(--ink) 100%);
  background-size:260% 260%;
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* entrance plays only after the loader clears (body.hero-in) */
body.hero-in .ib-w .ch{
  animation:waterFlow 9s ease-in-out infinite, charUp .72s var(--ease) both;
  animation-delay:-2s, calc(var(--i,0)*.05s + var(--wd,0s))}
@keyframes waterFlow{
  0%{background-position:0% 0%}
  50%{background-position:100% 100%}
  100%{background-position:0% 0%}}
@keyframes charUp{
  0%{opacity:0;transform:translateY(.6em)}
  100%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.ib-w .ch{opacity:1}body.hero-in .ib-w .ch{animation:none}}
.ib-photo{position:absolute;right:4%;top:4%;width:42%;height:39%;border-radius:3px;overflow:hidden;
  background:linear-gradient(135deg,#23323b 0%,#3c5663 45%,#5d8190 100%)}
.ib-photo::after{content:"";position:absolute;inset:0;z-index:1;background:
  radial-gradient(120px 120px at 30% 30%,rgba(65,201,244,.28),transparent 60%),
  radial-gradient(160px 160px at 78% 72%,rgba(255,255,255,.14),transparent 60%)}
.ib-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  animation:ibPhotoFade 36s ease-in-out infinite;animation-delay:calc(var(--i) * 3s)}
@keyframes ibPhotoFade{0%{opacity:0}2%{opacity:1}8.33%{opacity:1}10.33%{opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.ib-photo img{animation:none}.ib-photo img:first-of-type{opacity:1}}
.ib-photo__label{position:absolute;left:22px;bottom:18px;z-index:2;font-family:var(--num);font-weight:700;
  letter-spacing:.16em;font-size:.74rem;color:rgba(255,255,255,.92)}
/* scattered photo collage (replaces SPARK/NEW/WONDER) */
/* SPARK / NEW / WONDER — centered over the carousel (案1) */
/* opening sequence: words first, then carousel reveals & words fade out */
.ib-intro{position:absolute;inset:0;z-index:4;pointer-events:none;
  display:flex;flex-wrap:wrap;align-items:baseline;align-content:center;justify-content:center;gap:0 clamp(10px,1.7vw,28px)}
.ib-hero .ib-w{position:static;transform:none;display:inline-block;width:auto;max-width:none;z-index:4;line-height:1.05;
  font-family:"Pliant",var(--num),sans-serif;font-weight:500;font-size:clamp(2.4rem,5.6vw,5.2rem);
  filter:drop-shadow(0 2px 10px rgba(255,255,255,.88)) drop-shadow(0 0 3px rgba(255,255,255,.78))}
.ib-hero .ib-wsub{flex-basis:100%;width:100%;margin-top:.5em;z-index:4;text-align:center;
  font-family:var(--sans);font-weight:700;font-size:clamp(.95rem,1.7vw,1.35rem);letter-spacing:.1em;color:var(--ink);
  filter:drop-shadow(0 2px 8px rgba(255,255,255,.92)) drop-shadow(0 0 2px rgba(255,255,255,.82))}
body.hero-in .ib-intro{animation:ibIntroOut .8s var(--ease) 1.9s forwards}
@keyframes ibIntroOut{0%{opacity:1}100%{opacity:0;visibility:hidden}}
.ib-collage{position:absolute;inset:0;z-index:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#fff;overflow:hidden;opacity:0;transition:opacity 1.1s var(--ease) 1.9s}
.ib-collage--sp{display:none} /* PCでは2列版を隠す（SPで表示） */
body.hero-in .ib-collage{opacity:1}
.ib-col{overflow:hidden}
.ib-col__track{display:flex;flex-direction:column;will-change:transform}
.ib-col__track picture{display:block;width:100%}
.ib-col__track img{width:100%;height:auto;display:block;margin-bottom:6px}
.ib-col__track--up{animation:ibColUp 32s linear infinite}
.ib-col__track--down{animation:ibColDown 38s linear infinite}
/* equalise the visual scroll speed across columns (heights differ) */
.ib-collage .ib-col:nth-child(1) .ib-col__track{animation-duration:54s}
.ib-collage .ib-col:nth-child(2) .ib-col__track{animation-duration:57s}
.ib-collage .ib-col:nth-child(3) .ib-col__track{animation-duration:45s}
@keyframes ibColUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes ibColDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@keyframes ibRowLeft{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ibRowRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.ib-collage__scrim{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(255,255,255,.3),rgba(255,255,255,.2) 55%,rgba(255,255,255,.18))}
/* message + CTA over the light carousel */
.ib-hero .ib-tag{z-index:5;left:6%;bottom:9%;max-width:76%;font-size:clamp(1.8rem,3vw,2.9rem);color:var(--ink)}
/* message: a gradient bar sweeps in from the left, line by line */
.ib-hero .ib-tag .bgline{display:block;width:-moz-fit-content;width:fit-content;position:relative;margin-top:9px}
.ib-hero .ib-tag .bgline:first-child{margin-top:0}
.ib-hero .ib-tag .bgline--sm{margin-top:14px}
.ib-hero .ib-tag .bgline::before{content:"";position:absolute;inset:0;z-index:0;transform:scaleX(0);transform-origin:left center;opacity:0;
  background:#fff}
.ib-hero .ib-tag .bgline__inn{position:relative;z-index:1;display:inline-block;color:var(--ink);font-weight:900;line-height:1.12;letter-spacing:.03em;padding:0 .42em .26em;opacity:0}
.ib-hero .ib-tag .bgline__inn em{font-style:normal;color:var(--accent-deep)}
.ib-hero .ib-tag .bgline--lg .bgline__inn{font-size:clamp(1.5rem,2.7vw,2.5rem)}
.ib-hero .ib-tag .bgline--sm .bgline__inn{font-size:clamp(.9rem,1.35vw,1.1rem);font-weight:700;letter-spacing:.05em}
body.hero-in .ib-tag .bgline::before{animation:ibBgSweep 1.1s cubic-bezier(.22,1,.36,1) var(--d) forwards}
body.hero-in .ib-tag .bgline__inn{animation:ibInnIn .55s ease calc(var(--d) + .16s) forwards}
@keyframes ibBgSweep{0%{opacity:0;transform:scaleX(0) translateX(-5%)}30%,100%{opacity:1;transform:scaleX(1) translateX(0)}}
@keyframes ibInnIn{from{opacity:0}to{opacity:1}}
.ib-hero .ib-cta{z-index:5;right:6%;color:var(--ink);text-shadow:0 1px 10px rgba(255,255,255,.92)}
/* show CTA after the carousel has appeared */
body.hero-in .ib-cta.ib-reveal{animation-delay:2.7s}
@media(prefers-reduced-motion:reduce){.ib-collage{opacity:1}.ib-intro{display:none}.ib-hero .ib-tag .bgline::before{transform:scaleX(1);opacity:1;animation:none}.ib-hero .ib-tag .bgline__inn{opacity:1;animation:none}body.hero-in .ib-cta.ib-reveal{animation-delay:0s}}
@media(prefers-reduced-motion:reduce){.ib-col__track{animation:none}}
.ib-tag{position:absolute;left:0;bottom:5%;top:auto;max-width:72%;font-weight:900;font-size:3cqw;
  color:var(--ink);line-height:1.5;letter-spacing:.04em;z-index:4}
.ib-tag em{font-style:normal;color:var(--accent)}
.ib-tag span{display:block;margin-top:8px;font-weight:500;font-size:1.25cqw;color:var(--ink-2);line-height:1.9;letter-spacing:.02em;position:relative;z-index:4}
.ib-tag span em{color:var(--accent-deep)}
.ib-cta{position:absolute;right:0;left:auto;bottom:16%;display:inline-flex;align-items:center;gap:12px;
  font-weight:700;font-size:.86rem;letter-spacing:.06em;color:var(--ink)}
.ib-cta .ico{width:26px;height:26px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;transition:transform .35s var(--ease),background .35s,border-color .35s}
.ib-cta .ico svg{width:12px;height:12px;stroke:currentColor}
.ib-cta:hover .ico{background:var(--ink);transform:translateX(4px)}
.ib-cta:hover .ico svg{stroke:#fff}
.ib-scroll{position:absolute;right:6%;top:-58px;z-index:6;display:flex;align-items:center;gap:22px;
  font-family:var(--num);font-weight:700;color:var(--ink)}
.ib-scroll>span{font-size:1.05rem;letter-spacing:.06em}
.ib-scroll .circle{width:104px;height:104px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;
  background:transparent;transition:background .35s var(--ease),border-color .35s}
.ib-scroll .circle svg{width:24px;height:32px;stroke:var(--ink);animation:arrow-down 1.7s var(--ease) infinite}
.ib-scroll:hover .circle{background:var(--accent);border-color:var(--accent)}
.ib-scroll:hover .circle svg{stroke:#fff}
@keyframes arrow-down{0%{transform:translateY(-5px);opacity:.3}50%{transform:translateY(3px);opacity:1}100%{transform:translateY(-5px);opacity:.3}}
.ib-reveal{opacity:0;transform:translateY(20px)}
body.hero-in .ib-reveal{animation:fadeUp 1s var(--ease) forwards}
.ib-reveal.d1{animation-delay:.15s}.ib-reveal.d2{animation-delay:.3s}.ib-reveal.d3{animation-delay:.45s}.ib-reveal.d4{animation-delay:.6s}
@media(prefers-reduced-motion:reduce){.ib-reveal{opacity:1;transform:none;animation:none}}
@media(max-width:880px){
  /* hero stays full-screen; SPは3列版を隠し、2列版を表示 */
  .ib-collage--pc{display:none}
  .ib-collage--sp{display:grid;grid-template-columns:repeat(2,1fr)}
  /* SPは列が高くなるぶん速く見えるので、速度をPCに近づける（ゆっくり）。数値は調整可。 */
  .ib-collage--sp .ib-col:nth-child(1) .ib-col__track{animation-duration:80s}
  .ib-collage--sp .ib-col:nth-child(2) .ib-col__track{animation-duration:86s}
  .ib-hero .ib-w{font-size:clamp(1.5rem,6.6vw,2.6rem)}
  .ib-hero .ib-wsub{font-size:clamp(.78rem,2.8vw,1rem);letter-spacing:.06em}
  .ib-hero .ib-tag{left:5%;bottom:22%;max-width:90%}
  .ib-hero .ib-tag .bgline--lg .bgline__inn{font-size:clamp(1.35rem,5.9vw,2.1rem)}
  .ib-hero .ib-tag .bgline--sm .bgline__inn{font-size:clamp(.76rem,3vw,1rem)}
  .ib-hero .ib-tag .bgline{margin-top:6px}
  .ib-hero .ib-tag .bgline:first-child{margin-top:0}
  .ib-hero .ib-tag .bgline--sm{margin-top:9px}
  .ib-hero .ib-tag .bgline__inn{line-height:1.5;padding:.16em .42em;margin-top:0}
  .ib-cta{display:none}
  .ib-scroll{top:-40px;right:5%;gap:14px}
  .ib-scroll>span{font-size:.9rem}
  .ib-scroll .circle{width:66px;height:66px}
  .ib-scroll .circle svg{width:18px;height:24px}
  .panel{border-radius:26px 26px 0 0;margin-top:-14px}
}

/* ===================== SECTIONS ===================== */
section{position:relative}
.sec{padding:clamp(38px,5vw,68px) 0;position:relative}
.sec--paper{background:var(--paper)}
/* blue section (e.g. History) */
.sec--blue{background:linear-gradient(135deg,#41c9f4,#15a6dc);color:#fff}
.sec--blue .sec-kicker{color:#fff}
.sec--blue .sec-kicker::before{background:#fff}
.sec--blue .sec-en{color:#fff}
.sec--blue .sec-title{color:#fff}
.sec--blue .sec-title .hl{color:#ffd54a}
.sec--blue .sec-lead{color:rgba(255,255,255,.85)}
.sec--blue .history li{border-left-color:rgba(255,255,255,.3)}
.sec--blue .history li::before{background:#fff}
.sec--blue .history .yr{color:#fff}
.sec--blue .history p{color:rgba(255,255,255,.86)}
.sec--blue .btn--primary{background:#fff;color:var(--accent-deep)}
.sec--blue .btn--primary:hover{background:#eafaff;color:var(--accent-deep)}
/* aqua section with ripple motion */
.sec--aqua{position:relative;overflow:hidden;background:linear-gradient(135deg,#41c9f4,#15a6dc)}
.sec--aqua > *{position:relative;z-index:2}
.sec--aqua .sec-kicker{color:#fff}
.sec--aqua .sec-kicker::before{background:#fff}
.sec--aqua .sec-en{color:rgba(255,255,255,.9)}
.sec--aqua .sec-title{color:#fff}
.sec--aqua .sec-title .hl{color:#ffd54a}
.sec--aqua .sec-lead{color:rgba(255,255,255,.92)}
.sec--aqua .ripple-fx{position:absolute;left:50%;top:50%;z-index:1;pointer-events:none}
.ripple-fx span{position:absolute;left:0;top:0;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);transform:scale(0);opacity:0;animation:dropRipple 4.8s ease-out infinite}
.ripple-fx span:nth-child(2){animation-delay:1.6s}
.ripple-fx span:nth-child(3){animation-delay:3.2s}
@keyframes dropRipple{0%{transform:scale(0);opacity:0;border-width:2px}10%{opacity:.4}70%{opacity:.1}100%{transform:scale(32);opacity:0;border-width:1px}}
@media(prefers-reduced-motion:reduce){.ripple-fx{display:none}}
/* channel / video cards */
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;z-index:2}
.video-card{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.video-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(20,40,55,.12)}
.video-card__thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#23323b,#3c5663);overflow:hidden}
.video-card__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-card__thumb iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.video-card__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.25);transition:transform .4s var(--ease)}
.video-card:hover .video-card__play{transform:translate(-50%,-50%) scale(1.1)}
.video-card__play svg{width:20px;height:20px;margin-left:3px;fill:var(--accent-deep)}
.video-card__ttl{padding:16px 18px;font-weight:700;font-size:.92rem;color:var(--ink);line-height:1.6}
@media(max-width:760px){.video-grid{grid-template-columns:1fr}}
.muted{color:var(--muted)}

.sec-head{margin-bottom:64px;max-width:820px;position:relative;z-index:2}
.sec-kicker{display:inline-flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.16em;
  font-weight:700;color:var(--ink-2);margin-bottom:26px;text-transform:none}
.sec-kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.sec-en{font-family:var(--num);font-weight:800;font-size:clamp(2.4rem,6.4vw,5rem);line-height:1.04;
  letter-spacing:-.02em;color:var(--accent);margin:2px 0 0}
.sec-en + .sec-title,.sec-en + .about__big{margin-top:18px}
.sec-head .sec-kicker{margin-bottom:14px}
.sec-title{font-family:var(--sans);font-weight:900;line-height:1.5;color:var(--ink);
  font-size:clamp(1.4rem,2.8vw,2rem);letter-spacing:.02em}
.sec-title .hl{color:var(--accent-deep)}
.sec-lead{margin-top:24px;color:var(--ink-2);max-width:640px;font-weight:500}

[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal-delay="1"]{transition-delay:.08s}
[data-reveal-delay="2"]{transition-delay:.16s}
[data-reveal-delay="3"]{transition-delay:.24s}
[data-reveal-delay="4"]{transition-delay:.32s}

/* ===================== ABOUT ===================== */
.about{display:block;max-width:860px;margin-inline:auto;text-align:center;position:relative;z-index:2}
.about__big{font-family:var(--sans);font-weight:900;line-height:1.7;color:var(--ink);font-size:clamp(1.35rem,2.7vw,2rem);letter-spacing:.02em;margin-top: 20px}
.about__big b{color:var(--ink);font-weight:900;
  background-image:linear-gradient(transparent 54%,rgba(255,213,74,.92) 54%,rgba(255,213,74,.92) 82%,transparent 82%);
  background-repeat:no-repeat;background-position:left center;background-size:0% 100%;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
  transition:background-size .8s cubic-bezier(.22,1,.36,1) .9s}
.about__big.in b{background-size:100% 100%}
@media(prefers-reduced-motion:reduce){.about__big b{background-size:100% 100%;transition:none}}
.about__txt{margin-top:30px;color:var(--ink-2);font-weight:500;font-size:.98rem}
.about__visual{position:relative;aspect-ratio:4/5;overflow:hidden;background:linear-gradient(150deg,#1f2e36,#34505d);border-radius:4px}
.about__visual::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 18%,rgba(65,201,244,.22),transparent 55%)}
.about__visual .badge{position:absolute;left:30px;bottom:26px;font-family:var(--num);font-weight:700;font-size:clamp(1.6rem,4vw,2.6rem);color:rgba(255,255,255,.92);line-height:1.05;letter-spacing:.04em;z-index:2}
.float-chip{position:absolute;background:#fff;color:var(--ink);padding:18px 22px;border:1px solid var(--line);z-index:3;display:flex;align-items:center;gap:14px}
.float-chip.f1{bottom:8%;left:-8%}
.float-chip.f2{top:9%;right:-6%}
.float-chip b{font-family:var(--num);font-weight:700;font-size:1.9rem;color:var(--ink);line-height:1}
.float-chip span{font-size:.7rem;letter-spacing:.06em;color:var(--muted);font-weight:600;line-height:1.4}

/* ===================== BUSINESS CARDS ===================== */
.biz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);position:relative;z-index:2}
.biz-card{position:relative;padding:48px 44px;background:transparent;border-bottom:1px solid var(--line);
  transition:background .4s var(--ease)}
.biz-card:nth-child(odd){border-right:1px solid var(--line)}
.biz-card:hover{background:#fff}
.biz-card__no{font-family:var(--num);font-weight:700;font-size:.95rem;color:var(--accent-deep);letter-spacing:.08em}
.biz-card__ic{width:54px;height:54px;display:grid;place-items:center;margin:18px 0 22px;border:1px solid var(--line-strong);border-radius:50%;transition:border-color .4s}
.biz-card:hover .biz-card__ic{border-color:var(--ink)}
.biz-card__ic svg{width:26px;height:26px;stroke:var(--ink)}
.biz-card h3{font-size:1.32rem;font-weight:900;color:var(--ink)}
.biz-card p{color:var(--ink-2);font-size:.92rem;margin-top:14px;font-weight:500}
.biz-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.biz-card__tags span{font-size:.7rem;letter-spacing:.04em;color:var(--ink-2);font-weight:600;border:1px solid var(--line);padding:5px 13px;border-radius:50px}

/* ===================== STATS ===================== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:2;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{text-align:left;padding:46px 28px}
.stat:not(:last-child){border-right:1px solid var(--line)}
.stat b{font-family:var(--num);font-weight:700;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;color:var(--ink);display:block}
.stat span{display:block;margin-top:14px;font-size:.76rem;letter-spacing:.04em;color:var(--muted);font-weight:600}

/* ===================== WORKS ===================== */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;position:relative;z-index:2}
.work{position:relative;overflow:hidden;aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;border-radius:4px;
  transition:transform .5s var(--ease)}
.work:hover{transform:translateY(-6px)}
.work::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 38%,rgba(8,12,15,.82))}
.work__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .9s var(--ease);filter:saturate(.6)}
.work:hover .work__bg{transform:scale(1.06)}
.work__cat{position:relative;z-index:2;font-size:.68rem;letter-spacing:.12em;color:var(--accent);font-weight:700;align-self:flex-start}
.work__ttl{position:relative;z-index:2;font-size:1.12rem;font-weight:900;margin-top:12px;color:#fff}
.work__ttl small{display:block;font-size:.74rem;color:rgba(255,255,255,.78);font-weight:500;margin-top:6px;line-height:1.5}
/* Recruit — bright, airy section (white) */
.recruit{position:relative;overflow:hidden;background:#fff}
.recruit__glow{position:absolute;border-radius:50%;filter:blur(72px);opacity:.55;pointer-events:none;z-index:0}
.recruit__glow.g1{width:440px;height:440px;background:radial-gradient(circle,#cfecfb 0%,transparent 70%);top:-130px;right:-70px}
.recruit__glow.g2{width:380px;height:380px;background:radial-gradient(circle,#dff4ec 0%,transparent 70%);bottom:-140px;left:-90px}
.recruit__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
/* tilted overlapping photo collage (sharp corners, no frame) */
.recruit__media{position:relative;aspect-ratio:1/1;width:100%;max-width:460px;margin-left:auto;opacity:1;transform:none}
.rphoto{position:absolute;background:var(--g);background-size:cover;background-position:center;
  box-shadow:0 18px 44px rgba(28,90,130,.22);overflow:hidden;opacity:0;
  --rot:0deg;transform:rotate(var(--rot));
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.rphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rphoto.p1{width:60%;aspect-ratio:4/5;left:4%;top:9%;--rot:-4deg;z-index:2}
.rphoto.p2{width:44%;aspect-ratio:1/1;right:3%;top:0;--rot:5deg;z-index:1}
.rphoto.p3{width:50%;aspect-ratio:5/4;right:2%;bottom:2%;--rot:-7deg;z-index:3}
.rphoto:hover{transform:rotate(0deg) scale(1.04);z-index:5;box-shadow:0 28px 60px rgba(28,90,130,.30)}
/* entrance: rise + settle into tilt, staggered, when section enters view */
.recruit__media.in .rphoto{animation:photoIn .85s var(--ease) both}
.recruit__media.in .p1{animation-delay:.06s}
.recruit__media.in .p2{animation-delay:.2s}
.recruit__media.in .p3{animation-delay:.34s}
@keyframes photoIn{
  0%{opacity:0;transform:translateY(48px) rotate(0deg) scale(.9)}
  100%{opacity:1;transform:translateY(0) rotate(var(--rot)) scale(1)}}
@media(prefers-reduced-motion:reduce){.rphoto{opacity:1;transform:rotate(var(--rot))}.recruit__media.in .rphoto{animation:none}}
@media(max-width:860px){.recruit__inner{grid-template-columns:1fr;gap:40px}.recruit__media{width:100%;max-width:400px;margin-inline:auto}}

/* ===================== GALLERY CAROUSEL ===================== */
.gallery{overflow:hidden}
.carousel{margin-top:54px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.carousel__track{display:flex;gap:22px;width:max-content;animation:cscroll 48s linear infinite}
.carousel:hover .carousel__track{animation-play-state:paused}
.cslide{flex:none;width:clamp(248px,24vw,340px);aspect-ratio:4/5;border-radius:8px;overflow:hidden;position:relative;
  display:flex;flex-direction:column;justify-content:flex-end;padding:24px;transition:transform .5s var(--ease)}
.cslide:hover{transform:translateY(-6px)}
.cslide::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 42%,rgba(8,12,15,.78))}
.cslide__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.6);transition:transform .8s var(--ease)}
.cslide:hover .cslide__bg{transform:scale(1.06)}
.cslide__cat{position:relative;z-index:2;font-size:.66rem;letter-spacing:.12em;color:var(--accent);font-weight:700}
.cslide__ttl{position:relative;z-index:2;color:#fff;font-weight:900;font-size:1.05rem;margin-top:8px}
@keyframes cscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 11px))}}

/* ===================== MESSAGE ===================== */
.message{background:var(--white)}
.message__quote{font-family:var(--sans);font-weight:900;line-height:1.85;color:var(--ink);font-size:clamp(1.4rem,3.1vw,2.3rem);max-width:1000px;letter-spacing:.02em;position:relative;z-index:2}
.message__quote b{color:var(--ink);box-shadow:inset 0 -.1em 0 var(--accent)}
.message__sign{margin-top:40px;display:flex;align-items:center;gap:16px;color:var(--muted);position:relative;z-index:2;font-weight:600}
.message__sign b{font-size:1.05rem;color:var(--ink);font-weight:900}

/* ===================== CTA ===================== */
.cta{position:relative;text-align:center;overflow:hidden;background:linear-gradient(135deg,#41c9f4,#15a6dc);color:#fff}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.28),transparent 46%)}
.cta__inner{position:relative;z-index:3}
.cta h2{font-family:var(--sans);font-weight:900;color:#fff;font-size:clamp(1.7rem,4.4vw,3rem);line-height:1.5;letter-spacing:.03em;text-shadow:0 6px 22px rgba(8,60,80,.22)}
.cta p{color:rgba(255,255,255,.92);margin:24px auto 40px;max-width:520px;font-weight:600}
.cta .btn--primary{background:var(--ink);color:#fff}
.cta .btn--primary:hover{background:#fff;color:var(--accent-deep)}

/* ===================== FOOTER ===================== */
.site-footer{position:relative;z-index:2;background:var(--white);padding:84px 0 36px;border-top:1px solid var(--line)}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:30px}
.foot-brand .brand__name{font-size:1.5rem;color:var(--ink)}
.foot-logo{height:30px;width:auto;display:block}
.foot-brand p{color:var(--muted);font-size:.86rem;margin-top:20px;max-width:280px;font-weight:500}
.foot-brand .foot-addr{margin-top:14px;font-size:.8rem;letter-spacing:.02em}
.foot-col h4{font-size:.72rem;letter-spacing:.1em;color:var(--ink);margin-bottom:18px;font-weight:700}
.foot-col a{display:block;color:var(--ink-2);font-size:.88rem;padding:7px 0;transition:color .3s;font-weight:500}
.foot-col a:hover{color:var(--accent-deep)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:30px;color:var(--muted);font-size:.74rem;flex-wrap:wrap;gap:12px;font-weight:500}
/* 404 */
.notfound{text-align:center;padding:clamp(140px,20vw,220px) 0 clamp(80px,11vw,130px);background:var(--white)}
.notfound__num{font-family:var(--num);font-weight:800;font-size:clamp(5.5rem,24vw,13rem);line-height:.86;letter-spacing:-.02em;color:var(--accent);
  background:linear-gradient(135deg,#5aaee2,#15a6dc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.notfound__title{font-size:clamp(1.5rem,4vw,2.3rem);font-weight:900;color:var(--ink);margin-top:14px}
.notfound__lead{color:var(--ink-2);font-weight:500;margin-top:18px;line-height:2}
.notfound__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px}
.foot-bottom a{color:var(--muted);font-weight:500;transition:color .3s}
.foot-bottom a:hover{color:var(--ink)}
/* legal document (privacy policy) */
.legal{position:relative;z-index:2}
.legal>p{color:var(--ink-2);font-size:.94rem;line-height:2;font-weight:500;margin-bottom:14px}
.legal h2{font-size:1.12rem;font-weight:900;color:var(--ink);margin:44px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.legal ul{margin:6px 0 18px;padding-left:2px}
.legal li{position:relative;padding-left:18px;color:var(--ink-2);font-size:.94rem;line-height:1.9;font-weight:500;margin-bottom:8px}
.legal li::before{content:"";position:absolute;left:2px;top:.78em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.legal ul ul{margin:10px 0 4px}
.legal ul ul li::before{width:5px;height:1px;border-radius:0;background:var(--muted);top:.95em}
.foot-bottom .tag{font-family:var(--sans);font-weight:700;letter-spacing:.04em;color:var(--ink-2);font-size:.82rem}

/* ===================== PAGE HERO ===================== */
.page-hero{position:relative;padding:200px 0 84px;overflow:hidden;background:var(--white)}
.page-hero .wrap{position:relative;z-index:3}
.page-hero h1{font-size:clamp(1.9rem,5.4vw,3.4rem);font-weight:900;color:var(--ink);letter-spacing:.03em;line-height:1.5}
.page-hero .lead{margin-top:18px;color:var(--ink-2);font-weight:500}
.breadcrumb{display:flex;gap:10px;font-size:.76rem;color:var(--muted);margin-top:26px;letter-spacing:.04em;font-weight:500}
.breadcrumb a:hover{color:var(--accent-deep)}

/* ===================== TABLE ===================== */
.info-table{width:100%;border-collapse:collapse;position:relative;z-index:2;border-top:1px solid var(--line)}
.info-table th,.info-table td{text-align:left;padding:26px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.94rem}
.info-table th{width:230px;color:var(--ink);font-weight:700;letter-spacing:.04em;font-size:.86rem}
.info-table td{color:var(--ink-2);font-weight:500}
/* FC system list */
.fc-system{position:relative;z-index:2;max-width:880px;border-top:1px solid var(--line)}
.fc-system__item{display:grid;grid-template-columns:auto 1fr;gap:30px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
.fc-system__no{font-family:var(--num);font-weight:800;font-size:1.7rem;line-height:1;color:var(--accent-deep)}
.fc-system__txt h3{font-size:1.18rem;font-weight:900;color:var(--ink);margin-bottom:12px}
.fc-system__txt p{color:var(--ink-2);font-size:.95rem;line-height:1.95;font-weight:500}
.fc-system__txt p strong{color:var(--accent-deep);font-weight:800}
.fc-system__txt small{font-size:.84rem;color:var(--muted)}
.fc-system__cta{position:relative;z-index:2;text-align:center;margin-top:42px}
.fc-system__cta p{color:var(--ink-2);font-weight:600;margin-bottom:22px;line-height:1.9}
@media(max-width:680px){.fc-system__item{grid-template-columns:auto 1fr;gap:16px;padding:24px 0}.fc-system__no{font-size:1.4rem}}
/* News list */
.news-list{max-width:860px;margin:0 auto;border-top:1px solid var(--line);position:relative;z-index:2}
.news-item{border-bottom:1px solid var(--line)}
.news-item>a{display:grid;grid-template-columns:auto 1fr;gap:6px 30px;align-items:baseline;padding:24px 6px;text-decoration:none;transition:background .3s var(--ease)}
.news-item>a:hover{background:#fafbfc}
.news-item__meta{display:flex;align-items:center;gap:14px}
.news-item time{font-family:var(--num);font-weight:700;font-size:.9rem;color:var(--ink-2);letter-spacing:.04em;white-space:nowrap}
.news-item__cat{font-size:.7rem;font-weight:700;color:var(--accent-deep);border:1px solid var(--accent);border-radius:50px;padding:3px 13px;white-space:nowrap}
.news-item__title{color:var(--ink);font-weight:700;font-size:1rem;line-height:1.7;transition:color .3s var(--ease)}
.news-item>a:hover .news-item__title{color:var(--accent-deep)}
@media(max-width:600px){.news-item>a{grid-template-columns:1fr;gap:9px;padding:20px 4px}}
/* News detail (single post) */
.post-hero{padding-bottom:40px}
.post__meta{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.post__meta time{font-family:var(--num);font-weight:700;color:var(--ink-2);font-size:.92rem;letter-spacing:.04em}
.post__thumb{margin:0 0 48px;border-radius:6px;overflow:hidden;aspect-ratio:16/9;position:relative;z-index:2}
.post__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-content{position:relative;z-index:2;color:var(--ink-2);font-weight:500;line-height:2;font-size:1rem}
.post-content>*+*{margin-top:1.5em}
.post-content .lead{font-size:1.14rem;font-weight:700;color:var(--ink);line-height:1.95}
.post-content h2{font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:900;color:var(--ink);line-height:1.55;margin-top:2.4em;padding-left:16px;border-left:4px solid var(--accent)}
.post-content h3{font-size:1.16rem;font-weight:800;color:var(--ink);margin-top:2em}
.post-content a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.post-content strong{color:var(--ink);font-weight:800}
.post-content small{font-size:.82rem;color:var(--muted)}
.post-content ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:13px}
.post-content ul li{position:relative;padding-left:24px}
.post-content ul li::before{content:"";position:absolute;left:3px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.post-content figure{margin:2.4em 0}
.post-content figure img{width:100%;border-radius:6px;display:block}
.post-content figcaption{margin-top:12px;font-size:.84rem;color:var(--muted);text-align:center;line-height:1.7}
.post-content blockquote{margin:2.2em 0;padding:22px 28px;background:#f2f6f7;border-left:4px solid var(--accent);border-radius:0 6px 6px 0;color:var(--ink);font-weight:700;line-height:1.9}
.post__back{margin-top:60px;text-align:center;position:relative;z-index:2}
@media(max-width:680px){
  .post-hero{padding-bottom:28px}
  .post__thumb{aspect-ratio:4/3;margin-bottom:32px}
  .post-content{line-height:1.95;font-size:.98rem}
  .post-content h2{padding-left:12px;margin-top:2em}
  .post-content blockquote{padding:18px 20px}
}

/* stores */
.store-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px;position:relative;z-index:2}
.store-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.store-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(20,40,55,.12)}
.store-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#23323b,#3c5663)}
.store-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.store-card:hover .store-card__media img{transform:scale(1.06)}
.store-card__cat{position:absolute;left:16px;top:16px;z-index:2;font-size:.66rem;letter-spacing:.1em;font-weight:700;color:#fff;background:rgba(16,32,44,.55);backdrop-filter:blur(6px);padding:6px 13px;border-radius:50px}
.store-card__body{padding:28px 26px 30px}
.store-card__body h3{font-size:1.3rem;font-weight:900;color:var(--ink)}
.store-card__desc{color:var(--ink-2);font-size:.9rem;font-weight:500;margin-top:12px;line-height:1.9}
.store-info{margin-top:22px;border-top:1px solid var(--line)}
.store-info div{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.store-info dt{flex:none;width:60px;color:var(--ink);font-weight:700}
.store-info dd{color:var(--ink-2);font-weight:500;margin:0}
.store-links{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.store-links a{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;letter-spacing:.02em;padding:10px 18px;border-radius:50px;border:1px solid var(--line-strong);color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.store-links a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.store-links a svg{width:15px;height:15px}
@media(max-width:760px){.store-grid{grid-template-columns:1fr;gap:26px}}

/* menu cards (with photo) */
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;position:relative;z-index:2}
.menu-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.menu-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(20,40,55,.12)}
.menu-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#23323b,#3c5663)}
.menu-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.menu-card:hover .menu-card__media img{transform:scale(1.06)}
.menu-card__no{position:absolute;left:16px;top:13px;z-index:2;font-family:var(--num);font-weight:700;font-size:.95rem;color:#fff;letter-spacing:.06em;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.menu-card__body{padding:24px 24px 28px}
.menu-card__body h3{font-size:1.22rem;font-weight:900;color:var(--ink)}
.menu-card__body p{color:var(--ink-2);font-size:.9rem;font-weight:500;margin-top:12px;line-height:1.9}
.menu-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.menu-card__tags span{font-size:.7rem;letter-spacing:.04em;color:var(--ink-2);font-weight:600;border:1px solid var(--line);padding:5px 13px;border-radius:50px}
@media(max-width:860px){.menu-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.menu-grid{grid-template-columns:1fr}}

.history{position:relative;margin-top:10px;z-index:2}
.history li{position:relative;padding:0 0 40px 44px;border-left:1px solid var(--line)}
.history li::before{content:"";position:absolute;left:-4.5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.history li:last-child{border-color:transparent}
.history .yr{font-family:var(--num);font-weight:700;font-size:1.1rem;color:var(--ink)}
.history p{color:var(--ink-2);margin-top:6px;font-weight:500}

/* values */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);position:relative;z-index:2}
.value{padding:46px 38px;background:transparent;border-bottom:1px solid var(--line);transition:background .4s var(--ease)}
.value:not(:last-child){border-right:1px solid var(--line)}
.value:hover{background:var(--paper)}
.value .vno{width:50px;height:50px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;
  font-family:var(--num);font-weight:700;font-size:1.05rem;color:var(--ink);margin-bottom:22px}
.value h3{font-size:1.22rem;font-weight:900;margin-bottom:12px;color:var(--ink)}
.value p{color:var(--ink-2);font-size:.9rem;font-weight:500}

/* business detail */
.biz-detail{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:30px 0;position:relative;z-index:2}
.biz-detail:first-child{border-top:1px solid var(--line)}
.biz-detail:nth-child(even) .biz-detail__media{order:-1}
/* numbered biz-detail split into head / media / body */
.biz-detail--num{grid-template-areas:"head media" "body media";column-gap:70px;row-gap:16px;align-items:center}
.biz-detail--num .biz-detail__head{grid-area:head;align-self:end;display:flex;align-items:baseline;gap:.45em;flex-wrap:wrap}
.biz-detail--num .biz-detail__head .biz-detail__no{margin-bottom:0}
.biz-detail--num .biz-detail__media{grid-area:media}
.biz-detail--num .biz-detail__body{grid-area:body;align-self:start}
.biz-detail--num .biz-detail__body>p:first-child{margin-top:0}
.biz-detail--num:nth-child(even){grid-template-areas:"media head" "media body"}
.biz-detail__media{aspect-ratio:4/3;overflow:hidden;position:relative;border-radius:4px}
.biz-detail:not(.biz-detail--num) .biz-detail__media{max-width:440px;width:100%;margin-left:auto}
@media(max-width:680px){.biz-detail:not(.biz-detail--num){margin-top:-40px !important;padding-top:0}}
.biz-detail__media .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.6)}
.biz-detail__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.biz-detail__media .num{position:absolute;left:26px;top:18px;font-family:var(--num);font-weight:700;font-size:clamp(3rem,7vw,5rem);color:rgba(255,255,255,.85);z-index:2}
.biz-detail__no{display:inline-block;font-family:var(--num);font-weight:800;color:var(--accent-deep);font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1;margin-bottom:14px;letter-spacing:.04em}
.biz-detail h2{font-size:clamp(1.45rem,3vw,2.1rem);font-weight:900;line-height:1.5;color:var(--ink)}
.biz-detail p{color:var(--ink-2);margin-top:22px;font-weight:500;font-size:.96rem}
.biz-detail ul.feats{margin-top:26px;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.biz-detail ul.feats li{display:flex;gap:14px;align-items:center;color:var(--ink);font-size:.92rem;font-weight:600;padding:14px 2px;border-bottom:1px solid var(--line)}
.biz-detail ul.feats li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* ===================== CONTACT ===================== */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;position:relative;z-index:2}
.contact-info h3{font-size:1.4rem;font-weight:900;margin-bottom:20px;color:var(--ink)}
.contact-info .row{padding:24px 0;border-bottom:1px solid var(--line)}
.contact-info .row:first-of-type{border-top:1px solid var(--line)}
.contact-info .row span{font-size:.72rem;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:7px;font-weight:700}
.contact-info .row b{font-size:1.08rem;font-weight:700;color:var(--ink)}
.form{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:44px}
.field{margin-bottom:24px}
.field label{display:block;font-size:.8rem;letter-spacing:.04em;margin-bottom:10px;color:var(--ink);font-weight:700}
.field label i{color:var(--accent-deep);font-style:normal}
.field input,.field textarea,.field select{width:100%;padding:15px 16px;border-radius:4px;background:#fff;border:1px solid var(--line-strong);color:var(--ink);font-family:inherit;font-size:.95rem;font-weight:500;transition:border-color .3s,box-shadow .3s}
.field input::placeholder,.field textarea::placeholder{color:#b6bdc2}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(65,201,244,.14)}
.field textarea{resize:vertical;min-height:140px}
.form .btn{width:100%;justify-content:center;cursor:pointer;border:0;font-size:1rem}
.form .btn.btn--accent{border:1px solid var(--accent)}
.form-note{font-size:.74rem;color:var(--muted);margin-top:16px;text-align:center;font-weight:500}
.form__ok{display:none;text-align:center;padding:30px 0}
.form__ok.show{display:block}
.form__ok b{font-size:1.3rem;color:var(--ink)}

/* ===================== RESPONSIVE ===================== */
@media(max-width:980px){
  .about,.contact-grid{grid-template-columns:1fr;gap:50px}
  .biz-grid{grid-template-columns:1fr}
  .biz-card:nth-child(odd){border-right:0}
  .works{grid-template-columns:1fr 1fr}
  .values{grid-template-columns:1fr}
  .value:not(:last-child){border-right:0}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line)}
  .foot-top{grid-template-columns:1fr 1fr}
  .biz-detail,.biz-detail:nth-child(even){grid-template-columns:1fr;gap:28px}
  .biz-detail__media,.biz-detail:nth-child(even) .biz-detail__media{order:-1}
  .biz-detail--num,.biz-detail--num:nth-child(even){grid-template-areas:"head" "media" "body";row-gap:20px}
  .biz-detail--num .biz-detail__head,.biz-detail--num .biz-detail__body{align-self:auto}
  .hero::after{display:none}
  .float-chip.f2{right:0}.float-chip.f1{left:0}
}
@media(max-width:680px){
  .nav{display:none}
  .burger{display:flex}
  .works,.stats,.foot-top{grid-template-columns:1fr}
  .foot-brand p{max-width:none}
  .work{aspect-ratio:16/10}
  .stat:not(:last-child){border-right:0;border-bottom:1px solid var(--line)}
  .info-table th{width:120px;font-size:.8rem}
  .form{padding:26px}
}

/* ===== 代表メッセージ（写真つき） ===== */
.message{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:start;position:relative;z-index:2}
.message__photo{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line);
  background:linear-gradient(135deg,#cfe9f6,#9ccfe6)}
.message__photo img{width:100%;height:100%;object-fit:cover;display:block}
.message__photo .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  color:#2a6f8e;font-weight:700;font-size:.82rem;letter-spacing:.04em;line-height:1.9;padding:22px}
.message__body{max-width:600px}
.message__body p{margin-top:22px;color:var(--ink-2);font-weight:500;font-size:.98rem;line-height:2.05}
.message__body p:first-child{margin-top:0}
.message__sign{margin-top:30px!important;text-align:right;font-weight:700;color:var(--ink)}
/* 代表プロフィール（開閉式） */
.bio{max-width:760px;margin:36px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bio__summary{padding:24px 4px 2px;font-weight:900;font-size:1.05rem;color:var(--ink)}
.bio__panel{padding:14px 4px 30px}
.bio__name{font-size:1.5rem;font-weight:900;color:var(--ink)}
.bio__name small{font-family:var(--num);font-weight:700;font-size:.74rem;letter-spacing:.12em;color:var(--muted);margin-left:12px}
.bio__role{margin-top:8px;font-size:.9rem;font-weight:700;color:var(--accent-deep);letter-spacing:.04em}
.bio__meta{margin-top:22px;display:flex;gap:40px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px}
.bio__meta div{display:flex;gap:12px}
.bio__meta dt{color:var(--ink);font-weight:700;font-size:.86rem}
.bio__meta dd{margin:0;color:var(--ink-2);font-weight:500;font-size:.86rem}
.bio__career{margin-top:22px;display:grid;gap:12px}
.bio__career li{position:relative;padding-left:20px;color:var(--ink-2);font-weight:500;line-height:1.8;font-size:.92rem}
.bio__career li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
@media(max-width:760px){.message{grid-template-columns:1fr;gap:28px}.message__photo{max-width:440px;margin-inline:auto}.message__body{max-width:none}}

/* ===== ミッション/ビジョン/バリュー（編集的レイアウト） ===== */
.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:10px;position:relative;z-index:2}
.mvv__item{padding-top:0;border-top:0}
.mvv__en{display:inline-block;font-family:var(--num);font-weight:800;font-size:clamp(1.7rem,2.3vw,2.15rem);letter-spacing:.03em;text-transform:uppercase;color:var(--accent);line-height:1.1;position:relative;padding-bottom:14px}
.mvv__en::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:1px;background:var(--muted)}
.mvv__item h3{font-size:1.3rem;font-weight:900;color:var(--ink);margin:16px 0 12px}
.mvv__item p{color:var(--ink-2);font-size:1rem;font-weight:500;line-height:2}
@media(max-width:760px){.mvv{grid-template-columns:1fr;gap:30px}}

/* ===== About 大見出し：文字出現モーション ===== */
.char-reveal .ch{display:inline-block;opacity:0;transform:translateY(.55em) rotate(8deg);will-change:transform,opacity}
.char-reveal.in .ch{animation:charPop .6s var(--ease) forwards;animation-delay:calc(var(--i)*.04s)}
@keyframes charPop{0%{opacity:0;transform:translateY(.55em) rotate(8deg)}55%{opacity:1}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.char-reveal .ch{opacity:1;transform:none;animation:none}}

/* ===== 事業一覧：写真つき横並びリスト（白パネル） ===== */
.featurelist{background:#fff;border:1px solid var(--line);border-radius:24px;padding:10px 34px;position:relative;z-index:2;
  box-shadow:0 24px 60px -36px rgba(20,80,110,.3)}
.featurelist__row{display:grid;grid-template-columns:228px 1fr;gap:42px;align-items:center;
  padding:32px 0;border-bottom:1px solid var(--line)}
.featurelist__row:last-child{border-bottom:0}
.featurelist__photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/10;border:1px solid var(--line);
  background:linear-gradient(135deg,#cfe9f6,#a4d2e8)}
.featurelist__photo img{width:100%;height:100%;object-fit:cover;display:block}
.featurelist__photo .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  color:#35768f;font-size:.78rem;font-weight:700;letter-spacing:.04em;line-height:1.7;padding:10px}
.featurelist__no{display:block;font-family:var(--num);font-weight:700;font-size:.82rem;letter-spacing:.12em;color:var(--accent-deep);margin-bottom:6px}
.featurelist__body h3{font-size:1.34rem;font-weight:900;color:var(--ink);margin:0 0 12px}
.featurelist__desc{color:var(--ink-2);font-size:.96rem;line-height:1.95;font-weight:500}
.featurelist__tags{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}
.featurelist__tags span{font-size:.74rem;font-weight:600;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 12px;white-space:nowrap}
@media(max-width:760px){.featurelist{padding:6px 20px;border-radius:18px}
  .featurelist__row{grid-template-columns:1fr;gap:16px;padding:26px 0}
  .featurelist__photo{max-width:320px;width:100%;justify-self:center;margin-inline:auto}
  .featurelist__no{display:inline;font-size:1em;font-weight:900;letter-spacing:.02em;margin:0 .4em 0 0}}

/* ===== 強み：大きな番号の特徴グリッド（digitalgrid型） ===== */
.strength-stage{position:relative;max-width:700px;margin:0 auto}
.bignum-grid{z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:64px;justify-items:center;align-items:start}
/* center emblem */
.bignum-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(56%,400px);aspect-ratio:1;border-radius:50%;
  display:grid;place-items:center;text-align:center;z-index:-1;
  border:9px solid rgba(65,201,244,.12);
  background:radial-gradient(circle at 50% 40%,rgba(65,201,244,.045),rgba(65,201,244,0) 68%)}
.bignum-core::before{content:"";position:absolute;inset:-22px;border-radius:50%;border:1.5px dashed rgba(65,201,244,.28);animation:spin 30s linear infinite}
.bignum-core::after{content:"";position:absolute;inset:12px;border-radius:50%;border:1px solid rgba(65,201,244,.1)}
.bignum-core__en{font-family:var(--num);font-weight:700;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent-deep)}
.bignum-core__num{display:block;font-family:var(--num);font-weight:800;font-size:clamp(2.6rem,4.6vw,3.6rem);line-height:.86;color:var(--ink);margin:6px 0 2px}
.bignum-core__sub{font-family:var(--sans);font-weight:700;font-size:.86rem;color:var(--ink-2)}
@keyframes spin{to{transform:rotate(360deg)}}

.bignum{width:100%;max-width:330px;text-align:center;position:relative;z-index:1}
.bignum:first-child{grid-column:1/3}
.bignum__no{position:relative;width:78px;height:78px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle at 36% 30%,#ffffff,#e9f7fe);
  border:1.5px solid rgba(65,201,244,.55);
  box-shadow:0 12px 28px rgba(26,166,223,.2),inset 0 1px 0 #fff;
  font-family:var(--num);font-weight:800;font-size:1.7rem;line-height:1;color:var(--accent-deep)}
.bignum__no::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(65,201,244,.3)}
.bignum h3{font-size:clamp(1.05rem,1.4vw,1.3rem);font-weight:900;line-height:1.5;color:var(--ink);margin:0 0 10px}
.bignum p{color:var(--ink-2);font-size:.9rem;line-height:1.9;font-weight:500}
@media(max-width:620px){.bignum-grid{grid-template-columns:1fr;gap:34px}
  .bignum:first-child{grid-column:auto}
  .bignum-core{display:none}}
@media(prefers-reduced-motion:reduce){.bignum-core::before{animation:none}}

/* ===== 下層ページ：右側のフェード画像（夢／雲から現れる感じ） ===== */
.page-hero.has-dream{padding:150px 0 44px;background:#fff;overflow:hidden}
.page-hero__copy{position:relative;z-index:3;max-width:600px}
.post-hero .page-hero__copy{max-width:none} /* ニュース詳細は横に画像が無いのでタイトル幅を解放 */
.page-hero__dream{position:absolute;top:0;right:0;width:55%;height:100%;z-index:1;pointer-events:none;
  background:linear-gradient(135deg,#d7ecf7,#a9d6ea);
  -webkit-mask-image:radial-gradient(125% 120% at 80% 44%,#000 26%,rgba(0,0,0,.4) 56%,transparent 76%),linear-gradient(to left,#000 60%,transparent 92%),linear-gradient(to top,#000 86%,transparent 100%);
  -webkit-mask-composite:source-in,source-in;
          mask-image:radial-gradient(125% 120% at 80% 44%,#000 26%,rgba(0,0,0,.4) 56%,transparent 76%),linear-gradient(to left,#000 60%,transparent 92%),linear-gradient(to top,#000 86%,transparent 100%);
          mask-composite:intersect,intersect}
.page-hero__dream img{width:100%;height:100%;object-fit:cover;display:block}
.page-hero__dream::after{content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(78% 78% at 70% 40%,rgba(255,255,255,0) 38%,rgba(255,255,255,.6) 100%)}
.page-hero__dream .ph{position:absolute;inset:0;z-index:2;display:grid;place-items:center;
  color:#4a8aa3;font-weight:700;font-size:.82rem;letter-spacing:.06em;opacity:.85}
@media(max-width:900px){.page-hero__dream{width:64%;opacity:.5}.page-hero__copy{max-width:480px}}
@media(max-width:680px){.page-hero{padding:108px 0 44px}
  .page-hero.has-dream{padding:108px 0 40px}
  .page-hero__copy{max-width:none}
  .page-hero__dream{width:100%;opacity:.9;
    -webkit-mask-image:linear-gradient(180deg,#000,transparent 96%);mask-image:linear-gradient(180deg,#000,transparent 96%)}}

/* ===== 採用：間口カード ===== */
.gate-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;position:relative;z-index:2}
.gate-card{position:relative;display:block;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s var(--ease)}
.gate-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(20,40,55,.12);border-color:var(--accent)}
.gate-card__body{padding:40px 38px}
.gate-card__body h3{font-size:1.5rem;font-weight:900;color:var(--ink)}
.gate-card__body p{color:var(--ink-2);font-size:.92rem;font-weight:500;margin-top:12px;line-height:1.9}
.gate-card__go{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-weight:800;font-size:.92rem;color:#fff;background:var(--accent);padding:13px 24px;border-radius:50px;transition:background .3s var(--ease)}
.gate-card:hover .gate-card__go{background:var(--accent-deep)}
.gate-card__go .ico{width:22px;height:22px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;flex:none;transition:transform .35s var(--ease)}
.gate-card__go .ico svg{width:11px;height:11px;stroke:currentColor}
.gate-card:hover .gate-card__go .ico{transform:translateX(4px)}
@media(max-width:680px){.gate-grid{grid-template-columns:1fr;gap:20px}
  .gate-card__go{display:flex;width:100%;justify-content:center}}

/* ===== 採用：モデル月収 ===== */
.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);position:relative;z-index:2}
.pay{padding:34px 30px;border-bottom:1px solid var(--line);transition:background .4s var(--ease)}
.pay:not(:nth-child(3n)){border-right:1px solid var(--line)}
.pay:hover{background:#fff}
.pay__role{font-size:.78rem;letter-spacing:.06em;font-weight:700;color:var(--accent-deep)}
.pay__amt{font-family:var(--num);font-weight:800;font-size:clamp(1.7rem,3vw,2.2rem);line-height:1;color:var(--ink);margin:10px 0 14px}
.pay__amt small{font-family:var(--sans);font-size:.92rem;font-weight:700;color:var(--ink-2);margin-left:4px}
.pay__desc{color:var(--ink-2);font-size:.88rem;font-weight:500;line-height:1.85}
.pay--up{background:linear-gradient(135deg,#eafaff,#f3fbf7)}
@media(max-width:760px){.pay-grid{grid-template-columns:1fr}.pay:not(:nth-child(3n)){border-right:0}}

/* ===== 採用：社員の声 ===== */
.voice-list{display:flex;flex-direction:column;gap:34px;position:relative;z-index:2}
.voice{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.voice__head{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:26px 32px;border-bottom:1px solid var(--line);background:var(--paper)}
.voice__photo{width:92px;height:92px;border-radius:50%;object-fit:cover;border:1px solid var(--line);display:block}
.voice__photo--ph{display:grid;place-items:center;font-family:var(--num);font-weight:800;font-size:2rem;color:var(--accent-deep);background:linear-gradient(135deg,#eafaff,#dff4ec)}
.voice__year{font-family:var(--num);font-weight:700;font-size:.78rem;letter-spacing:.1em;color:var(--accent-deep)}
.voice__name{font-size:1.32rem;font-weight:900;color:var(--ink);margin-top:5px}
.voice__body{padding:6px 32px 26px}
.voice__qa{padding:24px 0;border-bottom:1px solid var(--line)}
.voice__qa:last-child{border-bottom:0}
.voice__q{position:relative;padding-left:34px;font-size:1.04rem;font-weight:900;color:var(--ink);line-height:1.6}
.voice__q::before{content:"Q";position:absolute;left:0;top:-2px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--num);font-weight:800;font-size:.8rem;display:grid;place-items:center}
.voice__a{position:relative;padding-left:34px;margin-top:14px;color:var(--ink-2);font-weight:500;line-height:1.95}
.voice__a::before{content:"A";position:absolute;left:0;top:-2px;width:24px;height:24px;border-radius:50%;background:var(--paper);border:1px solid var(--line-strong);color:var(--ink);font-family:var(--num);font-weight:800;font-size:.8rem;display:grid;place-items:center}
.voice__a ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:11px}
.voice__a ul li{position:relative;padding-left:22px}
.voice__a ul li::before{content:"";position:absolute;left:3px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
@media(max-width:680px){.voice__head{padding:22px 22px;gap:16px}.voice__photo{width:72px;height:72px}.voice__body{padding:4px 22px 22px}}

/* ===== 採用：資格手当リスト ===== */
.lic-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(7,auto);grid-auto-flow:column;gap:0 52px;border-top:1px solid var(--line);position:relative;z-index:2}
.lic{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:18px 4px;border-bottom:1px solid var(--line)}
.lic__name{font-weight:700;color:var(--ink);font-size:.95rem;line-height:1.5}
.lic__sub{display:block;font-size:.78rem;font-weight:500;color:var(--muted);margin-top:3px}
.lic__amt{font-family:var(--num);font-weight:800;color:var(--accent-deep);font-size:1.05rem;white-space:nowrap}
@media(max-width:680px){.lic-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;gap:0}}

/* ===== 採用：社員の声（開閉アコーディオン） ===== */
summary.voice__head{grid-template-columns:auto 1fr auto;cursor:pointer;list-style:none;user-select:none;transition:background .3s var(--ease)}
summary.voice__head::-webkit-details-marker{display:none}
summary.voice__head:hover{background:#eef6f8}
.voice:not([open]) .voice__head{border-bottom:0}
.voice__toggle{width:34px;height:34px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--ink);flex:none;transition:transform .35s var(--ease),background .3s,border-color .3s,color .3s}
.voice__toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.voice[open] .voice__toggle{transform:rotate(180deg);background:var(--accent);border-color:var(--accent);color:#fff}

/* ===== 採用：求める人材像（2列ルール線リスト） ===== */
.persona-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:0 56px;border-top:1px solid var(--line);position:relative;z-index:2}
.persona{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:22px 6px;border-bottom:1px solid var(--line);transition:background .3s var(--ease)}
.persona:hover{background:var(--paper)}
.persona__no{font-family:var(--num);font-weight:800;font-size:1.2rem;color:var(--accent-deep);line-height:1}
.persona__txt{font-weight:700;color:var(--ink);font-size:1rem;line-height:1.6}
@media(max-width:680px){.persona-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;gap:0}}

/* ===== WordPress: Contact Form 7 ===== */
.wpcf7 .field .wpcf7-form-control-wrap{display:block}
.wpcf7-not-valid-tip{color:#d63333;font-size:.8rem;margin-top:6px;font-weight:600}
.wpcf7 form .wpcf7-response-output{margin:18px 0 0;padding:14px 16px;border-radius:6px;font-size:.9rem;font-weight:600;border-width:1px;border-style:solid}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output{border-color:#e7b4b4;background:#fbeeee;color:#b13a3a}
.wpcf7 form.sent .wpcf7-response-output{border-color:#b4e7c8;background:#eef9f2;color:#2f8857}
.wpcf7 .wpcf7-spinner{margin:8px auto 0}

/* ===== WordPress: Pagination ===== */
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;margin:0 4px 8px;border:1px solid var(--line-strong);border-radius:50px;color:var(--ink);font-family:var(--num);font-weight:700;text-decoration:none;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.pagination .page-numbers:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.pagination .page-numbers.current{background:var(--accent);border-color:var(--accent);color:#fff}
.pagination .page-numbers.dots{border:0;background:none}

/* ===== WordPress: 投稿本文(エディタ)の画像・余白の最低限の調整 ===== */
.post-content img{max-width:100%;height:auto;border-radius:6px}
.post-content .aligncenter{display:block;margin-inline:auto}
.post-content .wp-caption{max-width:100%}
