@charset "UTF-8";

/* ==============================
   ダークモードとライトモード
================================ */

@media (prefers-color-scheme: dark) {
  body {
    background-color: #111111;
    color: #cccccc;
  }

  .icon a {
    color: #ffffff !important;
  }

  header span a {
    color: #ffffff !important;
  }

  form input,
  form p label input,
  form p textarea {
    color: #ffffff !important;
  }
#show-dialog-btn,
#shareBtn {
    color: #ffffff !important;
}
.flatpickr-monthDropdown-months,
.flatpickr-months input.numInput, 
.flatpickr-prev-month,
.flatpickr-next-month,
.flatpickr-day,
.flatpickr-weekday {
  color: #ffffff !important;
}
}

@media (prefers-color-scheme: light) {
  body {
    background-color: #ffffff;
    color: #000000;
  }
  
   .icon a {
    color: #222222;
  }
  header span a {
    color: #222222;
  }

  form input,
  form p label input,
  form p textarea {
    color: #111111;
  }
.flatpickr-monthDropdown-months,
.flatpickr-months input.numInput, 
.flatpickr-prev-month,
.flatpickr-next-month,
.flatpickr-day,
.flatpickr-weekday {
  color: #111111 !important;
} 
}

/* ==============================
   プリント対応
================================ */
@media print {
  body {
    display: none !important;
  }
}

/* ==============================
   グローバルスタイル
================================ */
* {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

*::-webkit-scrollbar {
  display: none;
}

img {
  touch-action: none;
}

@font-face {
  font-family: 'siteFont';
  src: url('/font/logotypejp_mp_m_1.1.woff') format('woff');
}

@font-face {
  font-family: 'corporatev3';
  src: url('/font/Corporate-Mincho-ver3.woff2') format('woff2');
}


body {
  padding: 0;
    margin: 0;
  font-family: 'siteFont';
  -ms-overflow-style: none;
  scrollbar-width: none;
  touch-action: manipulation pan-y;
}

body.no-scroll {
    overflow: hidden;
    touch-action: none; /* iOS対策 */
    position: fixed;
    width: 100%;
}

/* ==============================
   レイアウト要素
================================ */
header,
#contents,
footer {
  width: 100%;
  margin: 0 auto;
  overflow-x: hidden;
}


header {
  position: fixed;
  top: 0;
  left: 40px;
  display: flex;
  padding: 10px 5px;
  display: block;
  font-size: 24px;
  color: white;
  opacity: 0.95;
  z-index: 100;
}

.header-box,
.modal-content,
.modal-content i,
.icon-bar,
.icon,
.user-btn-wrap,
.cookie-banner,
.information-loading-error,
.information-filteringsearch,
.flatpickr-calendar,
input[type="text"]:not(#user-console-input),
p label input,
form p textarea, 
.modern-button,
#show-dialog-btn {
  /* ベース：強力なブラーで「液状化」させる */
backdrop-filter: blur(60px) saturate(250%) contrast(110%) brightness(102%) !important;
-webkit-backdrop-filter: blur(60px) saturate(250%) contrast(110%) brightness(102%) !important;

/* 背景：中央は透明度を上げ、縁に向かって光を溜める */
background: 
  /* プリズム・ハイライト */
  linear-gradient(135deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 40%, rgba(255,255,255,0) 60%, rgba(255,255,255,0.1) 100%),
  /* 液体感を出すベース */
  radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.05) 100%) !important;

/* ★縁の歪み（屈折）をシミュレートする多重インセットシャドウ */
box-shadow: 
  /* 1. 外側の浮遊感 */
  0 30px 60px rgba(0, 0, 0, 0.2),
  /* 2. 【屈折エッジ】縁に光が溜まって背景が白んでいる様子（屈折の入り口） */
  inset 0 0 0 1px rgba(255, 255, 255, 0.4),
  /* 3. 【レンズ効果】縁の直内側を暗くし、背景が「曲がっている」ような影を落とす */
  inset 0 0 25px rgba(255, 255, 255, 0.3),
  /* 4. 【肉厚感】分厚いガラスの底に溜まる光 */
  inset -10px -15px 40px rgba(255, 255, 255, 0.1),
  /* 5. 【スペキュラ】表面の鋭いテカリ */
  inset 2px 2px 4px rgba(255, 255, 255, 0.7) !important;

/* 境界線：物質としての厚みを定義 */
border: 0.5px solid rgba(255, 255, 255, 0.2) !important;
border-top: 1.5px solid rgba(255, 255, 255, 0.8) !important;

/* 角丸：液体の表面張力を感じる滑らかな曲線 */
border-radius: 40px;

}


.modal-content i {
font-size: 48px;
padding: 10px;
}

    /* モーダル背景（visibilityで制御することで確実にフェードさせる） */
    .modal-overlay {
        position: fixed;
        top: 0; left: 0;
        width: 100%; height: 100%;
        background: rgba(0,0,0,0.5);
        z-index: 1000;
        display: flex; /* 常にflexにしておき、表示・非表示は下で制御 */
        justify-content: center;
        align-items: center;
        
        /* 初期状態：透明かつクリック不可 */
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    /* モーダル表示時のクラス */
    .modal-overlay.is-visible {
        opacity: 1;
        visibility: visible;
    }

    .modal-content {
        padding: 20px;
        border-radius: 15px;
        width: 85%;
        max-width: 350px;
        text-align: center;
        overflow: hidden;
        position: relative;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2);
        
        /* 下から上に浮き上がるアニメーション */
        transform: translateY(30px);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* 表示時のコンテンツ位置 */
    .modal-overlay.is-visible .modal-content {
        transform: translateY(0);
    }

    /* スライド設定 */
    .slide-wrapper {
        display: flex;
        width: 200%;
        transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    }

    .slide-item {
        width: 50%;
        flex-shrink: 0;
        transition: opacity 0.3s ease;
    }

    .is-qr-active {
        transform: translateX(-50%);
    }

    .is-qr-active #share-menu-body { opacity: 0; }
    #qr-display-area { opacity: 0; }
    .is-qr-active #qr-display-area { opacity: 1; }


.header-box {
  padding: 3px 10px;
  border-radius: 10px;
}

header span {
  margin: 0 5px;
}

header .separator {
  color: #666;
}

header a span {
  font-size: 40px;
  padding: 0 10px;
  position: absolute;
  top: 0;
  font-weight: normal;
}

header span a:hover {
  opacity: 0.80;
}

/* ローディングスピナー */
.spinner {
    width: 80px; height: 80px;
    border: 10px solid #f0f0f0; 
    border-top: 10px solid #00b4d8;
    border-radius: 50%; 
    animation: spin 1s linear infinite;
    margin: 60px auto;
    display: none;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }


/* QRコード画像のスタイル */
#qr-code-img {
    /* 初期状態は「透明」にしておく */
    opacity: 0;
    /* opacityの値が変化する際に0.5秒かけて滑らかに変化させる設定 */
    transition: opacity 0.5s ease-in-out;
    
    /* 以下は元のスタイルを維持（インラインから移動させても良いです） */
    /* width: 160px; height: 160px; padding: 5px; background: #fff; border-radius: 10px; */
    /* 初期は非表示 */
    display: none; 
}

/* フェードインした後の状態（JSでこのクラスを付与します） */
#qr-code-img.is-loaded {
    opacity: 1; /* 不透明にする */
}



    .modal-overlay {
        position: fixed; top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(0,0,0,0.6); z-index: 1000; display: flex; align-items: center; justify-content: center;
    }

.user-btn-wrap {
  display: inline-block;
  border-radius: 50px;
}

img#user-btn,
img.user-btn-menu {
  border-radius: 50px;
  cursor: pointer;
  border: 1px solid rgba(240, 240, 240, 0.3) !important;
}

img#user-btn {
  filter: opacity(0.95); /* 画像だけ透明度 */
}

img.user-btn-menu {
  margin-bottom: -10px;
}

footer {
  text-align: center;
  width: 100%;
  left: 0;
  margin-bottom: 100px;
}

footer p,
footer p small {
  margin: 0;
}

.footerCopy {
  text-align: center;
  font-size: 10px;
  bottom: 0;
}


/* ==============================
   スクロール・アニメーション
================================ */
@keyframes body {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* ==============================
   メインビジュアル
================================ */
#mainvisual {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 10px;
}

#slidesContainer {
  display: flex;
  transition: transform 1s ease;
}

.slide {
  flex: 0 0 100%;
}

#mainvisual img {
  width: 100%;
  height: 100%;
}

/* ==============================
   コンテンツ
================================ */
a {
  color: #000000;
  text-decoration: none;
  font-size: 100%;
  user-drag: none;
  user-select: none;
}

#main {
  font-size: 150%;
  line-height: 1.5;
}

#main h1 {
  margin-top: 100px;
  margin-bottom: -10px;
  font-size: 150%;
  border-bottom: 2px solid #9c9c9c;
  width: 100%;
}

#main p ul li,
#main ul li,
p#outlineMargin {
  width: 100%;
}

.description {
  font-size: 12px !important; /* 強制適用 */
}

.information-filteringsearch {
  text-align: left;
  padding: 5px;
  margin: 10px;
  font-size: 50%;
}

.flatpickr-calendar {
  touch-action: pan-y;
}

.flatpickr-day.selected {
  background: #00b4d8 !important;
  color: #fff !important;
}

.flatpickr-day.today {
  background: #0078ff50 !important;
}

.flatpickr-day:hover {
  text-shadow: 1px 1px 5px #000000 !important;
}

.flatpickr-months .flatpickr-month {
  background: #e8e8e820 !important;
}

.flatpickr-weekday:nth-child(1) {
  color: #ff000050 !important;
}

/* 土曜(最後) */
.flatpickr-weekday:nth-child(7) {
  color: #0000ff50 !important;
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  opacity: 0.6 !important;
  pointer-events: none;
}
/* ==============================
   タブ・アイコンバー
================================ */

.icon-bar {
  position: fixed;
  bottom: 25px;
  left: 50%;
  padding: 0 1%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 30px;
  width: 90%;
  z-index: 10000;

}

.icon-bar.none-show {
    opacity: 0;
}

.icon-container {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.icon {
  width: 40px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  border-radius: 50%;
  box-shadow: 1px 1px 10px #111111;
  cursor: pointer;
    transform: scale(1.5);
  transition: 0.2s;
  font-size: 16px;
  bottom: 0;

}
.icon:active {
      transform: scale(2.0);
    box-shadow: 5px 5px 10px #000;
    animation: pop 0.35s ease;

} 

.user-icon {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px 24px;
}


/* ==============================
   メッセージ表示
================================ */
.message {
  background: #00b4d8;
  color: white;
  font-size: 12px;
  padding: 5px;
  width: 350px;
  border-radius: 20px;
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  animation: fadeInOut 5s ease-out forwards;
}

#popup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100000;

    /* 追加 */
    opacity: 0;
    pointer-events: none;
    transition: opacity 1.0s ease;
}

/* 表示時 */
#popup-overlay.show {
    opacity: 1;
    pointer-events: auto;
}

/* 非表示時 */
#popup-overlay.hide {
    opacity: 0;
    pointer-events: none;
}

#popup {
    background: rgba(240, 240, 240, 0.2);
    border: 1px solid rgba(240, 240, 240, 0.3);
position: relative;
    width: 85%;
    height: 50%;
    padding: 20px;
    border-radius: 8px;
    overflow-y: auto;
    overflow-x: hidden;
    /* 初期状態 */
    transform: translateY(40px);
    opacity: 0;
}


/* 表示 */
#popup.show {
    transition: transform 1.0s ease-out, opacity 1.0s ease-out;
    transform: translateY(0);
    opacity: 1;
}

/* 閉じる */
#popup.hide {
    transition: transform 1.0s ease-in, opacity 1.0s ease-in;
    transform: translateY(40px);
    opacity: 0;
}

@keyframes slideUp {
    from {
        transform: translateY(40px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideDown {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(40px);
        opacity: 0;
    }
}

#popup .popup-expire {
    margin-top: 12px;
    font-size: 12px;
    color: #aaa;
    text-align: right;
}


/* ==============================
   ソーシャルボタン
================================ */
.modern-button {
  width: 350px;
  margin: 20px auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px;
  color: #fff;
  border-radius: 100px;
  text-decoration: none;
  transform: scale(1.0);
  transition: background 1.0s ease;
}

.modern-button img {
  border: #ffffff 1px solid;
  border-radius: 50px;
}

.modern-button span {
  font-size: 120%;
  font-weight: bold;
  padding-right: 10px;
}
/* ==============================
   フォーム
================================ */
form {
  text-align: center;
  margin: 0 auto 50px;
  border-radius: 20px;
  
}

input[type="text"],
p label input,
form p textarea {
  width: 93%;
  padding: 12px;
  margin-top: 5px;
  font-size: 14px;
  outline: none;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}

form p textarea {
  height: 500px;
  border-radius: 20px;
}

input:focus,
textarea:focus {
  background: #8888884d;
}

.date-wrap {
  display: flex;
  align-items: center;
  gap: 6px; /* 好みで */
}

input[type="text"].date-input {
  width: 100px;
  padding: 0;
  box-sizing: border-box;
  font-family: inherit;
}

#show-dialog-btn,
#shareBtn, #popup button {
   backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px); /* Safari対応 */
background: rgba(240, 240, 240, 0.2);
border: 1px solid rgba(240, 240, 240, 0.3);
  width: 90%;
  padding: 12px;
  border: none;
  border-radius: 50px;
  border: 1px solid #99999944;
  color: #000000;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 1.0s ease;
  margin: 10px auto;
}

#show-dialog-btn:hover,
#shareBtn:hover {
  background-color: #00b4d8;

}

#popup button {
   color: #f0f0f0;
    width: 50px;
    background: none;
    filter: none;
    border: none;
    -webkit-backdrop-filter: none; /* Safari対応 */
    position: sticky;   /* スクロールしても動かない */
    top: 0;
    left: 0;
    margin-left: 0;
}

#popup button i {
    text-align: center;
    background: #888888;
    padding: 7px;
    margin: 0;
    border-radius: 50px;
    text-shadow: 0 0 10px #000000;
}