@charset "UTF-8";

/**
 * =================================================================
 * page-fire-safety.css
 * 消防設備と点検専用スタイルシート
 * =================================================================
 */

/* 1. ヒーローエリア設定 */
.hero-header-full {
    height: 60vh;
    width: 100%; position: relative;
    /* 背景画像は適宜変更してください */
    background: url('../img/fire/fire_top.jpg') no-repeat center center / cover;
    background-color: #333; /* フォールバック */
    display: flex; align-items: center; justify-content: flex-start;
}
.hero-header-full::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    /* 赤系のグラデーションで消防をイメージ */
    background: linear-gradient(135deg, rgba(204, 22, 34, 0.6), rgba(0, 0, 0, 0.7));
}

.hero-inner-left {
    position: relative;
    z-index: 2;
    padding-left: 10%;
    color: #fff;
}
.hero-inner-left .brand-text { font-size: 1.2rem; font-weight: bold; margin-bottom: 5px; }
.hero-inner-left .en-title { font-size: 1.5rem; letter-spacing: 2px; margin-bottom: 10px; opacity: 0.9; }
.hero-inner-left h1 { font-size: 3.5rem; font-weight: 900; margin: 0; }

/* 2. グリッド・レイアウト設定 */
.main-content-fixed { max-width: 1000px; margin: 0 auto; padding: 50px 20px; }
.section-container { margin-bottom: 80px; }
.breadcrumb { margin-bottom: 30px; font-size: 0.9rem; }
.breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; gap: 10px; }
.breadcrumb li::after { content: '>'; margin-left: 10px; color: #888; }
.breadcrumb li:last-child::after { content: ''; }
.breadcrumb a { color: #0070b8; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

.lead-text-main { font-size: 1.2rem; line-height: 1.8; color: #333; text-align: center; }
.ideal-bar-heading { 
    font-size: 1.8rem; color: #333; 
    border-left: 6px solid #cc1622; /* アクセントカラーを赤に変更 */
    padding-left: 15px; margin-bottom: 30px; 
}

.method-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.fixture-card { background: #fff; border-radius: 12px; border: 1px solid #e9ecef; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.05); text-align: center; padding-bottom: 20px; }
.fixture-visual { height: 180px; background: #eee; display: flex; align-items: center; justify-content: center; color: #888; }
.fixture-visual img { width: 100%; height: 100%; object-fit: cover; }
.fixture-card h4 { margin: 15px 0 0 0; font-size: 1.1rem; color: #333; }

.inner-content-text { margin-bottom: 20px; line-height: 1.8; }
.mtop30 { margin-top: 30px; }

/* レスポンシブ用（責任区分流用） */
.res-modern-container { background: #f8f9fa; padding: 30px; border-radius: 15px; }
.res-main-header h3 { text-align: center; font-size: 1.5rem; margin-top: 0; margin-bottom: 25px; color: #333; }
.res-grid-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.res-column-box { display: flex; flex-direction: column; gap: 20px; }
.res-card { background: #fff; border-radius: 10px; border: 1px solid #dee2e6; overflow: hidden; }
.res-card-head { padding: 15px 20px; display: flex; align-items: center; gap: 15px; background: #fdfdfd; border-bottom: 1px solid #eee; }
.blue-line { border-left: 5px solid #0070b8; }
.gold-line { border-left: 5px solid #cc1622; } /* 赤ラインに変更 */
.badge-tag { background: #333; color: #fff; font-size: 0.8rem; padding: 4px 8px; border-radius: 4px; }
.res-card-head h4 { margin: 0; font-size: 1.1rem; }
.res-card-body { padding: 20px; }
.res-list { list-style: none; padding: 0; margin: 0; }
.res-list li { margin-bottom: 12px; display: flex; align-items: baseline; }
.res-list li:last-child { margin-bottom: 0; }
.label { background: #e9ecef; padding: 3px 10px; border-radius: 15px; font-size: 0.85rem; margin-right: 10px; font-weight: bold; min-width: 80px; text-align: center; }

.miyuki-service-card { background: #fff3cd; border: 1px solid #ffeeba; border-radius: 10px; padding: 20px; }
.service-content h5 { color: #856404; margin-top: 0; margin-bottom: 10px; font-size: 1.1rem; }
.service-content p { color: #856404; margin: 0; font-size: 0.95rem; line-height: 1.6; }

.payment-main-box { display: flex; flex-direction: column; gap: 15px; }
.payment-item { background: #fff; border: 1px solid #dee2e6; border-radius: 10px; padding: 20px; display: flex; align-items: flex-start; }
.payment-item .num { font-size: 1.8rem; font-weight: 900; color: #cc1622; margin-right: 20px; line-height: 1; }
.payment-content p { margin: 0; line-height: 1.6; font-size: 1.05rem; }

.yuki-finish-area { text-align: center; margin-top: 30px; }
.yuki-mini-full { max-width: 150px; height: auto; }

.nav-button-area { text-align: center; }
.btn-sub-nav { display: inline-block; background: #fff; border: 2px solid #0070b8; color: #0070b8; padding: 12px 30px; border-radius: 30px; text-decoration: none; font-weight: bold; transition: all 0.3s ease; margin: 0 10px; }
.btn-sub-nav:hover { background: #0070b8; color: #fff; }

/* フッターなど共通設定がある場合はstyle.cssに依存しますが、単体で表示させるための指定 */
.site-footer-fixed { background: #333; color: #fff; text-align: center; padding: 30px 20px; margin-top: 50px; }
.f-brand-name { font-size: 1.2rem; font-weight: bold; margin-bottom: 10px; letter-spacing: 2px; }
.copyright { font-size: 0.8rem; opacity: 0.7; }

@media (max-width: 768px) {
    .method-grid-3, .res-grid-layout { grid-template-columns: 1fr; }
    .hero-header-full { height: 40vh; }
    .hero-inner-left h1 { font-size: 2.2rem; }
}