:root{
  /* 無彩色は紺(--accent)と同じ青寄りに揃える。暖色は --red / --warm-cta / --warm-lt の同一色相3トーンのみ */
  --bg:#F5F7F9;--ink:#17222C;--muted:#5A6873;--line:#D6DDE3;--accent:#14324F;--soft:#E8EDF1;
  --red:#C4701A;--warm-cta:#FFA41C;--warm-lt:#F2C48C;--on-cta:#10151A;--navy-fix:#14324F;
  --en:"Inter","Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#10161B;--ink:#E3E9EE;--muted:#95A3AE;--line:#27323A;--accent:#9DC0E0;--soft:#182026;--red:#F2AE68;}}
:root[data-theme="dark"]{--bg:#10161B;--ink:#E3E9EE;--muted:#95A3AE;--line:#27323A;--accent:#9DC0E0;--soft:#182026;--red:#F2AE68;}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* PCはヘッダーが追従するため、アンカー移動時に見出しが隠れないよう余白を確保 */
@media (min-width:761px){html{scroll-padding-top:105px}}
/* margin:0 は必須。body の既定マージン8pxがあると、fixed の縦罫線(body::before)と
   absolute の写真(.hero-media/.outro-media)の基準がずれ、写真の左に8pxの隙間ができる */
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--jp);font-size:15px;line-height:1.85;letter-spacing:.02em;-webkit-font-smoothing:antialiased}
/* 最終行に1〜2文字だけ残る「取り残され行」を防ぐ。見出しは各行の長さを揃えて折る */
p,li,dd,dt,figcaption{text-wrap:pretty}
h1,h2,h3,.lead{text-wrap:balance}
/* 句読点・小書き文字が行頭に来ないようにする */
p,li,dd,summary,h1,h2,h3{line-break:strict;overflow-wrap:break-word}
:root{--pad:clamp(20px,5vw,48px);--rule:calc(max((100vw - 1040px) / 2, 0px) + var(--pad) / 2)}
.wrap{max-width:1040px;margin:0 auto;padding-inline:var(--pad)}
/* ページ左側の縦線：本文の左端から少し外側に固定 */
body::before{content:"";position:fixed;top:0;bottom:0;left:var(--rule);width:1px;background:var(--line);pointer-events:none;z-index:10}
a{color:inherit}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* 英字キャプション：全セクション共通 */
.cap{font-family:var(--en);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
/* 日本語のラベル：英字用の字間と大文字化を外す */
.cap-jp{font-family:var(--jp);font-size:13px;letter-spacing:.08em;text-transform:none}

header{border-bottom:1px solid var(--line);background:var(--bg)}
@media (min-width:761px){header{position:sticky;top:0;z-index:20}}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.bmark{flex:none;width:45px;height:45px;border-radius:10px;display:block}
.btxt{display:flex;flex-direction:column;gap:3.9px;line-height:1}
.btxt b{font-family:var(--en);font-weight:600;font-size:21.5px;letter-spacing:.06em;color:var(--accent);line-height:1}
.btxt em{font-style:normal;font-family:var(--en);font-weight:600;font-size:10.8px;letter-spacing:.285em;color:var(--red);line-height:1;/* 字送りで末尾に余白が出るぶん、その半分だけ右へ寄せて視覚的な中央に合わせる */
  text-align:center;text-indent:.1425em}
.bjp{font-size:15px;color:var(--muted);padding-left:10px;margin-left:2px;border-left:1px solid var(--line);white-space:nowrap}
nav{display:flex;gap:22px}
nav a{font-family:var(--jp);font-size:12px;font-weight:500;letter-spacing:.06em;text-decoration:none;color:var(--muted);white-space:nowrap}
nav a:hover{color:var(--ink)}

/* 導入の流れ：番号付きステップ */
.steps{display:grid;gap:0;counter-reset:step;border-top:1px solid var(--ink)}
.step{display:grid;grid-template-columns:64px 200px 1fr;gap:0 24px;align-items:baseline;padding-block:22px;border-bottom:1px solid var(--line)}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--en);font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--accent)}
.step h3{margin:0;font-size:17px;font-weight:700;letter-spacing:.04em}
.step p{margin:0;color:var(--muted);font-size:14px}

/* よくあるご質問 */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding-block:20px;font-size:16px;font-weight:700;letter-spacing:.03em;display:flex;gap:16px;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;font-family:var(--en);font-weight:400;font-size:20px;line-height:1;color:var(--accent);flex:none;transition:transform .2s}
.faq details[open] summary::after{content:"\2212"}
.faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* 質問文を要素で包み、2行になるときは行の長さを揃えて折る（「ますか？」だけが残るのを防ぐ） */
.faq .qt{flex:1;text-wrap:balance}
.faq .q{font-family:var(--en);font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--accent);flex:none;padding-top:4px}
.faq .a{margin:0;padding:0 0 22px 40px;color:var(--muted);font-size:14px}

/* 各セクション末尾の導線 */
.cta{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap;margin-top:clamp(32px,5vw,48px);padding-top:24px;border-top:1px solid var(--line)}
.cta .btn{margin-top:0}

/* 送信完了 */
.sent{display:none;border-top:1px solid var(--ink);padding-top:32px;max-width:820px}
.sent h3{margin:0 0 10px;font-size:20px;letter-spacing:.04em}
.sent p{margin:0 0 6px;color:var(--muted);font-size:14px}
.form.hide{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(460px,76vh,780px);overflow:hidden}
.hero .wrap{width:100%;padding-block:clamp(56px,9vw,104px)}
.hero h1{font-family:var(--jp);font-weight:700;font-size:clamp(22px,4.1vw,42px);line-height:1.45;letter-spacing:.01em;margin:10px 0 32px;max-width:24em;word-break:keep-all}
.hero h1 em{font-style:normal;color:var(--accent)}
/* 幅が足りないときだけ語の切れ目で折る。1文字だけ次行に落ちるのを防ぐ */
.hero h1>span{display:inline-block}
.hero p{max-width:44em;color:var(--muted);margin:0}
/* 1文を1つのブロックにして、文の途中では折り返さない */
.hero p>span{display:block;text-wrap:balance}
/* 熟語の途中で改行させない（スマホで行が足りないときの折り位置を制御する） */
.hero p .nb{display:inline;white-space:nowrap}
/* 行動色は2つだけ：アンバー=見積り、紺=電話。サイト内のどこでも同じ意味で使う */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:40px;padding:14px 26px;background:var(--warm-cta);color:var(--on-cta);text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.04em;transition:filter .2s}
.btn:hover{filter:brightness(1.06)}

/* ヒーロー：全幅写真の上に見出しを重ねる */
.hero-media{position:absolute;top:0;right:0;bottom:0;left:var(--rule);z-index:-2;background:#0C1218;overflow:hidden}
.hero-media picture{display:block;position:absolute;inset:0}
/* 昼の海沿い写真。他セクションの grayscale(.3)/saturate(.65) は掛けない（海と空の青を残すため） */
.hero-media img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;filter:saturate(.92) contrast(1.02);animation:rise 1.3s cubic-bezier(.22,.61,.36,1) both}
/* 文字の可読性を確保する暗幕：左ほど濃く。写真を見せるため右側は素のまま */
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,20,34,.74) 0%,rgba(6,20,34,.60) 34%,rgba(6,20,34,.26) 58%,rgba(6,20,34,0) 80%),linear-gradient(0deg,rgba(6,20,34,.26) 0%,rgba(6,20,34,0) 42%)}
.hero .cap{color:var(--warm-lt)}
.hero .cap-jp{color:#fff}
.hero h1{color:#fff;text-shadow:0 1px 24px rgba(0,0,0,.35)}
.hero h1 em{color:var(--warm-lt)}
.hero p{color:rgba(255,255,255,.86)}
/* 緊急案件はメールではなく電話で来る。ボタン直下に直通番号を置く */
@keyframes rise{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero-media img{animation:none}}

/* セクション：見出し＝英字（大）＋日本語（小） */
.sec{border-top:1px solid var(--line);padding-block:clamp(56px,8vw,96px)}
.sec h2{font-family:var(--jp);font-weight:700;font-size:clamp(22px,2.9vw,32px);line-height:1.4;letter-spacing:.02em;margin:0 0 clamp(28px,4.5vw,44px);text-align:center}
/* 見出し内の span は塊で折り返す。語の途中で改行させないための受け皿 */
.sec h2 span{display:inline-block}
/* 会社概要の地図：画面外のため遅延読み込み。比率固定でCLSを出さない */
.map{margin-top:clamp(28px,4vw,40px);border:1px solid var(--line);aspect-ratio:16/7;background:var(--soft)}
.map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.02)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .map iframe{filter:grayscale(.4) invert(.92) hue-rotate(180deg)}}
:root[data-theme="dark"] .map iframe{filter:grayscale(.4) invert(.92) hue-rotate(180deg)}
@media (max-width:760px){.map{aspect-ratio:4/3}}
/* 対応できる配送例 */
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.cases article{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--accent);padding:22px 24px}
.cases h3{margin:0 0 16px;font-size:19px;font-weight:700;letter-spacing:.04em;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.cases .tag{margin:0;font-family:var(--jp);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:none;color:var(--bg);background:var(--accent);padding:4px 10px;border-radius:999px;white-space:nowrap}
.cases dl{margin:0;display:grid;grid-template-columns:5em 1fr;gap:9px 16px;font-size:14.5px;line-height:1.75}
.cases dt{margin:0;font-size:12.5px;font-weight:700;color:var(--muted);letter-spacing:.04em;padding-top:3px;white-space:nowrap}
/* 本文は薄墨をやめて本文色に。拾い読みの対象はここ */
.cases dd{margin:0;color:var(--ink)}
/* 最後の「お受けできる理由」は他社との差が出る一文。帯にして視線を止める */
.cases dt:last-of-type{grid-column:1/-1;margin-top:6px;color:var(--accent);white-space:normal}
.cases dd:last-of-type{grid-column:1/-1;background:var(--soft);padding:12px 14px;color:var(--ink)}
/* 荷主の状況を並べる箇条書き */
.probs{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.probs li{display:flex;gap:14px;align-items:flex-start;padding-block:16px;border-bottom:1px solid var(--line);font-size:15px}
.probs li::before{content:"";flex:none;width:7px;height:7px;margin-top:10px;background:var(--red)}
.lead{color:var(--muted);max-width:32em;margin:0 auto 28px;text-align:center}
/* 1行で読ませるリード。文の途中では折り返さず、収まらない時だけ文の切れ目で改行する */
.lead.solo{max-width:none;text-wrap:pretty}
.lead.solo>span{display:inline-block}

/* 項目：サービス・強みで共通 */
/* 人物カット（AI生成・背景透過）。写真用のグレースケールfilterは当てない。実在の社員ではないため alt は空 */
.sec-figure{display:block;width:100%;height:auto;filter:none}
.hero-figure{position:absolute;right:clamp(8px,4vw,72px);bottom:0;z-index:-1;height:min(86%,600px);width:auto;
  /* 夜景に馴染ませる。明るいまま置くと切り抜きだけ浮く */
  filter:brightness(.86) contrast(1.06) saturate(.85);
  /* 膝で切れた下端をフェードさせる */
  -webkit-mask-image:linear-gradient(to top,transparent 0,#000 16%);mask-image:linear-gradient(to top,transparent 0,#000 16%);
  animation:rise 1.3s cubic-bezier(.22,.61,.36,1) both}
/* 1120px以下は h1 の右端と人物が接触するので、小さくして右へ逃がす */
@media (min-width:761px) and (max-width:1120px){.hero-figure{height:min(72%,430px);right:-10px}}
.prob-grid{display:grid;grid-template-columns:1fr clamp(180px,21vw,240px);gap:clamp(24px,4vw,52px);align-items:end}
/* 人物は縦に長いので、そのまま置くと行の高さを支配して本文側に余白が空く。
   上端（顔）を残して切り、下端はフェードさせて断ち切りを隠す */
.fig-problem,.fig-strength{object-fit:cover;object-position:50% 0;
  -webkit-mask-image:linear-gradient(to top,transparent 0,#000 14%);mask-image:linear-gradient(to top,transparent 0,#000 14%)}
.fig-problem{align-self:end;height:clamp(250px,30vw,340px)}
.fig-strength{align-self:end;justify-self:center;width:100%;max-width:230px;height:clamp(230px,26vw,300px)}
.items{display:grid;gap:40px;grid-template-columns:repeat(var(--cols,3),1fr)}
.item{border-top:1px solid var(--ink);padding-top:20px}
.item figure{margin:0 0 16px;position:relative;overflow:hidden}
/* 見出しは写真の下端に重ねる。暗幕グラデで写真の明暗に関係なく白文字を読ませる */
.item figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 16px 13px;background:linear-gradient(0deg,rgba(8,13,18,.94) 0%,rgba(8,13,18,.86) 46%,rgba(8,13,18,.52) 76%,rgba(8,13,18,0) 100%)}
.item figcaption .cap{display:block;color:var(--warm-lt);text-shadow:0 1px 8px rgba(0,0,0,.6)}
/* 事業内容の3枚は 1040px幅の3列に収まるため横へは広げられない（左の縦罫線を越える）。
   2026-09-28、縦を伸ばして 296x180 → 296x296 に拡大（ユーザー指示） */
#service .items{gap:28px}
.item img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  /* --b は写真ごとの明るさ補正。素の輝度が107/135/162とばらつくため個別に揃える */
  filter:grayscale(.3) saturate(.65) contrast(1.05) brightness(var(--b,1))}
.item h3{font-size:18px;font-weight:700;letter-spacing:.04em;margin:0 0 10px;color:var(--ink)}
/* 写真に重ねる見出しだけ白文字＋影。写真のない項目（選ばれる理由・対応エリア）は黒太字のまま */
.item figcaption h3{margin:2px 0 0;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55)}
/* 選ばれる理由：通し番号(01〜05)は2026-09-28に削除（ユーザー指示）。見出しの文言はそのまま */
.item p{margin:0;color:var(--muted);font-size:14px}

.co{display:grid;grid-template-columns:170px 1fr;gap:0 48px;align-items:start}
.rep{margin:0}
/* 代表写真は完全透過。枠も下地も置かず、縁はアルファをぼかして半透明にしてある。
   下端（肩の断ち切り）だけCSSでフェードさせる。人物なのでグレースケールは掛けない */
.rep img{display:block;width:100%;height:auto;border:0;background:none;filter:none;
  -webkit-mask-image:linear-gradient(to top,transparent 0,#000 6%);mask-image:linear-gradient(to top,transparent 0,#000 6%)}
.rep figcaption{margin-top:12px;font-size:14px;font-weight:400;letter-spacing:.04em;text-align:center}
dl.profile{margin:0;display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--ink)}
dl.profile dt,dl.profile dd{margin:0;padding-block:18px;border-bottom:1px solid var(--line)}
dl.profile dt{font-size:14px;color:var(--muted);letter-spacing:.04em}
.num{font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}

.contact{background:var(--soft)}
.req{color:var(--accent);margin-left:2px}
.form{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 32px;border-top:1px solid var(--ink);padding-top:32px;max-width:820px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:14px;font-weight:500;letter-spacing:.04em}
.field input,.field select,.field textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:0;padding:12px 14px;width:100%;transition:border-color .2s}
.field textarea{resize:vertical;line-height:1.8}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.7}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.field [aria-invalid="true"]{border-color:#B4452F}
.actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px 24px}
.actions .btn{margin-top:0;border:0;cursor:pointer}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.note{margin:0;font-size:13px;color:var(--muted)}
.note.err{color:#B4452F}
.note a{color:var(--accent)}
.alt{margin:40px 0 0;font-size:14px;color:var(--muted);display:flex;flex-direction:column;gap:6px}
.alt a{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .field [aria-invalid="true"],:root:not([data-theme="light"]) .note.err{border-color:#E08A76;color:#E08A76}}
:root[data-theme="dark"] .field [aria-invalid="true"],:root[data-theme="dark"] .note.err{border-color:#E08A76;color:#E08A76}

/* スマホ：画面下に固定の連絡バー（親指の可動域に置く） */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:30;border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(0,0,0,.12)}
  .callbar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:17px 8px calc(17px + env(safe-area-inset-bottom));text-decoration:none;font-size:16.5px;font-weight:700;letter-spacing:.04em}
  /* 電話=紺（サイトの基調色）／見積り=アンバー（唯一の暖色なので最も目を引く：Von Restorff効果） */
  .callbar .tel{background:var(--navy-fix);color:#fff}
  .callbar .est{background:var(--warm-cta);color:var(--on-cta)}
  .callbar .tel{border-right:1px solid rgba(255,255,255,.28)}
  body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
}
/* PC：右下に追従CTA。全幅バーにすると本文を常時隠すため、視線の終点（右下）に置く。
   PCはタップ発信できないので電話番号そのものを出す */
@media (min-width:761px){
  /* PCは追従CTAが常時出るため、本文中の「見積りを依頼する」ボタンは重複。PCのみ非表示（スマホは残す） */
  .sec .cta{display:none}
  /* PC：ヘッダー（追従）の右端に置く。ナビの「お問い合わせ」はこのボタンと重複するため外す */
  header .wrap > nav a[href$="#contact"]{display:none}
  /* ヘッダーを1行に収めるため、電話ボタンは「電話する」と番号の2段組にする */
  header .wrap{flex-wrap:nowrap;gap:12px}
  /* ナビ＋CTAは本文の枠を越えて画面の右端まで寄せる。ロゴは本文左端に合わせたまま */
  header .wrap{max-width:none;padding-left:max(24px,calc((100% - 1040px) / 2 + 48px));padding-right:24px}
  header .wrap > nav{gap:14px;margin-left:auto}
  .callbar{display:flex;align-items:stretch;gap:8px;flex:none}
  .callbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px 22px;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.04em;white-space:nowrap;line-height:1.35;transition:filter .2s}
  .callbar .tel{background:var(--navy-fix);color:#fff}
  .callbar .tel::after{content:"090-8325-4908";font-family:var(--en);font-weight:600;font-size:15.5px;letter-spacing:.02em}
  .callbar .est{background:var(--warm-cta);color:var(--on-cta)}
  .callbar a:hover{filter:brightness(1.07)}
}
/* 中間幅は社名が2行に折れるため、ヘッダーではロゴだけにする（社名はフッターと会社概要に出る） */
/* 社名まで1行に収まるのは実測で1280px以上。それ未満は社名を隠す（以前は1121pxで8行に潰れていた） */
@media (min-width:761px) and (max-width:1279px){.bjp{display:none}}
/* 中間幅ではヘッダーが1行に収まらないため、採用リンクだけ隠す（本文の採用セクションとフッター導線で補う） */
@media (min-width:761px) and (max-width:1039px){header .wrap > nav a[href$="#recruit"]{display:none}}
/* 中間幅はヘッダーが窮屈になるため、CTAを一回り小さくして1行を保つ */
@media (min-width:761px) and (max-width:1000px){
  .callbar a{padding:10px 15px;font-size:13.5px}
  .callbar .tel::after{font-size:14px}
}
/* 761〜900px はヘッダーが1行に収まらない（拡大前から最大82pxはみ出す既存不具合）。
   ナビ項目は減らさず、字間・文字サイズ・CTAの余白を詰めて収める */
@media (min-width:761px) and (max-width:900px){
  header .wrap > nav{gap:8px}
  header .wrap > nav a{font-size:11px;letter-spacing:.02em}
  .callbar a{padding:10px 10px;font-size:13px}
}
/* ページ末尾の締めの帯：ヒーローと同じ階調処理を掛けて上下で対にする */
.outro{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(230px,32vh,360px);overflow:hidden}
.outro .wrap{width:100%;padding-block:clamp(26px,4vw,42px)}
.outro-media{position:absolute;top:0;right:0;bottom:0;left:var(--rule);z-index:-1;background:#0C1218;overflow:hidden}
.outro-media picture{display:block;position:absolute;inset:0}
.outro-media img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 72%;filter:grayscale(.3) contrast(1.05) saturate(.65)}
.outro-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,13,18,.42) 0%,rgba(8,13,18,.16) 34%,rgba(8,13,18,0) 66%),linear-gradient(0deg,rgba(8,13,18,.3) 0%,rgba(8,13,18,0) 42%)}
@media (max-width:760px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btxt em{color:var(--red)}}
@media (max-width:760px){:root[data-theme="dark"] .btxt em{color:var(--red)}}
@media (max-width:760px){.outro-media::after{background:linear-gradient(0deg,rgba(8,13,18,.86) 0%,rgba(8,13,18,.5) 48%,rgba(8,13,18,.1) 100%)}}
/* スクロール連動の表示：JSが動く環境かつ動きを減らす設定でない場合だけ効かせる。
   JS無効時は js-anim が付かないため、全要素が最初から見える */
@media (prefers-reduced-motion:no-preference){
.js-anim .sec .cap,.js-anim .sec h2,.js-anim .sec .lead,.js-anim .item,.js-anim .probs li,.js-anim .cases article,.js-anim .step,.js-anim .faq details,.js-anim .rep,.js-anim dl.profile,.js-anim .map,.js-anim .cta,.js-anim .form,.js-anim .alt,.js-anim .outro .cap{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.js-anim .sec .cap.in,.js-anim .sec h2.in,.js-anim .sec .lead.in,.js-anim .item.in,.js-anim .probs li.in,.js-anim .cases article.in,.js-anim .step.in,.js-anim .faq details.in,.js-anim .rep.in,.js-anim dl.profile.in,.js-anim .map.in,.js-anim .cta.in,.js-anim .form.in,.js-anim .alt.in,.js-anim .outro .cap.in{opacity:1;transform:none}
}
footer .wrap{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:20px;padding-block:44px 36px;font-size:12px;color:var(--muted);letter-spacing:.04em}
.fbrand{display:flex;align-items:center;gap:11px;text-decoration:none}
.fbrand{margin-bottom:14px}
.fbrand img{width:30px;height:30px;border-radius:7px;display:block}
.fbrand .btxt{gap:3px}
.fbrand .btxt b{font-size:17px}
.fbrand .btxt em{font-size:8.6px}
.fnav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px 26px}
.fnav a{font-size:13px;color:var(--ink);text-decoration:none}
.fnav a:hover{text-decoration:underline}
@media (max-width:760px){.fnav{gap:6px 20px}.fnav a{font-size:12px;line-height:1.5;padding:4px 0;white-space:nowrap}.fnav .fn-pc{display:none}}
.fcopy{font-size:12px;align-self:center;width:100%;text-align:center;margin-top:8px;padding-top:20px;border-top:1px solid var(--line)}

@media (max-width:760px){
  header .wrap{padding-block:14px 0;gap:8px}
  .bmark{width:41px;height:41px}
  header .wrap > nav{order:3;width:100%;gap:0;justify-content:space-between;border-top:1px solid var(--line);margin-inline:-4px}
  nav a{padding:12px 1px;font-size:11.5px;letter-spacing:0}
  /* 画面下の固定バーに同じ導線があるため重複を外す */
  header .wrap > nav a[href$="#contact"]{display:none}
  /* ナビが1行に収まらないため、採用リンクは「採用」だけにする */
  header .wrap > nav .nv-x{display:none}
  .cases{grid-template-columns:1fr;gap:14px}
  .cases article{padding:18px 16px}
  /* 横並びだと本文が17字ほどしか入らず語の途中で折れる。スマホは上下に積む */
  .cases dl{grid-template-columns:1fr;gap:0}
  .cases dt{padding-top:14px}
  .cases dd:last-of-type{margin-top:8px}
  .cases h3{font-size:18px;margin-bottom:14px}
  .co{grid-template-columns:1fr;gap:28px 0}
  .rep{max-width:164px}
  .step{grid-template-columns:44px 1fr;gap:0 14px}
  .step::before{grid-row:span 2}
  .step p{grid-column:2}
  .faq .a{padding-left:0}
  .lead.solo>span{display:block;text-wrap:balance}
  /* 質問文が1行に収まるよう、記号との間隔と字送りを詰める */
  .faq summary{gap:10px;font-size:15.5px}
  .cta{flex-direction:column;align-items:stretch}
  .hero{min-height:clamp(420px,70vh,600px)}
  .hero-media::after{background:linear-gradient(0deg,rgba(6,20,34,.86) 0%,rgba(6,20,34,.74) 32%,rgba(6,20,34,.5) 64%,rgba(6,20,34,.22) 100%)}
  .hero .wrap{padding-block:44px 40px}
  .hero h1{margin:14px 0 20px}
  /* ロゴ下の英字は9.8pxと小さく、明るいアンバーではコントラスト3.44でAA(4.5)未満。スマホだけ濃い色に落とす */
  .btxt em{color:#9E5610}
  /* 電話・メールのリンクは行の高さ(20〜23px)しか押せない。上下の余白で44pxにし、行間は負のマージンで戻す */
  .sec a[href^="tel:"],.sec a[href^="mailto:"]{display:inline-block;padding-block:12px;margin-block:-10px}
  .hero p{font-size:15px}
  .btn{width:100%;justify-content:center}
  .alt a{overflow-wrap:anywhere}
  .items{grid-template-columns:1fr;gap:32px}
  /* 人物カットはPCのみ。スマホは幅が足りず見出し・本文と干渉する */
  .hero-figure,.sec-figure{display:none}
  .prob-grid{display:block}
  .form{grid-template-columns:1fr}
  dl.profile{grid-template-columns:1fr}
  dl.profile dt{border-bottom:0;padding-bottom:0}
  dl.profile dd{padding-top:2px}
  /* スマホのみ本文を1段階大きく（iOSは入力欄16px未満でフォーカス時に自動ズームする） */
  body{font-size:16px}
  .item p,.faq .a,.step p,.cases dl{font-size:15px}
  .probs li{font-size:16px}
  .field input,.field select,.field textarea{font-size:16px}
  /* 事業内容：スマホは写真が大きいぶん見出しも1段階大きく */
  .item figure{margin-bottom:12px}
  .item figcaption{padding:34px 16px 14px}
  .item figcaption h3{font-size:20px}
}

/* ===== 下層ページ（エリア別・サービス別） ===== */
.crumb{font-size:12.5px;color:var(--muted);padding:14px 0 0}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.crumb li::after{content:"／";margin-left:6px;color:var(--line)}
.crumb li:last-child::after{content:""}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.phero{background:var(--soft);border-bottom:1px solid var(--line)}
.phero .wrap{padding-block:clamp(26px,5vw,52px)}
.phero h1{word-break:keep-all;font-size:clamp(23px,3.4vw,36px);line-height:1.5;letter-spacing:.01em;margin:6px 0 14px;text-wrap:balance}
.phero .lead{max-width:40em;margin:0;color:var(--muted);text-align:left}
.ptag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent)}
/* 数字が並ぶ表。スマホでも横スクロールさせない */
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:6px}
.tbl th,.tbl td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-weight:700;color:var(--accent);white-space:nowrap;width:9em}
.tbl tr:first-child th,.tbl tr:first-child td{border-top:1px solid var(--line)}
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-top:6px}
.related a{display:block;padding:15px 16px;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:var(--bg);transition:border-color .2s}
.related a:hover{border-color:var(--accent)}
.related b{display:block;font-size:15px;color:var(--ink)}
.related span{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
.plist{margin:0;padding-left:1.15em}
.plist li{margin-bottom:9px}
.pnote{font-size:13px;color:var(--muted);margin-top:10px}
.more{margin:14px 0 0;font-size:14px;font-weight:700;letter-spacing:.04em}
.more a{color:var(--accent);text-decoration:none;display:inline-block;padding-block:6px}
.more a:hover{text-decoration:underline}
@media (max-width:760px){.tbl th{width:7.5em;white-space:normal}.tbl th,.tbl td{padding:10px 6px;font-size:14px}}
/* トップページ内のエリア別・サービス別リンク見出し */
.subh{font-size:15px;font-weight:700;color:var(--muted);letter-spacing:.06em;margin:36px 0 14px;text-align:center}

/* ===== スマホ：本文を個別ページに分け、冒頭のボタンから一覧ページ（/menu/）へ送る（2026-09-27） =====
   1画面が狭いスマホでは、各項目が全幅で縦に積まれてトップページが15,000px超になっていた。
   本文は /service/ /cases/ /strength/ /flow/ /aichi/ /faq/ /company/ へ移し、
   トップは「ヒーロー → メニューボタン → 課題 → 採用 → お問い合わせ」だけにする。PCは1ページのまま変更しない。 */
.jump{display:none}
@media (max-width:760px){
  nav.nav-pc{display:none}
  /* 余白と細線だけの2×2。英字ラベル＋日本語＋細い矢印。箱・影・塗りは使わない */
  .jump{display:block;background:var(--bg)}
  .jump .wrap{padding-block:34px 30px}
  .kx{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
  .kx a{position:relative;display:block;padding:18px 26px 20px 0;border-top:1px solid var(--ink);text-decoration:none;color:var(--ink)}
  .kx a:active{opacity:.55}
  .sec .cap,.item figcaption .cap{display:none}
  .kx b{display:block;font-size:17px;font-weight:500;letter-spacing:.06em;line-height:1.4}
  .kx i{position:absolute;right:0;bottom:20px;font-style:normal;font-family:Inter,sans-serif;font-size:16px;font-weight:300;color:var(--ink)}
  .kx-all{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding:16px 0 0;border-top:1px solid var(--line);
    font-size:13.5px;font-weight:500;letter-spacing:.08em;color:var(--muted);text-decoration:none}
  .kx-all i{font-style:normal;font-size:15px;letter-spacing:0;color:var(--ink)}
  .jump-btn{display:block;position:relative;background:var(--bg);border:1.5px solid var(--accent);border-radius:10px;
    padding:15px 34px 15px 16px;text-decoration:none}
  .jump-btn b{display:block;font-size:16px;font-weight:700;color:var(--accent);letter-spacing:.04em}
  .jump-btn span{display:block;margin-top:4px;font-size:12px;line-height:1.6;color:var(--muted)}
  .jump-btn::after{content:"›";position:absolute;right:15px;top:50%;transform:translateY(-54%);font-size:20px;line-height:1;color:var(--accent)}
  /* 本文を移したセクションはスマホでは出さない（PCでは従来どおり表示する） */
  #service,#cases,#strength,#flow,#area,#faq,#company{display:none}
}
/* 一覧ページ（/menu/）：項目名を大きく、指で押せる高さにする */
.menu-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:6px}
.menu-list a{display:block;position:relative;padding:16px 34px 16px 17px;border:1px solid var(--line);border-radius:10px;
  background:var(--bg);text-decoration:none;transition:border-color .2s}
.menu-list a:hover{border-color:var(--accent)}
.menu-list a::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:0 2px 2px 0;background:var(--warm-cta)}
.menu-list a{padding-left:20px;box-shadow:0 1px 0 rgba(20,50,79,.04)}
.menu-list a:active{background:var(--soft)}
.menu-list a::after{content:"";width:7px;height:7px;right:17px;margin-top:-4px;transform:rotate(45deg);
  border-top:1.5px solid var(--accent);border-right:1.5px solid var(--accent);opacity:.6}
.menu-page .sec h2{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--muted)}
.menu-page .sec h2::after{content:"";flex:1;height:1px;background:var(--line)}
.menu-list b{display:block;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.menu-list span{display:block;margin-top:4px;font-size:12.5px;line-height:1.6;color:var(--muted)}
.menu-list a::after{content:"›";position:absolute;right:14px;top:50%;transform:translateY(-54%);font-size:19px;line-height:1;color:var(--accent)}
@media (max-width:760px){
  .menu-page .sec{padding-block:26px}
  .menu-page .sec h2{font-size:19px;margin-bottom:14px;text-align:left}
  .menu-page .phero .wrap{padding-block:22px}
}

/* ===== ヘッダー左のメニューボタン＋ドロワー（2026-09-27） =====
   スマホはテキストのナビ行（11.5px・6項目）をやめ、ロゴ左の三本線ボタンに集約する。
   ボタンの実体は /menu/ へのリンクで、JSが動く環境だけパネルを開く（JS無効でも一覧ページへ飛べる） */
.burger{display:none}
@media (max-width:760px){
  /* 親指が届く位置に常に置くため、スマホだけヘッダーを追従させる */
  header{position:sticky;top:0;z-index:40}
  html{scroll-padding-top:76px}
  header .wrap{padding-block:12px;gap:10px;flex-wrap:nowrap}
  .burger{display:flex;flex-direction:column;justify-content:center;gap:5px;flex:none;
    width:40px;height:44px;margin-left:-13px;padding:0 8px;text-decoration:none}
  .burger span{display:block;height:2px;background:var(--ink);border-radius:2px}
  /* ボタンぶん幅が減るので、社名が2行に折れないよう詰める */
  .brand{min-width:0;gap:9px}
  .bjp{font-size:13px;padding-left:9px;white-space:nowrap}
  .drawer{position:fixed;inset:0;z-index:70}
  .drawer-bg{position:absolute;inset:0;background:rgba(8,13,18,.5);opacity:0;transition:opacity .25s}
  .drawer-in{position:absolute;top:0;left:0;bottom:0;width:min(84%,360px);background:var(--bg);
    display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .25s cubic-bezier(.22,.61,.36,1);
    box-shadow:6px 0 28px rgba(0,0,0,.18)}
  .drawer.open .drawer-bg{opacity:1}
  .drawer.open .drawer-in{transform:none}
  .drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 6px 14px 20px}
  .drawer-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
  .drawer-brand span{display:flex;flex-direction:column;line-height:1.15}
  .drawer-brand b{font-family:Inter,sans-serif;font-size:15px;font-weight:600;letter-spacing:.12em;color:var(--ink)}
  .drawer-brand em{font-style:normal;font-family:Inter,sans-serif;font-size:9.5px;font-weight:500;letter-spacing:.3em;color:#B07A2A;margin-top:3px}
  .drawer-x{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}
  .drawer-x:active{background:var(--soft)}
  .drawer-nav{display:block;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch;padding:2px 0 14px}
  .dg{margin:0;padding:22px 20px 8px;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--muted)}
  .drawer-nav a{position:relative;display:block;margin:0 10px;padding:13px 34px 13px 10px;font-size:16px;font-weight:500;letter-spacing:.02em;
    color:var(--ink);text-decoration:none;border-radius:8px;white-space:normal}
  .drawer-nav a::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;margin-top:-4px;
    border-top:1.5px solid var(--muted);border-right:1.5px solid var(--muted);transform:rotate(45deg);opacity:.55}
  .drawer-nav a:active{background:var(--soft)}
  .drawer-nav .drawer-all{margin:20px 20px 0;padding:13px 16px;border:1.5px solid var(--accent);border-radius:10px;text-align:center;font-size:14.5px;font-weight:700;color:var(--accent)}
  .drawer-nav .drawer-all::after{display:none}
  .drawer-cta{display:grid;grid-template-columns:1fr 1fr;flex:none}
  .drawer-cta a{display:flex;align-items:center;justify-content:center;padding:16px 8px;
    font-size:15.5px;font-weight:700;letter-spacing:.04em;text-decoration:none}
  .drawer-cta .tel{background:var(--navy-fix);color:#fff}
  .drawer-cta .est{background:var(--warm-cta);color:var(--on-cta)}
}

/* 求人・協力会社ページの応募ボタンはPCでも残す（ヘッダーのCTAは荷主向けの「無料見積」のため、応募者の受け皿がなくなる） */
.sec .cta.keep{display:flex}
/* 料金の目安・実例の帯 */
.pricebox{margin-top:18px;padding:18px 20px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;background:var(--soft)}
.pricebox b.big{display:block;font-size:clamp(20px,3.4vw,26px);color:var(--accent);letter-spacing:.01em}
.pricebox p{margin:8px 0 0}
.pricebox ul{margin:10px 0 0;padding-left:1.15em}
.pricebox li{margin-top:5px}

/* ヘッダーナビの項目間に「｜」を入れる。区切り文字の幅が増える分はgapを詰めて相殺する。
   761〜900pxは元々1行に収まらず字間を詰めている帯、760px以下は全幅で均等割りのため、
   区切りは1行が確実に保てる901px以上でだけ出す */
@media (min-width:901px){
  header .wrap > nav{gap:5px}
  header .wrap > nav a + a::before{
    content:"｜";
    margin-right:5px;
    color:var(--muted);
    opacity:.5;
    font-weight:400;
    letter-spacing:0;
  }
}

/* ヒーローの3サービス名：番号付きの縦リスト。罫線が引かれ、文字は字間が締まりながらぼかしが抜けて現れる。各行は該当ページへのリンク */
.hero h1 .svc-tags{display:block;width:min(100%,19em);margin-top:28px;font-size:.78em;line-height:1.1;font-weight:700;counter-reset:sv}
.hero h1 .svc-tags a{position:relative;display:grid;grid-template-columns:2.5em 1fr auto;align-items:baseline;counter-increment:sv;padding:.55em 0;color:#fff;text-decoration:none;text-shadow:0 2px 22px rgba(0,0,0,.5);border-top:1px solid rgba(242,196,140,.4)}
.hero h1 .svc-tags a:first-child{border-top-color:rgba(242,196,140,.95)}
.hero h1 .svc-tags a:last-child{color:var(--warm-lt);border-bottom:1px solid rgba(242,196,140,.4)}
.hero h1 .svc-tags a::before{content:counter(sv,decimal-leading-zero);font-family:var(--en);font-size:.42em;font-weight:600;letter-spacing:.3em;color:var(--warm-lt);text-shadow:none}
.hero h1 .svc-tags a span{display:block;letter-spacing:.12em;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.hero h1 .svc-tags a::after{content:"→";font-family:var(--en);font-size:.7em;font-weight:400;color:var(--warm-cta);opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .5s cubic-bezier(.22,.61,.36,1)}
.hero h1 .svc-tags a:hover span,.hero h1 .svc-tags a:focus-visible span{transform:translateX(10px)}
.hero h1 .svc-tags a:hover::after,.hero h1 .svc-tags a:focus-visible::after{opacity:1;transform:none}
.hero h1 .svc-tags a:focus-visible{outline:2px solid var(--warm-cta);outline-offset:2px}
@media (hover:none){.hero h1 .svc-tags a::after{opacity:.85;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .hero h1 .svc-tags a span,.hero h1 .svc-tags a::before{opacity:0;animation:wordIn 1.1s cubic-bezier(.22,.61,.36,1) forwards}
  .hero h1 .svc-tags a:nth-child(1) span,.hero h1 .svc-tags a:nth-child(1)::before{animation-delay:.5s}
  .hero h1 .svc-tags a:nth-child(2) span,.hero h1 .svc-tags a:nth-child(2)::before{animation-delay:.75s}
  .hero h1 .svc-tags a:nth-child(3) span,.hero h1 .svc-tags a:nth-child(3)::before{animation-delay:1s}
  .hero h1 .svc-tags a span{animation-name:wordInSp}
}
@keyframes wordIn{from{opacity:0}to{opacity:1}}
@keyframes wordInSp{from{opacity:0;letter-spacing:.5em;filter:blur(6px);clip-path:inset(0 100% 0 0)}60%{filter:blur(0)}to{opacity:1;letter-spacing:.12em;filter:none;clip-path:inset(0 0 0 0)}}
@media (max-width:760px){.hero h1 .svc-tags{font-size:.82em;margin-top:18px;width:min(100%,17em)}.hero h1 .svc-tags a{padding:.45em 0}}

/* ===== ヒーロー（海の写真部分）のみ洗練（2026-09-29） ===== */
.hero-media::after{background:linear-gradient(90deg,rgba(5,16,29,.82) 0%,rgba(6,20,34,.62) 36%,rgba(6,20,34,.24) 60%,rgba(6,20,34,0) 82%),linear-gradient(0deg,rgba(5,16,29,.5) 0%,rgba(6,20,34,0) 46%)}
.hero h1{letter-spacing:.02em;text-shadow:0 2px 30px rgba(0,0,0,.45)}
.hero .cap{display:inline-flex;align-items:center;gap:12px;letter-spacing:.24em}
.hero .cap::before{content:"";width:34px;height:1px;background:var(--warm-lt)}
/* 問い合わせフォームの送信ボタンは中央寄せ。状態表示(#f-status)は空のとき場所を取らない */
.actions{justify-content:center}
.actions .note:empty{display:none}
.actions .note{width:100%;text-align:center}
/* スマホのみロゴ一式(マーク・YOSEMITE LOGISTICS・社名)を約1割小さく */
@media (max-width:760px){
  .bmark{width:36px;height:36px}
  .brand{gap:8px}
  .btxt{gap:3.4px}
  .btxt b{font-size:18.5px}
  .btxt em{font-size:9.4px}
  .bjp{font-size:11.5px;padding-left:8px}
}

/* ===== スマホのトップを rakugei.jp 型に（2026-09-29）=====
   ①ヒーロー写真を全画面 ②ヘッダーを写真の上に透明で重ね、スクロールしたら白地に戻す ③三本線は右端
   ヘッダーを透明にするのはヒーローがあるトップだけ（下層ページは従来の白ヘッダー）。scrolled クラスは menu.js が付ける */
@media (max-width:760px){
  .burger{order:3;margin:0 -8px 0 auto}
  body:has(.hero,.phero) header{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;transition:background .3s,border-color .3s}
  body:has(.hero,.phero) header .btxt b{color:#fff;transition:color .3s}
  body:has(.hero,.phero) header .btxt em{color:var(--warm-lt)}
  body:has(.hero,.phero) header .bjp{color:rgba(255,255,255,.85);border-left-color:rgba(255,255,255,.4)}
  body:has(.hero,.phero) header .burger span{background:#fff;transition:background .3s}
  body:has(.hero,.phero) header.scrolled{background:var(--bg);border-bottom-color:var(--line)}
  body:has(.hero,.phero) header.scrolled .btxt b{color:var(--accent)}
  body:has(.hero,.phero) header.scrolled .btxt em{color:#9E5610}
  body:has(.hero,.phero) header.scrolled .bjp{color:var(--muted);border-left-color:var(--line)}
  body:has(.hero,.phero) header.scrolled .burger span{background:var(--ink)}
  .hero{min-height:100svh;align-items:flex-end}
  .hero-media{left:0}
  body:has(.hero,.phero)::before{display:none}
  .hero .wrap{padding-block:96px 104px}
  /* 上端のロゴが文字に重ならないよう、写真の上部にも薄い暗幕 */
  .hero-media::after{background:linear-gradient(180deg,rgba(6,20,34,.55) 0%,rgba(6,20,34,0) 22%),linear-gradient(0deg,rgba(6,20,34,.86) 0%,rgba(6,20,34,.74) 32%,rgba(6,20,34,.5) 64%,rgba(6,20,34,.22) 100%)}
  /* 下に続くことを示す縦書きの SCROLL（rakugei.jp と同じ） */
  .hero::after{content:"SCROLL";position:absolute;right:14px;bottom:84px;writing-mode:vertical-rl;font-family:var(--en);font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.8);padding-bottom:46px;background:linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)) right 50% bottom 0/1px 38px no-repeat}
}

/* ===== スマホ：冒頭写真の下を写真タイル＋淡いグレー地に（2026-09-29・rakugei.jp型）=====
   HTMLは変えず、.kx の4リンクに既存の写真を背景で当てる。#problem は淡いグレー地で見出しを左寄せ */
@media (max-width:760px){
  .jump{background:#E8EDF1}
  .jump .wrap{padding-block:28px 26px}
  .kx{column-gap:10px;row-gap:10px}
  .kx a{aspect-ratio:1/1.05;padding:0;border:0;overflow:hidden;display:flex;align-items:flex-end;color:#fff;
    background:#17222C center/cover no-repeat}
  .kx a::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,20,34,.88) 0%,rgba(6,20,34,.5) 42%,rgba(6,20,34,.12) 100%)}
  .kx a:nth-child(1){background-image:url(svc-teiki.jpg)}
  .kx a:nth-child(2){background-image:url(tile-price.jpg)}
  .kx a:nth-child(3){background-image:url(tile-area.jpg)}
  .kx a:nth-child(4){background-image:url(tile-flow2.jpg)}
  .kx b{position:relative;padding:0 34px 14px 14px;font-size:16px;font-weight:700;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.4)}
  .kx i{color:var(--warm-lt);right:12px;bottom:14px;font-size:18px}
  .kx-all{margin-top:16px;padding:16px 4px 0;border-top:1px solid #C5CFD7;color:var(--ink);font-weight:700}
  #problem{background:#fff;border-top:0;padding-block:52px 44px}
  #problem h2{text-align:left;font-size:24px;line-height:1.5;margin-bottom:26px;padding-left:14px;border-left:3px solid var(--warm-cta)}
  .probs{border-top:0;counter-reset:pb}
  .probs li{counter-increment:pb;gap:16px;align-items:baseline;padding-block:20px}
  .probs li::before{content:"0" counter(pb);width:auto;height:auto;margin:0;background:none;font-family:var(--en);font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--red)}
}

/* ===== スマホ：採用・お問い合わせも同じ雰囲気に（2026-09-29）===== */
@media (max-width:760px){
  #recruit{background:#E8EDF1;border-top:0;padding-block:52px 48px}
  #contact{background:#fff;border-top:0;padding-block:52px 56px}
  #recruit h2,#contact h2{text-align:left;font-size:24px;line-height:1.5;margin-bottom:22px;padding-left:14px;border-left:3px solid var(--warm-cta)}
  #recruit .lead,#contact .lead{text-align:left;margin-inline:0}
  #recruit .items{gap:12px;margin-top:26px}
  #recruit .item{background:#fff;padding:22px 20px 8px;border-top:3px solid var(--accent)}
  #recruit .item h3{font-size:17px;margin:0 0 10px}
  #recruit .item .more{margin:14px -20px 0;border-top:1px solid var(--line)}
  #recruit .item .more a{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-weight:700;color:var(--accent);text-decoration:none}
  #contact .pricebox{border:0;border-left:3px solid var(--warm-cta);border-radius:0;background:#E8EDF1;margin-bottom:30px}
  #contact .form{border-top:0;padding-top:0;gap:22px}
  #contact .field label{font-weight:700;font-size:14px}
  #contact .field input,#contact .field select,#contact .field textarea{background:#F2F5F8;border:0;border-bottom:2px solid #C5CFD7;padding:15px 14px}
  #contact .field input:focus,#contact .field select:focus,#contact .field textarea:focus{background:#fff;border-bottom-color:var(--accent);box-shadow:none}
  #contact .actions .btn{padding-block:18px;font-size:16px}
}

/* ===== スマホのヒーロー：車両全体が見えるように（2026-09-29）=====
   画面が縦長(約0.54)で写真は3:4のため、全面coverだと左右を大きく切り車が拡大される。
   写真は幅100%・高さ133.4vw(=3:4)で上に置き、下の路面を紺へ溶かしてそこに文字を載せる */
@media (max-width:760px){
  .hero-media{background:#0A1219}
  .hero-media picture{inset:0 0 auto 0;height:133.4vw}
  .hero-media img{inset:0 0 auto 0;height:133.4vw;object-position:center top;
    -webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}
  .hero-media::after{background:linear-gradient(180deg,rgba(6,20,34,.55) 0%,rgba(6,20,34,0) 16%)}
  .hero{align-items:flex-start}
  .hero .wrap{padding-block:calc(133.4vw - 56px) 104px}
}

/* ===== スマホのヒーロー：見出しを車の上へ／サービス名は車の下から立ち上げる（2026-09-29）=====
   ラベル「愛知県安城市の軽貨物運送」は動かさない。見出し .hl は写真上部の空(車の上)に置き、語ごとにぼかしを抜きながら浮かべる。
   企業定期便〜は車の中央下あたりから、クリップで切り出すように順に立ち上げる */
.hero h1>span.hl{display:inline}
@keyframes hl-in{from{opacity:0;transform:translateY(16px);filter:blur(7px);letter-spacing:.14em}to{opacity:1;transform:none;filter:blur(0);letter-spacing:.02em}}
@keyframes tag-up{from{opacity:0;transform:translateY(34px);clip-path:inset(100% 0 0 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:760px){
  .hero h1>span.hl{display:block;position:absolute;left:var(--pad);right:var(--pad);top:88px;margin:0;z-index:1;white-space:nowrap;text-shadow:0 2px 20px rgba(0,0,0,.55)}
  .hero h1>span.hl>span{opacity:0;animation:hl-in 2.2s cubic-bezier(.22,.61,.36,1) both}
  .hero h1>span.hl>span:nth-child(1){animation-delay:.4s}
  .hero h1>span.hl>span:nth-child(2){animation-delay:1.2s}
  .hero-media::after{background:linear-gradient(180deg,rgba(6,20,34,.66) 0%,rgba(6,20,34,.36) 13%,rgba(6,20,34,0) 21%)}
  .hero h1 .svc-tags a{animation:tag-up .9s cubic-bezier(.22,.61,.36,1) both}
  .hero h1 .svc-tags a:nth-child(1){animation-delay:2.4s}
  .hero h1 .svc-tags a:nth-child(2){animation-delay:2.6s}
  .hero h1 .svc-tags a:nth-child(3){animation-delay:2.8s}
  .hero p{animation:fade-up .9s ease-out 3.2s both}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .hero h1>span.hl>span,.hero h1 .svc-tags a,.hero p{animation:none;opacity:1}
}
@media (max-width:760px){.hero h1>br{display:none}.hero h1 .svc-tags{margin-top:0}}
@media (max-width:760px){.hero .cap::before{display:none}}
@media (max-width:760px){.hero p{text-align:center}}
@media (max-width:760px){.hero::after{display:none}}
/* 写真タイルの矢印を、ラベル文字(16px×行高1.4＝22.4px、下余白14px)と同じ高さの箱の中央に置く */
@media (max-width:760px){.kx i{display:flex;align-items:center;height:22.4px;line-height:1;bottom:14px}}
@media (max-width:760px){.kx i{transform:translateY(1px)}}
@media (max-width:760px){.kx b{font-weight:400}}

/* ===== スマホの写真タイル演出（2026-09-29）=====
   ①写真を専用レイヤ(::after)に移し、ゆっくり寄る動きを付ける ②4枚とも同じ紺の色調に揃える
   ③番号＋アンバーの細線 ④画面に入ったら上から順に切り出して現れる（menu.js が .in を付ける。JSが無ければ最初から表示） */
@media (max-width:760px){
  .kx{counter-reset:kx}
  .kx a{counter-increment:kx;isolation:isolate;background:#17222C}
  .kx a:nth-child(n){background-image:none}
  .kx a::after{content:"";position:absolute;inset:0;z-index:-2;background:center/cover no-repeat;
    filter:saturate(.8) contrast(1.06) brightness(.94);transform:scale(1.05);transition:transform 1.8s cubic-bezier(.22,.61,.36,1)}
  .kx a:nth-child(1)::after{background-image:url(svc-teiki.jpg)}
  .kx a:nth-child(2)::after{background-image:url(tile-price.jpg)}
  .kx a:nth-child(3)::after{background-image:url(tile-area.jpg)}
  .kx a:nth-child(4)::after{background-image:url(tile-flow2.jpg)}
  .kx a::before{z-index:-1;background:
    linear-gradient(0deg,rgba(6,20,34,.9) 0%,rgba(6,20,34,.5) 42%,rgba(6,20,34,.08) 100%),
    linear-gradient(rgba(20,50,79,.32),rgba(20,50,79,.32))}
  .kx a b::before{content:"0" counter(kx);display:block;margin-bottom:8px;font-family:var(--en);font-size:10px;font-weight:600;letter-spacing:.32em;color:var(--warm-lt)}
  .kx a b::after{content:"";display:block;width:0;height:1px;margin-top:8px;background:var(--warm-cta);transition:width .9s cubic-bezier(.22,.61,.36,1) .5s}
  .kx a:active::after{transform:scale(1.12);transition-duration:.6s}
  .kx-js .kx a{opacity:0;clip-path:inset(0 0 100% 0);transition:opacity .8s ease,clip-path 1s cubic-bezier(.22,.61,.36,1)}
  .kx-js .kx a::after{transform:scale(1.28)}
  .kx-js .kx a.in{opacity:1;clip-path:inset(0 0 0 0)}
  .kx-js .kx a.in::after{transform:scale(1.05)}
  .kx-js .kx a.in b::after{width:24px}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .kx-js .kx a{opacity:1;clip-path:none;transition:none}
  .kx-js .kx a::after{transform:scale(1.05);transition:none}
  .kx a b::after{width:24px;transition:none}
}
/* ラベルの下にアンバーの細線(高さ1px＋余白8px)が入ったぶん、矢印もその9px上へ */
@media (max-width:760px){.kx i{bottom:23px}}
@media (max-width:760px){.kx a b::before{display:none}}

/* ===== 写真タイルの矢印 → 押せるとわかる丸ボタンに（2026-09-29）=====
   ガラス調の丸＋シェブロン。外側のリングが静かに広がって「触れる」ことを示す。押すとアンバーで塗る。
   丸の中心はラベル文字の中心(下から約34px)に合わせる */
@media (max-width:760px){
  .kx i{display:block;position:absolute;right:12px;bottom:17px;width:34px;height:34px;font-size:0;line-height:0;transform:none;
    border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(255,255,255,.16);
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .25s,border-color .25s}
  .kx i::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-top:2px solid #fff;border-right:2px solid #fff;
    transform:translate(-68%,-50%) rotate(45deg);transition:border-color .25s}
  .kx i::before{content:"";position:absolute;inset:-1px;border:1px solid rgba(255,255,255,.65);border-radius:50%;
    animation:kx-ring 2.6s ease-out infinite}
  .kx a:active i{background:var(--warm-cta);border-color:var(--warm-cta)}
  .kx a:active i::after{border-color:#10151A}
  .kx a:nth-child(2) i::before{animation-delay:.4s}
  .kx a:nth-child(3) i::before{animation-delay:.8s}
  .kx a:nth-child(4) i::before{animation-delay:1.2s}
}
@keyframes kx-ring{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.7);opacity:0}}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.kx i::before{animation:none;opacity:0}}
/* 丸ボタンを34→28pxに。中心はラベル文字の中心(下から約34px)のまま = bottom 20px */
@media (max-width:760px){
  .kx i{width:28px;height:28px;bottom:20px}
  .kx i::after{width:6px;height:6px}
}

/* タイルは押した瞬間に遷移させる：タップ待ち(300ms)を無くし、押下時の拡大演出が遷移を遅らせて見えないようにする（2026-09-29） */
.kx a,.kx-all{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media (max-width:760px){.kx a:active::after{transform:scale(1.05);transition-duration:0s}}

/* ===== 下層4ページ（事業内容・料金・導入の流れ・対応エリア）をトップと同じ質感に（2026-09-29）=====
   写真＋紺のグラデ＋白抜き見出し＋アンバーの細線。本文は左揃え・番号付き・余白広め */
.phero.ph{position:relative;isolation:isolate;overflow:hidden;background:#0C1218;border-bottom:0;color:#fff;min-height:clamp(340px,52vh,520px);display:flex;flex-direction:column;justify-content:flex-end}
.phero.ph::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--ph) center 55%/cover no-repeat;filter:saturate(.85) contrast(1.05);transform:scale(1.06);animation:rise 1.6s cubic-bezier(.22,.61,.36,1) both}
.phero.ph::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(6,20,34,.92) 0%,rgba(6,20,34,.7) 38%,rgba(6,20,34,.38) 72%,rgba(6,20,34,.55) 100%)}
.phero.ph .ph-crumb{position:absolute;top:84px;left:0;right:0}
.phero.ph .crumb,.phero.ph .crumb a{color:rgba(255,255,255,.72)}
.phero.ph .crumb li::after{color:rgba(255,255,255,.35)}
.phero.ph .ph-body{padding-block:clamp(40px,6vw,72px) clamp(36px,5vw,64px)}
.phero.ph h1{color:#fff;font-size:clamp(26px,4.6vw,44px);line-height:1.4;max-width:20em;margin:0 0 22px;text-shadow:0 2px 24px rgba(0,0,0,.4);animation:fade-up 1s cubic-bezier(.22,.61,.36,1) .3s both}
.phero.ph h1::after{content:"";display:block;width:56px;height:2px;margin-top:22px;background:var(--warm-cta);transform-origin:left;animation:ph-line 1.2s cubic-bezier(.22,.61,.36,1) .7s both}
.phero.ph .lead{color:rgba(255,255,255,.88);max-width:36em;animation:fade-up 1s ease-out .6s both}
@keyframes ph-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.phero.ph::before,.phero.ph h1,.phero.ph h1::after,.phero.ph .lead{animation:none}}

.sub main .sec{border-top:0;padding-block:clamp(44px,6vw,76px)}
.sub main .sec:nth-of-type(even){background:var(--soft)}
.sub main .sec h2{text-align:left;position:relative;padding-left:18px;font-size:clamp(20px,2.6vw,27px);margin-bottom:26px}
.sub main .sec h2::before{content:"";position:absolute;left:0;top:.28em;bottom:.28em;width:4px;border-radius:2px;background:var(--warm-cta)}
.sub main .sec p{max-width:44em}
.sub .plist{list-style:none;padding:0;margin:0;counter-reset:pl;border-top:1px solid var(--line)}
.sub .plist li{counter-increment:pl;position:relative;margin:0;padding:18px 0 18px 3.2em;border-bottom:1px solid var(--line)}
.sub .plist li::before{content:counter(pl,decimal-leading-zero);position:absolute;left:0;top:19px;font-family:var(--en);font-size:14px;font-weight:600;letter-spacing:.2em;color:var(--red)}
.sub .plist b{display:block;font-size:16px;color:var(--ink);margin-bottom:2px}
.sub .tbl{border-top:2px solid var(--ink)}
.sub .tbl th{color:var(--ink)}
.sub .tbl th,.sub .tbl td{padding:18px 12px}
.sub .related a{border-radius:0;border:0;border-top:1px solid var(--ink);background:transparent;padding:18px 28px 18px 0;position:relative;transition:padding .3s}
.sub .related a::after{content:"→";position:absolute;right:0;top:18px;font-family:var(--en);color:var(--red);transition:transform .3s}
.sub .related a:hover{padding-left:8px}
.sub .related a:hover::after{transform:translateX(4px)}
.sub .cta .btn{box-shadow:0 10px 30px rgba(20,50,79,.22)}
@media (max-width:760px){
  .phero.ph{min-height:clamp(360px,56vh,480px)}
  .phero.ph .ph-crumb{top:76px}
  .sub .tbl th,.sub .tbl td{padding:14px 6px}
}
.phero.ph .ph-body{width:100%}
.phero.ph .lead{text-align:left}

/* 会社概要はトップに載せず、/company/ で見せる（PCも同様。スマホは元から非表示）（2026-09-29） */
#company{display:none}
.pnote{text-align:center;max-width:none!important;margin-inline:auto}
.hero .cap::before{display:none}
.hero .cap{gap:0}

/* PCもトップだけヘッダーを写真の上に透明で重ね、スクロールしたら白地に戻す（2026-09-29）*/
@media (min-width:761px){
  body:has(.hero,.phero) header{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;transition:background .3s,border-color .3s}
  body:has(.hero,.phero) header .btxt b{color:#fff;transition:color .3s}
  body:has(.hero,.phero) header .btxt em{color:var(--warm-lt)}
  body:has(.hero,.phero) header .bjp{color:rgba(255,255,255,.88);border-left-color:rgba(255,255,255,.4)}
  body:has(.hero,.phero) header nav a{color:rgba(255,255,255,.88);text-shadow:0 1px 12px rgba(0,0,0,.35)}
  body:has(.hero,.phero) header nav a:hover{color:#fff}
  body:has(.hero,.phero) header.scrolled{background:var(--bg);border-bottom-color:var(--line)}
  body:has(.hero,.phero) header.scrolled .btxt b{color:var(--accent)}
  body:has(.hero,.phero) header.scrolled .btxt em{color:#9E5610}
  body:has(.hero,.phero) header.scrolled .bjp{color:var(--muted);border-left-color:var(--line)}
  body:has(.hero,.phero) header.scrolled nav a{color:var(--muted);text-shadow:none}
  body:has(.hero,.phero) header.scrolled nav a:hover{color:var(--ink)}
  .hero-media{left:0}
  .hero-media::after{background:linear-gradient(180deg,rgba(6,20,34,.6) 0%,rgba(6,20,34,0) 20%),linear-gradient(90deg,rgba(6,20,34,.74) 0%,rgba(6,20,34,.60) 34%,rgba(6,20,34,.26) 58%,rgba(6,20,34,0) 80%),linear-gradient(0deg,rgba(6,20,34,.26) 0%,rgba(6,20,34,0) 42%)}
}

/* 写真なしの下層ページは紺のグラデ地に白抜き（透明ヘッダーが読めるように）*/
.phero.ph-plain::before{background:radial-gradient(120% 140% at 85% 0%,#1F4A73 0%,#14324F 45%,#0A1B2C 100%);filter:none;transform:none;animation:none}
.phero.ph-plain::after{background:linear-gradient(0deg,rgba(6,20,34,.55) 0%,rgba(6,20,34,0) 60%)}
.phero.ph-plain{min-height:clamp(300px,40vh,420px)}
@media (min-width:761px){.phero.ph .ph-crumb{top:100px}}
.phero.ph{padding-top:104px;justify-content:flex-end}
.phero.ph .ph-crumb,.phero.ph .ph-crumb{position:static;top:auto}
.phero.ph .ph-crumb{margin-bottom:auto;padding-top:0}
@media (min-width:761px){.phero.ph .ph-crumb{top:auto}}
@media (max-width:760px){.phero.ph{padding-top:84px}}
.phero.ph .ph-crumb{width:100%}

/* PCのヒーローもスマホと同じ動きと配置に（2026-09-29）：見出しは写真上部の空に大きく、語ごとにぼかしを抜きながら浮かべ、サービス名は下から立ち上げる */
@media (min-width:761px){
  .hero{align-items:flex-end}
  .hero .wrap{padding-block:120px 96px}
  .hero h1>br{display:none}
  .hero h1 .svc-tags{margin-top:0}
  .hero h1>span.hl{display:block;position:absolute;left:calc(var(--rule) + var(--pad) / 2);right:var(--pad);top:132px;margin:0;z-index:1;white-space:nowrap;font-size:1.45em;text-shadow:0 2px 20px rgba(0,0,0,.55)}
  .hero h1>span.hl>span{display:inline-block;opacity:0;animation:hl-in 2.2s cubic-bezier(.22,.61,.36,1) both}
  .hero h1>span.hl>span:nth-child(1){animation-delay:.4s}
  .hero h1>span.hl>span:nth-child(2){animation-delay:1.2s}
  .hero h1 .svc-tags a{animation:tag-up .9s cubic-bezier(.22,.61,.36,1) both}
  .hero h1 .svc-tags a:nth-child(1){animation-delay:2.4s}
  .hero h1 .svc-tags a:nth-child(2){animation-delay:2.6s}
  .hero h1 .svc-tags a:nth-child(3){animation-delay:2.8s}
  .hero p{animation:fade-up .9s ease-out 3.2s both}
}
@media (min-width:761px) and (prefers-reduced-motion:reduce){
  .hero h1>span.hl>span,.hero h1 .svc-tags a,.hero p{animation:none;opacity:1}
}
@media (min-width:761px){.hero{min-height:max(100svh,700px)}}

/* ===== 「一緒に走る仲間と」：手を組む写真を紺のモノトーンに染めて背景へ。カードはガラス調（2026-09-29）===== */
#recruit{position:relative;isolation:isolate;overflow:hidden;background:#0A1B2C;border-top:0;color:#fff;padding-block:clamp(72px,10vw,128px)}
#recruit::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--warm-cta),rgba(255,164,28,0) 60%)}
#recruit .rc-media{position:absolute;top:0;right:0;bottom:0;width:min(64%,940px);z-index:-1;background:#0A1B2C}
#recruit .rc-media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;filter:grayscale(1) contrast(1.15) brightness(.95);mix-blend-mode:luminosity;opacity:.95}
#recruit .rc-media::before{content:"";position:absolute;inset:0;z-index:1;background:#1F4A73;mix-blend-mode:color}
#recruit .rc-media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#0A1B2C 0%,rgba(10,27,44,.75) 30%,rgba(10,27,44,.1) 80%),linear-gradient(0deg,#0A1B2C 0%,rgba(10,27,44,0) 30%),linear-gradient(180deg,#0A1B2C 0%,rgba(10,27,44,0) 20%)}
#recruit h2{color:#fff;text-align:left;font-size:clamp(26px,4.2vw,44px);line-height:1.4;letter-spacing:.01em;margin-bottom:22px;padding-left:0;border-left:0;text-shadow:0 2px 24px rgba(0,0,0,.4)}
#recruit h2 span:last-child{color:var(--warm-lt)}
#recruit h2::after{content:"";display:block;width:56px;height:2px;margin-top:22px;background:var(--warm-cta)}
#recruit .lead{color:rgba(255,255,255,.88);text-align:left;margin:0 0 44px;max-width:34em}
#recruit .items{gap:18px}
#recruit .item{background:rgba(8,22,36,.74);border:1px solid rgba(255,255,255,.16);border-top:2px solid var(--warm-cta);border-radius:0;padding:28px 26px 8px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(255,255,255,.88);transition:background .3s,transform .3s}
#recruit .item:hover{background:rgba(8,22,36,.88);transform:translateY(-3px)}
#recruit .item h3{color:#fff;font-size:18px}
#recruit .item b{color:var(--warm-lt)}
#recruit .item .more{border-top:1px solid rgba(255,255,255,.16)}
#recruit .item .more a{color:var(--warm-cta);font-weight:700;text-decoration:none;display:flex;justify-content:space-between;align-items:center;padding:16px 0}
@media (max-width:760px){
  #recruit{padding-block:0 52px}
  #recruit .rc-media{position:relative;width:100%;height:240px;margin-bottom:-60px}
  #recruit .rc-media::after{background:linear-gradient(0deg,#0A1B2C 0%,rgba(10,27,44,.3) 60%,rgba(10,27,44,.15) 100%)}
  #recruit .wrap{position:relative;z-index:1}
  #recruit h2{font-size:26px;padding-left:0;border-left:0}
  #recruit .item{padding:22px 20px 4px}
  #recruit .item .more{margin:14px 0 0}
  #recruit .item .more a{padding:16px 0}
}

/* 暗さを軽減：背景の紺を明るくし、写真を明るく・手をはっきり見せる（2026-09-29）*/
#recruit{background:linear-gradient(135deg,#24557F 0%,#1B4467 55%,#163A5A 100%)}
#recruit .rc-media{background:transparent}
#recruit .rc-media img{filter:grayscale(1) contrast(1.05) brightness(1.35);opacity:1}
#recruit .rc-media::before{background:#4F86B8;mix-blend-mode:color}
#recruit .rc-media::after{background:linear-gradient(90deg,#24557F 0%,rgba(36,85,127,.55) 28%,rgba(36,85,127,0) 75%),linear-gradient(0deg,rgba(22,58,90,.85) 0%,rgba(22,58,90,0) 26%),linear-gradient(180deg,rgba(36,85,127,.6) 0%,rgba(36,85,127,0) 18%)}
#recruit .item{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}
#recruit .item:hover{background:rgba(255,255,255,.2)}
@media (max-width:760px){
  #recruit .rc-media::after{background:linear-gradient(0deg,#1B4467 0%,rgba(27,68,103,.25) 55%,rgba(27,68,103,0) 100%)}
}

/* もっと明るく・ワクワクする配色：明るい白地に、鮮やかなカラー写真。見出しは濃紺＋オレンジ、カードは白（2026-09-29）*/
#recruit{background:linear-gradient(120deg,#FFFFFF 0%,#EAF4FF 45%,#DDEEFF 100%);color:var(--ink)}
#recruit::before{height:4px;background:linear-gradient(90deg,#FFA41C,#FFD27A 50%,#4FA3F0)}
#recruit .rc-media img{filter:saturate(1.35) contrast(1.06) brightness(1.08);mix-blend-mode:normal;opacity:1}
#recruit .rc-media::before{display:none}
#recruit .rc-media::after{background:linear-gradient(90deg,#FFFFFF 0%,rgba(255,255,255,.85) 20%,rgba(234,244,255,0) 62%),linear-gradient(0deg,rgba(221,238,255,.9) 0%,rgba(221,238,255,0) 22%)}
#recruit h2{color:#14324F;text-shadow:none}
#recruit h2 span:last-child{color:#F08A00}
#recruit h2::after{width:72px;height:4px;border-radius:2px;background:linear-gradient(90deg,#FFA41C,#FFD27A)}
#recruit .lead{color:#33495C}
#recruit .item{background:#fff;border:1px solid rgba(20,50,79,.08);border-top:4px solid #FFA41C;color:#33495C;box-shadow:0 14px 34px rgba(20,50,79,.14);backdrop-filter:none;-webkit-backdrop-filter:none}
#recruit .item:hover{background:#fff;transform:translateY(-5px);box-shadow:0 20px 40px rgba(20,50,79,.2)}
#recruit .item h3{color:#14324F}
#recruit .item b{color:#D46A00}
#recruit .item .more{border-top:1px solid #E1E8EE}
#recruit .item .more a{color:#14324F}
#recruit .item .more a span{color:#F08A00}
@media (max-width:760px){
  #recruit .rc-media::after{background:linear-gradient(0deg,#EAF4FF 0%,rgba(234,244,255,.2) 45%,rgba(255,255,255,0) 100%)}
}
@media (max-width:760px){
  #recruit .rc-media{margin-bottom:-8px}
  #recruit .rc-media::after{background:linear-gradient(0deg,#EAF4FF 0%,rgba(234,244,255,.55) 22%,rgba(255,255,255,0) 60%)}
}

/* トップ最下部の写真帯：縦罫線(--rule)の外まで画面幅いっぱいに広げ、右上の太陽まで写す */
.story{position:relative;z-index:11;overflow:hidden;line-height:0;background:#0C1218}
.story picture,.story img{display:block;width:100%}
.story img{height:min(54.3vw,88vh);min-height:260px;object-fit:cover;object-position:center top;filter:brightness(.72)}
@media (max-width:760px){.story img{height:auto;min-height:0;aspect-ratio:2000/1086}}

/* 募集カードの上辺オレンジ線を削除（他の辺と同じ細い白線に） */
#recruit .item{border-top:1px solid rgba(255,255,255,.28)}

/* 募集見出しのオレンジ線を削除 */
#recruit h2::after{content:none}

/* PC：少しスクロールしたらヘッダーを細くして影を付ける（scrolled は menu.js が付ける）。動きを減らす設定では瞬時に切り替える */
@media (min-width:761px){
  header{transition:box-shadow .3s}
  header .wrap{transition:padding .3s}
  header.scrolled{box-shadow:0 4px 18px rgba(20,50,79,.10)}
  header.scrolled .wrap{padding-block:8px}
}
@media (min-width:761px) and (prefers-reduced-motion:reduce){header,header .wrap{transition:none}}

/* ヒーロー写真のパララックス：スクロールすると写真が文章より遅れて動く。写真を上に100pxはみ出させ、menu.js が0〜100px下げる。
   動きを減らす設定では適用しない（--py が付かないため位置は変わらない） */
@media (prefers-reduced-motion:no-preference){
  .hero-media picture{top:-100px;transform:translate3d(0,var(--py,0px),0);will-change:transform}
}
/* スマホは写真の大きさを変えないため視差なし（上にはみ出させると車が拡大されて見える） */
@media (max-width:760px){
  .hero-media picture{top:0;height:133.4vw;transform:none;will-change:auto}
  .hero-media img{top:0;height:133.4vw}
}

/* ===== スマホ：端末がダークモードでも明るい配色のまま表示する（2026-10-05）=====
   スマホ用の背景は白・淡いグレーを直接指定しているため、ダークモードで文字色だけ明るく切り替わると
   白地に白っぽい文字になって読めなくなる。スマホでは色の切り替え自体を止めて、明るい配色に固定する */
@media (max-width:760px) and (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#F5F7F9;--ink:#17222C;--muted:#5A6873;--line:#D6DDE3;--accent:#14324F;--soft:#E8EDF1;--red:#C4701A;color-scheme:light}
  :root:not([data-theme="light"]) .btxt em{color:#9E5610}
  :root:not([data-theme="light"]) .map iframe{filter:grayscale(.3) contrast(1.02)}
  :root:not([data-theme="light"]) .field [aria-invalid="true"]{border-color:#B4452F}
  :root:not([data-theme="light"]) .note.err{border-color:#B4452F;color:#B4452F}
}
/* PC：採用カードは白地固定のため、ダークモードでも本文を濃いグレーのままにする（2026-10-05） */
@media (min-width:761px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) #recruit .item p{color:#5A6873}}
.phero.ph .ptag{color:var(--warm-lt,#F2B25C);background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}

/* 2026-10-07 文章量が多く離脱しやすいため、行間・段落間・セクション余白を詰める（不要な強制改行も解除） */
body{line-height:1.75}
.sec{padding-block:clamp(36px,5vw,64px)}
.sec h2{margin-bottom:clamp(18px,3vw,30px)}
main p{margin-block:0 .6em}
main p:last-child{margin-bottom:0}
main li{margin-bottom:5px}
.lead,.hero p>span,.lead.solo>span{text-wrap:pretty}
@media (max-width:760px){
  body{font-size:15px;line-height:1.7}
  .sec{padding-block:34px}
  .sec h2{margin-bottom:18px}
  .lead.solo>span,.hero p>span{display:inline}
  .faq summary{padding-block:14px}
  .step p{margin:0}
}
/* 採用セクションの写真（人物を含む横長）：スマホの帯で腕や頭が切れないよう位置を上寄せ */
@media (max-width:760px){#recruit .rc-media img{object-position:50% 56%}}
@media (min-width:761px){#recruit .rc-media img{object-position:50% 58%}}
/* 採用セクション(PC)：写真を文章やカードの下に隠さず、上に独立した帯として全幅で見せる */
@media (min-width:761px){
  #recruit{padding-top:0}
  #recruit .rc-media{position:relative;inset:auto;width:100%;height:clamp(300px,34vw,460px);margin:0 0 44px}
  #recruit .rc-media img{object-position:50% 64%}
  #recruit .rc-media::after{background:linear-gradient(0deg,#EAF4FF 0%,rgba(234,244,255,0) 20%)}
}
/* 画面左の縦罫線(固定)・矢印・SCROLL表記は削除（2026-10-07） */
body::before{display:none!important}

/* ストーリー写真に重ねるキャッチコピー：スクロールで単語ごとに浮かび上がる */
.story-copy{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-inline:max(var(--pad),calc((100vw - 1040px) / 2 + var(--pad)));line-height:1.12;color:#fff;font-family:var(--en);font-weight:600;font-size:clamp(28px,5.6vw,68px);letter-spacing:.015em;text-shadow:0 2px 24px rgba(8,13,18,.45);background:linear-gradient(90deg,rgba(8,13,18,.5) 0%,rgba(8,13,18,.18) 55%,rgba(8,13,18,0) 80%)}
.story-copy .sc-line{display:block;white-space:nowrap}
.story-copy .sc-hi{color:var(--warm-lt);font-style:italic;font-weight:500;letter-spacing:.04em}
.story-copy .sc-bar{display:block;width:clamp(44px,7vw,88px);height:3px;margin-bottom:clamp(14px,2.2vw,26px);background:var(--warm-cta);transform-origin:left}
.story-copy .sc-line span{display:inline-block}
.story::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:#0A121B;opacity:.5}
.story-copy{z-index:2;background:none}
.story-copy .sc-line{overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.js-anim .story::after{opacity:.94;transition:opacity 4.2s cubic-bezier(.4,0,.2,1) .1s}
.js-anim .story.in::after{opacity:.5}
.js-anim .story img{transform:scale(1.07);transition:transform 5.6s cubic-bezier(.16,1,.3,1)}
.js-anim .story.in img{transform:none}
.js-anim .story-copy .sc-line span{transform:translateY(112%);opacity:0;letter-spacing:.12em;transition:transform 2.4s cubic-bezier(.16,1,.3,1),opacity 1.9s ease,letter-spacing 3.2s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i) * .26s + 1.2s)}
.js-anim .story-copy .sc-bar{transform:scaleX(0);transition:transform 2s cubic-bezier(.16,1,.3,1) .6s}
.js-anim .story.in .story-copy .sc-line span{transform:none;opacity:1;letter-spacing:0}
.js-anim .story.in .story-copy .sc-bar{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.js-anim .story::after{opacity:.5;transition:none}.js-anim .story img{transform:none;transition:none}.js-anim .story-copy .sc-line span{transform:none;opacity:1;letter-spacing:0;transition:none}.js-anim .story-copy .sc-bar{transition:none;transform:none}}
@media (max-width:760px){.story-copy{font-size:clamp(22px,7.4vw,40px)}}

/* ===== 見出し下の金色の光の線（2026-10-08）=====
   細い金の線の先端が文字の出現方向（左→右）に走り、尾が軌跡として残りながら消える。最終的に線は残らない */
.hero h1>span.hl{right:auto;width:max-content}
.hero h1>span.hl::after{content:"";position:absolute;left:-25%;width:150%;bottom:-9px;height:3px;pointer-events:none;opacity:.95;
  background:linear-gradient(90deg,rgba(212,175,90,0) 0,rgba(212,175,90,.55) 70%,#F6E3A8 96%,#fff 100%) 0% 0/20% 100% no-repeat;
  filter:drop-shadow(0 0 3px rgba(240,205,120,.8));
  animation:hl-comet 2.8s cubic-bezier(.35,.1,.4,1) .4s both}
@keyframes hl-comet{0%{background-position:0% 0;opacity:0}8%{opacity:.95}85%{opacity:.95}100%{background-position:100% 0;opacity:0}}
@media (prefers-reduced-motion:reduce){.hero h1>span.hl::after{display:none}}

/* ===== 01・02・03 の罫線（2026-10-08）=====
   各行の文字が左→右に現れるのに合わせて、細い金の光が走り、通った跡に1pxの金の線が残る */
.hero h1 .svc-tags a,.hero h1 .svc-tags a:last-child{border:0;animation:none;opacity:1;clip-path:none;background-repeat:no-repeat;
  background-image:linear-gradient(90deg,rgba(212,175,90,0) 0,rgba(212,175,90,.5) 70%,#F6E3A8 96%,#fff 100%),linear-gradient(rgba(212,175,90,.6),rgba(212,175,90,.6));
  background-position:20em 0,0 0;background-size:6em 2px,100% 1px}
.hero h1 .svc-tags a:last-child{
  background-image:linear-gradient(90deg,rgba(212,175,90,0) 0,rgba(212,175,90,.5) 70%,#F6E3A8 96%,#fff 100%),linear-gradient(90deg,rgba(212,175,90,0) 0,rgba(212,175,90,.5) 70%,#F6E3A8 96%,#fff 100%),linear-gradient(rgba(212,175,90,.6),rgba(212,175,90,.6)),linear-gradient(rgba(212,175,90,.6),rgba(212,175,90,.6));
  background-position:20em 0,20em 100%,0 0,0 100%;background-size:6em 2px,6em 2px,100% 1px,100% 1px}
@keyframes sv-draw{
  0%{background-position:-6em 0,0 0;background-size:6em 2px,0 1px}
  70%{background-size:6em 2px,100% 1px}
  100%{background-position:20em 0,0 0;background-size:6em 2px,100% 1px}}
@keyframes sv-draw-last{
  0%{background-position:-6em 0,-6em 100%,0 0,0 100%;background-size:6em 2px,6em 2px,0 1px,0 1px}
  70%{background-size:6em 2px,6em 2px,100% 1px,100% 1px}
  100%{background-position:20em 0,20em 100%,0 0,0 100%;background-size:6em 2px,6em 2px,100% 1px,100% 1px}}
@media (prefers-reduced-motion:no-preference){
  .hero h1 .svc-tags a:nth-child(1){animation:sv-draw 1.6s linear 2.4s both}
  .hero h1 .svc-tags a:nth-child(2){animation:sv-draw 1.6s linear 2.7s both}
  .hero h1 .svc-tags a:nth-child(3){animation:sv-draw-last 1.6s linear 3s both}
  .hero h1 .svc-tags a:nth-child(1) span,.hero h1 .svc-tags a:nth-child(1)::before{animation-delay:2.4s}
  .hero h1 .svc-tags a:nth-child(2) span,.hero h1 .svc-tags a:nth-child(2)::before{animation-delay:2.7s}
  .hero h1 .svc-tags a:nth-child(3) span,.hero h1 .svc-tags a:nth-child(3)::before{animation-delay:3s}
}
/* 事業内容カードの詳細ページ導線（PCのみ）：写真に触れると色が変わって拡大し、矢印が現れる。写真がそのままリンク */
.item-btn{display:none}
@media (min-width:761px){
  #service .item figure{isolation:isolate}
  #service .item img{transition:transform 1s cubic-bezier(.22,.61,.36,1),filter .7s}
  #service .item figcaption{z-index:3;pointer-events:none;transition:transform .6s cubic-bezier(.22,.61,.36,1),background .6s}
  #service .item figure:hover figcaption{background:none}
  #service .item-btn{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;overflow:hidden;text-decoration:none;color:#fff}
  #service .item-btn::before{content:"";position:absolute;inset:0;background:rgba(242,150,40,.5);transform:translateY(101%);transition:transform .65s cubic-bezier(.22,.61,.36,1)}
  #service .item-btn span{position:relative;display:grid;place-items:center;width:72px;height:72px;border:1.5px solid #fff;border-radius:50%;font-family:var(--en);font-size:30px;line-height:1;opacity:0;transform:translateX(-36px) scale(.6);transition:opacity .4s .12s,transform .65s .12s cubic-bezier(.22,.61,.36,1)}
  #service .item figure:hover img{transform:scale(1.08)}
  #service .item figure:hover figcaption{transform:translateY(-6px)}
  #service .item figure:hover .item-btn::before{transform:none}
  #service .item figure:hover .item-btn span{opacity:1;transform:none}
  #service .item-btn:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
  #service .item-btn:focus-visible::before{transform:none}
  #service .item-btn:focus-visible span{opacity:1;transform:none}
}
/* 全ページ冒頭にトップページと同じ写真を表示（--ph 未指定時の既定） */
.phero.ph{--ph:url(/hero-wide.webp)}
@media (max-width:760px){.phero.ph{--ph:url(/hero-tall.webp)}}
.phero.ph::after{background:linear-gradient(180deg,rgba(6,20,34,.55) 0%,rgba(6,20,34,0) 28%),linear-gradient(0deg,rgba(6,20,34,.92) 0%,rgba(6,20,34,.7) 38%,rgba(6,20,34,.38) 72%,rgba(6,20,34,.3) 100%)}
