@charset "utf-8";

/* category_color */

:root {
  --cat-primary-color: #90A4AE;
  --cat-secondary-color: #455A64;
  --cat-light-color: #ECEFF1;
  --cat-dark-color: #dce1e5;
  --cat-mv-image: none;
  --cat-mv-title-color: #fff;
  --cat-mv-title-bgcolor: #90A4AE;
}

.cat_security {
  --cat-primary-color: #a7bc5b;
  --cat-secondary-color: #7a8942;
  --cat-light-color: #f2f5e7;
  --cat-dark-color: #e1e7d0;
  --cat-mv-image: url(/svcsol/topic/images/mv_security.jpg);
  --cat-mv-title-color: #fff;
  --cat-mv-title-bgcolor: #223C6C;
}

.cat_network {
  --cat-primary-color: #006f8c;
  --cat-secondary-color: #006f8c;
  --cat-light-color: #f6fafb;
  --cat-dark-color: #dbe7ea;
  --cat-mv-image: url(/svcsol/topic/images/mv_network.jpg);
  --cat-mv-title-color: #fff;
  --cat-mv-title-bgcolor: #3C4F7E;
}

.cat_cloud {
  --cat-primary-color: #d4123f;
  --cat-secondary-color: #d4123f;
  --cat-light-color: #ffeef2;
  --cat-dark-color: #ffd5e0;
  --cat-mv-image:  url(/svcsol/topic/images/mv_cloud.jpg);
  --cat-mv-title-color: #333;
  --cat-mv-title-bgcolor: rgb(255 255 255 / 0.7);
}

body {
  background: transparent url(/svcsol/topic/images/bg.png) no-repeat center center fixed;
  background-size: cover;
}

/* PC表示用全体エリア幅調整。カレンダーの有無により変更。layout.css の指定を上書き。SP用は layout_sp.cssから変更せず。 */
@media screen and (min-width: 769px) {
  #contentsContainer {
    width: 970px;
  }
  #contentsContainer.p-wideContainer {
    width: 100%;
    max-width: 1400px;
  }
  #contentsContainer.p-wideContainer .p-topics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
}

/* #header */
#topicContainer #header {
  position: relative;
  color: #333;
  background-color: transparent;
  background: var(--cat-mv-image) no-repeat right top;
  background-position: right top;
  background-size: cover;
  width: 100%;
  min-width: 950px;
  height: 350px;
}
#contentsContainer.p-wideContainer #header {
  min-width: 0;
  height: 180px;
}
@media screen and (max-width: 768px) {
  #topicContainer #header {
    min-width: inherit;
    height: 40vw;
  }
}

/* #header .in_head IIJ logo */
#topicContainer #header .in_head {
  position: relative;
  width: 100%;
  margin: auto;
  z-index: 10;
}
#topicContainer #header .grand_title {
  text-align: right;
  width: 100%;
}
#topicContainer #header .grand_title .logotop {
  display: inline-block;
  width: 80px;
  height: 50px;
  background-color: #000;
}
#topicContainer #header .grand_title .logotop a {
  display: block;
  margin-top: 0;
  padding: 10px 14px;
}
#topicContainer #header .grand_title .logotop a img {
  width: 55px;
  height: auto;
}

/* #header .main_visual background-image,h1 and main_visual_title */

#topicContainer #header .main_visual_title {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  padding: 20px;
  color: var(--cat-mv-title-color);
  background-color: var(--cat-mv-title-bgcolor);
  max-width: 90%;
}
#contentsContainer.p-wideContainer #header .main_visual_title {
  padding: 20px 32px 20px 20px;
}

/* == MV image and h1 bg settings == */

/* #fxz_202304 */
#topicContainer #fxz_202304 #header {
  background: url(/svcsol/topic/images/mv_fxz_202304.jpg) no-repeat left top;
  background-size: cover;
}
#topicContainer #fxz_202304 #header .main_visual_title {
  background-color: #0379c6;
}

/* #cdp_202510,#mdm_202511 */
#topicContainer #mdm_202511 #header {
  background: url(/svcsol/topic/images/mv_cloud.jpg) no-repeat left top;
  background-size: cover;
}

/* #sim_202602 */
#topicContainer #sim_202602 #header {
  background: url(/svcsol/topic/images/mv_sim_202602.jpg) no-repeat left top;
  background-size: cover;
}
#topicContainer #sim_202602 #header .main_visual_title {
  background-color: #0379c6;
}


/* h1 text */
#topicContainer #header .main_visual h1 {
  font-size: 2.25rem;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  #topicContainer #header .main_visual_title {
    padding: 2.5vw;
  }
  #topicContainer #header .main_visual h1 {
    font-size: 3.6vw;
  }
}

#contentsContainer.p-wideContainer #header .main_visual .main_visual_title h1 {
  font-weight: 700;
  font-size: 28px;
}
#topicContainer #cdp_202510 #header .main_visual .main_visual_title .main_visual_serviceName {
  border-top: 2px solid var(--cat-mv-title-color);
  font-size: 0.9rem;
  margin-top: 8px;
  padding-top: 8px;
}

/* #mdm_202511 ヘッダのみクラウド、#cdp_202510と同様のカラーに設定 */
#topicContainer #mdm_202511 #header .main_visual_title {
  color: #333;
  background-color: rgb(255 255 255 / 0.7);
}

/* .p-wideContainer h1 text-size fix */
@media screen and (max-width: 1366px) {
  #contentsContainer.p-wideContainer #header .main_visual .main_visual_title h1 {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 768px) {
  #contentsContainer.p-wideContainer #header .main_visual .main_visual_title h1 {
    font-size: 2.0rem;
  }
  #contentsContainer.p-wideContainer #header .main_visual .main_visual_title .main_visual_serviceName {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 640px) {
  #contentsContainer.p-wideContainer #header .main_visual .main_visual_title h1 {
    font-size: 3.6vw;
  }
  #contentsContainer.p-wideContainer #header .main_visual .main_visual_title .main_visual_serviceName {
    font-size: 2.4vw;
  }
}



/* #main */
#topicContainer #main {
  padding: 0 20px 24px 20px;
  background-color: #fff;
}
@media only screen and (max-width: 768px) {
  #topicContainer #main {
    padding: 0 16px;
  }
}

#topicContainer .lead_desc {
  padding: 24px 0;
  font-size: 16px;
}
#topicContainer .p-note-text01 {
  display: block;
  padding-left: 1.2em;
  text-indent: -1.2em;
  font-size: 14px;
}

#topicContainer #main img {
  max-width: 100%;
}

#topicContainer .post_btn {
  margin: auto;
  background: none;
}
#topicContainer .post_btn a {
  max-width: 480px;
  width: 90%;
  padding: 10px 20px;
  height: 100%;
}
#topicContainer .post_btn a span {
  display: grid;
  place-items: center;
}

@media only screen and (max-width: 768px) {
  #topicContainer .post_btn ul li:not(:last-child) {
    margin-bottom: 16px;
  }
}

@media screen and (min-width: 769px) {
  #topicContainer .post_btn ul {
    display: flex;
  }

  #topicContainer .post_btn ul li {
    flex: 1;
  }
}

#topicContainer .sec_fig {
  margin: 20px auto 60px;
  text-align: center;
}

#topicContainer .sec_ttl,
#topicContainer .sec_fig_ttl {
  margin-bottom: 20px;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
}
@media only screen and (max-width: 768px) {
  #topicContainer .sec_ttl,
  #topicContainer .sec_fig_ttl {
    font-size: clamp(1.1rem, 1.2rem + 1.4vw, 2.2rem);
  }
}

/* .sec_feature */

#topicContainer .sec_feature_inr {
  list-style: none;
  counter-reset: cnt;
}

#topicContainer .sec_feature_inr>.sec_feature_inr_grd {
  position: relative;
  margin-bottom: 40px;
  border: 2px var(--cat-primary-color) solid;
  border-radius: 8px;
}
#topicContainer .sec_feature_inr>.sec_feature_inr_grd:last-child {
  margin-bottom: 0;
}

#topicContainer .sec_feature_inr>.sec_feature_inr_grd::before {
  content: counter(cnt, decimal-leading-zero);
  counter-increment: cnt;
  position: absolute;
  top: -10px;
  left: 16px;
  width: 80px;
  height: 80px;
  font-size: 2rem;
  font-weight: 600;
  color: var(--cat-secondary-color);
  background: linear-gradient(135deg, var(--cat-light-color) 0%, var(--cat-light-color) 50%, var(--cat-dark-color) 50%, var(--cat-dark-color) 100%);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

/* #mdm_202511 のみ DayX に変更 */
/* #topicContainer #mdm_202511 .sec_feature_inr>.sec_feature_inr_grd::before {
  content: 'Day' counter(cnt);
  counter-increment: cnt;
  font-size: 1.4rem;
} */

@media only screen and (max-width: 768px) {
  #topicContainer .sec_feature_inr>.sec_feature_inr_grd {
    margin-bottom: 5vw;
  }

  #topicContainer .sec_feature_inr>.sec_feature_inr_grd::before {
    top: 0;
    left: 8px;
    width: 40px;
    height: 40px;
    font-size: 1.8rem;
  }
}

#topicContainer .sec_feature_inr_grd .grd_ttl {
  position: relative;
  padding: 16px 15px 18px 110px;
  font-size: 1.25rem;
  font-weight: bold;
  color: #FFF;
  background-color: var(--cat-primary-color);
}

#topicContainer .sec_feature_inr_grd .grd_txt {
  padding: 20px 40px;
}

@media only screen and (max-width: 768px) {
  #topicContainer .sec_feature_inr_grd .grd_ttl {
    padding: 11px 4px 12px 56px;
    font-size: 1.5rem;
  }

  #topicContainer .sec_feature_inr_grd .grd_txt {
    padding: 16px;
    font-size: 1.4rem;
  }
}

#contentsContainer #topicContainer .sec_feature .grd_txt ul {
  list-style: disc outside;
}
#topicContainer .sec_feature .grd_txt ul li {
  line-height: 1.6;
}
@media only screen and (max-width: 768px) {
  #contentsContainer #topicContainer .sec_feature .grd_txt ul {
    list-style: disc outside;
    margin: 0 16px;
  }
}



/* add 202510 .p-sec_calendar カレンダー読み込みエリア用設定 */
.p-sec_calendar {
  margin-top: 24px;
  padding: 10px 10px 0 10px;
  display: flex;
  flex-direction: column;
}
.p-sec_calendar__calendarInfo {
  text-align: center;
}
.p-sec_calendar__calendarInfo h2 {
  font-size: 24px;
  font-weight: 900;
  color: #2e67ce;
}
.p-sec_calendar__calendarInfo p {
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.6;
}
@media only screen and (max-width: 768px) {
  .p-sec_calendar__calendarInfo {
    text-align: left;
  }
  .p-sec_calendar__calendarInfo h2 {
    text-align: center;
  }
}

/* カレンダー読み込みエリアのカレンダー本体（iframe）の指定 */
.p-sec_calendar__calendarContainer {
  margin-top: 24px;
  margin-bottom: 0;
  height: 100%;
}
@media only screen and (max-width: 768px) {
  .p-sec_calendar__calendarContainer {
    margin-bottom: 24px;
  }
}
.p-sec_calendar__calendarContainer iframe {
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 768px) {
  .p-sec_calendar__calendarContainer iframe {
    height: 600px;
  }
}



/* utility */
@media only screen and (max-width: 768px) {
  /* SP表示時には非表示にする要素に指定（画像拡大用ボタンなど） */
  .pcOnly {
    display: none !important;
  }
}

/* PC表示時のみ幅調整（イメージ図用。原寸だと大きすぎる場合に使用） */
@media screen and (min-width: 769px) {
  #contentsContainer .w-75 {
    width: 75%;
    height: auto;
  }
  #contentsContainer .w-50 {
    width: 50%;
    height: auto;
  }
}
