/* ======================
物件一覧・詳細 共通CSS
SUUMO風カード一覧 + 詳細ページ
====================== */

/* ======================
共通
====================== */
.property-list-page,
.property-single-page{
  padding:130px 0 80px;
}

.eyebrow{
  color:var(--main-color);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.12em;
  margin-bottom:10px;
}

.property-note{
  max-width:900px;
  margin:0 auto 30px;
  padding:14px 18px;
  border-left:4px solid var(--main-color);
  background:#fff;
  border-radius:8px;
  box-shadow:0 3px 10px rgba(0,0,0,0.04);
  color:#666;
  font-size:14px;
  line-height:1.8;
}

/* ======================
一覧ページ：タイトル
====================== */
.property-list-title{
  text-align:center;
  margin-bottom:28px;
}

.property-list-title h1,
.single-hero h1{
  color:var(--main-dark);
  font-weight:700;
  line-height:1.45;
}

.property-list-title h1{
  font-size:34px;
  margin-bottom:14px;
}

.property-list-title p:last-child,
.single-hero p:last-child{
  color:#666;
  line-height:1.9;
}

/* ======================
検索・絞り込み
====================== */
.property-search-panel{
  background:#fff;
  border:1px solid #eee;
  border-radius:18px;
  padding:26px;
  margin:0 auto 28px;
  box-shadow:var(--shadow);
}

.property-search{
  max-width:720px;
  margin:0 auto 20px;
}

.property-search input{
  width:100%;
  padding:14px 20px;
  border:1px solid #ddd;
  border-radius:999px;
  background:#fff;
  font-size:16px;
  line-height:1.6;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
  transition:0.3s;
}

.property-search input:focus{
  outline:none;
  border-color:var(--main-color);
  box-shadow:0 0 0 3px rgba(123,79,42,0.12);
}

.property-filters{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.filter-title{
  font-size:14px;
  font-weight:700;
  color:var(--main-dark);
  margin-bottom:10px;
}

.filter-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.filter-btn{
  padding:9px 14px;
  border:1px solid #ddd;
  border-radius:999px;
  background:#fff;
  color:#333;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:0.3s;
}

.filter-btn:hover{
  border-color:var(--main-color);
  color:var(--main-color);
  transform:translateY(-2px);
}

.filter-btn.active{
  background:var(--main-color);
  border-color:var(--main-color);
  color:#fff;
}

.property-list-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin:0 0 18px;
}

.search-result-text,
.sort-label{
  color:#666;
  font-size:14px;
}

.no-search-results{
  display:none;
  text-align:center;
  font-size:16px;
  color:#666;
  padding:40px 20px;
  background:#fff;
  border-radius:12px;
  box-shadow:var(--shadow);
  margin-bottom:40px;
}

/* ======================
SUUMO風カード一覧
====================== */
.suumo-card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}

.suumo-card{
  display:block;
  background:#fff;
  border:1px solid #e8e8e8;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,0.08);
  transition:0.3s;
}

.suumo-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 34px rgba(0,0,0,0.14);
}

.card-slider{
  position:relative;
  overflow:hidden;
  background:#f4f4f4;
  aspect-ratio:4 / 3;
}

.card-track{
  display:flex;
  height:100%;
  transition:transform 0.35s ease;
}

.card-track img{
  min-width:100%;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.card-slide-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,0.92);
  box-shadow:0 4px 12px rgba(0,0,0,0.20);
  z-index:3;
  cursor:pointer;
  transition:0.3s;
}

.card-slide-btn:hover{
  background:#fff;
  transform:translateY(-50%) scale(1.06);
}

.card-slide-btn.prev{ left:10px; }
.card-slide-btn.next{ right:10px; }

.card-slide-btn::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:10px;
  height:10px;
  border-bottom:3px solid var(--main-dark);
}

.card-slide-btn.prev::before{
  border-left:3px solid var(--main-dark);
  transform:translate(-35%,-50%) rotate(45deg);
}

.card-slide-btn.next::before{
  border-right:3px solid var(--main-dark);
  transform:translate(-65%,-50%) rotate(-45deg);
}

.image-badge,
.image-count{
  position:absolute;
  z-index:4;
  color:#fff;
  font-size:12px;
  font-weight:700;
  line-height:1;
  border-radius:999px;
  background:rgba(0,0,0,0.62);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.image-badge{
  top:12px;
  left:12px;
  padding:8px 11px;
}

.image-count{
  right:12px;
  bottom:12px;
  padding:7px 10px;
}

.suumo-card-body{
  padding:18px 18px 20px;
}

.card-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:12px;
}

.card-meta-row span,
.single-tags span{
  display:inline-block;
  padding:5px 9px;
  border:1px solid rgba(123,79,42,0.2);
  border-radius:999px;
  background:#faf7f3;
  color:var(--main-color);
  font-size:12px;
  font-weight:700;
}

.suumo-card h2{
  color:#075da8;
  font-size:18px;
  line-height:1.55;
  font-weight:700;
  margin-bottom:8px;
}

.card-lead{
  color:#444;
  font-size:14px;
  line-height:1.8;
  margin-bottom:14px;
}

.card-data{
  border-top:1px solid #eee;
  padding-top:12px;
  margin-bottom:16px;
}

.card-data div{
  display:flex;
  gap:12px;
  font-size:13px;
  line-height:1.7;
}

.card-data dt{
  min-width:70px;
  color:#777;
}

.card-data dd{
  color:#333;
  font-weight:600;
}

.card-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.detail-btn,
.contact-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
  text-decoration:none;
  transition:0.3s;
}

.detail-btn{
  background:var(--main-color);
  color:#fff;
}

.detail-btn:hover{
  background:var(--main-dark);
}

.contact-btn{
  color:var(--main-color);
  background:#fff;
  border:1px solid var(--main-color);
}

.contact-btn:hover{
  background:#faf7f3;
}

.detail-btn.is-disabled{
  background:#aaa;
  pointer-events:none;
}

/* ======================
詳細ページ
====================== */
.detail-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  color:#777;
  font-size:14px;
  margin-bottom:24px;
}

.detail-breadcrumb a{
  color:var(--main-color);
  text-decoration:none;
  font-weight:700;
}

.single-hero{
  text-align:center;
  max-width:900px;
  margin:0 auto 28px;
}

.single-hero h1{
  font-size:34px;
  margin-bottom:14px;
}

.single-property-wrap{
  display:grid;
  grid-template-columns:1.12fr 0.88fr;
  gap:44px;
  align-items:start;
  margin-top:36px;
}

.property-images{
  width:100%;
}

.main-image{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
  touch-action:pan-y;
}

.main-image img{
  display:block;
  width:100%;
  height:520px;
  object-fit:contain;
  background:#f8f8f8;
  cursor:pointer;
  user-select:none;
  -webkit-user-drag:none;
}

.detail-image-count{
  position:absolute;
  right:14px;
  bottom:14px;
  background:rgba(0,0,0,0.62);
  color:#fff;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}

.slide-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border:none;
  border-radius:50%;
  background:rgba(0,0,0,0.45);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  line-height:1;
  cursor:pointer;
  z-index:2;
  transition:0.3s;
}

.slide-btn:hover{ background:rgba(0,0,0,0.7); }
.slide-btn.prev{ left:15px; }
.slide-btn.next{ right:15px; }

.slide-btn.prev::before,
.slide-btn.next::before{
  content:"";
  width:10px;
  height:10px;
  border-bottom:3px solid #fff;
}

.slide-btn.prev::before{
  border-left:3px solid #fff;
  transform:rotate(45deg);
}

.slide-btn.next::before{
  border-right:3px solid #fff;
  transform:rotate(-45deg);
}

.thumb-list{
  display:flex;
  gap:12px;
  margin-top:16px;
  overflow-x:auto;
  padding:2px 2px 10px;
  scroll-snap-type:x mandatory;
}

.thumb-list::-webkit-scrollbar{ height:7px; }
.thumb-list::-webkit-scrollbar-thumb{ background:rgba(123,79,42,0.35); border-radius:999px; }
.thumb-list::-webkit-scrollbar-track{ background:#eee; border-radius:999px; }

.thumb-item{
  width:118px;
  min-width:118px;
  position:relative;
  scroll-snap-align:start;
}

.thumb-item img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border-radius:10px;
  border:2px solid transparent;
  background:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
  transition:0.3s;
  cursor:pointer;
}

.thumb-item img:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 18px rgba(0,0,0,0.12);
}

.thumb-item img.active{
  border-color:var(--main-color);
  box-shadow:0 8px 18px rgba(123,79,42,0.22);
}

.thumb-item::after{
  content:attr(data-label);
  position:absolute;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  background:rgba(0,0,0,0.68);
  color:#fff;
  font-size:11px;
  line-height:1.4;
  padding:4px 8px;
  border-radius:999px;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transition:0.3s;
}

.thumb-item:hover::after{ opacity:1; }

.single-info-card{
  position:sticky;
  top:120px;
  background:#fff;
  border-radius:16px;
  padding:32px;
  box-shadow:var(--shadow);
}

.single-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
}

.property-title{
  font-size:28px;
  line-height:1.5;
  font-weight:700;
  color:var(--main-dark);
  margin-bottom:18px;
}

.property-text{
  color:#444;
  line-height:2;
  margin-bottom:26px;
}

.property-data{
  display:flex;
  flex-direction:column;
  gap:10px;
  border-top:1px solid #eee;
  padding-top:22px;
}

.property-data div{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:15px;
  line-height:1.8;
}

.property-data span{
  min-width:100px;
  font-weight:700;
  color:var(--main-color);
}

.single-cta-box{
  margin-top:26px;
  padding:22px;
  border-radius:14px;
  background:#faf7f3;
  text-align:center;
}

.single-cta-box p{
  font-size:14px;
  font-weight:700;
  color:var(--main-dark);
  margin-bottom:14px;
}

.single-cta-main,
.single-cta-sub{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  transition:0.3s;
}

.single-cta-main{
  background:var(--accent);
  color:#fff;
  margin-bottom:10px;
}

.single-cta-main:hover{ background:#a00; }

.single-cta-sub{
  background:#fff;
  color:var(--main-color);
  border:1px solid rgba(123,79,42,0.35);
}

.detail-section{
  width:100%;
  max-width:none;
  margin:70px 0 0;
}

.detail-section h2{
  color:var(--main-dark);
  font-size:26px;
  text-align:center;
  margin-bottom:28px;
}

.highlight-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.highlight-grid div{
  background:#fff;
  padding:26px;
  border-radius:16px;
  box-shadow:var(--shadow);
}

.highlight-grid h3{
  color:var(--main-color);
  font-size:18px;
  margin-bottom:10px;
}

.highlight-grid p{
  color:#555;
  line-height:1.8;
}

/* ======================
モーダル
====================== */
.modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,0.85);
  justify-content:center;
  align-items:center;
  padding:30px;
}

.modal-content{
  max-width:min(92vw, 1200px);
  max-height:88vh;
  width:auto;
  height:auto;
  display:block;
  border-radius:10px;
  box-shadow:0 10px 40px rgba(0,0,0,0.35);
  background:#fff;
  user-select:none;
  -webkit-user-drag:none;
  touch-action:pan-y;
}

.modal-close{
  position:absolute;
  top:20px;
  right:25px;
  color:#fff;
  font-size:42px;
  line-height:1;
  cursor:pointer;
  z-index:10002;
  transition:0.3s;
}

.modal-close:hover{ opacity:0.7; }

.modal-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:54px;
  height:54px;
  border:none;
  border-radius:50%;
  background:rgba(0,0,0,0.6);
  cursor:pointer;
  z-index:10001;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:0.3s;
}

.modal-nav:hover{ background:rgba(0,0,0,0.8); }
.modal-nav.prev{ left:20px; }
.modal-nav.next{ right:20px; }

.modal-nav.prev::before,
.modal-nav.next::before{
  content:"";
  width:12px;
  height:12px;
  border-bottom:3px solid #fff;
}

.modal-nav.prev::before{
  border-left:3px solid #fff;
  transform:rotate(45deg);
}

.modal-nav.next::before{
  border-right:3px solid #fff;
  transform:rotate(-45deg);
}

/* ======================
レスポンシブ
====================== */
@media (max-width:1100px){
  .suumo-card-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .property-filters{
    grid-template-columns:1fr;
  }

  .single-property-wrap{
    grid-template-columns:1fr;
  }

  .single-info-card{
    position:static;
  }

  .highlight-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .property-list-page,
  .property-single-page{
    padding:115px 0 60px;
  }

  .property-list-title h1,
  .single-hero h1{
    font-size:26px;
  }

  .property-search-panel{
    padding:18px;
    border-radius:14px;
  }

  .property-list-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .suumo-card-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .suumo-card h2{
    font-size:17px;
  }

  .main-image img{
    height:320px;
  }

  .property-title{
    font-size:23px;
  }

  .single-info-card{
    padding:24px 20px;
  }

  .thumb-item{
    width:96px;
    min-width:96px;
  }

  .thumb-item::after{
    display:none;
  }

  .modal{
    padding:16px;
  }

  .modal-close{
    top:12px;
    right:16px;
    font-size:34px;
  }

  .modal-nav{
    width:44px;
    height:44px;
  }

  .modal-nav.prev{ left:10px; }
  .modal-nav.next{ right:10px; }
}

@media (max-width:480px){
  .property-note{
    font-size:13px;
  }

  .card-actions{
    grid-template-columns:1fr;
  }

  .card-slide-btn{
    width:34px;
    height:34px;
  }

  .image-badge{
    font-size:11px;
    padding:7px 9px;
  }

  .main-image img{
    height:260px;
  }

  .property-data div{
    font-size:14px;
  }
}


/* ======================
完成版 追加調整
====================== */
.suumo-card{ min-width:0; }
.suumo-card h2{ min-height:3.2em; }
.card-slider:hover .card-slide-btn{ opacity:1; }
.card-slide-btn{ opacity:0.95; }
.detail-image-count{ position:absolute; right:15px; bottom:15px; background:rgba(0,0,0,0.62); color:#fff; font-size:12px; padding:6px 12px; border-radius:999px; z-index:3; }
@media (max-width:768px){ .suumo-card h2{ min-height:auto; } }

/* ======================
property-05.html 完成版 修正
・メイン画像を中央に表示
・左右矢印を確実に表示
・サムネイルを8個で折り返し
====================== */

.single-property-wrap .main-image{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:16px;
  background:#111;
  box-shadow:var(--shadow);
  touch-action:pan-y;
}

.single-property-wrap .main-image img{
  display:block;
  width:100%;
  height:520px;
  object-fit:contain;
  object-position:center center;
  background:#111;
  cursor:pointer;
  user-select:none;
  -webkit-user-drag:none;
}

.single-property-wrap .slide-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:52px;
  border:none;
  border-radius:50%;
  background:rgba(0,0,0,0.68);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
  z-index:20;
  box-shadow:0 6px 18px rgba(0,0,0,0.28);
  transition:0.25s ease;
}

.single-property-wrap .slide-btn:hover{
  background:rgba(0,0,0,0.86);
  transform:translateY(-50%) scale(1.04);
}

.single-property-wrap .slide-btn.prev{
  left:18px;
}

.single-property-wrap .slide-btn.next{
  right:18px;
}

.single-property-wrap .slide-btn.prev::before,
.single-property-wrap .slide-btn.next::before{
  content:"";
  display:block;
  width:13px;
  height:13px;
  border-bottom:3px solid #fff;
}

.single-property-wrap .slide-btn.prev::before{
  border-left:3px solid #fff;
  transform:rotate(45deg);
  margin-left:4px;
}

.single-property-wrap .slide-btn.next::before{
  border-right:3px solid #fff;
  transform:rotate(-45deg);
  margin-right:4px;
}

.single-property-wrap .detail-image-count{
  z-index:21;
}

.single-property-wrap .thumb-list{
  display:grid;
  grid-template-columns:repeat(8, 1fr);
  gap:10px;
  margin-top:18px;
  overflow:visible;
  padding:0;
  scroll-snap-type:none;
}

.single-property-wrap .thumb-list::-webkit-scrollbar{
  display:none;
}

.single-property-wrap .thumb-item{
  width:100%;
  min-width:0;
  position:relative;
  scroll-snap-align:unset;
}

.single-property-wrap .thumb-item img{
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}

@media (max-width:1100px){
  .single-property-wrap .thumb-list{
    grid-template-columns:repeat(6, 1fr);
  }
}

@media (max-width:768px){
  .single-property-wrap .main-image img{
    height:330px;
  }

  .single-property-wrap .slide-btn{
    width:42px;
    height:42px;
  }

  .single-property-wrap .slide-btn.prev{
    left:10px;
  }

  .single-property-wrap .slide-btn.next{
    right:10px;
  }

  .single-property-wrap .thumb-list{
    grid-template-columns:repeat(4, 1fr);
    gap:8px;
  }
}

@media (max-width:480px){
  .single-property-wrap .main-image img{
    height:260px;
  }

  .single-property-wrap .thumb-list{
    grid-template-columns:repeat(3, 1fr);
  }
}


/* ======================
問い合わせが増えるCTA導線 完成版
====================== */
.property-cta-banner,
.property-mid-cta,
.property-final-cta{
  background:linear-gradient(135deg, #fff 0%, #faf7f3 100%);
  border:1px solid rgba(123,79,42,0.14);
  border-radius:20px;
  box-shadow:0 10px 28px rgba(0,0,0,0.08);
}

.property-cta-banner{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:26px;
  align-items:center;
  padding:28px;
  margin:0 auto 30px;
}

.detail-top-cta{
  margin-top:22px;
}

.cta-kicker{
  color:var(--main-color);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.08em;
  margin-bottom:8px;
}

.cta-copy h2,
.property-mid-cta h2,
.property-final-cta h2{
  color:var(--main-dark);
  font-size:24px;
  line-height:1.55;
  font-weight:700;
  margin-bottom:10px;
}

.cta-copy p:last-child,
.property-mid-cta p,
.property-final-cta p{
  color:#555;
  line-height:1.9;
}

.cta-action-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
}

.cta-action-row.center{
  max-width:780px;
  margin:22px auto 0;
}

.cta-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:12px 14px;
  border-radius:14px;
  font-weight:700;
  text-align:center;
  text-decoration:none;
  line-height:1.35;
  box-shadow:0 6px 16px rgba(0,0,0,0.10);
  transition:0.25s ease;
}

.cta-btn span{
  display:block;
  font-size:11px;
  font-weight:600;
  opacity:0.9;
  margin-top:4px;
}

.cta-btn:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px rgba(0,0,0,0.14);
}

.cta-tel{
  background:var(--accent);
  color:#fff;
}

.cta-mail{
  background:var(--main-color);
  color:#fff;
}

.cta-line{
  background:#06C755;
  color:#fff;
}

.property-mid-cta,
.property-final-cta{
  text-align:center;
  padding:36px 28px;
  margin:56px 0 0;
}

.property-final-cta{
  margin-top:48px;
  background:linear-gradient(135deg, var(--main-dark) 0%, var(--main-color) 100%);
  color:#fff;
}

.property-final-cta .cta-kicker,
.property-final-cta h2,
.property-final-cta p{
  color:#fff;
}

.property-final-cta p{
  opacity:0.92;
}

.single-cta-line{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  transition:0.3s;
  background:#06C755;
  color:#fff;
  margin-bottom:10px;
}

.single-cta-line:hover{
  filter:brightness(0.94);
}

.floating-contact{
  position:fixed;
  right:22px;
  bottom:96px;
  z-index:998;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.floating-contact a{
  width:58px;
  height:58px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
  letter-spacing:0.03em;
  box-shadow:0 8px 22px rgba(0,0,0,0.22);
  transition:0.25s ease;
}

.floating-contact a:hover{
  transform:translateY(-3px) scale(1.04);
}

.floating-tel{ background:var(--accent); }
.floating-mail{ background:var(--main-color); }
.floating-line{ background:#06C755; }

@media (max-width:900px){
  .property-cta-banner{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .property-cta-banner,
  .property-mid-cta,
  .property-final-cta{
    padding:24px 18px;
    border-radius:16px;
  }

  .cta-copy h2,
  .property-mid-cta h2,
  .property-final-cta h2{
    font-size:20px;
  }

  .cta-action-row{
    grid-template-columns:1fr;
  }

  .floating-contact{
    left:0;
    right:0;
    bottom:0;
    flex-direction:row;
    gap:0;
    background:#fff;
    padding:8px;
    box-shadow:0 -6px 20px rgba(0,0,0,0.12);
  }

  .floating-contact a{
    flex:1;
    width:auto;
    height:48px;
    border-radius:10px;
  }

  #page-top{
    bottom:72px !important;
    right:18px;
  }
}


/* ======================
CTAバナー 横長＋右側ボタン縦並び 修正版
====================== */
.property-cta-banner{
  grid-template-columns:minmax(0, 1fr) minmax(230px, 280px);
  gap:24px;
  align-items:center;
}

.property-cta-banner .cta-action-row{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
}

.property-cta-banner .cta-btn{
  width:100%;
  min-height:64px;
  white-space:normal;
}

.property-cta-banner .cta-btn span{
  white-space:normal;
}

@media (max-width:900px){
  .property-cta-banner{
    grid-template-columns:1fr;
  }

  .property-cta-banner .cta-action-row{
    max-width:none;
  }
}
