@charset "UTF-8";

html {
 scroll-behavior:smooth;
}

body {
 line-height:1;
 font-family:"メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", Osaka, sans-serif;
}

img {
 max-width:100%;
 max-height:100%;
 white-space:pre;
}
*,
*::before,
*::after {
 margin:0;
 padding:0;
 box-sizing:border-box;
}

html:focus-within {
 scroll-behavior:smooth;
}

body {
 min-height:100vh;
 line-height:1.5;

 text-rendering:optimizeSpeed;
}

img,
picture,
video,
canvas,
svg {
 display:block;
 width:100%;
 max-width:100%;
 height:auto;
}

input,
button,
textarea,
select {
 font:inherit;
}

ul,
ol {
 list-style:none;
}

a {
 display:inline-block;
 color:inherit;
 text-decoration:none;
}

table {
 border-collapse:collapse;
 border-spacing:0;
}

fieldset,
legend {
 margin:0;
 padding:0;
 border:0;
}

button {
 padding:0;
 border:none;
 background:none;
 cursor:pointer;
}

/* Scrollbar Styles */
::-webkit-scrollbar {
 width:8px;
 height:8px;
}

::-webkit-scrollbar-track {
 background:#f1f1f1;
}

::-webkit-scrollbar-thumb {
 border-radius:4px;
 background:#c1c1c1;
}
::-webkit-scrollbar-thumb:hover {
 background:#a8a8a8;
}

/*header*/
header {
 position:relative;
 z-index:2;
 box-shadow:0 0 10px rgba(0, 0, 0, .3);
 background-color:#ffffff;
 text-align:center;
}

.logoimg {
 display:block;
 margin:0 auto;
}

.logoimg img {
 width:auto;
 height:max(35px,2.5vw);
}

.mypage-btn.mypage-btn {
 font-size:14px;
}

.back-btn__text {
 font-size:16px;
}

/* footer */
.footer__gnav-item > a,
.footer__nav-text > a {
 font-size:16px;
}
.footer__inner {
 margin:2.5rem auto;
}
.footer__nav {
 padding-bottom:0;
}

/*sns*/
.sns_btn {
 display:flex;
 justify-content:flex-end;
}

.sns_btn a {
 display:block;
 width:100%;
 max-width:42px;
}

.sns_btn a img {
 width:100%;
}

.sample_bg {
 margin:1rem 0;
 padding:.5rem;
 background-color:#f2f2f2;
}

/* ==================================================
lity 設定
================================================== */
.lity {
 background-color:#ffffff8f!important;
}
.lity-content {
 padding:4% 3%;
 background-color:#ffffff;
}

.lity-image img {
 height:80vh;
 max-height:100%;

 -o-object-fit:contain;
    object-fit:contain;
}

@media (max-width: 769px) {
 .lity-image img {
  height:auto;
 }
}

.lity {
 backdrop-filter:blur(3px);
}

[data-lity] {
 cursor:pointer;
}

[data-lity]:hover {
 opacity:.5;
 transition:.3s;
}

html:has(.lity-opened) {
 overflow:hidden;
 background-color:#3b3b3b;

 scrollbar-gutter:stable;
}

/* ==================================================
ベーススタイル
================================================== */
@import url("https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@100;400;700;800&display=swap");
*,
*::before,
*::after {
 margin:0;
 padding:0;
 box-sizing:border-box;
}

html:focus-within {
 scroll-behavior:smooth;
}

body {
 min-height:100vh;
 line-height:1.5;

 text-rendering:optimizeSpeed;
}

img,
picture,
video,
canvas,
svg {
 display:block;
 width:100%;
 max-width:100%;
 height:auto;
}

input,
button,
textarea,
select {
 font:inherit;
}

ul,
ol {
 list-style:none;
}

a {
 color:inherit;
 text-decoration:none;
}

table {
 border-collapse:collapse;
 border-spacing:0;
}

fieldset,
legend {
 margin:0;
 padding:0;
 border:0;
}

button {
 padding:0;
 border:none;
 background:none;
 cursor:pointer;
}

/* Scrollbar Styles */
::-webkit-scrollbar {
 width:8px;
 height:8px;
}

::-webkit-scrollbar-track {
 background:#f1f1f1;
}

::-webkit-scrollbar-thumb {
 border-radius:4px;
 background:#c1c1c1;
}

::-webkit-scrollbar-thumb:hover {
 background:#a8a8a8;
}

/* @media screen and (max-width: 1420px) {
 [id^=a_] {
  scroll-margin-top:54px;
 }
} */
/* main {
 flex:1;
 position:relative;
 width:100%;
 max-width:1100px;
 margin:0 auto;
 margin-top:64px;
 padding:0;
 background-color:white;
} */

/* @media screen and (max-width: 428px) {
 main {
  min-height:calc(100vh - 48px - 56px);
  margin-top:48px;
  padding:0;
  padding-bottom:56px;
 }
}
@media screen and (max-width: 375px) {
 main {
  min-height:calc(100vh - 48px - 52px);
  padding-bottom:52px;
 }
} */

/* ==================================================
top-btn
================================================== */
.c_pagetop {
 display:block;
 position:fixed;
 right:.5vw;
 bottom:.5vw;
 z-index:90;
 width:60px;
 height:60px;
 padding-top:27px;
 border-radius:40px;
 box-sizing:border-box;
 background-color:#b1b1b1;
 color:#ffffff;
 font-weight:bold;
 font-size:16px;
 line-height:22px;
 text-decoration:none !important;
 text-align:center;

 pointer-events:auto;
}

@media (max-width:769px) {
 .c_pagetop {
  bottom:max(60px,10vw);
 }
}

.c_pagetop:before {
 position:absolute;
 top:10px;
 left:0;
 width:100%;
 font-size:16px;
 text-align:center;
 content:"▲";
}

.c_pagetop:hover {
 opacity:.5;
 transition:.5s;
}

/* ==================================================
lity 設定
================================================== */
.lity {
 background-color:rgba(255, 255, 255, .5607843137) !important;
}

.lity-content {
 padding:4% 3%;
 background-color:#ffffff;
}

.lity-image img {
 height:80vh;
 max-height:100%;

 -o-object-fit:contain;
    object-fit:contain;
}

@media (max-width: 769px) {
 .lity-image img {
  height:auto;
 }
}
.lity {
 -webkit-backdrop-filter:blur(3px);
         backdrop-filter:blur(3px);
}

[data-lity] {
 cursor:pointer;
}

[data-lity]:hover {
 opacity:.5;
 transition:.3s;
}

html:has(.lity-opened) {
 overflow:hidden;
 background-color:#3b3b3b;

 scrollbar-gutter:stable;
}

/* --- lightbox ------------------------------ */
.lightboxOverlay {
 background-color:rgba(0, 0, 0, .7098039216);

 -webkit-backdrop-filter:blur(3px);
         backdrop-filter:blur(3px);
}

/* snsリンク -------------------------*/
/* SNS Styles */
.sns {
 position:absolute;
 top:0;
 right:calc(-1 * (var(--sns-icon-width) + var(--sns-left-space)));
 height:100%;

 --sns-icon-width:48px;
 --sns-left-space:8px;
 --sns-button-group-height:96px;
 --sns-button-group-bottom-space:16px;
}

.sns.hide {
 transform:translateY(100%);
}

.sns__button-group {
 position:sticky;
 top:calc(100svh - var(--sns-button-group-height) - var(--sns-button-group-bottom-space));
}

.sns__icons {
 display:flex;
 flex-direction:column;
}

.sns__image-wrapper {
 width:48px;
 cursor:pointer;
}

.sns__image-logo {
 display:none;
}

/* SNSボタン表示切替 */
/* コンテンツ幅を変えたらmax-widthを調整 */
@media screen and (max-width: 1250px) {
 .sns {
  position:fixed;
  top:unset;
  right:0;
  bottom:0;
  width:100%;
  height:auto;
  padding:1rem 1.5rem 1.5rem;
  background-color:#ffffff;
  transition:transform .2s ease;
 }
 .sns .sns__button-group {
  display:flex;
  justify-content:space-between;
 }
 .sns .sns__image-logo {
  display:block;
  width:128px;
 }
 .sns .sns__icons {
  display:flex;
  flex-direction:row;
  align-items:center;

  gap:.5rem;
 }
 .sns .sns__image-wrapper {
  width:36px;
 }
}
/* SNSリンク ここまで------------------------- */