/* 内海電工 下層ページ共通スタイル */
:root{
  --navy:#0d1b2e; --navy2:#17304e; --yellow:#ffc531; --bg:#f6f8fb;
  --ink:#1c2733; --mut:#5b6b7c; --line:#e3e9f0;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP','Hiragino Sans',sans-serif;color:var(--ink);background:#fff;line-height:1.8}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.en{font-family:'Montserrat','Noto Sans JP',sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* header（トップと同デザイン） */
.hd{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(13,27,46,.96);backdrop-filter:blur(8px)}
.hd-in{max-width:1200px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:24px}
.logo{display:flex;align-items:center;gap:10px;color:#fff}
.logo .bolt{width:40px;height:40px;border-radius:10px;background:var(--yellow);display:grid;place-items:center;font-size:20px}
.logo b.en{font-size:17px;letter-spacing:.06em;display:block;line-height:1.2}
.logo small{font-size:10.5px;color:#9fb2c8;letter-spacing:.14em}
.nav{margin-left:auto;display:flex;align-items:center;gap:22px}
.nav>a{color:#dbe6f2;font-size:13.5px;font-weight:500;transition:color .2s}
.nav>a:hover{color:var(--yellow)}
.nav .tel{background:var(--yellow);color:var(--navy);font-weight:900;padding:8px 18px;border-radius:999px;font-size:15px;display:flex;flex-direction:column;align-items:center;line-height:1.25}
.nav .tel small{font-size:9.5px;font-weight:700}
.navtog{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:6px}
.navtog span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;border-radius:2px}

/* ページヒーロー */
.page-hero{background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;padding:140px 20px 56px;text-align:center}
.page-hero .label{color:var(--yellow);font-weight:800;letter-spacing:.28em;font-size:12px;text-transform:uppercase}
.page-hero h1{font-size:clamp(24px,3.6vw,38px);font-weight:900;margin:10px 0 12px;line-height:1.5}
.page-hero p{color:#b9c9dc;font-size:14px;max-width:720px;margin:0 auto}
.crumb{margin-top:18px;font-size:12px;color:#8fa4bd}
.crumb a{color:#c9d8ea;text-decoration:underline}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.hero-chips span{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 16px;font-size:12.5px}

/* セクション */
section{padding:64px 20px}
.sec-label{color:#d9a300;font-weight:800;letter-spacing:.28em;font-size:12px;text-align:center;text-transform:uppercase}
.sec-title{text-align:center;font-size:clamp(21px,3vw,30px);font-weight:900;margin:8px 0 10px}
.sec-desc{text-align:center;color:var(--mut);font-size:14px;margin-bottom:36px}
.alt{background:var(--bg)}

/* サブナビ（料金ページ切替） */
.subnav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:-20px auto 40px}
.subnav a{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 20px;font-size:13px;font-weight:700;color:var(--mut);transition:.2s}
.subnav a:hover{border-color:var(--yellow);color:var(--ink)}
.subnav a.act{background:var(--navy);border-color:var(--navy);color:var(--yellow)}

/* 注意書き・ハイライトボックス */
.note-box{background:#fff8e6;border:1px solid #f2dfa0;border-radius:14px;padding:20px 24px;font-size:13.5px;margin:0 0 32px}
.note-box b{color:#8a6d00}
.point-box{background:var(--navy);color:#eaf2fb;border-radius:16px;padding:26px 28px;margin:0 0 36px}
.point-box h3{color:var(--yellow);font-size:16px;margin-bottom:8px}
.point-box p{font-size:13.5px;color:#c3d2e4}
.point-box small{display:block;margin-top:10px;color:#8fa4bd;font-size:12px}

/* 料金テーブル */
.ptable{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(13,27,46,.06);font-size:14px;margin-bottom:14px}
.ptable th{background:var(--navy);color:#fff;text-align:left;padding:13px 18px;font-size:13px}
.ptable th:nth-child(2){white-space:nowrap}
.ptable td{padding:13px 18px;border-top:1px solid var(--line)}
.ptable td.price{font-weight:900;color:var(--navy);white-space:nowrap}
.ptable td.rem{color:var(--mut);font-size:12.5px}
.ptable tr:nth-child(even) td{background:#fafcff}
.tbl-note{color:var(--mut);font-size:12.5px;margin-bottom:36px}
.tbl-head{font-size:17px;font-weight:900;margin:34px 0 14px;padding-left:12px;border-left:4px solid var(--yellow)}

/* カードグリッド */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:36px}
.cards.c2{grid-template-columns:1fr 1fr}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 4px 16px rgba(13,27,46,.05)}
.card .ic{width:44px;height:44px;border-radius:12px;background:var(--navy);display:grid;place-items:center;font-size:22px;margin-bottom:12px}
.card h3{font-size:15.5px;font-weight:900;margin-bottom:8px}
.card p,.card li{font-size:13.5px;color:var(--mut)}
.card ul{list-style:none}
.card li{padding-left:16px;position:relative;margin-bottom:6px}
.card li::before{content:'';position:absolute;left:0;top:.65em;width:7px;height:7px;border-radius:2px;background:var(--yellow)}

/* ステップ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:36px}
.step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 24px;position:relative}
.step .no{position:absolute;top:14px;right:18px;font-size:34px;font-weight:800;color:#edf1f6;font-family:'Montserrat',sans-serif}
.step h3{font-size:15.5px;font-weight:900;margin-bottom:8px}
.step h3 span{color:#d9a300;margin-right:8px}
.step p{font-size:13.5px;color:var(--mut)}

/* ギャラリー */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.gallery.g2{grid-template-columns:1fr 1fr}
.ph{border-radius:16px;overflow:hidden;background:#0f2036;box-shadow:0 8px 24px rgba(13,27,46,.18)}
.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s}
.ph:hover img{transform:scale(1.04)}
.ph .cap{padding:12px 16px 14px;color:#eaf2fb;font-size:13.5px;font-weight:700}
.ph .cap small{display:block;color:var(--yellow);font-size:11px;letter-spacing:.1em;margin-bottom:2px}
.works-dark{background:var(--navy)}
.works-dark .sec-title{color:#fff}
.works-dark .sec-desc{color:#9fb2c8}

/* 事例詳細 */
.case-img{border-radius:20px;overflow:hidden;box-shadow:0 12px 32px rgba(13,27,46,.16);margin-bottom:36px}
.case-img img{width:100%;max-height:480px;object-fit:cover;display:block}
.spec{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(13,27,46,.06);font-size:14px;margin-bottom:36px}
.spec th{background:var(--bg);text-align:left;padding:12px 18px;width:160px;font-size:13px;color:var(--mut);border-top:1px solid var(--line)}
.spec td{padding:12px 18px;border-top:1px solid var(--line)}
.spec tr:first-child th,.spec tr:first-child td{border-top:0}
.pe-total{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:14px;padding:16px 22px;font-weight:900;margin:-2px 0 12px}
.pe-total .yen{color:var(--yellow);font-size:22px}

/* お客様の声 */
.vc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vc-grid.v2{grid-template-columns:1fr 1fr}
.vc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 24px;position:relative;box-shadow:0 4px 16px rgba(13,27,46,.05)}
.vc .q{position:absolute;top:14px;right:20px;font-size:44px;font-weight:800;color:#edf1f6;font-family:Georgia,serif;line-height:1}
.vc .stars{color:#f2b01e;font-size:14px;letter-spacing:2px;margin-bottom:10px}
.vc p{font-size:13.5px;color:#3d4b5c;line-height:1.9}
.vc .who{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--mut);font-weight:700}
.vc .who small{display:block;font-weight:500;color:#8fa2b8;margin-top:2px}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:14px}
.qa{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 24px}
.qa h4{font-size:14.5px;font-weight:900;margin-bottom:6px;padding-left:26px;position:relative}
.qa h4::before{content:'Q';position:absolute;left:0;top:1px;color:#d9a300;font-family:'Montserrat',sans-serif;font-size:16px}
.qa p{font-size:13.5px;color:var(--mut);padding-left:26px}

/* CTAストリップ */
.cta-strip{background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;text-align:center}
.cta-strip h2{font-size:clamp(19px,2.6vw,26px);font-weight:900;margin-bottom:8px}
.cta-strip h2 .yl{color:var(--yellow)}
.cta-strip p{color:#b9c9dc;font-size:13.5px;margin-bottom:24px}
.cta-btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.btn{display:inline-block;border-radius:999px;padding:14px 34px;font-weight:900;font-size:15px;transition:.2s}
.btn-y{background:var(--yellow);color:var(--navy)}
.btn-y:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,197,49,.35)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{border-color:var(--yellow);color:var(--yellow)}
.qr-inline{display:flex;align-items:center;gap:16px;justify-content:center;margin-top:26px}
.qr-inline img{width:92px;height:92px;border-radius:10px;background:#fff;padding:6px}
.qr-inline div{text-align:left;font-size:12.5px;color:#b9c9dc}
.qr-inline b{color:#fff;display:block;font-size:13.5px}

/* 関連リンク */
.rel-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}
.rel-links a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 22px;font-size:13px;font-weight:700;color:var(--ink);transition:.2s}
.rel-links a:hover{border-color:var(--yellow);background:#fffdf4}
.rel-links a span{color:#d9a300;margin-left:6px}

footer{background:#0a1522;color:#8fa4bd;text-align:center;padding:36px 20px;font-size:12.5px}
footer .license{margin-top:6px}
footer .credit{margin-top:14px;font-size:11.5px;opacity:.7}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}
.reveal.on{opacity:1;transform:none}

@media(max-width:900px){
  .nav{position:fixed;top:60px;right:0;left:0;background:var(--navy);flex-direction:column;padding:20px;gap:16px;display:none}
  .nav.open{display:flex}
  .navtog{display:block}
  .cards,.steps,.gallery,.vc-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  section{padding:52px 16px}
  .page-hero{padding:120px 16px 44px}
  .cards,.cards.c2,.steps,.gallery,.gallery.g2,.vc-grid,.vc-grid.v2{grid-template-columns:1fr}
  .ptable{font-size:13px}
  .ptable th,.ptable td{padding:11px 12px}
}
