@charset "utf-8";

/* 1. セクションの下余白 */
#main_contents2 section {
    margin-bottom: 1.5em !important;
}

/* 2. 強みの部分（維持） */
#asprova .flx-align-end{ align-items:flex-end; }
#asprova .flx-align-center{ align-items:center; }
#asprova .advantage-box-bg{ background:rgb(172,220,234); margin-bottom:1em; }
#asprova h3.advantage{
  position: relative; font-size: 18px; font-weight:normal;
  border-bottom: 2px solid #1a2792; margin: 0.5em 0.5em 1em 0; padding-left:45px;
}
#asprova h3.advantage::before {
  content: attr(data-number); margin-right: 10px; color: #FFF; font-size: 20px;
  border-bottom: 2px solid #1a2792; background:#1a2792; padding:0 10px;
  font-weight:bold; position:absolute; bottom:0; left:0;
}
#asprova .advantage-box-bg ul{ margin-left:45px; }
#asprova .advantage-box-bg ul li{ margin-bottom:10px; }
#asprova .advantage-image img { width: 240px; }
#asprova dl{ display: flex; flex-wrap: wrap; width: 100%; align-items:flex-start; margin-bottom:10px; }
#asprova dl dt{ font-size:20px; color:#1a2792; font-weight:bold; width:25%; filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.25)); }
#asprova dl dt::before{ content:"★"; color:#edb610; font-size:30px; filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.25)); margin-right:10px; }
#asprova dl dd{ margin-top:15px; width:70%; }
#asprova .modal{ cursor:pointer; }
#asprova .scroll img{ max-width:980px; }

/* 3. 【新】カード型レイアウト（悩み・解決共通） */
.problem-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 1.5em;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

.problem-card {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #dce4ef;
    border-radius: 4px;
    padding: 20px 25px;
    box-sizing: border-box;
    width: calc(50% - 10px); /* PC 2列 */
    box-shadow: 0 4px 12px rgba(0, 68, 136, 0.08);
}

/* 解決策用の背景色（薄い青） */
.sol-bg {
    background-color: #f0f7ff;
}

/* 円形アイコン */
.card-icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: bold;
    color: #fff;
    margin-right: 20px;
}

/* 番号別背景色 */
.num-1 { background-color: #246fb1; }
.num-2 { background-color: #1a8a83; }
.num-3 { background-color: #3b8e5b; }
.num-4 { background-color: #c47b2a; }
.num-5 { background-color: #b14a42; }

.card-body { flex: 1; }

.card-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #333;
    margin: 0 0 8px 0 !important;
    line-height: 1.4;
}

/* 解決策のタイトル色 */
.sol-color { color: #0055aa; }

.card-text {
    font-size: 0.95rem;
    color: #555;
    margin: 0;
    line-height: 1.6;
}

.hyphen-list { list-style: none; padding: 0; margin: 0; }
.hyphen-list li {
    position: relative; padding-left: 1.2em;
    font-size: 0.95rem; color: #555; line-height: 1.5; margin-bottom: 3px;
}
.hyphen-list li::before { content: "・"; position: absolute; left: 0; }


/* 4. システム連携（維持） */
.system-map-container { position: relative; max-width: 980px; margin: 0 auto; }
.system-map-container img { width: 100%; height: auto; display: block; }
.map-link {
    position: absolute; display: block; transition: all 0.3s ease; cursor: pointer; box-sizing: border-box; border-radius: 6px; z-index: 5;
}
.map-link:hover {
    transform: translateY(-2px);
    background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%) !important;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2), 0 0 10px rgba(255, 255, 255, 0.5), inset 0 0 8px rgba(255, 255, 255, 0.4) !important;
}
#linkage .map-link { text-decoration: none !important; border-bottom: none !important; }

.link-sap { top: 28.5%; left: 4.3%; width: 20.5%; height: 8%; }
.link-proactive { top: 37.3%; left: 4.3%; width: 20.0%; height: 5.8%; }
.link-aras { top: 57.3%; left: 4.3%; width: 20.5%; height: 5.8%; }
.link-delmia { bottom: 6.0%; left: 41.5%; width: 20.5%; height: 6.0%; }

/* 5. トピックス（維持） */
.arwList li.no-link{ background-image:none !important; }
@media screen and (min-width: 768px) {
    #main_contents2 .ttl-List li { width: 980px; }
    .ttl-List li.narrow { height: 4em; }
}

/* 6. SP版の設定 */
@media screen and (max-width: 767px) {
    .problem-card { width: 100% !important; padding: 15px; }
    .card-icon { width: 50px; height: 50px; font-size: 22px; margin-right: 15px; }
    
    #main_contents2 .ttl-List li { width: 100% !important; }
    .ttl-List li.narrow { height: auto !important; min-height: 4em; padding: 10px 0; }

    #asprova .sp-direction-reverse{ flex-direction:column-reverse; }
    #asprova dl dt, #asprova dl dd{ width:100%; }
    #asprova dl dd{ margin-left:30px; margin-top:0; }
    #asprova dl dt::before{ margin-right:0; }
}