﻿/* ======================================================================
   【1. CSS基本変数定義 (:root)】
   ----------------------------------------------------------------------
   旧デザイン編集内のHTMLから移行。カラー、フォント、レイアウト変数を統合。
   ====================================================================== */
:root {
  /* カラー定義（RGBの数値のみで指定することで rgba(var(--...), 0.7) が正常に動作します） */
  --color-base-text: 0, 0, 0; /* 黒 */
  --color-base-background-1: 255, 255, 255; /* 白 */
  --color-base-background-2: 248, 248, 248; /* 薄いグレー */
  --color-base-accent-1: 194, 32, 71; /* コーポレート赤: #c22047 */
  --color-base-accent-2: 221, 131, 153; /* ピンク: #dd8399 */
  --color-base-solid-button-labels: 255, 255, 255;
  --color-base-outline-button-labels: 194, 32, 71;

  --color-foreground: var(--color-base-text);
  --color-background: var(--color-base-background-1);
  --color-shadow: 0, 0, 0;
  --color-link: var(--color-base-outline-button-labels);
  --color-button: var(--color-base-accent-1);
  --color-button-text: var(--color-base-solid-button-labels);

  /* フォント & 基本サイズ設定 */
  --font-body-family: "Noto Sans JP", sans-serif;
  --font-heading-family: "Noto Sans JP", sans-serif;
  --font-body-scale: 1.0;
  --font-heading-scale: 1.0;
  --font-body-style: normal;
  --font-body-weight: 400;
  --font-heading-style: normal;
  --font-heading-weight: 700;

  /* レイアウト幅 */
  --page-width: 120rem;
  --page-width-margin: 0rem;
  --spacing-sections-mobile: 5rem;
  --spacing-sections-desktop: 10rem;
  
  /* グリッドスペース */
  --grid-mobile-horizontal-spacing: 1.5rem;
  --grid-mobile-vertical-spacing: 1.5rem;
  --grid-desktop-horizontal-spacing: 3rem;
  --grid-desktop-vertical-spacing: 3rem;

  /* コンポーネント基本設定 */
  --buttons-border-width: 1px;
  --buttons-border-opacity: 1;
  --buttons-radius: 10px;
  --buttons-radius-outset: 10px;
  --buttons-shadow-opacity: 0;
  --buttons-shadow-horizontal-offset: 0px;
  --buttons-shadow-vertical-offset: 0px;
  --buttons-shadow-blur-radius: 0px;
  --border-offset: 0px;
  --border-opacity: 1;

  --inputs-border-width: 1px;
  --inputs-border-opacity: 0.2;
  --inputs-radius: 5px;
  --inputs-radius-outset: 5px;
  --inputs-shadow-opacity: 0;
  --inputs-shadow-horizontal-offset: 0px;
  --inputs-shadow-vertical-offset: 0px;
  --inputs-shadow-blur-radius: 0px;
  --inputs-margin-offset: 0px;

  --popup-corner-radius: 10px;
  --popup-border-width: 1px;
  --popup-border-opacity: 0.15;
  --popup-shadow-opacity: 0.15;
  --popup-shadow-horizontal-offset: 0px;
  --popup-shadow-vertical-offset: 4px;
  --popup-shadow-blur-radius: 10px;
}

/* ======================================================================
   【2. 元の common.css 基本レイアウト & リセットコード】
   ====================================================================== */
* {
  margin: 0;
  padding: 0;
  word-wrap: break-word;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.font_en {
  font-family: "Marcellus";
  font-weight: normal;
}

.font_yu {
  font-weight: 500;
}

#adjust body {
  overflow-x: hidden;
}

#adjust body,
#adjust button {
  color: #000;
}

#adjust img {
  vertical-align: top;
}

#adjust li {
  list-style: none;
}

#adjust button {
  background-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}

a {
  color: #000;
}

a:hover,
a:focus {
  text-decoration: none;
}

/* Layout & Main Sections */
.main {
  padding-bottom: 6rem;
}

@media only screen and (min-width: 1008px) {
  .main {
    padding-bottom: 10rem;
  }
}

@media only screen and (min-width: 1440px) {
  .main {
    padding-bottom: 15rem;
  }
}

@media screen and (min-width: 1640px) {
  .page-width-wide {
    margin-right: -3rem;
    margin-left: -3rem;
  }
}

.section + .section {
  margin-top: 7rem;
}

@media only screen and (min-width: 1008px) {
  .section + .section {
    margin-top: 10.2rem;
  }
}

#MainContent {
  min-height: calc(100vh - 70px - 614px);
}

@media only screen and (min-width: 1008px) {
  #MainContent {
    min-height: calc(100vh - 130px - 256px);
  }
}

.announcement-bar-true #MainContent {
  min-height: calc(100vh - 70px - 614px - 38px);
}

@media only screen and (min-width: 1008px) {
  .announcement-bar-true #MainContent {
    min-height: calc(100vh - 130px - 256px - 38px);
  }
}

#adjust .page-width {
  max-width: 1620px;
  /* padding-right: 1.5rem;
  padding-left: 1.5rem; */
}

@media only screen and (min-width: 768px) {
  #adjust .page-width {
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  #adjust .page-width {
    padding-right: 6rem;
    padding-left: 6rem;
  }
}

/* Columns */
[class*=column-0] {
  display: grid;
}

.column_slim {
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}

[class*=column-02_separate] {
  gap: 1.5rem;
}

@media only screen and (min-width: 768px) {
  [class*=column-02_separate] {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  [class*=column-02_separate] {
    gap: 6rem;
  }
}

[class*=column-02_separate] .title_02-01 {
  margin-top: 0;
}

[class*=column-02_separate] + [class*=column-02_separate] {
  margin-top: 6.5rem;
}

@media only screen and (min-width: 1008px) {
  [class*=column-02_separate] + [class*=column-02_separate] {
    margin-top: 8rem;
  }
}

.column-02_separate-01 {
  row-gap: 3rem;
}

@media only screen and (min-width: 768px) {
  .column-02_separate-01 {
    grid-template-columns: 1fr 352px;
    row-gap: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  .column-02_separate-01 {
    row-gap: 6rem;
  }
}

@media screen and (min-width: 1420px) {
  .column-02_separate-01 {
    grid-template-columns: 1fr 620px;
  }
}

.column-02_separate-02 {
  row-gap: 2.5rem;
}

@media only screen and (min-width: 768px) {
  .column-02_separate-02 {
    grid-template-columns: 1fr 352px;
    row-gap: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  .column-02_separate-02 {
    row-gap: 6rem;
  }
}

.column-02_separate-02 .image {
  text-align: center;
  display: block;
}

.column-02_separate-02 .image img {
  max-width: 352px;
}

.column-02_separate-02.reverse {
  grid-template-areas: "b" "a";
}

@media only screen and (min-width: 768px) {
  .column-02_separate-02.reverse {
    grid-template-areas: "a b";
  }
}

.column-02_separate-02.reverse .column-inner:first-child {
  grid-area: a;
}

.column-02_separate-02.reverse .column-inner:last-child {
  grid-area: b;
}

.column-02_separate-03 {
  row-gap: 2.3rem;
}

@media only screen and (min-width: 768px) {
  .column-02_separate-03 {
    row-gap: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  .column-02_separate-03 {
    row-gap: 6rem;
  }
}

@media screen and (min-width: 1380px) {
  .column-02_separate-03 {
    grid-template-columns: 600px 1fr;
  }
}

@media screen and (min-width: 954px) {
  .column-02_separate-04 {
    grid-template-columns: 432px 1fr;
  }
}

.column-02_separate-04 .image {
  max-width: 432px;
  margin-right: auto;
  margin-left: auto;
}

[class*=column-02_separate-05] {
  row-gap: 2.5rem;
}

@media only screen and (min-width: 768px) {
  [class*=column-02_separate-05] {
    row-gap: 3rem;
    align-items: center;
  }
}

@media only screen and (min-width: 1200px) {
  [class*=column-02_separate-05] {
    row-gap: 6rem;
  }
}

[class*=column-02_separate-05] .text {
  padding-right: 1.7rem;
  padding-left: 1.7rem;
}

@media only screen and (min-width: 768px) {
  [class*=column-02_separate-05] .text {
    padding-right: 0;
    padding-left: 0;
  }
}

@media only screen and (min-width: 1200px) {
  .column-02_separate-05-01 {
    grid-template-columns: calc((100% - 6rem) * .589) 1fr;
  }
}

.column-02_separate-05-02 {
  position: relative;
  padding-bottom: 7.9rem;
}

@media only screen and (min-width: 768px) {
  .column-02_separate-05-02 {
    padding-bottom: 0;
  }
}

@media only screen and (min-width: 1200px) {
  .column-02_separate-05-02 {
    grid-template-columns: 1fr calc((100% - 6rem) * .589);
  }
}

.column-02_separate-05-02 .link_button-wrap-01-02 {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
}

@media only screen and (min-width: 768px) {
  .column-02_separate-05-02 .link_button-wrap-01-02 {
    position: static;
  }
}

/* Blocks & Common UI */
.box_text p:not(:last-child) {
  margin-bottom: 2rem;
}

.box_lead-01 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

@media only screen and (min-width: 1008px) {
  .box_lead-01 {
    text-align: center;
    margin-top: 7rem;
    margin-bottom: 8rem;
  }
}

.box_lead-02 {
  display: flex;
  flex-direction: column;
}

.box_lead-02 .image {
  margin-bottom: 3rem;
}

@media only screen and (min-width: 1008px) {
  .box_lead-02 .image {
    order: 1;
    margin-top: 4.1rem;
    margin-bottom: 0;
  }
}

.box_lead-03 {
  padding-bottom: 2.3rem;
  margin-bottom: 2.3rem;
  border-bottom: 1px solid #d6d6d6;
}

@media only screen and (min-width: 1008px) {
  .box_lead-03 {
    padding-bottom: 1.9rem;
    margin-bottom: 5rem;
  }
}

.box_lead-04 {
  margin-top: 2.5rem;
  margin-bottom: 5rem;
}

@media only screen and (min-width: 1008px) {
  .box_lead-04 {
    text-align: center;
    margin-top: 5rem;
    margin-bottom: 10rem;
  }
}

.box_home-01 {
  margin-top: 2.8rem;
  list-style-type: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 24px;
}

@media only screen and (min-width: 1008px) {
  .box_home-01 {
    margin-top: 5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .box_home-01 {
    margin-top: 9.3rem;
  }
}

@media screen and (max-width: 600px) {
  .box_home-01 {
    display: block;
    gap: 0;
  }
}

.box_home-01 p.image {
  width: 30%;
}

.box_home-01 p.image img {
  width: 100%;
}

@media screen and (max-width: 600px) {
  .box_home-01 p.image {
    width: 100%;
  }
  .box_home-01 p:last-child,
  .box_home-01 p:nth-child(2) {
    margin-top: 2rem;
  }
}

.box_home-02 {
  margin-top: 5.5rem;
}

@media only screen and (min-width: 1008px) {
  .box_home-02 {
    margin-top: 10rem;
  }
}

@media only screen and (min-width: 1440px) {
  .box_home-02 {
    margin-top: 10rem;
  }
}

@media only screen and (min-width: 768px) {
  .box_home-02[class*=column-02_separate-05] .image img {
    border-radius: 1rem;
  }
}

.box_home-02 .link_button-wrap-01-02 {
  margin-top: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .box_home-02 .link_button-wrap-01-02 {
    margin-top: 3.5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .box_home-02 .link_button-wrap-01-02 {
    margin-top: 4.5rem;
  }
}

@media screen and (min-width: 1640px) {
  .box_home-02 .link_button-wrap-01-02 {
    margin-top: 6.5rem;
  }
}

.box_home-03 {
  margin-top: 4rem;
}

@media only screen and (min-width: 1008px) {
  .box_home-03 {
    margin-top: 7rem;
  }
}

@media only screen and (min-width: 1440px) {
  .box_home-03 {
    margin-top: 10rem;
  }
}

.box_group:not(:last-child) {
  margin-bottom: 0rem;
  padding-bottom: 3.8rem;
  border-bottom: .1rem dashed #d6d6d6;
}

@media only screen and (min-width: 768px) {
  .box_group:not(:last-child) {
    margin-top: 2.1rem;
    margin-bottom: 2.8rem;
  }
}

@media only screen and (min-width: 1008px) {
  .box_group:not(:last-child) {
    margin-bottom: 5rem;
    padding-bottom: 6rem;
  }
}

.title_02-01 + .box_group-wrap {
  margin-top: 0;
}

@media only screen and (min-width: 768px) {
  .title_02-01 + .box_group-wrap {
    margin-top: 2.1rem;
  }
}

@media only screen and (min-width: 1008px) {
  .title_02-01 + .box_group-wrap {
    margin-top: 4rem;
  }
}

.box_group + .box_group {
  margin-top: 0;
}

.box_margin-01 {
  margin-top: 3.5rem;
}

@media only screen and (min-width: 1008px) {
  .box_margin-01 {
    margin-top: 10rem;
  }
}

.box_margin-02 {
  margin-top: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .box_margin-02 {
    margin-top: 3.5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .box_margin-02 {
    margin-top: 4.5rem;
  }
}

@media screen and (min-width: 1640px) {
  .box_margin-02 {
    margin-top: 6.5rem;
  }
}

@media screen and (min-width: 600px) {
  .box_margin-03 {
    margin-top: 1.5rem;
  }
}

@media only screen and (min-width: 768px) {
  .box_margin-03 {
    margin-top: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  .box_margin-03 {
    margin-top: 6rem;
  }
}

.box_width-full-phone {
  margin-right: -1.5rem;
  margin-left: -1.5rem;
}

@media screen and (min-width: 600px) {
  .box_width-full-phone {
    margin-right: 0;
    margin-left: 0;
  }
}

/* Headings & Titles */
[class*=title_],
.rte h2,
.rte h3,
.article-template__title {
  line-height: 1.5;
}

.title_01,
.article-template__title {
  font-size: 1.5rem;
  margin-top: 2rem;
  padding-left: 2rem;
  position: relative;
}

@media only screen and (min-width: 1008px) {
  .title_01,
  .article-template__title {
    font-size: 2.7rem;
    margin-top: 5.3rem;
    padding-left: 3.2rem;
  }
}

.title_01:before,
.article-template__title:before {
  width: 1rem;
  height: 1rem;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  top: 1.125rem;
  left: .2rem;
  transform: translateY(-50%) rotate(45deg);
}

@media only screen and (min-width: 1008px) {
  .title_01:before,
  .article-template__title:before {
    width: 1.8rem;
    height: 1.8rem;
    top: 2.025rem;
    left: .4rem;
  }
}

.title_01 + * {
  margin-top: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .title_01 + * {
    margin-top: 6.9rem;
  }
}

[class*=title_02],
.rte h2 {
  font-size: 1.6rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #d6d6d6;
}

@media only screen and (min-width: 1008px) {
  [class*=title_02],
  .rte h2 {
    font-size: 2.4rem;
    padding-bottom: 1.4rem;
  }
}

[class*=title_02]:not(:first-child),
.rte h2:not(:first-child) {
  margin-top: 5.5rem;
}

@media only screen and (min-width: 1008px) {
  [class*=title_02]:not(:first-child),
  .rte h2:not(:first-child) {
    margin-top: 9.3rem;
  }
}

.title_02-01,
.rte h2 {
  margin-bottom: 2.1rem;
  padding-left: 1.2rem;
  position: relative;
}

@media only screen and (min-width: 1008px) {
  .title_02-01,
  .rte h2 {
    padding-left: 1.5rem;
  }
}

.title_02-01:before,
.rte h2:before {
  width: .4rem;
  height: 1.6rem;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  top: 1.3rem;
  left: 0;
  transform: translateY(-50%);
}

@media only screen and (min-width: 1008px) {
  .title_02-01:before,
  .rte h2:before {
    width: .5rem;
    height: 2.4rem;
    top: 1.9rem;
  }
}

.title_01 + .title_02-01 {
  margin-top: 2.8rem;
}

@media only screen and (min-width: 1008px) {
  .title_01 + .title_02-01 {
    margin-top: 6.8rem;
  }
}

.title_02-02 {
  margin-bottom: 1.5rem;
}

.title_03,
.rte h3 {
  font-size: 1.6rem;
  margin-bottom: 1.5rem;
}

@media only screen and (min-width: 1008px) {
  .title_03,
  .rte h3 {
    font-size: 2.2rem;
    margin-bottom: 2.1rem;
  }
}

@media only screen and (min-width: 1008px) {
  .title_02-01 + .title_03 {
    margin-top: 4.1rem;
  }
}

.title_04 {
  font-size: 1.3rem;
  margin-bottom: 1.5rem;
}

@media only screen and (min-width: 1008px) {
  .title_04 {
    font-size: 1.9rem;
    margin-bottom: 2.3rem;
  }
}

.title_home-01 {
  font-size: 2rem;
  line-height: 1.65;
  color: #dd8399;
  margin-bottom: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .title_home-01 {
    font-size: 2.7rem;
    margin-bottom: 3.5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .title_home-01 {
    margin-bottom: 4.5rem;
  }
}

@media screen and (min-width: 1640px) {
  .title_home-01 {
    font-size: 3.7rem;
    margin-bottom: 6.5rem;
  }
}

.title_home-02 {
  font-size: 4.9rem;
  margin-bottom: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .title_home-02 {
    font-size: 7.4rem;
    margin-bottom: 4.6rem;
  }
}

.title_home-02 span {
  display: block;
}

.title_home-02 .font_en {
  color: #dd8399;
}

.title_home-02 span:not(.font_en) {
  font-size: 1.1rem;
  font-weight: 500;
}

@media only screen and (min-width: 1008px) {
  .title_home-02 span:not(.font_en) {
    font-size: 1.6rem;
  }
}

.title_home-03 {
  font-size: 3rem;
  text-align: center;
  margin-bottom: 2rem;
}

@media only screen and (min-width: 1008px) {
  .title_home-03 {
    font-size: 3.5rem;
    margin-bottom: 3.6rem;
  }
}

.title_home-03 span {
  display: block;
}

.title_home-03 .font_en {
  color: #dd8399;
}

.title_home-03 span:not(.font_en) {
  font-size: 1.4rem;
  font-weight: 500;
}

@media only screen and (min-width: 1008px) {
  .title_home-03 span:not(.font_en) {
    font-size: 1.6rem;
  }
}

.title_home-04 {
  font-size: 2.1rem;
  font-weight: bold;
  line-height: 1.65;
  margin-bottom: 2rem;
}

@media only screen and (min-width: 1008px) {
  .title_home-04 {
    font-size: 3.2rem;
    margin-bottom: 4.6rem;
  }
}

.title_home-04.font_yu {
  font-weight: 500;
}

.sub-title-01 {
  line-height: 1.5;
  margin-bottom: 1rem;
}

.title_sdgs {
  text-indent: -9999px;
  line-height: .5;
  width: 144px;
  height: 32px;
  background: url(/cms/eos_corporate/assets/images/common/eos-sdgs-logo_2023.png) center/100% no-repeat;
  display: inline-block;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

@media only screen and (min-width: 1008px) {
  .title_sdgs {
    width: 192px;
    height: 43px;
    margin-top: 5.3rem;
    margin-bottom: 5.3rem;
  }
}

/* Signatures & Images */
.signature {
  text-align: right;
  line-height: 1.5;
  margin-top: 3rem;
}

@media only screen and (min-width: 1008px) {
  .signature {
    margin-top: 5rem;
  }
}

.signature .name-01-wrap {
  margin-top: .7rem;
  display: inline-flex;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  .signature .name-01-wrap {
    margin-top: 1rem;
  }
}

.signature .name-01-wrap span:first-child {
  margin-right: 1.7rem;
}

.signature .name-01 {
  text-indent: -9999px;
  text-align: left;
  width: 155px;
  height: 27px;
  background: url(/cms/eos_corporate/assets/images/common/commitment_sign-01.png) center/100% no-repeat;
  display: inline-block;
}

@media only screen and (min-width: 1008px) {
  .signature .name-01 {
    width: 218px;
    height: 38px;
  }
}

[class*=image] a:hover,
[class*=image] a:focus {
  opacity: .6;
}

[class*=image] img {
  width: 100%;
  height: auto;
}

/* Lists */
[class*=list_circle] li {
  font-weight: bold;
  padding-left: 2.2rem;
  position: relative;
}

[class*=list_circle] li:before {
  width: 1.2rem;
  height: 1.2rem;
  border: .2rem solid #c22047;
  border-radius: 50%;
  display: block;
  content: "";
  position: absolute;
  top: 1.4rem;
  left: 0;
  transform: translateY(-50%);
}

@media only screen and (min-width: 1008px) {
  [class*=list_circle] li:before {
    top: 1.8rem;
  }
}

[class*=list_circle] li.column-02_separate-02 + .column-02_separate-02 {
  margin-top: 0;
}

[class*=list_circle] li .text {
  font-weight: normal;
  margin-top: 1.3rem;
  display: block;
}

@media only screen and (min-width: 1008px) {
  [class*=list_circle] li .text {
    margin-top: 1rem;
  }
}

[class*=list_circle] li .image {
  margin-left: -2.2rem;
}

@media only screen and (min-width: 768px) {
  [class*=list_circle] li .image {
    margin-left: 0;
  }
}

.list_circle-01 li:not(:last-child) {
  margin-bottom: 3.1rem;
}

.list_circle-02 li:not(:last-child) {
  margin-bottom: 2rem;
}

@media only screen and (min-width: 1008px) {
  .list_circle-02 li:not(:last-child) {
    margin-bottom: .5rem;
  }
}

p + [class*=list_circle] {
  margin-top: 3rem;
}

@media only screen and (min-width: 1008px) {
  p + [class*=list_circle] {
    margin-top: 4.1rem;
  }
}

.list_sdgs-icon {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 2rem;
}

.list_sdgs-icon li {
  width: 6rem;
}

@media only screen and (min-width: 1008px) {
  .list_sdgs-icon li {
    width: 7.2rem;
  }
}

/* Buttons & Links */
a[class*=link_button] {
  font-weight: 500;
  text-decoration: none;
  letter-spacing: .06rem;
  color: #000;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  a[class*=link_button] {
    font-size: 2rem;
    min-height: 7.8rem;
  }
}

a[class*=link_button]:hover,
a[class*=link_button]:focus {
  opacity: .6;
}

a[class*=link_button] span {
  position: relative;
}

a[class*=link_button] span:after {
  content: "";
  position: absolute;
  top: 50%;
}

a[class*=link_button-01] {
  width: 100%;
  min-height: 5.4rem;
  padding: 1rem 1.5rem;
  background-color: #fcf4f6;
}

@media only screen and (min-width: 768px) {
  a[class*=link_button-01] {
    max-width: 38rem;
  }
}

@media only screen and (min-width: 1008px) {
  a[class*=link_button-02] {
    width: 100%;
    max-width: 38rem;
    min-height: 5.4rem;
    padding: 1rem 1.5rem;
    background-color: #fcf4f6;
  }
}

a.link_button-01-01 span,
a.link_button-02-01 span {
  padding-right: 2rem;
}

@media only screen and (min-width: 1008px) {
  a.link_button-01-01 span,
  a.link_button-02-01 span {
    padding-right: 4rem;
  }
}

a.link_button-01-01 span:after,
a.link_button-02-01 span:after {
  width: 1rem;
  height: 1rem;
  border-right: .2rem solid #c22047;
  border-bottom: .2rem solid #c22047;
  right: .4rem;
  transform: translateY(-50%) rotate(-45deg) skew(15deg, 15deg);
}

@media only screen and (min-width: 1008px) {
  a.link_button-01-01 span:after,
  a.link_button-02-01 span:after {
    width: 2rem;
    height: 2rem;
    border-right: .3rem solid #c22047;
    border-bottom: .3rem solid #c22047;
    right: .8rem;
  }
}

a.link_button-01-02.link_blank span {
  padding-right: 1.9rem;
}

@media only screen and (min-width: 1008px) {
  a.link_button-01-02.link_blank span {
    padding-right: 2.6rem;
  }
}

a.link_button-01-02.link_blank span:after {
  width: 1.3rem;
  height: 1.3rem;
  background: url(/cms/eos_corporate/assets/images/common/icon_blank.png) center/100% no-repeat;
  right: 0;
  transform: translateY(-50%);
}

@media only screen and (min-width: 1008px) {
  a.link_button-01-02.link_blank span:after {
    width: 1.8rem;
    height: 1.8rem;
  }
}

[class*=link_button-wrap] {
  margin-top: 2rem;
}

[class*=link_button-wrap-01] {
  text-align: center;
}

@media only screen and (min-width: 1008px) {
  .link_button-wrap-01-01 {
    margin-top: 3.5rem;
  }
}

@media only screen and (min-width: 768px) {
  .link_button-wrap-01-02 {
    text-align: left;
  }
}

@media only screen and (min-width: 1008px) {
  .link_button-wrap-01-02 {
    margin-top: 3rem;
  }
}

.link_button-wrap-02-01 {
  text-align: right;
}

@media only screen and (min-width: 1008px) {
  .link_button-wrap-02-01 {
    margin-top: 5rem;
    text-align: center;
  }
}

.link_button-wrap-02-02 {
  margin-top: 6rem;
}

@media only screen and (min-width: 768px) {
  .link_button-wrap-02-02 {
    text-align: center;
  }
}

.link_button-wrap-03 {
  margin-top: 0;
  display: flex;
  position: absolute;
  top: 1.8rem;
  right: 7rem;
}

.link_button-wrap-03 p:not(:last-child) {
  margin-right: .5rem;
}

a.link_button-03 {
  font-size: 1rem;
  text-align: center;
  line-height: 1.2;
  color: #4b4c4c;
  padding: .5rem 1rem;
  min-height: 3.4rem;
  border: 1px solid #c22047;
  border-radius: 10px;
}

a.link_button-03:hover,
a.link_button-03:focus {
  opacity: .6;
}

@media only screen and (min-width: 1008px) {
  a.link_button-03 {
    display: none;
  }
}

.link_arrow-01 a {
  font-weight: 500;
  text-decoration: none;
  color: #000;
}

@media only screen and (min-width: 1008px) {
  .link_arrow-01 a {
    font-size: 1.9rem;
  }
}

.link_arrow-01 a:hover,
.link_arrow-01 a:focus {
  opacity: .6;
}

p.link_arrow-01 a,
ul.link_arrow-01 a .text span {
  padding-right: 2rem;
  position: relative;
}

@media only screen and (min-width: 1008px) {
  p.link_arrow-01 a,
  ul.link_arrow-01 a .text span {
    padding-right: 4rem;
  }
}

p.link_arrow-01 a:after,
ul.link_arrow-01 a .text span:after {
  width: 1rem;
  height: 1rem;
  border-right: .2rem solid #c22047;
  border-bottom: .2rem solid #c22047;
  content: "";
  position: absolute;
  top: 50%;
  right: .4rem;
  transform: translateY(-50%) rotate(-45deg) skew(15deg, 15deg);
}

@media only screen and (min-width: 1008px) {
  p.link_arrow-01 a:after,
  ul.link_arrow-01 a .text span:after {
    width: 2rem;
    height: 2rem;
    border-right: .3rem solid #c22047;
    border-bottom: .3rem solid #c22047;
    right: .8rem;
  }
}

.link_arrow-wrap-01 {
  margin-top: 2.2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

@media only screen and (min-width: 768px) {
  .link_arrow-wrap-01 {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

@media only screen and (min-width: 1008px) {
  .link_arrow-wrap-01 {
    margin-top: 4rem;
    align-items: center;
  }
}

.link_arrow-wrap-01 p:not(:last-child) {
  margin-bottom: 1rem;
}

@media only screen and (min-width: 768px) {
  .link_arrow-wrap-01 p:not(:last-child) {
    margin-right: 2.4rem;
    margin-bottom: 0;
  }
}

@media only screen and (min-width: 1008px) {
  .link_arrow-wrap-01 p:not(:last-child) {
    margin-right: 3.4rem;
  }
}

/* Articles */
.link_article-01 {
  border-top: 1px solid #d6d6d6;
}

.link_article-01 li {
  border-bottom: 1px solid #d6d6d6;
}

.link_article-01 a {
  text-decoration: none;
  line-height: 1.5;
  color: #000;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
}

@media only screen and (min-width: 1008px) {
  .link_article-01 a {
    font-size: 2rem;
    min-height: 6.5rem;
  }
}

.link_article-01 a:hover,
.link_article-01 a:focus {
  opacity: .6;
}

.link_article-01 a .date {
  margin-bottom: .7rem;
}

@media only screen and (min-width: 768px) {
  .link_article-01 a .date {
    margin-bottom: 0;
  }
}

@media only screen and (min-width: 1008px) {
  .link_article-01 a .date {
    padding-right: 1rem;
  }
}

.link_article-01 a .text {
  font-weight: bold;
  letter-spacing: .12rem;
}

@media only screen and (min-width: 768px) {
  .link_article-01 a {
    flex-direction: row;
    align-items: center;
  }
  .link_article-01 a .date {
    width: 16rem;
  }
  .link_article-01 a .text {
    width: calc(100% - 16rem);
  }
}

.box_width-full-phone + .link_article-01 {
  margin-top: 3.9rem;
}

@media only screen and (min-width: 1008px) {
  .box_width-full-phone + .link_article-01 {
    margin-top: 5rem;
  }
}

[class*=link_article-02] li > a,[class*=link_article-02] li > span {
  font-weight: 500;
  text-decoration: none;
  line-height: 1.5;
  color: #000;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

@media screen and (min-width: 600px) {
  [class*=link_article-02] li > a,[class*=link_article-02] li > span {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 1.5rem;
  }
}

@media only screen and (min-width: 1008px) {
  [class*=link_article-02] li > a,[class*=link_article-02] li > span {
    gap: 3rem;
  }
}

[class*=link_article-02] li > a span,[class*=link_article-02] li > span span {
  display: flex;
}

[class*=link_article-02] li > a .group,[class*=link_article-02] li > span .group {
  font-size: 1.2rem;
  min-height: 2.4rem;
  padding: .3rem 1.5rem;
  background-color: #f3d2da;
  border-radius: .5rem;
  justify-content: center;
}

@media screen and (min-width: 600px) {
  [class*=link_article-02] li > a .group,[class*=link_article-02] li > span .group {
    width: 13rem;
  }
}

@media only screen and (min-width: 1008px) {
  [class*=link_article-02] li > a .group,[class*=link_article-02] li > span .group {
    font-size: 1.6rem;
    width: 16.8rem;
  }
}

[class*=link_article-02] li > a .date,[class*=link_article-02] li > span .date {
  font-size: 1.3rem;
}

@media only screen and (min-width: 1008px) {
  [class*=link_article-02] li > a .date,[class*=link_article-02] li > span .date {
    font-size: 1.7rem;
  }
}

[class*=link_article-02] li > a .text,[class*=link_article-02] li > span .text {
  width: 100%;
  margin-top: 1rem;
  flex-direction: column;
}

@media screen and (min-width: 600px) {
  [class*=link_article-02] li > a .text,[class*=link_article-02] li > span .text {
    width: auto;
    margin-top: 0;
    flex: 1;
  }
}

[class*=link_article-02] a:hover,[class*=link_article-02] a:focus {
  opacity: .6;
}

.link_article-02-01 {
  padding: 0 1.5rem;
  background-color: #fcf4f6;
}

@media only screen and (min-width: 768px) {
  .link_article-02-01 {
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

@media only screen and (min-width: 1008px) {
  .link_article-02-01 {
    padding: 3rem 6rem;
  }
}

.link_article-02-02 {
  border-top: 1px solid #c7c7c7;
}

.link_article-02-02 li {
  border-bottom: 1px solid #c7c7c7;
}

@media only screen and (min-width: 1008px) {
  .link_article-02-02 li a {
    padding-top: 2.7rem;
    padding-bottom: 2.7rem;
  }
}

.link_article-03 {
  color: #000;
  text-decoration: none;
}

.link_article-03:hover,.link_article-03:focus {
  opacity: .6;
}

.link_article-03 .image {
  text-align: center;
  display: block;
}

.link_article-03 .image img {
  max-width: 600px;
}

.link_article-03 [class*=title_] {
  font-weight: bold;
  display: block;
}

.link_article-03 .title_02-02 {
  padding-bottom: 2.6rem;
}

@media only screen and (min-width: 768px) {
  .link_article-03 .title_02-02 {
    padding-bottom: 1.4rem;
  }
}

.link_article-03 .text {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.link_article-03 .date-more {
  margin-top: 1.6rem;
  display: flex;
  justify-content: space-between;
}

@media only screen and (min-width: 1008px) {
  .link_article-03 .date-more {
    margin-top: 2.1rem;
  }
}

.link_article-03 .more {
  font-weight: bold;
  text-decoration: underline;
}

.link_article-wrap:not(:last-child) {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: .1rem dashed #d6d6d6;
}

@media only screen and (min-width: 768px) {
  .link_article-wrap:not(:last-child) {
    margin-bottom: 5rem;
    padding-bottom: 0;
    border-bottom: none;
  }
}

@media only screen and (min-width: 1008px) {
  .link_article-wrap:not(:last-child) {
    margin-bottom: 8rem;
  }
}

/* Navigations */
.navigation-01 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem 1.5rem;
}

.navigation-01 li {
  width: calc((100% - 1.5rem)/2);
}

@media screen and (min-width: 992px) {
  .navigation-01 li {
    width: calc((100% - 3rem)/3);
  }
}

@media only screen and (min-width: 1008px) {
  .navigation-01 {
    gap: 5.8rem 2.8rem;
  }
  .navigation-01 li {
    width: calc((100% - 5.6rem)/3);
  }
}

.navigation-01 span {
  display: flex;
  justify-content: center;
  align-items: center;
}

.navigation-01 .text {
  margin-top: .8rem;
}

@media screen and (max-width: 767px) {
  .navigation-01 .special {
    width: 100%;
  }
  .navigation-01 .special .image{
    display: none;
  }
  .navigation-01 .special .text {
    margin-top: 0;
    width: 100%;
    min-height: 5.4rem;
    padding: 1rem 1.5rem;
    background-color: #fcf4f6;
  }
}

.navigation-02 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(29.4rem, 1fr));
  gap: 3rem;
  justify-items: center;
}

@media only screen and (min-width: 1008px) {
  .navigation-02 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4.5rem;
  }
}

.navigation-02 li {
  width: 100%;
  max-width: 29.4rem;
  display: inline-flex;
}

@media only screen and (min-width: 1008px) {
  .navigation-02 li {
    max-width: none;
  }
}

.navigation-02 a {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 2rem;
}

@media only screen and (min-width: 1008px) {
  .navigation-02 a {
    grid-template-columns: 1fr;
  }
}

.navigation-02 .text {
  display: flex;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  .navigation-02 .text {
    justify-content: center;
  }
}

.navigation-03 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(29.4rem, 1fr));
  gap: 3rem;
  justify-items: center;
}

@media only screen and (min-width: 1008px) {
  .navigation-03 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5.8rem 2.8rem;
  }
}

.navigation-03 li {
  width: 100%;
  max-width: 34.5rem;
  display: inline-flex;
}

@media only screen and (min-width: 1008px) {
  .navigation-03 li {
    width: calc((100% - 5.6rem)/3);
    max-width: none;
    display: block;
  }
}

.navigation-03 a {
  display: grid;
  grid-template-columns: 16.5rem 1fr;
  gap: 2rem;
}

@media only screen and (min-width: 1008px) {
  .navigation-03 a {
    display: block;
  }
}

@media only screen and (min-width: 1008px) {
  .navigation-03 span {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

.navigation-03 .text {
  display: flex;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  .navigation-03 .text {
    margin-top: .8rem;
  }
}

/* Tables */
.table_01 {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .table_01 {
    border-top: 1px solid #d6d6d6;
  }
}

.table_01 th,
.table_01 td {
  padding: .5rem 1rem;
  display: block;
  box-sizing: border-box;
}

@media only screen and (min-width: 768px) {
  .table_01 th,
  .table_01 td {
    border-top: 1px solid #d6d6d6;
    border-bottom: 1px solid #d6d6d6;
    display: table-cell;
  }
}

@media only screen and (min-width: 1008px) {
  .table_01 th,
  .table_01 td {
    padding-top: 3.4rem;
    padding-bottom: 3.4rem;
  }
}

.table_01 th {
  width: 100%;
  font-weight: normal;
  text-align: left;
  background-color: #fcf4f6;
}

@media only screen and (min-width: 768px) {
  .table_01 th {
    text-align: center;
    width: 23.6rem;
  }
}

.table_01 td {
  text-align: left;
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .table_01 td {
    width: auto;
    padding-right: 6rem;
    padding-left: 6rem;
  }
}

.title_03 + .table_01 {
  margin-top: 2rem;
}

@media only screen and (min-width: 1008px) {
  .title_03 + .table_01 {
    margin-top: 3.5rem;
  }
}

.table_01 + .title_03 {
  margin-top: 3.6rem;
}

@media only screen and (min-width: 1008px) {
  .table_01 + .title_03 {
    margin-top: 8rem;
  }
}

/* Header */
@media only screen and (min-width: 1008px) {
  #adjust .header-wrapper {
    box-shadow: 0 .3rem .3rem 0 rgba(0, 0, 0, .15) !important;
  }
}

#adjust .header.page-width {
  max-width: 1620px;
  padding-right: 0;
  padding-left: 0;
}

@media only screen and (min-width: 1008px) {
  #adjust .header {
    box-shadow: none;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  #adjust .header.page-width {
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

#adjust .header__heading {
  text-indent: -9999px;
  background: url(../images/common/logo_corporate_2.png) center/100% no-repeat !important;
}

@media screen and (max-width: 990px) {
  #adjust .header__heading {
    background-size: 148% auto;
  }
}

#adjust .header__heading,
#adjust .header__heading-link {
  width: 9rem;
  height: 3.6rem;
  margin-top: 1.7rem;
  margin-bottom: 1.7rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .header__heading,
  #adjust .header__heading-link {
    width: 24rem;
    height: 9.6rem;
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 990px) {
  #adjust .header__heading,
  #adjust .header__heading-link {
    height: 5rem;
    margin-top: .7rem;
    margin-bottom: .7rem;
  }
}

#adjust .header__heading-link {
  margin-left: 0;
  padding: 0;
  display: block;
}

#adjust .header__inline-menu {
  display: none;
}

@media only screen and (min-width: 1008px) {
  #adjust .header__inline-menu {
    padding-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    flex: 1;
    justify-content: flex-end;
  }
}

#adjust .header__inline-menu li.news .mega-menu__list--condensed {
  padding-right: calc(((100% - 15rem)/4 + 9rem)/2);
  padding-left: calc(((100% - 15rem)/4 + 9rem)/2);
  grid-template-columns: repeat(3, 1fr);
}

@media only screen and (min-width: 1200px) {
  #adjust .header__inline-menu li.news .mega-menu__list--condensed {
    padding-right: calc(((100% - 18rem)/5 + 9rem)/2);
    padding-left: calc(((100% - 18rem)/5 + 9rem)/2);
    grid-template-columns: repeat(4, 1fr);
  }
}

#adjust .list-menu-01 {
  font-size: 1.8rem;
  font-weight: bold;
}

#adjust .list-menu-01 .header__active-menu-item {
  color: #c22047;
}

#adjust .list-menu-01 .header__active-menu-item:after {
  width: calc(100% - 4rem);
  height: 2px;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
}

#adjust .list-menu-01 .header__menu-item {
  color: #000;
  padding: 1rem 2rem;
  /* min-height: 7rem; */
  position: relative;
}

#adjust details[open] > .header__menu-item {
  text-decoration: none;
}

#adjust .list-menu-01 details[open] > .header__menu-item span {
  color: #c22047;
}

#adjust .list-menu-01 details[open] > .header__menu-item span:after {
  width: calc(100% - 4rem);
  height: 2px;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
}

#adjust .list-menu-01 .header__menu-item:hover span,
#adjust .list-menu-01 .header__menu-item:focus span {
  text-decoration: none;
  color: #c22047;
}

#adjust .list-menu-01 .header__menu-item:hover span:after,
#adjust .list-menu-01 .header__menu-item:focus span:after {
  width: calc(100% - 4rem);
  height: 2px;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
}

#adjust .list-menu-02 {
  font-size: 1.7rem !important;
  font-weight: 500 !important;
}

#adjust .list-menu-02.list-menu--inline {
  flex-direction: column;
}

@media only screen and (min-width: 768px) {
  #adjust .list-menu-02.list-menu--inline {
    flex-direction: row;
  }
}

@media only screen and (min-width: 1200px) {
  #adjust .list-menu-02.list-menu--inline {
    width: 100%;
    justify-content: flex-end;
  }
}

#adjust .list-menu-02 li:not(:last-child) {
  margin-right: 1.5rem;
}

#adjust .list-menu-02 .brand-menu li:not(:last-child) {
  margin-right: 0;
}

#adjust .list-menu-02 .header__active-menu-item:after {
  width: calc(100% - 4rem);
  height: 2px;
  background-color: #c22047;
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
}

#adjust .list-menu-02 .header__menu-item {
  color: #4b4c4c;
  padding: .5rem 1.5rem;
  min-height: 4rem;
  border: 1px solid #c22047;
  border-radius: 10px;
}

#adjust .list-menu-02 .header__menu-item:hover,
#adjust .list-menu-02 .header__menu-item:focus {
  opacity: .6;
}

#adjust .list-menu-02 .list-menu__item {
  justify-content: center;
}

#adjust .list-menu-02 .eosjwt {
  background-image: url(/cms/eos_corporate/assets/images/common/TWflag.png);
  background-repeat: no-repeat;
  background-size: 1.5em auto;
  background-position: 90% 50%;
}

#adjust .list-menu-02 .eosjwt a.header__menu-item {
  padding-right: 2.3em;
}

#adjust details[open] > .header__menu-item {
  text-decoration: none;
}

#adjust .list-menu__item {
  line-height: 1.5;
}

#adjust .header__menu-item:hover span,
#adjust .header__menu-item:focus span {
  text-decoration: none;
}

#adjust .header__active-menu-item {
  text-decoration: none;
}

/* Mega Menu */
#adjust .mega-menu .mega-menu__list--condensed {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(6rem, auto);
  -moz-column-gap: 3rem;
  column-gap: 3rem;
  row-gap: 1.8rem;
}

@media only screen and (min-width: 1200px) {
  #adjust .mega-menu .mega-menu__list--condensed {
    grid-template-columns: repeat(5, 1fr);
  }
}

#adjust .mega-menu__content {
  padding-top: 5.2rem;
  padding-bottom: 7rem;
}

#adjust .mega-menu__content.link_brand-wrap {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

@keyframes animateMenuOpen {
  0% {
    opacity: 0;
    transform: translateY(-1.5rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

#adjust .mega-menu[open] > .mega-menu__content {
  animation: animateMenuOpen 200ms ease;
}

#adjust .mega-menu__list.page-width {
  max-width: 1620px;
  padding-right: 2rem;
  padding-left: 2rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .mega-menu__list.page-width {
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

#adjust .mega-menu__list li {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #c7c7c7;
  height: 7.4rem;
}

#adjust .mega-menu__list li.about {
  border-bottom: none;
  grid-row: 1/3;
  grid-column: 1/2;
}

#adjust .mega-menu__list li.about .mega-menu__link:before,
#adjust .mega-menu__list li.sustainability .mega-menu__link:before {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background-color: #c22047;
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

#adjust .mega-menu__list li.about .mega-menu__link:after,
#adjust .mega-menu__list li.sustainability .mega-menu__link:after {
  border-right: .2rem solid #fff !important;
  border-bottom: .2rem solid #fff !important;
  right: 1.3rem !important;
}

  #adjust .mega-menu__link {
  font-weight: bold;
  line-height: 1.5;
  color: #000;
  width: 100%;
  height: 100%;
  min-height: 7.4rem;
  padding-right: 4rem;
  display: flex;
  align-items: center;
  position: relative;
  }

#adjust .mega-menu__link:after {
  width: 1.5rem;
  height: 1.5rem;
  border-right: .2rem solid #c22047;
  border-bottom: .2rem solid #c22047;
  content: "";
  position: absolute;
  top: 50%;
  right: .6rem;
  transform: translateY(-50%) rotate(-45deg) skew(15deg, 15deg);
}

#adjust .mega-menu__link:hover,
#adjust .mega-menu__link--active {
  text-decoration: none;
}

#adjust .link {
  font-size: 1.8rem;
}

/* Search Modal & Icons */
#adjust .header__icons {
  vertical-align: top;
  /* margin-right: -2rem; */
}

#adjust .header__icon--search {
  height: 7rem;
  width: 5.8rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

#adjust .header__icon--search span {
  height: 1.8rem;
  width: 1.8rem;
}

#adjust .header__icon--search .icon {
  height: 1.8rem;
  width: 1.8rem;
}

#adjust .modal__content {
  top: auto;
  right: 0;
  bottom: -15rem;
  left: 0;
  z-index: -1;
}

#adjust .search-modal {
  height: auto;
  min-height: auto;
}

#adjust .search-modal__content {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

#adjust .search-modal__form {
  max-width: 77.8rem;
}

#adjust .search-modal__form .field:before,
#adjust .search-modal__form .field:after {
  display: none;
}

#adjust .search-modal__form .field .field__input {
  height: 3.5rem;
  margin: 0;
  padding: 0 4.8rem 0 2rem;
  border: 1px solid #707070;
  border-radius: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .search-modal__form .field .field__input {
    height: 5rem;
    padding-right: 9.6rem;
  }
}

#adjust .search-modal__form .field .field__input:focus {
  box-shadow: none;
}

#adjust .search-modal__form .field .field__input:focus~.field__label,#adjust .search-modal__form .field .field__input:not(:placeholder-shown)~.field__label,#adjust .search-modal__form .field .field__input:-webkit-autofill~.field__label,#adjust .search-modal__form .field .customer .field input:focus~label,#adjust .search-modal__form .field .customer .field input:not(:placeholder-shown)~label,#adjust .search-modal__form .field .customer .field input:-webkit-autofill~label{display:none}#adjust .search-modal__form .field .field__label{font-size:1.4rem;color:#d6d6d6;top:50%;transform:translateY(-50%)}@media only screen and (min-width: 1008px){#adjust .search-modal__form .field .field__label{font-size:1.6rem}}#adjust .search-modal__form .field .field__button{width:4.8rem;height:3.3rem;display:flex;justify-content:center;align-items:center}@media only screen and (min-width: 1008px){#adjust .search-modal__form .field .field__button{height:4.8rem}}#adjust .search-modal__form .field .field__button span{height:1.8rem;width:1.8rem}#adjust .predictive-search{border:none}/* Navigation Drawer (Mobile) */
#adjust header-drawer {
  width: 100%;
  margin-left: 0;
  position: relative;
}

/* 検索モーダル自体の位置は絶対にいじらない */
  .search-modal,
  .search-modal__content {
    background: transparent !important;
  }

  /* 検索窓の後ろにだけ白背景を敷く */
  .search-modal__content {
    position: relative !important;
    z-index: 10000 !important;
  }

  .search-modal__content::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -35px;
    transform: translateX(-50%);
    width: 100vw;
    height: 170px;
    background: #fff;
    z-index: 0;
    pointer-events: none;
  }

  /* 検索フォーム本体は白背景より前面に出す */
  .search-modal__form,
  .search-modal form,
  .search-modal .field,
  .search-modal input,
  .search-modal button,
  .search-modal__close-button {
    position: relative !important;
    z-index: 2 !important;
  }
  
  /* ×ボタンを最前面にしてクリックできるようにする */
  .search-modal__close-button,
  .search-modal button[type="button"],
  .search-modal button[aria-label*="閉じる"],
  .search-modal button[aria-label*="close"],
  .search-modal .modal__close-button,
  .search-modal .search__close {
    position: relative !important;
    z-index: 999999 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }
  
  /* 白背景の疑似要素はクリックを邪魔しない */
  .search-modal__content::before {
    pointer-events: none !important;
  }

#adjust .header__icon--menu {
  position: absolute;
  top: -7rem;
  right: 0;
  width: 7rem;
  height: 7rem;
}

#adjust .header__icon--menu[aria-expanded=true]:before {
  height: calc(100vh - 70px);
  position: fixed;
  top: 70px;
  z-index: -2;
}

#adjust .announcement-bar-true .header__icon--menu[aria-expanded=true]:before {
  height: calc(100vh - 70px - 38px);
  position: fixed;
  top: 108px;
}

#adjust .menu-drawer-container .header__icon .icon {
  height: 70px;
  width: 70px;
  text-indent: -9999px;
}

#adjust .menu-drawer-container .header__icon .icon.icon-hamburger {
  background: url(/cms/eos_corporate/assets/images/common/icon_hamburger_open.png) center/100% no-repeat;
}

#adjust .menu-drawer-container .header__icon .icon.icon-close {
  background: url(/cms/eos_corporate/assets/images/common/icon_hamburger_close.png) center/100% no-repeat;
}

#adjust .menu-drawer-container .header__icon:hover .icon {
  transform: scale(1);
}

.hamburger-menu {
  width: 100%;
  max-height: calc(100vh - 70px);
  padding-bottom: 12rem;
  background-color: #fff;
  position: absolute;
  z-index: -1;
  overflow-x: scroll;
}

.announcement-bar-true .hamburger-menu {
  max-height: calc(100vh - 70px - 38px);
}

.box_search {
  padding: 2rem 1.5rem;
}

.member-menu-wrap {
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 70px;
  display: flex;
  justify-content: space-between;
}

@media screen and (min-width: 1008px) {
  .member-menu-wrap {
    width: auto;
    padding-left: 0;
    padding-right: 0;
  }
}

.member-menu {
  padding-left: .6rem;
  display: flex;
  align-items: center;
  gap: .6rem;
}

@media screen and (min-width: 1008px) {
  .member-menu {
    display: none;
  }
}

.member-menu a {
  font-size: 1.2rem;
  text-align: center;
  text-decoration: none;
  line-height: 1.5;
  color: #4b4c4c;
  min-height: 4rem;
  padding: .3rem .6rem;
  border: 1px solid #c22047;
  border-radius: .5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width: 347px) {
  .member-menu a {
    font-size: 1rem;
    letter-spacing: 0;
  }
}

.member-menu a:hover,
.member-menu a:focus {
  opacity: .6;
}

.brand-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

@media screen and (min-width: 558px) {
  .brand-menu {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media only screen and (min-width: 1008px) {
  .brand-menu {
    gap: 2rem;
  }
}

.brand-menu a {
  border: 1px solid #c7c7c7;
  border-radius: .5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}

@media only screen and (min-width: 1008px) {
  .brand-menu a {
    min-height: 13.5rem;
    border-radius: 1rem;
  }
}

@media only screen and (min-width: 1200px) {
  .brand-menu a {
    border-radius: 1.5rem;
  }
}

.brand-menu a:hover,
.brand-menu a:focus {
  opacity: .6;
}

.brand-menu a.link_blank:after {
  width: 1.1rem;
  height: 1.1rem;
  background: url(/cms/eos_corporate/assets/images/common/icon_blank.png) center/100% no-repeat;
  content: "";
  position: absolute;
  top: .6rem;
  right: .6rem;
}

@media only screen and (min-width: 1008px) {
  .brand-menu a.link_blank:after {
    width: 1.3rem;
    height: 1.3rem;
    top: 1.5rem;
    right: 1.5rem;
  }
}

.brand-menu img {
  max-width: 256px;
}

/* Footer */
#adjust .footer {
  border-top: none;
  background-color: #f8f8f8;
}

@media only screen and (min-width: 1008px) {
  #adjust .footer-copyright-wrap {
    background-color: #dd8399;
  }
}

#adjust .footer__content-bottom {
  padding-top: 0;
  border-top: none;
}

@media only screen and (min-width: 1008px) {
  #adjust .footer__content-bottom {
    max-width: 1620px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 3rem;
    padding-left: 3rem;
    display: flex;
    justify-content: space-between;
  }
}

#adjust .footer__content-bottom-wrapper.page-width {
  padding-right: 0;
  padding-left: 0;
}

@media only screen and (min-width: 1008px) {
  #adjust .footer__content-bottom-wrapper.page-width {
    width: auto;
    margin-right: 0;
    margin-left: 0;
  }
}

#adjust .footer__copyright {
  color: #fff;
  width: 100%;
  min-height: 4rem;
  margin-top: 0;
  background-color: #dd8399;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  #adjust .footer__copyright {
    min-height: 3.6rem;
  }
}

#adjust .caption {
  font-size: 1.1rem;
  letter-spacing: 0;
  line-height: 1.5;
}

@media only screen and (min-width: 1008px) {
  #adjust .caption {
    font-size: 1.2rem;
  }
}

.footer-menu-wrap {
  padding-top: 2.6rem;
}

@media only screen and (min-width: 1008px) {
  .footer-menu-wrap {
    display: flex;
    align-items: center;
    max-width: 1620px;
    margin-right: auto;
    margin-left: auto;
    padding: 5rem 3rem;
    -moz-column-gap: 3rem;
    column-gap: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  .footer-menu-wrap {
    -moz-column-gap: 4.8rem;
    column-gap: 4.8rem;
  }
}

.footer-logo {
  max-width: 13.4rem;
  margin-right: auto;
  margin-bottom: 2.6rem;
  margin-left: auto;
}

@media only screen and (min-width: 1008px) {
  .footer-logo {
    max-width: 21rem;
    margin-bottom: 0;
  }
}

.footer-menu-desktop {
  display: none;
}

@media only screen and (min-width: 1008px) {
  .footer-menu-desktop {
    display: flex;
    flex-wrap: wrap;
    -moz-column-gap: 2rem;
    column-gap: 2rem;
  }
}

.footer-menu-desktop li {
  display: flex;
  flex-wrap: wrap;
  -moz-column-gap: 2rem;
  column-gap: 2rem;
}

.footer-menu-desktop li ul {
  display: flex;
  flex-wrap: wrap;
  -moz-column-gap: 2rem;
  column-gap: 2rem;
}

.footer-menu-desktop a,
.footer-menu-desktop span {
  line-height: 1.5;
  color: #000;
  min-height: 4rem;
  display: flex;
  align-items: center;
}

.footer-menu-desktop a {
  font-size: 1.7rem;
  text-decoration: none;
}

.footer-menu-desktop a:hover,
.footer-menu-desktop a:focus {
  opacity: .6;
}

.footer-menu-desktop li.eosjwt:last-child a::after {
  display: inline-block;
  content: "　";
  background-repeat: no-repeat;
  background-image: url(/cms/eos_corporate/assets/images/common/TWflag.png);
  padding-right: 1.5em;
  background-size: 58% auto;
  background-position: .3em .3em;
}

.footer-menu-desktop span {
  font-size: 1.2rem;
}

.footer-menu-desktop .brand .link_blank:after {
  width: 1.3rem;
  height: 1.3rem;
  margin-left: .4rem;
  background: url(/cms/eos_corporate/assets/images/common/icon_blank.png) center/100% no-repeat;
  content: "";
}

.footer-menu-desktop .has-child {
  width: 100%;
}

.clause-menu {
  padding: 2.4rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  -moz-column-gap: 2rem;
  column-gap: 2rem;
  row-gap: 2rem;
}

@media only screen and (min-width: 1008px) {
  .clause-menu {
    padding: 0;
    -moz-column-gap: 2.5rem;
    column-gap: 2.5rem;
  }
}

.clause-menu li {
  display: flex;
  align-items: center;
}

.clause-menu a {
  font-size: 1.2rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.5;
  color: #000;
}

@media only screen and (min-width: 1008px) {
  .clause-menu a {
    font-size: 1.3rem;
    color: #fff;
  }
}

.clause-menu a:hover,
.clause-menu a:focus {
  opacity: .6;
}

/* Folding Widgets (Accordions) */
.folding-widget .folding-content {
  overflow: hidden;
}

.folding-widget summary {
  cursor: pointer;
}

.folding-menu {
  border-top: 1px solid #c7c7c7;
}

.folding-menu a,
.folding-menu summary {
  font-weight: bold;
  text-decoration: none;
  line-height: 1.5;
  color: #000;
  width: 100%;
  min-height: 5rem;
  padding: 1rem 3.8rem 1rem 1.5rem;
  border-bottom: 1px solid #c7c7c7;
  display: flex;
  align-items: center;
  position: relative;
}

.folding-menu a:hover,
.folding-menu a:focus,
.folding-menu summary:hover,
.folding-menu summary:focus {
  opacity: .6;
}

.folding-menu a:before,
.folding-menu summary:before {
  content: "";
  position: absolute;
}

.folding-menu summary.noneborder {
  border-bottom: 0px;
}

.folding-menu a:before {
  width: 1.2rem;
  height: 1.2rem;
  border-right: .1rem solid #c22047;
  border-bottom: .1rem solid #c22047;
}

.folding-menu > li > a:before {
  top: 50%;
  right: 2rem;
  transform: translateY(-50%) rotate(-45deg);
}

.folding-menu > li > details > summary:before {
  width: 3rem;
  height: 3rem;
  background-image: url(/cms/eos_corporate/assets/images/common/icon_folding.png);
  background-position: left center;
  background-size: 60px 30px;
  background-repeat: no-repeat;
  top: 50%;
  right: .8rem;
  transform: translateY(-50%);
}

.folding-menu > li > details[open] > summary:before {
  background-position: right center;
}

.folding-menu > li > details a {
  padding-right: 1.5rem;
  padding-left: 3.2rem;
}

.folding-menu > li > details a:before {
  top: 50%;
  left: 1rem;
  transform: translateY(-50%) rotate(-45deg);
}

.folding-menu > li > details a.link_blank:after {
  width: 1.3rem;
  height: 1.3rem;
  margin-left: .7rem;
  background: url(/cms/eos_corporate/assets/images/common/icon_blank.png) center/100% no-repeat;
  content: "";
}

.folding-menu .brand-menu.image a:before {
  border-right: 0rem;
  border-bottom: 0rem;
}

@media only screen and (min-width: 1008px) {
  .footer .folding-menu {
    display: none;
  }
}

.footer .folding-menu li.eosjwt:last-child a::after {
  display: inline-block;
  content: "　";
  background-repeat: no-repeat;
  background-image: url(/cms/eos_corporate/assets/images/common/TWflag.png);
  background-size: 50% auto;
  background-position: .5em .28em;
  padding-right: 2em;
}

/* Helper Utilities */
.mb-0 {
  margin-bottom: 0 !important;
}

.mb-4 {
  margin-bottom: 4rem !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-4 {
  margin-top: 4rem !important;
}

.ta-c {
  text-align: center;
}

.show-phone {
  display: block;
}

.show-desktop {
  display: none;
}

@media screen and (min-width: 600px) {
  .show-phone {
    display: none;
  }
  .show-desktop {
    display: block;
  }
}

/* Slider (Splide) */
.splide__slide img {
  width: 100%;
  height: auto;
}

.splide:not(.is-overflow) .splide__pagination {
  display: flex;
}

.splide__pagination {
  width: 1.5rem;
  padding: 0;
  flex-direction: column;
  top: 1.7rem;
  right: 1.5rem;
  bottom: auto;
  left: auto;
}

@media only screen and (min-width: 1008px) {
  .splide__pagination {
    width: .9rem;
    top: 3rem;
    right: 3rem;
  }
}

.splide__pagination li {
  height: 1.5rem;
  width: 1.5rem;
}

@media only screen and (min-width: 1008px) {
  .splide__pagination li {
    height: 1.9rem;
    width: 1.9rem;
  }
}

#adjust .splide__pagination__page {
  background-color: #fff;
  border: 1px solid #c22047;
  width: .7rem;
  height: .7rem;
  margin: 0;
  opacity: 1;
}

@media only screen and (min-width: 1008px) {
  #adjust .splide__pagination__page {
    width: .9rem;
    height: .9rem;
  }
}

#adjust .splide__pagination__page.is-active {
  background-color: #c22047;
  border: 1px solid #c22047;
  transform: scale(1);
}

#MainContent .splide1 li.splide__slide {
  position: relative;
  visibility: visible;
  width: 100%;
}

#MainContent .splide1 li.splide__slide > a,#MainContent .splide1 li.splide__slide > span {
  height: 100%;
  display: block;
  position: relative;
}

#MainContent .splide1 li.splide__slide > a span.text,#MainContent .splide1 li.splide__slide > span span.text {
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 1rem;
  text-align: center;
  color: #fff;
  width: 100%;
  text-shadow: 0 0 .3rem rgba(0, 0, 0, .5);
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media only screen and (min-width: 1008px) {
  #MainContent .splide1 li.splide__slide > a span.text,#MainContent .splide1 li.splide__slide > span span.text {
    font-size: 4rem;
  }
}

@media only screen and (min-width: 1440px) {
  #MainContent .splide1 li.splide__slide > a span.text,#MainContent .splide1 li.splide__slide > span span.text {
    font-size: 5rem;
  }
}

#MainContent .splide1 li.splide__slide > a img,#MainContent .splide1 li.splide__slide > span img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

#MainContent .splide1 li.splide__slide .button-001 {
  position: absolute;
  font-family: "Noto Sans JP", sans-serif;
  right: 13rem;
  bottom: 40%;
  min-width: 260px;
  min-height: 6.7rem;
  padding: 1em 2em 1em 2.8em;
  border: none;
  background-color: #fff;
  color: #c22047;
  font-size: 1.2em;
  z-index: 3;
  border-radius: 10px;
  text-align: left;
}

@media screen and (max-width: 1370px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    right: 10rem;
  }
}

@media screen and (max-width: 1280px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    right: 7.5rem;
    bottom: 40%;
    font-size: 1em;
    min-width: 235px;
    min-height: 5.7rem;
  }
}

@media screen and (max-width: 1044px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    min-width: 225px;
    right: 4.3rem;
    font-size: 1em;
    bottom: 35%;
  }
}

@media screen and (max-width: 814px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    right: 3rem;
    min-width: 200px;
    bottom: 27%;
  }
}

@media screen and (max-width: 630px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    right: 2rem;
    bottom: 23%;
  }
}

@media screen and (max-width: 600px) {
  #MainContent .splide1 li.splide__slide .button-001 {
    bottom: 9%;
    right: 2.0833333333vw;
  }
}

#MainContent .splide1 li.splide__slide .button-001.fv_center_button {
  right: 47.2222222222vw;
}

@media screen and (max-width: 1885px) {
  #MainContent .splide1 li.splide__slide .button-001.fv_center_button {
    right: 40.2777777778vw;
  }
}

@media screen and (max-width: 1028px) {
  #MainContent .splide1 li.splide__slide .button-001.fv_center_button {
    right: 38.1944444444vw;
  }
}

@media screen and (max-width: 835px) {
  #MainContent .splide1 li.splide__slide .button-001.fv_center_button {
    right: 38.0555555556vw;
    min-width: 200px;
  }
}

@media screen and (max-width: 600px) {
  #MainContent .splide1 li.splide__slide .button-001.fv_center_button {
    bottom: 8%;
    right: 4.1666666667vw;
  }
}

#MainContent .splide1 li.splide__slide .button-001::after {
  display: inline-block;
  transform: translateY(-50%) rotate(-45deg) skew(15deg, 15deg);
  width: 1rem;
  height: 1rem;
  border-right: .2rem solid #c22047;
  border-bottom: .2rem solid #c22047;
  right: 4.8rem;
  top: 51%;
  content: "";
  position: absolute;
}

@media screen and (max-width: 630px) {
  #MainContent .splide1 li.splide__slide .button-001::after {
    width: 1rem;
    height: 1rem;
  }
}

#MainContent .splide1 li.splide__slide .button-001:hover {
  background-color: #c22047;
  color: #fff;
  transition: .4s;
}

#MainContent .splide1 li.splide__slide .button-001:hover::after {
  border-right-color: #fff;
  border-bottom-color: #fff;
  transition: .4s;
}

#MainContent .splide1 li#splide1-slide03 .button-001 {
  min-width: 280px;
  padding-left: 1.7em;
}

@media screen and (max-width: 1280px) {
  #MainContent .splide1 li#splide1-slide03 .button-001 {
    min-width: 245px;
  }
}

@media screen and (max-width: 1044px) {
  #MainContent .splide1 li#splide1-slide03 .button-001 {
    min-width: 235px;
  }
}

@media screen and (max-width: 814px) {
  #MainContent .splide1 li#splide1-slide03 .button-001 {
    min-width: 210px;
  }
}

#MainContent .splide1 li#splide1-slide03 .button-001::after {
  right: 4rem;
}

/* Rich Text Editor (RTE) Styles */
#adjust .rte p:not(:first-child),
#adjust .rte figure:not(:first-child),
#adjust .rte p + .wrap,
#adjust .rte p + .box,
#adjust .rte p + .msg__profile,
#adjust .rte p + .clearfix,
#adjust .rte ul:not(:first-child),
#adjust .rte ol:not(:first-child),
#adjust .rte .sub-category,
#adjust .rte .movie,
#adjust .rte .img2 {
  margin-top: 2rem;
}

#adjust .rte ul li:not(:first-child),
#adjust .rte ul li > ul > li:first-child,
#adjust .rte ul li > ol > li:first-child,
#adjust .rte ol li:not(:first-child),
#adjust .rte ol li > ul > li:first-child,
#adjust .rte ol li > ol > li:first-child {
  margin-top: 1rem;
}

#adjust .rte ul li > ul:not(:first-child),
#adjust .rte ul li > ol:not(:first-child),
#adjust .rte ol li > ul:not(:first-child),
#adjust .rte ol li > ol:not(:first-child) {
  margin-top: 1rem;
}

#adjust .rte ul {
  padding-left: 1.5rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .rte ul {
    padding-left: 2rem;
  }
}

#adjust .rte ul li {
  list-style: outside;
}

#adjust .rte ol {
  padding-left: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .rte ol {
    padding-left: 3.5rem;
  }
}

#adjust .rte ol li {
  list-style: decimal;
}

#adjust .rte img {
  margin: 0;
  border: none;
}

#adjust .rte table {
  width: 100%;
}

@media only screen and (min-width: 1008px) {
  #adjust .rte table {
    font-size: 1.8rem;
  }
}

#adjust .rte p + table,
#adjust .rte table + p,
#adjust .rte table + p:not(:first-child),
#adjust .rte figure + table {
  margin-top: 3rem;
}

#adjust .rte .policies li {
  display: list-item;
}

#adjust .rte .policies li:before {
  padding: 0;
  display: none;
}

#adjust .rte .policies .mt20 {
  margin-top: 3rem;
}

#adjust .rte .policies .mt10 > a > img {
  height: 14px !important;
}

@media only screen and (min-width: 1008px) {
  #adjust .rte .policies .mt10 > a > img {
    height: 18px !important;
  }
}

#adjust .rte .privacy {
  padding-left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

@media only screen and (min-width: 768px) {
  #adjust .rte .privacy {
    gap: 3rem;
  }
}

#adjust .rte .privacy li {
  list-style: none;
  width: 100%;
}

@media screen and (min-width: 600px) {
  #adjust .rte .privacy li {
    width: calc((100% - 1.5rem)/2);
  }
}

@media only screen and (min-width: 768px) {
  #adjust .rte .privacy li {
    width: calc((100% - 3rem)/2);
  }
}

@media only screen and (min-width: 1008px) {
  #adjust .rte .privacy li {
    width: calc((100% - 6rem)/3);
  }
}

#adjust .rte .privacy li:not(:first-child) {
  margin-top: 0;
}

#adjust .rte .privacy li a {
  text-decoration: none;
  height: 100%;
  min-height: 5rem;
  padding: 1.5rem;
  border: 1px solid #c22047;
  border-radius: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

#adjust .rte .privacy li a:hover,#adjust .rte .privacy li a:focus {
  opacity: .6;
}

/* History / Profile Tables */
.enkaku table th,
table.profile th,
.event table th,
table.contribution th {
  width: 12.5rem;
}

@media only screen and (min-width: 1008px) {
  .enkaku table th,
  table.profile th,
  .event table th,
  table.contribution th {
    width: 20rem;
  }
}

table.profile th,
table.profile td,
table.contribution th,
table.contribution td {
  padding: 1em;
  border: .1rem solid #d6d6d6;
}

.rte .enkaku table + p {
  margin-top: 4rem;
}

#adjust .rte ul.history-top {
  margin-top: 3rem;
  padding-left: 0;
}

#adjust .rte ul.history-top li {
  list-style: none;
}

#adjust .rte ul.history-top li:not(:first-child) {
  margin-top: 0;
}

ul.history-top {
  border-top: 1px solid #d6d6d6;
}

ul.history-top li {
  border-bottom: 1px solid #d6d6d6;
}

ul.history-top a {
  text-decoration: none;
  line-height: 1.5;
  color: #000;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
}

@media only screen and (min-width: 1008px) {
  ul.history-top a {
    font-size: 2rem;
    min-height: 6.5rem;
  }
}

ul.history-top a:hover,
ul.history-top a:focus {
  opacity: .6;
}

ul.history-top a .vol {
  margin-bottom: .7rem;
}

@media only screen and (min-width: 768px) {
  ul.history-top a .vol {
    margin-bottom: 0;
  }
}

@media only screen and (min-width: 1008px) {
  ul.history-top a .vol {
    padding-right: 1rem;
  }
}

ul.history-top a .title {
  font-weight: bold;
  letter-spacing: .12rem;
  margin-top: 0;
  margin-bottom: 0;
}

@media only screen and (min-width: 768px) {
  ul.history-top a {
    flex-direction: row;
    align-items: center;
  }
  ul.history-top a .vol {
    width: 10rem;
  }
  ul.history-top a .title {
    width: calc(100% - 10rem);
  }
}

/* Article Tags & Meta */
.article-tag {
  font-size: 1.2rem;
  min-height: 2.4rem;
  margin-bottom: 2rem;
  padding: .3rem 1.5rem;
  background-color: #f3d2da;
  border-radius: .5rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  .article-tag {
    font-size: 1.6rem;
  }
}

.article-tag_sdgs {
  height: 2.7rem;
  margin-bottom: 1.7rem;
}

.article-tag_sdgs img {
  width: 12rem;
}

#adjust .caption-with-letter-spacing {
  font-size: 1.2rem;
  letter-spacing: .08rem;
  line-height: 1.5;
  display: block;
}

@media only screen and (min-width: 1008px) {
  #adjust .caption-with-letter-spacing {
    font-size: 1.4rem;
  }
}

#adjust .article-template__title + .caption-with-letter-spacing {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .article-template__title + .caption-with-letter-spacing {
    margin-bottom: 6.9rem;
  }
}

#adjust .sub-category {
  margin-bottom: 1rem;
}

#adjust .movie {
  margin-bottom: 2rem;
}

#adjust .movie iframe {
  vertical-align: top;
}

#adjust .primary_mov {
  margin-top: 4rem;
}

#adjust .infomation-wrapper h3 {
  margin-top: 4rem;
}

#adjust h2:before {
  padding-right: 0;
}

/* Data Status & Cleanups */
#adjust .status .table.data {
  width: 100%;
  height: auto;
  margin-top: 2rem;
}

@media screen and (min-width: 1000px) {
  #adjust .status .table.data {
    width: 30%;
    margin-top: 0;
  }
}

@media screen and (min-width: 1000px) {
  #adjust .status .table.data tr {
    padding: 1em;
    border: .1rem solid #d6d6d6;
  }
}

#adjust .status .table.data th,
#adjust .status .table.data td {
  padding: 1em;
  border: .1rem solid #d6d6d6;
}

@media screen and (min-width: 1000px) {
  #adjust .status .table.data th,
  #adjust .status .table.data td {
    border: none;
  }
}

#adjust .clearfix:after {
  content: "";
  display: table;
  clear: both;
}

#adjust .clearfix + .clearfix {
  margin-top: 1.5em;
}

#adjust .menuList {
  padding-left: 0;
}

#adjust .menuList li a {
  text-decoration: none;
}

#adjust .video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media screen and (min-width: 1001px) {
  #adjust p.main-text2 {
    margin-top: 0;
  }
}

/* SDGs News Page Specifics */
#sdgs-news .article-template figure {
  max-width: 80rem;
  margin-right: auto;
  margin-left: auto;
}

#sdgs-news .article-template figcaption {
  font-size: 12px;
  text-align: left;
  margin-top: 1rem;
}

@media only screen and (min-width: 1008px) {
  #sdgs-news .article-template figcaption {
    font-size: 14px;
  }
}

#sdgs-news .article-template .movie {
  aspect-ratio: 16/9;
}

#sdgs-news .article-template .movie iframe {
  width: 100%;
  height: 100%;
  position: static !important;
}

#sdgs-news .profile_contentsbox {
  max-width: 672px;
}

@media screen and (min-width: 1049px) {
  #sdgs-news .profile_contentsbox {
    max-width: none;
  }
}

#sdgs-news .profile_contentsbox .txt {
  margin-bottom: 2rem;
}

#sdgs-news .sdgs_flexbox {
  margin-top: 2rem;
}

#sdgs-news .sdgs_flexbox figure {
  max-width: 48rem;
  margin-right: auto !important;
  margin-left: auto !important;
}

#sdgs-news .sdgs_flexbox figure:not(:first-child) {
  margin-top: 2rem !important;
}

@media screen and (min-width: 1049px) {
  #sdgs-news .sdgs_flexbox figure:not(:first-child) {
    margin-top: 0 !important;
  }
}

#sdgs-news .cardgame_wrapper {
  margin-top: 4rem;
}

#sdgs-news .cardgame_contentsbox {
  width: auto;
  max-width: 80rem;
}

#sdgs-news .rte h2 {
  border-bottom: none;
}

#sdgs-news .rte h2:before {
  display: none;
}

#adjust #sdgs-news .rte .hot-topic ul.block2 {
  padding-left: 0;
}

#adjust #sdgs-news .rte .hot-topic ul.block2 .item {
  list-style: none;
  max-width: 39rem;
  margin-top: 3rem;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 1025px) {
  #adjust #sdgs-news .rte .hot-topic ul.block2 .item {
    margin-top: 0;
  }
}

@media screen and (min-width: 1025px) {
  #adjust #sdgs-news .rte .hot-topic ul.block2 .item:not(:first-child) {
    margin-top: 0;
  }
}

@media screen and (min-width: 1025px) {
  #adjust #sdgs-news .rte .hot-topic ul.block2 > .item + .item {
    margin-left: 30px;
  }
}

#adjust .contact .contact__fields {
  display: flex;
  flex-direction: column;
}

#adjust .contact .field__input {
  height: 5rem;
  padding: .5rem 0 .5rem 8rem;
  border: 1px solid #707070;
  border-radius: 2.5rem;
}

#adjust .contact .field__input:focus {
  box-shadow: none;
}

#adjust .contact .field {
  margin-bottom: 1.5rem;
}

@media only screen and (min-width: 768px) {
  #adjust .contact .field {
    margin-bottom: 3rem;
  }
}

#adjust .contact .field:after {
  box-shadow: none;
}

#adjust .contact .field__label {
  top: 1.25rem;
}

#adjust .contact .contact__button {
  text-align: center;
}

#adjust .contact .contact__button button {
  min-width: 28rem;
  min-height: 7rem;
  padding: 1.5rem;
  background-color: #fcf4f6;
}

@media only screen and (min-width: 1008px) {
  #adjust .contact .contact__button button {
    font-size: 1.8rem;
  }
}

#adjust .shopify-challenge__container {
  max-width: 1620px;
  padding-right: 1.5rem;
  padding-left: 1.5rem;
}

@media only screen and (min-width: 768px) {
  #adjust .shopify-challenge__container {
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

@media only screen and (min-width: 1200px) {
  #adjust .shopify-challenge__container {
    padding-right: 6rem;
    padding-left: 6rem;
  }
}

.box_privacy {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.box_privacy .title {
  margin-bottom: 3rem;
}

#adjust .pagination__item {
  font-size: 1.4rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .pagination__item {
    font-size: 1.8rem;
  }
}

#adjust .pagination__list > li {
  flex: 1 0 3.8rem;
  max-width: 3.8rem;
}

@media only screen and (min-width: 1008px) {
  #adjust .pagination__list > li {
    flex: 1 0 5rem;
    max-width: 5rem;
  }
}

#adjust .pagination__list > li:not(:last-child) {
  margin-right: 0;
}

#adjust img.img-r1,
#adjust img.img-l1 {
  max-width: 30rem;
  margin-right: auto;
  margin-bottom: 2rem;
  margin-left: auto;
  display: block;
}

@media screen and (min-width: 600px) {
  #adjust img.img-r1,
  #adjust img.img-l1 {
    margin-top: .8rem;
    margin-bottom: 1.5rem;
    display: inline;
  }
}

@media only screen and (min-width: 768px) {
  #adjust img.img-r1,
  #adjust img.img-l1 {
    margin-bottom: 2.5rem;
  }
}

@media only screen and (min-width: 1008px) {
  #adjust img.img-r1,
  #adjust img.img-l1 {
    margin-top: 1rem;
  }
}

@media screen and (min-width: 600px) {
  #adjust img.img-r1 {
    margin-right: 0;
    margin-left: 1.5rem;
    float: right;
  }
}

@media only screen and (min-width: 768px) {
  #adjust img.img-r1 {
    margin-left: 3rem;
  }
}

@media screen and (min-width: 600px) {
  #adjust img.img-l1 {
    margin-right: 1.5rem;
    margin-left: 0;
    float: left;
  }
}

@media only screen and (min-width: 768px) {
  #adjust img.img-l1 {
    margin-right: 3rem;
  }
}

.template-search__search .search {
  max-width: 77.8rem;
}

.template-search__search .search .field:before,
.template-search__search .search .field:after {
  display: none;
}

.template-search__search .search .field .field__input {
  height: 3.5rem;
  margin: 0;
  padding: 0 4.8rem 0 2rem;
  border: 1px solid #707070;
  border-radius: 2.5rem;
}

@media only screen and (min-width: 1008px) {
  .template-search__search .search .field .field__input {
    height: 5rem;
    padding-right: 9.6rem;
  }
}

.template-search__search .search .field .field__input:focus {
  box-shadow: none;
}

.template-search__search .search .field .field__input:focus ~ .field__label,
.template-search__search .search .field .field__input:not(:placeholder-shown) ~ .field__label,
.template-search__search .search .field .field__input:-webkit-autofill ~ .field__label,
.template-search__search .search .field .customer .field input:focus ~ label,
.template-search__search .search .field .customer .field input:not(:placeholder-shown) ~ label,
.template-search__search .search .field .customer .field input:-webkit-autofill ~ label {
  display: none;
}

.template-search__search .search .field .field__label {
  font-size: 1.4rem;
  color: #d6d6d6;
  top: 50%;
  transform: translateY(-50%);
}

@media only screen and (min-width: 1008px) {
  .template-search__search .search .field .field__label {
    font-size: 1.6rem;
  }
}

.template-search__search .search .field .field__button {
  width: 4.8rem;
  height: 3.3rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  .template-search__search .search .field .field__button {
    height: 4.8rem;
  }
}

.template-search__search .search .field .field__button span {
  height: 1.8rem;
  width: 1.8rem;
}

.privacy-panel {
  display: none;
}

.agree-unanswered .footer {
  margin-bottom: 10.2rem;
}

@media only screen and (min-width: 768px) {
  .agree-unanswered .footer {
    margin-bottom: 6.6rem;
  }
}

@media only screen and (min-width: 1008px) {
  .agree-unanswered .footer {
    margin-bottom: 7.2rem;
  }
}

.agree-unanswered .privacy-panel {
  display: flex;
}

#adjust .privacy-panel {
  min-height: 10.2rem;
  background: rgba(0, 0, 0, .75);
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000000;
}

@media only screen and (min-width: 768px) {
  #adjust .privacy-panel {
    min-height: 6.6rem;
  }
}

@media only screen and (min-width: 1008px) {
  #adjust .privacy-panel {
    min-height: 7.2rem;
  }
}

#adjust .privacy-panel .privacy-panel-inner {
  max-width: 72rem;
  margin-right: auto;
  margin-left: auto;
  padding: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media only screen and (min-width: 1008px) {
  #adjust .privacy-panel .privacy-panel-inner {
    max-width: 84rem;
    padding-right: 3rem;
    padding-left: 3rem;
  }
}

#adjust .privacy-panel .privacy-panel-inner p {
  font-size: 1.2rem;
  line-height: 1.5;
  color: #fff;
}

@media only screen and (min-width: 1008px) {
  #adjust .privacy-panel .privacy-panel-inner p {
    font-size: 1.4rem;
  }
}

#adjust .privacy-panel .privacy-panel-inner p a {
  color: #fff;
}

#adjust .privacy-panel .privacy-panel-inner p br {
  display: none;
}

@media only screen and (min-width: 768px) {
  #adjust .privacy-panel .privacy-panel-inner p br {
    display: block;
  }
}

#adjust .privacy-panel .privacy-panel-inner .agree-button {
  border-radius: 1rem;
  color: #000;
  min-width: 6rem;
  padding: 1rem;
  margin-left: 1.5rem;
  background: #fff;
  border: none;
}

@media only screen and (min-width: 768px) {
  #adjust .privacy-panel .privacy-panel-inner .agree-button {
    min-width: 12rem;
  }
}

.nextone_wrapper {
  border: solid 2px #bf2748;
  width: 100%;
  padding: 3rem;
  text-align: center;
  margin-bottom: 2rem;
}

.nextone_wrapper h2 {
  color: #bf2748;
  font-size: 2.5rem;
}

@media screen and (max-width: 600px) {
  .nextone_wrapper h2 {
    font-size: 2rem;
    line-height: 3rem;
    padding-bottom: 1rem;
  }
}

@media screen and (max-width: 600px) {
  .nextone_wrapper h2 span {
    display: inline-block;
  }
}

.nextone_wrapper h3 {
  color: #000;
  font-size: 1.8rem;
  margin-bottom: 1rem;
}

@media screen and (max-width: 600px) {
  .nextone_wrapper h3 {
    font-size: 1.3rem;
    margin-bottom: 1.3rem;
    line-height: 1.5rem;
  }
}

@media screen and (max-width: 600px) {
  .nextone_wrapper h3 span {
    display: inline-block;
  }
}

.nextone_wrapper p {
  text-align: left;
}

/* ======================================================================
   【3. 最新調整・マージ済追加コード（統合・クレンジング版）】
   ----------------------------------------------------------------------
   重複コードを排除し、フォント統一、rem整合、古いCMSコンテナの解放、
   PCヘッダー再構築、赤色アクティブ線ジャストフィットを高精度で集約。
   ====================================================================== */

/* Noto Sans JP ゴシック体に全体を強制統一 */
html, body, .wrapper_, .header, 
.list-menu-01 .header__menu-item, 
.list-menu-02 .header__menu-item {
  font-family: "Noto Sans JP", sans-serif !important;
}

/* Dawn rem 単位強制リセット */
html, .wrapper_ {
  font-size: 62.5% !important; /* rem基準値を10pxに強制固定 */
}

body {
  font-size: 1.5rem !important; /* 基本文字サイズ15px */
  line-height: calc(1 + .8 / var(--font-body-scale)) !important;
}

/* 古いCMSコンテナの制限解放 */
.wrapper_, .container_, .contents_ {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  float: none !important;
  display: block !important;
  box-shadow: none !important;
  border: none !important;
}

.contents_ {
  padding-bottom: 0 !important;
}

/* EOS本本サイト完全再現のための特別レイアウトリセット */
.folding-menu {
  display: none !important;
}

/* PC用調整ブロック */
@media screen and (min-width: 1008px) {
  .footer-pmark {
  max-width: 1620px;
  margin: -20px auto 0;
  padding: 0 3rem 1rem;
  text-align: left;
  }
  /* 不要なスマホメニュー類を完全非表示化 */
  .mobile-drawer-wrapper,
  .member-menu, 
  .menu-drawer-container {
    display: none !important;
  }

  /* ヘッダー横並び化と自然な下部シャドウ追加（通常時） */
  .header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 1620px !important;
    margin: 0 auto !important;
    box-shadow: none !important;
    min-height: 120px !important;
  }

/* 1. メガメニューの開閉や画面サイズに関わらず、ヘッダー wrapper に常に影を強制 */
/* position: relative はPC（メガメニュー使用）のみ適用。SPはfixedをJSに委ねるためここでは指定しない */
@media screen and (min-width: 1008px) {
  .header-wrapper,
  #adjust .header-wrapper {
    position: fixed !important;
    z-index: 105 !important;
  }
}
/* box-shadow はSP・PC共通で適用 */
.header-wrapper,
#adjust .header-wrapper {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12) !important;
}
/* 2. メガメニューが開いたとき、白い背景がヘッダーの影を隠してしまわないための対策 */
@media screen and (min-width: 1008px) {
  /* メガメニュー自体の重なり順をヘッダーの影（z-index: 105）より一歩後ろに下げる */
  .mega-menu__content {
    z-index: 100 !important;
    box-shadow: none !important;
  }
  
  /* メガメニューの最上部にもヘッダーと同じ影の影武者（before）を走らせて、背景に吸い込まれるのを防ぐ */
  .mega-menu__content::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 1px !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12) !important;
    pointer-events: none !important;
    z-index: 106 !important; /* 貫通して最前面に影を落とす */
  }
}

  .header__inline-menu {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    align-items: center !important;
    flex: 1 !important;
    padding-top: 1rem !important;
  }

  /* 1段目：上段ボタンリスト */
  .list-menu-02 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 1.5rem !important;
    list-style: none !important;
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  .list-menu-02 li {
    margin: 0 !important;
  }

  .list-menu-02 .header__menu-item {
    color: #4b4c4c !important;
    font-size: 1.5rem !important;
    font-weight: 500 !important;
    padding: 0.8rem 2rem !important;
    min-height: auto !important;
    border: 1px solid #c22047 !important;
    border-radius: 10px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    background-color: #fff !important;
    transition: opacity 0.2s ease !important;
  }

  /* 2段目：下段文字ナビゲーション */
  .list-menu-01 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 3.5rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .list-menu-01 li {
    margin: 0 !important;
  }

  .list-menu-01 .header__menu-item {
    color: #000000 !important;
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    padding: 0.5rem 0 !important;
    min-height: auto !important;
    text-decoration: none !important;
    border: none !important;
    position: relative !important;
  }

  /* 虫眼鏡アイコン位置調整 */
  .header__icons {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 3rem !important;
  }

  .header__icon--search {
    height: auto !important;
    width: auto !important;
    padding: 0 !important;
  }

  .header__icon--search .icon {
    height: 2.2rem !important;
    width: 2.2rem !important;
  }

  /* --------------------------------------------------
     【改善】赤色のアクティブ下線の挙動
     左右余白を排除し、テキスト文字数と同じ長さで100%描画
     -------------------------------------------------- */
  .list-menu-01 .header__menu-item span,
  .list-menu-01 summary span {
    position: relative !important;
    display: inline-block !important; /* inline-blockにより要素幅がテキスト実幅と一致 */
    width: auto !important;
    padding: 0 !important;
  }

  .list-menu-01 .header__menu-item span::after,
  .list-menu-01 summary span::after {
    content: "" !important;
    position: absolute !important;
    bottom: -8px !important; /* テキストの真下、ピタッとフィットする位置 */
    left: 0 !important;
    width: 100% !important; /* テキスト幅(spanの横幅)と100%一致 */
    height: 3px !important;
    background-color: #c22047 !important;
    transform: scaleX(0) !important;
    transform-origin: center !important;
    transition: transform 0.25s ease !important;
  }

  /* ホバー時、またはdetailsメニューが開いている（アクティブな）時に赤線を100%表示 */
  .list-menu-01 .header__menu-item:hover span::after,
  .list-menu-01 summary:hover span::after,
  .list-menu-01 details[open] > summary span::after,
  .list-menu-01 details[open] > .header__menu-item span::after {
    transform: scaleX(1) !important;
  }

  /* --------------------------------------------------
     【改善】メガメニュー境界線（影ではなくすっきりとした直線）
     -------------------------------------------------- */
  .mega-menu__content {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    width: 100% !important;
    background-color: #fff !important;
    padding-top: 5.2rem !important;
    padding-bottom: 7rem !important;
    /* border-top: 1px solid #e5e5e5 !important; */
    border-bottom: 1px solid #c7c7c7 !important; /* メガメニュー下部は影ではなく細いグレーの線 */
    box-shadow: none !important; /* メガメニュー自体の下部にはドロップシャドウを落とさない */
    z-index: 100 !important;
  }

  /* メガメニュー上端にヘッダーから落ちる影を常時再現 */
  .mega-menu__content::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 1px !important;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.12) !important; /* 通常時（閉じてる時）のヘッダーの影と完全に同じ不透明度・ボカシを適用 */
    pointer-events: none !important;
    z-index: 101 !important; /* メガメニューの白背景を貫通し、最前面に影を落とします */
  }

  .mega-menu .mega-menu__list--condensed {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    grid-auto-rows: minmax(6rem, auto) !important;
    column-gap: 3rem !important;
    row-gap: 1.8rem !important;
  }

  @media only screen and (min-width: 1200px) {
    .mega-menu .mega-menu__list--condensed {
      grid-template-columns: repeat(5, 1fr) !important;
    }
  }

  .mega-menu__content.link_brand-wrap {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }

  .mega-menu__list.page-width {
    max-width: 1620px !important;
    margin: 0 auto !important;
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }

  /* details-disclosure.js 連携用アニメーション */
  @keyframes animateMenuOpen {
    0% {
      opacity: 0;
      transform: translateY(-1.5rem);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }

  details.mega-menu[open] > .mega-menu__content {
    animation: animateMenuOpen 200ms ease forwards !important;
  }

  .header-wrapper, 
  .header--has-menu,
  .forcms_block,
  #footer {
    border-top: none !important;
    border-bottom: none !important;
  }
}

/* ======================================================================
   【4. 会社ロゴ強制復元 ＆ レスポンシブ最適化】
   ====================================================================== */


/* PCサイズロゴ（標準） */
html body .header .header__heading,
html body .header .header__heading-link {
    width: 9rem;
    height: 3.6rem;
    margin-top: 1.7rem;
    margin-bottom: 1.7rem;
}

/* ルート絶対パスによるロゴ強制描画 */
html body .header .header__heading {
  background-image: url("/cms/eos_corporate/assets/images/common/logo_corporate_2.png") !important;
}

/* スマホ用レスポンシブサイズ調整 */
@media screen and (max-width: 1007px) {
  .wrapper_ {
    top: 70px !important;
    position: relative !important;
  }
  .footer-pmark {
    text-align: center;
    padding-top: 2rem;
  }
}

/* ======================================================================
   【5. 台湾国旗バグの絶対解決 ＆ 横並び常時描画】
   ====================================================================== */
html body .wrapper_ .header .list-menu-02 li.eosjwt {
  background-image: none !important; /* 古い不適切な背景国旗をクリア */
}
/* リンクボタンの内部背景として横幅と余白を制御し常時綺麗に表示 */
.list-menu-02 .eosjwt a.header__menu-item {
  background-image: url("/cms/eos_corporate/assets/images/common/TWflag.png") !important;
  background-repeat: no-repeat !important;
  background-size: 20px auto !important;
  background-position: calc(100% - 1.5rem) center !important;
  padding-right: 4.2rem !important;
}

/* ヘッダー影を最前面固定 */

#adjust .header-wrapper {
  position: relative;
  z-index: 100;
}

#adjust .header-wrapper::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  width: 100%;
  height: 12px;
  pointer-events: none;
  z-index: 10000;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.10),
    rgba(0,0,0,0)
  );
}

#adjust .mega-menu__content,
#adjust .mega-menu__content::before,
#adjust .mega-menu__content::after {
  border-top: none !important;
  box-shadow: none !important;
}

@media screen and (max-width: 1007px) {

  #adjust .header__inline-menu,
  #adjust .header__icons {
    display: none !important;
  }

  #adjust .header {
    min-height: 70px;
    box-shadow: 0 .3rem .3rem 0 rgba(0, 0, 0, .15);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    -moz-column-gap: 0;
    column-gap: 0;
  }

  #adjust .header__icon--menu {
    position: absolute !important;
    top: 50% !important;
    right: 8px !important;
    transform: translateY(-50%) !important;
    width: 52px !important;
    height: 52px !important;
  }

}

/* ======================================================================
   SP HEADER FIX（大元common.css準拠）
   添付画像の見え方：左ロゴ / 中央ボタン2つ / 右端MENU を横並び
   PC表示に影響しないよう 1007px以下だけで上書き
====================================================================== */
@media screen and (max-width: 1007px) {
  #adjust .header.page-width {
    width: 100%;
    max-width: none;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  /* SPではPC用ナビ・検索アイコンは出さない */
  #adjust .header__inline-menu,
  #adjust .header__icons {
    display: none !important;
  }

  /* ロゴ＋会員ボタンの横並び領域。右端MENU分だけ余白を確保 */
  .member-menu-wrap {
    width: 100%;
    min-height: 70px;
    padding-left: 1.5rem;
    padding-right: 70px;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    box-sizing: border-box;
  }

  #adjust .header__heading {
    background-size: 148% auto;
  }

  #adjust .header__heading-link {
    margin-left: 0;
    padding: 0;
    display: block;
  }

  .member-menu {
    padding-left: .6rem;
    display: flex;
    align-items: center;
    gap: .6rem;
  }

  .member-menu li,
  .member-menu p {
    margin: 0;
  }

  /* MENUアイコンは右端固定 */
  #adjust header-drawer {
    width: auto;
    margin-left: 0;
    position: static;
  }

  #adjust .header__icon--menu {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 70px !important;
    height: 70px !important;
    transform: none !important;
  }

  #adjust .menu-drawer-container .header__icon .icon {
    width: 70px;
    height: 70px;
    text-indent: -9999px;
  }

  #adjust .header__icon--menu[aria-expanded=true]:before {
    height: calc(100vh - 70px);
    position: fixed;
    top: 70px;
    z-index: -2;
  }

  #adjust .announcement-bar-true .header__icon--menu[aria-expanded=true]:before {
    height: calc(100vh - 70px - 38px);
    top: 108px;
  }
}

/* かなり狭い端末だけボタンを少し詰める */
@media screen and (max-width: 374px) {
  .member-menu-wrap {
    padding-left: 1rem;
    gap: .5rem;
  }

  #adjust .header__heading,
  #adjust .header__heading-link {
    flex-basis: 8.2rem;
    width: 8.2rem;
  }

  .member-menu {
    gap: .4rem;
  }

  .member-menu a {
    font-size: 1rem;
    padding-right: .45rem;
    padding-left: .45rem;
    letter-spacing: 0;
  }
}

/* ======================================================================
 【EOSJWT SOURCE-BASED SP HAMBURGER V9 CLEAN 2026-06-03】
 ----------------------------------------------------------------------
 目的：添付画像の「メニュー全体がグレー」「＋が二重」「商品サイト画像が出ない」状態を解消。
 方針：反映中ページの実HTMLに合わせ、common.css後のインラインCSSに勝つ高詳細度でSPだけ補正。
 ====================================================================== */

@media screen and (max-width: 1007px) {
  /* 6) 商品サイト一覧は、開閉状態に関係なく画像カードを見せる */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li:nth-child(5) > details > summary,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details > summary.noneborder {
    border-bottom: 0 !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li:nth-child(5) > details:not([open]) > ul.brand-menu.image,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li:nth-child(5) > details > ul.brand-menu.image,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 1.5rem 2.2rem !important;
    background: #fff !important;
    list-style: none !important;
    box-sizing: border-box !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image > li {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 100% !important;
    min-height: 8.4rem !important;
    aspect-ratio: 2.05 / 1 !important;
    padding: 1.2rem !important;
    background: #fff !important;
    border: 1px solid #c7c7c7 !important;
    border-radius: .4rem !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image a::before {
    content: none !important;
    display: none !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image a::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: .7rem !important;
    right: .7rem !important;
    width: 1.1rem !important;
    height: 1.1rem !important;
    background: url("/cms/eos_corporate/assets/images/common/icon_blank.png") center / 100% no-repeat !important;
    border: 0 !important;
    transform: none !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    max-width: 82% !important;
    height: auto !important;
    max-height: 5.8rem !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }

  /* 7) 検索窓 */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search {
    display: block !important;
    padding: 2rem 1.5rem 2.4rem !important;
    background: #fff !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search .field::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search .field::after {
    display: none !important;
    content: none !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search .search__input,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search .field__input {
    display: block !important;
    width: 100% !important;
    height: 3.5rem !important;
    padding: 0 4.8rem 0 2rem !important;
    border: 1px solid #707070 !important;
    border-radius: 2.5rem !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 1.4rem !important;
  }
}

@media screen and (min-width: 601px) and (max-width: 1007px) {
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 360px) {
  html body .wrapper_ .forcms_block .header-wrapper header.header .member-menu-wrap ul.member-menu a {
    min-width: 6.2rem !important;
    max-width: 8.8rem !important;
    font-size: 1rem !important;
    padding-left: .4rem !important;
    padding-right: .4rem !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image a {
    min-height: 7.6rem !important;
  }
}


@media screen and (max-width: 1007px) {
  /* 1. ハンバーガーを開いた状態で、ドロワーと中身を完全な白・不透明に戻す */
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu *,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu ul,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu li,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu details,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu summary,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu a,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu .box_search,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu .field {
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    backdrop-filter: none !important;
  }
  .folding-content li {
    font-size: 14px !important;
  }

  /* 2. 残っているグレー幕候補を、開閉状態に関係なく消す */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu::after,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container::after,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container > summary::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container > summary::after,
  html body .wrapper_ .modal-overlay,
  html body .wrapper_ .drawer-overlay,
  html body .wrapper_ .menu-drawer__overlay,
  html body .wrapper_ .overlay,
  html body .wrapper_ .global-overlay {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background: transparent !important;
  }

  /* 3. ドロワー本体の白背景と重なり順を再固定 */
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu {
    display: block !important;
    visibility: visible !important;
    position: absolute !important;
    top: 70px !important;
    left: 0 !important;
    right: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-height: calc(100vh - 70px) !important;
    max-height: calc(100vh - 70px) !important;
    margin: 0 !important;
    padding: 0 0 12rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
    z-index: 9998 !important;
  }

  /* 4. ヘッダーと閉じるボタンはドロワーより上 */
  html body .wrapper_ .forcms_block .header-wrapper,
  html body .wrapper_ .forcms_block .header-wrapper header.header {
    background: #fff !important;
    opacity: 1 !important;
    filter: none !important;
    z-index: 10000 !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container > summary.header__icon--menu {
    z-index: 10001 !important;
  }

  /* 5. +の重複を完全停止：既存beforeを消し、afterだけに統一 */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details > summary::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > a::before,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu summary::before {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details > summary::after {
    content: "+" !important;
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    right: 1.7rem !important;
    width: auto !important;
    height: auto !important;
    color: #c22047 !important;
    font-size: 2.4rem !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details[open] > summary::after {
    content: "−" !important;
  }
  
  .hamburger-menu .folding-menu > li:nth-child(5) > details > summary::before,
  .hamburger-menu .folding-menu > li:nth-child(5) > details > summary::after {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  /* 6. 行・検索窓・商品カードも白背景固定 */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > a,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li > details > summary,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image > li,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image a,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .box_search {
    background: #fff !important;
    opacity: 1 !important;
    filter: none !important;
  }

  /* 7. 商品サイト一覧は閉じていてもカードを見せる */
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li:nth-child(5) > details > ul.brand-menu.image,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu .folding-menu > li:nth-child(5) > details:not([open]) > ul.brand-menu.image,
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 1.5rem 2.2rem !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    max-width: 82% !important;
    height: auto !important;
    max-height: 5.8rem !important;
    object-fit: contain !important;
  }
}

@media screen and (min-width: 601px) and (max-width: 1007px) {
  html body .wrapper_ .forcms_block .header-wrapper header.header .hamburger-menu ul.brand-menu.image {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* デザイン編集内<style>由来：メガメニュー開閉時の重なり順 */
body.mega-menu-active .header-wrapper,
body.mega-menu-active .forcms_block,
body.mega-menu-active .header {
  z-index: 999999 !important;
}

/* デザイン編集内<style>由来：CMSコンテナ解放。既存指定と同等だが最終保険として維持 */
html body .wrapper_,
html body .container_,
html body .contents_ {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  float: none !important;
  display: block !important;
  box-shadow: none !important;
  border: none !important;
  box-sizing: border-box !important;
}

html body .contents_ {
  padding-bottom: 0 !important;
}

/* PCではスマホ用ドロワーを非表示。元<style>の意図をPCに限定 */
@media screen and (min-width: 1008px) {
  html body .wrapper_ .header .mobile-drawer-wrapper,
  html body .wrapper_ .header .menu-drawer-container {
    display: none !important;
  }

  html body .wrapper_ .header .member-menu-wrap {
    display: block !important;
  }

  html body .wrapper_ .header .member-menu-wrap .member-menu {
    display: none !important;
  }

  html body .wrapper_ .header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 1020px !important;
    margin: 0 auto !important;
    box-shadow: none !important;
    min-height: 120px !important;
  }

  html body .wrapper_ .header .header__inline-menu {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    align-items: center !important;
    flex: 1 !important;
    padding-top: 1rem !important;
  }

  html body .wrapper_ .header .list-menu-02 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 1.5rem !important;
    list-style: none !important;
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  html body .wrapper_ .header .list-menu-01 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 3.5rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body .wrapper_ .header .header__icons {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 3rem !important;
  }
}

/* SPでは元<style>のグローバル非表示を打ち消し、ハンバーガーを必ず表示 */
@media screen and (max-width: 1007px) {
  html body .wrapper_ .header .member-menu-wrap {
    display: flex !important;
  }

  html body .wrapper_ .header .mobile-drawer-wrapper,
  html body .wrapper_ .header .menu-drawer-container {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  html body .wrapper_ .header .hamburger-menu .folding-menu,
  html body .wrapper_ .footer .folding-menu {
    display: block !important;
  }
}

/* ロゴと台湾国旗：デザイン編集内<style>の絶対パス指定をcommon側に統合 */
html body .wrapper_ .header .header__heading {
  background-image: url("/cms/eos_corporate/assets/images/common/logo_corporate_2.png") !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: contain !important;
}

html body .wrapper_ .header .list-menu-02 li.eosjwt {
  background-image: none !important;
}

html body .wrapper_ .header .list-menu-02 .eosjwt a.header__menu-item {
  background-image: url("/cms/eos_corporate/assets/images/common/TWflag.png") !important;
  background-repeat: no-repeat !important;
  background-size: 20px auto !important;
  background-position: calc(100% - 1.5rem) center !important;
  padding-right: 4.2rem !important;
}

@media screen and (max-width: 1007px) {
  .hamburger-menu .folding-menu details.eosjwt-product-sites-static {
    display: block !important;
  }

  .hamburger-menu .folding-menu details.eosjwt-product-sites-static > summary::before,
  .hamburger-menu .folding-menu details.eosjwt-product-sites-static > summary::after {
    content: none !important;
    display: none !important;
  }

  .hamburger-menu .folding-menu details.eosjwt-product-sites-static > summary {
    cursor: default !important;
    pointer-events: none !important;
    padding-right: 1.5rem !important;
  }

  .hamburger-menu .folding-menu details.eosjwt-product-sites-static > .folding-content,
  .hamburger-menu .folding-menu details.eosjwt-product-sites-static .folding-content {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .hamburger-menu .folding-menu details.eosjwt-product-sites-static .brand-menu {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .header-wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 999999 !important;
  }

  .forcms_block,
  .wrapper_,
  .container_,
  .contents_,
  main {
    transform: none !important;
    overflow: visible !important;
    font-size: 14px !important;
  }

  .menu-drawer-container[open] {
    position: static !important;
  }

  body.mega-menu-active {
    position: relative !important;
    overflow: hidden;
  }
}


/* =========================================================
   PC/SP：ヘッダー本体だけ追従
   ハンバーガーメニュー本体は追従対象にしない
   ========================================================= */

/* PC：position:sticky で追従（メガメニューのDOM構造上stickyが有効） */
@media screen and (min-width: 1008px) {
  html body .header-wrapper,
  html body #adjust .header-wrapper,
  html body .wrapper_ .forcms_block .header-wrapper {
    position: sticky !important;
    top: 0 !important;
    z-index: 999999 !important;
    background: #fff !important;
  }

  html body .header-wrapper,
  html body .header-wrapper header.header,
  html body #adjust .header-wrapper,
  html body #adjust .header {
    z-index: 999999 !important;
    background: #fff !important;
  }

  /* PCメガメニュー・検索がヘッダー裏に潜らないようにする */
  html body .mega-menu__content,
  html body .search-modal {
    z-index: 999998 !important;
  }
}

/* SP：forcms_blockが親（高さ=ヘッダー分のみ）なのでstickyは機能しない。fixedに統一 */
@media screen and (max-width: 1007px) {
  html body .header-wrapper,
  html body #adjust .header-wrapper,
  html body .wrapper_ .forcms_block .header-wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 999999 !important;
    height: 70px !important;
    min-height: 70px !important;
    background: #fff !important;
    overflow: visible !important;
  }

  /* SP：ハンバーガーメニューはヘッダー下から開く。ヘッダー本体だけ追従 */
  html body details#Details-menu-drawer-container[open] > .hamburger-menu,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu {
    position: fixed !important;
    top: 70px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: calc(100vh - 70px) !important;
    overflow-y: auto !important;
    background: #fff !important;
    z-index: 999998 !important;
  }

  /* 閉じている時のハンバーガーメニューは追従させない */
  html body details#Details-menu-drawer-container:not([open]) > .hamburger-menu {
    position: absolute !important;
    top: 70px !important;
    display: none !important;
  }
}


/* ======================================================================
   EOSJWT PC HEADER FOLLOW RESTORE ONLY 2026-06-03
   ----------------------------------------------------------------------
   PC追従だけ復旧。SP側は触らない。
   ====================================================================== */
@media screen and (min-width: 1008px) {
  html body,
  html body.eosjwt-header-fixed-ready,
  html body.eosjwt-header-follow-ready {
    padding-top: 0 !important;
  }

  html body .header-wrapper,
  html body #adjust .header-wrapper,
  html body .wrapper_ .forcms_block .header-wrapper,
  html body .forcms_block .header-wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-height: 120px !important;
    background: #fff !important;
    z-index: 2147483000 !important;
    transform: none !important;
    -webkit-transform: none !important;
    overflow: visible !important;
  }

  html body .header-wrapper header.header,
  html body #adjust header.header,
  html body #adjust .header,
  html body header.header {
    min-height: 120px !important;
    background: #fff !important;
    z-index: 2147483001 !important;
    transform: none !important;
    -webkit-transform: none !important;
    overflow: visible !important;
  }

  html body #MainContent,
  html body main#MainContent,
  html body .main {
    padding-top: 120px !important;
  }

  html body .mega-menu__content,
  html body .search-modal {
    z-index: 2147482990 !important;
  }
}

@media screen and (max-width: 1007px) {

  /* ヘッダー常時固定 */
  html body .wrapper_ .forcms_block .header-wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 999999 !important;
  }

  html body .wrapper_ .forcms_block .header-wrapper header.header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 999999 !important;
  }

  /* メニュー閉じても絶対維持 */
  html body .wrapper_ .forcms_block 
  details#Details-menu-drawer-container:not([open]) ~ * .header-wrapper,
  html body .wrapper_ .forcms_block 
  details#Details-menu-drawer-container:not([open]) header.header {
    position: fixed !important;
  }
}

/* ======================================================================
   【完全上書き版】SPヘッダー常時スクロール追従（最優先詳細度・キャッシュ確認線付き）
   ====================================================================== */
@media screen and (max-width: 1007px) {
  
  /* 固定（fixed）を無効化するトラップ（transform/filter/will-change/contain）を全親要素で強制解除 */
  html, 
  body, 
  html body .wrapper_, 
  html body .container_, 
  html body .contents_, 
  html body .forcms_block {
    transform: none !important;
    -webkit-transform: none !important;
    filter: none !important;
    will-change: auto !important;
    contain: none !important;
    overflow-x: hidden !important;

  }
  /* ヘッダー内側の高さを70pxで維持 */
  html body .wrapper_ .forcms_block .header-wrapper header.header,
  html body .header-wrapper header.header,
  html body #adjust .header {
    position: relative !important;
    top: auto !important;
    height: 70px !important;
    min-height: 70px !important;
    background: #fff !important;
    display: block !important;
  }

  /* ハンバーガーメニュー展開時、メニューがヘッダーのすぐ下から綺麗に開くように固定 */
  html body details#Details-menu-drawer-container[open] > .hamburger-menu,
  html body .wrapper_ .forcms_block .header-wrapper header.header details#Details-menu-drawer-container[open] > .hamburger-menu {
    position: fixed !important;
    top: 70px !important;
    left: 0 !important;
    width: 100vw !important;
    height: calc(100vh - 70px) !important;
    max-height: calc(100vh - 70px) !important;
    overflow-y: auto !important;
    z-index: 999998 !important;
    background: #fff !important;
  }
}
