@charset "UTF-8";

/*共通部分-------------------------------------------------------------*/

/*!
 * ress.css 窶｢ v4.0.0
 * MIT License
 * github.com/filipelinhares/ress
 */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4
}

*,
:after,
:before {
  background-repeat: no-repeat;
  box-sizing: inherit
}

:after,
:before {
  text-decoration: inherit;
  vertical-align: inherit
}

* {
  padding: 0;
  margin: 0
}

hr {
  overflow: visible;
  height: 0;
  color: inherit
}

details,
main {
  display: block
}

summary {
  display: list-item
}

small {
  font-size: 80%
}

[hidden] {
  display: none
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted
}

a {
  background-color: transparent
}

a:active,
a:hover {
  outline-width: 0
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace
}

pre {
  font-size: 1em
}

b,
strong {
  font-weight: bolder
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}

sub {
  bottom: -.25em
}

sup {
  top: -.5em
}

table {
  border-color: inherit;
  text-indent: 0
}

input {
  border-radius: 0
}

[disabled] {
  cursor: default
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto
}

[type=search] {
  /* -webkit-appearance: textfield; */
  outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none
}

textarea {
  overflow: auto;
  resize: vertical
}

button,
input,
optgroup,
select,
textarea {
  font: inherit
}

optgroup {
  font-weight: 700
}

button {
  overflow: visible
}

button,
select {
  text-transform: none
}

[role=button],
[type=button],
[type=reset],
[type=submit],
button {
  cursor: pointer;
  color: inherit
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
  border-style: none;
  padding: 0
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button:-moz-focusring {
  outline: 1px dotted ButtonText
}

/* [type=reset],
[type=submit],
button,
html [type=button] {
  -webkit-appearance: button
} */

button,
input,
select,
textarea {
  background-color: transparent;
  border-style: none
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline-width: 0
}

/* select {
  -moz-appearance: none;
  -webkit-appearance: none
} */

select::-ms-expand {
  display: none
}

select::-ms-value {
  color: currentColor
}

legend {
  border: 0;
  color: inherit;
  display: table;
  white-space: normal;
  max-width: 100%
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit
}

img {
  border-style: none
}

progress {
  vertical-align: baseline
}

[aria-busy=true] {
  cursor: progress
}

[aria-controls] {
  cursor: pointer
}

[aria-disabled=true] {
  cursor: default
}

/*終了ress-minの中身  */

body {
  font-family: proxima-nova, sans-serif;
  line-height: 1.6;
  color: #0f0f0f;
}

html {
  width: 100%;
}

/*----new header------*/
.header {
  background-color: #0e2262;
  position: sticky;
  z-index: 10000;
  top: 0;
  width: 100%;
  transition: background-color 0.2s;
  min-height: 60px;
}

.header__wrapper {
  height: 60px !important;
  display: flex !important;
  margin: 0 1vw !important;
  align-items: center; /* ← 垂直位置安定 */
}

.header__wrapper img {
  object-fit: cover;
}

.header__menu {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 0 auto;
  flex-wrap: nowrap;
  z-index: 999999;
}

.logo {
  width: 90px;
  /* height: 75%; */
  margin: 9px;
  height: 45px; /* 明示指定で高さシフト防止 */
}

.header__item {
  font-size: 20px;
  color: #fff;
  font-family: Helvetica;
  margin: 0 10px;
  /* ★ 修正 (margin: auto 10px; -> 0 10px;) */
  align-items: center;
  display: flex;
  /* ★ 追加 (ホバーから移動) */
  height: 60px;
  /* ★ 追加 (ホバーから移動) */
}

.header__item a {
  margin: 3px;
  text-decoration: none;
  color: #fff;
  display: flex;
}

.header__item:hover {
  background-color: #002291;
  /* ★ height と display を削除 (リフロー回避) */
}

.header__item_a {
  margin-right: 8px;
}

.action {
  background-color: black;
  height: 60px;
  display: flex;
  padding: 10px;
}

/*----new header end------*/

/*----new SP header------*/
/* Responsive styles */
@media (max-width: 768px) {

  /*----new SP header------*/
  .header__wrapper {
    display: block !important;
    margin: 0 0 !important;
  }

  /* .header__menu {
    top: 80px;
    height: 80px;
    background-color: #0e2262;
    padding-top: 10px;
    overflow-x: auto;
    justify-content: unset;
  } */

   .header__menu {
    height: 80px; /* ← 開閉アニメ時も高さ一定 */
    min-height: 80px;
    background-color: #0e2262;
    justify-content: unset;
    overflow-x: auto;
  }

  .hamburger-menu img {
    width: 30px;
    height: 20px;
  }
  .header__menu.active {
    display: flex;
  }

  .header__item {
    text-align: center;
  }

  .hamburger-menu {
    position: absolute;
    width: 10%;
  }

  .logo {
    width: 80px;
    height: 40px; /* ← スマホ時も高さ固定 */
  }

  .logo-link {
    left: 40%;
    position: absolute;
  }

  .close-menu {
    margin-left: 10px !important;
    position: absolute;
  }
}

/*----new SP  header end------*/
.header-wrapper a {
  color: #fff;
  list-style: none;
  text-decoration: none;
}

.mobile-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #0e2262;
  padding: 10px 5px;
  height: 60px;
}

/* ハンバーガーメニューのスタイル */
.hamburger-menu {
  display: block;
  cursor: pointer;
  align-items: center;
  margin: 9px;
  margin-top: 15px;
}

.hamburger-menu img {
  height: 20px;
  width: 30px;
}

/* 国選択メニュー */
.country-menu {
  contain: layout paint; /* ← 追加推奨 */
  display: none;
  flex-direction: column;
  position: fixed;
  top: 60px;
  /* ヘッダーの高さ分下にずらす */
  width: 300px;
  height: 100%;
  background-color: rgba(14, 34, 98, 0.99);
  padding: 20px;
  align-items: left;
  justify-content: top;
  overflow-y: auto;
  max-height: 1000px;
  /* ★ 修正 (パフォーマンスのため transform に変更) */
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
}

/* メニューを開いた時 */
.country-menu.active {
  display: flex;
  /* ★ 修正 (transform に変更) */
  transform: translateX(0);
}

/* 閉じるボタンのスタイル */
.close-menu {
  display: none;
  cursor: pointer;
  text-align: right;
  margin: 9px;
  margin-top: 15px;
  margin-left: 120px;
}

.close-menu img {
  height: 30px;
  width: auto;
}

.close-menu.active {
  display: block;
}

/* 国選択メニューのリスト */
.country-list {
  list-style: none;
  margin: 10px 10px;
  margin-bottom: 100px;
  text-align: center;
}

.country-list li {
  margin: 10px 0;
}

.country-list a {
  text-decoration: none;
  font-size: 16px;
  color: white;
  font-weight: bold;
  display: block;
  padding: 5px;
  text-align: left;
}

.country-list a:hover {
  background: rgba(255, 255, 255, 0.5);
}

/* ナビゲーションメニューのスタイル */
/* ★ 削除 (重複定義) 
.header__menu {
  display: flex;
}
*/

.top-head1 {
  display: flex;
  justify-content: space-between;
  width: 90%;
  margin: 0 auto;
}

.top-head2 {
  width: 80%;
  margin: 0 auto;
  text-align: left;
}

.gnavi__lists {
  display: flex;
  text-decoration: none;
  list-style: none;
  width: 80%;
  white-space: nowrap;
}

.top-btn {
  background-color: #d90000;
  padding: 5px;
  border-radius: 5px;
}

.list_right {
  padding-left: 10px;
}

.gnavi {
  margin: 10px;
}

/* ハンバーガーメニュー追加予定 */
.first-view {
  width: 100%;
}

.top-ad {
  width: 700px;
  height: 100px;
  margin: 0 auto;
}

/* .first-view-article {
  display: flex;
  width: 60%;
  margin: 5px auto;
  height: 430px;
  justify-content: center;
  background-image: url("../img/top-gmlme.webp");
  background-size: cover;
  position: relative;
  margin-top: 20px;
} */


/* .first-view-article {
  display: flex;
  width: 60%;
  margin: 5px auto;
  height: 430px;
  justify-content: center;
  background-image: url("../img/top-gmlme.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat; 
  position: relative;
  margin-top: 20px;
  overflow: hidden; 
} */

.first-view-article {
  position: relative;
  width: 60%;
  margin: 20px auto;
  height: 430px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  contain: layout paint; /* ← 追加推奨 */
}

.first-view-article .hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

/* 
.first-view-article a {
  position: absolute;
  bottom: 0;
  z-index: 9999;
  padding-bottom: 30px;
  color: #fff;
  font-weight: 700;
  text-align: left;
  width: 96%;
  text-shadow: #000 1px 0 10px;
  text-decoration: none;
} */

/* タイトル（位置の瞬間移動を防ぐ） */
.first-view-article a {
  position: absolute;
  bottom: 0;
  left: 2%;
  z-index: 2;
  padding-bottom: 30px;
  color: #fff;
  font-weight: 700;
  text-align: left;
  width: 96%;
  text-shadow: #000 1px 0 10px;
  text-decoration: none;
}

.top-title {
  width: 84%;
  margin: 0 auto;
}

/* .mid-ad {
  width: 30%;
  height: 50px;
} */

.mid-ad {
  width: 30%;
  height: 50px;
  min-height: 50px; /* ← 初期から確保しておく */
  background-color: transparent;
}

.main {
  max-width: 100%;
  float: left;
  overflow: hidden;
}

.main-wrapper {
  display: flex;
  width: 80%;
  margin: 0 auto;
  contain: layout paint; /* ← 追加推奨 */
}

.sidebar {
  width: 100%;
  max-width: 300px;
  align-items: baseline;
  contain: layout paint; /* ← 追加推奨 */
}

.main-article-title {
  width: 100%;
  max-width: 2000px;
  margin: 0 auto;
}

.title {
  color: #0e2262;
  border-bottom: solid 6px #d90000;
  font-weight: 700;
}

.main-article {
  padding-top: 10px;
  width: 100%;
  /* display: flex; */
  margin: 0 auto;
}

.article-item {
  display: flex;
  align-items: center;
}

.article-item__title {
  color: #0f0f0f;
  text-decoration: none;
}

.article-item__img_sp {
  /* aspect-ratio: 4 / 3; */
  object-fit: cover;
}

.article-item__img_pc {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.article-category {
  background-color: #d90000;
  color: #fff;
  text-decoration: none;
}

.article-item__info {
  padding-left: 5px;
}

.special-article-wrapper li {
  text-decoration: none;
  list-style: none;
}

.aside {
  margin-right: 10px;
  overflow: hidden;
}

.rank_item_img {
  float: left;
  position: relative;
}

.rank-text {
  position: absolute;
  text-align: center;
  font-family: opensans-bold;
  color: #fff;
  opacity: 0.8;
  text-transform: uppercase;
  width: 26px;
  font-size: 18px;
  z-index: 3;
  left: -9%;
  top: 1%;
  width: 30px;
}

.rank-mark {
  position: absolute;
  width: 30px;
  height: 30px;
  border: 15px solid #bd2414;
  border-right-color: transparent;
  border-bottom-color: transparent;
}

.article_ranking_sidebar {
  background-color: #e0e0e0;
  padding: 30px;
  margin-left: 10px;
}

.rank-item_title {
  text-decoration: none;
  font-size: 10px;
  height: 40px;
  line-height: 1.2;
  color: #000;
  padding-left: 10px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  /* -webkit-line-clamp: 2; */
}

.rank-item_title a {
  overflow: hidden;
  margin-left: 25px;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rank-item {
  font-size: 12px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  /* -webkit-line-clamp: 2; */
  align-items: center;
}

.content-area {
  width: 100%;
}

.tags-title {
  text-align: center;
}

.sstitle-listing {
  font-size: 0.8rem;
}

.slidebar-ad {
  display: flex;
  margin-left: 40px;
  margin-right: 20px;
}

.slidebar-ad-sp {
  display: none;
}

.footer-section {
  background-color: #0e2262;
}

footer {
  width: 100%;
  background-color: #0e2262;
  padding: 50px;
}

footer a {
  color: #fff;
  list-style: none;
  text-decoration: none;
}

.footer-left {
  width: 80%;
  margin: 0 auto;
  justify-content: space-between;
  padding-top: 25px;
}

.bottom-category {
  text-decoration: none;
  list-style: none;
  max-width: 80%;
  color: #fff;
  text-align: left;
  flex-wrap: wrap;
}

/* ★ 削除 (重複定義)
.footer a {
  color: #fff;
  text-decoration: none;
  list-style: none;
}
*/

.sns {
  display: flex;
  list-style: none;
  width: 80%;
  margin: 0 auto;
  text-align: left;
  padding-top: 10px;
}

/* ★ 削除 (重複定義)
.footer-left {
  width: 80%;
}
*/

.sns a {
  color: #fff;
  text-decoration: none;
  width: 100%;
}

.sns-list-right {
  padding-left: 10px;
}

.copyrights {
  text-align: center;
  color: #fff;
  padding-bottom: 5px;
}

.special-article-wrapper {
  padding: 30px;
}

.special-article-wrapper h3 {
  color: #000;
  font-size: 14px;
}

.special-article-wrapper a {
  text-decoration: none;
  list-style: none;
}

@media screen and (max-width: 1400px) {
  .article-item__title {
    color: #0f0f0f;
    text-decoration: none;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    /* -webkit-line-clamp: 2; */
  }
}

@media screen and (max-width: 1100px) {
  .main-article {
    display: block;
  }

  .article-item__img_pc {
    display: none;
  }

  .article-item__img_sp {
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }
}

@media only screen and (min-width: 1129px) {
  .rank-item_title {
    font-size: 12px;
  }
}

@media screen and (max-width: 768px) {
  .sidebar {
    display: flow-root;
    max-width: 100% !important;
  }

  .main-wrapper {
    display: block;
  }

  /* .first-view-article {
    width: 100%;
    height: 250px;
    background-size: center;
    margin-top: 70px !important;
  } */
   .first-view-article {
    width: 100%;
    height: 250px;
    background-position: center center; /* ← center指定に修正 */
    background-size: cover; /* ← 正しいプロパティに変更 */
    margin-top: 70px !important;
    min-height: 250px; /* ← 明示的に高さ確保 */
  }

  .slidebar-ad {
    display: none;
  }

  .slidebar-ad-sp {
    margin-top: 5px;
    display: flex;
    background-size: center;
    text-align: center;
  }

  .special-article-wrapper {
    padding: 5px;
  }

  .article-item {
    border: #e0e0e0 solid 1px;
    margin: 5px;
  }

  .article-item a {
    font-size: 12px;
  }

  .article_ranking_sidebar {
    margin-left: 0;
  }

  .rank_item_img {
    min-height: 60px;
    min-width: 100px;
  }

  .rank-item {
    background-color: #fff;
    padding: 10px;
    min-height: 80px;
  }

  span {
    font-size: 14px;
  }

  .ssthumb-listing {
    width: 50%;
    float: left;
  }

  .bottom-list-right {
    padding-left: 0px;
  }

  /* 終了追加　20240318 */
}

@media screen and (max-width: 479px) {
  .ssthumb-listing {
    width: 100%;
    text-align: center;
  }

  .special-article-wrapper {
    width: 100%;
  }

  .gnavi__lists {
    display: flex;
    text-decoration: none;
    list-style: none;
    width: 100%;
    overflow: scroll;
    white-space: nowrap;
  }

  footer {
    padding: 20px;
  }
}