/*
Theme Name: sharebase
Author: Misato
Version: 1.0
*/
@charset "UTF-8";

html {
  font-size: 100%;
}
body {
  color: #383e45;
  font-size: 0.9rem;
  font-family: 'Hina Mincho', serif;
}
/*スマホ用*/
.sp-br, .sp-img {
  display: none;
}
/*hover*/
a {
  color: inherit;
  text-decoration: none;
}
a,
button {
  cursor: pointer;
}
a:hover, button:hover {
  opacity: 0.6;
}
h1 {
  margin: 0;
}
h1 a:hover {
  opacity: 1.0;
}
img {
  max-width: 100%;
}
li {
  list-style: none;
}
.site-title {
  padding: 10px 0;
}
.section-title {
  text-align: center;
  margin-top: 150px;
  margin-bottom: 40px;
}
.content-title {
  font-size: 1rem;
  margin: 10px 0;
}
.wrapper {
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  text-align: center;
}
.button1, .button2, .button3, .button4 {
  border: 1px solid rgb(58, 56, 56);
  border-radius: 20px;
  padding: 5px 10px;
  font-weight: normal;
}
.bold {
  font-weight: bold;
}

/*-------------------------------------------
Header
-------------------------------------------*/
#header {
  width: 100%;
  min-height: 100dvh;
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
}
.bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: opacity 1.5s ease-in-out;
  z-index: -1;
}

.bg1 {
  opacity: 1;
}

.bg2 {
  opacity: 0;
}
#header h1 {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}
.main {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: #fff;
  width: 100%;
  padding-bottom: 20px;
}
.header-1 {
  margin-top: 0;
}
.header-1 h2, .header-1 p {
  padding-left: 30px;
  padding-bottom: 10px;
}
.menu {
  font-size: 28px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  padding-right: 60px;
}
.menu h3 {
  font-weight: 300;
  margin-bottom: 10px;
  border-bottom: #fff 1px solid;
}
.menu li {
  padding: 15px 0;
}
.menu li:not(:last-child) {
  padding-bottom: 0;
}

/*-------------------------------------------
Concept
-------------------------------------------*/
.concept-1 {
  display: flex;
  position: relative;
  margin-bottom: 80px;
}
#concept h3 {
  margin: 0 auto;
  text-align: center;
  line-height: 4.0;
  margin-bottom: 80px;
}
.concept-1 img{
  width: 10%;
  position: absolute;
  right: 20%;
  top: 35%;
  height: 100px;
}
/* concept */

#concept .text {
  display: flex;
  flex-direction: column;
}
.text1,
.text2 {
  display: flex;
  gap: 80px;
}
.text1 img,
.text2 img {
  width: 28%;
  height: auto;
  object-fit: cover;
}
.text1 {
  align-items: flex-start;
}
.text2 {
  position: relative;
}
.text2 img {
  width: 20%;
  position: absolute;
  right: 20%;
  top: -5%;
}
.detail2 {
  margin: 300px 20px 150px 120px;
}
.detail1,
.detail2 {
  line-height: 2.5;
  font-size: 15px;
  text-align: left;
}
.detail1{
  margin-top: 20px;
}

#concept p {
  margin-bottom: 10px;
}

/*-------------------------------------------
future
-------------------------------------------*/
.future-top {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-template-rows: auto auto;
  margin-bottom: 200px;
  text-align: left;
}
.item1 {
  grid-column: 1;
  grid-row: 1;
}
#future .text {
  grid-column: 1;
  grid-row: 2;
  line-height: 2.5;
  font-size: 15px;
}
.item1, #future .text {
  width: 70%;
  margin: 0 auto;
}
.future-img1 {
  object-fit: cover;
  grid-column: 2;
  grid-row: 1/3;
  padding-top: 100px;
}
#future h2 p {
  font-size: 16px;
  margin:10px 0 40px 0;
}
#future .text p {
  padding-bottom: 20px;
}
.future-img2 {
  width: 80%;
  display: block;
  margin-bottom: 100px;
  object-fit: cover;
}
.future-title {
  font-size: 16px;
  font-weight: 500;
  margin: 0 auto;
  text-align: center;
  line-height: 4.0;
  margin-bottom: 100px;
}
/*-------------------------------------------
sharespace
-------------------------------------------*/
#sharebase {
  margin-bottom: 200px;
}
.sharebase-title {
  position: relative;
  margin-bottom: 120px;
}
.sharebase-title h3 {
  position: absolute;
  right: 25%;
  bottom: 0;
}
.sharebase-list {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  margin-bottom: 260px;
}
.list-en {
  font-family: 'Gothic A1', sans-serif;
  font-size: 14px;
  margin-bottom: 10px;
}
.list-name {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 10px;
}
.list-sub {
  font-family: 'Gothic A1', sans-serif;
  font-size: 14px;
}
.free-studio {
  padding: 0 40px;
  width: 50%;
  position: relative;
}
.box1, .box2 {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.box1 {
  background-color: #fffbeb;
  height: 300px;
  margin-bottom: 40px;
}
.box-img1{
  position: absolute;
  top: -9%;
  left: 3%;
  width: 25%;
}
.style {
  align-items: center;
  display: flex;
  flex-direction: column;
}
.layout1 {
  width: 80%;
  margin-top: 40px;
}
.layout2 {
  width: 80%;
  display: block;
  margin: 0;
}
.kitchen2 {
  padding: 0 40px;
  width: 50%;
  position: relative;
}
.box2 {
  position: relative;
  background-color: #fbf6e8;
  height: 220px;
  margin-bottom: 40px;
}
.box-img2 {
  position: absolute;
  top: 18%;
  right: 3%;
  width: 25%;
}
.button2 {
  position: absolute;
  top: 50%;
  right: 15%;
}
.kitchen1 {
  margin-top: 100px;
  position: relative;
  width: 50%;
}
.layout3{
  width: 100%;
  position: static;
}
.inner {
  width: 90%;
}
.box3, .box4 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.box3 {
  background-color: #fbfaf3;
  height: 490px;
  margin-bottom: 70px;
}
.box-img3 {
  position: absolute;
  top: 65%;
  left: 0;
  width: 40%;
}

.cafe {
  margin-top: 20px;
  padding: 0 40px 0 0;
  width: 50%;
  position: relative;
}
.box4 {
  background-color: #fcfaf2;
  height: 300px;
  margin-bottom: 40px;
}
.box-img4 {
  position: absolute;
  top: -9%;
  left: 0;
  width: 25%;
}
#sharebase p {
  font-size: 15px;
}
/*-----single.html-----*/
.space-detail{
  max-width:100%;
  min-height: auto;
  margin:auto;
  padding: 50px 50px;
  letter-spacing: 2px;
}
.space-top{
  align-items: center;
  display:flex;
  gap:40px;
  margin-bottom:40px;
}
.space-img {
  padding-left: 40px;
}

.space-img img {
  width: 100%;
  max-width: 320px;
  height: 250px;
  object-fit: contain;
}
.space-text{
  font-family: 'Gothic A1', sans-serif;
  max-width: 60%;
  margin: 0 auto;
  flex-direction: column;
}
.space-text1 {
  margin-bottom: 40px;
}
.space-text2 {
  border: 1px solid #383e45;
  padding: 35px 30px;
  position: relative;
}
.text-title {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 30px;
}
/*各スペースの画像(リボン、葉etc...)*/
.space-text2 img {
  max-width: 20%;
  position: absolute;
}
.space-text2 .obana {
  top: -60px;
  right: -10%;
}
.space-text2 .torinoko {
  bottom: -30px;
  right: -10%;
}
.space-text2 .kinari {
  top: -50px;
  left: -5%;
}
.space-text2 .shironeri {
  bottom: -20px;
  right: -10%;
}
.space-title{
  font-size: 20px;
  margin-bottom: 25px;
  font-weight: normal;
}
.space-title span {
  font-family: 'Hina Mincho', serif;
  font-size: 35px;
  font-weight: bold;
  padding: 0 20px;
}
.space-desc, .space-desc2 {
  font-weight: bold;
}
.space-desc{
  font-size: 16px;
  margin-bottom:25px;
  line-height:2.0;
}
.space-desc span {
  font-size: 13px;
}
.space-desc2 {
  display: flex;
  gap: 0 10px;
  padding-left: 20px;
  flex-wrap: wrap;
  text-align: left;
  line-height: 2.0;
}
.gallery-wrapper{
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 0 60px;
  box-sizing: border-box;
}
.gallery-viewport {
  overflow :hidden;
  width :100%;
}
.gallery-wrapper button img {
  width: 40px;
  height: auto;
}
.space-gallery {
  display: flex;
  gap: 20px;
  transition: transform 0.4s ease;
}
.space-gallery a {
  flex: 0 0 calc((100% - 100px) / 6);
  /* 20px gap × 5 = 100px */
}
.space-gallery img {
  width: 100%;
  display: block;
}
.space-gallery img:hover {
  opacity:0.7;
}
.arrow {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border: none;
  cursor:pointer;
  padding:10px;
  background: transparent;
  z-index: 10;
  width: 50px;
}
.left{
  left: 0px;
}
.right{
  right: 0px;
}
/*-------------------------------------------
モーダル表示
-------------------------------------------*/
.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  min-height: 100vh;
  background-color: rgba(0, 0, 0, 0.4);
  overflow-y: auto;
}
#obana-modal .modal-content,
#torinoko-modal .modal-content,
#kinari-modal .modal-content,
#shironeri-modal .modal-content {
  border-radius: 100px
}
#obana-modal .modal-content,
#obana-modal .space-detail, 
#obana-modal .text-title {
  background-color: #fbf6e8;
}
#torinoko-modal .modal-content,
#torinoko-modal .space-detail, 
#torinoko-modal .text-title {
  background-color: #fffbeb;
}

#kinari-modal .modal-content,
#kinari-modal .space-detail, 
#kinari-modal .text-title {
  background-color: #fbfaf3;
}
#shironeri-modal .modal-content,
#shironeri-modal .space-detail, 
#shironeri-modal .text-title  {
  background-color: #fcfaf2;
}
.modal-content {
  border-radius: 20px;
  width: 100%;
  max-width: 1000px;
  margin: 5% auto;
  padding: 10px;
  animation: fadeIn 0.5s ease;
  max-height: 87vh;
  overflow-y: auto;
  position: relative; /* ←追加 */
}
.close{
  position: absolute; /* ←変更 */
  top: 20px;          /* 上から少し内側 */
  right: 60px;        /* 右から少し内側 */
  font-size: 32px;
  cursor: pointer;
}

@keyframes fadeIn{
  from{
    opacity:0;
    transform:translateY(10px) scale(0.95);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.split-modal-area{
  position: absolute;
  bottom: -10%;
  right: 5%;
  width: 60%;
}
.split-modal-area:hover img{
  opacity: 0.6;
  transition: 0.3s;
}

.split-image{
  width: 100%;
  display: block;
}

.split-left,
.split-right{
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  z-index: 5;
  cursor: pointer;
}

.split-left{
  left: 0;
}

.split-right{
  right: 0;
}

/*-------------------------------------------
reservation
-------------------------------------------*/
#reservation {
  width: 100%;
  background-size: cover;
  color: #fff;
  display: flex;
  flex-direction: column;
}
.reserve-top {
  padding-top: 50px;
  margin: auto 0;
  margin-bottom: 150px;
}
.reserve-top p {
  font-size: 17px;
}
.reserve-bottom {
  margin-top: auto;
  margin-bottom: 60px;
  line-height: 2.4;
}
.reserve-bottom h3 {
  font-size: 18px;
}
.reserve-bottom p {
  font-size: 16px;
}
.flow-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.flow-wrapper li {
  margin-bottom: 40px;
}
.flow-list {
  border: 1px solid #fff;
  border-radius: 50%;
  padding: 20px 100px 30px 100px;
}
.flow-list h3 {
  margin-bottom: 10px;
  font-size: 22px;
}
.flow-list p {
  font-size: 15px;
}
.flow {
  margin-bottom: 100px;
}

/*---お問い合わせフォーム---*/
.contactform {
  margin-bottom: 180px;
}
.wpcf7 {
  width: 100%;
}
.wpcf7-form p {
  margin-bottom: 230x;
}
.wpcf7 label {
  display: block;
  margin-top: 35px;
  font-size: 16px;
}
.wpcf7 input,
.wpcf7 textarea {
  width: 80%;
  margin-top: 10px;
  background-color: #fcfdfc41;
  border-radius: 20px;
  border: 1px solid #ffffff52;
  border-radius: 20px;
  color: #fff;
  transition: 0.3s;
  cursor: pointer;
  padding: 10px 15px; 
}
.wpcf7 textarea {
  height: 100px;
  resize: vertical;
}
.wpcf7-submit {
  max-width: fit-content !important;
  display: block;
  margin: 60px auto 0 !important;
  border: 1px solid #ffffff52;
  border-radius: 20px;
  padding: 2px 20px !important;
  color: #fff;
  transition: 0.3s;
  cursor: pointer;
}
.wpcf7-submit:hover {
  opacity: 0.7;
}


/*-------------------------------------------
access
-------------------------------------------*/
#access {
  margin-bottom: 150px;
}
#access h2 {
  margin-bottom: 40px;
}
#access iframe {
  height: 45vh;
  max-width: 600px;
  width: 60%;
  margin-bottom: 50px;
}
.address {
  width: fit-content;
  margin: 0 auto;
  border: 0.5px solid rgb(58, 56, 56);
  border-radius: 40px;
  padding: 10px 25px;
  margin-bottom: 40px;
}
.contact {
  width: fit-content;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 100px;
}
.sns {
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: 16px;
  line-height: 2.0;
}
.sns img {
  width: 120px;
  margin-bottom: 10px;
}

/*-------------------------------------------
footer
-------------------------------------------*/
#footer {
  width: 100%;
  min-height: 100dvh;
  min-height: 100vh;

  background-size: cover;
}
#footer ul {
  display: flex;
  flex-direction: column;
  padding: 60px 0 0 100px;
}
#footer li {
  color: #fff;
  margin-right: auto;
  font-size: 25px;
  padding: 40px;
}
#footer li:not(:last-child) {
  padding-bottom: 0;
}
#footer li img {
  width: 55px;
}
#footer h1 img {
  width: 150px;
}



/*-------------------------------------------
SP
-------------------------------------------*/
@media screen and (max-width: 768px) {

.sp-br, .sp-img {
  display: inline;
}
.sp-none, .layout3 {
  display: none;
}
#header .site-title img {
  width: 130px;
}
.main {
  color: black;
}
.header-1 {/*
  padding: 20px 20px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background-color: #fff;
  border-radius: 0 20px 20px 0;
  margin-top: auto;
  writing-mode: vertical-rl;
  text-orientation: upright;
  white-space: nowrap;   改行防止 */

  position: absolute;
  left: 0;
  bottom: 20px;

  padding: 20px 20px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  background-color: #fff;
  border-radius: 0 20px 20px 0;

  writing-mode: vertical-rl;
  text-orientation: upright;
  white-space: nowrap;
  z-index: 5;
}
.header-1 h2 {
  padding-left: 5px;
}
.header-1 h2 {
  font-size: 14px;
}
.header-1 p {
  padding-left: 10px;
  font-size: 12px;
}
.menu {
  font-size: 18px;
  padding-right: 0;
  margin-top: 0;
}
.menu h3, .menu li, .menu-reserve img {
  padding-right: 20px;
}
.menu h3 {
  padding-left: 10px;
  border-bottom: 1px solid black;
}
.menu ul {
  padding: 20px 20px 10px 20px;
  background-color: #fff;
  border-radius: 20px 0 0 20px;
}
.menu li {
  padding: 15px 0;
}
.menu li:last-child {
  padding-bottom: 0;
}
.menu li img {
  width: 60px;
}
.menu-reserve img {
  margin-top: 40px;
  width: 200px;
}

/*title*/
.section-title {
  width: 70%;
  margin: 0 auto;
  margin-top: 120px;
}

/*concept*/
.concept-1 img {
  display: none;
}
#concept h3 {
  margin-bottom: 60px;
}
.text {
  gap: 40px;
}
.text1 {
  flex-direction: column;
}
.text1 img {
  width: 55%;
  height: auto;
}
.text2 {
  flex-direction: column-reverse;
  gap: 40px;
}
.text2 img {
  position: static;
  width: 40%;
  margin-left: auto;
  height: auto;
  margin-right: 20px;
}
.detail1 {
  font-size: 14px;
  text-align: center;
  margin: 0 auto; 
}
.detail2 {
  font-size: 14px;
  margin: 0px 0 40px 20px;
}
#concept p {
  margin-bottom: 25px;
}
#concept p:last-child {
  margin-bottom: 0;
}


/*future*/
.future-top {
  grid-template-columns: 1fr;
  margin-bottom: 60px;
}
.future-img1 {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 60px;
  width: 100%;
}
.item1 {
  grid-column: 1;
  grid-row: 2;
}
#future .text {
  font-size: 14px;
  grid-column: 1;
  grid-row: 3;  
}
.item1 img {
  width: 70%;
}
.item1, #future .text {
  text-align: center;
  width: 80%;
  margin: 0 auto;
}
.future-img2 {
  height: 15vh;
  margin-bottom: 40px;
}
.future-title {
  font-size: 14px;
  text-align: right;
  line-height: 2.0;
  padding-right: 50px;
  margin-bottom: 0;
}

/*
sharespace
*/
#sharebase {
  margin-bottom: 80px;
}
.sharebase-title {
  margin-bottom: 60px;
}
.sharebase-title h3 {
  right: 10%;
  font-size: 14px;
}
#sharebase p {
  padding: 0 40px;
  line-height: 2.0;
  font-size: 14px;
}
/*尾花～白練順番変更*/
.sharebase-list {
  flex-direction: column;
  margin-bottom: 0px;
}
.free-studio {
  order: 2;
}
.kitchen2 {
  order: 1;
}
.kitchen1 {
  order: 4;
}
.cafe {
  order: 3;
}
.free-studio, .kitchen2, .kitchen1, .cafe {
  width: 100%;
  margin: 0 0 60px 0;
  padding: 0 40px;
}

/*box統一*/
.box1, .box2, .box3, .box4 {
  height: 200px;
}
.list-name {
  font-size: 22px;
}
.inner {
  width: 100%;
}
/*レイアウト写真統一*/
.layout1, .layout2, .layout4{
  width: 80%;
  margin: 0 auto 20px;
}
/*box調整*/
.box1, .box2, .box3, .box4 {
  margin: 0 0 40px 0;
}
.box-img2{
  top: -5%;
  right: 3%;
  width: 25%;
}
.box-img4 {
  left: 3%;
}
.box-img3 {
  top: 20%;
  left: 0;
}
/*moreボタン*/
.button1, .button2 {
  position: static;
}
.button1 {
  order: 2;
  width: fit-content;
}
.layout1 {
  order: 1;
}

/*
single.htmlのレスポンシブ
*/
#obana-modal .modal-content,
#torinoko-modal .modal-content,
#kinari-modal .modal-content,
#shironeri-modal .modal-content {
  border-radius: 50px
}
.close{
  top: 5px;          /* 上から少し内側 */
  right: 30px;        /* 右から少し内側 */
  font-size: 30px;
  cursor: pointer;
}
.space-detail{
  padding: 20px;
  border-radius: 60px;
}
.space-top{
  flex-direction: column;
  gap: 30px;
  margin-bottom: 0;
}
.space-title {
  order: 1;
}
.space-img {
  order: 2;
  padding: 0 0 30px 0;
}
.space-img img {
  max-width: 70%;
  height: auto;
}
.space-title {
  font-size: 13px;
  margin-bottom: 20px;
}
.space-title span {
  font-size: 20px;
  font-weight: bold;
  padding: 0 10px;
}
.space-text {
  max-width: 100%;
}
.space-desc {
  font-size: 12px;
  margin-bottom:25px;
  line-height:2.0;
}
.space-desc span {
  font-size: 10px;
}
.text-title {
  font-size: 12px;
}
.space-desc2 {
  flex-direction: column;
  line-height: 1.8;
  font-size: 12px;
  padding-left: 0;
}
.space-text2 img {
  max-width: 20%;
}
.space-text2 .obana {
  top: -10%;
  right: -5%;
}
.space-gallery a {
  flex: 0 0 calc((100% - 40px) / 3);
}
.space-text2 .kinari {
  top: -30px;
  left: -5%;
}
.space-text2 .torinoko {
  bottom: -15px;
  right: -10px;
}


/*-
reservation
-*/
.reserve-top {
  padding-top: 0px;
  margin-bottom: 40px;
}
#reservation .section-title {
  margin-top: 40px;
}
.reserve-top p {
  font-size: 14px;
}
.reserve-bottom {
  margin-bottom: 30px;
  line-height: 2.0;
}
.reserve-bottom h3 {
  font-size: 16px;
}
.reserve-bottom p {
  font-size: 14px;
}
.flow-wrapper {
  width: 90%;
  margin: 0 auto;
}
.flow-wrapper li {
  margin-bottom: -15px;
}
.flow-list {
  padding: 20px 10px 30px 10px;
}
.flow-list h3 {
  margin-bottom: 5px;
  font-size: 18px;
}
.flow-list p {
  font-size: 12px;
}
.flow {
  margin-bottom: 40px;
}
.wpcf7 input, .wpcf7 textarea {
  padding: 5px 20px;
}

/*contact*/
label {
  margin-top: 10px;
  font-size: 14px;
}
.form-area {
  margin-bottom: 20px;
}
.wpcf7 input,
.wpcf7 textarea {
  width: 80%;
  padding: 10px 15px;
  font-size: 13px;
}

/*
access
*/
#access h2 img {
  width: 70%;
}
#access {
  margin-bottom: 100px;
}
#access iframe {
  height: 35vh;
  width: 80%;
  margin-bottom: 40px;
}
/*
footer
*/
#footer .list {
  padding-top: 60px;
}
#footer ul {
  padding: 0;
}
#footer li {
  font-size: 20px;
  margin: 0 auto;
  text-align: center;
}
#footer h1 img {
  width: 130px;
}

}