/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px), print {
/* mv
-------------------------------------*/
.mv {
    position: relative;
}
.mv h2 {
    text-align: center;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    left: 50%;
}

/* property
-------------------------------------*/
.property {
    padding: 80px 0 144px;
}
.property.single {
    padding: 80px 0;
}
.property .sec-ttl {
    margin-bottom: 80px;
}
.property .list {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 100px;
    width: min(95%, 1550px);
    margin-inline: auto;
    margin-bottom: 99px;
}
.property .list li {
    border-radius: 5px;
    border: 2px solid #999;
    padding: 40px 51px 43px 46px;
    display: grid;
    grid-template-columns: 44.17% 51.83%;
    gap: 60px;
}
.property .list li .img {
    margin-bottom: 39px;
}
.property .list li .img img {
    width: 100%;
    height: 480px;
    object-fit: contain;
}
.property .list li .btn {
    width: min(95%, 400px);
    background: #cfd7e4;
}
.property .list li .btn a{
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    display: block;
    padding: 16px 0;
}
.property .list li .comment {
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.2;
}
  .property .list li table {
    background: #fff;
    border: 2px solid #999;
    width: 100%;
  }
  .property .list li table tr {
    border-bottom: 2px solid #999;
  }
  .property .list li table th, .property .list li table td {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    height: 70px;
    vertical-align: middle;
  }
  .property .list li table th {
    background: #E0E0E0;
    border: 2px solid #999;
    width: 15.7%;
    text-align: center;
  }
  .property .list li table td {
    padding: 0 20px;
    font-weight: 700;
  }
  .property .list li table .price {
    color: #D40000;
  }
  .property .list li .btn {
    border-radius: 10px;
    background: #cfd7e4;
    margin-bottom: 26px;
  }
  .property .list li .btn a{
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    display: block;
    padding: 18px 0;
  }


  /* footer
  -------------------------------------*/
  footer .map {
    width: min(95%, 1200px);
    margin-inline: auto;
    margin-top: 80px;
    margin-bottom: 123px;
  }


  /* singleページ
  -------------------------------------*/
  .property.single .sec-ttl {
    margin-bottom: 72px;
}
  .property.single .property-ttl {
    font-weight: 700;
    font-size: 40px;
    line-height: 1.2;
    text-align: center;
    margin-bottom: 77px;
  }
  .property-gallery {
    width: min(95%, 1100px);
    margin-inline: auto;
    position: relative;
}
.swiper-slide img {
    height: auto;
    width: 100%;
}

.gallery-main {
    width: 961px;
    margin-bottom: 20px;
    border: 1px solid #666;
    height: 642px;
    position: relative;
}
.gallery-main .swiper-slide {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 0;
}
.gallery-main .swiper-slide img {
    height: 640px;
    object-fit: contain;
    position: relative;
    padding: 15px;
}


.gallery-thumb .swiper-slide {
    width: 150px!important;
    height: 150px!important;
    cursor: pointer;
    margin: 0!important;
    border: 1px solid #666;
}
.gallery-thumb .swiper-wrapper {
    display: flex;
    justify-content: center;
    gap: 52px;
}
.gallery-thumb .swiper-slide-thumb-active {
    opacity: 1;
}

.gallery-thumb .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: relative;
    padding: 6px;
}

/* --- 矢印の基本スタイル --- */
.swiper-button-next,
.swiper-button-prev {
    width: 40px;
    height: 40px;
    background: transparent; /* 背景なし */
    border: none;
    color: #555; /* 薄めの黒 */
    opacity: 0.8;
    transition: 0.3s;
    z-index: 20 !important; 
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 26px; /* ← 矢印サイズ */
    font-weight: 700;
}

.gallery-main {
    width: 961px;
    height: 642px;
    border: 1px solid #666;
    margin-bottom: 67px;
    position: relative;
}



  /* デフォルトの矢印 */
.swiper-button-prev::after,
.swiper-button-next::after {
    display: none !important;
}
/* 前への矢印 */
.swiper-button-prev {
    left: 26px!important;
    background: url(../img/common/prev-arrow.png)no-repeat;
    background-size: contain;
    width: 16px!important;
    height: 28px!important;
}
/* 次への矢印 */
.swiper-button-next {
    right: 26px!important;
    background: url(../img/common/next-arrow.png)no-repeat;
    background-size: contain;
    width: 16px!important;
    height: 28px!important;
}
.swiper-navWrap{
    display: flex;
    position: absolute;
    width: 100%;
    height: 50px;
    top: 38.4%;
    left: 0;
    transform: translateY(-50%);
}

/* feature
-------------------------------------*/
.feature {
    text-align: center;
    padding-bottom: 78px;
}
.feature .sec-ttl {
    margin-bottom: 78px;
}
.feature .comment{
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.2;
    position: relative;
    text-align: center;
    padding-left: 28px;
    display: inline-block;
}
.feature .comment::before {
    content: "●";
    position: absolute;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    top: 50%;
    left: 7px;
    transform: translateY(-50%);
}


/* detail
-------------------------------------*/
.detail {
    padding-bottom: 140px;
}
.detail .sec-ttl {margin-bottom: 80px;}
.detail .info {
    width: min(95%, 801px);
    margin-inline: auto;
}
.detail table {
    background: #fff;
    border: 2px solid #999;
    width: 100%;
    margin-bottom: 101px;
}
.detail table tr {
    border-bottom: 2px solid #999;
}
.detail table th, .detail table td {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    height: 70px;
    vertical-align: middle;
}
.detail table th {
    background: #E0E0E0;
    border: 2px solid #999;
    width: 14.9%;
    text-align: center;
}
.detail table td {
    padding: 0 20px;
    font-weight: 700;
}
.detail table .price {
    color: #D40000;
}
.detail .btn {
    width: min(95%, 600px);
    text-align: center;
    margin-inline: auto;
    border-radius: 10px;
    background: #cfd7e4;
}
.detail .btn a {
    font-weight: 700;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    padding: 30px 0;
    display: block;
}

/* ================================
   エリア検索フォーム
================================ */

.search-area-wrap {
    max-width: 850px;
    margin: 40px auto;
    padding: 20px;
    background: #f2f7ff;
    border-radius: 6px;
}

.search-area-wrap h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 20px;
    padding: 10px 0;
    background: #b6dafb;
    color: #333;
    border-radius: 4px;
}

.area-group {
    margin-bottom: 20px;
    background: #fff;
    padding: 15px 20px;
    border-radius: 6px;
    border: 1px solid #e5e5e5;
}

.area-group h4 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px;
}

.area-items {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
}

.area-items label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 14px;
}

.area-items input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

.search-btn-box {
    text-align: center;
    margin-top: 25px;
}

.search-btn-box button {
    background: #80bfff;
    border: none;
    padding: 12px 25px;
    border-radius: 5px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: 0.3s;
}

.search-btn-box button:hover {
    background: #57a8ff;
}


}

@media screen and (min-width:768px) and (max-width:1280px) {
  /* property
-------------------------------------*/
.property {
    padding: 6.25vw 0 10.938vw;
}
.property .sec-ttl {
    margin-bottom: 6.25vw;
}
.property .list {
    gap: 7.813vw;
    margin-bottom: 7.734vw;
}
.property .list li {
    border-radius: 0.391vw;
    padding: 3.125vw 3.984vw 3.359vw 3.594vw;
    grid-template-columns: 44.17% 51.83%;
    gap: 4.688vw;
}
.property .list li .img {
    margin-bottom: 3.047vw;
}
.property .list li .img img {
    width: 100%;
    height: 37.5vw;
}
.property .list li .btn {
    width: min(95%, 400px);
}
.property .list li .btn a{
    font-size: 1.563vw;
    padding: 1.25vw 0;
}
.property .list li .comment {
    font-size: 1.563vw;
}
.property .list li table th, .property .list li table td {
    font-size: 1.563vw;
    height: 5.469vw;
}
.property .list li table td {
    padding: 0 1.563vw;
}
.property .list li .btn {
    border-radius: 0.781vw;
    margin-bottom: 2.031vw;
}
.property .list li .btn a{
    font-size: 1.563vw;
    padding: 1.406vw 0;
}




  /* singleページ
  -------------------------------------*/
  .property.single .sec-ttl {
    margin-bottom: 5.625vw;
}
  .property.single .property-ttl {
    font-size: 3.125vw;
    margin-bottom: 6.016vw;
  }
.swiper-slide img {
    height: auto;
    width: 100%;
}
.gallery-main {
    width: 75.078vw;
    margin-bottom: 1.563vw;
    height: 50.156vw;
}
.gallery-main .swiper-slide img {
    height: 50vw;
    padding: 1.172vw;
}


.gallery-thumb .swiper-slide {
    width: 11.719vw!important;
    height: 11.719vw!important;
}
.gallery-thumb .swiper-wrapper {
    gap: 4.063vw;
}
.gallery-thumb .swiper-slide img {
    padding: 0.469vw;
}

/* --- 矢印の基本スタイル --- */
.swiper-button-next,
.swiper-button-prev {
    width: 3.125vw;
    height: 3.125vw;
}
.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 2.031vw; /* ← 矢印サイズ */
}
.gallery-main {
    width: 75.078vw;
    height: 50.156vw;
    margin-bottom: 5.234vw;
}
.swiper-navWrap{
    width: 100%;
    height: 3.906vw;
    top: 38.4%;
    left: 0;
    transform: translateY(-50%);
}
}

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
    /* mv
-------------------------------------*/
.mv {
    position: relative;
}
.mv .img img {
    width: 100%;
    height: 25vw;
    object-fit: cover;
}
.mv h2 {
    text-align: center;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    left: 50%;
}
.mv h2 img {
    width: 52.463vw;
}

/* property
-------------------------------------*/
.property {
    padding: 10.43vw 0 18.253vw;
}
.property .sec-ttl {
    margin-bottom: 10.43vw;
}
.property .list {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 13.038vw;
    width: min(95%, 1550px);
    margin-inline: auto;
    margin-bottom: 12.907vw;
}
.property .list li {
    border-radius: 0.652vw;
    border: 2px solid #999;
    padding: 5.215vw 2.606vw 5.997vw;
    display: grid;
    gap: 7.823vw;
}
.property .list li .img-box {
    display: contents;
}
.property .list li .img {
    order: 1;
}
.property .list li .img img {
    width: 100%;
    height: 62.581vw;
    object-fit: contain;
}
.property .list li .btn {
    width: min(95%, 400px);
    background: #cfd7e4;
}
.property .list li .btn a{
    font-weight: 700;
    font-size: 2.608vw;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    display: block;
    padding: 2.086vw 0;
}
.property .list li .comment {
    font-weight: 700;
    font-size: 3.608vw;
    letter-spacing: 0.05em;
    line-height: 1.2;
    order: 4;
}
.property .list li .info {
    display: contents;
}
.property .list li table {
    background: #fff;
    border: 2px solid #999;
    width: 100%;
    order: 2;
}
.property .list li table tr {
    border-bottom: 2px solid #999;
}
.property .list li table th, .property .list li table td {
    font-size: 3.608vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    height: 11.6vw;
    vertical-align: middle;
}
.property .list li table th {
    background: #E0E0E0;
    border: 2px solid #999;
    width: 21.5%;
    text-align: center;
}
.property .list li table td {
    padding: 0 2.608vw;
    font-weight: 700;
}
.property .list li table .price {
    color: #D40000;
}
.property .list li .btn {
    border-radius: 1.304vw;
    background: #cfd7e4;
    order: 3;
    margin-inline: auto;
}
.property .list li .btn a{
    font-weight: 700;
    font-size: 3.608vw;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    display: block;
    padding: 2.347vw 0;
}

  /* footer
  -------------------------------------*/
  footer .map {
    width: min(95%, 1200px);
    margin-inline: auto;
    margin-top: 10.43vw;
    margin-bottom: 13.038vw;
  }


  
  /* singleページ
  -------------------------------------*/
  .property.single .sec-ttl {
    margin-bottom: 9.387vw;
}
  .property.single .property-ttl {
    font-weight: 700;
    font-size: 5.215vw;
    line-height: 1.2;
    text-align: center;
    margin-bottom: 10.039vw;
  }
  .property-gallery {
    width: 95vw;
    margin-inline: auto;
    position: relative;
}
.swiper-slide img {
    height: auto;
    width: 100%;
}
.gallery-main {
    width: 125.293vw;
    margin-bottom: 2.608vw;
    border: 1px solid #666;
    height: 83.703vw;
    position: relative;
}
.gallery-main .swiper-slide {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 0;
}
.gallery-main .swiper-slide img {
    height: 53.442vw;
    object-fit: contain;
    position: relative;
    padding: 1.956vw;
}
.gallery-thumb .swiper-slide {
    width: 19.257vw!important;
    height: 19.257vw!important;
    cursor: pointer;
    margin: 0!important;
    border: 1px solid #666;
}
.gallery-thumb .swiper-wrapper {
    display: flex;
    justify-content: center;
    gap: 6.78vw;
}
.gallery-thumb .swiper-slide-thumb-active {
    opacity: 1;
}
.gallery-thumb .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: relative;
    padding: 0.782vw;
}

/* --- 矢印の基本スタイル --- */
.swiper-button-next,
.swiper-button-prev {
    width: 5.215vw;
    height: 5.215vw;
    background: transparent; /* 背景なし */
    border: none;
    color: #555; /* 薄めの黒 */
    opacity: 0.8;
    transition: 0.3s;
    z-index: 20 !important; 
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 3.39vw; /* ← 矢印サイズ */
    font-weight: 700;
}

.gallery-main {
    width: 80.293vw;
    height: 53.703vw;
    border: 1px solid #666;
    margin-bottom: 8.735vw;
    position: relative;
}




  /* デフォルトの矢印 */
.swiper-button-prev::after,
.swiper-button-next::after {
    display: none !important;
}
/* 前への矢印 */
.swiper-button-prev {
    left: 1vw!important;
    background: url(../img/common/prev-arrow.png)no-repeat;
    background-size: contain;
    width: 4.068vw!important;
    height: 7.5vw!important;
}
/* 次への矢印 */
.swiper-button-next {
    right: 1vw!important;
    background: url(../img/common/next-arrow.png)no-repeat;
    background-size: contain;
    width: 4.068vw !important;
    height: 7.5vw !important;
}
.swiper-navWrap{
    display: flex;
    position: absolute;
    width: 100%;
    height: 6.519vw;
    top: 35.4%;
    left: 0;
    transform: translateY(-50%);
}

/* feature
-------------------------------------*/
.feature {
    text-align: center;
    padding-bottom: 10.169vw;
}
.feature .sec-ttl {
    margin-bottom: 10.169vw;
}
.feature .comment{
    font-weight: 700;
    font-size: 3.608vw;
    letter-spacing: 0.05em;
    line-height: 1.2;
    position: relative;
    text-align: center;
    padding-left: 3.651vw;
    display: inline-block;
}
.feature .comment::before {
    content: "●";
    position: absolute;
    font-size: 2.608vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    top: 50%;
    left: 0.913vw;
    transform: translateY(-50%);
}


/* detail
-------------------------------------*/
.detail {
    padding-bottom: 18.253vw;
}
.detail .sec-ttl {margin-bottom: 10.43vw;}
.detail .info {
    width: min(95%, 801px);
    margin-inline: auto;
}
.detail table {
    background: #fff;
    border: 2px solid #999;
    width: 100%;
    margin-bottom: 13.168vw;
}
.detail table tr {
    border-bottom: 2px solid #999;
}
.detail table th, .detail table td {
    font-size: 3.608vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    height: 9.126vw;
    vertical-align: middle;
}
.detail table th {
    background: #E0E0E0;
    border: 2px solid #999;
    width: 25.9%;
    text-align: center;
}
.detail table td {
    padding: 0 2.608vw;
    font-weight: 700;
}
.detail table .price {
    color: #D40000;
}
.detail .btn {
    width: min(95%, 600px);
    text-align: center;
    margin-inline: auto;
    border-radius: 1.304vw;
    background: #cfd7e4;
}
.detail .btn a {
    font-weight: 700;
    font-size: 3.911vw;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-align: center;
    padding: 3.911vw 0;
    display: block;
}

/* ================================
   エリア検索フォーム
================================ */

.search-area-wrap {
    margin: 5.215vw auto;
    padding: 2.608vw;
    background: #f2f7ff;
    border-radius: 0.782vw;
}

.search-area-wrap h3 {
    text-align: center;
    font-size: 4.08vw;
    font-weight: 700;
    margin-bottom: 2.608vw;
    padding: 1.304vw 0;
    background: #b6dafb;
    color: #333;
    border-radius: 0.522vw;
}

.area-group {
    margin-bottom: 2.608vw;
    background: #fff;
    padding: 1.956vw 2.608vw;
    border-radius: 0.782vw;
    border: 1px solid #e5e5e5;
}

.area-group h4 {
    font-size: 3.586vw;
    font-weight: 700;
    margin-bottom: 1.304vw;
}

.area-items {
    display: flex;
    flex-wrap: wrap;
    gap: 1.565vw 2.608vw;
}

.area-items label {
    display: flex;
    align-items: center;
    gap: 0.782vw;
    cursor: pointer;
    font-size: 3.125vw;
}

.area-items input[type="checkbox"] {
    width: 2.347vw;
    height: 2.347vw;
}

.search-btn-box {
    text-align: center;
    margin-top: 3.259vw;
}

.search-btn-box button {
    background: #80bfff;
    border: none;
    padding: 1.565vw 3.259vw;
    border-radius: 0.652vw;
    color: #fff;
    font-size: 3.086vw;
    font-weight: 700;
    cursor: pointer;
    transition: 0.3s;
}

.search-btn-box button:hover {
    background: #57a8ff;
}


}