@charset "UTF-8";
/*---------------------------
location.css  ガーラ・レジデンス川口 ロケーションページ
---------------------------*/

:root {
  --loc-navy: #1a3b6b;
  --loc-navy-dark: #0e2a4f;
  --loc-gold: #c4a86b;
  --loc-bg-gray: #f5f5f5;
  --loc-bg-blue: #eaf4f8;
  --loc-text: #231815;
  --loc-text-sub: #666;
  --loc-kawaguchi-bg: #1a3b6b;
}


/*---------------------------
image photo キャプション非表示（FVのみ表示）
---------------------------*/
.imageCap .cap_n.cap_r.wh,
.nearby_cap {
  display: none;
}
#locationMainvisual .cap_n.cap_r.wh {
  display: block;
}

/*---------------------------
メインビジュアル
---------------------------*/
#locationMainvisual {
  position: relative;
  width: 100%;
  overflow: hidden;
  line-height: 0;
}

#locationMainvisual .location_mv_img img {
  width: 100%;
  display: block;
  object-fit: cover;
}


/*---------------------------
ロケーションリード
---------------------------*/
#locationLead {
  background: linear-gradient(to bottom, #ffffff 40%, #cce2ee 100%);
  padding: 5em 0;
  text-align: center;
}

.loc_lead_ttl {
  font-family: "a-otf-ryumin-pr6n", serif;
  font-weight: 300;
  font-size: 22px;
  line-height: 1.9;
  letter-spacing: 0.08em;
  color: var(--loc-text);
  margin-bottom: 1.8em;
}

.loc_lead_body {
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.06em;
  color: var(--loc-text);
}

/* Tab */
@media screen and (max-width: 1170px) {
  #locationLead {
    padding: 4em 0;
  }

  .loc_lead_ttl {
    font-size: 20px;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #locationLead {
    padding: 3.5em 0;
  }

  .loc_lead_ttl {
    font-size: 19px;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .loc_lead_body {
    font-size: 14px;
    line-height: 2.1;
    text-align: center;
  }
}


/*---------------------------
KAWAGUCHI セクション - 共通背景
---------------------------*/
#kawaguchiSection {
  background-image: url(../images/access/usp_bg_pc.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
}

#kawaguchiLead {
  padding: 5em 0 4em;
  text-align: center;
}

.kawaguchi_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 36px;
  letter-spacing: 0.15em;
  color: var(--loc-gold);
  line-height: 1;
  margin-bottom: 0.6em;
}

.kawaguchi_copy {
  font-size: 24px;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #fff;
  margin-bottom: 1.2em;
}

.kawaguchi_body {
  font-size: 13px;
  line-height: 2.0;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.82);
  margin-bottom: 3em;
}

/* バッジ横一列 */
.kawaguchi_badges {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 3em;
  margin-bottom: 2em;
}

.badge_item {
  position: relative;
  text-align: center;
}

.badge_item img {
  display: block;
  height: auto;
}

.badge_item.badge_rank1 img {
  width: 200px;
}

.badge_item.badge_rank2 img,
.badge_item.badge_reduce img {
  width: 148px;
}

.badge_content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  text-align: center;
  color: #fff;
}

.badge_label {
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  margin-bottom: 0.3em;
  color: rgba(255, 255, 255, 0.9);
}

.badge_num {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: italic;
  font-size: 13px;
  line-height: 1.2;
  color: var(--loc-gold);
  letter-spacing: 0.02em;
}

.badge_num_lg {
  font-size: 42px;
  display: inline-block;
  line-height: 1;
  color: var(--loc-gold);
}

.badge_item.badge_rank2 .badge_num_lg,
.badge_item.badge_reduce .badge_num_lg {
  font-size: 30px;
}

.badge_years {
  font-size: 9px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 0.2em;
}

.badge_ref {
  font-size: 8px;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 0.2em;
}

/* 出典 */
.kawaguchi_citations {
  font-size: 11px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.03em;
  text-align: center;
}

.kawaguchi_citations span {
  display: inline;
  margin-right: 1.5em;
}

.kawaguchi_citations span:last-child {
  margin-right: 0;
}


/*---------------------------
KAWAGUCHI セクション - 統計・グラフエリア
---------------------------*/
#kawaguchiStats {
  padding: 4em 0 3em;
}

.stats_title {
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: #fff;
  text-align: center;
  margin-bottom: 2em;
}

/* 3カラムレイアウト */
.stats_3col {
  display: flex;
  gap: 3.5em;
  align-items: flex-start;
  margin-bottom: 1.5em;
}

.stats_text_col {
  flex: 0 0 20%;
  padding-top: 2em;
}

.stats_lead_txt {
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.85);
}

.stats_note {
  display: block;
  font-size: 10px;
  line-height: 1.4;
}

.stats_graph_col {
  flex: 1;
  min-width: 0;
}

.stats_graph_ttl {
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 1.8em;
  line-height: 1.5;
}

.stats_graph_labels {
  display: flex;
  gap: 1.2em;
  align-items: center;
  margin-bottom: 0.5em;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
}

.stats_graph_labels .label_bar,
.stats_graph_labels .label_line,
.stats_graph_labels .label_dash {
  display: flex;
  align-items: center;
  gap: 4px;
}

.stats_graph_labels .label_bar::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 12px;
  background: #7ab4e0;
}

.stats_graph_labels .label_line::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 3px;
  background: #e8b84a;
  border-radius: 2px;
}

.stats_graph_labels .label_dash::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 2px;
  background: #e06060;
  border-top: 2px dashed #e06060;
}

.stats_graph_img {
  width: 100%;
  margin-bottom: 0.6em;
}

.stats_graph_img img {
  width: 100%;
  display: block;
}

/* PC時のみ人口グラフを下に30px移動（他要素に影響なし） */
@media screen and (min-width: 769px) {
  .stats_graph_img--pop {
    position: relative;
    top: 30px;
  }
}

.stats_graph_axis {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  padding: 0 2px;
  margin-top: 4px;
}

.stats_notes {
  font-size: 11px;
  line-height: 2.0;
  color: rgba(255, 255, 255, 0.5);
  padding-bottom: 3em;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .kawaguchi_en {
    font-size: 3.077vw;
  }

  .kawaguchi_copy {
    font-size: 2.051vw;
  }

  .kawaguchi_body {
    font-size: 1.111vw;
  }

  .badge_item.badge_rank1 img {
    width: 17.09vw;
  }

  .badge_item.badge_rank2 img,
  .badge_item.badge_reduce img {
    width: 12.65vw;
  }

  .badge_num_lg {
    font-size: 3.59vw;
  }

  .badge_item.badge_rank2 .badge_num_lg,
  .badge_item.badge_reduce .badge_num_lg {
    font-size: 2.56vw;
  }

  .stats_title {
    font-size: 1.88vw;
  }

  .stats_3col {
    gap: 2.5em;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #kawaguchiLead {
    padding: 3em 0 2.5em;
  }

  .kawaguchi_en {
    font-size: 8vw;
  }

  .kawaguchi_copy {
    font-size: 19px;
    line-height: 1.6;
  }

  .kawaguchi_body {
    font-size: 3vw;
    line-height: 1.9;
    margin-bottom: 2em;
  }

  .kawaguchi_badges {
    gap: 1.5em;
  }

  .badge_item.badge_rank1 img {
    width: 36vw;
  }

  .badge_item.badge_rank2 img,
  .badge_item.badge_reduce img {
    width: 26vw;
  }

  .badge_num_lg {
    font-size: 8vw;
  }

  .badge_item.badge_rank2 .badge_num_lg,
  .badge_item.badge_reduce .badge_num_lg {
    font-size: 5.5vw;
  }

  .badge_label {
    font-size: 8px;
  }

  .kawaguchi_citations {
    font-size: 9px;
    text-align: left;
  }

  .kawaguchi_citations span {
    display: block;
    margin-right: 0;
    margin-bottom: 0.3em;
  }

  #kawaguchiStats {
    padding: 2.5em 0 2em;
  }

  .stats_title {
    font-size: 19px;
    line-height: 1.5;
    margin-bottom: 1.5em;
    text-align: center;
  }

  .stats_3col {
    flex-direction: column;
    gap: 2.5em;
  }

  .stats_text_col {
    flex: none;
    width: 100%;
    padding-top: 0;
  }

  .stats_lead_txt {
    font-size: 3vw;
    text-align: center;
  }

  .stats_graph_ttl {
    font-size: 3.4vw;
  }

  .stats_notes {
    font-size: 2.4vw;
    padding-bottom: 2em;
  }
}


/*---------------------------
SHOPPING セクション - タイトル
---------------------------*/
#shoppingSection {
  padding-top: 0;
}

.location_sec_ttl {
  background: url(../images/access/ttl_bg.png) no-repeat center center;
  background-size: 100% 100%;
  padding: 2em 0;
  text-align: center;
}

.loc_sec_ttl_inner {
  display: inline-flex;
  align-items: center;
  gap: 1em;
}

.loc_sec_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 36px;
  letter-spacing: 0.12em;
  color: var(--loc-gold);
  line-height: 1;
  margin-bottom: 0;
}

.loc_sec_ja {
  font-size: 13px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1;
  position: relative;
  display: inline-block;
}

.loc_sec_ja::before {
  content: none;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .loc_sec_en {
    font-size: 3.077vw;
  }
}

/* sp */
@media only screen and (max-width: 768px) {
  .location_sec_ttl {
    padding: 1.4em 0;
  }

  .loc_sec_ttl_inner {
    flex-direction: column;
    align-items: center;
    gap: 0.3em;
  }

  .loc_sec_en {
    font-size: 5vw;
    white-space: nowrap;
    letter-spacing: 0.08em;
  }

  .loc_sec_ja {
    font-size: 3.5vw;
  }
}


/*---------------------------
カテゴリタブ
---------------------------*/
.location_cat_tabs {
  background: #fff;
  padding: 3.2em 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.location_cat_tabs ul {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 8px;
  max-width: 1170px;
  width: 90%;
  margin: 0 auto;
  list-style: none;
}

.location_cat_tabs ul li {
  flex: 1;
}

.location_cat_tabs ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  padding: 1.05em 1em;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--loc-navy);
  background: linear-gradient(to bottom, #ffffff 40%, #cce2ee 100%);
  border: 1px solid rgba(101, 188, 223, 0.5);
  border-radius: 4px;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
  text-decoration: none;
}

.location_cat_tabs ul li.tab_active a {
  background: #65bcdf;
  color: var(--loc-navy);
  border-color: #65bcdf;
}

.location_cat_tabs ul li a.soon {
  color: rgba(26, 59, 107, 0.4);
  cursor: default;
  background: rgba(101, 188, 223, 0.3);
  border-color: rgba(101, 188, 223, 0.4);
}

.location_cat_tabs ul li a:not(.soon):hover {
  background: rgba(101, 188, 223, 0.55);
}

/* sp */
@media only screen and (max-width: 768px) {
  .location_cat_tabs {
    padding: 1em 0;
  }

  .location_cat_tabs ul {
    margin: 0 4%;
    min-width: auto;
    flex-wrap: wrap;
    gap: 4px;
  }

  .location_cat_tabs ul li {
    flex: 1 1 calc(50% - 2px);
  }

  .location_cat_tabs ul li:last-child:nth-child(odd) {
    flex: 0 0 calc(50% - 2px);
    margin: 0 auto;
  }

  .location_cat_tabs ul li a {
    font-size: 3vw;
    padding: 0.9em 1.4em;
  }
}


/*---------------------------
SHOPPING - イントロエリア（グラデ背景）
---------------------------*/
.shopping_intro_area {
  background: linear-gradient(to bottom, #cce2ee 0%, #ffffff 60%);
  padding-bottom: 3em;
}


/*---------------------------
SHOPPING - リード文
---------------------------*/
.shopping_lead {
  text-align: center;
  padding: 4em 0 3em;
}

.shopping_lead_ttl {
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: var(--loc-navy);
  margin-bottom: 1.2em;
}

.shopping_lead_txt {
  font-size: 14px;
  line-height: 2.0;
  letter-spacing: 0.04em;
  color: var(--loc-text);
}

/* Tab */
@media screen and (max-width: 1170px) {
  .shopping_lead_ttl {
    font-size: 1.88vw;
  }

  .shopping_lead_txt {
    font-size: 1.196vw;
  }
}

/* sp */
@media only screen and (max-width: 768px) {
  .shopping_lead {
    padding: 2.5em 0 2em;
    text-align: left;
  }

  .shopping_lead_ttl {
    font-size: 19px;
    line-height: 1.6;
    text-align: center;
  }

  .shopping_lead_txt {
    font-size: 3.125vw;
    line-height: 1.8;
  }
}


/*---------------------------
SHOPPING - エリアマップ
---------------------------*/
.shopping_map_wrap {
  text-align: center;
  margin-top: -60px;
  margin-bottom: 0;
}

.shopping_map_img {
  display: inline-block;
  max-width: 960px;
  width: 100%;
  position: relative;
  top: -40px;
}

.shopping_map_img img {
  width: 100%;
  display: block;
}

/* sp */
@media only screen and (max-width: 768px) {
  .shopping_map_wrap {
    margin-bottom: 2.5em;
  }
  .shopping_map_img {
    top: 0;
  }
}


/*---------------------------
大型商業施設 ブロック
---------------------------*/
.facility_block {
  overflow: hidden;
}

.facility_block + .facility_block {
  margin-top: 20px;
}

.facility_inner {
  display: flex;
  gap: 0;
  align-items: stretch;
}

.facility_inner--imgright {
  flex-direction: row;
}

.facility_inner--imgleft {
  flex-direction: row;
}

.facility_info {
  flex: 1;
  background: var(--loc-bg-blue);
  padding: 2.5em 3em;
}

.facility_img {
  flex: 0 0 50%;
  overflow: hidden;
}

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

.facility_header {
  margin-bottom: 1em;
}

.facility_name {
  font-size: 24px;
  letter-spacing: 0.08em;
  color: var(--loc-navy);
  line-height: 1.2;
  margin-bottom: 0.3em;
}

.facility_dist {
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--loc-text-sub);
  line-height: 1;
}

.dist_min {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 26px;
  color: #4fa2bd;
}

.facility_desc {
  font-size: 13px;
  line-height: 2.0;
  letter-spacing: 0.04em;
  color: var(--loc-text);
  margin-bottom: 1.2em;
}

.facility_tenants {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 1em;
}

.facility_info .facility_tenants {
  margin: 1em -3em -2.5em;
  padding: 1em 3em;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 0;
}

/* テナント アコーディオン（PC では常時表示） */
.tenant_accordion_btn {
  display: none;
}
.tenant_accordion_body {
  display: block;
}

/* アリオ川口 テナント全幅行 */
.facility_tenants_row {
  background: var(--loc-bg-blue);
  padding: 20px 0 1.5em;
}

.facility_tenants_row .facility_tenants {
  columns: 5;
  column-gap: 1.5em;
  background: rgba(255, 255, 255, 0.65);
  padding: 1em 1.2em;
  border-radius: 0;
}

.facility_tenants li {
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: var(--loc-text-sub);
  break-inside: avoid;
}

/*---------------------------
施設内サブブロック（アリオ内MOVIXなど）
---------------------------*/
.facility_sub_block {
  margin-top: 1.8em;
  padding-top: 1.8em;
  border-top: 1px solid rgba(26, 59, 107, 0.15);
}

.facility_sub_inner {
  display: flex;
  gap: 1.2em;
  align-items: stretch;
}

.facility_sub_img {
  flex: 0 0 44%;
  overflow: hidden;
  border-radius: 3px;
}

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

.facility_sub_info {
  flex: 1;
  background: #fff;
  padding: 1em 1.5em;
}

.facility_sub_name {
  font-size: 18px;
  letter-spacing: 0.06em;
  color: var(--loc-navy);
  line-height: 1.2;
  margin-bottom: 0.3em;
}

.facility_sub_dist {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 0.8em;
  line-height: 1;
}

.facility_sub_dist .dist_min {
  font-size: 18px;
}

.facility_sub_desc {
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--loc-text);
}

/* Tab */
@media screen and (max-width: 1170px) {
  .facility_name {
    font-size: 2.051vw;
  }

  .facility_desc {
    font-size: 1.111vw;
  }

  .facility_tenants li {
    font-size: 0.855vw;
  }

  .facility_sub_name {
    font-size: 1.538vw;
  }

  .facility_sub_desc {
    font-size: 1.025vw;
  }
}

/* sp */
@media only screen and (max-width: 768px) {
  .facility_inner,
  .facility_inner--imgright,
  .facility_inner--imgleft {
    flex-direction: column;
  }

  .facility_inner--imgright .facility_img {
    order: -1;
  }

  .facility_img {
    flex: none;
    width: 100%;
  }

  .facility_img img {
    height: auto;
  }

  .facility_info {
    padding: 1.5em;
  }

  .facility_name {
    font-size: 4.3vw;
  }

  .facility_dist {
    font-size: 3.2vw;
  }

  .dist_min {
    font-size: 4.5vw;
  }

  .facility_desc {
    font-size: 2.8vw;
    line-height: 1.8;
  }

  .facility_tenants {
    columns: 1;
  }

  .facility_info .facility_tenants {
    margin: 1em -1.5em -1.5em;
    padding: 1em 1.5em;
  }

  .facility_tenants_row .facility_tenants {
    columns: 1;
  }

  .facility_tenants li {
    font-size: 2.5vw;
  }

  /* テナント アコーディオン SP */
  .tenant_accordion_btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.75em 1.1em;
    margin-top: 1em;
    background: var(--loc-bg-blue);
    border: 1px solid rgba(26, 59, 107, 0.2);
    border-radius: 3px;
    font-size: 3.4vw;
    color: var(--loc-navy);
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    box-sizing: border-box;
  }
  .acc_sign {
    font-style: normal;
    font-size: 1.3em;
    line-height: 1;
  }
  .acc_label_open {
    display: none;
  }
  .tenant_accordion.is-open .acc_label_closed {
    display: none;
  }
  .tenant_accordion.is-open .acc_label_open {
    display: block;
  }
  .tenant_accordion_body {
    display: none;
  }

  .facility_sub_inner {
    flex-direction: row;
    align-items: stretch;
  }

  .facility_sub_img {
    flex: 0 0 42%;
    width: auto;
  }

  .facility_sub_img img {
    height: 100%;
    object-fit: cover;
  }

  .facility_sub_name {
    font-size: 4.2vw;
  }

  .facility_sub_desc {
    font-size: 2.4vw;
    line-height: 1.6;
  }
}


/*---------------------------
商店街
---------------------------*/
#shoppingStreets {
  background: #e3f1f2;
  padding: 4em 0;
  margin-top: 4em;
}

.streets_lead {
  text-align: center;
  margin-bottom: 3.5em;
}

.streets_lead_ttl {
  font-size: 20px;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #000;
}

.street_block {
  margin-bottom: 3.5em;
}

.street_block:last-child {
  margin-bottom: 0;
}

.street_header {
  margin-bottom: 1.2em;
}

.street_logo {
  display: inline-flex;
  align-items: center;
  gap: 1em;
}

.street_logo_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: italic;
  font-size: 22px;
  letter-spacing: 0.08em;
  padding: 0.3em 0.8em;
  border-radius: 4px;
  color: #fff;
}

.street_logo_ja {
  font-size: 18px;
  letter-spacing: 0.1em;
  color: var(--loc-text);
}

.street_logo--jumall .street_logo_en {
  background: #4d8c6a;
}

.street_logo--fujinoshi .street_logo_en {
  background: #d08040;
}

.street_logo--central .street_logo_en {
  background: #c05070;
}

.street_map_wrap img {
  width: 100%;
  display: block;
  border-radius: 4px;
}

.street_scroll_hint {
  display: none;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .streets_lead_ttl {
    font-size: 1.709vw;
  }

  .street_logo_ja {
    font-size: 1.538vw;
  }
}

/* sp */
@media only screen and (max-width: 768px) {
  #shoppingStreets {
    padding: 2.5em 0;
  }

  .streets_lead {
    margin-bottom: 2em;
  }

  .streets_lead_ttl {
    font-size: 4.2vw;
    line-height: 1.6;
  }

  .street_block {
    margin-bottom: 2.5em;
  }

  .street_map_wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
  }

  .street_map_wrap img {
    width: 820px;
    max-width: none;
  }

  .street_map_wrap::-webkit-scrollbar {
    height: 8px;
  }

  .street_map_wrap::-webkit-scrollbar-track {
    background: #f0f0f0;
    border-radius: 2px;
  }

  .street_map_wrap::-webkit-scrollbar-thumb {
    background: var(--loc-navy);
    border-radius: 2px;
  }

  .street_scroll_hint {
    display: block;
    font-size: 13px;
    letter-spacing: 0.1em;
    color: var(--loc-text-sub);
    text-align: right;
    margin-top: 6px;
  }

  .street_logo {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5em;
  }

  .street_logo_en {
    font-size: 4.8vw;
  }

  .street_logo_ja {
    font-size: 4.2vw;
  }
}


/*---------------------------
商店街マップ スクロールインジケーター
---------------------------*/
.street_scroll_indicator {
  display: none;
}

@media only screen and (max-width: 768px) {
  .street_scroll_indicator {
    display: block;
    position: relative;
    width: 100%;
    height: 24px;   /* タッチしやすい高さ */
    margin-top: 4px;
    cursor: pointer;
    touch-action: none; /* ブラウザのスクロール操作を無効化して直接操作 */
  }

  /* 視覚的なトラック */
  .street_scroll_indicator::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 3px;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.12);
    border-radius: 2px;
  }

  .street_scroll_thumb {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 3px;
    background: var(--loc-navy);
    border-radius: 2px;
  }

  /* インジケーター表示中はデフォルトのスクロールバーを非表示 */
  .street_map_wrap::-webkit-scrollbar {
    display: none;
  }
}


/*---------------------------
現地周辺 生活利便施設
---------------------------*/
#nearbyFacilities {
  background: #fff;
  padding: 4em 0;
}

.nearby_lead {
  font-size: 20px;
  letter-spacing: 0.08em;
  color: var(--loc-navy);
  text-align: center;
  margin-bottom: 2.5em;
  line-height: 1.6;
}

/* フィーチャーエリア */
.nearby_featured {
  display: flex;
  gap: 14px;
  margin-bottom: 20px;
  align-items: stretch;
  overflow: hidden;
  border-radius: 4px;
  position: relative;
}

.nearby_featured::before {
  content: '';
  position: absolute;
  top: 40px;
  bottom: 0;
  left: 430px;
  right: 10%;
  background: var(--loc-bg-blue);
  z-index: 0;
}

.nearby_featured_main {
  flex: 0 0 48%;
  display: flex;
  flex-direction: column;
  background: transparent;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.nearby_featured_img {
  flex: 1;
  overflow: hidden;
  min-height: 180px;
  line-height: 0;
}

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

.nearby_featured_main .nearby_info {
  padding: 20px 22px 26px;
  flex: 0 0 auto;
}

.nearby_featured_sub {
  flex: 1;
  background: transparent;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 1;
}

.nearby_sub_item {
  flex: 1;
  min-height: 180px;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 0.5em 0.8em;
  gap: 0.5em;
}

.nearby_sub_item + .nearby_sub_item {
  border-top: none;
}

.nearby_featured_sub .nearby_sub_item:first-child {
  align-items: center;
  padding-top: 4em;
  padding-bottom: 0;
}


.nearby_sub_item--rev {
  flex-direction: row-reverse;
}

.nearby_sub_img {
  flex: 0 0 50%;
  overflow: hidden;
  line-height: 0;
}

.nearby_sub_img img {
  width: 100%;
  height: auto;
  display: block;
}

.nearby_sub_item .nearby_info {
  flex: 1;
  padding: 0 0.8em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
}

.nearby_sub_item .nearby_name,
.nearby_sub_item .nearby_dist,
.nearby_sub_item .nearby_note {
  text-align: left;
  width: 100%;
}

/* 通常グリッド */
.nearby_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 3em;
  margin-bottom: 0.8em;
  max-width: 80%;
  margin-inline: auto;
}

.nearby_item {
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
}

.nearby_img {
  width: 100%;
  line-height: 0;
}

.nearby_img img {
  width: 100%;
  display: block;
  aspect-ratio: 5 / 3;
  object-fit: cover;
}

.nearby_info {
  padding: 12px 14px 16px;
}

.nearby_name {
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--loc-navy);
  margin-bottom: 4px;
}

.nearby_featured_main .nearby_name {
  font-size: 22px;
}

.nearby_dist {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 6px;
}

.nearby_dist span {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 18px;
  color: #4fa2bd;
}

.nearby_note {
  font-size: 11px;
  line-height: 1.7;
  color: var(--loc-text-sub);
}

.nearby_cap {
  font-size: 11px;
  color: var(--loc-text-sub);
  text-align: right;
  margin-top: 8px;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .nearby_lead {
    font-size: 1.709vw;
  }

  .nearby_name {
    font-size: 1.282vw;
  }

  .nearby_dist {
    font-size: 1.111vw;
  }

  .nearby_note {
    font-size: 0.94vw;
  }
}

/* sp */
@media only screen and (max-width: 768px) {
  #nearbyFacilities {
    padding: 2.5em 0;
  }

  .nearby_lead {
    font-size: 4.2vw;
    margin-bottom: 1.8em;
  }

  .nearby_featured {
    flex-direction: column;
    margin-bottom: 12px;
  }

  .nearby_featured_main {
    flex: none;
    width: 100%;
  }

  .nearby_featured_img {
    min-height: 50vw;
  }

  .nearby_featured_sub {
    flex-direction: column;
  }

  .nearby_sub_item {
    flex-direction: column;
    align-items: stretch;
  }

  .nearby_featured_sub .nearby_sub_item:first-child {
    align-items: stretch;
    padding-top: 0;
  }

  .nearby_sub_item--rev {
    flex-direction: column;
  }

  .nearby_sub_item + .nearby_sub_item {
    border-top: none;
    border-left: 1px solid rgba(255, 255, 255, 0.55);
  }

  .nearby_sub_img {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
  }

  .nearby_sub_item .nearby_info {
    display: block !important;
    padding: 0.8em 1em;
    width: 100%;
    text-align: left;
  }

  .nearby_sub_item .nearby_name,
  .nearby_sub_item .nearby_dist,
  .nearby_sub_item .nearby_note {
    text-align: left !important;
    display: block;
    width: 100%;
  }

  .nearby_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    max-width: 100%;
  }

  .nearby_name {
    font-size: 3.5vw;
  }

  .nearby_grid .nearby_name {
    font-size: 3vw;
  }

  .nearby_dist {
    font-size: 3vw;
  }

  .nearby_dist span {
    font-size: 4.5vw;
  }

  .nearby_note {
    font-size: 3.2vw;
    line-height: 1.6;
  }
}


/*---------------------------
LIFE INFORMATION セクション
---------------------------*/
#lifeInfoSection {
  background: #fff;
}

.lifemap_header {
  padding: 4em 0 2.5em;
  text-align: center;
}

.lifemap_title_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 36px;
  letter-spacing: 0.2em;
  color: var(--loc-navy);
  line-height: 1;
  margin-bottom: 0.7em;
}

.lifemap_title_lead {
  font-size: 14px;
  letter-spacing: 0.05em;
  color: var(--loc-text);
  line-height: 1.8;
}

/* マップ */
.lifemap_map_area {
  line-height: 0;
  width: 58%;
  margin: 0 auto;
}

.lifemap_map {
  display: none;
}

.lifemap_map.is_active {
  display: block;
}

.lifemap_map img {
  width: 100%;
  display: block;
}

/* タブ */
.lifemap_tabs {
  padding: 1.8em 0 0;
}

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

.lifemap_tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.2em 1em;
  border: none;
  cursor: pointer;
  gap: 0.4em;
  transition: opacity 0.2s;
}

.lifemap_tab--shopping { background: #c9516c; }
.lifemap_tab--education { background: #7a171c; }
.lifemap_tab--medical  { background: #a38a77; }
.lifemap_tab--public   { background: #036eb7; }
.lifemap_tab--finance  { background: #ac718c; }
.lifemap_tab--park     { background: #0c7b5f; }

.lifemap_tab:not(.is_active) {
  filter: brightness(0.60);
}

.lifemap_tab.is_active {
  filter: brightness(1.2);
}

.lifemap_tab_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1;
}

.lifemap_tab_ja {
  font-size: 15px;
  letter-spacing: 0.06em;
  color: #fff;
  font-weight: 600;
  line-height: 1.3;
}

/* 施設リスト */
.lifemap_lists {
  padding: 2.5em 0 3.5em;
}

.lifemap_list {
  display: none;
}

.lifemap_list.is_active {
  display: block;
}

.lifemap_facility_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 3em;
}

.lifemap_facility_col {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lf_item {
  display: flex;
  align-items: center;
  padding: 0.5em 0;
  border-bottom: 1px solid #e8e8e8;
  font-size: 12px;
}

.lf_num {
  flex: 0 0 auto;
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 13px;
  color: #fff;
  letter-spacing: 0.03em;
  margin-right: 0.8em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2em;
  height: 2.2em;
  border-radius: 50%;
  background: var(--loc-navy);
  flex-shrink: 0;
}

[data-category="shopping"] .lf_num  { background: #c9516c; }
[data-category="education"] .lf_num  { background: #7a171c; }
[data-category="medical"] .lf_num    { background: #a38a77; }
[data-category="public"] .lf_num     { background: #036eb7; }
[data-category="finance"] .lf_num    { background: #ac718c; }
[data-category="park"] .lf_num       { background: #0c7b5f; }

[data-category="shopping"] .lf_dist b  { color: #c9516c; }
[data-category="education"] .lf_dist b  { color: #7a171c; }
[data-category="medical"] .lf_dist b    { color: #a38a77; }
[data-category="public"] .lf_dist b     { color: #036eb7; }
[data-category="finance"] .lf_dist b    { color: #ac718c; }
[data-category="park"] .lf_dist b       { color: #0c7b5f; }

.lf_name {
  flex: 1;
  letter-spacing: 0.03em;
  color: var(--loc-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lf_lead {
  flex: 0 1 3em;
  border-bottom: 1px dotted #bbb;
  margin: 0 0.6em 0.2em;
  min-width: 0.5em;
}

.lf_dist {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 11px;
  color: var(--loc-text-sub);
  letter-spacing: 0.02em;
}

.lf_dist b {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  color: var(--loc-navy);
}

.sp-br {
  display: none;
}

.lifemap_list_soon {
  text-align: center;
  color: var(--loc-text-sub);
  font-size: 13px;
  padding: 2em 0;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .lifemap_title_en {
    font-size: 3.2vw;
  }

  .lifemap_tab_ja {
    font-size: 1.35vw;
  }

  .lifemap_tab_en {
    font-size: 1.05vw;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  .lifemap_header {
    padding: 2.5em 0 1.5em;
  }

  .lifemap_title_en {
    font-size: 7vw;
    letter-spacing: 0.12em;
  }

  .lifemap_title_lead {
    font-size: 3.2vw;
  }

  .lifemap_tab_grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .lifemap_tab {
    padding: 1em 0.6em;
    gap: 0.3em;
  }

  .lifemap_tab_en {
    font-size: 2.5vw;
  }

  .lifemap_tab_ja {
    font-size: 3.2vw;
  }

  .lifemap_lists {
    padding: 1.5em 0 2em;
  }

  .lifemap_facility_grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .lf_item {
    font-size: 3vw;
    padding: 0.6em 0;
  }

  .lf_num {
    font-size: 3.5vw;
  }

  .lf_name {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .sp-br {
    display: inline;
  }

  .lf_lead {
    display: none;
  }

  .lf_dist {
    font-size: 2.8vw;
  }

  .lf_dist b {
    font-size: 4.5vw;
  }

  .lifemap_map_area {
    width: 94%;
  }
}


/*---------------------------
PUBLIC and CULTURE セクション
---------------------------*/
#publicFacilities {
  background: #fff;
  padding: 4em 0 1em;
}

#cultureFacilities {
  background: #fff;
  padding: 2em 0 4em;
}

/* ---- フィーチャー共通 ---- */
.pub_featured {
  display: flex;
  gap: 0;
  align-items: stretch;
  overflow: visible;
  border-radius: 4px;
  margin-bottom: 2.5em;
}

/* PUBLIC: 左＝大画像 */
.pub_featured_main {
  flex: 0 0 55%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.pub_featured_img {
  line-height: 0;
  overflow: hidden;
}

.pub_featured_main .pub_featured_img img {
  width: 100%;
  height: auto;
  display: block;
}

/* PUBLIC: 右＝テキスト＋第二本庁舎画像 */
.pub_featured_side {
  flex: 1;
  background: #fff;
  display: flex;
  flex-direction: column;
  padding: 2em 2.2em 0;
}

.pub_cat_en {
  font-family: "adobe-garamond-pro", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 52px;
  letter-spacing: 0.2em;
  color: #b1d9e9;
  line-height: 1;
  text-align: right;
  margin-bottom: 0.8em;
}

.pub_featured_side .pub_featured_info {
  background: var(--loc-bg-blue);
  padding: 1.6em 2em 1.6em calc(500px + 2em);
  margin-left: -500px;
  flex: 1;
  position: relative;
  z-index: 0;
}

.pub_featured_side .pub_featured_info::after {
  content: '';
  position: absolute;
  bottom: -200px;
  left: 0;
  right: 0;
  height: 200px;
  background: var(--loc-bg-blue);
}

.pub_featured_sub_img {
  line-height: 0;
  margin-top: auto;
  transform: translateY(50px) translateX(50px);
}

.pub_featured_sub_img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- PUBLIC グリッド ---- */
.pub_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  max-width: 44%;
  margin-left: 0;
  margin-right: auto;
  margin-top: 2em;
  transform: translateY(-100px) translateX(100px);
}

.pub_item {
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
}

.pub_img img {
  width: 100%;
  display: block;
  aspect-ratio: 5 / 3;
  object-fit: cover;
}

.pub_info {
  padding: 12px 14px;
}

/* ---- 共通テキスト ---- */
.pub_item_name {
  font-size: 17px;
  letter-spacing: 0.04em;
  color: var(--loc-navy);
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 4px;
}

.pub_item_dist {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 6px;
}

.pub_item_note {
  font-size: 11px;
  line-height: 1.7;
  color: var(--loc-text-sub);
}

/* ---- CULTURE フィーチャー ---- */
.pub_culture_left {
  flex: 0 0 48%;
  display: flex;
  flex-direction: column;
  padding: 2em 2.2em;
  background: transparent;
}

.pub_culture_left .pub_featured_img {
  line-height: 0;
  position: relative;
  z-index: 1;
}

.pub_culture_left .pub_featured_img img {
  width: 100%;
  height: auto;
  display: block;
}

.pub_culture_left .pub_featured_info {
  flex: 0 0 auto;
}

/* CULTURE 青座布団 */
.pub_culture_cushion {
  background: var(--loc-bg-blue);
  margin-left: calc(-2.2em - 20px);
  margin-right: 150px;
  margin-top: -80px;
  margin-bottom: -320px;
  padding: calc(90px + 1.6em) 2em 3em calc(20px + 2.2em);
  position: relative;
  z-index: 0;
}

.pub_item_ref {
  font-size: 10px;
  color: var(--loc-text-sub);
  margin-top: 1.2em;
  line-height: 1.6;
}

.pub_culture_right {
  flex: 1;
}

.pub_culture_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 6px;
  row-gap: 1.6em;
  height: 100%;
}

.pub_culture_item {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
}

.pub_culture_item .pub_img {
  line-height: 0;
}

.pub_culture_item .pub_img img {
  width: 100%;
  height: auto;
  display: block;
}

.pub_culture_info {
  padding: 8px 12px;
  flex: 0 0 auto;
}

/* 川口市役所 説明文のみ20px下げ */
#publicFacilities .pub_featured_info .pub_item_note {
  margin-top: 20px;
}

/* PC時：施設名・青座布団・各種調整 */
@media screen and (min-width: 769px) {

  /* 施設名 20px */
  #publicFacilities .pub_featured_info .pub_item_name {
    font-size: 22px;
  }
  #cultureFacilities .pub_culture_cushion .pub_item_name {
    font-size: 22px;
  }
  #cultureFacilities .pub_culture_item:first-child .pub_item_name {
    font-size: 17px;
    letter-spacing: 0;
  }
  .park_featured_info .park_item_name {
    font-size: 22px;
  }

  /* 川口市役所 所要時間の行間を狭める */
  #publicFacilities .pub_featured_info .pub_item_dist {
    line-height: 1.3;
    margin-bottom: 2px;
  }

  /* 川口市役所 青座布団：左辺を計240px削る（内容の位置は維持）・下辺を30px削る・上辺を15px広げる */
  #publicFacilities .pub_featured_side .pub_featured_info {
    margin-left: -260px;
    padding-left: calc(260px + 2em);
  }
  #publicFacilities .pub_featured_side .pub_featured_info::before {
    content: '';
    position: absolute;
    top: -15px;
    left: 0;
    right: 0;
    height: 15px;
    background: var(--loc-bg-blue);
  }
  #publicFacilities .pub_featured_side .pub_featured_info::after {
    height: 170px;
    bottom: -170px;
  }

  /* 施設名 22px：教育・医療 */
  .edu_featured_info .edu_item_name {
    font-size: 22px;
  }
  .med_featured_info .med_item_name {
    font-size: 22px;
  }
  .med_featured_sub_info .med_item_name {
    font-size: 22px;
  }
  .med_sunrise_info .med_item_name {
    font-size: 22px;
  }

  /* 川口市美術館 青座布団：上辺20px削る・右辺20px広げる（他要素に影響なし） */
  .pub_culture_cushion {
    clip-path: inset(20px -20px 0 0);
  }

  /* PARKセクション 帯の上余白を広げる
     （margin-top は前セクションの margin-bottom: -320px の影響で無効になるため
       ::before で確実にスペースブロックを挿入） */
  #parkSection::before {
    content: '';
    display: block;
    height: 4em;
  }

  /* PARKセクション グリッド下余白を広げる（translateY(40px)分を考慮して底上げ） */
  #parkFacilities {
    padding-bottom: 8em;
  }

  /* EDUCATIONセクション 帯の上余白を広げる（他セクションに影響なし） */
  #educationSection {
    padding-top: 3em;
  }

  /* 埼玉県済生会川口総合病院 ブロックを左に20px移動（他要素に影響なし） */
  #medicalFacilities .med_featured_sub {
    position: relative;
    left: -20px;
  }
}

/* PUBLIC テキスト右辺を青座布団右辺に揃える・15px下げ */
#publicFacilities .pub_cat_en {
  margin-right: -0.2em;
  transform: translateY(15px);
}

/* CULTURE テキスト文頭を美術館画像左辺に揃える */
#cultureFacilities .pub_cat_en {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}

/* 川口市役所 説明ブロック 10px下げ */
#publicFacilities .pub_featured_info {
  transform: translateY(10px);
}

/* 第一本庁舎 画像 25px下げ */
#publicFacilities .pub_featured_main {
  overflow: visible;
}
#publicFacilities .pub_featured_main .pub_featured_img {
  padding-top: 25px;
}

/* pub_grid 画像を少し大きく */
#publicFacilities .pub_grid .pub_img img {
  transform: scale(1.18);
}

/* Tab */
@media screen and (max-width: 1170px) {
  .pub_cat_en {
    font-size: 4.5vw;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #publicFacilities,
  #cultureFacilities {
    padding: 2.5em 0;
  }

  .pub_featured {
    flex-direction: column;
  }

  .pub_featured_main {
    flex: none;
    width: 100%;
    height: 56vw;
  }

  .pub_featured_side {
    padding: 1.4em 1.4em 0;
  }

  .pub_cat_en {
    font-size: 8vw;
    text-align: center;
  }

  .pub_grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 10px;
    margin-top: 1.2em;
    transform: none;
  }

  .pub_featured--culture {
    flex-direction: column;
  }

  .pub_culture_left {
    flex: none;
    padding: 1.4em 1.4em;
  }

  .pub_culture_left .pub_featured_img {
    min-height: 52vw;
  }

  .pub_culture_right {
    min-height: 60vw;
  }

  .pub_culture_grid {
    column-gap: 4px;
    row-gap: 1.4em;
  }

  .pub_culture_info {
    padding: 6px 8px;
  }

  .pub_item_name {
    font-size: 4vw;
  }

  .pub_culture_grid .pub_item_name {
    font-size: 3.5vw;
  }

  .pub_grid .pub_item_name {
    font-size: 3.5vw;
  }

  .pub_item_dist {
    font-size: 3vw;
  }

  .pub_item_note {
    font-size: 2.8vw;
  }
}

/* SP - PUBLIC section: 見出し→第一→テキスト→第二→グリッドの順 / 美術館と同横幅 */
@media only screen and (max-width: 768px) {
  #publicFacilities .pub_featured_side {
    display: contents;
  }

  #publicFacilities .pub_cat_en {
    order: -1;
    padding: 0 1.4em 0.4em;
    box-sizing: border-box;
    width: 100%;
    margin-right: 0;
    transform: none;
    text-align: center;
  }

  #publicFacilities .pub_featured_main {
    order: 1;
    height: auto;
    padding: 0 1.4em;
    box-sizing: border-box;
  }

  #publicFacilities .pub_featured_info {
    order: 2;
    margin: 0 1.4em;
    width: calc(100% - 2.8em);
    padding: 1.2em 1.4em 1.4em;
    box-sizing: border-box;
    flex: none;
    position: static;
    transform: none; /* PC用 translateY(10px) をリセット */
  }

  /* PC用 padding-top: 25px をリセット（画像上の余白を除去） */
  #publicFacilities .pub_featured_main .pub_featured_img {
    padding-top: 0;
  }

  #publicFacilities .pub_featured_sub_img .cap_n.cap_r {
    right: 1.4em;
  }

  #publicFacilities .pub_featured_info::after {
    display: none;
  }

  #publicFacilities .pub_featured_sub_img {
    order: 3;
    transform: none;
    width: 100%;
    margin-top: 0;
    padding: 0 1.4em;
    box-sizing: border-box;
  }

  #publicFacilities .pub_featured_info .pub_item_name {
    font-size: 22px;
  }
}

/* SP - CULTURE section: 青座布団をリセット・グリッドを重ならないよう調整 */
@media only screen and (max-width: 768px) {
  #cultureFacilities .pub_cat_en {
    text-align: center;
  }

  #cultureFacilities .pub_culture_cushion {
    margin: 0;
    padding: 1.4em;
    box-sizing: border-box;
    position: static;
  }

  #cultureFacilities .pub_culture_right {
    min-height: 0;
  }

  #cultureFacilities .pub_culture_cushion .pub_item_name {
    font-size: 22px;
  }
}


/*---------------------------
PARK セクション
---------------------------*/
#parkFacilities {
  background: #fff;
  padding: 4em 0;
}

.park_featured {
  display: flex;
  gap: 0;
  align-items: stretch;
  overflow: visible;
  border-radius: 4px;
  margin-bottom: 2.5em;
}

.park_featured_main {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.park_featured_img {
  line-height: 0;
}

.park_featured_img img {
  width: 100%;
  height: auto;
  display: block;
}

.park_img_label {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--loc-navy);
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.1em;
  padding: 5px 14px;
  line-height: 1.4;
  z-index: 2;
}

.park_featured_side {
  flex: 1;
  background: transparent;
  display: flex;
  flex-direction: column;
  transform: translateY(50px) translateX(-30px);
  position: relative;
  z-index: 0;
}

.park_featured_side::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 25px;
  bottom: 20px;
  background: var(--loc-bg-blue);
  z-index: -1;
}

.park_featured_info {
  flex: 0 0 auto;
  padding: 2.2em 2.4em 1.8em calc(35% - 130px);
  transform: translateX(20px);
}

.park_featured_sub_img {
  flex: 1;
  overflow: hidden;
  line-height: 0;
  min-height: 180px;
  max-width: 65%;
  margin-left: auto;
  transform: translateX(-130px);
}

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

.park_item_name {
  font-size: 20px;
  letter-spacing: 0.04em;
  color: var(--loc-navy);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 4px;
}

.park_item_dist {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 10px;
}

.park_item_note {
  font-size: 11px;
  line-height: 1.7;
  color: var(--loc-text-sub);
}

.park_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3em;
  margin-top: 2em;
  transform: translateY(40px);
}

.park_item {
  overflow: hidden;
}

.park_img img {
  width: 100%;
  display: block;
  aspect-ratio: 5 / 3;
  object-fit: cover;
}

.park_info {
  padding: 12px 0;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .park_item_name {
    font-size: 1.6vw;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #parkFacilities {
    padding: 2.5em 0;
  }

  .park_featured {
    flex-direction: column;
  }

  .park_featured_main {
    flex: none;
    width: 100%;
    height: 56vw;
  }

  .park_featured_info {
    padding: 1.4em 1.4em 1.2em;
  }

  .park_featured_sub_img {
    min-height: 0;
  }

  .park_item_name {
    font-size: 4.5vw;
  }

  .park_item_dist {
    font-size: 3vw;
  }

  .park_item_note {
    font-size: 2.8vw;
  }

  .park_grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 10px;
    margin-top: 1.2em;
    transform: none;
  }
}

/* SP - PARK section: 美術館・市役所と同横幅・青座布団付きテキスト */
@media only screen and (max-width: 768px) {
  #parkFacilities .park_featured_side {
    display: contents;
  }

  #parkFacilities .park_featured_main {
    height: auto;
    padding: 0 1.4em;
    box-sizing: border-box;
  }

  #parkFacilities .park_featured_info {
    transform: none;
    margin: 0 1.4em;
    width: calc(100% - 2.8em);
    padding: 1.2em 1.4em 1.4em;
    background: var(--loc-bg-blue);
    box-sizing: border-box;
    flex: none;
    position: static;
  }

  #parkFacilities .park_featured_sub_img {
    transform: none;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    margin-left: 0;
    flex: none;
    height: auto;
    padding: 0 1.4em;
    box-sizing: border-box;
  }

  #parkFacilities .park_featured_sub_img .cap_n.cap_r {
    right: 1.4em;
  }

  #parkFacilities .park_featured_sub_img img {
    height: auto;
  }

  #parkFacilities .park_grid {
    transform: none;
  }

  #parkFacilities .park_grid .park_item_name {
    font-size: 3.5vw;
  }

  .park_featured_info .park_item_name {
    font-size: 22px;
  }
}


/*---------------------------
EDUCATION セクション
---------------------------*/
#educationFacilities {
  background: #fff;
  padding: 4em 0 2em;
}

/* フィーチャー：左画像＋右テキスト */
.edu_featured {
  display: flex;
  gap: 4em;
  align-items: center;
  margin-bottom: 3.5em;
}

.edu_featured_img {
  flex: 0 0 50%;
  overflow: hidden;
  line-height: 0;
}

.edu_featured_img img {
  width: 100%;
  height: auto;
  display: block;
}

.edu_featured_info {
  flex: 1;
}

/* グリッド */
.edu_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3em;
}

.edu_img {
  line-height: 0;
  overflow: hidden;
  margin-bottom: 1em;
}

.edu_img img {
  width: 100%;
  display: block;
  aspect-ratio: 5 / 3;
  object-fit: cover;
}

.edu_item_name {
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--loc-navy);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 4px;
}

.edu_item_dist {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 8px;
}

.edu_item_note {
  font-size: 11px;
  line-height: 1.8;
  color: var(--loc-text-sub);
}

/* 子育て支援制度 */
#childcareSupport {
  background: #fff;
  padding: 1em 0 4em;
}

.childcare_wrap {
  background: none;
  border-radius: 0;
  padding: 0;
}

.childcare_ttl {
  font-size: 18px;
  letter-spacing: 0.05em;
  color: var(--loc-navy);
  text-align: center;
  margin-bottom: 1.5em;
  font-weight: 600;
}

.childcare_img {
  display: block;
  width: 100%;
  margin: 0 auto;
}

.childcare_img--sp {
  display: none;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .edu_item_name {
    font-size: 1.5vw;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #educationFacilities {
    padding: 2.5em 0 1.5em;
  }

  .edu_featured {
    flex-direction: column;
    gap: 1.5em;
  }

  .edu_featured_img {
    flex: none;
    width: 100%;
  }

  .edu_featured_info {
    width: 100%;
    text-align: left;
  }

  .edu_grid {
    grid-template-columns: 1fr;
    gap: 2.5em;
  }

  .edu_item_name {
    font-size: 3.8vw;
  }

  .edu_grid .edu_item_name {
    font-size: 3.8vw;
  }

  .edu_item_dist {
    font-size: 3.5vw;
  }

  .edu_item_note {
    font-size: 3vw;
  }

  .edu_featured_info .edu_item_name {
    font-size: 22px;
  }

  #childcareSupport {
    padding: 1em 0 2.5em;
  }

  .childcare_wrap {
    background: none;
    border-radius: 0;
    padding: 0;
  }

  .childcare_img--pc {
    display: none;
  }

  .childcare_img--sp {
    display: block;
    width: 100%;
    margin: 0 auto;
  }
}


/*---------------------------
MEDICAL セクション
---------------------------*/
#medicalFacilities {
  background: #fff;
  padding: 4em 0;
}

.med_featured {
  display: flex;
  gap: 3em;
  align-items: flex-start;
  margin-bottom: 3em;
}

.med_featured_main {
  flex: 0 0 49%;
  overflow: hidden;
  line-height: 0;
}

.med_featured_img img {
  width: 100%;
  height: auto;
  display: block;
}

.med_featured_side {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2em;
}

.med_featured_sub {
  display: flex;
  gap: 1.2em;
  align-items: flex-start;
}

.med_featured_sub_img {
  flex: 0 0 44%;
  overflow: hidden;
  line-height: 0;
}

.med_featured_sub_img img {
  width: 100%;
  height: auto;
  display: block;
}

.med_featured_sub_info {
  flex: 1;
}

.med_item_name {
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--loc-navy);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 4px;
}

.med_item_name--narrow {
  letter-spacing: 0;
}

.med_item_dist {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--loc-text-sub);
  margin-bottom: 8px;
}

.med_item_note {
  font-size: 11px;
  line-height: 1.8;
  color: var(--loc-text-sub);
}

/* 下段ラッパー */
.med_lower {
  position: relative;
  display: flex;
  gap: 3em;
  align-items: flex-start;
}

/* 左：サンライズ中青木医療モール */
.med_sunrise {
  flex: 0 0 49%;
  position: relative;
  z-index: 1;
  transform: translateY(-35px); /* 画像・テキストブロックを35px上げ（レイアウト影響なし） */
}

.med_sunrise_img_area {
  position: relative;
  padding-left: 20px;
  padding-bottom: 20px;
  margin-bottom: 1.2em;
  transform: scale(0.80);
  transform-origin: top right;
}

/* 青座布団：med_lower基準で絶対配置 */
.med_sunrise_pad {
  position: absolute;
  top: 255px;
  left: 0;
  bottom: 0;
  width: calc(47% - 15px); /* 右辺を60px拡張（+25px+20px+10px+10px-5px） */
  background: var(--loc-bg-blue);
  z-index: 0;
}

.med_sunrise_imgbox {
  position: relative;
  z-index: 1;
  margin-left: 20px;
  line-height: 0;
  overflow: hidden;
  transform: translateY(44px);
}

.med_sunrise_imgbox img {
  width: 100%;
  display: block;
}

.med_sunrise_info {
  transform: translate(50px, -40px);
}

/* サンライズ クリニック一覧テーブル */
.sunrise_clinics {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 4px;
  margin-top: 0.8em;
  font-size: 11px;
}

.sunrise_name {
  background: rgba(255, 255, 255, 0.85);
  border: none;
  padding: 0.45em 0.8em;
  color: var(--loc-text);
  text-align: center;
  white-space: nowrap;
  width: 28%;
}

.sunrise_spec {
  padding: 0.45em 0.8em;
  color: var(--loc-text);
  line-height: 1.5;
}

/* サンライズ 左ボタン列＋右説明文レイアウト */
.sunrise_layout {
  display: flex;
  gap: 1.2em;
  align-items: flex-start;
  margin-top: 0.8em;
}

.sunrise_btn_col {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 30%;
}

.sunrise_btn {
  background: var(--loc-navy);
  color: #fff;
  text-align: center;
  padding: 0.6em 0.5em;
  font-size: 12px;
  margin: 0;
  line-height: 1.4;
}

.sunrise_desc {
  flex: 1;
  font-size: 11px;
  line-height: 1.8;
  color: var(--loc-text);
  margin: 0;
}

/* 右：グリッド（2×2） */
.med_grid {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(2, 44%);
  column-gap: 2em;
  row-gap: 2em;
  justify-content: start;
  position: relative;
  z-index: 1;
  transform: translateX(-15px);
}

.med_img {
  line-height: 0;
  overflow: hidden;
  margin-bottom: 0.8em;
}

.med_img img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* 川口工業総合病院 情報ブロック 40px下げ */
#medicalFacilities .med_featured_info {
  transform: translateY(40px) !important;
  margin-bottom: 3.5em;
}

/* 済生会ブロック 20px下げ */
#medicalFacilities .med_featured_sub {
  transform: translateY(20px) !important;
}

/* Tab */
@media screen and (max-width: 1170px) {
  .med_item_name {
    font-size: 1.4vw;
  }

  .med_featured_sub .med_item_name {
    font-size: 1.3vw;
  }
}

/* SP */
@media only screen and (max-width: 768px) {
  #medicalFacilities {
    padding: 2.5em 0;
  }

  .med_featured {
    flex-direction: column;
    gap: 1.5em;
  }

  .med_featured_main {
    flex: none;
    width: 100%;
  }

  .med_featured_sub {
    flex-direction: column;
    gap: 1.2em;
  }

  .med_featured_sub_img {
    flex: none;
    width: 100%;
  }

  .med_grid {
    flex: 0 0 100%;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5em;
    transform: none;
  }

  .med_lower {
    flex-direction: column;
    gap: 2em;
  }

  .med_sunrise {
    flex: none;
    width: 100%;
    transform: none; /* PC用のtranslateYをSPでリセット */
  }

  .med_sunrise_img_area {
    padding: 0;
    margin-bottom: 0;
    transform: none;
  }

  .med_sunrise_pad {
    display: none;
  }

  .med_sunrise_imgbox {
    margin-left: 0;
    transform: none;
  }

  .med_sunrise_info {
    background: var(--loc-bg-blue);
    padding: 1em 1.2em 1.5em;
    margin-bottom: 1.5em;
    transform: none;
  }

  .sunrise_layout {
    flex-direction: column;
    gap: 1em;
  }

  .sunrise_btn_col {
    flex: none;
    width: 100%;
    gap: 5px;
  }

  .sunrise_btn {
    font-size: 3vw;
    padding: 0.5em;
  }

  .sunrise_desc {
    font-size: 2.8vw;
    line-height: 1.7;
  }

  .med_item_name {
    font-size: 4vw;
  }

  .med_featured_sub .med_item_name {
    font-size: 4vw;
  }

  .med_grid .med_item_name {
    font-size: 3.5vw;
  }

  .med_item_name--narrow {
    letter-spacing: -0.08em;
  }

  .med_sunrise_info .med_item_name {
    font-size: 4vw;
  }

  .med_item_dist {
    font-size: 3vw;
  }

  .med_item_note {
    font-size: 2.8vw;
  }

  .med_featured_info .med_item_name,
  .med_featured_sub_info .med_item_name,
  .med_sunrise_info .med_item_name {
    font-size: 22px;
  }
}


/*---------------------------
フッター（location固有調整）
---------------------------*/
#location .footer_BtnLink {
  display: block;
  width: 100%;
  margin: 0;
  padding-top: 4em;
  gap: 0;
}

#location .footer_BtnLink li {
  width: 100%;
  margin: 0;
}

#location .footer_BtnLink .btn_entryLink {
  width: 100%;
}

#location .footer_BtnLink .btn_entryLink a {
  border-radius: 0;
  background: linear-gradient(90deg, #e2d2aa 0%, #d8c18f 42%, #f3ecdc 100%);
  color: #0f3f7c !important;
  border: 0;
}

#location .footer_BtnLink .click_badge {
  background-color: #0f3f7c;
  font-style: normal;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-weight: bold;
}

/* sp */
@media only screen and (max-width: 768px) {
  #location .footer_BtnLink {
    padding-top: 2.5em;
  }
}
