﻿#restaurant .con_title .title_image {
  background: url("../images/restaurant/bg_restaurant.png");
  background-size: cover;
  background-position: center center;
}
.restaurant_intro {
  background: url("../images/restaurant/bg_restaurant_intro.png") no-repeat;
  background-size: cover;
  padding: 100px 0 180px;
  padding: 5% 0;
  position: relative;
  margin-bottom: 80px;
}
.restaurant_intro ul.slide {
  margin: 0
}
.restaurant_intro ul.slide li {
  overflow: hidden;
  height: 28.646vw;
  width: 18.229vw;
  position: relative;
  margin-right: 30px;
  background: #000;
}
.restaurant_intro ul.slide li:nth-child(2n) {
  margin-top: 70px;
}
.restaurant_intro ul.slide li img, .restaurant_intro ul.slide li video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  right: 0;
  opacity: 1
}
.restaurant_intro .restaurant_intro_txt {
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 30px;
  z-index: 2;
  letter-spacing: .1em;
  padding: 4vw 8% 0;
  max-width: 500px
}
.restaurant_intro .restaurant_intro_txt .madem {
  color: #FF5445;
  margin-bottom: 10px;
}
.restaurant_intro .restaurant_intro_txt h2 {
  font-size: min(28px, 2vw);
}
.restaurant_intro .restaurant_intro_txt .txt {
  margin-top: 40px;
  margin-top: 2.083vw;
}
@media only screen and (max-width: 767px) {
  .restaurant_intro {
    padding: 50px 0 0;
    margin-bottom: 60px;
  }
  .restaurant_intro ul.slide li {
    height: 250px;
    width: 40vw;
    margin-right: 20px;
  }
  .restaurant_intro ul.slide li:nth-child(2n) {
    margin-top: 40px;
  }
  .restaurant_intro .restaurant_intro_txt {
    position: static;
    padding: 55px 30px 40px 30px;
    background: #F2F2F2;
  }
  .restaurant_intro .restaurant_intro_txt .madem {
    margin-bottom: 10px;
  }
  .restaurant_intro .restaurant_intro_txt h2 {
    font-size: 20px;
  }
  .restaurant_intro .restaurant_intro_txt .txt {
    margin: 30px 0 0;
    font-size: 13px;
  }
}
.restaurant_time {
  background: #F2F2F2;
  padding: 80px 30px;
  margin-bottom: 100px;
}
.restaurant_time table {
  max-width: 1380px;
  margin: 0 auto;
  background: #fff;
  width: 100%;
}
.restaurant_time table tr:first-child, .restaurant_time table tr:nth-child(2n) {
  background: #F2F2F2
}
.restaurant_time table tr:first-child th {
  text-align: center;
}
.restaurant_time table th.moning {
  background: #E2F3FE;
}
.restaurant_time table th.lanch {
  background: #FEFBE2
}
.restaurant_time table th.dinner {
  background: #E2E5FE;
}
.restaurant_time table th.place span {
  padding-left: 25px;
  background: url("../images/common/ico_place.png") no-repeat 0;
  background-size: 15px;
  display: inline-block;
}
.restaurant_time table tr:nth-child(n+2) th {
  border-right: 1px solid #707070;
  padding: 5px 1% 5px 8px;
  width: 22%
}
.restaurant_time table tr:nth-child(n+2) th .name {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  column-gap: 10px
}
.restaurant_time table th .img {
  position: relative;
  width: 5.797vw;
  max-width: 80px;
  height: 50px;
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0
}
.restaurant_time table th .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  right: 0;
  border-radius: 4px
}
.restaurant_time table th p {
  text-align: left;
  line-height: 1.8
}
.restaurant_time table td {
  text-align: center;
  padding: 1%;
  width: 14%;
  background-image: linear-gradient(to bottom, #707070, #707070 1px, transparent 1px, transparent 4px);
  background-size: 1px 4px;
  background-position: right top;
  background-repeat: repeat-y;
  line-height: 1.8;
}
.restaurant_time table td:nth-last-child(2), .restaurant_time table td:nth-last-child(3) {
  border-right: 1px solid #707070;
  background-image: none;
}
.restaurant_time .link span.arrow {
  margin-left: 0;
}
.restaurant_time table td:last-child {
  background: none;
  width: 10%;
  text-align: left;
}
.restaurant_time table td:last-child .link {
  justify-content: space-between;
  column-gap: .625rem;
  font-size: .75rem;
  white-space: nowrap;
}
.restaurant_time .link span.arrow {
  width: 24px;
  height: 24px;
  font-size: 13px;
  font-size: inhert
}
@media only screen and (max-width: 767px) {
  .restaurant_time {
    overflow: auto;
    padding: 80px 10px;
  }
  .restaurant_time table tr:nth-child(n+2) th {
    padding: 5px 10px 5px 8px;
  }
  .restaurant_time table th, .restaurant_time table td {
    white-space: nowrap;
    line-height: 1.5;
    font-size: 0.8125rem;
  }
  .restaurant_time table tr:nth-child(n+2) th {
    background-size: contain;
  }
  .restaurant_time table th .img {
    width: 55px;
    margin-right: 0;
  }
  .restaurant_time table th .img img {
    width: 150%;
    height: 150%;
  }
  .restaurant_time table th p {
    flex-shrink: 0;
    width: calc(100% - 55px - 18px - 24px);
    letter-spacing: .05em;
  }
  .restaurant_time table th.place span {
    background-size: contain
  }
  .restaurant_time table td {
    padding: 10px 15px;
  }
}
.restaurant_3col {
  margin: 0 60px 120px;
}
.restaurant_inner {
  max-width: 1380px;
  margin: 0 auto;
}
.restaurant_inner {
  display: flex;
  justify-content: center;
  gap: 80px 2%;
  flex-wrap: wrap
}
.restaurant_box {
  background: #fff;
}
.restaurant_3col .restaurant_box {
  width: 32%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
}
.restaurant_box a {
  text-decoration: none;
}
.restaurant_box_img {
  height: 20.438vw;
  position: relative;
  overflow: hidden
}
.restaurant_box_img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  object-position: 50% 50%;
  transition: all .4s ease;
}
.restaurant_box_img span.arrow {
  overflow: hidden;
  display: block;
  width: 40px;
  height: 40px;
  border-radius: 40px;
  position: absolute;
  border: 1px solid #fff;
  right: 1.563vw;
  bottom: 1.563vw;
  z-index: 1;
}
.restaurant_box_img span.arrow::before, .restaurant_box_img span.arrow::after {
  content: "→";
  position: absolute;
  font-family: 'MADEMirage';
  color: #fff;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  animation-fill-mode: forwards;
  animation-duration: 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.restaurant_box_img span.arrow::after {
  transform: translateX(-100%);
  transition-delay: 0s;
}
@media (hover: hover) {
  .restaurant_box:hover .restaurant_box_img img {
    transform: scale(1.2);
  }
  .restaurant_box:hover .arrow::before {
    animation-name: transformRightLeft; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0s;
  }
  .restaurant_box:hover .arrow::after {
    animation-name: transformLeftRight; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0.2s;
  }
}
.restaurant_box_txt h3 {
  font-size: clamp(1.25rem, 1.563vw, 28px);
  font-weight: 500;
  letter-spacing: .1em;
  margin-top: 10px;
  padding-bottom: 1.042vw;
  border-bottom: 1px solid #ddd;
}
.restaurant_box_txt h3 span {
  font-size: 12px;
  color: #999;
  display: block
}
.restaurant_box_txt .info_category {
  margin: .781vw 0;
}
.restaurant_box_txt .info {
  margin: 0 0 .781vw;
}
.restaurant_box_txt .info li {
  display: inline-block;
  margin-right: 20px;
  padding-left: 30px;
  font-size: 12px;
}
.restaurant_box_txt .info li.place {
  background: url("../images/common/ico_place.png") no-repeat 5px 0;
  background-size: 15px;
}
.restaurant_box_txt .info li.seat {
  background: url("../images/common/ico_seat.png") no-repeat 5px 0;
  background-size: 15px;
}
#restaurant .restaurant_box_txt .info li.seat br {
  display: none;
  margin-left: 10px
}
.restaurant_box_txt .info_category li {
  display: inline-block;
  margin-right: 5px;
  padding: 4px 10px;
  line-height: 1;
  font-size: 12px;
  background: #F2F2F2;
}
.restaurant_box_txt p.txt {
  font-size: 12px;
  line-height: 1.8;
}
@media only screen and (max-width: 767px) {
  .restaurant_3col {
    margin: 0 30px 120px;
  }
  .restaurant_inner {
    display: block;
  }
  .restaurant_3col .restaurant_box {
    width: 100%;
    margin-bottom: 60px
  }
  .restaurant_box_img {
    height: 200px;
  }
  .restaurant_box_txt h3 {
    font-size: 20px;
    padding-bottom: 12px;
    margin-top: 10px;
  }
  .restaurant_box_txt h3 span {
    font-size: 12px;
    line-height: 1;
  }
  .restaurant_box_txt .info_category {
    margin: 10px 0 0;
  }
  .restaurant_box_txt .info li {
    padding-left: 25px;
  }
  .restaurant_box_txt .info li.place, .restaurant_box_txt .info li.area {
    background-size: 15px;
  }
}
.restaurant_box_rsv_2col {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 4%
}
.restaurant_box_rsv_2col li {
  width: 48%
}
.restaurant_box_rsv_2col li.link {
  justify-content: flex-end;
}
.restaurant_box_rsv_2col li.btn a {
  padding: 5px;
}
.restaurant_box_rsv_2col li a[href=""] {
  display: none;
}
.restaurant_box_rsv_2col:has(li a[href=""]) {
  flex-direction: row-reverse;
}

.un_gray:has(.con_topics){
	margin-top: 120px;
	    padding: 80px 0 60px;
}
.un_gray .con_topics{
	margin-top: 0
}
.un_gray .con_topics .box_topics{
	margin-top: 0
}
.un_gray .con_topics .box_topics ul li a .wrp_cate span{
	background: #fff
}
.un_gray:has(.con_topics) .link.right{
	margin: 30px 30px 0;
}

.un_restaurant_benefit {
  margin: 0 auto 100px;
  width: 80vw;
  max-width: 1000px;
  background: #F2F2F2;
  display: flex;
  justify-content: space-between;
}
.un_restaurant_benefit .txt {
  padding: 60px 50px;
  width: 60%;
}
.un_restaurant_benefit .tit {
  font-size: 60px;
  line-height: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  color: #FF5445;
}
.un_restaurant_benefit h2 span {
  display: block;
  font-size: clamp(16px, 1vw, 18px);
  font-weight: bold;
  letter-spacing: .3em;
  margin: 10px 0 50px;
  color: #3F3F3F
}
.un_restaurant_benefit .img {
  width: 40%;
}
.un_restaurant_benefit .img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  object-position: 50% 50%;
}
.un_restaurant_benefit strong {
  color: #FF5445;
}
@media only screen and (min-width:768px) and (max-width:1000px) {
  .restaurant_3col .restaurant_box {
    width: 49%;
  }
}
@media only screen and (max-width:767px) {
  .un_restaurant_benefit {
    width: auto;
    margin: 0 20px 120px;
  }
  .un_restaurant_benefit .txt {
    padding: 30px 30px 40px;
    width: calc(100% - (30px *2));
  }
  .un_restaurant_benefit h2 {
    font-size: 50px;
  }
  .un_restaurant_benefit h2 span {
    font-size: 13px;
    margin: 10px 0 30px;
  }
  .un_restaurant_benefit p {
    font-size: 13px
  }
  .un_restaurant_benefit .img {
    width: 100%;
    height: 200px;
  }
}
@media only screen and (max-width: 767px) {
  .un_restaurant_benefit {
    flex-direction: column;
  }
}
/* レストラン詳細------------------------------------------------------- */
.restaurant_txt {
  text-align: center;
   margin: 0 30px 80px;
  /* margin: 0 30px 120px; */
}
@media only screen and (max-width: 767px) {
  .restaurant_txt {
    text-align: left;
  }
}
.restaurant_info {
  margin: 0 30px;
}
.restaurant_info_box {
  margin: 0 auto;
  max-width: 1380px;
}
.restaurant_info_box table.tbl_basic {
  width: 80%;
  margin: 0 auto;
}
.restaurant_info_box h2,
.un_gray:has(.con_topics) h2{
  text-align: center;
  font-size: 60px;
  line-height: 1;
  margin-bottom: 80px;
}
.restaurant_info_box h2 span,
.un_gray:has(.con_topics) h2 span {
  font-size: clamp(16px, 1vw, 18px);
  display: block;
  letter-spacing: .2em;
  margin-top: 10px
}
table.tbl_basic tr th {
  color: #856B55;
}
table.tbl_basic tr:first-child th:before, table.tbl_basic tr th:after {
  background: #856B55
}
.restaurant_info_box th span {
  padding-left: 30px;
}
.premier .restaurant_info_box th.category span {
  background: url("../images/common/ico_category.png") no-repeat 0 50%;
  background-size: 20px;
}
.premier .restaurant_info_box th.floor span {
  background: url("../images/common/ico_floor.png") no-repeat 0 50%;
  background-size: 20px;
}
.premier .restaurant_info_box th.seat span {
  background: url("../images/common/ico_seat_b.png") no-repeat 5px 0;
  background-size: 15px;
}
.premier .restaurant_info_box th.time span {
  background: url("../images/common/ico_time.png") no-repeat 0 50%;
  background-size: 20px;
}
.premier .restaurant_info_box th.benefit span {
  background: url("../images/common/ico_benefit.png") no-repeat 0 50%;
  background-size: 20px;
}
@media only screen and (max-width: 767px) {
  .restaurant_info_box {
    margin: 0 auto 80px;
  }
  .restaurant_info_box table.tbl_basic {
    width: 100%;
  }
  .restaurant_info_box h3, .restaurant_amenities h3, .restaurant_premiere_plus h3 {
    font-size: 40px;
  }
  .restaurant_info_box h3 span, .restaurant_amenities h3 span, .restaurant_premiere_plus h3 span {
    margin-top: 20px
  }
}
.restaurant_right {
  margin: 120px 0 0 0;
  padding: 100px 0 8.438vw 12.5vw;
  background: no-repeat center;
  background-image: linear-gradient(270deg, rgba(255, 255, 255, 1) 12.5vw, rgba(255, 255, 255, 0) 12.5vw), url(../../restaurant/magellan/images/bg_bf.png);
  background-size: cover;
  display: flex;
  gap: 60px;
  position: relative
}
.restaurant_left {
  margin: 120px 0;
  padding: 100px 12.5vw 8.438vw 0;
  background: no-repeat center;
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 1) 12.5vw, rgba(255, 255, 255, 0) 12.5vw), url(../../restaurant/magellan/images/bg_dinner.png);
  background-size: cover;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 60px;
  position: relative
}
.restaurant_right h3, .restaurant_left h3 {
  color: #FF5445;
  font-size: 50px;
  line-height: 1;
  margin-bottom: 50px
}
.restaurant_left h3 {
  color: #9FD3F2;
  text-align: right
}
.restaurant_right h3 span, .restaurant_left h3 span {
  font-size: 15px;
  font-weight: 500;
  display: block
}
.restaurant_right .copy, .restaurant_left .copy {
  font-size: min(28px, 2vw);
  font-weight: 500;
  margin-bottom: 30px;
}
.restaurant_left .copy, .restaurant_left .txt {
  color: #fff
}
.restaurant_right .txt, .restaurant_left .txt {
  max-width: 620px;
}
.restaurant_right .img_large, .restaurant_left .img_large {
  margin-top: 80px;
  width: 52.083vw;
  height: 674px;
}
.restaurant_right .img, .restaurant_left .img {
  position: absolute;
  display: flex;
  align-items: flex-end;
  gap: 3.125vw;
  left: 5.208vw;
  bottom: 3.125vw;
}
.restaurant_left .img {
  flex-direction: row-reverse;
  right: 5.208vw;
}
.restaurant_right .img li:first-child, .restaurant_left .img li:first-child {
  margin-bottom: 2.604vw;
  width: 25vw;
  height: 18.75vw;
  min-height: 300px
}
.restaurant_right .img li:nth-child(2), .restaurant_left .img li:nth-child(2) {
  width: 17.708vw;
  height: 11.719vw;
  min-height: 200px;
}
.restaurant_right .img_large img, .restaurant_right .img img, .restaurant_left .img_large img, .restaurant_left .img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  object-position: 50% 50%;
}
@media only screen and (max-width: 767px) {
  .restaurant_right, .restaurant_left {
    flex-direction: column;
    padding: 80px 30px 0;
    background-image: url(../../restaurant/magellan/images/bg_bf.png);
    gap: 40px;
  }
  .restaurant_left {
    background-image: url(../../restaurant/magellan/images/bg_dinner.png);
  }
  .restaurant_right .copy, .restaurant_left .copy {
    font-size: 20px;
    margin-bottom: 30px;
  }
  .restaurant_left .copy {
    text-align: righ
  }
  .restaurant_right h3, .restaurant_left h3 {
    font-size: 60px;
  }
  .restaurant_right .img_large, .restaurant_left .img_large {
    margin-top: 0;
    width: 120%;
    height: 250px;
  }
  .restaurant_left .img_large {
    margin-left: -20%;
  }
  .restaurant_right .img, .restaurant_left .img {
    left: 0;
    bottom: -60px;
  }
  .restaurant_left .img {
    left: auto;
    right: 0;
  }
  .restaurant_right .img li:first-child, .restaurant_left .img li:first-child {
    width: 30%;
    height: 170px;
    min-height: auto;
  }
  .restaurant_right .img li:nth-child(2), .restaurant_left .img li:nth-child(2) {
    width: 40%;
    height: 100px;
    min-height: auto;
  }
}
.un_restaurant_3col {
  width: 75%;
  margin: 120px auto 0
}
.un_restaurant_3col_box {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  grid-row-gap: 30px;
}
.un_restaurant_3col .restaurant_box {
  width: 32%
}
.un_restaurant_3col .restaurant_box_img {
  height: 200px;
  border-radius: 4px;
}
.un_restaurant_3col .restaurant_box_img span.arrow {
  right: 0.8vw;
  bottom: 0.8vw;
}
.un_restaurant_3col .restaurant_box_txt h3 {
  font-size: clamp(16px, 1vw, 18px);
  border-bottom: none;
  padding-bottom: 0;
  margin-top: 5px;
}
.un_restaurant_3col .restaurant_box_txt .info_premier {
  margin: 5px 0 0;
  line-height: 1;
}
.un_restaurant_3col .restaurant_box_txt .info_premier li {
  font-size: 10px;
  margin-bottom: 5px;
  background: #999;
}
@media only screen and (max-width: 1320px) {
  .un_restaurant_3col {
    width: 100%
  }
}
@media only screen and (max-width: 767px) {
  .un_restaurant_3col .restaurant_box {
    width: 48%
  }
  .un_restaurant_3col .restaurant_box_img {
    height: 100px;
  }
  .un_restaurant_3col .restaurant_box_txt h3 {
    font-size: min(.844rem, 14.5px);
    line-height: 1.5
  }
  .un_restaurant_3col .info_category {
    display: none;
  }
  .un_restaurant_3col .restaurant_box_img span.arrow {
    width: 30px;
    height: 30px;
    right: 1.563vw;
    bottom: 1.563vw;
  }
}

.restaurant_photo {
  margin-bottom: 120px;
  display: flex;
  justify-content: space-between;
  gap: 60px;
}
.restaurant_photo img{
	    object-fit: cover;
    object-position: 70% top;
    width: 100%;
    height: 100%;
}
.restaurant_photo .left{
  margin-bottom: 40px;
}
.restaurant_photo .right {
  margin-top: 100px;
}
@media only screen and (max-width: 767px) {
  .restaurant_photo {
    flex-direction: column;
    gap: 40px;
    margin-bottom: 80px;
  }
	.restaurant_photo .left{
		margin-right: 20px;
  margin-bottom: 0;
	}
	.restaurant_photo .right{
		margin-top: 0;
		margin-left: 40px
	}
}