:root{
  --ink:#152234;
  --body:#43505f;
  --muted:#8a95a3;
  --line:#e4e7ec;
  --paper:#ffffff;
  --paper2:#f5f7f9;
  --navy:#13243d;
  --accent:#1565c0;
  --accent-d:#0d4a93;
  --accent-soft:#eaf2fb;
  --yellow:#ffc400;
  --err:#d23b3b;
  --jp:"Zen Kaku Gothic New",sans-serif;
  --en:"Schibsted Grotesk",sans-serif;
  --maxw:1280px;
  --gut:32px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--jp);color:var(--body);background:var(--paper);line-height:1.9;font-size:15px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;}
img{display:block;max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);}

/* brand mark */
.mk .s{fill:currentColor;}
.mk .l{fill:none;stroke:currentColor;stroke-width:5;}

/* buttons */
.btn{font-family:var(--jp);font-weight:700;font-size:14px;text-decoration:none;padding:8px 28px;display:inline-flex;align-items:center;gap:10px;transition:.2s;border:1.5px solid transparent;white-space:nowrap;cursor:pointer;border-radius:999px;}
.btn .ar{transition:transform .2s;}
.btn:hover .ar{transform:translateX(4px);}
.btn-fill{background:var(--accent);color:#fff;}
.btn-fill:hover{background:var(--accent-d);}
.btn-line{background:transparent;color:var(--ink);border-color:#c9cfd7;}
.btn-line:hover{border-color:var(--ink);}
.btn-lineapp{background:#06c755;color:#fff;border-color:#06c755;}
.btn-lineapp:hover{background:#05b84f;border-color:#05b84f;}
.btn-wh{background:#fff;color:var(--ink);}
.btn-wh:hover{background:#f0f3f7;}
.btn-ghost-wh{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.btn-ghost-wh:hover{border-color:#fff;background:rgba(255,255,255,.1);}
.btn-lg{padding:11px 34px;font-size:15px;}

/* ===== header ===== */
header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);}
.brand .mk{width:36px;height:36px;}
.brand .wm{font-family:var(--en);font-weight:700;font-size:23px;letter-spacing:.03em;}
.brand .wm i{color:var(--accent);font-style:normal;}
.brand .tag{font-size:10px;color:var(--muted);letter-spacing:.18em;margin-left:2px;}
.nav-mid{display:flex;gap:0;}
.nav-mid a{font-weight:500;font-size:15px;text-decoration:none;color:var(--ink);padding:10px 20px;transition:color .2s;position:relative;}
.nav-mid a:hover,.nav-mid a.current{color:var(--accent);}
.nav-mid a.current::after{content:"";position:absolute;left:20px;right:20px;bottom:-2px;height:2px;background:var(--accent);}
.nav-right{display:flex;align-items:center;gap:20px;}
.nav-tel{text-decoration:none;text-align:right;line-height:1.2;}
.nav-tel .n{font-family:var(--en);font-weight:700;font-size:20px;color:var(--navy);}
.nav-tel .t{font-size:10px;color:var(--muted);letter-spacing:.06em;}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;}
.burger span{width:26px;height:2px;background:var(--ink);}

/* ===== hero (home) — light & airy ===== */
.hero{position:relative;background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 72%);padding:54px 0 70px;overflow:hidden;}
.hero .sec-wm{color:rgba(19,36,61,.035);}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.hero .lab{font-family:var(--jp);font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--accent);background:#fff;border:1px solid #d9e6f6;padding:9px 18px;border-radius:999px;display:inline-flex;align-items:center;gap:10px;}
.hero .lab .mk{width:16px;height:16px;color:var(--accent);}
.hero h1{font-weight:900;font-size:clamp(31px,4.7vw,64px);line-height:1.34;letter-spacing:.01em;margin:55px 0 0;color:var(--ink);}
.hero h1 .hl{background:linear-gradient(transparent 60%,var(--yellow) 60%);padding:0 .06em;white-space:nowrap;}
.hero h1 .hero-nowrap{white-space:nowrap;}
.hero p.lead{font-size:16px;color:var(--body);max-width:31em;margin-top:22px;line-height:1.95;}
.hero .acts{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
.hero-area{margin-top:22px;font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;}
.hero-area::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);}
.hero-visual{position:relative;}
.hero-figure{border-radius:22px;overflow:hidden;aspect-ratio:4/3.3;box-shadow:0 34px 64px -32px rgba(13,36,61,.45);background:var(--paper2);}
.hero-figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.96) contrast(1.02);}
.hero-figure svg{width:100%;height:100%;display:block;}
.hero-badge{position:absolute;left:-16px;bottom:30px;width:66px;height:66px;background:var(--yellow);border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 32px -12px rgba(13,36,61,.45);}
.hero-badge .mk{width:34px;height:34px;color:var(--navy);}

/* strength bar */
.strengths{position:relative;z-index:5;margin-top:-44px;}
.strengths .row{background:#fff;box-shadow:0 24px 56px -28px rgba(13,36,61,.4);display:grid;grid-template-columns:repeat(3,1fr);border-radius:18px;overflow:hidden;border:1px solid var(--line);}
.strengths .it{padding:32px 34px;border-right:1px solid var(--line);display:flex;gap:18px;align-items:flex-start;}
.strengths .it:last-child{border-right:none;}
.strengths .it .ic{width:42px;height:42px;flex-shrink:0;color:var(--accent);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;}
.strengths .it .ic svg{width:22px;height:22px;}
.strengths .it h3{font-size:16px;font-weight:700;color:var(--ink);}
.strengths .it p{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.7;}

/* ===== section heading ===== */
section.blk{padding:104px 0;position:relative;overflow:hidden;}
.shead{text-align:center;margin-bottom:56px;}
.shead.left{text-align:left;}
.shead .en{font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.2em;color:var(--accent);display:inline-flex;align-items:center;gap:10px;}
.shead .en::before,.shead .en::after{content:"";width:24px;height:1px;background:#c4d4e6;}
.shead.left .en::after{display:none;}
.shead h2{font-weight:900;font-size:clamp(26px,3.4vw,38px);color:var(--ink);line-height:1.4;margin-top:14px;letter-spacing:.02em;}
.shead p.lead{font-size:15px;color:var(--body);max-width:40em;margin:18px auto 0;}
.shead.left p.lead{margin-left:0;}

/* ===== business cards ===== */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.biz{background:#fff;border:1px solid var(--line);text-decoration:none;color:inherit;transition:.25s;overflow:hidden;display:flex;flex-direction:column;}
.biz:hover{box-shadow:0 22px 44px -26px rgba(13,36,61,.45);transform:translateY(-4px);}
.biz .ph{aspect-ratio:4/3;overflow:hidden;position:relative;}
.biz .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.biz:hover .ph img{transform:scale(1.06);}
.biz .ph .num{position:absolute;top:0;left:0;background:var(--navy);color:#fff;font-family:var(--en);font-weight:700;font-size:14px;padding:8px 14px;letter-spacing:.05em;}
.biz .bd{padding:26px 26px 30px;flex:1;display:flex;flex-direction:column;}
.biz h3{font-size:20px;font-weight:700;color:var(--ink);}
.biz .sub{font-family:var(--en);font-size:12px;letter-spacing:.1em;color:var(--accent);margin-top:4px;}
.biz p{font-size:14px;color:var(--body);margin-top:14px;flex:1;}
.biz .more{font-weight:700;font-size:13px;color:var(--accent);margin-top:18px;display:inline-flex;gap:8px;align-items:center;}
.biz-other{margin-top:30px;border:1px solid var(--line);background:var(--paper2);padding:22px 28px;display:flex;align-items:center;gap:14px 26px;flex-wrap:wrap;}
.biz-other .ttl{font-weight:700;color:var(--ink);font-size:14px;}
.biz-other a{text-decoration:none;font-size:14px;color:var(--body);display:inline-flex;align-items:center;gap:7px;}
.biz-other a::before{content:"+";color:var(--accent);font-weight:700;}
.biz-other a:hover{color:var(--accent);}

/* ===== reason ===== */
.reason{background:var(--paper2);}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.why{background:#fff;padding:40px 40px;}
.why .top{display:flex;align-items:center;gap:16px;margin-bottom:14px;}
.why .top .no{font-family:var(--en);font-weight:700;font-size:15px;color:#fff;background:var(--navy);width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.why h3{font-size:19px;font-weight:700;color:var(--ink);line-height:1.5;}
.why p{font-size:14px;color:var(--body);}

/* ===== works ===== */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.work{background:#fff;border:1px solid var(--line);transition:.25s;display:flex;flex-direction:column;}
.work:hover{box-shadow:0 22px 44px -26px rgba(13,36,61,.4);transform:translateY(-4px);}
.work .ph{aspect-ratio:16/11;position:relative;overflow:hidden;background:var(--paper2);}
.work .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.work:hover .ph img{transform:scale(1.06);}
.work .ph.empty{display:flex;align-items:center;justify-content:center;}
.work .ph.empty .mk{width:96px;height:96px;color:#d6dde5;}
.work .ph.empty .note{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:12px;color:var(--muted);}
.work .cat{position:absolute;top:14px;left:14px;background:var(--navy);color:#fff;font-size:11px;letter-spacing:.04em;padding:5px 11px;font-weight:500;}
.work .bd{padding:22px 22px 24px;}
.work .area{font-family:var(--en);font-size:12px;color:var(--accent);letter-spacing:.05em;}
.work h3{font-size:17px;font-weight:700;color:var(--ink);margin:8px 0 14px;line-height:1.5;}
.work dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px;}
.work dt{color:var(--muted);}
.work dd{color:var(--body);}
.work-foot{text-align:center;margin-top:46px;}

/* ===== company (home) ===== */
.co-grid{display:grid;grid-template-columns:0.78fr 1.22fr;gap:60px;align-items:center;}
.co-photo{position:relative;}
.co-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center;}
.co-photo .badge{position:absolute;left:-1px;bottom:-1px;background:var(--navy);color:#fff;padding:18px 26px;}
.co-photo .badge .e{font-family:var(--en);font-size:11px;letter-spacing:.16em;color:#9fc4ef;}
.co-photo .badge .j{font-size:17px;font-weight:700;margin-top:2px;}
.co-info .en{font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.2em;color:var(--accent);}
.co-info h2{font-weight:900;font-size:clamp(24px,3vw,32px);color:var(--ink);line-height:1.45;margin:12px 0 18px;}
.co-info > p{font-size:15px;color:var(--body);margin-bottom:26px;}
.co-table{width:100%;border-collapse:collapse;border-top:2px solid var(--navy);}
.co-table th,.co-table td{text-align:left;padding:14px 2px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top;}
.co-table th{width:32%;color:var(--ink);font-weight:700;}
.pending{font-size:12px;color:#fff;background:#aab3bf;padding:2px 9px;}
.cert{margin-top:24px;background:var(--accent-soft);padding:24px 26px;}
.cert .ct{font-weight:700;color:var(--ink);font-size:14px;margin-bottom:14px;}
.cert .cr{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #d7e6f6;font-size:14px;}
.cert .cr:last-child{border-bottom:none;}
.cert .cr .cv{color:var(--muted);font-size:13px;}

/* ===== contact band (home) ===== */
.contact{position:relative;color:#fff;overflow:hidden;}
.contact::before{content:"";position:absolute;inset:0;background:url("../img/contact.jpg") center/cover no-repeat;}
.contact::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,23,40,.86),rgba(12,23,40,.58));}
.contact .wrap{position:relative;z-index:2;}
.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:54px;align-items:center;}
.contact .en{font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.2em;color:#9fc4ef;}
.contact h2{font-weight:900;font-size:clamp(25px,3.2vw,36px);line-height:1.4;margin:14px 0 18px;color:#fff;}
.contact p{color:#c4cdd9;font-size:15px;}
.cbox{background:#fff;color:var(--ink);padding:34px;}
.cbox .cl{font-size:13px;color:var(--muted);}
.cbox .ph{font-family:var(--en);font-weight:700;font-size:clamp(29px,7.4vw,40px);color:var(--navy);text-decoration:none;display:block;margin:6px 0 2px;letter-spacing:.01em;white-space:nowrap;}
.cbox .pt{font-size:13px;color:var(--muted);margin-bottom:22px;}
.cbox .btn{width:100%;justify-content:center;}
.cbox .btn + .btn{margin-top:12px;}

/* ===== footer ===== */
footer{background:var(--navy);color:#aeb9c7;padding:64px 0 0;position:relative;overflow:hidden;}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;padding-bottom:46px;}
.fbrand .mk{width:42px;height:42px;color:#fff;}
.fbrand .wm{font-family:var(--en);font-weight:700;font-size:23px;color:#fff;margin-top:14px;}
.fbrand .wm i{color:#7fb0e8;font-style:normal;}
.fbrand p{font-size:13px;margin-top:14px;line-height:1.9;color:#92a0b2;}
.fcol h4{font-size:13px;color:#fff;font-weight:700;margin-bottom:16px;letter-spacing:.04em;}
.fcol a{display:block;text-decoration:none;font-size:14px;padding:6px 0;color:#aeb9c7;}
.fcol a:hover{color:#fff;}
.fbot{border-top:1px solid rgba(255,255,255,.12);padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:#7e8da0;}
.fbot .en{font-family:var(--en);letter-spacing:.04em;}

/* watermark + image cohesion */
.blk .wrap,.contact .wrap,footer .wrap{position:relative;z-index:1;}
.sec-wm{position:absolute;z-index:0;pointer-events:none;}
.biz .ph img,.work .ph img,.co-photo img{filter:saturate(.9) contrast(1.03) brightness(.99);}
.biz .ph::after,.work .ph:not(.empty)::after,.co-photo::after{content:"";position:absolute;inset:0;background:var(--navy);opacity:.13;transition:opacity .35s;pointer-events:none;z-index:1;}
.biz:hover .ph::after,.work:hover .ph::after{opacity:0;}
.biz .ph .num,.work .cat,.work .ph.empty .note,.co-photo .badge{z-index:2;}

/* generated illustration assets */
/* hero illustration — frameless, blended into the background (white drops out via multiply) */
.hero-figure.illustration{position:relative;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible;aspect-ratio:4/3.2;}
.hero-figure.illustration img{object-fit:contain;padding:0;filter:none;background:transparent;mix-blend-mode:multiply;transform:scale(1.1);transform-origin:center right;}
.hero-figure.illustration.hero-illustration-loop img{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:heroIllustrationFrame 24s infinite ease-in-out;will-change:opacity,transform;}
.hero-figure.illustration.hero-illustration-loop img:nth-child(1){opacity:1;animation-name:heroIllustrationFirst;animation-delay:0s;}
.hero-figure.illustration.hero-illustration-loop img:nth-child(2){animation-delay:6s;}
.hero-figure.illustration.hero-illustration-loop img:nth-child(3){animation-delay:12s;}
.hero-figure.illustration.hero-illustration-loop img:nth-child(4){animation-delay:18s;}
@keyframes heroIllustrationFirst{
  0%,24%{opacity:1;transform:scale(1.1) translate3d(0,0,0);}
  32%,96%{opacity:0;transform:scale(1.04) translate3d(-10px,4px,0);}
  100%{opacity:1;transform:scale(1.1) translate3d(0,0,0);}
}
@keyframes heroIllustrationFrame{
  0%{opacity:0;transform:scale(1.04) translate3d(10px,-4px,0);}
  4%,24%{opacity:1;transform:scale(1.1) translate3d(0,0,0);}
  32%,100%{opacity:0;transform:scale(1.04) translate3d(-10px,4px,0);}
}
@media (prefers-reduced-motion: reduce){
  .hero-figure.illustration.hero-illustration-loop img,
  .hero-figure.illustration.hero-illustration-loop img:nth-child(1),
  .hero-figure.illustration.hero-illustration-loop img:nth-child(2),
  .hero-figure.illustration.hero-illustration-loop img:nth-child(3),
  .hero-figure.illustration.hero-illustration-loop img:nth-child(4){animation:none;opacity:0;transform:scale(1.1);}
  .hero-figure.illustration.hero-illustration-loop img:first-child{opacity:1;}
}
.hero-visual:has(.illustration) .hero-badge{display:none;}
.ph.is-illo{background:#fff;}
.biz .ph.is-illo img,.work .ph.is-illo img,.relcard .ph.is-illo img{width:100%;height:100%;object-fit:contain;padding:10px;filter:none;background:#fff;}
.biz .ph.is-illo::after,.work .ph.is-illo::after,.relcard .ph.is-illo::after{display:none;}
.biz:hover .ph.is-illo img,.work:hover .ph.is-illo img,.relcard:hover .ph.is-illo img{transform:none;}
.srow .pic.is-illo{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.srow .pic.is-illo img{width:100%;aspect-ratio:4/3;object-fit:contain;padding:18px;filter:none;background:#fff;}
.contact-aside .aside-illo{background:#fff;border-radius:14px;overflow:hidden;margin:0 0 24px;box-shadow:0 18px 40px -28px rgba(0,0,0,.6);}
.contact-aside .aside-illo img{width:100%;aspect-ratio:4/3;object-fit:contain;padding:10px;background:#fff;}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.rv.in{opacity:1;transform:none;}

.mbar{display:none;}

/* =========================================================
   SUB-PAGE COMPONENTS
   ========================================================= */
/* page hero */
.phero{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:64px 0 60px;}
.phero::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;opacity:.34;}
.phero.is-service::before{background-image:url("../img/biz-corp.jpg");}
.phero.is-works::before{background-image:url("../img/work-1.jpg");}
.phero.is-company::before{background-image:url("../img/company.jpg");}
.phero.is-contact::before{background-image:url("../img/contact.jpg");}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,23,40,.88),rgba(12,23,40,.5));}
.phero .wrap{position:relative;z-index:2;}
.phero .crumb{font-size:12.5px;color:#9fb6d2;display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.phero .crumb a{text-decoration:none;}
.phero .crumb a:hover{color:#fff;}
.phero .crumb .sep{opacity:.5;}
.phero .crumb .cur{color:#fff;}
.phero .en{font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--yellow);margin-top:22px;display:block;}
.phero h1{font-weight:900;font-size:clamp(28px,4.2vw,44px);color:#fff;line-height:1.3;margin-top:8px;}
.phero .sub{color:#c4cdd9;font-size:15px;margin-top:14px;max-width:46em;}

/* section bg helpers */
.bg2{background:var(--paper2);}

/* related services (secondary, image + text horizontal cards) */
.rel-ttl{display:inline-block;font-weight:700;color:var(--ink);font-size:14px;margin-bottom:16px;}
.rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.relcard{display:grid;grid-template-columns:170px 1fr;background:#fff;border:1px solid var(--line);overflow:hidden;text-decoration:none;color:inherit;transition:.22s;}
.relcard:hover{box-shadow:0 18px 40px -26px rgba(13,36,61,.4);transform:translateY(-3px);}
.relcard .ph{position:relative;overflow:hidden;}
.relcard .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03);transition:transform .5s;}
.relcard:hover .ph img{transform:scale(1.06);}
.relcard .ph::after{content:"";position:absolute;inset:0;background:var(--navy);opacity:.14;transition:opacity .3s;}
.relcard:hover .ph::after{opacity:0;}
.relcard .bd{padding:22px 24px;display:flex;flex-direction:column;justify-content:center;}
.relcard h3{font-size:17px;font-weight:700;color:var(--ink);}
.relcard .sub{font-family:var(--en);font-size:11px;letter-spacing:.1em;color:var(--accent);margin-top:3px;}
.relcard p{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.7;}

/* service detail rows */
.svc-rows{display:flex;flex-direction:column;gap:74px;}
.srow{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;}
.srow .pic{position:relative;}
.srow .pic img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.9) contrast(1.03);}
.srow .pic .no{position:absolute;top:0;left:0;background:var(--navy);color:#fff;font-family:var(--en);font-weight:700;font-size:15px;padding:10px 16px;}
.srow.rev .txt{order:-1;}
.srow .en{font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--accent);}
.srow h2{font-weight:900;font-size:clamp(22px,2.6vw,30px);color:var(--ink);line-height:1.4;margin:8px 0 16px;}
.srow p{font-size:15px;color:var(--body);}
.srow ul{list-style:none;margin-top:20px;display:grid;gap:10px;}
.srow ul li{font-size:14px;color:var(--ink);display:flex;gap:10px;align-items:flex-start;}
.srow ul li::before{content:"";width:8px;height:8px;background:var(--accent);margin-top:9px;flex-shrink:0;}

/* generic feature list (flow / process) */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.flow .st{background:#fff;padding:30px 24px;position:relative;}
.flow .st .n{font-family:var(--en);font-weight:700;color:var(--accent);font-size:13px;letter-spacing:.08em;}
.flow .st h3{font-size:17px;font-weight:700;color:var(--ink);margin:8px 0 8px;}
.flow .st p{font-size:13px;color:var(--muted);}

/* works filter */
.filterbar{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:44px;}
.filterbar button{border:1.5px solid var(--line);background:#fff;padding:10px 22px;font-family:var(--jp);font-size:14px;color:var(--ink);cursor:pointer;transition:.2s;}
.filterbar button:hover{border-color:var(--navy);}
.filterbar button.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.work.hide{display:none;}

/* company page extras */
.mvgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.mv{background:#fff;border:1px solid var(--line);padding:34px 30px;}
.mv .ic{width:46px;height:46px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.mv .ic svg{width:24px;height:24px;}
.mv h3{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:10px;}
.mv p{font-size:14px;color:var(--body);}
.philosophy-stack{display:grid;gap:64px;margin:0 auto 72px;max-width:980px;}
.philosophy-card{position:relative;padding:0 0 0 38px;background:transparent;border:0;overflow:visible;}
.philosophy-card::before{content:"";position:absolute;left:0;top:6px;bottom:4px;width:3px;background:linear-gradient(180deg,var(--accent),var(--yellow));}
.philosophy-meta{display:flex;align-items:center;gap:14px;font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.18em;color:var(--accent);}
.philosophy-meta span{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);letter-spacing:0;}
.philosophy-card h3{font-size:clamp(34px,3.8vw,54px);font-weight:900;line-height:1.24;letter-spacing:.02em;margin:22px 0 24px;color:var(--ink);}
.philosophy-card p{font-size:16px;line-height:2.05;color:var(--body);max-width:54em;border-top:1px solid #dce4ee;padding-top:22px;}
.value-grid{gap:24px;}
.value-card{position:relative;min-height:300px;padding:42px 34px 34px;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border-color:#dce4ee;}
.value-card::before{content:attr(data-word);position:absolute;left:34px;top:56px;font-family:var(--en);font-weight:700;font-size:82px;line-height:.82;letter-spacing:0;color:rgba(21,101,192,.07);pointer-events:none;}
.value-card::after{content:"";position:absolute;left:34px;right:34px;top:32px;height:3px;background:linear-gradient(90deg,var(--yellow) 0 42px,var(--accent) 42px 112px,#d8e3ef 112px 100%);}
.value-meta{position:relative;z-index:1;margin-bottom:62px;display:flex;align-items:center;gap:16px;font-family:var(--en);font-weight:700;font-size:13px;color:var(--accent);line-height:1;}
.value-meta i{display:block;width:46px;height:1px;background:#c9d8e8;}
.mv .value-word{position:relative;z-index:1;font-family:var(--en);font-size:58px;font-weight:700;line-height:.98;letter-spacing:0;color:var(--navy);margin:0 0 24px;}
.value-card p{position:relative;z-index:1;font-size:15px;line-height:1.9;max-width:24em;}
.value-card .value-ja-title{font-weight:900;font-size:17px;line-height:1.7;color:var(--ink);margin:0 0 12px;max-width:18em;}
.co-full{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.map{width:100%;border:0;aspect-ratio:16/10;filter:grayscale(.2);}

/* =========================================================
   FORM
   ========================================================= */
.formwrap{max-width:860px;margin:0 auto;}
.form-lead{text-align:center;color:var(--body);font-size:15px;margin-bottom:44px;}
.field{margin-bottom:28px;}
.field > .lab{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:15px;margin-bottom:11px;}
.req{font-size:10px;background:var(--accent);color:#fff;padding:3px 8px;font-weight:700;letter-spacing:.04em;}
.opt{font-size:10px;background:#e7eaee;color:var(--muted);padding:3px 8px;font-weight:700;letter-spacing:.04em;}
.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea,.field select{
  width:100%;border:1.5px solid var(--line);padding:14px 16px;font-family:var(--jp);font-size:15px;color:var(--ink);background:#fff;transition:border-color .2s;border-radius:0;
}
.field input::placeholder,.field textarea::placeholder{color:#b7bec8;}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent);}
.field textarea{min-height:170px;resize:vertical;line-height:1.8;}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231565c0' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px;}
.radios{display:flex;flex-wrap:wrap;gap:10px;}
.radios label{border:1.5px solid var(--line);padding:11px 18px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;gap:9px;transition:.18s;user-select:none;}
.radios input{accent-color:var(--accent);width:16px;height:16px;}
.radios label:hover{border-color:var(--accent);}
.radios label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-d);font-weight:700;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;}
.hint{font-size:12.5px;color:var(--muted);margin-top:8px;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.privacy{background:var(--paper2);border:1px solid var(--line);padding:22px 24px;font-size:13px;color:var(--body);line-height:1.8;max-height:180px;overflow:auto;margin-bottom:20px;}
.privacy h4{font-size:14px;color:var(--ink);margin-bottom:8px;}
.agree{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:28px;font-size:14.5px;color:var(--ink);}
.agree input{width:18px;height:18px;accent-color:var(--accent);}
.submit-row{text-align:center;}
.submit-row .btn{min-width:300px;justify-content:center;}
.submit-row .btn:disabled{opacity:.7;cursor:not-allowed;}
.err{color:var(--err);font-size:13px;margin-top:7px;display:none;}
.form-error{display:none;color:var(--err);font-weight:700;text-align:center;margin:-8px 0 20px;}
.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--err);background:#fdf4f4;}
.field.invalid .err{display:block;}
.contact-aside{background:var(--navy);color:#fff;padding:34px;height:fit-content;}
.contact-aside .cl{font-size:12px;color:#9fb6d2;letter-spacing:.08em;}
.contact-aside .ph{font-family:var(--en);font-weight:700;font-size:34px;color:#fff;text-decoration:none;display:block;margin:6px 0 2px;}
.contact-aside .pt{font-size:13px;color:#9fb6d2;margin-bottom:22px;}
.contact-aside .btn{width:100%;justify-content:center;margin:0 0 16px;}
.contact-aside .btn + .btn{margin-top:-4px;}
.contact-aside .note{font-size:13px;color:#c4cdd9;line-height:1.8;border-top:1px solid rgba(255,255,255,.14);padding-top:20px;margin-top:6px;}
.contact-layout{display:grid;grid-template-columns:1fr 330px;gap:48px;align-items:start;}
.thanks{display:none;text-align:center;padding:60px 20px;border:1px solid var(--line);background:var(--paper2);}
.thanks.show{display:block;}
.thanks .ic{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.thanks .ic svg{width:32px;height:32px;}
.thanks h2{font-size:24px;color:var(--ink);font-weight:900;margin-bottom:14px;}
.thanks p{color:var(--body);font-size:15px;}

/* ===== responsive ===== */
@media(max-width:980px){
  .nav-mid,.nav-tel{display:none;}
  .burger{display:flex;}
  .strengths .row{grid-template-columns:1fr;}
  .strengths .it{border-right:none;border-bottom:1px solid var(--line);}
  .biz-grid,.work-grid{grid-template-columns:1fr 1fr;}
  .co-grid,.contact-grid{grid-template-columns:1fr;gap:32px;}
  .co-photo img{aspect-ratio:16/10;}
  .srow{grid-template-columns:1fr;gap:26px;}
  .srow.rev .txt{order:0;}
  .flow{grid-template-columns:1fr 1fr;}
  .mvgrid{grid-template-columns:1fr;}
  .co-full,.contact-layout{grid-template-columns:1fr;gap:28px;}
  .philosophy-card{padding:0 0 0 32px;}
}
@media(max-width:620px){
  section.blk{padding:64px 0;}
  .nav-right .btn-fill{display:none;}
  .hero{min-height:560px;}
  .hero .wrap{padding-bottom:90px;}
  .hero h1{font-size:29px;line-height:1.45;overflow-wrap:anywhere;}
  .strengths{margin-top:-40px;}
  .biz-grid,.work-grid,.why-grid,.fgrid,.flow,.rel-grid{grid-template-columns:1fr;}
  .relcard{grid-template-columns:120px 1fr;}
  .why-grid{gap:1px;}
  .grid2{grid-template-columns:1fr;}
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:200;}
  .mbar a{padding:15px;text-align:center;font-weight:700;text-decoration:none;font-size:15px;}
  .mbar .t1{background:var(--navy);color:#fff;}
  .mbar .t2{background:var(--accent);color:#fff;}
  .value-card{min-height:260px;padding:34px 30px 30px;}
  .philosophy-stack{gap:46px;margin-bottom:48px;}
  .philosophy-card{padding:0 0 0 24px;}
  .philosophy-card h3{font-size:30px;margin:18px 0 18px;}
  .philosophy-card p{font-size:14.5px;line-height:1.95;}
  .philosophy-meta{font-size:12px;}
  .value-card::before{left:30px;top:52px;font-size:72px;}
  .value-card::after{left:30px;right:30px;}
  .value-meta{margin-bottom:48px;}
  .mv .value-word{font-size:48px;margin-bottom:20px;}
  .value-card p{font-size:14px;}
  body{padding-bottom:54px;}
}

/* =========================================================
   WARMTH PASS — rounded geometry (colors unchanged)
   ========================================================= */
.biz,.work,.relcard,.mv{border-radius:16px;}
.work{overflow:hidden;}
.why-grid,.flow{border-radius:16px;overflow:hidden;}
.biz-other{border-radius:14px;}
.cbox,.contact-aside,.thanks,.privacy{border-radius:16px;}
.strengths .it .ic,.mv .ic{border-radius:12px;}
.filterbar button,.radios label,.pending{border-radius:999px;}
.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea,.field select{border-radius:10px;}
.biz .ph .num,.work .cat,.srow .pic .no{border-radius:0 0 12px 0;}
.cert{border-radius:14px;}
.co-photo .badge{border-radius:0 14px 0 0;}

/* =========================================================
   EN STATEMENT BAND (home)
   ========================================================= */
.enband{position:relative;background:var(--navy);color:#fff;padding:82px 0;overflow:hidden;text-align:center;}
.enband::before{content:"";position:absolute;inset:0;background:url("../img/sendai-station.jpg") center 44%/cover no-repeat;}
.enband::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(13,24,40,.52),rgba(13,24,40,.66));}
.enband .wrap{position:relative;z-index:1;}
.enband .en{font-family:var(--en);font-weight:700;letter-spacing:.24em;font-size:13px;color:var(--yellow);}
.enband .big{font-family:var(--en);font-weight:700;font-size:clamp(38px,7.2vw,82px);line-height:1.04;letter-spacing:.005em;margin:16px 0 0;color:#fff;text-shadow:0 2px 24px rgba(8,16,28,.45);}
.enband .jp{font-size:15px;color:#e2e8f0;max-width:42em;margin:20px auto 30px;line-height:1.9;text-shadow:0 1px 12px rgba(8,16,28,.5);}

/* =========================================================
   MOBILE MENU (burger overlay)
   ========================================================= */
.mobilemenu{position:fixed;inset:0;z-index:150;background:rgba(15,27,46,.985);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;display:flex;align-items:center;justify-content:center;padding:24px;}
body.menu-open{overflow:hidden;}
body.menu-open .mobilemenu{opacity:1;visibility:visible;}
.mm-inner{display:flex;flex-direction:column;width:100%;max-width:420px;}
.mm-inner > a{color:#fff;text-decoration:none;font-size:19px;font-weight:700;padding:18px 6px;border-bottom:1px solid rgba(255,255,255,.12);}
.mm-tel{font-family:var(--en);display:flex;flex-direction:column;gap:3px;}
.mm-tel small{font-family:var(--jp);font-size:12px;color:#9fb6d2;font-weight:400;}
.mm-cta{margin-top:26px;justify-content:center;border-bottom:none !important;}
.burger{position:relative;z-index:200;}
.burger span{transition:transform .25s,opacity .2s;}
.burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.on span:nth-child(2){opacity:0;}
.burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.burger.on span{background:#fff;}
body.menu-open .burger span{background:#fff;}

/* hero responsive */
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:34px;}
  .hero-visual{order:-1;}
  .hero-figure{aspect-ratio:16/10;}
}
@media(max-width:620px){
  .hero{padding:44px 0 64px;}
  .enband{padding:68px 0;}
  .hero-badge{width:52px;height:52px;left:-10px;}
  .hero-badge .mk{width:26px;height:26px;}
}

/* =========================================================
   ADDITIONS 2026-06-25 （代表挨拶 / コラム / 採用）
   ========================================================= */
/* ステートメントバンド 日本語見出し */
.enband-title{font-family:var(--jp);font-weight:900;font-size:clamp(30px,5.2vw,58px);line-height:1.32;letter-spacing:.04em;color:#fff;margin:0;text-shadow:0 2px 24px rgba(8,16,28,.45);}

/* ロゴ（マーク＋ロゴタイプ一体型SVG） */
.brand-logo{display:block;height:30px;width:auto;}
.fbrand .brand-logo{height:40px;margin-bottom:2px;}
@media(max-width:620px){ .brand-logo{height:26px;} }
/* 代表写真プレースホルダ */
.photo-ph{aspect-ratio:3/4;background:var(--paper2);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
.photo-ph .mk{width:84px;height:84px;color:#d2dae3;}
.photo-ph .ph-cap{font-size:13px;color:var(--muted);text-align:center;line-height:1.7;}
.photo-ph .ph-cap i{display:block;font-size:11px;color:#aab3bf;font-style:normal;margin-top:2px;}
/* 代表署名 */
.co-sign{margin-top:26px;font-size:14px;color:var(--ink);}
.co-sign b{font-weight:700;font-size:18px;margin-left:10px;}

/* phero 背景バリエーション */
.phero.is-recruit::before{background-image:url("../img/biz-home.jpg");}
.phero.is-column::before{background-image:url("../img/hero.jpg");}

/* トップ採用セクション */
.recruit-hero{position:relative;min-height:520px;padding:74px 0 84px;background:var(--navy);color:#fff;overflow:hidden;display:flex;align-items:center;scroll-margin-top:74px;}
.recruit-hero::before{content:"";position:absolute;inset:0;background:url("../img/sendai-station.jpg") center 45%/cover no-repeat;filter:saturate(.86) contrast(1.04);}
.recruit-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,36,62,.68),rgba(16,36,62,.76)),linear-gradient(90deg,rgba(8,18,32,.42),rgba(8,18,32,.12) 34%,rgba(8,18,32,.18) 68%,rgba(8,18,32,.46));}
.recruit-hero .wrap{position:relative;z-index:4;width:100%;}
.recruit-hero-copy{text-align:center;max-width:1000px;margin:0 auto;text-shadow:0 2px 20px rgba(3,12,24,.42);}
.recruit-hero-copy .en{font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.26em;color:#fff;display:inline-flex;align-items:center;gap:13px;}
.recruit-hero-copy .en::after{content:"";width:28px;height:1px;background:rgba(255,255,255,.76);}
.recruit-hero-copy h1,.recruit-hero-copy h2{font-weight:900;font-size:clamp(29px,2.7vw,38px);line-height:1.48;letter-spacing:.02em;color:#fff;margin-top:20px;}
.recruit-hero-copy p{font-size:15px;line-height:1.9;color:#eef4fb;margin-top:18px;}
.recruit-hero-copy .btn{margin-top:34px;padding:13px 34px;box-shadow:0 18px 34px -18px rgba(0,0,0,.42);text-shadow:none;}
.recruit-person{position:absolute;z-index:3;pointer-events:none;user-select:none;filter:drop-shadow(0 18px 24px rgba(2,11,22,.22));}
.recruit-person-left{left:clamp(54px,7.4vw,112px);bottom:0;width:clamp(360px,33vw,510px);}
.recruit-person-right{right:clamp(18px,6vw,96px);bottom:0;width:clamp(290px,27vw,390px);}

/* コラムカード（.work 流用：抜粋＋タイトルリンク） */
.work h3 a{color:inherit;text-decoration:none;}
.work h3 a:hover{color:var(--accent);}
.work .ex{font-size:13px;color:var(--body);line-height:1.8;margin-top:2px;}

/* コラム記事本文 */
.post{max-width:760px;margin:0 auto;}
.post-meta{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.post-meta .cat{background:var(--navy);color:#fff;font-size:11px;letter-spacing:.04em;padding:5px 11px;font-weight:500;}
.post-meta time{font-family:var(--en);font-size:13px;color:var(--muted);letter-spacing:.04em;}
.post-hero{margin-bottom:36px;}
.post-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.prose{font-size:15.5px;color:var(--body);line-height:2.05;}
.prose > * + *{margin-top:20px;}
.prose h2{font-size:22px;font-weight:700;color:var(--ink);line-height:1.5;margin-top:44px;padding-left:14px;border-left:4px solid var(--accent);}
.prose h2 + p{margin-top:16px;}
.prose blockquote{border-left:3px solid var(--line);background:var(--paper2);padding:16px 22px;color:var(--ink);font-size:15px;}
.post-foot{margin-top:48px;padding-top:30px;border-top:1px solid var(--line);}

@media(max-width:620px){
  .prose h2{font-size:19px;}
  .recruit-hero{min-height:640px;padding:56px 0 230px;align-items:flex-start;}
  .recruit-hero::after{background:linear-gradient(180deg,rgba(16,36,62,.78) 0%,rgba(16,36,62,.76) 58%,rgba(16,36,62,.42) 100%);}
  .recruit-hero-copy h1,.recruit-hero-copy h2{font-size:26px;line-height:1.55;letter-spacing:.02em;}
  .recruit-hero-copy p{font-size:14px;}
  .recruit-hero-copy p br{display:none;}
  .recruit-hero-copy .btn{margin-top:24px;padding:11px 26px;}
  .recruit-person-left{left:-42px;bottom:0;width:230px;}
  .recruit-person-right{right:-28px;bottom:0;width:202px;}
}
