/* /dest/editor.css 上書き */
.entry-style {
  --entry-el-margin-md: 1rem;
  --entry-el-margin-lg: 1rem;
  color: var(--color-text);
}

/* 上下余白 */
.txt-wrapper > div > :first-child {
  margin-top: 0;
}

:where(.media-image-block),
:where(.entry-style) .node-imageBlock,
[class*=column-image],
[class*=column-media]:not(:has(a[href*=media-download], a[href*=storage])),
[class*=column-eximage] {
  margin-block: 0 var(--entry-el-margin-xs);
}

.entry-style p:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  font-size: 1rem;
  margin-block: 0 var(--entry-el-margin-xs);
  line-height: var(--line-height-lg);

  em {
    font-style: normal;
    font-weight: normal;
    color: var(--color-primary);
  }
}

/* リンク */
.entry-style a:not(:where([class~=not-editor-style], [class~=not-editor-style] *, [class~=media-image-block], [class~=media-image-block] *, [class~=column-image], [class~=column-image] *, [class~=column-media], [class~=column-media] *, [class~=column-eximage], [class~=column-eximage] *)) {
  color: var(--color-link);
  text-decoration: underline;
}
@media (hover: hover) {
  .entry-style a:not(:where([class~=not-editor-style], [class~=not-editor-style] *, [class~=media-image-block], [class~=media-image-block] *, [class~=column-image], [class~=column-image] *, [class~=column-media], [class~=column-media] *, [class~=column-eximage], [class~=column-eximage] *)):-moz-any-link:hover {
    opacity: 1;
  }
  .entry-style a:not(:where([class~=not-editor-style], [class~=not-editor-style] *, [class~=media-image-block], [class~=media-image-block] *, [class~=column-image], [class~=column-image] *, [class~=column-media], [class~=column-media] *, [class~=column-eximage], [class~=column-eximage] *)):any-link:hover {
    opacity: 1;
  }
}

/* リンクボタン */
.entry-style .acms-admin-block-editor-link-button-link,
.entry-style .link-button-block-link {
  display: flex;
  justify-content: center;
  gap: .5rem;
  width: 100%;
  border-radius: 0;
  text-decoration: none;
  transition: opacity .3s;
  &:disabled {
    opacity: 0.5;
    pointer-events: none;
  }
}

@media (hover: hover) {
  .entry-style .acms-admin-block-editor-link-button-link:hover,
  .entry-style .link-button-block-link:hover,
  .entry-style .acms-admin-block-editor-link-button-link:any-link:hover,
  .entry-style .link-button-block-link:any-link:hover {
    background-color: var(--color-primary-hover);
  }
}

/* 見出し */
.entry-style :is(h1, h2, h3, h4, h5, h6):not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  font-family: var(--font-oswald);
}

.entry-style h2:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  font-size: var(--font-3xl);
}

.entry-style h2:not([class]) {
  position: relative;
  padding-bottom: 0.8rem;
  &::after {
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 1rem;
    height: 3px;
    background: var(--color-primary);
    content: "";
  }
}

.entry-style h3:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  font-size: var(--font-2xl);

  &.is-bordered {
    border: 0;
    border-bottom: 1px solid var(--color-neutral500);
    padding-bottom: 1rem;
  }
}

.entry-style h4:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  font-size: var(--font-lg);
}

.entry-style p.heading-onepoint {
  margin-bottom: 0;
  color: var(--color-primary);
  font-family: var(--font-oswald);
  line-height: var(--line-height-base);

  & + :is(h1, h2, h3, h4, h5, h6) {
    margin-top: 0;
  }
}

/* リスト */
.entry-style ul:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  padding-left: calc(1lh + 0.375rem);

  li::before {
    left: -1.875rem;
    background: var(--color-text-2nd);
  }
}

.entry-style ol:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  padding-left: 0;
}

/* 引用 */
.entry-style blockquote:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  padding: 0 0 0 1rem;
  border: 0;
  border-left: var(--border-width-lg) solid var(--color-text-2nd);

  p {
    margin-bottom: 0;
  }
}

/* テーブル */
.entry-style table:not(:where([class~=not-editor-style], [class~=not-editor-style] *)) {
  border-color: var(--color-neutral500);
  th {
    color: var(--color-text);
    background: var(--color-neutral700);
  }
  td {
    color: var(--color-text);
    background: var(--color-neutral900);
  }
}

/* メディア */
.acms-admin-block-editor-file-link, .media-file-block[data-display-type=button] a, [class*=column-media] a[href*=media-download], [class*=column-media] a[href*=storage], [class*=column-file] a {
  border-color: var(--color-neutral500);
  background: var(--color-neutral700);
  color: var(--color-text);
}
.entry-style .acms-admin-block-editor-file-link img,
.entry-style .media-file-block[data-display-type=button] img,
.entry-style [class*=column-media] .columnIcon, .entry-style [class*=column-file] .columnIcon {
  width: 32px;
  height: auto;
}

.entry-style .acms-admin-block-editor-file:not(:has(.acms-admin-block-editor-file-link)),
.entry-style .media-file-block[data-display-type=icon] {
  img {
    width: 72px;
    height: auto;
  }
}

.acms-admin-block-editor-file:not(:has(.acms-admin-block-editor-file-link)) .caption,
.media-file-block[data-display-type=icon] .caption {
  color: currentColor;
}

.acms-admin-block-editor-file-link .caption, .media-file-block[data-display-type=button] .caption, [class*=column-file] .caption, [class*=column-media]:has(a[href*=media-download], a[href*=storage]):has(.columnIcon) .caption {
  color: white;
}

:where(.media-image-block) figcaption, :where(.acms-admin-block-editor-image) figcaption, [class*=column-image] .caption, [class*=column-media]:not(:has(a[href*=media-download], a[href*=storage])) .caption, [class*=column-eximage] .caption {
  margin-top: 0.5rem;
  color: currentColor;
  line-height: var(--line-height-lg);
}


/* /dest/bundle.css 上書き */
/* フォーム */
.form-input-wrap {
  padding-bottom: 2rem;
}

.form-group {
  input[type="file"],
  label {
    cursor: pointer;
    transition: background 0.3s;
  }

  input[type=text],
  input[type=password],
  input[type=datetime], input[type=datetime-local], input[type=date],
  input[type=month], input[type=time], input[type=week],
  input[type=number],
  input[type=email],
  input[type=url], input[type=search],
  input[type=tel],
  textarea,
  select {
    &,
    &.invalid,
    &.focused:invalid {
      border-color: var(--color-neutral500);
      background-color: var(--input-bg);
      color: var(--color-white);
    }

    &:focus,
    &:hover {
      border-color: var(--color-neutral500);
      background-color: var(--color-neutral700);
      color: var(--color-white);
    }

    &:focus {
      box-shadow: var(--box-shadow-focus);
    }

    &.invalid,
    &.focused:invalid {
      box-shadow: var(--box-shadow-error);
    }
  }

  input[type="file"] {
    color: var(--color-white);
  }

  select {
    background-image: url("../images/icon-chevron-down-white.svg");
    background-position: right 0.75rem center;
  }
  select.acms-form-width-full {
    width: 100%;
  }
}

.form-group-list.is-confirm {
  margin-top: var(--gutter-md);

  .form-group {
    padding-bottom: var(--gutter-md);
    border-bottom: 1px solid var(--color-neutral700);
  }

  .form-label {
    margin-bottom: 0.75rem;
  }
}

.form-radio input[type=radio] {
  & + .ico-radio,
  &.invalid + .ico-radio,
  &.focused:invalid + .ico-radio {
    border-color: var(--color-neutral500);
    background-color: var(--input-bg);
    background-image: none;
  }

  &:focus + .ico-radio {
    box-shadow: var(--box-shadow-focus);
  }

  &.invalid + .ico-radio,
  &.focused:invalid + .ico-radio {
    box-shadow: var(--box-shadow-error);
  }
}

.form-checkbox input[type=checkbox] {
  & + .ico-checkbox,
  &.invalid + .ico-checkbox,
  &.focused:invalid + .ico-checkbox {
    border-color: var(--color-neutral500);
    background-color: var(--input-bg);
    background-image: none;
  }

  &:focus + .ico-checkbox {
    box-shadow: var(--box-shadow-focus);
  }

  &.invalid + .ico-checkbox,
  &.focused:invalid + .ico-checkbox {
    box-shadow: var(--box-shadow-error);
  }
}

.form-group .form-checkbox-only {
  display: flex;
  cursor: pointer;
  width: 100%;
  border-radius: var(--border-radius-md);

  &,
  &.invalid,
  &.focused:invalid {
    border-color: var(--color-neutral500);
    background: var(--input-bg);
  }

  &:focus,
  &:focus-within,
  &:hover {
    border-color: var(--color-neutral500);
    background-color: var(--color-neutral700);
    color: var(--color-white);
  }

  &:focus,
  &:focus-within {
    box-shadow: var(--box-shadow-focus);
  }

  .ico-checkbox {
    flex: none;
    align-self: flex-start;
  }

  a {
    text-decoration: underline;
    @media (hover: hover) {
      &:hover {
        text-decoration: none;
      }
    }
  }
}
.form-group .form-checkbox.invalid .form-checkbox-only {
  box-shadow: var(--box-shadow-error);
}

.form-file {
  line-height: 1;
  width: 100%;
  padding: 0.75rem 1rem;
  border: var(--border-width-sm) solid var(--color-neutral500);
  border-radius: var(--border-radius-md);
  background: var(--input-bg);
  color: var(--color-white);

  &:focus,
  &:focus-within,
  &:hover {
    border-color: var(--color-neutral500);
    background-color: var(--color-neutral700);
    color: var(--color-white);
  }

  &:focus,
  &:focus-within {
    box-shadow: var(--box-shadow-focus);
  }

  input[type="file"]::file-selector-button,
  input[type="file"]::file-selector-button:hover {
    appearance: none;
    margin-right: 0.75rem;
    border: var(--border-width-sm) solid var(--color-neutral500);
    border-radius: var(--border-radius-md);
    background: var(--input-bg);
    color: var(--color-white);
  }

  input[type="file"]:focus {
    outline: none;
    box-shadow: none;
  }
}

.form-helper-text {
  font-size: var(--font-sm);
}

.form-button-group {
  display: grid;
  justify-content: stretch;

  .form-button:not(:last-child) {
    margin: 0;
  }
}

.form-group .sq-card-wrapper .sq-card-component {
  border-radius: var(--border-radius-md);
}


/* calendar */
.c-calendar-wrap {
  width: 100%;
  overflow-x: auto;
  color: var(--color-white);
  background: var(--input-bg);
  border: 1px solid var(--color-neutral500);
  border-radius: var(--border-radius-md);
}

.c-calendar__inner {
  display: flex;
  width: max-content;
}

.c-calendar-month {
  --cell-width: 48px;
  --header-height: 26px;
  --date-height: 60px;
  --item-height: 48px;

  display: grid;
  grid-template-columns: repeat(var(--days), var(--cell-width));
  grid-template-rows:
    var(--header-height)
    var(--date-height)
    repeat(var(--item-count), var(--item-height));

  width: max-content;
}

.c-calendar-month__heading {
  grid-row: 1;
  grid-column: 1 / -1;

  position: relative;
  z-index: 5;

  display: flex;
  align-items: center;

  width: calc(var(--days) * var(--cell-width));
  min-width: calc(var(--days) * var(--cell-width));

  border-right: 1px solid var(--color-neutral500);
  border-bottom: 1px solid var(--color-neutral500);
}

.c-calendar-month__heading__inner {
  position: sticky;
  left: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  height: 100%;
  padding-left: 6px;
  font-size: 12px;
}

.c-calendar {
  display: contents;
}

.c-calendar__heading,
.c-calendar__item {
  border-right: 1px solid var(--color-neutral500);
  border-bottom: 1px solid var(--color-neutral500);
}

.c-calendar__heading {
  grid-row: 2;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  margin: 0;
  line-height: 1;
}

.c-calendar__heading__date {
  font-size: 14px;
  font-weight: bold;
}

.c-calendar__heading__day {
  margin-top: 6px;
  font-size: 12px;
  text-transform: uppercase;
}

/* 必要に応じて曜日クラス名に合わせて調整してください */
.c-calendar.SAT .c-calendar__heading,
.c-calendar.Saturday .c-calendar__heading,
.c-calendar.sat .c-calendar__heading {
  color: var(--color-text-saturday);
}

.c-calendar.SUN .c-calendar__heading,
.c-calendar.Sunday .c-calendar__heading,
.c-calendar.sun .c-calendar__heading {
  color: var(--color-text-sunday);
}

.c-calendar__item {
  margin: 0;
  font-size: 12px;
}

.c-calendar__item > div {
  height: 100%;
}

.c-calendar__item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.c-calendar__item label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  cursor: pointer;
  background: transparent;
  line-height: 1;
}

.c-calendar__item label:hover {
  color: var(--color-primary);
}

.c-calendar__item input:checked + label {
  background: var(--color-primary);
  color: var(--color-white);
}

.c-calendar__item input:disabled + label {
  color: var(--color-neutral500);
  cursor: not-allowed;
}

.c-calendar__item input:disabled + label span {
  font-size: 0;
}

.c-calendar__item input:disabled + label span::before {
  content: "×";
  color: var(--color-neutral300);
  font-size: 20px;
  font-weight: bold;
}


/* swiper */
:root {
  --swiper-pagination-color: var(--color-primary);
  --swiper-pagination-bullet-inactive-color: var(--color-white);
}

html,
body {
  position: relative;
  width: 100%;
  height: 100%;
  scroll-behavior: smooth;
  font-size: 1rem;
  line-height: var(--line-height-lg);
}

/*	link setting	*/
a:hover {
  opacity: 0.8;
  transition: opacity 0.5s;
}

/* header */
.header-logo {
  width: auto;
  height: 32px;
}

.header-seo {
  margin-top: 2rem;
  .acms-container {
    padding-inline: 0;
  }
}

/* menu */
#menu {
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(0);
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}

#menu-toggle:checked ~ #menu {
  visibility: visible;
  opacity: 1;
}

.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 5;
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  cursor: pointer;
}

#menu-toggle:checked ~ .menu-overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.menu-button {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 20;
  transition: all 0.3s ease; /* スムーズな変形アニメーション */
}

.hamburger-icon {
  --hamburger-line-thickness: 1px;
  position: relative;
  display: block;
  width: 32px;
  height: 19px;
  backdrop-filter: blur(2px);
}

.hamburger-icon span {
  position: absolute;
  left: 0;
  width: 100%;
  height: var(--hamburger-line-thickness);
  background: var(--color-white);
  transition: top 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}

.hamburger-icon span:nth-child(1) {
  top: 0;
}

.hamburger-icon span:nth-child(2) {
  top: calc(50% - (var(--hamburger-line-thickness) / 2));
}

.hamburger-icon span:nth-child(3) {
  top: calc(100% - var(--hamburger-line-thickness));
}

#menu-toggle:checked ~ .menu-button .hamburger-icon span:nth-child(1) {
  top: calc(50% - (var(--hamburger-line-thickness) / 2));
  transform: rotate(20deg);
}

#menu-toggle:checked ~ .menu-button .hamburger-icon span:nth-child(2) {
  opacity: 0;
}

#menu-toggle:checked ~ .menu-button .hamburger-icon span:nth-child(3) {
  top: calc(50% - (var(--hamburger-line-thickness) / 2));
  transform: rotate(-20deg);
}

.menu-text {
  opacity: 0; /* デフォルトで非表示 */
  transition: opacity 0.3s ease; /* 文字の表示/非表示をスムーズに */
}

/* contact */
#contactLink {
  background: rgba(255,255,255,0.95);
  transform: translateX(0);
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}
#contactLink .acms-admin-btn-action-group .acms-admin-hstack {
  display: inherit !important;
  width: 100%;
  margin-bottom: 0.5rem;
}

#contactLink .acms-admin-btn-action-group .acms-admin-hstack form button{
  margin-bottom: 0.5rem;
  padding: 1em;
  width: 100%;
  display: block;
}
#contactLink-toggle:checked ~ #contactLink {
  visibility: visible;
  opacity: 1;
}


/* entrysetting */
#entrysetting {
  background: rgba(255,255,255,0.95);
  transform: translateX(0);
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}
#entrysetting .acms-admin-btn-action-group .acms-admin-hstack {
  display: inherit !important;
  width: 100%;
  margin-bottom: 0.5rem;
}

#entrysetting .acms-admin-btn-action-group .acms-admin-hstack form button{
  margin-bottom: 0.5rem;
  padding: 1em;
  width: 100%;
  display: block;
}
#entrysetting-toggle:checked ~ #entrysetting {
  visibility: visible;
  opacity: 1;
}

/* sitemap */
#sitemap {
  background: rgba(255,255,255,0.95);
  transform: translateX(0);
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}
#sitemap .acms-admin-btn-action-group .acms-admin-hstack {
  display: inherit !important;
  width: 100%;
  margin-bottom: 0.5rem;
}

#sitemap .acms-admin-btn-action-group .acms-admin-hstack form button{
  margin-bottom: 0.5rem;
  padding: 1em;
  width: 100%;
  display: block;
}
#sitemap-toggle:checked ~ #sitemap {
  visibility: visible;
  opacity: 1;
}

#sitemap .txt-wrapper,
#sitemap .txt-wrapper p,
#sitemap .txt-wrapper em,
#sitemap .txt-wrapper ul li,
#sitemap .txt-wrapper ol li,
#sitemap .txt-wrapper dl,
#sitemap .txt-wrapper dt,
#sitemap .txt-wrapper dd,
#sitemap .txt-wrapper table th,
#sitemap .txt-wrapper table td,
#sitemap .txt-wrapper-detail,
#sitemap .txt-wrapper-detail p,
#sitemap .txt-wrapper-detail em,
#sitemap .txt-wrapper-detail ul li,
#sitemap .txt-wrapper-detail ol li,
#sitemap .txt-wrapper-detail dl,
#sitemap .txt-wrapper-detail dt,
#sitemap .txt-wrapper-detail dd,
#sitemap .txt-wrapper-detail table th,
#sitemap .txt-wrapper-detail table td {
  font-size: clamp(1px, 1.0vw, 12px);
  line-height: 1.5;
  margin-bottom: 0.5em;
}

#sitemap .txt-wrapper h2,
#sitemap .txt-wrapper-detail h2  {
  font-size: clamp(1px, 1.6vw, 18px);
  line-height: 1.3;
  margin-bottom: 0.5em;
}

#sitemap .txt-wrapper h3,
#sitemap .txt-wrapper-detail h3  {
  font-size: clamp(1px, 1.6vw, 16px);
  line-height: 1.3;
  margin-bottom: 0.5em;
}

#sitemap .txt-wrapper h4,
#sitemap .txt-wrapper-detail h4  {
  font-size: clamp(1px, 1.6vw, 14px);
  line-height: 1.3;
  margin-bottom: 0.5em;
}

#sitemap .txt-wrapper h5,
#sitemap .txt-wrapper-detail h5  {
  font-size: clamp(1px, 1.6vw, 13px);
  line-height: 1.3;
  margin-bottom: 0.5em;
}

#sitemap .txt-wrapper h6,
#sitemap .txt-wrapper-detail h6  {
  font-size: clamp(1px, 1.6vw, 12px);
  line-height: 1.3;
  margin-bottom: 0.5em;
}



/*	swiper	*/
.swiper {
  margin: 0 auto;
  height: auto;
  /* max-width: 520px; */
  max-height: 100%;
  /* object-fit: cover; */
  /* aspect-ratio: 9/16; */
}

.swiper-slide {
  display: flex;
  font-size: 18px;
  opacity: 0;
  animation: fadeIn 1s forwards;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
}
@keyframes fadeIn {
  to { opacity: 1; }
}

.swiper-slide img:not([class*="no-covered"]),
.swiper-slide video {
  display: block;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.swiper-slide .txt-wrapper{
  overflow-y: scroll;
  width: 100%;
  max-height: 100%;
  overscroll-behavior: contain;
}

.txt-wrapper-nextbtn{
  height: calc(100% - 80px) !important;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 94%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 94%, transparent 100%);
}

.swiper-slide .txt-wrapper-detail{
  /* display: flex; */
  width: 100%;
  height: 100%;
  /* justify-content: center;
  align-items: center; */
}

.swiper-item-grid > :first-child {
  min-width: 100%;
}

.swiper-button-next:after{
  font-size: 2.5em;
  margin-right: 0.75em;
}
.swiper-button-prev:after {
  font-size: 2.5em;
  margin-left: 0.75em;
}

//safari対応
.swiper-3d .swiper-cube-shadow, .swiper-3d .swiper-slide, .swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-bottom, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top, .swiper-3d .swiper-wrapper{
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
}

/* top scroll down */
.top_scroll_down{
  position:absolute;
  bottom:30px;
  right:50%;
  transform: translateX(50%);
  animation: arrowmove 1s ease-in-out infinite;
}

.top_scroll_down a{
  color: #fff;
  text-transform: uppercase;
  width: 24px;
  height: 24px;
  text-decoration: none;
}

.top_scroll_down .text {
  display: block;
  margin-top: 70px;
  font-size: var(--font-xs);
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
}

.top_scroll_down .arrow-wrap {
  position: absolute;
  top: 0;
  right: 50%;
  transform: translateX(50%);
  width: 26px;
}

.top_scroll_down .arrow {
  position: absolute;
  width: 28px;
  height: 5px;
  opacity: 0;
  transform: scale3d(0.5, 0.5, 0.5);
  animation: move 3s ease-out infinite;
}

.top_scroll_down .arrow:first-child {
  animation: move 3s ease-out 1s infinite;
}

.top_scroll_down .arrow:nth-child(2) {
  animation: move 3s ease-out 2s infinite;
}

.top_scroll_down .arrow:before,
.top_scroll_down .arrow:after {
  content: ' ';
  position: absolute;
  top: 0;
  height: 100%;
  width: 51%;
  background: #fff;
}

.top_scroll_down .arrow:before {
  left: 0;
  transform: skew(0deg, 30deg);
}

.top_scroll_down .arrow:after {
  right: 0;
  width: 50%;
  transform: skew(0deg, -30deg);
}

@keyframes move {
  25% { opacity: 1; }
  33% { opacity: 1; transform: translateY(30px); }
  67% { opacity: 1; transform: translateY(40px); }
  100% { opacity: 0; transform: translateY(55px) scale3d(0.5, 0.5, 0.5); }
}


/*
　SNSアイコン
------------------------------ */
.banner-section-wrapper {
  box-shadow: var(--box-shadow);
}

.sns-list-icon{
    grid-template-columns: repeat(var(--sns-list-icon-count), 1fr);
    gap: 1.25rem;
}

.sns-list-icon-menu{
    display: inline-grid;
    grid-template-columns: repeat(var(--sns-list-icon-menu-count), 1fr);
    gap: 1.25rem;
    vertical-align: top;
}
.sns-list-icon-menu ul li a img{
  place-content: center;
}


/*
　シェア用モーダルウインドウ
------------------------------ */
.entry-share-modal .share-button {
  /* display: inline-flex;
  gap: 0.375rem;
  align-items: center; */
  cursor: pointer;
}
.entry-share-modal .share-icon {
  width: 1.5rem;
  height: 1.5rem;
}
.entry-share-modal .share-label {
  font-weight: bold;
  transition: opacity 0.2s ease;
}
.entry-share-modal .share-label:hover {
  opacity: 0.6;
}
.entry-share-modal .share-dialog {
  z-index: 1000;
  box-sizing: border-box;
  width: 91.667%;
  max-width: 32rem;
  margin: auto;
  padding: 2rem;
  background-color: #fff;
  background-blend-mode: multiply;
  border: 0;
  border-radius: var(--border-radius-lg);
  -webkit-backdrop-filter: blur(8px);
      backdrop-filter: blur(8px);
}
.entry-share-modal .share-dialog::backdrop {
  background-color: var(--color-black80);
}
.entry-share-modal .dialog-title {
  margin: 0;
  color: var(--color-text);
  font-weight: bold;
  text-align: center;
}
.entry-share-modal .sns-list {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  justify-content: center;
  margin: 1.5rem 0;
  padding: 0;
  list-style-type: none;
}
.entry-share-modal .sns-link {
  display: inline-block;
  transition: opacity 0.2s ease;
}
.entry-share-modal .sns-link:hover {
  opacity: 0.7;
}
.entry-share-modal .sns-link.line {
  color: #06C755;
}
.entry-share-modal .url-copy-area {
  display: flex;
  gap: 0.5rem;
}
.entry-share-modal .copy-input-wrap {
  position: relative;
  flex: 1;
}
.entry-share-modal .copy-icon {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  width: 1.25rem;
  color: #6b7280;
}
.entry-share-modal .copy-icon svg {
  width: 100%;
  height: auto;
}
.entry-share-modal .copy-input {
  width: 100%;
  height: 100%;
  padding: 0.75rem 1rem 0.75rem 2.5rem;
  border: 1px solid var(--color-gray30);
  border-radius: var(--border-radius-md);
}
.entry-share-modal .copy-button-wrap .button {
  padding-inline: 0.75rem;
  font-size: 0.875rem;
}
.entry-share-modal .dialog-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0.25rem;
  color: #fff;
  text-align: center;
  background-color: #6b7280;
  border: none;
  border-radius: var(--border-radius-round);
  cursor: pointer;
}
.entry-share-modal .close-icon {
  width: 1rem;
  height: 1rem;
}


/*
　メニュー（グローバルナビゲーション）
------------------------------ */
.global-navigation {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10;
  box-sizing: border-box;
  max-width: 360px;
  width: 100%;
  height: 100dvh;
  padding: 4rem 2rem;
  background: var(--color-neutral900);
}

.global-navigation-container {
  max-height: 100%;
  overflow-y: auto;
}

.global-navigation-list {
  color: var(--color-white);
  font-weight: 500;
  font-family: var(--font-oswald);

  li {
    border-bottom: 1px solid var(--color-neutral500);
  }

  a {
    display: flex;
    padding: 1rem 0;
    justify-content: space-between;
    align-items: center;
  }
}


/*
　コピーライト
------------------------------ */
.copyright {
  display: block;
  margin-top: 2rem;
  color: var(--color-neutral300);
  font-size: var(--font-xs);
}


/*
　Vehicle一覧
------------------------------ */
.card-vehicle-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 15px;
}

.card-vehicle {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.card-vehicle-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 3 / 2;

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

.card-vehicle-title {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 18px 15px;
  margin: 0;
  background-color: var(--color-neutral700);
  color: var(--color-white);
  font-family: var(--font-roboto);
  font-size: var(--font-sm);
  font-weight: 700;
  line-height: var(--line-height-lg);
}

.card-vehicle-title span:first-child {
  flex: 1 0 0;
  min-width: 1px;
}

.card-vehicle-arrow {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7px;
}

/* コンパクト版 */
.is-card-compact .card-vehicle {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.is-card-compact .card-vehicle-image {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
}

.is-card-compact .card-vehicle-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.is-card-compact .card-vehicle-title {
  flex: 1 0 0;
  min-width: 1px;
  align-self: stretch;
  background-color: var(--color-neutral700);
  color: var(--color-white);
  font-family: var(--font-roboto);
  font-size: var(--font-sm);
  font-weight: 700;
  line-height: var(--line-height-lg);
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px;
  margin: 0;
}


/*
　Vehicle スライドショー
------------------------------ */
.vehicle-gallery {
  margin-bottom: 15px;
}


/*
　Read Moreボタン
------------------------------ */
.continue-link {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: .5rem 1rem;
  line-height: 1.7;
  border: 1px solid currentColor;
  color: var(--color-primary);
  font-weight: bold;
  text-align: center;
}

@media (hover: hover) {
  .continue-link,
  .continue-link:any-link {
    transition: background-color .3s;
  }
  .continue-link:hover,
  .continue-link:any-link:hover {
    opacity: 1;
    color: var(--color-primary);
    background: rgba(255,255,255,0.1);
  }
}


/*
　サイドバナー
------------------------------ */
.side-banner {
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
}

.side-banner-item {
  width: 100%;
  max-width: 203px;
}

.side-banner-link {
  display: block;
}

.side-banner-img {
  width: 100%;
  height: auto;
  border-radius: var(--border-radius-md);
}


/*
　ラジオボタンカード
------------------------------ */
.radio-card,
.form-radio label.radio-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid var(--color-neutral500);
  border-radius: var(--border-radius-md);
  color: var(--color-white);
  cursor: pointer;

  &,
  &.invalid,
  &.focused:invalid {
    background: var(--input-bg);
  }

  &:focus,
  &:focus-within,
  &:hover {
    background-color: var(--color-neutral700);
  }

  &:focus,
  &:focus-within {
    box-shadow: var(--box-shadow-focus);
  }
}

.radio-card-radio-col {
  flex: 0 0 auto;
  line-height: 1;
}

.radio-card-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 9px;
  min-width: 0;
}

.radio-card-header {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
}

.radio-card-thumbnail {
  display: block;
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  border-radius: var(--border-radius-md);
  object-fit: cover;
}

.radio-card-name {
  margin: 0;
  font-weight: bold;
  white-space: nowrap;
}

.radio-card-desc {
  width: 100%;
  margin: 0;
  font-size: 14px;
}

.radio-card-price {
  width: 100%;
  margin: 0;
  font-weight: bold;
}


/*
　サムネイルカード
------------------------------ */
.thumbnail-card {
  margin-bottom: 16px;
}

.thumbnail-card-image {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.thumbnail-card-title {
  padding: 16px;
  background: var(--color-neutral700);
  color: white;
}


/*
　価格サマリー
------------------------------ */
.price-summary {
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid var(--color-neutral500);
  border-radius: var(--border-radius-md);
  background: rgba(255, 255, 255, 0.1);
  color: var(--color-white);
  font-family: var(--font-roboto);
  font-size: var(--font-sm);
  font-weight: 400;
  line-height: var(--line-height-lg);
}

.price-summary-rows {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.price-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  white-space: nowrap;
}

.price-summary-divider {
  border: none;
  border-top: 1px solid var(--color-neutral500);
  margin: 0;
  width: 100%;
}

.price-summary-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  white-space: nowrap;
}

.price-summary-total-label {
  font-family: var(--font-roboto);
  font-size: var(--font-sm);
  font-weight: 400;
  line-height: var(--line-height-lg);
}

.price-summary-total-value {
  font-family: var(--font-oswald);
  font-size: var(--font-xl);
  font-weight: 700;
  line-height: var(--line-height-base);
}


/*
　添付ファイルプレビュー
------------------------------ */
.file-preview {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--input-bg);
}

.file-preview-thumbnail {
  flex: none;
}


/*
　サイトマップ
------------------------------ */
.sitemap-frame {
  aspect-ratio: 5 / 9;
  background: #000;
}


/*
　補足テキスト
------------------------------ */
.text-note {
  font-size: var(--font-sm);
  color: var(--color-neutral300);
}
