@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*PCSP共通設定*/
html {scroll-behavior: smooth;}/*smooth scroll*/
body{font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif;}/*LP個別のフォントファミリーの設定は、article内での範囲指定を行ってください*/
a{transition: .3s;}
a:link,
a:visited{color: #0952a4;}
a:hover{opacity: 0.7;}

section:nth-of-type(odd){background-color:#fff;}
section:nth-of-type(even){background-color:#f0f0f0;}

article {
  position: relative; /* ★追加：擬似要素の基準位置にするために必須です */
  z-index: 0;         /* ★追加：記事自体が他の要素の下に隠れないようにします */
  
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
}

*, *:before, *:after {
	box-sizing: border-box;
}

.textLeft {
	text-align: left;
}

.textCenter {
	text-align: center;
}

.textRight {
	text-align: right;
}

.red {
	color: #ff0000;
}

strong {
  font-weight: 600;
}

.marker {
    background-image: linear-gradient(0deg, transparent 0.3em, #ffff33 0.3em, #ffff33 0.8em, transparent 0.8em);
    padding: 0.2em; /* テキストの周りにスペースを追加 */
    border-radius: 4px; /* 角を丸くする */
}


/* --- 追加：親要素（ラッパー） --- */
.marquee-wrapper {
	position: relative; /* 重ね合わせの基準にする */
	width: 100%;
	overflow: hidden; /* はみ出しを防ぐ */
}

/* --- 追加：前面に固定する画像 --- */
.fixed-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%); /* ど真ん中に配置 */
	z-index: 10; /* スクロール画像より手前に表示 */
	/*height: auto;*/
}

/* --- 既存のCSS（そのまま利用） --- */
.marquee-right {
	overflow: hidden;
}

.marquee-right ul {
	animation: marquee-right 30s linear infinite; /* 20s スクロール1回にかかる秒数 */
	display: flex;
	margin: 0;
	padding: 0;
	width: max-content;
}

.marquee-right img {
	display: block;
	width: 100%;
	height: auto; /* 画像の縦横比を維持 */
}

@keyframes marquee-right {
	from {
		transform: translateX(0%);
	}
	to {
		transform: translateX(-50%);
	}
}

/*アコーディオン*/
.accordion {
  margin: 1em auto .5em;
  border: 2px solid #d0d0d0;
  border-radius: 5px;
}

.accordion summary {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 1em 2em;
  color: #000;
  font-weight: 600;
  cursor: pointer;
}

.accordion summary::-webkit-details-marker {
  display: none;
}

.accordion summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 10px;
  height: 10px;
  margin-left: 10px;
  border-bottom: 3px solid #000;
  border-right: 3px solid #000;
  content: '';
  transition: transform .3s;
}

.accordion[open] summary::after {
  transform: rotate(225deg);
}

.accordion p {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  transition: transform .5s, opacity .5s;
}

.accordion[open] p {
  transform: none;
  opacity: 1;
}

/*注意事項*/
ul.guideList {
}

ul.guideList li {
	padding-bottom: .5em;
	text-indent: -1em;
  margin-left: 1em;
  text-align: left;
}

ul.guideList li:last-child {
	padding-bottom: 0;
}

ul.guideList li:before {
	content: '◆';
}

ul.guideList li.kome:before {
	content: '※';
}


/*759px以下*/
@media screen and (max-width: 759.9px) {
#wrapper {line-height: 1.4;}
.spnone{display:none;}

/* CSS */
#dirPathBlock {
	overflow-x: scroll;
	overflow-y: hidden;
}
#dirPathBlock,
#anchorLinkBlock {margin: 0 1%;}
#dirPathBlock p,
#anchorLinkBlock a{font-size: 12px;}
#dirPathBlock p {width: max-content;}
h1 {
	font-size: 12px;
	margin: 0 1% 1%;
}
h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	color: #22219b;
	font-size: 20px;
	text-shadow: 3px 3px 0px rgba(238, 238, 238, 1);
	font-weight: 700;
	margin: 2em 0 1em;
}
.inner{
	width: 96%;
	margin: 0 2%;
	padding: 24px 0;
	box-sizing: border-box;
}

/*title*/
.marquee-right ul li {
	list-style: none;
	padding: 0 1px;
	box-sizing: border-box; /* これを入れるとpaddingの計算が不要になる */
	width: calc(100vw / 1.5); /* 1.5写真の枚数にあわせる */
}

.fixed-overlay {
	width: 86%;
	height: auto;
}

/*イントロ*/
.intro {
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin: 1em;
}

.catch {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22219B;
  font-size: 26px;
  text-shadow: 0px 0px 10px rgba(239, 216, 10, 1);
  font-weight: 900;
}

.discount {
  font-size: 50px;
}

/*キャンペーン概要*/
dl.unit  {
  width: 100%;
	padding: 1px 0;
}

dl.unit dt {
	width: 100%;
	padding: .4em .8em;
  color: #FFF;
  background: #006cb8;
}

dl.unit dd {
  width: 100%;
  padding: .4em .8em;
  background: #FFF;
}

/*アコーディオン*/
.accordion {
  width: 100%;
}

/*割引きについて*/
.group {
  margin: .5em 0 1.5em;
  padding: 0 1em;
}

.group h3 {
  background: #EEE;
  padding: .5em;
  margin-bottom: .5em;
  font-weight: 600;
}

.group img {
  max-width: 100%;
  margin-top: .5em;
}

/*list横並び*/
.itemList2 > div,
.itemList3 > div,
.itemList4 > div {
    width: 100%;
    margin: 1em 0;
}

/*ボタン*/
.Btn a {
    background: #003399;
    border-radius: 9999px;
    position: relative;
    display: flex;
    /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}

.Btn02 a {
    background: #ff9933;
    border-radius: 9999px;
    position: relative;
    display: flex;
   /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}

.Btn_gray {
    background: #333;
    border-radius: 9999px;
    position: relative;
    display: flex;
    /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}
.Btn a:after,
.Btn02 a:after,
.Btn_gray:after {
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}
.Btn a:hover:after,
.Btn02 a:hover:after,
.Btn_gray:hover:after {
    border-color: #FFF;
}




}

/*760px以上*/
@media screen and (min-width: 760px),print {
#wrapper {line-height: 1.231;}
.pcnone{display:none;}

/* CSS */
#dirPathBlock,
.iframe_end-content_gadget,
#anchorLinkBlock{
	width: 100%;
	max-width:1080px;
	min-width:760px;
	margin: auto;
}
#dirPathBlock,
#anchorLinkBlock {
	width: 100%;
	margin: 0 auto;
	display: block;
	font-size: 12px;
}
#dirPathBlock p,
#anchorLinkBlock a{font-size: 12px;}
h1 {
	font-size: 12px;
    width: 100%;
	max-width:1080px;
	min-width:760px;
    margin: 0 auto 5px;
}
h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	color: #22219b;
	font-size: 24px;
	text-shadow: 3px 3px 0px rgba(238, 238, 238, 1);
	font-weight: 700;
	margin: 2em 0 1em;
}
.inner{
	width: 100%;
	max-width:1080px;
	min-width:760px;
	margin: 0 auto;
	padding:50px 0;
	display: block;
}

/*title*/
.marquee-right ul li {
	list-style: none;
	padding: 0 1px;
	box-sizing: border-box; /* これを入れるとpaddingの計算が不要になる */
	width: calc(100vw / 2.5); /* 2.5写真の枚数にあわせる */
}

.fixed-overlay {
	width: 100%;
    max-width: 880px;
}

/*イントロ*/
.intro {
  font-size: 22px;
  font-weight: 600;
  text-align: center;
  margin: 1em;
}

.catch {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22219B;
  font-size: 34px;
  text-shadow: 0px 0px 10px rgba(239, 216, 10, 1);
  font-weight: 900;
}

.discount {
  font-size: 60px;
}

/*キャンペーン概要*/
dl.unit {
  width: 1080px;
	padding: 1px 0;
  margin: 0 auto;
  display: table;
}

dl.unit dt {
	width: 20%;
  padding: .5em 1em;
  display: table-cell;
  color: #FFF;
  background: #006cb8;
}

dl.unit dd {
  width: 80%;
  padding: .5em 1em;
  background: #F3F3F3;
  display: table-cell;
}

/*アコーディオン*/
.accordion {
  width: 1080px;
}

/*割引きについて*/
.group {
  margin: .5em 0 1.5em;
  padding: 0 1.5em;
}

.group h3 {
  background: #EEE;
  padding: .5em;
  margin-bottom: .5em;
  font-weight: 600;
}

.group img {
	width: 100%;
  max-width: 1040px;
  margin-top: .5em;
}

/*list横並び*/
.itemList2,
.itemList3,
.itemList4 {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;   /* 項目間の等間隔（任意の値に調整） */
  padding: 0;  /* コンテナ両端の内側余白をゼロにする */
  margin: 1em 0;
}

/* 2列 */
.itemList2 > div {
  box-sizing: border-box;
  width: calc((100% - 1 * 20px) / 2); /* gap が 1 箇所なので (100% - gap) / 2 */
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* 3列 */
.itemList3 > div {
  box-sizing: border-box;
  width: calc((100% - 2 * 20px) / 3); /* gap が 2 箇所なので (100% - 2*gap) / 3 */
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* 4列 */
.itemList4 > div {
  box-sizing: border-box;
  width: calc((100% - 3 * 20px) / 4); /* gap が 3 箇所なので (100% - 3*gap) / 4 */
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.itemList2 > div .Btn,
.itemList2 > div .Btn02,
.itemList2 > div .Btn_gray,
.itemList3 > div .Btn,
.itemList3 > div .Btn02,
.itemList3 > div .Btn_gray,
.itemList4 > div .Btn,
.itemList4 > div .Btn02 {
  width: 100%;
}

/*ボタン*/
.Btn a {
    background: #003399;
    border-radius: 9999px;
    position: relative;
    display: flex;
    /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}

.Btn02 a {
    background: #ff9933;
    border-radius: 9999px;
    position: relative;
    display: flex;
    /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}

.Btn a:after,
.Btn02 a:after {
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}
.Btn a:hover:after,
.Btn02 a:hover:after {
    border-color: #FFF;
}

.Btn_gray {
    background: #333;
    border-radius: 9999px;
    position: relative;
    display: flex;
    /*justify-content: space-around; ←rubyタグ入れるとずれる*/
    justify-content: center;
    align-items: center;
    /*margin: 0 auto;*/
	margin: 1em auto 0;
    padding: 10px 25px;
    color: #FFF;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}

.Btn_gray:after {
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}


}