/* ==========================================================
   住まい一覧のスライダー（トップページと物件ページ v2 で共通。動かすのは js/residence-slider.js）
   カードを横に並べ、ボタン・ドット・スワイプで送る。市で絞り込むボタンは、物件がある市が2つ以上のときだけ出る
   ========================================================== */
.residence-group+.residence-group{margin-top:110px;padding-top:72px;border-top:1px solid #c9c9c2}
.residence-group__head{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1fr) auto;align-items:end;gap:40px;margin-bottom:38px}
.residence-group__title{display:flex;align-items:center;gap:22px;font-size:clamp(1.55rem,2.8vw,2.4rem);font-weight:500;letter-spacing:.08em}
/* 見出しの前は横棒ではなく、販売状況を表す丸印（販売中は緑、ご成約済みはグレー）にする */
.residence-group__title::before{content:'';flex:none;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(123,209,0,.2)}
.residence-group--sold .residence-group__title::before{background:#9c9e98;box-shadow:0 0 0 6px rgba(156,158,152,.2)}
.residence-group__note{max-width:470px;color:var(--muted);font-family:var(--font-gothic,'Zen Kaku Gothic New','Noto Sans JP',sans-serif);font-size:.88rem;line-height:1.65;letter-spacing:.04em}
.slider-ui{min-width:235px;display:flex;align-items:center;gap:14px;font-family:'Montserrat',sans-serif}
.slider-count{min-width:52px;font-size:.67rem;font-weight:600;letter-spacing:.16em;color:var(--muted)}
.slider-count b{color:var(--ink);font-size:.88rem}.slider-progress{width:82px;height:2px;background:#d5d5cf;overflow:hidden}
.slider-progress i{display:block;width:25%;height:100%;background:var(--ink);transform-origin:left center;transition:width .45s var(--ease)}
.slider-buttons{display:flex;gap:6px}.slider-button{width:42px;height:42px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center;font-size:1.1rem;transition:background .25s,color .25s,opacity .25s}
.slider-button:hover:not(:disabled),.slider-button:focus-visible:not(:disabled){background:var(--ink);color:#fff;outline:0}.slider-button:disabled{opacity:.28;cursor:default}
/* position:relative は、スライダーの JS がカード位置（offsetLeft）をこの要素基準で測るために必要 */
/* 右側は画面の外まで続け、次のカードが端で切れて見えるようにする（左側は本文の幅のまま） */
.residence-viewport{margin-right:calc(50% - 50vw);position:relative;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-inline:contain;outline:none}
.residence-viewport::-webkit-scrollbar{display:none}.residence-viewport:focus-visible{box-shadow:0 0 0 3px rgba(127,135,101,.35)}
/* 上の線はカードごとに引く（トラックに引くと、横にスクロールしたときに右端のカードの上の線が途中で切れるため） */
.residence-track{display:flex;border-left:1px solid var(--ink)}
.residence-track:not(.residence-track--sold) .residence{border-top:1px solid var(--ink)}
/* リンク色は、読み込むページの指定に左右されないよう、この部品の中で決める */
.residence,.residence:link,.residence:visited{color:inherit;text-decoration:none}
.residence{flex:0 0 clamp(420px,56vw,700px);scroll-snap-align:start;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:#fff;transition:background .3s ease}
.residence:hover{background:#f4f4ef}
.residence--sold{background:#f3f3ef}.residence--sold .residence__image{filter:saturate(.55)}
.residence__visual{position:relative;aspect-ratio:16/9;overflow:hidden;background:#d9d8d2}
.residence__image{position:absolute;inset:0;background-position:center;background-size:cover;transition:transform 1s var(--ease)}
.residence:hover .residence__image{transform:scale(1.045)}
.residence__shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.54))}
.residence__concept{position:absolute;left:24px;right:20px;bottom:20px;color:#fff;font-size:1.16rem;font-weight:500;letter-spacing:.09em}
.residence__body{padding:24px 28px 28px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}
.residence__area{font-size:.78rem;font-weight:500;letter-spacing:.12em;color:var(--green-dark)}
.residence h4{margin-top:6px;font-size:1.55rem;font-weight:500;letter-spacing:.07em}
.residence__meta{margin-top:10px;color:var(--muted);font-family:var(--font-gothic,'Zen Kaku Gothic New','Noto Sans JP',sans-serif);font-size:.82rem;line-height:1.8;letter-spacing:.04em}
.residence__arrow{display:grid;place-items:center;min-width:86px;height:44px;padding:0 12px;border:1px solid var(--ink);font-style:normal;font-size:.76rem;letter-spacing:.08em;transition:.25s ease}
.residence:hover .residence__arrow{background:var(--ink);color:#fff}
.residence-track--sold{gap:18px;border:0}
.residence-track--sold .residence{flex-basis:54%;display:grid;grid-template-columns:42% 1fr;border:1px solid #c9c9c2}
.residence-track--sold .residence__visual{aspect-ratio:auto;min-height:190px}
.residence-track--sold .residence__concept{left:14px;right:12px;bottom:12px;font-size:.78rem;line-height:1.65}
.residence-track--sold .residence__body{padding:20px 18px;gap:10px}
.residence-track--sold .residence h4{font-size:1.12rem}.residence-track--sold .residence__meta{font-size:.74rem}.residence-track--sold .residence__arrow{min-width:68px;height:36px;font-size:.68rem}
.slider-dots{display:flex;align-items:center;gap:9px;margin-top:24px}.slider-dot{width:26px;height:3px;padding:0;border:0;background:#d2d2cc;cursor:pointer;transition:width .35s var(--ease),background .35s}.slider-dot.is-active{width:52px;background:var(--green-dark)}
/* 市で絞り込むボタン（物件がある市だけを、2市以上のときに出す）。絞り込みで外れたカードは hidden で隠す */
.residence-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:-14px 0 26px}
.residence-filter__label{margin-right:6px;font-family:'Montserrat',var(--font-gothic,'Zen Kaku Gothic New','Noto Sans JP',sans-serif);font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--muted)}
.residence-filter__chip{display:inline-flex;align-items:center;gap:9px;min-height:38px;padding:0 17px;border:1px solid #c9c9c2;border-radius:999px;background:#fff;color:var(--ink);font-size:.84rem;font-weight:500;letter-spacing:.06em;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}
.residence-filter__chip span{font-family:'Montserrat',sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.residence-filter__chip:hover,.residence-filter__chip:focus-visible{border-color:var(--ink);outline:0}
.residence-filter__chip.is-active{border-color:var(--ink);background:var(--ink);color:#fff}
.residence-filter__chip.is-active span{color:rgba(255,255,255,.72)}
.residence-track .residence[hidden]{display:none}

@media(max-width:1000px){
  .residence-group__head{grid-template-columns:1fr auto}.residence-group__note{grid-column:1/-1;grid-row:2}.slider-ui{grid-column:2;grid-row:1}
}
@media(max-width:720px){
  .residence-group__head{grid-template-columns:1fr;gap:22px}.residence-group__note,.slider-ui{grid-column:1;grid-row:auto}.residence-group+.residence-group{margin-top:78px;padding-top:54px}.slider-ui{min-width:0;width:100%}.slider-progress{flex:1}.residence{flex-basis:min(86vw,520px)}.residence__body{padding:24px 20px 28px}.residence h4{font-size:1.3rem}.residence__arrow{min-width:72px}.residence-track--sold .residence{flex-basis:88%;grid-template-columns:40% 1fr}.residence-track--sold .residence__body{padding:16px 14px}.residence-track--sold .residence h4{font-size:1rem}.residence-track--sold .residence__arrow{display:none}
}
