@charset "UTF-8";
/* CSS Document */

.event {
height:50vh
}
.note {
display: flex;
justify-content: flex-end;
margin-bottom: 4rem;
}
.note dl {
width: 40%;
margin: 0;
border: solid 2px #2d77ba;
padding: 1rem;
text-align: center;
}
.note dt {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 12px;
  line-height: 1.5;
  text-align: left;
}
.note dd {
  margin: 0;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
}
.note dd img {
  display: block;
  height: auto;
}
.note dd.logo-fis { width: 20%;  margin-right: 1rem;}  
.note dd.logo-saj { width: 60%; }

.note dd a:hover {
opacity: 0.6;
}

.list {
margin-bottom: 6rem;
}
.list ul {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.list ul li {
width: 45%;
display: flex;
flex-direction: column;
margin-bottom: 4rem;
}
.list ul li .thumb {
width: 100%;
  aspect-ratio: 16 / 9;  
  background: #eee;   
  overflow: hidden;
  margin-bottom: 1rem;
}
.list ul li .thumb img {
 width: 100%;
  height: 100%;
  object-fit: cover; 
  object-position: center;
  display: block;
}
.list ul li dl {
margin: 0;
padding: 0;
}
.list ul li dl dt {
 font-size: var(--font-size-18);
 text-align: left;
margin-bottom: 1rem;
}
.list ul li dl dt span {
display: inline;
background: #2561AC;
text-align: center;
padding: 0.2rem 1rem;
color: #fff;
margin-right: 2rem;
}
.list ul li dl dd {
 font-size: var(--font-size-24);
 font-weight: 700;
}
.list ul li dl dd span {
display: block;
 font-size: var(--font-size-18);
 font-weight: normal;
}

.detail {
margin-bottom: 6rem;
}
.detail dl.title {
margin-bottom: 2rem;
}
.detail dl.title dt {
 font-size: var(--font-size-18);
 margin-bottom: 1rem;
}
.detail dl.title dt span {
display: inline;
padding: 0.2rem 1rem;
margin-right: 2rem;
background: #2561AC;
color: #fff;
}
.detail dl.title dd {
 font-size: var(--font-size-24);
 font-weight: 700;
 padding: 0.8rem 0;
 border-top: solid 1px #666;
  border-bottom: solid 1px #666;
}
.detail p.sub {
 font-size: var(--font-size-24);
 font-weight: 700;
 margin-bottom: 2rem;
}
.detail ul.images {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px; /* 隙間（必要なければ削除） */
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail ul.images li {
  flex: 1 1 auto;
  margin-bottom: 2rem;
}

/* 画像リサイズ設定 */
.detail ul.images li img {
  width: 100%;
  height: auto;       /* デフォルトは比率維持 */
  display: block;
  border-radius: 6px;
  object-fit: cover;   /* 角丸したければ */
}

ul li:only-child {
  flex-basis: 100%;
}

/* --- 2枚のとき --- 
ul:has(li:nth-child(2)):not(:has(li:nth-child(3))) li {
  flex-basis: calc(50% - 10px); /* gap考慮。gap=10pxなら-5px 
}

/* --- 3枚のとき --- 
ul:has(li:nth-child(3)):not(:has(li:nth-child(4))) li:first-child {
  flex-basis: 100%;
}
ul:has(li:nth-child(3)):not(:has(li:nth-child(4))) li:nth-child(n+2) {
  flex-basis: calc(50% - 10px);
}

/* --- 4枚のとき ---
ul:has(li:nth-child(4)):not(:has(li:nth-child(5))) li {
  flex-basis: calc(50% - 10px);
}
 */

.detail p {
line-height: 2.4em;
margin-bottom: 2rem;
}

.detail .btn {
width: 450px;
margin: 4rem auto;
position: relative;
}
.detail .btn a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  height: 80px;                 /* ボタン高さ */
  width: 100%;
  padding-left: 150px;          /* 左の青エリア分 */
  padding-right: 24px;
  background: #e7eef4;          /* グレー背景 */
  color: #175082;
  font-weight: 600;
  font-size: var(--font-size-20);
  text-decoration: none;
  border: 1px solid #0f3d63;
  position: relative;
  border-radius: 6px;
  box-shadow: 0 1px 0 rgba(0,0,0,.25);
  overflow: hidden;
  transition: 0.3s;
  background-image: url("/snow/images/ski_icon2.png");
  background-position: right 1rem center;
  background-repeat: no-repeat;
  background-size: 15%;
}
/* 左の青い半円 */
.detail .btn a::before {
  content: "";
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 25%;
  background: #2f6fa8;
  border-radius: 0 999px 999px 0;
}
.detail .btn .btn1 {
  position: absolute;
  left: -6%; top:18%;
  width: 35%;
  height: auto;
  display: grid;
  place-items: center;
}
.detail .btn .btn1 img {
width: 25%;
}
/* テキスト */
.detail .btn .text { line-height: 1; }

/* ホバー効果 */
.detail .btn a:hover::before { background: #285f90; }
.detail .btn a:active { transform: translateY(1px); }


.detail .btn li a:hover {
  background: #C8DDED;
}

/* 左の青い半円もホバー時に色を変える */
#sec5 .link li a:hover::before {
  background: #285f90;
}

.calender  {
margin-bottom: 4rem;
}
.calender h3 {
 font-size: var(--font-size-24);
 font-weight: 600;
 border-left: solid 4px #2561AC;
 padding-left: 1rem;
 margin-bottom: 1rem;
}
.calender table {
border-collapse:collapse;
width: 100%;
}
.calender th,.calender td {
border: solid 1px #ccc;
padding: 1rem;
text-align: left;
}
.calender th {
background: #eee;
width: 20%;
}

@media screen and (min-width:769px)and (max-width:1024px){
}


@media screen and (min-width:521px) and (max-width:768px) {
}

@media screen and (max-width:520px) {

.note {
width: 100%;
display: block;
}
.note dl {
width: 100%;
}
.list ul li {
width: 100%;
}
.detail .btn {
    width: 350px;
}
.detail .btn a {
    padding-left: 100px;
}
.detail .btn a::before {
  content: "";
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 20%;
  background: #2f6fa8;
  border-radius: 0 999px 999px 0;
}
.detail .btn .btn1 {
  left: -10%; 
  top:25%;
  width: 40%;
}
.detail .btn .btn1 img {
width: 20%;
}

}

