/* rc-corporate — 紺＋朱のコーポレートサイト。寸法は参考（sense-trust.co.jp）の実測をもとに、色と書体を置き換えたもの。
   基準：内容幅 1400（丸角パネル）／本文 2 列 1240／英字大見出し 60px・字間 -0.05em／巨大英字 130px／本文 16px・行 1.75。 */
:root{
	--rc-navy:#0f2244; --rc-navy-2:#17305e; --rc-navy-3:#0b1a36;
	--rc-red:#c8371d; --rc-ink:#1e1e1e; --rc-body:#2b2b2b; --rc-muted:#8a93a3;
	--rc-white:#ffffff; --rc-paper:#f6f5f1; --rc-panel:#ebeae5; --rc-line:#dcdbd6; --rc-dark:#1c1c1c;
	--en:"Inter Tight","Helvetica Neue",Arial,sans-serif; --ja:"Noto Sans JP",system-ui,sans-serif; --serif:"Shippori Mincho","Hiragino Mincho ProN",serif;
	--gut:20px; --in:1400px; --r:10px;
	--ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.rc{margin:0;background:var(--rc-white);color:var(--rc-body);font-family:var(--ja);font-size:16px;line-height:1.75;font-weight:400;letter-spacing:.01em;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,dl,dd,figure{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.rc-in{width:min(var(--in),100% - var(--gut)*2);margin-inline:auto}
.rc-main{display:block}
.rc-plain{padding:200px 0}
.rc-list{padding-left:.2em}.rc-list li{position:relative;padding-left:.2em;color:inherit}.rc-list__dot{color:var(--rc-red)}

/* ---- 現れる演出：下から 24px・0.9s。ヘッドレス撮影用に ?still=1 で全部終わった状態にする（preview-local.php が .rv を上書き） ---- */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * .08s)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---- 読み込み：ロゴが紺→白に切り替わって幕が上がる（参考 1.2s） ---- */
.rc-loading{position:fixed;inset:0;z-index:100;background:var(--rc-navy);display:grid;place-items:center;transition:transform .7s var(--ease),visibility 0s .7s;}
.rc-loading__logo{display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--en);font-weight:800;font-size:22px;letter-spacing:.04em;opacity:0;animation:ld-in .6s .1s var(--ease) forwards}
.rc-loading__logo .rc-logo__mark{width:34px;height:34px}
img.rc-logo__mark{object-fit:contain;display:block}
@keyframes ld-in{to{opacity:1}}
.rc-loading.is-hide{transform:translateY(-100%);visibility:hidden}
html.no-js .rc-loading{display:none}

/* ---- ヘッダー（透明・140px・場面の明暗で文字色が変わる） ---- */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;height:140px;display:flex;align-items:flex-start;padding:52px 60px 0;color:var(--rc-ink);transition:color .4s;pointer-events:none}
.hd > *{pointer-events:auto}
.hd.is-dark{color:#fff}
.rc-logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--en);font-weight:800;font-size:20px;letter-spacing:.06em;line-height:1}
.rc-logo__mark{width:30px;height:30px;flex:none}
.hd__nav{margin-left:auto;margin-right:40px;padding-top:6px}
.hd__nav ul{display:flex;gap:30px}
.hd__nav a{font-size:14px;font-weight:500;position:relative;padding-bottom:6px}
.hd__nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.hd__nav a:hover::after,.hd__nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.hd__menu{position:relative;width:54px;height:54px;border:1px solid currentColor;border-radius:50%;margin-top:-8px;transition:transform .5s var(--ease)}
.hd__menu span{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:currentColor;transform:translate(-50%,calc(-50% - 5px))}
.hd__menu span+span{transform:translate(-50%,calc(-50% + 5px))}
.hd__menu:hover{transform:rotate(90deg) scale(1.18)}
.hd__menu[aria-expanded="true"]{color:#fff}
.hd__menu[aria-expanded="true"] span{width:18px;height:1.5px;border-radius:0;transform:translate(-50%,-50%) rotate(45deg)}
.hd__menu[aria-expanded="true"] span+span{transform:translate(-50%,-50%) rotate(-45deg)}
.hd.is-menu{color:#fff}

/* ---- 全面メニュー ---- */
.menu{position:fixed;inset:0;z-index:40;background:rgba(15,34,68,.96);color:#fff;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s;overflow:auto}
.menu.is-open{opacity:1;visibility:visible;transition-delay:0s}
.menu__inner{width:min(1000px,100% - 80px);margin:180px auto 80px}
.menu__list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 60px}
.menu__list > li > a{display:block;font-size:22px;font-weight:500;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.2);transform:translateY(20px);opacity:0;transition:.6s var(--ease)}
.menu.is-open .menu__list > li > a{opacity:1;transform:none}
.menu__sub{padding:12px 0 8px 12px}
.menu__sub a{display:block;font-size:15px;padding:8px 0;color:rgba(255,255,255,.8)}
.menu__sub a::before{content:"— ";color:var(--rc-red)}
.menu__foot{margin-top:60px;font-size:13px;color:rgba(255,255,255,.7)}

/* ---- 共通部品 ---- */
.rc-head{margin-bottom:40px}
.rc-head__en{font-family:var(--en);font-weight:800;font-size:60px;line-height:.9;letter-spacing:-.05em;color:var(--rc-ink);text-transform:uppercase}
.rc-head__ja{font-size:16px;font-weight:700;margin-top:10px;color:var(--rc-ink)}
.rc-head--light .rc-head__en,.rc-head--light .rc-head__ja{color:#fff}
.giant{font-family:var(--en);font-weight:800;font-size:clamp(64px,9vw,130px);line-height:.88;letter-spacing:-.05em;color:#fff;text-transform:uppercase}
.giant--dark{color:var(--rc-ink)}
.giant__ja{font-size:16px;font-weight:700;margin-top:14px;color:inherit}
.rc-btn{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500}
.rc-btn__label{display:inline-block;padding:12px 28px;border:1px solid currentColor;border-radius:99px;background:var(--rc-panel);color:var(--rc-ink);transition:background .4s,color .4s}
.rc-btn__arrow{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--rc-panel);color:var(--rc-ink);font-size:20px;transition:transform .5s var(--ease),background .4s,color .4s}
.rc-btn:hover .rc-btn__arrow{transform:translateX(6px);background:var(--rc-red);color:#fff}
.rc-btn:hover .rc-btn__label{background:var(--rc-ink);color:#fff}
.panel{background:var(--rc-panel);border-radius:var(--r);padding:80px 50px}
.marq{overflow:hidden;white-space:nowrap;padding:34px 0;color:#fff;font-family:var(--en);font-weight:700;font-size:16px;letter-spacing:.02em}
.marq__track{display:inline-flex;gap:0;animation:marq 26s linear infinite}
.marq__track span{padding-right:140px}
@keyframes marq{to{transform:translateX(-50%)}}
.crumb{display:flex;justify-content:flex-end;gap:8px;font-size:12px;color:var(--rc-muted);padding-top:200px}
.crumb li+li::before{content:"-";margin-right:8px}
.crumb strong{color:var(--rc-ink);font-weight:700}
.crumb--light{color:rgba(255,255,255,.7)}.crumb--light strong{color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.chips li{font-size:14px;padding:8px 16px;border:1px solid var(--rc-navy);color:var(--rc-navy);border-radius:99px}

/* ---- FV ---- */
.fv{padding:20px 20px 0;background:#fff}
.fv__frame{position:relative;height:calc(100svh - 20px);min-height:640px;border-radius:var(--r);overflow:hidden;background:var(--rc-navy-3)}
.fv__img{position:absolute;inset:0}
.fv__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:kb 14s ease-out forwards}
.fv__img video{width:100%;height:100%;object-fit:cover;display:block;background:var(--rc-navy-3)}
@keyframes kb{to{transform:scale(1)}}
.fv__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,26,54,.35),rgba(11,26,54,.05) 40%,rgba(11,26,54,.55))}
.fv__eyebrow{position:absolute;left:60px;top:170px;color:#fff;font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.14em}
.fv__copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-40%);color:#fff;font-family:var(--serif);font-weight:500;font-size:clamp(28px,2.6vw,38px);letter-spacing:.06em;white-space:nowrap;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.fv__lead{position:absolute;right:60px;top:170px;color:#fff;font-size:13px;letter-spacing:.06em}
.fv__big{position:absolute;left:36px;right:36px;bottom:-14px;color:#fff;font-family:var(--en);font-weight:800;font-size:clamp(72px,12.6vw,190px);line-height:1;letter-spacing:-.04em;display:flex;justify-content:space-between;text-transform:uppercase;white-space:nowrap}
.fv__word{display:inline-block;transform:translateY(110%);animation:rise 1.1s calc(1.1s + var(--i) * .12s) var(--ease) forwards}
@keyframes rise{to{transform:none}}
.fv__scroll{position:absolute;left:60px;top:200px;color:#fff;font-family:var(--en);font-size:11px;letter-spacing:.2em;padding-left:56px}
.fv__scroll::before{content:"";position:absolute;left:0;top:50%;width:40px;height:1px;background:#fff;transform-origin:left;animation:line 2s infinite}
@keyframes line{0%{transform:scaleX(0)}50%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
.fv__body{padding:60px 0 0;font-size:18px;line-height:2;max-width:760px;margin-left:auto;margin-right:0}

/* ---- TOPICS ---- */
.tp{padding:120px 0 140px}
.tp__grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.tp__first{display:block}
.tp__img{display:block;aspect-ratio:671/377;border-radius:var(--r);overflow:hidden;margin-bottom:22px}
.tp__img img,.cases__img img,.dt__others-img img,.bz__card-img img,.sv-card__img img,.gn__img img,.ab__card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tp__first:hover img,.cases li:hover img,.dt__others a:hover img,.bz__card a:hover img,.sv-card a:hover img,.ab__card:hover img{transform:scale(1.08)}
.tp__meta{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.tp__tag{display:inline-block;font-size:12px;font-weight:500;color:var(--rc-navy);border:1px solid var(--rc-navy);border-radius:4px;padding:3px 12px}
.tp__title{display:block;font-size:18px;font-weight:500;line-height:1.6;color:var(--rc-ink)}
.tp__sum{display:block;font-size:14px;color:#555;margin-top:10px}
.tp__list li{border-top:1px solid var(--rc-line);padding:24px 0}
.tp__list li:last-child{border-bottom:1px solid var(--rc-line)}
.tp__list a{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:start}
.tp__list .tp__title{font-size:16px}
.tp__note{font-size:12px;color:var(--rc-muted);margin-top:30px;text-align:right}
.tp__more{display:flex;justify-content:flex-end;margin-top:20px}

/* ---- OUR SERVICE（紺） ---- */
.bz{background:var(--rc-navy);color:#fff;padding-bottom:120px}
.bz__band{padding:0 20px}
.bz__band-img{border-radius:var(--r);overflow:hidden;aspect-ratio:1400/560;clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
/* ★罠：clip-path で高さ 0 に切った要素は IntersectionObserver が「見えていない」と判定する（実機で一度も開かなかった）。親（.rv）の is-in で開く */
.bz__band.is-in .bz__band-img{clip-path:inset(0)}
.bz__band-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 1.4s var(--ease)}
.bz__band.is-in .bz__band-img img{transform:none}
.bz__intro{display:grid;grid-template-columns:1fr 340px;gap:60px;align-items:end;padding:110px 0 120px}
.bz__lead{font-size:20px;font-weight:700;margin-bottom:20px;line-height:1.6}
.bz__text p+p{margin-top:1em}
.bz__cards{display:grid;grid-template-columns:1fr 1fr}
.bz__card a{display:grid;grid-template-columns:1fr 250px;gap:30px;padding:50px;min-height:400px;border-top:1px solid rgba(255,255,255,.14)}
.bz__card:nth-child(odd) a{background:var(--rc-navy-2);border-right:1px solid rgba(255,255,255,.1)}
.bz__card:nth-child(even) a{background:var(--rc-navy)}
.bz__card:nth-child(n+3) a{border-top:0}
@media (min-width:768px){.bz__card:last-child:nth-child(odd){grid-column:1/-1}.bz__card:last-child:nth-child(odd) a{border-right:0;grid-template-columns:1fr 250px}} /* 5 件目など奇数の最後は横いっぱい（2026-09-16） */
.bz__card-text{display:flex;flex-direction:column;height:100%}
.bz__card-title{font-size:26px;font-weight:700;line-height:1.4}
.bz__card-lead{font-size:14px;margin-top:8px;color:rgba(255,255,255,.8)}
.bz__card-en{margin-top:auto;font-family:var(--en);font-weight:700;font-size:14px;letter-spacing:.04em;color:#95a5c6;line-height:1.25;text-transform:uppercase}
.bz__card-img{display:block;aspect-ratio:250/300;border-radius:var(--r);overflow:hidden}
.bz__more{display:flex;justify-content:flex-end;margin-top:60px}

/* ---- WHY ---- */
.st{padding:120px 0 0}
.st__lead{font-size:24px;font-weight:700;line-height:1.5;margin-bottom:16px;color:var(--rc-navy)}
.st__body{max-width:760px;margin-bottom:60px}
.st__list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.st__list li{border-top:2px solid var(--rc-navy);padding-top:24px}
.st__num{font-family:var(--en);font-weight:800;font-size:40px;color:var(--rc-red);line-height:1;display:block;margin-bottom:16px}
.st__title{font-size:20px;font-weight:700;margin-bottom:12px}

/* ---- ABOUT ---- */
.ab{position:relative;padding:140px 0 0;overflow:hidden}
.ab__brush{position:absolute;left:0;top:0;width:100%;height:900px;z-index:0}
.ab__intro,.ab__band,.ab__cards{position:relative;z-index:1}
.ab__intro{display:grid;grid-template-columns:1fr 440px;gap:60px;align-items:end;padding-bottom:70px}
/* 右の理念文：左に朱の線＋英字の小見出し＋会社情報への導線で「置いてあるだけ」に見えないようにする（2026-09-16 スターク指摘） */
.ab__text{border-left:2px solid var(--rc-red);padding-left:32px}
.ab__mark{font-family:var(--en);font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--rc-red);margin-bottom:14px}
.ab__lead{font-size:24px;font-weight:700;line-height:1.5;margin-bottom:18px;color:var(--rc-navy)}
.ab__body p+p{margin-top:1em}
.ab__more{margin-top:24px;font-size:14px;font-weight:700}.ab__more a{display:inline-flex;align-items:center;gap:10px;color:var(--rc-navy);border-bottom:1px solid var(--rc-navy);padding-bottom:4px}.ab__more a span{transition:transform .3s}.ab__more a:hover{color:var(--rc-red);border-color:var(--rc-red)}.ab__more a:hover span{transform:translateX(5px)}
.ab__band{position:relative;margin:0 60px 100px}
.ab__band-img{border-radius:var(--r);overflow:hidden;aspect-ratio:1240/500}
.ab__band-img img{width:100%;height:100%;object-fit:cover}
.ab__wire{position:absolute;left:0;right:0;bottom:-.28em;text-align:center;font-family:var(--en);font-weight:700;font-size:clamp(60px,9.6vw,140px);line-height:1;letter-spacing:.12em;color:transparent;-webkit-text-stroke:1.5px var(--rc-red);pointer-events:none;white-space:nowrap}
.ab__cards{display:grid;gap:90px;padding-bottom:140px}
.ab__card{display:grid;grid-template-columns:595px 1fr;gap:50px;align-items:center;width:min(1240px,100%);margin-inline:auto}
.ab__card--rev{grid-template-columns:1fr 595px}
.ab__card--rev .ab__card-img{order:2}
.ab__card-img{display:block;aspect-ratio:595/300;border-radius:var(--r);overflow:hidden}
.ab__card-en{display:block;font-family:var(--en);font-weight:800;font-size:60px;line-height:.9;letter-spacing:-.05em;color:var(--rc-ink);text-transform:uppercase}
.ab__card-ja{display:block;font-size:18px;font-weight:700;margin:14px 0 24px;color:var(--rc-ink)}
.ab__card-body{display:block;font-size:16px;max-width:360px}

/* ---- 数字 ---- */
.nm{background:var(--rc-navy);color:#fff;padding:120px 0}
.nm__list{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;border-top:1px solid rgba(255,255,255,.2)}
.nm__list li{padding-top:30px;border-left:1px solid rgba(255,255,255,.2);padding-left:24px}
.nm__label{display:block;font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.1em;color:#95a5c6}
.nm__value{display:block;font-family:var(--en);font-weight:800;font-size:72px;line-height:1.1;letter-spacing:-.04em;margin:10px 0 4px}
.nm__value small{font-family:var(--ja);font-size:16px;font-weight:500;margin-left:6px}
.nm__title{display:block;font-weight:700}
.nm__note{display:block;font-size:13px;color:rgba(255,255,255,.7)}
.nm__caveat{margin-top:40px;font-size:13px;color:#95a5c6}

/* ---- 流れ ---- */
.fl{padding:120px 0 40px}
.fl__intro{max-width:760px;margin-bottom:60px}
.fl__lead{font-size:20px;font-weight:700;margin-bottom:12px;color:var(--rc-navy)}
.fl__steps{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;counter-reset:s}
.fl__steps li{position:relative;background:var(--rc-paper);border-radius:var(--r);padding:28px 22px 30px}
.fl__steps li::after{content:"→";position:absolute;right:-20px;top:30px;color:var(--rc-red);font-weight:700;font-size:18px}
.fl__steps li:last-child::after{display:none}
.fl__num{font-family:var(--en);font-weight:800;font-size:28px;color:var(--rc-red);line-height:1;display:block;margin-bottom:14px}
.fl__steps h3{font-size:17px;font-weight:700;line-height:1.5;min-height:3em}
.fl__meta{display:inline-block;font-size:12px;color:var(--rc-navy);border:1px solid var(--rc-navy);border-radius:99px;padding:1px 10px;margin:6px 0 12px}
.fl__steps p{font-size:14px;line-height:1.7}
.fl__steps--page{margin-bottom:140px}

/* ---- 声 ---- */
.vc{padding:80px 0 140px}
.vc__list{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.vc__list li{background:#fff;border-radius:var(--r);padding:36px 30px;position:relative}
.vc__list li::before{content:"“";position:absolute;left:24px;top:8px;font-family:var(--en);font-weight:800;font-size:64px;color:var(--rc-red);line-height:1}
.vc__title{font-size:18px;font-weight:700;margin:30px 0 14px;line-height:1.5}
.vc__body{font-size:15px}
.vc__attr{font-size:13px;color:var(--rc-muted);margin-top:18px}
.vc__caveat{font-size:13px;color:var(--rc-muted);margin-top:30px}

/* ---- フッター ---- */
.ft__bands{display:grid;grid-template-columns:1fr 1fr;color:#fff}
.ft__band{padding:96px 50px 64px;min-height:428px;display:flex;flex-direction:column}
.ft__band--a{background:var(--rc-navy-2)}
.ft__band--b{background:var(--rc-navy)}
.ft__band .rc-head{margin-bottom:24px}
.ft__band .rc-head__en,.ft__band .rc-head__ja{color:#fff}
.ft__band-text{max-width:420px;font-weight:500;margin-bottom:12px}
.ft__band-body{max-width:520px;font-size:15px;color:rgba(255,255,255,.85)}
.ft__band-btn{margin-top:auto;padding-top:40px;display:flex;justify-content:flex-end;align-items:center;gap:32px}
.ft__band-tel{text-align:left;font-size:12px;color:rgba(255,255,255,.75);line-height:1.5;margin-right:auto} /* 電話は左端、ボタンは右端（2026-09-16 スターク指示） */.ft__band-tel a{font-family:var(--en);font-weight:700;font-size:22px;color:#fff;letter-spacing:.02em;display:block}.ft__band-tel a:hover{color:var(--rc-red)}
.ft__map{background:var(--rc-dark);color:#fff;padding:120px 0 40px}
.ft__grid{display:grid;grid-template-columns:1.6fr;grid-auto-flow:column;grid-auto-columns:1fr;gap:40px} /* ページ数が変わっても 1 行に収まる（2026-09-16） */
.ft__company{margin-top:24px;font-weight:700}
.ft__addr{font-size:13px;color:rgba(255,255,255,.7);margin-top:8px}
.ft__sns{margin-top:16px;font-size:13px}
.ft__sns a{border-bottom:1px solid rgba(255,255,255,.5)}
.ft__col-title{font-size:15px;font-weight:500;margin-bottom:14px}
.ft__col ul{border-left:1px solid rgba(255,255,255,.3);padding-left:22px}
.ft__col ul a{display:block;font-size:14px;color:rgba(255,255,255,.85);padding:5px 0}
.ft__col ul a:hover{color:var(--rc-red)}
.ft__copy{text-align:center;font-size:12px;color:rgba(255,255,255,.6);margin-top:80px;font-family:var(--en)}

/* ---- 巨大な社名が流れる帯（最下部） ---- */
.gb{position:relative;height:830px;overflow:hidden;background:var(--rc-navy-3);color:#fff}
.gb__img{position:absolute;inset:0}.gb__img img{width:100%;height:100%;object-fit:cover}
.gb__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,26,54,.78),rgba(11,26,54,.55) 45%,rgba(11,26,54,.7))}
.gb__track{position:absolute;left:0;top:-0.06em;display:flex;white-space:nowrap;font-family:var(--en);font-weight:800;font-size:300px;line-height:1;letter-spacing:-.04em;text-transform:uppercase;animation:gb 50s linear infinite;will-change:transform}
.gb__text{padding-right:.25em}
@keyframes gb{to{transform:translateX(-50%)}}
.gb__copy{position:absolute;left:50%;top:330px;transform:translateX(-50%);font-family:var(--serif);font-weight:500;font-size:clamp(28px,3vw,44px);letter-spacing:.06em;white-space:nowrap;text-shadow:0 2px 24px rgba(0,0,0,.35)}
@media (prefers-reduced-motion:reduce){.gb__track{animation:none}}

/* ---- 下層の頭 ---- */
.ph{padding-bottom:0}
.ph__en{font-family:var(--en);font-weight:800;font-size:clamp(56px,8.3vw,120px);line-height:.9;letter-spacing:-.05em;color:var(--rc-ink);text-transform:uppercase;margin-top:130px;padding-left:80px}
.ph__ja{font-size:18px;font-weight:700;color:var(--rc-ink);margin-top:20px;padding-left:90px}
.ph__lead{font-family:var(--serif);font-size:clamp(28px,3vw,44px);line-height:1.35;letter-spacing:.04em;color:var(--rc-ink);margin:80px 0 0 80px;font-weight:500}
.ph__band{padding:100px 20px 0}
.ph__img{border-radius:var(--r);overflow:hidden;aspect-ratio:1400/560}
.ph__img img{width:100%;height:100%;object-fit:cover}
.ph--dark{background:var(--rc-navy);color:#fff}

/* ---- 会社情報 ---- */
.cp-navy{background:var(--rc-navy);color:#fff;margin-top:120px;padding-bottom:140px}
.cp-phil{display:grid;grid-template-columns:200px 1fr 500px;gap:60px;align-items:start;padding:110px 0 0}
.cp-phil__mark{color:rgba(255,255,255,.35)}.cp-phil__mark .rc-logo__mark{width:86px;height:86px}
.cp-phil__lead{font-family:var(--serif);font-size:32px;line-height:1.5;letter-spacing:.04em;margin-bottom:24px}
.cp-phil__img{border-radius:var(--r);overflow:hidden;aspect-ratio:500/634}
.cp-phil__img img{width:100%;height:100%;object-fit:cover}
.cp-values{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:100px}
.cp-values li{border-top:1px solid rgba(255,255,255,.3);padding-top:22px}
.cp-values__en{font-family:var(--en);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--rc-red);display:block;margin-bottom:8px}
.cp-values h3{font-size:22px;font-weight:700;margin-bottom:12px}
.cp-values p{font-size:14px;color:rgba(255,255,255,.85)}

/* ---- 2 列（サイドバー＋本文） ---- */
.two{padding:120px 0 160px}
.two__grid{display:grid;grid-template-columns:250px 890px;justify-content:space-between;gap:40px}
.side{position:sticky;top:120px;align-self:start}
.side__title{color:var(--rc-navy);font-size:18px;padding-bottom:26px;margin-bottom:0}
.side__list{border-top:1px solid var(--rc-line)}
.side__list li{border-bottom:1px solid var(--rc-line)}
.side__list a{display:block;padding:18px 20px;font-size:15px;transition:background .3s,color .3s}
.side__list li.is-current a,.side__list li.is-current a:hover{background:var(--rc-navy);color:#fff}
.side__list a:hover{background:var(--rc-panel)}
.side__ext a{color:var(--rc-red)}
.blk{margin-bottom:110px}
.blk__title{position:relative;font-size:30px;font-weight:700;line-height:1.2;padding-left:30px;margin-bottom:50px}
.blk__title::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--rc-navy)}
.msg{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.msg__img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;position:sticky;top:140px}
.msg__img img{width:100%;height:100%;object-fit:cover}
.msg__en{font-family:var(--en);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--rc-red);margin-bottom:8px}
.msg__lead{font-family:var(--serif);font-size:28px;line-height:1.5;margin-bottom:24px;color:var(--rc-ink)}
.msg__text p+p{margin-top:1.2em}
.msg__sign{font-weight:700;margin-top:30px!important}
.tbl{border-top:1px solid var(--rc-line)}
.tbl__row{display:grid;grid-template-columns:200px 1fr;padding:30px 0;border-bottom:1px solid var(--rc-line)}
.tbl dt{font-weight:700}
.tbl dd{line-height:1.8}
.hist li{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--rc-line)}
.hist__when{font-family:var(--en);font-weight:700;color:var(--rc-navy)}
.acc{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.acc__img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}.acc__img img{width:100%;height:100%;object-fit:cover}
.acc__addr{font-weight:700;margin-bottom:10px}
.acc__text p+p{margin-top:.8em}

/* ---- サービス一覧 ---- */
.sv-navy{background:var(--rc-navy);color:#fff;margin-top:120px;padding:120px 0 140px}
.sv-intro{max-width:760px;margin-bottom:90px;font-size:18px;line-height:2}
.sv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:140px}
.sv-card a{display:flex;flex-direction:column;height:100%;padding:50px 40px 44px;border-right:1px solid rgba(255,255,255,.14)}
.sv-card:nth-child(even) a{background:var(--rc-navy-2)}
.sv-card:last-child a{border-right:0}
.sv-card__img{display:block;aspect-ratio:380/300;border-radius:var(--r);overflow:hidden;margin-bottom:30px}
.sv-card__num{font-family:var(--en);font-weight:800;font-size:16px;color:var(--rc-red)}
.sv-card__title{font-size:24px;font-weight:700;line-height:1.35;margin-top:10px}
.sv-card__lead{font-size:14px;color:rgba(255,255,255,.8);margin-top:6px}
.sv-card__sum{font-size:14px;line-height:1.8;margin-top:20px;color:rgba(255,255,255,.9)}
.sv-card__en{margin-top:auto;padding-top:30px;font-family:var(--en);font-weight:700;font-size:12px;letter-spacing:.06em;color:#95a5c6;text-transform:uppercase}
.sv-card__more{font-size:13px;margin-top:14px;font-weight:500}
.sv-str{color:var(--rc-ink);padding:110px 100px}
.quote{position:relative;width:min(560px,100%);margin:0 auto 40px;padding:40px 30px;text-align:center}
.quote::before,.quote::after{content:"";position:absolute;width:24px;height:24px;border:1px solid var(--rc-ink)}
.quote::before{left:0;top:0;border-right:0;border-bottom:0}
.quote::after{right:0;bottom:0;border-left:0;border-top:0}
.quote__ja{font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.5}
.quote__en{font-family:var(--en);font-size:14px;letter-spacing:.06em;margin-top:8px;color:#555}
.sv-str__body{max-width:720px;margin:0 auto 70px;text-align:center;color:var(--rc-navy);font-weight:500}
.circles{display:flex;justify-content:center;margin-inline:auto}
.circles li{width:310px;height:310px;border:1px dashed var(--rc-navy);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;background:rgba(255,255,255,.7);margin-left:-20px}
.circles li:first-child{margin-left:0}
.circles__num{font-family:var(--en);font-weight:800;font-size:30px;margin-bottom:18px;color:var(--rc-ink)}
.circles__text{font-size:16px;font-weight:700;line-height:1.6}
.faq{border-top:1px solid var(--rc-line)}
.faq__item{border-bottom:1px solid var(--rc-line)}
.faq dt button{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;width:100%;text-align:left;padding:28px 0;font-size:17px;font-weight:700}
.faq__q,.faq__a{font-family:var(--en);font-weight:800;color:var(--rc-red);font-size:20px}
.faq__pm{position:relative;width:20px;height:20px;justify-self:end}
.faq__pm::before,.faq__pm::after{content:"";position:absolute;left:0;top:9px;width:20px;height:2px;background:var(--rc-navy);transition:transform .4s}
.faq__pm::after{transform:rotate(90deg)}
.faq dt button[aria-expanded="true"] .faq__pm::after{transform:rotate(0)}
.faq dd{display:grid;grid-template-columns:40px 1fr;padding:0 0 28px;overflow:hidden}
.faq dd[hidden]{display:none}
.faq dd p{color:#444}

/* ---- 汎用ページ ---- */
.gn{padding:120px 0 160px}
.gn__sec{padding:60px 0;border-top:1px solid var(--rc-line)}
.gn__sec:first-child{border-top:0;padding-top:0}
.gn__sec--img,.gn__sec--rev{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.gn__sec--rev .gn__img{order:2}
.gn__img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.gn__en{font-family:var(--en);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--rc-red);margin-bottom:10px}
.gn__title{font-size:32px;font-weight:700;line-height:1.35;margin-bottom:16px}
.gn__lead{font-size:18px;font-weight:700;color:var(--rc-navy);margin-bottom:20px}
.gn__body p+p,.gn__body ul+p,.gn__body p+ul{margin-top:1em}
.gn__sec--cta{background:var(--rc-panel);border-radius:var(--r);padding:70px 60px;border-top:0;margin-top:40px}

/* ---- サービス詳細 ---- */
.dt{background:linear-gradient(180deg,var(--rc-navy) 0,var(--rc-navy) 66%,#fff 66%)}
.dt__navy{color:#fff}
.dt__head{display:grid;grid-template-columns:1fr 400px;gap:60px;align-items:start;padding:70px 0 60px}
.dt__en{font-family:var(--en);font-weight:700;font-size:13px;letter-spacing:.14em;color:#95a5c6;margin-bottom:14px}
.dt__title{font-size:40px;font-weight:600;line-height:1.3}
.dt__lead{font-size:18px;line-height:1.8;padding-top:14px}
.dt__img{width:min(1240px,100%);margin-inline:auto;border-radius:var(--r);overflow:hidden;aspect-ratio:1240/700}
.dt__img img{width:100%;height:100%;object-fit:cover}
.two--detail{padding-top:100px}
.dt__sum{font-size:18px;line-height:2;margin-bottom:60px}
.dt__target .rc-list li{font-size:17px;font-weight:500;padding:6px 0}
.circles--detail{margin-bottom:50px}
.circles--detail li{width:280px;height:280px}
.pts li{display:grid;grid-template-columns:70px 1fr;gap:10px 20px;padding:30px 0;border-top:1px solid var(--rc-line)}
.pts__num{font-family:var(--en);font-weight:800;font-size:34px;color:var(--rc-red);line-height:1;grid-row:span 2}
.pts h3{font-size:20px;font-weight:700}
.cases{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.cases__img{display:block;aspect-ratio:430/321;border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.cases__cat{display:inline-block;font-size:12px;color:var(--rc-navy);border:1px solid var(--rc-navy);border-radius:4px;padding:2px 10px;margin-bottom:10px}
.cases h3{font-size:18px;font-weight:700;line-height:1.5;margin-bottom:8px}
.cases p{font-size:14px;color:#444}
.dt__cta{background:var(--rc-panel);border-radius:var(--r);padding:50px;display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:90px}
.dt__cta-lead{font-size:22px;font-weight:700}
.dt__others-title{font-size:14px;font-weight:700;color:var(--rc-muted);margin-bottom:20px}
.dt__others ul{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.dt__others-img{display:block;aspect-ratio:3/2;border-radius:var(--r);overflow:hidden;margin-bottom:12px}
.dt__others-name{display:block;font-weight:700}
.dt__others-lead{display:block;font-size:13px;color:#555}

/* ---- お問い合わせ（型 contact）2026-09-16 ---- */
.ct{padding:40px 0 140px}
.ct__grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:80px;align-items:start}
.ct__intro{font-weight:500;margin-bottom:40px;max-width:640px}
.ct__note{background:var(--rc-panel);border-radius:var(--r);padding:32px;font-size:14px;line-height:1.9}
.ct__note dt{font-weight:700;color:var(--rc-navy);margin-top:14px}.ct__note dt:first-child{margin-top:0}
.ct__note a.ct__tel{font-family:var(--en);font-weight:700;font-size:26px;color:var(--rc-navy);display:block;line-height:1.2}
.ct__msg{border-radius:var(--r);padding:22px 28px;margin-bottom:32px;font-weight:500;border:1px solid var(--rc-line)}
.ct__msg--ok{background:#eef6ee;border-color:#8fbf8f;color:#1f5a1f}
.ct__msg--ng{background:#fbeeea;border-color:#e0a091;color:#8a2b1a}
.form{display:grid;gap:26px}
.form__row{display:grid;gap:10px}
.form__label{font-weight:700;font-size:15px;display:flex;align-items:center;gap:10px}
.form__req{font-size:11px;color:#fff;background:var(--rc-red);border-radius:4px;padding:2px 8px;font-weight:500}
.form__opt{font-size:11px;color:var(--rc-muted);border:1px solid var(--rc-line);border-radius:4px;padding:2px 8px;font-weight:500}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;font:inherit;font-size:16px;padding:16px 18px;border:1px solid var(--rc-line);border-radius:10px;background:#fff;color:var(--rc-ink);transition:border-color .3s,box-shadow .3s}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--rc-navy);box-shadow:0 0 0 3px rgba(15,34,68,.12)}
.form textarea{min-height:220px;resize:vertical}
.form__agree{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.7}
.form__agree input{width:20px;height:20px;margin-top:2px;accent-color:var(--rc-navy);flex:none}
.form__agree a{text-decoration:underline;text-underline-offset:3px}
.form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__submit{display:flex;justify-content:flex-start;padding-top:10px}
.form__btn{display:inline-flex;align-items:center;gap:14px;background:var(--rc-navy);color:#fff;border:0;border-radius:99px;padding:20px 40px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:background .3s,transform .3s}
.form__btn:hover{background:var(--rc-red);transform:translateY(-2px)}
.form__btn:disabled{opacity:.6;cursor:wait;transform:none}

/* ---- スマホ ---- */
@media (max-width:1100px){
	.two__grid{grid-template-columns:1fr}
	.side{position:static}
	.side__list{display:flex;flex-wrap:wrap;gap:8px;border:0}
	.side__list li{border:1px solid var(--rc-line);border-radius:99px}
	.side__list a{padding:8px 16px;font-size:13px;border-radius:99px}
	.bz__cards,.sv-cards{grid-template-columns:1fr 1fr}
	.sv-cards{grid-template-columns:1fr 1fr}.sv-card:nth-child(2n) a{border-right:0}
	.nm__list,.cp-values{grid-template-columns:1fr 1fr}
	.cp-phil{grid-template-columns:1fr;gap:30px}
	.cp-phil__img{max-width:420px}
	.ft__grid{grid-template-columns:1fr 1fr;grid-auto-flow:row}
	.fl__steps{grid-template-columns:repeat(3,1fr)}
	.fl__steps li::after{display:none}
	.ab__card,.ab__card--rev{grid-template-columns:1fr}
	.ab__card--rev .ab__card-img{order:0}
}
@media (max-width:767px){
	:root{--gut:16px}
	.hd{height:96px;padding:28px 20px 0}
	.hd__nav{display:none}
	.rc-logo{font-size:16px}.rc-logo__mark{width:24px;height:24px}
	.hd__menu{width:48px;height:48px;margin-top:-6px;margin-left:auto}
	.menu__inner{margin:120px auto 60px;width:min(100% - 48px,600px)}
	.menu__list{grid-template-columns:1fr}
	.rc-head__en{font-size:44px}
	.giant{font-size:min(17vw,64px)}
	.panel{padding:50px 24px;border-radius:8px}
	.fv{padding:8px 8px 0}
	.fv__frame{height:calc(100svh - 8px);min-height:560px}
	.fv__eyebrow,.fv__lead{left:20px;top:104px;font-size:11px}
	.fv__lead{top:126px;font-size:12px}
	.fv__copy{white-space:normal;text-align:center;width:90%;font-size:26px;transform:translate(-50%,-60%)}
	.fv__big{left:12px;right:12px;flex-direction:column;align-items:flex-start;font-size:min(22vw,120px);bottom:-8px;line-height:.9}
	.fv__scroll{display:none}
	.fv__body{padding-top:40px;font-size:16px}
	.tp{padding:80px 0}.tp__grid{grid-template-columns:1fr;gap:30px}.tp__list a{grid-template-columns:1fr;gap:6px}
	.bz{padding-bottom:80px}.bz__intro{grid-template-columns:1fr;gap:30px;padding:70px 0}
	.bz__cards{grid-template-columns:1fr}.bz__card a{grid-template-columns:1fr;min-height:0;padding:30px 20px;border-right:0!important;border-top:1px solid rgba(255,255,255,.14)!important}
	.bz__card-img{aspect-ratio:16/9;max-width:100%}
	.bz__card-en{margin-top:16px}
	.st{padding:80px 0 0}.st__list{grid-template-columns:1fr;gap:28px}
	.ab{padding-top:80px}.ab__intro{grid-template-columns:1fr;gap:24px;padding-bottom:40px}
	.ab__band{margin:0 0 60px}.ab__wire{font-size:12vw;-webkit-text-stroke-width:1px}
	.ab__cards{gap:50px;padding-bottom:80px}.ab__card-en{font-size:40px}
	.nm{padding:80px 0}.nm__list{grid-template-columns:1fr 1fr;gap:24px}.nm__value{font-size:38px}
	.fl{padding:80px 0 20px}.fl__steps{grid-template-columns:1fr;gap:12px}
	.vc{padding:40px 0 80px}.vc__list{grid-template-columns:1fr}
	.ft__bands{grid-template-columns:1fr}.ft__band{padding:60px 24px 40px;min-height:0}
	.ft__band-btn{flex-wrap:wrap;gap:20px}.ft__band-tel{width:100%;text-align:left}.ft__band-tel a{white-space:nowrap}
	.ft__map{padding:70px 0 30px}.ft__grid{grid-template-columns:1fr;gap:30px;grid-auto-flow:row}
	.gb{height:480px}.gb__track{font-size:130px;top:-0.04em}.gb__copy{top:170px;font-size:24px;white-space:normal;width:90%;text-align:center}
	.crumb{padding-top:110px;justify-content:flex-start;flex-wrap:wrap}
	.ph__en{margin-top:50px;padding-left:0;font-size:clamp(40px,13vw,56px);overflow-wrap:anywhere}.ph__ja{padding-left:4px}.ph__lead{margin:40px 0 0;font-size:24px}
	.ph__band{padding:50px 8px 0}.ph__img{aspect-ratio:4/3}
	.cp-navy{margin-top:70px;padding-bottom:80px}.cp-phil{padding-top:60px}.cp-phil__lead{font-size:24px}
	.cp-values{grid-template-columns:1fr;margin-top:60px}
	.two{padding:70px 0 90px}.blk{margin-bottom:70px}.blk__title{font-size:24px;padding-left:22px;margin-bottom:30px}
	.msg,.acc{grid-template-columns:1fr}.msg__img{position:static}.msg__lead{font-size:22px}
	.tbl__row,.hist li{grid-template-columns:1fr;gap:4px;padding:18px 0}
	.sv-navy{margin-top:70px;padding:70px 0 80px}.sv-intro{margin-bottom:50px;font-size:16px}
	.sv-cards{grid-template-columns:1fr;margin-bottom:80px}.sv-card a{border-right:0;border-bottom:1px solid rgba(255,255,255,.14);padding:36px 20px}
	.sv-str{padding:50px 20px}.quote__ja{font-size:20px}
	.circles{flex-direction:column;align-items:center}.circles li,.circles--detail li{width:240px;height:240px;margin:-12px 0 0}
	.faq dt button{font-size:15px;padding:20px 0;grid-template-columns:30px 1fr 30px}.faq dd{grid-template-columns:30px 1fr}
	.gn{padding:60px 0 90px}.gn__sec--img,.gn__sec--rev{grid-template-columns:1fr;gap:24px}.gn__sec--rev .gn__img{order:0}
	.gn__title{font-size:24px}.gn__sec--cta{padding:40px 24px}
	.ct{padding:20px 0 90px}.ct__grid{grid-template-columns:1fr;gap:40px}.ct__note{padding:24px}.form__btn{width:100%;justify-content:center}
	.dt__head{grid-template-columns:1fr;gap:20px;padding:40px 0}.dt__title{font-size:28px}.dt__img{aspect-ratio:4/3}
	.two--detail{padding-top:60px}.dt__sum{font-size:16px;margin-bottom:40px}
	.pts li{grid-template-columns:50px 1fr}.pts__num{font-size:26px}
	.cases,.dt__others ul{grid-template-columns:1fr}
	.dt__cta{flex-direction:column;align-items:flex-start;padding:30px 24px;margin-bottom:60px}.dt__cta-lead{font-size:18px}
}
