/* ファーストメディア株式会社 - ページ固有スタイル */


/* ========== disaster-prevention.html ========== */

/* PAGE */
.page-content{width:100%;max-width:1060px;margin:0 auto;}

/* セクション見出しバー */
.biz-header{background:#fcf4f4;display:flex;align-items:center;gap:28px;padding:8px 20px;}
.biz-header-icon{width:58px;height:50px;object-fit:contain;flex-shrink:0;}
.biz-header-title{font-size:26px;font-weight:500;color:#333;letter-spacing:0.76px;white-space:nowrap;}

/* 概要文 + 画像 */
.biz-intro{display:flex;align-items:center;justify-content:space-between;gap:32px;}
.biz-intro-text{flex:1;font-size:16px;font-weight:400;color:#333;line-height:28px;letter-spacing:1.6px;}
.biz-intro-img{width:361px;height:200px;object-fit:cover;flex-shrink:0;}

/* スマホ + 説明 横並び */
.app-feature-block{display:flex;gap:149px;align-items:center;width:100%;}
.app-phone{width:376px;height:480px;object-fit:contain;flex-shrink:0;}
.app-detail{display:flex;flex-direction:column;gap:36px;flex:1;}
.app-catchcopy{border-top:2px solid #bd1d21;border-bottom:2px solid #bd1d21;padding:12px;text-align:center;}
.app-catchcopy p{font-size:24px;font-weight:500;color:#bd1d21;letter-spacing:2.4px;}
.app-title-row{display:flex;align-items:center;gap:20px;}
.app-icon{width:93px;height:96px;object-fit:contain;flex-shrink:0;}
.app-title-text{}
.app-title-sub{font-size:28px;font-weight:500;color:#333;letter-spacing:2.8px;}
.app-title-main{font-size:48px;font-weight:500;color:#333;line-height:1.2;}
.app-badge{background:#f7bb85;padding:4px 10px;text-align:center;font-size:20px;font-weight:500;color:#333;letter-spacing:2px;}
.app-stores{display:flex;align-items:center;justify-content:space-between;}
.app-store-links{display:flex;gap:30px;align-items:center;}
.app-store-btn{height:44px;object-fit:contain;}
.app-store-btn.appstore{width:151px;}
.app-store-btn.gplay{width:160px;}
.app-qr{width:100px;height:100px;object-fit:contain;}

/* 赤ボタン */
.red-btn-wrap{display:flex;justify-content:center;}
.red-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.red-btn:hover{background:#a01519;transform:translateY(-1px);}
.red-btn-text{font-size:18px;font-weight:500;color:#fcf4f4;letter-spacing:1.8px;white-space:nowrap;}
.red-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}

/* Case見出し */
.case-label{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;margin-bottom:4px;}
.case-title{font-size:24px;font-weight:500;color:#333;letter-spacing:0.76px;}
.case-underline{width:34px;height:2px;background:#bd1d21;border:none;margin-top:13px;}

/* OEMアプリ実績リスト */
.oem-list{display:flex;gap:120px;align-items:center;}
.oem-item{display:flex;gap:20px;align-items:flex-end;}
.oem-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.oem-icon-small{width:30px;height:30px;object-fit:contain;flex-shrink:0;}
.oem-name{font-size:18px;font-weight:700;color:#333;letter-spacing:1.6px;text-decoration:underline;}
.oem-org{font-size:16px;font-weight:400;color:#333;letter-spacing:1.6px;text-decoration:underline;}

/* 自治体アプリ実績グリッド */
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:28px 36px;}
.app-grid-item{display:flex;gap:20px;align-items:flex-start;}
.app-grid-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.app-grid-name{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.app-grid-area{font-size:16px;font-weight:400;color:#333;line-height:28px;}

/* APIカード */
.api-cards{display:flex;flex-direction:column;gap:12px;}
.api-row{display:flex;gap:54px;align-items:stretch;}
.api-card{background:#fff;border:1px solid rgba(0,0,0,0.06);border-radius:10px;box-shadow:4px 4px 2px rgba(0,0,0,0.05);padding:20px;display:flex;flex-direction:column;gap:12px;flex:1;}
.api-card-header{display:flex;gap:20px;align-items:center;}
.api-card-logo{height:54px;object-fit:contain;}
.api-card-logo.sm{height:42px;}
.api-card-logo.wide{width:185px;}
.api-card-logo.sq{width:42px;}
.api-card-info{}
.api-card-client{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.api-card-service{font-size:16px;font-weight:400;color:#333;line-height:28px;}
.api-tags{display:flex;flex-wrap:wrap;gap:8px;}
.api-tag{background:#fcf4f4;border-radius:30px;padding:4px 12px;font-size:14px;font-weight:500;color:#bd1d21;letter-spacing:1.4px;white-space:nowrap;}

/* セクション余白 */
.section-gap-sm{padding-top:40px;}
.section-gap-md{padding-top:60px;}
.section-gap-lg{padding-top:120px;}
.section-pb-sm{padding-bottom:60px;}
.section-pb-md{padding-bottom:100px;}
.section-pb-lg{padding-bottom:120px;}

/* CTA */
.cta-section{background:#ececec;padding:80px 170px;width:100%;display:flex;flex-direction:column;align-items:center;}
.cta-inner{display:flex;flex-direction:column;align-items:center;gap:13px;}
.cta-en{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;}
.cta-title{font-size:28px;font-weight:500;color:#333;letter-spacing:0.76px;}
.cta-divider{width:34px;height:2px;background:#bd1d21;border:none;}
.cta-btn-wrap{margin-top:21px;}
.cta-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.cta-btn:hover{background:#a01519;transform:translateY(-1px);}
.cta-btn-text{font-size:18px;font-weight:500;color:#fff;letter-spacing:0.76px;white-space:nowrap;}
.cta-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}
.cta-tel{font-size:12px;font-weight:500;color:#333;text-align:center;line-height:20.4px;margin-top:13px;}

/* FOOTER */
footer{background:#515254;padding:49px 170px 24px;width:100%;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:32px;}
.footer-brand h3{font-size:16px;color:#fff;font-weight:700;margin-bottom:10px;}
.footer-brand p{font-size:11px;color:rgba(255,255,255,0.75);line-height:1.9;font-weight:300;}
.footer-col h4{font-size:14px;color:#fff;font-weight:700;letter-spacing:0.05em;margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.7);text-decoration:none;font-weight:400;transition:color 0.2s;}
.footer-col ul li a:hover{color:#fff;}
.footer-logos{display:flex;align-items:center;gap:16px;padding:20px 0 0;}
.footer-logo-link{display:inline-flex;transition:opacity 0.2s;}
a.footer-logo-link:hover{opacity:0.8;}
.footer-logo-img{height:95px;object-fit:contain;}
.footer-logo-img.w274{width:274px;}
.footer-logo-img.w150{width:150px;}
.footer-logo-img.w236{width:236px;}
.footer-copy{text-align:center;font-size:10px;color:rgba(255,255,255,0.5);font-weight:300;padding-top:20px;margin-top:8px;border-top:1px solid rgba(255,255,255,0.12);}

/* RESPONSIVE */
@media(max-width:1059px){
  .header{max-width:100%;padding:12px 24px;}
  .fv-wrapper{max-width:100%;}
  .fv-heading{font-size:30px;line-height:44px;}
  .breadcrumb-inner{padding:0 24px 14px;}
  .page-content{padding:0 24px;}
  .biz-intro{gap:20px;}
  .biz-intro-img{width:260px;height:160px;}
  .app-feature-block{gap:40px;}
  .app-phone{width:280px;height:360px;}
  .app-title-main{font-size:36px;}
  .oem-list{gap:40px;flex-wrap:wrap;}
  .app-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:row;grid-template-rows:none;}
  .api-row{gap:20px;}
  .cta-section{padding:60px 40px;}
  footer{padding:40px 40px 24px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-logo-img.w274{width:200px;}
  .footer-logo-img.w150{width:110px;}
  .footer-logo-img.w236{width:160px;}
}

@media(max-width:767px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;}
  .header{padding:10px 16px;}
  .header-logo{width:48px;height:36px;}
  .header-name-ja{font-size:13px;}
  .header-name-en{font-size:10px;}
  .fv-hero{height:auto;padding:40px 20px;gap:8px;}
  .fv-heading{font-size:26px;line-height:40px;}
  .fv-hero-bg,.fv-hero-grad{display:none;}
  .breadcrumb{padding:12px 0;}
  .breadcrumb-inner{padding:0 16px 12px;}
  .page-content{padding:0 16px;}
  .section-gap-lg{padding-top:64px;}
  .section-pb-lg{padding-bottom:64px;}
  .section-pb-md{padding-bottom:64px;}
  .biz-header-title{font-size:20px;}
  .biz-header-icon{width:40px;height:36px;}
  .biz-intro{flex-direction:column;gap:16px;}
  .biz-intro-text{font-size:14px;letter-spacing:0;}
  .biz-intro-img{width:100%;height:200px;}
  .app-feature-block{flex-direction:column;gap:28px;}
  .app-phone{width:240px;height:auto;}
  .app-detail{gap:20px;}
  .app-catchcopy p{font-size:18px;}
  .app-title-sub{font-size:20px;}
  .app-title-main{font-size:30px;}
  .app-badge{font-size:14px;}
  .app-store-btn.appstore{width:120px;}
  .app-store-btn.gplay{width:130px;}
  .oem-list{flex-direction:column;gap:24px;}
  .oem-name{font-size:16px;}
  .oem-org{font-size:14px;}
  .app-grid{grid-template-columns:1fr 1fr;gap:20px;grid-auto-flow:row;grid-template-rows:none;}
  .app-grid-name{font-size:15px;}
  .app-grid-area{font-size:13px;}
  .api-row{flex-direction:column;gap:12px;}
  .api-card-client{font-size:16px;}
  .api-tag{font-size:13px;}
  .cta-section{padding:48px 20px;}
  .cta-title{font-size:22px;}
  .cta-btn{padding:12px 28px;}
  .cta-btn-text{font-size:15px;}
  .cta-tel{font-size:14px;white-space:normal;}
  .red-btn-text{font-size:14px;white-space:normal;text-align:center;}
  .red-btn{width:100%;justify-content:center;}
  .red-btn-wrap{width:100%;padding-left:16px;padding-right:16px;box-sizing:border-box;}
  /* full-section内のボタンは親で既に左右ガターがあるため二重にしない */
  .full-section .red-btn-wrap{padding-left:0;padding-right:0;}
  footer{padding:32px 16px 20px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:20px 24px;}
  .footer-brand{grid-column:1/-1;}
  .footer-brand h3{font-size:14px;}
  .footer-col h4{font-size:14px;margin-bottom:10px;}
  .footer-col ul{gap:8px;}
  .footer-col ul li a{font-size:14px;}
  .footer-logos{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:16px;}
  .footer-logo-link{display:flex;justify-content:center;align-items:center;}
  .footer-logo-link:nth-child(3){grid-column:1/2;justify-content:flex-start;}
  .footer-logo-img.w274,.footer-logo-img.w150{width:100%;max-width:none;height:68px;object-fit:contain;}
  .footer-logo-img.w236{width:auto;max-width:100%;height:68px;object-fit:contain;}
}

@media(max-width:480px){
  .fv-heading{font-size:22px;}
  .app-grid{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;}
  .footer-top{grid-template-columns:1fr 1fr;gap:16px 20px;}
  .footer-brand{grid-column:1/-1;}
  .footer-logos{grid-template-columns:1fr 1fr;gap:8px;}
}


/* ========== contact.html ========== */

/* ============================================================ FORM SECTION */
.form-section{width:100%;max-width:780px;margin:0 auto;padding:40px 20px 100px;}

.form-intro{border-bottom:2px solid #1a1a1a;padding-bottom:32px;margin-bottom:0;text-align:center;}
.form-intro-text{font-size: 14px;font-weight:400;color:#555;line-height:24.7px;}
.form-required-note{margin-top:16px;font-size:11px;color:#8a8a8a;display:flex;align-items:center;justify-content:center;gap:4px;}
.form-required-badge{color:#c8412a;font-size:11px;}

/* フォームiframe プレースホルダー */
.form-iframe-wrap{min-height:400px;margin-top:40px;width:100%;}
.form-iframe-wrap iframe{width:100%;border:none;min-height:400px;}

/* TEL */
.form-tel-section{border-top:1px solid #e8e8e8;padding-top:29px;margin-top:40px;text-align:center;display:flex;flex-direction:column;gap:4px;}
.form-tel-label{font-size:12px;font-weight:400;color:#8a8a8a;letter-spacing:1.65px;}
.form-tel-number{font-size:16px;color:#444;}
.form-tel-number span.tel-prefix{font-weight:300;}
.form-tel-number span.tel-num{font-weight:700;letter-spacing:0.3px;}
.form-tel-number span.tel-suffix{font-weight:300;}
.form-tel-hours{font-size:12px;font-weight:400;color:#8a8a8a;}

/* ============================================================ FOOTER */
footer{background:#515254;padding:49px 170px 24px;width:100%;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:32px;}
.footer-brand h3{font-size:16px;color:#fff;font-weight:700;margin-bottom:10px;}
.footer-brand p{font-size:11px;color:rgba(255,255,255,0.75);line-height:1.9;font-weight:300;}
.footer-col h4{font-size:14px;color:#fff;font-weight:700;letter-spacing:0.05em;margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.7);text-decoration:none;font-weight:400;transition:color 0.2s;}
.footer-col ul li a:hover{color:#fff;}
.footer-logos{display:flex;align-items:center;gap:16px;padding:20px 0 0;}
.footer-logo-link{display:inline-flex;transition:opacity 0.2s;}
a.footer-logo-link:hover{opacity:0.8;}
.footer-logo-img{height:95px;object-fit:contain;}
.footer-logo-img.w274{width:274px;}
.footer-logo-img.w150{width:150px;}
.footer-logo-img.w236{width:236px;}
.footer-copy{text-align:center;font-size:10px;color:rgba(255,255,255,0.5);font-weight:300;padding-top:20px;margin-top:8px;border-top:1px solid rgba(255,255,255,0.12);}

/* ============================================================ RESPONSIVE */
@media(max-width:1059px){
  .header{max-width:100%;padding:12px 24px;}
  .fv-wrapper{max-width:100%;}
  .fv-heading{font-size:30px;line-height:44px;}
  .breadcrumb-inner{padding:0 24px 14px;}
  .form-section{padding:60px 32px 80px;}
  footer{padding:40px 40px 24px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-logo-img.w274{width:200px;}
  .footer-logo-img.w150{width:110px;}
  .footer-logo-img.w236{width:160px;}
}

@media(max-width:767px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;}
  .header{padding:10px 16px;}
  .header-logo{width:48px;height:36px;}
  .header-name-ja{font-size:13px;white-space:normal;}
  .header-name-en{font-size:10px;white-space:normal;}
  .fv-hero{height:auto;padding:40px 16px;gap:8px;}
  .fv-heading{font-size:26px;line-height:40px;letter-spacing:0;}
  .fv-eyebrow{font-size:11px;letter-spacing:1px;}
  .fv-desc{white-space:normal;}
  .fv-hero-bg{display:none;}
  .breadcrumb{padding:12px 0;}
  .breadcrumb-inner{padding:0 16px 12px;}
  .form-section{padding:48px 16px 64px;}
  .form-intro-text{white-space:normal;}
  .form-required-note{flex-wrap:wrap;justify-content:center;}
  footer{padding:32px 16px 20px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:20px 24px;}
  .footer-brand{grid-column:1/-1;}
  .footer-brand h3{font-size:14px;}
  .footer-col h4{font-size:14px;margin-bottom:10px;}
  .footer-col ul{gap:8px;}
  .footer-col ul li a{font-size:14px;}
  .footer-logos{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:16px;}
  .footer-logo-link{display:flex;justify-content:center;align-items:center;}
  .footer-logo-link:nth-child(3){grid-column:1/2;justify-content:flex-start;}
  .footer-logo-img.w274,.footer-logo-img.w150{width:100%;max-width:none;height:68px;object-fit:contain;}
  .footer-logo-img.w236{width:auto;max-width:100%;height:68px;object-fit:contain;}
}

@media(max-width:480px){
  .fv-heading{font-size:22px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:16px 20px;}
  .footer-brand{grid-column:1/-1;}
  .footer-logos{grid-template-columns:1fr 1fr;gap:8px;}
}


/* ========== company.html ========== */

/* ===== FV / HERO ===== */
  .fv-wrapper {
    width: 100%;
    max-width: 1060px;
    margin: 0 auto;
  }

  .fv-hero {
    position: relative;
    height: 240px;
    background: #ebeef5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding-left: 50px;
    overflow: hidden;
  }

  .fv-hero-bg {
    position: absolute;
    left: 47.55%; top: -5.96%;
    width: 50.66%; height: 110.38%;
    object-fit: cover;
  }

  .fv-eyebrow {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 12px;
    color: #bd1d21;
    letter-spacing: 2.4px;
    position: relative;
  }

  .fv-heading {
    font-size: 38px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.76px;
    line-height: 57px;
    position: relative;
  }

  .fv-desc {
    font-size: 14px;
    font-weight: 400;
    color: #555;
    line-height: 28px;
    position: relative;
  }

  /* ===== SECTION COMMON ===== */
  .full-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .section-header {
    background: #fcf4f4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 28px;
    width: 1060px;
    margin-bottom: 40px;
  }

  .section-title {
    font-size: 26px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.76px;
  }

  .section-title-en {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 12px;
    color: #bd1d21;
    letter-spacing: 1.2px;
  }

  /* ===== MESSAGE ===== */
  .message-body {
    display: flex;
    gap: 71px;
    align-items: flex-start;
    width: 1060px;
  }

  /* 写真：object-fit: contain で顔が切れない */
  .message-photo {
    width: 277px;
    flex-shrink: 0;
    object-fit: contain;
    object-position: top center;
    background: #f5f5f5;
  }

  .message-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .message-lead {
    font-size: 22px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 37.4px;
    border-bottom: 1px solid #bd1d21;
    padding-bottom: 21px;
  }

  .message-texts {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .message-texts p {
    font-size: 14px;
    font-weight: 400;
    color: #333;
    line-height: 28px;
  }

  .message-signature {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    padding-top: 4px;
  }

  .message-role {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    color: #666;
    font-weight: 300;
    text-align: right;
  }

  .message-name {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15.9px;
    font-weight: 300;
    color: #333;
    text-align: right;
  }

  /* ===== PROFILE TABLE ===== */
  .profile-table {
    width: 1060px;
    border: 1px solid #d4d4d4;
    padding: 1px;
  }

  .profile-row {
    display: grid;
    grid-template-columns: 220px 1fr;
    border-bottom: 1px solid #e8e8e8;
  }
  .profile-row:last-child { border-bottom: none; }

  .profile-term {
    background: #f4f4f2;
    border-right: 1px solid #e8e8e8;
    padding: 19px 25px 19px 24px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #333;
    line-height: 22.1px;
  }

  .profile-detail {
    padding: 18px 24px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #1a1a1a;
    line-height: 24.7px;
  }
  .profile-detail-sub { color: #333; }

  .client-list { column-count: 2; column-gap: 40px; }
  .client-list span {
    display: block;
    break-inside: avoid;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #1a1a1a;
    line-height: 24.7px;
  }

  /* ===== BUSINESS CARDS ===== */
  .business-cards {
    display: flex;
    gap: 44px;
    justify-content: space-between;
    align-items: stretch;
    width: 1060px;
  }

  .biz-card {
    background: #fff;
    box-shadow: 4px 4px 4px rgba(99,99,99,0.25);
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 0;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
  }
  .biz-card:hover {
    box-shadow: 6px 6px 20px rgba(99,99,99,0.18);
    transform: translateY(-3px);
  }

  .biz-number-row {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 20px;
    width: 100%;
  }

  .biz-number {
    font-size: 48px;
    font-weight: 500;
    color: #d41620;
    line-height: 26.6px;
    flex: 1;
  }

  .biz-title {
    font-size: 20px;
    font-weight: 500;
    color: #333;
    text-align: center;
    line-height: 26.6px;
    width: 100%;
  }

  .biz-divider {
    width: 280px;
    height: 2px;
    background: #BD1D21;
    border: none;
    flex-shrink: 0;
  }

  .biz-desc {
    width: 280px;
    font-size: 14px;
    font-weight: 400;
    color: #333;
    line-height: 30px;
    flex: 1;
  }

  .biz-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 280px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease, gap 0.2s ease;
  }
  .biz-card:hover .biz-link { color: #bd1d21; gap: 12px; }

  .biz-arrow {
    width: 12px;
    height: 15.578px;
    transform: rotate(90deg);
  }

  /* ===== ACCESS ===== */
  .access-content {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 32px;
    width: 1060px;
    height: 360px;
  }

  .access-map {
    min-height: 360px;
    overflow: hidden;
    border: 1px solid #bcbcb8;
  }

  .access-map iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
  }

  .access-info { display: flex; flex-direction: column; }

  .access-row {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid #e8e8e8;
  }
  .access-row:last-child { border-bottom: none; }

  .access-label {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #555;
    font-weight: 400;
  }

  .access-value {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #333;
    font-weight: 400;
    line-height: 1.8;
  }

  /* ===== CTA ===== */
  .cta-section {
    background: #ececec;
    padding: 80px 170px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .cta-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 13px;
  }

  .cta-en {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 12px;
    color: #bd1d21;
    letter-spacing: 1.2px;
  }

  .cta-title {
    font-size: 28px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.76px;
  }

  .cta-divider {
    width: 34px; height: 2px;
    background: #bd1d21;
    border: none;
  }

  .cta-btn-wrap { margin-top: 21px; }

  .cta-btn {
    background: #bd1d21;
    border: 1px solid #bd1d21;
    border-radius: 100px;
    padding: 14px 40px;
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    transition: background 0.25s ease, transform 0.2s ease;
  }
  .cta-btn:hover { background: #a01519; transform: translateY(-1px); }

  .cta-btn-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.76px;
    white-space: nowrap;
  }

  .cta-btn-arrow {
    width: 12px; height: 15.578px;
    transform: rotate(90deg);
  }

  .cta-tel {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #333;
    text-align: center;
    line-height: 20.4px;
    margin-top: 13px;
  }

  /* ===== FOOTER ===== */
  footer {
    background: #515254;
    padding: 49px 170px 24px;
    width: 100%;
  }

  .footer-inner { max-width: 1100px; margin: 0 auto; }

  .footer-top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 32px;
  }

  .footer-brand h3 {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    color: #fff;
    font-weight: 700;
    margin-bottom: 10px;
  }

  .footer-brand p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.75);
    line-height: 1.9;
    font-weight: 300;
  }

  .footer-col h4 {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 14px;
  }

  .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }

  .footer-col ul li a {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    font-weight: 300;
    transition: color 0.2s;
  }
  .footer-col ul li a:hover { color: #fff; }

  /* フッターロゴ：白い横線なし */
  .footer-logos {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 0 0;
  }

  .footer-logo-link { display: inline-flex; transition: opacity 0.2s; }
  a.footer-logo-link:hover { opacity: 0.8; }

  .footer-logo-img { height: 95px; object-fit: contain; }
  .footer-logo-img.w274 { width: 274px; }
  .footer-logo-img.w150 { width: 150px; }
  .footer-logo-img.w236 { width: 236px; }

  .footer-copy {
    font-family: 'Noto Sans JP', sans-serif;
    text-align: center;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    font-weight: 300;
    padding-top: 20px;
    margin-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.12);
  }

  /* ===== RESPONSIVE ===== */
  @media (max-width: 1059px) {
    .header { max-width: 100%; padding: 12px 24px; }
    .fv-wrapper { max-width: 100%; }
    .fv-heading { font-size: 30px; line-height: 46px; }
    .section-header { width: 100%; }
    .section-title { font-size: 22px; }
    .message-body { width: 100%; gap: 40px; }
    .message-lead { font-size: 18px; line-height: 32px; }
    .profile-table { width: 100%; }
    .business-cards { width: 100%; gap: 20px; }
    .biz-desc, .biz-link, .biz-divider { width: 90%; }
    .access-content { width: 100%; height: auto; }
    .access-map { min-height: 280px; }
    .cta-section { padding: 60px 40px; }
    footer { padding: 40px 40px 24px; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
    .footer-logo-img.w274 { width: 200px; }
    .footer-logo-img.w150 { width: 110px; }
    .footer-logo-img.w236 { width: 160px; }
  }

  @media (max-width: 767px) {
    /* ハンバーガー表示 */
    .header-nav { display: none; }
    .hamburger { display: flex; }
    .nav-drawer { display: block; }

    .header { padding: 10px 16px; }
    .header-logo { width: 48px; height: 36px; }
    .header-name-ja { font-size: 13px; }
    .header-name-en { font-size: 10px; }

    .fv-hero { height: auto; padding: 40px 20px; gap: 8px; }
    .fv-heading { font-size: 26px; line-height: 40px; }
    .fv-desc { font-size: 14px; line-height: 24px; white-space: normal; }
    .fv-hero-bg { display: none; }

    .section-header { width: 100%; padding: 8px 16px; margin-bottom: 28px; }
    .section-title { font-size: 20px; }
    .full-section { padding-bottom: 64px !important; }

    /* 代表メッセージ：写真が顔切れしないよう contain のまま横幅100% */
    .message-body { width: 100%; flex-direction: column; gap: 24px; }
    .message-photo { width: 100%; max-width: 300px; align-self: center; }
    .message-lead { font-size: 16px; line-height: 28px; }
    .message-texts p { font-size: 14px; }

    .profile-table { width: 100%; }
    .profile-row { grid-template-columns: 100px 1fr; }
    .profile-term { font-size: 13px; padding: 12px 10px; }
    .profile-detail { font-size: 13px; padding: 12px 10px; }
    .client-list { column-count: 1; }

    .business-cards { width: 100%; flex-direction: column; gap: 20px; align-items: center; }
    .biz-card { width: 100%; max-width: 360px; }
    .biz-desc, .biz-link, .biz-divider { width: calc(100% - 48px); }

    .access-content { width: 100%; grid-template-columns: 1fr; height: auto; gap: 20px; }
    .access-map { min-height: 240px; }
    .access-row { grid-template-columns: 80px 1fr; gap: 12px; }
    .access-label, .access-value { font-size: 13px; }

    .cta-section { padding: 48px 20px; }
    .cta-title { font-size: 22px; }
    .cta-btn { padding: 12px 28px; }
    .cta-btn-text { font-size: 15px; }
    .cta-tel { font-size: 11px; white-space: normal; }

    /* フッター：2カラムに詰める */
    footer { padding: 32px 16px 20px; }
    .footer-top {
      grid-template-columns: 1fr 1fr;
      gap: 20px 24px;
    }
    .footer-brand { grid-column: 1 / -1; }
    .footer-brand h3 { font-size: 14px; }
    .footer-col h4 { font-size: 13px; margin-bottom: 10px; }
    .footer-col ul { gap: 8px; }
    .footer-col ul li a { font-size: 12px; }
    .footer-logos { flex-wrap: wrap; gap: 10px; padding-top: 16px; }
    .footer-logo-img.w274 { width: 130px; height: 60px; }
    .footer-logo-img.w150 { width: 90px;  height: 60px; }
    .footer-logo-img.w236 { width: 120px; height: 60px; }
  }

  @media (max-width: 480px) {
    .section-title { font-size: 18px; }
    .fv-heading { font-size: 22px; }
    .profile-row { grid-template-columns: 1fr; }
    .profile-term { border-right: none; border-bottom: 1px solid #e8e8e8; }
    /* フッター：480px以下は1カラムに */
    .footer-top { grid-template-columns: 1fr; gap: 20px; }
  }


/* ========== recruit.html ========== */

/* ============================================================
   PAGE: 採用情報 — 固有スタイル
============================================================ */

/* FV */
.fv-wrapper { width: 100%; max-width: 1060px; margin: 0 auto; }
.fv-hero {
  position: relative; height: 240px; background: #eef0f6;
  display: flex; flex-direction: column; justify-content: center;
  gap: 10px; padding-left: 50px; overflow: hidden;
}
.fv-hero-bg {
  position: absolute; left: 16.61%; top: -7.09%;
  width: 77.64%; height: 114.31%; object-fit: cover; pointer-events: none;
}
.fv-eyebrow {
  font-family: 'Montserrat', sans-serif; font-weight: 500;
  font-size: 12px; color: #bd1d21; letter-spacing: 3.3px; position: relative;
}
.fv-heading {
  font-size: 38px; font-weight: 500; color: #333;
  letter-spacing: 0.76px; line-height: 57px; position: relative;
}
.fv-desc { font-size: 14px; font-weight: 400; color: #555; line-height: 28px; position: relative; }

/* パンくずリスト */
.breadcrumb {
  width: 100%;
  padding: 16px 0 17px;
}
.breadcrumb-inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; gap: 8px; align-items: center;
  font-size: 11px; color: #8a8a8a; font-weight: 300;
}
.breadcrumb-inner a { color: #8a8a8a; text-decoration: none; transition: color 0.2s; }
.breadcrumb-inner a:hover { color: #bd1d21; }

/* メインセクション */
.recruit-section {
  width: 100%; max-width: 1100px;
  padding: 40px 20px 100px;
  margin: 0 auto;
  display: flex; flex-direction: column; gap: 32px;
}

/* 募集要項 見出し */
.recruit-heading {
  display: flex; align-items: baseline; justify-content: space-between;
  border-bottom: 2px solid #bd1d21; padding-bottom: 22px;
  white-space: nowrap;
}
.recruit-heading-ja { font-size: 26px; font-weight: 500; color: #333; line-height: 44.2px; }
.recruit-heading-en { font-size: 11px; color: #8a8a8a; letter-spacing: 2.75px; font-weight: 400; }

/* 募集なし：点線ボックス */
.no-recruit-box {
  background: #f4f4f2;
  border: 1px dashed #d4d4d4;
  padding: 49px 33px;
  display: flex; flex-direction: column; align-items: center; gap: 20px;
}
.no-recruit-text { text-align: center; font-size: 14px; font-weight: 400; color: #444; line-height: 26.6px; }

/* お問い合わせリンクボタン（赤・小） */
.recruit-contact-btn {
  display: inline-block;
  background: #bd1d21; color: #fff;
  font-size: 12px; font-weight: 500;
  padding: 11.5px 28px 11.89px;
  border-radius: 50px; text-decoration: none;
  transition: background 0.25s ease, transform 0.2s ease;
  white-space: nowrap;
}
.recruit-contact-btn:hover { background: #a01519; transform: translateY(-1px); }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1059px) {
  .header { max-width: 100%; padding: 12px 24px; }
  .section-header { width: 100%; }
  .section-title { font-size: 22px; }
  .breadcrumb { padding: 14px 24px; }
  .recruit-section { padding: 60px 24px 80px; }
  .cta-section { padding: 60px 40px; }
  footer { padding: 40px 40px 24px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-logo-img.w274 { width: 200px; }
  .footer-logo-img.w150 { width: 110px; }
  .footer-logo-img.w236 { width: 160px; }
}

@media (max-width: 767px) {
  /* ヘッダー */
  .header-nav { display: none; }
  .hamburger { display: flex; }
  .nav-drawer { display: block; }
  .header { padding: 10px 16px; }
  .header-logo { width: 48px; height: 36px; }
  .header-name-ja { font-size: 13px; }
  .header-name-en { font-size: 10px; }

  /* FV */
  .fv-hero { height: auto; padding: 40px 20px; gap: 8px; }
  .fv-heading { font-size: 26px; line-height: 40px; }
  .fv-desc { font-size: 14px; line-height: 24px; white-space: normal; }
  .fv-hero-bg { display: none; }

  /* パンくず */
  .breadcrumb { padding: 12px 16px; }

  /* セクション */
  .full-section { padding-bottom: 64px !important; }
  .section-header { width: 100%; padding: 8px 16px; margin-bottom: 28px; }
  .section-title { font-size: 20px; }
  .recruit-section { padding: 48px 16px 64px; gap: 24px; }
  .recruit-heading-ja { font-size: 20px; }
  .recruit-heading-en { font-size: 10px; letter-spacing: 1.5px; }
  .no-recruit-box { padding: 36px 20px; gap: 20px; }
  .no-recruit-text { font-size: 14px; }

  /* CTA */
  .cta-section { padding: 48px 20px; }
  .cta-title { font-size: 22px; }
  .cta-btn { padding: 12px 28px; }
  .cta-btn-text { font-size: 15px; }
  .cta-tel { font-size: 14px; white-space: normal; }

  /* フッター */
  footer { padding: 32px 16px 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 20px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand h3 { font-size: 14px; }
  .footer-col h4 { font-size: 14px; margin-bottom: 10px; }
  .footer-col ul { gap: 8px; }
  .footer-col ul li a { font-size: 14px; }
  .footer-logos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 16px; }
  .footer-logo-link { display: flex; justify-content: center; align-items: center; }
  .footer-logo-link:nth-child(3) { grid-column: 1 / 2; justify-content: flex-start; }
  .footer-logo-img.w274 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w150 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w236 { width: auto; max-width: 100%; height: 68px; object-fit: contain; }
}

@media (max-width: 480px) {
  .section-title { font-size: 18px; }
  .fv-heading { font-size: 22px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-logos { grid-template-columns: 1fr 1fr; gap: 8px; }
}


/* ========== security-policy.html ========== */

/* ============================================================
   PAGE: 情報セキュリティポリシー 固有スタイル
============================================================ */

/* FV */
.fv-wrapper { width: 100%; max-width: 1060px; margin: 0 auto; }
.fv-hero {
  position: relative; height: 240px; background: #edeff4;
  display: flex; flex-direction: column; justify-content: center;
  gap: 10px; padding-left: 50px; overflow: hidden;
}
.fv-hero-bg {
  position: absolute; left: 16.82%; top: -9.19%;
  width: 80.32%; height: 118.69%;
  object-fit: cover; pointer-events: none;
}
.fv-eyebrow {
  font-family: 'Montserrat', sans-serif; font-weight: 500;
  font-size: 11px; color: #bd1d21; letter-spacing: 3.3px; position: relative;
}
.fv-heading {
  font-size: 38px; font-weight: 500; color: #333;
  letter-spacing: 0.76px; line-height: 57px; position: relative;
}
.fv-desc { font-size: 14px; font-weight: 400; color: #555; line-height: 28px; position: relative; }

/* パンくず */
.breadcrumb { width: 100%; padding: 16px 0 17px; }
.breadcrumb-inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; gap: 8px; align-items: center;
  font-size: 11px; color: #8a8a8a; font-weight: 300;
}
.breadcrumb-inner a { color: #8a8a8a; text-decoration: none; transition: color 0.2s; }
.breadcrumb-inner a:hover { color: #bd1d21; }

/* 記事本体 */
.article-wrap {
  width: 100%; max-width: 820px;
  margin: 0 auto;
  padding: 80px 20px 100px;
  display: flex; flex-direction: column; gap: 48px;
}

/* リード文 */
.article-lead {
  border-bottom: 1px solid #d4d4d4;
  padding-bottom: 33px;
  display: flex; flex-direction: column; gap: 14px;
}
.article-lead p { font-size: 14px; font-weight: 400; color: #333; line-height: 28px; }

/* セクション見出し（赤2px下線） */
.policy-section { display: flex; flex-direction: column; gap: 28px; }

.policy-heading {
  border-bottom: 2px solid #bd1d21;
  padding-bottom: 16px;
}
.policy-heading h2 { font-size: 22px; font-weight: 400; color: #bd1d21; line-height: 37.4px; }
.policy-heading-dark h2 { color: #1a1a1a; }

/* 番号付き項目 */
.policy-items { display: flex; flex-direction: column; }

.policy-item {
  border-bottom: 1px solid #e8e8e8;
  padding: 24px 0 25px;
  display: flex; flex-direction: column; gap: 14px;
}
.policy-item:last-child { border-bottom: none; }

.policy-item-heading {
  display: flex; gap: 12px; align-items: baseline;
}
.policy-item-num {
  font-size: 13px; font-weight: 700; color: #8a8a8a;
  letter-spacing: 0.65px; font-family: Arial, sans-serif;
  flex-shrink: 0;
}
.policy-item-title { font-size: 16px; font-weight: 400; color: #333; line-height: 27.2px; }
.policy-item-body {
  padding-left: 32px;
  font-size: 14px; font-weight: 400; color: #333; line-height: 26px;
}

/* 本文のみセクション（対象・附則） */
.policy-body { font-size: 14px; font-weight: 400; color: #333; line-height: 26px; }

/* 制定日・署名ボックス */
.policy-footer-box {
  background: #f4f4f2;
  border-left: 4px solid #bd1d21;
  padding: 36px 28px 28px 32px;
  display: flex; flex-direction: column; gap: 16px;
}
.policy-dates {
  display: grid;
  grid-template-columns: 100px 1fr;
  row-gap: 8px; column-gap: 20px;
}
.policy-date-label { font-size: 12px; color: #555; font-weight: 300; line-height: 20.4px; }
.policy-date-value { font-size: 12px; color: #333; font-weight: 300; line-height: 20.4px; }

.policy-signature {
  border-top: 1px solid #d4d4d4;
  padding-top: 16px;
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
}
.policy-signature-company { font-size: 12px; font-weight: 300; color: #333; line-height: 22.8px; }
.policy-signature-role { font-size: 12px; font-weight: 300; color: #333; line-height: 22.8px; }
.policy-signature-name { font-size: 13.8px; font-weight: 400; color: #333; line-height: 26.6px; }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1059px) {
  .header { max-width: 100%; padding: 12px 24px; }
  .fv-wrapper { max-width: 100%; }
  .fv-heading { font-size: 30px; line-height: 44px; }
  .breadcrumb { padding: 14px 24px; }
  .article-wrap { padding: 60px 32px 80px; }
  .cta-section { padding: 60px 40px; }
  footer { padding: 40px 40px 24px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-logo-img.w274 { width: 200px; }
  .footer-logo-img.w150 { width: 110px; }
  .footer-logo-img.w236 { width: 160px; }
}

@media (max-width: 767px) {
  .header-nav { display: none; }
  .hamburger { display: flex; }
  .nav-drawer { display: block; }
  .header { padding: 10px 16px; }
  .header-logo { width: 48px; height: 36px; }
  .header-name-ja { font-size: 13px; }
  .header-name-en { font-size: 10px; }

  .fv-hero { height: auto; padding: 40px 20px; gap: 8px; }
  .fv-heading { font-size: 24px; line-height: 38px; }
  .fv-desc { white-space: normal; font-size: 14px; }
  .fv-hero-bg { display: none; }

  .breadcrumb { padding: 12px 16px; }

  .article-wrap { padding: 48px 16px 64px; gap: 36px; }
  .policy-heading h2 { font-size: 18px; line-height: 30px; }
  .policy-item-title { font-size: 15px; }
  .policy-item-body { padding-left: 20px; }
  .policy-dates { grid-template-columns: 80px 1fr; }

  .cta-section { padding: 48px 20px; }
  .cta-title { font-size: 22px; }
  .cta-btn { padding: 12px 28px; }
  .cta-btn-text { font-size: 15px; }
  .cta-tel { font-size: 14px; white-space: normal; }

  footer { padding: 32px 16px 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 20px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand h3 { font-size: 14px; }
  .footer-col h4 { font-size: 14px; margin-bottom: 10px; }
  .footer-col ul { gap: 8px; }
  .footer-col ul li a { font-size: 14px; }
  .footer-logos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 16px; }
  .footer-logo-link { display: flex; justify-content: center; align-items: center; }
  .footer-logo-link:nth-child(3) { grid-column: 1 / 2; justify-content: flex-start; }
  .footer-logo-img.w274 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w150 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w236 { width: auto; max-width: 100%; height: 68px; object-fit: contain; }
}

@media (max-width: 480px) {
  .fv-heading { font-size: 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-logos { grid-template-columns: 1fr 1fr; gap: 8px; }
}


/* ========== system-development.html ========== */

/* ============================================================
   PAGE: システム開発 固有スタイル
============================================================ */

/* FV */
.fv-wrapper { width: 100%; max-width: 1060px; margin: 0 auto; }
.fv-hero {
  position: relative; height: 240px; background: #edf0f7;
  display: flex; flex-direction: column; justify-content: center;
  gap: 10px; padding-left: 40px; overflow: hidden;
}
.fv-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(62deg, #edf0f7 48%, rgba(237,240,248,0) 53%);
  pointer-events: none;
}
.fv-hero-bg {
  position: absolute; left: 28.53%; top: -0.75%;
  width: 71.47%; height: 105.61%; object-fit: cover; pointer-events: none;
}
.fv-eyebrow {
  font-family: 'Montserrat', sans-serif; font-weight: 500;
  font-size: 12px; color: #bd1d21; letter-spacing: 2.4px; position: relative; z-index: 1;
}
.fv-heading { font-size: 38px; font-weight: 500; color: #333; letter-spacing: 0.76px; line-height: 57px; position: relative; z-index: 1; }
.fv-desc { font-size: 14px; font-weight: 400; color: #555; line-height: 28px; position: relative; z-index: 1; }

/* パンくず */
.breadcrumb { width: 100%; padding: 16px 0 17px; }
.breadcrumb-inner { max-width: 1060px; margin: 0 auto; display: flex; gap: 8px; align-items: center; font-size: 11px; color: #8a8a8a; font-weight: 300; }
.breadcrumb-inner a { color: #8a8a8a; text-decoration: none; transition: color 0.2s; }
.breadcrumb-inner a:hover { color: #bd1d21; }

/* メインコンテナ */
.page-content { width: 100%; max-width: 1060px; margin: 0 auto; }

/* 事業セクション（DAM・GIS） */
.biz-section { padding: 40px 0 120px; display: flex; flex-direction: column; gap: 80px; }
.biz-section + .biz-section { padding-top: 120px; border-top: 1px solid #eee; }

/* セクション見出しバー（アイコン付きピンク背景） */
.biz-header {
  background: #fcf4f4;
  display: flex; align-items: center; gap: 28px;
  padding: 8px 20px;
}
.biz-header-icon { width: 58px; height: 50px; object-fit: contain; flex-shrink: 0; }
.biz-header-title { font-size: 28px; font-weight: 500; color: #333; letter-spacing: 0.76px; white-space: nowrap; }

/* 本文 + メイン画像 横並び */
.biz-intro { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.biz-intro-text {
  flex: 1;
  font-size: 16px; font-weight: 400; color: #333;
  line-height: 28px; letter-spacing: 1.6px;
}
.biz-intro-img { width: 361px; height: 200px; object-fit: cover; flex-shrink: 0; }

/* Case（ユーザー事例） */
.case-block { display: flex; flex-direction: column; gap: 40px; position: relative; }

.case-label {
  font-family: 'Montserrat', sans-serif; font-weight: 500;
  font-size: 12px; color: #bd1d21; letter-spacing: 1.2px; margin-bottom: 4px;
}
.case-heading {
  display: flex; align-items: center; gap: 16px;
  font-size: 24px; font-weight: 500; color: #333; letter-spacing: 0.76px;
  white-space: nowrap;
}
.case-heading-divider { width: 1px; height: 25px; background: #bd1d21; flex-shrink: 0; }
.case-underline { width: 34px; height: 2px; background: #bd1d21; border: none; margin-top: 13px; }

/* スクリーンショット + 説明 横並び */
.case-body { display: flex; gap: 68px; align-items: flex-start; position: relative; }

/* 背景装飾（ピンク四角） */
.case-bg-deco {
  position: absolute;
  width: 232px; height: 205px;
  background: #fcf4f4;
  left: 196px; top: 113px;
  z-index: 0;
}

.case-screenshot {
  width: 392px; height: 280px;
  border-radius: 10px;
  object-fit: cover;
  flex-shrink: 0;
  position: relative; z-index: 1;
}

.case-detail { flex: 1; display: flex; flex-direction: column; gap: 20px; position: relative; z-index: 1; }
.case-detail-text { font-size: 16px; font-weight: 400; color: #333; line-height: 28px; letter-spacing: 1.6px; }

/* フィーチャーリスト（アイコン＋テキスト横並び） */
.feature-list { display: flex; align-items: flex-start; justify-content: space-between; width: 100%; gap: 0; }
.feature-list + .feature-list { margin-top: 40px; }

.feature-item { display: flex; flex-direction: column; align-items: center; gap: 20px; width: auto; max-width: 260px; text-align: center; }
.feature-item-wide { width: 153px; }
.feature-icon {
  width: 100px; height: 100px;
  object-fit: contain; flex-shrink: 0;
}
.feature-label { font-size: 14px; font-weight: 500; color: #333; line-height: 28px; letter-spacing: 1.4px; }

.feature-divider { width: 1px; height: 176px; background: #d4d4d4; align-self: center; flex-shrink: 0; }
.feature-divider-dashed { border: none; border-left: 1px dashed #d4d4d4; }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1059px) {
  .header { max-width: 100%; padding: 12px 24px; }
  .fv-wrapper { max-width: 100%; }
  .fv-heading { font-size: 30px; line-height: 44px; }
  .breadcrumb { padding: 14px 24px; }
  .page-content { padding: 0 24px; }
  .biz-intro { gap: 24px; }
  .biz-intro-img { width: 280px; height: 160px; }
  .case-body { gap: 32px; }
  .case-screenshot { width: 300px; height: 220px; }
  .case-bg-deco { display: none; }
  .cta-section { padding: 60px 40px; }
  footer { padding: 40px 40px 24px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-logo-img.w274 { width: 200px; }
  .footer-logo-img.w150 { width: 110px; }
  .footer-logo-img.w236 { width: 160px; }
}

@media (max-width: 767px) {
  .header-nav { display: none; }
  .hamburger { display: flex; }
  .nav-drawer { display: block; }
  .header { padding: 10px 16px; }
  .header-logo { width: 48px; height: 36px; }
  .header-name-ja { font-size: 13px; }
  .header-name-en { font-size: 10px; }

  .fv-hero { height: auto; padding: 40px 20px; gap: 8px; }
  .fv-heading { font-size: 26px; line-height: 40px; }
  .fv-desc { font-size: 14px; white-space: normal; }
  .fv-hero-bg { display: none; }
  .fv-hero::after { display: none; }

  .breadcrumb { padding: 12px 16px; }
  .page-content { padding: 0 16px; }

  .biz-section { padding: 32px 0 64px; gap: 48px; }
  .biz-section + .biz-section { padding-top: 64px; }
  .biz-header { gap: 16px; padding: 8px 16px; }
  .biz-header-title { font-size: 20px; }
  .biz-header-icon { width: 40px; height: 36px; }

  .biz-intro { flex-direction: column; gap: 20px; align-items: flex-start; }
  .biz-intro-text { font-size: 14px; letter-spacing: 0; }
  .biz-intro-img { width: 100%; height: 200px; }

  .case-block { gap: 28px; }
  .case-heading { font-size: 18px; flex-wrap: wrap; white-space: normal; }
  .case-body { flex-direction: column; gap: 24px; }
  .case-screenshot { width: 100%; height: 220px; }
  .case-bg-deco { display: none; }
  .case-detail-text { font-size: 14px; letter-spacing: 0; }

  .feature-list { flex-wrap: wrap; gap: 24px; justify-content: center; }
  .feature-item { width: auto; }
  .feature-divider { display: none; }

  .cta-section { padding: 48px 20px; }
  .cta-title { font-size: 22px; }
  .cta-btn { padding: 12px 28px; }
  .cta-btn-text { font-size: 15px; }
  .cta-tel { font-size: 14px; white-space: normal; }

  footer { padding: 32px 16px 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 20px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand h3 { font-size: 14px; }
  .footer-col h4 { font-size: 14px; margin-bottom: 10px; }
  .footer-col ul { gap: 8px; }
  .footer-col ul li a { font-size: 14px; }
  .footer-logos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 16px; }
  .footer-logo-link { display: flex; justify-content: center; align-items: center; }
  .footer-logo-link:nth-child(3) { grid-column: 1 / 2; justify-content: flex-start; }
  .footer-logo-img.w274 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w150 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w236 { width: auto; max-width: 100%; height: 68px; object-fit: contain; }
}

@media (max-width: 480px) {
  .fv-heading { font-size: 22px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-logos { grid-template-columns: 1fr 1fr; gap: 8px; }
  .feature-item { width: auto; }
}


/* ========== bcp-solution.html ========== */

/* セクション見出しバー */
.biz-header { background: #fcf4f4; display: flex; align-items: center; gap: 28px; padding: 8px 20px; }
.biz-header-icon { width: 58px; height: 50px; object-fit: contain; flex-shrink: 0; }
.biz-header-title { font-size: 26px; font-weight: 500; color: #333; letter-spacing: 0.76px; white-space: nowrap; }

/* 概要文 + 画像 */
.biz-intro { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.biz-intro-text { flex: 1; font-size: 16px; font-weight: 400; color: #333; line-height: 28px; letter-spacing: 1.6px; }
.biz-intro-img { width: 361px; height: 200px; object-fit: cover; flex-shrink: 0; }

/* 機能リスト（スマホ画像 左 ＋ 箇条書き 右） */
.feature-block { display: flex; gap: 87px; align-items: flex-start; justify-content: center; }
.feature-phone { width: 376px; height: 480px; object-fit: contain; flex-shrink: 0; }

.feature-list-vert { display: flex; flex-direction: column; gap: 12px; width: 385px; flex-shrink: 0; }
.feature-list-item { display: flex; align-items: center; gap: 20px; }
.feature-list-icon { width: 50px; height: 50px; object-fit: contain; flex-shrink: 0; }
.feature-list-label { font-size: 18px; font-weight: 500; color: #333; letter-spacing: 1.8px; white-space: nowrap; }
.feature-list-divider { width: 100%; height: 1px; background: #e0e0e0; flex-shrink: 0; }

/* Case */
.case-block { display: flex; flex-direction: column; gap: 25px; }
.case-label { font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 12px; color: #bd1d21; letter-spacing: 1.2px; margin-bottom: 4px; }
.case-heading { display: flex; align-items: center; gap: 16px; font-size: 24px; font-weight: 500; color: #333; white-space: nowrap; }
.case-heading-divider { width: 1px; height: 25px; background: #bd1d21; flex-shrink: 0; }
.case-underline { width: 34px; height: 2px; background: #bd1d21; border: none; margin-top: 13px; }
.case-body { display: flex; gap: 68px; align-items: flex-start; }
.case-screenshot { width: 392px; height: 280px; object-fit: cover; flex-shrink: 0; }
.case-text { flex: 1; font-size: 16px; font-weight: 400; color: #333; line-height: 28px; letter-spacing: 1.6px; }

/* 詳細ボタン（赤・丸） */
.detail-btn-wrap { display: flex; justify-content: center; }
.detail-btn {
  background: #bd1d21; border: 1px solid #bd1d21; border-radius: 100px;
  padding: 14px 40px; display: inline-flex; align-items: center; gap: 12px;
  text-decoration: none; transition: background 0.25s ease, transform 0.2s ease;
}
.detail-btn:hover { background: #a01519; transform: translateY(-1px); }
.detail-btn-text { font-size: 18px; font-weight: 500; color: #fcf4f4; letter-spacing: 1.8px; white-space: nowrap; }
.detail-btn-arrow { width: 12px; height: 15.578px; transform: rotate(90deg); }

/* セクション間スペーサー */
.biz-section { padding: 40px 0 120px; display: flex; flex-direction: column; gap: 40px; }
.biz-section + .biz-section { padding-top: 0; }
.service-group { display: flex; flex-direction: column; gap: 60px; padding-bottom: 120px; width: 100%; }

/* ============================================================
   CTA
============================================================ */
.cta-section { background: #ececec; padding: 80px 170px; width: 100%; display: flex; flex-direction: column; align-items: center; }
.cta-inner { display: flex; flex-direction: column; align-items: center; gap: 13px; }
.cta-en { font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 12px; color: #bd1d21; letter-spacing: 1.2px; }
.cta-title { font-size: 28px; font-weight: 500; color: #333; letter-spacing: 0.76px; }
.cta-divider { width: 34px; height: 2px; background: #bd1d21; border: none; }
.cta-btn-wrap { margin-top: 21px; }
.cta-btn { background: #bd1d21; border: 1px solid #bd1d21; border-radius: 100px; padding: 14px 40px; display: flex; align-items: center; gap: 12px; text-decoration: none; transition: background 0.25s ease, transform 0.2s ease; }
.cta-btn:hover { background: #a01519; transform: translateY(-1px); }
.cta-btn-text { font-size: 18px; font-weight: 500; color: #fff; letter-spacing: 0.76px; white-space: nowrap; }
.cta-btn-arrow { width: 12px; height: 15.578px; transform: rotate(90deg); }
.cta-tel { font-size: 12px; font-weight: 500; color: #333; text-align: center; line-height: 20.4px; margin-top: 13px; }

/* ============================================================
   FOOTER
============================================================ */
footer { background: #515254; padding: 49px 170px 24px; width: 100%; }
.footer-inner { max-width: 1100px; margin: 0 auto; }
.footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 32px; }
.footer-brand h3 { font-size: 16px; color: #fff; font-weight: 700; margin-bottom: 10px; }
.footer-brand p { font-size: 11px; color: rgba(255,255,255,0.75); line-height: 1.9; font-weight: 300; }
.footer-col h4 { font-size: 14px; color: #fff; font-weight: 700; letter-spacing: 0.05em; margin-bottom: 14px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col ul li a { font-size: 13px; color: rgba(255,255,255,0.7); text-decoration: none; font-weight: 400; transition: color 0.2s; }
.footer-col ul li a:hover { color: #fff; }
.footer-logos { display: flex; align-items: center; gap: 16px; padding: 20px 0 0; }
.footer-logo-link { display: inline-flex; transition: opacity 0.2s; }
a.footer-logo-link:hover { opacity: 0.8; }
.footer-logo-img { height: 95px; object-fit: contain; }
.footer-logo-img.w274 { width: 274px; }
.footer-logo-img.w150 { width: 150px; }
.footer-logo-img.w236 { width: 236px; }
.footer-copy { text-align: center; font-size: 10px; color: rgba(255,255,255,0.5); font-weight: 300; padding-top: 20px; margin-top: 8px; border-top: 1px solid rgba(255,255,255,0.12); }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1059px) {
  .header { max-width: 100%; padding: 12px 24px; }
  .fv-wrapper { max-width: 100%; }
  .fv-heading { font-size: 30px; line-height: 44px; }
  .breadcrumb-inner { padding: 0 24px 14px; }
  .page-content { padding: 0 24px; }
  .biz-intro { gap: 24px; }
  .biz-intro-img { width: 260px; height: 160px; }
  .feature-block { gap: 40px; }
  .feature-phone { width: 280px; height: 360px; }
  .feature-list-vert { width: 320px; }
  .case-body { gap: 32px; }
  .case-screenshot { width: 300px; height: 220px; }
  .cta-section { padding: 60px 40px; }
  footer { padding: 40px 40px 24px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-logo-img.w274 { width: 200px; }
  .footer-logo-img.w150 { width: 110px; }
  .footer-logo-img.w236 { width: 160px; }
}

@media (max-width: 767px) {
  .header-nav { display: none; }
  .hamburger { display: flex; }
  .nav-drawer { display: block; }
  .header { padding: 10px 16px; }
  .header-logo { width: 48px; height: 36px; }
  .header-name-ja { font-size: 13px; }
  .header-name-en { font-size: 10px; }

  .fv-hero { height: auto; padding: 40px 20px; gap: 8px; }
  .fv-heading { font-size: 26px; line-height: 40px; }
  .fv-hero-bg { display: none; }
  .fv-hero-grad { display: none; }

  .breadcrumb { padding: 12px 0; }
  .breadcrumb-inner { padding: 0 16px 12px; }
  .page-content { padding: 0 16px; }

  .biz-section { padding: 32px 0 64px; gap: 28px; }
  .biz-header-title { font-size: 20px; }
  .biz-header-icon { width: 40px; height: 36px; }
  .biz-intro { flex-direction: column; gap: 20px; }
  .biz-intro-text { font-size: 14px; letter-spacing: 0; }
  .biz-intro-img { width: 100%; height: 200px; }

  .feature-block { flex-direction: column; gap: 32px; align-items: center; }
  .feature-phone { width: 260px; height: auto; }
  .feature-list-vert { width: 100%; }
  .feature-list-label { font-size: 16px; white-space: normal; }

  .case-body { flex-direction: column; gap: 20px; }
  .case-screenshot { width: 100%; height: 220px; }
  .case-heading { font-size: 18px; flex-wrap: wrap; white-space: normal; }
  .case-text { font-size: 14px; letter-spacing: 0; }
  .detail-btn-text { font-size: 15px; }
  .service-group { padding-bottom: 64px; gap: 48px; }

  .cta-section { padding: 48px 20px; }
  .cta-title { font-size: 22px; }
  .cta-btn { padding: 12px 28px; }
  .cta-btn-text { font-size: 15px; }
  .cta-tel { font-size: 14px; white-space: normal; }

  footer { padding: 32px 16px 20px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 20px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand h3 { font-size: 14px; }
  .footer-col h4 { font-size: 14px; margin-bottom: 10px; }
  .footer-col ul { gap: 8px; }
  .footer-col ul li a { font-size: 14px; }
  .footer-logos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 16px; }
  .footer-logo-link { display: flex; justify-content: center; align-items: center; }
  .footer-logo-link:nth-child(3) { grid-column: 1 / 2; justify-content: flex-start; }
  .footer-logo-img.w274 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w150 { width: 100%; max-width: none; height: 68px; object-fit: contain; }
  .footer-logo-img.w236 { width: auto; max-width: 100%; height: 68px; object-fit: contain; }
}

@media (max-width: 480px) {
  .fv-heading { font-size: 22px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-logos { grid-template-columns: 1fr 1fr; gap: 8px; }
}


/* ========== index.html ========== */

/* PAGE */
.page-content{width:100%;max-width:1060px;margin:0 auto;}

/* セクション見出しバー */
.biz-header{background:#fcf4f4;display:flex;align-items:center;gap:28px;padding:8px 20px;}
.biz-header-icon{width:58px;height:50px;object-fit:contain;flex-shrink:0;}
.biz-header-title{font-size:26px;font-weight:500;color:#333;letter-spacing:0.76px;white-space:nowrap;}

/* 概要文 + 画像 */
.biz-intro{display:flex;align-items:center;justify-content:space-between;gap:32px;}
.biz-intro-text{flex:1;font-size:16px;font-weight:400;color:#333;line-height:28px;letter-spacing:1.6px;}
.biz-intro-img{width:361px;height:200px;object-fit:cover;flex-shrink:0;}

/* スマホ + 説明 横並び */
.app-feature-block{display:flex;gap:149px;align-items:center;width:100%;}
.app-phone{width:376px;height:480px;object-fit:contain;flex-shrink:0;}
.app-detail{display:flex;flex-direction:column;gap:36px;flex:1;}
.app-catchcopy{border-top:2px solid #bd1d21;border-bottom:2px solid #bd1d21;padding:12px;text-align:center;}
.app-catchcopy p{font-size:24px;font-weight:500;color:#bd1d21;letter-spacing:2.4px;}
.app-title-row{display:flex;align-items:center;gap:20px;}
.app-icon{width:93px;height:96px;object-fit:contain;flex-shrink:0;}
.app-title-text{}
.app-title-sub{font-size:28px;font-weight:500;color:#333;letter-spacing:2.8px;}
.app-title-main{font-size:48px;font-weight:500;color:#333;line-height:1.2;}
.app-badge{background:#f7bb85;padding:4px 10px;text-align:center;font-size:20px;font-weight:500;color:#333;letter-spacing:2px;}
.app-stores{display:flex;align-items:center;justify-content:space-between;}
.app-store-links{display:flex;gap:30px;align-items:center;}
.app-store-btn{height:44px;object-fit:contain;}
.app-store-btn.appstore{width:151px;}
.app-store-btn.gplay{width:160px;}
.app-qr{width:100px;height:100px;object-fit:contain;}

/* 赤ボタン */
.red-btn-wrap{display:flex;justify-content:center;}
.red-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.red-btn:hover{background:#a01519;transform:translateY(-1px);}
.red-btn-text{font-size:18px;font-weight:500;color:#fcf4f4;letter-spacing:1.8px;white-space:nowrap;}
.red-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}

/* Case見出し */
.case-label{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;margin-bottom:4px;}
.case-title{font-size:24px;font-weight:500;color:#333;letter-spacing:0.76px;}
.case-underline{width:34px;height:2px;background:#bd1d21;border:none;margin-top:13px;}

/* OEMアプリ実績リスト */
.oem-list{display:flex;gap:120px;align-items:center;}
.oem-item{display:flex;gap:20px;align-items:flex-end;}
.oem-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.oem-icon-small{width:30px;height:30px;object-fit:contain;flex-shrink:0;}
.oem-name{font-size:18px;font-weight:700;color:#333;letter-spacing:1.6px;text-decoration:underline;}
.oem-org{font-size:16px;font-weight:400;color:#333;letter-spacing:1.6px;text-decoration:underline;}

/* 自治体アプリ実績グリッド */
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:28px 36px;}
.app-grid-item{display:flex;gap:20px;align-items:flex-start;}
.app-grid-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.app-grid-name{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.app-grid-area{font-size:16px;font-weight:400;color:#333;line-height:28px;}

/* APIカード */
.api-cards{display:flex;flex-direction:column;gap:12px;}
.api-row{display:flex;gap:54px;align-items:stretch;}
.api-card{background:#fff;border:1px solid rgba(0,0,0,0.06);border-radius:10px;box-shadow:4px 4px 2px rgba(0,0,0,0.05);padding:20px;display:flex;flex-direction:column;gap:12px;flex:1;}
.api-card-header{display:flex;gap:20px;align-items:center;}
.api-card-logo{height:54px;object-fit:contain;}
.api-card-logo.sm{height:42px;}
.api-card-logo.wide{width:185px;}
.api-card-logo.sq{width:42px;}
.api-card-info{}
.api-card-client{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.api-card-service{font-size:16px;font-weight:400;color:#333;line-height:28px;}
.api-tags{display:flex;flex-wrap:wrap;gap:8px;}
.api-tag{background:#fcf4f4;border-radius:30px;padding:4px 12px;font-size:14px;font-weight:500;color:#bd1d21;letter-spacing:1.4px;white-space:nowrap;}

/* セクション余白 */
.section-gap-sm{padding-top:40px;}
.section-gap-md{padding-top:60px;}
.section-gap-lg{padding-top:120px;}
.section-pb-sm{padding-bottom:60px;}
.section-pb-md{padding-bottom:100px;}
.section-pb-lg{padding-bottom:120px;}

/* CTA */
.cta-section{background:#ececec;padding:80px 170px;width:100%;display:flex;flex-direction:column;align-items:center;}
.cta-inner{display:flex;flex-direction:column;align-items:center;gap:13px;}
.cta-en{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;}
.cta-title{font-size:28px;font-weight:500;color:#333;letter-spacing:0.76px;}
.cta-divider{width:34px;height:2px;background:#bd1d21;border:none;}
.cta-btn-wrap{margin-top:21px;}
.cta-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.cta-btn:hover{background:#a01519;transform:translateY(-1px);}
.cta-btn-text{font-size:18px;font-weight:500;color:#fff;letter-spacing:0.76px;white-space:nowrap;}
.cta-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}
.cta-tel{font-size:12px;font-weight:500;color:#333;text-align:center;line-height:20.4px;margin-top:13px;}

/* FOOTER */
footer{background:#515254;padding:49px 170px 24px;width:100%;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:32px;}
.footer-brand h3{font-size:16px;color:#fff;font-weight:700;margin-bottom:10px;}
.footer-brand p{font-size:11px;color:rgba(255,255,255,0.75);line-height:1.9;font-weight:300;}
.footer-col h4{font-size:14px;color:#fff;font-weight:700;letter-spacing:0.05em;margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.7);text-decoration:none;font-weight:400;transition:color 0.2s;}
.footer-col ul li a:hover{color:#fff;}
.footer-logos{display:flex;align-items:center;gap:16px;padding:20px 0 0;}
.footer-logo-link{display:inline-flex;transition:opacity 0.2s;}
a.footer-logo-link:hover{opacity:0.8;}
.footer-logo-img{height:95px;object-fit:contain;}
.footer-logo-img.w274{width:274px;}
.footer-logo-img.w150{width:150px;}
.footer-logo-img.w236{width:236px;}
.footer-copy{text-align:center;font-size:10px;color:rgba(255,255,255,0.5);font-weight:300;padding-top:20px;margin-top:8px;border-top:1px solid rgba(255,255,255,0.12);}

/* RESPONSIVE */
@media(max-width:1059px){
  .header{max-width:100%;padding:12px 24px;}
  .fv-wrapper{max-width:100%;}
  .fv-heading{font-size:30px;line-height:44px;}
  .breadcrumb-inner{padding:0 24px 14px;}
  .page-content{padding:0 24px;}
  .biz-intro{gap:20px;}
  .biz-intro-img{width:260px;height:160px;}
  .app-feature-block{gap:40px;}
  .app-phone{width:280px;height:360px;}
  .app-title-main{font-size:36px;}
  .oem-list{gap:40px;flex-wrap:wrap;}
  .app-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:row;grid-template-rows:none;}
  .api-row{gap:20px;}
  .cta-section{padding:60px 40px;}
  footer{padding:40px 40px 24px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-logo-img.w274{width:200px;}
  .footer-logo-img.w150{width:110px;}
  .footer-logo-img.w236{width:160px;}
}

@media(max-width:767px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;}
  .header{padding:10px 16px;}
  .header-logo{width:48px;height:36px;}
  .header-name-ja{font-size:13px;}
  .header-name-en{font-size:10px;}
  .fv-hero{height:auto;padding:40px 20px;gap:8px;}
  .fv-heading{font-size:26px;line-height:40px;}
  .fv-hero-bg,.fv-hero-grad{display:none;}
  .breadcrumb{padding:12px 0;}
  .breadcrumb-inner{padding:0 16px 12px;}
  .page-content{padding:0 16px;}
  .section-gap-lg{padding-top:64px;}
  .section-pb-lg{padding-bottom:64px;}
  .section-pb-md{padding-bottom:64px;}
  .biz-header-title{font-size:20px;}
  .biz-header-icon{width:40px;height:36px;}
  .biz-intro{flex-direction:column;gap:16px;}
  .biz-intro-text{font-size:14px;letter-spacing:0;}
  .biz-intro-img{width:100%;height:200px;}
  .app-feature-block{flex-direction:column;gap:28px;}
  .app-phone{width:240px;height:auto;}
  .app-detail{gap:20px;}
  .app-catchcopy p{font-size:18px;}
  .app-title-sub{font-size:20px;}
  .app-title-main{font-size:30px;}
  .app-badge{font-size:14px;}
  .app-store-btn.appstore{width:120px;}
  .app-store-btn.gplay{width:130px;}
  .oem-list{flex-direction:column;gap:24px;}
  .oem-name{font-size:16px;}
  .oem-org{font-size:14px;}
  .app-grid{grid-template-columns:1fr 1fr;gap:20px;grid-auto-flow:row;grid-template-rows:none;}
  .app-grid-name{font-size:15px;}
  .app-grid-area{font-size:13px;}
  .api-row{flex-direction:column;gap:12px;}
  .api-card-client{font-size:16px;}
  .api-tag{font-size:13px;}
  .cta-section{padding:48px 20px;}
  .cta-title{font-size:22px;}
  .cta-btn{padding:12px 28px;}
  .cta-btn-text{font-size:15px;}
  .cta-tel{font-size:14px;white-space:normal;}
  .red-btn-text{font-size:14px;white-space:normal;text-align:center;}
  .red-btn{width:100%;justify-content:center;}
  .red-btn-wrap{width:100%;padding-left:16px;padding-right:16px;box-sizing:border-box;}
  /* full-section内のボタンは親で既に左右ガターがあるため二重にしない */
  .full-section .red-btn-wrap{padding-left:0;padding-right:0;}
  footer{padding:32px 16px 20px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:20px 24px;}
  .footer-brand{grid-column:1/-1;}
  .footer-brand h3{font-size:14px;}
  .footer-col h4{font-size:14px;margin-bottom:10px;}
  .footer-col ul{gap:8px;}
  .footer-col ul li a{font-size:14px;}
  .footer-logos{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:16px;}
  .footer-logo-link{display:flex;justify-content:center;align-items:center;}
  .footer-logo-link:nth-child(3){grid-column:1/2;justify-content:flex-start;}
  .footer-logo-img.w274,.footer-logo-img.w150{width:100%;max-width:none;height:68px;object-fit:contain;}
  .footer-logo-img.w236{width:auto;max-width:100%;height:68px;object-fit:contain;}
}

@media(max-width:480px){
  .fv-heading{font-size:22px;}
  .app-grid{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;}
  .footer-top{grid-template-columns:1fr 1fr;gap:16px 20px;}
  .footer-brand{grid-column:1/-1;}
  .footer-logos{grid-template-columns:1fr 1fr;gap:8px;}
}


/* ========== INDEX PAGE ========== */
.sp-only{display:none;}
.sp-br{display:none;}
.hero-outer{width:100%;overflow:hidden;}
.hero-inner{width:100%;max-width:1060px;margin:0 auto;padding:0 20px;}
.hero{position:relative;height:320px;overflow:hidden;display:flex;align-items:center;padding-left:20px;max-width:1060px;margin:0 auto;}
.hero-bg{position:absolute;inset:0;}
.hero-bg-color{position:absolute;inset:0;background:#d9d9d9;}
.hero-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-bg-grad{position:absolute;inset:0;background:linear-gradient(to right,rgba(255,255,255,0.5) 42%,rgba(255,255,255,0.3) 70%);}
.hero-content{position:relative;max-width:600px;}
.hero-eyebrow{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:2.4px;margin-bottom:16px;}
.hero-heading{font-family:'Noto Serif JP',serif;font-weight:600;font-size:38px;color:#333;letter-spacing:0.76px;line-height:1.5;margin-bottom:16px;}
.hero-desc{font-size:16px;font-weight:400;color:#333;line-height:26.6px;}
.service-section{width:100%;max-width:1060px;margin:0 auto;padding:24px 20px 0;}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.service-card{background:rgba(189,29,33,0.05);box-shadow:4px 4px 4px rgba(99,99,99,0.25);padding:20px 20px 28px;display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;color:inherit;transition:transform 0.2s,box-shadow 0.2s;min-height:248px;position:relative;}
.service-card:hover{transform:translateY(-3px);box-shadow:4px 8px 12px rgba(99,99,99,0.3);}
.service-card-icon{width:70px;height:60px;object-fit:contain;}
.service-card-title{font-size:20px;font-weight:500;color:#333;text-align:center;}
.service-card-divider{width:34px;height:2px;background:#bd1d21;border:none;}
.service-card-list{font-size:16px;font-weight:500;color:#333;line-height:30px;text-align:left;width:100%;}
.dot{color:#bd1d21;}
.service-card-arrow{width:20px;height:20px;position:absolute;right:16px;bottom:16px;object-fit:contain;}
.news-section{width:100%;max-width:1060px;margin:0 auto;padding:100px 20px;}
.news-header{margin-bottom:40px;}
.news-en{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;margin-bottom:4px;}
.news-heading{font-size:28px;font-weight:500;color:#333;letter-spacing:0.76px;}
.news-divider{width:34px;height:2px;background:#bd1d21;border:none;margin-top:13px;}
.news-list{display:flex;flex-direction:column;gap:0;margin-bottom:40px;}
.news-item{display:flex;align-items:center;gap:30px;padding:20px 0;border-bottom:1px solid #e8e8e8;text-decoration:none;color:inherit;transition:opacity 0.2s;}
.news-item:first-child{border-top:1px solid #e8e8e8;}
.news-item:hover{opacity:0.7;}
.news-meta{display:flex;align-items:center;gap:28px;flex-shrink:0;width:244px;}
.news-date{font-size:16px;font-weight:500;color:#333;letter-spacing:0.76px;white-space:nowrap;}
.news-tag{border:1px solid #bd1d21;border-radius:60px;padding:4px 12px;font-size:14px;font-weight:500;color:#bd1d21;white-space:nowrap;letter-spacing:0.76px;}
.news-body{display:flex;align-items:center;justify-content:space-between;flex:1;gap:16px;}
.news-item-title{font-size:16px;font-weight:400;color:#333;letter-spacing:0.76px;line-height:1.6;flex:1;}
.news-arrow{width:16px;height:16px;object-fit:contain;flex-shrink:0;}
.news-more-wrap{display:flex;justify-content:center;}
.news-more-btn{border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.2s,color 0.2s;}
.news-more-btn:hover{background:#bd1d21;}
.news-more-btn:hover .news-more-text{color:#fff;}
.news-more-text{font-size:18px;font-weight:500;color:#bd1d21;letter-spacing:0.76px;white-space:nowrap;}
.news-more-arrow{width:12px;height:15.578px;transform:rotate(90deg);object-fit:contain;}
@media(max-width:767px){
  .sp-only{display:inline;}
  .sp-br{display:inline;}
  .hero{height:auto;min-height:220px;padding:60px 16px;}
  .hero-heading{font-size:26px;letter-spacing:0;}
  .hero-desc{font-size:14px;}
  .service-grid{grid-template-columns:1fr;gap:12px;}
  .service-card{min-height:auto;padding:16px 16px 32px;}
  .news-section{padding:48px 16px 64px;}
  .news-item{flex-direction:column;align-items:flex-start;gap:10px;}
  .news-meta{width:auto;gap:14px;}
  .news-more-btn{padding:12px 28px;}
}


/* ========== news.html ========== */

/* PAGE */
.page-content{width:100%;max-width:1060px;margin:0 auto;}

/* セクション見出しバー */
.biz-header{background:#fcf4f4;display:flex;align-items:center;gap:28px;padding:8px 20px;}
.biz-header-icon{width:58px;height:50px;object-fit:contain;flex-shrink:0;}
.biz-header-title{font-size:26px;font-weight:500;color:#333;letter-spacing:0.76px;white-space:nowrap;}

/* 概要文 + 画像 */
.biz-intro{display:flex;align-items:center;justify-content:space-between;gap:32px;}
.biz-intro-text{flex:1;font-size:16px;font-weight:400;color:#333;line-height:28px;letter-spacing:1.6px;}
.biz-intro-img{width:361px;height:200px;object-fit:cover;flex-shrink:0;}

/* スマホ + 説明 横並び */
.app-feature-block{display:flex;gap:149px;align-items:center;width:100%;}
.app-phone{width:376px;height:480px;object-fit:contain;flex-shrink:0;}
.app-detail{display:flex;flex-direction:column;gap:36px;flex:1;}
.app-catchcopy{border-top:2px solid #bd1d21;border-bottom:2px solid #bd1d21;padding:12px;text-align:center;}
.app-catchcopy p{font-size:24px;font-weight:500;color:#bd1d21;letter-spacing:2.4px;}
.app-title-row{display:flex;align-items:center;gap:20px;}
.app-icon{width:93px;height:96px;object-fit:contain;flex-shrink:0;}
.app-title-text{}
.app-title-sub{font-size:28px;font-weight:500;color:#333;letter-spacing:2.8px;}
.app-title-main{font-size:48px;font-weight:500;color:#333;line-height:1.2;}
.app-badge{background:#f7bb85;padding:4px 10px;text-align:center;font-size:20px;font-weight:500;color:#333;letter-spacing:2px;}
.app-stores{display:flex;align-items:center;justify-content:space-between;}
.app-store-links{display:flex;gap:30px;align-items:center;}
.app-store-btn{height:44px;object-fit:contain;}
.app-store-btn.appstore{width:151px;}
.app-store-btn.gplay{width:160px;}
.app-qr{width:100px;height:100px;object-fit:contain;}

/* 赤ボタン */
.red-btn-wrap{display:flex;justify-content:center;}
.red-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.red-btn:hover{background:#a01519;transform:translateY(-1px);}
.red-btn-text{font-size:18px;font-weight:500;color:#fcf4f4;letter-spacing:1.8px;white-space:nowrap;}
.red-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}

/* Case見出し */
.case-label{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;margin-bottom:4px;}
.case-title{font-size:24px;font-weight:500;color:#333;letter-spacing:0.76px;}
.case-underline{width:34px;height:2px;background:#bd1d21;border:none;margin-top:13px;}

/* OEMアプリ実績リスト */
.oem-list{display:flex;gap:120px;align-items:center;}
.oem-item{display:flex;gap:20px;align-items:flex-end;}
.oem-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.oem-icon-small{width:30px;height:30px;object-fit:contain;flex-shrink:0;}
.oem-name{font-size:18px;font-weight:700;color:#333;letter-spacing:1.6px;text-decoration:underline;}
.oem-org{font-size:16px;font-weight:400;color:#333;letter-spacing:1.6px;text-decoration:underline;}

/* 自治体アプリ実績グリッド */
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:28px 36px;}
.app-grid-item{display:flex;gap:20px;align-items:flex-start;}
.app-grid-icon{width:54px;height:54px;object-fit:contain;flex-shrink:0;}
.app-grid-name{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.app-grid-area{font-size:16px;font-weight:400;color:#333;line-height:28px;}

/* APIカード */
.api-cards{display:flex;flex-direction:column;gap:12px;}
.api-row{display:flex;gap:54px;align-items:stretch;}
.api-card{background:#fff;border:1px solid rgba(0,0,0,0.06);border-radius:10px;box-shadow:4px 4px 2px rgba(0,0,0,0.05);padding:20px;display:flex;flex-direction:column;gap:12px;flex:1;}
.api-card-header{display:flex;gap:20px;align-items:center;}
.api-card-logo{height:54px;object-fit:contain;}
.api-card-logo.sm{height:42px;}
.api-card-logo.wide{width:185px;}
.api-card-logo.sq{width:42px;}
.api-card-info{}
.api-card-client{font-size:18px;font-weight:700;color:#333;line-height:28px;}
.api-card-service{font-size:16px;font-weight:400;color:#333;line-height:28px;}
.api-tags{display:flex;flex-wrap:wrap;gap:8px;}
.api-tag{background:#fcf4f4;border-radius:30px;padding:4px 12px;font-size:14px;font-weight:500;color:#bd1d21;letter-spacing:1.4px;white-space:nowrap;}

/* セクション余白 */
.section-gap-sm{padding-top:40px;}
.section-gap-md{padding-top:60px;}
.section-gap-lg{padding-top:120px;}
.section-pb-sm{padding-bottom:60px;}
.section-pb-md{padding-bottom:100px;}
.section-pb-lg{padding-bottom:120px;}

/* CTA */
.cta-section{background:#ececec;padding:80px 170px;width:100%;display:flex;flex-direction:column;align-items:center;}
.cta-inner{display:flex;flex-direction:column;align-items:center;gap:13px;}
.cta-en{font-family:'Montserrat',sans-serif;font-weight:500;font-size:12px;color:#bd1d21;letter-spacing:1.2px;}
.cta-title{font-size:28px;font-weight:500;color:#333;letter-spacing:0.76px;}
.cta-divider{width:34px;height:2px;background:#bd1d21;border:none;}
.cta-btn-wrap{margin-top:21px;}
.cta-btn{background:#bd1d21;border:1px solid #bd1d21;border-radius:100px;padding:14px 40px;display:flex;align-items:center;gap:12px;text-decoration:none;transition:background 0.25s,transform 0.2s;}
.cta-btn:hover{background:#a01519;transform:translateY(-1px);}
.cta-btn-text{font-size:18px;font-weight:500;color:#fff;letter-spacing:0.76px;white-space:nowrap;}
.cta-btn-arrow{width:12px;height:15.578px;transform:rotate(90deg);}
.cta-tel{font-size:12px;font-weight:500;color:#333;text-align:center;line-height:20.4px;margin-top:13px;}

/* FOOTER */
footer{background:#515254;padding:49px 170px 24px;width:100%;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:32px;}
.footer-brand h3{font-size:16px;color:#fff;font-weight:700;margin-bottom:10px;}
.footer-brand p{font-size:11px;color:rgba(255,255,255,0.75);line-height:1.9;font-weight:300;}
.footer-col h4{font-size:14px;color:#fff;font-weight:700;letter-spacing:0.05em;margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.7);text-decoration:none;font-weight:400;transition:color 0.2s;}
.footer-col ul li a:hover{color:#fff;}
.footer-logos{display:flex;align-items:center;gap:16px;padding:20px 0 0;}
.footer-logo-link{display:inline-flex;transition:opacity 0.2s;}
a.footer-logo-link:hover{opacity:0.8;}
.footer-logo-img{height:95px;object-fit:contain;}
.footer-logo-img.w274{width:274px;}
.footer-logo-img.w150{width:150px;}
.footer-logo-img.w236{width:236px;}
.footer-copy{text-align:center;font-size:10px;color:rgba(255,255,255,0.5);font-weight:300;padding-top:20px;margin-top:8px;border-top:1px solid rgba(255,255,255,0.12);}

/* RESPONSIVE */
@media(max-width:1059px){
  .header{max-width:100%;padding:12px 24px;}
  .fv-wrapper{max-width:100%;}
  .fv-heading{font-size:30px;line-height:44px;}
  .breadcrumb-inner{padding:0 24px 14px;}
  .page-content{padding:0 24px;}
  .biz-intro{gap:20px;}
  .biz-intro-img{width:260px;height:160px;}
  .app-feature-block{gap:40px;}
  .app-phone{width:280px;height:360px;}
  .app-title-main{font-size:36px;}
  .oem-list{gap:40px;flex-wrap:wrap;}
  .app-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:row;grid-template-rows:none;}
  .api-row{gap:20px;}
  .cta-section{padding:60px 40px;}
  footer{padding:40px 40px 24px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-logo-img.w274{width:200px;}
  .footer-logo-img.w150{width:110px;}
  .footer-logo-img.w236{width:160px;}
}

@media(max-width:767px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;}
  .header{padding:10px 16px;}
  .header-logo{width:48px;height:36px;}
  .header-name-ja{font-size:13px;}
  .header-name-en{font-size:10px;}
  .fv-hero{height:auto;padding:40px 20px;gap:8px;}
  .fv-heading{font-size:26px;line-height:40px;}
  .fv-hero-bg,.fv-hero-grad{display:none;}
  .breadcrumb{padding:12px 0;}
  .breadcrumb-inner{padding:0 16px 12px;}
  .page-content{padding:0 16px;}
  .section-gap-lg{padding-top:64px;}
  .section-pb-lg{padding-bottom:64px;}
  .section-pb-md{padding-bottom:64px;}
  .biz-header-title{font-size:20px;}
  .biz-header-icon{width:40px;height:36px;}
  .biz-intro{flex-direction:column;gap:16px;}
  .biz-intro-text{font-size:14px;letter-spacing:0;}
  .biz-intro-img{width:100%;height:200px;}
  .app-feature-block{flex-direction:column;gap:28px;}
  .app-phone{width:240px;height:auto;}
  .app-detail{gap:20px;}
  .app-catchcopy p{font-size:18px;}
  .app-title-sub{font-size:20px;}
  .app-title-main{font-size:30px;}
  .app-badge{font-size:14px;}
  .app-store-btn.appstore{width:120px;}
  .app-store-btn.gplay{width:130px;}
  .oem-list{flex-direction:column;gap:24px;}
  .oem-name{font-size:16px;}
  .oem-org{font-size:14px;}
  .app-grid{grid-template-columns:1fr 1fr;gap:20px;grid-auto-flow:row;grid-template-rows:none;}
  .app-grid-name{font-size:15px;}
  .app-grid-area{font-size:13px;}
  .api-row{flex-direction:column;gap:12px;}
  .api-card-client{font-size:16px;}
  .api-tag{font-size:13px;}
  .cta-section{padding:48px 20px;}
  .cta-title{font-size:22px;}
  .cta-btn{padding:12px 28px;}
  .cta-btn-text{font-size:15px;}
  .cta-tel{font-size:14px;white-space:normal;}
  .red-btn-text{font-size:14px;white-space:normal;text-align:center;}
  .red-btn{width:100%;justify-content:center;}
  .red-btn-wrap{width:100%;padding-left:16px;padding-right:16px;box-sizing:border-box;}
  /* full-section内のボタンは親で既に左右ガターがあるため二重にしない */
  .full-section .red-btn-wrap{padding-left:0;padding-right:0;}
  footer{padding:32px 16px 20px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:20px 24px;}
  .footer-brand{grid-column:1/-1;}
  .footer-brand h3{font-size:14px;}
  .footer-col h4{font-size:14px;margin-bottom:10px;}
  .footer-col ul{gap:8px;}
  .footer-col ul li a{font-size:14px;}
  .footer-logos{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:16px;}
  .footer-logo-link{display:flex;justify-content:center;align-items:center;}
  .footer-logo-link:nth-child(3){grid-column:1/2;justify-content:flex-start;}
  .footer-logo-img.w274,.footer-logo-img.w150{width:100%;max-width:none;height:68px;object-fit:contain;}
  .footer-logo-img.w236{width:auto;max-width:100%;height:68px;object-fit:contain;}
}

@media(max-width:480px){
  .fv-heading{font-size:22px;}
  .app-grid{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;}
  .footer-top{grid-template-columns:1fr 1fr;gap:16px 20px;}
  .footer-brand{grid-column:1/-1;}
  .footer-logos{grid-template-columns:1fr 1fr;gap:8px;}
}


/* ========== NEWS PAGE ========== */
.news-section{max-width:1060px;margin:0 auto;padding:60px 20px 100px;}
.news-list{display:flex;flex-direction:column;}
.news-item{display:flex;align-items:center;gap:30px;padding:20px 0;border-bottom:1px solid #e8e8e8;text-decoration:none;color:inherit;transition:opacity 0.2s;}
.news-item:first-child{border-top:1px solid #e8e8e8;}
.news-item:hover{opacity:0.7;}
.news-meta{display:flex;align-items:center;gap:28px;flex-shrink:0;width:244px;}
.news-date{font-size:16px;font-weight:500;color:#333;letter-spacing:0.76px;white-space:nowrap;}
.news-tag{border:1px solid #bd1d21;border-radius:60px;padding:4px 12px;font-size:14px;font-weight:500;color:#bd1d21;white-space:nowrap;letter-spacing:0.76px;}
.news-body{display:flex;align-items:center;justify-content:space-between;flex:1;gap:16px;}
.news-title{font-size:22px;font-weight:500;color:#333;letter-spacing:0.76px;line-height:1.6;}
.news-arrow{width:16px;height:16px;object-fit:contain;flex-shrink:0;}
@media(max-width:767px){
  .news-section{padding:48px 16px 64px;}
  .news-item{flex-direction:column;align-items:flex-start;gap:10px;}
  .news-meta{width:auto;gap:14px;}
  .news-date{font-size:14px;}
}

/* ===== SP: 全幅セクションの中身をコンテンツ幅に収める（.page-content と左右ガターを揃える） ===== */
@media (max-width: 767px){
  .full-section{ padding-left: 24px; padding-right: 24px; }
  /* 縦並び時に固定幅で親をはみ出すのを防ぐ */
  .app-detail{ width: 100%; min-width: 0; }
  /* ストアバッジ＋QRがコンテンツ幅に収まらない場合は折り返す */
  .app-stores{ flex-wrap: wrap; justify-content: center; gap: 16px 20px; }
  /* 詳細ボタンの長文を折り返してコンテンツ幅に収める（.red-btn と同様） */
  .detail-btn{ width: 100%; justify-content: center; box-sizing: border-box; }
  .detail-btn-text{ white-space: normal; text-align: center; }
}
@media (max-width: 480px){
  .full-section{ padding-left: 16px; padding-right: 16px; }
}


/* ===== 防災情報データベースAPI 項目リスト（Figmaデザイン準拠） ===== */
.api-db-row{display:flex;justify-content:space-between;align-items:center;gap:38px;width:100%;}
.api-db-list{flex:1;display:flex;flex-direction:column;min-width:0;}
.api-db-item{display:flex;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #e8e8e8;}
.api-db-item:last-child{border-bottom:none;}
.api-db-icon{width:50px;height:50px;object-fit:contain;flex-shrink:0;}
.api-db-title{font-size:18px;font-weight:700;color:#333;letter-spacing:1.8px;line-height:1.4;}
.api-db-desc{font-size:16px;font-weight:500;color:#333;letter-spacing:1.6px;line-height:28px;margin-top:6px;}
.api-db-image{width:361px;height:200px;position:relative;overflow:hidden;flex-shrink:0;}
.api-db-image img{position:absolute;width:123.89%;height:117.38%;left:-21.86%;top:-8.7%;max-width:none;object-fit:cover;}
@media(max-width:767px){
  .api-db-row{flex-direction:column;align-items:stretch;gap:24px;}
  .api-db-image{width:100%;}
  .api-db-title{font-size:16px;letter-spacing:0.8px;}
  .api-db-desc{font-size:14px;letter-spacing:0;}
}

/* 防災情報データベース導入実績例：PCは4カラム */
.api-cards-4col{flex-direction:row;flex-wrap:wrap;gap:16px 24px;}
.api-cards-4col .api-card{flex:0 0 calc((100% - 72px) / 4);max-width:calc((100% - 72px) / 4);}
/* 幅が狭いのでロゴと会社名を縦積みにして会社名を読みやすく */
.api-cards-4col .api-card-header{flex-direction:column;align-items:flex-start;gap:12px;}
.api-cards-4col .api-card-info{width:100%;}
/* 左右余白を詰めて内容幅を確保 */
.api-cards-4col .api-card{padding-left:14px;padding-right:14px;}
/* 会社名を1行に収める（あいおいのみ株式会社で改行）＆サービス名も縮小 */
.api-cards-4col .api-card-client{font-size:12.5px;line-height:18px;}
.api-cards-4col .api-card-service{font-size:11px;line-height:17px;}
/* タグを縮小して2つ横並びできるように */
.api-cards-4col .api-tags{gap:5px;}
.api-cards-4col .api-tag{font-size:11px;padding:3px 8px;letter-spacing:0;}
/* ロゴを全体的に少し小さく＆高さ統一でサイズ感を揃える（画像は余白トリミング済み） */
.api-cards-4col .api-card-logo{height:32px;}
.api-cards-4col .api-card-logo.wide{width:auto;height:32px;}
.api-cards-4col .api-card-logo.sq{width:38px;height:38px;}
/* ソフトバンクは横長で目立つため気持ち小さく */
.api-cards-4col .api-card-logo[src*="softbank"]{height:28px;}
@media(max-width:1024px){
  /* タブレットは2カラム */
  .api-cards-4col{gap:12px 20px;}
  .api-cards-4col .api-card{flex-basis:calc((100% - 20px) / 2);max-width:calc((100% - 20px) / 2);}
}
@media(max-width:767px){
  .api-cards-4col{flex-direction:column;gap:12px;}
  .api-cards-4col .api-card{flex-basis:auto;max-width:none;}
}
