/* ===== 案G：マルチページ版 BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --orange:#f3981c; --orange-dk:#d27e0a; --orange-lt:#fef6ea;
  --navy:#003c66; --navy-dk:#002744; --ink:#1a1a1a;
  --gray-f7:#f7f7f5; --gray-e:#e6e6e2; --gray-9:#8a8a86; --gray-6:#5a5a56; --white:#fff;
  --font:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
  --wrap:1180px;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font);color:var(--ink);line-height:1.9;background:var(--white);-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
em{font-style:normal;color:var(--orange);font-weight:700;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px;}

/* ===== 見出し ===== */
.sec-en{display:block;font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--orange);margin-bottom:16px;text-transform:uppercase;}
.sec-ttl{font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:900;letter-spacing:.01em;line-height:1.3;color:var(--navy);margin-bottom:24px;}
.sec-ttl--white{color:#fff;}
.sec-desc{font-size:1rem;color:var(--gray-6);line-height:1.95;}
.sec-head{margin-bottom:56px;}
.sec-head--center{text-align:center;max-width:720px;margin-left:auto;margin-right:auto;}

/* ===== ボタン ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 38px;font-size:.92rem;font-weight:700;letter-spacing:.04em;border:2px solid transparent;cursor:pointer;transition:all .3s;}
.btn-fill{background:var(--orange);color:#fff;}
.btn-fill:hover{background:var(--orange-dk);transform:translateY(-2px);box-shadow:0 10px 26px rgba(243,152,28,.35);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-dk);transform:translateY(-2px);}
.btn-line{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn-line:hover{background:var(--navy);color:#fff;}
.btn-block{width:100%;}
/* 詳しくはこちら */
.more{display:inline-flex;align-items:center;gap:10px;font-size:.9rem;font-weight:700;color:var(--navy);letter-spacing:.03em;transition:gap .25s,color .25s;}
.more::after{content:'';width:30px;height:1px;background:var(--orange);transition:width .25s;}
.more:hover{color:var(--orange-dk);}
.more:hover::after{width:44px;}

/* ===== ヘッダー（全ページ共通） ===== */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--gray-e);}
.header-inner{max-width:1300px;margin:0 auto;padding:0 36px;height:78px;display:flex;align-items:center;justify-content:space-between;}
.logo img{height:36px;width:auto;}
.nav{display:flex;align-items:center;gap:30px;}
.nav-link{font-size:.85rem;font-weight:700;color:var(--navy);white-space:nowrap;transition:color .2s;position:relative;}
.nav-link:hover{color:var(--orange);}
.nav-link.current{color:var(--orange);}
.nav-link.current::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--orange);}
.nav-cta{padding:11px 24px;background:var(--orange);color:#fff;font-size:.82rem;font-weight:700;transition:background .25s;}
.nav-cta:hover{background:var(--orange-dk);}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;}
.burger span{display:block;width:25px;height:2px;background:var(--navy);transition:.3s;}

/* ===== トップ ヒーロー ===== */
.hero{position:relative;height:88vh;min-height:560px;display:flex;align-items:center;overflow:hidden;}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;animation:hz 16s ease-out forwards;}
@keyframes hz{from{transform:scale(1.08);}to{transform:scale(1);}}
.hero-ov{position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,30,52,.82),rgba(0,30,52,.5) 55%,rgba(0,30,52,.2));}
.hero-in{position:relative;z-index:1;max-width:var(--wrap);width:100%;margin:0 auto;padding:0 32px;color:#fff;}
.hero-en{font-size:.78rem;font-weight:700;letter-spacing:.16em;color:var(--orange);margin-bottom:26px;}
.hero-ttl{font-size:clamp(2.6rem,6vw,5rem);font-weight:900;line-height:1.18;letter-spacing:.02em;margin-bottom:28px;text-shadow:0 2px 24px rgba(0,0,0,.2);}
.hero-lead{font-size:1.05rem;line-height:2;color:rgba(255,255,255,.9);margin-bottom:40px;max-width:540px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;}

/* ===== 下層ページ ヒーロー（小） ===== */
.page-hero{position:relative;height:300px;display:flex;align-items:center;overflow:hidden;background:var(--navy-dk);}
.page-hero-media{position:absolute;inset:0;z-index:0;opacity:.4;}
.page-hero-media img{width:100%;height:100%;object-fit:cover;}
.page-hero-in{position:relative;z-index:1;max-width:var(--wrap);width:100%;margin:0 auto;padding:0 32px;color:#fff;}
.page-hero .en{display:block;font-size:.74rem;font-weight:800;letter-spacing:.2em;color:var(--orange);margin-bottom:12px;}
.page-hero h1{font-size:clamp(2rem,4vw,3rem);font-weight:900;letter-spacing:.02em;}
.breadcrumb{background:var(--gray-f7);border-bottom:1px solid var(--gray-e);}
.breadcrumb .wrap{padding-top:14px;padding-bottom:14px;font-size:.8rem;color:var(--gray-9);}
.breadcrumb a:hover{color:var(--orange);}
.breadcrumb span{color:var(--orange);}

/* ===== セクション ===== */
.section{padding:110px 0;}
.section--gray{background:var(--gray-f7);}
.section--navy{background:var(--navy-dk);color:#fff;}

/* ===== トップ：概要カード（詳しくはこちら導線） ===== */
.ov-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.ov-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gray-e);overflow:hidden;transition:box-shadow .3s,transform .3s;}
.ov-card:hover{box-shadow:0 16px 44px rgba(0,0,0,.1);transform:translateY(-4px);}
.ov-photo{aspect-ratio:16/8;overflow:hidden;}
.ov-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.ov-card:hover .ov-photo img{transform:scale(1.05);}
.ov-body{padding:34px 36px;display:flex;flex-direction:column;flex:1;}
.ov-no{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--orange);margin-bottom:10px;}
.ov-ttl{font-size:1.4rem;font-weight:900;color:var(--navy);margin-bottom:12px;}
.ov-txt{font-size:.92rem;color:var(--gray-6);line-height:1.9;margin-bottom:22px;flex:1;}

/* ===== トップ：会社紹介 ===== */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.intro-media img{width:100%;aspect-ratio:5/4;object-fit:cover;}
.intro-lead{font-size:1.2rem;font-weight:700;color:var(--navy);line-height:1.8;margin-bottom:20px;}
.intro-body{font-size:.96rem;color:var(--gray-6);line-height:2;margin-bottom:24px;}

/* ===== 汎用：写真+本文（詳細ページ用） ===== */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:0;}
.feature--rev .feature-media{order:2;}
.feature-media img{width:100%;aspect-ratio:16/11;object-fit:cover;}
.feature-no{font-size:2.6rem;font-weight:900;color:var(--orange);opacity:.3;line-height:1;margin-bottom:12px;}
.feature h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:900;color:var(--navy);margin-bottom:14px;}
.feature .catch{font-size:1rem;font-weight:700;color:var(--orange-dk);margin-bottom:18px;}
.feature p.body{font-size:.94rem;color:var(--gray-6);line-height:2;margin-bottom:20px;}
.feature .tag{display:inline-block;font-size:.78rem;font-weight:700;color:var(--navy);background:var(--orange-lt);border:1px solid rgba(243,152,28,.4);padding:8px 18px;}
.feature-list{display:flex;flex-direction:column;gap:8px;margin:16px 0 22px;}
.feature-list li{font-size:.92rem;color:var(--gray-6);padding-left:20px;position:relative;line-height:1.7;}
.feature-list li::before{content:'';position:absolute;left:0;top:11px;width:9px;height:2px;background:var(--orange);}
.feature + .feature{margin-top:80px;}

/* ===== PVV ===== */
.pvv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);}
.pvv-card{background:var(--navy-dk);padding:48px 40px;}
.pvv-label{font-size:.7rem;font-weight:800;letter-spacing:.2em;color:var(--orange);margin-bottom:16px;display:block;}
.pvv-card h3{font-size:1.15rem;font-weight:800;color:#fff;line-height:1.55;margin-bottom:16px;}
.pvv-card p{font-size:.88rem;color:rgba(255,255,255,.6);line-height:1.95;}
.pvv-philosophy{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:900;color:var(--orange);margin-bottom:18px;text-align:center;}
.pvv-phil-body{font-size:1rem;color:rgba(255,255,255,.7);line-height:2.1;max-width:680px;margin:0 auto 56px;text-align:center;}

/* ===== 施工事例 ===== */
.work-cat{margin-bottom:64px;}
.work-cat:last-child{margin-bottom:0;}
.work-cat-ttl{display:flex;align-items:center;gap:16px;font-size:1.3rem;font-weight:900;color:var(--navy);margin-bottom:28px;padding-bottom:16px;border-bottom:2px solid var(--gray-e);}
.work-cat-ttl span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--orange);color:#fff;font-size:.82rem;font-weight:900;}
.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.work-grid--3{grid-template-columns:repeat(3,1fr);}
.work-card{background:#fff;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.06);transition:transform .3s;}
.work-card:hover{transform:translateY(-4px);}
.work-card img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.work-card figcaption{padding:14px 16px;font-size:.88rem;font-weight:700;color:var(--ink);line-height:1.5;}
.work-card figcaption span{display:block;font-size:.68rem;font-weight:700;color:var(--orange-dk);margin-bottom:4px;}
.work-note{margin-top:24px;text-align:center;font-size:.92rem;color:var(--gray-6);}
.work-note strong{color:var(--navy);font-weight:800;}

/* ===== 選ばれる理由 ===== */
.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--gray-e);border-left:1px solid var(--gray-e);}
.reason-item{padding:42px 32px;border-right:1px solid var(--gray-e);border-bottom:1px solid var(--gray-e);transition:background .25s;}
.reason-item:hover{background:var(--orange-lt);}
.reason-num{font-size:2.2rem;font-weight:900;color:var(--orange);opacity:.35;line-height:1;display:block;margin-bottom:16px;}
.reason-item h3{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:12px;line-height:1.5;}
.reason-item p{font-size:.86rem;color:var(--gray-6);line-height:1.9;}

/* ===== 保有資格 ===== */
.license-permit{text-align:center;font-size:1.25rem;font-weight:900;color:var(--navy);margin-bottom:10px;}
.license-permit span{display:inline-block;font-size:.78rem;font-weight:600;color:var(--gray-9);margin-left:8px;}
.license-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.license-col{background:var(--gray-f7);padding:38px 34px;border-top:4px solid var(--orange);}
.license-cat{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--gray-e);}
.license-col ul{display:flex;flex-direction:column;gap:12px;}
.license-col li{font-size:.9rem;color:var(--gray-6);line-height:1.6;padding-left:20px;position:relative;}
.license-col li::before{content:'';position:absolute;left:0;top:.55em;width:9px;height:9px;background:var(--orange);border-radius:50%;}

/* ===== パートナー ===== */
.partner-box{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center;}
.partner-merits{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.partner-merits div{border-left:2px solid var(--orange);padding-left:18px;}
.partner-merits strong{display:block;font-size:.98rem;font-weight:800;color:#fff;margin-bottom:5px;}
.partner-merits p{font-size:.84rem;color:rgba(255,255,255,.7);line-height:1.7;}
.partner-lead{font-size:1.02rem;font-weight:700;color:var(--orange);margin-bottom:16px;}
.partner-body{font-size:.94rem;color:rgba(255,255,255,.8);line-height:2;margin-bottom:30px;}

/* ===== 会社概要 ===== */
.company-table{width:100%;border-collapse:collapse;max-width:880px;margin:0 auto;}
.company-table th,.company-table td{text-align:left;padding:22px 28px;border-bottom:1px solid var(--gray-e);font-size:.96rem;vertical-align:top;}
.company-table th{width:26%;font-weight:800;color:var(--navy);background:rgba(0,60,102,.04);white-space:nowrap;}
.company-table td{color:var(--gray-6);line-height:1.75;}
.company-table tr:first-child th,.company-table tr:first-child td{border-top:2px solid var(--navy);}
.map-wrap{max-width:880px;margin:36px auto 0;overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.08);}

/* ===== お知らせ ===== */
.news-list{max-width:880px;margin:0 auto;border-top:2px solid var(--navy);}
.news-item{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;padding:24px 6px;border-bottom:1px solid var(--gray-e);}
.news-item:hover{background:var(--gray-f7);}
.news-date{font-size:.85rem;font-weight:700;color:var(--gray-9);min-width:90px;}
.news-cat{font-size:.72rem;font-weight:700;color:var(--navy);background:var(--gray-f7);border:1px solid var(--gray-e);padding:3px 14px;white-space:nowrap;}
.news-cat--holiday{color:#fff;background:var(--orange);border-color:var(--orange);}
.news-text{flex:1;min-width:240px;font-size:.93rem;color:var(--gray-6);line-height:1.85;}

/* ===== お問い合わせ ===== */
.contact-form{max-width:760px;margin:0 auto;}
.form-group{margin-bottom:22px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
label{display:block;font-size:.85rem;font-weight:700;color:var(--navy);margin-bottom:9px;}
.req{color:var(--orange);}
input,textarea,select{width:100%;padding:14px 18px;background:#fff;border:1px solid var(--gray-e);color:var(--ink);font-size:.96rem;font-family:var(--font);outline:none;-webkit-appearance:none;appearance:none;border-radius:0;transition:border-color .2s,box-shadow .2s;}
input:focus,textarea:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(243,152,28,.15);}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;cursor:pointer;}
textarea{resize:vertical;}
.type-btns{display:flex;gap:14px;}
.type-btn{flex:1;cursor:pointer;}
.type-btn input{display:none;}
.type-btn span{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 14px;border:2px solid var(--gray-e);border-radius:8px;background:#fff;
  color:var(--gray-6);font-size:.98rem;font-weight:700;transition:all .2s;cursor:pointer;
}
/* ラジオの丸印 */
.type-btn span::before{
  content:'';flex-shrink:0;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--gray-e);background:#fff;transition:all .2s;
}
.type-btn span:hover{border-color:var(--orange);color:var(--navy);background:#fffaf2;}
.type-btn span:hover::before{border-color:var(--orange);}
/* 選択時 */
.type-btn input:checked + span{
  background:var(--orange);border-color:var(--orange);color:#fff;
  box-shadow:0 4px 14px rgba(243,152,28,.35);
}
.type-btn input:checked + span::before{
  border-color:#fff;background:#fff;
  box-shadow:inset 0 0 0 5px var(--orange);
}
.check-label{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:0;font-weight:400;color:var(--gray-6);font-size:.85rem;}
.check-label input{width:17px;height:17px;padding:0;flex-shrink:0;accent-color:var(--orange);}
.form-note{margin-top:14px;text-align:center;font-size:.82rem;color:var(--gray-9);line-height:1.7;}
.form-link{color:var(--orange-dk);}
.form-link:hover{text-decoration:underline;}
.form-submit{margin-top:10px;}
.form-msg{margin-top:16px;text-align:center;font-size:.9rem;min-height:22px;}
.form-msg.success{color:#16a34a;}
.form-msg.error{color:#dc2626;}

/* ===== CTAバンド ===== */
.cta-band{background:var(--orange);padding:72px 0;text-align:center;}
.cta-band h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:16px;}
.cta-band p{font-size:1rem;color:rgba(255,255,255,.9);margin-bottom:28px;}
.cta-band .btn-navy{background:#fff;color:var(--orange-dk);}
.cta-band .btn-navy:hover{background:var(--navy);color:#fff;}

/* ===== フッター ===== */
.footer{background:var(--navy-dk);padding:72px 0 30px;}
.footer-top{display:grid;grid-template-columns:1.4fr 2fr;gap:64px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer-logo{height:34px;width:auto;filter:brightness(0) invert(1);margin-bottom:18px;}
.footer-tagline{font-size:1.05rem;font-weight:800;color:var(--orange);line-height:1.6;}
.footer-tagline span{display:block;font-size:.82rem;font-weight:500;color:rgba(255,255,255,.55);margin-top:8px;}
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.footer-nav h4{font-size:.7rem;font-weight:800;letter-spacing:.12em;color:var(--orange);margin-bottom:16px;}
.footer-nav ul{display:flex;flex-direction:column;gap:10px;}
.footer-nav a{font-size:.86rem;color:rgba(255,255,255,.55);transition:color .2s;}
.footer-nav a:hover{color:var(--orange);}
.footer-nav p{font-size:.84rem;color:rgba(255,255,255,.55);line-height:1.85;margin-bottom:8px;}
.footer-bottom{padding-top:26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.footer-bottom p{font-size:.76rem;color:rgba(255,255,255,.4);}
.footer-links{display:flex;gap:22px;}
.footer-links a{font-size:.76rem;color:rgba(255,255,255,.4);transition:color .2s;}
.footer-links a:hover{color:#fff;}

/* ===== レスポンシブ ===== */
@media (max-width:960px){
  .nav{display:none;position:fixed;top:78px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--gray-e);box-shadow:0 10px 24px rgba(0,0,0,.08);padding:8px 0;}
  .nav.open{display:flex;}
  .nav-link{padding:15px 24px;text-align:center;}
  .nav-link.current::after{display:none;}
  .nav-cta{margin:8px 24px;text-align:center;}
  .burger{display:flex;}
  .ov-grid{grid-template-columns:1fr;}
  .intro{grid-template-columns:1fr;gap:40px;}
  .intro-media{order:-1;}
  .feature,.feature--rev{grid-template-columns:1fr;gap:32px;}
  .feature-media{order:-1 !important;}
  .pvv-grid{grid-template-columns:1fr;}
  .work-grid,.work-grid--3{grid-template-columns:repeat(2,1fr);}
  .reason-grid{grid-template-columns:repeat(2,1fr);}
  .license-cols{grid-template-columns:1fr;}
  .partner-box{grid-template-columns:1fr;gap:36px;}
  .footer-top{grid-template-columns:1fr;gap:36px;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .hero-in,.page-hero-in{padding:0 20px;}
  .section{padding:70px 0;}
  .hero-actions{flex-direction:column;}
  .hero-actions .btn{width:100%;}
  .form-row{grid-template-columns:1fr;}
  .type-btns{flex-direction:column;}
  .reason-grid{grid-template-columns:1fr;}
  .work-grid,.work-grid--3{grid-template-columns:1fr 1fr;}
  .footer-nav{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;text-align:center;}
}

/* ===== スプラッシュ（最初のロゴ表示） ===== */
.splash{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;align-items:center;justify-content:center;transition:opacity .7s ease .2s,visibility .7s ease .2s;}
.splash.hide{opacity:0;visibility:hidden;}
.splash.skip{display:none;}
.splash-logo{width:min(260px,55vw);opacity:0;transform:scale(.94);animation:splIn .7s cubic-bezier(.22,1,.36,1) .2s forwards;}
@keyframes splIn{to{opacity:1;transform:scale(1);}}

/* ===== 案J 追加：事業内容カード（タイトル大・説明なし） ===== */
.ov-ttl--big{font-size:1.8rem;letter-spacing:.01em;}
.ov-body--simple{gap:6px;}
.ov-body--simple .more{margin-top:14px;}

/* ===== 案J 追加：施設イラスト ===== */
.work-card img.illust{object-fit:contain;background:#f2f6fa;padding:0;}

/* ===== 案J 追加：施設カテゴリ表示 ===== */
.work-cap-center{text-align:center;font-size:1.05rem;font-weight:800;color:var(--navy);padding:16px 10px;}

/* ===== 案J 追加：フッター住所リンク ===== */
.footer-addr{transition:color .2s;}
.footer-addr:hover{color:var(--orange);text-decoration:underline;}

/* ===== 案J 追加：アクセスマップ見出し ===== */
.access-ttl{font-size:1.3rem;font-weight:800;color:var(--navy);text-align:center;margin:48px 0 20px;}

/* ===== 案J 追加：法務ページ（プライバシーポリシー等） ===== */
.legal{max-width:860px;margin:0 auto;}
.legal-lead{font-size:1rem;color:var(--gray-6);line-height:2;margin-bottom:44px;}
.legal-block{margin-bottom:38px;}
.legal-block h2{font-size:1.15rem;font-weight:800;color:var(--navy);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--gray-e);}
.legal-block p{font-size:.95rem;color:var(--gray-6);line-height:1.95;margin-bottom:10px;}
.legal-list{margin:10px 0 0 0;display:flex;flex-direction:column;gap:8px;}
.legal-list li{font-size:.95rem;color:var(--gray-6);line-height:1.8;padding-left:20px;position:relative;}
.legal-list li::before{content:'';position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--orange);border-radius:50%;}
.legal-contact{background:var(--gray-f7);border-radius:10px;padding:24px 28px;margin-top:14px;}
.legal-contact p{margin-bottom:6px;}
.legal-date{font-size:.9rem;color:var(--gray-9);text-align:right;margin-top:40px;}

/* ===== 案J 追加：対象施設例 etc. ===== */
.work-etc{text-align:right;margin-top:28px;font-size:1.3rem;font-weight:800;color:var(--gray-9);letter-spacing:.06em;}

/* ===== 案J 追加：日本語の自然な改行（文節単位） =====
   word-break:auto-phrase … 対応ブラウザ(Chrome/Edge)で文節を判定して改行
   text-wrap:balance      … 行の長さを揃えて見栄えよく折り返す         */
.hero-ttl,
.page-hero h1,
.sec-ttl,
.sec-desc,
.intro-lead,
.ov-ttl,
.feature h3,
.feature .catch,
.cta-band h2,
.cta-band p,
.work-cap-center,
.reason-item h3,
.license-cat,
.partner-lead,
.news-text,
.legal-block h2{
  word-break: auto-phrase;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

/* 文節単位で改行（全ブラウザ対応：iPhone/Safariでも効く） */
.nb{display:inline-block;}

/* ===== 電話番号（ヘッダー） ===== */
.nav-tel{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-right:18px;text-decoration:none;line-height:1.1;}
.nav-tel-lbl{font-size:.68rem;font-weight:700;color:var(--gray-9);letter-spacing:.04em;}
.nav-tel-num{font-size:1.18rem;font-weight:800;color:var(--navy);letter-spacing:.02em;}
.nav-tel:hover .nav-tel-num{color:var(--orange);}

/* ===== 電話番号（フッター） ===== */
.footer-tel{margin-top:12px;}
.footer-tel a{font-size:inherit;font-weight:700;letter-spacing:0;text-decoration:none;white-space:nowrap;}
.footer-tel a:hover{color:var(--orange);}

/* ===== 電話番号（お問い合わせページ） ===== */
.tel-box{max-width:560px;margin:0 auto 12px;padding:26px 20px;border:2px solid var(--gray-e);border-radius:12px;background:#fff;text-align:center;}
.tel-box-lbl{font-size:.95rem;font-weight:800;color:var(--navy);margin-bottom:8px;}
.tel-box-num{display:inline-block;font-size:2.1rem;font-weight:800;color:var(--navy);letter-spacing:.02em;text-decoration:none;line-height:1.2;}
.tel-box-num:hover{color:var(--orange);}
.tel-box-note{margin-top:8px;font-size:.82rem;color:var(--gray-9);}
.tel-box-or{max-width:560px;margin:0 auto 30px;text-align:center;font-size:.88rem;font-weight:700;color:var(--gray-9);}

/* ===== 電話番号（会社概要テーブル） ===== */
.tbl-tel{font-weight:800;text-decoration:none;}
.tbl-tel:hover{color:var(--orange);}

/* スマホ用の電話リンク（nav の外・バーガー左） */
.hdr-tel-sp{display:none;align-items:center;gap:5px;margin-left:auto;margin-right:14px;padding:7px 12px;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy);font-size:.9rem;font-weight:800;letter-spacing:.01em;text-decoration:none;white-space:nowrap;}
@media (max-width:900px){
  .hdr-tel-sp{display:inline-flex;}
}
@media (max-width:420px){
  .hdr-tel-sp{padding:6px 9px;font-size:.78rem;gap:4px;margin-right:10px;}
  .hdr-tel-sp svg{width:14px;height:14px;}
  .tel-box-num{font-size:1.62rem;}
}

/* 狭い画面：ロゴと電話ボタンが接触しないよう調整 */
@media (max-width:400px){
  .header-inner{padding:0 16px;}
  .hdr-tel-sp{margin-left:12px;padding:6px 8px;font-size:.72rem;}
  .hdr-tel-sp svg{width:13px;height:13px;}
}


/* お知らせ：読み込み完了まで非表示にしてチラつきを防止 */
.news-list.is-loading{visibility:hidden;}

/* フッター：拠点名ラベル（本社／関西営業所） */
.footer-off{display:block;font-size:.72rem;font-weight:800;color:var(--orange);letter-spacing:.06em;margin-bottom:2px;}
.footer-nav .footer-addr{display:block;margin-bottom:14px;}

/* 電気通信事業 届出番号（建設業許可の下） */
.license-telecom{text-align:center;font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:48px;}
.license-telecom span{display:inline-block;font-size:.86rem;font-weight:700;color:var(--gray-9);margin-left:8px;}
@media (max-width:520px){
  .license-telecom{font-size:.98rem;}
  .license-telecom span{display:block;margin-left:0;margin-top:4px;}
}

/* 会社概要：電気通信事業 届出番号 */
.tbl-telecom{font-weight:700;white-space:nowrap;}

/* CTA：見出しのみ（本文なし）。どの画面幅でも1行に収める */
.cta-band--lead h2{
  white-space:nowrap;
  font-size:clamp(0.92rem, 4.6vw, 2.2rem);
  margin-bottom:26px;
}
@media (min-width:1100px){
  .cta-band--lead h2{font-size:2.2rem;}
}

/* ===== 事業内容カード（私たちについて） ===== */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.biz-card{background:#fff;border:1px solid var(--gray-e);border-radius:10px;padding:0 0 30px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s;}
.biz-card:hover{box-shadow:0 10px 28px rgba(0,60,102,.12);transform:translateY(-3px);}
.biz-card-ico{background:#f2f6fa;}
.biz-card-ico img{display:block;width:100%;height:auto;aspect-ratio:4/3;}
.biz-card h3{font-size:1.06rem;font-weight:800;color:var(--navy);line-height:1.5;margin:24px 28px 12px;}
.biz-card p{font-size:.9rem;line-height:1.9;color:#444;margin:0 28px;}

/* 会社概要テーブル内の事業内容リスト */
.biz-list{list-style:none;margin:0;padding:0;}
.biz-list li{position:relative;padding-left:18px;line-height:1.9;}
.biz-list li::before{content:'';position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--orange);}
.biz-more{margin-top:10px;font-size:.86rem;font-weight:700;}
.biz-more a{color:var(--navy);text-decoration:none;}
.biz-more a:hover{color:var(--orange);text-decoration:underline;}

@media (max-width:980px){
  .biz-grid{grid-template-columns:repeat(2,1fr);gap:22px;}
}
@media (max-width:640px){
  .biz-grid{grid-template-columns:1fr;gap:20px;}
  .biz-card h3{margin:20px 22px 10px;font-size:1.02rem;}
  .biz-card p{margin:0 22px;}
}
