@charset "utf-8";

body {
    background-image: url("../img/main.png");
    background-repeat: no-repeat;
    background-position: right top;
    background-size: 2100px;
    background-attachment: fixed;

    position: relative;
}
@media screen and (max-width: 579px) {

    body {
        background-size: 1400px;
    }
}

main {
    background-image: none;
    padding-bottom: 0;
    background-color:transparent;
}
.container {
    width: 100%;
    margin: 0 auto;
    padding: 40px;
}
header {
    border-width: 0;
}


/*ライセンス*/
#license {
    position: absolute;
    position: fixed;
    right: 40px;
    font-size: clamp(0.625rem, 0.6rem + 0.13vw, 0.75rem); /*10-12*/
    color: #b6b6b6;
}
#cover,
main,
footer {
    position: relative;
}


/*-------------------------------*/
/*ヘッドライン*/
/*-------------------------------*/
.read-headline h2 {
    /*22-48*/
    font-size: clamp(1.375rem, 1.05rem + 1.63vw, 3rem);
    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
    position: relative;
    color: #ddd;
    margin: 20px 0 60px;
}
.read-headline h2 span {
    display: block;
    margin-top: 25px;

    /*22-36*/
    font-size: clamp(1.375rem, 1.2rem + 0.88vw, 2.25rem);
    font-family: '游ゴシック体', 'Yu Gothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, 'ＭＳ Ｐゴシック', 'メイリオ', sans-serif;
    font-weight: bold;
    color: #000;    
    background: url("../img/icon_circle.png") no-repeat left center;
    background-size: 14px;
    padding-left: 22px;
    position: absolute;
    top: 20px;
    left: 30px;
}

.read-headline p {
    /*16-18*/
    font-size: clamp(1rem, 0.975rem + 0.13vw, 1.125rem);
    line-height: 140%;
}


/*---見出し---*/
.head-border {
    /*18-22*/
    font-size: clamp(1.125rem, 1.075rem + 0.25vw, 1.375rem);
    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
}
.head-border {
    display: flex;
    align-items: center;
}
.head-border:before,
.head-border:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #666;
}
.head-border:before {
    margin-right: 1rem;
}
.head-border:after {
    margin-left: 1rem;
}


/*-------------------------------*/
/*表紙*/
/*-------------------------------*/
#cover {
    width: 100%;   
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    background-image: url('../img/wave_white_6.svg'), url("../img/backimg02.png");
    background-repeat: no-repeat, repeat;
    background-position: center bottom, left bottom;
    background-color:rgba(128,181,50,0.2);
}
#cover .vision {
    width: 100%;
    /* min-height: 750px; */
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding: 30px 40px;
}


/*タイトル*/
.title {
    width: 100%;
    max-width: 1480px;
    margin: 0 auto;

    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
    line-height: 140%;
    text-shadow: 1px 1px 5px #fff;
}
.title h1 {
    /*26-64*/
    font-size: clamp(1.625rem, 1.15rem + 2.38vw, 4rem);

    line-height: 120%;
    margin: 0;
    overflow-wrap: break-word;
}

.title .summary {
    /*24-38*/
    font-size: clamp(1.5rem, 1.325rem + 0.88vw, 2.375rem);
    font-weight: normal;
    margin-top: 30px;
    letter-spacing: -0.05em; /* 文字間隔を詰める */
}

/*メニュー*/
.topnavi {
    width: 100%;
    max-width: 1280px;
    margin: 50px auto 0;
}
.topnavi ul {
    margin: 0 0 50px 0;
    padding: 0;
    list-style-type: none;    
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.topnavi li {
    width: 200px;
    height: 200px;

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;

    margin: 0 40px;
    padding: 10px;
    border-radius: 240px;
    background-color:rgba(255,255,255,0.8);
}
.topnavi li img {
    width: 100%;
    max-width: 80px;
    display: block;
    margin: 0 auto 20px;
}
.topnavi a {
    /*15-20*/
    font-size: clamp(0.938rem, 0.875rem + 0.31vw, 1.25rem);
    font-weight: bold;
    color: #000;
    text-decoration: none;    
    line-height: 100%;
}
.topnavi a:hover img {
    opacity: 1.0;
}
.topnavi a img.bounce {
  animation: bounce 0.6s;
}

.topnavi a span {
    display: inline-block;
}

/*-アニメーション-*/
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-15px);
  }
  60% {
    transform: translateY(-8px);
  }
}





/*---------------------------*/
/*ニュース*/
/*----------------------------*/
#news {
    background: url('../img/wave_single_b.svg') no-repeat center bottom;
    background-color: #fff;
    padding-bottom: 50px;
}
#news .container {
    max-width: 1680px;
    padding-top: 10px; /*調整*/
}

/*見出し*/
#news .read-headline {
    max-width: 1480px;
    margin-bottom: 60px;
    margin: 0 auto;       /* 左右の余白は、ブラウザで自動（auto）で均等*/
}
#news .links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: 100px;
    margin-bottom: 30px;
}
#news .links img {
    display: block;
    max-width: 60px;          /* 画像のサイズ */
    margin-right: 10px;         /* 画像の右側隙間 */
}
#news .links a {
    display: inline-block;
    /*16-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 22px;
    padding: 1px 30px 1px 0;
    font-weight: bold;
    text-decoration: none;
    color: #000;
}


/*トピックス*/
.topics {
    margin: 0 auto 30px;
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 20px;
    border-bottom: 1px #eee solid;
}
.topics .topics-item {
    width: calc((100% / 2) - 80px);
    margin: 0 40px;
}
.topics .photo {
    height: 280px;
    overflow: hidden;
}
.topics img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    margin: 0 auto;
}
.topics a {
    color: #000;
    overflow: hidden;
    text-decoration: none;
}
.topics a img {
    transition-duration: 0.3s;
}
.topics a:hover img {
    transform: scale(1.1);
    transition-duration: 0.5s;
    opacity: 0.8;
}
.topics dl {
    margin: 30px 0;
    padding: 0 40px;
}
.topics dt {
    margin-top: 10px;
    margin-bottom: 20px;
    font-weight: bold;
    /*12-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 140%;
    background:url("../img/icon_arrow_b.png") no-repeat left center;
    background-size: 22px;
    padding-left: 28px;
}
.topics dd {
    margin: 0;
    /*16-18*/
    font-size: clamp(1rem, 0.975rem + 0.13vw, 1.125rem);
    line-height: 160%;
}


/*ニュース一覧*/
.newslist {
    max-width: 1440px;
    margin: 0 auto;
}
.newslist dl {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    line-height: 140%;
    margin-left: 120px;
    padding: 15px 20px;
    background: url("../img/dot.png") repeat-x bottom center;
}
.newslist dt {
    width: 200px;
    display: inline-block;
    margin-right: 30px;
    cursor: auto;
    font-weight: bold;
    pointer-events: none;
    display: flex;
    align-items: center;
}
.newslist dd {
    flex: 1;
    margin: 0;
    display: block;
}
.newslist dd a {
    color: #000;
    font-weight: bold;
    text-decoration: none;
}
.newslist dd a:hover {
    text-decoration: underline;
}

/* ==========================================
   ニュースのカテゴリー（category）ごとの色設定（jsと一緒に動作）
========================================== */
/* 「最新情報」の色 */
.newslist .category.cat-info {
    display: inline-block;
    min-width: 90px;
    /*12-13*/
    font-size: clamp(0.75rem, 0.738rem + 0.06vw, 0.813rem);
    padding: 4px 5px;
    line-height: 100%;
    border-radius: 2px;

    text-align: center;
    margin: 0 20px;
    font-weight: bold;

    background-color: #e65a5a;
    color: #ffffff;
}

/* 「解説」の色 */
.newslist .category.cat-guide {
    display: inline-block;
    min-width: 90px;
    /*12-13*/
    font-size: clamp(0.75rem, 0.738rem + 0.06vw, 0.813rem);
    padding: 4px 5px;
    line-height: 100%;
    border-radius: 2px;

    text-align: center;
    margin: 0 20px;
    font-weight: bold;

    background-color: #5ab45a;
    color: #ffffff;
}

/* 「トピック」の色 */
.newslist .category.cat-topic {
    display: inline-block;
    min-width: 90px;
    /*12-13*/
    font-size: clamp(0.75rem, 0.738rem + 0.06vw, 0.813rem);
    padding: 4px 5px;
    line-height: 100%;
    border-radius: 2px;

    text-align: center;
    margin: 0 20px;
    font-weight: bold;
    background-color: #f39c12;
    color: #ffffff;
}

/* 「お知らせ」の色（ */
.newslist .category.cat-notice {
    display: inline-block;
    min-width: 90px;
    /*12-13*/
    font-size: clamp(0.75rem, 0.738rem + 0.06vw, 0.813rem);
    padding: 4px 5px;
    line-height: 100%;
    border-radius: 2px;

    text-align: center;
    margin: 0 20px;
    font-weight: bold;

    background-color: #7b8da3;
    color: #fff;
}
/*---------------------------------------------------*/
/*過去の一覧*/
.newslist #past {
    display: none;
}

/*もっと見る*/
.newslist .more {
    margin-top: 40px;
    text-align: right;
}
#morenews {
    display: inline-block;
    font-weight: 400;
    line-height: 100%;
    color:#fff;
    text-decoration: none;
    text-align: center;
    border-radius: 50px;
    padding: 7px 40px 7px 30px;
    cursor: pointer;

    /*12-16*/
    font-size: clamp(0.75rem, 0.7rem + 0.25vw, 1rem);
}

/*＋-ボタン*/
#morenews.plus {
	background:url("../img/icon_plus_w.png") no-repeat 90% center;
	background-size: 18px;    
    background-color: #005aba;
}
#morenews.plus::after {
   content: "過去のニュース";
}
#morenews.plus:hover {
    transition: all .5s;
    background-color: #b1d558;
}
#morenews.plus-on {
	background:url("../img/icon_minus_w.png") no-repeat 90% center;
	background-size: 18px;
    background-color: #005aba;
}
#morenews.plus-on::after {
    content: "閉じる";
}
#morenews.plus-on:hover {
    transition: all .5s;
    background-color: #b1d558;
}
/* ==========================================
   「過去のニュースを見る」ボタンの設定
========================================== */
.newslist .more a {
  display: inline-block;            /* ボタンとしての形を作れるようにする設定 */
  background-color: #005aba;        /* 背景色を青色に */
  color: #ffffff;                   /* 文字色を白色に */
  text-decoration: none;            /* リンクの標準の下線を消す */
  padding: 8px 40px;               /* 上下・左右の余白でボタンの大きさを調整 */
  border-radius: 30px;              /* 角の丸み */
  font-weight: bold;                /* 文字を太字 */
  box-shadow: 0 3px 6px rgba(0,0,0,0.1); /* 影 */
  transition: all 0.3s ease;        /* アニメーション */
}

/* マウスが乗った時（hover：ホバー）の動き */
.newslist .more a:hover {
  background-color: #00428a;      /* 少し濃い青色に変化させます */
  transform: translateY(-2px);      /* 少しだけ上に浮くような動き */
  text-decoration: none;            /* 下線が出ないようにキープ */
}

/*---------------------------*/
/*ミッション*/
/*----------------------------*/
#mission {
    background: url('../img/wave_white.svg') no-repeat center bottom;
    background-color: #f5f5f5;
    background-color: #f5f7fa;
    padding-bottom: 60px;
}
#mission .container {
    max-width: 1680px;
}

/*見出し*/
#mission .read-headline {
    max-width: 1480px;
    margin: 0 auto;
    margin-bottom: 30px;
}

/*リンク*/
#mission .links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: 140px;
    margin-bottom: 50px;
}
#mission .links img {
    display: block;
    margin-right: 30px;
}
#mission .links a {
    display: inline-block;
    /*16-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 22px;
    padding: 1px 30px 1px 0;
    font-weight: bold;
    text-decoration: none;
    color: #000;
}


/*---------------------------*/
/*overview*/
/*----------------------------*/
#overview {
    background: url('../img/wave_white.svg') no-repeat center bottom;
    background-color: #f5f5f5;
    background-color: #f5f7fa;
    padding-bottom: 60px;
}
#overview .container {
    max-width: 1680px;
}

/*見出し*/
#overview .read-headline {
    max-width: 1480px;
    margin: 0 auto;
    margin-bottom: 30px;
}

/*リンク*/
#overview .links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: 140px;
    margin-bottom: 50px;
}
#overview .links img {
    display: block;
    margin-right: 30px;
}
#overview .links a {
    display: inline-block;
    /*16-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 22px;
    padding: 1px 30px 1px 0;
    font-weight: bold;
    text-decoration: none;
    color: #000;
}

/*プロジェクト紹介*/
.projects {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% + 40px + 80px + 40px);
    margin-left: -80px;
}
.projects .item {
    width: calc((100% / 4) - 50px);
    margin: 0 25px;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.projects .photo {
    min-height: 280px;
    position: relative;
}
.projects img {
    display: block;
    object-fit: cover;
    height: 100%;
}

.projects .photo .caption {
    position: absolute;
    top: 40px;
    left: 10px;
    padding-right: 10px;
    color: #fff;
    line-height: 100%;
    /*24-38*/
    font-size: clamp(1.5rem, 1.325rem + 0.88vw, 2.375rem);
    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
}
.projects .photo .more {
    font-size: clamp(0.875rem, 0.863rem + 0.06vw, 0.938rem);
    position: absolute;
    bottom: 20px;
    right: 10px;
}
.projects .photo .more span {
    background-color:rgba(255,255,255,0.2);
    border: 1px #fff solid;
    display: block;
    max-width: 120px;
    color: #fff;
    padding: 5px 20px;
}

.projects a {
    color: #000;
    overflow: hidden;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.projects a img {
    transition-duration: 0.3s;
}
.projects a:hover img {
    transform: scale(1.1);
    transition-duration: 0.5s;
    opacity: 0.8;
}

.projects dl {
    margin: 0;
    padding: 15px 20px 20px;
}
.projects dt {
    margin-top: 10px;
    margin-bottom: 15px;
    font-weight: bold;
    /*18-20*/
    font-size: clamp(1.125rem, 1.1rem + 0.13vw, 1.25rem);
    line-height: 120%;
}
.projects dd {
    margin: 0;
    /*14-16*/
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    line-height: 140%;
}


/*マルキースクロール*/
#mission .marquee-container {
    max-width: 1480px;
    margin: 50px auto 0;
}

/*マルキースクロール*/
#overview .marquee-container {
    max-width: 1480px;
    margin: 50px auto 0;
}

/* ==========================================
   Policy And Science設定
========================================== */
#PolicyAndScience {
    background: url('../img/wave_white.svg') no-repeat center bottom;
    background-color: #f5f5f5;
    background-color: #f5f7fa;
    padding-bottom: 60px;
}
#PolicyAndScience .container {
    max-width: 1680px;
}

/*見出し*/
#PolicyAndScience .read-headline {
    max-width: 1480px;
    margin: 0 auto;
    margin-bottom: 30px;
}

/*リンク*/
#PolicyAndScience .links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: 140px;
    margin-bottom: 0px;
}
#PolicyAndScience .links_text {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: 140px;
    margin-bottom: 50px;
}
#PolicyAndScience .links_text img {
    display: block;
    margin-right: 30px;
}
#PolicyAndScience .links_text a {
    display: inline-block;
    /*16-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 22px;
    padding: 1px 30px 1px 0;
    font-weight: bold;
    text-decoration: none;
    color: #000;
}

/* ==========================================
   左右の間隔を小さくし、Pickup Dataを枠で囲む設定
========================================== */

/* 1. 全体の横並びの隙間（gap）を直接小さく指定 */
#datacatalog .datacatalog-head {
  display: flex;            /* 横並び (flex)  */
  flex-wrap: wrap;           /* 画面が狭いときは折り返す (wrap) 設定*/
  justify-content: flex-start; /* 左詰めに変更して、隙間をコントロール */
  gap: 2px;                   /* 左右のブロックの間の隙間 */
  width: 100%;
}

/* 2. 隙間（gap）の分を考えて、左右の幅を綺麗に半分ずつにする*/
#datacatalog .head-txt,
#datacatalog .head-side {
  width: calc(50% - 1px);     /* 50%からgapの半分（1px）を引く計算（calc） */
  box-sizing: border-box;     /* 余白を含めて50%に計算させるための宣言 */
  padding: 10px;
}

/* 3. Pickup Dataの周りを枠線（border）で囲み */
#datacatalog .item {
  border: 1px solid #cccccc;   /* 枠線（border）の太さ・種類・色 */
  border-radius: 8px;          /* 枠の角も優しく丸く */
  padding: 15px;               /* 枠線と、中の文字やグラフとの間の余白 */
  background-color: #ffffff;   /* 見やすく枠の中の背景色を白 */
  box-shadow: 0 2px 5px rgba(0,0,0,0.05); /* 影をつけると立体的 */
}

/* （参考）前回の Pickup Data の横並び設定もそのまま活かします */
#datacatalog .pickup-flex {
  display: flex;             /* これも横並び (flex)  */
  align-items: center;       /* 縦方向の真ん中 (center)  */
  width: 100%;
  text-decoration: none;     /* リンクの下線を消す */
  color: inherit;            /* 文字色をそのまま引き継ぐ */
}

#datacatalog .pickup-flex .summary {
  width: 60%;                /* 文字とグラフの割合 */
  box-sizing: border-box;
  padding: 2px;              /* 枠ができたので、内側の余白を調整 */
 }
#datacatalog .pickup-flex .graph {
  width: 40%;                /* 文字とグラフの割合 */
  box-sizing: border-box;
  padding: 2px;              /* 枠ができたので、内側の余白を調整 */
}

#datacatalog .pickup-flex .graph img {
  width: 100%;
  height: auto;
}
 
/*---------------------------*/
/*データカタログ*/
/*----------------------------*/
#datacatalog {
    background-color: #fff;    
    background-image: url('../img/wave_gray.svg'), url('../img/wave_blue.svg');
    background-repeat: no-repeat, no-repeat;
    background-position: center bottom, center bottom;
    padding-bottom: 100px;
    
}
#datacatalog .container {
    max-width: 1680px;
}

/*見出し*/
#datacatalog .read-headline {
    max-width: 1480px;
    margin: 0 auto;
    margin-bottom: 50px;
}

#datacatalog .head-border {
    margin-bottom: 30px;
}
 
#datacatalog .links a {
    display: inline-block;
    /*16-22*/
    font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 22px;
    padding: 1px 30px 1px 0;
    font-weight: bold;
    text-decoration: none;
    color: #000;
}

/*枠*/
.datacatalog-head {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 30px;
}
.datacatalog-head .head-txt {
    flex: 1;
}
.datacatalog-head .head-side {
    width: 35vw;
    max-width: 800px;
    margin-left: 50px;
    border-radius: 10px;
}

/*イメージ動画*/
.video {
    position: relative;
}
.video .moviebox {
    width: 100%;
    margin: 0 auto;
    border-radius: 15px;
    overflow: hidden;
}
.video video {
    min-width: 100%;
    min-height: 100%;
    display: block;
} */


/*カウント*/
.countitem {
    position: absolute;
    left: 0;
    bottom: 0;
    background-color: #fff;
    border-top-right-radius: 20px;
    width: 60%;
    padding: 20px 10px 0;
}
.countitem dl {
    text-align: center;
    margin: 0;
}
.countitem dt {
    margin-bottom: 10px;
    /*16-20*/
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);

    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
    line-height: 120%;
}
.countitem dd {
    margin: 0;
}
.countitem .small {
    color: #ccc;
    text-align: center;
    font-size: clamp(0.75rem, 0.725rem + 0.13vw, 0.875rem);
    line-height: 100%;
}

/* 「＋」用アニメーション */
.countitem .counter {
    min-height: 60px;
    /*32-56*/
    font-size: clamp(2rem, 1.7rem + 1.5vw, 3.5rem);
    font-family: "Vazirmatn", sans-serif;
    font-weight: 500;
    line-height: 100%;
}
.countitem .counter span {
    opacity: 0;
    margin-left: 3px;
    transition: opacity 0.8s ease;
    position: relative;
    top: -5px;
    /*26-48*/
    font-size: clamp(1.625rem, 1.35rem + 1.38vw, 3rem);
  }
.countitem .counter span.show {
    opacity: 1;
  }


/*ピックアップデータ*/
.catalogs {
    display: flex;
    flex-wrap: wrap;
}
.catalogs .item {
    width: calc(100% / 4);
    margin: 0 0 -1px -1px;
    padding: 20px;
    background-color: #fff;
    border: 1px #ddd solid;
}
.catalogs a {
    color: #000;
    overflow: hidden;
    text-decoration: none;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.catalogs a img {
    transition-duration: 0.3s;
}
.catalogs a:hover img {
    transform: scale(1.1);
    transition-duration: 0.5s;
    opacity: 0.8;
}

.catalogs .graph {
    padding: 10px;
    max-height: 240px;
    min-height: 240px;
}
.catalogs img {
    display: block;
    object-fit: cover;
    height: 100%;
    margin: 0 auto;
}

.catalogs .summary {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 15px 15px 0;
}

.catalogs dl {
    margin: 0 0 20px;
}
.catalogs dt {
    margin-top: 10px;
    margin-bottom: 15px;
    font-weight: bold;
    /*16-20*/
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
    line-height: 100%;
}
.catalogs dd {
    margin: 0;
    /*14-16*/
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    line-height: 140%;
}
.catalogs dd~dd {
    margin-top: 10px;
}

.catalogs .more {
    text-align: center;
    margin-top: auto;
}
.catalogs .more span {
    display: inline-block;
    /*14-16*/
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    line-height: 100%;
    background:url("../img/icon_arrow_b.png") no-repeat right center;
    background-size: 18px;
    padding: 1px 24px 1px 0;
    font-weight: bold;    
}



/****************************/
/*レスポンシブ*/
/****************************/
@media screen and (max-width: 1800px) {
    .projects {
        width: calc(100% + 40px + 40px);
        margin-left: -40px;
    }
}
@media screen and (max-width: 1379px) {
    .projects {
        width: 100%;
        margin-left: 0;
    }
    .projects .item {
        width: calc((100% / 4) - 30px);
        margin: 0 15px;
    }
}
@media screen and (max-width: 1279px) {
    .projects .item {
        width: calc((100% / 2) - 50px);
        margin: 0 25px 25px;
    }
    .projects img {
        width: 100%;
        object-fit: cover;
    }

    #mission .links {
        margin-left: 40px;
        margin-bottom: 50px;
    }
    #mission .links img {
        max-width: 80px;
        margin-right: 30px;
    }

    #overview .links {
        margin-left: 40px;
        margin-bottom: 50px;
    }
    #overview .links img {
        max-width: 80px;
        margin-right: 30px;
    }

    #datacatalog .read-headline {
        margin-bottom: 30px;
    }

    .video .moviebox {
        max-height: 300px;
    }

    .catalogs .item {
        width: calc(100% / 3);
    }
}

@media screen and (max-width: 979px) {
    
    .container {
        padding: 20px;
    }

    #cover .vision {
        padding: 50px 10px 30px;
    }
    .topnavi li {
        width: 180px;
        height: 180px;
        margin: 0 30px;
    }

    .topics .topics-item {
        width: calc((100% / 2) - 40px);
        margin: 0 20px;
    }
    .topics dl {
        padding: 0 20px;
    }

    .projects .item {
        width: calc((100% / 2) - 30px);
        margin: 0 15px 25px;
    }

    .countitem {
        padding: 20px 10px 0;
    }

    #mission .links {
        margin-left: 20px;
    }
    #overview .links {
        margin-left: 20px;
    }
    #datacatalog .links {
        margin-left: 20px;
    }
    #mission .links img {
        max-width: 60px;
        margin-right: 20px;
    }
    #overview .links img {
        max-width: 60px;
        margin-right: 20px;
    }

    .catalogs .item {
        padding: 10px 10px 20px;
    }
    .catalogs .graph {
        max-height: 200px;
        min-height: 200px;
    }
    .catalogs .summary {
        padding: 10px;
    }
}

@media screen and (max-width: 779px) {

    .topnavi li {
        width: 160px;
        height: 160px;
        margin: 0 20px;
    }
    .topnavi li img {
        max-width: 60px;
        margin-bottom: 10px;
    }


    #news .read-headline {
        margin-bottom: 40px;
    }
    .topics {
        flex-direction: column;
    }
    .topics .topics-item {
        width: 100%;
        margin: 0;
        padding: 15px;
        background-color: #f7f7f7;
    }
    .topics .topics-item~.topics-item {
        margin-top: 10px;
    }
    .topics a {
        display: flex;
        flex-wrap: wrap;
    }
    .topics .photo {
        width: 180px;
        height: auto;
        margin-right: 30px;
    }
    .topics img {
        height: auto;
    }
    .topics dl {
        flex: 1;
        margin: 0;
        padding: 0;
    }
    .topics dt {
        margin-bottom: 10px;
    }

    .newslist dl {
        align-items: center;
        padding: 10px 10px;
    }
    .newslist dt {
        flex-direction: column;
        width: 100px;
        margin-right: 20px;
        align-items: center;
    }
    .newslist .category {
        margin: 5px 0;
    }

    .datacatalog-head .head-side {
        margin-left: 30px;
    }
    #mission .links {
        margin-left: 10px;
    }
    #overview .links {
        margin-left: 10px;
    }
    #datacatalog .links {
        margin-left: 10px;
    }
    #mission .links img {
        max-width: 60px;
        margin-right: 20px;
    }
    #overview .links img {
        max-width: 60px;
        margin-right: 20px;
    }

    .catalogs .item {
        width: calc(100% / 2);
    }
}


@media screen and (max-width: 579px) {

    #license {
        right: 0;
        width: 100%;
        text-align: center;
    }

    #cover {
        padding-bottom: 20px;
    }

    .topnavi ul {
        justify-content: space-around;
    }
    .topnavi li {
        width: 120px;
        height: 120px;
        margin: 0 10px;
    }
    .topnavi li img {
        max-width: 50px;
    }


    .topics .photo {
        width: 120px;
        margin-right: 20px;
    }
    .topics dt {
        margin-top: 0;
    }
    .topics dd {
        font-size: 1rem;
        line-height: 140%;
    }

    .newslist dl {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px;
    }
    .newslist dl~dl {
        margin-top: 10px;
    }
    .newslist dt {
        flex-direction: row;
        width: auto;
        margin-right: 0;
        margin-bottom: 10px;
    }
    .newslist .category {
        margin: 0 0 0 20px;
    }
    .newslist dd a {
        font-weight: normal;
    }

    .projects .item {
        width: 100%;
        max-width: 440px;
        margin: 0 auto;
        box-shadow: none;
    }
    .projects .item~.item {
        margin-top: 30px;
    }
    .projects .photo {
        max-height: 200px;
        min-height: auto;
    }

    .projects .photo .caption {
        top: 40px;
        left: 20px;
        padding-right: 10px;
    }
    .projects .photo .more {
        bottom: 20px;
        right: 20px;
    }

    .marquee-container {
        display: none;
    }

    #datacatalog {
        padding-bottom: 20px;
    }
    .datacatalog-head {
        flex-direction: column;
        margin-bottom: 10px;
    }
    .datacatalog-head .head-txt {
        width: 100%;
    }
    .datacatalog-head .head-side {
        width: 100%;
        max-width: 520px;
        margin: 30px auto;
    }

    .video {
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .countitem {
        width: 100%;
        max-width: 300px;
        left: auto;
        bottom: auto;
        padding: 10px;
        border-radius: 10px;
    }

    .catalogs {
        flex-direction: column;
    }
    .catalogs .item {
        width: 100%;
        margin: 0;
        padding: 0;
        border-width: 0;
        padding-bottom: 10px;
        border-bottom: 1px #ddd solid;
    }
    .catalogs .item~.item {
        margin-top: 20px;
    }
    .catalogs .item a {
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
    }

    .catalogs .graph {
        width: 45%;
        margin: 0 20px 0 0;
        padding: 0;
        max-height: auto;
        min-height: auto;
    }
    .catalogs img {
        height: auto;
    }
    .catalogs .summary {
        flex: 1;
        padding: 0;
    }

    .catalogs dt {
        margin-top: 10px;
        margin-bottom: 10px;
    }
    .catalogs dd~dd {
        margin-top: 0;
    }

    .countitem .counter {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}


@media screen and (max-width: 379px) {

    .container {
        padding: 10px;
    }

    .topnavi {

        margin-bottom: 30px;
    }
    .topnavi li {
        width: 130px;
        height: 130px;
        margin: 0 10px;
    }
    .topnavi li img {
        max-width: 50px;
    }

    .topics a {
        flex-direction: column;
    }
    .topics .topics-item {
        padding: 10px;
    }
    .topics .topics-item~.topics-item {
        margin-top: 20px;
    }
    .topics .photo {
        width: 100%;
        margin-right: 0;
        margin-bottom: 20px;
    }
    .topics dt {
        margin: 0 0 10px;
    }

    .catalogs .graph {
        margin-right: 10px;
        width: 30%;
    }
}
/* ==========================================
   数字ブロック (.countitem) を動画の左下に重ねる設定
========================================== */

/* 1. 動画の枠（.video）設定 */
#datacatalog .video {   
  position: relative; /* 基準点 にする */
}

/* 2. 数字のブロック（.countitem）を「絶対配置」し重ねる */
#datacatalog .countitem {
  position: absolute; /* 絶対配置 (absolute) */
  left: -5px;         /* 左端からの隙間  */
  bottom: -5px;       /* 下端からの隙間 */
  z-index: 10;        /* 動画よりも手前（前面）に表示設定 */
  padding: 10px;        /*上下内側余白*/
  border-radius: 10px; /* 角の丸み 設定 */

  background-color: rgba(255, 255, 255, 0.8); 
}

/* ==========================================
   「データカタログを見る」ボタンを右端に寄せる設定
========================================== */
#datacatalog .links {
  display: flex;
  justify-content: center;   /*中央、 flex-end：中身を右端に寄せ、 flex-start;：左揃え（初期値・先頭寄せ）*/
  align-items: center;       /* 矢印画像と文字の縦の中心 */
  margin-top: 20px;          /* 外側間隔*/
  width: 100%;               /* Pickup Dataと同じ横幅広げ */
}

/* もし画像と文字の隙間が */
#datacatalog .links img {
  max-width: 60px;            /* 画像のサイズ */
  margin-right: 10px;         /* 画像の右側隙間 */
}
#datacatalog dt {
    margin-top: 10px;
    margin-bottom: 15px;
    font-weight: bold;
    /*16-20*/
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
    line-height: 100%;
}
#datacatalog dd {
    margin: 0;
    /*14-16*/
    font-size: clamp(0.875rem, 0.85rem + 0.13vw, 1rem);
    line-height: 140%;
}
#datacatalog dd~dd {
    margin-top: 10px;
}
/* ==========================================
   Pickup Dataの「詳細を見る」に矢印アイコンをつける設定
========================================== */
#datacatalog .pickup-flex .more span {
  display: inline-block;
  
  /* 背景 として矢印画像を呼び出し */
  background: url("../img/icon_arrow_b.png") no-repeat right center;
  background-size: 18px; /* アイコンのサイズ */
  
  /* アイコンと文字が重ならないように、右側に隙間設定 */
  padding-right: 24px; 
  
  font-weight: bold; /* 文字を太字 */
}

/* 詳細を見る、を右寄せ*/
#datacatalog .pickup-flex .more {
  text-align: right;
  margin-top: 10px;
}

/* ==========================================
   数字（カウンター）の文字の大きさを守るための設定
========================================== */
#datacatalog .countitem .counter {
  font-size: clamp(2rem, 1.7rem + 1.5vw, 3.5rem); 
  
  font-family: "Vazirmatn", sans-serif; /* フォントの種類をキープ */
  font-weight: 500;                     
  line-height: 100%;                    /* 縦の隙間を揃える */
}