@charset "UTF-8";
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/* 変数の定義
--------------------------------------------------*/
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/* 色の定義
--------------------------------------------------*/
/* フォントの定義
--------------------------------------------------*/
html,
body,
ul,
ol,
dl,
li,
dt,
dd,
a,
p,
div,
img,
svg,
table,
tr,
th,
td,
figure {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #1C1C1C;
  font-feature-settings: "palt";
}

body,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
img,
svg,
a,
table,
tr,
th,
td,
figure {
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  body,
  ul,
  ol,
  dl,
  li,
  dt,
  dd,
  p,
  div,
  img,
  svg,
  a,
  table,
  tr,
  th,
  td,
  figure {
    font-size: 1.4rem;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  letter-spacing: 0.04em;
  line-height: 1.5;
  font-weight: 800;
  font-feature-settings: "palt";
}

.en {
  font-family: "Inter Tight", sans-serif;
  font-style: italic;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
  display: inline-block;
}

/* 拠点紹介
--------------------------------------------------*/
#locations {
  padding: 80px 0 120px;
}
@media screen and (max-width: 999px) {
  #locations {
    padding: 60px 0 80px;
  }
}

/* ページ内リンク
--------------------------------------------------*/
#pagelink {
  padding-bottom: 80px;
}
@media screen and (max-width: 999px) {
  #pagelink {
    padding-bottom: 50px;
  }
}
#pagelink .pagelink_item {
  flex: 0 0 240px;
}
@media screen and (max-width: 768px) {
  #pagelink .pagelink_item {
    flex: 0 0 calc(50% - 10px);
    max-width: none;
  }
}

/* 拠点紹介一覧
--------------------------------------------------*/
.locations_list {
  display: flex;
  flex-direction: column;
  gap: 60px;
}
@media screen and (max-width: 999px) {
  .locations_list {
    gap: 40px;
  }
}
.locations_list .locations_card .locations_card_inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: 50px;
  background-color: #fff;
  border-radius: 8px;
}
@media screen and (max-width: 999px) {
  .locations_list .locations_card .locations_card_inner {
    padding: 40px;
  }
}
@media screen and (max-width: 768px) {
  .locations_list .locations_card .locations_card_inner {
    padding: 30px 20px;
    gap: 25px;
  }
}
.locations_list .locations_card .locations_card_inner .locations_top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
  align-items: start;
  gap: 30px;
}
@media screen and (max-width: 999px) {
  .locations_list .locations_card .locations_card_inner .locations_top {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 768px) {
  .locations_list .locations_card .locations_card_inner .locations_top {
    gap: 20px;
  }
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .en_label {
  margin: 0 0 10px;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .en_label .en {
  font-weight: 800;
  font-size: clamp(2.4rem, 2.4vw, 3.2rem);
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .ttl {
  margin: 0;
  font-size: clamp(3.2rem, 3.2vw, 4rem);
  line-height: 1.4;
  font-weight: 700;
  padding-bottom: 15px;
  border-bottom: 1px solid #DFDFDF;
}
@media screen and (max-width: 999px) {
  .locations_list .locations_card .locations_card_inner .locations_top .locations_head .ttl {
    font-size: clamp(2.4rem, 6.15vw, 3.2rem);
  }
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_meta {
  margin: 25px 0;
}
@media screen and (max-width: 768px) {
  .locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_meta {
    margin: 20px 0;
  }
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_meta .locations_addr {
  margin-bottom: 10px;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_access_txt {
  margin-bottom: 4px;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_map_link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 1.4rem;
  color: #CE1B21;
  text-decoration: underline;
  transition: opacity 0.3s ease;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_map_link:hover {
  opacity: 0.6;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_head .locations_map_link .locations_map_ico {
  flex-shrink: 0;
  width: 14px;
  height: 17px;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='17' viewBox='0 0 14 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.18498 7.9015C8.51266 7.58566 8.6765 7.20477 8.6765 6.75882C8.6765 6.31287 8.51266 5.9319 8.18498 5.61592C7.85746 5.30008 7.46246 5.14217 7 5.14217C6.53754 5.14217 6.14254 5.30008 5.81502 5.61592C5.48734 5.9319 5.3235 6.31287 5.3235 6.75882C5.3235 7.20477 5.48734 7.58566 5.81502 7.9015C6.14254 8.21733 6.53754 8.37525 7 8.37525C7.46246 8.37525 7.85746 8.21733 8.18498 7.9015ZM7 15.215C8.8143 13.6488 10.2027 12.1465 11.1652 10.7082C12.1277 9.26991 12.6089 8.01015 12.6089 6.92896C12.6089 5.29867 12.0718 3.95842 10.9975 2.90823C9.92331 1.85804 8.5908 1.33294 7 1.33294C5.4092 1.33294 4.07669 1.85804 3.00245 2.90823C1.92821 3.95842 1.3911 5.29867 1.3911 6.92896C1.3911 8.01015 1.87234 9.26991 2.83482 10.7082C3.79731 12.1465 5.1857 13.6488 7 15.215ZM7 17C4.66605 15.0499 2.91589 13.235 1.74954 11.5553C0.583179 9.87557 0 8.33344 0 6.92896C0 4.86523 0.692225 3.19448 2.07668 1.91669C3.46128 0.638895 5.10239 0 7 0C8.89761 0 10.5387 0.638895 11.9233 1.91669C13.3078 3.19448 14 4.86523 14 6.92896C14 8.33344 13.4168 9.87557 12.2505 11.5553C11.0841 13.235 9.33395 15.0499 7 17Z' fill='%23D72229'/%3E%3C/svg%3E");
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_media {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  /* lg以下：カードの余白（パディング）内で幅いっぱい */
}
@media screen and (max-width: 999px) {
  .locations_list .locations_card .locations_card_inner .locations_top .locations_media {
    width: 100%;
    max-width: none;
  }
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_video {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16/9;
  background-color: #000;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_video iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.locations_list .locations_card .locations_card_inner .locations_top {
  /* YouTube の代わりに1枚だけ出す拠点用（例：海外） */
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_media_photo {
  margin: 0;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: #f0f0f0;
}
.locations_list .locations_card .locations_card_inner .locations_top .locations_media_photo img {
  display: block;
  width: 100%;
  height: auto;
}
.locations_list .locations_card .locations_card_inner .locations_gallery_wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}
.locations_list .locations_card .locations_card_inner .locations_gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
@media screen and (max-width: 999px) {
  .locations_list .locations_card .locations_card_inner .locations_gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 768px) {
  .locations_list .locations_card .locations_card_inner .locations_gallery {
    gap: 10px;
  }
}
.locations_list .locations_card .locations_card_inner .locations_gallery_item {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 8px;
  overflow: hidden;
  cursor: zoom-in;
  background: none;
  aspect-ratio: 16/10;
}
@media screen and (max-width: 768px) {
  .locations_list .locations_card .locations_card_inner .locations_gallery_item {
    border-radius: 5px;
  }
}
.locations_list .locations_card .locations_card_inner .locations_gallery_item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
}
.locations_list .locations_card .locations_card_inner .locations_gallery_item:hover img {
  transform: scale(1.1);
}
.locations_list .locations_card .locations_card_inner .locations_gallery_zoom {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 1.4rem;
  font-weight: 500;
  color: #888484;
}
@media screen and (max-width: 449px) {
  .locations_list .locations_card .locations_card_inner .locations_gallery_zoom {
    font-size: 1.2rem;
  }
}
.locations_list .locations_card .locations_card_inner .locations_gallery_zoom .locations_gallery_zoom_ico {
  flex-shrink: 0;
  display: block;
  color: #888484;
  width: 14px;
  height: 14px;
}
.locations_list .locations_card .locations_card_inner .locations_gallery_zoom .locations_gallery_zoom_ico path {
  fill: currentColor;
}

/* 拠点ギャラリー拡大（locations.html のみ #js-locations-lightbox） */
.locations_lightbox_sr_only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.locations_lightbox {
  position: fixed;
  inset: 0;
  /* header は 9999。FAQ モーダルと同程度で最前面に */
  z-index: 10050;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 40px);
  box-sizing: border-box;
}
.locations_lightbox[hidden] {
  display: none !important;
}
@media screen and (max-width: 999px) {
  .locations_lightbox {
    padding: max(12px, env(safe-area-inset-top, 0)) max(16px, env(safe-area-inset-right, 0)) max(12px, env(safe-area-inset-bottom, 0)) max(16px, env(safe-area-inset-left, 0));
  }
}

.locations_lightbox_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.45);
  cursor: pointer;
}

/* 閉じる・カルーセル・分数は faq モーダルに準拠。白いシェルは付けない */
.locations_lightbox_dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: min(96vw, 1000px);
  max-height: min(90dvh, 90vh, 720px);
  width: 100%;
  box-sizing: border-box;
  background: none;
  overflow: visible;
}
@media screen and (max-width: 999px) {
  .locations_lightbox_dialog {
    max-width: min(520px, 100vw - 32px);
  }
}

.locations_lightbox_close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(to right, #BA0F15, #E72A31);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
@media screen and (max-width: 999px) {
  .locations_lightbox_close {
    width: 32px;
    height: 32px;
    font-size: 1.6rem;
    top: -10px;
    right: -10px;
  }
}
.locations_lightbox_close:hover {
  opacity: 0.8;
}

.locations_lightbox_view {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 0;
  width: 100%;
}

/* PC 左右ナビの基準（写真ブロックのみ）。display:contents 由来のズレを避ける */
.locations_lightbox_image_stage {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  width: 100%;
}

.locations_lightbox_frame {
  width: 100%;
  max-height: min(70dvh, 70vh, 560px);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}
@media screen and (max-width: 999px) {
  .locations_lightbox_frame {
    max-height: min(58dvh, 58svh, 520px);
  }
}

.locations_lightbox_img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* SP：フッターに「前へ | 1/n | 次へ」／PC：display:contents でナビを左右固定（reality_faq_modal_bar と同様） */
@media screen and (max-width: 999px) {
  .locations_lightbox_bar {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-shrink: 0;
    padding-top: 8px;
  }
}
@media screen and (min-width: 1000px) {
  .locations_lightbox_bar {
    display: contents;
  }
}
.locations_lightbox_bar[hidden] {
  display: none !important;
}

.locations_lightbox_nav {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #3C3435;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.locations_lightbox_nav:hover {
  opacity: 0.8;
}
.locations_lightbox_nav span {
  display: block;
  width: 16px;
  height: 12px;
  position: relative;
}
@media screen and (max-width: 999px) {
  .locations_lightbox_nav span {
    width: 12px;
    height: 9px;
  }
}
.locations_lightbox_nav span::after {
  content: "";
  position: absolute;
  inset: 0;
  -webkit-mask: var(--arrow) no-repeat center/contain;
  mask: var(--arrow) no-repeat center/contain;
  background: #fff;
  transform-origin: center center;
}
.locations_lightbox_nav {
  /* PC：写真エリアの縦中央・左右（.locations_lightbox_image_stage 基準） */
}
.locations_lightbox_nav--overlay {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}
.locations_lightbox_nav--overlay.locations_lightbox_nav--prev {
  left: -26px;
}
.locations_lightbox_nav--overlay.locations_lightbox_nav--next {
  right: -26px;
}
.locations_lightbox_nav {
  /* SP：バー内の静的配置 */
}
@media screen and (max-width: 999px) {
  .locations_lightbox_nav--bar {
    position: static;
    top: auto;
    transform: none;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
  }
}
.locations_lightbox_nav--prev span::after {
  transform: rotate(180deg);
}
.locations_lightbox_nav--next span::after {
  transform: rotate(0deg);
}

.locations_lightbox_fraction {
  margin: 0;
  flex-shrink: 0;
  color: #fff;
  line-height: 1;
  text-align: center;
}
@media screen and (min-width: 1000px) {
  .locations_lightbox_fraction {
    padding-top: 10px;
  }
}
@media screen and (max-width: 999px) {
  .locations_lightbox_fraction {
    flex: 1;
    min-width: 0;
    padding: 0;
    border-top: none;
  }
}
.locations_lightbox_fraction .en {
  font-size: 1.4rem;
  font-weight: 400;
}
@media screen and (max-width: 999px) {
  .locations_lightbox_fraction .en {
    font-size: 1.2rem;
  }
}

.locations_lightbox_fraction_sep {
  margin: 0 0.1em;
}/*# sourceMappingURL=locations.css.map */