@charset "UTF-8";
:root {
 --base-white: #fff;
 --main-bg-color: #ebe2ea;
 --sub-color: #b5a9dc;
 --text-color: #2D282E;
 --link-color: #ec6500;
 --link-bg-color: #e7e3f4;
 --app-height: 100vh;
}
/*------------------------------------------------------------
	Reset
------------------------------------------------------------*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, nav, section, time, mark, audio, video {
 font-size: 1em;
 margin: 0;
 padding: 0;
 border: 0;
 outline: 0;
 -webkit-box-sizing: border-box;
 box-sizing: border-box;
 background: transparent;
 vertical-align: bottom;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {
 display: block;
}
html {
 font-size: 62.5%;
}
body {
 -webkit-text-size-adjust: 100%;
}
body, table, input, textarea, select, option, h1, h2, h3, h4, h5, h6, p {
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 margin: 0;
 padding: 0;
}
h1, h2, h3, h4, h5, h6 {
 font-weight: 700;
 transition: all 1000ms;
}
table, input, textarea, select, option {
 line-height: 1.1;
}
ol, ul {
 list-style: none;
}
blockquote, q {
 quotes: none;
}
:focus {
 outline: 0;
}
ins {
 text-decoration: none;
}
del {
 text-decoration: line-through;
}
hr {
 height: 0;
 margin: 0;
 padding: 0;
 border: 0;
}
a {
 color: inherit;
 text-decoration: none;
 -webkit-transition: all 300ms;
 transition: all 300ms;
 word-wrap: break-word;
}
a:hover {
 cursor: pointer;
 color: #e70012;
}
img {
 vertical-align: bottom;
 -webkit-backface-visibility: hidden;
 max-width: 100%;
 width: auto;
 height: inherit;
 pointer-events: none;
}
figure img {
 pointer-events: none;
}
ruby > rt {
 text-align: center;
}
/* スクロールバー */ ::-webkit-scrollbar {
 width: 3px;
 height: 4px;
}
::-webkit-scrollbar-thumb {
 background: var(--sub-color);
 border-radius: 2px;
}
::-webkit-scrollbar-track {
 background: var(--link-bg-color);
}
.guard {
 pointer-events: none;
 cursor: default;
}
.loading {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 100;
 overflow: hidden;
}
.fadein {
 opacity: 0;
 transform: translate(0, 60px);
 transition: all 1000ms;
}
.fadein.in {
 opacity: 1;
 transform: translate(0, 0);
}
.ani {
 transition: ease;
 opacity: 0;
 -webkit-animation: ani-item 2s ease 2s 1 forwards;
 animation: ani-item 2s ease 2s 1 forwards;
}
@-webkit-keyframes ani-item {
 0% {
  opacity: 0;
 }
 100% {
  opacity: 1;
 }
}
@keyframes ani-item {
 0% {
  opacity: 0;
 }
 100% {
  opacity: 1;
 }
}
.delay1s {
 animation-delay: 1s;
}
.delay1_5s {
 animation-delay: 1.5s;
}
.ImgArea {
 position: relative;
}
.ImgArea .clr {
 position: absolute;
 width: 100%;
 height: 100%;
 left: 0;
 right: 0;
 z-index: 10;
 background: rgba(255, 255, 255, 0);
}
/*------------------------------------------------------------
	layout
------------------------------------------------------------*/
/* support iOS */
html {
 height: -webkit-fill-available;
}
body {
 font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
 font-size: 1.6rem;
 font-weight: 500;
 line-height: 2em;
 color: var(--text-color);
 background-color: #fff;
 width: 100%;
 height: 100%;
 padding: 0;
 font-style: inherit;
 font-weight: 600;
 /* iPhoneポップアップ無効 */
 -webkit-touch-callout: none;
 -ms-text-size-adjust: 100%;
 -webkit-text-size-adjust: 100%;
 text-rendering: geometricPrecision;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 -webkit-tap-highlight-color: transparent;
 overflow-x: hidden;
 -webkit-overflow-scrolling: touch;
 min-height: -webkit-fill-available;
}
b, strong, .bold {
 font-weight: 700;
}
.flex {
 display: -webkit-box;
 display: -ms-flexbox;
 display: -webkit-flex;
 display: flex;
 -webkit-box-lines: multiple;
 -moz-box-lines: multiple;
 box-sizing: border-box;
}
.flexbox {
 display: -webkit-box;
 display: -ms-flexbox;
 display: -webkit-flex;
 display: flex;
 -webkit-box-lines: multiple;
 -moz-box-lines: multiple;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 flex-wrap: wrap;
 -webkit-box-align: center;
 -ms-flex-align: center;
 align-items: center;
 -webkit-box-pack: center;
 -ms-flex-pack: center;
 justify-content: center;
}
.wrap {
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 flex-wrap: wrap;
}
/* 全画面背景スライドショーのコンテナ */
.section_bg {
 background-color: var(--text-color);
}
.slide {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 background-size: cover;
 background-position: center bottom;
 background-repeat: no-repeat;
 opacity: 0;
 transform: scale(1.1);
 animation: imageTransition 20s infinite;
 will-change: opacity, transform;
}
/* 各スライドの背景画像を設定 */
.slide-1 {
 background-image: url('../images/kaede.jpg?v1.2');
 animation-delay: 0s;
}
.slide-2 {
 background-image: url('../images/sky.jpg?v1.1');
 animation-delay: 10s;
}
@media screen and (max-width : 912px) {
 .slide-2 {
  background-position: bottom right;
 }
}
/* アニメーションの定義 */
@keyframes imageTransition {
 /* 0% - 5.55% (0s - 1s): フェードイン */
 0% {
  opacity: 0;
  transform: scale(1.1);
 }
 5.55% { /* 1s / 18s * 100% */
  opacity: .85;
  transform: scale(1.1); /* ズームイン完了 */
 }
 44.44% { /* 8秒時点 (1s (フェードイン) + 7s (表示維持) = 8s) / 18s * 100% */
  opacity: .85;
  transform: scale(1); /* 表示維持終了、フェードアウト開始 */
 }
 55.55% { /* 10s / 18s * 100% */
  opacity: 0;
  transform: scale(1);
 }
 100% {
  opacity: 0;
  transform: scale(1.1); /* 最初の状態に戻る */
 }
}
@media screen and (min-width : 913px) {
 .fullscreen-slideshow {
  min-height: 750px;
 }
 .slide-1 {
  /* 水平方向: 中央から左へ40%移動 */
  /* 垂直方向: 中央から下へ20%移動 */
  background-position: calc(50% + 5%) calc(50% + 26%);
 }
}
@media screen and (max-width : 912px) {
 .slide-2 {
  background-position: bottom right;
 }
}
/* --- コンテンツエリア --- */
#container {
 width: 100%;
 min-height: 100vh;
 min-height: 100lvh;
 height: -webkit-fill-available;
 padding: 0;
 margin: 0 auto;
 position: relative;
 z-index: 1;
}
#container::after, .loading::after {
 content: "";
 top: 0;
 left: 0;
 z-index: -1;
 width: 100%;
 height: 100vh;
 height: 100lvh;
 min-height: 100vh;
 min-height: 100lvh;
 display: block;
 position: fixed;
 /* 背景グラデーションの設定 */
 background: linear-gradient(to bottom, #95a3d0, #bdb2d5, #e7e0e9, #f1f1ed);
 background-size: 100% 180%; /* 縦方向に2倍に広げて、アニメーションの余白を確保 */
 /* アニメーションの適用 */
 animation: moveGradient 8s ease-in-out infinite alternate;
}
.content {
 padding: 60px 4%;
 width: 94%;
 max-width: 1200px;
 margin: auto;
}
.content.pre {
 padding-left: 0;
 padding-right: 0;
}
.vh {
 min-height: var(--app-height);
}
.intro {
 position: relative;
 min-height: 100vh;
 min-height: 100lvh;
}
.intro .section_bg {
 width: 100%;
 height: 100vh;
 height: 100lvh;
 top: 0;
 left: 0;
 position: sticky;
 overflow: hidden;
 transition: 1s;
}
.intro .section_inner {
 position: relative;
 margin-top: -100vh;
 margin-top: -100lvh;
}
.bg-white-blur {
 position: relative;
 color: #000;
 background: rgba(255, 255, 255, .7);
 -webkit-backdrop-filter: blur(8px);
 backdrop-filter: blur(8px);
}
.bg-white-pre {
 position: relative;
 color: #000;
 background: rgba(255, 255, 255, .5);
}
.bg-white {
 background-color: #fff;
}
@keyframes moveGradient {
 0% {
  background-position: 0% 0%; /* 上からスタート */
 }
 100% {
  background-position: 0% 80%; /* 下に移動 */
 }
}
.title {
 max-width: 340px;
 margin: 30px auto 0;
 width: 60%;
}
.title-step {
 max-width: 180px;
 margin: 10px auto 0;
 width: 30%;
}
.sub-title {
 margin: 0 auto 10px;
 font-size: clamp(1.8rem, 2.4vw, 3rem);
 font-weight: 600;
}
.sub-title-s {
 margin: 0 auto;
 font-size: clamp(1.4rem, 1.8vw, 1.7rem);
 line-height: 1.2em;
 font-weight: 600;
}
.txt-orange {
 color: var(--link-color);
 font-size: 1.1em;
 letter-spacing: normal;
}
.at {
 font-size: clamp(1rem, 1vw, 1.3rem);
}
.underline {
 text-decoration: underline;
}
.read, .ex {
 font-size: clamp(1.4rem, 1.8vw, 1.8rem);
 line-height: 2em;
 font-feature-settings: "palt"1;
 letter-spacing: .5px;
}
.ex {
 max-width: 400px;
 width: 100%;
 margin: 12px auto 20px;
}
.ex li {
 margin-bottom: 12px;
 position: relative;
 line-height: 1.4em;
 text-align: left;
}
.ex li.ico {
 padding-left: 30px;
}
.ex li.ico::before {
 content: "";
 width: 30px;
 height: 100%;
 background: url("../images/campaign/kaede.png") top left no-repeat;
 background-size: auto 26px;
 display: inline-block;
 position: absolute;
 left: 0;
 top: 0;
}
.period {
 text-align: center;
 font-size: clamp(1.4rem, 1.8vw, 1.8rem);
 padding-bottom: 2rem;
 font-feature-settings: "palt"1;
 letter-spacing: .5px;
}
.period .bg-purple {
 background-color: var(--link-bg-color);
 display: inline-block;
 line-height: 1.4em;
 padding: 2px 12px;
 margin: 20px auto 0;
}
.period .bg-purple span {
 font-size: 1.6em;
 line-height: 1em;
 display: inline-block;
 vertical-align: bottom;
}
.step-item::after {
 content: "";
 display: block;
 width: 0;
 height: 0;
 border-left: 60px solid transparent;
 border-right: 60px solid transparent;
 border-top: 30px solid var(--sub-color);
 margin: 20px auto;
}
.main {
 position: relative; /* 背景の上に表示されるように */
 z-index: 1; /* 背景より前面 */
 text-align: center;
 width: 100%;
}
.billing {
 position: relative;
}
.billing .billing-inner {
 max-width: 900px;
 width: 96%;
 margin: 0 auto;
}
.billing .copyright {
 font-size: 1rem;
 line-height: 1.6em;
 margin: 2rem auto;
 padding-bottom: 2rem;
 text-align: center;
}
.list-pre {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
}
.list-pre li {
 background-color: rgba(255, 255, 255, 1);
 padding: 12px;
 width: 30%;
 margin: 1%;
}
#warningTxtAll {
 width: 100%;
 max-width: 860px;
 height: 300px;
 margin: 0 auto;
 overflow-x: hidden;
 overflow-y: auto;
}
#warningTxt {
 padding-right: 10px;
}
ul.disc {
 max-width: 800px;
 margin: 0 auto;
 padding: 1rem 0 2rem;
 font-size: clamp(1.1rem, 1.2vw, 1.2rem);
 line-height: 1.4em;
 font-weight: 400;
 font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
 text-align: left;
}
ul.disc li {
 margin-bottom: 1rem;
 position: relative;
 padding-left: 16px;
}
ul.disc li::before {
 content: "●";
 color: var(--link-bg-color);
 position: absolute;
 left: 0;
 z-index: 2;
}
ul.disc.kome li::before {
 content: "※";
 color: var(--sub-color);
}
.main-ph {
 aspect-ratio: 2.4 / 1;
 overflow: hidden;
}
.cp-logo {
 width: 36%;
 aspect-ratio: 1;
 position: absolute;
 display: flex;
 justify-content: flex-end;
 align-items: center;
 z-index: 2;
}
.cp-logo img {
 width: 44%;
 max-width: 285px;
}
.txt-catch {
 width: 2.05%;
 aspect-ratio: 3 / 53;
 position: absolute;
 display: flex;
 justify-content: flex-end;
 align-items: center;
 z-index: 2;
 left: 12%;
}
.txt-catch img {
 width: 94%;
}
@media screen and (max-width : 912px) {
 .txt-catch {
  aspect-ratio: 5 / 22;
  width: 9.6%;
  left: 12px;
 }
 .txt-catch img {
  width: 90%;
 }
}
.cp-obi {
 width: 100%;
 position: absolute;
 bottom: 0;
 left: 0;
 padding: 10px 6%;
 background: rgba(255, 255, 255, .6);
 -webkit-backdrop-filter: blur(8px);
 backdrop-filter: blur(8px);
 z-index: 2;
}
.cp-obi img {
 width: 80%;
 max-width: 900px;
}
.btn-area {
 margin: 20px auto 0;
}
.btn-area .btn {
 font-size: clamp(2rem, 2vw, 3rem);
 font-weight: 800;
 line-height: 1.4em;
 padding: 10px;
 border-radius: 40px;
 display: block;
 margin: auto;
 max-width: 320px;
 width: 80%;
 background-color: var(--link-color);
 color: #fff;
 display: flex;
 justify-content: center;
 align-items: center;
 transition: all 180ms 0s ease-out;
}
.btn-area .btn::before {
 display: block;
 content: " ";
 background: url("data:image/svg+xml;charset=utf-8,%3Csvg class='heart__icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ctitle%3Eframe%3C/title%3E%3Cg%3E%3Cpath fill='%23fff' d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z' /%3E%3C/g%3E%3C/svg%3E") center center no-repeat;
 background-size: 30px 30px;
 width: 30px;
 height: 30px;
 position: relative;
 margin-right: 12px;
 aspect-ratio: 1;
}
@media screen and (min-width : 913px) {
 .btn-area .btn:hover {
  opacity: .7;
 }
}
@media screen and (max-width : 912px) {
 .content {
  padding-top: 30px;
  padding-bottom: 30px;
 }
 .ex li::before {
  background: url("../images/campaign/kaede.png") top center no-repeat;
  background-size: auto 22px;
 }
 .list-pre {
  width: 102%;
  margin-left: -1%;
  margin-right: -1%;
 }
 .list-pre li {
  width: 48%;
  margin: 1%;
 }
 #warningTxt, .billing .copyright {
  font-size: 1rem;
 }
 .main-ph {
  aspect-ratio: 5 / 3;
  overflow: hidden;
 }
 .cp-logo {
  width: 40%;
 }
 .cp-logo img {
  width: 54%;
 }
 .cp-obi img {
  max-width: 480px;
 }
}
@media screen and (max-width : 520px) {
 .cp-logo {
  aspect-ratio: 1 / 1.04;
 }
}
/* ------------------------------
	動画
------------------------------ */
.movie-wrap {
 width: 100%;
 max-width: 1040px;
 margin: 0 auto 50px;
 display: flex;
 justify-content: center;
 align-content: center;
}
.movie-wrap-inner {
 position: relative;
 width: 100%;
 height: 0;
 padding-top: 56.25%;
 margin: auto;
 top: 0;
 bottom: 0;
}
.movie-wrap-inner iframe {
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 width: 100% !important;
 height: 100% !important;
 margin: auto;
 -o-object-fit: cover;
 object-fit: cover;
}
/* ------------------------------
	レスポンシブ
------------------------------ */
.sp {
 display: none;
}
@media screen and (max-width : 912px) {
 .sp {
  display: block;
 }
 .pc {
  visibility: hidden;
  display: none !important;
 }
}