@charset "utf-8";

:root{
  --navy-950:#0c1834; --navy-900:#132449; --navy-800:#1b2f5c;
  --brand:#2e4099; --brand-lt:#4a63b4; --peri:#7f95d6; --sumi:#182338;
  --steel:#586377; --steel-lt:#93a0b4;
  --line:#e6eaf2; --surface:#f2f6fd; --mist:#f8fafe; --paper:#ffffff;
  --spark:#e07a3a;
  --serif:'Yu Mincho','YuMincho','Hiragino Mincho ProN','Hiragino Mincho Pro',serif;
  --sans:'Yu Gothic','YuGothic','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
  --en:'Helvetica Neue','Segoe UI','Arial',sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1); --wrap:1220px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{ margin:0; color:var(--navy-900); background:var(--paper);
  font-family:var(--sans); font-weight:500; line-height:2; font-size:17px; letter-spacing:.04em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}

:is(a,button,summary,[tabindex]):focus-visible{ outline:3px solid var(--brand); outline-offset:3px; border-radius:3px;}
.recruit :focus-visible,.cta :focus-visible,footer.site :focus-visible,.drawer :focus-visible,.side-cta:focus-visible{ outline-color:#fff;}
.skip-link{ position:fixed; left:16px; top:-64px; z-index:300; background:var(--brand); color:#fff; padding:12px 22px; font-weight:700; font-size:14px; border-radius:0 0 6px 6px; transition:top .25s var(--ease);}
.skip-link:focus{ top:0;}
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 clamp(24px,6vw,48px);}
.en{ font-family:var(--en);}

.duo{ position:relative; overflow:hidden; isolation:isolate; background:var(--surface);}
.duo img{ width:100%; height:100%; object-fit:cover;
  filter:saturate(.94) contrast(1.05) brightness(1.02);
  transition:filter .8s var(--ease), transform 1.2s var(--ease);}
.duo::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(155deg,rgba(46,64,153,.10),rgba(150,180,225,.03) 55%,rgba(255,255,255,0));
  transition:opacity .6s var(--ease);}
.duo.hoverable:hover img{ filter:saturate(1.04) contrast(1.04); transform:scale(1.05);}
.duo.hoverable:hover::after{ opacity:.45;}

.mask{ transition:clip-path 1.2s var(--ease);}
.mask-l{ clip-path:inset(0 100% 0 0);}
.mask-r{ clip-path:inset(0 0 0 100%);}
.mask-l.in,.mask-r.in{ clip-path:inset(0 0 0 0);}

.sec-head{ margin-bottom:clamp(40px,5.5vw,68px); position:relative;}
.sec-head .lbl{ display:block; font-family:var(--en); font-weight:800; letter-spacing:.005em;
  font-size:clamp(46px,7.4vw,104px); line-height:.9; color:var(--brand); -webkit-text-stroke:0;}
.sec-head .lbl.solid{ color:var(--navy-900); -webkit-text-stroke:0;}
.sec-head .jp{ display:block; font-family:var(--serif); font-weight:600; letter-spacing:.08em;
  font-size:clamp(23px,3vw,38px); margin:20px 0 0; color:var(--navy-900); line-height:1.5;}
.kicker{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.28em; color:var(--brand); display:inline-flex; align-items:center; gap:12px;}
.kicker .dep{ font-size:11px; color:var(--steel); letter-spacing:.1em;}

.rule{ display:block; width:46px; height:3px; background:var(--brand); margin-top:24px;}

.alink{ display:inline-flex; align-items:center; gap:18px; font-weight:700; font-size:14.5px; letter-spacing:.1em; color:var(--navy-900);}
.alink .c{ width:56px; height:56px; border-radius:50%; border:1px solid var(--brand); position:relative; flex:0 0 auto; transition:transform .3s var(--ease); overflow:hidden; will-change:transform;}
.alink .c::before{ content:""; position:absolute; inset:0; background:var(--brand); transform:scale(0); border-radius:50%; transition:.5s var(--ease);}
.alink .c svg{ position:relative; z-index:2; width:16px; height:10px; margin:23px auto 0; display:block; stroke:var(--brand); transition:.4s;}
.alink:hover .c::before{ transform:scale(1);}
.alink:hover .c svg{ stroke:#fff; transform:translateX(3px);}
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:12px; font-weight:700; font-size:15px; letter-spacing:.08em; padding:19px 40px; transition:background .4s var(--ease), transform .25s var(--ease), box-shadow .3s var(--ease), color .35s var(--ease); border:1.5px solid transparent; will-change:transform;}
.btn svg{ transition:transform .3s var(--ease);}
.btn:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(19,36,73,.2);}
.btn:hover svg{ transform:translateX(4px);}
.btn-p{ background:var(--brand); color:#fff;} .btn-p:hover{ background:var(--navy-800);}
.btn-o{ background:transparent; color:var(--brand); border-color:var(--brand);} .btn-o:hover{ background:var(--brand); color:#fff;}
.btn-l{ background:#06c755; color:#fff;} .btn-l:hover{ filter:brightness(1.07);}
.btn-w{ background:#fff; color:var(--brand);} .btn-w:hover{ background:var(--surface);}

#loader{ position:fixed; inset:0; z-index:200; background:var(--paper); display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--navy-900); transition:opacity .85s var(--ease), visibility .85s var(--ease);}
#loader.done{ opacity:0; visibility:hidden; pointer-events:none;}
#loader .in{ display:flex; flex-direction:column; align-items:center; transition:transform .85s var(--ease);}
#loader.done .in{ transform:translateY(6px);}

#loader .lg{ height:clamp(52px,7vw,68px); opacity:0; animation:ldin .9s .1s var(--ease) forwards; display:flex; align-items:center; gap:clamp(12px,1.4vw,18px);}
#loader .lg img{ height:100%;}

#loader .track{ width:112px; height:2px; background:var(--line); margin-top:38px; position:relative; overflow:hidden; border-radius:2px; opacity:0; animation:ldin .9s .35s var(--ease) forwards;}
#loader .track i{ position:absolute; top:0; left:0; width:0; height:100%; background:var(--brand); border-radius:2px; animation:ldfill 1.25s .35s var(--ease) forwards;}
@keyframes ldin{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@keyframes ldfill{ to{ width:100%;}}

.side-cta{ position:fixed; right:0; top:50%; z-index:44; writing-mode:vertical-rl; background:var(--brand); color:#fff; font-weight:700; font-size:12.5px; letter-spacing:.2em; padding:22px 10px; border-radius:6px 0 0 6px; box-shadow:0 10px 34px rgba(19,36,73,.24); transform:translateY(-50%) translateX(8px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .45s var(--ease), transform .45s var(--ease), background .4s, padding .4s;}
.side-cta.show{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(-50%) translateX(0);}
.side-cta:hover{ background:var(--navy-800); padding-right:16px;}
@media(max-width:1180px){ .side-cta{ display:none;}}

body.p-top header.site{ position:fixed; inset:0 0 auto 0; z-index:60; height:76px; display:flex; align-items:center; background:rgba(255,255,255,.88); backdrop-filter:blur(10px); border-bottom:1px solid rgba(19,36,73,.06); transition:.4s var(--ease);}
body.p-top header.site.solid{ height:64px; background:rgba(255,255,255,.98); box-shadow:0 2px 24px rgba(19,36,73,.08);}

.hdr-inner{ max-width:none; width:100%; margin:0 auto; padding:0 clamp(24px,6vw,48px); display:flex; align-items:center; gap:clamp(14px,1.4vw,22px);}
.brand-logo{ height:38px; flex:0 0 auto; margin-right:auto; display:inline-flex; align-items:center; gap:11px;} .brand-logo img{ height:100%;} .brand-logo .brand-mark{ height:112%;}
nav.gnav{ margin:0;}
nav.gnav ul{ display:flex; gap:clamp(16px,1.6vw,26px); list-style:none; margin:0; padding:0; align-items:center;}
nav.gnav a.it{ position:relative; font-size:14px; font-weight:600; letter-spacing:.06em; color:var(--navy-900); padding:8px 0; white-space:nowrap;}
nav.gnav a.it .car{ display:inline-block; font-size:9px; margin-left:6px; opacity:.4; transition:transform .3s var(--ease), opacity .3s;}
.gli:hover a.it .car{ transform:rotate(180deg); opacity:.7;}
nav.gnav a.it::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--brand); transition:.35s var(--ease);}
nav.gnav a.it:hover::after{ width:100%;}
.gli{ position:relative;}
.dd{ position:absolute; top:calc(100% + 12px); left:50%; transform:translate(-50%,8px); background:#fff; min-width:220px; padding:12px 0; box-shadow:0 22px 54px rgba(19,36,73,.14); opacity:0; visibility:hidden; transition:.3s var(--ease);}
.gli:hover .dd,.gli:focus-within .dd{ opacity:1; visibility:visible; transform:translate(-50%,0);}
.dd a{ display:block; padding:11px 24px; font-size:13.5px; color:var(--navy-900); transition:.2s;}
.dd a:hover{ background:var(--surface); color:var(--brand);}
.hdr-r{ display:flex; align-items:center; gap:18px;}
.hdr-r::before{ content:""; width:1px; height:30px; background:var(--line); flex:0 0 auto;}

.hdr-tel{ text-align:right; color:var(--navy-900); line-height:1.15; white-space:nowrap; flex:0 0 auto;}
.hdr-tel small{ font-size:9.5px; letter-spacing:.12em; opacity:.62; display:block; margin-bottom:2px;}
.hdr-tel b{ font-family:var(--en); font-size:20px; font-weight:800; letter-spacing:.01em;}
.hdr-c{ display:inline-flex; align-items:center; gap:9px; padding:12px 24px; background:var(--brand); color:#fff; font-weight:700; font-size:13.5px; letter-spacing:.06em; border-radius:5px; white-space:nowrap; flex:0 0 auto; transition:background .4s var(--ease), transform .25s var(--ease);}
.hdr-c:hover{ background:var(--navy-800); box-shadow:0 8px 20px rgba(19,36,73,.24);}
.hdr-c svg{ transition:transform .3s var(--ease);} .hdr-c:hover svg{ transform:translateX(3px);}
.hdr-c svg{ width:16px; height:9px; stroke:#fff; flex:0 0 auto;}
.burger{ display:none; margin-left:auto; flex-direction:column; gap:6px; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; border:0; background:transparent; padding:0;}
.burger span{ width:26px; height:2px; background:var(--navy-900); transition:.3s;}
@media(max-width:1120px){ nav.gnav,.hdr-r{ display:none;} .burger{ display:flex;}}
.drawer{ position:fixed; inset:0; z-index:70; background:var(--navy-950); color:#fff; transform:translateX(100%); transition:.5s var(--ease); padding:104px 34px 40px; overflow:auto;}
.drawer.open{ transform:none;}
.drawer a{ display:block; font-family:var(--serif); font-size:19px; letter-spacing:.08em; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.12);}
.drawer .s{ font-size:13px; font-family:var(--sans); opacity:.75; padding:9px 0 9px 16px; border:none;}
.dclose{ position:absolute; top:28px; right:30px; font-size:32px; cursor:pointer; border:0; background:transparent; color:inherit; line-height:1;}

.hero{ position:relative; min-height:100svh; overflow:hidden; background:var(--paper); display:grid; grid-template-columns:1fr;}
@media(min-width:960px){ .hero{ grid-template-columns:1fr 1fr;}}
.hero-copy{ position:relative; z-index:3; display:flex; flex-direction:column; justify-content:center; min-height:100svh; padding:96px clamp(20px,2.6vw,40px) 36px;}
.hero .kicker{ margin-bottom:18px; opacity:0; transform:translateY(14px);}
.hero.go .kicker{ animation:aIn .8s .1s var(--ease) forwards;}
.hero h1{ font-family:var(--serif); font-weight:600; letter-spacing:.004em; font-size:clamp(36px,4.6vw,64px); line-height:1.26; margin:0; color:var(--navy-900);}
.hero h1 em{ font-style:normal; color:var(--brand);}
.hero h1 .ln{ display:block; overflow:hidden;}
.hero h1 .ln i{ display:block; font-style:normal; transform:translateY(112%);}
.hero.go h1 .ln i{ animation:aUp 1s var(--ease) forwards;}
.hero.go h1 .ln:nth-child(1) i{ animation-delay:.20s;}
.hero.go h1 .ln:nth-child(2) i{ animation-delay:.34s;}
.hero.go h1 .ln:nth-child(3) i{ animation-delay:.48s;}
.hero .rule{ margin-top:24px; width:0;}
.hero.go .rule{ animation:aRule .8s .8s var(--ease) forwards;}
.hero .sub{ margin-top:20px; font-size:clamp(14.5px,1.4vw,17px); letter-spacing:.06em; color:var(--steel); max-width:30em; opacity:0; transform:translateY(14px);}
.hero.go .sub{ animation:aIn .9s .9s var(--ease) forwards;}
@keyframes aIn{ to{ opacity:1; transform:none;}}
@keyframes aUp{ to{ transform:none;}}
@keyframes aRule{ to{ width:46px;}}
@keyframes sIn{ to{ opacity:1; transform:none;}}
@keyframes sc{ 0%{left:-54px;} 60%,100%{left:54px;}}

.ground{ position:absolute; left:-6%; right:-4%; top:auto; bottom:-6%; height:60vh; z-index:0; margin:0; pointer-events:none; opacity:0;}
.hero.go .ground{ animation:aIn .9s .35s var(--ease) forwards;}
.ground canvas{ position:absolute; inset:0; width:100%; height:100%; display:block;}
@media(max-width:959px){ .ground{ left:34%; right:-40%; top:auto; bottom:37svh; height:26svh;}}

.hero-strip{ position:relative; z-index:2; display:grid; grid-template-rows:repeat(3,1fr); gap:6px; height:60svh;}
@media(min-width:960px){ .hero-strip{ height:100svh;}}

@media(max-width:959px){
  .hero{ grid-template-rows:1fr auto;}
  .hero-copy{ min-height:0; justify-content:center; padding:82px clamp(16px,4.4vw,34px) 12px;}
  .hero h1{ font-size:clamp(28px,8vw,40px); letter-spacing:0;}
  .hero-strip{ grid-template-columns:repeat(3,1fr); grid-template-rows:1fr; height:34svh; gap:4px;}
  .hero-strip::before{ display:none;}
  .shot .cap{ left:10px; bottom:9px;}
  .shot .cap .n{ font-size:8px; letter-spacing:.12em;}
  .shot .cap .j{ font-size:11px;}
  .hero-strip .since{ right:9px; bottom:7px;}
  .hero-strip .since .y{ font-size:19px;}
  .hero-strip .since .l{ font-size:8px;}
}
.hero-strip::before{ content:""; position:absolute; inset:0 0 auto 0; height:120px; z-index:4; pointer-events:none; background:linear-gradient(180deg,rgba(12,24,52,.5),rgba(12,24,52,0));}
.shot{ position:relative; overflow:hidden; background:var(--surface); min-height:0; opacity:0; transform:translateX(40px);}
.shot img{ width:100%; height:100%; object-fit:cover; filter:saturate(.94) contrast(1.05); transform:scale(1.12); transition:transform 1.2s var(--ease), filter .8s var(--ease);}
.shot::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(46,64,153,.14),rgba(19,36,73,0) 55%);}
.shot:hover img{ transform:scale(1.04); filter:saturate(1.02) contrast(1.04);}
.shot .cap{ position:absolute; left:16px; bottom:14px; z-index:2; color:#fff;}
.shot .cap .n{ font-family:var(--en); font-weight:800; font-size:11px; letter-spacing:.22em; opacity:.9;}
.shot .cap .j{ font-family:var(--serif); font-size:13.5px; letter-spacing:.08em; text-shadow:0 2px 12px rgba(0,0,0,.5);}
.hero.go .shot.s1{ animation:sIn .9s .4s var(--ease) forwards;}
.hero.go .shot.s2{ animation:sIn .9s .56s var(--ease) forwards;}
.hero.go .shot.s3{ animation:sIn .9s .72s var(--ease) forwards;}
.hero-strip .since{ position:absolute; right:16px; bottom:14px; z-index:3; text-align:right; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.55);}
.hero-strip .since .y{ font-family:var(--en); font-weight:800; font-size:26px; line-height:1;}
.hero-strip .since .l{ font-size:9.5px; letter-spacing:.2em; margin-top:3px;}
.hero .scr{ position:absolute; left:clamp(22px,3.6vw,56px); bottom:48px; z-index:4; display:inline-flex; align-items:center; gap:12px; font-size:11px; letter-spacing:.14em; color:var(--steel);}
.hero .scr .ln{ width:54px; height:1px; background:var(--steel-lt); position:relative; overflow:hidden;}
.hero .scr .ln::after{ content:""; position:absolute; left:-54px; top:0; width:54px; height:1px; background:var(--brand); animation:sc 2.2s var(--ease) infinite;}
@media(max-width:959px){ .hero .scr{ display:none;}}

.tmarquee{ background:var(--mist); color:var(--navy-900); padding:15px 0; overflow:hidden; white-space:nowrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.tmarquee .track{ display:inline-flex; gap:36px; animation:tm 64s linear infinite; will-change:transform;}
.tmarquee span{ font-family:var(--serif); font-size:clamp(13px,1.4vw,16px); letter-spacing:.2em; color:var(--steel); display:inline-flex; align-items:center; gap:36px;}
.tmarquee span::after{ content:"・"; font-size:13px; color:var(--brand); opacity:.5;}
@keyframes tm{ from{transform:translateX(0);} to{transform:translateX(-50%);}}

.stats{ background:var(--surface); position:relative;}
.stats .row{ display:grid; grid-template-columns:repeat(2,1fr);}
@media(min-width:760px){ .stats .row{ grid-template-columns:repeat(4,1fr);}}
.stats .cell{ padding:52px 30px; text-align:center; position:relative;}
.stats .cell + .cell::before{ content:""; position:absolute; left:0; top:24%; height:52%; width:1px; background:var(--line);}
.stats .n{ font-family:var(--serif); font-weight:600; font-size:clamp(40px,5vw,62px); line-height:1; color:var(--navy-900); letter-spacing:.02em; white-space:nowrap;}
.stats .n small{ font-family:var(--sans); font-weight:700; font-size:14px; margin-left:4px; color:var(--brand); letter-spacing:.04em; white-space:nowrap;}
.stats .n.wide{ font-size:clamp(30px,3.9vw,50px); letter-spacing:.08em; white-space:nowrap;}
@media(max-width:640px){ .stats .n{ font-size:clamp(34px,9.5vw,44px);} .stats .n.wide{ font-size:clamp(22px,6.6vw,30px);} .stats .cell{ padding:44px 16px;} }
.stats .c{ font-size:13.5px; letter-spacing:.08em; color:var(--steel); margin-top:14px;}

.about{ padding:clamp(90px,12vw,170px) 0; position:relative; overflow:hidden; background:var(--paper);}
.about .grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr; gap:54px; align-items:center;}
@media(min-width:920px){ .about .grid{ grid-template-columns:1fr 1.02fr; gap:min(9%,110px);}}
.about h2{ font-family:var(--serif); font-weight:600; letter-spacing:.05em; font-size:clamp(25px,3.6vw,42px); line-height:1.6; margin:22px 0 0;}
.about h2 em{ font-style:normal; color:var(--brand);}
.about p{ color:var(--steel); font-size:16.5px; line-height:2.2; margin:0 0 20px;}
.about .fig{ position:relative;}
.about .fig .duo{ height:clamp(420px,56vw,600px); box-shadow:0 40px 90px rgba(19,36,73,.18);}
@media(min-width:920px){ .about .fig{ margin-right:calc(-1 * max(0px,(100vw - var(--wrap))/2 + 48px));}}
.about .fig .cap{ position:absolute; left:-14px; bottom:42px; z-index:2; background:var(--brand); color:#fff; font-family:var(--serif); font-size:14px; letter-spacing:.1em; padding:14px 24px;}

.service{ padding:clamp(90px,12vw,170px) 0; position:relative;
  background-image:linear-gradient(rgba(248,250,254,.74),rgba(248,250,254,.82)), url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.pw/images/1455/service-bg.jpg);
  background-position:center; background-size:cover; background-repeat:no-repeat; background-attachment:fixed, fixed;}
@media(max-width:768px){ .service{ background-attachment:scroll, scroll;} }
.service .lead{ max-width:32em; color:var(--steel); font-size:16.5px; margin:-8px 0 62px; line-height:2.1;}
.svc{ position:relative; display:grid; grid-template-columns:1fr; gap:30px; align-items:center; margin-bottom:clamp(48px,7vw,92px);}
.svc:last-child{ margin-bottom:0;}
@media(min-width:860px){ .svc{ grid-template-columns:1.08fr .92fr; gap:6%;} .svc.rev{ grid-template-columns:.92fr 1.08fr;} .svc.rev .svc-fig{ order:2;}}
.svc-fig{ position:relative;}
.svc-fig .duo{ height:clamp(320px,40vw,450px); box-shadow:0 30px 66px rgba(19,36,73,.13);}
.svc .bignum{ position:absolute; z-index:3; font-family:var(--en); font-weight:800; font-size:clamp(110px,16vw,220px); line-height:.8; color:var(--brand); opacity:.14; top:-10%; left:-3%; pointer-events:none;}
.svc.rev .bignum{ left:auto; right:-3%;}
.svc-bd{ position:relative; z-index:2;}
.svc-bd .k{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.16em; color:var(--brand);}
.svc-bd h3{ font-family:var(--serif); font-weight:600; font-size:clamp(22px,2.8vw,30px); letter-spacing:.05em; margin:14px 0 20px;}
.svc-bd p{ color:var(--steel); font-size:16px; line-height:2.15; margin:0 0 26px;}

.recruit{ position:relative; color:#fff; overflow:hidden;}
.recruit .duo{ position:absolute; inset:0;}
.recruit .duo::after{ background:linear-gradient(100deg,rgba(37,58,140,.82),rgba(74,99,180,.5) 55%,rgba(147,166,214,.34));}
.recruit .wm{ position:absolute; left:-2%; bottom:-4%; font-family:var(--en); font-weight:800; font-size:22vw; color:rgba(255,255,255,.08); line-height:1; z-index:2; pointer-events:none;}
.recruit .inner{ position:relative; z-index:3; padding:clamp(90px,12vw,160px) 0;}
.recruit .grid{ display:grid; grid-template-columns:1fr; gap:50px; align-items:center;}
@media(min-width:920px){ .recruit .grid{ grid-template-columns:1.05fr .95fr; gap:7%;}}
.recruit h2{ font-family:var(--serif); font-weight:600; font-size:clamp(28px,4vw,46px); line-height:1.5; letter-spacing:.05em; margin:16px 0 24px;}
.recruit .lead{ font-size:16.5px; line-height:2.2; color:rgba(255,255,255,.94); margin:0 0 34px; max-width:30em;}
.chips{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px;}
.chips span{ background:rgba(255,255,255,.14); border:1px solid rgba(224,122,58,.55); padding:11px 20px; border-radius:100px; font-size:13.5px; font-weight:600; backdrop-filter:blur(4px);}
.board{ background:rgba(12,24,52,.42); border:1px solid rgba(255,255,255,.2); padding:44px 40px; backdrop-filter:blur(6px);}
@media(max-width:520px){ .board{ padding:30px 24px;} }
.board .big{ font-family:var(--en); font-weight:800; font-size:clamp(38px,8vw,56px); line-height:1; color:var(--spark); white-space:nowrap;} .board .big small{ font-size:20px; font-weight:700; color:#fff; white-space:nowrap;}
.board .cap{ font-size:12.5px; color:rgba(255,255,255,.85); letter-spacing:.06em; margin-top:12px;}
.board hr{ border:none; border-top:1px solid rgba(255,255,255,.24); margin:26px 0;}
.board ul{ margin:0; padding:0; list-style:none;}
.board li{ font-size:13.5px; padding:8px 0 8px 26px; position:relative; color:rgba(255,255,255,.94);}
.board li::before{ content:""; position:absolute; left:0; top:15px; width:9px; height:9px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg);}

.works{ padding:clamp(90px,12vw,160px) 0 0; overflow:hidden; background:var(--paper);}
.works .top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:26px;}
.works .top p{ color:var(--steel); font-size:16px; max-width:32em; margin:0 0 6px; line-height:2.1;}
.marquee{ margin-top:60px; display:flex; flex-direction:column; gap:12px;}
.mrow{ display:flex; gap:7px; width:max-content;}
.mrow.r1{ animation:slL 54s linear infinite;} .mrow.r2{ animation:slR 62s linear infinite;}

.mtile{ width:360px; height:262px; flex:0 0 auto;}
@keyframes slL{ from{transform:translateX(0);} to{transform:translateX(-50%);}}
@keyframes slR{ from{transform:translateX(-50%);} to{transform:translateX(0);}}
.works .foot{ text-align:center; padding:clamp(56px,7vw,96px) 0;}

.strength{ position:relative; background:var(--surface); overflow:hidden; padding:clamp(96px,13vw,190px) 0;}
.strength .core-k{ position:relative; z-index:2; text-align:center; max-width:var(--wrap); margin:0 auto 64px; padding:0 clamp(24px,6vw,48px);}
.strength .core-k .d{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.3em; color:var(--brand);}
.strength .core-k h2{ font-family:var(--serif); font-weight:600; font-size:clamp(26px,4vw,46px); letter-spacing:.06em; margin:18px 0 0; line-height:1.5; color:var(--navy-900);}
.str-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr; gap:2px; max-width:1080px; margin:0 auto;}
@media(min-width:860px){ .str-grid{ grid-template-columns:repeat(3,1fr);}}
.str-item{ padding:44px 34px; position:relative;}
@media(min-width:860px){ .str-item + .str-item::before{ content:""; position:absolute; left:0; top:14%; height:72%; width:1px; background:var(--line);}}
.str-item .gn{ font-family:var(--en); font-weight:800; font-size:64px; line-height:1; color:var(--brand); opacity:.2; margin-bottom:22px;}
.str-item h3{ font-family:var(--serif); font-weight:600; font-size:21px; letter-spacing:.05em; margin:0 0 14px; color:var(--navy-900);}
.str-item p{ color:var(--steel); font-size:15px; line-height:2.1; margin:0;}

.company{ padding:clamp(90px,12vw,170px) 0; background:var(--paper); position:relative; overflow:hidden;}
.company .grid{ display:grid; grid-template-columns:1fr; gap:54px; align-items:center;}
@media(min-width:920px){ .company .grid{ grid-template-columns:.95fr 1.05fr; gap:8%;}}
.company .fig{ position:relative;}
.company .fig .duo{ height:clamp(400px,52vw,540px); border-radius:270px 270px 6px 6px;}
.company .fig .est{ position:absolute; right:-6px; top:24px; z-index:2; background:#fff; padding:20px 28px; text-align:center; box-shadow:0 20px 50px rgba(19,36,73,.14);}
.company .fig .est .y{ font-family:var(--en); font-weight:800; font-size:32px; color:var(--brand); line-height:1;}
.company .fig .est .l{ font-size:10.5px; letter-spacing:.14em; color:var(--steel); margin-top:6px;}
.company h2{ font-family:var(--serif); font-weight:600; letter-spacing:.05em; font-size:clamp(25px,3.4vw,38px); line-height:1.6; margin:22px 0 26px;}
.company p{ color:var(--steel); font-size:16px; line-height:2.2; margin:0 0 20px;}
.company .links{ display:flex; flex-wrap:wrap; gap:16px 44px; margin-top:36px;}

.cvt{ display:grid; grid-template-columns:1fr;}
.cvt a.cvt-card:first-child{ border-top:3px solid var(--spark);}
@media(min-width:800px){ .cvt{ grid-template-columns:1fr 1fr;}}
.cvt-card{ position:relative; min-height:clamp(380px,44vw,500px); display:flex; align-items:center; justify-content:center; overflow:hidden; color:#fff; text-align:center;}
.cvt-card .ph{ position:absolute; inset:0; z-index:0;}
.cvt-card .ph img{ width:100%; height:100%; object-fit:cover; filter:saturate(.92) contrast(1.05) brightness(.92); transition:transform 1.1s var(--ease);}
.cvt-card::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(12,24,52,.5),rgba(19,36,73,.8)); transition:.5s var(--ease);}
.cvt-card:hover .ph img{ transform:scale(1.06);}
.cvt-card:hover::after{ background:linear-gradient(180deg,rgba(46,64,153,.52),rgba(19,36,73,.8));}
.cvt-in{ position:relative; z-index:2; padding:clamp(36px,5vw,60px);}
.cvt-en{ display:block; font-family:var(--en); font-weight:800; font-size:clamp(30px,4vw,52px); letter-spacing:.04em; line-height:1;}
.cvt-jp{ display:block; font-family:var(--serif); font-size:clamp(15px,1.7vw,18px); letter-spacing:.16em; margin-top:16px;}
.cvt-lead{ display:block; font-size:13px; color:rgba(255,255,255,.86); line-height:1.9; margin-top:18px; max-width:24em; margin-left:auto; margin-right:auto;}
.cvt-go{ display:inline-flex; align-items:center; gap:14px; margin-top:28px; font-size:12px; font-weight:700; letter-spacing:.16em;}
.cvt-go .c{ width:46px; height:46px; border:1px solid rgba(255,255,255,.65); border-radius:50%; display:grid; place-items:center; transition:.4s var(--ease);}
.cvt-go .c svg{ width:16px; height:10px; stroke:#fff; transition:.4s;}
.cvt-card:hover .cvt-go .c{ background:#fff;}
.cvt-card:hover .cvt-go .c svg{ stroke:var(--brand); transform:translateX(3px);}

.cta{ position:relative; color:#fff; text-align:center; overflow:hidden; background:linear-gradient(120deg,var(--brand),var(--brand-lt));}
.cta .wm{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--en); font-weight:800; font-size:30vw; color:rgba(255,255,255,.08); line-height:1; pointer-events:none;}
.cta .inner{ position:relative; z-index:2; padding:clamp(90px,12vw,150px) 0;}
.cta .lbl{ font-family:var(--en); font-weight:800; font-size:clamp(44px,7vw,82px); line-height:1; letter-spacing:.03em; color:#fff;}
.cta h2{ font-family:var(--serif); font-weight:600; font-size:clamp(21px,2.6vw,30px); letter-spacing:.06em; line-height:1.6; margin:30px auto 18px; max-width:30em;}
.cta p{ color:rgba(255,255,255,.92); font-size:16.5px; font-weight:600; line-height:2.05; letter-spacing:.015em; margin:0 auto 46px; max-width:34em;}
.cta .btns{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center;}
.cta .btns .btn{ min-width:200px;}

@media(max-width:720px){ .cta .btns{ display:inline-grid; grid-template-columns:1fr; gap:14px;} }
.cta .btn-o{ color:#fff; border-color:rgba(255,255,255,.6);} .cta .btn-o:hover{ background:#fff; color:var(--brand);}

footer.site{ background:var(--navy-950); color:rgba(255,255,255,.7); padding:clamp(66px,8vw,96px) 0 36px;}
.fgrid{ display:grid; grid-template-columns:1fr; gap:clamp(40px,6vw,88px);}
@media(min-width:820px){ .fgrid{ grid-template-columns:1fr auto; align-items:start;}}
.fnav{ display:flex; flex-direction:column; gap:36px;}
@media(min-width:560px){ .fnav{ flex-direction:row; gap:clamp(30px,3.2vw,54px);}}
.footer-logo{ height:38px; margin-bottom:24px;} .footer-logo img{ height:100%; filter:brightness(0) invert(1);}
footer .brand-f p{ font-size:15px; line-height:2.1; margin:0;}
footer .fcol h4{ font-family:var(--en); font-size:11px; letter-spacing:.2em; color:var(--peri); font-weight:800; margin:0 0 22px; padding:0; border:0;}
footer .fcol h4::after{ content:""; display:block; width:26px; height:2px; background:var(--peri); opacity:.55; margin-top:12px;}
footer .fcontact{ margin-top:32px;}
footer .ftel{ font-family:var(--en); font-weight:800; font-size:26px; color:#fff; letter-spacing:.02em; line-height:1;}
footer .fhours{ display:block; font-size:13.5px; opacity:.78; margin-top:9px; letter-spacing:.04em;}
footer .fcol a{ display:block; font-size:14.5px; padding:8px 0; color:rgba(255,255,255,.78); transition:.2s;}
footer .fcol a:hover{ color:#fff; padding-left:6px;}
footer .fcol .loc{ font-size:14px; padding:0; color:rgba(255,255,255,.78);}
footer .fcol .loc + .loc{ margin-top:16px;}
footer .fcol .loc b{ color:#fff; font-weight:600; display:block; margin-bottom:4px;}
footer .fcol .loc small{ font-size:12px; line-height:1.7; opacity:.75;}
.fbar{ margin-top:clamp(48px,6vw,72px); padding-top:28px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; letter-spacing:.06em;}

.reveal{ opacity:0; transform:translateY(38px); transition:1.05s var(--ease);}
.reveal.in{ opacity:1; transform:none;}
.reveal.d1{ transition-delay:.12s;} .reveal.d2{ transition-delay:.24s;} .reveal.d3{ transition-delay:.36s;}
@media(prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important;}
  .reveal,.mask,.hero h1 .ln i,.hero .sub{opacity:1!important; transform:none!important; clip-path:none!important;}
  #loader{display:none!important;}}
.note{ background:rgba(19,36,73,.92); color:#fff; font-size:12px; text-align:center; padding:9px 16px; letter-spacing:.04em; position:fixed; left:0; right:0; bottom:0; z-index:80; backdrop-filter:blur(4px);}

.about p,.service .lead,.svc-bd p,.works .top p,.str-item p,.company p{ font-weight:600; color:#3f4859; letter-spacing:.015em;}
.hero .sub{ font-weight:600; color:#3f4859; font-size:clamp(15.5px,1.5vw,18px); letter-spacing:.03em;}
.str-item p{ font-size:15.5px;}

:root{
  --navy-950:#0c1834; --navy-900:#132449; --navy-800:#1b2f5c;
  --brand:#2e4099; --brand-lt:#4a63b4; --peri:#7f95d6; --sumi:#182338;
  --steel:#586377; --steel-lt:#93a0b4;
  --line:#e6eaf2; --surface:#f2f6fd; --mist:#f8fafe; --paper:#ffffff;
  --spark:#e07a3a;
  --serif:'Yu Mincho','YuMincho','Hiragino Mincho ProN','Hiragino Mincho Pro',serif;
  --sans:'Yu Gothic','YuGothic','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
  --en:'Helvetica Neue','Segoe UI','Arial',sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1); --wrap:1220px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{ margin:0; color:var(--navy-900); background:var(--paper);
  font-family:var(--sans); font-weight:500; line-height:2; font-size:17px; letter-spacing:.04em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}

:is(a,button,summary,[tabindex]):focus-visible{ outline:3px solid var(--brand); outline-offset:3px; border-radius:3px;}
.recruit :focus-visible,.cta :focus-visible,footer.site :focus-visible,.drawer :focus-visible,.side-cta:focus-visible{ outline-color:#fff;}
.skip-link{ position:fixed; left:16px; top:-64px; z-index:300; background:var(--brand); color:#fff; padding:12px 22px; font-weight:700; font-size:14px; border-radius:0 0 6px 6px; transition:top .25s var(--ease);}
.skip-link:focus{ top:0;}
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 clamp(24px,6vw,48px);}
.en{ font-family:var(--en);}

.duo{ position:relative; overflow:hidden; isolation:isolate; background:var(--surface);}
.duo img{ width:100%; height:100%; object-fit:cover;
  filter:saturate(.94) contrast(1.05) brightness(1.02);
  transition:filter .8s var(--ease), transform 1.2s var(--ease);}
.duo::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(155deg,rgba(46,64,153,.10),rgba(150,180,225,.03) 55%,rgba(255,255,255,0));
  transition:opacity .6s var(--ease);}
.duo.hoverable:hover img{ filter:saturate(1.04) contrast(1.04); transform:scale(1.05);}
.duo.hoverable:hover::after{ opacity:.45;}

.mask{ transition:clip-path 1.2s var(--ease);}
.mask-l{ clip-path:inset(0 100% 0 0);}
.mask-r{ clip-path:inset(0 0 0 100%);}
.mask-l.in,.mask-r.in{ clip-path:inset(0 0 0 0);}

.sec-head{ margin-bottom:clamp(40px,5.5vw,68px); position:relative;}
.sec-head .lbl{ display:block; font-family:var(--en); font-weight:800; letter-spacing:.005em;
  font-size:clamp(46px,7.4vw,104px); line-height:.9; color:var(--brand); -webkit-text-stroke:0;}
.sec-head .lbl.solid{ color:var(--navy-900); -webkit-text-stroke:0;}
.sec-head .jp{ display:block; font-family:var(--serif); font-weight:600; letter-spacing:.08em;
  font-size:clamp(23px,3vw,38px); margin:20px 0 0; color:var(--navy-900); line-height:1.5;}
.kicker{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.28em; color:var(--brand); display:inline-flex; align-items:center; gap:12px;}
.kicker .dep{ font-size:11px; color:var(--steel); letter-spacing:.1em;}

.rule{ display:block; width:46px; height:3px; background:var(--brand); margin-top:24px;}

.alink{ display:inline-flex; align-items:center; gap:18px; font-weight:700; font-size:14.5px; letter-spacing:.1em; color:var(--navy-900);}
.alink .c{ width:56px; height:56px; border-radius:50%; border:1px solid var(--brand); position:relative; flex:0 0 auto; transition:transform .3s var(--ease); overflow:hidden; will-change:transform;}
.alink .c::before{ content:""; position:absolute; inset:0; background:var(--brand); transform:scale(0); border-radius:50%; transition:.5s var(--ease);}
.alink .c svg{ position:relative; z-index:2; width:16px; height:10px; margin:23px auto 0; display:block; stroke:var(--brand); transition:.4s;}
.alink:hover .c::before{ transform:scale(1);}
.alink:hover .c svg{ stroke:#fff; transform:translateX(3px);}
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:12px; font-weight:700; font-size:15px; letter-spacing:.08em; padding:19px 40px; transition:background .4s var(--ease), transform .25s var(--ease), box-shadow .3s var(--ease), color .35s var(--ease); border:1.5px solid transparent; will-change:transform;}
.btn svg{ transition:transform .3s var(--ease);}
.btn:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(19,36,73,.2);}
.btn:hover svg{ transform:translateX(4px);}
.btn-p{ background:var(--brand); color:#fff;} .btn-p:hover{ background:var(--navy-800);}
.btn-o{ background:transparent; color:var(--brand); border-color:var(--brand);} .btn-o:hover{ background:var(--brand); color:#fff;}
.btn-l{ background:#06c755; color:#fff;} .btn-l:hover{ filter:brightness(1.07);}
.btn-w{ background:#fff; color:var(--brand);} .btn-w:hover{ background:var(--surface);}

.side-cta{ position:fixed; right:0; top:50%; z-index:44; writing-mode:vertical-rl; background:var(--brand); color:#fff; font-weight:700; font-size:12.5px; letter-spacing:.2em; padding:22px 10px; border-radius:6px 0 0 6px; box-shadow:0 10px 34px rgba(19,36,73,.24); transform:translateY(-50%) translateX(8px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .45s var(--ease), transform .45s var(--ease), background .4s, padding .4s;}
.side-cta.show{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(-50%) translateX(0);}
.side-cta:hover{ background:var(--navy-800); padding-right:16px;}
@media(max-width:1180px){ .side-cta{ display:none;}}

body.p-lower header.site{ position:fixed; inset:0 0 auto 0; z-index:60; height:76px; display:flex; align-items:center; background:#ffffff; border-bottom:1px solid var(--line); box-shadow:0 1px 16px rgba(19,36,73,.05); transition:.4s var(--ease);}
body.p-lower header.site.solid{ height:64px; background:#ffffff; box-shadow:0 2px 24px rgba(19,36,73,.09);}
.hdr-inner{ max-width:none; width:100%; margin:0 auto; padding:0 clamp(24px,6vw,48px); display:flex; align-items:center; gap:clamp(14px,1.4vw,22px);}
.brand-logo{ height:38px; flex:0 0 auto; margin-right:auto; display:inline-flex; align-items:center; gap:11px;} .brand-logo img{ height:100%;} .brand-logo .brand-mark{ height:112%;}
nav.gnav{ margin:0;}
nav.gnav ul{ display:flex; gap:clamp(16px,1.6vw,26px); list-style:none; margin:0; padding:0; align-items:center;}
nav.gnav a.it{ position:relative; font-size:14px; font-weight:600; letter-spacing:.06em; color:var(--navy-900); padding:8px 0; white-space:nowrap;}
nav.gnav a.it .car{ display:inline-block; font-size:9px; margin-left:6px; opacity:.4; transition:transform .3s var(--ease), opacity .3s;}
.gli:hover a.it .car{ transform:rotate(180deg); opacity:.7;}
nav.gnav a.it::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--brand); transition:.35s var(--ease);}
nav.gnav a.it:hover::after{ width:100%;}
.gli{ position:relative;}
.dd{ position:absolute; top:calc(100% + 12px); left:50%; transform:translate(-50%,8px); background:#fff; min-width:220px; padding:12px 0; box-shadow:0 22px 54px rgba(19,36,73,.14); opacity:0; visibility:hidden; transition:.3s var(--ease);}
.gli:hover .dd,.gli:focus-within .dd{ opacity:1; visibility:visible; transform:translate(-50%,0);}
.dd a{ display:block; padding:11px 24px; font-size:13.5px; color:var(--navy-900); transition:.2s;}
.dd a:hover{ background:var(--surface); color:var(--brand);}
.hdr-r{ display:flex; align-items:center; gap:18px;}
.hdr-r::before{ content:""; width:1px; height:30px; background:var(--line); flex:0 0 auto;}

.hdr-tel{ text-align:right; color:var(--navy-900); line-height:1.15; white-space:nowrap; flex:0 0 auto;}
.hdr-tel small{ font-size:9.5px; letter-spacing:.12em; opacity:.62; display:block; margin-bottom:2px;}
.hdr-tel b{ font-family:var(--en); font-size:20px; font-weight:800; letter-spacing:.01em;}
.hdr-c{ display:inline-flex; align-items:center; gap:9px; padding:12px 24px; background:var(--brand); color:#fff; font-weight:700; font-size:13.5px; letter-spacing:.06em; border-radius:5px; white-space:nowrap; flex:0 0 auto; transition:background .4s var(--ease), transform .25s var(--ease);}
.hdr-c:hover{ background:var(--navy-800); box-shadow:0 8px 20px rgba(19,36,73,.24);}
.hdr-c svg{ transition:transform .3s var(--ease);} .hdr-c:hover svg{ transform:translateX(3px);}
.hdr-c svg{ width:16px; height:9px; stroke:#fff; flex:0 0 auto;}
.burger{ display:none; margin-left:auto; flex-direction:column; gap:6px; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; border:0; background:transparent; padding:0;}
.burger span{ width:26px; height:2px; background:var(--navy-900); transition:.3s;}
@media(max-width:1120px){ nav.gnav,.hdr-r{ display:none;} .burger{ display:flex;}}
.drawer{ position:fixed; inset:0; z-index:70; background:var(--navy-950); color:#fff; transform:translateX(100%); transition:.5s var(--ease); padding:104px 34px 40px; overflow:auto;}
.drawer.open{ transform:none;}
.drawer a{ display:block; font-family:var(--serif); font-size:19px; letter-spacing:.08em; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.12);}
.drawer .s{ font-size:13px; font-family:var(--sans); opacity:.75; padding:9px 0 9px 16px; border:none;}
.dclose{ position:absolute; top:28px; right:30px; font-size:32px; cursor:pointer; border:0; background:transparent; color:inherit; line-height:1;}

.tmarquee{ background:var(--mist); color:var(--navy-900); padding:15px 0; overflow:hidden; white-space:nowrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.tmarquee .track{ display:inline-flex; gap:36px; animation:tm 64s linear infinite; will-change:transform;}
.tmarquee span{ font-family:var(--serif); font-size:clamp(13px,1.4vw,16px); letter-spacing:.2em; color:var(--steel); display:inline-flex; align-items:center; gap:36px;}
.tmarquee span::after{ content:"・"; font-size:13px; color:var(--brand); opacity:.5;}
@keyframes tm{ from{transform:translateX(0);} to{transform:translateX(-50%);}}

.stats{ background:var(--surface); position:relative;}
.stats .row{ display:grid; grid-template-columns:repeat(2,1fr);}
@media(min-width:760px){ .stats .row{ grid-template-columns:repeat(4,1fr);}}
.stats .cell{ padding:52px 30px; text-align:center; position:relative;}
.stats .cell + .cell::before{ content:""; position:absolute; left:0; top:24%; height:52%; width:1px; background:var(--line);}
.stats .n{ font-family:var(--serif); font-weight:600; font-size:clamp(40px,5vw,62px); line-height:1; color:var(--navy-900); letter-spacing:.02em; white-space:nowrap;}
.stats .n small{ font-family:var(--sans); font-weight:700; font-size:14px; margin-left:4px; color:var(--brand); letter-spacing:.04em; white-space:nowrap;}
.stats .n.wide{ font-size:clamp(30px,3.9vw,50px); letter-spacing:.08em; white-space:nowrap;}
@media(max-width:640px){ .stats .n{ font-size:clamp(34px,9.5vw,44px);} .stats .n.wide{ font-size:clamp(22px,6.6vw,30px);} .stats .cell{ padding:44px 16px;} }
.stats .c{ font-size:13.5px; letter-spacing:.08em; color:var(--steel); margin-top:14px;}

.about{ padding:clamp(90px,12vw,170px) 0; position:relative; overflow:hidden; background:var(--paper);}
.about .grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr; gap:54px; align-items:center;}
@media(min-width:920px){ .about .grid{ grid-template-columns:1fr 1.02fr; gap:min(9%,110px);}}
.about h2{ font-family:var(--serif); font-weight:600; letter-spacing:.05em; font-size:clamp(25px,3.6vw,42px); line-height:1.6; margin:22px 0 0;}
.about h2 em{ font-style:normal; color:var(--brand);}
.about p{ color:var(--steel); font-size:16.5px; line-height:2.2; margin:0 0 20px;}
.about .fig{ position:relative;}
.about .fig .duo{ height:clamp(420px,56vw,600px); box-shadow:0 40px 90px rgba(19,36,73,.18);}
@media(min-width:920px){ .about .fig{ margin-right:calc(-1 * max(0px,(100vw - var(--wrap))/2 + 48px));}}
.about .fig .cap{ position:absolute; left:-14px; bottom:42px; z-index:2; background:var(--brand); color:#fff; font-family:var(--serif); font-size:14px; letter-spacing:.1em; padding:14px 24px;}

.service{ padding:clamp(90px,12vw,170px) 0; position:relative;
  background-image:linear-gradient(rgba(248,250,254,.74),rgba(248,250,254,.82)), url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.pw/images/1455/service-bg.jpg);
  background-position:center; background-size:cover; background-repeat:no-repeat; background-attachment:fixed, fixed;}
@media(max-width:768px){ .service{ background-attachment:scroll, scroll;} }
.service .lead{ max-width:32em; color:var(--steel); font-size:16.5px; margin:-8px 0 62px; line-height:2.1;}
.svc{ position:relative; display:grid; grid-template-columns:1fr; gap:30px; align-items:center; margin-bottom:clamp(48px,7vw,92px);}
.svc:last-child{ margin-bottom:0;}
@media(min-width:860px){ .svc{ grid-template-columns:1.08fr .92fr; gap:6%;} .svc.rev{ grid-template-columns:.92fr 1.08fr;} .svc.rev .svc-fig{ order:2;}}
.svc-fig{ position:relative;}
.svc-fig .duo{ height:clamp(320px,40vw,450px); box-shadow:0 30px 66px rgba(19,36,73,.13);}
.svc .bignum{ position:absolute; z-index:3; font-family:var(--en); font-weight:800; font-size:clamp(110px,16vw,220px); line-height:.8; color:var(--brand); opacity:.14; top:-10%; left:-3%; pointer-events:none;}
.svc.rev .bignum{ left:auto; right:-3%;}
.svc-bd{ position:relative; z-index:2;}
.svc-bd .k{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.16em; color:var(--brand);}
.svc-bd h3{ font-family:var(--serif); font-weight:600; font-size:clamp(22px,2.8vw,30px); letter-spacing:.05em; margin:14px 0 20px;}
.svc-bd p{ color:var(--steel); font-size:16px; line-height:2.15; margin:0 0 26px;}

.recruit{ position:relative; color:#fff; overflow:hidden;}
.recruit .duo{ position:absolute; inset:0;}
.recruit .duo::after{ background:linear-gradient(100deg,rgba(37,58,140,.82),rgba(74,99,180,.5) 55%,rgba(147,166,214,.34));}
.recruit .wm{ position:absolute; left:-2%; bottom:-4%; font-family:var(--en); font-weight:800; font-size:22vw; color:rgba(255,255,255,.08); line-height:1; z-index:2; pointer-events:none;}
.recruit .inner{ position:relative; z-index:3; padding:clamp(90px,12vw,160px) 0;}
.recruit .grid{ display:grid; grid-template-columns:1fr; gap:50px; align-items:center;}
@media(min-width:920px){ .recruit .grid{ grid-template-columns:1.05fr .95fr; gap:7%;}}
.recruit h2{ font-family:var(--serif); font-weight:600; font-size:clamp(28px,4vw,46px); line-height:1.5; letter-spacing:.05em; margin:16px 0 24px;}
.recruit .lead{ font-size:16.5px; line-height:2.2; color:rgba(255,255,255,.94); margin:0 0 34px; max-width:30em;}
.chips{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px;}
.chips span{ background:rgba(255,255,255,.14); border:1px solid rgba(224,122,58,.55); padding:11px 20px; border-radius:100px; font-size:13.5px; font-weight:600; backdrop-filter:blur(4px);}
.board{ background:rgba(12,24,52,.42); border:1px solid rgba(255,255,255,.2); padding:44px 40px; backdrop-filter:blur(6px);}
@media(max-width:520px){ .board{ padding:30px 24px;} }
.board .big{ font-family:var(--en); font-weight:800; font-size:clamp(38px,8vw,56px); line-height:1; color:var(--spark); white-space:nowrap;} .board .big small{ font-size:20px; font-weight:700; color:#fff; white-space:nowrap;}
.board .cap{ font-size:12.5px; color:rgba(255,255,255,.85); letter-spacing:.06em; margin-top:12px;}
.board hr{ border:none; border-top:1px solid rgba(255,255,255,.24); margin:26px 0;}
.board ul{ margin:0; padding:0; list-style:none;}
.board li{ font-size:13.5px; padding:8px 0 8px 26px; position:relative; color:rgba(255,255,255,.94);}
.board li::before{ content:""; position:absolute; left:0; top:15px; width:9px; height:9px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg);}

.works{ padding:clamp(90px,12vw,160px) 0 0; overflow:hidden; background:var(--paper);}
.works .top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:26px;}
.works .top p{ color:var(--steel); font-size:16px; max-width:32em; margin:0 0 6px; line-height:2.1;}
.marquee{ margin-top:60px; display:flex; flex-direction:column; gap:12px;}
.mrow{ display:flex; gap:7px; width:max-content;}
.mrow.r1{ animation:slL 54s linear infinite;} .mrow.r2{ animation:slR 62s linear infinite;}

.mtile{ width:360px; height:262px; flex:0 0 auto;}
@keyframes slL{ from{transform:translateX(0);} to{transform:translateX(-50%);}}
@keyframes slR{ from{transform:translateX(-50%);} to{transform:translateX(0);}}
.works .foot{ text-align:center; padding:clamp(56px,7vw,96px) 0;}

@media(min-width:860px){ .str-grid{ grid-template-columns:repeat(3,1fr);}}
@media(min-width:860px){ .str-item + .str-item::before{ content:""; position:absolute; left:0; top:14%; height:72%; width:1px; background:var(--line);}}

.company{ padding:clamp(90px,12vw,170px) 0; background:var(--paper); position:relative; overflow:hidden;}
.company .grid{ display:grid; grid-template-columns:1fr; gap:54px; align-items:center;}
@media(min-width:920px){ .company .grid{ grid-template-columns:.95fr 1.05fr; gap:8%;}}
.company .fig{ position:relative;}
.company .fig .duo{ height:clamp(400px,52vw,540px); border-radius:270px 270px 6px 6px;}
.company .fig .est{ position:absolute; right:-6px; top:24px; z-index:2; background:#fff; padding:20px 28px; text-align:center; box-shadow:0 20px 50px rgba(19,36,73,.14);}
.company .fig .est .y{ font-family:var(--en); font-weight:800; font-size:32px; color:var(--brand); line-height:1;}
.company .fig .est .l{ font-size:10.5px; letter-spacing:.14em; color:var(--steel); margin-top:6px;}
.company h2{ font-family:var(--serif); font-weight:600; letter-spacing:.05em; font-size:clamp(25px,3.4vw,38px); line-height:1.6; margin:22px 0 26px;}
.company p{ color:var(--steel); font-size:16px; line-height:2.2; margin:0 0 20px;}
.company .links{ display:flex; flex-wrap:wrap; gap:16px 44px; margin-top:36px;}

.cvt{ display:grid; grid-template-columns:1fr;}
.cvt a.cvt-card:first-child{ border-top:3px solid var(--spark);}
@media(min-width:800px){ .cvt{ grid-template-columns:1fr 1fr;}}
.cvt-card{ position:relative; min-height:clamp(380px,44vw,500px); display:flex; align-items:center; justify-content:center; overflow:hidden; color:#fff; text-align:center;}
.cvt-card .ph{ position:absolute; inset:0; z-index:0;}
.cvt-card .ph img{ width:100%; height:100%; object-fit:cover; filter:saturate(.92) contrast(1.05) brightness(.92); transition:transform 1.1s var(--ease);}
.cvt-card::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(12,24,52,.5),rgba(19,36,73,.8)); transition:.5s var(--ease);}
.cvt-card:hover .ph img{ transform:scale(1.06);}
.cvt-card:hover::after{ background:linear-gradient(180deg,rgba(46,64,153,.52),rgba(19,36,73,.8));}
.cvt-in{ position:relative; z-index:2; padding:clamp(36px,5vw,60px);}
.cvt-en{ display:block; font-family:var(--en); font-weight:800; font-size:clamp(30px,4vw,52px); letter-spacing:.04em; line-height:1;}
.cvt-jp{ display:block; font-family:var(--serif); font-size:clamp(15px,1.7vw,18px); letter-spacing:.16em; margin-top:16px;}
.cvt-lead{ display:block; font-size:13px; color:rgba(255,255,255,.86); line-height:1.9; margin-top:18px; max-width:24em; margin-left:auto; margin-right:auto;}
.cvt-go{ display:inline-flex; align-items:center; gap:14px; margin-top:28px; font-size:12px; font-weight:700; letter-spacing:.16em;}
.cvt-go .c{ width:46px; height:46px; border:1px solid rgba(255,255,255,.65); border-radius:50%; display:grid; place-items:center; transition:.4s var(--ease);}
.cvt-go .c svg{ width:16px; height:10px; stroke:#fff; transition:.4s;}
.cvt-card:hover .cvt-go .c{ background:#fff;}
.cvt-card:hover .cvt-go .c svg{ stroke:var(--brand); transform:translateX(3px);}

.cta{ position:relative; color:#fff; text-align:center; overflow:hidden; background:linear-gradient(120deg,var(--brand),var(--brand-lt));}
.cta .wm{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--en); font-weight:800; font-size:30vw; color:rgba(255,255,255,.08); line-height:1; pointer-events:none;}
.cta .inner{ position:relative; z-index:2; padding:clamp(90px,12vw,150px) 0;}
.cta .lbl{ font-family:var(--en); font-weight:800; font-size:clamp(44px,7vw,82px); line-height:1; letter-spacing:.03em; color:#fff;}
.cta h2{ font-family:var(--serif); font-weight:600; font-size:clamp(21px,2.6vw,30px); letter-spacing:.06em; line-height:1.6; margin:30px auto 18px; max-width:30em;}
.cta p{ color:rgba(255,255,255,.92); font-size:16.5px; font-weight:600; line-height:2.05; letter-spacing:.015em; margin:0 auto 46px; max-width:34em;}
.cta .btns{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center;}
.cta .btns .btn{ min-width:200px;}

@media(max-width:720px){ .cta .btns{ display:inline-grid; grid-template-columns:1fr; gap:14px;} }
.cta .btn-o{ color:#fff; border-color:rgba(255,255,255,.6);} .cta .btn-o:hover{ background:#fff; color:var(--brand);}

footer.site{ background:var(--navy-950); color:rgba(255,255,255,.7); padding:clamp(66px,8vw,96px) 0 36px;}
.fgrid{ display:grid; grid-template-columns:1fr; gap:clamp(40px,6vw,88px);}
@media(min-width:820px){ .fgrid{ grid-template-columns:1fr auto; align-items:start;}}
.fnav{ display:flex; flex-direction:column; gap:36px;}
@media(min-width:560px){ .fnav{ flex-direction:row; gap:clamp(30px,3.2vw,54px);}}
.footer-logo{ height:38px; margin-bottom:24px;} .footer-logo img{ height:100%; filter:brightness(0) invert(1);}
footer .brand-f p{ font-size:15px; line-height:2.1; margin:0;}
footer .fcol h4{ font-family:var(--en); font-size:11px; letter-spacing:.2em; color:var(--peri); font-weight:800; margin:0 0 22px; padding:0; border:0;}
footer .fcol h4::after{ content:""; display:block; width:26px; height:2px; background:var(--peri); opacity:.55; margin-top:12px;}
footer .fcontact{ margin-top:32px;}
footer .ftel{ font-family:var(--en); font-weight:800; font-size:26px; color:#fff; letter-spacing:.02em; line-height:1;}
footer .fhours{ display:block; font-size:13.5px; opacity:.78; margin-top:9px; letter-spacing:.04em;}
footer .fcol a{ display:block; font-size:14.5px; padding:8px 0; color:rgba(255,255,255,.78); transition:.2s;}
footer .fcol a:hover{ color:#fff; padding-left:6px;}
footer .fcol .loc{ font-size:14px; padding:0; color:rgba(255,255,255,.78);}
footer .fcol .loc + .loc{ margin-top:16px;}
footer .fcol .loc b{ color:#fff; font-weight:600; display:block; margin-bottom:4px;}
footer .fcol .loc small{ font-size:12px; line-height:1.7; opacity:.75;}
.fbar{ margin-top:clamp(48px,6vw,72px); padding-top:28px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; letter-spacing:.06em;}

.reveal{ opacity:0; transform:translateY(38px); transition:1.05s var(--ease);}
.reveal.in{ opacity:1; transform:none;}
.reveal.d1{ transition-delay:.12s;} .reveal.d2{ transition-delay:.24s;} .reveal.d3{ transition-delay:.36s;}
@media(prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important;}
  .reveal,.mask,.hero h1 .ln i,.hero .sub{opacity:1!important; transform:none!important; clip-path:none!important;}}
.note{ background:rgba(19,36,73,.92); color:#fff; font-size:12px; text-align:center; padding:9px 16px; letter-spacing:.04em; position:fixed; left:0; right:0; bottom:0; z-index:80; backdrop-filter:blur(4px);}

.subhero{ position:relative; overflow:hidden; background:var(--surface); padding:clamp(100px,8vw,110px) clamp(24px,6vw,64px) clamp(30px,4vw,44px);}
.subhero .lbl{ position:absolute; right:2%; top:-6%; font-family:var(--en); font-weight:800; font-size:clamp(80px,15vw,220px); line-height:.8; color:transparent; -webkit-text-stroke:1.4px rgba(46,64,153,.09); pointer-events:none;}
.subhero .in{ position:relative; z-index:2; max-width:1120px; margin:0 auto;}
.subhero h1{ font-family:var(--serif); font-weight:600; font-size:clamp(28px,4vw,46px); letter-spacing:.04em; margin:6px 0 0; color:var(--navy-900);}
.subhero .rule{ margin-top:20px;}
.subhero.photo{ background:var(--navy-900);}
.subhero.photo .bg{ position:absolute; inset:0; z-index:0;}
.subhero.photo .bg img{ width:100%; height:100%; object-fit:cover; opacity:.5;}
.subhero.photo::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(12,24,52,.82),rgba(12,24,52,.4));}
.subhero.photo h1,.subhero.photo .kicker{ color:#fff;} .subhero.photo .kicker .dep{ color:rgba(255,255,255,.7);}
.subhero.photo .lbl{ -webkit-text-stroke-color:rgba(255,255,255,.14);}

.crumb{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:var(--steel); letter-spacing:.04em;}
.crumb a:hover{ color:var(--brand);} .crumb .sep{ color:var(--steel-lt);} .crumb .cur{ color:var(--navy-900);}
.subhero .crumb{ margin-top:22px;}
.subhero.photo .crumb{ color:rgba(255,255,255,.8);} .subhero.photo .crumb .cur{ color:#fff;}

.subhero.photo.light{ background:var(--surface);}
.subhero.photo.light .bg img{ opacity:1; filter:saturate(.98) contrast(1.03) brightness(1.05);}
.subhero.photo.light::after{ background:linear-gradient(90deg,var(--surface) 0%,rgba(242,246,253,.9) 42%,rgba(242,246,253,.32) 68%,rgba(242,246,253,0) 100%);}
.subhero.photo.light h1{ color:var(--navy-900);}
.subhero.photo.light .kicker{ color:var(--brand);} .subhero.photo.light .kicker .dep{ color:var(--steel);}
.subhero.photo.light .sub{ color:var(--steel);}
.subhero.photo.light .lbl{ -webkit-text-stroke-color:rgba(46,64,153,.10);}
.subhero.photo.light .crumb{ color:var(--steel);} .subhero.photo.light .crumb .cur{ color:var(--navy-900);}

@media(max-width:720px){ .subhero.photo.light::after{ background:linear-gradient(180deg,rgba(242,246,253,.9),rgba(242,246,253,.72));} }

.dtable{ width:100%; border-collapse:collapse; font-size:16.5px;}
.dtable th,.dtable td{ text-align:left; padding:18px 18px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.95;}
.dtable th{ width:26%; font-weight:700; color:var(--navy-900); background:var(--mist); white-space:nowrap;}
.dtable td{ color:#3f4859; font-weight:600; letter-spacing:.015em;}
@media(max-width:600px){ .dtable th,.dtable td{ display:block; width:100%; border:0; padding:10px 0;} .dtable th{ background:none; padding-top:16px; border-top:1px solid var(--line);} }

.timeline{ position:relative; padding-left:28px;}
.timeline::before{ content:""; position:absolute; left:6px; top:6px; bottom:6px; width:2px; background:var(--line);}
.tl-item{ position:relative; padding:0 0 26px;}
.tl-item::before{ content:""; position:absolute; left:-27px; top:7px; width:12px; height:12px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px var(--surface);}
.tl-item .y{ font-family:var(--en); font-weight:800; color:var(--brand); font-size:15px;}
.tl-item p{ margin:4px 0 0; font-size:14.5px; color:var(--steel);}

.feats{ display:grid; grid-template-columns:1fr; gap:2px; background:var(--line);}
@media(min-width:760px){ .feats{ grid-template-columns:repeat(3,1fr);} }
.feat{ background:var(--paper); padding:34px 28px;}
.feat .gn{ font-family:var(--en); font-weight:800; font-size:54px; color:var(--brand); opacity:.2; line-height:1;}
.feat h4{ font-family:var(--serif); font-weight:600; font-size:19px; margin:10px 0 10px;}
.feat p{ margin:0; font-size:14px; color:var(--steel); line-height:2;}

.alt{ display:grid; grid-template-columns:1fr; gap:24px; align-items:center;}
@media(min-width:820px){ .alt{ grid-template-columns:1.05fr .95fr; gap:6%;} }
.alt .fig{ position:relative;} .alt .fig .duo{ height:clamp(240px,32vw,360px); box-shadow:0 24px 60px rgba(19,36,73,.14);}
.alt .bignum{ position:absolute; top:-8%; left:-2%; font-family:var(--en); font-weight:800; font-size:clamp(80px,12vw,160px); color:var(--brand); opacity:.14; line-height:.8;}
.alt h3{ font-family:var(--serif); font-weight:600; font-size:clamp(20px,2.6vw,28px); margin:6px 0 16px;}
.alt p{ margin:0 0 22px; font-size:16.5px; color:var(--steel); line-height:2.15;}

.treatment{ background:var(--surface); padding:clamp(70px,10vw,120px) 0;}
.tboard{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:14px; padding:clamp(30px,5vw,54px); box-shadow:0 30px 70px rgba(19,36,73,.08);}
.tboard::before{ content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--spark);}
.tboard .thead{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px 44px; padding-bottom:30px; border-bottom:1px solid var(--line); margin-bottom:30px;}
.tboard .pay{ flex:0 0 auto;}
.tboard .pay .big{ font-family:var(--en); font-weight:800; font-size:clamp(42px,8vw,70px); line-height:1; color:var(--spark); white-space:nowrap;}
.tboard .pay .big small{ font-family:var(--sans); font-weight:700; font-size:20px; color:var(--navy-900); margin-left:4px;}
.tboard .pay .cap{ font-size:13px; color:var(--steel); margin-top:8px; letter-spacing:.04em;}
.tboard .thead .lead{ margin:0; font-size:15px; color:var(--steel); line-height:2; max-width:26em;}
.blist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:14px 34px;}
@media(min-width:620px){ .blist{ grid-template-columns:1fr 1fr;} }
.blist li{ position:relative; padding-left:30px; font-size:15px; font-weight:600; color:var(--navy-900); letter-spacing:.02em;}
.blist li::before{ content:""; position:absolute; left:4px; top:8px; width:9px; height:9px; border-right:2px solid var(--brand); border-bottom:2px solid var(--brand); transform:rotate(45deg);}

.lsec{ padding:clamp(70px,10vw,130px) 0; background:var(--paper); position:relative; overflow:hidden;}
.lsec.alt-bg{ background:var(--surface);}
.lsec .lead{ max-width:34em; color:var(--steel); font-size:18.5px; line-height:2.2; margin:0 0 clamp(36px,5vw,56px);}
.lsec .bodytext{ color:var(--steel); font-size:18px; line-height:2.25; max-width:40em;}
.lsec .bodytext + .bodytext{ margin-top:20px;}

.sched-note{ margin-top:20px; font-size:14.5px; color:var(--steel); line-height:1.95; max-width:40em;}

.navcards{ display:grid; grid-template-columns:1fr; gap:18px;}
@media(min-width:760px){ .navcards{ grid-template-columns:repeat(3,1fr);} }
.navcard{ display:block; position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:12px; padding:34px 30px; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);}
.navcard:hover{ transform:translateY(-4px); box-shadow:0 22px 52px rgba(19,36,73,.1); border-color:var(--brand-lt);}
.navcard .en{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.16em; color:var(--brand);}
.navcard h3{ font-family:var(--serif); font-weight:600; font-size:19px; letter-spacing:.04em; margin:12px 0 10px; color:var(--navy-900);}
.navcard p{ margin:0 0 20px; font-size:14.5px; color:var(--steel); line-height:2;}
.navcard .go{ display:inline-flex; align-items:center; gap:10px; font-size:13px; font-weight:700; letter-spacing:.08em; color:var(--brand);}
.navcard .go svg{ width:16px; height:9px; stroke:var(--brand); transition:transform .3s var(--ease);}
.navcard:hover .go svg{ transform:translateX(4px);}

.welcome .feat .gn{ color:var(--spark); opacity:.24;}

.subhero.photo.light{ min-height:clamp(600px,90vh,880px); display:flex; align-items:center; padding-top:clamp(120px,15vh,170px); padding-bottom:clamp(50px,7vw,80px);}
.subhero.photo.light .in{ width:100%;}
.subhero.photo.light .lbl{ top:auto; bottom:-5%; right:1%; font-size:clamp(96px,17vw,280px);}
.subhero.photo.light h1{ font-size:clamp(36px,5.8vw,76px); line-height:1.5; letter-spacing:.02em;}
.subhero.photo.light .rule{ height:4px; width:66px; background:var(--spark); margin-top:22px;}

.subhero.photo.light .bg img{ transform:scale(1.16); transform-origin:6% 46%;}
.rh-pill{ display:inline-flex; align-items:center; gap:10px; background:var(--spark); color:#fff; font-weight:800; font-size:12px; letter-spacing:.12em; padding:9px 20px; border-radius:100px; box-shadow:0 12px 30px rgba(224,122,58,.32); margin-bottom:22px;}
.rh-pill .en{ font-family:var(--en); letter-spacing:.16em;}

.subhero .rh-pill + .kicker{ margin-left:22px;}
.rh-tags{ display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}
.rh-tags span{ display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,.78); border:1.5px solid rgba(46,64,153,.32); color:var(--navy-900); font-weight:700; font-size:15.5px; letter-spacing:.02em; padding:13px 26px; border-radius:100px; box-shadow:0 6px 18px rgba(19,36,73,.06); backdrop-filter:blur(4px);}
.rh-tags span::before{ content:""; width:10px; height:10px; border-radius:50%; background:var(--brand); flex:0 0 auto;}

.treatment{ background:linear-gradient(180deg,var(--paper),var(--surface)); padding:clamp(72px,10vw,120px) 0;}
.treatment .sec-head{ text-align:center;}
.treatment .sec-head .lbl{ -webkit-text-stroke-color:rgba(46,64,153,.18);}
.tboard{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:16px; padding:clamp(28px,4vw,44px); box-shadow:0 34px 80px rgba(19,36,73,.09);}
.tboard::before{ content:none;}
.tnums{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:30px;}
@media(min-width:720px){ .tnums{ grid-template-columns:repeat(3,1fr);} }
.tnum{ background:#fff; padding:30px 22px; text-align:center;}
.tnum .k{ font-family:var(--en); font-weight:800; font-size:11px; letter-spacing:.16em; color:var(--brand);}
.tnum .v{ font-family:var(--serif); font-weight:600; font-size:clamp(36px,4.6vw,56px); color:var(--navy-900); line-height:1.05; margin-top:10px; white-space:nowrap;}
.tnum .v em{ font-style:normal; color:var(--spark);}
.tnum .v em.numn{ color:var(--navy-900);}
.tnum .v small{ font-family:var(--sans); font-size:15px; font-weight:700; color:var(--steel); margin-left:3px;}
.tnum .c{ font-size:12.5px; color:var(--steel); margin-top:8px; letter-spacing:.02em;}
.tchips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:12px;}
.tchips li{ display:inline-flex; align-items:center; gap:9px; background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:11px 22px; font-size:15px; font-weight:600; color:var(--navy-900);}
.tchips li::before{ content:""; width:9px; height:9px; border-right:2px solid var(--brand); border-bottom:2px solid var(--brand); transform:rotate(45deg); flex:0 0 auto;}

.welcome .feats{ background:transparent; gap:20px;}
.welcome .feat{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:clamp(30px,3.6vw,44px) clamp(26px,3vw,34px); position:relative; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.welcome .feat::before{ content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);}
.welcome .feat:hover{ transform:translateY(-6px); box-shadow:0 26px 60px rgba(19,36,73,.11);}
.welcome .feat:hover::before{ transform:scaleX(1);}
.welcome .feat .gn{ font-size:clamp(52px,6vw,72px); color:var(--brand); opacity:.85; -webkit-text-stroke:0; line-height:.9;}
.welcome .feat h4{ font-size:clamp(19px,2.2vw,23px); margin:14px 0 12px;}
.welcome .feat p{ font-size:16px; line-height:2.05;}

.jobs{ display:grid; grid-template-columns:1fr; gap:18px;}
@media(min-width:720px){ .jobs{ grid-template-columns:1fr 1fr;} }
.job{ display:flex; gap:22px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:16px; padding:clamp(28px,3.4vw,38px) clamp(26px,3vw,34px); position:relative; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);}
.job:hover{ transform:translateY(-5px); box-shadow:0 24px 56px rgba(19,36,73,.1); border-color:var(--brand-lt);}
.job .no{ font-family:var(--en); font-weight:800; font-size:clamp(38px,4vw,50px); color:var(--brand); opacity:.2; line-height:.9; flex:0 0 auto;}
.job .jb h4{ font-family:var(--serif); font-weight:600; font-size:clamp(19px,2.2vw,22px); margin:0 0 12px; color:var(--navy-900); letter-spacing:.03em;}
.job .jb p{ margin:0; font-size:15.5px; color:var(--steel); line-height:2.05;}

.daytl{ margin-top:clamp(32px,4vw,52px);}
.daytl-track{ display:grid; grid-template-columns:1fr; gap:30px 0; padding:8px 2px 4px;}
.dtl{ position:relative; min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 6px;}

@media(min-width:768px){
  .daytl-track{ grid-template-columns:repeat(5,1fr); gap:clamp(50px,5vw,66px) 0;}
  .dtl:nth-child(1){grid-area:1/1;} .dtl:nth-child(2){grid-area:1/2;} .dtl:nth-child(3){grid-area:1/3;} .dtl:nth-child(4){grid-area:1/4;} .dtl:nth-child(5){grid-area:1/5;}
  .dtl:nth-child(6){grid-area:2/5;} .dtl:nth-child(7){grid-area:2/4;} .dtl:nth-child(8){grid-area:2/3;} .dtl:nth-child(9){grid-area:2/2;}
  .dtl::before{ content:""; position:absolute; top:33px; height:2px; background:var(--line); z-index:0;}
  .dtl:nth-child(1)::before,.dtl:nth-child(2)::before,.dtl:nth-child(3)::before,.dtl:nth-child(4)::before{ left:50%; width:100%;}
  .dtl:nth-child(6)::before,.dtl:nth-child(7)::before,.dtl:nth-child(8)::before{ right:50%; width:100%;}
  .dtl:nth-child(5)::after{ content:""; position:absolute; top:33px; left:50%; right:6%; height:calc(100% + clamp(50px,5vw,66px)); border:2px solid var(--line); border-left:0; border-radius:0 12px 12px 0; z-index:0;}
}

@media(max-width:767px){
  .daytl-track{ max-width:430px; margin:0 auto; gap:22px 0;}
  .dtl{ display:grid; grid-template-columns:66px 1fr; align-items:center; column-gap:18px; row-gap:2px; text-align:left; padding:0;}
  .dtl .ic{ grid-row:1 / span 2;}
  .dtl .tm{ grid-column:2; grid-row:1; margin-top:0; align-self:end;}
  .dtl .lb{ grid-column:2; grid-row:2; margin-top:0; align-self:start;}
}
.dtl .ic{ position:relative; z-index:1; width:66px; height:66px; border-radius:50%; background:#fff; border:2px solid var(--brand); display:grid; place-items:center; box-shadow:0 10px 24px rgba(19,36,73,.09); transition:transform .3s var(--ease);}
.dtl .ic svg{ width:27px; height:27px; stroke:var(--brand); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.dtl.brk .ic{ border-color:var(--spark);} .dtl.brk .ic svg{ stroke:var(--spark);}
.dtl:hover .ic{ transform:translateY(-4px);}
.dtl .tm{ font-family:var(--en); font-weight:800; font-size:20px; color:var(--navy-900); margin-top:16px; letter-spacing:.01em;}
.dtl .lb{ font-size:15px; color:var(--navy-900); font-weight:600; margin-top:7px; line-height:1.5;}
.dtl .du{ display:inline-block; font-size:11px; font-weight:700; color:var(--spark); margin-top:5px; letter-spacing:.04em;}
.daytl-legend{ display:flex; flex-wrap:wrap; gap:22px; margin-top:16px; font-size:12px; color:var(--steel);}
.daytl-legend i{ display:inline-flex; align-items:center; gap:8px;}
.daytl-legend i::before{ content:""; width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid var(--brand);}
.daytl-legend i.brk::before{ border-color:var(--spark);}

.lsec .alt .fig .duo{ height:clamp(300px,40vw,460px);}
.lsec .alt .bignum{ font-size:clamp(96px,13vw,180px);}

.msg-alt h2{ font-family:var(--serif); font-weight:600; font-size:clamp(24px,3.2vw,38px); line-height:1.55; letter-spacing:.04em; margin:16px 0 24px; color:var(--navy-900);}
.msg-alt .kicker{ margin-bottom:0;}

@keyframes hUp{ from{opacity:0; transform:translateY(115%);} to{opacity:1; transform:none;} }
@keyframes hFade{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }
@keyframes hZoom{ from{transform:scale(1.24);} to{transform:scale(1.16);} }
.subhero h1 .ln{ display:block; overflow:hidden;}
.subhero h1 .ln i{ display:block; font-style:normal;}
.subhero.go .rh-pill{ animation:hFade .7s .05s var(--ease) backwards;}
.subhero.go .kicker{ animation:hFade .7s .16s var(--ease) backwards;}
.subhero.go h1 .ln i{ transform:translateY(115%); animation:hUp .95s var(--ease) forwards;}
.subhero.go h1 .ln:nth-child(1) i{ animation-delay:.24s;}
.subhero.go h1 .ln:nth-child(2) i{ animation-delay:.37s;}
.subhero.go .rule{ animation:hFade .7s .62s var(--ease) backwards;}
.subhero.go .sub{ animation:hFade .8s .72s var(--ease) backwards;}
.subhero.go .rh-tags{ animation:hFade .8s .86s var(--ease) backwards;}
.subhero.go .crumb{ animation:hFade .8s .98s var(--ease) backwards;}
.subhero.go .bg img{ animation:hZoom 6.5s var(--ease) forwards;}
@media(prefers-reduced-motion:reduce){
  .subhero.go .rh-pill,.subhero.go .kicker,.subhero.go .rule,.subhero.go .sub,.subhero.go .rh-tags,.subhero.go .crumb,.subhero.go h1 .ln i,.subhero.go .bg img{ animation:none!important;}
  .subhero.go h1 .ln i{ transform:none!important;}
}

.subhero.photo.light::after{ background:linear-gradient(100deg,var(--surface) 0%,rgba(242,246,253,.93) 46%,rgba(242,246,253,.62) 72%,rgba(242,246,253,.14) 100%);}
.subhero.photo.light .slash{ position:absolute; z-index:1; left:-4%; bottom:14%; width:56%; height:3px; background:linear-gradient(90deg,transparent,var(--spark) 45%,var(--spark)); transform:rotate(-7deg); transform-origin:left center; opacity:.85; pointer-events:none;}
@media(max-width:720px){ .subhero.photo.light .slash{ display:none;} }

.declare{ position:relative; overflow:hidden; background:var(--navy-950); color:#fff; padding:clamp(96px,15vw,190px) 0; text-align:center;}
.declare .bgph{ position:absolute; inset:0; z-index:0;}
.declare .bgph img{ width:100%; height:100%; object-fit:cover; opacity:.22; filter:saturate(.7) contrast(1.05);}
.declare::after{ content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(120% 92% at 50% 38%,rgba(12,24,52,.5),rgba(12,24,52,.92));}
.declare .wm{ position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); font-family:var(--en); font-weight:800; font-size:27vw; line-height:1; color:rgba(255,255,255,.045); letter-spacing:.02em; pointer-events:none; white-space:nowrap;}
.declare .in{ position:relative; z-index:2; padding:0 24px;}
.declare .dk{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.3em; color:var(--spark);}
.declare h2{ font-family:var(--serif); font-weight:600; font-size:clamp(30px,6vw,66px); line-height:1.42; letter-spacing:.04em; margin:26px 0 0;}
.declare h2 em{ font-style:normal; color:var(--spark);}
.declare p{ margin:30px auto 0; max-width:32em; font-size:clamp(16px,1.7vw,18.5px); line-height:2.25; color:rgba(255,255,255,.88);}

.voice{ display:grid; grid-template-columns:1fr; gap:22px;}
@media(min-width:760px){ .voice{ grid-template-columns:1fr 1fr;} }
.voice-card{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:16px; padding:clamp(30px,3.4vw,40px); transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.voice-card:hover{ transform:translateY(-5px); box-shadow:0 24px 56px rgba(19,36,73,.1);}
.voice-card::before{ content:"\201C"; position:absolute; right:24px; top:8px; font-family:var(--serif); font-size:92px; color:var(--brand); opacity:.16; line-height:1;}
.voice-card .vh{ margin:0 0 16px; font-family:var(--serif); font-size:clamp(19px,1.5vw,22px); line-height:1.5; color:var(--navy-900); font-weight:600; position:relative;}
.voice-fig{ position:relative; z-index:1; aspect-ratio:16/10; margin:0 0 22px; border-radius:12px; background:#fff; border:1px solid var(--line); overflow:hidden;}
.voice-fig img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block;}
.voice-fig span{ position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:0 16px; font-size:13px; letter-spacing:.04em; color:var(--steel);}
.voice-card [contenteditable]{ outline:none; border-radius:4px; transition:box-shadow .2s;}
.voice-card [contenteditable]:hover{ box-shadow:0 0 0 1px var(--line);}
.voice-card [contenteditable]:focus{ box-shadow:0 0 0 2px var(--brand);}
.voice-card .q{ margin:0 0 22px; font-size:17px; line-height:2.15; color:var(--navy-900); position:relative;}
.voice-who{ display:flex; align-items:center; gap:14px;}
.voice-who .mono{ width:50px; height:50px; border-radius:50%; background:var(--surface); color:var(--brand); display:grid; place-items:center; font-family:var(--en); font-weight:800; font-size:18px; flex:0 0 auto; border:1.5px solid var(--line);}
.voice-who b{ display:block; font-size:14px; color:var(--navy-900);} .voice-who span{ font-size:12px; color:var(--steel);}

.grain::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.32; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

.reveal.d4{ transition-delay:.48s;} .reveal.d5{ transition-delay:.6s;}

.emph{ position:relative; overflow:hidden; color:#fff; padding:clamp(96px,13vw,180px) 0;}
.emph .bgph{ position:absolute; inset:0; z-index:0;}
.emph .bgph img{ width:100%; height:100%; object-fit:cover; filter:saturate(.9) contrast(1.04);}
.emph::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(115deg,rgba(30,49,122,.95),rgba(46,64,153,.84) 46%,rgba(74,99,180,.62));}
.emph .in{ position:relative; z-index:2;}
.emph .k{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.28em; color:#fff;}
.emph h3{ font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.8vw,48px); line-height:1.5; letter-spacing:.04em; margin:18px 0 26px; max-width:19em;}
.emph .rule{ background:var(--spark); width:56px; height:4px; margin:0 0 26px;}
.emph p{ font-size:clamp(16.5px,1.7vw,19px); line-height:2.25; color:rgba(255,255,255,.94); max-width:34em; margin:0;}

.lsec .bodytext,.lsec .lead,.alt p,.job .jb p,.feat p,.navcard p,.voice-card .q,.msg-alt .bodytext{
  font-weight:600; letter-spacing:.015em; color:#3f4859;}
.emph p{ font-weight:600; letter-spacing:.015em;}
.tnum .c,.sched-note{ letter-spacing:.015em;}
.subhero.photo.light .sub{ font-weight:600; color:#3f4859; letter-spacing:.015em;}

.steps{ position:relative; display:grid; grid-template-columns:1fr; gap:18px;}
@media(min-width:880px){ .steps{ grid-template-columns:repeat(4,1fr); gap:24px;} }
.step{ position:relative; background:#fff; border:1px solid var(--line); border-radius:16px; padding:clamp(30px,3.2vw,40px) clamp(24px,2.6vw,32px); overflow:hidden; transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.step:hover{ transform:translateY(-6px); box-shadow:0 26px 60px rgba(19,36,73,.11); border-color:var(--brand-lt);}
.step .stn{ position:absolute; top:12px; right:16px; font-family:var(--en); font-weight:800; font-size:clamp(52px,5.4vw,70px); line-height:.9; color:var(--brand); opacity:.14;}
.step .stno{ font-family:var(--en); font-weight:800; font-size:12px; letter-spacing:.18em; color:var(--brand);}
.step h4{ font-family:var(--serif); font-weight:600; font-size:clamp(19px,2.1vw,22px); letter-spacing:.03em; margin:12px 0; color:var(--navy-900);}
.step p{ margin:0; font-size:15.5px; line-height:2.05; color:#3f4859; font-weight:600; letter-spacing:.015em;}
.step.goal{ border-color:rgba(224,122,58,.5);}
.step.goal::before{ content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--spark);}
.step.goal .stn,.step.goal .stno{ color:var(--spark);}
@media(min-width:880px){ .step:not(:last-child)::after{ content:""; position:absolute; right:-16px; top:52%; width:18px; height:2px; background:var(--brand-lt); z-index:2;} }

.subhero .lead-hero{ margin-top:18px; font-size:17px; font-weight:600; color:#3f4859; line-height:2.05; letter-spacing:.015em; max-width:none;}
.subhero h1{ line-height:1.5;}
.subhero .crumb a:hover{ color:var(--brand);}

.subhero.pic{ background:var(--navy-900); min-height:clamp(320px,40vw,440px); display:flex; align-items:center;}
.subhero.pic .bg{ position:absolute; inset:0; z-index:0; overflow:hidden;}
.subhero.pic .bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(.96) contrast(1.04) brightness(1.03);}
.subhero.pic::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(100deg,var(--surface) 0%,rgba(242,246,253,.9) 40%,rgba(242,246,253,.5) 68%,rgba(242,246,253,.14) 100%);}
.subhero.pic .in{ position:relative; z-index:2;}
.subhero.pic .lbl{ -webkit-text-stroke-color:rgba(46,64,153,.13);}
@media(max-width:720px){ .subhero.pic::after{ background:linear-gradient(180deg,rgba(242,246,253,.92),rgba(242,246,253,.74));} }

.hdr-inner{ max-width:none; padding:0 clamp(24px,6vw,48px);}
.subhero{ padding-left:0; padding-right:0;}
.subhero .in{ width:100%; max-width:1220px; margin:0 auto; padding-left:clamp(24px,6vw,48px); padding-right:clamp(24px,6vw,48px);}
.lblock{ padding:clamp(54px,7vw,92px) 0; background:var(--paper);}
.lblock.tint{ background:var(--surface);}
.lgrid{ display:grid; grid-template-columns:1fr; gap:22px;}
@media(min-width:900px){ .lgrid{ grid-template-columns:1fr 1fr; gap:min(6.5%,80px); align-items:start;} }

.lh2n{ display:block; font-family:var(--en); font-weight:800; font-size:clamp(32px,3.6vw,50px); line-height:.9; color:var(--brand); opacity:.9;}
.lh2t{ font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.4vw,40px); line-height:1.5; letter-spacing:.04em; color:var(--navy-900); margin:0;}
.lgrid-b{ min-width:0;}
.lbody{ color:#3f4859; font-weight:600; font-size:17px; line-height:2.2; letter-spacing:.015em; margin:0;}
.lbody + .lbody{ margin-top:18px;}
.lead-p{ color:#3f4859; font-weight:600; font-size:17.5px; line-height:2.2; letter-spacing:.015em; max-width:none; margin:0 0 clamp(30px,4vw,44px);}

.intro-center{ font-family:var(--serif); font-weight:600; text-align:center; color:var(--navy-900); font-size:clamp(18px,2.15vw,27px); line-height:2.05; letter-spacing:.06em; max-width:none; margin:0 auto;}
.intro-center .rnote{ display:block; text-align:center; margin:16px auto 0;}
.rlist{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:12px;}
.rlist li{ position:relative; padding:15px 20px 15px 46px; background:#fff; border:1px solid var(--line); border-radius:10px; font-weight:600; color:var(--navy-900); letter-spacing:.02em; line-height:1.9;}
.lblock.tint .rlist li{ background:var(--paper);}

.rlist li::before{ content:""; position:absolute; left:21px; top:19px; width:5px; height:10px; border-right:2px solid var(--brand); border-bottom:2px solid var(--brand); transform:rotate(45deg);}
.pointbox{ margin-top:24px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:24px 28px; color:var(--navy-900); font-weight:600; line-height:2.05;}
.pointbox b{ color:var(--spark); margin-right:6px;}
.lblock .dtable{ width:100%;}
.rnote{ color:var(--steel); font-size:12.5px; font-weight:600; margin-left:6px;}
.linkrow{ margin:26px 0 0; display:flex; flex-wrap:wrap; gap:12px 26px;}
.linkrow a{ color:var(--brand); font-weight:700; font-size:15px; letter-spacing:.02em;}
.linkrow a:hover{ text-decoration:underline; text-underline-offset:6px;}

.lfig{ margin-top:26px; border-radius:12px; overflow:hidden; box-shadow:0 24px 58px rgba(19,36,73,.14);}

@media(max-width:600px){ .lfig{ margin-left:0; margin-right:0;} }
.lfig img{ width:100%; height:clamp(240px,30vw,380px); object-fit:cover; filter:saturate(.94) contrast(1.05); display:block;}
.lfig figcaption{ background:#fff; color:var(--steel); font-size:12.5px; font-weight:600; letter-spacing:.04em; padding:11px 18px; border:1px solid var(--line); border-top:0;}

.lmap{ margin-top:24px; border-radius:12px; overflow:hidden; box-shadow:0 20px 50px rgba(19,36,73,.12); border:1px solid var(--line);}
.lmap iframe{ display:block; width:100%; height:clamp(260px,32vw,360px); border:0;}

.imgph{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:var(--mist); border:1px dashed var(--steel-lt); border-radius:12px; color:var(--steel); font-size:13px; font-weight:600; letter-spacing:.04em; min-height:180px; text-align:center; padding:24px; margin-top:24px;}
.lblock.tint .imgph{ background:#fff;}
.imgph .cam{ font-size:28px; opacity:.5;}

.cards{ display:grid; grid-template-columns:1fr; gap:18px; margin-top:8px;}
@media(min-width:620px){ .cards{ grid-template-columns:1fr 1fr;} }
.card{ background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.card:hover{ transform:translateY(-4px); box-shadow:0 22px 50px rgba(19,36,73,.1);}
.card:hover .cpic img{ transform:scale(1.05);}

.card .cpic{ aspect-ratio:4/3; overflow:hidden;}
.card .cpic img{ width:100%; height:100%; object-fit:cover; filter:saturate(.94) contrast(1.05); transition:transform 1s var(--ease);}
.card .cbody{ padding:22px 24px;}
.card .cbody h3{ font-family:var(--serif); font-weight:600; font-size:19px; margin:0 0 10px; color:var(--navy-900);}
.card .cbody p{ margin:0; font-size:14.5px; color:#3f4859; font-weight:600; line-height:2; letter-spacing:.015em;}

.faq{ border-top:1px solid var(--line);}
.faq-item{ border-bottom:1px solid var(--line);}
.faq-q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:23px 48px 23px 40px; position:relative; font-family:var(--sans); font-weight:700; font-size:16.5px; color:var(--navy-900); letter-spacing:.03em; line-height:1.7;}

.faq-q .qm{ position:absolute; left:0; top:23px; font-family:var(--en); font-weight:800; color:var(--brand); font-size:18px; line-height:1.7;}
.faq-q .pm{ position:absolute; right:8px; top:34px; width:14px; height:14px; transition:.3s var(--ease);}
.faq-q .pm::before,.faq-q .pm::after{ content:""; position:absolute; background:var(--brand); border-radius:2px;}
.faq-q .pm::before{ left:6px; top:0; width:2px; height:14px;} .faq-q .pm::after{ left:0; top:6px; width:14px; height:2px;}
.faq-item.open .faq-q .pm{ transform:rotate(45deg);}
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
.faq-a .inner{ padding:0 40px 26px; color:#3f4859; font-weight:600; font-size:16px; line-height:2.1; letter-spacing:.015em;}

.lblock{ position:relative; overflow:hidden;}
.lblock > .wrap{ position:relative; z-index:1;}
.lblock + .lblock{ border-top:1px solid var(--line);}

.lwm{ position:absolute; top:clamp(-14px,-1.4vw,-4px); right:clamp(-6px,.6vw,22px); font-family:var(--en); font-weight:800; font-size:clamp(110px,19vw,280px); line-height:.78; color:var(--brand); opacity:.045; z-index:0; pointer-events:none; user-select:none;}
.qband{ background:var(--surface); padding:clamp(52px,8vw,96px) 0; position:relative; overflow:hidden;}
.qband .wrap{ position:relative; z-index:1;}
.qband .qt{ font-family:var(--serif); font-weight:600; text-align:center; color:var(--navy-900); font-size:clamp(21px,3vw,38px); line-height:1.95; letter-spacing:.04em; max-width:20em; margin:0 auto; position:relative;}

.qband .qm{ position:absolute; top:clamp(-16px,-1.4vw,4px); left:50%; transform:translateX(-50%); font-family:var(--en); font-size:clamp(120px,18vw,240px); color:var(--brand); opacity:.06; line-height:1; pointer-events:none; user-select:none;}
@media(max-width:600px){ .lead-hero br,.intro-center br,.lbody br{ display:none;} }

.lsplit{ display:grid; grid-template-columns:1fr; gap:22px;}
.lsplit-t{ min-width:0; order:2;}
.lsplit-m{ order:1;}

.lsplit-m .lfig, .lsplit-m .lmap, .lsplit-m .imgph{ margin:0;}
.lsplit-m > * + *{ margin-top:18px;}

.lsplit-t .lgrid-h{ margin-bottom:clamp(16px,1.8vw,24px);}
@media(min-width:900px){
  .lsplit{ grid-template-columns:1fr 1fr; gap:min(6.5%,80px); align-items:center;}
  .lsplit-t{ order:1;} .lsplit-m{ order:2;}
  .lsplit.rev .lsplit-t{ order:2;} .lsplit.rev .lsplit-m{ order:1;}
  .lsplit-m .lfig img{ height:clamp(260px,34vw,460px);}

  .lsplit-m:has(> * + *) .lfig img,
  .lsplit-m:has(> * + *) .lmap iframe{ height:clamp(220px,24vw,300px);}
}
.lstack .lgrid-h{ margin-bottom:clamp(22px,2.6vw,32px);}
.lstack .lgrid-b{ margin-top:0;}

.lstack .lbody, .lstack .lead-p{ max-width:44em;}

.lfig-svg{ box-shadow:none; border:1px solid var(--line); background:#fff;}
.lfig-svg svg{ display:block; width:100%; height:auto;}
.lblock.tint .lfig-svg{ background:var(--paper);}

.gtypes{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:24px;}
@media(min-width:720px){ .gtypes{ grid-template-columns:repeat(4,1fr);} }
.gtype{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px 12px; text-align:center;}
.lblock.tint .gtype{ background:var(--paper);}
.gtype b{ font-family:var(--serif); font-size:17px; color:var(--navy-900); font-weight:600; letter-spacing:.04em;}

.axis{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.axis span{ background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:9px 18px; font-size:15px; font-weight:700; color:var(--brand); letter-spacing:.02em;}
.lblock.tint .axis span{ background:var(--paper);}

.flow{ display:grid; grid-template-columns:1fr; gap:10px; margin-top:24px;}
@media(min-width:620px){ .flow{ grid-auto-flow:column; grid-auto-columns:1fr;} }

.flow .fstep{ position:relative; background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 12px; display:flex; align-items:center; justify-content:center; text-align:center; font-weight:700; color:var(--navy-900); font-size:15.5px; line-height:1.75; letter-spacing:.02em;}

.vcards{ display:grid; grid-template-columns:1fr; gap:12px; margin:26px 0 34px;}
.vcard{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:22px 24px;}
.lblock.tint .vcard{ background:var(--paper);}
.vcard b{ font-family:var(--serif); font-weight:600; font-size:17px; line-height:1.9; color:var(--navy-900); letter-spacing:.03em;}
.lblock.tint .flow .fstep{ background:var(--paper);}
@media(min-width:620px){ .flow .fstep + .fstep::before{ content:""; position:absolute; left:-9px; top:50%; width:8px; height:8px; border-top:2px solid var(--brand); border-right:2px solid var(--brand); transform:translateY(-50%) rotate(45deg);} }
@media(max-width:619px){ .flow .fstep + .fstep::before{ content:""; position:absolute; left:50%; top:-9px; width:8px; height:8px; border-right:2px solid var(--brand); border-bottom:2px solid var(--brand); transform:translateX(-50%) rotate(45deg);} }

@media(min-width:900px){.page-work .rlist{ grid-template-columns:repeat(2,1fr); gap:14px 24px;}
}
.page-work .pointbox{ margin-top:32px;}

@media(min-width:900px){.page-information-locations .lsplit{ align-items:start;}.page-information-locations .lsplit-t{ padding-top:14px;}
}

:root{

  --dyn-bg:        var(--background-color, #ffffff);
  --dyn-surface:   var(--temporary-color, #f4f4f2);
  --dyn-text:      var(--text-color, #222222);
  --dyn-heading:   var(--text-color, #111111);
  --dyn-muted:     var(--sub-color, #8a8a8a);
  --dyn-border:    var(--sub-color, #dddddd);
  --dyn-accent:    var(--main-color, #1e3a5f);
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f));
  --dyn-on-accent: #ffffff;

  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  --dyn-radius: 6px;

  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }

.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }

[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }

.pagination_num, .pagination_prev, .pagination_next{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current{ background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }

[class*="_pagenation"] a{ border-color:var(--dyn-accent) !important; color:var(--dyn-text) !important; }
[class*="_pagenation"] span.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
[class*="_pagenation"] a:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }

[class*="_post_list"], [class*="_post_wrap"]{ }

[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }

[class*="_post_wrap"]{

  display:flex !important; flex-direction:column;
  margin:0 !important;
  width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_wrap"] > a{ display:flex; flex-direction:column; flex:1 1 auto; color:inherit; }

[class*="_post_img"]{ width:100%; display:block; border-radius:0; aspect-ratio:16/10; overflow:hidden; }
[class*="_post_img"] img{ width:100%; height:100%; object-fit:cover; display:block; }

[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; flex-wrap:wrap; justify-content:flex-start !important; gap:10px; align-items:center; }
[class*="_post_status"]:has([class*="_title-excerpt"]){ display:block !important; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; flex:1 1 auto; }
[class*="_post_status"]:has([class*="_title-excerpt"]) [class*="_title-excerpt"]{ padding:10px 0 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; font-weight:700 !important; line-height:1.5; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }

[class*="_post_category"]:not([class*="_sidebar"]), [class*="_post_status"] > span:last-child{

  width:auto; max-width:none !important;
  background:var(--dyn-bg) !important; border:1px solid var(--dyn-accent) !important;
  border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent) !important;
}
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }

[class*="_section"]:has([class*="_post_list"]) > h2,
[class*="_section"] > h2.f_meiryo{ display:none !important; }

[class*="_post_list"]::after{ content:none !important; display:none !important; }

[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }

[class*="_sidebar"] h3{ color:var(--dyn-heading) !important; padding-left:0 !important; padding-right:0 !important; }
[class*="_sidebar_post_title"], .recent_post_title{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }

.recent_post_title{ background:transparent !important; padding-left:0 !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }

[class*="_sidebar"] ul li, .recent_posts_wrap ul li{ border-bottom-color:var(--dyn-border) !important; }

[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }

[class*="category_post_count"] li{ border-left:0 !important; border-right:0 !important; }

[class*="category_post_count"] li a{ display:flex; justify-content:space-between; align-items:center; gap:8px; padding-left:0 !important; padding-right:0 !important; }

.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }

.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }

[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }

[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }

.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }

.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }

.contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }

.contact_submit input[name="back"]{ background:transparent !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; }

.contact_submit input[disabled]{ opacity:.5; cursor:not-allowed; }

.label_file_upload{ display:block; width:100%; padding:12px 14px; cursor:pointer;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
.label_file_upload button{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; pointer-events:none; }
.label_file_upload span, #file-chosen, [id$="filechosen"]{ color:var(--dyn-muted) !important; }

/* 応募/問い合わせフォームのファイル添付(input[type=file])のネイティブ「ファイルを選択」ボタンを整形。
   箱(薄青塗り・54px)は上の入力欄ルールで付くが、素ボタンが入力欄のline-height:32px＋padding14pxを継承して
   背が高くなり箱からはみ出す／上寄りになる。align-items:center はファイル入力の内部レイアウトに効かないため、
   入力欄の上下paddingを左右対称の9pxにしてボタン(実測高34px)を天地中央へ(9+34+9=52=箱内寸)。
   詳細度は .contact_section 前置で入力欄ルール(0,3,2)に後勝ち。指示 2026-07-22 d.sera（実機/form/recruitで実測確認） */
.contact_section [class*="_form_wrap"] dd input[type="file"]{
  display:block !important; line-height:normal !important; padding:9px 16px !important; }
.contact_section [class*="_form_wrap"] dd input[type="file"]::file-selector-button{
  line-height:1.3 !important; padding:6px 16px !important; margin-right:14px !important;
  border:1px solid var(--dyn-accent) !important; border-radius:var(--dyn-radius) !important;
  background:#fff !important; color:var(--dyn-accent) !important;
  font-weight:700 !important; font-size:14px !important; cursor:pointer !important; transition:.2s !important; }
.contact_section [class*="_form_wrap"] dd input[type="file"]::file-selector-button:hover{ background:var(--dyn-accent) !important; color:#fff !important; }

.des{ color:var(--dyn-muted) !important; }

.attention{ color:var(--dyn-muted) !important; }

[class*="_form_wrap"] dd input.zip:not([type="checkbox"]):not([type="radio"]){ width:9em !important; max-width:9em !important; display:inline-block; margin-right:8px; }

.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }

[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }

.formWrapbg, .formWrap, .form, [class*="formSec"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.formWrap{ max-width:720px; margin:0 auto; }
.formBox{ margin-bottom:20px; }
.formBox dt, .formBox label{ color:var(--dyn-text) !important; }
.formBox dd input:not([type="checkbox"]):not([type="radio"]),
.formBox dd select,
.formWrap input[type="text"], .formWrap input[type="email"], .formWrap input[type="tel"]{
  width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important;
  min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formBox dd textarea, .formWrap textarea{
  width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formWrap input[type="checkbox"], .formWrap input[type="radio"]{
  width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important;
  vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important;
}

.req, .formBox .req{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important;
  white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important;
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.wpcf7-not-valid-tip, .wpcf7-response-output{ color:var(--dyn-accent-2) !important; }

input.wpcf7-submit, .formWrap button[type="submit"]{
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
  border:none !important; border-radius:var(--dyn-radius) !important;
  min-height:54px !important; padding:14px 28px !important; font-size:16px !important; cursor:pointer;
}

[class*="_section"] h2, [class*="_section"] h3{
  border-radius:0 !important; background:transparent !important; border:none !important; text-align:inherit !important;
}

.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }

[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }

[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }

[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }

.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }

.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }

.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }

.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }

.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }

mark, .mark{
  background-color:transparent !important; color:inherit !important;
  padding:0 !important; border-radius:0 !important;
}

a:hover{ color:inherit; }

a[href^="tel:"]{ white-space:nowrap; }

:root{
  --fixed-header-h: 76px;
}

html:not(.js) .reveal,
html:not(.js) .mask,
html:not(.js) .hero .kicker,
html:not(.js) .hero .sub,
html:not(.js) .hero h1 .ln i,
html:not(.js) .hero .shot{ opacity:1 !important; transform:none !important; clip-path:none !important; }
html:not(.js) .hero .rule{ width:46px !important; }
html:not(.js) #loader{ display:none !important; }

[class*="_post_wrap"]{ border-color:#E6EAF2 !important; }
.parts-blog-ex_tag{ border-color:#E6EAF2 !important; }
[class*="_sidebar"] ul li, .recent_posts_wrap ul li{ border-bottom-color:#E6EAF2 !important; }

[class*="_sidebar"] h3{ padding-top:0 !important; padding-bottom:10px !important; }
[class*="_sidebar"] ul li{ margin-top:0 !important; }
[class*="_sidebar_wrap"]:not(.category_post_count) ul li{ padding-top:14px !important; padding-bottom:14px !important; }
[class*="_sidebar_post_title"]{ margin-top:0 !important; margin-bottom:0 !important; }
[class*="category_post_count"] li a{ padding-top:14px !important; padding-bottom:14px !important; }
[class*="_sidebar"] [class*="_sidebar_wrap"]:nth-child(n + 2){ margin-top:34px !important; }
/* ブログ一覧(parts222)の中間幅対策：theme_defaultは本文.parts222_main=780px固定・サイドバー=28.179%で、
   992〜1177pxでは本文+サイドバーがコンテナを満たしspace-betweenの隙間が0になり2カラムが接触する
   （実測: 1110pxで隙間0px）。この帯だけ本文を%化して常に隙間を確保（実測: 992=36/1110=40/1177=43px）。
   1178px以上はtheme_defaultのbase(隙間21px→拡大)へ接続。指示 2026-07-22 d.sera */
@media screen and (min-width:992px) and (max-width:1177px){
  .parts222_main{ max-width:68% !important; }
}
.recent_post_title{ padding-top:0 !important; padding-bottom:10px !important; }
.recent_posts_wrap ul li{ margin-top:0 !important; }
.recent_posts_wrap ul li a{ padding-top:14px !important; padding-bottom:14px !important; }

/* KEEP: トップCVTバナー(RECRUIT/SUSTAINABILITY)のhover時文字色を白固定。
   .cvt-card は<a>要素のためCueZillaテーマのリンクhover色(藍#2E4099)が乗り、hoverで文字が藍に変わっていた。
   テーマ側の高詳細度/!importantに勝つため!important付き・ファイル末尾で後勝ち（指示 2026-07-22 d.sera）。 */
.cvt-card:hover,
.cvt-card:hover .cvt-en,
.cvt-card:hover .cvt-jp,
.cvt-card:hover .cvt-go{ color:#fff !important; }
.cvt-card:hover .cvt-lead{ color:rgba(255,255,255,.86) !important; }

/* CTA「LINEで相談」(.btn-l) は緑地に白文字。<a>要素のためCueZillaテーマのリンクhover色が乗り、hoverで文字が藍に変わっていた→白固定（指示 2026-07-22 d.sera）。 */
.btn-l:hover{ color:#fff !important; }

/* フッターSITE MAPの「お問い合わせ」hoverで他5リンクが左にずれる不具合の修正（実機/form/recruitで実測特定 2026-07-22 d.sera）。
   真因: skinのhoverは padding-left:6px で右シフトするが、.fcol列がshrink-to-fit(中身幅)＋右寄せのため、
   最長リンク=お問い合わせに6px paddingが付くと列全体が広がり、他リンクの左端が左へリフローする
   （短いリンクは最長を超えないので発生せず＝お問い合わせだけ起きる。実測: 他リンクtextLeft 938→932）。
   対策: シフトを padding-left から transform:translateX へ変更＝レイアウト不変(リフロー不可)で全リンク均一に右6px。 */
footer .fcol a:hover{ color:#fff !important; padding-left:0 !important; transform:translateX(6px) !important; text-decoration:none !important; background:transparent !important; }
/* /KEEP */

/* KEEP: プライバシーポリシー(CueZilla動的パーツ privacypolicy-parts_<uniq>)の可読性・階層を整える追補。
   現状はtheme_default＋パーツ自作インラインstyleのみで、本文がコンテナ全幅(約1280px)に広がり法務文書として1行が長く、
   見出し(.item_title)が本文と同じ16px・同色(--text-color)で階層が弱かった。
   対策: ①リード/本文の幅を860pxに制限して行長を抑える ②各項目に区切り線 ③見出しを18px・藍(--main-color)・左罫でメリハリ ④telリンクを藍下線。
   接尾辞非依存の [class*="privacypolicy-parts"] で全インスタンスに適用。パーツ自作CSS(.container配下・3クラス)に勝つよう
   詳細度を.containerスコープに合わせ、色/サイズ/padは!important・ファイル末尾で後勝ち（指示 2026-07-22 d.sera）。 */
[class*="privacypolicy-parts"] .container .about,
[class*="privacypolicy-parts"] .container .content{ max-width:860px; margin-left:auto; margin-right:auto; }
/* 実機パーツは .about に padding: clamp(…,12vw,…) 0 が入り、1900px幅で上下約228pxの巨大空白になる。
   .about は他パーツでも使う汎用クラスなので、必ずパーツクラスでスコープして縦paddingのみ0化（他ページ不干渉）。指示 2026-07-22 d.sera */
[class*="privacypolicy-parts"] .container .about{ padding-top:0 !important; padding-bottom:0 !important; margin-bottom:44px; }
[class*="privacypolicy-parts"] .container .item_wrap{ padding:0 0 26px !important; margin-bottom:26px; border-bottom:1px solid rgba(46,64,153,.12); }
[class*="privacypolicy-parts"] .container .content ul li.item_wrap:last-child{ border-bottom:0; margin-bottom:0; padding-bottom:0 !important; }
[class*="privacypolicy-parts"] .container .item_title{ font-size:18px !important; line-height:1.5; color:var(--main-color,#2E4099) !important; padding-left:14px; border-left:3px solid var(--main-color,#2E4099); margin-bottom:14px; }
[class*="privacypolicy-parts"] .container .item_description{ line-height:1.9; }
[class*="privacypolicy-parts"] .container .item_description a{ color:var(--main-color,#2E4099) !important; text-decoration:underline; text-underline-offset:2px; }
/* /KEEP */