@charset 'utf-8';

:root {
    --fullscreen-height: 100vh;
}

*, ::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 { font-family:"Hiragino Sans", Meiryo, sans-serif; color:#444; 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,p,blockquote,th,table,tbody,tr,td,a,img,label,time {
	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; }
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 { font-size:1px; }
@media (max-width:1280px) {     /* PC(Minimam) */
    html.LPPageScale { font-size:calc(1 / 1280 * 100vw); }
}
@media (max-width:980px) {     /* TABLET */
    html.LPPageScale { font-size:calc(1 / 768 * 100vw); }
}
@media (max-width:480px) {      /* MOBILE */
    html.LPPageScale { font-size:calc(1 / 375 * 100vw); }
}

/* 汎用コンテンツラッパー */
.LPContentWrapper { max-width:1200px; margin-left:auto; margin-right:auto; }
@media (max-width:1280px) {     /* PC(Minimam) */
    .LPContentWrapper { max-width:none; margin-left:40rem; margin-right:40rem; }
}
@media (max-width:980px) {     /* TABLET */
    .LPContentWrapper { margin-left:20rem; margin-right:20rem; }
}
@media (max-width:480px) {      /* MOBILE */
    .LPContentWrapper { margin-left:12rem; margin-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:15rem; line-height:24rem; padding:5rem 12rem; border:1rem solid #ccc; color:#444; background-color:#fff; }
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; height:auto; 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; }
select { height:36rem; }
textarea { width:100%; height:100rem; 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; }

/*
    インデックス
*/
dl.LPIndex { text-align:left; }
dl.LPIndex ~ dl { margin-top:32rem; }
dl.LPIndex dt { width:140rem; font-size:13rem; line-height:24rem; float:left; padding-right:12rem; }
dl.LPIndex dd { margin-left:140rem; font-size:15rem; line-height:24rem; }
dl.LPIndex dd~dd { margin-top:16rem; }
dl.LPIndex.left120 dt { width:120rem; }
dl.LPIndex.left120 dd { margin-left:120rem; }

/*
    スクロールロック
*/
html.LPScrollLocked { overflow:hidden; }
html.LPScrollLocked::-webkit-scrollbar { display:none; }
html.LPScrollLocked .body { overflow-y:hidden; }


/*
    フルスクリーン
*/
.LPFullScreen { width:100%; height:100vh; }
@media (max-width:980px) {     /* TABLET */
    .LPFullScreen { height:var(--fullscreen-height); }
}


/*
    諸々の読み込みが終わったらページを表示する
*/
.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 { visibility:hidden; }
footer.LPAdjustFooter.on { position:absolute; left:0; bottom:0; width:100%; visibility:visible; opacity:1; }


/*
    モバイルメニュー
*/
/* メニューボタン */
.LPMobileMenuButton { display:flex; width:60rem; height:60rem; display:flex; }
.LPMobileMenuButton > * { position:relative; display:block; width:80%; height:3rem; background: #fff; transition:background 0.66s; }
.LPMobileMenuButton > *::before,
.LPMobileMenuButton > *::after { content:''; position:absolute; left:0; top:0; width:100%; height:100%; background:#fff; transition:all 0.66s; }
.LPMobileMenuButton > *::before { transform:translateY(-14rem); }
.LPMobileMenuButton > *::after { transform:translateY(14rem); }
.LPMobileMenuOpen .LPMobileMenuButton:not(.noAnimation) > * { background:transparent; }
.LPMobileMenuOpen .LPMobileMenuButton:not(.noAnimation) > *::before { transform:translateY(0) rotate(45deg); }
.LPMobileMenuOpen .LPMobileMenuButton:not(.noAnimation) > *::after { transform:translateY(0) rotate(-45deg); }
@media (max-width:480px) {      /* MOBILE */
    .LPMobileMenuButton > * { width:28rem; height:3rem; }
    .LPMobileMenuButton > *::before { transform:translateY(-11rem); }
    .LPMobileMenuButton > *::after { transform:translateY(11rem); }
}
/* メニュー本体 */
.LPMobileMenu { position:fixed; left:0; top:0; width:100%; height:100%; z-index:999; pointer-events:none; opacity:0; transition:all 0.33s; }
.LPMobileMenuOpen .LPMobileMenu { 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; }


/*
    固定ポップアップトリガー
*/
.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%; }
.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; }
.LPFlex { display:flex; }
.LPFlexTop { display:flex; align-items:flex-start; }
.LPFlexCenter { display:flex; justify-content:center; align-items:center; }

/*
    figure
*/
.LPFixedRatio { padding-top:100%; position:relative; }
a.LPFixedRatio { display:block; }
.LPFixedRatio > * { position:absolute; left:0; top:0; width:100%; height:100%; }
.LPFixedRatio > img { object-fit:cover; font-family:'object-fit: cover;'; /*IE対策*/ }
.LPFixedRatio > img.noFixed { position:relative; left:auto; top:auto; width:auto; height:auto; }
.LPFixedRatio > img.contain { object-fit:contain; font-family:'object-fit: contain;'; /*IE対策*/ }
.LPFixedRatio.ratio3x2, .LPFixedRatio.ratio2by3 { padding-top:calc(2 / 3 * 100%); }
.LPFixedRatio.ratio2x3, .LPFixedRatio.ratio3by2 { padding-top:calc(3 / 2 * 100%); }
.LPFixedRatio.ratio4x3, .LPFixedRatio.ratio3by4 { padding-top:calc(3 / 4 * 100%); }
.LPFixedRatio.ratio3x4, .LPFixedRatio.ratio4by3 { padding-top:calc(4 / 3 * 100%); }
.LPFixedRatio.ratio5x4, .LPFixedRatio.ratio4by5 { padding-top:calc(4 / 5 * 100%); }
.LPFixedRatio.ratio240x100 { padding-top:calc(100 / 240 * 100%); }
.LPFixedRatio.ratio234x60 { padding-top:calc(60 / 234 * 100%); }
.LPFixedRatio.ratio175x60 { padding-top:calc(60 / 175 * 100%); }

/*
    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; }

/*
    大きなボタン
*/
.LPButtons { display:flex; }
.LPButton { display:inline-flex; justify-content:center; align-items:center; line-height:1; background-color:#fff; border-radius:4rem; width:240rem; height:52rem; padding:0; cursor:pointer; font-size:16rem; line-height:1; }
.LPButton > * { display:flex; justify-content:center; align-items:center; width:100%; height:100%; padding-left:12rem; padding-right:12rem; }
.LPButton + .LPButton { margin-left:20rem; }
.LPButton.borderGray { border:1rem solid #444; }
@media (max-width:480px) {      /* MOBILE */
    .LPButtons { display:flex; flex-direction:column; }
    .LPButton + .LPButton { margin-left:0; margin-top:20rem; }
}

/*
    PC/SP 切り替え
*/
.sp, span.sp, img.sp, br.sp { display:none; }
span.tb, br.tb { display:none; }
@media (max-width:980px) {      /* TABLET */
    span.pc, br.pc { display:none; }
    span.tb, br.tb { display:inline; }
}
@media (max-width:480px) {      /* MOBILE */
    .pc { display:none; }
    span.tb, br.tb { 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 .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(--black); color:#fff; border-color:var(--black); cursor:pointer; }

/*
    InView アクション
*/
.LPInView {  }
.LPInView .inViewFadeIn { opacity:0; transition:opacity 1s 0.5s; }
.LPInView.in .inViewFadeIn { opacity:1; }

/*
    アコーディオン
*/
.LPAccordion { cursor:pointer; }