/* ===== scope（他ページに影響出さない） ===== */
.page-template-page-rental-studio .site-main {
  padding-top: 24px;
}

/* ===== Studio state background（タブ選択が一目で分かる） ===== */
.page-template-page-rental-studio.rs--zenpukuji{
  background: linear-gradient(180deg, rgba(17,17,17,.06), rgba(17,17,17,0) 340px);
}
.page-template-page-rental-studio.rs--inokashira{
  background: linear-gradient(180deg, rgba(11,95,255,.07), rgba(11,95,255,0) 340px);
}

/* 全体幅を中央寄せ */
.rental-studio.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 18px 80px;
}

/* ===== Tabs ===== */
.tabs{
  display:flex;
  gap:0;
  width:100%;
  max-width: 520px;
  margin: 14px 0 18px;
  border:1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  overflow:hidden;
  background:#fff;
}

.tab{
  flex:1;
  border:0;
  background:transparent;
  color: rgba(0,0,0,.7);
  padding: 12px 0;
  font-size: 13px;
  font-weight:600;
  cursor:pointer;
  transition: background .15s ease, color .15s ease;
}

.tab + .tab{
  border-left:1px solid rgba(0,0,0,.10);
}

/* active color by studio */
.page-template-page-rental-studio.rs--zenpukuji .tab.is-active{
  background:#545454;
  color:#fff;
}
.page-template-page-rental-studio.rs--inokashira .tab.is-active{
  background:#044557;
  color:#fff;
}

/* tabs container tint */
.page-template-page-rental-studio.rs--zenpukuji .tabs{
  border-color: rgba(0,0,0,.12);
  background: rgba(17,17,17,.02);
}
.page-template-page-rental-studio.rs--inokashira .tabs{
  border-color: rgba(11,95,255,.25);
  background: rgba(11,95,255,.06);
}

/* ===== Card ===== */
.card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
}

/* ===== Hero gallery ===== */
.hero {
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 18px;
  align-items: start;
  margin-bottom: 14px;
}
.hero-main {
  overflow: hidden;
}
.hero-main img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  display: block;
}
.hero-main img.is-loading {
  filter: blur(2px);
}

/* hero-subはbutton.thumbを入れても崩れない */
.hero-sub {
  display: grid;
  gap: 10px;
}
.hero-sub .card {
  overflow: hidden;
}
.hero-sub .thumb {
  cursor: pointer;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  border-radius: 10px;
}
.hero-sub .thumb:focus-visible{
  outline: 2px solid rgba(0,0,0,.35);
  outline-offset: 2px;
}
.hero-sub img {
  width: 100%;
  height: 98px;
  object-fit: cover;
  display: block;
  transition: transform .2s ease;
}
.hero-sub .thumb:hover img {
  transform: scale(1.03);
}

/* ===== Subnav ===== */
.rs-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid rgba(0,0,0,.08);
  padding: 10px 0 12px;
  margin: 4px 0 18px;
}
.rs-subnav a {
  font-size: 13px;
  text-decoration: none;
  color: rgba(0,0,0,.65);
  padding: 6px 10px;
  border-radius: 8px;
  transition: background .15s ease;
}
.rs-subnav a:hover {
  background: rgba(0,0,0,.04);
}

/* ===== Content layout ===== */
.content {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 22px;
  align-items: start;
  margin-top: 10px;
}

/* 見出し */
.heading .title {
  font-size: 28px;
  margin: 8px 0 6px;
}
.heading .lead-text {
  color: rgba(0,0,0,.55);
  margin: 0 0 16px;
}

/* Blocks */
.block {
  padding: 18px 18px 16px;
  margin-bottom: 14px;
}
.block h2 {
  font-size: 17px;
  text-align:left;
  margin: 0 0 14px;
  letter-spacing: .02em;
  padding-left: 10px;
  border-left: 3px solid rgba(0,0,0,.35);
}

.block h3 {
  font-size: 15px;
  text-align:left;
  letter-spacing: .02em;
  padding-left: 10px;
}

/* ===== Specs ===== */
.spec-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top:1px solid rgba(0,0,0,.08);
}

.spec-row{
  display:flex;
  gap:12px;
  padding: 14px 10px;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.spec-row:nth-child(odd){
  border-right:1px solid rgba(0,0,0,.08);
}

.spec-ico{
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(0,0,0,.05);
  flex: 0 0 28px;
  margin-top: 2px;
}

.spec-meta{ min-width:0; }
.spec-label{
  font-size: 14px;
  text-align: left;
  color: rgba(0,0,0,.55);
  margin-bottom: 4px;
}
.spec-value{
  color: rgba(0,0,0,.9);
  line-height: 1.5;
  font-weight: bold;
  text-align: left;

}

/* ===== Floor plan ===== */
.floor-wrap{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
#floorPlanImg{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.floor-note{
  margin: 10px 0 0;
  font-size: 12px;
  color: rgba(0,0,0,.60);
}

/* ===== Price meta ===== */
.price-meta{
  margin: 0 0 12px;
  padding: 12px 12px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.02);
  box-shadow: none;
}
.price-meta-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom: 10px;
}
.price-chip{
  font-size: 12px;
  color: rgba(0,0,0,.75);
  padding: 6px 10px;
  border-radius: 999px;
  background:#fff;
  border: 1px solid rgba(0,0,0,.08);
}
.price-meta-lines{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size: 12px;
  color: rgba(0,0,0,.70);
}
.price-line{
  display:flex;
  gap:10px;
  line-height: 1.5;
}
.price-line span{
  flex: 0 0 72px;
  color: rgba(0,0,0,.55);
}
.price-line.note{
  margin-top: 2px;
  color: rgba(0,0,0,.65);
}

/* ===== Price table ===== */
.price-table-wrap { overflow-x: auto; }
.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-bottom: 5px;
}
.price-table th, .price-table td {
  border-top: 1px solid rgba(0,0,0,.08);
  padding: 12px 10px;
  text-align: center;
}
.price-table thead th {
  border-top: 0;
  color: rgba(0,0,0,.55);
  font-weight: 600;
}
.price-table tbody th {
  text-align: left;
  font-weight: 600;
}
.price-notes {
  text-align: left;
  margin: 12px 0 0;
  padding-left: 18px;
  color: rgba(0,0,0,.6);
  font-size: 12px;
}
/* ===== Price table: colored ===== */
.price-table {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  overflow: hidden; /* 角丸を効かせる */
  background: #fff;
}

/* 見出し行を少し強く */
.price-table thead th{
  background: rgba(0,0,0,.03);
}

/* 列ごとに薄色（通常 / 繁忙期） */
.price-table thead th:nth-child(2),
.price-table tbody td:nth-child(2){
  background: rgba(17,17,17,.03); /* 通常 */
}

.price-table thead th:nth-child(3),
.price-table tbody td:nth-child(3){
  background: rgba(255,120,0,.07); /* 繁忙期（薄いオレンジ） */
}

/* 罫線を控えめにして視認性UP */
.price-table th, .price-table td{
  border-top: 1px solid rgba(0,0,0,.06);
}

/* 行ホバーで読みやすく */
.price-table tbody tr:hover td,
.price-table tbody tr:hover th{
  background: rgba(0,0,0,.035);
}

/* ただし列背景を優先（ホバー色が上書きしすぎないように） */
.price-table tbody tr:hover td:nth-child(2){
  background: rgba(17,17,17,.05);
}
.price-table tbody tr:hover td:nth-child(3){
  background: rgba(255,120,0,.10);
}

/* 左端（曜日）の強調 */
.price-table tbody th{
  background: rgba(0,0,0,.02);
  white-space: nowrap;
}

/* ===== Rules / Steps ===== */
.rs-steps{
  margin: 0;
  padding-left: 18px;
  color: rgba(0,0,0,.75);
  font-size: 13px;
  line-height: 1.7;
}
.rs-steps li{ margin: 6px 0; }

.rs-list{
  margin: 0;
  padding-left: 18px;
  color: rgba(0,0,0,.75);
  font-size: 13px;
  line-height: 1.7;
}
.rs-list li{ 
	text-align:left;
	margin: 6px 0; }

/* ===== Accordion（利用の流れ / FAQ） ===== */
.rs-accordion{
  border: 0;
}
.rs-accordion-summary{
  cursor: pointer;
  list-style: none;
  font-size: 15px;
  margin: 0;
  letter-spacing: .02em;
  padding-left: 10px;
  border-left: 3px solid rgba(0,0,0,.35);
  display: flex;
  align-items: center;
  justify-content: space-between;
font-family: var(--global--font-secondary);
}
.rs-accordion-summary::-webkit-details-marker{ display:none; }
.rs-accordion-summary::after{
  content: "▾";
  font-size: 14px;
  color: rgba(0,0,0,.55);
  margin-left: 10px;
  transform: rotate(0deg);
  transition: transform .15s ease;
}
.rs-accordion[open] .rs-accordion-summary::after{
  transform: rotate(180deg);
}
.rs-accordion-body{
  margin-top: 12px;
}

/* ===== FAQ inner accordion ===== */
.rs-faq{ display:flex; flex-direction:column; gap:8px; }
.faq-item{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  background: #fff;
  padding: 10px 12px;
}
.faq-item summary{
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: rgba(0,0,0,.85);
  list-style: none;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-a{
  margin-top: 8px;
  font-size: 13px;
  color: rgba(0,0,0,.70);
  line-height: 1.7;
}

/* ===== Map ===== */
#mapFrame {
  width: 100%;
  height: 320px;
  border: 0;
  border-radius: 10px;
}

/* ===== Sidebar ===== */
.content-side {
  position: sticky;
  top: 90px;
}
.side-box {
  padding: 16px;
}
.side-title {
  font-size: 13px;
  color: rgba(0,0,0,.55);
  margin: 0 0 10px;
}
.btn.primary {
  display: block;
  text-align: center;
  background: #e3364a;
  color: #fff;
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

.btn.primary:focus-visible{
  outline: 2px solid rgba(0,0,0,.35);
  outline-offset: 2px;
}
.side-note {
  margin-top: 10px;
  font-size: 12px;
  color: rgba(0,0,0,.55);
}

/* ===== Lightbox ===== */
body.rs-no-scroll { overflow: hidden; }

.rs-lightbox{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.rs-lightbox.is-open{
  display: block;
}

.rs-lightbox-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.72);
}

.rs-lightbox-dialog{
  position: absolute;
  inset: 24px;
  display: grid;
  grid-template-rows: auto 1fr;
  background: #111;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
}

.rs-lightbox-close{
  position: absolute;
  top: 10px;
  right: 12px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 22px;
  cursor: pointer;
}

.rs-lightbox-toolbar{
  position: absolute;
  top: 10px;
  left: 10px;
  display: flex;
  gap: 8px;
  z-index: 2;
}

.rs-lightbox-btn{
  border: 0;
  border-radius: 10px;
  padding: 10px 12px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 13px;
  cursor: pointer;
}

.rs-lightbox-viewport{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
  cursor: grab;
}

.rs-lightbox-viewport.is-panning{
  cursor: grabbing;
}

#rsLightboxImg{
  max-width: 96%;
  max-height: 96%;
  transform-origin: center center;
  will-change: transform;
  transition: transform .06s linear;
  user-select: none;
  -webkit-user-drag: none;
}

/* ===== 見出し(h2)を「ご利用の流れ(summary)」の見え方に揃える ===== */
.page-template-page-rental-studio .block h2,
.page-template-page-rental-studio .block h3{
  /* summaryは基本 inherit なので、h2もinheritに寄せる */
  font-family: inherit;
  font-weight: 600;              /* ここは好みで 500 でもOK */
  letter-spacing: .02em;
  line-height: 1.3;
  color: rgba(0,0,0,.9);
}

/* h2の余計な“見出し感”が出る場合の調整（テーマ依存） */
.page-template-page-rental-studio .block h2{
  text-transform: none;
}

/* 「縦ライン＋左余白」は維持したまま、太さを揃えたい場合 */
.page-template-page-rental-studio .block h2{
  border-left: 3px solid rgba(0,0,0,.35);
  padding-left: 10px;
}


@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-main img { height: 260px; }

  .hero-sub {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: none;
  }
  .hero-sub img { height: 86px; }

  .content { grid-template-columns: 1fr; }
  .content-side { position: static; }

  .rs-lightbox-dialog{ inset: 14px; }
  #rsLightboxImg{ max-width: 98%; max-height: 98%; }
}
