﻿/* ============================================================================
 * style-child-main.css — Revival 子テーマ：ページ本体スタイル
 * ----------------------------------------------------------------------------
 * 基盤は style-child.css。本ファイルはトップページ + 全下層ページのスタイル本体。
 * コーディング規約は style-child.css 参照（モバイルファースト / @media ネスト /
 * @media (hover: hover) / カンマ区切り禁止）。
 *
 * === 目次（行番号は概算 — 編集で前後する）===
 *
 *  [front-page セクション]
 *   L35+    HERO: .hero-bg / .lp-hero-overlay / .lp-hero-copy
 *   L191+   .lp-news-bar（hero 右下お知らせ縦 Swiper）
 *   L314+   .lp-philosophy（3 写真スタック + 想い）
 *   L467+   .lp-reform（6 メニューカード）
 *   L568+   .lp-works（3 カードカルーセル）
 *   L697+   .lp-flow（4 ステップ）
 *   L785+   .lp-cta-cards（pre-footer 3 カード）
 *   L858+   .lp-contact-area / .lp-contact / .lp-area（CONTACT + AREA 50/50）
 *
 *  [下層ページ (.rv-{slug}__*)]
 *   L1053+  .rv-reform（page-reform: intro / cats / pricing / film features）
 *   L1237+  .rv-flow（page-flow: steps / showroom / payment）
 *   L1700+  .rv-company / .rv-corporate / .rv-sus / .rv-privacy
 *   L1805+  .rv-news（home.php = お知らせ一覧）
 *   L1944+  .rv-works-archive（archive-works.php）
 *   L2400+  .rv-news-single（single.php）
 *
 *  [パンくず]                  L2514+ .lp-breadcrumb
 *  [page-contact]              L2743+ .rv-contact（hero / LINE / form / radios / file / privacy / submit）
 *  [page-reform 詳細]          L3222+ .rv-reform__intro / callout / cats / film / pricing / imgs / swiper
 *  [single-works 詳細]         L3472+ .rv-works-single（single-works.php）
 *  [SP/MD レイアウト基盤]      末尾　SP base + MD revert overrides
 * ============================================================================ */

.hero-bg {
  position:relative;
  overflow:hidden;
  height:600px;
  @media (min-width: 768px) {
    height:800px;
  }
  @media (min-width: 1024px) {
    height:900px;
  }
}

.lp-hero-overlay {
  position:absolute;
  inset:0;
  z-index:10;
  pointer-events:none;
}

.lp-hero-overlay__gutter {
  height:100%;
}

.lp-hero-overlay__inner {
  max-width:80rem;
  margin-left:auto;
  margin-right:auto;
  height:100%;
  position:relative;
}

.lp-br-sp {
  display:inline;
  @media (min-width: 768px) {
    display:none;
  }
}

.hero-bg::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
  z-index:5;
  pointer-events:none;
}

.hero-swiper {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
}

.hero-swiper .swiper-wrapper {
  @media (min-width: 768px) {
    margin-top:0;
  }
}

.hero-swiper__slide {
  position:relative;
  width:100%;
  height:100%;
}

.hero-swiper__slide:nth-child(3)::after {
  content:'';
  position:absolute;
  inset:0;
  background:rgba(14,19,40,.34);
  pointer-events:none;
}

.hero-swiper__img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform: scale(1);
  transition: transform 10s;
}

/* Hero pagination — 右端縦列 (●〇〇)
   .hero-swiper は z-index:0 のため overlay::after(z-index:5) の下になる。
   外側配置の pagination div に z-index:20 を付与して最前面へ。
   Swiper が付加する left:0 / width:100% / bottom を !important で上書き。 */
.hero-swiper__pagination {
  position:absolute !important;
  z-index:20 !important;
  right:2rem !important;
  left:auto !important;
  top:50% !important;
  bottom:auto !important;
  width:auto !important;
  transform:translateY(-50%) !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
  align-items:center !important;
}
.hero-swiper__pagination .swiper-pagination-bullet {
  width:.625rem;
  height:.625rem;
  border-radius:50%;
  background:transparent;
  border:1.5px solid rgba(255,255,255,.8);
  opacity:1;
  margin:0 !important;
  cursor:pointer;
  transition:background .25s,border-color .25s;
  @media (hover: hover) {
    &:hover {
      background:rgba(255,255,255,.5);
    }
  }
}
.hero-swiper__pagination .swiper-pagination-bullet-active {
  background:#fff;
  border-color:#fff;
}

.lp-hero-copy {
  position:absolute;
  top:37%;
  left:0;
  max-width:48rem;
  color:var(--color-white);
  /* @media (min-width: 1024px) {
    left:-3rem;
  } */
}

.lp-hero-copy__eyebrow {
  font-size:1rem;
  font-weight:400;
  margin-bottom:.5rem;
}

.lp-hero-copy__heading {
  font-size:1.875rem;
  font-weight:500;
  line-height:1.375;
  margin-bottom:1.5rem;
  @media (min-width: 768px) {
    font-size:3rem;
  }
  @media (min-width: 1024px) {
    margin-bottom:3rem;
  }
}

.lp-hero-copy__badge {
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  border:3px solid var(--color-white);
  border-radius:0;
  font-size:1rem;
  font-weight:500;
  padding:.625rem 1.25rem;
  @media (min-width: 1024px) {
    font-size:1.125rem;
  }
}

.lp-hero-copy__badge-icon {
  flex-shrink:0;
  width:1.75rem;
  height:1.75rem;
}

.lp-scroll-indicator {
  display:none;
  position:absolute;
  z-index:10;
  left:4%;
  bottom:10%;
  pointer-events:none;
  @media (min-width: 768px) {
    display:block;
  }
}

.lp-scroll-indicator__text {
  display:block;
  writing-mode:vertical-rl;
  font-family:var(--font-jost);
  font-size:1rem;
  font-weight:400;
  color:var(--color-white);
  letter-spacing:.18em;
  animation:scrollText 2.4s ease-in-out infinite;
}

.lp-scroll-indicator__line {
  display:block;
  width:1px;
  height:3rem;
  background:var(--color-white);
  margin:.75rem auto 0;
  animation:scrollLine 2.4s ease-in-out infinite;
  animation-delay:.3s;
}

.lp-news-bar {
  position:relative;
  z-index:10;
  background:var(--color-white);
  border:1px solid var(--color-border);
  @media (min-width: 768px) {
    width:64%;
    margin-top:-75px;
    margin-left:auto;
  }
}

.lp-news-bar__inner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:1rem 0;
  @media (min-width: 768px) {
    padding:0 2rem;
    height:73px;
    gap:1.5rem;
  }
}

.lp-news-bar__eyebrow {
  flex-shrink:0;
  font-family:var(--font-jost);
  font-weight:500;
  font-size:1.25rem;
  color:var(--color-black);
  text-transform:uppercase;
  letter-spacing:.05em;
  @media (min-width: 768px) {
    color:var(--color-primary);
  }
}

.lp-news-bar__divider {
  display:none;
  flex-shrink:0;
  width:1px;
  height:2.25rem;
  background:var(--color-border);
  @media (min-width: 768px) {
    display:block;
  }
}

.lp-news-bar__swiper {
  flex:1;
  min-width:0;
  height:2.5rem;
}

.lp-news-bar__swiper.swiper-vertical>.swiper-wrapper {
  margin-top:0;
}

.lp-news-bar__swiper .lp-news-bar__slide {
  display:flex;
  flex-direction:row;
  align-items:center;
  height:100%;
  gap:.75rem;
  background:rgba(0,0,0,0);
  line-height:1.4;
  @media (min-width: 768px) {
    gap:1rem;
  }
}

.lp-news-bar__slide-date {
  flex-shrink:0;
  font-size:.75rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--color-black);
  @media (min-width: 768px) {
    color:var(--color-primary);
    margin-right:1rem;
  }
}

.lp-news-bar__slide-title {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:1rem;
  font-weight:400;
  color:var(--color-black);
  transition:color .2s;
  @media (min-width: 768px) {
    color:var(--color-primary);
  }
}

.lp-news-bar__navs {
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}

.lp-news-bar__nav-btn {
  display:flex;
  width:2.75rem;
  height:1.5rem;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0);
  color:var(--color-primary);
  cursor:pointer;
  transition:color .2s ease;
  border:0;
}

.lp-news-bar__nav-icon {
  width:14px;
  height:14px;
}

.lp-philosophy {
  @media (min-width: 1024px) {
    display:grid;
    align-items:center;
    grid-template-columns:50fr 50fr;
  }
}

.lp-philosophy__photos {
  display:flex;
  flex-direction:row;
  gap:5px;
  margin-top:0;
  @media (min-width: 1024px) {
    flex-direction:column;
    gap:1rem;
  }
}

.lp-philosophy__photo {
  flex:1 1 0;
  min-width:0;
  overflow:hidden;
  height:16rem;
  @media (min-width: 1024px) {
    flex:none;
    height:280px;
  }
}

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

.lp-philosophy__content {
  padding-top:2rem;
  padding-bottom:2rem;
  @media (min-width: 1024px) {
    padding-top:0;
    padding-bottom:0;
  }
}

.lp-philosophy__content-inner {
  @media (min-width: 1024px) {
    padding:0 3% 0 5%;
    margin-top:140px;
    margin-bottom:140px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
  }
  @media (min-width: 1280px) {
    padding-left:6rem;
  }
}

.lp-philosophy__lead {
  font-size:1.125rem;
  font-weight:500;
  line-height:2.2;
  color:var(--color-text);
  margin-bottom:2.5rem;
  padding:1rem;
  @media (min-width: 768px) {
    padding:0;
  }
  @media (min-width: 1024px) {
    width:auto;
    max-width:640px;
  }
}

.lp-philosophy__lead-strong {
  font-weight:700;
}

.lp-philosophy__lead-break {
  display:none;
  @media (min-width: 1024px) {
    display:block;
  }
}

.lp-philosophy__cards {
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin-bottom:2.5rem;
  @media (min-width: 1024px) {
    width:auto;
    max-width:640px;
  }
}

.lp-philosophy__card {
  display:flex;
  gap:1.5rem;
  padding:1rem;
  background:var(--color-bg-muted);
  align-items:center;
  @media (min-width: 768px) {
    padding:2rem;
  }
}

.lp-philosophy__card-icon {
  flex-shrink:0;
  width:3rem;
  height:3rem;
  object-fit:contain;
  @media (min-width: 1024px) {
    width:4rem;
    height:4rem;
  }
}

.lp-philosophy__card-body {
  flex:1;
}

.lp-philosophy__card-title {
  font-size:1.125rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.375;
  margin-bottom:.5rem;
}

.lp-philosophy__card-desc {
  font-size:1rem;
  font-weight:400;
  color:var(--color-text);
  line-height:1.625;
}

.lp-philosophy__cta-icon {
  flex-shrink:0;
  width:1rem;
  height:1rem;
}

.lp-reform {
  display:flex;
  flex-direction:column;
  gap:2.5rem;
}

.lp-reform__lead {
  font-size:1.125rem;
  font-weight:500;
  line-height:1.625;
  color:var(--color-primary);
  letter-spacing:.04em;
}

.lp-reform__lead-break {
  display:none;
  @media (min-width: 768px) {
    display:inline;
  }
}

.lp-reform__grid {
  display:grid;
  grid-template-columns:1fr;
  column-gap:1.5rem;
  row-gap:2.5rem;
  @media (min-width: 640px) {
    grid-template-columns:repeat(2, 1fr);
  }
  @media (min-width: 1024px) {
    grid-template-columns:repeat(3, 1fr);
    column-gap:3rem;
  }
}

.lp-reform__card {
  display:block;
  @media (hover: hover) {
    &:hover .lp-reform__card-img {
      transform:scale(1.05);
    }
  }
}

.lp-reform__card-media {
  position:relative;
  overflow:hidden;
}

.lp-reform__card-img {
  width:100%;
  object-fit:cover;
  transition:transform .5s;
  display:block;
  height:auto;
  aspect-ratio:4/3;
}

.lp-reform__card-num {
  position:absolute;
  top:0;
  left:0;
  width:56px;
  height:37px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--color-primary);
}

.lp-reform__card-num-label {
  font-family:var(--font-jost);
  font-size:1rem;
  font-weight:700;
  color:var(--color-accent);
}

.lp-reform__card-title {
  margin-top:1rem;
  font-size:1.25rem;
  font-weight:700;
  color:var(--color-primary);
  letter-spacing:.04em;
  transition:color .2s;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.lp-reform__cta-wrap {
  display:flex;
  justify-content:center;
  margin-top:.5rem;
}

.lp-reform__cta-icon {
  flex-shrink:0;
  width:1rem;
  height:1rem;
}

.lp-section-head__eyebrow {
  font-size:1rem;
  font-weight:500;
  margin-bottom:.5rem;
}

.lp-section-head__title {
  font-family:var(--font-jost);
  font-size:1.875rem;
  font-weight:500;
  line-height:1.2;
  letter-spacing:.01em;
  @media (min-width: 768px) {
    font-size:3rem;
  }
}

.lp-works__grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  @media (min-width: 768px) {
    grid-template-columns:repeat(3, 1fr);
  }
}

.lp-works__card {
  position:relative;
  display:block;
  background:var(--color-white);
  border-radius:.375rem;
  overflow:hidden;
  padding:2.5rem 1rem 6rem;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
  @media (hover: hover) {
    &:hover .lp-works__card-img {
      transform:scale(1.05);
    }
    &:hover .lp-works__card-arrow {
      background:var(--color-accent);
    }
  }
}

.lp-works__card-thumb {
  overflow:hidden;
  margin-bottom:1rem;
  height:auto;
  aspect-ratio:4/3;
}

.lp-works__card-img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s;
}

.lp-works__card-tags {
  display:flex;
  gap:.75rem;
  font-size:1rem;
  font-weight:500;
  letter-spacing:.1em;
  color:var(--color-text-muted);
}

.lp-works__card-tag {
  display:inline-block;
}

.lp-works__card-title {
  margin-top:.25rem;
  font-size:1.25rem;
  font-weight:500;
  color:var(--color-text);
  letter-spacing:.04em;
  line-height:1.625;
}

.lp-works__card-arrow {
  position:absolute;
  bottom:1.5rem;
  right:1.5rem;
  width:2rem;
  height:2rem;
  border-radius:9999px;
  background:var(--color-border);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s;
}

.lp-works__card-arrow-icon {
  width:.75rem;
  height:.75rem;
  color:var(--color-primary);
}

.lp-works__cta-wrap {
  display:flex;
  justify-content:center;
  margin-top:3rem;
}

.lp-works__cta-icon {
  flex-shrink:0;
  width:1rem;
  height:1rem;
}

.lp-flow__steps {
  display:grid;
  grid-template-columns:1fr;
  gap:2.5rem;
  position:relative;
  @media (min-width: 768px) {
    gap:2rem;
    grid-template-columns:repeat(2,1fr);
  }
  @media (min-width: 1024px) {
    gap:2rem;
    grid-template-columns:repeat(4,1fr);
  }
}

.lp-flow__step {
  display:flex;
  flex-direction:column;
  gap:1rem;
  position:relative;
  z-index:1;
}

.lp-flow__step-photo-rotate {
  box-shadow:0 25px 50px -12px rgba(0,0,0,.25);
  border:none;
  padding:0;
  background:none;
}

.lp-flow__step-photo-rotate--neg {
  @media (min-width: 768px) {
    transform:rotate(-4deg);
  }
}

.lp-flow__step-photo-rotate--pos {
  @media (min-width: 768px) {
    transform:rotate(4deg);
  }
}

.lp-flow__step-photo-img {
  width:100%;
  height:auto;
  display:block;
}

.lp-flow__step-head {
  display:flex;
  align-items:center;
  gap:1rem;
}

.lp-flow__step-indicator {
  flex-shrink:0;
  width:76px;
  height:76px;
  border-radius:9999px;
  border:1px solid var(--color-white);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.lp-flow__step-indicator-eyebrow {
  font-family:var(--font-jost);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.18em;
  line-height:1;
}

.lp-flow__step-indicator-num {
  font-family:var(--font-jost);
  font-size:1.5rem;
  font-weight:400;
  line-height:1;
  margin-top:.25rem;
}

.lp-flow__step-title {
  font-size:1.125rem;
  font-weight:500;
  letter-spacing:.04em;
  line-height:1.375;
}

.lp-flow__step-desc {
  font-size:1rem;
  font-weight:400;
  color:var(--color-white);
  line-height:1.625;
}

.lp-cta-cards {
  display:grid;
  grid-template-columns:1fr;
  column-gap:3rem;
  row-gap:1rem;
  @media (min-width: 768px) {
    grid-template-columns:repeat(2, 1fr);
    column-gap:2rem;
  }
}

.lp-cta-cards__card {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.5rem 2rem;
  background:url("../images/cta-card.webp") center/cover no-repeat,var(--color-bg-muted);
  overflow:hidden;
  transition:box-shadow .2s;
  min-width:0;
  @media (hover: hover) {
    &:hover {
      box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
    }
  }
}

.lp-cta-cards__inner {
  position:relative;
  z-index:10;
}

.lp-cta-cards__eyebrow {
  font-family:var(--font-jost);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-primary);
  margin-bottom:.125rem;
  line-height:1.4;
}

.lp-cta-cards__title {
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-primary);
  letter-spacing:.05em;
  line-height:1.4;
}

.lp-cta-cards__arrow {
  position:relative;
  z-index:10;
  flex-shrink:0;
  width:2rem;
  height:2rem;
  border-radius:9999px;
  background:var(--color-primary);
  color:var(--color-white);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s,color .2s;
}

.lp-cta-cards__arrow-icon {
  width:.875rem;
  height:.875rem;
}

.lp-contact-area {
  display:grid;
  @media (min-width: 768px) {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

.lp-contact-area__col {
  color:#fff;
  padding-top:2.5rem;
  padding-bottom:2.5rem;
  @media (min-width: 768px) {
    padding-top:5rem;
    padding-bottom:5rem;
  }
}


.lp-contact {
  max-width:28rem;
  margin-left:auto;
  margin-right:auto;
  display:block;
  text-align:left;
  align-items:unset;
  @media (min-width: 768px) {
    margin-right:3rem;
  }
  @media (min-width: 1024px) {
    margin-left:auto;
    margin-right:auto;
  }
}

.lp-area {
  max-width:32rem;
  margin-left:auto;
  margin-right:auto;
  display:block;
  text-align:left;
  align-items:unset;
  @media (min-width: 1024px) {
    text-align:left;
    margin-left:auto;
    margin-right:auto;
  }
}

.lp-contact-area__eyebrow {
  font-size:1rem;
  font-weight:500;
  margin-bottom:.5rem;
}

.lp-contact-area__title {
  font-family:var(--font-jost);
  font-size:1.875rem;
  font-weight:500;
  line-height:48px;
  letter-spacing:.01em;
  margin-bottom:1.5rem;
  @media (min-width: 768px) {
    font-size:3rem;
  }
}

.lp-contact-area__lead {
  color:var(--color-white);
  margin-bottom:2rem;
  line-height:1.625;
}

.lp-contact__buttons {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.lp-contact__btn {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  padding:1.25rem 2rem;
  font-weight:700;
  letter-spacing:.05em;
}

.lp-contact__btn--line {
  background:var(--color-white);
  color:var(--color-line);
  border:1px solid var(--color-line);
  font-weight:700;
}

/* グローバルの a:hover { color:inherit } で文字が白くなるのを防ぎ、ホバーでも色を変えない */
.is-revival-lp .lp-contact__btn--line {
  @media (hover: hover) {
    &:hover {
      color:var(--color-line);
    }
  }
}

.lp-contact__btn-icon {
  flex-shrink:0;
  width:1.5rem;
  height:1.5rem;
}

.lp-area__map {
  @media (min-width: 1024px) {
    margin-left:5rem;
    margin-top:-12rem;
  }
}

.lp-area__map-img {
  width:100%;
  height:auto;
  display:block;
}

.rv-about__staff-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  @media (min-width: 640px) {
    grid-template-columns:1fr 1fr;
    gap:2.5rem;
  }
}

.rv-about__staff-card {
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  padding:1.5rem;
  background:var(--color-bg-muted);
  border-top:4px solid var(--color-accent);
  @media (min-width: 768px) {
    padding:2rem;
  }
}

.rv-about__staff-body {
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.rv-about__staff-name {
  font-size:1.25rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.4;
}

.rv-reform__intro-text {
  border-left:4px solid var(--color-accent);
  padding:.75rem 0 .75rem 1.5rem;
  max-width:40rem;
  @media (min-width: 768px) {
    padding:1rem 0 1rem 2rem;
  }
}

.rv-reform__cats {
  margin-top:2.5rem;
  padding-left:0;
  display:grid;
  gap:1.5rem;
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  grid-template-columns: repeat(2, 1fr);
  @media (min-width: 640px) {
    grid-template-columns:repeat(3, 1fr);
    gap:2rem;
  }
  @media (min-width: 768px) {
    margin-top:3rem;
    grid-template-columns: repeat(3, 1fr);
  }
}

.rv-reform__cat {
  display:flex;
  flex-direction:column;
  gap:.75rem;
  text-align:center;
}

.rv-reform__cat-name {
  font-weight:700;
  color:var(--color-primary);
  font-size:1rem;
}

.rv-reform__pricing-head {
  font-size:1.25rem;
  font-weight:700;
  text-align:center;
  color:var(--color-primary);
  padding:.75rem 0;
  border-top:2px solid var(--color-primary);
  border-bottom:2px solid var(--color-primary);
  margin-bottom:2rem;
}

.rv-reform__pricing-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
  margin-bottom:2rem;
  @media (min-width: 640px) {
    grid-template-columns:repeat(3, 1fr);
    gap:2rem;
  }
}

.rv-reform__pricing-card {
  text-align:center;
  padding:1.25rem;
  background:var(--color-bg-muted);
  border-top:4px solid var(--color-accent);
}

.rv-reform__pricing-img {
  width:100%;
  height:auto;
  display:block;
  margin-bottom:1rem;
}

.rv-reform__pricing-tier {
  font-weight:700;
  font-size:1.25rem;
  display:block;
  padding:.625rem 1.25rem;
  margin:-1.25rem -1.25rem 1.25rem;
  background:var(--color-primary);
  color:var(--color-accent);
}

.rv-reform__pricing-note {
  font-size:.75rem;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
}

.rv-reform__pricing-price {
  font-weight:700;
  color:var(--color-primary);
  margin-bottom:.75rem;
  font-size:1.375rem;
}

.rv-reform__pricing-disclaimer {
  font-size:.875rem;
  text-align:center;
  line-height:1.8;
  color:var(--color-text-muted);
  margin-top:1.5rem;
}

.rv-reform__features {
  max-width:28rem;
  margin:0 auto;
  background:var(--color-bg-muted);
  border-top:4px solid var(--color-accent);
  padding:1rem 1.25rem;
}

.rv-reform__features-title {
  font-weight:700;
  text-align:center;
  color:var(--color-primary);
  margin-bottom:.5rem;
}

.rv-reform__features-list {
  font-size:.95rem;
  line-height:1.8;
  list-style:disc;
  padding-left:1.5rem;
}

/* 旧 .rv-reform__features-block / .rv-reform__features-head は現マークアップ未使用（dead）→ 削除 */

.rv-reform__features-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  max-width:36rem;
  @media (min-width: 768px) {
    grid-template-columns:repeat(5, 1fr);
    gap:1.5rem;
    max-width:none;
  }
}

.rv-reform__feat {
  aspect-ratio:1/1;
  border-radius:50%;
  background:var(--color-white);
  border:2px solid var(--color-primary);
  color:var(--color-primary);
  font-weight:700;
  font-size:.875rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:.5rem;
  @media (min-width: 768px) {
    font-size:1rem;
  }
}

.rv-flow__steps {
  display:flex;
  flex-direction:column;
  gap:2rem;
  padding-left:0;
  list-style:none;
  @media (min-width: 768px) {
    gap:0;
  }
}

.rv-flow__step {
  padding:2.5rem 0;
  border-bottom:1px solid var(--color-border);
  @media (min-width: 768px) {
    padding:3.5rem 0;
  }
}

.rv-flow__step:first-child {
  border-top:1px solid var(--color-border);
  padding-top:2rem;
  @media (min-width: 768px) {
    padding-top:2.5rem;
  }
}

.rv-flow__step-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  align-items:flex-start;
  @media (min-width: 768px) {
    gap:3.5rem;
    grid-template-columns:1fr 1fr;
    align-items:center;
  }
}

.rv-flow__step--reverse .rv-flow__step-media {
  @media (min-width: 768px) {
    order:2;
  }
}

.rv-flow__step--reverse .rv-flow__step-body {
  @media (min-width: 768px) {
    order:1;
  }
}

.rv-flow__step-media {
  aspect-ratio:4/3;
  overflow:hidden;
  height:auto;
  max-height:420px;
}

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

.rv-flow__step-body {
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.rv-flow__step-head {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.75rem;
}

.rv-flow__step-num {
  font-family:var(--font-jost);
  font-size:3rem;
  font-weight:700;
  color:var(--color-accent);
  line-height:1;
  flex-shrink:0;
  @media (min-width: 768px) {
    font-size:4rem;
  }
}

.rv-flow__step-title {
  font-size:1.25rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.4;
  @media (min-width: 768px) {
    font-size:1.5rem;
  }
}

.rv-flow__step-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--color-accent);
  color:var(--color-primary);
  font-size:.75rem;
  font-weight:700;
  padding:.25rem .625rem;
  border-radius:9999px;
}

.rv-flow__step-tags {
  display:inline-flex;
  gap:.375rem;
  margin-left:auto;
}

.rv-flow__step-tag {
  display:inline-block;
  background:var(--color-primary);
  color:var(--color-white);
  font-size:.75rem;
  padding:.25rem .625rem;
}

.rv-flow__step-extra {
  background:var(--color-bg-muted);
  border-radius:.5rem;
  padding:.75rem 1rem !important;
}

.rv-flow__step-extra-title {
  font-weight:700;
  color:var(--color-primary);
  letter-spacing:.03em;
  font-size:1rem;
  text-align:center;
  margin-bottom:.5rem !important;
}

.rv-flow__step-extra-items {
  list-style:none;
  padding-left:0;
  width: fit-content;
  margin: auto;
  display:grid;
  gap:.375rem;
  grid-template-columns: 1fr !important;
}

.rv-flow__step-extra-item {
  color:var(--color-text);
  background:none;
  border:none;
  border-radius:0;
  padding:0;
  font-size:.9375rem;
  justify-self:start;
}

.rv-flow__step-cta {
  display:flex;
  justify-content:flex-end;
}

.rv-flow__step-showroom-text {
  font-size:.9375rem;
  line-height:1.7;
  color:var(--color-text);
  margin:.5rem 0 .75rem;
}

.rv-flow__pay-layout {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  @media (min-width: 1024px) {
    grid-template-columns:1fr 1fr;
    gap:3.5rem;
    align-items:center;
  }
}

.rv-flow__pay-text {
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

.rv-flow__pay-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(1px,1fr));
  gap:1rem;
  width:100%;
  max-width:20rem;
  margin-left:auto;
  margin-right:auto;
  padding-left: 0;
  @media (min-width: 768px) {
    grid-template-columns:repeat(3, 1fr);
    gap:2rem;
    max-width:36rem;
  }
  @media (min-width: 1024px) {
    margin-left:0;
    margin-right:0;
  }
}

.rv-flow__pay-grid > :last-child:nth-child(odd) {
  grid-column:1/-1;
  justify-self:center;
  width:calc(50% - .5rem);
  @media (min-width: 768px) {
    grid-column:auto;
    justify-self:stretch;
    width:auto;
  }
}

.rv-flow__pay-item {
  aspect-ratio:1/1;
  border-radius:50%;
  background:var(--color-white);
  border:2px solid var(--color-primary);
  color:var(--color-primary);
  font-weight:700;
  font-size:.875rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  flex-direction:column;
  gap:.5rem;
  @media (min-width: 768px) {
    font-size:1rem;
  }
}

.rv-company__table {
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
  line-height:1.8;
  @media (min-width: 768px) {
    font-size:1rem;
  }
}

.rv-company__row {
  display:block;
  border-bottom:0;
  @media (min-width: 768px) {
    display:table-row;
    border-bottom:1px solid var(--color-border);
  }
}

.rv-company__th {
  display:block;
  width:100%;
  background:var(--color-bg-muted);
  color:var(--color-primary);
  text-align:left;
  font-weight:700;
  padding:.5rem 1rem;
  border-right:0;
  @media (min-width: 768px) {
    display:table-cell;
    width:10rem;
    padding:1rem 1.25rem;
    vertical-align:top;
    border-right:1px solid var(--color-border);
  }
}

.rv-company__td {
  display:block;
  width:100%;
  padding:.75rem 1rem;
  color:var(--color-text);
  @media (min-width: 768px) {
    display:table-cell;
    width:auto;
    padding:1rem 1.25rem;
    vertical-align:top;
  }
}

.rv-company__swiper {
  position:relative;
  margin-bottom:2.5rem;
  @media (min-width: 768px) {
    margin-bottom:3.5rem;
  }
}

.rv-company__nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:2.5rem;
  height:2.5rem;
  border-radius:9999px;
  background:var(--color-primary);
  color:var(--color-white);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.5rem;
  line-height:1;
  border:0;
  cursor:pointer;
  transition:background .2s,color .2s;
  @media (min-width: 768px) {
    width:3rem;
    height:3rem;
  }
  @media (hover: hover) {
    &:hover {
      background:var(--color-accent);
    }
  }
}

.rv-company__nav--prev {
  left:.5rem;
  @media (min-width: 768px) {
    left:1rem;
  }
}

.rv-company__nav--next {
  right:.5rem;
  @media (min-width: 768px) {
    right:1rem;
  }
}

/* 旧 .rv-company__intro は現マークアップ未使用（dead） */

.rv-corporate__checklist {
  padding:1.5rem;
  background:var(--color-bg-muted);
  border-top:4px solid var(--color-accent);
  margin-left:auto;
  margin-right:auto;
  max-width:60rem;
  @media (min-width: 768px) {
    padding:2.5rem;
  }
}

.rv-corporate__checklist-eyebrow {
  text-align:center;
  color:var(--color-text);
  font-size:1.25rem;
  font-weight:700;
  margin-bottom:0;
  @media (min-width: 768px) {
    font-size:1rem;
  }
}

.rv-corporate__checklist-title {
  text-align:center;
  font-weight:700;
  color:var(--color-primary);
  font-size:2rem;
  line-height:1.3;
  margin-top:0;
  margin-bottom:.75rem;
}

.rv-corporate__checklist-items {
  display:flex;
  flex-direction:column;
  gap:.75rem;
  margin:0;
  flex:1 1 0;
  min-width:0;
  padding-left:0;
  padding-right:0;
  max-width:30rem;
}

.rv-corporate__checklist-item {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  line-height:1.7;
  color:var(--color-text);
  font-size:1.125rem;
  font-weight:700;
}

.rv-corporate__checklist-mark {
  font-weight:700;
  color:var(--color-accent);
  flex-shrink:0;
}

.rv-corporate__list-box {
  max-width:28rem;
  border:1px solid var(--color-border);
  background:var(--color-white);
  margin-left:auto;
  margin-right:auto;
}

.rv-corporate__list-head {
  background:var(--color-primary);
  color:var(--color-white);
  text-align:center;
  font-size:1rem;
  font-weight:700;
  padding:.625rem 1rem;
}

.rv-corporate__list-items {
  padding:1rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  font-size:1rem;
  color:var(--color-text);
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
  font-weight:700;
  text-align:center;
}

.rv-sus__esg {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
  margin-bottom:3rem;
  padding-left:0;
  list-style:none;
  @media (min-width: 640px) {
    grid-template-columns:repeat(3, 1fr);
    gap:2rem;
  }
}

.rv-sus__esg-item {
  text-align:center;
  padding:1.5rem;
  background:var(--color-bg-muted);
  border-top:4px solid var(--color-accent);
  @media (min-width: 768px) {
    padding:2rem 1.5rem;
  }
}

.rv-sus__esg-title {
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.2;
  @media (min-width: 768px) {
    font-size:1.875rem;
  }
}

.rv-sus__esg-letter {
  font-size:2rem;
  color:var(--color-accent);
  @media (min-width: 768px) {
    font-size:2.5rem;
  }
}

.rv-sus__esg-jp {
  margin-top:.25rem;
  font-size:.875rem;
  color:var(--color-text);
  font-weight:700;
}

.rv-sus__esg-desc {
  margin-top:.75rem;
  font-size:.875rem;
  line-height:1.6;
  color:var(--color-text);
}

.rv-sus__sdgs {
  display:flex;
  flex-direction:column;
  gap:.75rem;
  margin-bottom:2.5rem;
  @media (min-width: 768px) {
    flex-direction:row;
    align-items:center;
    gap:1.5rem;
    margin-bottom:3rem;
  }
}

.rv-sus__sdgs-label {
  font-size:.875rem;
  font-weight:700;
  color:var(--color-primary);
}

.rv-sus__sdgs-list {
  display:flex;
  flex-wrap:wrap;
  padding-left:0;
  list-style:none;
  gap:1rem;
}

.rv-sus__sdg-icon {
  display:block;
  width:6rem;
  height:6rem;
}

.rv-sus__items {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  padding-left:0;
  list-style:none;
  @media (min-width: 640px) {
    grid-template-columns:repeat(2, 1fr);
  }
  @media (min-width: 1024px) {
    grid-template-columns:repeat(3, 1fr);
  }
}

.rv-sus__item {
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.rv-sus__item-title {
  font-size:1rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.5;
  @media (min-width: 768px) {
    font-size:1.0625rem;
  }
}

.rv-privacy__body {
  display:flex;
  flex-direction:column;
  gap:1rem;
  @media (min-width: 768px) {
    gap:1.25rem;
  }
}

.rv-privacy__list {
  list-style:disc;
  padding-left:1.5rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  font-size:1rem;
  line-height:2;
  color:var(--color-text);
}

.rv-privacy__refs {
  margin-top:1rem;
  padding:1rem 1.25rem;
  background:var(--color-bg-muted);
  border-left:4px solid var(--color-accent);
  font-size:.875rem;
  line-height:1.8;
}

.rv-privacy__refs-title {
  font-weight:700;
  color:var(--color-primary);
  margin-bottom:.25rem;
}

.rv-privacy__refs-title:not(:first-child) {
  margin-top:.75rem;
}

.rv-privacy__link {
  color:var(--color-primary);
  text-decoration:underline;
  word-break:break-all;
  transition:color .2s;
}

.rv-news__list {
  margin:0;
  border-top:1px solid var(--color-border);
  list-style:none;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

.rv-news__item {
  border-bottom:1px solid var(--color-border);
}

.rv-news__link {
  padding:1.25rem 0;
  color:var(--color-text);
  display:flex;
  gap:1.5rem;
  align-items:flex-start;
  padding-bottom:1.5rem;
  text-decoration:none;
  transition:opacity .2s;
  @media (min-width: 768px) {
    gap:2rem;
    padding:1.5rem 0;
  }
  @media (hover: hover) {
    &:hover {
      opacity:.7;
    }
  }
}

.rv-news__date {
  flex-shrink:0;
  font-weight:500;
  letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
  font-family:var(--font-jost);
  font-size:.875rem;
  color:var(--color-text);
  opacity:.7;
}

.rv-news__title {
  font-size:1.0625rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.625;
  @media (min-width: 768px) {
    font-size:1rem;
  }
}

.lp-pager {
  margin-top:3rem;
  display:flex;
  justify-content:center;
  @media (min-width: 768px) {
    margin-top:4rem;
  }
}

.lp-pager .page-numbers {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;
  height:2.5rem;
  border:1px solid var(--color-border);
  font-size:.875rem;
  color:var(--color-text);
  text-decoration:none;
  transition:background .2s,color .2s;
}

.lp-pager .page-numbers.current {
  background:var(--color-primary);
  color:var(--color-white);
  border-color:var(--color-primary);
}

.lp-pager .page-numbers+.page-numbers {
  margin-left:.375rem;
}

.lp-pager .nav-links {
  display:flex;
  gap:.375rem;
  align-items:center;
}

.lp-pager .page-numbers.prev {
  width:auto;
  padding:0 .875rem;
  white-space:nowrap;
}

.lp-pager .page-numbers.next {
  width:auto;
  padding:0 .875rem;
  white-space:nowrap;
}

/* 旧 .rv-news__article-* / .rv-news__back-link は現マークアップ未使用（dead）→ 削除 */

.rv-works-archive__filter {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-bottom:3rem;
  justify-content:flex-start;
  @media (min-width: 768px) {
    gap:.75rem;
    margin-bottom:4rem;
  }
}

.rv-works-archive__filter-btn {
  display:inline-block;
  padding:.4rem 1.25rem;
  border:1px solid var(--color-primary);
  font-size:.875rem;
  color:var(--color-primary);
  background:var(--color-white);
  text-decoration:none;
  transition:background .2s,color .2s;
}

.rv-works-archive__filter-btn--active {
  background:var(--color-primary);
  color:var(--color-white);
}

/* アクティブ（現在のカテゴリ）はホバーで変化させない */
.is-revival-lp .rv-works-archive__filter-btn--active:hover {
  background:var(--color-primary);
  color:var(--color-white);
}

.rv-works-archive__grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
  padding:0;
  margin:0;
  @media (min-width: 640px) {
    grid-template-columns:repeat(2, 1fr);
  }
  @media (min-width: 1024px) {
    grid-template-columns:repeat(3, 1fr);
    gap:2rem;
  }
  @media (min-width: 1280px) {
    gap:2rem;
    grid-template-columns:repeat(3,1fr);
  }
}

.rv-works-archive__card {
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--color-white);
  border-radius:.375rem;
  overflow:hidden;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
  padding:0;
  margin:0;
}

.rv-works-archive__card-link {
  position:relative;
  display:flex;
  flex-direction:column;
  flex:1;
  padding-bottom:3.75rem;
  text-decoration:none;
  color:var(--color-text);
  @media (hover: hover) {
    &:hover .rv-works-archive__card-thumb-img {
      transform:scale(1.05);
    }
    &:hover .rv-works-archive__card-arrow {
      background:var(--color-accent);
    }
  }
}

.rv-works-archive__card-thumb {
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--color-bg-muted);
}

.rv-works-archive__card-thumb-img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s;
}

.rv-works-archive__card-body {
  padding:1rem 1.125rem 0;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  flex:1;
}

.rv-works-archive__card-tags {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.08em;
  color:var(--color-text-muted);
  list-style:none;
  padding:0;
  margin:0;
}

.rv-works-archive__card-tag {
  display:inline-block;
}

.rv-works-archive__card-date {
  font-family:var(--font-jost);
  font-variant-numeric:tabular-nums;
  color:var(--color-text);
  opacity:.7;
  font-size:0.875rem;
}

.rv-works-archive__card-title {
  font-weight:500;
  line-height:1.6;
  letter-spacing:.04em;
  color:var(--color-text);
  font-size:1.0625rem;
  @media (min-width: 1024px) {
    font-size:1.125rem;
  }
}

.rv-works-archive__card-area {
  color:var(--color-text);
  font-size:0.9rem;
}

.rv-works-archive__card-arrow {
  position:absolute;
  bottom:1rem;
  right:1rem;
  width:2rem;
  height:2rem;
  border-radius:9999px;
  background:var(--color-border);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s;
}

.rv-works-archive__card-arrow-icon {
  width:.75rem;
  height:.75rem;
  color:var(--color-primary);
}

.rv-works-archive__empty {
  text-align:center;
  color:var(--color-text-muted);
  padding:3rem 0;
}

.section-heading-jp.lp-subpage__heading {
  padding-left:0;
}

.section-heading-jp.lp-subpage__heading::before {
  display:none;
}

.section-heading-jp.lp-subpage__heading .section-heading-jp__sub {
  padding-left:1.5rem;
  border-left:0.25rem solid var(--color-accent);
  font-size:1rem;
}

.section-heading-jp.lp-subpage__heading .section-heading-jp__title {
  padding-left:1.5rem;
  border-left:0.25rem solid var(--color-primary);
  font-size:1.25rem;
  @media (min-width: 768px) {
    font-size:1.875rem;
  }
}

.rv-corporate__checklist-body {
  display:flex;
  flex-direction:column-reverse;
  align-items:center;
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
  gap:1.5rem;
  justify-content:center;
  @media (min-width: 768px) {
    flex-direction:row;
  }
}

.rv-corporate__checklist-side-img {
  flex:0 0 22%;
  min-width:0;
  width:100%;
  height:auto;
  object-fit:cover;
}

.rv-corporate__heading--main .section-heading-jp__title {
  font-size:2rem;
  @media (min-width: 768px) {
    font-size:2.75rem;
  }
}

.rv-corporate__catch-heading {
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-primary);
  text-align:center;
  margin-top:1.5rem;
  text-decoration:underline;
  text-underline-offset:0.4em;
  @media (min-width: 768px) {
    font-size:2rem;
  }
}

.rv-company__swiper .lp-subpage__media-img {
  height:240px;
  object-fit:cover;
}

.rv-about__president-img {
  aspect-ratio:3/4;
  height:auto;
}

.rv-about__president-name {
  font-size:1.25rem;
  font-weight:700;
  color:var(--color-primary);
  @media (min-width: 768px) {
    font-size:1.5rem;
  }
}

.rv-about__philosophy-heading {
  display:inline-block;
  text-align:left;
}

.rv-about__staff-media {
  aspect-ratio:4/3;
}

.rv-about__staff-media .lp-subpage__media-img {
  aspect-ratio:unset;
  height:100%;
}

.rv-about__philosophy-heading.lp-subpage__heading .section-heading-jp__sub {
  border-left:none;
  padding-left:0;
  text-align:center;
}

.rv-about__philosophy-heading.lp-subpage__heading .section-heading-jp__title {
  border-left:none;
  padding-left:0;
  text-align:center;
}

.rv-philosophy .lp-subpage__media {
  aspect-ratio:4/3;
}

.rv-flow__step--reverse .rv-flow__step-grid {
  grid-template-columns:1fr;
  @media (min-width: 768px) {
    grid-template-columns:1fr 1fr;
    align-items:center;
  }
}

.rv-flow__pay-icon {
  width:3rem;
  height:3rem;
  object-fit:contain;
}

.rv-sus__item-media {
  aspect-ratio:4/3;
}

.lp-philosophy__photo:first-child {
  @media (min-width: 1024px) {
    margin-top:140px;
  }
}

.lp-philosophy__photo:last-child {
  @media (min-width: 1024px) {
    margin-bottom:140px;
  }
}

.lp-reform__card-title::after {
  font-size:1.5rem;
  font-weight:400;
  flex-shrink:0;
  line-height:1;
  content:none;
}

.lp-reform__card-arrow {
  flex-shrink:0;
  width:2rem;
  height:2rem;
  border-radius:9999px;
  background:var(--color-primary);
  color:var(--color-white);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s,color .2s;
}

.lp-reform__card-arrow svg {
  width:.875rem;
  height:.875rem;
}

.lp-wide {
  max-width:1440px;
  margin-left:auto;
  margin-right:auto;
}

.lp-works {
  position:relative;
  overflow:hidden;
  padding-top:2.5rem;
  padding-bottom:2.5rem;
  @media (min-width: 768px) {
    padding-top:5rem;
    padding-bottom:5rem;
  }
}

.lp-works__bg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  z-index:0;
}

.lp-works__overlay {
  position:absolute;
  inset:0;
  background:rgb(32 44 92 / 0.2);
  z-index:0;
}

.lp-works__content {
  position:relative;
  z-index:10;
}

.lp-flow {
  position:relative;
  overflow:hidden;
  background:var(--color-primary-dark);
  color:#fff;
  padding-top:2.5rem;
  padding-bottom:2.5rem;
  @media (min-width: 768px) {
    padding-top:5rem;
    padding-bottom:5rem;
  }
}

.lp-philosophy-section {
  background:var(--color-white);
  color:var(--color-primary);
  padding-bottom:2.5rem;
  @media (min-width: 1024px) {
    padding-top:0;
    padding-bottom:0;
  }
}

.lp-flow__steps::before {
  @media (min-width: 1024px) {
    content:"";
    position:absolute;
    z-index:0;
    height:2px;
    background:#fff;
    top:0;
    left:50%;
    right:auto;
    width:100vw;
    transform:translateX(-50%);
    margin: 8% 0 0;
  }
}

.rv-news__thumb {
  flex-shrink:0;
  width:160px;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--color-bg-muted);
}

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

.rv-news__body {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  padding-top:.25rem;
}

.rv-news-single__date {
  display:block;
  font-family:var(--font-jost);
  font-weight:500;
  color:var(--color-text-muted);
  letter-spacing:.04em;
  font-size:1rem;
  margin:0;
  line-height:1;
}


/* .lp-mt-8 は style-child.css 側で定義済（こちらは重複だったため削除） */

.rv-news-single__title {
  font-size:1.375rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.6;
  margin-top:.5rem;
  @media (min-width: 768px) {
    font-size:1.75rem;
  }
}

.rv-news-single__thumb {
  width:100%;
  overflow:hidden;
}

.rv-news-single__thumb-img {
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
}

.rv-news-single__body {
  font-size:1rem;
  line-height:2;
  color:var(--color-text);
}

.rv-news-single__body p {
  margin-bottom:1.25em;
}

.rv-news-single__body p:last-child {
  margin-bottom:0;
}

.rv-news-single__body h2 {
  font-weight:700;
  color:var(--color-primary);
  margin-top:2em;
  margin-bottom:.75em;
  font-size:1.25rem;
}

.rv-news-single__body h3 {
  font-weight:700;
  color:var(--color-primary);
  margin-top:2em;
  margin-bottom:.75em;
  font-size:1.0625rem;
}

.rv-news-single__body img {
  max-width:100%;
  height:auto;
  display:block;
  margin:1.5rem 0;
}

.rv-news-single__nav {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
}

.rv-news-single__nav-btn {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid var(--color-border);
  padding:.625rem 1.25rem;
  font-size:.875rem;
  color:var(--color-primary);
  background:var(--color-white);
  text-decoration:none;
  transition:background .2s,color .2s,border-color .2s;
}

.is-revival-lp .rv-news-single__nav-btn {
  @media (hover: hover) {
    &:hover {
      background:var(--color-primary);
      border-color:var(--color-primary);
      color:var(--color-white);
    }
  }
}

.lp-breadcrumb {
  background:var(--color-white);
  border-bottom:1px solid var(--color-border);
  padding:.625rem 0;
}

.lp-breadcrumb__inner {
  max-width:72rem;
  margin-left:auto;
  margin-right:auto;
}

.lp-breadcrumb__list {
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  list-style:none;
  padding:0;
  margin:0;
  justify-content:flex-start;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  @media (min-width: 768px) {
    flex-wrap:wrap;
    justify-content:flex-end;
    overflow-x:visible;
  }
}

.lp-breadcrumb__item {
  display:flex;
  align-items:center;
  font-size:.8125rem;
  color:var(--color-text-muted);
  white-space:nowrap;
  flex-shrink:0;
}

.lp-breadcrumb__item+.lp-breadcrumb__item::before {
  content:"›";
  margin:0 .5rem;
  color:var(--color-text-muted);
}

.lp-breadcrumb__link {
  color:var(--color-text-muted);
  text-decoration:none;
  transition:color .2s;
}

.lp-breadcrumb__item--current {
  color:var(--color-text);
}


.rv-reform__callout-inner {
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-direction: column;
  flex-wrap: nowrap;
  @media (min-width: 768px) {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.rv-reform__callout-img {
  flex-shrink:0;
  width:160px;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:4px;
  @media (min-width: 768px) {
    width:200px;
  }
}

/* aspect-ratio 4:3 のメディア枠（floor/sheet/curtain/water/film セクション内）
   → HTML 側で <div class="lp-subpage__media lp-subpage__media--4-3"> として付与 */
.lp-subpage__media--4-3 {
  aspect-ratio: 4/3;
}

.lp-subpage__media--4-5 {
  aspect-ratio: 4/5;
}

.rv-reform__film-tags {
  gap:.625rem;
  justify-content:center;
  list-style:none;
  padding:0;
  margin:1rem 0 0;
  row-gap:.25rem !important;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  @media (min-width: 768px) {
    grid-template-columns: repeat(3, 1fr);
  }
}

.rv-reform__film-tag {
  border:1px solid var(--color-primary);
  color:var(--color-primary);
  font-size:.875rem;
  font-weight:700;
  letter-spacing:.04em;
  background:var(--color-white);
  padding:.25rem 1rem;
  width: 100%;
  text-align: center;
  @media (min-width: 768px) {
    border:1px solid var(--color-primary);
    color:var(--color-primary);
    font-size:.875rem;
    font-weight:700;
    padding:.5rem 1.25rem;
    letter-spacing:.04em;
    width: auto;
  }
}

.rv-reform__pricing-head--no-border {
  border-top:none;
  border-bottom:none;
  margin-top:3rem;
  @media (min-width: 768px) {
    margin-top:4rem;
  }
}

.rv-reform__cats--film {
  grid-template-columns:repeat(5,1fr);
  margin-top:1rem;
}

.rv-reform__cats--film .lp-subpage__media {
  border-radius:50%;
  overflow:hidden;
}

.rv-reform__pricing-imgs {
  display:block;
  margin-bottom:2.5rem;
  position:relative;
  overflow:hidden;
}
.rv-reform__pricing-imgs .swiper-wrapper {
  height:auto;
}
.rv-reform__pricing-imgs .rv-reform__pricing-img {
  width:100%;
  height:auto;
  display:block;
  margin-bottom:0;
}

.rv-reform__pricing-img-item {
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.rv-reform__pricing-img-item .rv-reform__pricing-img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  height:auto;
  display:block;
}

.rv-reform__pricing-img-label {
  font-size:.875rem;
  font-weight:700;
  color:var(--color-primary);
  text-align:center;
}

.rv-reform__pricing-grid--2col {
  grid-template-columns: 1fr;
  @media (min-width: 768px) {
    grid-template-columns: repeat(2, 1fr);
  }
}

.rv-reform__swiper-btn {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  border-radius:9999px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  border:none;
  cursor:pointer;
  background:var(--color-primary) !important;
  width:2.5rem !important;
  height:2.5rem !important;
  font-size:1.5rem !important;
  @media (hover: hover) {
    &:hover {
      background:var(--color-accent) !important;
    }
  }
}

.rv-reform__swiper-btn--prev {
  left:.5rem;
}

.rv-reform__swiper-btn--next {
  right:.5rem;
}

.rv-reform__pricing-card .rv-flow__step-extra {
  border-radius:0;
  margin-top:1rem;
  text-align:center;
  padding:.75rem 1.25rem;
  background:var(--color-white);
  color:var(--color-primary);
  border:1px solid var(--color-border);
}

.rv-contact__hero {
  background:var(--color-white);
  border-bottom:1px solid var(--color-border);
  padding:3.5rem 0;
  text-align:center;
  @media (min-width: 768px) {
    padding:5rem 0;
  }
}

.rv-contact__hero-title {
  font-size:2rem;
  font-weight:700;
  color:var(--color-primary);
  letter-spacing:.04em;
  @media (min-width: 768px) {
    font-size:2.75rem;
  }
}

.rv-contact__line-box {
  background:var(--color-white);
  overflow:visible;
  border:1px solid var(--color-border);
  border-top:3px solid var(--color-line);
  border-radius:.5rem;
  padding:2rem 1.4rem;
  box-shadow:0 2px 12px rgba(32,44,92,.07);
  max-width:56rem;
  @media (min-width: 768px) {
    padding:2.5rem 1.5rem;
  }
}

.rv-contact__line-row {
  grid-template-columns:1fr;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  padding:0;
  margin-bottom:2rem;
  border-bottom:none;
  @media (min-width: 640px) {
    padding:0 2.5rem;
    grid-template-columns:16rem 1fr;
    flex-direction:row;
    gap:2.5rem;
    align-items:center;
  }
}

.rv-contact__line-qr-img {
  width:100%;
  height:auto;
  border:1px solid var(--color-border);
  display:block;
}

.rv-contact__line-body {
  flex:1;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  padding:0;
  justify-content:flex-start;
  @media (min-width: 640px) {
    padding:0;
  }
  @media (min-width: 768px) {
    gap:2rem;
    flex-direction:column;
    align-items:flex-start;
  }
}

.rv-contact__line-body .lp-subpage__text {
  font-size:.9375rem;
  line-height:1.9;
  @media (min-width: 768px) {
    flex:1;
  }
}

.rv-contact__line-btn {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:.75rem 1.75rem;
  color:var(--color-white);
  font-weight:700;
  letter-spacing:.08em;
  transition:opacity .2s;
  font-size:.9375rem;
  background:var(--color-line);
  width:100%;
  min-width:0;
  align-self:flex-end;
  margin-left:auto;
  @media (min-width: 640px) {
    width:auto;
    min-width:20rem;
  }
  @media (min-width: 768px) {
    align-self:flex-start;
    flex-shrink:unset;
  }
  @media (hover: hover) {
    &:hover {
      background:var(--color-line);
      color:var(--color-white);
      opacity:.8;
    }
  }
}
@media (hover: hover) {
  .is-revival-lp .rv-contact__line-btn:hover {
    color:var(--color-white);
  }
}

.rv-contact__line-note {
  text-align:center;
  margin-top:0;
  border-radius:.375rem;
  padding:1.5rem .5rem;
  margin-left:auto;
  margin-right:auto;
  max-width:none;
  background:rgba(6,199,85,.08);
  @media (min-width: 640px) {
    padding:1.5rem 2rem;
  }
}

.rv-contact__line-note-eyebrow {
  letter-spacing:.03em;
  font-size:.9375rem;
  font-weight:700;
  margin-bottom:.1rem;
  color:var(--color-line);
}

.rv-contact__line-note-title {
  font-weight:700;
  font-size:1.25rem;
  line-height:1.4;
  color:var(--color-line);
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:.5rem;
}

.rv-contact__line-note-list {
  list-style:none;
  display:inline-flex;
  font-size:.9375rem;
  counter-reset:note-counter;
  text-align:left;
  background:var(--color-white);
  padding:1rem 1.5rem;
  border-radius:.25rem;
  margin-top:.5rem;
  flex-direction:column;
  gap:.5rem 1.5rem;
  @media (min-width: 768px) {
    flex-direction:row;
    flex-wrap:wrap;
    gap:.5rem 2rem;
    justify-content:center;
  }
}

.rv-contact__line-note-item {
  counter-increment:note-counter;
  display:flex;
  align-items:center;
  gap:.625rem;
  font-weight:700;
}

.rv-contact__line-note-item::before {
  content:counter(note-counter);
  flex-shrink:0;
  width:1.375rem;
  height:1.375rem;
  border-radius:9999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.6875rem;
  font-weight:700;
  line-height:1;
  border:1px solid var(--color-text-muted);
  color:var(--color-text-muted);
}



.rv-contact__form-title {
  font-size:1.125rem;
  font-weight:700;
  text-align:center;
  color:var(--color-primary);
  padding:.75rem 0;
  border-top:2px solid var(--color-primary);
  border-bottom:2px solid var(--color-primary);
  margin-bottom:2.5rem;
  @media (min-width: 768px) {
    font-size:1.25rem;
    margin-bottom:3rem;
  }
}

/* ============================================================================
 * 画像共有のご案内ボックス（メールフォーム上部）
 * ============================================================================ */
.rv-contact__share {
  margin-bottom:2.5rem;
  padding:1.25rem 1.5rem;
  background:var(--color-white);
  border:1px solid var(--color-border);
  border-radius:.375rem;
  @media (min-width: 768px) {
    padding:1.75rem 2rem;
  }
}
.rv-contact__share-title {
  font-weight:700;
  font-size:1rem;
  color:var(--color-primary);
  margin-bottom:.5rem;
}
.rv-contact__share-lead {
  font-size:.9375rem;
  line-height:1.8;
  margin-bottom:.75rem;
}
.rv-contact__share-actions {
  margin-top:1.25rem;
}

/* ============================================================================
 * お問合せフォーム = Snow Monkey Forms（「リバイバルのお問合せ」）
 *   page-contact.php の .rv-contact__form 内に SMF ブロックを埋め込み、
 *   SMF 出力（.smf-*）をサイトデザインに合わせて上書きする。
 *   入力→確認→完了の遷移・送信・メールは SMF の JS / REST が担当。
 * ============================================================================ */

/* 1 行（ラベル列 + 入力列） */
.rv-contact__form .smf-item {
  display:grid;
  grid-template-columns:1fr;
  gap:.75rem;
  padding:1.25rem 0;
  border-bottom:1px solid var(--color-border);
  @media (min-width: 640px) {
    grid-template-columns:14rem 1fr;
    gap:1.5rem;
    align-items:start;
  }
}
.rv-contact__form .smf-item:first-of-type {
  border-top:1px solid var(--color-border);
}
.rv-contact__form .smf-item__label a {
  text-decoration:underline;
}
.rv-contact__form .smf-item__label {
  font-weight:700;
  font-size:.9375rem;
  line-height:1.6;
  color:var(--color-text);
  @media (min-width: 640px) {
    padding-top:.5rem;
  }
}

/* 入力欄 */
.rv-contact__form .smf-text-control__control,
.rv-contact__form .smf-textarea-control__control,
.rv-contact__form .smf-select-control__control {
  width:100%;
  border:1px solid #c7c8ca;
  border-radius:0;
  padding:.625rem .875rem;
  font-size:1rem;
  font-family:var(--font-sans);
  color:var(--color-text);
  background:var(--color-white);
  transition:border-color .2s, box-shadow .2s;
}
.rv-contact__form .smf-textarea-control__control {
  min-height:9rem;
  resize:vertical;
}
.rv-contact__form .smf-text-control__control:focus,
.rv-contact__form .smf-textarea-control__control:focus,
.rv-contact__form .smf-select-control__control:focus {
  outline:none;
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(32,44,92,.08);
}
/* 郵便番号は短く（SMF 再描画後も効くよう name 属性で指定） */
.rv-contact__form .smf-text-control__control[name="postal"] {
  max-width:11rem;
}

/* ラジオ */
.rv-contact__form .smf-radio-buttons-control__control {
  display:flex;
  flex-direction:column;
  gap:.625rem;
  padding-top:.25rem;
}
.rv-contact__form .smf-radio-button-control {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.9375rem;
  cursor:pointer;
}
.rv-contact__form .smf-radio-button-control__control {
  accent-color:var(--color-primary);
  width:1rem;
  height:1rem;
  flex-shrink:0;
}

/* バリデーションエラー */
.rv-contact__form .smf-error-messages {
  margin-top:.375rem;
  color:#c53030;
  font-size:.875rem;
  line-height:1.6;
}
.rv-contact__form [data-invalid="true"] {
  border-color:#c53030 !important;
}

/* アクション（入力内容を確認する / 修正する / 送信する） */
.rv-contact__form .smf-action {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1rem;
  margin-top:2.5rem;
}
.rv-contact__form .smf-button-control__control {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-width:18rem;
  max-width:100%;
  padding:1rem 1.5rem;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--color-white);
  background:var(--color-primary);
  border:1px solid var(--color-primary);
  transition:opacity .2s, background .2s, color .2s;
}
.rv-contact__form .smf-button-control__control[data-action="back"] {
  background:var(--color-white);
  color:var(--color-primary);
}
@media (hover: hover) {
  .rv-contact__form .smf-button-control__control:hover {
    opacity:.85;
  }
}

/* 確認画面：入力値のテキスト表示 */
.rv-contact__form .snow-monkey-form[data-screen="confirm"] .smf-item__controls {
  padding-top:.5rem;
  font-size:1rem;
  line-height:1.8;
  white-space:pre-wrap;
}

/* 完了画面 */
.rv-contact__form .snow-monkey-form[data-screen="complete"] {
  text-align:center;
}
.rv-contact__form .snow-monkey-form[data-screen="complete"] p {
  line-height:2;
}

/* 必須バッジ（SMF の標準バッジとは別に出すカスタムバッジ） */
.rv-contact__badge {
  font-size:.75rem;
  font-weight:700;
  color:#c53030;
  vertical-align:middle;
  margin-left:.375rem;
}

/* 住所フィールド：郵便番号 + テキスト間のギャップ */
.rv-contact__form .smf-item__controls {
  display:flex;
  flex-direction:column;
  gap:.625rem;
}

.rv-contact__box-title {
  padding:1.25rem 2rem;
  background:none;
  letter-spacing:normal;
  font-size:1.125rem;
  font-weight:700;
  color:var(--color-primary);
  text-align:left;
  padding-left:1rem;
  position:relative;
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:1.75rem;
  padding-top:0;
  border-left:4px solid var(--color-line);
  @media (min-width: 768px) {
    padding:0 2.5rem;
    font-size:1.25rem;
  }
}

.rv-contact__line-qr-label {
  color:rgba(255,255,255,.55);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.12em;
  text-align:center;
  text-transform:uppercase;
}

.rv-contact__line-qr {
  background:none;
  flex-shrink:0;
  display:block;
  padding:0;
  width:160px;
  align-self:center;
  @media (min-width: 640px) {
    width:180px;
  }
}

.rv-contact__box-title::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--color-line);
  display:none;
}

.lp-floating-cta {
  @media (min-width: 1024px) {
    top:50%;
  }
}

.hero-swiper__slide.swiper-slide-active .hero-swiper__img {
  transform: scale(1.1);
  transition-timing-function: ease-out;
  /* animation:heroZoom 10s ease-out forwards; */
}

.section-heading-jp__title {
  letter-spacing:.08em;
}

.rv-reform__intro-heading::before {
  display:none;
}

.rv-reform__intro-heading .section-heading-jp__title {
  padding-left:0;
  border-left:none;
  min-height:auto;
  font-weight:700;
  justify-content:center;
  text-align:center;
  font-size:1.5rem !important;
  @media (min-width: 768px) {
    font-size:2rem !important;
  }
}

.rv-reform__intro-desc {
  margin-top:1rem;
  font-size:1rem;
  line-height:1.9;
  color:var(--color-text);
  margin-bottom:2rem;
  text-align:center;
  max-width:40rem;
  margin-left:auto;
  margin-right:auto;
  padding-top:1rem;
}

.rv-reform__page-nav {
  background:var(--color-white);
  padding:.875rem 0;
  padding-top:0 !important;
}

.rv-reform__page-nav-list {
  display:flex;
  gap:.5rem .75rem;
  list-style:none;
  padding:0;
  margin:0;
  justify-content:center;
  flex-direction: column;
  flex-wrap: nowrap;
  @media (min-width: 768px) {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.rv-reform__page-nav-link {
  align-items:center;
  gap:.375rem;
  font-size:.8125rem;
  font-weight:500;
  color:var(--color-primary);
  border:1px solid var(--color-border);
  transition:background .2s,border-color .2s;
  text-decoration:none;
  padding:.375rem .75rem;
  display: flex;
  width: 100%;
  justify-content: center;
  @media (min-width: 768px) {
    display: inline-flex;
    width: auto;
  }
}

.rv-reform__page-nav-link::before {
  content:"▼";
  font-size:.5rem;
  line-height:1;
  color:var(--color-accent);
}

.rv-btn-sub {
  font-size:.8em;
  display:block;
  letter-spacing:.01em;
}

.rv-btn-text {
  letter-spacing:.01em;
}

.rv-contact__line-body>.rv-contact__line-btn {
  margin-left:auto;
  align-self:flex-end;
}


.rv-company__about-heading .section-heading-jp__title {
  border-left:none;
  padding-left:0;
  justify-content:center;
  text-align:center;
  min-height:auto;
}

.rv-company__about-heading .section-heading-jp__sub {
  border-left:none;
  padding-left:0;
  text-align:center;
}

.rv-company__about {
  max-width:48rem;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.rv-company__about-actions {
  display:flex;
  justify-content:center;
}

.section-heading-jp__title--jost {
  font-family:var(--font-jost);
}

.rv-news__thumb-placeholder {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  background:var(--color-bg-muted);
}

.rv-news__thumb-logo {
  width:60%;
  max-width:120px;
  height:auto;
  object-fit:contain;
  opacity:.5;
}

.section-heading-jp.rv-company__about-heading .section-heading-jp__title {
  border-left:none;
  padding-left:0;
}

.section-heading-jp.rv-company__about-heading .section-heading-jp__sub {
  border-left:none;
  padding-left:0;
}

/* :last-child mb:0 は HTML ユーティリティで扱いにくいため scope クラスで残置 */
.rv-about__message .lp-subpage__content .lp-subpage__text:last-child {
  margin-bottom:0;
}

.section-heading-jp.rv-corporate__heading--main .section-heading-jp__title {
  border-left:none;
  padding-left:0;
  justify-content:center;
  text-align:center;
  min-height:auto;
  font-weight:700;
}

.rv-corporate__case-section .lp-subpage__media {
  aspect-ratio:4/3;
}

.rv-corporate__case-section .rv-corporate__list-box {
  max-width:100%;
  margin-left:0;
  margin-right:auto;
}

.rv-corporate__case-section .lp-subpage__content .rv-corporate__list-box {
  max-width:100%;
  width:100%;
  @media (min-width: 768px) {
    max-width:80%;
    width:80%;
  }
}

/* 旧 .rv-works-archive section .lp-container は .lp-container にデフォルト padding 無しのため dead */

/* 旧 #rv-works-single ul.flex.flex-wrap は現マークアップ未使用（dead） */

.rv-works-single a {
  @media (hover: hover) {
    &:hover {
      color:inherit;
    }
    &:hover * {
      color:inherit;
    }
  }
}

.rv-works-single__hero-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem;
  margin-top:1.25rem;
}

.rv-works-single__hero-date {
  font-family:var(--font-jost);
  font-size:.875rem;
  color:rgba(255,255,255,.75);
  letter-spacing:.04em;
}

.rv-works-single__hero-cats {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  padding:0;
  margin:0;
  list-style:none;
}

.rv-works-single__hero-cat {
  font-size:.75rem;
  font-weight:700;
  padding:.2rem .75rem;
  background:var(--color-primary) !important;
  color:#fff !important;
}


.rv-works-single__main-img {
  width:100%;
  @media (min-width: 768px) {
    max-width:512px;
    margin-left:auto;
    margin-right:auto;
    display:block;
  }
}

.rv-works-single__ba-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1.5rem;
  @media (min-width: 768px) {
    gap:2rem;
  }
}

.rv-works-single__ba-pagination {
  display:flex;
  justify-content:center;
  gap:.25rem;
  margin-top:.5rem;
}

.rv-works-single__table {
  width:100%;
  border-collapse:collapse;
  font-size:1rem;
}

.rv-works-single__table-row {
  border-bottom:1px solid #d1d5db;
}

.rv-works-single__table-th {
  text-align:left;
  font-weight:400;
  padding:.5rem 1rem;
  width:8rem;
  border-right:1px solid #d1d5db;
}

.rv-works-single__table-td {
  padding:.5rem 1rem;
}

.rv-works-single__cols {
  display:grid;
  gap:2rem;
  @media (min-width: 768px) {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:2.5rem;
  }
}

.rv-works-single__col-text {
  font-size:1rem;
  line-height:2;
}

.rv-works-single__h3 {
  font-size:1rem;
  font-weight:700;
  text-align:center;
  border-bottom:1px solid var(--color-primary);
  padding-bottom:.75rem;
  margin-bottom:1rem;
  @media (min-width: 768px) {
    font-size:1.125rem;
  }
}

.rv-works-single__voice-row {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
  @media (min-width: 640px) {
    flex-direction:row;
    gap:1.5rem;
  }
}

.rv-works-single__voice-avatar {
  width:5rem;
  height:5rem;
  border-radius:9999px;
  flex-shrink:0;
  @media (min-width: 640px) {
    width:6rem;
    height:6rem;
  }
}

.rv-works-single__voice-bubble {
  flex:1;
  background:#f3f4f6;
  border-radius:1rem;
  padding:1rem;
  @media (min-width: 768px) {
    padding:1.5rem;
  }
}

.rv-works-single__voice-text {
  font-size:1rem;
  line-height:2;
}

.rv-works-single__related-title {
  font-size:1.125rem;
  font-weight:700;
  text-align:center;
  margin-bottom:1.5rem;
  @media (min-width: 768px) {
    font-size:1.25rem;
    margin-bottom:2rem;
  }
}

.rv-works-single__related-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  @media (min-width: 640px) {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  @media (min-width: 768px) {
    gap:1.5rem;
  }
}

.rv-works-single__related-card {
  border:1px solid var(--color-border);
  background:var(--color-white);
}

.rv-works-single__related-link {
  display:block;
  transition:opacity .2s;
  @media (hover: hover) {
    &:hover {
      opacity:.9;
    }
  }
}

.rv-works-single__related-tags {
  display:flex;
  flex-wrap:wrap;
  gap:.25rem;
  padding-left: 0;
  margin-bottom:.5rem;
}

.rv-works-single__related-h4 {
  font-size:1rem;
  font-weight:700;
  color:var(--color-primary);
  margin-bottom:.25rem;
  @media (min-width: 768px) {
    font-size:1.125rem;
  }
}

.rv-works-single__related-area {
  font-size:1rem;
}

.rv-works-related-cat {
  display:inline-block;
  background:var(--color-primary);
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  padding:.15rem .6rem;
}
.rv-works-single__related-link:hover .rv-works-related-cat {
  color:#fff;
}

.rv-works-related-thumb {
  width:100%;
  object-fit:cover;
  background:var(--color-bg-muted);
  aspect-ratio:4/3;
}

.rv-works-single__pagenav {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:center;
  margin-bottom:1.5rem;
}

.rv-works-single__pagenav-btn {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid #d1d5db;
  padding:.5rem 1.25rem;
  font-size:1rem;
  background:var(--color-white);
  transition:background-color .2s;
  @media (hover: hover) {
    &:hover {
      background:#f3f4f6;
    }
  }
}

.rv-works-single__backwrap {
  display:flex;
  justify-content:center;
}

.rv-works-single__back {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:100%;
  max-width:400px;
  border:1px solid #1f2937;
  padding:1rem 2rem;
  font-size:1rem;
  background:var(--color-white);
  transition:background-color .2s, color .2s;
  @media (min-width: 1024px) {
    width:auto;
    max-width:none;
    display:inline-flex;
  }
}

.rv-works-ba-label {
  font-size:1rem;
  font-weight:700;
  padding:.5rem 1rem;
  background:var(--color-primary);
  color:#fff;
  position:relative;
  margin-bottom:1.5rem !important;
  @media (min-width: 768px) {
    font-size:1.125rem;
  }
}

.rv-works-section-h3 {
  color:var(--color-primary);
  border-color:var(--color-primary);
}

.rv-works-single__page-eyebrow {
  font-size:.75rem;
  letter-spacing:.15em;
  color:var(--color-primary);
  font-family:var(--font-jost);
  margin-bottom:.5rem;
}

.rv-works-single__page-title {
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.4;
  margin-bottom:1rem;
  @media (min-width: 768px) {
    font-size:1.875rem;
  }
}

.rv-works-single__page-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem;
}

.rv-works-single__page-date {
  font-family:var(--font-jost);
  font-size:.875rem;
  color:var(--color-text);
  opacity:.7;
  letter-spacing:.04em;
}

/* .rv-works-single .js-works-before-swiper .swiper-slide img {
  aspect-ratio:4/3;
  width:100%;
  object-fit:cover;
} */

/* .rv-works-single .js-works-after-swiper .swiper-slide img {
  aspect-ratio:4/3;
  width:100%;
  object-fit:cover;
} */

/* 旧 #rv-works-single ul.grid は現マークアップ未使用（dead） */

.rv-works-ba-label::after {
  content:'';
  position:absolute;
  bottom:-.5rem;
  left:50%;
  transform:translateX(-50%);
  width:0;
  height:0;
  border-left:.5rem solid transparent;
  border-right:.5rem solid transparent;
  border-top:.5rem solid var(--color-primary);
}

.rv-works-ba-label--after::after {
  border-top-color:var(--color-accent);
}

/* Before / After サムネイルナビ */
.rv-works-single__thumbs-swiper {
  margin-top:.625rem;
}
.rv-works-single__thumb-slide {
  width:25% !important;
  cursor:pointer;
}
.rv-works-single__thumb-img {
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  opacity:.45;
  border:2px solid transparent;
  transition:opacity .2s,border-color .2s;
}
.swiper-slide-thumb-active .rv-works-single__thumb-img {
  opacity:1;
  border-color:var(--color-primary);
}

.rv-news__filter {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-bottom:2rem;
}

.rv-news__filter-btn {
  display:inline-block;
  padding:.4rem 1.25rem;
  border:1px solid var(--color-primary);
  font-size:.875rem;
  color:var(--color-primary);
  background:var(--color-white);
  text-decoration:none;
  transition:background .2s,color .2s;
}

.rv-news__filter-btn--active {
  background:var(--color-primary);
  color:#fff;
}

.rv-news-single__meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem;
  margin-bottom:.75rem;
}

.rv-news-single__cat {
  display:inline-block;
  background:var(--color-primary);
  color:#fff;
  font-size:.75rem;
  font-weight:700;
  padding:.2rem .75rem;
  text-decoration:none;
  transition:opacity .2s;
  @media (hover: hover) {
    &:hover {
      opacity:.8;
    }
  }
}

.rv-news__body-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  margin-bottom:.25rem;
}

.rv-news__cat-tag {
  display:inline-block;
  background:var(--color-primary);
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  padding:.15rem .6rem;
  min-width:5rem;
  text-align:center;
}

.rv-news-single .rv-news-single__cat {
  @media (hover: hover) {
    &:hover {
      opacity:.8;
    }
  }
}

.rv-flow__page-nav {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem .75rem;
  margin-bottom:1.5rem;
  justify-content:center;
  padding:.625rem 0;
}

.rv-flow__page-nav-btn {
  display:inline-flex;
  align-items:center;
  gap:.375rem;
  font-size:.8125rem;
  font-weight:500;
  color:var(--color-primary);
  border:1px solid var(--color-border);
  padding:.375rem .875rem;
  transition:background .2s,border-color .2s;
  text-decoration:none;
  background:none;
}

.rv-flow__page-nav-btn::before {
  content:'▼';
  font-size:.5rem;
  line-height:1;
  color:var(--color-accent);
}

.rv-flow__page-nav-btn--active {
  background:var(--color-primary);
  color:#fff;
  border-color:var(--color-primary);
}

.rv-flow__step-cta--full {
  display:flex;
  justify-content:center;
  margin-top:1.5rem;
  padding-top:1.5rem;
}

/* セクション余白・見出し余白は HTML 側のユーティリティクラスで指定（md:py-18 / mb-0 / mb-8 md:mb-10 等） */

.rv-reform__pricing-card .rv-flow__step-extra-item:nth-child(3) {
  grid-column:1/-1;
  text-align:center;
}

.rv-reform__pricing-card .rv-flow__step-extra-item::before {
  content:"● ";
  color:var(--color-accent);
}

.rv-reform .lp-subpage__grid--reverse {
  @media (min-width: 768px) {
    grid-template-columns:1fr 1fr !important;
  }
}

.rv-reform__film-features {
  display:flex;
  flex-direction:column;
  background:var(--color-bg-muted);
  border-top:none;
  justify-content:center;
  align-items:center;
  gap:0;
  margin-top:-1rem;
  padding:1.25rem .75rem;
}

.rv-reform__film-tag-break {
  flex-basis:100%;
  height:0;
  padding:0;
  border:none;
  background:none;
  margin:0;
  display:none !important;
}

.lp-flow__cta {
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.rv-reform__pricing-card .rv-flow__step-extra-title {
  color:var(--color-primary) !important;
}

.rv-reform__pricing-card .rv-flow__step-extra-item {
  color:var(--color-text);
}

.lp-footer__cols > :first-child {
  text-align: center;
  @media (min-width: 768px) {
    text-align: left;
  }
}

.rv-reform__cats > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
  justify-self: center;
  width: 100%;
  max-width: calc((100% - 1.5rem) / 2);
  @media (min-width: 768px) {
    grid-column: auto;
    justify-self: auto;
    width: auto;
    max-width: none;
  }
}

/* @keyframes heroZoom {
  from {
    transform:scale(1);
  }
  to {
    transform:scale(1.1);
  }
} */

@keyframes scrollText {
  0%,100% {
    opacity:.4;
  }
  50% {
    opacity:1;
  }
}

@keyframes scrollLine {
  0% {
    transform:scaleY(0);
    transform-origin:top center;
    opacity:1;
  }
  60% {
    transform:scaleY(1);
    transform-origin:top center;
    opacity:1;
  }
  100% {
    transform:scaleY(1);
    transform-origin:top center;
    opacity:0;
  }
}

/* ============================================================================
 * rv-faq — よくあるご質問 (page-faq.php)
 * ネイティブ <details>/<summary> アコーディオン。開閉状態は .rv-faq__item[open]。
 * ============================================================================ */
.rv-faq__list {
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.rv-faq__item {
  background:var(--color-white);
  border:1px solid var(--color-border);
}
.rv-faq__q {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:1rem 1.25rem;
  list-style:none;
  cursor:pointer;
  font-size:1rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.6;
  @media (min-width: 768px) {
    gap:1rem;
    padding:1.25rem 1.5rem;
    font-size:1.0625rem;
  }
  @media (hover: hover) {
    &:hover {
      background:var(--color-bg-muted);
    }
  }
}
.rv-faq__q::-webkit-details-marker {
  display:none;
}
.rv-faq__mark {
  flex:none;
  display:flex;
  align-items:center;
  justify-content:center;
  width:1.75rem;
  height:1.75rem;
  background:var(--color-primary);
  color:var(--color-white);
  font-family:var(--font-jost);
  font-size:.9375rem;
  font-weight:700;
  line-height:1;
}
.rv-faq__mark--a {
  background:var(--color-accent);
  color:var(--color-primary);
}
.rv-faq__q-text {
  flex:1 1 auto;
  padding-top:.1875rem;
}
.rv-faq__icon {
  flex:none;
  position:relative;
  width:1.25rem;
  height:1.25rem;
  margin-top:.25rem;
}
.rv-faq__icon::before,
.rv-faq__icon::after {
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:.875rem;
  height:2px;
  background:var(--color-primary);
  transform:translate(-50%, -50%);
  transition:transform .25s;
}
.rv-faq__icon::after {
  transform:translate(-50%, -50%) rotate(90deg);
}
.rv-faq__item[open] .rv-faq__icon::after {
  transform:translate(-50%, -50%) rotate(0deg);
}
.rv-faq__a {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:1rem 1.25rem 1.25rem;
  border-top:1px solid var(--color-border);
  @media (min-width: 768px) {
    gap:1rem;
    padding:1.25rem 1.5rem 1.5rem;
  }
}
.rv-faq__a-text {
  flex:1 1 auto;
  font-size:1rem;
  line-height:2;
  color:var(--color-text);
  padding-top:.1875rem;
}
/* CTA 見出しの下マージンを共通値（lp-subpage__heading）の約半分に */
.rv-faq__cta-heading {
  margin-bottom:1.25rem;
  @media (min-width: 768px) {
    margin-bottom:1.75rem;
  }
}

/* ============================================================
   404 ページ（404.php）— .rv-404
   ============================================================ */
.rv-404__code {
  font-family:var(--font-jost);
  font-size:7rem;
  font-weight:500;
  letter-spacing:.06em;
  line-height:1;
  color:var(--color-border);
  margin-bottom:1.5rem;
  @media (min-width: 768px) {
    font-size:10rem;
    margin-bottom:2rem;
  }
}

.rv-404__lead {
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

