@charset "UTF-8";
.lineLeftRight, .lineRightLeft {
  left: 0;
  right: 0; }

.lineTopBottom, .lineBottomTop {
  top: 0;
  bottom: 0; }

.line-top, .line-bottom {
  position: absolute;
  width: 100%;
  left: 0; }

.line-right, .line-left {
  position: absolute;
  top: 0;
  height: 100%; }

.line-top {
  top: 0; }

.line-bottom {
  bottom: 0; }

.line-right {
  right: 0; }

.line-left {
  left: 0; }

#sec1 {
  background: url("../img/shared/bg2.jpg");
  color: #fff;
  position: relative; }
  #sec1 .sec1-info {
    padding: 15vw 8%; }
  #sec1 h2 {
    font-size: 6vw;
    line-height: 1.6;
    margin-bottom: 8vw;
    letter-spacing: 0.1em; }
  @media only screen and (min-width: 768px) {
    #sec1 .sec1-img {
      position: absolute;
      top: 0;
      right: 0;
      height: 100%;
      width: calc(100% - 300px);
      background: url("../img/menu/sec1_img.jpg") no-repeat top center/cover;
      -webkit-mask-image: linear-gradient(to right, transparent 8%, black 92%);
      mask-image: linear-gradient(to right, transparent 8%, black 92%); }
    #sec1 .sec1-info {
      padding: 98px 0 104px 73px;
      width: 520px;
      position: relative;
      z-index: 1; }
    #sec1 h2 {
      font-size: 32px;
      line-height: 52px;
      margin-bottom: 45px;
      letter-spacing: 4px; } }
  @media only screen and (min-width: 768px) and (max-width: 1200px) {
    #sec1 .sec1-info {
      padding-left: 40px; } }

#sec2 {
  margin: 17vw 0; }
  #sec2 h2 {
    line-height: 1; }
  #sec2 .sec2-txt1 {
    text-align: right; }
  #sec2 .sec2-inner {
    margin: 0 4%;
    position: relative; }
  #sec2 .sec2-top {
    margin-bottom: 10vw; }
  #sec2 .sec2-line-top {
    position: absolute;
    top: 11vw;
    left: 4%;
    right: 4%; }
  #sec2 .sec2-line-right {
    position: absolute;
    top: 11vw;
    right: 4%;
    height: calc(100% - 11vw); }
  #sec2 .lineLeftRight {
    left: 0;
    right: 0; }
  #sec2 .lineTopBottom {
    top: 0;
    bottom: 0; }
  #sec2 .fnt-shippori {
    font-weight: 400; }
  #sec2 .sec2-txt2 {
    margin-top: 9vw;
    font-size: 4vw;
    line-height: 1; }
  #sec2 h3 {
    font-size: 6vw;
    letter-spacing: 0.1em;
    margin-bottom: 3vw; }
  #sec2 .sec2-txt4 {
    color: #cf0000;
    margin-top: 3vw; }
  #sec2 .sec2-txt5 {
    margin-bottom: 9vw;
    font-size: 4vw;
    line-height: 1; }
  #sec2 .sec2-txt5 .span {
    font-size: 3vw; }

  #sec2 .btn-link {
    margin-top: 7vw; }
  @media only screen and (min-width: 768px) {
    #sec2 {
      margin: 109px 30px 136px; }
      #sec2 .wrap {
        padding: 0;
        max-width: 1200px; }
      #sec2 h2 {
        margin-left: 95px; }
      #sec2 .sec2-txt1 {
        margin-bottom: 26px; }
      #sec2 .sec2-inner {
        margin: 0; }
      #sec2 .sec2-top {
        margin-bottom: 67px;
        align-items: flex-end; }
      #sec2 .sec2-line-top {
        top: 88px;
        left: 0;
        right: 0; }
      #sec2 .sec2-line-right {
        top: 88px;
        right: 0;
        height: calc(100% - 88px); }
      #sec2 .sec2-img {
        width: 715px;
        margin-left: -75px; }
      #sec2 .sec2-info {
        width: 384px;
        margin-right: 100px;
        margin-left: 40px; }
      #sec2 .sec2-txt2 {
        margin-top: 18px;
        font-size: 26px;
        letter-spacing: 2.5px; }
      #sec2 h3 {
        font-size: 48px;
        letter-spacing: 5px;
        margin-bottom: 25px;
        line-height: 65px;
        margin-left: -8px; }
      #sec2 .sec2-txt4 {
        margin-top: 15px; }
      #sec2 .sec2-txt5 {
        margin-bottom: 18px;
        font-size: 26px;
        letter-spacing: 2.5px; }
      #sec2 .sec2-txt5 span {
        font-size: 23px; }
      #sec2 .btn-link {
        margin-top: 60px; } }
  @media only screen and (min-width: 768px) and (max-width: 1240px) {
    #sec2 .sec2-info {
      margin-right: 50px; } }
  @media only screen and (min-width: 768px) and (max-width: 1100px) {
    #sec2 .sec2-info {
      margin-right: 30px; } }

.bg2 {
  background: url("../img/shared/bg2.jpg");
  color: #fff;
  padding: 17vw 0; }
  .bg2 h2 {
    text-align: center;
    margin-bottom: 10vw; }
  @media only screen and (min-width: 768px) {
    .bg2 {
      padding: 107px 0 163px; }
      .bg2 h2 {
        margin-bottom: 62px; }
        .bg2 h2 .ttl-jp {
          margin-top: -10px;
          letter-spacing: 3px; } }

#sec3 {
  margin-bottom: 15vw; }
  #sec3 .sec3-item {
    padding-bottom: 10vw; }
  #sec3 dl {
    justify-content: flex-start;
    align-items: flex-end;
    margin: 10vw 0 5vw;
    line-height: 1;
    font-weight: 400; }
    #sec3 dl dt {
      font-size: 7vw; }
    #sec3 dl dd {
      font-size: 5.5vw;
      margin-left: 10px; }
      #sec3 dl dd span {
        font-size: 80%; }
  #sec3 .lineRightLeft {
    border-top: 1px solid #fff;
    left: 0;
    right: 0; }
  #sec3 .sec3-txt {
    margin-top: 10vw; }
  #sec3 .slick-arrow {
    top: 100%; }
  @media only screen and (min-width: 768px) {
    #sec3 {
      max-width: 1160px;
      margin-bottom: 94px; }
      #sec3 .sec3-img {
        order: 2;
        width: calc(100% - 438px); }
      #sec3 .sec3-info {
        width: 438px;
        box-sizing: border-box;
        padding-left: 50px;
        position: relative; }
      #sec3 .sec3-item {
        padding-bottom: 0; }
      #sec3 dl {
        margin: 55px 0 26px; }
        #sec3 dl dt {
          font-size: 36px; }
        #sec3 dl dd {
          font-size: 22px;
          margin-left: 10px; }
          #sec3 dl dd span {
            font-size: 18px; }
      #sec3 .lineRightLeft {
        border-top: 2px solid #fff; }
      #sec3 .sec3-txt {
        margin-top: 58px;
        width: 330px; }
      #sec3 .slick-arrow {
        top: auto;
        bottom: 37px; }
        #sec3 .slick-arrow.slick-prev {
          left: 49px; }
        #sec3 .slick-arrow.slick-next {
          left: 132px; } }

#sec4 {
  margin: 0 4% 18vw; }
  #sec4 [class^="sec4-img"] {
    position: absolute; }
  #sec4 .lineLeftRight, #sec4 .lineRightLeft {
    border-top: 1px solid #fff; }
  #sec4 .lineTopBottom, #sec4 .lineBottomTop {
    border-left: 1px solid #fff; }
  #sec4 .sec4-img1 {
    width: 38%;
    top: -10vw;
    left: -14%;
    z-index: 1; }
  #sec4 .sec4-img3 {
    width: 38%;
    bottom: -10vw;
    right: -14%;
    z-index: 1; }
  #sec4 .wrap {
    padding: 12vw 4%; }
  #sec4 h3 {
    text-align: center;
    font-size: 6vw;
    line-height: 1.6;
    letter-spacing: 0.1em;
    margin-bottom: 6vw; }
  #sec4 .btn-link {
    margin-top: 8vw;
    background: url("../img/menu/btn_bg.jpg");
    z-index: 2;
    color: #000; }
    #sec4 .btn-link .arrow {
      width: 20px;
      height: 20px;
      top: calc(50% - 10px); }
  @media only screen and (min-width: 768px) {
    #sec4 {
      margin: 0 30px 145px; }
      #sec4 .wrap {
        max-width: 1000px;
        padding: 75px 0 90px;
        text-align: center; }
      #sec4 .lineLeftRight, #sec4 .lineRightLeft {
        border-top: 2px solid #e5decf; }
      #sec4 .lineTopBottom, #sec4 .lineBottomTop {
        border-left: 2px solid #e5decf; }
      #sec4 .sec4-img1 {
        width: 445px;
        top: -48px;
        left: -180px; }
      #sec4 .sec4-img2 {
        z-index: 1;
        width: 424px;
        top: 50px;
        right: -262px; }
      #sec4 .sec4-img3 {
        width: 429px;
        bottom: -197px;
        right: -18px; }
      #sec4 h3 {
        font-size: 32px;
        line-height: 52px;
        letter-spacing: 3px;
        margin-bottom: 36px; }
      #sec4 .btn-link {
        margin: 48px auto 0;
        width: 627px;
        height: 115px;
        font-size: 33px;
        padding-left: 70px; }
        #sec4 .btn-link .arrow {
          width: 40px;
          height: 40px;
          top: calc(50% - 20px);
          right: 34px; } }

#sec5 {
  padding: 0 4% 10vw;
  position: relative;
  z-index: 0;
  color: #000;
  font-weight: 400; }
  #sec5:before {
    content: "";
    position: absolute;
    z-index: -1;
    bottom: 0;
    right: 0;
    width: 100%;
    height: calc(100% - 20vw);
    background: url("../img/menu/btn_bg.jpg"); }
  #sec5 .sec5-img {
    position: relative; }
    #sec5 .sec5-img:before {
      content: "";
      position: absolute;
      top: -2vw;
      left: -2vw;
      width: 16vw;
      height: 12vw;
      border-top: 1px solid #e5decf;
      border-left: 1px solid #e5decf; }
  #sec5 .fnt-saint {
    line-height: 1;
    color: #ae9988;
    margin-top: 7vw; }
  #sec5 i {
    margin-top: 3vw; }
  #sec5 a:hover {
    text-decoration: none;
    opacity: 0.7; }
  @media only screen and (min-width: 768px) {
    #sec5 {
      padding: 0 0 47px;
      margin: 0 auto;
      max-width: 1060px; }
      #sec5:before {
        height: calc(100% - 80px);
        width: calc(100% - 70px); }
      #sec5 a {
        justify-content: flex-start; }
      #sec5 .sec5-img {
        width: 574px; }
        #sec5 .sec5-img:before {
          top: -17px;
          left: -19px;
          width: 136px;
          height: 116px;
          box-sizing: border-box; }
      #sec5 .sec5-info {
        margin: 67px 0 0 47px; }
      #sec5 .fnt-saint {
        margin-top: 0;
        font-size: 80px; }
      #sec5 .ttl-jp {
        margin: 3px 0 0 25px;
        font-size: 32px;
        line-height: 52px;
        letter-spacing: 3px; }
      #sec5 i {
        margin-top: 23px;
        margin-left: 25px; } }

#sec6 {
  margin-bottom: 15vw; }
  #sec6 .sec6-top {
    position: relative; }
  #sec6 .sec6-img {
    height: 70vw; }
    #sec6 .sec6-img img {
      width: 100%;
      height: 100%;
      object-fit: cover; }
  #sec6 h2 {
    text-align: center;
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 0;
    width: 100%;
    transform: translateY(-50%);
    color: #fff;
    font-weight: 400;
    font-size: 6vw;
    line-height: 1.3; }
    #sec6 h2 .fnt-overlock {
      font-size: 4vw;
      margin-top: 3vw; }
  #sec6 li {
    background: url("../img/shared/bg2.jpg");
    margin-top: 5vw;
    text-align: center;
    color: #fff;
    padding: 5vw 0;
    font-size: 5vw; }
  @media only screen and (min-width: 768px) {
    #sec6 {
      margin-bottom: 78px; }
      #sec6 .sec6-img {
        height: 750px; }
      #sec6 h2 {
        font-size: 42px;
        line-height: 52px;
        padding-top: 53px; }
        #sec6 h2 .fnt-overlock {
          font-size: 22px;
          margin-top: -6px; }
      #sec6 ul {
        justify-content: center; }
      #sec6 li {
        margin: -35px 8px 0;
        padding: 33px 0;
        font-size: 26px;
        line-height: 42px;
        width: 304px; } }

#sec7 {
  margin-bottom: 18vw; }
  #sec7 .sec7-txt1 {
    margin-bottom: 15vw; }
  #sec7 .fnt-shippori {
    font-weight: 400; }
  #sec7 .sec7-item {
    position: relative;
    margin-bottom: 10vw;
    box-sizing: border-box;
    text-align: center; }
  #sec7 .sec7-txt2 {
    position: absolute;
    top: -7vw;
    left: -5vw;
    color: #fff;
    background: url("../img/shared/bg2.jpg");
    text-align: center;
    font-size: 4.5vw;
    line-height: 1.2;
    width: 33%;
    padding: 3vw 0; }
  #sec7 .sec7-ttl {
    font-size: 7vw;
    letter-spacing: 0.1em;
    line-height: 1.25; }
  #sec7 .price {
    font-size: 5vw;
    margin-top: 3vw; }
    #sec7 .price span {
      font-size: 80%; }
  #sec7 .line-bottom {
    width: calc(100% + 2px); }
  #sec7 .sec7-txt3 {
    font-size: 120%;
    font-weight: 600;
    margin: 5vw 0 2vw; }
  @media only screen and (max-width: 767px) {
    #sec7 .sec7-ttl {
      height: auto !important; }
    #sec7 .toggle {
      padding-bottom: 6vw; }
    #sec7 .toggle-link {
      padding: 10vw 0; }
      #sec7 .toggle-link:after {
        content: "";
        position: absolute;
        bottom: 3vw;
        left: calc(50% - 9px);
        background: url("../img/menu/toggle_arrow_black.png") no-repeat center/100% auto;
        width: 18px;
        height: 15px;
        transition: ease 0.3s;
        transform: rotate(180deg); }
    #sec7 .toggle.active .toggle-link:after {
      transform: rotate(0); }
    #sec7 .toggle-main {
      padding-bottom: 5vw; } }
  @media only screen and (min-width: 768px) {
    #sec7 {
      margin-bottom: 98px; }
      #sec7 .sec7-txt1 {
        margin-bottom: 60px;
        text-align: center; }
      #sec7 .sec7-item {
        width: 31.7%;
        margin-bottom: 0;
        padding: 76px 0 64px; }
      #sec7 .sec7-txt2 {
        top: -110px;
        left: -21px;
        font-size: 24px;
        line-height: 30px;
        width: 160px;
        padding: 19px 0; }
      #sec7 .sec7-ttl {
        font-size: 32px;
        letter-spacing: 2px;
        line-height: 40px;
        display: flex;
        justify-content: center;
        align-items: center; }
      #sec7 .price {
        font-size: 22px;
        margin-top: 7px; }
        #sec7 .price span {
          font-size: 18px; }
      #sec7 .sec7-txt3 {
        font-size: 18px;
        margin: 34px 0 10px; }
      #sec7 toggle-link {
        pointer-events: none; }
      #sec7 .toggle-main {
        display: block; } }
  @media only screen and (min-width: 768px) and (max-width: 1080px) {
    #sec7 .sec7-item .sec7-txt4 {
      letter-spacing: 0; } }

#sec8 {
  background: url("../img/menu/sec8_deco_sp.png") no-repeat bottom left/105% auto, url("../img/shared/bg2.jpg");
  text-align: center;
  padding: 15vw 0;
  color: #fff; }
  #sec8 .wrap {
    padding: 0 8%; }
  #sec8 .tel {
    margin-bottom: 7vw; }
    #sec8 .tel .df {
      justify-content: center; }
    #sec8 .tel small {
      font-size: 80%;
      display: block;
      margin-top: 5px; }
  @media only screen and (min-width: 768px) {
    #sec8 {
      background: url("../img/menu/sec8_deco.png") no-repeat bottom center, url("../img/shared/bg2.jpg");
      padding: 110px 0 140px; }
      #sec8 .wrap {
        padding: 0; }
      #sec8 .tel {
        margin-bottom: 37px;
        font-size: 28px; }
        #sec8 .tel .df {
          font-size: 36px;
          letter-spacing: 4px; }
          #sec8 .tel .df span {
            font-size: 56px; }
        #sec8 .tel small {
          font-size: 16px;
          margin-top: 10px;
          letter-spacing: 2px; }
      #sec8 .btn-link {
        margin: 0 auto;
        width: 627px;
        height: 115px;
        font-size: 30px;
        padding-left: 76px;
        letter-spacing: 0px; }
        #sec8 .btn-link i {
          width: 41px;
          margin-right: 23px; }
        #sec8 .btn-link .txt-en {
          font-size: 82px;
          bottom: -29px;
          left: 17px;
          letter-spacing: 3.5px; } }

#sec9 {
  margin: 18vw 0 18vw; }
  #sec9 .sec9-img {
    position: relative;
    z-index: 1; }
    #sec9 .sec9-img:before {
      content: "";
      position: absolute;
      z-index: -1;
      width: 100%;
      height: 100%;
      border: 1px solid var(--primary);
      top: -3vw;
      right: -3vw;
      box-sizing: border-box; }
  #sec9 h2 {
    margin: 10vw 0 5vw;
    text-align: center;
    line-height: 1.5;
    letter-spacing: 0.1em;
    font-weight: 400; }
    #sec9 h2 .fnt-shippori {
      font-size: 6vw; }
    #sec9 h2 .fnt-overlock {
      font-size: 4vw;
      line-height: 2;
      margin-top: 1vw; }
  @media only screen and (min-width: 768px) {
    #sec9 {
      margin: 114px auto 102px;
      align-items: flex-start; }
      #sec9 .sec9-img {
        order: 2;
        width: 693px; }
        #sec9 .sec9-img:before {
          top: -28px;
          right: -30px; }
      #sec9 .sec9-info {
        width: calc(100% - 693px);
        display: flex;
        justify-content: center; }
      #sec9 h2 {
        margin: 74px 0 30px;
        line-height: 62px;
        letter-spacing: 3px; }
        #sec9 h2 .fnt-shippori {
          font-size: 42px; }
        #sec9 h2 .fnt-overlock {
          font-size: 18px;
          line-height: 2;
          margin-top: 10px; }
      #sec9 .sec9-txt {
        width: 370px;
        margin: 0 auto; } }
  @media only screen and (min-width: 768px) and (max-width: 1200px) {
    #sec9 .sec9-info {
      width: 370px;
      justify-content: flex-start;
      margin-right: 30px; }
    #sec9 h2 {
      margin-top: 30px; } }
  @media only screen and (min-width: 768px) and (max-width: 1080px) {
    #sec9 h2 {
      margin-top: 0; } }

#sec10 {
  background: url("../img/pizzoccheri/sec4_bg.jpg");
  position: relative;
  box-sizing: border-box;
  margin: 0 3% 15vw;
  padding: 10vw 0 5vw; }
  #sec10 .lineCenter {
    left: 0;
    right: 0; }
  #sec10 .sec10-line-top {
    top: 0; }
  #sec10 .sec10-line-bottom {
    bottom: 0; }
  #sec10 .sec10-line-left {
    left: 0; }
  #sec10 .sec10-line-right {
    left: 100%; }
  #sec10 h2 {
    text-align: center;
    font-size: 7vw;
    letter-spacing: 0.1em;
    margin-bottom: 4vw; }
  #sec10 .sec10-info ul li {
    position: relative;
    padding-left: 20px; }
    #sec10 .sec10-info ul li:before {
      content: "※";
      position: absolute;
      top: 0;
      left: 0; }
  #sec10 .sec10-img {
    margin: 10vw 0; }
    #sec10 .sec10-img .slick-dots {
      margin-top: 5px;
      justify-content: flex-end; }
      #sec10 .sec10-img .slick-dots li button {
        border: 1px solid var(--primary); }
      #sec10 .sec10-img .slick-dots li.slick-active button {
        background: var(--primary); }
  @media only screen and (min-width: 768px) {
    #sec10 {
      margin: 0 auto 110px;
      padding: 99px 30px 96px;
      width: calc(100% - 60px);
      max-width: 1350px; }
      #sec10 .wrap {
        padding: 0;
        max-width: 1000px; }
      #sec10 h2 {
        font-size: 42px;
        line-height: 52px;
        letter-spacing: 0.1em;
        margin-bottom: 23px; }
      #sec10 .sec10-info {
        width: 426px;
        margin: 54px 6px 0 30px;
        order: 2; }
        #sec10 .sec10-info ul li {
          font-size: 16px;
          line-height: 32px; }
      #sec10 .sec10-img {
        margin: 0;
        width: 50%; }
        #sec10 .sec10-img .slick-dots {
          margin-top: 13px; }
          #sec10 .sec10-img .slick-dots li {
            margin: 0 0 0 6px; }
      #sec10 .popup-menu {
        margin-top: 50px; } }
  @media only screen and (min-width: 768px) and (max-width: 1100px) {
    #sec10 .sec10-info {
      margin: 0 0 0 30px; } }
