* { 
    margin: 0px; 
    padding: 0px;
}

body {
	font-family: 'Lato', 'Noto Sans JP', '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	line-height: 1.8;
	overflow: hidden;
	overflow-y: auto;
	color: #333;
	letter-spacing: 1.3px;
}

.background {
	width: 100% !important;
	height: 100% !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	background-attachment: inherit !important;
	position: fixed !important;
}

a, a:link {
	color: #F33;
	text-decoration: none;
}

a:hover {
	color: #06F;
}

ul {
	margin: 50px 0 50px 50px;
}

li {
	line-height: 1.5;
	padding-bottom: 10px;
	font-weight: bold;
}

@media screen and (max-width: 768px){
ul { margin: 15px 0 15px 0; }
li { padding: 0 5px 10px 0; }
}

/* リスト枠 */
.ul {
	padding: 15px 40px 5px 50px;
	border-top: #fff 1px solid;
	border-bottom: #fff 1px solid;
	display: inline-block;
}

@media screen and (max-width: 768px){
.ul {
	width: 90%;
	padding: 15px 0 5px 10%;
}}

/* 仕切りボーダー */
hr {
	width: 100%;
	margin: 15px 0 15px 0;
	border: #F00 solid 1px;
	padding: 0;
}

/* ハーフ */
.half {
	width: 44.9%;
	margin: 10px 1% 10px;
	float: left;
}

@media screen and (max-width: 768px){
.half {
	width: 94%;
	height: auto;
	overflow: hidden;
	float: inherit;
}}

/* 見出し */
h2 {
	color: #F00;
	font-size: 40px;
	background: #ffeaea;
	border-bottom: solid 3px #F00;
	font-weight: bold;
	text-align: center;
	line-height: 1.7;
	margin: 15px 0;
}

@media screen and (max-width: 1024px){
h2 {
	font-size: 24px;
	margin: 10px 0;
}}

/* ヘッダー */
header {
	width: 100%;
	height: auto;
	padding: 1% 0 0;
	background: linear-gradient(-45deg, #d20623, #ff0000);
	overflow: hidden;
}

.header_logo {
	width: 17%;
	height: auto;
	float: left;
}

@media screen and (max-width: 768px){
.header_logo {
	width: 40%;
	height: auto;
	margin-bottom: -3%;
}}

@media screen and (min-width:481px) and (max-width:768px){
.header_logo {
	width: 33%;
	height: auto;
	margin-bottom: -3%;
}}

.header_banner {
	width: 42%;
	height: auto;
	float: left;
	padding-left: 30px;
}

/* 問い合わせボタン：右寄せ(float: right)に変更し、サイズと位置を微調整 */
.header_contact {
	width: 7%;
	height: auto;
	float: right;
	padding-right: 0.5%;
}

.header_button {
	width: 6.5%;
	height: auto;
	float: right;
	padding-right: 0.5%;
}

@media screen and (max-width: 768px){
.header_button {
	width: 12%;
	height: auto;
	float: right;
	padding-right: 3px;
	padding-top: 5px;
}}

/* スライダー上部 */
.lp_ppc {
	width: 100%;
	height: 100vh;
	margin-bottom: -250px;
}

@media screen and (max-width: 480px){
.lp_ppc { height: 275px; margin-bottom: 0; }
}

@media screen and (min-width:481px) and (max-width:768px){
.lp_ppc { height: 755px; margin-bottom: 0; }
}

@media screen and (min-width:769px) and (max-width:1024px){
.lp_ppc { height: 865px; margin-bottom: 0; }
}

.lp_ppc_img {
	width: 60%;
	height: auto;
	position: absolute;
	left: -50px;
	bottom: 0;
}

.lp_ppc_img2 {
	width: 40%;
	height: auto;
	position: absolute;
	right: 50px;
	bottom: 15px;
}

@media screen and (max-width: 480px){
.lp_ppc_img3 { width: 95%; max-width: 300px; margin: 15px auto; }
}

@media screen and (min-width:481px) and (max-width:768px){
.lp_ppc_img3 { width: 95%; max-width: 650px; margin: 15px auto; }
}

@media screen and (min-width:769px) and (max-width:1024px){
.lp_ppc_img3 { width: 95%; max-width: 800px; margin: 15px auto; }
}

/* コンテンツ継ぎ目 */
.contents_top {
	background: url(../images/contents_top_pc.png) bottom -1px center / cover no-repeat;
	width: 100%;
	height: 200px;
}

@media screen and (max-width: 768px){
.contents_top {
	background: url(../images/contents_top_sp.png) bottom -1px center / cover no-repeat;
	height: 100px;
}}

/* コンテンツ枠 */
.contents {
	background: #fff;
	width: 100%;
	height: 100%;
}

/* コンテンツ */
.main {
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 10px 0 30px 0;
}

/* RSS */
.rss {
	border: #F00 5px solid;
	padding: 1%;
}

.rss_details p {
	line-height: 1.5;
}

@media screen and (max-width: 767px){
.rss_details p {
	font-size: 12px;
	line-height: 1.3;
}}

.rss_img {
	object-fit: cover;
	float: left;
	margin: 0 4% 0 0;
}

@media screen and (max-width: 767px){
.rss_img { padding: 2%; }
}

/* マップ */
.map {
	width: 100%;
	height: auto;
	background: #fff;
	margin-bottom: -8px;
}

/* フッター */
footer {
	background: linear-gradient(-45deg, #d20623, #ff0000);
	color: #fff;
	text-align: right;
	padding: 15px 100px 15px 0;
	height: 225px;
	letter-spacing: 0;
}

@media screen and (max-width: 1024px){
footer {
	text-align: center;
	padding: 5px 15px 5px 0;
	font-size: 12px;
	height: 90px;
}}

.footer_margin {
	background: linear-gradient(-45deg, #d20623, #ff0000);
}

@media screen and (max-width: 767px){
.footer_margin { height: 11vh; }
}

@media screen and (min-width:768px) and (max-width:1024px){
.footer_margin { height: 13vh; }
}

@media screen and (min-width:1025px){
.footer_margin { height: 80px; }
}

footer a, footer a:link {
	color: #fff;
	text-decoration: none;
}

.info {
	text-align: left;
	padding-left: 100px;
}

@media screen and (max-width: 768px){
.info {
	text-align: center;
	font-size: 12px;
	padding: 0;
}}

/* youtube埋め込み */
.youtube {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	margin: 50px 0 50px;
}

.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

/* cssアニメーション */
.lp_shake {
	animation: lp_shake_7732 7s ease infinite;
	transform-origin: 50% 50%;
}

@keyframes lp_shake_7732 {
	0%   { transform: rotate(-5deg) }
	25%  { transform: rotate(5deg) }
	50%  { transform: rotate(-5deg) }
	75%  { transform: rotate(5deg) }
	100% { transform: rotate(-5deg) }
}

.pulse {
	animation: pulse_6619 2s linear infinite;
	transform-origin: 50% 50%;
}

@keyframes pulse_6619 {
	0%   { transform: scale(1.1) }
	50%  { transform: scale(0.8) }
	100% { transform: scale(1.1) }
}

.burst {
	animation: burst_5332 2s linear infinite;
	transform-origin: 50% 50%;
}

@keyframes burst_5332 {
	0%      { opacity: 1 }
	99.999% { transform: scale(1.8); opacity: 0 }
	100%    { transform: scale(1); opacity: 1 }
}

.loading_shake {
	animation: loading_shake_6110 3.875s ease infinite;
	transform-origin: 50% 50%;
}

@keyframes loading_shake_6110 {
	0%       { transform: rotate(-8deg) }
	5.16%    { transform: rotate(8deg) }
	6.45%    { transform: rotate(16deg) }
	11.61%   { transform: rotate(-16deg) }
	12.90%   { transform: rotate(-16deg) }
	18.06%   { transform: rotate(16deg) }
	19.35%   { transform: rotate(16deg) }
	24.52%   { transform: rotate(-16deg) }
	25.81%   { transform: rotate(-16deg) }
	30.97%   { transform: rotate(16deg) }
	32.26%   { transform: rotate(16deg) }
	37.42%   { transform: rotate(-16deg) }
	38.71%   { transform: rotate(-16deg) }
	43.87%   { transform: rotate(16deg) }
	48.39%   { transform: rotate(0deg) }
	100%     { transform: rotate(0deg) }
}

/* ローディング */
#loading {
	width: 250px;
	height: 250px;
	margin: 0 auto;
	position: absolute;
	top: 70%;
	left: 50%;
	-webkit-transform: translate(-50%,-150%);
	transform: translate(-50%,-150%);
}

@media only screen and (max-width:768px){
#loading {
	width: 150px;
	height: 150px;
	top: 45%;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}}

#loader-bg {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: linear-gradient(-45deg, #ff8c8c, #ffd3d3);
	z-index: 999;
}

/* プログレスバー */
#progress {
	width: 30%;
	height: 20px;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	top: 62%;
	left: 50%;
	position: absolute;
}

@media only screen and (max-width:768px){
#progress { width: 60%; top: 60%; }
}

#progressBar {
	height: 5px;
	background-color: #996600;
	border-radius: 5px;
}

#progressTxt {
	text-align: center;
	color: #996600;
}

/* ヘッダーフローティング */
@media only screen and (max-width:767px){
#header_floating {
	width: 100%;
	overflow: hidden;
	padding-top: 5px;
	position: fixed;
	background: linear-gradient(-45deg, #d20623, #ff0000);
	z-index: 1;
	top: -500px;
}}

@media only screen and (min-width:768px) and (max-width:1024px){
#header_floating {
	width: 100%;
	padding-top: 5px;
	position: fixed;
	background: linear-gradient(-45deg, #d20623, #ff0000);
	z-index: 1;
	top: -500px;
}}

.header_floating { width: 100%; }

.tel_sp {
	color: #fff;
	width: 95%;
	margin: 0 auto;
	padding-top: 3px;
}

/* フッターフローティング */
#footer_floating {
	width: 100%;
    position: fixed;   /* 画面に固定 */
    bottom: -500px;    /* 初期状態は画面の下に隠す */
    left: 0;
    z-index: 9999;     /* 最前面に表示 */
    padding: 5px 0;
    background: linear-gradient(-45deg, #d20623, #ff0000);
    box-sizing: border-box;
}

.footer_floating { width: 100%; }

.contact_sp {
	width: 96%;
    margin: 0 auto;
    display: flex;             /* 横並びにする */
    justify-content: space-between; /* 均等に配置 */
    align-items: center;
}

/* ★追加：SP用ボタンのリンク枠を4等分に設定 */
.contact_sp a {
    display: block;
    width: 24%;  
    height: auto;
text-align: center;
}

.button_sp {
	width: 95%;          /* 70%だとAndroidで小さすぎるため95%に拡大 */
    height: auto;
    display: block;
    margin: 0 auto;      /* 中央寄せ */
}


.contact_pc {
	width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;             /* 横並びにする */
    align-items: center;       /* 縦方向を中央揃え */
    justify-content: space-between; /* 両端に広げる */
}

.tel_pc {
	width: 50%;                /* 電話番号バナーの幅 */
    height: auto;
}

/* PC用の右側ボタンエリア */
.contact_pc a {
    display: block;
    width: 11%;                /* ボタン1つの幅（計4つで約44%） */
    height: auto;
}

.button_pc {
	width: 100%;
    height: auto;
}

/* メインビジュアル */
.pc_main { display: block; }
.sp_main { display: none; }

/* リンクバナー */
.rink { width: 100%; }
.pc_rink { display: block; }
.sp_rink { display: none; }

/* フロー */
.kantan { width: 100%; }
.pc_kantan { display: block; }
.sp_kantan { display: none; }

@media screen and (max-width: 768px){
	.pc_main  { display: none; }
	.sp_main  { display: block; }
	.pc_rink  { display: none; }
	.sp_rink  { display: block; }
	.pc_kantan { display: none; }
	.sp_kantan { display: block; }
}


