/* 株式会社ファムス — about.miroom.com 風：大きな太い英字・巨大ロゴタイプ・白と墨グレーの交互・（ ）ラベル・黄の丸ボタン */
:root{--ink:#111;--dark:#262626;--dark2:#333;--y:#fdd517;--g:#f3f3f1;--mute:#6b6b6b;--line:#dcdcd8;--w:1180px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Noto Sans JP","Hiragino Sans",sans-serif;color:var(--ink);background:#fff;line-height:1.95;letter-spacing:.04em;font-size:15px;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit}
.container{width:min(var(--w),100% - 48px);margin-inline:auto}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:200}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
section{padding:110px 0}
.dark{background:var(--dark);color:#fff}
.en,.mv-h,.wc-t,.getin,.big-run,.care-t,.ft-big,.page-hd .big,.gn-in b{font-family:"Inter Tight","Noto Sans JP",sans-serif}
.pl{font-size:13px;font-weight:500;letter-spacing:.14em;margin-bottom:30px}
.dark .pl{color:#fff}

/* ---------- header：極小ロゴ＋丸いメニューボタン／全画面メニュー ---------- */
.hd{position:fixed;inset:0 0 auto 0;z-index:90;height:72px;display:flex;align-items:center;justify-content:flex-end;padding:0 28px;pointer-events:none}
.hd>*{pointer-events:auto}
.hd-logo{position:fixed;top:0;left:28px;height:72px;display:flex;align-items:center;z-index:95;font-family:"Inter Tight",sans-serif;font-weight:800;font-size:19px;letter-spacing:.06em;text-decoration:none;color:#fff;mix-blend-mode:difference}
.burger{width:42px;height:42px;border-radius:50%;border:0;background:var(--y);cursor:pointer;display:grid;place-content:center;gap:6px;transition:transform .25s}
.burger:hover{transform:scale(1.08)}
.burger i{display:block;width:18px;height:2px;background:#111;transition:.3s}
.menu-open .burger i:nth-child(1){transform:translateY(4px) rotate(45deg)}.menu-open .burger i:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

#gnav{position:fixed;inset:0;background:var(--dark);color:#fff;z-index:-1;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;overflow:auto;pointer-events:auto}
.menu-open #gnav{opacity:1;visibility:visible}
.gn-in{min-height:100%;display:flex;flex-direction:column;justify-content:center;width:min(980px,100% - 56px);margin:0 auto;padding:110px 0 50px}
.gn-in ol{list-style:none}
.gn-in li{border-bottom:1px solid rgba(255,255,255,.18)}
.gn-in a{display:flex;align-items:baseline;gap:22px;padding:18px 0;text-decoration:none;color:#fff;transition:padding .25s,color .25s}
.gn-in a:hover{padding-left:16px;color:var(--y)}
.gn-no{font-size:12px;color:#aaa;letter-spacing:.1em;width:2em}
.gn-in b{font-size:clamp(34px,6vw,64px);font-weight:700;letter-spacing:-.01em;line-height:1.1}
.gn-in small{font-size:13px;color:#bbb;letter-spacing:.14em}
.gn-foot{margin-top:40px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:#bbb;line-height:1.9}
.gn-foot a{font-family:"Inter Tight";font-weight:700;font-size:22px;color:#fff;text-decoration:none}

/* ---------- hero ---------- */
.mv{padding:150px 0 70px;text-align:center;min-height:100svh;display:flex;align-items:center}
.mv-h{font-size:clamp(54px,10.6vw,168px);font-weight:800;letter-spacing:-.045em;line-height:.98}
.mv-s{margin:26px auto 56px;font-size:13px;line-height:2.1;max-width:34em;letter-spacing:.06em}
.mv .logotype{width:min(380px,62vw);height:auto;margin:0 auto;display:block}
.scrollx{margin-top:56px;font-size:11px;color:var(--mute);letter-spacing:.1em}
.sp{display:none}
@media(max-width:700px){.sp{display:inline}.mv{padding:110px 0 50px}.mv-s{margin-bottom:36px}}

/* ---------- 丸ボタン ---------- */
.lm{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none;color:#fff;margin-top:36px}
.lm i{width:30px;height:30px;border-radius:50%;background:var(--y);color:#111;display:grid;place-items:center;transition:transform .25s}
.lm:hover i{transform:translateX(6px)}.lm.dk{color:#111}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:220px;padding:16px 36px;border-radius:999px;font-size:15px;font-weight:700;letter-spacing:.08em;text-decoration:none;border:2px solid #111;background:#111;color:#fff;transition:.2s;cursor:pointer;font-family:inherit}
.btn:hover{transform:translateY(-2px)}
.btn.y,.btn.n,.btn.o-d{background:var(--y);border-color:var(--y);color:#111}

/* ---------- Company（墨グレー） ---------- */
.stm{font-size:clamp(24px,3.4vw,40px);font-weight:700;line-height:1.6;letter-spacing:.06em;margin-bottom:56px}
.co .stm{text-align:left}
.co-txt{max-width:640px;margin-left:auto}
.co-txt p{font-size:13px;line-height:2.2;color:#d8d8d8;margin-bottom:1.2em}
.co-txt .mini-t{font-size:12px;color:#fff;margin-bottom:.4em;letter-spacing:.14em}
.co .lm{margin-left:auto;display:flex;justify-content:flex-end;max-width:640px}
.co .container{display:flex;flex-direction:column}
.co .lm{align-self:flex-end;max-width:none;margin-right:calc(100% - 640px - 0px);margin-right:0}

/* ---------- Works（白の大カード＋レール） ---------- */
.works-card{padding:0 0 110px;background:var(--dark)}
.wc{background:#fff;border-radius:28px;padding:64px 0 56px;text-align:center;overflow:hidden;margin-top:0}
.wc-t{font-size:clamp(32px,4.6vw,56px);font-weight:700;letter-spacing:-.02em;line-height:1.2}
.wc-s{font-size:11.5px;color:var(--mute);max-width:36em;margin:10px auto 40px;line-height:2}
.rail{overflow:hidden}
.rail-in{display:flex;gap:18px;width:max-content;animation:rail 50s linear infinite}
.rail:hover .rail-in{animation-play-state:paused}
@keyframes rail{to{transform:translateX(-50%)}}
.rail figure{width:300px;flex:none;background:#1b1b1b;border-radius:12px;overflow:hidden;box-shadow:0 12px 26px rgba(0,0,0,.2)}
.rail img{width:100%;aspect-ratio:4/3;object-fit:cover}
.rail figcaption{color:#fff;font-size:11px;padding:10px 12px;display:flex;align-items:center;gap:8px;letter-spacing:.06em;font-family:"Inter Tight"}
.rail figcaption i{width:7px;height:7px;border-radius:50%}
.wc-b{display:flex;justify-content:center;align-items:center;gap:20px;margin:44px 0 0}
.wc-b b{font-family:"Inter Tight";font-size:clamp(26px,4vw,44px);font-weight:700;letter-spacing:-.01em}
.par{font-size:clamp(36px,5vw,64px);font-weight:300;line-height:1}
.wc-link{margin-top:6px}
@media(prefers-reduced-motion:reduce){.rail-in{animation:none}.rail{overflow-x:auto}}

/* ---------- Service（墨グレー・点線の円） ---------- */
.svc{overflow:hidden}
.svc-p{font-size:13px;line-height:2.2;color:#d8d8d8;max-width:640px;margin-left:auto}
.svc .lm{display:flex;justify-content:flex-end}
.big-run{margin:70px 0 30px;overflow:hidden;white-space:nowrap;font-size:clamp(70px,13vw,200px);font-weight:700;letter-spacing:-.04em;line-height:1.1;color:#fff}
.big-run div{display:inline-block;animation:big 45s linear infinite}
@keyframes big{to{transform:translateX(-33.33%)}}
.circles{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px}
.cir{aspect-ratio:1;border:1px dashed rgba(255,255,255,.5);border-radius:50%;margin:0 -4%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10%;transition:background .3s}
.cir:hover{background:rgba(253,213,23,.08);border-color:var(--y)}
.cir small{font-size:12px;color:#aaa;letter-spacing:.1em}
.cir b{font-family:"Inter Tight";font-size:clamp(22px,3vw,40px);font-weight:600;letter-spacing:-.01em;margin:4px 0 6px}
.cir span{font-size:14px;font-weight:700}
.cir em{font-style:normal;font-size:11.5px;color:#bbb;line-height:1.8;margin-top:8px}
@media(max-width:800px){.circles{grid-template-columns:1fr;gap:22px}.cir{margin:0 auto;width:min(86vw,360px)}.svc-p,.co-txt{margin-left:0}}

/* ---------- Careers ---------- */
.care-t{font-size:clamp(34px,6vw,84px);font-weight:600;letter-spacing:-.035em;line-height:1.08;display:flex;flex-direction:column;margin-bottom:40px}
.care-t span:nth-child(2){padding-left:12%}
.care-r{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:end}
.care-r img{aspect-ratio:3/4;object-fit:cover;filter:grayscale(1) contrast(1.1)}
.care-r p{font-size:13px;line-height:2.2;max-width:34em}
@media(max-width:800px){.care-t span:nth-child(2){padding-left:0}.care-r{grid-template-columns:1fr}.care-r img{width:60%}}

/* ---------- Get in touch（墨グレーの大カード） ---------- */
.touch{padding:0 0 90px}
.touch-card{background:#3a3a3a;border-radius:24px;padding:46px 52px;display:grid;grid-template-columns:1.3fr 1fr;gap:36px;align-items:end}
.touch-card .pl{margin-bottom:14px;font-size:12px}
.touch-card h2{font-size:clamp(20px,2.4vw,28px);font-weight:700;line-height:1.6;margin-bottom:12px}
.touch-card p:not(.pl){font-size:12px;color:#cfcfcf;line-height:2}
.touch-card .tel{display:inline-block;margin-top:14px;font-family:"Inter Tight";font-weight:700;font-size:20px;color:#fff;text-decoration:none}
.getin{display:flex;align-items:center;justify-content:flex-end;gap:14px;font-size:clamp(34px,5vw,64px);font-weight:700;letter-spacing:-.03em;color:#fff;text-decoration:none;white-space:nowrap}
.getin i{width:62px;height:34px;border-radius:999px;background:var(--y);color:#111;display:grid;place-items:center;transition:padding .25s}
.getin:hover i{padding-left:14px}
@media(max-width:800px){.touch-card{grid-template-columns:1fr;padding:34px 24px}.getin{justify-content:flex-start;font-size:42px}}

/* ---------- footer ---------- */
.ticker{background:#fff;overflow:hidden;border-bottom:1px solid #eee;border-top:0}
.ticker div{display:flex;gap:46px;width:max-content;animation:rail 40s linear infinite;padding:12px 0}
.ticker span{font-family:"Inter Tight";font-weight:800;font-size:13px;letter-spacing:.01em;white-space:nowrap}
.ft{background:#fff;padding:60px 0 28px}
.ft .logotype{width:min(260px,60vw);height:auto;display:block}
.ft-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-top:40px;flex-wrap:wrap}
.ft-big{font-weight:800;font-size:clamp(22px,3vw,34px);letter-spacing:.12em;line-height:1.3}
.ft-nav{display:flex;gap:30px;flex-wrap:wrap}
.ft-nav a{text-decoration:none;font-family:"Inter Tight";font-weight:700;font-size:13px;display:flex;flex-direction:column;line-height:1.5}
.ft-nav small{font-family:"Noto Sans JP";font-weight:400;font-size:10px;color:#999}
.ft-co{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:36px;flex-wrap:wrap}
.ft-co p{font-size:11px;color:#777;line-height:2}.ft-co small{font-size:10.5px;color:#999}

/* ---------- 下層ページ見出し：巨大な英字＋和文 ---------- */
.page-hd{padding:150px 0 40px}
.page-hd h1{display:flex;flex-direction:column;gap:6px}
.page-hd .big{font-size:clamp(60px,12vw,170px);font-weight:800;letter-spacing:-.045em;line-height:.95}
.page-hd .jp{font-size:15px;font-weight:700;letter-spacing:.2em}

/* ---------- 下層の部品 ---------- */
.bar{display:inline-block;background:#111;color:#fff;font-size:clamp(17px,2.2vw,22px);font-weight:700;padding:4px 16px;letter-spacing:.1em;margin-bottom:26px}
.ttl{font-size:clamp(22px,2.8vw,30px);font-weight:900;letter-spacing:.12em;position:relative;padding-bottom:14px;margin-bottom:32px}
.ttl::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;background:var(--y)}
.ttl.c{text-align:center}.ttl.c::after{left:50%;transform:translateX(-50%)}
.lead{color:var(--mute);line-height:2}
.band{background:var(--g)}
.plist{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.plist .box{background:var(--g);border-radius:24px;padding:38px 42px}
.plist .box:first-child{grid-column:1/-1;background:var(--dark);color:#fff}
.box .no{font-family:"Inter Tight";font-size:20px;font-weight:700;color:var(--y)}
.box h2{font-size:23px;font-weight:700;margin:8px 0 20px;letter-spacing:.1em}
.box ul{list-style:none}.box li{padding:4px 0 4px 18px;font-size:15px;position:relative}
.box li::before{content:"";position:absolute;left:0;top:1.1em;width:8px;height:8px;border-radius:50%;background:var(--y)}
.box:first-child ul{columns:2;column-gap:40px}
.greet{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;align-items:center}
.greet p{font-size:14.5px;margin-bottom:1.2em;color:#333}
.ceo{border-radius:24px;overflow:hidden;background:var(--dark);color:#fff;max-width:420px;justify-self:center}
.ceo img{aspect-ratio:1/1;object-fit:cover;object-position:top}
.ceo div{padding:20px 26px 24px;text-align:center}.ceo b{display:block;font-weight:500;font-size:18px}
.philo{text-align:center}.philo .q{font-size:clamp(20px,2.6vw,28px);letter-spacing:.14em;margin-bottom:28px;font-weight:700}
.philo p{margin-bottom:12px;color:#333}
table.co{width:100%;border-collapse:collapse}
table.co th,table.co td{text-align:left;padding:20px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-weight:400}
table.co th{width:9em;font-size:14px;color:var(--mute)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:64px}
.trio h3{font-size:20px;letter-spacing:.14em;margin-bottom:18px;font-weight:700}
.trio p{padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gal button{border:0;padding:0;background:none;cursor:zoom-in;aspect-ratio:1;overflow:hidden;border-radius:14px}
.gal img{width:100%;height:100%;object-fit:cover;transition:.35s}.gal button:hover img{transform:scale(1.05)}
.lb{position:fixed;inset:0;background:rgba(5,5,5,.92);z-index:300;display:none;align-items:center;justify-content:center;padding:20px}
.lb.on{display:flex}.lb img{max-height:88vh;max-width:94vw;object-fit:contain}
.lb button{position:absolute;color:#fff;background:none;border:0;font-size:34px;cursor:pointer;padding:14px}
.lb .x{top:6px;right:10px}.lb .p{left:6px}.lb .n{right:6px}
table.rq{width:100%;border-collapse:collapse;border-top:2px solid #111}
table.rq th,table.rq td{padding:20px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-weight:400}
table.rq th{width:10em;background:var(--g);font-weight:700}table.rq p+p{margin-top:.8em}
.recruit-lead{max-width:50em;margin-inline:auto}.recruit-lead p{margin-bottom:1.2em;color:#333}
.form{max-width:680px;margin:40px auto 0}
.f{margin-bottom:22px}.f label{display:block;font-size:14px;margin-bottom:6px;font-weight:700}
.f .req{color:#c33;margin-left:4px}
.f input,.f textarea{width:100%;font:inherit;padding:13px 14px;border:1px solid #b9b9b5;border-radius:10px;background:#fff}
.f input:focus,.f textarea:focus{outline:2px solid var(--y);border-color:#111}
.f textarea{min-height:180px;resize:vertical}.f [aria-invalid=true]{border-color:#c33;background:#fff6f6}
.hp{position:absolute;left:-9999px}
.form button.btn{width:100%}
.st{margin-top:16px;text-align:center;font-size:14px}.done{text-align:center;padding:40px 0}
.tel-box{text-align:center;margin-top:48px;padding:28px;background:var(--g);border-radius:20px}
.tel-box a{font-family:"Inter Tight";font-size:30px;font-weight:800;text-decoration:none}
.reveal{opacity:0;transform:translateY(24px);transition:.7s}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){
 section{padding:72px 0}
 .hd{padding:0 18px}.hd-logo{left:18px}
 .plist,.trio{grid-template-columns:1fr}.box:first-child ul{columns:1}.plist .box{padding:28px 24px}
 .greet{grid-template-columns:1fr;gap:32px}.gal{grid-template-columns:repeat(2,1fr)}
 table.rq th,table.co th{display:block;width:auto;border-bottom:0;padding-bottom:4px}
 table.rq td,table.co td{display:block;padding-top:0}table.co th{padding-top:20px}
 .btn{width:100%}.page-hd{padding:110px 0 24px}.works-card{padding-bottom:72px}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.big-run div,.ticker div{animation:none}}

/* 元のロゴ（円マーク）を使用 */
.hd-logo{gap:10px;font-family:"Noto Sans JP",sans-serif;font-size:16px;letter-spacing:.14em;font-weight:700}
.hd-logo img{width:34px;height:34px;filter:invert(1)}
.ft-row{margin-top:28px}
@media(max-width:700px){.hd-logo span{font-size:14px}}

/* ===== v40: 写真を多用 ===== */
.mv{display:block;padding:130px 0 0;min-height:0;text-align:center;overflow:hidden}
.mv-s{margin-bottom:48px}
.collage{display:grid;grid-template-columns:1fr 1.1fr 1.9fr 1.1fr 1fr;gap:16px;align-items:end;padding:0 20px;margin-top:10px}
.collage figure{margin:0;border-radius:22px;overflow:hidden;background:#ddd}
.collage img{width:100%;height:100%;object-fit:cover}
.c1{aspect-ratio:3/4}.c2{aspect-ratio:4/5}.c3{aspect-ratio:16/11}.c4{aspect-ratio:4/5}.c5{aspect-ratio:3/4}
.c1,.c5{margin-bottom:60px}.c2,.c4{margin-bottom:26px}
.scrollx{margin:34px 0 30px}
@media(max-width:800px){.mv{padding-top:104px}.collage{grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}.c3{grid-column:1/-1;grid-row:1}.c1,.c2,.c4,.c5{margin:0;aspect-ratio:1}.c5{display:none}}
/* company */
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.co .container{display:grid}.co .lm{display:inline-flex;margin-right:0;max-width:none;align-self:auto}
.co .stm{margin-bottom:34px}.co-txt{margin-left:0;max-width:none}
.co-ph{position:relative;aspect-ratio:1/1.05}
.co-ph img{position:absolute;object-fit:cover;border-radius:24px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.co-ph .big{inset:0 14% 22% 0;width:86%;height:78%}
.co-ph .sm{right:0;bottom:6%;width:48%;height:40%}
.co-ph .sm2{left:8%;bottom:0;width:30%;height:30%;object-position:top;border-radius:50%;border:5px solid var(--dark);aspect-ratio:1}
@media(max-width:900px){.co-grid{grid-template-columns:1fr;gap:40px}}
/* works：2段レール */
.rail.rev{margin-top:18px}.rail.rev .rail-in{animation-direction:reverse}
.rail figure{width:340px}
.wc{padding-top:60px}
/* service：写真の円 */
.circles{margin-top:40px}
.cir{position:relative;overflow:hidden;border:1px dashed rgba(255,255,255,.7);text-decoration:none;color:#fff;margin:0 -2%;background:var(--ph) center/cover no-repeat;justify-content:flex-end;padding:0 10% 14%}
.cir::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,20,20,.88) 0%,rgba(20,20,20,.35) 55%,rgba(20,20,20,.1));transition:.35s}
.cir:hover::before{background:linear-gradient(0deg,rgba(20,20,20,.8),rgba(20,20,20,.15))}
.cir>*{position:relative}
.cir small{position:absolute;top:12%;left:0;right:0}
/* photo band */
.band-photo{position:relative;padding:150px 0;background:#333 center 55%/cover no-repeat;color:#fff;text-align:left}
.band-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,15,15,.7),rgba(15,15,15,.1))}
.band-photo .container{position:relative}
.band-photo p{font-size:clamp(26px,4.4vw,58px);font-weight:900;line-height:1.5;letter-spacing:.06em}
.band-photo .bp-s{font-size:clamp(14px,1.6vw,18px);font-weight:500;margin-top:22px;color:var(--y);letter-spacing:.2em}
/* careers */
.care-r{grid-template-columns:1.2fr 1fr;align-items:center;gap:56px}
.care-ph{position:relative;aspect-ratio:4/3}
.care-ph img{position:absolute;object-fit:cover;border-radius:24px}
.care-ph .a{inset:0 18% 14% 0;width:82%;height:86%;filter:none}
.care-ph .b{right:0;bottom:0;width:46%;height:52%;box-shadow:0 14px 30px rgba(0,0,0,.25);filter:none;aspect-ratio:auto}
@media(max-width:800px){.care-r{grid-template-columns:1fr}.care-r img{width:auto}.care-ph .a{width:82%}}
/* 下層ページの写真 */
.page-photo{margin-top:44px;border-radius:28px;overflow:hidden;aspect-ratio:21/8;background:#ddd}
.page-photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.page-photo{aspect-ratio:16/9;margin-top:28px;border-radius:18px}}

/* ===== v50: ヒーロー＝写真が回る3Dリング（住宅ファミリー社風） ===== */
.top-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:linear-gradient(160deg,#fff 0%,#eef1f6 52%,#f8f1c6 100%);padding:0}
.ring-wrap{position:absolute;inset:0;perspective:1500px;perspective-origin:50% 42%;display:grid;place-items:center;pointer-events:none}
.tilt{position:relative;width:0;height:0;transform-style:preserve-3d;transform:translateY(16%) rotateX(-15deg) rotateZ(7deg) scale(var(--rs,1))}
.spin{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;animation:ringspin 40s linear infinite}
@keyframes ringspin{to{transform:rotateY(360deg)}}
.strip{position:absolute;transform-style:preserve-3d}
.strip .f,.strip .b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.strip .f{background-repeat:no-repeat}
.strip .b{transform:rotateY(180deg);background:#ecefec}
.th-catch{position:absolute;top:150px;left:50px;z-index:3;display:flex;flex-direction:column;gap:22px}
.th-catch h1{display:flex;flex-direction:column-reverse;gap:22px;line-height:1}
.th-en{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(54px,8.6vw,140px);letter-spacing:-.045em;line-height:.95;color:#111}
.th-ja{font-size:clamp(17px,2.1vw,28px);font-weight:700;letter-spacing:.12em;color:#111}
.th-s{font-size:12.5px;line-height:2;max-width:26em;color:#444}
.top-hero .scrollx{position:absolute;left:50px;bottom:26px;margin:0;z-index:3}
@media(max-width:800px){
 .top-hero{min-height:620px}
 .th-catch{top:118px;left:20px;right:20px;gap:14px}.th-catch h1{gap:12px}
 .th-en{font-size:clamp(46px,13.6vw,80px)}.th-ja{font-size:clamp(15px,5vw,22px)}
 .top-hero .scrollx{left:20px}
}
@media(prefers-reduced-motion:reduce){.spin{animation:none}}

/* ===== v60: お問合せ ===== */
.ct{padding:40px 0 100px}
.ct-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}
.ct-side{display:grid;gap:18px;position:sticky;top:96px}
.ct-card{background:var(--g);border-radius:22px;padding:28px 30px}
.ct-card .pl{margin-bottom:12px;font-size:12px;color:var(--mute)}
.ct-card.tel{background:var(--dark);color:#fff}.ct-card.tel .pl{color:#bbb}
.ct-tel{display:block;font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(32px,3.4vw,44px);letter-spacing:-.01em;color:#fff;text-decoration:none;line-height:1.1}
.ct-note{font-size:12.5px;color:var(--mute);line-height:1.9;margin-top:6px}.ct-card.tel .ct-note{color:#cfcfcf}
.ct-addr{font-size:14px;line-height:1.9;margin-bottom:14px}
.ct-map{border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:#ddd;margin-bottom:6px}
.ct-map iframe{width:100%;height:100%;border:0;display:block}
.ct-form{background:#fff;border:1px solid var(--line);border-radius:28px;padding:44px 48px}
.ct-h{font-size:clamp(22px,2.6vw,30px);font-weight:900;letter-spacing:.08em;margin-bottom:8px}
.ct-lead{font-size:13px;color:var(--mute);margin-bottom:30px}
.req{color:#d33;margin-left:3px;font-weight:700}
.cform fieldset{border:0;padding:0;min-width:0}
.cform legend,.cform label{display:block;font-size:13.5px;font-weight:700;margin-bottom:8px}
.cform .f{margin-bottom:22px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cform input[type=text],.cform input[type=email],.cform input[type=tel],.cform input:not([type]),.cform textarea{width:100%;font:inherit;font-size:15px;padding:14px 16px;border:1px solid #bfbfba;border-radius:12px;background:#fff;transition:border-color .2s,box-shadow .2s}
.cform input:focus,.cform textarea:focus{outline:0;border-color:#111;box-shadow:0 0 0 3px rgba(253,213,23,.55)}
.cform textarea{min-height:190px;resize:vertical;line-height:1.8}
.cform [aria-invalid=true]{border-color:#d33;background:#fff7f7}
.err{color:#d33;font-size:12px;margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips label{margin:0;position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;inset:0}
.chips span{display:inline-block;padding:10px 18px;border:1px solid #bfbfba;border-radius:999px;font-size:13.5px;font-weight:500;transition:.2s}
.chips input:checked+span{background:#111;border-color:#111;color:#fff}
.chips input:focus-visible+span{box-shadow:0 0 0 3px rgba(253,213,23,.7)}
.chips label:hover span{border-color:#111}
.consent .chk{display:flex;gap:12px;align-items:flex-start;font-weight:500;cursor:pointer}
.consent input{width:20px;height:20px;margin-top:3px;accent-color:#111;flex:none}
.consent a{text-decoration:underline}
.wide{width:100%;min-width:0;padding:18px 36px;font-size:16px}
.cform .st{margin-top:14px}
.done{text-align:center;padding:50px 10px}.done h3{font-size:24px;font-weight:900;margin-bottom:14px}.done p{margin-bottom:26px;line-height:2}
.flow{padding:90px 0}
.flow-t{font-size:clamp(26px,3.4vw,40px);font-weight:900;letter-spacing:.08em;margin-bottom:40px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.steps li{background:#fff;border-radius:22px;padding:30px 28px;position:relative}
.steps li span{font-family:"Inter Tight";font-weight:800;font-size:44px;color:var(--y);-webkit-text-stroke:1px #111;letter-spacing:-.02em;line-height:1}
.steps b{display:block;font-size:18px;margin:12px 0 8px}.steps p{font-size:13.5px;color:var(--mute);line-height:1.9}
.steps li:not(:last-child)::after{content:"";position:absolute;right:-16px;top:50%;width:12px;height:12px;border-top:2px solid #111;border-right:2px solid #111;transform:translateY(-50%) rotate(45deg)}
.prv{padding:20px 0 100px}.prv .container{max-width:820px}
.prv h2{font-size:18px;font-weight:900;margin:40px 0 10px;padding-left:14px;border-left:4px solid var(--y)}
.prv p,.prv li{font-size:14.5px;line-height:2;color:#333}.prv ul{padding-left:1.3em}.prv-d{margin-top:40px;color:var(--mute)}
.ft small a{text-decoration:underline;margin-right:10px}
@media(max-width:900px){
 .ct-grid{grid-template-columns:1fr}.ct-side{position:static;order:2}.ct-form{padding:28px 20px;border-radius:22px}
 .f2{grid-template-columns:1fr;gap:0}.steps{grid-template-columns:1fr}.steps li:not(:last-child)::after{right:50%;top:auto;bottom:-14px;transform:translateX(50%) rotate(135deg)}
}

/* ===== 全ページ共通：ポインターに付いてくる「灯り」 ===== */
.glow{position:fixed;left:0;top:0;width:0;height:0;z-index:85;pointer-events:none;opacity:0;transition:opacity .3s}
.glow.on{opacity:1}
.glow::before{content:"";position:absolute;left:-150px;top:-150px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(253,213,23,.34) 0%,rgba(253,213,23,.14) 38%,rgba(253,213,23,0) 70%);transition:transform .3s}
.glow::after{content:"";position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#fdd517;box-shadow:0 0 12px 4px rgba(253,213,23,.7);transition:transform .25s}
.glow.big::before{transform:scale(1.5)}.glow.big::after{transform:scale(2.2)}
@media(hover:none),(pointer:coarse){.glow{display:none}}

/* 営業電話お断りの注記 */
.nosales{font-size:11.5px;line-height:1.8;letter-spacing:.04em;font-weight:500;margin-top:10px;color:inherit;opacity:.85}
.nosales::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--y);margin-right:8px;vertical-align:middle}
.gn-tel{text-align:right}.gn-tel .nosales{color:#bbb;margin-top:6px}
.ct-card.tel .nosales{color:#fff;opacity:1;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2)}
.touch-card .nosales{color:#cfcfcf}
.ft-co .nosales{color:#555;display:inline-block;margin-top:6px}
.prv .nosales{color:#333}

/* 求人情報ページのヒーロー（リング） */
.rc-hero{height:88svh;min-height:540px}
.rc-hero .th-en{font-size:clamp(64px,11vw,170px)}

/* ===== v80: 事業ページ ===== */
.bz-intro{padding:70px 0 100px}
.bz-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}
.bz-h{font-size:clamp(28px,4vw,52px);font-weight:900;line-height:1.4;letter-spacing:.05em;margin-bottom:24px}
.bz-h2{font-size:clamp(26px,3.4vw,42px);font-weight:900;line-height:1.5;letter-spacing:.05em;margin-bottom:40px}
.bz-ph{position:relative;aspect-ratio:1/.92}
.bz-ph img{position:absolute;object-fit:cover;border-radius:22px}
.bz-ph img:first-child{inset:0 24% 20% 0;width:76%;height:80%}
.bz-ph img:last-child{right:0;bottom:0;width:56%;height:56%;box-shadow:0 16px 36px rgba(0,0,0,.2);border:6px solid #fff}
.bz-who .stm{margin-bottom:44px}
.who-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}
.who{background:#fff;color:#111;border-radius:26px;padding:38px 40px}
.who.main{background:var(--y)}
.who-tag{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.1em;padding:4px 12px;border-radius:999px;background:#111;color:#fff;margin-bottom:16px}
.who-tag.sub{background:#e9e9e5;color:#111}
.who h3{font-size:clamp(22px,2.4vw,30px);font-weight:900;letter-spacing:.06em;display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.who h3 small{font-family:"Inter Tight";font-size:13px;font-weight:700;letter-spacing:.08em;opacity:.6}
.who>p{font-size:14px;line-height:1.9;margin-bottom:16px}
.who ul{list-style:none;border-top:1px solid rgba(0,0,0,.18)}
.who li{padding:8px 0 8px 18px;border-bottom:1px solid rgba(0,0,0,.12);font-size:14px;position:relative}
.who li::before{content:"";position:absolute;left:0;top:1.15em;width:8px;height:8px;border-radius:50%;background:#111}
.who.main li::before{background:#111}.who:not(.main) li::before{background:var(--y)}
.bz-scope{padding:100px 0;background:var(--g)}
.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.scope{background:#fff;border-radius:26px;padding:40px 42px;position:relative}
.sc-no{font-family:"Inter Tight";font-weight:800;font-size:58px;line-height:1;color:var(--y);-webkit-text-stroke:1.5px #111;letter-spacing:-.02em}
.scope h3{font-size:clamp(24px,2.8vw,34px);font-weight:900;letter-spacing:.06em;margin:10px 0 2px}
.sc-en{font-family:"Inter Tight";font-weight:700;font-size:14px;letter-spacing:.06em;color:var(--mute);margin-bottom:16px}
.scope>p:not(.sc-en){font-size:14px;line-height:2;margin-bottom:20px}
.scope ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.scope li{padding:7px 16px;border:1px solid #111;border-radius:999px;font-size:13px;font-weight:700}
.scope:first-child ol{counter-reset:o}.scope:first-child li::before{counter-increment:o;content:counter(o) ". ";}
.scope-note{margin-top:22px;font-size:12px;color:var(--mute)}
.bz-list{padding:100px 0}
.plist-ph{grid-template-columns:repeat(3,1fr);gap:22px}
.plist-ph .box,.plist-ph .box:first-child{grid-column:auto;background:var(--g);color:var(--ink);padding:0;overflow:hidden;border-radius:26px}
.plist-ph .box img{width:100%;aspect-ratio:16/10;object-fit:cover}
.plist-ph .bx{padding:28px 30px 34px}
.plist-ph .box:first-child ul{columns:1}
.plist-ph .box .no{color:#111;background:var(--y);display:inline-block;padding:2px 12px;border-radius:999px;font-size:13px}
.plist-ph .box h2{font-size:20px;margin:12px 0 14px}
.plist-ph .box li{font-size:13.5px;padding:3px 0 3px 18px}
.bz-cta{text-align:center;margin-top:60px;line-height:2.2}.bz-cta .btn{margin-top:14px}
@media(max-width:900px){
 .bz-grid,.who-grid,.scope-grid,.plist-ph{grid-template-columns:1fr}
 .bz-ph{aspect-ratio:4/3.4}.who,.scope{padding:28px 24px}.bz-scope,.bz-list{padding:70px 0}
}

.rail figure{background:none;box-shadow:0 12px 26px rgba(0,0,0,.16)}
.rail figcaption{display:none}

/* 写真バンドの文字：太いゴシック→細めの明朝 */
.band-photo p{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;font-weight:600;font-size:clamp(24px,3.6vw,48px);line-height:1.75;letter-spacing:.1em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.band-photo .bp-s{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(13px,1.4vw,17px);letter-spacing:.24em;margin-top:26px}

/* ===== v90: 夜空に言葉を置くミニマルなヒーロー（shinka-inc.com の導入演出を参考） ===== */
.sky{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#0a1230;color:#fff;padding:0}
.sky-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 55%;animation:kb 18s ease-out both}
@keyframes kb{from{transform:scale(1.1)}to{transform:scale(1)}}
.sky::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,8,26,.55) 0%,rgba(4,8,26,.18) 48%,rgba(4,8,26,.1) 70%,rgba(4,8,26,.45) 100%)}
.sky-in{position:absolute;z-index:2;left:max(6vw,28px);right:max(6vw,28px);top:clamp(120px,21vh,230px)}
.sky-t{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(26px,4.3vw,62px);line-height:1.9;letter-spacing:.12em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.sky-t .ln{display:block}.sky-t .l2 span{display:inline}
.sky-s{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(13px,1.4vw,18px);letter-spacing:.28em;color:#fdd517;margin-top:clamp(18px,3vh,34px)}
.ln{opacity:0;transform:translateY(16px);filter:blur(8px);animation:lnin 1.8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--d,.4s) + 2.6s)}
.l1{--d:0s}.l2{--d:.55s}.l3{--d:1.3s}
.no-intro .ln,.intro-off .ln{animation-delay:var(--d)}
@keyframes lnin{to{opacity:1;transform:none;filter:none}}
.sky-m{position:absolute;z-index:2;left:max(6vw,28px);bottom:34px;font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.8);display:flex;gap:14px;align-items:center}
.sky-m span{font-family:"Inter Tight",sans-serif;font-weight:800;letter-spacing:.14em}
.sky-m span::after{content:"";display:inline-block;width:28px;height:1px;background:rgba(255,255,255,.6);margin-left:14px;vertical-align:middle}
.sky-sc{position:absolute;z-index:2;right:max(6vw,28px);bottom:0;height:90px;width:1px;background:rgba(255,255,255,.25);overflow:hidden}
.sky-sc i{position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fdd517;animation:scl 2.4s ease-in-out infinite}
@keyframes scl{to{top:110%}}
@property --r{syntax:"<length-percentage>";inherits:false;initial-value:0%}
.intro{position:fixed;inset:0;z-index:300;background:#fff;pointer-events:none;-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent var(--r),#000 calc(var(--r) + 1px));mask-image:radial-gradient(circle at 50% 50%,transparent var(--r),#000 calc(var(--r) + 1px));animation:hole 1.25s cubic-bezier(.7,0,.2,1) 1.45s forwards}
@keyframes hole{to{--r:110%}}
.intro-c{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:#eceff2;display:grid;place-items:center;animation:icin 1.15s linear both,icout .5s ease 1.3s forwards}
.intro-c img{width:58px;height:58px}
@keyframes icin{0%{transform:rotate(0);opacity:0;animation-timing-function:cubic-bezier(.3,.6,.4,1)}14%{transform:rotate(-26deg);opacity:1;animation-timing-function:cubic-bezier(.55,0,.2,1)}72%{transform:rotate(1094deg);opacity:1;animation-timing-function:cubic-bezier(.4,0,.2,1)}100%{transform:rotate(1080deg);opacity:1}}
@keyframes icout{from{transform:scale(1) rotate(0);opacity:1}to{transform:scale(1.5) rotate(0);opacity:0}}
.no-intro .intro,.intro-off .intro{display:none}
@media(prefers-reduced-motion:reduce){.intro{display:none}.sky-bg{animation:none}.ln{animation:none;opacity:1;transform:none;filter:none}.sky-sc i{animation:none}}
@media(max-width:800px){
 .sky-bg{object-position:66% 50%}
 .sky-in{top:clamp(96px,17vh,150px)}
 .sky-t{font-size:clamp(23px,7vw,34px);line-height:1.95;letter-spacing:.1em}
 .sky-t .l2 span{display:block}
 .sky::before{background:linear-gradient(180deg,rgba(4,8,26,.6) 0%,rgba(4,8,26,.22) 52%,rgba(4,8,26,.1) 72%,rgba(4,8,26,.5) 100%)}
 .sky-m{bottom:24px}
}

/* 文字は空の領域に収める */
.sky-in{top:clamp(100px,14.5vh,160px)}
.sky-t{font-size:clamp(24px,3.4vw,50px);line-height:1.9}
.sky-s{margin-top:clamp(14px,2.4vh,26px)}
@media(max-width:800px){.sky-in{top:clamp(92px,15vh,140px)}.sky-t{font-size:clamp(22px,6.6vw,32px)}}

/* ===== v100: ヒーローをスライドに ===== */
.sky-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.5s ease,visibility 0s linear 1.5s}
.sky-slide.on{opacity:1;visibility:visible;transition:opacity 1.5s ease,visibility 0s}
.sky-slide .sky-bg{animation:none;transform:scale(1.08)}
.sky-slide.on .sky-bg{animation:kb 11s ease-out both}
.sky-slide::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,8,26,.55) 0%,rgba(4,8,26,.2) 50%,rgba(4,8,26,.1) 70%,rgba(4,8,26,.45) 100%)}
.sky-slide.s1::before,.sky-slide.s2::before{background:linear-gradient(90deg,rgba(4,8,26,.7) 0%,rgba(4,8,26,.35) 45%,rgba(4,8,26,.05) 75%),linear-gradient(180deg,rgba(4,8,26,.35),rgba(4,8,26,0) 40%,rgba(4,8,26,.4))}
.sky-slide.s3::before{background:linear-gradient(180deg,rgba(4,8,26,.5) 0%,rgba(4,8,26,.15) 55%,rgba(4,8,26,.4) 100%)}
.sky::before{display:none}
.sky-slide .sky-in{z-index:2}
.sky-slide .ln{animation:none;opacity:0;transform:translateY(16px);filter:blur(8px)}
.sky-slide.on .ln{animation:lnin 1.7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--d,0s) + .5s)}
.sky-slide.s0.on .ln{animation-delay:calc(var(--d,0s) + 2.6s)}
.no-intro .sky-slide.s0.on .ln,.intro-off .sky-slide.s0.on .ln{animation-delay:calc(var(--d,0s) + .4s)}
.sky-s.sub2{color:#fff;font-weight:500;letter-spacing:.18em;line-height:2.1;font-size:clamp(12px,1.25vw,16px)}
.sky-slide.s3 .sky-s{letter-spacing:.3em}
.sky-ctl{position:absolute;z-index:3;right:max(6vw,28px);bottom:30px;display:flex;align-items:center;gap:18px;color:#fff}
.sky-n{font-family:"Inter Tight",sans-serif;font-size:12px;letter-spacing:.14em;opacity:.85}.sky-n b{font-size:15px}
.sky-bars{display:flex;gap:8px}
.sky-bars button{position:relative;width:46px;height:26px;border:0;background:none;cursor:pointer;padding:0}
.sky-bars button::before{content:"";position:absolute;left:0;right:0;top:12px;height:2px;background:rgba(255,255,255,.35)}
.sky-bars i{position:absolute;left:0;top:12px;height:2px;width:100%;background:#fdd517;transform:scaleX(0);transform-origin:left}
.sky-bars button.on i{transform:scaleX(1)}
.sky-bars button.run i{transform:scaleX(0);animation:bar 7s linear forwards}
@keyframes bar{to{transform:scaleX(1)}}
.sky-bars button:focus-visible{outline:2px solid #fdd517;outline-offset:2px}
.sky-sc{display:none}
@media(prefers-reduced-motion:reduce){.sky-slide,.sky-slide.on{transition:none}.sky-slide.on .sky-bg{animation:none}.sky-slide .ln,.sky-slide.on .ln{animation:none;opacity:1;transform:none;filter:none}}
@media(max-width:800px){
 .sky-ctl{right:20px;bottom:22px;gap:12px}.sky-bars button{width:30px}
 .sky-m{left:20px;bottom:26px}
 .sky-slide.s1::before,.sky-slide.s2::before{background:linear-gradient(180deg,rgba(4,8,26,.62) 0%,rgba(4,8,26,.3) 50%,rgba(4,8,26,.35) 100%)}
 .sky-s.sub2{font-size:12px;letter-spacing:.1em}
}

.sky-slide.s3 .sky-s{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.45)}
@media(max-width:800px){.sky-m{display:none}.sky-ctl{left:20px;right:20px;justify-content:space-between}.sky-slide.s1 .sky-bg{object-position:42% 50%}}

/* 範囲：3カード */
.scope-grid{grid-template-columns:repeat(3,1fr);gap:18px}
.scope{padding:34px 30px}
.scope:first-child ol{counter-reset:o}
.scope:first-child li::before{counter-increment:o;content:counter(o) ". "}
.scope:not(:first-child) li::before{content:none}
.sc-en{font-size:12.5px}
@media(max-width:900px){.scope-grid{grid-template-columns:1fr}}

/* ===== 8年間の現場数 ===== */
.nums{text-align:center}
.nums .pl{margin-bottom:14px}
.nums-t{font-size:clamp(20px,2.4vw,28px);font-weight:500;letter-spacing:.34em;margin-bottom:clamp(30px,5vw,56px)}
.nums-l{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,3vw,40px);max-width:980px;margin:0 auto}
.nums-l li{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.6vw,20px)}
.nv{display:flex;align-items:baseline;justify-content:center;gap:4px;line-height:1}
.nv b{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(54px,10.4vw,150px);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.nv small{font-size:clamp(14px,1.8vw,24px);font-weight:700}
.nums-l span{display:inline-block;background:#fdd517;color:#111;font-size:clamp(11px,1.15vw,15px);font-weight:900;letter-spacing:.16em;padding:5px clamp(10px,1.6vw,22px)}
.nums-sec{padding:70px 0 20px}
.gal-sec{padding-top:60px}
.wc .nums{margin:44px 0 0;padding:0 20px}
.wc .nv b{font-size:clamp(46px,8vw,112px)}
@media(max-width:700px){.nums-l{gap:4px}.nv b{font-size:clamp(40px,15vw,64px)}.nums-t{letter-spacing:.2em}.nums-l span{letter-spacing:.06em;padding:4px 8px}.wc .nv b{font-size:clamp(38px,14vw,60px)}}

/* ===== v120: メッセージ→3Dリング→求人へ（スクロール連動） ===== */
.rt{position:relative;height:320vh;padding:0;background:#0a1230}
.rt-pin{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1000px;background:#0a1230;color:#fff}
.rt-bg{position:absolute;inset:-6%;background:#0a1230 center/cover no-repeat;transform-origin:50% 60%;will-change:transform}
.rt-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,38,.5),rgba(6,12,38,.2) 50%,rgba(6,12,38,.55));opacity:.3;background-color:#0a1230;mix-blend-mode:normal}
.rt-shade{background:radial-gradient(120% 90% at 50% 40%,rgba(10,18,48,.55),rgba(10,18,48,.96))}
.rt-txt{position:absolute;left:max(6vw,28px);right:max(6vw,28px);top:clamp(110px,24vh,260px);transform-style:preserve-3d;pointer-events:none}
.rt-l{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(24px,3.8vw,56px);line-height:1.9;letter-spacing:.12em;opacity:0;will-change:transform,opacity,filter;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.rt-l.rt-sub{font-size:clamp(13px,1.4vw,18px);letter-spacing:.28em;color:#fdd517;margin-top:10px}
.rt .ring-wrap{z-index:2;opacity:0;perspective:1500px}
.rt .spin{animation:none}
.rt .tilt{transform:none}
.rt .strip .b{background:#1b2442}
.rt-title{position:absolute;z-index:3;left:0;right:0;bottom:clamp(36px,9vh,100px);display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:#fff;opacity:0;gap:4px}
.rt-lab{font-size:12px;letter-spacing:.2em;opacity:.8}
.rt-en{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(56px,11vw,170px);letter-spacing:-.045em;line-height:.95}
.rt-ja{font-size:14px;font-weight:700;letter-spacing:.28em}
.rt-copy{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(13px,1.5vw,18px);letter-spacing:.28em;color:#fdd517;margin-top:10px}
.rt-title:hover .rt-en{color:#fdd517}
@media(max-width:800px){.rt{height:280vh}.rt-txt{top:clamp(96px,17vh,150px)}.rt-l{font-size:clamp(21px,6.2vw,30px)}.rt-en{font-size:clamp(52px,17vw,90px)}}
@media(prefers-reduced-motion:reduce){.rt{height:auto}.rt-pin{position:relative}}

/* ===== v130: ヒーロー＝スクロールで奥へ進む3D演出（文字は太く大きなゴシック） ===== */
.h3{position:relative;height:440vh;padding:0;background:#070d20}
.h3-pin{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1100px;background:#070d20;color:#fff}
.h3-sc{position:absolute;inset:0;transform-style:preserve-3d;opacity:0;visibility:hidden}
.h3-img{position:absolute;inset:-5%;background:#0a1230 center 55%/cover no-repeat;will-change:transform,filter}
.h3-sc:nth-child(2) .h3-img{background-position:center 40%}
.h3-sc:nth-child(3) .h3-img{background-position:center 60%}
.h3-sc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,8,26,.55) 0%,rgba(4,8,26,.12) 46%,rgba(4,8,26,.1) 66%,rgba(4,8,26,.55) 100%);pointer-events:none}
.h3-sc:nth-child(2)::after{background:linear-gradient(90deg,rgba(4,8,26,.72) 0%,rgba(4,8,26,.35) 48%,rgba(4,8,26,.05) 78%),linear-gradient(180deg,rgba(4,8,26,.3),rgba(4,8,26,0) 40%,rgba(4,8,26,.4))}
.h3-shade{position:absolute;inset:0;z-index:50;background:#000;opacity:.1;pointer-events:none}
.h3-tx{position:absolute;z-index:3;left:max(6vw,28px);right:max(6vw,28px);transform-style:preserve-3d}
.h3-tx.pos-a{top:clamp(104px,16vh,190px)}
.h3-tx.pos-b{top:50%;margin-top:-17vh}
.h3-t{font-family:"Noto Sans JP","Hiragino Sans",sans-serif;font-weight:700;font-size:clamp(30px,5.3vw,86px);line-height:1.34;letter-spacing:.035em;text-shadow:0 3px 30px rgba(0,0,0,.4)}
.h3-t .h3-l{display:block}
.h3-s{font-family:"Noto Sans JP",sans-serif;font-weight:500;font-size:clamp(13px,1.45vw,19px);line-height:2;letter-spacing:.14em;margin-top:clamp(18px,3.4vh,34px);padding-left:46px;position:relative;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.h3-s::before{content:"";position:absolute;left:0;top:1.05em;width:30px;height:2px;background:#fdd517}
.h3-l{opacity:0;will-change:transform,opacity,filter}
.h3-nav{position:absolute;z-index:60;right:max(3vw,22px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px}
.h3-no{font-family:"Inter Tight",sans-serif;font-size:11px;letter-spacing:.14em;writing-mode:vertical-rl;margin-bottom:6px;opacity:.9}.h3-no b{font-size:14px}
.h3-nav i{display:block;width:2px;height:34px;background:rgba(255,255,255,.3);transition:background .4s,height .4s}
.h3-nav i.on{background:#fdd517;height:54px}
.h3-scroll{position:absolute;z-index:60;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:"Inter Tight",sans-serif;font-size:10px;letter-spacing:.3em;opacity:0}
.h3-scroll i{display:block;width:1px;height:46px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.h3-scroll i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fdd517;animation:scl 2.2s ease-in-out infinite}
.sp2{display:none}
@media(max-width:800px){
 .h3{height:380vh}
 .h3-t{font-size:clamp(27px,8vw,40px);line-height:1.4}
 .sp2{display:inline}
 .h3-tx.pos-a{top:clamp(92px,15vh,140px)}.h3-tx.pos-b{margin-top:-14vh}
 .h3-s{padding-left:34px;font-size:12.5px;letter-spacing:.08em}.h3-s::before{width:22px}
 .h3-nav{right:12px}.h3-nav i{height:26px}.h3-nav i.on{height:42px}
}
@media(prefers-reduced-motion:reduce){.h3{height:100svh}.h3-l{opacity:1}}

/* ===== v131: 全画面の写真が反ってリングになる ===== */
.rt-pin{perspective:none;background:radial-gradient(120% 90% at 50% 40%,#16224a,#070d20)}
.rt-stage{position:absolute;inset:0;perspective:2200px;perspective-origin:50% 45%;overflow:hidden}
.rt-grp{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.rt-tilt,.rt-spin{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d}
.rt .strip{will-change:transform}
.rt .strip .b{background:#1b2442}
.rt-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(4,8,26,.55) 0%,rgba(4,8,26,.2) 46%,rgba(4,8,26,.1) 70%,rgba(4,8,26,.5) 100%)}
.rt-txt{z-index:2}

/* ===== v132: ゆっくり・段階的に（写真→引く→反る→回る→Recruit） ===== */
.rt{height:560vh}

@media(max-width:800px){.rt{height:500vh}}
@media(prefers-reduced-motion:reduce){.rt{height:auto}}

/* フォーム用の .f の余白が写真の短冊(.strip .f)に効いて高さが縮むのを防ぐ */
.strip .f,.strip .b{margin:0!important;padding:0!important;width:auto;height:auto}

/* ===== v140: スマホ対応の見直し ===== */
/* ロゴ：背景に左右されない濃い丸枠（blend をやめる） */
.hd-logo{mix-blend-mode:normal;top:14px;height:auto;left:max(18px,2vw);padding:7px 16px 7px 10px;background:rgba(14,16,24,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;color:#fff;gap:9px}
.hd-logo img{width:26px;height:26px}
.hd-logo span{font-size:13px;letter-spacing:.1em}
.hd{height:72px}
.burger{width:44px;height:44px}
@media(max-width:700px){.hd-logo{top:12px;left:14px;padding:6px 14px 6px 8px}.hd-logo span{font-size:12px}.hd{padding:0 14px}}
/* フッター */
.ft .logotype{width:180px}
@media(max-width:700px){.ft{padding:48px 0 22px}.ft .logotype{width:96px}.ft-row{margin-top:20px}.ft-big{font-size:20px}.ft-nav{gap:14px 26px}}
.ft-nav small,.gn-in small{font-size:11px}
.ft-nav small{color:#888}
.h3-scroll,.h3-no{font-size:11px}
.sky-n,.rt-lab{font-size:12px}
.ft-co p,.ft-co small,.ft small{font-size:11.5px}
.gn-no{font-size:11px}
@media(max-width:700px){.nosales{font-size:12px}.ct-note{font-size:13px}.who li,.plist .box li{font-size:14px}}

@media(min-width:1101px){.rt-en{font-size:clamp(52px,7.6vw,124px)}.rt-title{bottom:clamp(26px,5.5vh,64px)}}

/* ===== v150: 巻き込み型（拡大率そのまま）。Recruit が写真に重なる分、下に暗がり */
.rt-title{text-shadow:0 2px 30px rgba(4,8,26,.75)}
.rt-pin::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(180deg,rgba(4,8,26,0),rgba(4,8,26,.78));pointer-events:none;z-index:2}

/* ヒーロー1枚目：「皆んなが安心して／暮らせる地元に。」で必ず改行（途中で折れない） */
.sp2{display:inline}
.h3-t .h3-l{white-space:nowrap}

/* 事業内容の丸：狭い画面では必ず中央（後ろの .cir 指定に負けないよう末尾に置く） */
@media(max-width:800px){
 .circles{grid-template-columns:1fr;justify-items:center;gap:26px}
 .circles .cir{margin:0 auto;width:min(86vw,360px);justify-self:center}
}

/* ===== v160: 求人ページのヒーロー＝トップ最後のリングと同じ ===== */
.rt-static{position:relative;height:100svh;min-height:560px;padding:0;overflow:hidden;background:radial-gradient(120% 90% at 50% 40%,#16224a,#070d20);color:#fff}
.rt-static .rt-stage{position:absolute;inset:0}
.rt-static .strip .b{background:#1b2442}
.rs-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(4,8,26,.62) 0%,rgba(4,8,26,.2) 46%,rgba(4,8,26,0) 70%),linear-gradient(180deg,rgba(4,8,26,.45) 0%,rgba(4,8,26,0) 38%,rgba(4,8,26,.55) 100%)}
.rt-static .th-catch{z-index:3}
.rt-static .th-en,.rt-static .th-ja{color:#fff;text-shadow:0 2px 30px rgba(4,8,26,.55)}
.rt-static .th-en{font-size:clamp(64px,11vw,170px)}
.rt-static .scrollx{position:absolute;left:50px;bottom:26px;margin:0;z-index:3;color:#cfd6e6}
@media(max-width:800px){.rt-static .th-en{font-size:clamp(52px,16vw,96px)}.rt-static .scrollx{left:20px}}

/* ===== ロゴ：枠・背景なし（色だけ切替） ===== */
.hd-logo{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:0;padding:0!important;top:20px;left:max(22px,2vw);color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.35);transition:color .25s,text-shadow .25s}
.hd-logo img{width:30px;height:30px;filter:invert(1);transition:filter .25s}
.hd-logo span{font-size:14px;letter-spacing:.12em}
.hd-logo.on-light{color:#111;text-shadow:none}
.hd-logo.on-light img{filter:none}
@media(max-width:700px){.hd-logo{top:18px;left:16px}.hd-logo span{font-size:13px}.hd-logo img{width:28px;height:28px}}

.hd-logo.on-light{text-shadow:0 0 10px rgba(255,255,255,.85),0 0 2px rgba(255,255,255,.9)}

/* ===== v170: 求人ページ — リングは後ろに固定し、次のセクションの背景として薄く透かす ===== */
.recruit .rt-static{background:transparent;overflow:visible}
.recruit .rt-static .rt-stage{position:fixed;inset:0;z-index:0;background:radial-gradient(120% 90% at 50% 40%,#16224a,#070d20)}
.recruit .rt-static::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(7,13,32,0),rgba(7,13,32,.86))}
.recruit main>section,.recruit main>div{position:relative;z-index:1}
.recruit .rt-static{z-index:1}
.recruit .recruit-lead-sec,.recruit .band{background:rgba(7,13,32,.9)}
.recruit section:not(.rt-static):not(.touch):not(.band){background:rgba(7,13,32,.9);color:#fff}
.recruit .ttl{color:#fff}
.recruit .recruit-lead p{color:#e4e9f4}
.recruit .band .ttl{color:#fff}
.recruit table.rq{border-top-color:#fdd517}
.recruit table.rq th{background:rgba(255,255,255,.07);color:#fff}
.recruit table.rq td{color:#e4e9f4}
.recruit table.rq th,.recruit table.rq td{border-bottom-color:rgba(255,255,255,.16)}
.recruit table.rq a{color:#fdd517}
.recruit .lead{color:#c9d2e3}

/* 求人ページ：固定したリング(.rt-stage)より、フッターや帯を必ず手前に */
.recruit .ft,.recruit footer{position:relative;z-index:2;background:#fff}
.recruit .ticker,.recruit .touch{position:relative;z-index:2}

/* ===== v180: Recruit が押せるとわかる ===== */
.rt-title{cursor:pointer}
.rt-btn{margin-top:22px;display:inline-flex;align-items:center;gap:14px;background:#fdd517;color:#111;font-weight:700;font-size:14px;letter-spacing:.12em;padding:13px 14px 13px 30px;border-radius:999px;text-shadow:none;position:relative;transition:transform .25s,background .25s}
.rt-btn i{width:30px;height:30px;border-radius:50%;background:#111;color:#fdd517;display:grid;place-items:center;transition:transform .25s}
.rt-btn::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #fdd517;animation:ctaPulse 2.2s ease-out infinite;pointer-events:none}
@keyframes ctaPulse{0%{transform:scale(1);opacity:.85}100%{transform:scale(1.35,1.7);opacity:0}}
.rt-title:hover .rt-btn,.rt-title:focus-visible .rt-btn{transform:translateY(-3px);background:#fff}
.rt-title:hover .rt-btn i{transform:translateX(4px)}
.rt-title:hover .rt-en{color:#fdd517}
.rt-title:focus-visible{outline:2px solid #fdd517;outline-offset:8px;border-radius:12px}
@media(max-width:700px){.rt-btn{font-size:13px;padding:11px 12px 11px 24px;margin-top:18px}.rt-btn i{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.rt-btn::before{animation:none;opacity:0}}

/* ===== v190: SEO — パンくず・h1の見た目（日本語を先頭に、英字は装飾） ===== */
.page-hd h1{flex-direction:column-reverse}
.crumb{margin-bottom:26px}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 0;font-size:12.5px;letter-spacing:.08em;color:var(--mute)}
.crumb li+li::before{content:"›";margin:0 10px;color:#999}
.crumb a{text-decoration:none;border-bottom:1px solid transparent}
.crumb a:hover{border-bottom-color:currentColor}
.crumb li[aria-current]{color:#111;font-weight:500}
.nf{padding:180px 0 120px}

.touch-card .ch2{font-size:clamp(20px,2.4vw,28px);font-weight:700;line-height:1.6;margin-bottom:12px}
.box h3{font-size:23px;font-weight:700;margin:8px 0 20px;letter-spacing:.1em}
.plist-ph .box h3{font-size:20px;margin:12px 0 14px}

/* v191 ヘッダー: ロゴとバーガーのサイズ・余白・縦位置をそろえる */
.hd{height:80px;padding:0 max(22px,2.4vw)}
.hd-logo{top:0!important;height:80px;left:max(22px,2.4vw)!important;gap:12px}
.hd-logo img{width:40px;height:40px}
.hd-logo span{font-size:18px;letter-spacing:.1em}
.burger{width:48px;height:48px}.burger i{width:20px}
@media(max-width:700px){.hd{height:64px;padding:0 16px}.hd-logo{height:64px;left:16px!important;gap:9px}.hd-logo img{width:32px;height:32px}.hd-logo span{font-size:15px}.burger{width:44px;height:44px}}

/* v193 大画面（1440px〜）: 幅を画面に合わせて広げ、文字も少し大きく */
:root{--w:clamp(1180px,calc(100vw - 240px),1680px)}
@media(min-width:1500px){
body{font-size:16px}
.co-txt,.svc-p{max-width:min(760px,46%)}
.co .lm{max-width:760px}
.svc-p{font-size:14.5px}
.pl{font-size:14px}
}
@media(min-width:1800px){body{font-size:17px}.svc-p{font-size:15.5px}}
.rail img{height:auto;aspect-ratio:4/3}
.rail-in{align-items:flex-start}
/* v195 流れる大文字は container で切らず、画面幅いっぱいに */
.big-run{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:0}

/* v196 CTA: 全幅の濃色帯・中央揃え・主導線は黄の塗り／電話はアウトライン（portfolio cta.md パターンA） */
.touch.cta{position:relative;overflow:hidden;padding:clamp(110px,14vw,200px) 0 clamp(110px,13vw,190px);margin-top:clamp(40px,6vw,100px);background:#1f1f1f;text-align:center}
.touch.cta::before{content:"";position:absolute;left:50%;top:50%;width:min(1100px,90vw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(253,213,23,.16) 0%,rgba(253,213,23,0) 62%);pointer-events:none}
.cta-bg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(90px,17vw,300px);letter-spacing:-.04em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.09);pointer-events:none;line-height:1}
.cta-in{position:relative;z-index:1}
.cta-en{font-family:"Inter Tight",sans-serif;font-size:14px;font-weight:600;letter-spacing:.16em;color:var(--y);margin-bottom:28px}
.cta-h{font-size:clamp(26px,3.7vw,58px);font-weight:700;line-height:1.55;letter-spacing:.05em;margin-bottom:28px}
.cta-s{font-size:clamp(13px,1.1vw,16px);color:#d6d6d6;margin-bottom:clamp(40px,4vw,56px)}
.cta-bts{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}
.cta-b{display:inline-flex;align-items:center;justify-content:center;gap:16px;height:68px;padding:0 34px;border-radius:999px;font-weight:700;text-decoration:none;letter-spacing:.06em;transition:transform .25s,background .25s,color .25s}
.cta-b.main{background:var(--y);color:#111;min-width:300px;font-size:17px}
.cta-b.main i{width:38px;height:38px;border-radius:50%;background:#111;color:var(--y);display:grid;place-items:center;transition:transform .25s}
.cta-b.main:hover{transform:translateY(-3px)}.cta-b.main:hover i{transform:translateX(4px)}
.cta-b.tel{border:1.5px solid rgba(255,255,255,.55);color:#fff;min-width:300px;font-family:"Inter Tight",sans-serif;font-size:24px;letter-spacing:.04em}
.cta-b.tel small{font-size:12px;letter-spacing:.14em;color:var(--y);font-weight:700}
.cta-b.tel:hover{background:#fff;color:#111}.cta-b.tel:hover small{color:#111}
.cta-n{margin-top:30px;font-size:13px;color:#b9b9b9}
@media(max-width:700px){.cta-b{width:100%;min-width:0;height:62px}.cta-bts{gap:14px}.cta-n{font-size:12px;line-height:1.9}}
/* v197 width/height 属性が aspect-ratio を潰して縦に伸びる問題 */
.ceo img,.care-r img,.plist-ph .box img{height:auto}
/* v198 会社概要: 大画面で表が横に伸び切らないよう、見出し左＋表右の2カラム */
@media(min-width:1100px){
#company .container{display:grid;grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);column-gap:clamp(40px,6vw,120px);align-items:start}
#company .container>.ttl{grid-column:1;position:sticky;top:120px}
#company .container>:not(.ttl){grid-column:2}
table.co,table.rq{max-width:1040px}
table.co th,table.co td{padding:24px 12px}
table.co th{vertical-align:baseline;padding-top:26px}
}
/* v199 ヒーロー3枚目は左下に文字 */
.h3-tx.pos-c{top:auto;bottom:clamp(96px,15vh,170px)}
.h3-sc:nth-child(3)::after{background:linear-gradient(0deg,rgba(4,8,26,.72) 0%,rgba(4,8,26,.35) 32%,rgba(4,8,26,0) 58%),linear-gradient(180deg,rgba(4,8,26,.35) 0%,rgba(4,8,26,0) 28%)}
@media(max-width:700px){.h3-tx.pos-c{bottom:clamp(90px,14vh,130px)}}

/* v200 CTA 上の白い隙間を無くす（余白は CTA 内の padding で確保） */
.touch.cta{margin-top:0}
/* v201 代表写真: 正方形で胸あたりから下を切る */
.ceo img{height:auto!important;aspect-ratio:1/1!important;object-fit:cover;object-position:50% 12%}
.page-photo img[src$="team2.jpg"]{object-position:50% 96%}
/* v202 会社概要: 見出し＋表のまとまりを中央に置く（横いっぱいに広げない） */
@media(min-width:1100px){
#company .container{width:min(1280px,100% - 96px)}
#company table.co{max-width:none}
}
/* v203 事業ページ: カード高さは中身に合わせる（下の CTA と重複する案内は削除） */
.plist-ph{align-items:start}
.bz-list{padding-bottom:clamp(90px,10vw,140px)}
/* v206 募集要項の表は中央配置 */
table.rq{margin-inline:auto}
@media(max-height:800px){.gn-in{padding:96px 0 28px}.gn-in a{padding:12px 0}.gn-in b{font-size:clamp(30px,5vw,52px)}}
