@charset "UTF-8";
/* =========================================================
   有限会社 愛希  コーポレートサイト 共通スタイル
   - 配色 : ネイビー（信頼）× レッド（愛情・希望）
   - 構成 : 動画ヒーロー / 英字ラベル / カードグリッド / 大型コンタクト帯
========================================================= */
:root{
  --navy:#13233f;
  --navy-deep:#0c1830;
  --blue:#1e3a8a;
  --red:#e64a3c;
  --red-deep:#c93a2e;
  --ink:#1f2a3a;
  --ink-soft:#5a6a80;
  --line:#e2e8f0;
  --bg-gray:#f4f6f9;
  --white:#ffffff;
  --shadow:0 10px 34px rgba(19,35,63,.10);
  --shadow-sm:0 4px 16px rgba(19,35,63,.08);
  --radius:14px;
  --header-h:78px;
  --font-en:"Montserrat","Helvetica Neue",Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;
  color:var(--ink);background:var(--white);line-height:1.9;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video,iframe{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
.container{max-width:1140px;margin:0 auto;padding:0 24px}
.section{padding:96px 0}
.section.gray{background:var(--bg-gray)}

/* ---------- 見出し（英字ラベル＋日本語） ---------- */
.sec-head{margin-bottom:48px}
.sec-head .en{
  display:block;font-family:var(--font-en);font-weight:700;letter-spacing:.22em;
  color:var(--red);font-size:.85rem;text-transform:uppercase;margin-bottom:10px;
}
.sec-head h2{font-size:clamp(1.6rem,3.4vw,2.25rem);font-weight:800;color:var(--navy);line-height:1.5}
.sec-head p.lead{margin-top:18px;color:var(--ink-soft);max-width:720px;font-size:.97rem}
.sec-head.center{text-align:center}
.sec-head.center p.lead{margin-left:auto;margin-right:auto}
.sec-head.white .en{color:#ffb4a8}
.sec-head.white h2{color:#fff}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:700;cursor:pointer;border:none;font-family:inherit;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn-red{
  background:var(--red);color:#fff;border-radius:999px;
  padding:14px 38px;font-size:.95rem;box-shadow:0 8px 20px rgba(230,74,60,.35);
}
.btn-red:hover{background:var(--red-deep)}
.btn-line{
  background:transparent;color:var(--navy);border:2px solid var(--navy);
  border-radius:999px;padding:12px 36px;font-size:.95rem;
}
.btn-line:hover{background:var(--navy);color:#fff}
.btn-line.white{color:#fff;border-color:rgba(255,255,255,.7)}
.btn-line.white:hover{background:#fff;color:var(--navy)}
.btn .arrow{font-family:var(--font-en);font-weight:700}

/* ---------- ヘッダー ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:1000;height:var(--header-h);
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(226,232,240,.7);
  transition:box-shadow .3s;
}
.header.scrolled{box-shadow:0 4px 22px rgba(19,35,63,.10)}
.header-inner{
  max-width:1280px;margin:0 auto;height:100%;padding:0 24px;
  display:flex;align-items:center;gap:28px;
}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-mark{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,var(--red),#f0795f);
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.3rem;
  box-shadow:0 4px 12px rgba(230,74,60,.35);
}
.brand-text small{display:block;font-size:.62rem;color:var(--ink-soft);letter-spacing:.16em;font-family:var(--font-en)}
.brand-text b{font-size:1.18rem;color:var(--navy);letter-spacing:.06em}
.gnav{margin-left:auto}
.gnav ul{display:flex;gap:6px}
.gnav a{
  display:block;padding:10px 14px;font-size:.92rem;font-weight:600;color:var(--ink);
  border-radius:8px;position:relative;transition:color .2s;
}
.gnav a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;
  background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s;
}
.gnav a:hover,.gnav a.active{color:var(--red)}
.gnav a:hover::after,.gnav a.active::after{transform:scaleX(1)}
.header-cta{display:flex;align-items:center;gap:18px;flex-shrink:0}
.header-tel{text-align:right;line-height:1.4}
.header-tel a{font-family:var(--font-en);font-weight:800;font-size:1.25rem;color:var(--navy)}
.header-tel a::before{content:"📞 ";font-size:.95rem}
.header-tel small{display:block;font-size:.66rem;color:var(--ink-soft)}
.header-cta .btn-red{padding:11px 26px;font-size:.88rem}
.menu-btn{
  display:none;width:46px;height:46px;border:none;background:var(--navy);border-radius:10px;
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:6px;
}
.menu-btn span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.menu-btn.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- ヒーロー（トップ） ---------- */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--navy-deep)}
.hero-bg{position:absolute;inset:0}
.hero-bg video{width:100%;height:100%;object-fit:cover}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.6s ease;transform:scale(1);
}
.hero.no-video .hero-bg video{display:none}
.hero-slide.show{opacity:1;animation:kenburns 9s ease-out forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(12,24,48,.72) 0%,rgba(12,24,48,.38) 55%,rgba(12,24,48,.15) 100%);
}
.hero-inner{
  position:relative;z-index:2;height:100%;max-width:1140px;margin:0 auto;padding:0 24px;
  display:flex;flex-direction:column;justify-content:center;color:#fff;
}
.hero-catch{
  font-size:clamp(2rem,5.4vw,3.6rem);font-weight:900;line-height:1.5;letter-spacing:.06em;
  text-shadow:0 4px 30px rgba(0,0,0,.45);
}
.hero-catch .accent{color:#ffb4a8}
.hero-sub{
  margin-top:22px;font-size:clamp(.95rem,1.8vw,1.15rem);font-weight:500;
  color:rgba(255,255,255,.92);text-shadow:0 2px 14px rgba(0,0,0,.5);line-height:2.1;
}
.hero-btns{display:flex;flex-wrap:wrap;gap:16px;margin-top:38px}
.hero-scroll{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  color:#fff;font-family:var(--font-en);font-size:.68rem;letter-spacing:.3em;text-align:center;
}
.hero-scroll::after{
  content:"";display:block;width:1px;height:46px;margin:10px auto 0;
  background:linear-gradient(to bottom,#fff,transparent);
  animation:scrollline 1.8s ease infinite;
}
@keyframes scrollline{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-news{
  position:absolute;right:0;bottom:0;z-index:3;
  background:#fff;border-radius:18px 0 0 0;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:18px;padding:18px 32px 18px 26px;max-width:min(640px,92%);
}
.hero-news .tag{
  font-family:var(--font-en);font-weight:800;color:var(--red);letter-spacing:.18em;font-size:.78rem;
  border-right:1px solid var(--line);padding-right:18px;flex-shrink:0;
}
.hero-news time{font-size:.8rem;color:var(--ink-soft);flex-shrink:0}
.hero-news p{font-size:.88rem;font-weight:600;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-news a.more{font-size:.8rem;color:var(--red);font-weight:700;flex-shrink:0}

/* ---------- 下層ページヒーロー ---------- */
.page-hero{
  position:relative;margin-top:var(--header-h);padding:84px 0 64px;color:#fff;overflow:hidden;
  background:linear-gradient(115deg,var(--navy-deep) 0%,var(--blue) 70%,#2d4fa3 100%);
}
.page-hero::before{
  content:"";position:absolute;width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,rgba(230,74,60,.35),transparent 70%);
  right:-140px;top:-180px;
}
.page-hero::after{
  content:"";position:absolute;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.10),transparent 70%);
  left:-100px;bottom:-160px;
}
.page-hero .en{
  position:relative;display:block;font-family:var(--font-en);font-weight:800;letter-spacing:.24em;
  font-size:.85rem;color:#ffb4a8;text-transform:uppercase;margin-bottom:8px;
}
.page-hero h1{position:relative;font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800;letter-spacing:.05em}
.breadcrumb{background:var(--bg-gray);border-bottom:1px solid var(--line)}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;padding:12px 0;font-size:.78rem;color:var(--ink-soft)}
.breadcrumb li:not(:last-child)::after{content:"›";margin-left:6px;color:#9aa7b8}
.breadcrumb a:hover{color:var(--red)}
.breadcrumb li:last-child{color:var(--navy);font-weight:600}

/* ---------- トップ：About ---------- */
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.about-grid .photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.about-grid .photo img{width:100%;height:100%;object-fit:cover}
.about-copy h3{font-size:1.3rem;font-weight:800;color:var(--navy);margin-bottom:18px;line-height:1.7}
.about-copy p{color:var(--ink-soft);font-size:.95rem;margin-bottom:14px}
.about-copy .sign{margin-top:18px;font-size:.88rem;color:var(--navy);font-weight:600;text-align:right}
.about-copy .btn{margin-top:26px}

/* ---------- トップ：強み ---------- */
.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.strength-card{
  position:relative;background:#fff;border-radius:var(--radius);padding:34px 30px 32px;
  box-shadow:var(--shadow-sm);border:1px solid var(--line);
}
.strength-card .num{
  display:block;font-family:var(--font-en);font-weight:800;font-size:.85rem;
  letter-spacing:.22em;color:var(--red);
}
.strength-card .num::after{content:"";display:block;width:28px;height:2px;background:var(--red);margin-top:12px}
.strength-card h3{font-size:1.08rem;font-weight:800;color:var(--navy);margin:18px 0 10px;line-height:1.6}
.strength-card p{font-size:.9rem;color:var(--ink-soft)}

/* ---------- サービスカード ---------- */
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.service-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.service-card .thumb{position:relative;aspect-ratio:16/9;overflow:hidden}
.service-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.service-card:hover .thumb img{transform:scale(1.05)}
.service-card .thumb .en{
  position:absolute;left:18px;bottom:12px;font-family:var(--font-en);font-weight:800;
  color:#fff;letter-spacing:.14em;font-size:.78rem;text-shadow:0 2px 10px rgba(0,0,0,.5);
}
.service-card .body{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1}
.service-card h3{font-size:1.25rem;font-weight:800;color:var(--navy);margin-bottom:10px}
.service-card p{font-size:.92rem;color:var(--ink-soft);flex:1}
.service-card .link{
  margin-top:20px;font-weight:700;color:var(--red);font-size:.9rem;display:inline-flex;align-items:center;gap:8px;
}
.service-card .link::after{content:"→";transition:transform .2s}
.service-card:hover .link::after{transform:translateX(5px)}

/* ---------- トップ：車輌プレビュー ---------- */
.truck-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.truck-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .25s ease;
}
.truck-card:hover{transform:translateY(-5px)}
.truck-card .thumb{aspect-ratio:4/3;overflow:hidden}
.truck-card .thumb img{width:100%;height:100%;object-fit:cover}
.truck-card .body{padding:18px 20px 20px}
.truck-card h3{font-size:1rem;font-weight:800;color:var(--navy)}
.truck-card small{display:block;margin-top:4px;font-size:.78rem;color:var(--ink-soft)}
.truck-card .cap{
  display:inline-block;margin-top:10px;font-size:.72rem;font-weight:700;color:var(--blue);
  background:#e8eefb;border-radius:999px;padding:3px 12px;
}

/* ---------- 採用バナー ---------- */
.recruit-band{position:relative;overflow:hidden;border-radius:24px;color:#fff}
.recruit-band .bg{position:absolute;inset:0}
.recruit-band .bg img{width:100%;height:100%;object-fit:cover}
.recruit-band .overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,24,48,.82),rgba(12,24,48,.45))}
.recruit-band .inner{position:relative;padding:72px 56px;max-width:640px}
.recruit-band .en{font-family:var(--font-en);font-weight:800;letter-spacing:.22em;color:#7ce8c9;font-size:.85rem}
.recruit-band h2{font-size:clamp(1.5rem,3.2vw,2.2rem);font-weight:800;margin:12px 0 16px;line-height:1.6}
.recruit-band p{font-size:.95rem;color:rgba(255,255,255,.88);margin-bottom:28px}

/* ---------- お知らせ ---------- */
.news-list{max-width:860px;margin:0 auto}
.news-list li{border-bottom:1px solid var(--line)}
.news-list li:first-child{border-top:1px solid var(--line)}
.news-list a,.news-list .row{
  display:flex;gap:26px;align-items:baseline;padding:22px 10px;transition:background .2s;
}
.news-list a:hover{background:var(--bg-gray)}
.news-list time{font-family:var(--font-en);font-weight:700;font-size:.82rem;color:var(--ink-soft);flex-shrink:0}
.news-list .cat{
  flex-shrink:0;font-size:.7rem;font-weight:700;color:var(--red);border:1px solid var(--red);
  border-radius:999px;padding:2px 12px;
}
.news-list p{font-size:.92rem;font-weight:600;color:var(--navy)}

/* ---------- コンタクト帯 ---------- */
.contact-band{background:var(--navy-deep);color:#fff;padding:88px 0;position:relative;overflow:hidden}
.contact-inner{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);
  column-gap:72px;align-items:start;text-align:left;
}
.contact-inner .en{font-family:var(--font-en);font-weight:800;letter-spacing:.24em;color:#e8867a;font-size:.8rem}
.contact-inner h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin:14px 0 18px;line-height:1.5}
.contact-inner>p{color:rgba(255,255,255,.72);font-size:.92rem;line-height:2.1;max-width:30em}
.contact-box{
  grid-column:2;grid-row:1/6;margin:0;max-width:none;
  background:#fff;color:var(--navy);border:none;border-radius:14px;
  padding:38px 38px 34px;display:block;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.55);
}
.contact-box br{display:none}
.contact-tel .label,.contact-fax .label{display:block;font-size:.78rem;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;margin-bottom:4px}
.contact-tel a{font-family:var(--font-en);font-weight:800;font-size:clamp(1.9rem,3.2vw,2.3rem);letter-spacing:.03em;color:var(--navy);line-height:1.3}
.contact-tel a:hover{color:var(--red)}
.contact-tel small{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:6px}
.contact-divider{width:100%;height:1px;background:var(--line);margin:26px 0}
.contact-fax .num{font-family:var(--font-en);font-weight:800;font-size:1.5rem;color:var(--navy)}
.contact-fax small{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:6px}
.contact-addr{grid-column:1;margin-top:30px;font-size:.83rem;color:rgba(255,255,255,.55);position:relative}

/* ---------- フッター ---------- */
.footer{background:var(--navy-deep);color:#9fb0c8;padding:64px 0 30px}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px}
.footer .brand-text b{color:#fff}
.footer .brand-text small{color:#7c8da6}
.footer-desc{margin-top:16px;font-size:.84rem;line-height:2}
.footer-col h4{
  color:#fff;font-size:.82rem;font-family:var(--font-en);font-weight:700;letter-spacing:.2em;
  margin-bottom:16px;text-transform:uppercase;
}
.footer-col li{margin-bottom:10px;font-size:.86rem}
.footer-col a{transition:color .2s}
.footer-col a:hover{color:#ffb4a8}
.footer-col .tel{font-family:var(--font-en);font-weight:800;font-size:1.3rem;color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);margin-top:48px;padding-top:22px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.74rem;color:#7c8da6;
}

/* ---------- ページトップ ---------- */
.pagetop{
  position:fixed;right:22px;bottom:22px;z-index:900;width:52px;height:52px;border-radius:50%;
  background:var(--navy);color:#fff;border:none;cursor:pointer;font-size:1.1rem;
  box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .3s,transform .2s;
}
.pagetop.show{opacity:1;pointer-events:auto}
.pagetop:hover{transform:translateY(-4px);background:var(--red)}

/* ---------- 下層共通パーツ ---------- */
.detail-block{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.detail-block + .detail-block{margin-top:84px}
.detail-block.reverse{direction:rtl}
.detail-block.reverse>*{direction:ltr}
.detail-block .photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.detail-block .en-tag{
  font-family:var(--font-en);font-weight:800;letter-spacing:.18em;color:var(--red);font-size:.78rem;
}
.detail-block h3{font-size:1.5rem;font-weight:800;color:var(--navy);margin:8px 0 16px}
.detail-block p{font-size:.95rem;color:var(--ink-soft);margin-bottom:12px}
.check-list{margin-top:18px;display:grid;gap:12px}
.check-list li{
  display:flex;gap:12px;align-items:flex-start;background:var(--bg-gray);
  border-radius:10px;padding:14px 18px;font-size:.92rem;font-weight:600;color:var(--navy);
}
.check-list li::before{
  content:"✓";flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--red);
  color:#fff;display:grid;place-items:center;font-size:.78rem;font-weight:800;margin-top:2px;
}

/* 車輌詳細カード */
.truck-detail{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;
  display:grid;grid-template-columns:1fr 1.1fr;
}
.truck-detail + .truck-detail{margin-top:36px}
.truck-detail .thumb img{width:100%;height:100%;object-fit:cover}
.truck-detail .body{padding:34px 38px}
.truck-detail h3{font-size:1.3rem;font-weight:800;color:var(--navy);margin-bottom:6px}
.truck-detail .en-tag{font-family:var(--font-en);font-weight:700;letter-spacing:.16em;color:var(--red);font-size:.72rem}
.spec-table{margin-top:18px}
.spec-table th,.spec-table td{
  text-align:left;padding:12px 16px;font-size:.9rem;border-bottom:1px solid var(--line);
}
.spec-table th{width:34%;color:var(--ink-soft);font-weight:600;background:var(--bg-gray)}
.spec-table td{font-weight:700;color:var(--navy)}

/* 会社概要・採用テーブル */
.info-table{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.info-table th,.info-table td{padding:20px 26px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}
.info-table th{width:26%;background:var(--bg-gray);color:var(--navy);font-weight:700;font-size:.9rem}
.info-table td{font-size:.93rem;color:var(--ink)}
.info-table td small{color:var(--ink-soft)}
.map-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.map-wrap iframe{width:100%;height:440px;border:0}
.map-note{margin-top:14px;font-size:.85rem;color:var(--ink-soft)}

/* 採用：募集職種カード */
.job-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-bottom:56px}
.job-card{
  background:#fff;border-radius:var(--radius);padding:34px 30px;box-shadow:var(--shadow-sm);
  border-top:4px solid var(--blue);
}
.job-card:nth-child(2){border-top-color:var(--red)}
.job-card .badge{
  display:inline-block;font-size:.72rem;font-weight:800;color:#fff;background:var(--blue);
  border-radius:999px;padding:4px 16px;letter-spacing:.08em;
}
.job-card:nth-child(2) .badge{background:var(--red)}
.job-card h3{font-size:1.25rem;font-weight:800;color:var(--navy);margin:14px 0 6px}
.job-card .type{font-size:.85rem;color:var(--ink-soft);margin-bottom:14px}
.job-card .salary{
  font-size:1.05rem;font-weight:800;color:var(--red);background:#fdecea;
  border-radius:10px;padding:10px 18px;display:inline-block;
}
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:flow}
.flow li{
  position:relative;background:#fff;border-radius:var(--radius);padding:30px 24px 26px;
  box-shadow:var(--shadow-sm);counter-increment:flow;text-align:center;
}
.flow li::before{
  content:"0" counter(flow);font-family:var(--font-en);font-weight:800;color:var(--red);
  font-size:1.1rem;letter-spacing:.1em;display:block;margin-bottom:8px;
}
.flow li b{display:block;font-size:1rem;color:var(--navy);margin-bottom:6px}
.flow li p{font-size:.84rem;color:var(--ink-soft)}

/* ---------- スクロールアニメーション ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}

/* ---------- レスポンシブ ---------- */
@media(max-width:1080px){
  .gnav{display:none}
  .menu-btn{display:flex}
  .header-tel{display:none}
  .brand{position:relative;z-index:60}
  .header-cta{position:relative;z-index:60}
  /* フルスクリーン・オーバーレイメニュー（背景は半透明の黒） */
  .gnav.sp-open{
    display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
    position:fixed;inset:0;z-index:50;margin:0;
    padding:calc(var(--header-h) + 16px) 26px calc(30px + env(safe-area-inset-bottom,0px));overflow-y:auto;
    background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
    animation:menuFade .25s ease;
  }
  /* 収まる時は中央寄せ／収まらない時は潰さずスクロール */
  .gnav.sp-open ul{flex-direction:column;gap:2px;width:100%;max-width:440px;flex-shrink:0;margin-top:auto}
  .gnav.sp-open a{
    display:block;color:#fff;font-size:1.18rem;font-weight:700;text-align:center;letter-spacing:.04em;
    padding:18px 8px;border-bottom:1px solid rgba(255,255,255,.2);
  }
  .gnav.sp-open a.active{color:#ffb4a8}
  .gnav.sp-open a::after{display:none}
  .gnav.sp-open .sp-tel{margin-top:26px;margin-bottom:auto;text-align:center;flex-shrink:0}
  .gnav.sp-open .sp-tel a{font-family:var(--font-en);font-size:1.8rem;font-weight:800;color:#fff;border:none}
  .gnav.sp-open .sp-tel small{display:block;color:rgba(255,255,255,.75);font-size:.8rem;margin-top:4px}
  .sp-tel{display:block}
  /* メニュー展開時：ヘッダーを透過し、ロゴを白に */
  .header.nav-open{background:transparent;border-bottom-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .header.nav-open .brand-text b{color:#fff}
  .header.nav-open .brand-text small{color:rgba(255,255,255,.75)}
}
/* 縦が短い端末（小型スマホ・横向き）ではメニュー項目をコンパクトに */
@media(max-width:1080px) and (max-height:720px){
  .gnav.sp-open a{padding:12px 8px;font-size:1.02rem}
  .gnav.sp-open .sp-tel{margin-top:14px}
  .gnav.sp-open .sp-tel a{font-size:1.4rem}
  .gnav.sp-open .sp-tel small{font-size:.72rem}
}
@keyframes menuFade{from{opacity:0}to{opacity:1}}
.sp-tel{display:none}
@media(max-width:900px){
  .section{padding:68px 0}
  .about-grid,.service-grid,.detail-block,.truck-detail,.job-cards{grid-template-columns:1fr}
  .detail-block.reverse{direction:ltr}
  .strength-grid{grid-template-columns:1fr;max-width:540px;margin:0 auto}
  .truck-grid{grid-template-columns:repeat(2,1fr)}
  .about-grid .photo{order:-1}
  .detail-block{gap:28px}
  .detail-block + .detail-block{margin-top:56px}
  .contact-inner{grid-template-columns:1fr}
  .contact-box{grid-column:1;grid-row:auto;margin-top:30px;padding:30px 24px}
  .contact-divider{margin:22px 0}
  .contact-addr{grid-column:1}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .recruit-band .inner{padding:56px 30px}
  .hero-news{left:0;right:0;max-width:100%;border-radius:0;padding:14px 20px}
  .hero{height:88svh;min-height:560px}
  .info-table th{width:32%}
}
@media(max-width:560px){
  .truck-grid{grid-template-columns:1fr}
  .hero-btns .btn{width:100%}
  .flow{grid-template-columns:1fr}
  .hero-news .tag{padding-right:12px}
  .hero-news time{display:none}
  .info-table th,.info-table td{display:block;width:100%;padding:14px 18px}
  .info-table th{border-bottom:none;padding-bottom:6px}
  .info-table td{padding-top:0}
}

/* =========================================================
   採用ページ 専用パーツ
========================================================= */
/* メッセージ */
.recruit-msg{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.recruit-msg .msg-copy p{color:var(--ink-soft);font-size:.96rem;margin-bottom:14px}
.recruit-msg .msg-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.recruit-msg .msg-visual{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:5/4}
.recruit-msg .msg-visual img{width:100%;height:100%;object-fit:cover}

/* 数字で見る愛希 */
.stats-band{
  background:linear-gradient(115deg,var(--navy-deep),var(--blue));color:#fff;
  padding:84px 0;position:relative;overflow:hidden;
}
.stats-band::before{
  content:"";position:absolute;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(230,74,60,.28),transparent 70%);left:-130px;bottom:-180px;
}
.stats{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.stat{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:16px;padding:30px 16px;text-align:center;
}
.stat .num{
  display:block;font-family:var(--font-en);font-weight:800;color:#fff;
  font-size:clamp(1.8rem,3.2vw,2.5rem);line-height:1.15;letter-spacing:.02em;
}
.stat .num small{font-family:"Noto Sans JP",sans-serif;font-size:.9rem;font-weight:700;margin-left:3px}
.stat .label{display:block;margin-top:10px;font-size:.82rem;color:rgba(255,255,255,.82);font-weight:600}

/* 働く魅力 */
.merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.merit-card{
  background:#fff;border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow-sm);
  border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease;
}
.merit-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.merit-card h3{font-size:1.1rem;font-weight:800;color:var(--navy);margin-bottom:10px;line-height:1.6}
.merit-card h3::before{content:"";display:block;width:26px;height:2px;background:var(--red);margin-bottom:14px}
.merit-card p{font-size:.9rem;color:var(--ink-soft)}

/* ドライバーの一日（タイムライン） */
.timeline{max-width:760px;margin:0 auto;position:relative}
.timeline::before{content:"";position:absolute;left:13px;top:10px;bottom:10px;width:2px;background:var(--line)}
.timeline li{position:relative;display:block;padding-left:36px;padding-bottom:28px}
.timeline li:last-child{padding-bottom:0}
.timeline .time{
  font-family:var(--font-en);font-weight:800;color:var(--blue);font-size:1rem;text-align:right;padding-top:15px;
}
.timeline .t-body{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:15px 22px;box-shadow:var(--shadow-sm);
}
.timeline .t-body::before{
  content:"";position:absolute;left:-30px;top:18px;width:14px;height:14px;border-radius:50%;
  background:var(--red);border:3px solid #fff;box-shadow:0 0 0 2px var(--red);
}
.timeline .t-body b{display:block;color:var(--navy);font-size:1rem;margin-bottom:4px}
.timeline .t-body p{font-size:.86rem;color:var(--ink-soft)}

/* 先輩の声 */
.voice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.voice-card{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;
  display:block;
}
.voice-card .avatar{background:#eef3fc}
.voice-card .avatar img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.voice-card .voice-body{padding:26px 28px}
.voice-card .role{
  display:inline-block;font-size:.74rem;font-weight:700;color:var(--blue);
  background:#e8eefb;border-radius:999px;padding:4px 14px;margin-bottom:12px;
}
.voice-card .quote{font-size:.92rem;color:var(--ink);font-weight:500;line-height:1.95}
.voice-card .who{display:block;margin-top:14px;font-size:.82rem;color:var(--ink-soft);font-weight:700;text-align:right}

/* FAQ */
.container.narrow{max-width:820px}
.faq details{
  background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px;
  box-shadow:var(--shadow-sm);overflow:hidden;
}
.faq summary{
  list-style:none;cursor:pointer;padding:20px 56px;position:relative;
  font-weight:700;color:var(--navy);font-size:.98rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  content:"Q";position:absolute;left:22px;top:50%;transform:translateY(-50%);
  font-family:var(--font-en);font-weight:800;color:var(--red);font-size:1.05rem;
}
.faq summary::after{
  content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);
  color:var(--ink-soft);font-size:1.4rem;font-weight:300;transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .a{padding:0 24px 22px 56px;font-size:.9rem;color:var(--ink-soft);position:relative}
.faq .a::before{
  content:"A";position:absolute;left:22px;top:0;
  font-family:var(--font-en);font-weight:800;color:var(--blue);font-size:1.05rem;
}

/* レスポンシブ（採用ページ） */
@media(max-width:900px){
  .recruit-msg{grid-template-columns:1fr;gap:30px}
  .recruit-msg .msg-visual{order:-1;aspect-ratio:16/10}
  .stats{grid-template-columns:repeat(3,1fr)}
  .merit-grid{grid-template-columns:1fr 1fr}
  .voice-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .stats{grid-template-columns:1fr 1fr}
  .merit-grid{grid-template-columns:1fr}
  .timeline::before{left:13px}
  .timeline li{padding-left:32px}
  .voice-card{grid-template-columns:1fr}
  .voice-card .avatar{aspect-ratio:16/9}
}

/* =========================================================
   モバイル最適化（全ページ共通の追い込み）
========================================================= */
@media(max-width:600px){
  :root{--header-h:64px}
  .header-inner{gap:14px;padding:0 18px}
  .brand-mark{width:40px;height:40px;font-size:1.15rem;border-radius:11px}
  .brand-text b{font-size:1.05rem}
  .brand-text small{font-size:.56rem}
  .header-cta{gap:10px}
  .header-cta .btn-red{display:none} /* 小型端末では混雑回避。電話はメニュー内に表示 */
  .container{padding:0 18px}
  .section{padding:54px 0}
  .sec-head{margin-bottom:30px}
  .page-hero{padding:52px 0 38px}
  .map-wrap iframe{height:320px}
  .spec-table th,.spec-table td{padding:10px 14px;font-size:.86rem}
  .spec-table th{white-space:nowrap;width:38%}
}
/* トップ：ヒーロー下部（ニュース帯・SCROLL）の重なり防止 */
@media(max-width:900px){
  .hero-inner{padding-bottom:84px}
}
@media(max-width:560px){
  .hero-scroll{display:none}
  .hero-inner{padding-bottom:96px}
  .hero-news{padding:12px 16px;gap:10px}
  .stat{padding:24px 12px}
  .timeline .t-body{padding:14px 16px}
}
@media(max-width:380px){
  .brand-text small{display:none}
  .hero-catch{font-size:1.8rem}
  .page-hero h1{font-size:1.5rem}
  .contact-tel a{font-size:1.6rem}
}

/* =========================================================
   ロゴ画像（ワードマーク）
========================================================= */
.brand{gap:0}
.brand-logo{height:42px;width:auto;display:block}
.footer .brand-logo{height:48px;margin-bottom:4px}
/* メニュー展開時はヘッダーが暗くなるのでロゴを白に反転 */
.header.nav-open .brand-logo{filter:brightness(0) invert(1)}
@media(max-width:600px){
  .brand-logo{height:34px}
  .footer .brand-logo{height:44px}
}

/* =========================================================
   オープニング・イントロ（ロゴモーション）
========================================================= */
body.intro-lock{overflow:hidden}
#intro{
  position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:22px;cursor:pointer;overflow:hidden;
  background:linear-gradient(135deg,#0c1830 0%,#13233f 55%,#1e3a8a 120%);
}
#intro::after{ /* うっすらビネット */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 42%,transparent 55%,rgba(0,0,0,.35));
}
#intro.hide{animation:introOut .7s cubic-bezier(.6,0,.3,1) forwards}
@keyframes introOut{to{opacity:0;visibility:hidden;transform:scale(1.04)}}

.intro-logo-wrap{position:relative;width:min(64vw,440px);z-index:2}
.intro-logo{
  display:block;width:100%;height:auto;
  clip-path:inset(0 100% 0 0);-webkit-clip-path:inset(0 100% 0 0);
  animation:introWipe 1.15s cubic-bezier(.66,0,.2,1) .3s forwards;
  filter:drop-shadow(0 8px 26px rgba(0,0,0,.45));
}
@keyframes introWipe{to{clip-path:inset(0 0 0 0);-webkit-clip-path:inset(0 0 0 0)}}

/* 光沢はロゴの文字形に切り抜く（四角い枠を出さない） */
.intro-shine{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;
  -webkit-mask:url(../img/logo_white.svg) no-repeat center/contain;
          mask:url(../img/logo_white.svg) no-repeat center/contain;
}
.intro-shine::before{
  content:"";position:absolute;top:-25%;bottom:-25%;left:0;width:55%;
  background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.9) 50%,transparent 100%);
  transform:translateX(-220%) skewX(-12deg);
  animation:introShine 1s ease 1.35s;
}
@keyframes introShine{to{transform:translateX(360%) skewX(-12deg)}}

.intro-streaks{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.intro-streaks i{
  position:absolute;left:0;height:2px;border-radius:2px;opacity:0;
  background:linear-gradient(90deg,transparent,#e64a3c,transparent);
}
.intro-streaks i:nth-child(1){top:42%;width:55%;animation:introStreak .6s ease 1.45s}
.intro-streaks i:nth-child(2){top:52%;width:80%;background:linear-gradient(90deg,transparent,#fff,transparent);animation:introStreak .72s ease 1.55s}
.intro-streaks i:nth-child(3){top:61%;width:46%;animation:introStreak .55s ease 1.7s}
@keyframes introStreak{0%{transform:translateX(-80%);opacity:0}45%{opacity:.85}100%{transform:translateX(160%);opacity:0}}

.intro-tag{
  position:relative;z-index:2;font-family:var(--font-en);letter-spacing:.42em;text-indent:.42em;
  color:rgba(255,255,255,.82);font-size:.8rem;font-weight:700;
  opacity:0;transform:translateY(10px);animation:introTag .7s ease 1.75s forwards;
}
@keyframes introTag{to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  #intro{display:none!important}
}

/* ===== モバイルメニュー：ホバーで色が浮き上がる ===== */
@media(max-width:1080px){
  .gnav.sp-open a{transition:color .22s ease,transform .22s ease,background .22s ease,text-shadow .22s ease}
  .gnav.sp-open a:hover{
    color:#ffb4a8;
    background:rgba(255,255,255,.08);
    transform:translateY(-3px) scale(1.04);
    text-shadow:0 8px 22px rgba(230,74,60,.55);
  }
}

/* ===== カスタムカーソル（丸＋影・全画面） ===== */
.cursor-dot{
  position:fixed;top:0;left:0;width:16px;height:16px;border-radius:50%;
  background:rgba(230,74,60,.9);
  box-shadow:0 4px 14px rgba(19,35,63,.5),0 0 0 4px rgba(230,74,60,.18);
  pointer-events:none;z-index:99999;
  transition:width .22s ease,height .22s ease,background .22s ease,box-shadow .22s ease,opacity .25s ease;
  will-change:transform;
}
.cursor-dot.is-hover{
  width:46px;height:46px;background:rgba(230,74,60,.2);
  box-shadow:0 10px 26px rgba(19,35,63,.45),0 0 0 2px rgba(230,74,60,.6);
}
html.has-cursor,html.has-cursor *{cursor:none !important}

/* =========================================================
   コーポレート感の作り込み（モーション / デザイン）
========================================================= */
/* ヘッダー：スクロールで縮む */
.header{transition:height .3s ease,background .3s ease,box-shadow .3s ease}
.header.scrolled{height:64px;background:rgba(255,255,255,.97)}
.header.scrolled .brand-logo{height:36px}
@media(max-width:600px){.header.scrolled{height:56px}.header.scrolled .brand-logo{height:30px}}

/* ヒーロー：読み込み時の段階表示 */
.hero-inner>*{opacity:0;transform:translateY(26px);animation:heroIn .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-inner>.hero-catch{animation-delay:.2s}
.hero-inner>.hero-sub{animation-delay:.42s}
.hero-inner>.hero-btns{animation-delay:.64s}
@keyframes heroIn{to{opacity:1;transform:none}}

/* 見出し英字ラベルの下線ドロー */
.sec-head .en::after{content:"";display:block;width:38px;height:3px;border-radius:2px;background:var(--red);margin-top:9px;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1) .15s}
.sec-head.center .en::after{margin-left:auto;margin-right:auto;transform-origin:center}
.sec-head.white .en::after{background:#ffb4a8}
.reveal.visible .en::after,.sec-head.reveal.visible .en::after{transform:scaleX(1)}

/* キーワードの流れる帯（マーキー） */
.marquee{overflow:hidden;background:var(--navy-deep);padding:20px 0;white-space:nowrap}
.marquee-track{display:inline-flex;gap:52px;padding-left:52px;animation:marquee 30s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-family:var(--font-en);font-weight:800;letter-spacing:.12em;color:rgba(255,255,255,.14);font-size:1.5rem;text-transform:uppercase}
@keyframes marquee{to{transform:translateX(-50%)}}

/* カードのホバーに奥行き */
.strength-card,.merit-card,.job-card{transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
.strength-card:hover,.merit-card:hover,.job-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}

@media(prefers-reduced-motion:reduce){
  .hero-inner>*{animation:none;opacity:1;transform:none}
  .marquee-track{animation:none}
  .sec-head .en::after{transition:none;transform:scaleX(1)}
}

/* お問い合わせフォーム */
.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:38px 36px;display:grid;gap:22px}
.contact-form .field{display:grid;gap:8px}
.contact-form label{font-weight:700;color:var(--navy);font-size:.92rem}
.contact-form .req{display:inline-block;font-size:.66rem;font-weight:700;color:#fff;background:var(--red);border-radius:4px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.contact-form input,.contact-form select,.contact-form textarea{font-family:inherit;font-size:1rem;color:var(--ink);width:100%;border:1.5px solid var(--line);border-radius:10px;padding:13px 15px;background:#fff;transition:border-color .2s,box-shadow .2s}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(230,74,60,.15)}
.contact-form textarea{resize:vertical;line-height:1.8}
.contact-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-form .agree{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink-soft);font-size:.9rem}
.contact-form .agree input{width:auto}
.contact-form .form-submit{text-align:center;margin-top:6px}
.contact-form .form-submit .btn{padding:16px 56px;font-size:1rem}
.contact-form .form-note{text-align:center;font-size:.85rem;color:var(--ink-soft)}
.contact-form .form-note a{color:var(--red);font-weight:700}
.thanks-icon{width:90px;height:90px;border-radius:50%;background:var(--red);color:#fff;font-size:2.6rem;display:grid;place-items:center;margin:0 auto 26px;box-shadow:0 10px 26px rgba(230,74,60,.35)}
@media(max-width:560px){.contact-form{padding:26px 20px}.contact-form .row2{grid-template-columns:1fr}}

/* 404ページ */
.err-hero{text-align:center;padding:24px 0 8px}
.err-404{font-family:var(--font-en);font-weight:800;font-size:clamp(5rem,18vw,11rem);line-height:1;letter-spacing:.04em;background:linear-gradient(120deg,var(--navy),var(--blue));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--navy)}
.err-hero .err-img{max-width:340px;margin:6px auto 0}
.err-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}

/* イースターエッグ：トラック横断 */
.easter-truck{position:fixed;bottom:24px;left:-170px;font-size:84px;line-height:1;z-index:100000;pointer-events:none;transform:scaleX(-1);animation:eggDrive 4s linear forwards;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25))}
@keyframes eggDrive{to{left:calc(100% + 170px)}}
.easter-toast{position:fixed;left:50%;bottom:128px;transform:translateX(-50%) translateY(20px);background:var(--navy-deep);color:#fff;padding:14px 26px;border-radius:999px;font-weight:700;font-size:.95rem;z-index:100000;opacity:0;box-shadow:var(--shadow);white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis;animation:eggToast 4s ease forwards}
@keyframes eggToast{10%{opacity:1;transform:translateX(-50%) translateY(0)}82%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(20px)}}


/* ===== モバイル：お問い合わせ帯＆フッター最適化 ===== */
@media(max-width:900px){
  .contact-band{padding:60px 0 64px}
  .contact-inner>p{font-size:.88rem;line-height:2}
  .contact-box{padding:28px 22px 26px;border-radius:12px}
  .contact-addr{font-size:.8rem;line-height:1.9;margin-top:24px}

  .footer{padding:48px 0 24px}
  .footer-grid{gap:36px;text-align:center}
  .footer .brand{display:inline-block}
  .footer-desc{max-width:32em;margin:14px auto 0;font-size:.82rem}
  .footer-col h4{margin-bottom:14px}
  .footer-col:nth-child(2) ul{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .footer-col:nth-child(2) li{margin:0}
  .footer-col:nth-child(2) a{
    display:block;padding:12px 6px;border:1px solid rgba(255,255,255,.16);
    border-radius:10px;font-size:.84rem;color:#c9d3e4;
  }
  .footer-col:nth-child(2) a:active{background:rgba(255,255,255,.08)}
  .footer-col:nth-child(3) li{margin-bottom:8px;font-size:.82rem;line-height:1.9}
  .footer-col .tel{
    display:block;max-width:300px;margin:8px auto 4px;padding:13px 10px;
    background:var(--red);color:#fff;border-radius:999px;font-size:1.15rem;letter-spacing:.04em;
  }
  .footer-col .tel:hover{color:#fff}
  .footer-bottom{justify-content:center;text-align:center;margin-top:36px}
}


/* ===== モバイル：ヒーロー文字組み ===== */
@media(max-width:600px){
  .hero-sub br{display:none}
  .hero-sub{margin-top:16px;font-size:.95rem;line-height:2;padding-right:4px}
  .hero-btns{margin-top:28px;gap:12px}
}
@media(max-width:560px){
  .hero-btns .btn{width:100%;max-width:340px}
}


/* ===== メニュー表示の安定化（アプリ内ブラウザ対策） ===== */
.header{background:rgba(255,255,255,.97);backdrop-filter:none;-webkit-backdrop-filter:none}
.header.scrolled{background:rgba(255,255,255,.98)}
.header.nav-open,.header.nav-open.scrolled{background:transparent;box-shadow:none;border-bottom-color:transparent}
