@charset "UTF-8";

/**-----------------------------------------------------------------------
*   common
-----------------------------------------------------------------------*/
:root {
    --color-white : #fff;
    --color-black : #000;
    --color-dark-gray : #333;
    --color-m-dark-gray : #424242;
    --color-lightgray : #f2f2f2;
    --color-lightgray2 : #bdbdbd;;
    --primary-text-color : #000;
    --color-blue1 : #222e98;
    --color-lightblue : #e6ebf9;
    --hover-color : #172ad4;
    --color-red : red;
    --color-bluegray : #0c1823;
    --color-light-beige: #F5E6CC;
    --color-sandybrown: #f4a460; /* 温かみのあるベージュオレンジ */
    --color-sandybrown-rgb : 244, 164, 96; 
    --color-vivid-orange: #f47c13; /* 鮮やかで元気なビタミンオレンジ */
    --color-deep-orange:  #f47200;
    /* --font-mincho:
      "游明朝",
      "YuMincho",
      "Hiragino Mincho ProN",
      "ヒラギノ明朝 ProN",
      "ＭＳ 明朝",
      serif;  */
--font-mincho:
  "Noto Serif JP",
  "游明朝",
  "YuMincho",
  "Hiragino Mincho ProN",
  serif;
      --color-soft-ivory: #fff9ec;
}
/* ベーススタイル */
body {
    position: relative;
    font-size: 15px;
    font-family: 'Noto Sans JP', sans-serif; /* Google Fonts */
    line-height: 1.6;                        /* 行間の調整で読みやすく */
    color: var(--color-black);                            /* テキストカラー（暗めのグレー） */
    background-color: var(--color-white);                  /* 背景色を白に設定 */
    -webkit-font-smoothing: antialiased;     /* テキストの滑らかさ（Webkit系ブラウザ） */
    -moz-osx-font-smoothing: grayscale;      /* テキストの滑らかさ（Firefox） */
    word-break: break-word;                  /* 長い単語の折り返し */
    letter-spacing: 0.05em;                 /* 文字間のスペースを少し広げる */
    margin: 0;
    padding: 0;
}
html, body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    height: 100%;
}
h1,h2,h3,h4,h5,h6 {
    margin : 0;
    padding : 0;
}
/* ボックスモデルの統一 */
*,
*:before,
*:after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}

/* IE Mac対応（古いブラウザ対策） */
* html .clearfix {
    height: 1%;
}

/* clearfix */
.clearfix {
    display: block;
}

a {
    text-decoration: none;
}
a:link {
    color: var(--primary-text-color);
    text-decoration: none;
}
a:visited {
    color: var(--primary-text-color);
    text-decoration: none;
}
a:hover {
    color: var(--color-dark-gray);
}
a:active {
    color: var(--color-dark-gray);
}

img {
    padding: 0;
    margin: 0;
    display: block;
    width: 100%;
    height: auto;
}

p {
    margin-bottom: 0;
}

.wrapper {
    width: 100%;
    margin : 0;
    padding : 0;
    position: relative;
}
.inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0;
}


.center {
    text-align: center;
}
.flex {
    display: flex;
    align-items: stretch;
    align-content: start;
    justify-content: center;
    flex-wrap: wrap;

}
ul {
    list-style: none;
    margin : 0 auto;
    padding : 0;
}
.sp {
    display: none!important;
}
.pc {
    display: block!important;
}
/* スマホ表示（768px以下） */
@media screen and (max-width: 1280px) {
    .inner {
      width: 90%;
    }
}
/* スマホ表示（768px以下） */
@media screen and (max-width: 768px) {
    .sp {
        display: block !important;
    }
    .pc {
        display: none !important;
    }
}
/* =========================================
   dl / dt / dd ベーススタイル（共通）
========================================= */

dl {
  width: 90%;
  max-width: 800px;
  margin: 0 auto 60px;
  border-top: 1px solid #ddd;
  border-collapse: collapse;
  font-size: 1rem;
  color: #333;
}

/* 各行 */
dt, dd {
  padding: 20px 15px;
  border-bottom: 1px solid #ddd;
  line-height: 5;
}

/* 見出し側（dt） */
dt {
  font-weight: 600;
  color: #000;
}

/* 内容側（dd） */
dd {
  margin: 0;
}

/* PCでは2カラムにする */
@media (min-width: 768px) {
  dl {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: stretch;
    /* align-items: center; */
  }

  dt, dd {
    border-bottom: 1px solid #ddd;
    padding: 16px 20px;
  }

  dt {
    flex: 1 1 30%;
    text-align: left;
  }

  dd {
    flex: 1 1 70%;
    padding-left: 30px;
  }
}
/* PCでは2カラムにする */
@media (max-width: 768px) {
  dt, dd {
    flex : 1 1 100%;
    line-height: 2;
  }
  dt {
    border : 0;
  }
  dd {
    padding-left : 20px;
    padding-top : 0;
  }
}
.font-bold {
    font-weight: bold;
}
.font-big {
    font-size: 1.3em;
}
.font-red {
    color: var(--color-red);
}
.w_50 {
    width: 50%;
    margin : 0 auto;
}
.w800 {
    max-width: 800px;
    width: 100%;
    margin : 0 auto;
}
.w500 {
    max-width: 500px;
    width: 100%;
    margin : 0 auto;
}
.padding50_0 {
    padding-top : 50px;
    padding-bottom: 50px;
}
.padding100_0 {
    padding : 100px 0;
}
.font-mincho {
    font-family: var(--font-mincho);
}
.bg_ivory {
    background-color: var(--color-soft-ivory);
}

/**-----------------------------------------------------------------------
*   flexbox
-----------------------------------------------------------------------*/
.flex-2column,
.flex-3column,
.flex-4column {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* 2カラム */
.flex-2column > * {
    flex: 1;
    min-width: calc(50% - 10px);
    text-align: center;
}

/* 3カラム */
.gap_25 {
    gap : 25px;
}
.flex-3column > * {
    flex: 1;
    min-width: calc(33.333% - 10px);
    text-align: center;
}

/* 4カラム */
.flex-4column > * {
    flex: 1;
    min-width: calc(25% - 10px);
    text-align: center;
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
    .flex-4column > * {
        min-width: calc(50% - 10px);
    }
    .flex-3column > * {
        min-width: 100%;
    }
}

@media (max-width: 500px) {
    .flex-4column > *,
    .flex-3column > *,
    .flex-2column > * {
        min-width: 100%;
    }
}

/**-----------------------------------------------------------------------
*   Lightbox
-----------------------------------------------------------------------*/
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}
.lightbox.is-open { display: block; }

.lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
  opacity: 0;
  transition: opacity .2s ease;
}

.lightbox-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-48%) scale(.98);
  max-width: 90vw;
  max-height: 90vh;
  padding: 0;
  margin: 0;
  opacity: 0;
  transition: transform .2s ease, opacity .2s ease;
}

.lightbox.is-open .lightbox-backdrop { opacity: 1; }
.lightbox.is-open .lightbox-inner { opacity: 1; transform: translate(-50%,-50%) scale(1); }

#lightbox-img {
  display: block;
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  object-fit: contain;
  background: #000; /* 端の黒帯を目立たせない用 */
}

#lightbox-caption {
  margin-top: 8px;
  font-size: .9em;
  color: #eee;
  text-align: center;
}

.lightbox-close {
  position: absolute;
  top: -12px;
  right: -12px;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: #fff;
  color: #333;
  font-size: 22px;
  line-height: 36px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}
.lightbox-close:hover { opacity: .9; }

@media (max-width: 500px) {
  #lightbox-img { max-width: 94vw; max-height: 76vh; }
}


.arrow-icon {
  width: 25px;
  height: 25px;
  display: block;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'><circle cx='24' cy='24' r='24' fill='black'/><path d='M20,33l10-9a.63.63,0,0,0,0-1L20,14' fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  border-radius: 50%;
}




/* ボタンアニメーション - 矢印固定版 */

.link-btn--arrow01 {
  position: relative;
  text-align: center;
  text-decoration: none;
  line-height: 1.5;
  display: table;
  margin: 0 auto;
  margin-top: 3em;
  padding-left: 65px;
  height: 50px;
  overflow: hidden;
  border-radius: 9999px;
  transition: all 0.4s;
  color: #101112;
}

.link-btn--arrow01:hover {
  padding-right: 2.5em;
  /* color指定を削除 → 常に黒色のまま */
}


.link-btn--arrow01:active,
.link-btn--arrow01:hover {
  outline: 0;
}

/* 円形の背景 */
.link-btn--arrow01 .circle {
  position: absolute;
  top: 50%;
  left: 0;
  -ms-transform: translate(0, -50%);
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  border-radius: 9999px;
  width: 50px;
  height: 100%;
  transition: all 0.4s;
  background: -moz-linear-gradient(20.92% -128.33% -45deg, rgba(252, 234, 187, 1) 0.21%, rgba(248, 181, 0, 1) 100%);
  background: -webkit-linear-gradient(-45deg, rgba(252, 234, 187, 1) 0.21%, rgba(248, 181, 0, 1) 100%);
  background: -webkit-gradient(linear, 20.92% -128.33%, 79.08% 228.33%, color-stop(0.0021, rgba(252, 234, 187, 1)), color-stop(1, rgba(248, 181, 0, 1)));
  background: -o-linear-gradient(-45deg, rgba(252, 234, 187, 1) 0.21%, rgba(248, 181, 0, 1) 100%);
  background: -ms-linear-gradient(-45deg, rgba(252, 234, 187, 1) 0.21%, rgba(248, 181, 0, 1) 100%);
  background: linear-gradient(135deg, rgba(252, 234, 187, 1) 0.21%, rgba(248, 181, 0, 1) 100%);
  opacity: 1 !important;
}

.link-btn--arrow01:hover .circle,
.link-btn--arrow01.btn--hover .circle {
  width: 100%;
}

/* 矢印アイコン - 完全固定版 */
.link-btn--arrow01 .arrow {
  color: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: bold;
  z-index: 10;
}

.link-btn--arrow01 .arrow::before {
  content: '→';
}

/* テキスト */
.link-btn--arrow01 .text {
  position: relative;
  display: table-cell;
  vertical-align: middle;
  transition: all 0.1s;
  z-index: 5;
}

/* レスポンシブ対応 */
@media screen and (min-width: 481px) {
  .link-btn--arrow01.mt--2em_pc01 {
    margin-top: 2em;
  }
}


/* ============ Modal (generic) ============ */
.modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
}
.modal.is-open { display: block; }

.modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity .25s ease;
}
.modal.is-open .modal__overlay { opacity: 1; }

.modal__dialog {
  position: absolute;
  inset: 4% 3%;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transform: translateY(10px);
  transition: transform .25s ease;
}
.modal.is-open .modal__dialog { transform: translateY(0); }

.modal__header {
  position: relative;
  height: 44px;
  background: linear-gradient(90deg, var(--color-vivid-orange, #f47c13), #ff9a3c);
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 52px 0 14px;
  font-size: 15px; /* body=15pxに合わせる */
  line-height: 1;
}
.modal__title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.modal__close {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 34px; height: 34px;
  border: none; border-radius: 50%;
  background: rgba(255,255,255,.15);
  color: #fff;
  cursor: pointer;
}
.modal__close:hover { background: rgba(255,255,255,.25); }

.modal__body {
  position: absolute;
  top: 44px; bottom: 0; left: 0; right: 0;
  background: #fff;
}
.modal__iframe, .modal__content {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Small screens: more padding to avoid edges */
@media (max-width: 600px) {
  .modal__dialog { inset: 0; border-radius: 0; }
  .modal__header { height: 44px; }
}