@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap");
:root {
  --viewport: 1920;
}
@media (max-width: 1330px) {
  :root {
    --viewport: 1330;
  }
}
@media (max-width: 768px) {
  :root {
    --viewport: 768;
  }
}

html {
  scroll-behavior: initial;
  width: 100%;
  color: #222222;
  font-size: 16px;
  max-width: 100vw;
  overflow-x: hidden;
}

.z-3 {
  position: relative;
  z-index: 3;
}

@media (max-width: 1330px) {
  .pc {
    display: none;
  }
}

.tb {
  display: none;
}
@media (max-width: 1330px) {
  .tb {
    display: block;
  }
}

body {
  min-height: 100%;
  font-family: "din-2014", "Roboto", "Noto Sans JP", sans-serif;
}

@media (max-width: 768px) {
  .santorini-logo {
    width: 115px;
    display: flex;
    align-items: center;
    margin-right: 20px;
    position: relative;
  }
}

.navigation-wrap {
  flex-wrap: wrap;
  align-items: end;
  column-gap: 224px;
}

.inner {
  width: 1330px;
  margin: auto;
}
@media (max-width: 1330px) {
  .inner {
    width: 80%;
  }
}
@media (max-width: 768px) {
  .inner {
    width: 100%;
    padding: 0 20px;
  }
}

#footer {
  max-width: 100vw;
}

.main-visual__logo {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -30%;
  top: 0;
  display: inline-block;
  width: 200px;
  height: 200px;
  margin: auto;
  z-index: 1;
}
@media (max-width: 768px) {
  .main-visual__logo {
    width: 150px;
    height: 150px;
  }
}

@media (max-width: 768px) {
  .restaurant__mv-masked {
    background-image: url(../img/restaurant/window.png);
    mask-image: url("../img/restaurant/window.svg");
    overflow: hidden;
    background-repeat: no-repeat;
    mask-repeat: no-repeat;
    mask-position: center bottom;
    mask-size: 90% 80%;
    mask-mode: alpha;
    mask-composite: add;
  }
}
.restaurant__mv-about {
  height: 400vh;
}
.restaurant__mv {
  position: fixed;
}
@media (max-width: 768px) {
  .restaurant__mv {
    height: calc(100vh - 60px);
  }
}
.restaurant__mv .flower {
  display: none;
}
@media (max-width: 768px) {
  .restaurant__mv .flower {
    display: block;
    position: absolute;
    bottom: -30px;
  }
}
.restaurant__mv .reaf {
  display: none;
}
@media (max-width: 768px) {
  .restaurant__mv .reaf {
    display: block;
    position: absolute;
    bottom: -30px;
    right: 0;
  }
}
@media (max-width: 1330px) {
  .restaurant__mv video {
    height: 100vh;
    width: auto;
    max-width: fit-content;
  }
}
.restaurant__about {
  background-color: rgba(10, 133, 182, 0.9);
  position: fixed;
  width: 100%;
  top: 120px;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
}
@media (max-width: 768px) {
  .restaurant__about {
    top: 60px;
    align-items: start;
    height: calc(100vh - 60px);
  }
}
@media (max-width: 768px) {
  .restaurant__about .title {
    width: 100%;
    margin: 50px auto;
  }
}
@media (max-width: 768px) {
  .restaurant__about .text {
    font-size: 14px;
    line-height: 2;
  }
}
@media (max-width: 768px) {
  .restaurant__about .inner {
    margin: 50px 0 auto;
  }
}
@media (max-width: 1330px) {
  .restaurant__about .inner .cutlery {
    position: absolute;
    top: auto;
    bottom: -85px;
    left: 20%;
    margin: auto;
    display: inline-block;
    width: 100px;
  }
}
@media (max-width: 1330px) {
  .restaurant__about .inner .rice {
    position: absolute;
    top: auto;
    bottom: -85px;
    right: 20%;
    margin: auto;
    display: inline-block;
    width: 100px;
  }
}
.restaurant__menu {
  background-image: url(../img/restaurant/menu.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 50px 0 400px;
  position: relative;
  z-index: 2;
}
.restaurant__menu .title {
  width: 807px;
  margin: auto;
}
@media (max-width: 1330px) {
  .restaurant__menu .title {
    width: 330px;
  }
}
.restaurant .menu-contents {
  margin-top: -50px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents {
    margin-top: 50px;
  }
}
.restaurant .menu-contents .menu {
  display: flex;
  align-items: center;
}
.restaurant .menu-contents .menu.omrice {
  margin-top: 150px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.omrice {
    flex-wrap: wrap;
    margin-top: 30px;
  }
}
.restaurant .menu-contents .menu.omrice .img {
  margin-right: -100px;
  margin-top: -100px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.omrice .img {
    margin: auto;
  }
}
.restaurant .menu-contents .menu.omrice .text {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.kids {
    flex-wrap: wrap;
  }
}
.restaurant .menu-contents .menu.kids .img {
  margin-right: -80px;
  width: 670px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.kids .img {
    width: 100%;
    margin: auto;
  }
  .restaurant .menu-contents .menu.kids .img img {
    margin: auto;
  }
}
.restaurant .menu-contents .menu.curry {
  margin-top: 100px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.curry {
    flex-wrap: wrap-reverse;
    margin-top: 30px;
  }
}
.restaurant .menu-contents .menu.curry .img {
  margin-top: -130px;
  margin-left: -100px;
  width: 700px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu.curry .img {
    margin: auto;
    width: 100%;
  }
  .restaurant .menu-contents .menu.curry .img img {
    margin: auto;
  }
}
.restaurant .menu-contents .menu .img {
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  margin: auto;
  max-width: 100%;
}
.restaurant .menu-contents .menu .text {
  background: repeating-linear-gradient(-45deg, #cce2eb, #cce2eb 5px, #aec4cd 5px, #aec4cd 10px);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 700px;
  padding: 20px;
  flex-shrink: 0;
}
.restaurant .menu-contents .menu .text > div {
  background-color: #fff;
  padding: 30px 50px;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu .text {
    margin-top: -110px;
    width: 100%;
  }
}
@media (max-width: 768px) {
  .restaurant .menu-contents .menu .text > div {
    padding: 60px 20px;
  }
}
.restaurant .menu-contents .menu .text h3 {
  font-size: 36px;
  color: #08516e;
  font-weight: bold;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu .text h3 {
    font-size: 24px;
  }
}
.restaurant .menu-contents .menu .text h3 span {
  font-size: 16px;
}
.restaurant .menu-contents .menu .text .price {
  background: none;
  color: #006c9c;
  font-family: Lobster;
  font-size: 36px;
  margin: 30px 0;
  line-height: 1;
}
.restaurant .menu-contents .menu .text .price span {
  font-size: 24px;
}
.restaurant .menu-contents .menu .text .exp {
  line-height: 2;
  color: #08516e;
}
@media (max-width: 1330px) {
  .restaurant .menu-contents .menu .text .exp {
    font-size: 13px;
  }
}

.menu-lineup {
  margin-top: 100px;
}
.menu-lineup ul {
  display: flex;
  gap: 50px;
}
@media (max-width: 1330px) {
  .menu-lineup ul {
    flex-wrap: wrap;
    justify-content: center;
  }
}
.menu-lineup ul li .name {
  margin-top: 30px;
  font-size: 24px;
  color: #fff;
  font-weight: bold;
}
@media (max-width: 768px) {
  .menu-lineup ul li .name {
    font-size: 20px;
  }
}
.menu-lineup ul li .name span {
  font-size: 18px;
}
@media (max-width: 768px) {
  .menu-lineup ul li .name span {
    font-size: 12px;
  }
}
.menu-lineup ul li .price {
  text-align: right;
  background: none;
  font-size: 36px;
  color: #fff;
  font-family: Lobster;
}
@media (max-width: 768px) {
  .menu-lineup ul li .price {
    font-size: 28px;
  }
}
.menu-lineup ul li .price span {
  font-size: 18px;
}

.sweets-masked {
  width: 100%;
  background-image: url(../img/restaurant/sweets-bg.png);
  mask-image: url("../img/restaurant/sweets-mask.svg");
  mask-repeat: no-repeat;
  mask-position: bottom;
  mask-composite: add;
  height: 330px;
  margin-bottom: -2px;
  margin-top: -330px;
  position: relative;
  z-index: 2;
}

.sweets {
  background-image: url(../img/restaurant/sweets-bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 2;
}
.sweets .inner {
  position: relative;
  top: -140px;
}
@media (max-width: 1330px) {
  .sweets .title {
    width: 160px;
  }
}
.sweets .menu {
  display: flex;
  align-items: start;
}
@media (max-width: 1330px) {
  .sweets .menu.purin {
    flex-wrap: wrap-reverse;
    margin-top: 30px;
  }
}
.sweets .menu.purin .text {
  background: repeating-linear-gradient(-45deg, #ece4d3, #ece4d3 5px, #cfc7b6 5px, #cfc7b6 10px);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 700px;
  padding: 20px;
  flex-shrink: 0;
}
.sweets .menu.purin .text > div {
  background-color: #fff;
  padding: 30px 50px;
}
@media (max-width: 1330px) {
  .sweets .menu.purin .text {
    margin-top: -110px;
    width: 100%;
  }
}
@media (max-width: 768px) {
  .sweets .menu.purin .text > div {
    padding: 60px 20px;
  }
}
.sweets .menu.purin .img {
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  margin: auto;
  max-width: 100%;
  margin-top: -25%;
  margin-left: -100px;
}
.sweets .menu.purin .text {
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 700px;
  padding: 20px;
  flex-shrink: 0;
}
@media (max-width: 1330px) {
  .sweets .menu.purin .text {
    margin-top: -50px;
    width: 100%;
  }
}
@media (max-width: 768px) {
  .sweets .menu.purin .text {
    padding: 20px;
  }
}
.sweets .menu.purin .text h3 {
  font-size: 36px;
  color: #775817;
  font-weight: bold;
}
@media (max-width: 1330px) {
  .sweets .menu.purin .text h3 {
    font-size: 24px;
  }
}
.sweets .menu.purin .text h3 span {
  font-size: 16px;
}
.sweets .menu.purin .text .price {
  background: none;
  color: #775817;
  font-family: Lobster;
  font-size: 36px;
  margin: 30px 0;
  line-height: 1;
  font-family: Lobster;
}
.sweets .menu.purin .text .price span {
  font-size: 24px;
}
.sweets .menu.purin .text .exp {
  line-height: 2;
  color: #775817;
}
@media (max-width: 1330px) {
  .sweets .menu.purin .text .exp {
    font-size: 13px;
  }
}
@media (max-width: 1330px) {
  .sweets .menu.purin .img {
    margin: -100px auto 20px auto;
  }
}
@media (max-width: 768px) {
  .sweets .menu.purin .img {
    margin: -100px -15px 0 auto;
  }
}
.sweets .menu.purin .text {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.drink {
  background-image: url(../img/restaurant/drink.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 100px 0;
  position: relative;
  z-index: 2;
  margin-top: -3px;
}
.drink .drink-contents {
  display: flex;
  gap: 50px;
  justify-content: center;
}
@media (max-width: 1330px) {
  .drink .drink-contents {
    flex-wrap: wrap;
  }
}
.drink .drink-contents .drink-content {
  width: 410px;
  color: #775817;
}
.drink .drink-contents .drink-content .name {
  font-size: 24px;
  font-weight: bold;
  margin-top: 30px;
}
.drink .drink-contents .drink-content .exp {
  line-height: 2;
  padding: 20px 0;
}
.drink .drink-contents .drink-content .price {
  font-size: 36px;
  font-weight: bold;
  background: none;
  font-family: Lobster;
}
.drink .drink-contents .drink-content .price span {
  font-size: 18px;
}

.point {
  padding: 100px 0;
  background-image: url(../img/restaurant/point-bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 2;
  margin-top: -3px;
}
.point__title {
  text-align: center;
  display: flex;
  justify-content: center;
}
.point .point-content {
  display: flex;
  align-items: center;
  gap: 60px;
  margin-top: 50px;
}
@media (max-width: 1330px) {
  .point .point-content {
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
  }
}
@media (max-width: 1330px) {
  .point .point-content.reverse {
    flex-wrap: wrap-reverse;
  }
}
@media (max-width: 1330px) {
  .point .point-content__title img {
    margin: auto;
    width: 100px;
  }
}
.point .point-content__title > div {
  display: flex;
  align-items: end;
  gap: 40px;
}
@media (max-width: 1330px) {
  .point .point-content__title > div {
    display: block;
  }
}
.point .point-content__title > div h4 {
  font-size: 36px;
  font-weight: bold;
  color: #003249;
  letter-spacing: -1px;
}
@media (max-width: 1330px) {
  .point .point-content__title > div h4 {
    text-align: center;
    margin-top: 20px;
  }
}
@media (max-width: 768px) {
  .point .point-content__title > div h4 {
    font-size: 24px;
  }
}
.point .point-content__title p {
  color: #003249;
  line-height: 2;
  margin-top: 50px;
}
@media (max-width: 768px) {
  .point .point-content__title p {
    margin-top: 30px;
    font-size: 14px;
  }
}
.point .point-content__img {
  width: 600px;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .point .point-content__img {
    width: 100%;
    max-width: 100%;
  }
}

.infomation {
  background-image: url(../img/restaurant/info-bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 80px 0;
  position: relative;
  z-index: 2;
}
.infomation__title {
  display: flex;
  justify-content: center;
}
.infomation__contents {
  background-color: rgba(10, 133, 182, 0.8156862745);
  display: grid;
  grid-template-columns: auto auto;
  padding: 60px 100px;
  gap: 30px;
  margin-top: 40px;
}
@media (max-width: 1330px) {
  .infomation__contents {
    grid-template-columns: auto;
    padding: 50px 20px;
  }
}
.infomation__contents div {
  display: flex;
  align-items: center;
  gap: 20px;
}
.infomation__contents div > p {
  font-weight: bold;
  color: #fff;
  display: grid;
}
@media (max-width: 1330px) {
  .infomation__contents div > p {
    font-size: 14pxs;
  }
}
.infomation__contents div > p span {
  font-size: 12px;
}
.infomation__contents div > p:first-child {
  width: 100px;
  line-height: 1;
  padding: 10px 0;
  background: #fff;
  color: #0a85b6;
  display: inline-block;
  text-align: center;
  flex-shrink: 0;
}
@media (max-width: 1330px) {
  .infomation__contents div > p:nth-child(2) {
    font-size: 13px;
  }
}