@charset "UTF-8";
/* ============================= 全体共通 ============================= */
@media screen {
   html {
      scroll-behavior: smooth;
      font-size: 62.5%;
      /* 1rem = 10px */
   }

   body {
      font-family: 'M PLUS 1', sans-serif;
      font-weight: 400;
      color: #000;
      font-size: 1.6rem;
      letter-spacing: .05em;
      position: relative;
   }

   a,
   button[type="submit"] {
      transition: opacity .3s;
   }

   a:hover,
   button[type="submit"]:hover {
      opacity: 0.7;
   }

   img {
      width: 100%;
   }

   .sp {
      display: none;
   }

   .hmbgr,
   .overlay {
      display: none;
   }


   .innerWrap {
      width: 100rem;
      margin: 0 auto;
      position: relative;
   }

   .grid-layout {
      position: relative;
      width: 100vw;
      height: 870px;
      margin: auto;
   }

   .grid-item {
      position: absolute;
      overflow: hidden;
   }

   .image-layer {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: center;
   }

   .image-layer.top {
      clip-path: inset(0 100% 0 0);
      /* 初期状態：全く見えない */
      animation: wipeIn 1s ease-in-out forwards;
   }

   @keyframes wipeIn {
      from {
         clip-path: inset(0 100% 0 0);
      }

      to {
         clip-path: inset(0 0 0 0);
      }
   }

   header {
      position: fixed;
      width: 100%;
      height: 11rem;
      top: 0;
      left: 0;
      background-color: #fff;
      padding: 0 4.2rem;
      color: #413225;
      z-index: 10000;
      letter-spacing: .1em;
      display: flex;
      justify-content: space-between;
      align-items: center;
   }

   header>div {
      display: flex;
      gap: 48px;
      align-items: center;
      font-size: 2.8rem;
      font-weight: 300;
   }

   header>div .logo {
      width: 17.5rem;
   }

   header nav.menu-pc ul {
      display: flex;
      gap: 4.8rem;
      font-weight: 500;
      font-size: 1.8rem;
   }

   main {
      margin-top: 11rem;
   }
    main .mainCatch {
        display:none;
    }
   main h2 {
      color: #413225;
      font-weight: 500;
      font-size: 2.6rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .2em;
      margin-bottom: 3.2rem;
   }

   main h2.h2_insta {
      flex-direction: row;
      justify-content: center;
      gap: .8rem;
   }

   main h2.h2_insta::before {
      content: "";
      width: 2rem;
      height: 2rem;
      margin-top: .4rem;
      background-image: url(../img/icon_instagram.svg);
      background-size: cover;
   }

   main h2 span {
      font-weight: 600;
      font-size: 1.2rem;
   }

   main>section:not(.mainVisual) {
      padding: 5.6rem 0 9rem;
   }

   main section.mainVisual {
      height: 87rem;
      background-color: #ECEBE9;
   }

   main section.shop {
      background-color: #EFEFEF;
      width: 143rem;
      margin: -8.4rem auto 0;
      padding: 2.6rem 2rem 2rem;
      z-index: 10;
      position: relative;
   }

   main section.shop ul {
      display: flex;
      gap: 1.4rem;
   }

   main section.shop ul li {
      background-color: #fff;
      position: relative;
      width: calc((100% - (1.4rem * 5)) / 6);
   }

   main section.shop ul li::after {
      content: "";
      position: absolute;
      top: 80%;
      right: .8rem;
      transform: translateY(-50%);
      width: 2.6rem;
      height: 2.6rem;
      background-image: url(../img/arrow_circle.svg);
      background-size: contain;
      background-repeat: no-repeat;
   }

   main section.shop ul li a>div {
      padding: .8rem;
      position: relative;
   }


   main section.shop ul li a>div h3 {
      font-size: 1.7rem;
      color: #413225;
      font-weight: 500;
      margin-bottom: 2rem;
   }

   main section.shop ul li a dl {
      font-size: 1.2rem;
      font-weight: 500;
      width: calc(100% - 2.6rem - 0.8rem);
   }

   main section.shop ul li a dl span {
      font-size: 1rem;
   }

   main ul.news_list_inner,
   main ul.pickup_list_inner {
      margin-bottom: 5rem;
   }

   main ul.news_list_inner>li.news_item .news_link,
   main ul.pickup_list_inner>li.pickup_item .pickup_link {
      display: block;
      width: 100%;
   }

   main ul.news_list_inner>li.news_item .news_link ul,
   main ul.pickup_list_inner>li.pickup_item .pickup_link ul {
      display: flex;
      align-items: center;
      font-weight: 500;
      gap: 1.4rem;
      border-top: 1px solid #D9D9D9;
      padding: 2rem 0;
   }

   main ul.news_list_inner>li.news_item:last-child .news_link ul,
   main ul.pickup_list_inner>li.pickup_item:last-child .pickup_link ul {
      border-bottom: 1px solid #D9D9D9;
   }

   main ul.news_list_inner>li.news_item .news_link ul li>span,
   main ul.pickup_list_inner>li.pickup_item .pickup_link ul li>span {
      width: 8em;
      display: inline-block;
      margin-left: 1em;
   }

   span.circle {
      color: #777777
   }

   span.circle-kochi {
      color: #4E2D64;
   }

   span.circle-takamatsu  {
      color: #427826;
   }

   span.circle-plus  {
      color: #253562;
   }

   span.circle-uchikore  {
      color: #887428;
   }

   span.circle-daiso  {
      color: #7B1729;
   }

   span.circle-rakuten {
      color: #8F491A;
   }

   main ul.news_list_inner>li.news_item .news_link ul li:first-child,
   main ul.pickup_list_inner>li.pickup_item .pickup_link ul li:first-child {
      flex-shrink: 0;
   }

   main ul.news_list_inner>li.news_item .news_link ul li:last-child,
   main ul.pickup_list_inner>li.pickup_item .pickup_link ul li:last-child {
      font-weight: 400;
      flex-grow: 0;
   }

   a.btnStyle01 {
      position: relative;
      width: 20rem;
      height: 3.6rem;
      margin: 0 auto;
      font-size: 1.4rem;
      letter-spacing: .1em;
      font-weight: 500;
      display: flex;
      justify-content: center;
      align-items: center;
      border: 1px solid #413225;
      border-radius: 1.8rem;
      color: #413225;
   }

   a.btnStyle01::after {
      content: "";
      position: absolute;
      right: 1.7rem;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 0.6rem;
      height: 0.6rem;
      border-top: 2px solid #413225;
      border-right: 2px solid #413225;
   }

   .page-news main .innerWrap>a.btnStyle01::after {
      transform: translateY(-50%) rotate(135deg);
   }

   main section.category ul {
      display: flex;
      justify-content: space-between;
      width: 100%;
      gap: 2rem;
   }

   main section.category ul li {
      width: 32rem;
      border-top: 1px solid #413225;
      padding-top: 1.6rem;
      font-size: 1.4rem;
      background-image: url(../img/bg_top_category01.jpg);
      background-repeat: no-repeat;
      background-position: right top;
      background-size: 21.3rem 12rem;
   }

   main section.category ul li:nth-child(2) {
      background-image: url(../img/bg_top_category02.jpg);
   }

   main section.category ul li:last-child {
      background-image: url(../img/bg_top_category03.jpg);
   }

   main section.category ul li h3 {
      font-size: 1.8rem;
      letter-spacing: .25em;
      margin-bottom: 10rem;
   }

   main section.category ul li:last-child h3 {
      letter-spacing: 0;
   }

   main section.instagram h3 {
      color: #413225;
      text-align: center;
      font-size: 1.8rem;
      font-weight: 500;
      margin-bottom: 1.5rem;
   }
    main section.instagram .innerWrap > section:not(:last-of-type) {
        margin-bottom:5rem;
    }

   main section.links .innerWrap>a {
      position: relative;
      width: 24.4rem;
      height: 5rem;
      margin: 0 auto;
      font-size: 1.8rem;
      letter-spacing: .1em;
      font-weight: 500;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: .8rem;
      border: 1px solid #413225;
      border-radius: 2.5rem;
      color: #413225;
   }

   main section.links .innerWrap>ul.pc {
      display: flex;
      width: calc(76.8rem - 4rem);
      margin: 0 auto 6rem;
      gap: 2rem;
   }

   main section.links .innerWrap>a::before {
      content: "";
      width: 1.9rem;
      height: 1.3rem;
      background-image: url(../img/icon_mail.svg);
      background-repeat: no-repeat;
      background-size: contain;
   }

   footer {
      background-color: #ECEBE9;
      color: #413225;
      padding-top: 3.8rem;
   }

   footer .innerWrap {
      padding: 0 3.8rem;
   }

   footer .innerWrap>section {
      display: flex;
      justify-content: space-between;
      margin-bottom: 6rem;
   }

   footer .innerWrap>section>p {
      width: 19rem;
   }

   footer .innerWrap>section>div {
      display: flex;
      gap: 7.5rem;
      font-size: 1.4rem;
   }

   footer .innerWrap>section>div nav ul {
      display: flex;
      flex-direction: column;
      gap: 2.5rem;
   }

   footer .innerWrap>section>div nav ul li {
      display: flex;
      align-items: center;
      gap: .5em;
   }

   footer .innerWrap>section>div nav ul li::before {
      content: "";
      display: inline-block;
      margin-top: .1em;
      width: 0.5em;
      height: 0.5em;
      border-right: 1px solid #413225;
      border-bottom: 1px solid #413225;
      transform: rotate(-45deg);
      vertical-align: middle;
   }

   footer .innerWrap>p {
      text-align: center;
      padding-bottom: 1.8rem;
      font-size: 1.2rem;
   }
   footer .sp.ft_privacy {
       display:none;
   }
   footer .pc.ft_privacy {
       margin-top:4.1rem;
   }
}

/* ============================= 下層ページ共通 ============================= */
@media screen {
   .page main h2,
   .single main h2 {
      font-size: 2rem;
   }

   .page main section.mainVisual,
   .single main section.mainVisual {
      height: 22rem;
      display: flex;
      justify-content: center;
      align-items: center;
      background-size: cover;
   }

   .page-company main section.mainVisual {
      background-image: url(../img/bg_company.jpg);
      background-position: center;
   }

   .page-recruit main section.mainVisual {
      background-image: url(../img/bg_recruit.jpg);
      background-position: right top;
   }

   .page main section.mainVisual h1,
   .single main section.mainVisual h1 {
      font-size: 2.6rem;
      font-weight: 500;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.2em;
   }

   .page main section.mainVisual h1 span,
   .single main section.mainVisual h1 span {
      font-size: 1.2rem;
      font-weight: 600;
   }

   .page-company main section.company_message .innerWrap>div {
      line-height: 2;
      letter-spacing: .05em;
   }

   .page-company main section.company_message .innerWrap>div>p:first-of-type {
      width: 50rem;
      margin: 0 auto 6rem;
   }

   .page-company main section.company_message .innerWrap>div>section {
      margin-bottom: 2em;
      font-size: 1.4rem;
   }

   .page-company main section.company_message .innerWrap>div>section h3 {
      font-size: 1.6rem;
      font-weight: 500;
   }

   .page-company main section.company_message .innerWrap>div>p:last-of-type {
      text-align: right;
      font-size: 1.6rem;
   }

   .page-company main section.company_message .innerWrap>div>p:last-of-type span {
      font-size: 1.4rem;
      display: inline-block;
      margin-right: 1em;
   }

   .page-company main section.company_info .innerWrap>div>section dl {
      display: flex;
      align-items: center;
      padding: 2em 0;
      border-top: 1px solid #D9D9D9;
   }

   .page-company main section.company_info .innerWrap>div>section dl:last-child {
      border-bottom: 1px solid #D9D9D9;
   }

   .page-company main section.company_info .innerWrap>div>section dl dt {
      color: #737373;
      font-size: 1.4rem;
      margin-left: 3em;
      width: 15em;
      flex-shrink: 0;
      letter-spacing: .1em;
      font-weight: 400;
   }

   .page-company main section.company_info .innerWrap>div>section dl dd {
      font-size: 1.8rem;
      flex-grow: 0;
      line-height: 1.4;
   }

   .page-company main section.company_history .innerWrap>div>section {
      padding: 0 8rem;
   }

   .page-company main section.company_history .innerWrap>div>section dl {
      display: flex;
      align-items: flex-start;
      font-size: 1.4rem;
      letter-spacing: .1em;
      line-height: 1.5;
      background-image: url(../img/line-circle.svg);
      background-size: 1em auto;
      background-repeat: no-repeat;
      background-position: left 0 top 0.38em;
      margin-bottom: 0.5rem;
      padding-bottom: 4.5rem;
   }

   .page-company main section.company_history .innerWrap>div>section dl:last-child {
      background-image: url(../img/line-circle2.svg);
   }

   .page-company main section.company_history .innerWrap>div>section dl dt {
      width: 12rem;
      padding-left: 1.2em;
      font-weight: 500;
      flex-shrink: 0;
   }

   .page-company main section.company_history .innerWrap>div>section dl dd {
      flex-grow: 0;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 2.2rem;
      width: 64.2rem;
      margin: 0 auto;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul li {
      width: 31rem;
      display: flex;
      gap: 1.4rem;
      background-image: url(../img/arrow_large.svg);
      background-repeat: no-repeat;
      background-position: right 1rem bottom .65rem;
      background-size: 19.25rem 2.25rem;
      cursor: pointer;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul li p:first-child {
      width: 10rem;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul li p:last-child {
      display: flex;
      flex-direction: column;
      font-weight: 500;
      gap: .2em;
      padding-top: 2.5rem;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul li p:last-child span {
      font-size: 1.4rem;
   }


   .modal-container {
      position: relative;
   }

   /* モーダル背景 */
   .modal {
      display: flex;
      position: fixed;
      z-index: 10010;
      inset: 0;
      background: rgba(0, 0, 0, 0.7);
      justify-content: center;
      align-items: flex-start;
      padding: 5vh 2rem;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.3s ease, visibility 0.3s ease;
   }

   /* 表示状態 */
   .modal.active {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
   }

   /* モーダル内容 */
   .modal-content {
      background: #DBDBDB;
      width: 100%;
      max-width: 500px;
      padding: 7.5rem 3rem 0;
      height: 90vh;
      margin: 0 auto;
      position: relative;
      border-radius: 0;
   }

   .modal-content>section {
      overflow-y: auto;
      height: calc(100vh - 7.5rem - 100px - 10vh);
   }

   .modal-content h3 {
      margin-bottom: 1.5rem;
   }

   .modal-content section p {
      line-height: 1.7;
      margin-bottom: .8em;
   }

   /* 閉じるボタン */
   .close {
      position: absolute;
      bottom: 3rem;
      left: 50%;
      transform: translateX(-50%);
      width: 60px;
      height: auto;
      padding-top: 2.5rem;
      /* バツの高さ分スペース確保 */
      text-align: center;
      font-size: 1.2rem;
      color: #000;
      cursor: pointer;
   }

   /* バツ印（CSS罫線） */
   .close::before,
   .close::after {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      width: 50px;
      height: 1px;
      background-color: #333;
      transform-origin: center;
   }

   .close::before {
      transform: translateX(-50%) rotate(45deg);
   }

   .close::after {
      transform: translateX(-50%) rotate(-45deg);
   }

   .page-recruit section.recruit_info .innerWrap>div section {
      width: 100%;
      max-width: 50rem;
      background-color: #ECEBE9;
      padding: 2.5rem 2rem;
      margin: 0 auto 2rem;
      font-size: 1.8rem;
      font-weight: 500;
   }

   .page-recruit section.recruit_info .innerWrap>div section h3 {
      text-align: center;
      padding-bottom: 1.2em;
      border-bottom: 1px solid #000;
      margin-bottom: 1em;
   }

   .page-recruit section.recruit_info .innerWrap>div section h4 {
      margin-bottom: 0.6em;
   }

   ul.recruit_contents li a,
   ul.recruit_contents li p {
      width: 100%;
      height: 4.4rem;
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #fff;
      border-radius: 2.2rem;
      position: relative;
      font-size: 1.6rem;
   }

   .page-recruit ul.recruit_contents li a,
   .page-recruit ul.recruit_contents li p {
      margin-bottom: 2.5rem;
   }
   ul.recruit_contents li.no-recruit a {
       display:none;
   }

   ul.recruit_contents li.no-recruit p {
      color: #9f9f9f;
      pointer-events: none;
   }

   ul.recruit_contents li.has-recruit a::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 1.6rem;
      transform: translateY(-50%);
      width: 1.56rem;
      height: 1.3rem;
      background-image: url("../img/arrow.svg");
      background-size: contain;
      background-repeat: no-repeat;
   }
   ul.recruit_contents li.has-recruit p {
       display:none;
   }

   .page-contact section.contact_tel .innerWrap>div section ul {
      display: flex;
      flex-wrap: wrap;
      gap: 2.2rem;
      width: 64.2rem;
      margin: 0 auto;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li {
      letter-spacing: .1em;
      width: 31rem;
      margin-bottom: 3rem;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li h3 {
      font-size: 1.8rem;
      border-bottom: 2px solid #413225;
      padding-bottom: .6em;
      margin-bottom: 1em;
      font-weight: 500;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li>div {
      margin-bottom: 1em;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li>div p {
      font-weight: 500;
      font-size: 1.2rem;
      line-height: 1.7;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li>div p span {
      display: inline-block;
      width: 6.5em;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li a {
      display: flex;
      justify-content: space-between;
      width: 100%;
      height: 4.6rem;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li a span {
      width: 26rem;
      height: 4.6rem;
      display: flex;
      align-items: center;
      padding-left: .6em;
      font-size: 2.2rem;
      background-color: #ECEBE9;
      border-radius: 0 .5rem .5rem 0;
   }

   .page-contact section.contact_tel .innerWrap>div section ul li a::before {
      content: "";
      width: 4.6rem;
      height: 4.6rem;
      background-image: url(../img/icon_tel2.svg);
      background-size: cover;
   }

   form {
      max-width: 50rem;
      margin: 0 auto;
      font-size: 1.4rem;
      font-weight: 500;
      letter-spacing: .1em;
   }

   form legend {
      display: block;
      margin-bottom: 1.5rem;
   }

   form label {
      display: block;
      margin-bottom: 0.5rem;
   }

   form .required {
      font-weight: normal;
      color: #C11920;
      font-size: 1.2rem;
      margin-left: 0.5rem;
   }

   form input[type="text"],
   form input[type="email"],
   form input[type="tel"],
   form input[type="number"],
   form input[type="date"],
   form textarea {
      width: 100%;
      max-width: 100%;
      padding: 1.2rem 0.8rem;
      font-size: 1.4rem;
      border: 1px solid #454545;
      border-radius: 0.2rem;
      box-sizing: border-box;
      margin-bottom: 2rem;
   }

   form fieldset {
      border: none;
      padding: 0;
      margin: 0 0 2rem;
   }

   form fieldset label {
      display: flex;
      align-items: center;
      margin-bottom: 1.2rem;
      font-size: 1.4rem;
      font-weight: 400;
      padding-left: 1em;
   }

   form fieldset input[type="radio"],
   form fieldset input[type="checkbox"] {
      margin-right: 1rem;
   }
   
   form fieldset > p > span > span {
       display:flex;
       flex-direction:column;
   }
    
   form textarea {
      resize: vertical;
   }

    form input[type="submit"] {
      display: block;
      width: 26.5rem;
      height: 5.2rem;
      margin: 2rem auto 0;
      font-weight: 600;
      background-color: #F6EAEB;
      border: 1px solid #454545;
      border-radius: 3rem;
      color: #454545;
      cursor: pointer;
      text-align: center;
      letter-spacing: .1em;
      position: relative;
      background-image: url(../img/arrow2.svg);
      background-repeat: no-repeat;
      background-position: right 1.7rem center;
      background-size: 0.6rem 1rem;
    }

   form>section {
      padding: 3rem 0 1rem;
      margin-bottom: 3rem;
      border-top: 3px double #000;
      border-bottom: 3px double #000;
   }
   
   .page-thanks .thanks_message,
   .store-recruit-thanks .thanks_message {
       margin-bottom:5rem;
       text-align:center;
       line-height:1.7;
   }
   
   .page-privacy main,
   .page-protection main {
        font-size: 1.4rem;
        line-height:1.5;
    }
   .page-privacy main h3,
   .page-protection main h3 {
        font-weight: 500;
    }
   .page-privacy main section,
   .page-protection main section {
       margin-bottom:3rem;
   }
   .page-privacy main h3,
   .page-privacy main p,
   .page-protection main h3,
   .page-protection main p {
       margin-bottom:1.5rem;
   }
   .page-privacy main a,
   .page-protection main a {
       text-decoration:underline;
   }
   .page-protection main li {
       margin-bottom:1rem;
   }


   .single-news main ul.news_list_inner>li.news_item:last-child .news_link ul,
   .single-pickup main ul.pickup_list_inner>li.pickup_item:last-child .pickup_link ul {
      border-bottom: none;
   }
   .single-news main ul.news_list_inner>li.news_item .news_link ul,
   .single-pickup main ul.pickup_list_inner>li.pickup_item .pickup_link ul {
      flex-direction: column;
      align-items: flex-start;
         gap: 1.4rem;
      border-top: none;
         padding: 2rem 0;
   }
   .single-news main ul.news_list_inner>li.news_item .news_link ul li:last-child,
   .single-pickup main ul.pickup_list_inner>li.pickup_item .pickup_link ul li:last-child {
      font-weight: 500;
      font-size: 1.8rem;
   }
   .single-news main .news_contents p,
   .single-pickup main .pickup_contents p {
      margin-bottom: 5rem;
      line-height: 2;
      letter-spacing: .05em;
   }
   .single-news .btnStyle01,
   .single-pickup .btnStyle01 {
       margin-top:5rem;
   }
}

/* ============================= 店舗ページ共通 ============================= */
.store section.mainVisual h1 {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 100%;
   height: 4rem;
   background-color: #413225;
   color: #fff;
   font-size: 2.2rem;
   font-weight: 500;
   position: fixed;
   top: 11rem;
   left: 0;
   z-index: 9900;
}

.store main {
   margin-top: 15rem;
}

.store main > a.btnStyle01 {
    margin-bottom:5rem;
}

.store main section.mainVisual {
   height: 56rem;
   background-size: cover;
   background-position: center;
}

.store-kochi main section.mainVisual {
   background-image: url(../img/bg_store_kochi.jpg);
}
.store-takamatsu main section.mainVisual {
   background-image: url(../img/bg_store_takamatsu.jpg);
}
.store-plus main section.mainVisual {
   background-image: url(../img/bg_store_plus.jpg);
}
.store-uchikore main section.mainVisual {
   background-image: url(../img/bg_store_uchikore.jpg);
}
.store-daiso main section.mainVisual {
   background-image: url(../img/bg_store_daiso.jpg);
}

.store-top main section.pickup .innerWrap ul {
   display: flex;
   justify-content: flex-start;
   margin-bottom: 4.5rem;
   gap:5rem;
}

.store-top main section.pickup .innerWrap ul li {
   width: calc((100% - 10rem) / 3);
   max-width: 30rem;
}

.store-top main section.pickup .innerWrap ul li p.pickupCover {
   aspect-ratio: 1 / 1;
   /* 常に正方形 */
   overflow: hidden;
   position: relative;
   width: 100%;
   /* liの幅に追従 */
   margin-bottom: 0.8rem;
}

.store-top main section.pickup .innerWrap ul li p.pickupCover img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
   display: block;
}

.store-top main section.pickup .innerWrap ul li p.pickupTitle {
   font-weight: 500;
   letter-spacing: .05em;
   line-height: 1.5;
}

.store-top main section.service .innerWrap ul {
   width: 100%;
   max-width: 78rem;
   margin: 0 auto;
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   gap: 4.8rem min(12rem, 6vw);
   margin-bottom: 4.5rem;
}

.store-top main section.service .innerWrap ul li {
   width: 18rem;
   text-align: center;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 1.6rem;
   font-size: 1.8rem;
   font-weight: 500;
   line-height: 1.5;
}

.store-top main section.storeInfo iframe {
   width: 100vw;
   height: 60rem;
   margin-bottom: 2rem;
}

.store-top main section.storeInfo .innerWrap {
   font-weight: 500;
}

.store-top main section.storeInfo .innerWrap dl div {
   display: flex;
   align-items: stretch;
   letter-spacing: .1em;
}

.store-top main section.storeInfo .innerWrap dl div dt {
   width: 7em;
   flex-shrink: 0;
   padding: 1.5em 0 1.5em 1.5em;
   box-shadow: inset 0 -3px 0 0 #413225;
   display: flex;
   align-items: center;
}

.store-top main section.storeInfo .innerWrap dl div dd {
   flex-grow: 0;
   width: calc(100% - 7em);
   padding: 1.5em 0 1.5em 2em;
   box-shadow: inset 0 -1px 0 0 #413225;
   display: flex;
   align-items: center;
}

.store-top main section.storeInfo .innerWrap>p {
   padding: 1.5em 0 1.5em 1.5em;
}

.store-top main section.storeRecruit ul {
   display: flex;
   width: 100%;
   max-width: 94rem;
   justify-content: space-between;
   margin: 0 auto;
}

.store-top main section.storeRecruit ul li {
   width: calc((100% - 4rem) / 2);
   max-width: 50rem;
   background-color: #ECEBE9;
   padding: 2.5rem 4rem;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 2rem;
}

.store-top main section.storeRecruit ul li h3 {
   font-size: 1.8rem;
   font-weight: 500;
   letter-spacing: .1em;
}
.page.store-pickup main ul.pickup_list_inner>li.pickup_item .pickup_link {
   display: flex;
   gap:1rem;
   align-items: flex-start;
   padding:2rem 0;
   border-bottom:1px solid #d9d9d9;
}
.page.store-pickup main ul.pickup_list_inner>li.pickup_item:first-child .pickup_link {
   border-top:1px solid #d9d9d9;
}
.store-pickup main ul.pickup_list_inner>li.pickup_item .pickup_link ul {
   flex-direction: column;
   align-items: flex-start;padding: 0;
   border:none;
   flex-grow: 0;
}
.store-pickup main ul.pickup_list_inner > li.pickup_item .pickup_link p.pickupCover {
   width: 15rem;
   aspect-ratio: 1 / 1;
   overflow: hidden;
   position: relative;
   flex-shrink: 0;
}

.store-pickup main ul.pickup_list_inner > li.pickup_item .pickup_link p.pickupCover img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
   position: absolute;
   top: 0;
   left: 0;
}

.store-service main section.service .innerWrap>p {
   text-align: center;
   line-height: 1.5;
   font-weight: 500;
   margin-bottom: 13rem;
}

.store-service main section.service .innerWrap>ul {
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
}

.store-service main section.service .innerWrap>ul li {
   width: calc((100% - 8vw) / 3);
   margin-bottom: 8rem;
}

.store-service main section.service .innerWrap>ul li div {
   display: flex;
   gap: 2rem;
   align-items: center;
   margin-bottom: 1.2em;
}

.store-service main section.service .innerWrap>ul li div>p:first-child {
   width: 8rem;
   flex-shrink: 0;
}

.store-service main section.service .innerWrap>ul li div>p:last-child {
   font-size: 1.8rem;
   font-weight: 500;
   line-height: 1.4;
   letter-spacing: .1em;
}

.store-service main section.service .innerWrap>ul li>p {
   letter-spacing: .05em;
   line-height: 1.5;
}

.store-recruit-info main section.recruit-info,
.store-recruit-info main section.recruit-flow,
.store-recruit-info main section.recruit-apply {
   width: 100%;
   max-width: 50rem;
   margin: 0 auto;
}

.store-recruit-info main section.recruit-info .innerWrap,
.store-recruit-info main section.recruit-flow .innerWrap,
.store-recruit-info main section.recruit-apply .innerWrap {
   width: 100%;
}

.store-recruit-info main section.recruit-info .innerWrap>section:first-child {
   margin-bottom: 12rem;
}

.store-recruit-info main h3,
.store-recruit-form main h3 {
   text-align: center;
   border-bottom: 1px solid #000;
   padding-bottom: .4em;
   font-size: 1.8rem;
   font-weight: 500;
   letter-spacing: .1em;
   width: 100%;
   max-width: 50rem;
   margin: 0 auto 4.5rem;
}

.store-recruit-info main section.recruit-info .recruit-info-detail {
   scroll-margin-top: 18rem;
}

.store-recruit-info main section.recruit-info .recruit-info-detail .job-info>p {
   text-align: center;
   font-size: 1.8rem;
   font-weight: 500;
   letter-spacing: .1em;
   margin-bottom: 3.5rem;
}

.store-recruit-info main section.recruit-info .recruit-info-detail .job-info>div {
   margin-bottom: 3.5rem;
}

.store-recruit-info main section.recruit-info .recruit-info-detail .job-info>div h4 {
   font-size: 1.4rem;
   font-weight: 500;
   letter-spacing: .05em;
   background-color: #DADADA;
   padding: .5em .8em;
   margin-bottom: 1rem;
}

.store-recruit-info main section.recruit-info .recruit-info-detail .job-info>div>p {
   letter-spacing: .05em;
   line-height: 1.4;
   font-size: 1.4rem;
}

.store-recruit-info main section.recruit-flow .innerWrap ol li {
   display: flex;
   gap: 1.6rem;
   margin-bottom: 2.4rem;
   align-items: center;
   flex-direction: column;
}

.store-recruit-info main section.recruit-flow .innerWrap ol li span {
   display: block;
   width: 100%;
   border: 1px solid #000;
   padding: .8em;
   font-size: 1.4rem;
   letter-spacing: .05em;
   line-height: 1.4;
}

.store-recruit-info main section.recruit-flow .innerWrap ol li:not(:last-child)::after {
   content: "";
   width: 2.5rem;
   height: 2.5rem;
   border-left: 2px solid #000;
   border-bottom: 2px solid #000;
   transform: translateX(-50%) rotate(-45deg);
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:first-child {
   margin-bottom: 5rem;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li>p {
   margin-bottom: .8em;
   font-size: 1.4rem;
   font-weight: 500;
   letter-spacing: .05em;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:first-child>a {
   width: 100%;
   height: 4.4rem;
   display: flex;
   justify-content: center;
   align-items: center;
   background-color: #DADADA;
   border-radius: 2.2rem;
   position: relative;
   font-size: 1.8rem;
   font-weight: 500;
   letter-spacing: .1em;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:first-child>a::after {
   content: "";
   position: absolute;
   top: 50%;
   right: 1.6rem;
   transform: translateY(-50%);
   width: 1.56rem;
   height: 1.3rem;
   background-image: url("../img/arrow.svg");
   background-size: contain;
   background-repeat: no-repeat;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:last-child>a {
   display: flex;
   justify-content: space-between;
   width: 100%;
   height: 4.6rem;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:last-child>a span {
   width: calc(100% - 4.6rem - 0.4rem);
   height: 4.6rem;
   display: flex;
   align-items: center;
   padding-left: .6em;
   font-size: 2.2rem;
   background-color: #ECEBE9;
   border-radius: 0 .5rem .5rem 0;
}

.store-recruit-info main section.recruit-apply .innerWrap ul li:last-child>a::before {
   content: "";
   width: 4.6rem;
   height: 4.6rem;
   background-image: url(../img/icon_tel2.svg);
   background-size: cover;
}

/* ============================= レスポンシブ対応 ============================= */
@media (max-width: 1440px) {
   main section.shop {
      width: 100vw;
      margin: 0 auto;
   }
}

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

   .hmbgr {
      display: block;
   }


   .menu-toggle {
      display: flex;
      position: absolute;
      right: 24px;
      top: 34px;
      width: 36px;
      height: 36px;
      z-index: 100;
      cursor: pointer;
      flex-direction: column;
      justify-content: center;
      align-items: center;
   }

   .menu-toggle span {
      position: absolute;
      width: 36px;
      height: 3px;
      background: #413225;
      transition: all 0.3s ease;
   }

   .menu-toggle span:first-child {
      top: 12px;
   }

   .menu-toggle span:last-child {
      top: 20px;
   }

   .menu-toggle::after {
      content: "MENU";
      display: block;
      font-size: 10px;
      color: #413225;
      margin-top: 30px;
      font-weight: 500;
      letter-spacing: .2em;
   }

   .menu-toggle.active span:first-child {
      transform: rotate(45deg);
      top: 16px;
      background: #fff;
   }

   .menu-toggle.active span:last-child {
      transform: rotate(-45deg);
      top: 16px;
      background: #fff;
   }

   .menu-toggle.active::after {
      content: "";
   }

   .menu-sp {
      position: fixed;
      top: 0;
      right: -390px;
      width: 390px;
      height: 100%;
      background: #888;
      color: #fff;
      transition: right 0.4s ease;
      z-index: 90;
      padding: 6rem 0;
      font-size: 2rem;
   }

   .menu-sp.active {
      right: 0;
   }

   .menu-sp>div {
      width: 31rem;
      margin: 0 auto;
   }

   .menu-sp>div>p {
      width: 17rem;
      margin-bottom: 6.4rem;
   }

   .menu-sp>div>ul {
      margin-bottom: 6.4rem;
   }

   .menu-sp ul {
      display: flex;
      flex-direction: column;
      gap: 3.6rem;
   }

   .menu-sp ul li {
      display: flex;
      align-items: center;
      gap: .6em;
   }

   .menu-sp ul li::before {
      content: "";
      display: inline-block;
      margin-top: .1em;
      width: 0.5em;
      height: 0.5em;
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      transform: rotate(-45deg);
   }

   .menu-sp>div>div p {
      padding-bottom: .6em;
      margin-bottom: 3rem;
      border-bottom: 1px solid #fff;
   }

   .menu-sp>div>div p span {
      font-size: 1.8rem;
      display: inline-block;
      margin-left: .8em;
   }

   .menu-sp>div>div ul {
      padding-left: 3rem;
   }

   .overlay {
      display: block;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      z-index: 80;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease;
   }

   .overlay.active {
      opacity: 1;
      visibility: visible;
   }

   body.no-scroll {
      overflow: hidden;
   }
}

@media (max-width: 1000px) {

   .innerWrap {
      width: calc(100vw - 4rem);
   }


   .store-recruit-info main section.recruit-info .innerWrap,
   .store-recruit-info main section.recruit-flow .innerWrap,
   .store-recruit-info main section.recruit-apply .innerWrap {
      width: calc(100% - 4rem);
   }

   main section.shop ul {
      flex-wrap: wrap;
   }

   main section.shop ul>li {
      width: calc((100% - (1.4rem * 2)) / 3);
   }

   .page-company main section.company_message .innerWrap>div>p:first-of-type {
      width: min(50rem, 100%);
   }

   .page-company main section.company_history .innerWrap>div>section {
      padding: 0;
   }
}

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

   .sp {
      display: block;
   }

   .menu-toggle {
      top: 48px;
   }

   .menu-sp {
      right: -100vw;
      width: 100vw;
      padding: 60px 20px;
   }

   header {
      height: 11rem;
      padding: 5.4rem 0 0 0;
   }

   .page header,
   .single header,
   .store header {
      height: 11rem;
   }

   header>div {
      flex-direction: column;
      width: 100%;
      position: relative;
      height: 100%;
   }

   header>div span {
       display:none;
   }
   main .mainCatch {
      width: 100%;
      height: 6rem;
      text-align: center;
      background-color: #ECEBE9;
      font-size: 2.2rem;
      letter-spacing: .05em;
      display: flex;
      justify-content: center;
      align-items: center;
   }

   main {
      margin-top: 11rem;
   }

   .top main section.mainVisual {
      height: calc(100dvh - 17rem - 5rem);
      min-height: 60rem;
   }

   main ul.news_list_inner>li.news_item .news_link ul,
   main ul.pickup_list_inner>li.pickup_item .pickup_link ul {
      flex-direction: column;
      align-items: flex-start;
      gap: 1rem;
   }

   main section.links .innerWrap>ul {
      display: flex;
      width: 100%;
      flex-direction: column;
      margin: 0 auto 6rem;
      gap: 2rem;
   }

   main section.links .innerWrap>ul li {
      width: 32rem;
      margin: 0 auto;
   }

   main section.shop ul {
      flex-direction: column;
      gap: 2rem;
   }

   main section.shop ul>li {
      width: 100%;
   }

   main section.shop ul>li a {
      display: flex;
   }

   main section.shop ul li::after {
      top: 50%;
   }

   main section.shop ul li a>p {
      aspect-ratio: 1 / 1;
      /* 1:1の比率 */
      overflow: hidden;
      position: relative;
      display: block;
      flex-shrink: 0;
   }

   main section.shop ul li a>p img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
   }

   main section.shop ul li a dl {
      width: auto;
   }

   main section.shop ul li a>div {
      padding: 1rem;
      flex-grow:0;
   }

   main section.shop ul li::after {
      right: 1.5rem;
   }

   main section.category ul {
      flex-direction: column;
      gap: 5rem;
   }

   main section.category ul li {
      margin: 0 auto;
   }

   footer .innerWrap {
      padding: 0;
   }

   footer .innerWrap>section>div {
      flex-direction: column;
      gap: 5rem;
   }

   footer .innerWrap>section>p {
      width: 13rem;
   }
   
   footer .sp.ft_privacy {
       display:flex;
       margin-top:2rem;
   }

   .single .mainCatch,
   .page .mainCatch {
      display: none;
   }

   .page main section.mainVisual,
   .single main section.mainVisual {
      height: 13rem;
   }

   .page-company main section.mainVisual {
      background-image: url(../img/bg_company_sp.jpg);
   }

   .page-recruit main section.mainVisual {
      background-image: url(../img/bg_recruit_sp.jpg);
   }

   .page-company main section.company_info .innerWrap>div>section dl {
      flex-direction: column;
      align-items: flex-start;
      gap: 1em;
   }

   .page-company main section.company_info .innerWrap>div>section dl dt {
      margin-left: 2rem;
      width: 100%;
   }

   .page-company main section.company_info .innerWrap>div>section dl dd {
      margin-left: 2rem;
   }

   .page-company main section.company_history .innerWrap>div>section dl {
      flex-direction: column;
      gap: 1em;
      padding-bottom: 3.6rem;
   }

   .page-company main section.company_history .innerWrap>div>section dd {
      padding-left: 3em;
   }

   .modal {
      padding: 0;
   }

   .modal-content>section {
      height: calc(100vh - 7.5rem - 120px);
   }

   /* モーダル内容 */
   .modal-content {
      width: 100%;
      max-width: unset;
      height: 100%;
   }

   .page-recruit main section.recruit_voice .innerWrap>div>section ul {
      flex-direction: column;
      width: 31rem;
   }

   .page-contact section.contact_tel .innerWrap>div section ul {
      width: 100%;
      flex-direction: column;
      align-items: center;
   }

   .store main section.mainVisual {
      height: 39rem;
   }

   .store-kochi main section.mainVisual {
      background-image: url(../img/bg_store_kochi_sp.jpg);
   }

   .store-top main section.pickup .innerWrap ul {
      width: 100%;
      max-width: 50rem;
      flex-direction: column;
      margin: 0 auto;
      gap: 5rem;
      margin-bottom: 5.5rem;
   }

   .store-top main section.pickup .innerWrap ul li {
      width: 100%;
      max-width: unset;
   }

   .store-top main section.service .innerWrap ul li {
      width: calc((100% - 12vw) / 3);
      font-size: 1.6rem;
      letter-spacing: 0;
   }

   .store-top main section.storeInfo iframe {
      height: 40rem;
   }

   .store-top main section.storeRecruit ul {
      flex-direction: column;
      gap: 2rem;
      align-items: center;
   }

   .store-top main section.storeRecruit ul li {
      width: 100%;
      max-width: 50rem;
   }

   .store-pickup main ul.pickup_list_inner > li.pickup_item .pickup_link p.pickupCover {
      width: 10rem;
   }
   .page main ul.pickup_list_inner>li.pickup_item .pickup_link ul li>span {
      width: auto;
   }
   .store-service main section.service .innerWrap>ul {
      flex-direction: column;
      width: 100%;
      max-width: 50rem;
      margin: 0 auto;
      gap: 4.5rem
   }

   .store-service main section.service .innerWrap>ul li {
      width: 100%;
      margin-bottom: 0;
      border-bottom: 1px solid #413225;
      padding-bottom: 4.5rem;
   }

   .store-service main section.service .innerWrap>ul li:last-child {
      border-bottom: none;
   }
}


/* ============================= ハンバーガーメニューの画面高さに対する調整 ============================= */
@media (max-height: 850px) {
   .menu-sp>div>p {
      margin-bottom: 5vh;
   }

   .menu-sp>div>ul {
      margin-bottom: 5vh;
   }

   .menu-sp ul {
      gap: 2.5vh;
   }

   .menu-sp>div>div p {
      margin-bottom: 2.5vh;
   }
}