/* ═══════════════════════════════════════════════════
   コスモ運輸 v7
   v4の構造 × v6の品格 × 多彩な動き × 余韻
   ═══════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#1a1a1a;--ink-mid:#4a4a4a;--ink-light:#888;--ink-faint:#c8c8c8;
  --paper:#FAF9F6;--paper-warm:#F5F3EE;--white:#fff;
  --accent:#0a6e56;--accent-dark:#055844;--accent-light:#e8f3ef;
  --gold:#D4A76A;--gold-light:#E8C48A;--gold-pale:#fbf7f0;
  --serif:'Noto Serif JP',serif;
  --sans:'Zen Maru Gothic','Noto Sans JP',sans-serif;
  /* 余韻のあるイージング */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.25,.1,.25,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}
html{font-size:17px;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.75;letter-spacing:.05em;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:'palt' 1}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:1080px;margin:0 auto;padding:0 40px}

/* ═══ HEADER — フロートバー（常時半透明白） ═══ */
.hd{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:60px;width:min(92%,1200px);border-radius:40px;background:rgba(255,255,255,.25);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 32px rgba(0,0,0,.04);transition:background .5s var(--ease-soft),box-shadow .5s}
.hd-logo{display:flex;align-items:center;gap:8px}
.hd-logo-img{height:14px;width:auto}
.hd-logo-sub{font-size:.46rem;color:var(--ink-light);letter-spacing:.14em}

.hd-nav{display:flex;gap:0;align-items:center}
.hd-nav>a,.hd-nav>.dd{position:relative}
.hd-nav>a,.hd-nav>.dd>a{font-size:.88rem;font-weight:400;color:var(--ink-mid);letter-spacing:.08em;padding:8px 16px;display:inline-flex;align-items:center;gap:4px;transition:color .3s}
.hd-nav>a:hover,.hd-nav>a.on,.hd-nav>.dd>a:hover{color:var(--ink)}
.hd-nav>a.on::after{content:'';position:absolute;bottom:2px;left:16px;right:16px;height:1px;background:var(--accent)}

/* ドロップダウン */
.dd-arrow{width:10px;height:10px;opacity:.35;transition:transform .25s,opacity .25s}
.dd:hover .dd-arrow{transform:rotate(180deg);opacity:.7}
.dd-sub{position:absolute;top:calc(100% + 8px);left:-8px;min-width:170px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.08);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .3s var(--ease-soft);z-index:110}
.dd:hover .dd-sub{opacity:1;visibility:visible;transform:translateY(0)}
.dd-sub a{display:block;padding:9px 22px;font-size:.7rem;color:var(--ink-light);transition:all .2s}
.dd-sub a:hover{background:var(--accent-light);color:var(--accent-dark)}
.dd-sub a:first-child{border-radius:10px 10px 0 0}
.dd-sub a:last-child{border-radius:0 0 10px 10px}

.hd-menu{display:none;background:none;border:none;cursor:pointer;width:36px;height:36px;position:relative;z-index:210}
.hd-menu span{display:block;width:18px;height:1.5px;background:var(--ink);position:absolute;left:9px;transition:.35s var(--ease-out);border-radius:1px}
.hd-menu span:first-child{top:14px}
.hd-menu span:last-child{top:22px}
.hd-menu.active span:first-child{top:18px;transform:rotate(45deg)}
.hd-menu.active span:last-child{top:18px;transform:rotate(-45deg)}

/* メニュー開き時の背景オーバーレイ */
body.menu-open::after{content:'';position:fixed;inset:0;background:rgba(0,0,0,.15);z-index:99;pointer-events:auto}

@media(max-width:768px){
  .hd{padding:0 20px;top:10px;width:calc(100% - 24px);height:54px;border-radius:32px}
  .hd-menu{display:block}
  .hd-nav{position:fixed;top:74px;right:12px;width:200px;flex-direction:column;align-items:stretch;background:var(--paper);padding:12px 0;transform:translateY(-10px);opacity:0;visibility:hidden;transition:transform .3s var(--ease-out),opacity .3s;z-index:200;box-shadow:0 8px 32px rgba(0,0,0,.1);border-radius:12px;overflow:hidden}
  .hd-nav.open{transform:translateY(0);opacity:1;visibility:visible}
  .hd-nav>a,.hd-nav>.dd>a{font-size:.88rem;padding:12px 20px;color:var(--ink)!important;border-bottom:1px solid rgba(0,0,0,.04);width:100%;display:block}
  .hd-nav>a.on::after{display:none}
  .dd:hover .dd-sub{opacity:0;visibility:hidden}
  .dd-sub{position:static;box-shadow:none;background:rgba(0,0,0,.02);backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1!important;visibility:visible!important;transform:none;padding:0;display:none;border-radius:0;min-width:0}
  .dd.open .dd-sub{display:block}
  .dd-sub a{padding:10px 20px 10px 32px;font-size:.82rem;border-bottom:1px solid rgba(0,0,0,.02);color:var(--ink-mid)}
  .dd-arrow{display:inline-block}
}

/* ═══ SECTION COMMON ═══ */
section{padding:100px 0;position:relative}
.sec-en{display:block;font-size:.66rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.sec-title{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2rem);font-weight:600;letter-spacing:.04em;margin-bottom:16px;line-height:1.5}
.sec-lead{font-size:.92rem;color:var(--ink-mid);max-width:540px;line-height:2.1}

/* ═══ HERO ═══ */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02);animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{0%{transform:scale(1.02) translate(0,0)}100%{transform:scale(1.09) translate(-8px,4px)}}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,transparent 35%,rgba(0,0,0,.28) 100%)}
.hero-inner{position:relative;z-index:2;color:#fff;padding:0 40px;max-width:1080px;margin:0 auto;width:100%}
.hero-eyebrow{font-size:.7rem;letter-spacing:.35em;font-weight:400;opacity:0;margin-bottom:24px;text-shadow:0 1px 8px rgba(0,0,0,.15)}
.hero h1{font-family:var(--serif);font-size:clamp(1.6rem,4.2vw,2.8rem);font-weight:600;line-height:1.6;margin-bottom:20px;max-width:700px;opacity:0;text-shadow:0 2px 20px rgba(0,0,0,.3);letter-spacing:.06em}
.hero-sub{font-size:.94rem;font-weight:400;line-height:2.2;max-width:420px;margin-bottom:44px;opacity:0;text-shadow:0 1px 6px rgba(0,0,0,.2)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;opacity:0}

/* ヒーローアニメ — それぞれ微妙に違う動きで登場 */
.h-fade{animation:hFade 1.2s var(--ease-out) forwards}
.h-d1{animation-delay:.1s}
.h-d2{animation-delay:.25s}
.h-d3{animation-delay:.4s}
.h-d4{animation-delay:.55s}
@keyframes hFade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

.hero-line{position:absolute;bottom:0;left:50%;width:1px;height:56px;z-index:2;background:linear-gradient(to bottom,rgba(255,255,255,.45),transparent);animation:linePulse 2.8s ease-in-out infinite}
@keyframes linePulse{0%,100%{opacity:.25;transform:scaleY(1)}50%{opacity:.7;transform:scaleY(.55)}}

.btn-p{display:inline-flex;align-items:center;gap:8px;padding:15px 34px;background:var(--gold);color:var(--ink);font-weight:500;font-size:.86rem;border-radius:3px;letter-spacing:.06em;transition:all .5s var(--ease-soft);border:none;cursor:pointer}
.btn-p:hover{background:#c49a5a;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.btn-p svg{width:14px;height:14px}
.btn-g{display:inline-flex;align-items:center;gap:8px;padding:15px 34px;border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:400;font-size:.86rem;border-radius:3px;transition:all .5s;cursor:pointer;background:transparent;letter-spacing:.06em}
.btn-g:hover{border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.06)}

@media(max-width:768px){.hero-inner{padding:0 20px}.hero h1{font-size:clamp(1.4rem,5.6vw,1.8rem);max-width:100%}}

/* ═══ NEWS ═══ */
.news{padding:72px 0 80px;background:var(--paper-warm)}
.news-inner{max-width:680px;margin:0 auto;padding:0 40px}
.news-list{list-style:none;margin-top:32px}
.news-list li{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.04);align-items:baseline}
.news-date{font-size:.76rem;color:var(--ink-light);white-space:nowrap;min-width:86px}
.news-tag{font-size:.64rem;font-weight:500;padding:2px 10px;border-radius:2px;white-space:nowrap}
.tag-info{background:var(--accent-light);color:var(--accent-dark)}
.tag-recruit{background:#fef4e8;color:#a0632a}
.tag-holiday{background:#edf2fa;color:#4a72a0}
.news-body{font-size:.86rem;color:var(--ink);line-height:1.7}
.news-body a{color:var(--accent);text-decoration:underline}
.news-detail{display:none;padding:8px 0 4px;font-size:.82rem;line-height:1.7;color:var(--ink-mid)}
.news-detail.open{display:block}
.news-toggle{cursor:pointer;color:var(--accent);font-size:.74rem;margin-left:6px}
@media(max-width:768px){.news-inner{padding:0 20px}.news-list li{flex-direction:column;gap:5px}}

/* ═══ PHILOSOPHY ═══ */
.phil{background:var(--white);text-align:center;padding:120px 0;position:relative;overflow:hidden}
.phil .container{position:relative;z-index:2}
.phil-mission{font-family:var(--serif);font-size:clamp(1.3rem,2.8vw,1.7rem);font-weight:500;line-height:2.2;max-width:580px;margin:0 auto 72px;color:var(--accent-dark);letter-spacing:.08em}
.phil-sub{font-size:.92rem;color:var(--ink-mid);max-width:500px;margin:0 auto 0;line-height:2.2}

/* 背景画像スクロール連動（右からスライドイン） */
.phil-bg{position:absolute;top:0;bottom:0;right:0;width:55%;background:url('images/img_06.jpg') center/cover no-repeat;opacity:.08;transform:translateX(100%);will-change:transform;z-index:1;pointer-events:none}
@media(max-width:768px){.phil-bg{width:80%}}

.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:72px;text-align:left;background:rgba(0,0,0,.04);position:relative;z-index:2}
.mvv-card{padding:44px 32px;background:var(--paper);transition:background .5s var(--ease-soft)}
.mvv-card:hover{background:var(--accent-light)}
.mvv-label{display:block;font-size:.64rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.mvv-card h3{font-family:var(--serif);font-size:1.02rem;font-weight:600;margin-bottom:14px;line-height:1.8;letter-spacing:.04em}
.mvv-card p{font-size:.88rem;color:var(--ink-mid);line-height:2.1}
@media(max-width:768px){.mvv{grid-template-columns:1fr}}

/* ═══ SERVICES ═══ */
.svc{padding:100px 0;background:var(--paper)}
.svc-content{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:48px;align-items:start}
.svc-imgs{display:flex;flex-direction:column;gap:16px}
.svc-img{border-radius:4px;overflow:hidden;position:relative}
.svc-img img{width:100%;height:260px;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.svc-img:hover img{transform:scale(1.03)}
.svc-img figcaption{position:absolute;bottom:0;left:0;right:0;padding:10px 16px;background:linear-gradient(transparent,rgba(0,0,0,.4));color:#fff;font-size:.78rem;letter-spacing:.06em}
.svc-body h3{font-family:var(--serif);font-size:1.2rem;font-weight:600;margin-bottom:18px;letter-spacing:.04em}
.svc-body p{font-size:.9rem;color:var(--ink-mid);line-height:2.2;margin-bottom:20px}
.svc-list{list-style:none}
.svc-list li{display:flex;align-items:flex-start;gap:10px;font-size:.88rem;color:var(--ink-mid);padding:9px 0;border-bottom:1px solid rgba(0,0,0,.03)}
.svc-list li svg{flex-shrink:0;width:16px;height:16px;margin-top:3px;stroke:var(--accent);fill:none;stroke-width:1.5}
.svc-area{display:inline-flex;align-items:center;gap:6px;margin-top:24px;padding:12px 20px;background:var(--accent-light);border-radius:4px;font-size:.78rem;color:var(--accent-dark)}
.svc-area svg{width:14px;height:14px;stroke:var(--accent-dark);fill:none;stroke-width:1.5}
@media(max-width:768px){.svc-content{grid-template-columns:1fr}}

/* ═══ RECRUIT CTA ═══ */
.rcta{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.rcta-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.rcta-bg::after{content:'';position:absolute;inset:0;background:rgba(0,20,15,.4)}
.rcta-body{position:relative;z-index:2;color:#fff;padding:40px}
.rcta-msg{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.2rem);font-weight:500;letter-spacing:.1em;margin-bottom:14px;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.rcta-sub{font-size:.92rem;font-weight:400;line-height:2;margin-bottom:32px;opacity:.95;text-shadow:0 1px 10px rgba(0,0,0,.3)}
.btn-w{display:inline-block;padding:14px 40px;border:1px solid rgba(255,255,255,.35);color:#fff;font-size:.72rem;letter-spacing:.14em;transition:all .5s var(--ease-soft)}
.btn-w:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}

/* ═══ FOOTER ═══ */
.ft{background:#252827;color:rgba(255,255,255,.4);padding:52px 40px 24px}
.ft-inner{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:start;margin-bottom:44px}
.ft-brand span{display:block;font-family:var(--serif);font-size:.82rem;font-weight:500;color:rgba(255,255,255,.75);letter-spacing:.08em;margin-bottom:10px}
.ft-brand small{font-size:.64rem;line-height:2;display:block}
.ft-nav{display:flex;gap:24px}
.ft-nav a{font-size:.66rem;letter-spacing:.08em;transition:color .3s}
.ft-nav a:hover{color:rgba(255,255,255,.8)}
.ft-copy{text-align:center;font-size:.58rem;letter-spacing:.08em;border-top:1px solid rgba(255,255,255,.05);padding-top:18px;max-width:1080px;margin:0 auto}
@media(max-width:768px){.ft{padding:40px 20px 20px}.ft-inner{flex-direction:column;gap:24px}.ft-nav{flex-direction:column;gap:6px}}

/* ═══ ANIMATIONS — 多彩で余韻のある動き ═══ */

/* 1. フェードアップ（基本） — ゆっくり着地 */
.a-up{opacity:0;transform:translateY(32px);transition:opacity 1.3s var(--ease-soft),transform 1.3s var(--ease-soft)}
.a-up.v{opacity:1;transform:translateY(0)}

/* 2. スライドイン左から — 写真向け、大きめの移動 */
.a-left{opacity:0;transform:translateX(-60px);transition:opacity 1.4s var(--ease-out),transform 1.4s var(--ease-out)}
.a-left.v{opacity:1;transform:translateX(0)}

/* 3. スライドイン右から */
.a-right{opacity:0;transform:translateX(60px);transition:opacity 1.4s var(--ease-out),transform 1.4s var(--ease-out)}
.a-right.v{opacity:1;transform:translateX(0)}

/* 4. スケールイン — カード向け、ふわっと膨らむ */
.a-scale{opacity:0;transform:scale(.92);transition:opacity 1.2s var(--ease-soft),transform 1.2s var(--ease-spring)}
.a-scale.v{opacity:1;transform:scale(1)}

/* 5. フェードのみ — テキスト向け、動かず静かに現れる */
.a-fade{opacity:0;transition:opacity 1.6s var(--ease-soft)}
.a-fade.v{opacity:1}

/* 6. マスク開き — 写真が下からカーテンのように現れる */
.a-curtain{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease-out)}
.a-curtain.v{clip-path:inset(0 0 0 0)}

/* ステッガー遅延 */
.d1{transition-delay:.1s}.d2{transition-delay:.22s}.d3{transition-delay:.34s}

@media(max-width:768px){
  .a-left{transform:translateX(-30px)}.a-right{transform:translateX(30px)}
  .a-up{transform:translateY(20px)}
}

/* ═══ UTILITY ═══ */
.scroll-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;background:var(--accent-dark);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px rgba(0,0,0,.1);opacity:0;visibility:hidden;transition:all .5s var(--ease-soft);z-index:90;text-decoration:none}
.scroll-top.vis{opacity:1;visibility:visible}
.scroll-top:hover{background:var(--accent);transform:translateY(-2px)}
.scroll-top svg{stroke:#fff;fill:none;stroke-width:2}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}

/* ═══ COMPANY PAGE ═══ */
.pg-title{padding:120px 40px 56px;background:var(--paper-warm);text-align:center}
.pg-title small{display:block;font-size:.56rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-light);margin-bottom:10px}
.pg-title h1{font-family:var(--serif);font-size:clamp(1.1rem,2.2vw,1.5rem);font-weight:500;letter-spacing:.12em}

.cp-sec{padding:88px 40px;max-width:960px;margin:0 auto}
.cp-sec+.cp-sec{border-top:1px solid rgba(0,0,0,.04)}
.cp-sec h2{font-family:var(--serif);font-size:.82rem;font-weight:400;letter-spacing:.2em;margin-bottom:36px;color:var(--ink)}

.cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.cp-photo{border-radius:4px;overflow:hidden}
.cp-photo img{width:100%;height:380px;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.cp-photo:hover img{transform:scale(1.02)}
.info-table{width:100%}.info-table tr{border-bottom:1px solid rgba(0,0,0,.04)}
.info-table th{padding:11px 14px 11px 0;font-weight:300;font-size:.7rem;color:var(--ink-light);vertical-align:top;width:96px;letter-spacing:.04em}
.info-table td{padding:11px 0;font-size:.8rem}.info-sub{font-size:.7rem;color:var(--ink-light);line-height:1.8}
@media(max-width:768px){.pg-title{padding:110px 20px 40px}.cp-sec{padding:64px 20px}.cp-grid{grid-template-columns:1fr;gap:32px}}

/* 代表挨拶 */
.msg-grid{display:grid;grid-template-columns:220px 1fr;gap:48px;align-items:start}
.msg-photo{border-radius:4px;overflow:hidden}
.msg-photo img{width:100%;object-fit:cover;border-radius:4px}
.msg-body h3{font-family:var(--serif);font-size:.98rem;font-weight:600;color:var(--ink);margin-bottom:22px;line-height:1.9}
.msg-body p{font-size:.8rem;color:var(--ink-mid);line-height:2.3;margin-bottom:14px}
.msg-name{margin-top:24px;font-size:.8rem}.msg-name small{display:block;font-size:.66rem;color:var(--ink-light);margin-bottom:3px}
@media(max-width:768px){.msg-grid{grid-template-columns:1fr;gap:28px}.msg-photo{max-width:180px}}

/* 沿革 */
.tl{position:relative;max-width:620px}
.tl::before{content:'';position:absolute;left:60px;top:0;bottom:0;width:1px;background:rgba(0,0,0,.06)}
.tl-item{display:grid;grid-template-columns:115px 1fr;gap:20px;padding:18px 0;position:relative}
.tl-item::before{content:'';position:absolute;left:56px;top:26px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--paper-warm)}
.tl-year{font-size:.76rem;font-weight:500;color:var(--accent-dark)}.tl-desc{font-size:.76rem;line-height:1.9;padding-left:10px;color:var(--ink-mid)}
@media(max-width:768px){.tl::before,.tl-item::before{display:none}.tl-item{grid-template-columns:1fr;gap:3px}.tl-desc{padding-left:0}}

/* アクセス */
.map-wrap{border-radius:4px;overflow:hidden;margin-top:20px}
.map-wrap iframe{display:block;width:100%;height:320px;border:0}
.map-addr{font-size:.76rem;color:var(--ink-mid);margin-top:12px;line-height:1.9}

/* ═══ RECRUIT PAGE ═══ */
.rc-hero{position:relative;height:44vh;min-height:280px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.rc-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.rc-hero-bg::after{content:'';position:absolute;inset:0;background:rgba(0,20,15,.20)}
.rc-hero-body{position:relative;z-index:2;padding:0 40px;color:#fff}
.rc-hero-body h1{font-family:var(--serif);font-size:clamp(1.2rem,2.6vw,1.6rem);font-weight:500;letter-spacing:.14em;text-shadow:0 2px 16px rgba(0,0,0,.5),0 1px 4px rgba(0,0,0,.3)}
.rc-hero-body p{font-size:.76rem;opacity:.85;margin-top:10px;text-shadow:0 1px 8px rgba(0,0,0,.4)}

/* 会社案内ヒーロー専用 */
.cp-hero .rc-hero-bg{background-position:center 60%}

.rc-sec{padding:72px 40px;background:var(--paper)}
.rc-sec .inner{max-width:960px;margin:0 auto}
.rc-sec.dark{background:var(--accent-dark);color:#fff;max-width:100%;padding:72px 40px}
.rc-sec.dark .inner{max-width:960px;margin:0 auto}
.rc-sec.dark h2{color:var(--gold-light)}
.rc-sec.dark+.rc-sec.dark{border-top:1px solid rgba(255,255,255,.08)}
.rc-sec.warm{background:var(--gold-pale);max-width:100%;padding:72px 40px}
.rc-sec.warm .inner{max-width:960px;margin:0 auto}
.rc-sec h2{font-family:var(--serif);font-size:.88rem;font-weight:400;letter-spacing:.18em;margin-bottom:24px}

.rc-pts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.rc-pt{padding:36px 28px;background:var(--white);border-radius:6px;border-left:2px solid var(--gold);box-shadow:0 2px 16px rgba(0,0,0,.03);transition:transform .6s var(--ease-spring),box-shadow .5s}
.rc-pt:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,0,0,.06)}
.rc-pt h3{font-size:.96rem;font-weight:600;color:var(--accent-dark);margin-bottom:12px}
.rc-pt p{font-size:.84rem;color:var(--ink-mid);line-height:2.1}

.rc-jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.rc-job{background:var(--white);border-radius:6px;overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.03)}
.rc-job-hd{position:relative;height:80px;overflow:hidden}
.rc-job-hd img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rc-job-hd::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,rgba(0,0,0,.5))}
.rc-job-hd h4{position:absolute;bottom:12px;left:16px;z-index:2;color:#fff;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.rc-job-body{padding:16px 20px 20px}
.rc-job-body table{width:100%;font-size:.8rem;color:var(--ink)}
.rc-job-body td{padding:6px 0;border-bottom:1px solid rgba(0,0,0,.03)}
.rc-job-body td:first-child{color:var(--accent);width:72px;font-size:.76rem}
.rc-job-closed{opacity:.5;position:relative;-webkit-filter:grayscale(1);filter:grayscale(1)}
.rc-job-closed .rc-job-hd img{-webkit-filter:grayscale(1);filter:grayscale(1)}
.rc-job-closed-msg{text-align:center;padding:12px 20px;font-size:.82rem;font-weight:500;color:var(--ink-mid);background:rgba(0,0,0,.04);letter-spacing:.08em}
.rc-badge{margin-top:20px;padding:16px 20px;background:var(--white);border-radius:4px;border-left:2px solid var(--accent);font-size:.84rem;color:var(--ink-mid);line-height:1.9;box-shadow:0 2px 16px rgba(0,0,0,.03)}
@media(max-width:900px){.rc-pts,.rc-jobs{grid-template-columns:1fr}}
@media(max-width:768px){.rc-hero-body{padding:0 20px 32px}.rc-sec,.rc-sec.dark,.rc-sec.warm{padding:52px 20px}}

/* フォーム */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:40px}
.form-info .ct-tel{font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--accent-dark);margin-bottom:3px}
.form-info .ct-email{font-size:.8rem;color:var(--accent);margin-bottom:5px}
.form-info .ct-hours{font-size:.68rem;color:var(--ink-light);margin-bottom:22px}
.form-info p{font-size:.8rem;line-height:2}
.cf label{display:block;font-size:.7rem;font-weight:400;margin-bottom:4px;letter-spacing:.04em}
.cf .req{color:#a44;font-size:.62rem}
.cf input,.cf textarea,.cf select{width:100%;padding:11px 13px;border:1px solid rgba(0,0,0,.07);border-radius:3px;font-size:1rem;font-family:var(--sans);margin-bottom:14px;background:#fff;transition:border-color .3s,box-shadow .3s}
.cf input:focus,.cf textarea:focus,.cf select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(10,110,86,.04)}
.cf textarea{min-height:110px;resize:vertical}
.btn-submit{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:15px;background:var(--gold);color:var(--ink);border:none;border-radius:3px;font-size:.86rem;font-weight:500;letter-spacing:.06em;cursor:pointer;transition:background .3s}
.btn-submit:hover{background:#b8954d}
@media(max-width:768px){.form-grid{grid-template-columns:1fr}}
