/* Auto-extracted shared styles. Do not edit per-page; put page-specific rules in each HTML <style>. */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: 50px
}

body {
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", sans-serif;
  font-weight: 500;
  color: #1a1a1a;
  background: #ece6dc;
  line-height: 1.75;
  overflow-x: hidden;
  font-feature-settings: "palt"
}

@media (min-width:431px) {

  html,
  body {
    background: #ffd7d7
  }
}

img {
  display: block;
  max-width: 100%
}

a {
  color: inherit;
  text-decoration: none
}

ul {
  list-style: none
}

button {
  font-family: inherit;
  cursor: pointer
}

.layout {
  display: flex;
  justify-content: center;
  min-height: 100vh
}

.content {
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  margin-top: 64px;
  background: #f5f0ea;
  box-shadow: 0 0 40px rgba(0, 0, 0, .08);
  min-height: calc(100vh - 64px);
  position: relative;
  z-index: 1
}

.header {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 430px;
  height: 64px;
  background: #fff;
  z-index: 100;
  box-shadow: 0 1px 6px rgba(0, 0, 0, .08)
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 14px
}

.header__logo img {
  height: 36px;
  width: auto
}

.header__right {
  display: flex;
  align-items: center;
  gap: 10px
}

.header__reserve {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f04646;
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  padding: 9px 10px 9px 16px;
  border-radius: 0
}

.header__reserve-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, .8);
  font-size: .78rem;
  line-height: 1;
  padding-bottom: 1px
}

.header__hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 7px;
  width: 28px;
  height: 36px;
  background: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
  flex-shrink: 0
}

.hamburger__bar {
  display: block;
  height: 2px;
  background: #1a1a1a;
  border-radius: 1px
}

.hamburger__bar:nth-child(1) {
  width: 26px
}

.hamburger__bar:nth-child(2) {
  width: 22px
}

.hamburger__bar:nth-child(3) {
  width: 16px
}

.nav-drawer {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 430px;
  height: 100%;
  background: #fff;
  z-index: 200;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease
}

.nav-drawer.is-open {
  opacity: 1;
  visibility: visible
}

.nav-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #ddd;
  height: 64px;
  flex-shrink: 0
}

.nav-drawer__close {
  position: relative;
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  cursor: pointer;
  flex-shrink: 0
}

.close__bar {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 22px;
  height: 2px;
  background: #f04646;
  border-radius: 1px
}

.close__bar--left {
  transform: translate(-50%, -50%) rotate(45deg)
}

.close__bar--right {
  transform: translate(-50%, -50%) rotate(-45deg)
}

.nav-drawer__list {
  flex: 1;
  padding: 0
}

.nav-drawer__list li {
  border-bottom: 1px solid #eee
}

.nav-drawer__link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  font-size: .95rem;
  font-weight: 700;
  transition: background .15s, color .15s
}

.nav-drawer__link:hover {
  background: #faf7f3;
  color: #f04646
}

.nav-drawer__num {
  font-family: Roboto, sans-serif;
  font-size: .85rem;
  font-weight: 700;
  color: #f04646;
  min-width: 22px
}

.nav-drawer__menu-label {
  font-family: Roboto, sans-serif;
  font-size: .82rem;
  font-weight: 700;
  color: #f04646;
  letter-spacing: .14em
}

.nav-drawer__cta {
  padding: 20px 16px 32px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px
}

.nav-drawer__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 16px 40px 16px 16px;
  border-radius: 10px;
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.4;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .2)
}

.nav-drawer__btn--red {
  background: #f04646;
  color: #fff
}

.nav-drawer__btn--green {
  background: #2db14f;
  color: #fff
}

.nav-drawer__btn--outline {
  background: #fff;
  color: #1a1a1a;
  border: 1px solid #1a1a1a;
  box-shadow: none
}

.nav-drawer__btn-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2rem;
  font-weight: 400
}

.nav-drawer__btn--outline .nav-drawer__btn-arrow {
  color: #f04646
}

.overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .45);
  z-index: 150;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s
}

.overlay.is-active {
  opacity: 1;
  pointer-events: auto
}

.breadcrumb {
  font-size: .68rem;
  color: #666;
  padding: 10px 16px;
  background: #fff;
  border-bottom: 1px solid #eee
}

.breadcrumb a {
  color: #f04646
}

.hero {
  position: relative;
  background: #000;
  color: #fff
}

.hero__slider {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  overflow: hidden;
  background: #000
}

.hero__slide {
  grid-area: 1 / 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  opacity: 0;
  transition: opacity .9s ease-in-out;
  pointer-events: none;
  z-index: 0
}

.hero__slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 1
}

.hero__slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain
}

.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  /*background: linear-gradient(to bottom, rgba(0, 0, 0, .05) 0%, rgba(0, 0, 0, .35) 50%, rgba(0, 0, 0, .72) 100%)*/
}

.hero__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, .85);
  background: rgba(0, 0, 0, .4);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  transition: background .2s
}

.hero__nav::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff
}

.hero__nav--prev::before {
  transform: rotate(-135deg);
  margin-left: 3px
}

.hero__nav--next::before {
  transform: rotate(45deg);
  margin-right: 3px
}

.hero__nav:hover {
  background: rgba(0, 0, 0, .6)
}

.hero__nav--prev {
  left: 10px
}

.hero__nav--next {
  right: 10px
}

.hero__body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 14px 18px 18px;
  z-index: 2
}

.hero__en {
  font-family: Roboto, sans-serif;
  font-size: .58rem;
  letter-spacing: .18em;
  color: rgba(255, 255, 255, .8);
  display: block;
  margin-bottom: 6px
}

.hero__title {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.35;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .4);
  white-space: nowrap
}

.hero__ward {
  display: inline-block;
  background: #f04646;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 100px;
  margin-top: 8px
}

.hero__deco {
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: flex;
  gap: 5px;
  align-items: center;
  z-index: 2
}

.hero__deco-bar {
  display: block;
  width: 18px;
  height: 3px;
  background: rgba(255, 255, 255, .35)
}

.hero__deco-bar.is-active {
  width: 26px;
  background: #f04646
}

.prop-intro {
  background: #f7f1e9;
  padding: 14px 16px 20px
}

.prop-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 12px
}

.prop-tags__item {
  font-size: .56rem;
  font-weight: 700;
  padding: 3px 8px;
  border: 1px solid #1a1a1a;
  background: #fff;
  color: #1a1a1a;
  line-height: 1.3
}

.prop-tags__item--status {
  background: #f04646;
  color: #fff;
  border-color: #f04646
}

.prop-heading {
  margin-bottom: 12px
}

.prop-heading__title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #1a1a1a
}

.prop-heading__en {
  font-family: Roboto, sans-serif;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  color: #f04646;
  margin-top: 2px
}

.quick-card {
  background: #fff;
  border-radius: 14px;
  padding: 14px 12px;
  margin-bottom: 12px
}

.quick__grid {
  display: grid;
  grid-template-columns: 75px 1fr;
  gap: 7px 8px;
  font-size: .7rem
}

.quick__key {
  font-weight: 700;
  color: #888
}

.quick__val {
  color: #333;
  line-height: 1.5
}

.quick__val--addr {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  flex-direction: column;
}

.quick-map-btn {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 4px 2px 4px 2px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 0.65rem;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  vertical-align: middle;
  text-decoration: none;
}

.quick-map-btn svg {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
}

.quick__note {
  color: #f04646;
  margin-left: 2%
}

.reserve-btn {
  display: block;
  background: #f04646;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
  box-shadow: 0 4px 12px rgba(240, 70, 70, .28)
}

.reserve-btn img {
  width: 70%;
  padding: 3%;
  margin: 0 auto;
  display: block
}

.nav-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  margin-top: 15px;
}

.nav-grid__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: #fff;
  border-radius: 10px;
  padding: 10px 4px 8px;
  font-size: .56rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.35;
  color: #1a1a1a
}

.nav-grid__item img {
  width: 26px;
  height: 26px;
  object-fit: contain
}

.section {
  padding: 28px 16px
}

.section--white {
  background: #fff
}

.section--alt {
  background: #f5f0ea
}

.sec-en {
  font-family: Roboto, sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  color: #f04646;
  text-align: center;
  margin-bottom: 4px
}

.sec-ja {
  font-size: 1.05rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px
}

.gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px
}

.gallery__item {
  border-radius: 8px;
  overflow: hidden;
  background: #ddd aspect-ratio: 4 / 3;
}

.gallery__item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.gallery__item:first-child {
  grid-column: 1/-1
}

.point-blocks {
  display: flex;
  flex-direction: column;
  gap: 28px
}

.point-block__name {
  font-size: .88rem;
  font-weight: 700;
  text-align: center;
  color: #1a1a1a;
  margin: 0 0 12px
}

.point-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px
}

.point-card {
  background: #fff;
  border: 1px solid #f04646;
  border-radius: 10px;
  padding: 14px 8px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 120px
}

.point-card__icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0
}

.point-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain
}

.point-card__text {
  margin: 0;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.5;
  color: #f04646;
  text-align: center
}

.point-card__note {
  display: block;
  margin-top: 4px;
  font-size: .5rem;
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.4
}

#gallery .sec-en,
#gallery .sec-ja,
#feature .sec-en,
#feature .sec-ja,
#outline .sec-en,
#outline .sec-ja,
#access .sec-en,
#access .sec-ja,
#recommend .sec-en,
#recommend .sec-ja {
  text-align: left
}

#gallery .sec-ja,
#feature .sec-ja,
#outline .sec-ja,
#access .sec-ja,
#recommend .sec-ja {
  font-size: 1.5rem;
  margin-bottom: 16px
}

#outline .outline+.sec-ja {
  margin-top: 28px
}

#feature,
#outline {
  background: #eae6d8
}

.feature-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px
}

.feature-item {
  background: #fff;
  border: 1px solid #f04646;
  border-radius: 10px;
  padding: 16px 8px;
  color: #1a1a1a;
  text-align: center
}

.feature-item__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px
}

.feature-item__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px
}

.feature-item__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain
}

.feature-item__title {
  width: 100%;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid #f04646;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.45;
  color: #f04646
}

.feature-item__line {
  height: 1px;
  background: #f04646;
  margin-bottom: 8px
}

.feature-item__text {
  font-size: 0.5em;
  color: #1a1a1a;
  line-height: 1.75;
  text-align: center
}

.outline {
  background: #fff;
  border: none;
  border-radius: 12px;
  overflow: hidden;
  padding: 4px 0
}

.outline__row {
  display: grid;
  grid-template-columns: 96px 1fr;
  font-size: .72rem;
  padding: 5px 16px;
  position: relative;
  align-items: center;
  gap: 8px
}

.outline__row:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 0;
  height: 1px;
  background: #e8e4dc
}

.outline__key {
  font-weight: 700;
  color: #f04646;
  line-height: 1.55
}

.outline__val {
  line-height: 2.5;
  color: #1a1a1a
}

.outline__val--red {
  color: #f04646
}

#outline .outline-heading {
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.45;
  margin-bottom: 12px
}

#outline .outline+.outline-heading {
  margin-top: 28px
}

.outline-acc {
  margin-top: 12px;
  border: 1px solid #f04646;
  border-radius: 10px;
  background: #fff;
  overflow: hidden
}

.outline-acc+.outline-acc {
  margin-top: 10px
}

.outline-acc__summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a1a;
  cursor: pointer;
  user-select: none
}

.outline-acc__summary::-webkit-details-marker {
  display: none
}

.outline-acc__summary::after {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-right: 2px solid #f04646;
  border-bottom: 2px solid #f04646;
  transform: rotate(45deg);
  transition: transform .2s ease;
  margin-top: -4px
}

.outline-acc[open]>.outline-acc__summary::after {
  transform: rotate(-135deg);
  margin-top: 4px
}

.outline-acc .outline {
  border-radius: 0;
  border-top: 1px solid #e8e4dc
}

.outline__notice-badge {
  border: 1px solid #231815;
  display: inline-block;
  padding: 3px 10px;
  font-size: 16px;
  margin: 0 0 10px
}

#access {
  background: #fff
}

.access-map {
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
  aspect-ratio: 16/10;
  background: #e8e4dc;
  position: relative
}

.access-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block
}

.access-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 20px
}

.access-photos__item {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: #ddd
}

.access-photos__item img {
  width: 100%;
  height: 100%;
  object-fit: fill
}

.access-photos__item p {
  position: absolute;
  color: #fff;
  bottom: 0;
  right: 10px;
  font-size: 0.8em;
  margin: 0;
  z-index: 1;
  text-align: right;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 0 1px rgba(0, 0, 0, 0.5);
}

.access-body {
  margin-top: 4px
}

.access-tabs {
  display: flex;
  border-bottom: 1px solid #e8e4dc
}

.access-tabs button {
  flex: 1;
  padding: 12px 4px 10px;
  border: none;
  background: none;
  font-size: .78rem;
  font-weight: 700;
  color: #1a1a1a;
  cursor: pointer;
  position: relative
}

.access-tabs button.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: #f04646;
  z-index: 1
}

.access-panel {
  display: none;
  padding-top: 4px
}

.access-panel.is-active {
  display: block
}

.access-list {
  list-style: none
}

.access-list li {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 8px 16px;
  align-items: start;
  padding: 14px 0;
  position: relative;
  font-size: .78rem;
  line-height: 1.55
}

.access-list li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #e8e4dc
}

.access-list__label {
  font-weight: 700;
  color: #1a1a1a;
  word-break: keep-all;
  white-space: nowrap
}

.access-list__label--full {
  font-weight: 500;
  color: #444;
  white-space: normal;
  word-break: break-word;
  grid-column: 1/-1
}

.access-list__val {
  color: #f04646;
  font-weight: 700;
  text-align: right;
  word-break: break-word;
  min-width: 0
}

.access-note {
  font-size: .62rem;
  color: #333;
  margin-top: 10px;
  line-height: 1.6
}

#recommend {
  background: #f7f1e9
}

.recommend-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px
}

.recommend-card {
  display: flex;
  gap: 12px;
  padding: 12px;
  background: #fff;
  border-radius: 12px;
  align-items: center;
  text-decoration: none;
  color: inherit
}

.recommend-card__img {
  width: 96px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3
}

.recommend-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.recommend-card__body {
  flex: 1;
  min-width: 0
}

.recommend-card__en {
  font-family: Roboto, sans-serif;
  font-size: .55rem;
  letter-spacing: .12em;
  color: #f04646;
  display: block;
  margin-bottom: 2px
}

.recommend-card__name {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 2px 0 4px
}

.recommend-card__meta {
  font-size: .66rem;
  color: #1a1a1a;
  line-height: 1.5
}

.recommend-card__arrow {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #f04646;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .5rem;
  font-weight: 400;
  line-height: 1
}

.recommend-all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 80%;
  margin: 0 auto;
  padding: 14px 28px;
  border: 1px solid #f04646;
  border-radius: 100px;
  font-size: .82rem;
  font-weight: 700;
  background: transparent;
  color: #1a1a1a;
  text-decoration: none
}

.recommend-all__arrow {
  color: #f04646;
  font-size: .72rem;
  font-weight: 400
}

.voice-sec {
  background: #fff;
  padding: 28px 16px 24px;
  text-align: center
}

.voice-sec__sup {
  display: inline-block;
  font-family: Roboto, sans-serif;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .14em;
  color: #1a1a1a;
  text-align: center;
  padding: 8px 28px;
  margin-bottom: 10px;
  border-top: 1px solid #3d3d3d;
  border-bottom: 1px solid #3d3d3d
}

.voice-sec__title {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 20px
}

.voice-card {
  background: #f2eed3;
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px
}

.voice-card__head {
  display: flex;
  gap: 18px;
  margin-bottom: 12px;
  align-items: flex-start
}

.voice-card__avatar {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center
}

.voice-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.voice-card__profile {
  flex: 0 0 auto;
  margin-left: 10%
}

.voice-card__name {
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: 8px;
  text-align: left
}

.voice-card__tags {
  display: grid;
  grid-template-columns: 75px 75px;
  gap: 4px;
  width: 124px
}

.voice-card__tags span {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6rem;
  font-weight: 700;
  background: #1a1a1a;
  padding: 8px 8px;
  border-radius: 100px;
  color: #fff;
  line-height: 1.25;
  text-align: center;
  word-break: keep-all
}

.voice-card__tags .voice-card__tag-wide {
  grid-column: 1/-1
}

.voice-card__text {
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.85;
  color: #333;
  text-align: left
}

.voice-sec__note {
  font-size: .6rem;
  color: #444;
  line-height: 1.65;
  margin-top: 4px;
  text-align: left
}

.entry {
  background: #fff;
  padding: 0 0 28px
}

.entry__photo {
  position: relative;
}

.entry__photo img {
  width: 100%;
  border-radius: 0;
  display: block
}

.entry__photo p {
  position: absolute;
  color: #fff;
  bottom: 0;
  right: 10px;
  font-size: 0.8em;
  margin: 0;
  z-index: 1;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 0 1px rgba(0, 0, 0, 0.5);
}


.entry__inner {
  padding: 16px 16px 0
}

.entry__present {
  margin-bottom: 16px
}

.entry__present img {
  width: 100%
}

.amazon-cta {
  margin: 0 0 16px
}

.amazon-cta__link {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  transition: transform .15s, box-shadow .2s
}

.amazon-cta__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18)
}

.amazon-cta__link img {
  display: block;
  width: 100%;
  height: auto
}

.amazon-cta__note {
  text-align: left;
  font-size: .72rem;
  color: #555;
  padding: 12px 0 0
}

.sns-static {
  --sum-bg: #eae6d8;
  --sum-bg-alt: #f8f5ef;
  --sum-text: #1a1a1a;
  --sum-gray: #888;
  --sum-font: "游ゴシック体", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
  --sum-font-en: "Roboto", var(--sum-font);
  width: 100%;
}

.sns-static__item {
  padding: 36px 16px 40px;
  box-sizing: border-box;
  color: var(--sum-text);
  font-family: var(--sum-font);
}

.sns-static__item:nth-child(odd) {
  background: var(--sum-bg-alt);
}

.sns-static__item:nth-child(even) {
  background: var(--sum-bg);
}

.sns-static__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
  margin-bottom: 16px;
}

.sns-static__titles {
  min-width: 0;
  flex: 1 1 0%;
  overflow: hidden;
}

.sns-static__en {
  margin: 0;
  font-family: var(--sum-font-en);
  font-size: clamp(26px, 6.5vw, 40px);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.04em;
  color: var(--sum-text);
  white-space: nowrap;
}

.sns-static__en--ja {
  font-family: var(--sum-font);
  font-feature-settings: "palt";
  font-size: clamp(24px, 6.5vw, 36px);
  white-space: normal;
}

.sns-static__radio {
  margin: 6px 0 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--sum-text);
}

.sns-static__account {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  margin-left: auto;
  position: relative;
  z-index: 1;
}

/* YouTube / Instagram: アイコン左端を同じスタート位置に揃える */
#area-youtube-a .sns-static__account,
#area-youtube-b .sns-static__account,
#area-instagram .sns-static__account {
  min-width: 195px;
  justify-content: flex-start;
}

/* Spotify のみ現状の位置を維持（右寄り） */
#area-life .sns-static__account {
  width: 160px;
  min-width: 160px;
  max-width: 160px;
  justify-content: flex-start;
  box-sizing: border-box;
}

/* INSTAGRAM は文字が長いので少し抑え、アカウント枠と干渉しないようにする */
#area-instagram .sns-static__en {
  font-size: clamp(22px, 5.6vw, 32px);
}

.sns-static__icon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sns-static__icon--yt {
  background: #f04646;
}

.sns-static__play {
  display: block;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  margin-left: 2px;
}

.sns-static__icon--ig {
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  font-size: 20px;
  color: #fff;
}

.sns-static__icon--pod {
  background: transparent;
  padding: 0;
  overflow: hidden;
}

.sns-static__icon--pod img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sns-static__account-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  line-height: 1.2;
}

.sns-static__name {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

.sns-static__handle {
  margin: 0;
  font-size: 11px;
  color: var(--sum-gray);
  line-height: 1.2;
}

.sns-static__desc {
  margin: 0 0 20px;
  font-size: 10px;
  line-height: 1.9;
  font-weight: 700;
  color: var(--sum-text);
}

.sns-static__desc--lg {
  font-size: 14px;
  line-height: 1.4;
}

.sns-static__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 18px;
  border: 1px solid #f04646;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: #f04646 !important;
  text-decoration: none !important;
  background: transparent;
  transition: transform .2s ease;
}

.sns-static__btn:hover {
  transform: translateX(4px);
  color: #f04646 !important;
}


.entry__title {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.45;
  margin: 20px auto 12px;
}

.entry__lead {
  font-size: .8rem;
  text-align: center;
  color: #000;
  margin-bottom: 16px;
  line-height: 1.8;
  font-weight: 700
}

.entry__raijou {
  display: block;
  background: #f04646;
  border-radius: 10px;
  overflow: hidden;
  margin-top: 12px;
  box-shadow: 0 4px 12px rgba(240, 70, 70, .28);
  text-decoration: none;
  padding: 3%
}

.entry__raijou img {
  width: 70%;
  margin: 0 auto;
  display: block;
  box-shadow: none
}

.cta-community-wrap {
  margin-top: 12px;
  text-align: center
}

.cta-community {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 25px 44px 25px 20px;
  border-radius: 10px;
  border: 2px solid #f04646;
  background: #f7f1e9;
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a1a;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12)
}

.cta-community__arrow {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  color: #1a1a1a;
  font-weight: 400
}

.cta-community__note {
  font-size: 1rem;
  font-weight: 700;
  color: #333;
  margin-top: 10px;
  line-height: 1.5;
  text-align: center
}

.cta-red,
.cta-amazon {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 12px;
  padding: 18px;
  border-radius: 10px;
  border: none;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
  transition: transform .15s
}

.cta-line {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 12px;
  padding: 8%;
  border-radius: 10px;
  border: none;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
  transition: transform .15s
}

.cta-line {
  background: #2db14f;
  color: #fff
}

.cta-line__main {
  font-size: 1.1rem;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .32)
}

.cta-line small,
.cta-red small {
  font-size: .7rem;
  margin-top: 4px;
  font-weight: 700
}

.cta-line small {
  color: #fff6b8;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .28)
}

.cta-line__arrow,
.cta-red__arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.6rem;
  font-weight: 400
}

.cta-red {
  background: #f04646;
  color: #fff;
  text-decoration: none
}

.cta-red__main {
  font-size: 1.1rem;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .32)
}

.cta-red:has(.cta-red__arrow) {
  padding-right: 40px
}

.cta-amazon {
  background: #f39a1a;
  color: #fff;
  text-decoration: none;
  padding: 14px 18px
}

.cta-amazon__img {
  width: 100%;
  box-shadow: none
}

.entry__note {
  font-size: .62rem;
  color: #444;
  line-height: 1.65;
  margin-top: 14px;
  text-align: center;
}

.footer {
  background: #1a1a1a;
  color: #fff;
  padding: 32px 20px 28px;
  text-align: left
}

.footer__logo {
  display: block;
  margin-bottom: 10px
}

.footer__logo img {
  height: 40px;
  width: auto
}

.footer__tag {
  font-size: .72rem;
  color: #fff;
  margin-bottom: 24px;
  line-height: 1.7
}

.footer__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 24px;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255, 255, 255, .25)
}

.footer__nav-col {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.footer__nav a {
  font-size: .72rem;
  color: #fff;
  line-height: 1.6;
  text-decoration: none;
  transition: color .2s
}

.footer__nav a:hover {
  color: #f04646
}

.footer__nav a.footer__nav-spaced {
  margin-top: calc(.72rem * 1.6 + 8px)
}

.footer__company {
  font-size: .62rem;
  color: rgba(255, 255, 255, .85);
  line-height: 1.7;
  margin-bottom: 6px
}

.footer__copy {
  font-size: .58rem;
  color: rgba(255, 255, 255, .6)
}

.footer__links {
  margin-bottom: 24px;
}

.footer__links-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-red);
  margin-bottom: 12px;
}

.footer__links p:not(.footer__links-label) {
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.7;
}

.line-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s
}

.line-modal.is-open {
  opacity: 1;
  visibility: visible
}

.line-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5)
}

.line-modal__panel {
  position: relative;
  width: 100%;
  max-width: 430px;
  background: #fff;
  border-radius: 20px 20px 0 0;
  padding: 16px 24px 32px;
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(.4, 0, .2, 1)
}

.line-modal.is-open .line-modal__panel {
  transform: translateY(0)
}

.line-modal__handle {
  display: block;
  width: 44px;
  height: 4px;
  background: #ccc;
  border-radius: 100px;
  margin: 0 auto 22px
}

.line-modal__head {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 22px
}

.line-modal__icon {
  flex-shrink: 0;
  width: 70px;
  height: 70px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center
}

.line-modal__icon img {
  width: 48px;
  height: auto
}

.line-modal__sup {
  font-size: 0.8rem;
  font-weight: 700;
  color: #2db14f
}

.line-modal__title {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 2px
}

.line-modal__title strong {
  color: #1a1a1a
}

.line-modal__list {
  margin-bottom: 24px
}

.line-modal__list li {
  position: relative;
  padding-left: 32px;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 14px
}

.line-modal__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  background: #2db14f;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem
}

.line-modal__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #2db14f;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 18px;
  border-radius: 8px;
  box-shadow: 0 6px 16px rgba(45, 177, 79, 0.3)
}

.line-modal__btn span {
  font-size: 1.3rem
}

.line-modal__close {
  display: block;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.9rem;
  color: #333;
  padding: 18px 0 0
}

/* ギャラリーアイテムをクリッカブルに */
.gallery__item img {
  cursor: pointer;
  transition: opacity 0.2s;
}

.gallery__item img:hover {
  opacity: 0.8;
}

/* モーダル */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

.modal.is-open {
  display: flex;
}

.modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
}

.modal__content {
  position: relative;
  z-index: 1;
  max-width: 90vw;
  max-height: 90vh;
}

.modal__img {
  display: block;
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
}

.modal__close {
  position: absolute;
  top: -16px;
  right: -16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: #fff;
  color: #333;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.modal__close:hover {
  background: #eee;
}

.update {
  font-size: 0.7em;
  text-align: right;
  display: block;
  margin-top: 15px;
}

.f_bold {
  font-weight: 600;
  font-size: 12px;
}

.sup {
  font-size: 0.6em;
  vertical-align: super;
}

.small {
  font-size: .5rem;
  text-align: left;
  display: block;
  margin-top: 5px;
}
.small {
  font-size: .5rem;
  text-align: left;
  display: block;
  margin-top: 5px;
}

.sec-ja__pref {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: #1a1a1a;
  letter-spacing: .06em;
  margin-bottom: -8px;
}
.sec-ja__sub {
  display: block;
  font-size: .78rem;
  font-weight: 500;
  color: #555;
  margin-top: 4px;
}