@charset 'utf-8';

:root {
    --fullscreen-height: 100vh;
    --scroll-position: 0;
    --color-white: #fff;
    --color-black: #000;
    --color-text: #333;
}

*, ::before, ::after {
    margin:0px; padding:0px; box-sizing:border-box; vertical-align:baseline; backface-visibility:visible; justify-content:center; align-items:center; flex-wrap:wrap;
}

body, textarea, input, button, *::before, *::after { font-family:"Hiragino Sans", Meiryo, sans-serif; box-sizing:border-box; }

html { height:100%; overflow-y:scroll; }
body,main,section,article,aside,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,button,p,blockquote,th,table,tbody,tr,td,a,img,label,time,nav,figure {
	position:relative; padding:0; margin:0; border:none; border-spacing:0;
}
body {
    width:100%; min-height:100%; height:auto;
    text-align:center; word-break:break-all; word-wrap:break-word; overflow-wrap:break-word;
    font-size:0; line-height:0; letter-spacing:0; text-size-adjust:100%; font-feature-settings:"palt"; font-kerning:normal;
    background:#fcfcfc;
}
h1,h2,h3,h4,h5,h6 { font-weight:400; font-size:inherit; line-height:inherit; }
ul, ol { list-style:none; }
table { border-collapse: collapse; border: none; border-spacing:0; }
i { font-style:normal; }
main { position:absolute; left:0; top:0; width:100%; min-height:100%; }
section, figure { overflow:hidden; }
figure { font-size:0; line-height:0; letter-spacing:0; margin-left:auto; margin-right:auto; }
figure img { width:100%; height:auto; }
img { user-drag:none; -webkit-user-drag:none; }

/* A tag */
a, a:link, a:active, a:hover { text-decoration:none; }
a { color:inherit; }
a.block { display:block; }
a.inlineBlock { display:inline-block; vertical-align:baseline; }
a.underline { display:inline-block; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:#444; }


/* スケーリング (max-width:1200px margin:40px) */
html.LPPageScale { font-size:1px; }
@media (max-width:1280px) {     /* PC(Minimam) */
    html.LPPageScale { font-size:calc(1 / 1280 * 100vw); }
}
@media (max-width:480px) {      /* MOBILE */
    html.LPPageScale { font-size:calc(1 / 375 * 100vw); }
}

/* 汎用コンテンツラッパー */
.LPContentWrapper { max-width:1200px; width:100%; margin-left:auto; margin-right:auto; }
@media (max-width:1280px) {     /* PC(Minimam) */
    .LPContentWrapper { max-width:none; padding-left:40rem; padding-right:40rem; }
}
@media (max-width:480px) {      /* MOBILE */
    .LPContentWrapper { padding-left:12rem; padding-right:12rem; }
}


/* FORM default */
/*
input, select, textarea { width:100%; }
*/
input, textarea, button { -webkit-appearance:none; -moz-appearance:none; outline:none; appearance:none; }
input, textarea, button, select { font-size:16rem; line-height:24rem; padding:10rem 12rem; border:1rem solid #ccc; color:#444; background-color:#fff; border-radius: 0; }
input::placeholder, textarea::placeholder { color:#acacac; }
input[type=number]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; -moz-appearance:textfield; margin: 0; }
input[type=file] { border:none; padding:0; }
input[type=radio] { width:24rem; height:24rem; margin-right:8rem; padding:0; position:relative; border-radius:50%; vertical-align:text-bottom; }
input[type=radio]:checked::before { content:''; position:absolute; left:3rem; top:3rem; width:16rem; height:16rem; border-radius:50%; background-color:#444; }
input[type=checkbox] { width:24rem; height:24rem; margin-right:8rem; padding:0; position:relative; vertical-align:text-bottom; }
input[type=checkbox]:checked::before { content:''; position:absolute; width:10rem; height:18rem; left:10rem; top:17rem; border:3rem solid #444; border-right:none; border-bottom:none; transform:rotate(-135deg); transform-origin:left top; }
textarea { width:100%; height:200rem; resize:vertical; }
button { display:inline-flex; justify-content:center; align-items:center; font-size:12rem; line-height:1; padding:0 10rem; background-color:#fff; border:1rem solid #ccc; border-radius:4rem; height:36rem; }
button > * { display:flex; justify-content:center; align-items:center; width:100%; height:100%; padding-left:12rem; padding-right:12rem; }
label { display:inline-block; white-space:nowrap; }
*[type=submit] { transition:opacity 0.2s; }
*[type=submit]:disabled { opacity:0.33; }
input:-webkit-autofill { transition: background-color 10000s ease-in-out 0s; }


/*
    スクロールロック
*/
html.LPScrollLocked { overflow:hidden; }
html.LPScrollLocked::-webkit-scrollbar { display:none; }
html.LPScrollLocked .body { overflow-y:hidden; }


/*
    遅延読み込み
*/
.LPDelayLoad { opacity:0;  visibility:hidden; }
.LPDelayLoad:not(.nofade) { transition:opacity 0.2s; }
.LPDelayLoad.loaded,
.LPDelayLoad.nofade { opacity:1; visibility:visible; }


/*
    フルスクリーン
*/
.LPFullScreen { width:100%; height:100vh; }
@media (max-width:980px) {     /* TABLET */
    .LPFullScreen { height:var(--fullscreen-height); }
}


/*
    諸々の読み込みが終わったらページを表示する

    .LPLoadingIcon がついている要素はページが読み込まれるまで表示され、終わると消える
*/
.LPActivateAfterLoading main { visibility:hidden; opacity:0; }
.LPActivateAfterLoading .LPLoadingIcon { position:fixed; left:50%; top:50%; transform:translate(-50%, -50%); pointer-events:none; opacity:0; transition:opacity 0.66s 1s; }
.LPActivateAfterLoading .LPLoadingIcon.on { opacity:1; }
.LPActivateAfterLoading.ready .LPLoadingIcon.on { opacity:0; transition:opacity 0.33s; }
.LPActivateAfterLoading.ready main { visibility:visible; opacity:1; transition:opacity 0.2s; }


/*
    完全固定ヘッダー
*/
.LPFixedHeader { position:fixed; left:0; top:0; width:100%; z-index:1000; }


/*
    スクロール固定ヘッダー
*/
.LPHeaderGuide { height:0; }
.LPAttachmentHeaderAttached .LPAttachmentHeader { position:fixed; left:0; top:0; width:100%; z-index:1000; }


/*
    ヘッダー
*/
.LPHeader { box-shadow:0 1rem 2rem rgba(0, 0, 0, 0.1); background-color:rgba(255, 255, 255, 0.95); }
.LPHeader > * { width:100%; max-width:1200px; margin:0 auto; display:flex; justify-content:flex-start;  }
.LPHeader .logo { margin-right:80rem; }
.LPHeader .logo > * { display:flex; height:100%; }
.LPHeader nav > ul { display:flex; }
.LPHeader nav > ul > li { display:flex; height:60rem; font-size:15rem; line-height:1; }
.LPHeader nav > ul > li > *:not(.subMenu) { display:flex; width:100%; height:100%; padding:0 20rem; }
.LPHeader nav ul.subMenu { display:none; position:absolute; left:50%; top:0; transform:translateX(-50%); white-space:nowrap; margin-top:58rem; border:1rem solid #ccc; background-color:#fff; }
.LPHeader nav ul.subMenu::before, .LPHeader nav ul.subMenu::after { content:''; position:absolute; left:50%; top:-12rem; border:12rem solid transparent; border-top:none; border-bottom:12rem solid #ccc; transform:translateX(-50%); }
.LPHeader nav ul.subMenu::after { top:-10rem; border-width:10rem; border-bottom:10rem solid #fff; }
.LPHeader nav ul.subMenu > li { height:40rem; font-size:15rem; line-height:1; }
.LPHeader nav ul.subMenu > li > * { display:flex; height:100%; padding:0 20rem; justify-content:flex-start; }
.LPHeader nav > ul > li:hover ul.subMenu { display:block; }
@media (max-width:980px) {     /* TABLET */
    .LPHeader nav .contentWrapper { height:40rem; justify-content:center; }
    .LPHeader nav .logo { margin-right:0; }
    .LPHeader nav nav { display:none; }
}
@media (max-width:480px) {      /* MOBILE */
    .LPHeader nav { height:40rem; }
}


/*
    フッター
*/
.LPFooter { padding-top:60rem; }
.LPFooter > * { font-size:14rem; line-height:22rem; padding:20rem 0; background-color:#f8f8f8; }
.LPFooter nav > ul { display:flex; justify-content:flex-start; }
.LPFooter nav > ul > li { font-size:12rem; line-height:15em; margin-right:40rem; }

/*
    固定フッター
*/
footer.LPAdjustFooter { position:absolute; left:0; bottom:0; width:100%; opacity:1; visibility:hidden; }
footer.LPAdjustFooter .luckypeaks { width:0; height:0; overflow:hidden; }
footer.LPAdjustFooter.on { visibility:visible; }

footer.LPFixedFooter { position:fixed; left:0; bottom:0; width:100%; }

/*
    ポップアップメニュー
*/
/* メニューボタン */
.LPPopupMenuButton { display:flex; width:60rem; height:60rem; }
.LPPopupMenuButton > * { position:relative; display:block; width:80%; height:3rem; background: #fff; transition:background 0.66s; }
.LPPopupMenuButton > *::before,
.LPPopupMenuButton > *::after { content:''; position:absolute; left:0; top:0; width:100%; height:100%; background:#fff; transition:all 0.66s; }
.LPPopupMenuButton > *::before { transform:translateY(-14rem); }
.LPPopupMenuButton > *::after { transform:translateY(14rem); }
.LPPopupMenuOpen .LPPopupMenuButton:not(.noAnimation) > * { background:transparent; }
.LPPopupMenuOpen .LPPopupMenuButton:not(.noAnimation) > *::before { transform:translateY(0) rotate(45deg); }
.LPPopupMenuOpen .LPPopupMenuButton:not(.noAnimation) > *::after { transform:translateY(0) rotate(-45deg); }
@media (max-width:480px) {      /* MOBILE */
    .LPPopupMenuButton > * { width:28rem; height:3rem; }
    .LPPopupMenuButton > *::before { transform:translateY(-11rem); }
    .LPPopupMenuButton > *::after { transform:translateY(11rem); }
}
/* メニュー本体 */
.LPPopupMenu { position:fixed; left:0; top:0; width:100%; height:100%; z-index:999; pointer-events:none; opacity:0; transition:all 0.33s; }
.LPPopupMenuOpen .LPPopupMenu { pointer-events:auto; opacity:1; }

/*
    タブ
*/
.LPTabs { display:flex; user-select:none; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; }
.LPTabs > * { cursor:pointer; }
.LPTabPage { display:none; }
.LPTabPage.active { display:block; }

/*
    文字列変形
*/
.LPTextStretch { overflow:hidden; }
.LPTextStretch > *:first-child { white-space:nowrap; display:inline-block; transform:scaleX(1); transform-origin:left; }


/*
    選択不可
*/
.LPUnselect { user-select:none; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; }
.LPUndrag { user-drag:none; -webkit-user-drag:none; }

/*
    スクロールバーを消す
*/
.LPHideScrollBar { scrollbar-width: none; }
.LPHideScrollBar::-webkit-scrollbar { display:none; -ms-overflow-style:none; }

/*
    固定ポップアップトリガー
*/
.LPFixedDialogTrigger:hover { cursor:pointer; }
.LPFixedDialogContent { position:fixed; left:0; top:0; width:100%; height:100%; z-index:2000; transition:opacity 0.2s; }
.LPFixedDialogContent .bg { position:absolute; left:0; top:0; width:100%; height:100%; transition:background-color 0.2s; }
.LPFixedDialogContent .scroller { position:absolute; left:0; top:0; width:100%; height:100%; display:flex; overflow-y:scroll; padding:40rem 0; }
.LPFixedDialogContent .close:hover { cursor:pointer; }
.LPFixedDialogContent.active .bg { background-color:rgba(0, 0, 0, 0.5); }
.LPFixedDialogContent.closing { opacity:0; }

/*
    スクロールアクションボタン
*/
.LPScrollTo { cursor:pointer; }

/*
    汎用
*/
.LPInvisible { display:none !important; }
.LPWidthFull { width:100%; }
.LPAdjustFull { position:absolute; left:0; top:0; width:100%; height:100%; }
.LPAdjustFixedFull { position:fixed; left:0; top:0; width:100%; height:100%; }
.LPCenterPosition { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); }
.LPCenterMargin { margin-left:auto; margin-right:auto; }
.LPLeftPosition { position:absolute; left:0; top:50%; transform:translateY(-50%); }
.LPTextCenter { text-align:center; }
.LPTextCenter > * { display:inline-block; text-align:left; }
.LPFlexBox { display:flex; }
.LPFlexBox.column { flex-direction:column; }
.LPFlexBox.left { justify-content:flex-start; }
.LPFlexBox.top { align-items:flex-start; }

/* 画像をフィットさせる */
img.LPImageFit { position:absolute; left:0; top:0; width:100%; height:100%; object-fit:cover; }

/*
    CSSで作る×ボタン
*/
.LPCloseIcon { width:32rem; height:32rem; display:block; position:absolute; right:0; top:0; cursor:pointer; }
.LPCloseIcon::before, .LPCloseIcon::after { content:''; position:absolute; left:50%; top:50%; width:32rem; height:2rem; background-color:#444; }
.LPCloseIcon::before { transform:translate(-50%, -50%) rotate(45deg); }
.LPCloseIcon::after { transform:translate(-50%, -50%) rotate(-45deg); }
.LPCloseIcon.small { width:16rem; height:16rem; }
.LPCloseIcon.small::before, .LPCloseIcon.small::after { width:16rem; height:2rem; }

/*
    CSSで作る矢印○ボタン
*/
.LPCircleArrow { width:52rem; height:52rem; display:block; border-radius:50%; background-color:rgba(0, 0, 0, 0.5); cursor:pointer; }
.LPCircleArrow::before, .LPCircleArrow::after { content:''; position:absolute; left:33%; top:48%; width:33%; height:4%; background-color:#fff; }
.LPCircleArrow::before { transform-origin:left center; transform:rotate(-45deg); }
.LPCircleArrow::after { transform-origin:left center; transform:rotate(45deg); }

/*
    汎用的な大きなボタン
*/
.LPButtons { display:flex; margin-top:60rem; gap:20rem; }
.LPButtons.vertical { flex-direction:column; }
.LPButtons.shortTopMargin, .LPButtons.shortMarginTop { margin-top:40rem; }
.LPButtons.largeTopMargin, .LPButtons.largeMarginTop { margin-top:100rem; }
.LPButton { display:inline-flex; justify-content:center; align-items:center; background-color:#fff; border-radius:3rem; width:320rem; height:52rem; padding:0; cursor:pointer; font-size:16rem; line-height:1.25; border:1rem solid; }
.LPButton > * { display:flex; justify-content:center; align-items:center; width:100%; height:100%; padding-left:12rem; padding-right:12rem; }
.LPButton.borderGray { border:1rem solid #444; }
.LPButton.arrow::after { content:''; position:absolute; top:calc(50% - 1rem); width:14rem; height:14rem; border:2rem solid; border-bottom:none; }
.LPButton.arrow.prev::after { left:20rem;  border-right:none; transform-origin:left top; transform:rotate(-45deg); }
.LPButton.arrow.next::after { right:20rem; border-left:none; transform-origin:right top; transform:rotate(45deg); }
@media (max-width:480px) {      /* MOBILE */
    .LPButtons { display:flex; flex-direction:column-reverse; margin-top:40rem; gap:20rem; }
    .LPButtons.spNoReverse { flex-direction:column; }
    .LPButtons.horizontal { flex-direction:row; }
    .LPButtons.shortTopMargin { margin-top:20rem; }
    .LPButtons.largeTopMargin { margin-top:60rem; }
    .LPButton.arrow::after { width:10rem; height:10rem; }
}

/*
    PC/SP 切り替え
*/
.sp, span.sp, img.sp, br.sp { display:none; }
@media (max-width:480px) {      /* MOBILE */
    .pc { display:none; }
    .sp { display:block; }
    span.sp, img.sp, br.sp { display:inline; }
}

/*
    フォント / テキスト関連
*/
.fwNormal { font-weight:400; }
.fwMedium { font-weight:500; }
.fwSemiBold { font-weight:600; }
.fwBold { font-weight:700; }
.fwBlack { font-weight:900; }
.taCenter { text-align:center; }
.taLeft { text-align:left; }
.taRight { text-align:right; }

/*
    Hoverアクション
*/
/*  ホバーアクション
----------------------------------------*/
html.LPHoverReady .LPHoverFade { transition:opacity 0.33s; }
html.LPHoverReady .LPHoverFade:hover { opacity:0.66; cursor:pointer; }
html.LPHoverReady .LPHoverFadeChild .fadeItem { transition:opacity 0.33s; }
html.LPHoverReady .LPHoverFadeChild:hover .fadeItem { opacity:0.66; cursor:pointer; }
html.LPHoverReady .LPHoverZoom { transition:transform 0.33s; }
html.LPHoverReady .LPHoverZoom:hover { transform:scale(1.1); cursor:pointer; }
html.LPHoverReady .LPHoverZoom2 { transition:transform 0.33s; }
html.LPHoverReady .LPHoverZoom2:hover { transform:scale(1.2); cursor:pointer; }
html.LPHoverReady .LPHoverZoom3 { transition:transform 0.33s; }
html.LPHoverReady .LPHoverZoom3:hover { transform:scale(1.3); cursor:pointer; }
html.LPHoverReady .LPHoverZoomImg img { transition:transform 0.33s; }
html.LPHoverReady .LPHoverZoomImg:hover img { transform:scale(1.1); cursor:pointer; }
html.LPHoverReady .LPHoverZoomChild .zoomItem { transition:transform 0.33s; }
html.LPHoverReady .LPHoverZoomChild:hover .zoomItem { transform:scale(1.1); cursor:pointer; }
html.LPHoverReady .LPHoverUpShadow { transition:transform 0.4s, box-shadow 0.4s; }
html.LPHoverReady .LPHoverUpShadow:hover { transform:translateY(-8rem); box-shadow:6rem 6rem 12rem rgba(0, 0, 0, 0.1); cursor:pointer; }
html.LPHoverReady .LPHoverGreyBg { transition:background 0.33s; }
html.LPHoverReady .LPHoverGreyBg:hover { background:#eee; cursor:pointer; }
html.LPHoverReady .LPHoverBlackBg { transition:background 0.33s, color 0.33s; }
html.LPHoverReady .LPHoverBlackBg:hover { background:var(--color-black); color:var(--color-white); border-color:var(--color-black); cursor:pointer; }
html.LPHoverReady .LPHoverWhiteBg { transition:background 0.33s, color 0.33s; }
html.LPHoverReady .LPHoverWhiteBg:hover { background:var(--color-white); color:var(--color-black); border-color:var(--color-white); cursor:pointer; }
html.LPHoverReady .LPHoverWhite20Bg { transition:background 0.33s; }
html.LPHoverReady .LPHoverWhite20Bg:hover { background:rgba(255,255,255,0.2); cursor:pointer; }
html.LPHoverReady .LPHoverWhite33Bg { transition:background 0.33s; }
html.LPHoverReady .LPHoverWhite33Bg:hover { background:rgba(255,255,255,0.33); cursor:pointer; }
html.LPHoverReady .LPHoverWhiteShadow { transition:box-shadow 0.33s; }
html.LPHoverReady .LPHoverWhiteShadow:hover { box-shadow:0 0 8rem #fff; cursor:pointer; }

/*
    InView アクション
*/
.LPInView {  }
.LPInView .inViewFadeIn { opacity:0; transition:opacity 1s 0.5s; }
.LPInView.in .inViewFadeIn { opacity:1; }

/*
    アコーディオン
*/
.LPAccordion { cursor:pointer; }

/*  ローディングアイコン
<div class="LPLoadingSpinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>
---------------------------------------------------------*/
.LPLoadingSpinner { position:fixed; left:50%; top:50%; transform:translate(-50%, -50%); width: 70px; text-align: center; transition:opacity 0.33s; pointer-events:none; }
.LPLoadingSpinner > div { width: 18px; height: 18px; background-color:var(--color-text); border-radius: 100%; display: inline-block; animation: sk-bouncedelay 1.4s infinite ease-in-out both; }
.LPLoadingSpinner .bounce1 { -webkit-animation-delay: -0.32s; animation-delay: -0.32s; }
.LPLoadingSpinner .bounce2 { -webkit-animation-delay: -0.16s; animation-delay: -0.16s; }
html.ready .LPLoadingSpinner { opacity:0; }
html.ready .LPLoadingSpinner > div { opacity:0; }
@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% { -webkit-transform: scale(0) }
  40% { -webkit-transform: scale(1.0) }
}
@keyframes sk-bouncedelay {
  0%, 80%, 100% { 
    -webkit-transform: scale(0);
    transform: scale(0);
  } 40% { 
    -webkit-transform: scale(1.0);
    transform: scale(1.0);
  }
}
