@charset "UTF-8";
.page_head {
  padding: 150px 0 58px;
  background-color: #0e1721;
  color: #ffffff;
}

.page_head_inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
}

.breadcrumb {
  font-size: 12px;
  letter-spacing: 0.06em;
}

.breadcrumb_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb_item {
  color: #b9c4cb;
}

.breadcrumb_item[aria-current=page] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 32em;
}

.breadcrumb_item + .breadcrumb_item::before {
  content: "/";
  margin: 0 10px;
  color: rgba(255, 255, 255, 0.35);
}

.breadcrumb_link {
  color: #b9c4cb;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.breadcrumb_link:hover, .breadcrumb_link:focus-visible {
  color: #dd9a33;
}

.page_head_eyebrow {
  margin-top: 34px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.26em;
  color: #dd9a33;
}

.page_head_eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  margin-right: 12px;
  vertical-align: 4px;
  background-color: #dd9a33;
}

.page_head_title {
  margin-top: 14px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.page_head_lead {
  margin-top: 16px;
  font-size: 15px;
  line-height: 2.1;
  color: #b9c4cb;
}

.archive {
  padding: 72px 0 110px;
  background-color: #f5f3ec;
}

.archive_inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 40px;
}

.archive_intro {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  margin-bottom: 48px;
  padding: 28px;
  background-color: #ffffff;
  border-radius: 12px;
  -webkit-box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
  box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
}

.archive_intro_photo {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 3px solid #ebe8dd;
}

.archive_intro_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 17px;
  font-weight: 700;
  color: #33544a;
}

.archive_intro_text {
  margin-top: 8px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.archive_list {
  border-top: 1px solid #d9d5c7;
}

.archive_item {
  border-bottom: 1px solid #d9d5c7;
}

.archive_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 28px;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  padding: 26px 8px;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}

.archive_link:hover, .archive_link:focus-visible {
  background-color: rgba(221, 154, 51, 0.07);
}

.archive_link:hover .archive_title, .archive_link:focus-visible .archive_title {
  color: #33544a;
}

.archive_link:hover .archive_thumb img {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}

.archive_thumb {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 168px;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 8px;
  background-color: #ebe8dd;
}

.archive_thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: -webkit-transform 0.6s;
  transition: -webkit-transform 0.6s;
  transition: transform 0.6s;
  transition: transform 0.6s, -webkit-transform 0.6s;
}

.archive_thumb_none {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #c9c3b0;
}

.archive_body {
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  min-width: 0;
}

.archive_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: #59615d;
}

.archive_cat {
  padding: 1px 12px;
  border: 1px solid #33544a;
  border-radius: 999px;
  color: #33544a;
  font-size: 11px;
}

.archive_title {
  margin-top: 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.archive_excerpt {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.9;
  color: #59615d;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.archive_maruko .archive_thumb {
  border-radius: 16px;
}

.archive_maruko .archive_cat {
  border-color: rgba(221, 154, 51, 0.8);
  color: #a8721f;
}

.archive_maruko .archive_title {
  font-weight: 500;
}

.archive_empty {
  padding: 64px 24px;
  border: 1px dashed #d9d5c7;
  border-radius: 12px;
  text-align: center;
  color: #59615d;
}

.archive_empty_text {
  font-size: 15px;
  line-height: 2;
}

.archive_empty_link {
  margin-top: 20px;
}

.pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  margin-top: 52px;
}

.pagination_link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid #d9d5c7;
  border-radius: 50%;
  font-size: 14px;
  color: #59615d;
  -webkit-transition: border-color 0.3s, color 0.3s, background-color 0.3s;
  transition: border-color 0.3s, color 0.3s, background-color 0.3s;
}

.pagination_link:hover, .pagination_link:focus-visible {
  border-color: #dd9a33;
  color: #242b2a;
}

.pagination_link[aria-current=page] {
  background-color: #33544a;
  border-color: #33544a;
  color: #ffffff;
  font-weight: 700;
}

.article {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.article_inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 40px;
}

.article_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  letter-spacing: 0.08em;
  color: #59615d;
}

.article_cat {
  padding: 1px 14px;
  border: 1px solid #33544a;
  border-radius: 999px;
  color: #33544a;
  font-size: 12px;
}

.article_title {
  margin-top: 18px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.7;
}

.article_body .profile_relate figure,
.article_body .profile_feed figure,
.article_body .profile_cast figure,
.article_body .profile_links figure {
  margin: 0;
}

.article_body .profile_relate figure img,
.article_body .profile_feed figure img,
.article_body .profile_cast figure img,
.article_body .profile_links figure img {
  border-radius: 0;
}

.article_body .profile_relate p,
.article_body .profile_feed p,
.article_body .profile_cast p,
.article_body .profile_links p {
  margin-top: 0;
}

.article_body .profile_relate ul,
.article_body .profile_relate ol,
.article_body .profile_feed ul,
.article_body .profile_feed ol,
.article_body .profile_cast ul,
.article_body .profile_cast ol,
.article_body .profile_links ul,
.article_body .profile_links ol {
  margin-top: 0;
  padding-left: 0;
  list-style: none;
}

.mv-mod-h2 {
  margin-top: 2.6em;
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.mv-mod-table {
  margin-top: 1.8em;
  overflow-x: auto;
}

.mv-mod-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.9;
}

.mv-mod-table th,
.mv-mod-table td {
  padding: 12px 16px;
  border: 1px solid #d9d5c7;
  text-align: left;
  vertical-align: top;
}

.mv-mod-table th {
  width: 30%;
  min-width: 7em;
  background-color: #ebe8dd;
  font-weight: 700;
}

.mv-mod-table td {
  background-color: #ffffff;
}

.mv-mod-table p {
  margin-top: 0;
  font-size: inherit;
  line-height: inherit;
}

@media screen and (max-width: 640px) {
  .mv-mod-table th,
  .mv-mod-table td {
    display: block;
    width: auto;
    border-bottom: none;
  }
  .mv-mod-table tr:last-child td {
    border-bottom: 1px solid #d9d5c7;
  }
}
.maker_related {
  margin-top: 60px;
}

.maker_related .section_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 20px;
}

.maker_related .maker_grid {
  -ms-grid-columns: 1fr [4];
  grid-template-columns: repeat(4, 1fr);
  margin-top: 24px;
}

@media (max-width: 900px) {
  .maker_related .maker_grid {
    -ms-grid-columns: 1fr [3];
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 640px) {
  .maker_related .maker_grid {
    -ms-grid-columns: 1fr [2];
    grid-template-columns: repeat(2, 1fr);
  }
}
.article_lead {
  margin-top: 22px;
  padding: 20px 24px;
  background-color: #ebe8dd;
  border-left: 3px solid #dd9a33;
  border-radius: 0 8px 8px 0;
  font-size: 15px;
  line-height: 2.1;
  color: #59615d;
}

.article_body {
  margin-top: 40px;
}

.article_body p {
  margin-top: 1.8em;
  font-size: 16px;
  line-height: 2.1;
}

.article_body h2 {
  margin-top: 2.6em;
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.article_body figure {
  margin: 2.4em 0 0;
}

.article_body figure img {
  width: 100%;
  border-radius: 8px;
}

.article_body figcaption {
  margin-top: 12px;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #59615d;
  text-align: right;
}

.article_body ul,
.article_body ol {
  margin-top: 1.4em;
  padding-left: 1.4em;
  font-size: 15px;
  line-height: 2;
}

.article_body li + li {
  margin-top: 0.5em;
}

.article_maruko .article_title {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック", sans-serif;
  font-weight: 700;
  line-height: 1.9;
}

.article_maruko .article_cat {
  border-color: rgba(221, 154, 51, 0.8);
  color: #a8721f;
}

.article_maruko .article_lead {
  border: 1px dashed rgba(221, 154, 51, 0.6);
  border-radius: 12px;
  background-color: #ffffff;
}

.article_maruko .article_body p {
  line-height: 2.3;
}

.article_maruko .article_body figure img {
  border-radius: 16px;
}

.article_gear {
  margin-top: 56px;
  padding: 30px 32px 28px;
  background-color: #ffffff;
  border-top: 3px solid #dd9a33;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.article_gear_title {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.article_gear_title .pr_chip {
  margin-right: 0;
  margin-left: 12px;
  vertical-align: 2px;
}

.article_gear_list {
  margin-top: 6px;
}

.article_gear_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 10px 20px;
  padding: 16px 0;
}

.article_gear_item + .article_gear_item {
  border-top: 1px solid #d9d5c7;
}

.article_gear_name {
  font-size: 14px;
  font-weight: 700;
  color: #33544a;
}

.article_gear_stores {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
}

.article_gear_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.article_relate {
  margin-top: 28px;
  padding: 20px 24px;
  background-color: #ebe8dd;
  border-radius: 8px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.article_relate_link {
  color: #33544a;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.article_relate_link:hover, .article_relate_link:focus-visible {
  color: #c98720;
}

.article_share {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid #d9d5c7;
}

.article_share_label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #59615d;
}

.article_share_btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  border: 1px solid #d9d5c7;
  border-radius: 999px;
  font-size: 13px;
  color: #59615d;
  -webkit-transition: border-color 0.3s, color 0.3s;
  transition: border-color 0.3s, color 0.3s;
}

.article_share_btn:hover, .article_share_btn:focus-visible {
  border-color: #dd9a33;
  color: #242b2a;
}

.article_share_btn svg {
  -ms-flex-negative: 0;
  flex-shrink: 0;
}

.article_nav {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 40px;
}

.article_nav_link {
  display: block;
  padding: 18px 22px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 8px;
  -webkit-transition: border-color 0.3s, -webkit-transform 0.3s;
  transition: border-color 0.3s, -webkit-transform 0.3s;
  transition: border-color 0.3s, transform 0.3s;
  transition: border-color 0.3s, transform 0.3s, -webkit-transform 0.3s;
}

.article_nav_link:hover, .article_nav_link:focus-visible {
  border-color: #dd9a33;
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
}

.article_nav_next {
  text-align: right;
  -ms-grid-column: 2;
  grid-column: 2;
}

.article_nav_dir {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #33544a;
}

.article_nav_title {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.8;
}

.article_back {
  margin-top: 44px;
  text-align: center;
}

.stay_guide_page {
  padding: 64px 0 110px;
}

.stay_types {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr 20px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 44px;
}

.stay_type {
  padding: 24px 26px 22px;
  background-color: #1f2d3b;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 10px;
}

.stay_type_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #ffffff;
}

.stay_type_tag {
  padding: 2px 10px;
  border-radius: 3px;
  background-color: #dd9a33;
  color: #0e1721;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.stay_type_tag_rvpark {
  background-color: #63b3a4;
}

.stay_type_tag_spot {
  background-color: #b9c4cb;
}

.stay_type_text {
  margin-top: 12px;
  font-size: 13px;
  line-height: 2;
  color: #b9c4cb;
}

.stay_type_note {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.8;
  color: #dd9a33;
}

.page_head_tags {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.facility {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.facility_inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 40px;
}

.facility_summary {
  padding: 30px 32px 26px;
  background-color: #ffffff;
  border-top: 3px solid #33544a;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.facility_summary_title {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.facility_data {
  margin: 14px 0 0;
}

.facility_data_row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 18px;
  padding: 13px 0;
  font-size: 14px;
  line-height: 1.9;
}

.facility_data_row + .facility_data_row {
  border-top: 1px solid #d9d5c7;
}

.facility_data_row dt {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 7.5em;
  font-weight: 700;
  color: #33544a;
}

.facility_data_row dd {
  margin: 0;
}

.facility_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.reserve_cta {
  margin-top: 56px;
  padding: 30px 32px 28px;
  background-color: #ffffff;
  border-top: 3px solid #dd9a33;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.reserve_cta_title {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.reserve_cta_title .pr_chip {
  margin-right: 0;
  margin-left: 12px;
  vertical-align: 2px;
}

.reserve_cta_text {
  margin-top: 12px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.reserve_btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}

.reserve_btn {
  display: inline-block;
  padding: 13px 30px;
  background-color: #dd9a33;
  color: #0e1721;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-radius: 999px;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}

.reserve_btn:hover, .reserve_btn:focus-visible {
  background-color: #c98720;
}

.reserve_cta_plain {
  border-top-color: #33544a;
}

.reserve_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.gear_archive {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.gear_pickup {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 360px 40px 1fr;
  grid-template-columns: 360px 1fr;
  gap: 40px;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 36px 40px;
  background-color: #ffffff;
  border-top: 3px solid #dd9a33;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.gear_pickup_photo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  aspect-ratio: 1/1;
}

.gear_pickup_photo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.gear_pickup_label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #dd9a33;
}

.gear_pickup_title {
  margin-top: 10px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.gear_pickup_text {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.gear_pickup_foot {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
}

.gear_pickup_stores {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
}

.gear_group {
  margin-top: 64px;
}

.gear_group_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.gear_group_lead {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.gear_group .gear_gallery {
  margin-top: 26px;
}

.gear_item_photo_none {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  aspect-ratio: 4/3;
  color: #c9c3b0;
}

.gear_item_more {
  display: block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  color: #33544a;
  text-decoration: underline;
  text-underline-offset: 3px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.gear_item_more:hover, .gear_item_more:focus-visible {
  color: #c98720;
}

.channel_archive {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.channel_archive_inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
}

.channel_types {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr 20px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 40px;
}

.channel_type {
  padding: 22px 24px 20px;
  background-color: #ffffff;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.channel_type_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.channel_type_text {
  margin-top: 10px;
  font-size: 13px;
  line-height: 2;
  color: #59615d;
}

.channel_filter {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 8px;
}

.channel_filter_btn {
  padding: 8px 20px;
  border: 1px solid #c9c3b0;
  border-radius: 999px;
  background: none;
  color: #59615d;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  line-height: 1.6;
  cursor: pointer;
  -webkit-transition: border-color 0.3s, color 0.3s, background-color 0.3s;
  transition: border-color 0.3s, color 0.3s, background-color 0.3s;
}

.channel_filter_btn:hover, .channel_filter_btn:focus-visible {
  border-color: #33544a;
  color: #33544a;
}

.channel_filter_btn.is_active {
  background-color: #33544a;
  border-color: #33544a;
  color: #ffffff;
  font-weight: 700;
}

.channel_filter_num {
  margin-left: 6px;
  font-size: 11px;
  opacity: 0.75;
}

.channel_group {
  margin-top: 56px;
}

.channel_group.is_empty {
  display: none;
}

.channel_group_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.channel_group_lead {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.channel_pickup {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 26px 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
  margin-top: 26px;
}

.channel_card {
  background-color: #ffffff;
  border-radius: 10px;
  overflow: hidden;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  -webkit-transition: -webkit-transform 0.4s, -webkit-box-shadow 0.4s;
  transition: -webkit-transform 0.4s, -webkit-box-shadow 0.4s;
  transition: transform 0.4s, box-shadow 0.4s;
  transition: transform 0.4s, box-shadow 0.4s, -webkit-transform 0.4s, -webkit-box-shadow 0.4s;
}

.channel_card:hover {
  -webkit-transform: translateY(-4px);
  transform: translateY(-4px);
  -webkit-box-shadow: 0 18px 44px rgba(36, 43, 42, 0.16);
  box-shadow: 0 18px 44px rgba(36, 43, 42, 0.16);
}

.channel_card.is_hidden {
  display: none;
}

.channel_card_link {
  display: block;
}

.channel_card_banner img {
  width: 100%;
}

.channel_card_body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 16px;
  padding: 16px 22px 18px;
}

.channel_card_icon {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 2px solid #ebe8dd;
}

.channel_card_name {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.7;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.channel_card_link:hover .channel_card_name,
.channel_card_link:focus-visible .channel_card_name {
  color: #33544a;
}

.channel_card_note {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.9;
  color: #59615d;
}

.channel_cat {
  display: inline-block;
  margin-right: 8px;
  padding: 1px 10px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.08em;
  line-height: 1.8;
}

.channel_cat_camp {
  color: #33544a;
}

.channel_cat_animal {
  color: #a8721f;
}

.channel_cat_horror {
  color: #6a4c94;
}

.channel_cat_official {
  color: #3d5a73;
}

.channel_cat_other {
  color: #59615d;
}

.channel_index {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 40px 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 40px;
  margin-top: 26px;
  border-top: 1px solid #d9d5c7;
}

.channel_index_item {
  border-bottom: 1px solid #d9d5c7;
}

.channel_index_item.is_hidden {
  display: none;
}

.channel_index_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 14px;
  padding: 14px 6px;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}

.channel_index_link:hover, .channel_index_link:focus-visible {
  background-color: rgba(221, 154, 51, 0.07);
}

.channel_index_link:hover .channel_index_name, .channel_index_link:focus-visible .channel_index_name {
  color: #33544a;
}

.channel_index_link .channel_cat {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  margin-right: 0;
}

.channel_index_initial {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #ebe8dd;
  color: #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 15px;
  font-weight: 700;
}

.channel_index_name {
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.channel_archive_note {
  margin-top: 48px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.channel_profile {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.channel_profile_inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 40px;
}

.profile_banner {
  border-radius: 10px;
  overflow: hidden;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.08);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.08);
}

.profile_banner img {
  width: 100%;
}

.profile_head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 22px;
  margin-top: 28px;
}

.profile_icon {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 3px solid #ffffff;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.1);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.1);
}

.profile_title {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.profile_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  font-size: 13px;
  color: #59615d;
}

.profile_meta .channel_cat {
  margin-right: 0;
}

.profile_desc {
  margin-top: 26px;
  padding: 20px 24px;
  background-color: #ebe8dd;
  border-left: 3px solid #dd9a33;
  border-radius: 0 8px 8px 0;
  font-size: 15px;
  line-height: 2.1;
  color: #59615d;
}

.profile_text {
  margin-top: 26px;
}

.profile_text p {
  margin-top: 1.6em;
  font-size: 16px;
  line-height: 2.1;
}

.profile_text p:first-child {
  margin-top: 0;
}

.profile_cta {
  margin-top: 30px;
}

.page_head_channel,
.page_head_maker {
  padding-bottom: 44px;
}

.page_head_channel .profile_banner,
.page_head_maker .profile_banner {
  margin-top: 28px;
  -webkit-box-shadow: none;
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.page_head_channel .profile_head,
.page_head_maker .profile_head {
  margin-top: 22px;
}

.page_head_channel .profile_meta,
.page_head_maker .profile_meta {
  color: rgba(255, 255, 255, 0.72);
}

.page_head_maker .profile_head {
  margin-top: 28px;
}

.page_head_maker .profile_icon {
  border-radius: 8px;
  -o-object-fit: contain;
  object-fit: contain;
  background-color: #ffffff;
  padding: 6px;
}

@media screen and (max-width: 640px) {
  .page_head_channel,
  .page_head_maker {
    padding-bottom: 32px;
  }
  .page_head_channel .profile_banner,
  .page_head_maker .profile_banner {
    margin-top: 20px;
  }
}
.profile_links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
}

.profile_link_btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid #d9d5c7;
  border-radius: 999px;
  color: #33544a;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  -webkit-transition: border-color 0.3s, background-color 0.3s;
  transition: border-color 0.3s, background-color 0.3s;
}

.profile_link_btn:hover {
  border-color: #33544a;
  background-color: rgba(51, 84, 74, 0.06);
}

.profile_link_btn .profile_sns_icon {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 15px;
  height: 15px;
}

.profile_sns_btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid #d9d5c7;
  border-radius: 50%;
  color: #33544a;
  -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
  transition: border-color 0.3s, background-color 0.3s, color 0.3s;
}

.profile_sns_btn:hover {
  border-color: #33544a;
  background-color: #33544a;
  color: #f5f3ec;
}

.profile_sns_icon {
  fill: currentColor;
}

@media screen and (max-width: 640px) {
  .profile_sns_btn {
    width: 44px;
    height: 44px;
  }
  .profile_link_btn {
    padding: 10px 14px;
  }
}
.profile_section {
  margin-top: 60px;
}

.profile_section_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.profile_section_lead {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.profile_members {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr 20px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 24px;
}

.profile_member {
  padding: 26px 20px 24px;
  background-color: #ffffff;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  text-align: center;
}

.profile_member_icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #dd9a33;
}

.profile_member_name {
  margin-top: 10px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.profile_member_data {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.9;
  color: #59615d;
}

.profile_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.profile_videos {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 16px 1fr 16px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 24px;
}

.profile_video {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  aspect-ratio: 16/9;
  border: 2px dashed #c9c3b0;
  border-radius: 8px;
  background-color: #ebe8dd;
  color: #c9c3b0;
}

.profile_video_card {
  border-radius: 8px;
  overflow: hidden;
  background-color: #ffffff;
  -webkit-box-shadow: 0 1px 3px rgba(36, 43, 42, 0.08);
  box-shadow: 0 1px 3px rgba(36, 43, 42, 0.08);
  -webkit-transition: -webkit-transform 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: -webkit-transform 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  transition: transform 0.2s ease, box-shadow 0.2s ease, -webkit-transform 0.2s ease, -webkit-box-shadow 0.2s ease;
}

@media (min-width: 1025px) {
  .profile_video_card:hover {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    -webkit-box-shadow: 0 6px 16px rgba(36, 43, 42, 0.14);
    box-shadow: 0 6px 16px rgba(36, 43, 42, 0.14);
  }
}
.profile_video_link {
  display: block;
  color: #242b2a;
  text-decoration: none;
}

.profile_video_thumb {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
  object-fit: cover;
  background-color: #ebe8dd;
}

.profile_video_title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 10px 12px 12px;
  font-size: 13px;
  line-height: 1.7;
  font-weight: 500;
}

.profile_cast {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 24px;
}

.profile_cast_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  min-width: 0;
  padding: 16px;
  border-radius: 10px;
  background-color: #ffffff;
  -webkit-box-shadow: 0 1px 3px rgba(36, 43, 42, 0.08);
  box-shadow: 0 1px 3px rgba(36, 43, 42, 0.08);
}

.profile_cast_head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.profile_cast_photo {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 96px;
  margin: 0;
}

.profile_cast_photo img {
  display: block;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  background-color: #ebe8dd;
}

.profile_cast_dl {
  margin: 0;
  min-width: 0;
}

.profile_cast_dl_head {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.profile_cast_dl_rest {
  margin-top: 10px;
}

.profile_cast_row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  padding: 3px 0;
  font-size: 13px;
  line-height: 1.8;
}

.profile_cast_row dt {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 5.5em;
  color: #59615d;
  font-weight: 500;
}

.profile_cast_row dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.profile_cast_row_bio {
  display: block;
}

.profile_cast_row_bio dt {
  width: auto;
  margin-bottom: 2px;
}

.profile_cast_bio summary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  cursor: pointer;
  list-style: none;
  color: #59615d;
}

.profile_cast_bio summary::-webkit-details-marker {
  display: none;
}

.profile_cast_bio summary::before {
  content: "▶";
  -ms-flex-negative: 0;
  flex-shrink: 0;
  margin-top: 1px;
  font-size: 9px;
  line-height: 1.9;
  color: #dd9a33;
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}

.profile_cast_bio summary:hover {
  color: #33544a;
}

.profile_cast_bio[open] summary::before {
  content: "▼";
}

.profile_cast_bio[open] .profile_cast_bio_peek {
  display: none;
}

.profile_cast_bio_peek {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.profile_cast_bio_text {
  margin-top: 6px;
  padding-left: 15px;
}

.profile_cast_bio_text p {
  margin-top: 0.6em;
}

.profile_cast_bio_text p:first-child {
  margin-top: 0;
}

.profile_cast_bio_text iframe,
.profile_cast_bio_text img {
  max-width: 100%;
}

.profile_cast_sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}

.profile_cast_sns_link {
  display: inline-block;
  padding: 1px 8px;
  border: 1px solid #d9d5c7;
  border-radius: 999px;
  color: #59615d;
  font-size: 11px;
  text-decoration: none;
}

@media (min-width: 1025px) {
  .profile_cast_sns_link:hover {
    border-color: #33544a;
    color: #33544a;
  }
}
@media (max-width: 900px) {
  .profile_cast {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .profile_cast_item {
    padding: 12px;
  }
  .profile_cast_head {
    gap: 12px;
  }
  .profile_cast_photo {
    width: 64px;
  }
  .profile_cast_photo img {
    width: 64px;
    height: 64px;
  }
  .profile_cast_dl_rest .profile_cast_row {
    display: block;
  }
  .profile_cast_dl_rest .profile_cast_row dt {
    width: auto;
    margin-bottom: 2px;
  }
  .profile_cast_dl_head .profile_cast_row dt {
    width: 4.5em;
  }
}
.profile_feed {
  margin-top: 24px;
  border-top: 1px solid #ebe8dd;
}

.profile_feed_item {
  border-bottom: 1px solid #ebe8dd;
}

.profile_feed_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  gap: 14px;
  padding: 14px 4px;
  color: #242b2a;
  text-decoration: none;
}

@media (min-width: 1025px) {
  .profile_feed_link:hover .profile_feed_title {
    color: #33544a;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
.profile_feed_date {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: #59615d;
}

.profile_feed_title {
  font-size: 14px;
  line-height: 1.8;
}

@media (max-width: 640px) {
  .profile_feed_link {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 4px;
  }
}
.profile_relate {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 20px 1fr 20px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 24px;
}

.profile_relate .channel_card_body {
  padding: 12px 16px 14px;
  gap: 12px;
}

.profile_relate .channel_card_icon {
  width: 44px;
  height: 44px;
}

.profile_relate .channel_card_name {
  font-size: 14px;
}

.profile_relate .channel_card_note {
  font-size: 12px;
}

@media (max-width: 1024px) {
  .page_head_inner,
  .archive_inner,
  .article_inner,
  .facility_inner,
  .channel_archive_inner,
  .channel_profile_inner {
    padding: 0 28px;
  }
}
@media (max-width: 900px) {
  .page_head {
    padding: 128px 0 46px;
  }
  .stay_types {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 560px;
    margin: 0 auto 40px;
  }
  .gear_pickup {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px 28px;
  }
  .gear_pickup_photo {
    max-width: 320px;
    margin: 0 auto;
  }
  .channel_types {
    -ms-grid-columns: 1fr [2];
    grid-template-columns: repeat(2, 1fr);
  }
  .channel_pickup {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 640px;
    margin: 26px auto 0;
  }
  .channel_index {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
  .profile_members {
    gap: 14px;
  }
  .profile_relate {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 480px;
    margin: 24px auto 0;
  }
}
@media (max-width: 640px) {
  .page_head {
    padding: 108px 0 38px;
  }
  .page_head_inner,
  .archive_inner,
  .article_inner {
    padding: 0 20px;
  }
  .page_head_eyebrow {
    margin-top: 26px;
  }
  .breadcrumb_item[aria-current=page] {
    max-width: 14em;
  }
  .archive {
    padding: 52px 0 72px;
  }
  .archive_intro {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-align: center;
    padding: 24px 20px;
  }
  .archive_intro_name {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  .archive_link {
    gap: 16px;
    padding: 20px 4px;
  }
  .archive_thumb {
    width: 104px;
  }
  .archive_title {
    font-size: 15px;
    margin-top: 8px;
  }
  .archive_excerpt {
    display: none;
  }
  .pagination {
    margin-top: 40px;
  }
  .article {
    padding: 44px 0 72px;
  }
  .article_body {
    margin-top: 32px;
  }
  .article_body p {
    font-size: 15px;
  }
  .article_lead {
    padding: 16px 18px;
    font-size: 14px;
  }
  .article_gear {
    padding: 22px 18px 20px;
  }
  .article_gear_item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 8px;
  }
  .article_share {
    margin-top: 40px;
  }
  .article_nav {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .article_nav_next {
    grid-column: auto;
  }
  .stay_guide_page {
    padding: 44px 0 72px;
  }
  .stay_type {
    padding: 20px 18px 18px;
  }
  .facility {
    padding: 44px 0 72px;
  }
  .facility_inner {
    padding: 0 20px;
  }
  .facility_summary {
    padding: 22px 18px 20px;
  }
  .facility_data_row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 2px;
  }
  .facility_data_row dt {
    width: auto;
  }
  .reserve_cta {
    margin-top: 44px;
    padding: 22px 18px 20px;
  }
  .reserve_btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 10px;
  }
  .reserve_btn {
    display: block;
    text-align: center;
  }
  .gear_archive {
    padding: 44px 0 72px;
  }
  .gear_pickup {
    padding: 22px 18px 20px;
  }
  .gear_pickup_photo {
    max-width: 240px;
  }
  .gear_group {
    margin-top: 48px;
  }
  .channel_archive {
    padding: 44px 0 72px;
  }
  .channel_archive_inner,
  .channel_profile_inner {
    padding: 0 20px;
  }
  .channel_types {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .channel_type {
    padding: 18px 18px 16px;
  }
  .channel_group {
    margin-top: 44px;
  }
  .channel_card_body {
    padding: 13px 16px 15px;
    gap: 12px;
  }
  .channel_card_icon {
    width: 44px;
    height: 44px;
  }
  .channel_card_name {
    font-size: 14px;
  }
  .channel_card_note {
    font-size: 12px;
  }
  .channel_index_link {
    gap: 10px;
    padding: 12px 2px;
  }
  .channel_index_initial {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .channel_index_name {
    font-size: 13px;
  }
  .channel_profile {
    padding: 44px 0 72px;
  }
  .profile_head {
    gap: 14px;
  }
  .profile_icon {
    width: 68px;
    height: 68px;
  }
  .profile_desc {
    padding: 16px 18px;
    font-size: 14px;
  }
  .profile_text p {
    font-size: 15px;
  }
  .profile_section {
    margin-top: 48px;
  }
  .profile_members {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .profile_member {
    padding: 20px 18px 18px;
  }
  .profile_videos {
    -ms-grid-columns: 1fr 12px 1fr;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .archive_link,
  .archive_thumb img,
  .breadcrumb_link,
  .pagination_link,
  .article_share_btn,
  .article_nav_link,
  .article_relate_link,
  .reserve_btn,
  .gear_item_more,
  .channel_filter_btn,
  .channel_card,
  .channel_card_name,
  .channel_index_link,
  .channel_index_name {
    -webkit-transition: none;
    transition: none;
  }
}
.about_page {
  padding: 72px 0 110px;
  background-color: #f5f3ec;
}

.about_inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 40px;
}

.about_section {
  margin-top: 72px;
}

.about_section:first-child {
  margin-top: 0;
}

.about_section_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.about_text {
  margin-top: 1.8em;
  font-size: 16px;
  line-height: 2.1;
}

.about_pull {
  margin-top: 40px;
  padding: 30px 34px;
  background-color: #ffffff;
  border-left: 3px solid #dd9a33;
  border-radius: 0 10px 10px 0;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 2;
}

.about_maruko {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 28px;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-top: 40px;
  padding: 32px 34px;
  background-color: #ffffff;
  border-radius: 12px;
  -webkit-box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
  box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
}

.about_maruko_photo {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 4px solid #ebe8dd;
}

.about_maruko_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 18px;
  font-weight: 700;
  color: #33544a;
}

.about_maruko_text {
  margin-top: 10px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.about_map {
  display: -ms-grid;
  display: grid;
  gap: 14px;
  margin-top: 32px;
}

.about_map_item {
  display: block;
  padding: 22px 26px 20px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 10px;
  -webkit-transition: border-color 0.3s, -webkit-transform 0.3s;
  transition: border-color 0.3s, -webkit-transform 0.3s;
  transition: border-color 0.3s, transform 0.3s;
  transition: border-color 0.3s, transform 0.3s, -webkit-transform 0.3s;
}

.about_map_item:hover, .about_map_item:focus-visible {
  border-color: #dd9a33;
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
}

.about_map_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  gap: 12px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #242b2a;
}

.about_map_path {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #59615d;
}

.about_map_text {
  margin-top: 6px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.about_tech_bridge {
  margin-top: 40px;
  padding: 36px 38px 34px;
  background-color: #0e1721;
  background-image: linear-gradient(rgba(255, 255, 255, 0.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.032) 1px, transparent 1px);
  background-size: 44px 44px;
  border-radius: 12px;
  color: #93a3ad;
}

.about_tech_bridge_eyebrow {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: #63b3a4;
}

.about_tech_bridge_title {
  margin-top: 12px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.7;
  color: #ffffff;
}

.about_tech_bridge_text {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2.1;
}

.about_tech_bridge_foot {
  margin-top: 24px;
}

.about_career {
  display: -ms-grid;
  display: grid;
  gap: 14px;
  margin-top: 32px;
}

.about_career_item {
  padding: 22px 26px 20px;
  background-color: #ffffff;
  border-left: 3px solid #33544a;
  border-radius: 0 10px 10px 0;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.about_career_item:nth-child(2) {
  border-left-color: #dd9a33;
}

.about_career_item:nth-child(3) {
  border-left-color: #7a8f4a;
}

.about_career_item:nth-child(4) {
  border-left-color: #3f6f8f;
}

.about_career_name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  gap: 12px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #242b2a;
}

.about_career_role {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #59615d;
}

.about_career_text {
  margin-top: 8px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.about_career_link {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #33544a;
  border-bottom: 1px solid rgba(51, 84, 74, 0.35);
  -webkit-transition: color 0.3s, border-color 0.3s;
  transition: color 0.3s, border-color 0.3s;
}

.about_career_link:hover, .about_career_link:focus-visible {
  color: #dd9a33;
  border-color: #dd9a33;
}

.about_cms_bridge {
  margin-top: 28px;
  padding: 26px 30px 24px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 10px;
}

.about_cms_bridge_name {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #33544a;
}

.about_cms_bridge_text {
  margin-top: 10px;
  font-size: 13px;
  line-height: 2;
  color: #59615d;
}

.about_cms_bridge_foot {
  margin-top: 18px;
}

.about_cms_bridge_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #93a3ad;
}

.about_info {
  margin-top: 32px;
  padding: 30px 32px 26px;
  background-color: #ffffff;
  border-top: 3px solid #33544a;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.about_info_data {
  margin: 0;
}

.about_info_row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 18px;
  padding: 13px 0;
  font-size: 14px;
  line-height: 1.9;
}

.about_info_row + .about_info_row {
  border-top: 1px solid #d9d5c7;
}

.about_info_row dt {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 7.5em;
  font-weight: 700;
  color: #33544a;
}

.about_info_row dd {
  margin: 0;
}

.about_contact_note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.page_head_tech {
  background-image: linear-gradient(rgba(255, 255, 255, 0.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.032) 1px, transparent 1px);
  background-size: 44px 44px;
  border-bottom: 3px solid rgba(99, 179, 164, 0.35);
}

.page_head_tech .page_head_eyebrow {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  letter-spacing: 0.14em;
  color: #63b3a4;
}

.page_head_tech .page_head_eyebrow::before {
  background-color: #63b3a4;
}

.page_head_tech .breadcrumb_link:hover, .page_head_tech .breadcrumb_link:focus-visible {
  color: #63b3a4;
}

.tech_archive_page {
  padding: 64px 0 110px;
  background-color: #0e1721;
  background-image: linear-gradient(rgba(255, 255, 255, 0.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.032) 1px, transparent 1px);
  background-size: 44px 44px;
  color: #93a3ad;
}

.tech_archive_inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
}

.tech_filter {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 34px;
}

.tech_filter_btn {
  padding: 8px 20px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 4px;
  background: none;
  color: #93a3ad;
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.6;
  cursor: pointer;
  -webkit-transition: border-color 0.3s, color 0.3s, background-color 0.3s;
  transition: border-color 0.3s, color 0.3s, background-color 0.3s;
}

.tech_filter_btn:hover, .tech_filter_btn:focus-visible {
  border-color: #63b3a4;
  color: #63b3a4;
}

.tech_filter_btn.is_active {
  background-color: #63b3a4;
  border-color: #63b3a4;
  color: #0e1721;
  font-weight: 700;
}

.tech_filter_num {
  margin-left: 6px;
  font-size: 11px;
  opacity: 0.75;
}

.tech_card.is_hidden {
  display: none;
}

.tech_archive_note {
  margin-top: 44px;
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 13px;
  letter-spacing: 0.02em;
  line-height: 2;
}

.article_tech {
  background-color: #eef1f4;
}

.article_tech .article_meta {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  letter-spacing: 0.04em;
}

.article_tech .article_cat {
  border-color: rgba(46, 110, 97, 0.55);
  color: #2e6e61;
}

.article_tech .article_cat_bridge {
  border-color: rgba(168, 114, 31, 0.7);
  color: #a8721f;
}

.article_tech .article_lead {
  background-color: #e2e7ec;
  border-left-color: #2e6e61;
  color: #4c5a63;
}

.article_tech .article_body h2 {
  border-bottom-color: #2e6e61;
}

.article_tech .article_relate {
  background-color: #e2e7ec;
  color: #4c5a63;
}

.article_tech .article_relate_link {
  color: #2e6e61;
}

.article_tech .article_relate_link:hover, .article_tech .article_relate_link:focus-visible {
  color: #a8721f;
}

.article_code {
  margin-top: 2.4em;
  overflow: hidden;
  background-color: #0e1721;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
}

.article_code_label {
  padding: 9px 18px;
  background-color: #182634;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: #93a3ad;
}

.article_code pre {
  margin: 0;
  padding: 20px 22px;
  overflow-x: auto;
}

.article_code code {
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 13px;
  line-height: 1.95;
  color: #d7e0e6;
}

.log_table_wrap {
  margin-top: 2.4em;
  overflow-x: auto;
}

.log_table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.8;
}

.log_table th,
.log_table td {
  padding: 10px 14px;
  border: 1px solid #ccd4da;
  text-align: left;
}

.log_table thead th {
  background-color: #e2e7ec;
  font-size: 13px;
  letter-spacing: 0.04em;
}

.log_table tbody th {
  background-color: #ffffff;
  font-weight: 700;
  white-space: nowrap;
}

.log_table td {
  background-color: #ffffff;
  font-family: "Consolas", "SFMono-Regular", "Menlo", "Monaco", "Courier New", monospace;
  font-size: 13px;
}

.log_table_note {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.news_archive {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.news_archive_inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 40px;
}

.news_year {
  margin-top: 56px;
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.news_year:first-child {
  margin-top: 0;
}

.news_page_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  padding: 22px 8px;
  border-bottom: 1px solid #d9d5c7;
}

.news_page_date {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 7em;
  padding-top: 3px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #59615d;
}

.news_page_body {
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  min-width: 0;
}

.news_page_text {
  font-size: 15px;
  line-height: 2;
}

.news_page_note {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.9;
  color: #59615d;
}

.news_page_link {
  color: #33544a;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.news_page_link:hover, .news_page_link:focus-visible {
  color: #c98720;
}

.maker_archive {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.maker_archive_inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
}

.maker_archive_grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 26px 1fr 26px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.maker_panel {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  padding: 40px 26px 28px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 12px;
  -webkit-transition: border-color 0.3s, -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
  transition: border-color 0.3s, -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s, -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
}

.maker_panel img {
  width: 100%;
  max-width: 220px;
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.maker_panel:hover, .maker_panel:focus-visible {
  border-color: #dd9a33;
  -webkit-transform: translateY(-4px);
  transform: translateY(-4px);
  -webkit-box-shadow: 0 14px 34px rgba(36, 43, 42, 0.1);
  box-shadow: 0 14px 34px rgba(36, 43, 42, 0.1);
}

.maker_panel_name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
}

.maker_panel_note {
  font-size: 13px;
  line-height: 1.9;
  color: #59615d;
  text-align: center;
}

.maker_panel_badge {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 2px 10px;
  background-color: #dd9a33;
  color: #0e1721;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.maker_panel_badge_outbound {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 3px;
  background-color: #ffffff;
  border: 1px solid rgba(221, 154, 51, 0.7);
  color: #33544a;
}

.maker_archive_note {
  margin-top: 44px;
  font-size: 12px;
  line-height: 1.9;
  color: #59615d;
}

.maker_profile {
  padding: 64px 0 110px;
  background-color: #f5f3ec;
}

.maker_profile_inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 40px;
}

.maker_hero {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 36px;
  padding: 38px 40px;
  background-color: #ffffff;
  border-radius: 12px;
  -webkit-box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
  box-shadow: 0 10px 34px rgba(36, 43, 42, 0.07);
}

.maker_hero img {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 200px;
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.maker_hero_lead {
  font-size: 15px;
  line-height: 2.1;
  color: #59615d;
}

.maker_section {
  margin-top: 60px;
}

.maker_section_title {
  padding-bottom: 12px;
  border-bottom: 2px solid #33544a;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(19px, 2vw, 23px);
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.maker_section_text {
  margin-top: 1.6em;
  font-size: 16px;
  line-height: 2.1;
}

.maker_gear_list {
  display: -ms-grid;
  display: grid;
  gap: 16px;
  margin-top: 26px;
}

.maker_gear_item {
  padding: 24px 28px 22px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 10px;
}

.maker_gear_role {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #a8721f;
}

.maker_gear_name {
  margin-top: 6px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.7;
}

.maker_gear_text {
  margin-top: 8px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.maker_official_note {
  margin-top: 26px;
  font-size: 13px;
  line-height: 2;
  color: #59615d;
}

.contact_lead {
  font-size: 16px;
  line-height: 2.1;
}

.contact_purpose {
  margin-top: 32px;
  padding: 26px 30px 24px;
  background-color: #ffffff;
  border: 1px solid #d9d5c7;
  border-radius: 10px;
}

.contact_purpose_title {
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.contact_purpose_list {
  margin-top: 12px;
  padding-left: 1.3em;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

.contact_purpose_list li + li {
  margin-top: 4px;
}

.contact_form {
  margin-top: 48px;
  padding: 34px 36px 32px;
  background-color: #ffffff;
  border-top: 3px solid #33544a;
  border-radius: 10px;
  -webkit-box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
  box-shadow: 0 8px 30px rgba(36, 43, 42, 0.05);
}

.form_group {
  margin-top: 26px;
}

.form_group:first-child {
  margin-top: 0;
}

.form_label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: #242b2a;
}

.form_required,
.form_optional {
  padding: 1px 8px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.form_required {
  background-color: #b3402f;
  color: #ffffff;
}

.form_optional {
  background-color: #d9d5c7;
  color: #59615d;
}

.form_hint {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.8;
  color: #59615d;
}

.form_input,
.form_textarea {
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 13px 16px;
  border: 1px solid #d9d5c7;
  border-radius: 8px;
  background-color: #f5f3ec;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 16px;
  color: #242b2a;
  -webkit-transition: border-color 0.3s, background-color 0.3s;
  transition: border-color 0.3s, background-color 0.3s;
}

.form_input:focus-visible,
.form_textarea:focus-visible {
  outline: 2px solid #dd9a33;
  outline-offset: 1px;
  border-color: #dd9a33;
  background-color: #ffffff;
}

.form_textarea {
  min-height: 180px;
  line-height: 1.8;
  resize: vertical;
}

.form_error {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 700;
  color: #b3402f;
}

.form_error:empty {
  display: none;
}

.form_actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid #d9d5c7;
}

.form_actions .btn,
.form_actions .btn_ghost {
  font-size: 15px;
}

.form_checkbox_row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 4px 8px;
}

.form_checkbox_box {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 11px;
  cursor: pointer;
}

.form_checkbox {
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: #33544a;
  cursor: pointer;
}

.form_checkbox:focus-visible {
  outline: 2px solid #dd9a33;
  outline-offset: 2px;
}

.form_checkbox_policy_link {
  padding: 11px 2px;
  font-size: 16px;
  font-weight: 700;
  color: #33544a;
  text-decoration: underline;
  text-underline-offset: 3px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.form_checkbox_policy_link:hover, .form_checkbox_policy_link:focus-visible {
  color: #c98720;
}

.form_checkbox_label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 6px;
  padding: 11px 4px;
  font-size: 16px;
  font-weight: 700;
  color: #242b2a;
  cursor: pointer;
}

@media (max-width: 1024px) {
  .about_inner,
  .tech_archive_inner,
  .news_archive_inner,
  .maker_archive_inner,
  .maker_profile_inner {
    padding: 0 28px;
  }
}
@media (max-width: 900px) {
  .about_maruko {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-align: center;
    padding: 28px 24px;
  }
  .about_maruko_name {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  .maker_archive_grid {
    -ms-grid-columns: 1fr 18px 1fr;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
  .maker_hero {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 22px;
    padding: 30px 28px;
    text-align: center;
  }
}
@media (max-width: 640px) {
  .about_inner,
  .tech_archive_inner,
  .news_archive_inner,
  .maker_archive_inner,
  .maker_profile_inner {
    padding: 0 20px;
  }
  .about_page {
    padding: 44px 0 72px;
  }
  .about_section {
    margin-top: 52px;
  }
  .about_text {
    font-size: 15px;
  }
  .about_pull {
    padding: 22px 22px;
  }
  .about_maruko {
    margin-top: 32px;
  }
  .about_map_item {
    padding: 18px 18px 16px;
  }
  .about_career_item {
    padding: 18px 18px 16px;
  }
  .about_cms_bridge {
    padding: 20px 18px 18px;
  }
  .about_tech_bridge {
    padding: 26px 22px 24px;
  }
  .about_info {
    padding: 22px 18px 18px;
  }
  .about_info_row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 2px;
  }
  .about_info_row dt {
    width: auto;
  }
  .tech_archive_page {
    padding: 44px 0 72px;
  }
  .tech_filter {
    margin-bottom: 26px;
  }
  .tech_filter_btn {
    padding: 7px 14px;
    font-size: 12px;
  }
  .tech_archive_note {
    margin-top: 36px;
  }
  .article_code pre {
    padding: 16px 16px;
  }
  .article_code code {
    font-size: 12px;
  }
  .log_table {
    min-width: 520px;
  }
  .news_archive {
    padding: 44px 0 72px;
  }
  .news_year {
    margin-top: 44px;
  }
  .news_page_item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 4px;
    padding: 18px 4px;
  }
  .news_page_date {
    width: auto;
    padding-top: 0;
  }
  .maker_archive {
    padding: 44px 0 72px;
  }
  .maker_archive_grid {
    gap: 12px;
  }
  .maker_panel {
    padding: 26px 16px 20px;
    gap: 10px;
  }
  .maker_panel img {
    max-width: 150px;
  }
  .maker_panel_name {
    font-size: 13px;
  }
  .maker_panel_note {
    font-size: 12px;
  }
  .maker_profile {
    padding: 44px 0 72px;
  }
  .maker_hero {
    padding: 24px 20px;
  }
  .maker_hero img {
    width: 160px;
  }
  .maker_gear_item {
    padding: 20px 18px 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .about_map_item,
  .about_career_link,
  .tech_filter_btn,
  .news_page_link,
  .maker_panel {
    -webkit-transition: none;
    transition: none;
  }
}
/* === 投稿本文：画像ギャラリー / 動画（insta 取込対応・2026-07-17） === */
/*
 * mid=4「画像ギャラリー」… .gallery.imgN（N=カラム数）> .gallery_set > .img_wrap > img
 *   デザイナーの .gear_gallery（CSS Grid・repeat(N,1fr)・gap）に合わせる。
 *   figure と同じ角丸・上マージンで .article_body 内に馴染ませる。
 * mid=56「動画」… .mod_movie > .mp4_wrap > video。max-width:100% で枠からはみ出さない。
 */
.article_body .gallery {
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 2.4em 0 0;
}

.article_body .gallery.img1 {
  grid-template-columns: 1fr;
}

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

.article_body .gallery.img3 {
  grid-template-columns: repeat(3, 1fr);
}

.article_body .gallery.img4 {
  grid-template-columns: repeat(4, 1fr);
}

.article_body .gallery.img5 {
  grid-template-columns: repeat(5, 1fr);
}

.article_body .gallery .gallery_set {
  margin: 0;
}

.article_body .gallery .img_wrap {
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
}

.article_body .gallery .img_wrap img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.article_body .gallery .caption {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: #6b6b6b;
}

.article_body .mod_movie {
  margin: 2.4em 0 0;
}

.article_body .mod_movie .mp4_wrap {
  max-width: 100%;
}

.article_body .mod_movie video {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 16px;
}

@media screen and (max-width: 640px) {
  .article_body .gallery,
  .article_body .gallery.img2,
  .article_body .gallery.img3,
  .article_body .gallery.img4,
  .article_body .gallery.img5 {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .article_body .gallery.img1 {
    grid-template-columns: 1fr;
  }
}
/* === /stay/ 検索パネル（spot_db）UI v3（1枚のパネルに統合・2026-07-19） === */
/* 見出し・リードは既存の _light 変種（.section_title_light / .section_lead_light）を
   マークアップ側で使う。.guide_filter_btn 自体（is_active＝琥珀）は他画面と共有のため
   上書きせず、.spot_search_panel 配下だけ隣接ボタンを連結して見せる（スコープ限定）。 */
.spot_db_title {
  margin-top: 88px;
}

.spot_search_panel {
  margin: 18px 0 20px;
  padding: 18px 20px 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  background-color: rgba(255, 255, 255, 0.04);
}

.spot_search_panel_row + .spot_search_panel_row {
  margin-top: 14px;
}

/* ① 種別セグメント：guide_filter/guide_filter_btn の色・is_active は style.css のまま。
   ここでは隣接ボタンを連結して「切り替えの選択肢」であることを形で示す */
.spot_search_panel_types .guide_filter {
  margin: 0;
  gap: 0;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 10px;
}

.spot_search_panel_types .guide_filter_btn {
  border: none;
  border-right: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 0;
  white-space: nowrap;
}

.spot_search_panel_types .guide_filter_btn:last-child {
  border-right: none;
}

/* ② 検索バー：都道府県・キーワード・送信ボタンを1本の白バーに統合 */
.spot_db_form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
}

.spot_db_select,
.spot_db_input {
  padding: 12px 16px;
  border: none;
  border-radius: 0;
  background-color: #fff;
  color: #1f2933;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.4;
}

.spot_db_select {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 150px;
  flex: 0 0 150px;
  border-right: 1px solid #e4e4e0;
}

.spot_db_input {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 120px;
}

.spot_db_select:focus-visible,
.spot_db_input:focus-visible {
  outline: 2px solid #dd9a33;
  outline-offset: -2px;
}

.spot_db_submit {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding: 12px 30px;
  border-radius: 0;
  font-size: 14px;
}

.spot_search_panel_clear {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  color: #b9c4cb;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.spot_search_panel_clear:hover,
.spot_search_panel_clear:focus-visible {
  color: #dd9a33;
}

/* ③ 補助行：泊まったところだけ（左）／表示切替タブ（右）を両端揃えで対置 */
.spot_search_panel_aux {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 12px;
}

.spot_db_meta {
  margin: 14px 0 20px;
  font-size: 14px;
  color: #b9c4cb;
}

/* ページャは明色背景用（#59615d/#d9d5c7）なので、この区画だけダーク用に */
.stay_guide_page .pagination {
  margin-top: 44px;
}

.stay_guide_page .pagination_link {
  border-color: rgba(255, 255, 255, 0.28);
  color: #b9c4cb;
}

.stay_guide_page .pagination_link:hover {
  background: none;
  border-color: #dd9a33;
  color: #dd9a33;
}

.stay_guide_page .pagination_link[aria-current=page] {
  background-color: #dd9a33;
  border-color: #dd9a33;
  color: #0e1721;
}

@media screen and (max-width: 640px) {
  .spot_db_title {
    margin-top: 64px;
  }
  .spot_search_panel {
    padding: 16px 14px 14px;
  }
  .spot_db_form {
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .spot_db_select {
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
    min-width: 0;
    border-right: none;
    border-bottom: 1px solid #e4e4e0;
  }
  .spot_db_input {
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
    min-width: 0;
  }
  .spot_db_submit {
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
    text-align: center;
  }
}
/* === /contact/ フォーム（CMSフォームビルダー用・2026-07-18） === */
.form_page_wrap .material-symbols-outlined {
  display: none;
}

/* ステップ表示（入力 → 確認 → 完了） */
.form_steps {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 14px;
  margin: 34px 0 26px;
  padding: 0;
  list-style: none;
}

.form_step {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #a9a698;
}

.form_step + .form_step::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 1px;
  margin-right: 6px;
  background-color: #d9d5c7;
}

.form_step_num {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid #d9d5c7;
  border-radius: 50%;
  font-size: 11px;
}

.form_step.is_current {
  color: #242b2a;
}

.form_step.is_current .form_step_num {
  background-color: #33544a;
  border-color: #33544a;
  color: #ffffff;
}

.form_step.is_done {
  color: #33544a;
}

.form_step.is_done .form_step_num {
  border-color: #33544a;
  color: #33544a;
}

/* フォーム見出し */
.form_page_label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #33544a;
  text-transform: uppercase;
}

.form_page_title {
  margin-top: 6px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(20px, 2.4vw, 24px);
  letter-spacing: 0.04em;
}

.form_page_text {
  margin-top: 10px;
  font-size: 14px;
  line-height: 2;
  color: #59615d;
}

/* エラー表示 */
.form_error_box {
  margin: 24px 0 4px;
  padding: 16px 20px;
  border: 1px solid #b3402f;
  border-radius: 8px;
  background-color: #fdf3f1;
  color: #b3402f;
}

.form_error_box_title {
  font-size: 14px;
  font-weight: 700;
}

.form_error_box ul {
  margin: 8px 0 0;
  padding-left: 1.3em;
  font-size: 13px;
  line-height: 1.9;
}

/* 入力フィールド（_static/contact の .form_group / .form_input 相当） */
.form_field {
  margin-top: 26px;
}

.form_field_label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: #242b2a;
}

.required_mark {
  padding: 1px 8px;
  border-radius: 3px;
  background-color: #b3402f;
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.form_field_input input,
.form_field_input textarea {
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 13px 16px;
  border: 1px solid #d9d5c7;
  border-radius: 8px;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 16px;
  color: #242b2a;
  -webkit-transition: border-color 0.3s;
  transition: border-color 0.3s;
}

.form_field_input textarea {
  min-height: 200px;
  resize: vertical;
}

.form_field_input input:focus-visible,
.form_field_input textarea:focus-visible {
  outline: 2px solid #33544a;
  outline-offset: 1px;
  border-color: #33544a;
}

.form_field_help {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.8;
  color: #59615d;
}

/* 同意ボックス */
.form_agree {
  margin-top: 36px;
  padding: 24px 26px;
  border: 1px solid #d9d5c7;
  border-radius: 10px;
  background-color: #ffffff;
}

.form_agree_label {
  font-size: 14px;
  font-weight: 700;
}

.form_agree_box {
  margin-top: 10px;
  font-size: 13px;
  line-height: 2;
  color: #59615d;
}

.form_agree_box a {
  color: #33544a;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.form_agree_check {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.form_agree_check input {
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: #33544a;
  cursor: pointer;
}

/* 送信ボタン行（.form_actions の余白は既存定義を利用）＋ button 要素対応 */
button.btn {
  border: 0;
  cursor: pointer;
  font-family: inherit;
}

.btn_outline {
  background: none;
  border: 1px solid #33544a;
  color: #33544a;
}

button.btn_outline {
  border: 1px solid #33544a;
}

/* 確認画面 */
.form_confirm_list {
  margin: 20px 0 0;
}

.form_confirm_row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  padding: 16px 4px;
  border-bottom: 1px solid #d9d5c7;
}

.form_confirm_row dt {
  -ms-flex: 0 0 160px;
  flex: 0 0 160px;
  font-size: 14px;
  font-weight: 700;
}

.form_confirm_row dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  word-break: break-word;
}

.form_confirm_empty {
  color: #a9a698;
}

.form_confirm_agree {
  margin-top: 22px;
}

.form_confirm_agree_label {
  font-size: 13px;
  font-weight: 700;
  color: #59615d;
}

.form_confirm_agree_text {
  margin-top: 4px;
  font-size: 13px;
  color: #59615d;
}

/* 完了画面 */
.form_complete_card {
  margin-top: 30px;
  padding: 44px 30px;
  border: 1px solid #d9d5c7;
  border-radius: 12px;
  background-color: #ffffff;
  text-align: center;
}

.form_complete_label {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #33544a;
  text-transform: uppercase;
}

.form_complete_title {
  margin-top: 10px;
  font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  font-size: clamp(20px, 2.4vw, 24px);
}

.form_complete_text {
  margin-top: 16px;
  font-size: 14px;
  line-height: 2.1;
  color: #59615d;
}

.form_complete_actions {
  margin-top: 26px;
}

@media screen and (max-width: 640px) {
  .form_confirm_row {
    display: block;
  }
  .form_confirm_row dd {
    margin-top: 4px;
  }
  .form_actions .btn {
    width: 100%;
    text-align: center;
  }
}
/* === スポット出典表記（Wikidata/Commons/OSM・2026-07-19） === */
.guide_card_photo {
  position: relative;
}

.guide_card_credit {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: rgba(14, 23, 33, 0.55);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  line-height: 1;
  text-decoration: none;
}

.guide_card_credit:hover {
  background-color: rgba(14, 23, 33, 0.8);
}

.spot_db_credit {
  margin: 28px 0 0;
  font-size: 12px;
  line-height: 1.9;
  color: #8794a0;
}

.spot_db_credit a {
  color: #b9c4cb;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* === スポット地図ビュー（2026-07-19） === */
/* タブは補助行（.spot_search_panel_aux）内。① の種別セグメントと同じ「連結ボーダー」の
   見た目に統一し、パネル内の操作がすべて同じ視覚言語で読めるようにする（2026-07-19 修正） */
.spot_db_tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 10px;
  overflow: hidden;
}

.spot_db_tab {
  padding: 7px 18px;
  border-right: 1px solid rgba(255, 255, 255, 0.28);
  color: #b9c4cb;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.spot_db_tab:last-child {
  border-right: none;
}

.spot_db_tab:hover {
  color: #dd9a33;
}

.spot_db_tab.is_active {
  background-color: #dd9a33;
  color: #0e1721;
}

.spot_map {
  position: relative;
  height: 620px;
  margin-top: 8px;
  border-radius: 12px;
  overflow: hidden;
  background-color: #0e1721;
  z-index: 1;
}

.spot_map_loading {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #b9c4cb;
  font-size: 14px;
  z-index: 2;
}

.spot_map_note {
  margin: 14px 0 0;
  font-size: 12px;
  line-height: 2;
  color: #8794a0;
}

.spot_map_key {
  display: inline-block;
  margin: 0 6px 0 2px;
  padding: 1px 10px;
  border-radius: 999px;
  color: #0e1721;
  font-weight: 700;
}

.spot_map_key_campsite {
  background-color: #7fb069;
}

.spot_map_key_rvpark {
  background-color: #6aa5c9;
}

.spot_map_key_spot {
  background-color: #dd9a33;
}

/* ポップアップ（Leaflet 既定の白カードの中身） */
.spot_pop {
  width: 240px;
}

.spot_pop_img {
  width: 100%;
  height: 130px;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 8px;
}

.spot_pop_meta {
  margin: 0 0 4px;
  font-size: 11px;
}

.spot_pop_type {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  color: #0e1721;
  font-weight: 700;
  margin-right: 6px;
}

.spot_pop_pref {
  color: #59615d;
}

.spot_pop_name {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: #242b2a;
}

.spot_pop_btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.spot_pop_btn {
  display: inline-block;
  padding: 5px 12px;
  border: 1px solid rgba(221, 154, 51, 0.6);
  border-radius: 999px;
  color: #b06f14;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}

.spot_pop_btn_primary {
  background-color: #dd9a33;
  border-color: #dd9a33;
  color: #0e1721;
}

.spot_pop_btn:hover {
  opacity: 0.85;
}

.spot_pop_stamp {
  margin-top: 8px;
}

.spot_pop_stamp_msg {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: #59615d;
}

.spot_map_locate a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background-color: #ffffff;
  font-size: 16px;
  text-decoration: none;
  cursor: pointer;
}

.spot_map_locate a:hover {
  background-color: #f4f4f4;
}

@media screen and (max-width: 640px) {
  .spot_map {
    height: 460px;
  }
}
/* === 泊まったところトグル（チェックボックス風・2026-07-19） === */
.spot_visited_toggle {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  padding: 4px;
  color: #b9c4cb;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.spot_visited_toggle:hover {
  color: #dd9a33;
}

.spot_visited_box {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-radius: 4px;
  background: none;
  position: relative;
  -webkit-transition: background-color 0.2s, border-color 0.2s;
  transition: background-color 0.2s, border-color 0.2s;
}

.spot_visited_toggle:hover .spot_visited_box {
  border-color: #dd9a33;
}

.spot_visited_toggle.is_on {
  color: #dd9a33;
}

.spot_visited_toggle.is_on .spot_visited_box {
  background-color: #dd9a33;
  border-color: #dd9a33;
}

.spot_visited_toggle.is_on .spot_visited_box::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0px;
  width: 5px;
  height: 9px;
  border: solid #0e1721;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

@media screen and (max-width: 640px) {
  .spot_search_panel_aux {
    justify-content: flex-start;
  }
}
/* === スタンプラリー帳（2026-07-19） === */
.stamp_rally {
  margin-top: 26px;
}

.stamp_checkin {
  padding: 26px 20px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.04);
  text-align: center;
}

.stamp_checkin_btn {
  display: inline-block;
  padding: 14px 38px;
  border: 0;
  border-radius: 999px;
  background-color: #dd9a33;
  color: #0e1721;
  font-size: 16px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}

.stamp_checkin_btn:hover {
  opacity: 0.85;
}

.stamp_checkin_btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.stamp_checkin_note {
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.9;
  color: #8794a0;
}

.stamp_result {
  display: inline-block;
  margin: 12px 0 0;
  padding: 8px 18px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
}

.stamp_result_ok {
  background-color: rgba(127, 176, 105, 0.16);
  color: #a9d194;
}

.stamp_result_info {
  background-color: rgba(106, 165, 201, 0.16);
  color: #9cc4dd;
}

.stamp_result_ng {
  background-color: rgba(221, 108, 84, 0.16);
  color: #e8a191;
}

.stamp_result_wait {
  background-color: rgba(255, 255, 255, 0.08);
  color: #b9c4cb;
}

.stamp_summary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  gap: 14px;
  margin-top: 26px;
}

.stamp_summary_label {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #b9c4cb;
}

.stamp_summary_count {
  margin: 0;
  color: #8794a0;
  font-size: 14px;
}

.stamp_summary_have {
  color: #dd9a33;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}

.stamp_sub_title {
  margin: 30px 0 12px;
  font-size: 16px;
  font-weight: 700;
  color: #e8edf1;
}

.stamp_pref_grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.stamp_pref {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  font-size: 12px;
  color: #8794a0;
}

.stamp_pref.is_have {
  border-color: rgba(221, 154, 51, 0.6);
  color: #b9c4cb;
}

.stamp_pref.is_have .stamp_pref_have {
  color: #dd9a33;
  font-weight: 700;
}

.stamp_pref.is_complete {
  background-color: #dd9a33;
  border-color: #dd9a33;
  color: #0e1721;
}

.stamp_pref.is_complete .stamp_pref_have {
  color: #0e1721;
}

.stamp_badges {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.stamp_badge {
  padding: 5px 16px;
  border: 1px solid rgba(127, 176, 105, 0.6);
  border-radius: 999px;
  color: #a9d194;
  font-size: 12px;
  font-weight: 700;
}

.stamp_badge_all {
  border-color: rgba(221, 154, 51, 0.7);
  color: #dd9a33;
}

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

.stamp_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  padding: 12px 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.stamp_item_mark {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 2px solid #dd9a33;
  border-radius: 50%;
  color: #dd9a33;
  font-size: 16px;
  font-weight: 700;
}

.stamp_item_name {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #e8edf1;
}

.stamp_item_meta {
  margin: 2px 0 0;
  font-size: 12px;
  color: #8794a0;
}

.stamp_empty {
  padding: 4px 0;
  font-size: 13px;
  color: #8794a0;
  list-style: none;
}

.stamp_note {
  margin: 26px 0 0;
  font-size: 12px;
  line-height: 2;
  color: #8794a0;
}

@media screen and (max-width: 640px) {
  .stamp_pref_grid {
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  }
  .stamp_summary_have {
    font-size: 28px;
  }
  .stamp_checkin_btn {
    width: 100%;
  }
}
/* === スタンプラリーCTA（2026-07-19） === */
.stamp_cta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 14px;
  margin: 26px 0 0;
  padding: 16px 20px;
  border: 1px solid rgba(221, 154, 51, 0.5);
  border-radius: 12px;
  background-color: rgba(221, 154, 51, 0.08);
  text-decoration: none;
}

.stamp_cta:hover {
  background-color: rgba(221, 154, 51, 0.16);
}

.stamp_cta_icon {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 2px solid #dd9a33;
  border-radius: 50%;
  color: #dd9a33;
  font-size: 18px;
  font-weight: 700;
}

.stamp_cta_body {
  display: block;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 0;
}

.stamp_cta_title {
  display: block;
  color: #dd9a33;
  font-size: 15px;
  font-weight: 700;
}

.stamp_cta_text {
  display: block;
  margin-top: 2px;
  color: #b9c4cb;
  font-size: 12px;
  line-height: 1.8;
}

.stamp_cta_arrow {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  color: #dd9a33;
  font-size: 18px;
}

@media screen and (max-width: 640px) {
  .stamp_cta {
    padding: 14px 16px;
    gap: 10px;
  }
  .stamp_cta_icon {
    width: 32px;
    height: 32px;
    font-size: 15px;
  }
}
/* === スタンプ押印盤面（2026-07-19） === */
.stamp_list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  gap: 18px 14px;
  padding: 22px 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.03);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 34px, rgba(255, 255, 255, 0.03) 34px, rgba(255, 255, 255, 0.03) 35px);
}

.stamp_list .stamp_empty {
  grid-column: 1/-1;
}

.stamp_tile {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

.stamp_seal {
  display: block;
  width: 100%;
  max-width: 128px;
  height: auto;
  margin: 0 auto;
}

.stamp_tile_name {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: #8794a0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.stamp_tile_next {
  color: rgba(255, 255, 255, 0.22);
}

.stamp_tile_next .stamp_seal {
  opacity: 0.9;
}

@media screen and (max-width: 640px) {
  .stamp_list {
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 14px 10px;
    padding: 16px 12px;
  }
}
/* === スタンプ帳・県絞り込み（2026-07-19） === */
.stamp_pref {
  padding: 0;
}

.stamp_pref_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  width: 100%;
  padding: 6px 10px;
  color: inherit;
  text-decoration: none;
}

.stamp_pref_link:hover {
  color: #dd9a33;
}

.stamp_pref.is_active {
  border-color: #dd9a33;
  background-color: rgba(221, 154, 51, 0.14);
  color: #dd9a33;
}

.stamp_pref.is_active .stamp_pref_have {
  color: #dd9a33;
}

.stamp_sub_note {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 400;
  color: #8794a0;
}

.stamp_pref_clear {
  margin: -4px 0 10px;
  font-size: 12px;
}

.stamp_pref_clear a {
  color: #dd9a33;
  text-decoration: none;
}

.stamp_pref_clear a:hover {
  text-decoration: underline;
}

/* === 制覇セル hover 修正（2026-07-19） === */
.stamp_pref.is_complete .stamp_pref_link,
.stamp_pref.is_complete .stamp_pref_link:hover {
  color: #0e1721;
}

.stamp_pref.is_complete .stamp_pref_link:hover {
  opacity: 0.82;
}

.stamp_pref.is_complete.is_active {
  outline: 2px solid #e8edf1;
  outline-offset: -2px;
}

/* === 県セル状態の優先順位・最終定義（2026-07-19） === */
.stamp_pref.is_complete,
.stamp_pref.is_complete.is_active {
  background-color: #dd9a33;
  border-color: #dd9a33;
  color: #0e1721;
}

.stamp_pref.is_complete .stamp_pref_have,
.stamp_pref.is_complete .stamp_pref_link,
.stamp_pref.is_complete .stamp_pref_link:hover {
  color: #0e1721;
}

/* === スタンプラリー会員パネル（2026-07-19） === */
.stamp_auth {
  padding: 26px 20px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.04);
}

.stamp_auth_lead {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 2;
  color: #b9c4cb;
  text-align: center;
}

.stamp_auth_lead strong {
  color: #dd9a33;
}

.stamp_auth_forms {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  max-width: 720px;
  margin: 0 auto;
}

.stamp_auth_form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 10px;
  padding: 18px 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
}

.stamp_auth_title {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  color: #e8edf1;
}

.stamp_auth_input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.06);
  color: #e8edf1;
  font-size: 16px;
  font-family: inherit;
}

.stamp_auth_input::placeholder {
  color: #6d7a86;
}

.stamp_auth_input:focus {
  outline: none;
  border-color: #dd9a33;
}

.stamp_auth_btn {
  margin-top: 4px;
  padding: 11px 20px;
  border: 0;
  border-radius: 999px;
  background-color: #dd9a33;
  color: #0e1721;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}

.stamp_auth_btn:hover {
  opacity: 0.85;
}

.stamp_auth_btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.stamp_auth_btn_sub {
  background-color: transparent;
  border: 1px solid rgba(221, 154, 51, 0.6);
  color: #dd9a33;
}

.stamp_auth_msg {
  text-align: center;
}

.stamp_member {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  margin-bottom: 4px;
}

.stamp_member_name {
  margin: 0;
  font-size: 13px;
  color: #b9c4cb;
}

.stamp_member_name span {
  color: #dd9a33;
  font-weight: 700;
}

.stamp_member_logout {
  padding: 5px 14px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 999px;
  background: transparent;
  color: #8794a0;
  font-size: 11px;
  font-family: inherit;
  cursor: pointer;
}

.stamp_member_logout:hover {
  color: #e8edf1;
  border-color: #e8edf1;
}

/* === スタンプラリー SNS ログイン（2026-07-20） === */
.stamp_sns {
  max-width: 420px;
  margin: 0 auto 18px;
}

.stamp_sns_lead {
  margin: 0 0 10px;
  font-size: 12px;
  color: #8794a0;
  text-align: center;
}

.stamp_sns_btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 8px;
}

.stamp_sns_btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.15s;
}

.stamp_sns_btn:hover {
  opacity: 0.88;
}

.stamp_sns_or {
  position: relative;
  margin: 18px 0 0;
  text-align: center;
}

.stamp_sns_or::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.16);
}

.stamp_sns_or span {
  position: relative;
  display: inline-block;
  padding: 0 12px;
  background-color: rgba(255, 255, 255, 0.04);
  color: #8794a0;
  font-size: 12px;
}

/* === スタンプラリー パスワード再設定＋hidden修正（2026-07-20） === */
.stamp_rally [hidden] {
  display: none !important;
}

.stamp_auth_forgot {
  align-self: center;
  margin-top: 2px;
  padding: 2px 4px;
  background: transparent;
  border: 0;
  color: #8794a0;
  font-size: 12px;
  font-family: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.stamp_auth_forgot:hover {
  color: #dd9a33;
}

.stamp_reset_req {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 10px;
  max-width: 360px;
  margin: 0 auto;
  padding: 18px 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
}

.stamp_reset_actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 6px;
}

.stamp_reset_confirm {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 12px;
  max-width: 360px;
  margin: 0 auto;
  padding: 26px 20px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.04);
}

/* === スタンプラリー帳：範囲内スポット選択（2026-07-20） === */
.stamp_candidates {
  margin-top: 14px;
  padding: 18px 16px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.04);
  text-align: left;
}

.stamp_candidates_lead {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.8;
  color: #b9c4cb;
}

.stamp_candidates_list {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.stamp_candidates_item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.stamp_candidates_item label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 4px;
  cursor: pointer;
}

.stamp_candidates_item input[type=checkbox] {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
}

.stamp_candidates_desc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 3px;
}

.stamp_candidates_desc strong {
  font-size: 14px;
  font-weight: 700;
  color: #e8edf1;
}

.stamp_candidates_meta {
  font-size: 12px;
  color: #8794a0;
}

.stamp_candidates_confirm {
  display: block;
  width: 100%;
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background-color: #dd9a33;
  color: #0e1721;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}

.stamp_candidates_confirm:hover {
  opacity: 0.85;
}

/* === スタンプラリー 機種変引き継ぎコード（2026-07-20） === */
.stamp_auth_or {
  position: relative;
  margin: 14px 0;
  text-align: center;
}

.stamp_auth_or::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.16);
}

.stamp_auth_or span {
  position: relative;
  display: inline-block;
  padding: 0 12px;
  background-color: rgba(255, 255, 255, 0.04);
  color: #8794a0;
  font-size: 12px;
}

.stamp_member_transfer {
  margin-top: 6px;
  padding: 5px 14px;
  border: 1px solid rgba(221, 154, 51, 0.5);
  border-radius: 999px;
  background: transparent;
  color: #dd9a33;
  font-size: 11px;
  font-family: inherit;
  cursor: pointer;
}

.stamp_member_transfer:hover {
  background-color: rgba(221, 154, 51, 0.12);
}

.stamp_transfer_code {
  margin-top: 8px;
  padding: 10px 14px;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.06);
  text-align: center;
}

.stamp_transfer_code_num {
  margin: 0 0 4px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 6px;
  color: #dd9a33;
}

/* === スタンプラリー SNS シェア（2026-07-20） === */
.stamp_share {
  margin-top: 18px;
  padding: 16px;
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.04);
}

.stamp_share_title {
  margin: 0 0 10px;
}

.stamp_share_btns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.stamp_share_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 16px;
  border: 0;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
}

.stamp_share_btn_x {
  background-color: #000000;
  color: #ffffff;
}

.stamp_share_btn_line {
  background-color: #06c755;
  color: #ffffff;
}

.stamp_share_btn_ig {
  background: linear-gradient(45deg, #f58529, #dd2a7b, #8134af, #515bd4);
  color: #ffffff;
}

.stamp_share_btn:hover {
  opacity: 0.85;
}

/* === 閉業バッジ（自動更新で消えたスポット・削除せず表示のまま印を付ける） === */
.guide_card_closed {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  background-color: #9a3b3b;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  box-shadow: 0 1px 4px rgba(14, 23, 33, 0.35);
}

.guide_card[data-closed] {
  opacity: 0.85;
}

.spot_pop_closed {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background-color: #9a3b3b;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}

/* === スタンプ会員バー レイアウト刷新（2026-07-20 v2） === */
.stamp_member {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-bottom: 22px;
  padding: 14px 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.04);
}

.stamp_member_name {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 1;
  order: 1;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.stamp_member_transfer {
  -webkit-box-ordinal-group: 3;
  -ms-flex-order: 2;
  order: 2;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-top: 0;
  padding: 7px 16px;
  font-size: 12px;
  text-align: center;
}

.stamp_member_logout {
  -webkit-box-ordinal-group: 4;
  -ms-flex-order: 3;
  order: 3;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.stamp_transfer_code {
  -webkit-box-ordinal-group: 5;
  -ms-flex-order: 4;
  order: 4;
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%;
  margin-top: 2px;
}

@media screen and (max-width: 640px) {
  .stamp_member {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    gap: 10px;
    padding: 14px;
    text-align: center;
  }
  .stamp_member_transfer {
    width: 100%;
    padding: 12px 14px;
  }
  .stamp_member_logout {
    -ms-flex-item-align: center;
    align-self: center;
    padding: 6px 24px;
  }
  .stamp_transfer_code {
    margin-top: 0;
  }
}
/* === SA・PA/道の駅の施設アイコン（地図ポップアップ） === */
.spot_pop_facilities {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 8px;
}

.spot_pop_facility {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid rgba(89, 97, 93, 0.3);
  border-radius: 999px;
  font-size: 10px;
  color: #59615d;
}

/* === 種別タブ：スマホは横スクロールでなく折返し表示（2026-07-20） === */
@media screen and (max-width: 640px) {
  .spot_search_panel_types .guide_filter {
    flex-wrap: wrap;
    overflow-x: visible;
    border: none;
    gap: 8px;
  }
  .spot_search_panel_types .guide_filter_btn {
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
  }
}
/* === スタンプラリー アカウント連携（2026-07-23） === */
.stamp_link {
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
}

.stamp_link_summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: #dd9a33;
  list-style: none;
}

.stamp_link_summary::-webkit-details-marker {
  display: none;
}

.stamp_link_summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 6px;
  transition: transform 0.15s;
}

.stamp_link[open] .stamp_link_summary::before {
  transform: rotate(90deg);
}

.stamp_link_list {
  margin: 10px 0;
  padding: 0;
  list-style: none;
}

.stamp_link_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 13px;
  color: #e6ebee;
}

.stamp_link_item:last-child {
  border-bottom: none;
}

.stamp_link_empty {
  padding: 6px 0;
  font-size: 13px;
  color: #8794a0;
}

.stamp_link_unlink_btn {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding: 5px 12px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  background: transparent;
  color: #b9c4cb;
  font-size: 12px;
  cursor: pointer;
}

.stamp_link_unlink_btn:hover {
  border-color: #dd9a33;
  color: #dd9a33;
}

.stamp_link_add {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 8px;
  margin: 4px 0 0;
}

.stamp_link_add_btn {
  display: block;
  width: 100%;
  padding: 9px 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}

.stamp_link_add_btn:hover {
  opacity: 0.88;
}

.stamp_link_pass {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.stamp_link_msg {
  margin-top: 8px;
}

/* === ガイドページの画面キャプチャ（2026-07-25） === */
.guide_shot {
  margin: 32px auto 0;
  max-width: 420px;
}

.guide_shot img {
  width: 100%;
  height: auto;
  border: 1px solid #d8d2c2;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(36, 43, 42, 0.12);
}

.guide_shot_cap {
  margin-top: 10px;
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 1.7;
  color: #6f7a76;
  text-align: center;
}

@media screen and (max-width: 640px) {
  .guide_shot {
    max-width: 340px;
  }
}
/* === まる子漫画LP（2026-07-26） === */
.manga_page {
  background: #fdf9f2;
}

.manga_hero {
  position: relative;
  padding: 48px 20px 40px;
  text-align: center;
  background: linear-gradient(180deg, #eaf3ec 0%, #fdf9f2 100%);
  overflow: hidden;
}

.manga_hero_inner {
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* キャラ素材は 1254x1254 の正方形（周囲に透明の余白あり）。
   旧素材の縦長前提で組むと間延びするので、幅は控えめに取る。 */
.manga_hero_img {
  width: 100%;
  max-width: 320px;
  height: auto;
  margin: 0 auto 12px;
  display: block;
}

.manga_hero_title {
  font-size: clamp(22px, 5.6vw, 34px);
  font-weight: 700;
  color: #3a2d20;
  line-height: 1.5;
  margin: 0 0 10px;
}

.manga_hero_lead {
  font-size: clamp(14px, 3.4vw, 16px);
  color: #6b5c4a;
  line-height: 1.9;
  margin: 0;
}

.manga_section {
  padding: 48px 20px;
  max-width: 900px;
  margin: 0 auto;
}

.manga_section_label {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 6px 16px;
  border-radius: 999px;
  margin: 0 auto 14px;
}

.manga_section_label.is_stamp {
  color: #d0453e;
  background: #fdece9;
}

.manga_section_label.is_course {
  color: #3f6f8e;
  background: #e9f0f6;
}

.manga_section_head {
  text-align: center;
  margin: 0 0 32px;
}

.manga_section_title {
  font-size: clamp(20px, 4.6vw, 28px);
  font-weight: 700;
  color: #3a2d20;
  margin: 0 0 8px;
}

.manga_section_text {
  font-size: 14px;
  color: #6b5c4a;
  line-height: 1.8;
  margin: 0;
}

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

.manga_panel {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(58, 45, 32, 0.1);
  aspect-ratio: 1/1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.manga_panel_bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.manga_panel_no {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

.manga_panel_no.is_stamp {
  background: #d0453e;
}

.manga_panel_no.is_course {
  background: #3f6f8e;
}

/* キャラと吹き出しは横並び（flex）にして絶対に重ならないようにする。
   is_left のときだけ並び順を反転（キャラが左・吹き出しが右）。 */
.manga_panel_footer {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 6px;
  height: 40%;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  gap: 6px;
}

.manga_panel_footer.is_left {
  flex-direction: row-reverse;
}

.manga_panel_char {
  flex: 0 0 auto;
  height: 100%;
  width: auto;
  max-width: 44%;
  object-fit: contain;
  object-position: bottom;
  filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.12));
}

.manga_panel_bubble {
  flex: 1 1 auto;
  align-self: center;
  min-width: 0;
  max-height: 82%;
  overflow: hidden;
  background: #fff;
  border: 3px solid #5a4632;
  border-radius: 14px;
  padding: 6px 8px;
  margin: 0;
  font-size: clamp(10px, 2.2vw, 14px);
  font-weight: 700;
  color: #3a2d20;
  line-height: 1.3;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.manga_cta {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 560px;
  margin: 40px auto 0;
  padding: 18px 22px;
  border-radius: 14px;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 3px 10px rgba(58, 45, 32, 0.1);
}

.manga_cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(58, 45, 32, 0.16);
}

.manga_cta.is_stamp {
  background: #fff6f4;
  border: 2px solid #f2c4bd;
}

.manga_cta.is_course {
  background: #f2f7fb;
  border: 2px solid #c3d7e4;
}

.manga_cta_icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.manga_cta.is_stamp .manga_cta_icon {
  background: #d0453e;
  color: #fff;
}

.manga_cta.is_course .manga_cta_icon {
  background: #3f6f8e;
  color: #fff;
}

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

.manga_cta_title {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #3a2d20;
  margin: 0 0 4px;
}

.manga_cta_text {
  display: block;
  font-size: 13px;
  color: #6b5c4a;
}

.manga_cta_arrow {
  font-size: 20px;
  color: #a08c78;
  flex-shrink: 0;
}

.manga_divider {
  max-width: 900px;
  margin: 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, #e2d6c4, transparent);
}

/* 幕間コマ（スタンプ編 → コース編のつなぎ。横向きで寝ているまる子） */
.manga_interlude {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  max-width: 620px;
  margin: 0 auto;
  padding: 22px 24px;
  background: #f6efe2;
  border-radius: 18px;
}

.manga_interlude_img {
  flex: 0 0 auto;
  width: 116px;
  height: auto;
}

.manga_interlude_text {
  margin: 0;
  font-size: clamp(13px, 3.2vw, 15px);
  font-weight: 700;
  color: #6b5c4a;
  line-height: 1.8;
}

/* 締めコマ（丸くなって眠るまる子） */
.manga_outro {
  max-width: 620px;
  margin: 8px auto 0;
  padding: 40px 24px 56px;
  text-align: center;
}

.manga_outro_img {
  width: 100%;
  max-width: 240px;
  height: auto;
  margin: 0 auto 14px;
  display: block;
}

.manga_outro_title {
  font-size: clamp(17px, 4vw, 21px);
  font-weight: 700;
  color: #3a2d20;
  margin: 0 0 10px;
}

.manga_outro_text {
  font-size: clamp(13px, 3.2vw, 15px);
  color: #6b5c4a;
  line-height: 1.9;
  margin: 0 0 22px;
}

.manga_outro_link {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  background: #5a4632;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s ease;
}

.manga_outro_link:hover {
  background: #3a2d20;
}

@media screen and (max-width: 640px) {
  .manga_strip {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .manga_panel_footer {
    height: 44%;
  }
  .manga_panel_bubble {
    padding: 5px 6px;
    border-width: 2px;
  }
  .manga_interlude {
    gap: 10px;
    padding: 18px 16px;
  }
  .manga_interlude_img {
    width: 92px;
  }
  .manga_cta {
    flex-wrap: wrap;
    padding: 16px 18px;
  }
}