/* minoo.osaka.jp */
:root{
  --brand:#0168B7;
  --brand-dark:#014E8C;
  --brand-deep:#013A69;
  --brand-soft:#E9F2FA;
  --brand-line:#CFE1F1;
  --accent:#F08A24;
  --cream:#FAF8F4;
  --paper:#FFFFFF;
  --ink:#22262B;
  --ink-soft:#5F6873;
  --line:#E4E0D9;
  --radius:14px;
  --maxw:1160px;
  --head-h:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Zen Kaku Gothic New",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  background:var(--cream);color:var(--ink);line-height:1.85;font-size:16px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.rounded{font-family:"Zen Maru Gothic","Zen Kaku Gothic New",sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand-dark)}
ul{list-style:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;height:var(--head-h);
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.site-head .wrap{display:flex;align-items:center;gap:20px;height:var(--head-h);max-width:none;padding:0 20px}
.brand{display:flex;align-items:baseline;gap:2px;text-decoration:none;color:var(--brand-deep)}
.brand-mark{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:1.35rem;letter-spacing:.02em}
.brand-sub{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:1.35rem;color:var(--accent)}
.head-nav{display:flex;gap:18px;margin-left:8px}
.head-nav a{font-size:.92rem;font-weight:700;text-decoration:none;color:var(--ink-soft)}
.head-nav a:hover{color:var(--brand-dark)}
.head-tel{margin-left:auto;display:flex;align-items:baseline;gap:8px;text-decoration:none;white-space:nowrap}
.head-tel .lbl{font-size:.72rem;color:var(--ink-soft)}
.head-tel .num{font-weight:700;font-size:1.1rem;color:var(--brand-dark)}
@media(max-width:640px){
  .head-nav{display:none}
  .head-tel .lbl{display:none}
}

/* ---------- 地図ページ ---------- */
.is-map{height:100vh;overflow:hidden}
.map-page{display:grid;grid-template-columns:380px 1fr;height:calc(100vh - var(--head-h))}
.map-side{background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
.side-head{padding:22px 22px 14px}
.side-head h1{font-size:1.24rem;line-height:1.55;margin-bottom:10px}
.side-head .lead{font-size:.88rem;color:var(--ink-soft);line-height:1.7}
.filters{padding:0 22px 14px;border-bottom:1px solid var(--line)}
.f-row{margin-bottom:12px}
.f-row label{display:block;font-size:.74rem;font-weight:700;letter-spacing:.06em;color:var(--brand-dark);margin-bottom:5px}
.f-row select{
  width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:9px;
  font-size:.92rem;font-family:inherit;background:var(--paper);color:var(--ink);
}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);
  font-size:.82rem;font-family:inherit;cursor:pointer;color:var(--ink-soft);
}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.f-actions{display:flex;align-items:center;justify-content:space-between;padding-top:4px}
.f-actions .count{font-size:.9rem;color:var(--ink-soft)}
.f-actions .count strong{font-size:1.35rem;color:var(--brand-dark);font-weight:700;margin-right:2px}
.reset{background:none;border:none;font-size:.82rem;color:var(--ink-soft);cursor:pointer;text-decoration:underline;font-family:inherit}
.side-list{flex:1;overflow-y:auto;padding:10px 14px 24px}
.sl-item{
  display:flex;gap:11px;padding:10px;border-radius:11px;text-decoration:none;color:inherit;
  border:1px solid transparent;
}
.sl-item:hover,.sl-item.is-active{background:var(--brand-soft);border-color:var(--brand-line)}
.sl-item img{width:84px;height:64px;object-fit:cover;border-radius:7px;flex-shrink:0}
.sl-noimg{width:84px;height:64px;border-radius:7px;background:#EEF1F5;flex-shrink:0}
.sl-body{min-width:0}
.sl-rent{font-weight:700;color:var(--brand-dark);font-size:1rem;line-height:1.3}
.sl-name{font-size:.86rem;font-weight:700;margin:1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-meta{font-size:.76rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-empty{padding:30px 16px;text-align:center;color:var(--ink-soft);font-size:.9rem}
.map-area{position:relative}
#map{width:100%;height:100%}
.map-note{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;text-align:center;padding:30px;background:var(--brand-soft);color:var(--ink-soft);font-size:.9rem;
}
.map-note code{background:#fff;padding:2px 7px;border-radius:5px;font-size:.85rem}
.map-note.is-hidden{display:none}
.gm-card{font-family:"Zen Kaku Gothic New",sans-serif;max-width:230px}
.gm-card img{width:100%;height:130px;object-fit:cover;border-radius:8px;margin-bottom:7px}
.gm-card .r{font-weight:700;color:var(--brand-dark);font-size:1.05rem}
.gm-card .n{font-weight:700;font-size:.9rem;margin:2px 0}
.gm-card .m{font-size:.78rem;color:var(--ink-soft)}
.gm-card a{display:inline-block;margin-top:7px;font-weight:700;font-size:.85rem}
@media(max-width:900px){
  .is-map{height:auto;overflow:auto}
  .map-page{grid-template-columns:1fr;height:auto}
  .map-side{border-right:none;border-bottom:1px solid var(--line)}
  .side-list{max-height:none;overflow:visible}
  .map-area{height:70vh;min-height:420px;order:-1}
}

/* ---------- 一覧 ---------- */
.list-page{padding:40px 0 64px}
.page-head{margin-bottom:28px}
.page-head h1{font-size:1.6rem;margin-bottom:8px}
.page-head p{color:var(--ink-soft);font-size:.95rem}
.page-head .to-map a{font-weight:700;text-decoration:none}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 10px 28px rgba(46,42,38,.1);transform:translateY(-2px)}
.card a{text-decoration:none;color:inherit;display:block}
.card-img{aspect-ratio:4/3;background:#EEF1F5;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.noimg{display:flex;align-items:center;justify-content:center;height:100%;color:#9AA6B2;font-size:.82rem;font-weight:700}
.card-body{padding:13px 15px 16px}
.card-rent{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:1.16rem;color:var(--brand-dark);line-height:1.3}
.card-rent .mgmt{display:block;font-family:inherit;font-size:.72rem;color:var(--ink-soft);font-weight:400}
.card-name{font-weight:700;font-size:.95rem;margin:6px 0 2px}
.card-meta{font-size:.85rem;color:var(--ink)}
.card-access,.card-uni{font-size:.79rem;color:var(--ink-soft);margin-top:2px}
.card-uni .u{color:var(--brand-dark);font-weight:700}

/* ---------- 物件詳細 ---------- */
.room-page{padding:26px 0 64px}
.crumbs{font-size:.8rem;color:var(--ink-soft);margin-bottom:18px}
.crumbs a{text-decoration:none}
.room-top{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;margin-bottom:40px}
@media(max-width:860px){.room-top{grid-template-columns:1fr;gap:22px}}
.g-main{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.g-main img{width:100%;height:100%;object-fit:contain;background:#F3F5F7}
.g-thumbs{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.g-thumb{border:1px solid var(--line);border-radius:7px;overflow:hidden;padding:0;background:none;cursor:pointer;line-height:0}
.g-thumb img{width:84px;height:63px;object-fit:cover}
.g-thumb[aria-current="true"]{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.r-summary h1{font-size:1.42rem;line-height:1.5;margin-bottom:12px}
.r-rent{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:1.9rem;color:var(--brand-dark);line-height:1.25}
.r-rent .mgmt{display:block;font-size:.8rem;color:var(--ink-soft);font-weight:400;font-family:"Zen Kaku Gothic New",sans-serif}
.r-meta{margin:10px 0 14px;color:var(--ink-soft);font-size:.93rem}
.uni-badge{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:11px;padding:12px 15px;margin-bottom:14px}
.uni-badge .k{display:block;font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--brand);margin-bottom:2px}
.uni-badge strong{display:block;font-size:.98rem}
.uni-badge .d{font-size:.83rem;color:var(--ink-soft)}
.uni-badge .note{display:block;font-size:.72rem;color:var(--ink-soft);opacity:.85;margin-top:3px}
.pr{background:#FFF8EC;border-left:3px solid var(--accent);padding:11px 15px;border-radius:0 9px 9px 0;font-size:.9rem;margin-bottom:16px}
.r-cta{margin-top:18px}
.btn-tel{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  background:var(--brand);color:#fff;text-decoration:none;
  padding:14px 20px;border-radius:11px;font-weight:700;
}
.btn-tel:hover{background:var(--brand-dark)}
.btn-tel span{font-size:.8rem;opacity:.92}
.btn-tel strong{font-family:"Zen Maru Gothic",sans-serif;font-size:1.42rem;letter-spacing:.02em}
.btn-tel.big{max-width:340px;margin:14px auto 0;padding:17px 24px}
.cta-note{text-align:center;font-size:.78rem;color:var(--ink-soft);margin-top:7px}
.room-page section{margin-bottom:36px}
.room-page h2{font-size:1.16rem;margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--brand-soft)}
.r-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:.93rem}
.r-table th,.r-table td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.r-table tr:last-child th,.r-table tr:last-child td{border-bottom:none}
.r-table th{width:30%;background:#FAFBFD;font-weight:700;white-space:nowrap}
.r-table td{color:var(--ink-soft)}
@media(max-width:600px){
  .r-table th,.r-table td{display:block;width:100%;border-bottom:none;padding:11px 15px}
  .r-table th{padding-bottom:2px;font-size:.8rem;color:var(--brand-dark)}
  .r-table td{padding-top:0;border-bottom:1px solid var(--line)}
}
.facs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.facs li{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:10px 14px;font-size:.88rem}
.facs .fk{display:inline-block;min-width:4.5em;font-size:.72rem;font-weight:700;color:var(--brand);margin-right:6px}
.facs .fd{color:var(--ink-soft);font-size:.8rem;margin-left:4px}
.feats{display:flex;flex-wrap:wrap;gap:7px}
.feats li{background:var(--brand-soft);color:var(--brand-deep);border-radius:999px;padding:5px 13px;font-size:.82rem;font-weight:500}
.note{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:18px}
.note h3{font-size:.92rem;margin-bottom:6px;color:var(--brand-dark)}
.note p{font-size:.89rem;color:var(--ink-soft)}
.r-map-frame{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.r-map-frame iframe{display:block;width:100%;height:340px;border:0}
.r-map-canvas{width:100%;height:340px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center}
.map-loading{color:var(--ink-soft);font-size:.86rem}
.map-note-small{margin-top:7px;font-size:.76rem;color:var(--ink-soft)}
.r-foot-cta{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--radius);padding:28px 24px;text-align:center}
.r-foot-cta h2{border:none;padding:0;margin-bottom:6px}
.r-foot-cta p{font-size:.92rem;color:var(--ink-soft)}
.back{margin-top:24px}
.back a{font-weight:700;text-decoration:none}

/* ---------- footer ---------- */
.site-foot{background:var(--brand-deep);color:#D9E6F2;padding:36px 0 22px;margin-top:auto}
.is-map .site-foot{display:none}
.foot-grid{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;margin-bottom:20px}
.foot-grid .name{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;color:#fff;font-size:1.02rem;margin-bottom:5px}
.foot-grid{font-size:.87rem;line-height:1.9}
.site-foot a{color:#BBD6EC}
.license{font-size:.78rem;opacity:.8;margin-top:6px}
.foot-nav{display:flex;flex-direction:column;gap:6px}
.foot-nav a{text-decoration:none;font-weight:700}
.foot-note{border-top:1px solid rgba(255,255,255,.15);padding-top:14px;font-size:.78rem;opacity:.75}
