﻿/*
 Theme Name:  vlab-okinawa Child (TT5)
 Description: Twenty Twenty-Five child theme for vlab-okinawa
 Author:      OVL
 Template:    twentytwentyfive
 Version:     1.0.0
 Text Domain: okivaluelab-child
*/

@import url("../twentytwentyfive/style.css");

:root {
  --ovl-body-bg: #ffffff;
  --ovl-card-bg: #ffffff;
  --ovl-text-base: #333333;
  --ovl-accent: #0bb7c0;
  --ovl-chapter-mark-size: clamp(28px, 3vw, 40px);
}

body.page .wp-site-blocks>main>.wp-block-post-title,
body.page .wp-site-blocks>main>header .wp-block-post-title {
  display: none;
}

/* Show page title (H1) only on opted-in templates. */
.wp-site-blocks>main.ovl-show-title>.wp-block-post-title,
.wp-site-blocks>main.ovl-show-title>header .wp-block-post-title {
  display: block !important;
  margin-top: clamp(1.25rem, 3vw, 2.25rem) !important;
}

body.page .entry-header .page-title {
  display: none;
}

/* Footer background should bleed full width even when the template-part wrapper is constrained. */
.wp-block-template-part:has(.site-footer) {
  background: #fbfcfd !important;
  border-top: 1px solid rgba(7, 18, 30, 0.05) !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
}

footer.site-footer {
  background: transparent !important;
  border-top: 0 !important;
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  padding-top: var(--wp--preset--spacing--50) !important;
  padding-bottom: 5px !important;
  font-size: 0.95rem;
}

.site-footer .container {
  display: flex;
  flex-direction: column;
}

/* 上段 */
.site-footer .ovl-footer-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--wp--preset--spacing--30);
  padding-bottom: var(--wp--preset--spacing--10);
}

.site-footer .ovl-footer-brand {
  flex-shrink: 0;
}

/* 中段 */
.site-footer .ovl-footer-nav-wrap {
  padding-top: var(--wp--preset--spacing--20);
  padding-bottom: 0 !important;
  border-top: 1px solid rgba(7, 18, 30, 0.06);
}

.site-footer .ovl-footer-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--wp--preset--spacing--20);
}

/* カテゴリ見出しのアクセント */
.site-footer .ovl-footer-nav .wp-block-heading {
  font-size: 0.8rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.site-footer .ovl-footer-nav .wp-block-heading::before {
  content: "";
  display: inline-block;
  width: 3px;
  height: 0.8em;
  background: currentColor;
  border-radius: 2px;
}

.site-footer .ovl-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer .ovl-footer-links li {
  margin-bottom: 0.3rem;
}

/* 投稿一覧（カード） */
.ovl-post-list__chips {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.25rem;
}

.ovl-post-list__item {
  align-items: center;
}

.ovl-post-list__thumb {
  width: clamp(120px, 18vw, 160px);
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 12px;
  flex: 0 0 auto;
}

.ovl-post-list__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-featured-image {
  width: clamp(78px, 10vw, 100px);
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 12px;
  flex: 0 0 auto;
  margin: 0;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-group.alignfull.wp-block-group-is-layout-flex {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: clamp(10px, 1.6vw, 16px);
  row-gap: 0.1rem;
  align-items: center;
  justify-content: start;
  padding-top: var(--wp--preset--spacing--20) !important;
  padding-bottom: var(--wp--preset--spacing--20) !important;
  border-bottom-color: rgba(7, 18, 30, 0.08) !important;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-featured-image {
  grid-row: 1 / span 2;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-date {
  grid-column: 2;
  grid-row: 1;
  text-align: left;
  margin: 0;
  line-height: 1.1;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-title {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  line-height: 1.25;
  font-size: clamp(1rem, 0.9rem + 0.2vw, 1.1rem);
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-post-title.has-large-font-size {
  font-size: clamp(1.05rem, 0.95rem + 0.25vw, 1.2rem) !important;
}

.ovl-post-list__text {
  min-width: 0;
  gap: 0.35rem;
}

.ovl-post-list__text .wp-block-post-title {
  margin: 0;
}

.ovl-post-list__text .wp-block-post-date {
  margin: 0;
  color: rgba(51, 51, 51, 0.7);
}

.ovl-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(7, 18, 30, 0.12);
  background: #fff;
  text-decoration: none;
  color: inherit;
  font-weight: 700;
  line-height: 1;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.ovl-chip:focus-visible {
  outline: 3px solid rgba(11, 183, 192, 0.35);
  outline-offset: 2px;
}

.ovl-chip.is-current {
  border-color: var(--ovl-accent);
  background: rgba(11, 183, 192, 0.08);
  box-shadow: 0 0 0 3px rgba(11, 183, 192, 0.12);
  color: var(--ovl-accent);
}

.ovl-post-grid {
  display: grid !important;
  gap: clamp(12px, 2vw, 20px);
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}

@media (max-width: 960px) {
  .ovl-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .ovl-post-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .ovl-post-list__item {
    align-items: flex-start;
  }

  .ovl-post-list__thumb {
    width: clamp(96px, 32vw, 140px);
  }

  .wp-block-query .wp-block-post-template .wp-block-post-date {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

.ovl-post-card {
  display: flex;
  flex-direction: column;
  height: 100% !important;
  align-self: stretch;
  border-radius: 16px;
  overflow: hidden;
  background: var(--ovl-card-bg);
  border: 1px solid rgba(7, 18, 30, 0.08);
  text-decoration: none;
  color: inherit;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.ovl-post-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(7, 18, 30, 0.1);
  border-color: rgba(7, 18, 30, 0.14);
}

.ovl-post-card:focus-visible {
  outline: 3px solid rgba(11, 183, 192, 0.35);
  outline-offset: 3px;
}

.ovl-post-card__thumb {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(7, 18, 30, 0.04), rgba(7, 18, 30, 0.02));
}

.ovl-post-card.has-no-thumb .ovl-post-card__thumb {
  background:
    radial-gradient(120% 120% at 10% 0%, rgba(11, 183, 192, 0.16) 0%, rgba(11, 183, 192, 0.02) 55%, rgba(7, 18, 30, 0.02) 100%),
    repeating-linear-gradient(
      45deg,
      rgba(7, 18, 30, 0.03) 0,
      rgba(7, 18, 30, 0.03) 10px,
      rgba(255, 255, 255, 0.0) 10px,
      rgba(255, 255, 255, 0.0) 20px
    );
}

.ovl-post-card__thumb-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  box-sizing: border-box;
}

.ovl-post-card__placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: rgba(7, 18, 30, 0.55);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(7, 18, 30, 0.18);
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(7, 18, 30, 0.06);
}

.ovl-post-card__placeholder::before {
  content: "";
  width: 1.15em;
  height: 0.85em;
  border: 2px solid currentColor;
  border-radius: 3px;
  box-sizing: border-box;
  opacity: 0.75;
}

.ovl-post-card__thumb img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
}

.ovl-post-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem 0;
  font-size: 0.85rem;
  color: rgba(51, 51, 51, 0.75);
  min-height: 1.4em;
}

.ovl-post-card__meta:empty {
  display: none;
}

.ovl-post-card__cat {
  color: var(--ovl-accent);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.ovl-post-card__date {
  white-space: nowrap;
}

.ovl-post-card__title {
  padding: 0.35rem 1rem 1rem;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.4;
  flex: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.4em * 2);
}

.ovl-post-card:hover .ovl-post-card__title {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.ovl-post-list__pager {
  margin-top: clamp(18px, 3vw, 28px);
}

.ovl-post-list__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(7, 18, 30, 0.12);
  text-decoration: none;
  color: inherit;
  margin-right: 0.35rem;
}

.ovl-post-list__pager .page-numbers.current {
  border-color: var(--ovl-accent);
  background: rgba(11, 183, 192, 0.08);
  color: var(--ovl-accent);
  font-weight: 800;
}

.ovl-post-list__pager .page-numbers:hover {
  border-color: rgba(7, 18, 30, 0.18);
}

/* 個別記事 */
.ovl-post-single__nav {
  margin-bottom: clamp(12px, 2vw, 18px);
  gap: 0.75rem;
}

.ovl-post-single__cats {
  margin: 0;
  color: rgba(51, 51, 51, 0.75);
  font-size: 0.9rem;
}

.ovl-post-single__cats a {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(7, 18, 30, 0.12);
  text-decoration: none;
  color: inherit;
  margin-right: 0.35rem;
}

.ovl-post-single__title {
  margin-top: 0.6rem;
}

.ovl-post-single .wp-block-post-featured-image img {
  border-radius: 16px;
}

.ovl-back-link {
  margin: 0;
}

.ovl-back-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(7, 18, 30, 0.12);
  background: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  color: inherit;
  font-weight: 700;
  line-height: 1;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.ovl-back-link a::before {
  content: "←";
  color: var(--ovl-accent);
}

.ovl-back-link a:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(7, 18, 30, 0.08);
  border-color: rgba(7, 18, 30, 0.16);
}

.ovl-back-link a:focus-visible {
  outline: 3px solid rgba(11, 183, 192, 0.35);
  outline-offset: 2px;
}

.ovl-post-single__footer {
  margin-top: clamp(18px, 3vw, 28px);
}

.site-footer .ovl-footer-links a {
  color: var(--ovl-text-base);
  text-decoration: none;
  font-size: 0.9rem;
  transition: all 0.2s ease;
  padding: 3px 0;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.site-footer .ovl-footer-links a::before {
  content: "›";
  /* さりげない矢印記号 */
  font-size: 1.2em;
  line-height: 1;
  color: #cbd5e1;
  transition: transform 0.2s ease, color 0.2s ease;
}

.site-footer .ovl-footer-links a:hover {
  color: #0b6f9c;
  padding-left: 4px;
  /* 少し右にスライド */
}

.site-footer .ovl-footer-links a:hover::before {
  transform: translateX(2px);
  color: #0b6f9c;
}

/* 下段 */
.site-footer .ovl-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--wp--preset--spacing--20);
  padding-top: 0 !important;
  margin-top: 0 !important;
  border-top: 1px solid rgba(7, 18, 30, 0.06);
  color: #7a8794;
  font-size: 0.9rem;
}

/* ボタン共通 */
.site-footer .ovl-footer-cta .wp-block-button__link {
  font-size: 0.85rem;
  padding: 0.6em 1.4em;
  border-radius: 999px;
  min-height: 40px;
  transition: all 0.25s ease;
}

/* Instagramボタン (Tertiary) */
.site-footer .ovl-footer-cta--tertiary .wp-block-button__link {
  background: transparent !important;
  color: #E1306C !important;
  border: 1px solid #E1306C !important;
  box-shadow: none !important;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.site-footer .ovl-footer-cta--tertiary .wp-block-button__link:focus-visible {
  outline: 2px solid #E1306C;
  outline-offset: 3px;
  border-radius: 999px;
}

.site-footer .ovl-footer-cta--tertiary .wp-block-button__link:focus {
  outline: 2px solid #E1306C;
  outline-offset: 3px;
  border-radius: 999px;
}

.site-footer .ovl-footer-cta--tertiary .wp-block-button__link::before {
  content: "";
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: url("assets/img/instagram.svg") no-repeat center / contain;
  mask: url("assets/img/instagram.svg") no-repeat center / contain;
}

.ovl-env-local .ovl-env-badge {
  position: fixed;
  top: calc(12px + var(--wp-admin--admin-bar--height, 0px));
  right: 12px;
  z-index: 10000;
  background: #f97316;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 6px 10px;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.25);
  text-transform: uppercase;
}

.site-footer .ovl-footer-cta--tertiary .wp-block-button__link:hover {
  background: #E1306C !important;
  color: #ffffff !important;
  border-color: #E1306C !important;
}

/* 会員・お問い合わせボタン (Outline) */
.site-footer .ovl-footer-cta .is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #0b6f9c !important;
  border: 1px solid #0b6f9c !important;
  box-shadow: none !important;
}

.site-footer .ovl-footer-cta .is-style-outline .wp-block-button__link:hover {
  background: #0b6f9c !important;
  color: #ffffff !important;
  border-color: #0b6f9c !important;
}

.site-footer .ovl-footer-bottom__right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.site-footer .ovl-footer-legal {
  display: flex;
  gap: 1rem;
}

.site-footer .ovl-footer-legal a {
  color: #333333;
  text-decoration: none;
}

.site-footer .ovl-footer-legal a:hover {
  text-decoration: underline;
}

.site-footer .ovl-footer-to-top {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: inherit;
  text-decoration: none;
}

.site-footer .ovl-footer-to-top::after {
  content: "↑";
  font-size: 1.1em;
}

.site-footer .ovl-footer-to-top:hover {
  color: var(--ovl-accent);
}

@media (max-width: 768px) {
  .site-footer .ovl-footer-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .site-footer .ovl-footer-cta {
    width: 100%;
    justify-content: flex-start !important;
  }

  .site-footer .ovl-footer-nav {
    grid-template-columns: 1fr;
    gap: var(--wp--preset--spacing--40);
  }

  .site-footer .ovl-footer-bottom {
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  .site-footer .ovl-footer-bottom__right {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    width: 100%;
  }

  .site-footer .ovl-footer-legal {
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
  }
}

body,
.wp-site-blocks {
  font-family: "Noto Sans JP", sans-serif;
  color: var(--ovl-text-base);
  background: var(--ovl-body-bg);
  line-height: 1.8;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
  min-height: 100vh;
}

html,
body,
.wp-site-blocks {
  overflow-x: clip;
}

@supports not (overflow: clip) {

  html,
  body,
  .wp-site-blocks {
    overflow-x: hidden;
  }
}

.wp-block-image,
.wp-block-image img {
  max-width: 100%;
}

.wp-block-image img {
  height: auto;
}

.wp-site-blocks>* {
  margin-inline: auto;
  width: min(1100px, 95vw);
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

.wp-site-blocks>.wp-block-template-part:has(.site-footer) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.wp-block-group.is-layout-constrained>* {
  max-width: 100%;
}


.wp-site-blocks main {
  padding-top: 0;
  padding-bottom: clamp(3rem, 5vw, 5rem);
}

/* /members/, /member-register/: テンプレート側で main が無い場合もあるので、ルート直下のコンテンツ枠に余白を付ける */
.page-members .wp-site-blocks>.wp-block-group:not(.site-header):not(main),
.page-id-52 .wp-site-blocks>.wp-block-group:not(.site-header):not(main),
.page-member-register .wp-site-blocks>.wp-block-group:not(.site-header):not(main),
.page-id-46 .wp-site-blocks>.wp-block-group:not(.site-header):not(main) {
  padding-block-start: clamp(3rem, 5vw, 5rem) !important;
}

/* /members/: main がある時は上余白を詰める（緑部分のpadding-top対策） */
.page-members .wp-site-blocks>main,
.page-id-52 .wp-site-blocks>main,
.page-template-page-members .wp-site-blocks>main {
  padding-block-start: clamp(1.25rem, 3vw, 2rem) !important;
}

/* WordPressの global padding（main.has-global-padding の padding-top）が勝つ場合があるので上書き */
body.page-members .wp-site-blocks>main.has-global-padding,
body.page-template-page-members .wp-site-blocks>main.has-global-padding,
body.page-id-52 .wp-site-blocks>main.has-global-padding {
  padding-block-start: clamp(1rem, 2.5vw, 1.75rem) !important;
}

/* Investment page: tighten spacing between header and hero */
.wp-site-blocks>main.page-investment {
  margin-block-start: 0;
  padding-block-start: 0;
  padding-block-end: clamp(0.25rem, 1.5vw, 1rem);
}

.page-investment .ovl-section.ovl-hero {
  margin-block-start: 0;
}

/* Investment page: reassurance section chapter marks */
.ovl-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  color: rgba(8, 18, 28, 0.55);
}

.ovl-icon svg {
  width: 100%;
  display: block;
}

.ovl-icon-figure {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
}

.ovl-icon-figure>svg {
  width: 18px;
  height: 18px;
  max-width: none;
  flex: 0 0 auto;
  display: block;
}

.ovl-icon-figure>figcaption {
  margin: 0;
  font-size: 0.9em;
  line-height: 1.2;
}

.ovl-card-reassure .ovl-icon {
  width: var(--ovl-chapter-mark-size);
  height: var(--ovl-chapter-mark-size);
  display: grid;
  place-items: center;
  margin-inline: auto;
  margin-block: 0 0.9rem;
}

.ovl-figure--diagram {
  margin-block: 1.25rem;
}

.ovl-figure--diagram .ovl-figure__img {
  width: min(680px, 100%);
  height: auto;
  display: block;
  margin-inline: auto;
}


/* ヘッダー */
.site-header {
  display: flex;
  background: #ffffff;
  border-bottom: 1px solid rgba(8, 18, 28, .08);
  position: sticky;
  top: 0;
  z-index: 100;
  align-items: center;
  justify-content: space-between;
  gap: clamp(8px, 2vw, 24px);
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: .9rem;
  flex-wrap: wrap;
}

/* Keep sticky header visible under the WP admin bar (logged-in). */
body.admin-bar .site-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
}

.site-header>* {
  min-width: 0;
}

@media (min-width: 769px) {
  .site-header {
    flex-wrap: nowrap;
  }

  /* Keep logo and nav on the same row (avoid full-width flex items). */
  .site-header> :is(.header-inner, .site-logo.wp-block-site-logo) {
    flex: 0 0 auto;
    width: auto;
  }

  .site-header>.header-nav-auth {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
  }

  .site-header :is(.wp-block-navigation, .wp-block-navigation__responsive-container) {
    min-width: 0;
  }

  .wp-site-blocks header.site-header:not(.alignfull) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .site-header :is(.wp-block-navigation-item__content,
    .wp-block-navigation a,
    .header-auth a,
    .header-auth .ovl-logout-link) {
    white-space: nowrap;
  }

  /* 物件詳細：ヘッダー内のナビが折り返さないよう強制 */
  body.single-property .site-header .header-nav-auth.is-layout-flex {
    flex-wrap: nowrap !important;
  }

  body.single-property .site-header .wp-block-navigation__container {
    flex-wrap: nowrap !important;
  }

  body.single-property .site-header .header-auth.is-layout-flex {
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
  }

  body.single-property .site-header .header-auth__link,
  body.single-property .site-header .header-auth__link a {
    white-space: nowrap !important;
  }
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 0;
}

.site-header .header-nav-auth {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(0.9rem, 2vw, 1.5rem) !important;
}

.site-header .wp-block-navigation__container {
  justify-content: flex-end;
  column-gap: clamp(0.9rem, 2vw, 1.5rem);
}

.site-header .header-auth {
  margin-left: 0;
  display: flex;
  align-items: center;
  gap: clamp(0.9rem, 2vw, 1.5rem);
}

/* Normalize block wrapper spacing in header auth area (mypage/logout). */
.site-header .header-auth>* {
  margin: 0 !important;
}

.site-header .header-auth p {
  margin: 0 !important;
}

.site-header .header-auth .has-global-padding {
  padding: 0 !important;
}

.site-header .header-auth .is-layout-constrained {
  margin: 0 !important;
}

.site-header .header-auth .wp-block-group,
.site-header .header-auth .wp-block-group-is-layout-constrained {
  padding: 0 !important;
}

/* WP-Members: profile links as buttons */
.wpmem-member-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.ovl-property-theme .wpmem-member-links .wp-block-button__link,
.ovl-property-theme .wpmem-member-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .wpmem-member-links .wp-block-button__link:hover,
.ovl-property-theme .wpmem-member-links a:hover {
  background: rgba(11, 111, 156, 0.08);
}

.site-header .header-auth__link {
  margin: 0;
}

.site-logo.wp-block-site-logo {
  margin: 0;
}

.site-logo.wp-block-site-logo img {
  height: 44px;
  width: auto;
  max-width: 100%;
}

@media (max-width: 768px) {
  .site-logo.wp-block-site-logo img {
    height: 36px;
  }
}

.site-nav {
  display: flex;
  gap: 1.5rem;
  font-size: .95rem;
}

.site-nav a:hover {
  color: #0b6f9c;
}

/* Header navigation icons */
.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon>a,
.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  font-size: var(--wp--preset--font-size--medium, 1rem);
  transition: color 0.2s ease;
}

.site-header .header-auth .nav-icon a,
.site-header .header-auth a.nav-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s ease;
}

.site-header .header-nav-auth a,
.site-header .header-auth a {
  color: inherit;
}

.site-header .header-auth {
  font-size: inherit;
}

.site-header .header-auth a,
.site-header .header-auth .ovl-logout-link {
  font-size: var(--wp--preset--font-size--medium, 1rem);
}

.site-header .wp-block-navigation a:hover,
.site-header .wp-block-navigation a:focus-visible,
.site-header .header-auth a:hover,
.site-header .header-auth a:focus-visible {
  color: #0b6f9c;
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon>a::before,
.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon .wp-block-navigation-item__content::before {
  content: "";
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: var(--nav-icon) no-repeat center / contain;
  mask: var(--nav-icon) no-repeat center / contain;
}

.site-header .header-auth .nav-icon a::before,
.site-header .header-auth a.nav-icon::before {
  content: "";
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: var(--nav-icon) no-repeat center / contain;
  mask: var(--nav-icon) no-repeat center / contain;
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--home {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-home.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--property {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-property.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--consult {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-consult.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--register {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-register.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--login {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-login.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--investment {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-investment.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--mypage {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-mypage.svg");
}

.site-header .wp-block-navigation .wp-block-navigation-item.nav-icon--logout {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-logout.svg");
}

.site-header .header-auth .nav-icon--mypage {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-mypage.svg");
}

.site-header .header-auth .nav-icon--logout {
  --nav-icon: url("/wp-content/themes/okivaluelab-child/assets/img/nav-logout.svg");
}

@media (min-width: 769px) {
  .site-header .wp-block-navigation .ovl-nav-auth-item {
    display: none;
  }
}

/* Fallback: shortcode outputs <a class="ovl-logout-link"> without wrapper classes */
.site-header .header-auth .ovl-logout-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  color: inherit;
}

.site-header .header-auth .ovl-logout-link::before {
  content: "";
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: url("/wp-content/themes/okivaluelab-child/assets/img/nav-logout.svg") no-repeat center / contain;
  mask: url("/wp-content/themes/okivaluelab-child/assets/img/nav-logout.svg") no-repeat center / contain;
}

@media (max-width: 768px) {

  .site-header .wp-block-navigation .wp-block-navigation-item.nav-icon>a::before,
  .site-header .wp-block-navigation .wp-block-navigation-item.nav-icon .wp-block-navigation-item__content::before {
    width: 16px;
    height: 16px;
  }

  .site-header .header-auth .nav-icon a::before,
  .site-header .header-auth a.nav-icon::before {
    width: 16px;
    height: 16px;
  }

  .site-header .header-auth .ovl-logout-link::before {
    width: 16px;
    height: 16px;
  }

  /* モバイルメニュー表示時の文字サイズを少し大きく */
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a,
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
    font-size: 1.5rem !important;
    line-height: 1.4;
  }

  .site-header .wp-block-navigation__responsive-container.is-menu-open {
    font-size: 1.1rem !important;
  }


  .site-header .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
    margin-bottom: 0.8rem;
  }

  /* モバイルは「別枠（ヘッダー直表示）」を消して、ハンバーガー内に統一 */
  .site-header .header-auth {
    display: none;
  }
}

.header-cta .wp-block-button__link {
  border-radius: 999px;
  padding: .55rem 1.2rem;
}

.header-toggle {
  display: none;
  border: none;
  background: transparent;
  cursor: pointer;
}

@media (max-width: 768px) {
  .site-nav {
    display: none;
  }

  .header-toggle {
    display: flex;
    gap: 0.4rem;
  }
}

/* --------------------------------------------------------------
   Property list (/property_list/) spacing tweaks
-------------------------------------------------------------- */
.page-id-87 .wp-site-blocks main {
  padding-block: 0px 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.page-id-87 .property-archive {
  width: 100%;
  max-width: min(1100px, 95vw);
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

.page-id-87 .wp-site-blocks>.wp-block-template-part+* {
  margin-block-start: 0 !important;
}

.page-id-87 .wp-site-blocks main> :first-child {
  margin-top: 0 !important;
}

.page-id-87 .wp-site-blocks main.is-layout-flow>* {
  margin-block-start: 0 !important;
}

.page-id-87 .wp-site-blocks main .page-title {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.page-id-87 .entry-content.wp-block-post-content.has-global-padding {
  padding-block: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-block-start: 0 !important;
}

.page-id-87 .entry-content.wp-block-post-content>p:first-child,
.page-id-87 .entry-content.wp-block-post-content>p:empty {
  display: none !important;
}

@media (max-width: 640px) {
  .page-id-87 .wp-site-blocks main {
    padding-inline: clamp(0.5rem, 2.5vw, 0.9rem) !important;
  }

  .page-id-87 .entry-content.wp-block-post-content.is-layout-constrained {
    max-width: none !important;
    width: 100% !important;
    padding-inline: 0 !important;
    margin-inline: 0 !important;
    box-sizing: border-box;
  }

  .page-id-87 .property-archive {
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
  }
}

/* --------------------------------------------------------------
   Member consult (/member-consult/) spacing tweaks
-------------------------------------------------------------- */
.page-id-59 .wp-site-blocks>.wp-block-template-part+*,
.page-member-consult .wp-site-blocks>.wp-block-template-part+* {
  margin-block-start: 0 !important;
}

.page-id-59 .wp-site-blocks main,
.page-member-consult .wp-site-blocks main {
  padding-block-start: 10px !important;
  padding-top: 10px !important;
}

.page-id-59 .wp-site-blocks main> :first-child,
.page-member-consult .wp-site-blocks main> :first-child {
  margin-block-start: 0 !important;
}

/* --------------------------------------------------------------
   Member register (/member-register/) spacing tweaks
-------------------------------------------------------------- */
body.page-id-46 {
  --wp--style--root--padding-top: 0px;
}

body.page-id-46 .wp-site-blocks {
  padding-block-start: 0 !important;
  padding-top: 0 !important;
}

/* --------------------------------------------------------------
   Personal information (/personal_information/) spacing tweaks
-------------------------------------------------------------- */
body.page-personal_information,
body.page-id-666 {
  --wp--style--root--padding-top: 0px;
}

body.page-personal_information .wp-site-blocks,
body.page-id-666 .wp-site-blocks {
  padding-block-start: 0 !important;
  padding-top: 0 !important;
}

body.page-personal_information .wp-site-blocks>.wp-block-template-part,
body.page-personal_information .wp-site-blocks>header.site-header,
body.page-id-666 .wp-site-blocks>.wp-block-template-part,
body.page-id-666 .wp-site-blocks>header.site-header {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

body.page-personal_information .wp-site-blocks>.wp-block-template-part+*,
body.page-id-666 .wp-site-blocks>.wp-block-template-part+* {
  margin-block-start: 0 !important;
}

/* Prevent block-gap from pushing down the visible header when multiple template-parts exist. */
body.page-personal_information .wp-site-blocks>.wp-block-template-part+.wp-block-template-part,
body.page-id-666 .wp-site-blocks>.wp-block-template-part+.wp-block-template-part {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

body.page-personal_information .ovl-property-theme #wpmem_profile_form,
body.page-id-666 .ovl-property-theme #wpmem_profile_form {
  border: 1px solid #e2e6eb !important;
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08) !important;
  background-color: #ffffff !important;
  border-radius: 12px !important;
  width: calc(100% - 20.6px) !important;
  max-width: none;
  margin-inline: 10.3px !important;
  box-sizing: border-box;
}

body.page-personal_information #wpmem_reg,
body.page-id-666 #wpmem_reg {
  width: calc(100% - 20.6px) !important;
  margin-inline: 10.3px !important;
  box-sizing: border-box;
}

body.page-personal_information #wpmem_reg > form,
body.page-id-666 #wpmem_reg > form {
  width: 100%;
  max-width: 100%;
  padding-inline: 0.9rem;
  box-sizing: border-box;
}

body.page-personal_information #wpmem_profile_form fieldset,
body.page-id-666 #wpmem_profile_form fieldset {
  display: flex;
  flex-direction: column;
}

body.page-personal_information #wpmem_profile_form .req-text,
body.page-id-666 #wpmem_profile_form .req-text {
  order: -1;
  margin-top: 0;
  margin-bottom: 0.6rem;
  width: 100%;
}

@media (max-width: 640px) {
  body.page-personal_information .wp-site-blocks main,
  body.page-id-666 .wp-site-blocks main {
    padding-inline: 0 !important;
  }

  body.page-personal_information .ovl-member-profile #wpmem_login,
  body.page-id-666 .ovl-member-profile #wpmem_login,
  body.page-personal_information .ovl-property-theme #wpmem_pwdchange_form,
  body.page-id-666 .ovl-property-theme #wpmem_pwdchange_form,
  body.page-personal_information .ovl-member-profile .wpmem_msg,
  body.page-id-666 .ovl-member-profile .wpmem_msg {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    box-sizing: border-box;
  }
}

/* Hide truly empty paragraphs site-wide (often emitted by block template comments). */
.wp-site-blocks p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-member-register .wp-site-blocks>.wp-block-template-part,
body.page-id-46 .wp-site-blocks>.wp-block-template-part,
body.page-member-register .wp-site-blocks>header.site-header,
body.page-id-46 .wp-site-blocks>header.site-header {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

body.page-member-register .wp-site-blocks>.wp-block-template-part+* {
  margin-block-start: 0 !important;
}

body.page-member-register .wp-site-blocks main {
  padding-block: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.page-member-register .wp-site-blocks main> :first-child {
  margin-block-start: 0 !important;
}

body.page-member-register #wpmem_register_form,
body.page-id-46 #wpmem_register_form {
  margin-top: 0 !important;
}

/* Match /members/ container style */
/* Match /members/ container style */
body.page-member-register .wp-block-group.has-background,
body.page-members .wp-block-group.has-background,
body.page-template-page-members .wp-block-group.has-background,
body.page-id-52 .wp-block-group.has-background,
body.page-id-46 .wp-block-group.has-background {
  border: 1px solid #e2e6eb !important;
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08) !important;
  background-color: #ffffff !important;
  border-radius: 12px !important;
}

body.page-members .wp-block-group.has-background,
body.page-template-page-members .wp-block-group.has-background,
body.page-id-52 .wp-block-group.has-background {
  margin-inline: 10.3px !important;
  width: calc(100% - 20.6px);
}

body.page-member-register .wp-block-group.has-background > h1.wp-block-heading,
body.page-id-46 .wp-block-group.has-background > h1.wp-block-heading {
  margin-bottom: 0.2rem !important;
}

body.page-member-register .wp-block-group.has-background > p:first-of-type,
body.page-id-46 .wp-block-group.has-background > p:first-of-type {
  margin-top: 0 !important;
  margin-bottom: 0.5rem !important;
}

/* member-register: widen the content container without affecting other pages */
body.page-member-register .wp-block-group.has-background,
body.page-id-46 .wp-block-group.has-background {
  max-width: 900px;
  margin-inline: auto;
}

/* member-register: override constrained layout content width */
body.page-member-register main.is-layout-constrained,
body.page-id-46 main.is-layout-constrained {
  --wp--style--global--content-size: 900px;
}

/* member-register: allow consent + error rows inside WP-Members button area */
body.page-member-register #wpmem_register_form .button_div,
body.page-id-46 #wpmem_register_form .button_div {
  height: auto !important;
  overflow: visible !important;
  white-space: normal !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}

body.page-member-register #wpmem_register_form .ovl-wpmem-consent,
body.page-id-46 #wpmem_register_form .ovl-wpmem-consent {
  flex: 1 1 auto;
  margin-bottom: 0;
  margin-right: auto;
}


/* --------------------------------------------------------------
   ベーススタイル
-------------------------------------------------------------- */
body,
.wp-site-blocks {
  font-family: "Noto Sans JP", sans-serif;
  background-color: #ffffff5a;
  color: #333333;
  line-height: 1.8;
}

h1,
h2,
h3 {
  font-weight: 600;
  color: #101b24;
  line-height: 1.3;
  margin-bottom: 1.2rem;
}

h1 {
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  letter-spacing: 0.04em;

}


h2 {
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
}

h3 {
  font-size: clamp(1rem, 2vw, 1.4rem);
}

.eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7a8794;
  display: inline-block;
  /*margin-bottom: 0.75rem;*/
}

p {
  color: #333333;
  font-size: 1.2rem;
  line-height: 1.5;
  margin-bottom: 1.7rem;
}

a {
  color: #0b6f9c;
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover,
a:focus-visible {
  color: #054767;
}

.container {
  width: min(1100px, 95vw);
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

.section {
  padding-block: clamp(3rem, 0.3vw, 5.5rem);
}


.section--gray {
  background: transparent;
}


.section--gray .container {
  background: #f5f6f7;
  border-radius: 24px;
  padding: clamp(1.0rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem) clamp(1.0rem, 3vw, 2.5rem);
  box-shadow: 0 20px 45px rgba(7, 21, 32, 0.06);
}


.section--white {
  background: transparent;
}

.section--white .container {
  background: #ffffff;
  border-radius: 24px;
  padding: clamp(1.0rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem) clamp(1.0rem, 3vw, 2.5rem);
  box-shadow: 0 20px 45px rgba(7, 21, 32, 0.06);
}

/* --------------------------------------------------------------
   Front page override (.page-id-260)
-------------------------------------------------------------- */
.page-id-260 .wp-site-blocks> :not(.wp-block-template-part) {
  width: min(1100px, 95vw) !important;
}

/* フロントページだけ、ヘッダー右端（マイページ/ログアウト）の間隔がズレるのを防ぐ */
.page-id-260 .site-header .header-auth {
  gap: clamp(0.9rem, 2vw, 1.5rem) !important;
  column-gap: clamp(0.9rem, 2vw, 1.5rem) !important;
}

/* ヘッダー（template-part）と本文の間の自動余白（block gap）をフロントだけ0にする */
.page-id-260 .wp-site-blocks>.wp-block-template-part+* {
  margin-block-start: 0 !important;
}

.page-id-260 .wp-site-blocks main {
  background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 60%, #ffffff 100%);
  padding-block: 0 clamp(3rem, 5vw, 5.5rem);
  margin-top: 0 !important;
}

/* 親テーマの page.html が付与する「本文ラッパー」の上余白をフロントだけ打ち消す */
.page-id-260 .wp-site-blocks main>.wp-block-group.alignfull {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.page-id-260 .wp-block-post-content>.wp-block-columns.hero-with-bg {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.page-id-260 .wp-block-post-content {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 4vw, 3rem);
}

.page-id-260 .wp-block-post-content>* {
  width: min(1100px, 95vw);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3.75rem);
  border-radius: 36px;
  background: #fff;
  border: 1px solid rgba(9, 34, 58, 0.05);
  box-shadow: 0 32px 70px rgba(7, 18, 30, 0.08);
}


.page-id-260 .wp-block-post-content>*:first-child {
  background: linear-gradient(125deg, #fdfefe 0%, #f0f6ff 100%);
  border-color: rgba(11, 111, 156, 0.12);
  margin-block-start: 0;
}

.page-id-260 .wp-block-post-content>*:nth-of-type(even) {
  background: #f5f7fa;
  border-color: rgba(5, 24, 44, 0.05);
}

.page-id-260 .consult-area,
.page-id-260 .flow-steps {
  width: min(1100px, 95vw) !important;
  margin-inline: auto !important;
  padding: clamp(2rem, 5vw, 3.75rem) !important;
  border-radius: 36px;
  background: #f5f7fa;
  border: 1px solid rgba(9, 34, 58, 0.05);
  box-shadow: 0 32px 70px rgba(7, 18, 30, 0.08);
  box-sizing: border-box;
}

.page-id-260 .consult-area .container,
.page-id-260 .flow-steps .container {
  width: 100%;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.page-id-260 .consult-area .has-global-padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-id-260 .consult-area .is-layout-constrained> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page-id-260 .section--okinawa-merit {
  width: min(1100px, 95vw);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3.75rem);
  border-radius: 36px;
  background: #fff;
  border: 1px solid rgba(9, 34, 58, 0.05);
  box-shadow: 0 32px 70px rgba(7, 18, 30, 0.08);
  box-sizing: border-box;
}

.page-id-260 .section--okinawa-merit .container {
  width: 100%;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.page-id-260 .wp-block-group {
  gap: 1.25rem;
}

.page-id-260 .wp-block-cover {
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(5, 32, 63, 0.08);
  min-height: clamp(300px, 45vw, 460px);
}

.page-id-260 .wp-block-cover .wp-block-cover__inner-container {
  max-width: 620px;
  margin-inline: auto;
  text-align: left;
  gap: 1rem;
}

.page-id-260 .wp-block-cover h1,
.page-id-260 .wp-block-cover h2,
.page-id-260 .wp-block-cover p {
  color: #fff;
}

.page-id-260 .wp-block-cover .wp-block-buttons .wp-block-button__link {
  border-radius: 999px;
  padding: 0.85rem 1.6rem;
  font-weight: 600;
}

.page-id-260 .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link {
  border-color: rgba(255, 255, 255, 0.55);
}

.page-id-260 .wp-block-columns {
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}

.page-id-260 .wp-block-column {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.page-id-260 .wp-block-column h3 {
  margin-top: 0;
  font-size: 1.25rem;
}

.page-id-260 .wp-block-column p:last-child {
  margin-bottom: 0;
}

.page-id-260 .wp-block-media-text {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 140%);
  border: 1px solid rgba(4, 17, 33, 0.08);
  border-radius: 32px;
  padding: clamp(2rem, 4vw, 3.5rem);
}

.page-id-260 .wp-block-media-text .wp-block-media-text__media img {
  border-radius: 22px;
  box-shadow: 0 20px 45px rgba(6, 21, 36, 0.12);
}

.page-id-260 figure.wp-block-image:has(.wp-image-774) {
  padding-top: 0.2rem;
  padding-left: 3.5rem;
}

@media (max-width: 768px) {
  .page-id-260 figure.wp-block-image:has(.wp-image-774) {
    padding-left: 0;
  }
}

.page-id-260 figure.wp-block-image {
  width: 100%;
}


.page-id-260 .wp-block-separator {
  border-color: rgba(6, 38, 67, 0.1);
  opacity: 1;
  margin-block: 1.5rem;
}

.page-id-260 .wp-block-buttons {
  gap: 0.75rem;
  /* margin-block: 1.5rem; */
  flex-wrap: wrap;
}

.page-id-260 .wp-block-button__link {
  border-radius: 999px;
  padding: 0.95rem 2rem;
  font-weight: 600;
  background: #0f6ba9;
  color: #fff;
  box-shadow: 0 18px 32px rgba(6, 63, 112, 0.25);
}

.page-id-260 .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: #0f6ba9;
  border: 1px solid rgba(15, 107, 169, 0.4);
  box-shadow: none;
}

.page-id-260 .wp-block-list {
  display: grid;
  gap: 0.65rem;
  padding-left: 1.1rem;
}

.page-id-260 .wp-block-list li {
  line-height: 1.7;
  position: relative;
}

.page-id-260 .wp-block-list li::marker {
  color: #0f6ba9;
  font-weight: 600;
}

.page-id-260 .wp-block-quote {
  border-left: 4px solid #0f6ba9;
  background: #f3f8fc;
  border-radius: 20px;
  padding: 1.8rem 2rem;
}

.page-id-260 .wp-block-quote p {
  color: #213040;
  font-size: 1.05rem;
}

.page-id-260 .wp-block-quote cite {
  color: #5e6b76;
  font-style: normal;
  font-size: 0.9rem;
}

.page-id-260 .wp-block-post-content>*:last-child {
  background: #031a1d;
  color: #f5f8fa;
  border: none;
  box-shadow: 0 35px 65px rgba(3, 14, 24, 0.6);
}

.page-id-260 .wp-block-post-content>*:last-child h2,
.page-id-260 .wp-block-post-content>*:last-child p {
  color: #f5f8fa;
}

.page-id-260 .wp-block-post-content>*:last-child .wp-block-button__link {
  background: #fff;
  color: #031a1d;
  box-shadow: none;
}

@media (max-width: 780px) {
  .page-id-260 .wp-block-post-content>* {
    padding: clamp(1.5rem, 6vw, 2.5rem);
  }

  .page-id-260 .wp-block-column {
    margin-bottom: 0.75rem;
  }
}

.hero-with-bg {
  background: url("/wp-content/uploads/hero_top_backgrund.jpeg") center/cover no-repeat;
  border-radius: 0;
  min-height: 70vh;
  color: #fff;
}

/* page-id-260 で親要素の幅が変わっても、背景をビューポートいっぱいに広げる */
.page-id-260 .wp-block-columns.hero-with-bg {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw !important;
  max-width: none !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  min-height: clamp(460px, 62vh, 660px) !important;
  min-height: clamp(460px, 62svh, 660px) !important;
  display: flex;
  align-items: center;
  padding-block: clamp(0.75rem, 2vw, 1.5rem);
  padding-inline: clamp(1.5rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

/* Desktop: keep copy inside the hero (priority), just nudge the background framing. */
@media (min-width: 1024px) {
  .page-id-260 .wp-block-columns.hero-with-bg {
    /* Fill without odd blank areas, while keeping the city in view. */
    background-position: right 60%;
    background-size: cover;
  }
}

/* Wider screens: add more left breathing room for the hero copy. */
@media (min-width: 1200px) {
  .page-id-260 .wp-block-columns.hero-with-bg {
    padding-left: clamp(3.5rem, 8vw, 10rem);
    padding-right: clamp(1.5rem, 4vw, 3.5rem);
  }
}

.page-id-260 .wp-block-columns.hero-with-bg .wp-block-column {
  padding: clamp(8px, 1.4vw, 14px);
  box-shadow: none;
}

.hero-with-bg h1 {
  color: #fff;
  text-shadow:
    0 0 1px rgba(6, 28, 50, 0.28),
    0 1px 0 rgba(6, 28, 50, 0.28),
    1px 0 0 rgba(6, 28, 50, 0.28),
    0 -1px 0 rgba(6, 28, 50, 0.28),
    -1px 0 0 rgba(6, 28, 50, 0.28),
    1px 1px 0 rgba(6, 28, 50, 0.2),
    -1px 1px 0 rgba(6, 28, 50, 0.2),
    1px -1px 0 rgba(6, 28, 50, 0.2),
    -1px -1px 0 rgba(6, 28, 50, 0.2),
    0 2px 0 rgba(6, 28, 50, 0.18),
    2px 0 0 rgba(6, 28, 50, 0.18),
    0 -2px 0 rgba(6, 28, 50, 0.18),
    -2px 0 0 rgba(6, 28, 50, 0.18),
    2px 2px 0 rgba(6, 28, 50, 0.14),
    -2px 2px 0 rgba(6, 28, 50, 0.14),
    2px -2px 0 rgba(6, 28, 50, 0.14),
    -2px -2px 0 rgba(6, 28, 50, 0.14),
    0 3px 8px rgba(3, 14, 24, 0.6),
    0 14px 28px rgba(3, 14, 24, 0.28);
}

.page-id-260 .hero-with-bg h1 {
  font-size: clamp(1.85rem, 3vw, 2.7rem);
  line-height: 1.08;
  margin: 0 0 0.45rem;
}

.hero-with-bg h2 {
  font-size: 1.2rem;
  color: #fff;
  text-shadow:
    0 0 1px rgba(6, 28, 50, 0.28),
    0 1px 0 rgba(6, 28, 50, 0.28),
    1px 0 0 rgba(6, 28, 50, 0.28),
    0 -1px 0 rgba(6, 28, 50, 0.28),
    -1px 0 0 rgba(6, 28, 50, 0.28),
    1px 1px 0 rgba(6, 28, 50, 0.2),
    -1px 1px 0 rgba(6, 28, 50, 0.2),
    1px -1px 0 rgba(6, 28, 50, 0.2),
    -1px -1px 0 rgba(6, 28, 50, 0.2),
    0 2px 0 rgba(6, 28, 50, 0.18),
    2px 0 0 rgba(6, 28, 50, 0.18),
    0 -2px 0 rgba(6, 28, 50, 0.18),
    -2px 0 0 rgba(6, 28, 50, 0.18),
    2px 2px 0 rgba(6, 28, 50, 0.14),
    -2px 2px 0 rgba(6, 28, 50, 0.14),
    2px -2px 0 rgba(6, 28, 50, 0.14),
    -2px -2px 0 rgba(6, 28, 50, 0.14),
    0 2px 6px rgba(3, 14, 24, 0.55),
    0 10px 22px rgba(3, 14, 24, 0.24);
  line-height: 1.6;
}

.hero-with-bg p {
  font-size: 1.2rem;
  color: #ffffff;
  text-shadow:
    0 0 1px rgba(6, 28, 50, 0.28),
    0 1px 0 rgba(6, 28, 50, 0.28),
    1px 0 0 rgba(6, 28, 50, 0.28),
    0 -1px 0 rgba(6, 28, 50, 0.28),
    -1px 0 0 rgba(6, 28, 50, 0.28),
    1px 1px 0 rgba(6, 28, 50, 0.2),
    -1px 1px 0 rgba(6, 28, 50, 0.2),
    1px -1px 0 rgba(6, 28, 50, 0.2),
    -1px -1px 0 rgba(6, 28, 50, 0.2),
    0 2px 0 rgba(6, 28, 50, 0.18),
    2px 0 0 rgba(6, 28, 50, 0.18),
    0 -2px 0 rgba(6, 28, 50, 0.18),
    -2px 0 0 rgba(6, 28, 50, 0.18),
    2px 2px 0 rgba(6, 28, 50, 0.14),
    -2px 2px 0 rgba(6, 28, 50, 0.14),
    2px -2px 0 rgba(6, 28, 50, 0.14),
    -2px -2px 0 rgba(6, 28, 50, 0.14),
    0 2px 6px rgba(3, 14, 24, 0.5),
    0 10px 22px rgba(3, 14, 24, 0.22);
}

.hero-credibility {
  --ovl-hero-credibility-link-hover: #4fb3ff;
}

.hero-credibility a {
  font: inherit;
  color: inherit;
  padding-inline: 0.2em;
  padding-bottom: 0.12em;
  border-radius: 6px;
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-size: 100% 0.08em;
  background-position: 0 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: color 160ms ease, background-size 160ms ease;
}

.hero-credibility a:hover,
.hero-credibility a:focus-visible {
  color: var(--ovl-hero-credibility-link-hover);
  text-shadow: inherit;
  background-size: 100% 0.14em;
}

.hero-credibility a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 4px;
}

.page-id-260 .hero-with-bg h2,
.page-id-260 .hero-with-bg p {
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  line-height: 1.55;
  margin: 0 0 clamp(0.45rem, 0.7vw, 0.85rem);
}

/* Wide screens: add a bit more breathing room */
@media (min-width: 1024px) {

  .page-id-260 .hero-with-bg h2,
  .page-id-260 .hero-with-bg p {
    line-height: 1.65;
    margin-bottom: clamp(0.5rem, 0.8vw, 0.95rem);
  }
}

@media (max-width: 768px) {
  .page-id-260 .wp-block-columns.hero-with-bg {
    padding-block: 12px;
    padding-inline: 16px;
  }

  .page-id-260 .wp-block-columns.hero-with-bg .wp-block-column {
    padding: 10px;
  }
}

/* Hero list spacing: responsive & contained within the hero */
.page-id-260 .wp-block-columns.hero-with-bg .wp-block-list {
  gap: clamp(0.45rem, 0.7vw, 0.8rem);
}

.page-id-260 .wp-block-columns.hero-with-bg p+.wp-block-list {
  margin-top: clamp(0.5rem, 0.8vw, 0.9rem);
}

/* 「このサイトが提供する価値」ブロック横並び */
.value-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  /* テキストと画像を左右に */
  gap: 2rem;
  align-items: start;
}

.page-id-260 .value-columns.is-layout-constrained> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page-id-260 .value-columns> :where(.wp-block-group, figure) {
  max-width: 100% !important;
  margin: 0 !important;
}

.page-id-260 .value-columns .wp-block-group.is-layout-constrained> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page-id-260 .value-columns.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained {
  width: min(1100px, 95vw) !important;
  margin-inline: auto !important;
  margin-top: 5 !important;
}

@media (max-width: 768px) {
  .value-columns {
    grid-template-columns: 1fr;
    /* スマホは縦並び */
  }

  .page-id-260 .value-columns.has-global-padding,
  .page-id-260 .value-columns .wp-block-group.has-global-padding {
    padding-inline: 0 !important;
  }

  .page-id-260 .value-columns .wp-block-group {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Front page CTA mini cluster (single CTA + guided cards) */
.page-id-260 .cta-mini {
  display: grid;
  gap: clamp(0.75rem, 1.8vw, 1.25rem);
  align-items: stretch;
  width: calc(90% + (2 * clamp(1rem, 2vw, 1.5rem)) + 2px);
  max-width: 100%;
  margin: 0;
  font-size: 1.03rem;
}

.page-id-260 .ovl-cta-links {
  background: #ffffff;
  border: 1px solid rgba(9, 34, 58, 0.08);
  border-radius: 22px;
  padding: clamp(0.95rem, 1.8vw, 1.4rem);
  box-shadow: 0 18px 36px rgba(6, 18, 30, 0.06);
}

.page-id-260 .ovl-cta-links__title {
  font-weight: 600;
  color: #0f3f5e;
  margin: 0 0 0.6rem;
  font-size: 1.2rem;
}

.page-id-260 .ovl-cta-links__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.page-id-260 .ovl-cta-links__list li {
  background: #fff;
  border-radius: 14px;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(10, 34, 58, 0.07);
  box-shadow: 0 10px 20px rgba(6, 18, 30, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
}

.page-id-260 .ovl-cta-links__list li:hover,
.page-id-260 .ovl-cta-links__list li:focus-within {
  transform: translateY(-2px);
  border-color: rgba(15, 107, 169, 0.22);
  box-shadow: 0 14px 26px rgba(6, 18, 30, 0.08);
  background: #f7fbff;
}

.page-id-260 .ovl-cta-links__list a {
  display: block;
  color: #0f3f5e;
  font-weight: 600;
  text-decoration: none;
  font-size: 1.2rem;
  padding-right: 1.4rem;
}

.page-id-260 .ovl-cta-links__list a::after {
  content: "→";
  font-size: 0.9em;
}

.page-id-260 .ovl-cta-links__list li::after {
  content: "";
  position: absolute;
  right: 0.85rem;
  top: 0.75rem;
  color: #8aa0b1;
  font-size: 0.95rem;
  transition: transform 0.2s ease, color 0.2s ease;
}

.page-id-260 .ovl-cta-links__list li:hover::after,
.page-id-260 .ovl-cta-links__list li:focus-within::after {
  color: #0f6ba9;
  transform: translateX(2px);
}

.page-id-260 .ovl-cta-links__list a:hover,
.page-id-260 .ovl-cta-links__list a:focus-visible {
  color: #0f6ba9;
  text-decoration: underline;
}

.page-id-260 .ovl-cta-links__list li {
  cursor: pointer;
}

.page-id-260 .ovl-cta-links__list a:focus,
.page-id-260 .ovl-cta-links__list a:active,
.page-id-260 .ovl-cta-links__list a:focus-visible,
.page-id-260 .ovl-cta-links__list li:focus,
.page-id-260 .ovl-cta-links__list li:active,
.page-id-260 .ovl-cta-links__list li:focus-visible {
  outline: none;
  box-shadow: none;
}

.page-id-260 .ovl-cta-links__list p,
.page-id-260 .cta-mini-actions .ovl-cta-links__title {
  margin: 0.2rem 0 0;
  color: #536470;
  font-size: 0.95rem;
  font-weight: 400;
}

.page-id-260 .cta-mini-actions {
  background: #f5f7fa;
  border-radius: 22px;
  padding: clamp(0.95rem, 2vw, 1.35rem);
  display: grid;
  gap: 0.45rem;
  align-content: center;
  border: 1px solid rgba(9, 34, 58, 0.08);
  box-shadow: 0 18px 36px rgba(6, 18, 30, 0.08);
}

.page-id-260 .cta-mini-actions .wp-block-button__link {
  width: 100%;
  text-align: center;
  font-weight: 700;
  background: #0f6ba9;
  color: #ffffff;
  padding: 1rem 1.2rem;
  border-radius: 999px;
  box-shadow: 0 16px 28px rgba(6, 63, 112, 0.25);
  font-size: 1rem;
}

.page-id-260 .cta-mini-actions .wp-block-button__link:focus,
.page-id-260 .cta-mini-actions .wp-block-button__link:active,
.page-id-260 .cta-mini-actions .wp-block-button__link:focus-visible {
  outline: none;
  box-shadow: none;
}


@media (min-width: 860px) {
  .page-id-260 .cta-mini {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.15fr);
  }
}

@media (max-width: 640px) {
  .page-id-260 .ovl-cta-links__list li {
    padding: 0.6rem 0.8rem;
  }

  .page-id-260 .cta-mini-actions {
    padding: 1rem;
  }
}

.hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3rem);
  align-items: center;
  padding: clamp(2.5rem, 4vw, 4rem);
  background: linear-gradient(135deg, #ffffff, #f7f9fb);
  border-radius: 24px;
  box-shadow: 0 25px 50px rgba(5, 17, 28, 0.08);
}

.hero__content {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.hero__title {
  font-size: clamp(2.25rem, 4.5vw, 3rem);
  margin: 0;
}

.hero__text {
  color: #4a5662;
  font-size: 1rem;
  margin: 0;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.hero__media img {
  width: 100%;
  border-radius: 24px;
  object-fit: cover;
  box-shadow: 0 30px 55px rgba(3, 14, 24, 0.1);
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}

.grid-3>p:empty {
  display: none;
}


.card {
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid #e2e6eb;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.9rem;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.card:hover {
  box-shadow: 0 24px 60px rgba(9, 27, 44, 0.15);
  transform: translateY(-4px);
}

.card2 {
  width: 90%;
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid #e2e6eb;
  padding: clamp(1rem, 2vw, 1.5rem);
  display: block;
  flex-direction: column;
  align-items: left;
  text-align: left;
  gap: 0.9rem;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.card2:hover {
  box-shadow: 0 24px 60px rgba(9, 27, 44, 0.15);
  transform: translateY(-4px);
}

.card2 p {
  font-size: 1.1rem;
  margin-block-start: 0.2em;
  margin-block-end: 0.2em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  unicode-bidi: isolate;
}

.card2 h3.card2-title {
  font-size: var(--wp--preset--font-size--large, clamp(1rem, 2vw, 1.4rem));
  font-weight: 600;
  color: #101b24;
  line-height: 1.3;
  margin-block-start: 0;
  margin-block-end: 1.2rem;
}

.card2-list {
  display: flex;
  flex-direction: column;
  /* これで縦並び */
  gap: 1rem;
  width: 100%;
}

.card__icon {
  width: 72px;
  height: 72px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
}

.card__icon img,
.card__icon svg {
  width: 56px;
  height: 56px;
  flex: 0 0 auto;
  display: block;
  max-width: 56px;
  max-height: 56px;
}

.card-title {
  font-size: 1.2rem;
  margin: 0;
}

.card-text {
  font-size: 1rem;
  text-align: left;
  color: #4a5662;
  margin: 0;
}

.wp-block-button__link,
.btn-primary,
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.85rem 1.8rem;
  border-radius: 999px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}

.wp-block-button__link:focus-visible,
.btn-primary:focus-visible,
.btn-outline:focus-visible,
.site-footer a:focus-visible {
  outline: 2px solid var(--ovl-accent);
  outline-offset: 2px;
}

.wp-block-button__link {
  background: #0f6ba9;
  color: #fff;
  box-shadow: 0 14px 30px rgba(11, 86, 140, 0.18);
}

.wp-block-button__link:hover {
  opacity: 0.75;
  box-shadow: 0 20px 40px rgba(9, 58, 98, 0.25);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: #0f6ba9;
  border-color: rgba(15, 107, 169, 0.4);
  box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(15, 107, 169, 0.14);
  opacity: 0.95;
}

/* Fluent Forms: submit button */
.ff-btn.ff-btn-submit.ff_btn_style,
.ff-btn.ff-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.85rem 1.8rem;
  border-radius: 999px;
  font-weight: 600;
  border: 1px solid transparent;
  background: #0f6ba9 !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(11, 86, 140, 0.18);
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}

.ff-btn.ff-btn-submit:hover,
.ff-btn.ff-btn-submit:focus-visible {
  opacity: 0.75;
  box-shadow: 0 20px 40px rgba(9, 58, 98, 0.25);
}

.page-id-260 .section--gray .eyebrow {
  margin-bottom: 0;
}

.page-id-260 .section--gray h2 {
  margin-top: 0.1rem;
}

.btn-primary {
  background: #0b6f9c;
  color: #fff;
  box-shadow: 0 12px 25px rgba(11, 111, 156, 0.22);
}

.btn-primary:hover {
  background: #0f83c5;
  box-shadow: 0 18px 36px rgba(11, 111, 156, 0.28);
  opacity: 0.95;
}

.btn-outline {
  border-color: #0b6f9c;
  color: #0b6f9c;
  background: transparent;
}

.btn-outline:hover {
  background: rgba(11, 111, 156, 0.14);
  color: #095677;
}



@media (max-width: 640px) {
  .property-detail__hero-grid {
    grid-template-columns: 1fr;
  }

  .property-detail__hero-media {
    order: -1;
  }

  .property-detail__hero-details {
    gap: 0.75rem;
  }

  body,
  .wp-site-blocks {
    background-color: #ffffff;
  }

  .container {
    padding-inline: 1rem;
  }

  .section {
    padding-block: 2.5rem;
  }

  .hero {
    grid-template-columns: 1fr;
    padding: 2rem;
  }

  .grid-3 {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 641px) and (max-width: 960px) {
  .grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.property-single {
  max-width: min(1140px, 95vw);
  margin: clamp(1rem, 3vw, 2.5rem) auto;
  padding: clamp(0.9rem, 2.5vw, 1.75rem);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(3, 26, 29, 0.08);
}

body.single-property .wp-site-blocks main {
  padding-block: 0;
}

body.single-property .wp-site-blocks {
  background-color: #fff;
}

/* 物件詳細：ヘッダーを2行に折り返さない */
@media (min-width: 769px) {
  body.single-property header.site-header {
    flex-wrap: nowrap !important;
  }
}

body.single-property main.property-single {
  background: #fff;
  box-shadow: none;
}

.property-detail__hero {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 1.25rem;
}

.property-detail__hero--compact {
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 18px;
  padding: clamp(0.9rem, 2vw, 1.35rem);
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

.property-detail__hero--locked {
  border: 1px dashed rgba(11, 111, 156, 0.4);
  background: #f4fafc;
  border-radius: 28px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border-bottom: none;
  margin-bottom: 1.5rem;
}

.property-detail__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.property-detail__badge {
  border-radius: 999px;
  background: rgba(11, 111, 156, 0.12);
  color: #0b6f9c;
  padding: 0.35rem 0.9rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.property-detail__badge.is-new {
  background: #ffe9d6;
  color: #c35600;
}

.property-detail__badge.is-locked {
  background: #031a1d;
  color: #fff;
}

.property-detail__title {
  margin: 0;
  font-size: 20.0854px;
  line-height: 1.35;
}

.property-detail__location {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.9rem;
  color: #4a5662;
  margin: 0;
}

.property-detail__location-city {
  font-weight: 600;
  color: #0b6f9c;
}

.property-detail__structure {
  margin: 0;
  color: #4a5662;
  font-size: 0.95rem;
}

.property-detail__lead {
  margin: 0;
  font-size: 1.05rem;
  color: #2c3a41;
}

.property-detail__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(0.75rem, 2vw, 1.5rem);
  align-items: flex-start;
}

.property-detail__hero-grid--single {
  grid-template-columns: 1fr;
}

.property-detail__hero-media {
  display: block;
}

.property-detail__hero-details {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.property-detail__hero-info {
  flex: 1 1;
}

.property-detail__metrics {
  flex: 1 1 320px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
}

.property-detail__metric {
  margin: 0;
  padding: 0.8rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.property-detail__metric dt {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: #64708f;
}

.property-detail__metric dd {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
  color: #031a1d;
}

.property-detail__metric--price {
  background: linear-gradient(135deg, #0b6f9c, #0bb7c0);
  color: #fff;
  box-shadow: 0 18px 30px rgba(11, 111, 156, 0.35);
}

.property-detail__metric--price dt,
.property-detail__metric--price dd {
  color: #fff;
}

.property-detail__hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0;
  padding-top: 0.25rem;
}

.property-detail .button {
  border-radius: 999px;
  padding: 0.8rem 1.7rem;
  border: 1px solid transparent;
  background: #0b6f9c;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.property-detail .button.button-outline {
  background: transparent;
  color: #0b6f9c;
  border-color: rgba(11, 111, 156, 0.4);
}

.property-detail .button:hover {
  filter: brightness(0.95);
}

.property-detail__media {
  margin-bottom: 2rem;
}

.property-detail__carousel {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 32px;
  padding: clamp(0.8rem, 2vw, 1.2rem);
  background: linear-gradient(180deg, #fff, #f5f8ff);
  box-shadow: 0 25px 50px rgba(9, 25, 56, 0.15);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.property-detail__carousel-main {
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #eef2ff;
}

.property-detail__carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease;
}

.property-detail__carousel-slide.is-active {
  opacity: 1;
  visibility: visible;
}

.property-detail__carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.property-detail__carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: none;
  background: rgba(6, 19, 64, 0.8);
  color: #fff;
  font-size: 1.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease;
}

.property-detail__carousel-nav:hover {
  background: rgba(6, 19, 64, 0.95);
}

.property-detail__carousel-nav--prev {
  left: 14px;
}

.property-detail__carousel-nav--next {
  right: 14px;
}

.property-detail__carousel-counter {
  position: absolute;
  right: 16px;
  bottom: 16px;
  background: rgba(6, 19, 64, 0.78);
  color: #fff;
  border-radius: 999px;
  padding: 0.2rem 0.8rem;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

.property-detail__carousel-thumbs {
  display: flex;
  gap: 0.65rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
}

.property-detail__carousel-thumb {
  border: none;
  background: transparent;
  padding: 0;
  border-radius: 14px;
  flex: 0 0 110px;
  height: 80px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 0 0 2px transparent;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.property-detail__carousel-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.property-detail__carousel-thumb.is-active {
  box-shadow: 0 0 0 2px #3d5afe;
  transform: translateY(-2px);
}

.property-detail__layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 0.9fr);
  gap: 1.25rem;
}

.property-detail__section {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  padding: 1.2rem 1.4rem;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
  margin-bottom: 1rem;
}

.property-detail__section h2 {
  margin-top: 0;
  font-size: 1.2rem;
}

.property-detail__section--summary {
  background: #f7fbfc;
  border-color: rgba(11, 111, 156, 0.2);
}

.property-detail__summary {
  line-height: 1.8;
  color: #2c3a41;
}

.property-detail__spec-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin: 1rem 0 0;
}

.property-detail__spec-item {
  padding: 0.8rem 1rem;
  border-radius: 16px;
  background: #f9fbfc;
  border: 1px solid rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.property-detail__spec-item dt {
  margin: 0;
  font-size: 0.85rem;
  color: #4a5662;
  letter-spacing: 0.02em;
}

.property-detail__spec-item dd {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: #031a1d;
}

.property-detail__misc .property-field {
  background: #f5f8fa;
  padding: 0.75rem 1rem;
  border-radius: 14px;
  margin: 0 0 0.75rem;
}

.property-detail__description {
  line-height: 1.85;
  color: #2c3a41;
}

.property-detail__video iframe,
.property-detail__map iframe {
  width: 100%;
  min-height: 320px;
  border: none;
  border-radius: 20px;
  box-shadow: 0 12px 24px rgba(3, 26, 29, 0.12);
}

.property-detail__sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.property-detail__sidebar-box {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  padding: 1.25rem 1.4rem;
  background: #fbfcff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.property-detail__sidebar-box h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
}

.property-detail__sidebar-box p {
  margin-top: 0;
  margin-bottom: 1rem;
  line-height: 1.6;
  color: #4a5662;
}

.property-detail__contact {
  width: 100%;
}

.property-detail__guest {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 28px;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  background: #fff;
  box-shadow: 0 20px 35px rgba(15, 23, 42, 0.1);
  margin-bottom: 2rem;
}

.property-detail__guest p {
  line-height: 1.8;
  color: #2c3a41;
}

.property-detail__guest-meta {
  margin-bottom: 0.4rem;
  font-weight: 600;
}

.property-detail__excerpt {
  margin-top: 1rem;
  color: #4a5662;
  line-height: 1.7;
}

.property-footer {
  margin-top: 2.5rem;
  text-align: center;
}

.property-footer .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.75rem 1.5rem;
  border-radius: 999px;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  text-decoration: none;
}

.property-footer .btn:hover {
  border-color: #0b6f9c;
}

.property-fields {
  display: grid;
  gap: 0.75rem;
  margin-bottom: var(--wp--preset--spacing--40, 2rem);
}

.property-field {
  line-height: 1.6;
}

.property-field.notice {
  color: #cc0000;
}

.property-download .ovl-download-button,
#property-download .ovl-download-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: auto;
  padding: 0.55rem 0.85rem;
  margin-top: 0.5rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: #0b6f9c;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  line-height: 1.2;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.05s ease;
}

.property-download .ovl-download-button:hover,
#property-download .ovl-download-button:hover {
  background: #095677;
}

.property-download .ovl-download-button:focus-visible,
#property-download .ovl-download-button:focus-visible {
  outline: 3px solid rgba(11, 111, 156, 0.35);
  outline-offset: 2px;
}

.property-download .ovl-download-button:active,
#property-download .ovl-download-button:active {
  transform: translateY(1px);
}

.property-download,
#property-download {
  text-align: left;
}

.property-download .ovl-download-login,
#property-download .ovl-download-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  padding: 0.55rem 0.85rem;
  margin-top: 0.5rem;
  border-radius: 999px;
  border: 1px solid #0b6f9c;
  background: transparent;
  color: #0b6f9c;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  line-height: 1.2;
}

.property-download .ovl-download-login:hover,
#property-download .ovl-download-login:hover {
  background: rgba(11, 111, 156, 0.08);
}

.property-description {
  line-height: 1.8;
}

@media (max-width: 960px) {
  .property-detail__layout {
    grid-template-columns: 1fr;
  }

  .property-detail__hero-actions {
    flex-direction: column;
  }

  .property-detail__sidebar-box {
    order: initial;
  }
}

@media (max-width: 640px) {
  .property-single {
    padding: 1.25rem;
  }

  .property-detail__section {
    padding: 1rem 1.1rem;
  }

  wp-site-blocks main .property-detail__carousel {
    padding: 0.75rem;
  }

  .property-detail__carousel-thumb {
    flex: 0 0 72px;
    height: 60px;
  }

  .property-detail__metrics {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  }
}

/* --------------------------------------------------------------
/* 物件カード -------------------------------------------------------------- */
.ovl-property-theme {
  --ovl-property-accent: #0b6f9c;
  --ovl-property-ink: #0f172a;
  --ovl-property-muted: #4a5662;
  --ovl-property-border: 1px solid rgba(15, 23, 42, 0.08);
  --ovl-property-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
  --ovl-property-radius: 22px;
  --ovl-property-gap: clamp(0.75rem, 1.5vw, 1.1rem);
  --ovl-property-body-size: 1rem;
  --ovl-property-title-size: clamp(1.35rem, 2.4vw, 1.8rem);
}

.ovl-property-theme .ovl-card {
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(0.85rem, 2vw, 1.3rem);
}

.ovl-property-theme .wp-block-group.has-background {
  background-color: #fff !important;
  border-radius: var(--ovl-property-radius) !important;
  border: var(--ovl-property-border);
  box-shadow: var(--ovl-property-shadow);
}

.ovl-property-theme .wp-block-group.has-background[style*="padding"] {
  padding: clamp(1.25rem, 3vw, 1.75rem) !important;
}

.ovl-property-theme .wp-container-core-group-is-layout-52009084 {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
}

.ovl-property-theme .wp-block-group.has-background {
  width: min(300px, 100%);
  text-align: left;
  font-size: var(--ovl-property-body-size);
}

.ovl-property-theme .wp-block-group.has-background label,
.ovl-property-theme .wp-block-group.has-background p,
.ovl-property-theme .wp-block-group.has-background li {
  color: inherit;
  font-size: inherit;
}


.ovl-property-theme .wp-block-heading.ovl-title {
  width: 100%;
  text-align: left;
}

.ovl-property-theme h1,
.ovl-property-theme h2,
.ovl-property-theme h3,
.ovl-property-theme .wp-block-post-title {
  color: var(--ovl-property-ink);
  font-weight: 600;
  line-height: 1.3;
}

.ovl-property-theme h1 {
  font-size: var(--ovl-property-title-size);
}

.ovl-property-theme p,
.ovl-property-theme li,
.ovl-property-theme label {
  color: var(--ovl-property-muted);
  font-size: var(--ovl-property-body-size);
}

.ovl-property-theme a {
  color: var(--ovl-property-accent);
}

.ovl-property-theme a:hover {
  color: #0a5a7d;
}

.ovl-property-theme .ovl-muted {
  color: var(--ovl-property-muted);
}

.ovl-property-theme .ovl-button--primary,
.ovl-property-theme button,
.ovl-property-theme .wp-block-button__link,
.ovl-property-theme .wpmem-submit,
.ovl-property-theme .wpmem_form input[type="submit"],
.ovl-property-theme #wpmem_login_form input[type="submit"],
.ovl-property-theme #wpmem_login_form .buttons {
  border-radius: 999px;
  padding: 0.65rem 1.4rem;
  border: none;
  background: var(--ovl-property-accent);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .ovl-button--primary:hover,
.ovl-property-theme button:hover,
.ovl-property-theme .wp-block-button__link:hover,
.ovl-property-theme .wpmem-submit:hover,
.ovl-property-theme .wpmem_form input[type="submit"]:hover,
.ovl-property-theme #wpmem_login_form input[type="submit"]:hover,
.ovl-property-theme #wpmem_login_form .buttons:hover {
  background: #0a5a7d;
}

.ovl-property-theme .ovl-button--outline,
.ovl-property-theme .wpmem_form input[type="button"],
.ovl-property-theme .wpmem_form input[type="reset"] {
  border-radius: 999px;
  padding: 0.55rem 1.2rem;
  border: 1px solid rgba(11, 111, 156, 0.3);
  background: transparent;
  color: var(--ovl-property-accent);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .ovl-button--outline:hover,
.ovl-property-theme .wpmem_form input[type="button"]:hover,
.ovl-property-theme .wpmem_form input[type="reset"]:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: var(--ovl-property-accent);
}

.ovl-property-theme .ovl-input,
.ovl-property-theme .wpmem_form input[type="text"],
.ovl-property-theme .wpmem_form input[type="password"],
.ovl-property-theme .wpmem_form input[type="email"],
.ovl-property-theme .wpmem_form input[type="number"],
.ovl-property-theme .wpmem_form select,
.ovl-property-theme .wpmem_form textarea,
.ovl-property-theme #wpmem_login_form input[type="text"],
.ovl-property-theme #wpmem_login_form input[type="password"],
.ovl-property-theme #wpmem_login_form input[type="email"],
.ovl-property-theme #wpmem_login_form input[type="number"],
.ovl-property-theme #wpmem_login_form select,
.ovl-property-theme #wpmem_login_form textarea {
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.15);
  padding: 0.55rem 0.9rem;
  font-size: 1rem;
  background: #f9fafb;
}

.ovl-property-theme .ovl-input:focus,
.ovl-property-theme .wpmem_form input[type="text"]:focus,
.ovl-property-theme .wpmem_form input[type="password"]:focus,
.ovl-property-theme .wpmem_form input[type="email"]:focus,
.ovl-property-theme .wpmem_form input[type="number"]:focus,
.ovl-property-theme .wpmem_form select:focus,
.ovl-property-theme .wpmem_form textarea:focus,
.ovl-property-theme #wpmem_login_form input[type="text"]:focus,
.ovl-property-theme #wpmem_login_form input[type="password"]:focus,
.ovl-property-theme #wpmem_login_form input[type="email"]:focus,
.ovl-property-theme #wpmem_login_form input[type="number"]:focus,
.ovl-property-theme #wpmem_login_form select:focus,
.ovl-property-theme #wpmem_login_form textarea:focus {
  outline: none;
  border-color: var(--ovl-property-accent);
  box-shadow: 0 0 0 2px rgba(11, 111, 156, 0.15);
  background: #fff;
}

.ovl-property-theme #wpmem_login_form {
  color: var(--ovl-property-muted);
}

.ovl-property-theme #wpmem_login_form p {
  margin: 0.35rem 0;
}

.ovl-property-theme #wpmem_login_form fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) fieldset {
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1.5rem, 3vw, 2.2rem);
  margin: 0 auto 1.5rem;
  width: min(720px, 100%);
}

.ovl-property-theme .wp-block-post-title {
  margin-bottom: 1.5rem;
}

.ovl-property-theme #wpmem_pwdchange_form fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.ovl-property-theme #wpmem_pwdchange_form legend {
  display: none;
}

.ovl-property-theme #wpmem_pwdchange_form {
  border-radius: var(--ovl-property-radius);
  border: none;
  background: transparent;
  box-shadow: none;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  margin: 1rem auto 1.5rem;
  margin-inline: auto;
  width: min(720px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: center;
}

.ovl-property-theme #wpmem_pwdchange_form.form {
  padding-top: clamp(1.3rem, 2.4vw, 1.7rem);
  padding-left: clamp(1.3rem, 2.4vw, 1.7rem);
}

.ovl-property-theme #wpmem_pwdchange_form label {
  display: block;
  margin: 1.2rem 0 0rem !important;
  padding-left: 0.25rem;
  color: #424242;
  font-size: 1rem;
  width: min(450px, 100%);
  text-align: left;
  align-self: center;
}

.ovl-property-theme #wpmem_pwdchange_form .div_text {
  max-width: 100%;
  width: min(450px, 100%);
}

.ovl-property-theme #wpmem_pwdchange_form .div_text input {
  width: min(450px, 100%);
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  color: var(--ovl-property-ink);
  font-size: 1rem;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) legend {
  display: none;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) label {
  display: block;
  margin: 1.2rem 0 0rem !important;
  color: #424242;
  font-size: 1rem;
  width: min(450px, 100%);
  margin-inline: auto;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) .div_text input {
  width: min(450px, 100%);
  display: block;
  margin-inline: auto;
  color: var(--ovl-property-ink);
  font-size: 1rem;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) p {
  margin: 0;
}

.ovl-property-theme #wpmem_login_form legend {
  display: none;
}

.ovl-property-theme #wpmem_login_form .div_text input {
  width: min(420px, 100%);
  display: block;
}

.ovl-property-theme #wpmem_login_form {
  width: 100%;
  max-width: 100%;
}

.ovl-property-theme #wpmem_login_form .div_text {
  width: 100%;
  max-width: 100%;
}

.ovl-property-theme #wpmem_login_form .div_text input {
  width: 100%;
  max-width: 100%;
}

.ovl-property-theme #wpmem_login_form .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
}

.ovl-property-theme #wpmem_pwdchange_form .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
  width: min(300px, 100%);
  margin-left: 0;
  margin-right: 0;
  align-self: center;
}

.ovl-property-theme #wpmem_pwdchange_form .button_div .buttons,
.ovl-property-theme #wpmem_pwdchange_form input[type="submit"].buttons {
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme #wpmem_pwdchange_form .button_div .buttons:hover,
.ovl-property-theme #wpmem_pwdchange_form input[type="submit"].buttons:hover {
  background: rgba(11, 111, 156, 0.08);
}

.ovl-property-theme #wpmem_profile_form fieldset {
  border: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.ovl-property-theme #wpmem_profile_form {
  border-radius: var(--ovl-property-radius);
  border: none;
  background: transparent;
  box-shadow: none;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  margin: 1rem auto 1.5rem;
  width: min(720px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--ovl-property-muted);
  font-size: var(--ovl-property-body-size);
  font-family: "Noto Sans JP", sans-serif;
}

.ovl-property-theme #wpmem_profile_form.form {
  padding-top: clamp(1.3rem, 2.4vw, 1.7rem);
  padding-left: clamp(1.3rem, 2.4vw, 1.7rem);
}

.ovl-property-theme #wpmem_profile_form legend {
  display: block;
  margin: 0 0 0.85rem;
  padding-left: 0.25rem;
  font-weight: 600;
  color: var(--ovl-property-ink);
  width: min(450px, 100%);
  text-align: left;
  align-self: center;
}

.ovl-property-theme #wpmem_profile_form label {
  display: block;
  margin: 1.2rem 0 0rem !important;
  padding-left: 0.25rem;
  color: #424242;
  font-size: 1rem;
  width: min(450px, 100%);
  text-align: left;
  align-self: center;
}

.ovl-property-theme #wpmem_profile_form .div_text {
  max-width: 100%;
  width: min(450px, 100%);
  align-self: center;
}

.ovl-property-theme #wpmem_profile_form .div_select {
  max-width: 100%;
  width: min(450px, 100%);
  align-self: center;
}

.ovl-property-theme #wpmem_profile_form .div_text input {
  width: min(450px, 100%);
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  color: var(--ovl-property-ink);
  font-size: inherit;
}

.ovl-property-theme #wpmem_profile_form .div_select select {
  width: min(450px, 100%);
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  color: var(--ovl-property-ink);
  font-size: inherit;
}

.ovl-property-theme #wpmem_profile_form .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
  margin-bottom: 0.8rem;
  width: min(450px, 100%);
  margin-left: 0;
  margin-right: 0;
  align-self: center;
}

.ovl-property-theme #wpmem_profile_form .button_div .buttons,
.ovl-property-theme #wpmem_profile_form input[type="submit"].buttons {
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme #wpmem_profile_form .button_div .buttons:hover,
.ovl-property-theme #wpmem_profile_form input[type="submit"].buttons:hover {
  background: rgba(11, 111, 156, 0.08);
}

.ovl-property-theme .wpmem_msg {
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: 1.5rem 2rem;
  margin: 1rem auto 2rem;
  width: min(720px, 100%);
  color: var(--ovl-property-ink);
  line-height: 1.6;
}

.ovl-property-theme #wpmem_profile_form .req-text {
  width: min(450px, 100%);
  text-align: left;
  margin-top: 0.5rem;
  color: var(--ovl-property-muted);
  font-size: 0.9rem;
  align-self: center;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) .button_div .buttons,
.ovl-property-theme .wpmem_form:not(#wpmem_login_form) input[type="submit"].buttons {
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .wpmem_form:not(#wpmem_login_form) .button_div .buttons:hover,
.ovl-property-theme .wpmem_form:not(#wpmem_login_form) input[type="submit"].buttons:hover {
  background: rgba(11, 111, 156, 0.08);
}

.ovl-property-theme #wpmem_login_form .button_div label {
  color: var(--ovl-property-muted);
  font-size: 0.95rem;
}

.ovl-property-theme #wpmem_login_form .link-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.5rem;
  font-size: 0.92rem;
  text-align: right;
}

.ovl-property-theme #wpmem_login_form .link-text a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.45rem 1.1rem;
  border: 1px solid rgba(11, 111, 156, 0.3);
  color: var(--ovl-property-accent);
  background: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme #wpmem_login_form .link-text a:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: var(--ovl-property-accent);
}

.ovl-member-profile #wpmem_login {
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1.25rem, 3vw, 1.75rem);
  margin-inline: auto;
  width: min(720px, 100%);
}

.ovl-member-profile #wpmem_login legend {
  display: block;
  margin: 0 0 1rem;
  padding: 0;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  font-weight: 700;
  color: var(--ovl-property-heading);
}

.ovl-member-profile .wpmem_msg {
  margin: 0 auto 1rem;
  width: min(720px, 100%);
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: rgba(11, 111, 156, 0.08);
  border: 1px solid rgba(11, 111, 156, 0.25);
  color: #0b6f9c;
  font-weight: 600;
}

.ovl-member-profile #wpmem_login form {
  margin: 0;
}

.ovl-member-profile #wpmem_login fieldset {
  min-inline-size: 0;
  border: 0;
  padding: 0;
  margin: 0;
}

.ovl-member-profile #wpmem_login label {
  display: block;
  margin-bottom: 0.4rem !important;
}

.ovl-member-profile #wpmem_login .div_text label {
  font-family: "Noto Sans JP", sans-serif;
  color: var(--ovl-property-muted);
  font-size: 0.95rem;
}

.ovl-member-profile #wpmem_login .div_text {
  width: min(450px, 100%);
  margin-inline: auto;
}

.ovl-member-profile #wpmem_login .div_text input[type="text"],
.ovl-member-profile #wpmem_login .div_text input[type="email"],
.ovl-member-profile #wpmem_login .div_text input[type="password"] {
  border-radius: 12px;
  border: 1px solid rgba(11, 111, 156, 0.2);
  padding: 0.7rem 0.9rem;
  width: 100%;
  box-sizing: border-box;
}

.ovl-member-profile #wpmem_login .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
  width: min(450px, 100%);
  margin-inline: auto;
}

.ovl-member-profile #wpmem_login input[type="submit"].buttons,
.ovl-member-profile #wpmem_login input[type="submit"],
.ovl-member-profile #wpmem_login .button_div .buttons {
  border-radius: 999px;
  padding: 0.65rem 1.4rem;
  border: none;
  background: var(--ovl-property-accent);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.ovl-member-profile #wpmem_login input[type="submit"].buttons:hover,
.ovl-member-profile #wpmem_login input[type="submit"]:hover,
.ovl-member-profile #wpmem_login .button_div .buttons:hover {
  background: #0a5a7d;
}

.ovl-property-theme .mypage-actions {
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1.25rem, 3vw, 1.75rem);
}

.ovl-property-theme .mypage-favorites {
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1.25rem, 3vw, 1.75rem);
  overflow: visible;
}

.ovl-property-theme .mypage-favorites .button,
.ovl-property-theme .mypage-favorites a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.65rem 1.4rem;
  border: 1px solid rgba(11, 111, 156, 0.3);
  color: var(--ovl-property-accent);
  background: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .mypage-favorites .button:hover,
.ovl-property-theme .mypage-favorites a.button:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: var(--ovl-property-accent);
}

.ovl-property-theme .mypage-account {
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1.25rem, 3vw, 1.75rem);
}

.ovl-property-theme .mypage-actions .card2-list {
  gap: var(--ovl-property-gap);
}

.ovl-property-theme .mypage-actions .card2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(11, 111, 156, 0.3);
  background: #fff;
  padding: 0.65rem 1.2rem;
  color: var(--ovl-property-accent);
  text-decoration: none;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .mypage-actions .card2:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: var(--ovl-property-accent);
}

.ovl-property-theme .mypage-actions .card2-title {
  color: #0b6f9c;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Noto Sans JP", sans-serif;
  margin-bottom: 0.35rem;
}

.ovl-property-theme .mypage-actions .card2-text {
  color: var(--ovl-property-muted);
  font-size: var(--ovl-property-body-size);
}

.ovl-property-theme .mypage-account .card2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(11, 111, 156, 0.3);
  background: #fff;
  padding: 0.65rem 1.2rem;
  color: var(--ovl-property-accent);
  text-decoration: none;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme .mypage-account .card2:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: var(--ovl-property-accent);
}

.ovl-property-theme .mypage-account .card2-title {
  color: inherit;
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
}

.ovl-property-theme .mypage-account .card2-text {
  color: var(--ovl-property-muted);
  font-size: 0.9rem;
  margin: 0;
}

/* /members/（マイページ）：テンプレート側のbody classに追従して適用 */
body.page-members .mypage-actions,
body.page-template-page-members .mypage-actions,
body.page-id-52 .mypage-actions,
body.page-members .mypage-favorites,
body.page-template-page-members .mypage-favorites,
body.page-id-52 .mypage-favorites,
body.page-members .mypage-account,
body.page-template-page-members .mypage-account,
body.page-id-52 .mypage-account {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  margin-inline: 10.3px !important;
  width: calc(100% - 20.6px);
  border-radius: var(--ovl-property-radius, 22px);
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
  padding: clamp(1.25rem, 3vw, 1.75rem);
}

/* /members/: 先頭セクションの上余白は0に */
body.page-members .mypage-actions,
body.page-template-page-members .mypage-actions,
body.page-id-52 .mypage-actions {
  margin-top: 0;
}

/* /members/: お気に入り一覧（slick）で横にはみ出すのを防止 */
body.page-members .ovl-favorites-wrap,
body.page-template-page-members .ovl-favorites-wrap,
body.page-id-52 .ovl-favorites-wrap {
  max-width: 100%;
  overflow-x: clip;
}

@supports not (overflow: clip) {

  body.page-members .ovl-favorites-wrap,
  body.page-template-page-members .ovl-favorites-wrap,
  body.page-id-52 .ovl-favorites-wrap {
    overflow-x: hidden;
  }
}

body.page-members .ovl-favorites-wrap .slick-list,
body.page-template-page-members .ovl-favorites-wrap .slick-list,
body.page-id-52 .ovl-favorites-wrap .slick-list {
  overflow: hidden;
}

body.page-members .ovl-favorites-wrap .slick-track,
body.page-template-page-members .ovl-favorites-wrap .slick-track,
body.page-id-52 .ovl-favorites-wrap .slick-track {
  display: flex;
}

body.page-members .ovl-favorites-wrap .slick-slide,
body.page-template-page-members .ovl-favorites-wrap .slick-slide,
body.page-id-52 .ovl-favorites-wrap .slick-slide,
body.page-members .ovl-favorites-wrap .slick-slide>*,
body.page-template-page-members .ovl-favorites-wrap .slick-slide>*,
body.page-id-52 .ovl-favorites-wrap .slick-slide>* {
  max-width: 100%;
  box-sizing: border-box;
}

body.page-members .ovl-favorites.property-archive,
body.page-template-page-members .ovl-favorites.property-archive,
body.page-id-52 .ovl-favorites.property-archive {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}

body.page-members .ovl-favorites.property-archive .ovl-property-card,
body.page-template-page-members .ovl-favorites.property-archive .ovl-property-card,
body.page-id-52 .ovl-favorites.property-archive .ovl-property-card {
  width: 100%;
  max-width: 100%;
}

body.page-members .mypage-actions .card2-list,
body.page-template-page-members .mypage-actions .card2-list,
body.page-id-52 .mypage-actions .card2-list,
body.page-members .mypage-account .card2-list,
body.page-template-page-members .mypage-account .card2-list,
body.page-id-52 .mypage-account .card2-list {
  width: 100%;
  gap: clamp(0.75rem, 1.5vw, 1.1rem);
}

body.page-members .mypage-actions .card2,
body.page-template-page-members .mypage-actions .card2,
body.page-id-52 .mypage-actions .card2,
body.page-members .mypage-account .card2,
body.page-template-page-members .mypage-account .card2,
body.page-id-52 .mypage-account .card2 {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-radius: 999px !important;
  border: 1px solid rgba(11, 111, 156, 0.3);
  background: #fff;
  padding: clamp(0.85rem, 2.4vw, 1.1rem) clamp(1rem, 3vw, 1.3rem);
  color: #0b6f9c;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.page-members .mypage-actions .card2:hover,
body.page-template-page-members .mypage-actions .card2:hover,
body.page-id-52 .mypage-actions .card2:hover,
body.page-members .mypage-account .card2:hover,
body.page-template-page-members .mypage-account .card2:hover,
body.page-id-52 .mypage-account .card2:hover {
  background: rgba(11, 111, 156, 0.06);
  border-color: rgba(11, 111, 156, 0.45);
}

body.page-members .mypage-actions .card2-title,
body.page-template-page-members .mypage-actions .card2-title,
body.page-id-52 .mypage-actions .card2-title,
body.page-members .mypage-account .card2-title,
body.page-template-page-members .mypage-account .card2-title,
body.page-id-52 .mypage-account .card2-title {
  color: #0b6f9c;
  font-weight: 700;
  font-size: 1rem;
  margin: 0 0 0.35rem;
}

body.page-members .mypage-actions .card2-text,
body.page-template-page-members .mypage-actions .card2-text,
body.page-id-52 .mypage-actions .card2-text,
body.page-members .mypage-account .card2-text,
body.page-template-page-members .mypage-account .card2-text,
body.page-id-52 .mypage-account .card2-text {
  color: #0f172a;
  font-size: 0.95rem;
  font-weight: 500;
  margin: 0;
  opacity: 0.85;
}

@media (max-width: 480px) {

  body.page-members .wp-site-blocks>main.has-global-padding,
  body.page-template-page-members .wp-site-blocks>main.has-global-padding,
  body.page-id-52 .wp-site-blocks>main.has-global-padding {
    padding-block-start: 1rem !important;
  }

  body.page-members .wp-site-blocks>main,
  body.page-template-page-members .wp-site-blocks>main,
  body.page-id-52 .wp-site-blocks>main,
  body.page-members .wp-site-blocks>.wp-block-group:not(.wp-block-template-part),
  body.page-template-page-members .wp-site-blocks>.wp-block-group:not(.wp-block-template-part),
  body.page-id-52 .wp-site-blocks>.wp-block-group:not(.wp-block-template-part) {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  /* main配下の「constrained」ルールで内側が細くなるのを防ぐ */
  body.page-members .wp-site-blocks>main.is-layout-constrained>*,
  body.page-template-page-members .wp-site-blocks>main.is-layout-constrained>*,
  body.page-id-52 .wp-site-blocks>main.is-layout-constrained>* {
    max-width: none !important;
    margin-inline: 0 !important;
  }

  /* has-global-padding が二重に効いて“細い列”になるのを防ぐ */
  body.page-members .wp-site-blocks>main.has-global-padding,
  body.page-template-page-members .wp-site-blocks>main.has-global-padding,
  body.page-id-52 .wp-site-blocks>main.has-global-padding {
    padding-inline: 0 !important;
  }

  body.page-members .wp-site-blocks>main.has-global-padding>.wp-block-group.has-global-padding,
  body.page-template-page-members .wp-site-blocks>main.has-global-padding>.wp-block-group.has-global-padding,
  body.page-id-52 .wp-site-blocks>main.has-global-padding>.wp-block-group.has-global-padding {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  body.page-members .mypage-actions,
  body.page-template-page-members .mypage-actions,
  body.page-id-52 .mypage-actions,
  body.page-members .mypage-favorites,
  body.page-template-page-members .mypage-favorites,
  body.page-id-52 .mypage-favorites,
  body.page-members .mypage-account,
  body.page-template-page-members .mypage-account,
  body.page-id-52 .mypage-account {
    padding: 1rem;
    margin-inline: 0;
  }
}

.ovl-property-theme .ovl-member-fields {
  list-style: none;
  padding-left: 0;
  margin: 0;
  border-radius: var(--ovl-property-radius);
  border: var(--ovl-property-border);
  background: #fff;
  box-shadow: var(--ovl-property-shadow);
  padding: clamp(1rem, 2vw, 1.4rem);
}

.ovl-property-theme .ovl-member-fields li {
  list-style: none;
  margin: 0;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.ovl-property-theme .ovl-member-fields li:last-child {
  border-bottom: none;
}

.ovl-property-theme .ovl-member-fields__label {
  color: var(--ovl-property-ink);
}

.ovl-property-theme .ovl-member-fields__value {
  color: var(--ovl-property-ink);
}

.ovl-property-theme .wpmem_msg {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

.wpmem_msg {
  white-space: normal;
  overflow: visible;
  height: auto;
}

.property-archive {
  --property-card-gap: clamp(0.75rem, 1.5vw, 1.1rem);
  --property-card-radius: 22px;
  --property-card-border: 1px solid rgba(15, 23, 42, 0.08);
  --property-card-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
  --property-card-columns: var(--ovl-property-columns, 1);
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3vw, 2rem);
  margin-block: clamp(1.5rem, 4vw, 3rem);
}

.property-archive__filter {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: calc(var(--property-card-radius) - 6px);
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 23, 42, 0.06);
}

.property-archive__filter label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: #4a5662;
}

.property-archive__filter input[type="number"],
.property-archive__filter select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.15);
  padding: 0.55rem 0.9rem;
  font-size: 1rem;
  background: #f9fafb;
  appearance: none;
}

.property-archive__filter select {
  background-image: linear-gradient(45deg, transparent 50%, rgba(15, 23, 42, 0.5) 50%), linear-gradient(135deg, rgba(15, 23, 42, 0.5) 50%, transparent 50%);
  background-position: calc(100% - 20px) calc(50% - 3px), calc(100% - 14px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2.2rem;
}

.property-archive__filter input[type="number"]:focus,
.property-archive__filter select:focus {
  outline: none;
  border-color: #0b6f9c;
  box-shadow: 0 0 0 2px rgba(11, 111, 156, 0.15);
  background: #fff;
}

.property-archive__filter-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  grid-column: 1 / -1;
  justify-content: flex-end;
}

.property-archive__filter .button {
  border-radius: 999px;
  padding: 0.5rem 1.05rem;
  border: none;
  background: #0b6f9c;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.1;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.property-archive__filter .button.button-reset {
  background: transparent;
  border: 1px solid rgba(11, 111, 156, 0.3);
  color: #0b6f9c;
  padding: 0.45rem 0.95rem;
  font-size: 0.9rem;
}

.property-archive__filter .button:not(.button-reset):hover {
  background: #0a5a7d;
}

.property-archive__filter .button.button-reset:hover {
  background: rgba(11, 111, 156, 0.08);
  border-color: #0b6f9c;
  color: #0b6f9c;
}

.property-archive__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--property-card-gap);
  width: 100%;
  max-width: 100%;
  justify-items: stretch;
}

/* 物件一覧：狭幅でカードがはみ出して欠けるのを防止 */
.property-archive__grid>* {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.property-archive .ovl-property-card,
.property-archive .slick-slide,
.property-archive .un-card__item,
.property-archive .top_page_property_ad_top {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 譛譁ｰ縺ｮ髱橸ｿｽE髢狗黄莉ｶ繝斐ャ繧ｯ繧｢繝・?ｽE?ｽE?ｽPC縺ｧ4蛻励↓ */

.property-card--section .wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  list-style: none;
  margin: 0;
  padding: 0;
}

.property-card--section .wp-block-post-template>* {
  margin: 0;
  height: 100%;
}

.property-card--section .property-card--latest {
  height: 100%;
}

@media (max-width: 1024px) {
  .property-card--section .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .property-card--section .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .property-card--latest {
    padding-top: 0 !important;
  }

  .property-card--latest .wp-block-post-featured-image {
    padding: 0.6rem;
    background: #f8fafc;
    box-sizing: border-box;
  }

  .property-card--latest .wp-block-post-featured-image img {
    border-radius: calc(var(--property-card-radius, 22px) - 12px);
  }

  .property-card--latest .property-card__content {
    margin-top: 0 !important;
  }

  .property-card--latest .wp-block-post-title {
    margin-top: 0 !important;
  }
}

.property-card .wp-block-post-featured-image {
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: calc(var(--property-card-radius, 22px) - 8px);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.property-card .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.property-card .wp-block-post-featured-image:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 35px rgba(8, 21, 32, 0.15);
}

.property-card .wp-block-post-featured-image:hover img {
  transform: scale(1.05);
}

.page-id-87 .property-card .wp-block-post-featured-image a:focus,
.page-id-87 .property-card .wp-block-post-featured-image a:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px #ffffff;
}

.page-id-87 .ovl-property-card__thumb:focus,
.page-id-87 .ovl-property-card__thumb:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px #ffffff;
}

.property-card--latest {
  border-radius: var(--property-card-radius, 22px);
  border: var(--property-card-border, 1px solid rgba(15, 23, 42, 0.12));
  background: #fff;
  box-shadow: var(--property-card-shadow, 0 16px 32px rgba(15, 23, 42, 0.1));
  padding: clamp(0.7rem, 1.6vw, 1.1rem);
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 1.2vw, 0.85rem);
  min-height: 100%;
}

.property-card--latest .property-card__thumb {
  margin: 0;
}

.property-card__content {
  display: flex;
  flex-direction: column;
  gap: clamp(0.35rem, 0.8vw, 0.55rem);
}

.property-card__title {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 600;
  color: #0f172a;
}

.property-card .wp-block-post-title,
.property-card__title {
  display: block;
}



.property-card__title a {
  color: inherit;
  text-decoration: none;
}

.property-card__title a:hover {
  color: #0b6f9c;
}

.property-card__meta-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin: 0;
}

.property-card__meta {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.85rem;
}

.property-card__meta-label {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}

.property-card__meta-value {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}

.property-card__meta--price .property-card__meta-value {
  color: #b45309;
  font-size: 1.1rem;
}

.property-card__meta--yield .property-card__meta-value {
  color: #0f766e;
}

.property-card--section .wp-block-heading {
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  text-align: left;
  align-self: stretch;
}

.ovl-favorites.property-archive {
  width: min(900px, 95vw);
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 1.75rem);
}

.ovl-favorites.property-archive .property-archive__grid {
  width: 100%;
  margin-inline: auto;
}

.ovl-favorites.property-archive .ovl-property-card {
  max-width: 100%;
}

.ovl-favorites.property-archive .ovl-property-card__thumb {
  height: clamp(120px, 16vw, 160px);
}



.ovl-property-card {
  display: grid;
  grid-template-columns: minmax(0, clamp(180px, 28%, 300px)) minmax(0, 1fr);
  gap: clamp(0.45rem, 1vw, 0.85rem);
  align-items: stretch;
  min-height: clamp(110px, 16vw, 165px);
  border-radius: var(--property-card-radius);
  border: var(--property-card-border);
  background: linear-gradient(180deg, #fff 0%, #fdfdfd 100%);
  box-shadow: var(--property-card-shadow);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
}

.ovl-property-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 25px 45px rgba(15, 23, 42, 0.15);
}

.ovl-property-card__media {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ovl-property-card__thumb {
  position: relative;
  display: block;
  height: clamp(110px, 16vw, 165px);
  overflow: hidden;
}

.ovl-property-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ovl-property-card__noimage {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: #e8edf2;
  color: #5f6b7a;
  font-size: 0.95rem;
}

.ovl-property-card__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #fff;
}

.ovl-property-card__badge.is-new {
  background: #ff6b6b;
}

.ovl-property-card__badge.is-locked {
  background: rgba(3, 10, 27, 0.8);
  left: auto;
  right: 0.75rem;
}

.ovl-property-card__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(0.6rem, 1.2vw, 0.95rem);
  gap: 0.3rem;
  min-height: clamp(110px, 16vw, 165px);
}

.ovl-property-card__auth-links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem;
  padding: 0.5rem 0.6rem 0.7rem;
  font-size: 0.9rem;
}

.ovl-property-card__auth-links a {
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}

.ovl-property-card__auth-sep {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  font-weight: 600;
  line-height: 1.2;
  user-select: none;
}

.ovl-property-card__auth-links a:hover {
  text-decoration: underline;
}

.ovl-property-card__head {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1 1 auto;
}

.ovl-property-card__status {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6c7a89;
  margin: 0;
}

.ovl-property-card__title {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ovl-property-card__title a {
  color: inherit;
}

.ovl-property-card__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.15rem;
}

.ovl-property-card__badge-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  padding: 0.12rem 0.6rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: #4a5662;
  background: #f8fafc;
}

.ovl-property-card__badge-pill.is-accent {
  background: #e6f6ff;
  border-color: rgba(11, 111, 156, 0.2);
  color: #0b6f9c;
}

.ovl-property-card__badge-pill.is-locked {
  background: rgba(3, 26, 29, 0.8);
  border-color: rgba(3, 26, 29, 0.8);
  color: #fff;
}

.ovl-property-card__location,
.ovl-property-card__station {
  margin: 0;
  color: #4a5662;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ovl-property-card__station {
  font-size: 0.78rem;
  color: #7a8594;
}

.ovl-property-card__specs {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  overflow: hidden;
  margin-top: 0.25rem;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
}

.ovl-property-card__spec-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.ovl-property-card__spec-row:first-child {
  border-top: none;
}

.ovl-property-card__spec {
  padding: 0.35rem 0.4rem;
  border-left: 1px solid rgba(15, 23, 42, 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-height: auto;
  justify-content: center;
  background: #f9fafb;
}

.ovl-property-card__spec:first-child {
  border-left: none;
}

.ovl-property-card__spec--price {
  background: #fff;
}

.ovl-property-card__spec-label {
  font-size: 0.65rem;
  color: #6c7a89;
  letter-spacing: 0.04em;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.ovl-property-card__spec-value {
  font-size: 0.9rem;
  font-weight: 600;
  color: #091626;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.ovl-property-card__spec--price .ovl-property-card__spec-label {
  color: #0b6f9c;
}

.ovl-property-card__spec--price .ovl-property-card__spec-value {
  color: #0b6f9c;
}

.ovl-property-card__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  font-size: 0.7rem;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.25rem;
}

.ovl-property-card__footer--media {
  justify-content: center;
  font-size: 0.8rem;
  flex-wrap: nowrap;
  gap: clamp(0.35rem, 1.2vw, 0.6rem);
  padding-inline: clamp(0.5rem, 1.4vw, 0.9rem);
  padding-bottom: clamp(0.35rem, 1vw, 0.6rem);
  box-sizing: border-box;
}

.ovl-property-card__footer--media .ovl-property-card__cta,
.ovl-property-card__footer--media .ovl-favorite-button {
  flex: 0 1 auto;
  justify-content: center;
  white-space: nowrap;
  font-size: clamp(0.78rem, 2.2vw, 0.9rem);
  padding-block: clamp(0.42rem, 1.2vw, 0.55rem);
  padding-inline: clamp(0.7rem, 2.2vw, 1.3rem);
}

.ovl-property-card__footer--media .ovl-favorite-button__label {
  white-space: nowrap;
}

.ovl-property-card__actions {
  --ovl-action-btn-height: clamp(40px, 6vw, 44px);
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: clamp(0.35rem, 1.2vw, 0.6rem);
  margin-top: 0.55rem;
  width: 100%;
  max-width: min(720px, 100%);
  margin-inline: auto;
  padding-inline: 0;
  padding-bottom: 0;
  box-sizing: border-box;
}

.ovl-property-card__actions .ovl-property-card__cta,
.ovl-property-card__actions .ovl-favorite-button {
  flex: 1 1 0;
  min-width: 0;
  height: var(--ovl-action-btn-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  font-size: clamp(0.78rem, 1.8vw, 0.92rem);
  line-height: 1;
  padding-block: 0;
  padding-inline: clamp(0.75rem, 2vw, 1.15rem);
  box-sizing: border-box;
}

.ovl-property-card__actions .ovl-property-card__cta br {
  display: none;
}

.ovl-property-card__actions .ovl-favorite-button__label {
  white-space: nowrap;
}

.ovl-property-card__cta {
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
}

.ovl-property-card__cta:hover {
  background: rgba(11, 111, 156, 0.08);
}

@media (max-width: 768px) {
  .ovl-property-card {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .ovl-property-card__thumb {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .ovl-favorites-wrap .ovl-property-card {
    grid-template-columns: 1fr !important;
    gap: 0;
  }

  .ovl-favorites-wrap .ovl-property-card__thumb {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .ovl-favorites.property-archive .ovl-property-card__thumb {
    aspect-ratio: 4 / 3;
    height: auto !important;
  }

  .ovl-property-card__footer--media {
    margin-top: 0.5rem;
  }
}

@media (max-width: 420px) {
  .ovl-property-card__actions {
    flex-wrap: wrap;
  }

  .ovl-property-card__actions .ovl-property-card__cta,
  .ovl-property-card__actions .ovl-favorite-button {
    flex: 1 1 100%;
  }
}

.property-archive__pagination {
  display: flex;
  justify-content: center;
}

.property-archive__pagination ul {
  display: flex;
  gap: 0.4rem;
  list-style: none;
  padding: 0;
}

.property-archive__pagination li a,
.property-archive__pagination li span {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.property-archive__pagination li a {
  border-color: rgba(11, 111, 156, 0.25);
  color: #0b6f9c;
}

.property-archive__pagination li span.current {
  background: #0b6f9c;
  color: #fff;
}

.property-archive__empty {
  text-align: center;
  padding: 2rem;
  color: #5a6573;
  background: #fff;
  border-radius: var(--property-card-radius);
  border: var(--property-card-border);
}

@media (max-width: 960px) {
  .property-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-87 .property-archive__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .property-archive__filter {
    grid-template-columns: 1fr;
  }

  .property-archive__grid {
    grid-template-columns: 1fr;
  }

  .property-archive__filter-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
}

.front-property__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 2rem;
}

@media (max-width: 640px) {
  .front-property__cards {
    grid-template-columns: 1fr;
  }
}

.front-property__cards>* {
  margin: 0 !important;
}




.front-property__cards p {
  font-size: 1rem;
  margin-block: 0.2em;
  margin-inline: 0;
  unicode-bidi: isolate;
}

.front-property__card {
  border: 1px solid rgba(4, 17, 33, 0.08);
  border-radius: 20px;
  padding: 1.5rem;
  background: #ffffff;
  box-shadow: 0 18px 32px rgba(4, 17, 33, 0.07);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  will-change: transform;
}

.front-property__card:hover,
.front-property__card:focus-within {
  box-shadow: 0 24px 60px rgba(9, 27, 44, 0.15);
  transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
  .front-property__card {
    transition: none;
    transform: none;
  }
}

.front-property__card p {
  margin: 0;
}



.front-property__card h3 {
  margin: 0;
  font-size: 1.2rem;
}

.front-property__card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  color: #3e4c58;
}




/* お気に入りボタン */
.ovl-favorite-control {
  margin-top: 0.4rem;
}

.ovl-favorite-button {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  border: 1px solid var(--ovl-accent, #0bb7c0);
  background: color-mix(in srgb, var(--ovl-accent, #0bb7c0) 12%, #ffffff);
  color: #0b1f31;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
}

.ovl-favorite-button:hover,
.ovl-favorite-button:focus-visible {
  background: color-mix(in srgb, var(--ovl-accent, #0bb7c0) 24%, #ffffff);
  border-color: color-mix(in srgb, var(--ovl-accent, #0bb7c0) 90%, #000000 5%);
  transform: translateY(-1px);
}

.ovl-favorite-button__icon {
  font-size: 1rem;
  line-height: 1;
}

/* WP-Members: プライバシーポリシーモーダル */
.ovl-modal-open {
  overflow: hidden;
}

.ovl-modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 9998;
}

.ovl-modal__overlay[hidden],
.ovl-modal[hidden] {
  display: none !important;
}

.ovl-modal {
  position: fixed;
  inset: 6vh 0 auto;
  margin-inline: auto;
  width: min(860px, calc(100vw - 2rem));
  max-height: 88vh;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  font-size: 0.95rem;
  line-height: 1.75;
}

.ovl-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ovl-modal__title {
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.3;
}

.ovl-modal__close {
  appearance: none;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #fff;
  border-radius: 999px;
  width: 2.25rem;
  height: 2.25rem;
  line-height: 2.1rem;
  font-size: 1.25rem;
  cursor: pointer;
}

.ovl-modal__body {
  padding: 1rem 1.25rem;
  overflow: auto;
  font-size: 1em;
  line-height: inherit;
  color: #333333;
}

.ovl-modal__body p,
.ovl-modal__body li {
  font-size: 1em !important;
  line-height: inherit !important;
  color: inherit !important;
}

.ovl-modal__body p {
  margin-bottom: 1.1rem;
}

.ovl-modal__body :where(.has-small-font-size, .has-medium-font-size, .has-large-font-size, .has-x-large-font-size, .has-huge-font-size) {
  font-size: 1em !important;
}

.ovl-modal__body [style*="font-size"] {
  font-size: 1em !important;
}

.ovl-modal__body .wp-block-post-title {
  display: none !important;
}

.ovl-modal__body h1 {
  font-size: 1.25em !important;
  margin-bottom: 0.9rem;
}

.ovl-modal__body h2 {
  font-size: 1.1em !important;
  margin-bottom: 0.85rem;
}

.ovl-modal__body h3 {
  font-size: 1em !important;
  margin-bottom: 0.8rem;
}

.ovl-modal__body .wp-site-blocks,
.ovl-modal__body .wp-site-blocks>* {
  width: auto;
  padding-inline: 0;
  margin-inline: 0;
}

.ovl-modal__loading,
.ovl-modal__error {
  margin: 0;
  color: #5e6b76;
}

.ovl-wpmem-consent {
  margin-bottom: 0.75rem;
}

.ovl-wpmem-consent__label {
  display: flex !important;
  align-items: flex-start !important;
  /* Align to top to target the first line */
  flex-wrap: nowrap !important;
  /* Force side-by-side */
  gap: 0.5rem;
  line-height: normal;
}

.ovl-wpmem-consent__label span {
  display: inline-block;
  line-height: 1.5;
}

.ovl-wpmem-consent__label input[type="checkbox"] {
  /* Push down to align with the center of the first line of text (line-height 1.5) */
  margin-top: 0.3em !important;
}

.ovl-wpmem-consent__label .ovl-privacy-modal-trigger {
  color: var(--wp--preset--color--contrast, #0b6f9c);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 0.08em;
}

.ovl-wpmem-consent__label .ovl-privacy-modal-trigger:hover,
.ovl-wpmem-consent__label .ovl-privacy-modal-trigger:focus-visible {
  color: #0b6f9c;
  text-decoration-thickness: 0.14em;
}

.ovl-wpmem-consent__label .ovl-privacy-modal-trigger:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 4px;
}

.ovl-register-error {
  flex: 1 1 100%;
  margin-top: 0.35rem;
  color: #b42318 !important;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.6;
  text-align: left;
  background: #fff1f1;
  border: 1px solid #f3c2c2;
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
  width: 100%;
  box-sizing: border-box;
}

.ovl-register-error[hidden] {
  display: none !important;
}

.ovl-wpmem-required-note {
  font-size: 0.95rem;
  font-weight: 600;
  color: #5e6b76;
  margin-bottom: 0.35rem;
}

.ovl-wpmem-required-note .req {
  color: #d63638;
  margin-right: 0.15rem;
}

.ovl-favorite-button.is-active {
  background: var(--ovl-accent, #0bb7c0);
  color: #ffffff;
  border-color: color-mix(in srgb, var(--ovl-accent, #0bb7c0) 95%, #000000 10%);
}

.ovl-favorite-button.is-disabled,
.ovl-favorite-button:disabled {
  background: #f3f4f5;
  border-color: #d5d9de;
  color: #7a8794;
  cursor: not-allowed;
  transform: none;
}

.ovl-favorite-button.is-loading {
  opacity: 0.7;
  pointer-events: none;
}

.ovl-favorite-note,
.property-hero__actions-note {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  color: #555;
}

.property-hero__actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.75rem;
}

/* お気に入りページ専用の幅・カラム・余白調整（グループに ovl-favorites-wrap を付ける）*/
.ovl-favorites-wrap .property-archive {
  --ovl-property-columns: 1;
  --property-card-gap: clamp(0.6rem, 1.2vw, 0.9rem);
  margin-block: clamp(0.5rem, 1.2vw, 1rem);
  padding-inline: clamp(0.6rem, 2vw, 1rem);
  width: min(920px, 92vw);
  max-width: 920px;
  margin-inline: auto;
}

.ovl-favorites-wrap .property-archive__grid {
  grid-template-columns: 1fr !important;
  gap: var(--property-card-gap);
}

.ovl-favorites-wrap .ovl-property-card {
  grid-template-columns: minmax(0, clamp(170px, 27%, 240px)) minmax(0, 1fr);
  min-height: auto;
  align-items: start;
}

.ovl-favorites-wrap .ovl-property-card__body {
  padding: clamp(0.4rem, 0.8vw, 0.7rem);
  gap: 0.15rem;
}

.ovl-favorites-wrap .ovl-property-card__spec {
  padding: 0.5rem 0.3rem;
  gap: 0.05rem;
  min-height: auto;
}

/* 縺頑ｰ励↓蜈･繧奇ｿｽE繝ｼ繧ｸ縺ｮ繧ｹ繝壹ャ繧ｯ菴咏區繧貞悸邵ｮ */
.ovl-favorites-wrap .ovl-property-card__specs {
  margin-top: 0.5rem;
}

.ovl-favorites-wrap .ovl-property-card__spec-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ovl-favorites-wrap .ovl-property-card__spec br {
  display: none;
}

/* 空の <p></p> が自動整形機能で混入することによる余白を抑制 */
.ovl-favorites-wrap .ovl-property-card__spec p {
  margin: 0;
}

.ovl-favorites-wrap .ovl-property-card__spec p:empty {
  display: none;
}

/* specs配下に紛れ込む空の<p>のマージンが余白になるので除去 */
.ovl-favorites-wrap .ovl-property-card__specs p {
  margin: 0;
}

.ovl-favorites-wrap .ovl-property-card__specs p:empty,
.ovl-favorites-wrap .ovl-property-card__spec-row>p:empty {
  display: none;
}

/* wpautop由来の不要な <p>/<br> がカードの余白になるのを阻止 */
.ovl-favorites-wrap .ovl-property-card p {
  margin: 0;
}

.ovl-favorites-wrap .ovl-property-card p:empty {
  display: none;
}

.ovl-favorites-wrap .ovl-property-card__title br,
.ovl-favorites-wrap .ovl-property-card__footer br,
.ovl-favorites-wrap .ovl-property-card__media br,
.ovl-favorites-wrap .ovl-property-card__head br {
  display: none;
}

.ovl-favorites-wrap .ovl-property-card__media {
  gap: 0.25rem;
}

/* thumb内に混ざる空<p>や<br>で余白が出るケースを阻止 */
.ovl-favorites-wrap .ovl-property-card__thumb p {
  margin: 0;
}

.ovl-property-theme .ovl-favorites-wrap .slick-list {
  overflow: hidden;
}

.ovl-property-theme .ovl-favorites-wrap .slick-track {
  display: flex;
}

.ovl-property-theme .ovl-favorites-wrap .slick-slide {
  max-width: 100%;
  box-sizing: border-box;
}

.ovl-property-theme .ovl-favorites-wrap .slick-slide>* {
  max-width: 100%;
  box-sizing: border-box;
}

.ovl-property-theme .ovl-favorites-wrap .ovl-property-card {
  width: 100%;
  max-width: 100%;
}

.ovl-property-theme .mypage-favorites .property-archive__grid,
.ovl-property-theme .mypage-favorites .slick-track,
.ovl-property-theme .mypage-favorites .slick-slide,
.ovl-property-theme .mypage-favorites .un-card__item,
.ovl-property-theme .mypage-favorites .top_page_property_ad_top {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.ovl-property-theme .mypage-favorites .slick-slide>* {
  max-width: 100%;
  box-sizing: border-box;
}

.ovl-property-theme .mypage-favorites .ovl-property-card__specs {
  overflow: visible;
}

.ovl-property-theme .mypage-favorites .ovl-favorites.property-archive {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}

.ovl-property-theme .mypage-favorites .property-archive__grid {
  width: 100%;
}

.ovl-property-theme .mypage-favorites .ovl-property-card {
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
}

.ovl-property-theme .mypage-favorites .ovl-property-card__body {
  min-width: 0;
}

.ovl-property-theme .mypage-favorites .ovl-property-card__specs {
  min-width: 0;
}


/* member-register: match pwdchange style */
.ovl-property-theme #wpmem_register_form fieldset {
  border: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.ovl-property-theme #wpmem_register_form {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  margin: 1rem auto 1.5rem;
  width: min(720px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ovl-property-theme #wpmem_register_form.form {
  padding-top: clamp(1.3rem, 2.4vw, 1.7rem);
  padding-left: clamp(1.3rem, 2.4vw, 1.7rem);
}

.ovl-property-theme #wpmem_register_form legend {
  display: none;
}

.ovl-property-theme #wpmem_register_form label {
  display: block;
  margin: 0.6rem 0 0.35rem;
  padding-left: 0.25rem;
  color: #0bb7c0;
  font-size: 1rem;
  width: min(450px, 100%);
  text-align: left;
  align-self: center;
}

.ovl-property-theme #wpmem_register_form .div_text {
  max-width: 100%;
  width: min(450px, 100%);
  align-self: center;
}

.ovl-property-theme #wpmem_register_form .div_text input {
  width: min(450px, 100%);
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  color: var(--ovl-property-ink);
  font-size: 1rem;
}

.ovl-property-theme #wpmem_register_form .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
  width: min(450px, 100%);
  margin-left: 0;
  margin-right: 0;
  align-self: center;
}

.ovl-property-theme #wpmem_register_form .button_div .buttons,
.ovl-property-theme #wpmem_register_form input[type="submit"].buttons {
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
  border: 1px solid rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ovl-property-theme #wpmem_register_form .button_div .buttons:hover,
.ovl-property-theme #wpmem_register_form input[type="submit"].buttons:hover {
  background: rgba(11, 111, 156, 0.08);
}

.ovl-property-theme #wpmem_register_form .req-text {
  width: min(450px, 100%);
  text-align: left;
  margin-top: 0.5rem;
  color: var(--ovl-property-muted);
  font-size: 0.9rem;
  align-self: center;
}

/* member-register: unified styling for slug and ID classes */
body.page-member-register #wpmem_register_form fieldset,
body.page-id-46 #wpmem_register_form fieldset {
  border: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

body.page-member-register #wpmem_register_form,
body.page-id-46 #wpmem_register_form {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  margin: 1rem auto 1.5rem;
  width: min(720px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.page-member-register #wpmem_register_form.form,
body.page-id-46 #wpmem_register_form.form {
  padding-top: clamp(1.3rem, 2.4vw, 1.7rem);
  padding-left: clamp(1.3rem, 2.4vw, 1.7rem);
}

body.page-member-register #wpmem_register_form legend,
body.page-id-46 #wpmem_register_form legend {
  display: none;
}

body.page-member-register #wpmem_register_form p,
body.page-id-46 #wpmem_register_form p {
  margin: 0;
}

body.page-member-register #wpmem_register_form label,
body.page-id-46 #wpmem_register_form label {
  display: block;
  margin: 1.2rem 0 0rem !important;
  padding-left: 0.25rem;
  color: #424242;
  font-size: 1rem;
  width: min(450px, 100%);
  text-align: left;
  align-self: center;
}

body.page-member-register #wpmem_register_form .div_text,
body.page-id-46 #wpmem_register_form .div_text {
  margin: 0;
  max-width: 100%;
  width: min(450px, 100%);
  align-self: center;
}

body.page-member-register #wpmem_register_form .div_text input,
body.page-id-46 #wpmem_register_form .div_text input {
  width: min(450px, 100%);
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  color: var(--ovl-property-ink);
  font-size: 1rem;
}

body.page-member-register #wpmem_register_form .button_div,
body.page-id-46 #wpmem_register_form .button_div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.9rem;
  align-items: center;
  justify-content: flex-end;
  margin-top: 0.75rem;
  width: min(450px, 100%);
  margin-left: 0;
  margin-right: 0;
  align-self: center;
}

body.page-member-register #wpmem_register_form .button_div .buttons,
body.page-member-register #wpmem_register_form input[type="submit"].buttons,
body.page-id-46 #wpmem_register_form .button_div .buttons,
body.page-id-46 #wpmem_register_form input[type="submit"].buttons,
body.page-member-register #wpmem_login input[type="submit"],
body.page-member-peregister #wpmem_login input[type="submit"],
body.page-id-46 #wpmem_login input[type="submit"],
body.page-member-register #wpmem_login_form input[type="submit"].buttons,
body.page-member-peregister #wpmem_login_form input[type="submit"].buttons,
body.page-id-46 #wpmem_login_form input[type="submit"].buttons,
body.page-members #wpmem_login input[type="submit"],
body.page-template-page-members #wpmem_login input[type="submit"],
body.page-id-52 #wpmem_login input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 999px;
  padding: 0.65rem 1.4rem;
  border: none;
  background: #0b6f9c;
  color: #fff;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.page-member-register #wpmem_register_form .button_div .buttons:hover,
body.page-member-register #wpmem_register_form input[type="submit"].buttons:hover,
body.page-id-46 #wpmem_register_form .button_div .buttons:hover,
body.page-id-46 #wpmem_register_form input[type="submit"].buttons:hover,
body.page-member-register #wpmem_login input[type="submit"]:hover,
body.page-member-peregister #wpmem_login input[type="submit"]:hover,
body.page-id-46 #wpmem_login input[type="submit"]:hover,
body.page-member-register #wpmem_login_form input[type="submit"].buttons:hover,
body.page-member-peregister #wpmem_login_form input[type="submit"].buttons:hover,
body.page-id-46 #wpmem_login_form input[type="submit"].buttons:hover,
body.page-members #wpmem_login input[type="submit"]:hover,
body.page-template-page-members #wpmem_login input[type="submit"]:hover,
body.page-id-52 #wpmem_login input[type="submit"]:hover {
  background: #0a5a7d;
}

/* member-register: ensure submit text is visible */
body.page-member-register #wpmem_register_form input#ovl-register-btn.buttons,
body.page-id-46 #wpmem_register_form input#ovl-register-btn.buttons {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #0b6f9c !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  text-indent: 0 !important;
  opacity: 1 !important;
}

/* PREVIOUS BUTTON STYLES REMOVED TO AVOID CONFLICT */

/* Center the registration form container but keep content left aligned */
body.page-member-register #wpmem_register_form,
body.page-member-register #wpmem_register_form fieldset,
body.page-id-46 #wpmem_register_form,
body.page-id-46 #wpmem_register_form fieldset {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  /* Centers the direct children (labels, divs) horizontally */
  margin-inline: auto !important;
  width: 100%;
}

/* Ensure labels and inputs have a consistent max-width and align to the left within that width */
body.page-member-register #wpmem_register_form label,
body.page-member-register #wpmem_register_form .div_text,
body.page-member-register #wpmem_register_form .div_select,
body.page-member-register #wpmem_register_form .req-text,
body.page-member-register #wpmem_register_form .ovl-wpmem-required-note,
body.page-member-register #wpmem_register_form p,
body.page-id-46 #wpmem_register_form label,
body.page-id-46 #wpmem_register_form .div_text,
body.page-id-46 #wpmem_register_form .div_select,
body.page-id-46 #wpmem_register_form .req-text,
body.page-id-46 #wpmem_register_form .ovl-wpmem-required-note,
body.page-id-46 #wpmem_register_form p {
  width: 100%;
  max-width: 450px;
  /* Match the layout width */
  text-align: left !important;
  /* Force text to start at the left edge of the block */
  align-self: center !important;
  /* Center the block in the parent */
  margin-inline: auto !important;
  display: block;
  /* Ensure they take up the width */
}

/* Ensure input fields fill the max-width */
body.page-member-register #wpmem_register_form input[type="text"],
body.page-member-register #wpmem_register_form input[type="password"],
body.page-member-register #wpmem_register_form input[type="email"],
body.page-member-register #wpmem_register_form input[type="tel"],
body.page-member-register #wpmem_register_form select,
body.page-id-46 #wpmem_register_form input[type="text"],
body.page-id-46 #wpmem_register_form input[type="password"],
body.page-id-46 #wpmem_register_form input[type="email"],
body.page-id-46 #wpmem_register_form input[type="tel"],
body.page-id-46 #wpmem_register_form select {
  width: 100% !important;
  max-width: 450px !important;
  box-sizing: border-box;
}

/* Member Register & Login Page Button Area Layout */
body.page-member-register #wpmem_register_form .button_div,
body.page-id-46 #wpmem_register_form .button_div,
body.page-member-register #wpmem_login .button_div,
body.page-member-peregister #wpmem_login .button_div,
body.page-id-46 #wpmem_login .button_div,
body.page-member-register #wpmem_login_form .button_div,
body.page-member-peregister #wpmem_login_form .button_div,
body.page-id-46 #wpmem_login_form .button_div,
body.page-members #wpmem_login .button_div,
body.page-template-page-members #wpmem_login .button_div,
body.page-id-52 #wpmem_login .button_div {
  display: flex !important;
  flex-flow: row wrap;
  /* Changed to row wrap to allow side-by-side elements */
  justify-content: center;
  align-items: center;
  gap: 1rem;
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
  /* Hide raw text nodes and breaks */
  font-size: 0 !important;
  line-height: 0;
}

body.page-member-register #wpmem_login .button_div br,
body.page-member-peregister #wpmem_login .button_div br,
body.page-id-46 #wpmem_login .button_div br,
body.page-member-register #wpmem_login_form .button_div br,
body.page-member-peregister #wpmem_login_form .button_div br,
body.page-id-46 #wpmem_login_form .button_div br,
body.page-members #wpmem_login .button_div br,
body.page-template-page-members #wpmem_login .button_div br,
body.page-id-52 #wpmem_login .button_div br {
  display: none !important;
}

/* Restore font-size for interactive elements */
body.page-member-register #wpmem_login .button_div input,
body.page-member-register #wpmem_login .button_div label,
body.page-member-register #wpmem_login .button_div a,
body.page-member-peregister #wpmem_login .button_div input,
body.page-member-peregister #wpmem_login .button_div label,
body.page-member-peregister #wpmem_login .button_div a,
body.page-id-46 #wpmem_login .button_div input,
body.page-id-46 #wpmem_login .button_div label,
body.page-id-46 #wpmem_login .button_div a,
body.page-member-register #wpmem_login_form .button_div input,
body.page-member-register #wpmem_login_form .button_div label,
body.page-member-register #wpmem_login_form .button_div a,
body.page-member-peregister #wpmem_login_form .button_div input,
body.page-member-peregister #wpmem_login_form .button_div label,
body.page-member-peregister #wpmem_login_form .button_div a,
body.page-id-46 #wpmem_login_form .button_div input,
body.page-id-46 #wpmem_login_form .button_div label,
body.page-id-46 #wpmem_login_form .button_div a,
body.page-members #wpmem_login .button_div input,
body.page-members #wpmem_login .button_div label,
body.page-members #wpmem_login .button_div a,
body.page-template-page-members #wpmem_login .button_div input,
body.page-template-page-members #wpmem_login .button_div label,
body.page-template-page-members #wpmem_login .button_div a,
body.page-id-52 #wpmem_login .button_div input,
body.page-id-52 #wpmem_login .button_div label,
body.page-id-52 #wpmem_login .button_div a {
  font-size: 0.95rem !important;
  line-height: 1.5;
}

/* Login Button: Full Width, Top */
body.page-member-register #wpmem_login input[type="submit"],
body.page-member-peregister #wpmem_login input[type="submit"],
body.page-id-46 #wpmem_login input[type="submit"],
body.page-member-register #wpmem_login_form input[type="submit"].buttons,
body.page-member-peregister #wpmem_login_form input[type="submit"].buttons,
body.page-id-46 #wpmem_login_form input[type="submit"].buttons,
body.page-members #wpmem_login input[type="submit"],
body.page-template-page-members #wpmem_login input[type="submit"],
body.page-id-52 #wpmem_login input[type="submit"] {
  width: 100%;
  margin: 0 !important;
  order: 1;
}

/* Checkbox (if separate): Middle */
body.page-member-register #wpmem_login input[type="checkbox"],
body.page-member-peregister #wpmem_login input[type="checkbox"],
body.page-id-46 #wpmem_login input[type="checkbox"],
body.page-member-register #wpmem_login_form input[type="checkbox"],
body.page-member-peregister #wpmem_login_form input[type="checkbox"],
body.page-id-46 #wpmem_login_form input[type="checkbox"],
body.page-members #wpmem_login input[type="checkbox"],
body.page-template-page-members #wpmem_login input[type="checkbox"],
body.page-id-52 #wpmem_login input[type="checkbox"] {
  order: 2;
  width: auto !important;
  height: auto !important;
  margin: 0 0.5rem 0 0 !important;
  display: inline-block;
  vertical-align: middle;
}

/* Remember Me Label: Middle */
body.page-member-register #wpmem_login label,
body.page-member-peregister #wpmem_login label,
body.page-id-46 #wpmem_login label,
body.page-member-register #wpmem_login_form label,
body.page-member-peregister #wpmem_login_form label,
body.page-id-46 #wpmem_login_form label,
body.page-members #wpmem_login label,
body.page-template-page-members #wpmem_login label,
body.page-id-52 #wpmem_login label {
  order: 2;
  margin: 0 !important;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  width: auto !important;
  /* Allow sitting next to checkbox */
  justify-content: center;
}

/* If checkbox is INSIDE label, ensure it behaves well */
body.page-member-register #wpmem_login label input[type="checkbox"],
body.page-member-peregister #wpmem_login label input[type="checkbox"],
body.page-id-46 #wpmem_login label input[type="checkbox"],
body.page-member-register #wpmem_login_form label input[type="checkbox"],
body.page-member-peregister #wpmem_login_form label input[type="checkbox"],
body.page-id-46 #wpmem_login_form label input[type="checkbox"],
body.page-members #wpmem_login label input[type="checkbox"],
body.page-template-page-members #wpmem_login label input[type="checkbox"],
body.page-id-52 #wpmem_login label input[type="checkbox"] {
  margin-right: 0.5rem !important;
}

/* Action Links: Center align text */
body.page-member-register #wpmem_login a:not(#login),
body.page-member-peregister #wpmem_login a:not(#login),
body.page-id-46 #wpmem_login a:not(#login),
body.page-member-register #wpmem_login_form a:not(#login),
body.page-member-peregister #wpmem_login_form a:not(#login),
body.page-id-46 #wpmem_login_form a:not(#login),
body.page-members #wpmem_login a:not(#login),
body.page-template-page-members #wpmem_login a:not(#login),
body.page-id-52 #wpmem_login a:not(#login) {
  order: 3;
  width: auto !important;
  /* Force auto width */
  flex: 0 1 auto !important;
  /* Prevent growing to fill row */
  min-width: 140px;
  /* Ensure a reasonable touch target */
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0.8rem 1.2rem;
  display: inline-flex !important;
  /* Changed to inline-flex to sit side-by-side */
  align-items: center;
  justify-content: center;
  /* Center the text */
  gap: 1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  color: #0f6ba9;
  font-weight: 700;
  border-radius: 10px;
  text-decoration: none !important;
}

/* Pseudo-elements removed for simpler display */

/* Hover effects */
body.page-member-register #wpmem_login a:not(#login):hover,
body.page-member-peregister #wpmem_login a:not(#login):hover,
body.page-id-46 #wpmem_login a:not(#login):hover,
body.page-member-register #wpmem_login_form a:not(#login):hover,
body.page-member-peregister #wpmem_login_form a:not(#login):hover,
body.page-id-46 #wpmem_login_form a:not(#login):hover,
body.page-members #wpmem_login a:not(#login):hover,
body.page-template-page-members #wpmem_login a:not(#login):hover,
body.page-id-52 #wpmem_login a:not(#login):hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}

body.page-member-register #wpmem_register_form .req-text,
body.page-id-46 #wpmem_register_form .req-text {
  width: min(450px, 100%);
  text-align: left;
  margin-top: 0.5rem;
  color: var(--ovl-property-muted);
  font-size: 0.9rem;
  align-self: center;
}

/* Intro Heading & Paragraph Alignment */
body.page-member-register .wp-block-group.has-background>h1,
body.page-member-register .wp-block-group.has-background>p,
body.page-id-46 .wp-block-group.has-background>h1,
body.page-id-46 .wp-block-group.has-background>p {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  text-align: left;
}

/* ---------------------------------------------------------
   Register Page Specific: Right-Aligned Button
   --------------------------------------------------------- */
body.page-member-register #wpmem_register_form .button_div,
body.page-id-46 #wpmem_register_form .button_div {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  /* Allow children to size themselves */
  max-width: 450px !important;
  /* Match input field width */
  width: 100%;
  margin-inline: auto;
}

/* Consent Block (Full Width, Left Aligned) */
body.page-member-register .ovl-wpmem-consent,
body.page-id-46 .ovl-wpmem-consent {
  width: 100%;
  text-align: left;
}

/* Submit Button (Right Aligned) */
body.page-member-register #wpmem_register_form input[type="submit"].buttons,
body.page-id-46 #wpmem_register_form input[type="submit"].buttons {
  align-self: flex-end;
  /* Align to the right edge */
  width: auto !important;
  min-width: 160px;
  margin-right: 0 !important;
}

/* Error Message (Centered or Left as needed) */
body.page-member-register .ovl-register-error,
body.page-id-46 .ovl-register-error {
  text-align: left;
  align-self: flex-start;
  margin-top: 0.5rem;
}

body.page-member-register .wpmem_msg,
body.page-member-register .wpmem_msg p,
body.page-members .wpmem_msg,
body.page-members .wpmem_msg p,
body.page-template-page-members .wpmem_msg,
body.page-template-page-members .wpmem_msg p,
body.page-id-52 .wpmem_msg,
body.page-id-52 .wpmem_msg p,
body.page-id-46 .wpmem_msg,
body.page-id-46 .wpmem_msg p {
  text-align: left !important;
}

body.page-member-register .wpmem_msg,
body.page-id-46 .wpmem_msg,
body.page-members .wpmem_msg,
body.page-template-page-members .wpmem_msg,
body.page-id-52 .wpmem_msg {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  width: 100%;
  max-width: 100%;
  margin-inline: 0 !important;
  box-sizing: border-box;
  font-size: 0.9rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #0f172a;
  border-radius: 8px;
  padding: 0.65rem 0.8rem;
}

body.page-member-register .wpmem_msg--success,
body.page-id-46 .wpmem_msg--success,
body.page-members .wpmem_msg--success,
body.page-template-page-members .wpmem_msg--success,
body.page-id-52 .wpmem_msg--success {
  background: #ecfdf3;
  border-color: #a7f3d0;
  color: #065f46;
}

body.page-member-register .wpmem_msg--error,
body.page-id-46 .wpmem_msg--error,
body.page-members .wpmem_msg--error,
body.page-template-page-members .wpmem_msg--error,
body.page-id-52 .wpmem_msg--error {
  background: #fff1f1;
  border-color: #f3c2c2;
  color: #7f1d1d;
}

/* Reduce spacing below form labels */
body.page-members #wpmem_login p,
body.page-template-page-members #wpmem_login p,
body.page-id-52 #wpmem_login p,
body.page-member-register #wpmem_register_form p,
body.page-id-46 #wpmem_register_form p {
  margin-bottom: 5px !important;
}

body.page-id-46 main.wp-block-group {
  margin-top: 30px !important;
}

body.page-id-46 .wp-site-blocks>main>.wp-block-post-title {
  display: none;
}

body.page-id-46 .wp-block-group.alignfull .wp-block-post-title {
  display: none;
}

body.page-id-46 .wp-block-group.alignfull.has-global-padding {
  padding-top: 0 !important;
}

/* --------------------------------------------------------------
   Investment Page (.page-investment)
-------------------------------------------------------------- */

/* Scope strictly to the investment page to avoid side effects */
.page-investment {
  --inv-bg-body: #fdfefe;
  --inv-bg-section: #ffffff;
  --inv-bg-accent: #f0f7fb;
  --inv-color-primary: #0b4b6b;
  /* Muted, deep trust blue */
  --inv-color-text: #374151;
  /* Neutral, legible gray */
  --inv-color-text-light: #6b7280;
  --inv-spacing-section: clamp(4rem, 8vw, 7rem);
  --inv-spacing-container: clamp(1.5rem, 5vw, 4rem);
  --inv-radius-card: 24px;
  --inv-radius-lg: 32px;

  background-color: var(--inv-bg-body);
  color: var(--inv-color-text) !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: 1.2rem !important;
  /* Unified base font size for investment content */
  font-weight: 400 !important;
  /* Force regular weight to fix the "Light" issue */
  line-height: 1.9 !important;
  letter-spacing: 0.01em;
}

/* Enforce font-family consistency on elements within investment pages */
.page-investment * {
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 400 !important;
}

/* Explicitly set heading and bold weights */
.page-investment h1,
.page-investment h2,
.page-investment h3,
.page-investment h4,
.page-investment strong,
.page-investment b,
.page-investment .inv-section-title {
  font-weight: 700 !important;
}

/* Container */
.page-investment .inv-container {
  width: min(1100px, 95vw);
  margin-inline: auto;
}

.page-investment .inv-section {
  padding-block: var(--inv-spacing-section);
}

.page-investment .inv-section-title {
  font-size: clamp(1.8rem, 4vw, 2.4rem) !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  text-align: center;
  margin-bottom: clamp(2rem, 5vw, 3.5rem) !important;
  letter-spacing: 0.05em;
  line-height: 1.3 !important;
}

.page-investment .inv-section-desc {
  text-align: center;
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: 3.5rem !important;
  font-size: 1.1rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text-light) !important;
}

/* --------------------------------------------------------------
   Hero Section
   Purpose: 穏やかな空気感の演出
-------------------------------------------------------------- */
.page-investment .inv-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-block: 4rem;
  overflow: hidden;
  margin-bottom: 0;
}

.page-investment .inv-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 10% 20%, rgba(179, 219, 237, 0.4) 0%, transparent 50%),
    radial-gradient(circle at 90% 80%, rgba(206, 236, 245, 0.4) 0%, transparent 50%),
    linear-gradient(180deg, #ffffff 0%, #f4f9fc 100%);
}

.page-investment .ovl-section.ovl-hero {
  background-position: center;
  background-size: 1000px auto;
  background-repeat: no-repeat;
  background-image: url("/wp-content/uploads/investment_hero.jpg");
  max-width: none;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  margin-top: clamp(1rem, 3vw, 2rem);
}

/* Investment page hero backgrounds */
.page-id-321 .page-investment .ovl-section.ovl-hero {
  background-image: url("/wp-content/uploads/okinawa_investment_hero.jpg");
}

.page-id-315 .page-investment .ovl-section.ovl-hero {
  background-image: url("/wp-content/uploads/chunanbu_investment_hero.jpg");
}

.page-investment .ovl-hero-grid {
  max-width: 800px;
  width: 95%;
  margin-inline: auto;
  padding: clamp(1rem, 3vw, 2rem);
}

.page-investment .ovl-hero-copy {
  color: #fff;
}

.page-investment .ovl-hero-copy :is(h1, h2, h3, p, a, li) {
  color: inherit;
}

.page-investment .ovl-hero-copy :is(h1, h2, h3, p) {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 4px 10px rgba(0, 0, 0, 0.35);
}

.page-investment .ovl-section.ovl-hero .ovl-hero-copy p {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 4px 10px rgba(0, 0, 0, 0.35);
}

.page-investment .inv-hero__title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  color: var(--inv-color-primary);
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
}

.page-investment .inv-hero__subtitle {
  display: inline-block;
  font-size: clamp(0.9rem, 1.5vw, 1rem);
  font-weight: 500;
  color: var(--inv-color-text-light);
  letter-spacing: 0.2em;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}

/* --------------------------------------------------------------
   Step Diagram
   Purpose: 3ステップの可視化
-------------------------------------------------------------- */
.page-investment .inv-step-diagram {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(1rem, 4vw, 3rem);
  flex-wrap: wrap;
  margin-top: 1rem;
}

.page-investment .inv-step-diagram img {
  width: min(720px, 100%);
  height: auto;
  display: block;
}

@media (max-width: 600px) {
  .page-investment .inv-step-diagram {
    flex-direction: column;
    gap: 2rem;
  }

  .page-investment .inv-step__arrow {
    transform: rotate(90deg);
  }
}

.page-investment .inv-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.page-investment .inv-step__icon {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(11, 75, 107, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--inv-color-primary);
  box-shadow: 0 10px 20px rgba(11, 75, 107, 0.05);
}

.page-investment .inv-step__label {
  font-weight: 600;
  color: var(--inv-color-primary);
  font-size: 1rem;
  margin: 0;
}

.page-investment .inv-step__arrow {
  font-size: 1.5rem;
  color: #cbd5e1;
  font-weight: 300;
}

/* --------------------------------------------------------------
   Main Content Wrapper (Existing Content)
   Purpose: 既存記事の読みやすさ向上
-------------------------------------------------------------- */
.page-investment .inv-content-wrapper {
  padding-block: 0 5rem !important;
}

/* Typography for content inside wrapper */
.page-investment .inv-content-wrapper h2 {
  font-size: clamp(1.8rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  margin-top: 3rem !important;
  margin-bottom: 2.5rem !important;
  padding-top: 1.2rem !important;
  padding-bottom: 1.2rem !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em !important;
}

.page-investment .inv-content-wrapper h3 {
  font-size: clamp(1.4rem, 2.5vw, 1.6rem) !important;
  color: var(--inv-color-primary) !important;
  margin-top: 4rem !important;
  margin-bottom: 1.8rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.page-investment .inv-content-wrapper p,
.page-investment .inv-content-wrapper li {
  font-size: 1.2rem !important;
  color: var(--inv-color-text) !important;
  line-height: 1.9 !important;
  margin-bottom: 2rem !important;
}

/* Remove gap below labels in cards */
.page-investment .ovl-card h3,
.page-investment .ovl-card--reason h3,
.page-investment .ovl-card-merit h3 {
  margin-top: 0 !important;
}

/* Card layout utility for Gutenberg columns/groups */
.page-investment .inv-grid-wrapper .wp-block-columns {
  gap: 2rem !important;
}

.page-investment .inv-grid-wrapper .wp-block-column {
  background: #fff;
  border-radius: var(--inv-radius-card);
  padding: 2rem;
  border: 1px solid rgba(0, 0, 0, 0.03);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.01);
}

/* --------------------------------------------------------------
   Anxiety & Footer
-------------------------------------------------------------- */
.page-investment .inv-anxiety {
  background-color: #f6f9fc;
}

.page-investment .inv-card--anxiety {
  background: #fff;
  border-radius: var(--inv-radius-card);
  padding: 2.5rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.page-investment .inv-card__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.page-investment .inv-card__title {
  font-size: 1.25rem;
  color: var(--inv-color-primary);
  margin: 0;
  font-weight: 600;
}

.page-investment .inv-card__text {
  line-height: 1.7;
  margin: 0;
}

.page-investment .inv-grid-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (max-width: 768px) {
  .page-investment .inv-grid-2col {
    grid-template-columns: 1fr;
  }
}

.page-investment .inv-footer-nav {
  padding-block: 0;
}

.page-investment .wp-block-html:has(.inv-footer-nav) {
  margin-block: 0;
}

.page-investment .inv-footer-nav .inv-container:has(> .inv-nav-card:nth-child(2)) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: stretch;
}

.page-investment .inv-footer-nav .inv-container:has(> .inv-nav-card:nth-child(2)) .inv-nav-card {
  max-width: none;
  margin-inline: 0;
  height: 100%;
}

@media (max-width: 768px) {
  .page-investment .inv-footer-nav .inv-container:has(> .inv-nav-card:nth-child(2)) {
    grid-template-columns: 1fr;
    gap: clamp(1.25rem, 4vw, 2rem);
  }

  .page-investment .inv-footer-nav .inv-container:has(> .inv-nav-card:nth-child(2)) .inv-nav-card {
    height: auto;
  }
}

.page-investment .inv-footer-nav .inv-nav-card {
  display: flex;
  flex-direction: column;
  padding: 2rem 2rem 0rem;
}

.page-investment .inv-footer-nav .inv-nav-card__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
}

.page-investment .inv-footer-nav p:not(.inv-nav-card__text):empty,
.page-investment .inv-footer-nav p:not(.inv-nav-card__text):has(> br:only-child) {
  display: none;
}

.page-investment .inv-footer-nav .inv-nav-card__label {
  margin-bottom: 0;
}

.page-investment .inv-footer-nav .inv-nav-card__title {
  margin: 0;
}

.page-investment .inv-footer-nav .inv-nav-card__text {
  font-size: 1.0rem !important;
  text-align: left;
}

.page-investment .inv-nav-card {
  display: block;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 3rem;
  text-align: center;
  text-decoration: none;
  max-width: 700px;
  margin-inline: auto;
  transition: all 0.3s ease;
}

.page-investment .inv-nav-card:hover {
  border-color: var(--inv-color-primary);
  box-shadow: 0 20px 50px rgba(11, 75, 107, 0.08);
}

.page-investment .inv-nav-card__label {
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  padding: 0.25rem 0.75rem;
  background: #f1f5f9;
  color: var(--inv-color-text-light);
  border-radius: 99px;
  margin-bottom: 1.5rem;
  display: inline-block;
}

.page-investment .inv-nav-card__title {
  font-size: 1.6rem;
  color: var(--inv-color-primary);
  margin: 0 0 1rem;
}

.page-investment .inv-nav-card__text {
  color: var(--inv-color-text-light);
  font-size: 1rem;
  margin: 0;
}

/* --------------------------------------------------------------
   Utility: Vertical Merits List (.inv-merits-list)
   Targeting actual DOM: .ovl-grid and .ovl-card-merit
-------------------------------------------------------------- */
.page-investment .inv-merits-list .ovl-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 3rem !important;
  margin-block: 2rem !important;
}

.page-investment .inv-merits-list .ovl-card-merit {
  width: 100% !important;
  max-width: 720px !important;
  margin-inline: auto !important;
  margin: 0 !important;

  /* Reset Card Style for List Look */
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;

  position: relative !important;
  padding: 0 0 2.5rem 5rem !important;
  /* Space for large number */
  display: block !important;
}

.page-investment .inv-merits-list .ovl-card-merit:last-child {
  border-bottom: none !important;
}

/* Numbering */
.page-investment .inv-merits-list .ovl-grid {
  counter-reset: merit-counter;
}

.page-investment .inv-merits-list .ovl-card-merit::before {
  counter-increment: merit-counter;
  content: "0" counter(merit-counter);

  position: absolute !important;
  left: 0;
  top: -0.5rem;

  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--inv-color-primary, #0b4b6b);
  opacity: 0.25;
  line-height: 1;
}

/* Typography Inside Merits */
.page-investment .inv-merits-list .ovl-card-merit h3 {
  font-size: 1.5rem !important;
  margin-top: 0 !important;
  margin-bottom: 0.75rem !important;
  color: var(--inv-color-primary, #0b4b6b);
  font-weight: 700 !important;
}

.page-investment .inv-merits-list .ovl-card-merit p {
  margin: 0 0 1rem !important;
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text, #374151);
}

.page-investment .inv-merits-list .ovl-card-merit p.ovl-card-label {
  margin-bottom: 0 !important;
}

.page-investment .inv-merits-list .ovl-card-merit p:last-child {
  margin-bottom: 0 !important;
}

/* Mobile: Numbers on Top */
@media (max-width: 600px) {
  .page-investment .inv-merits-list .ovl-card-merit {
    padding-left: 0 !important;
    padding-top: 3.5rem !important;
  }

  .page-investment .inv-merits-list .ovl-card-merit::before {
    top: 0;
    left: 0;
    font-size: 2.5rem;
  }
}

/* --------------------------------------------------------------
   Utility: Styled Accordion List (.inv-accordion-list)
   Aligns with the design of .inv-merits-list
-------------------------------------------------------------- */
.page-investment .inv-accordion-list {
  margin-block: 3rem !important;
}

.page-investment .inv-accordion-list details.ovl-accordion-item {
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  padding-block: 1.5rem !important;
  background: transparent !important;
  margin-bottom: 0 !important;
}

.page-investment .inv-accordion-list details.ovl-accordion-item:last-child {
  border-bottom: none !important;
}

.page-investment .inv-accordion-list summary {
  list-style: none !important;
  cursor: pointer;
  display: flex !important;
  justify-content: space-between;
  align-items: center;

  /* Text Style: Match Merits H3 */
  font-size: 1.25rem !important;
  color: var(--inv-color-primary, #0b4b6b);
  font-weight: 700 !important;
  line-height: 1.4;
  padding: 0.5rem 0 !important;
}

/* Hide default marker for webkit */
.page-investment .inv-accordion-list summary::-webkit-details-marker {
  display: none !important;
}

/* Custom Icon for Accordion */
.page-investment .inv-accordion-list summary::after {
  content: "+";
  font-size: 1.5rem;
  font-weight: 300;
  color: #cbd5e1;
  transition: transform 0.3s ease;
}

.page-investment .inv-accordion-list details[open] summary::after {
  transform: rotate(45deg);
}

.page-investment .inv-accordion-list .ovl-accordion-content,
.page-investment .inv-accordion-list p {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text, #374151);
}

/* --------------------------------------------------------------
   Improvement: Enhanced Accordion UI
   Focus: Interactivity and Content Visibility
-------------------------------------------------------------- */
.page-investment .inv-accordion-list details.ovl-accordion-item {
  transition: all 0.3s ease !important;
  border-radius: 12px !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.08) !important;
}

/* Hover: Visual feedback that it's clickable */
.page-investment .inv-accordion-list details.ovl-accordion-item:hover {
  background-color: rgba(11, 75, 107, 0.02) !important;
}

/* Active (Open) State: Clear container for internal text */
.page-investment .inv-accordion-list details[open] {
  background-color: rgba(11, 75, 107, 0.04) !important;
  border-bottom-color: rgba(11, 75, 107, 0.2) !important;
}

.page-investment .inv-accordion-list summary {
  padding: 1.5rem !important;
  /* Increase click area */
}

/* Better indicator text */
.page-investment .inv-accordion-list summary::after {
  content: "詳細を見る +";
  /* "詳細を見る +" */
  font-size: 0.8rem !important;
  letter-spacing: 0.05em !important;
  color: #94a3b8 !important;
  font-weight: 500 !important;
  background: #fff;
  padding: 0.4rem 0.8rem;
  border-radius: 99px;
  border: 1px solid #e2e8f0;
  margin-left: 1rem;
}

.page-investment .inv-accordion-list details[open] summary::after {
  content: "閉じる −";
  /* "閉じる" */
  color: var(--inv-color-primary) !important;
  border-color: var(--inv-color-primary) !important;
}

.page-investment .inv-accordion-list .ovl-accordion-content,
.page-investment .inv-accordion-list p {
  padding-inline: 1.5rem !important;
  /* Align with summary padding */
}

/* --------------------------------------------------------------
   Utility: Reassurance Cards (.inv-reassurance-list)
   Targeting: .ovl-grid and .ovl-card-reassure
-------------------------------------------------------------- */
.page-investment .inv-reassurance-list .ovl-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 2rem !important;
  margin-block: 3rem !important;
}

.page-investment .inv-reassurance-list .ovl-card-reassure {
  background: #fff !important;
  border: 1px solid rgba(11, 75, 107, 0.08) !important;
  border-radius: 20px !important;
  padding: 3rem 2.5rem !important;
  box-shadow: 0 10px 40px rgba(11, 75, 107, 0.04) !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: left !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.page-investment .inv-reassurance-list .ovl-card-reassure:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 20px 50px rgba(11, 75, 107, 0.08) !important;
}

/* Icon Container */
.page-investment .inv-reassurance-list .ovl-card-reassure .ovl-icon {
  width: 64px !important;
  height: 64px !important;
  background: #f0f7fb !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 1.5rem !important;
  color: var(--inv-color-primary) !important;
}

.page-investment .inv-reassurance-list .ovl-card-reassure .ovl-icon svg {
  width: 32px !important;
  height: 32px !important;
}

/* Typography */
.page-investment .inv-reassurance-list .ovl-card-reassure h3 {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  margin-bottom: 1rem !important;
  line-height: 1.4 !important;
}

.page-investment .inv-reassurance-list .ovl-card-reassure p {
  font-size: 1rem !important;
  line-height: 1.7 !important;
  color: var(--inv-color-text) !important;
  margin: 0 !important;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
  .page-investment .inv-reassurance-list .ovl-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --------------------------------------------------------------
   Unified Design for All Investment Pages
   Automatically apply styles to standard card patterns
-------------------------------------------------------------- */

/* Apply List design to ANY grid with Reason/Merit cards on Investment pages */
.page-investment .ovl-grid:has(.ovl-card--reason),
.page-investment .ovl-grid:has(.ovl-card-merit) {
  display: flex !important;
  flex-direction: column !important;
  gap: 3rem !important;
  margin-block: 2rem !important;
  counter-reset: merit-counter;
}

.page-investment .ovl-card--reason,
.page-investment .ovl-card-merit {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  position: relative !important;
  padding: 0 0 2.5rem 5rem !important;
  display: block !important;
}

.page-investment .ovl-card--reason:last-child,
.page-investment .ovl-card-merit:last-child {
  border-bottom: none !important;
}

.page-investment .ovl-card--reason::before,
.page-investment .ovl-card-merit::before {
  counter-increment: merit-counter;
  content: "0" counter(merit-counter);
  position: absolute !important;
  left: 0;
  top: -0.5rem;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--inv-color-primary, #0b4b6b);
  opacity: 0.25;
  line-height: 1;
}

@media (max-width: 600px) {
  .page-investment .ovl-card--reason,
  .page-investment .ovl-card-merit {
    padding: 0 0 2rem 2.5rem !important;
  }

  .page-investment .ovl-card--reason::before,
  .page-investment .ovl-card-merit::before {
    font-size: 2.4rem;
    top: -0.25rem;
  }
}

@media (max-width: 700px) {
  .page-investment .ovl-grid--2 .ovl-card--reason,
  .page-investment .inv-merits-list .ovl-card-merit {
    padding: 2.25rem 0 2rem 0 !important;
  }

  .page-investment .ovl-grid--2 .ovl-card--reason::before,
  .page-investment .inv-merits-list .ovl-card-merit::before {
    position: static !important;
    display: block;
    margin-bottom: 0.6rem;
    font-size: 2rem;
  }
}

/* Typography Consistency */
.page-investment h3 {
  font-size: 1.5rem !important;
  margin-bottom: 0.75rem !important;
  color: var(--inv-color-primary) !important;
}

/* Reassurance Cards Auto-apply */
.page-investment .ovl-card-reassure {
  background: #fff !important;
  border: 1px solid rgba(11, 75, 107, 0.08) !important;
  border-radius: 20px !important;
  padding: 3rem 2.5rem !important;
  box-shadow: 0 10px 40px rgba(11, 75, 107, 0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

/* Accordion Style Auto-apply */
.page-investment .ovl-accordion-item {
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  padding-block: 1.5rem !important;
}

/* --------------------------------------------------------------
   Unified Design: Handling different card class names
   Targeting: .ovl-card-grid and .ovl-card (used in chunanbu)
-------------------------------------------------------------- */

/* Apply List design to .ovl-card-grid on Investment pages */
.page-investment .ovl-card-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 3rem !important;
  margin-block: 2rem !important;
  max-width: 920px !important;
  /* Expanded from 840px for better balance */
  margin-inline: auto !important;
  counter-reset: merit-counter;
}

/* Also ensure .ovl-grid--2 (okinawa) and .inv-merits-list use the same logic */
.page-investment .ovl-grid--2,
.page-investment .inv-merits-list .ovl-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 3rem !important;
  margin-block: 2rem !important;
  max-width: 720px !important;
  /* Expanded width */
  /* margin-inline: auto !important;*/
  counter-reset: merit-counter;
}

/* Base Card -> List Style transformation */
.page-investment .ovl-card-grid .ovl-card,
.page-investment .ovl-grid--2 .ovl-card--reason,
.page-investment .inv-merits-list .ovl-card-merit {
  width: 100% !important;
  max-width: 720px !important;
  margin-inline: auto !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  position: relative !important;
  padding: 0 0 2.5rem 5rem !important;
  display: block !important;
}

.page-investment .ovl-card-grid .ovl-card::before,
.page-investment .ovl-grid--2 .ovl-card--reason::before,
.page-investment .inv-merits-list .ovl-card-merit::before {
  counter-increment: merit-counter;
  content: "0" counter(merit-counter);
  position: absolute !important;
  left: 0;
  top: -0.5rem;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--inv-color-primary, #0b4b6b);
  opacity: 0.25;
  line-height: 1;
}

@media (max-width: 700px) {
  .page-investment .ovl-card-grid .ovl-card,
  .page-investment .ovl-grid--2 .ovl-card--reason,
  .page-investment .ovl-grid--2 .ovl-card-merit,
  .page-investment .inv-merits-list .ovl-card-merit,
  .page-investment .ovl-card-merit {
    padding: 2.25rem 0 2rem 0 !important;
  }

  .page-investment .ovl-card-grid .ovl-card::before,
  .page-investment .ovl-grid--2 .ovl-card--reason::before,
  .page-investment .ovl-grid--2 .ovl-card-merit::before,
  .page-investment .inv-merits-list .ovl-card-merit::before,
  .page-investment .ovl-card-merit::before {
    position: static !important;
    display: block;
    margin-bottom: 0.6rem;
    font-size: 2rem;
  }
}

@media (max-width: 700px) {
  .page-okinawa-investment .ovl-anxiety-cards {
    width: 100%;
    margin-inline: 0;
  }

  .page-okinawa-investment .ovl-card--alert {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
}

@media (max-width: 700px) {
  .page-okinawa-investment.page-investment .ovl-section.ovl-anxieties {
    width: 100% !important;
    max-width: none !important;
    padding-inline: clamp(0.75rem, 3vw, 1.5rem) !important;
    box-sizing: border-box;
  }
}

/* Chunanbu investment: override global section width rule. */
body.page-chunanbu-investment.page-investment section.ovl-section.ovl-section--tint:not(.ovl-hero) {
  width: min(946px, 92vw) !important;
  max-width: 946px !important;
  margin-inline: auto !important;
}

.page-investment .ovl-card-grid .ovl-card:last-child {
  border-bottom: none !important;
}

/* --------------------------------------------------------------
   Final Polish: Automatic Styling for Anxiety/Risk Sections
   Targeting the hardcoded classes in the PHP templates
-------------------------------------------------------------- */
.page-investment .inv-anxiety .inv-card--anxiety {
  background: #fff !important;
  border: 1px solid rgba(11, 75, 107, 0.08) !important;
  border-radius: 20px !important;
  padding: 3rem 2.5rem !important;
  box-shadow: 0 10px 40px rgba(11, 75, 107, 0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  transition: transform 0.3s ease !important;
}

.page-investment .inv-anxiety .inv-card--anxiety:hover {
  transform: translateY(-5px) !important;
}

.page-investment .inv-anxiety .inv-card__title {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  margin-top: 1rem !important;
}

.page-investment .inv-anxiety .inv-card__icon {
  width: 48px !important;
  height: 48px !important;
  color: var(--inv-color-primary) !important;
}

/* --------------------------------------------------------------
   Unified Design: Additional Merits (Accordion Numbering)
   Aligning with the 01-04 merits numbering style
-------------------------------------------------------------- */
.page-investment .inv-accordion-list {
  counter-reset: merit-counter 4;
  /* Start from 05 */
  margin-block: 2.5rem !important;
}

.page-investment .inv-accordion-list details.ovl-accordion-item {
  position: relative !important;
  padding-left: 5rem !important;
  border: none !important;
  border-bottom: 0.8px solid rgba(11, 75, 107, 0.1) !important;
  background: transparent !important;
  transition: none !important;
  padding-bottom: 2.5rem !important;
  margin-bottom: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.page-investment .inv-accordion-list details.ovl-accordion-item::before {
  counter-increment: merit-counter;
  content: "0" counter(merit-counter);

  position: absolute !important;
  left: 0;
  top: 2rem;
  /* Adjusted for label */

  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--inv-color-primary, #0b4b6b);
  opacity: 0.2;
  line-height: 1;
  pointer-events: none;
}

.page-investment .inv-accordion-list summary {
  padding-block: 1.2rem 0.5rem !important;
  padding-right: 1.5rem !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  position: relative !important;
  list-style: none !important;
  cursor: pointer;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  /* Remove tap highlight on mobile */
}

.page-investment summary:focus,
.page-investment summary:active,
.page-investment details:focus,
.page-investment details summary:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Remove automated labels to allow manual management in editor */

/* Adjust layout for open state to keep the number visible */
.page-investment .inv-accordion-list details[open] {
  background-color: transparent !important;
}

.page-investment .inv-accordion-list .ovl-accordion-content,
.page-investment .inv-accordion-list details p {
  padding-left: 0 !important;
  padding-top: 0.5rem !important;
  /* Reduced to match simple list feel */
  padding-bottom: 0.5rem !important;
  margin-bottom: 0.5rem !important;
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text, #374151);
}

/* Mobile: Move number up like in merit list */
@media (max-width: 600px) {
  .page-investment .inv-accordion-list details.ovl-accordion-item {
    padding-left: 0 !important;
    padding-top: 1.5rem !important;
  }

  .page-investment .inv-accordion-list details.ovl-accordion-item::before {
    top: 0.5rem;
    font-size: 2.5rem;
  }
}

/* --------------------------------------------------------------
   Unified Accordion Design (Handling Variant Classes)
   Aligning and adding numbering to okinawa/chunanbu pages
-------------------------------------------------------------- */

/* Catch any details that looks like a merit accordion on investment pages */
.page-investment details.ovl-accordion,
.page-investment details.ovl-accordion__item,
.page-investment .inv-accordion-list details {
  position: relative !important;
  padding-left: 5rem !important;
  padding-bottom: 1rem !important;
  /* Space for large number */
  border: none !important;
  border-bottom: 1px solid rgba(11, 75, 107, 0.1) !important;
  background: transparent !important;
  transition: all 0.3s ease !important;
  margin-bottom: 0 !important;
}

/* Ensure numbering counter is reset on the container */
.page-investment .ovl-container:has(details.ovl-accordion),
.page-investment .ovl-container:has(details.ovl-accordion__item),
.page-investment .inv-accordion-list {
  counter-reset: merit-counter 4;
  /* Standard merits go to 04, so we start at 05 */
  margin-block: 4rem !important;
}

.page-investment details.ovl-accordion::before,
.page-investment details.ovl-accordion__item::before,
.page-investment .inv-accordion-list details::before {
  counter-increment: merit-counter;
  content: counter(merit-counter, decimal-leading-zero);
  position: absolute !important;
  left: 0;
  top: 1rem;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--inv-color-primary, #0b4b6b);
  opacity: 0.2;
  line-height: 1;
  pointer-events: none;
  margin: 0 !important;
  padding: 0 !important;
}

.page-investment details.ovl-accordion summary,
.page-investment details.ovl-accordion__item summary,
.page-investment .inv-accordion-list summary {
  padding-top: 1.5rem !important;
  padding-bottom: 1.2rem !important;
  padding-right: 0 !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  display: flex !important;
  flex-direction: column !important;
  /* Label, Title, Button stack vertically */
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 0 !important;
  list-style: none !important;
  cursor: pointer;
}

/* Visual cues for expandability (consistent with investment page) */
.page-investment details.ovl-accordion summary::after,
.page-investment details.ovl-accordion__item summary::after,
.page-investment .inv-accordion-list summary::after {
  content: "詳細を見る +";
  font-size: 0.8rem !important;
  letter-spacing: 0.05em !important;
  color: #94a3b8 !important;
  font-weight: 500 !important;
  background: #fff;
  padding: 0.4rem 0.8rem;
  border-radius: 99px;
  border: 1px solid #e2e8f0;
  white-space: nowrap;
  flex: 0 0 auto;
  border: 1px solid #e2e8f0;
  white-space: nowrap;
  flex: 0 0 auto;
  margin-left: 0;
  /* 左揃えのため左方向の空間を削除 */
  margin-top: 0.5rem;
  /* タイトルの下に配置される際の隙間 */
  margin-bottom: 0.5rem;
}

/* On wider screens, we can keep it aligned to the right, but for safety in flex, 
   we let flex-box handle it via justify-content: space-between */

.page-investment details[open].ovl-accordion summary::after,
.page-investment details[open].ovl-accordion__item summary::after,
.page-investment .inv-accordion-list details[open] summary::after {
  content: "閉じる -";
}

/* Background when open */
.page-investment details[open].ovl-accordion,
.page-investment details[open].ovl-accordion__item {
  background-color: transparent !important;
}

/* Typography for body text to match */
.page-investment .ovl-accordion-body,
.page-investment .ovl-accordion__body {
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text, #374151);
}

/* Accordion paragraphs: remove margins (orange) and keep spacing via padding. */
.page-investment details.ovl-accordion>p,
.page-investment details.ovl-accordion__item>p,
.page-investment .inv-accordion-list details>p {
  margin: 0 !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.4rem !important;
}

.page-investment details.ovl-accordion>p:last-child,
.page-investment details.ovl-accordion__item>p:last-child,
.page-investment .inv-accordion-list details>p:last-child {
  padding-bottom: 0 !important;
}

/* Reset p tag styles when accidentally hidden inside summary by block editor */
.page-investment summary p {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline;
  /* Keep it on the same line as titles if needed */
}

/* Mobile adjustments */
@media (max-width: 600px) {

  .page-investment details.ovl-accordion,
  .page-investment details.ovl-accordion__item {
    padding-left: 0 !important;
    padding-top: 3.5rem !important;
  }

  .page-investment details.ovl-accordion::before,
  .page-investment details.ovl-accordion__item::before {
    top: 0.5rem;
    font-size: 2.5rem;
  }
}

/* --------------------------------------------------------------
   New Label Styles (Reason / Accordion)
   Added to match the refined design of /investment
-------------------------------------------------------------- */

.ovl-reason-label,
.ovl-accordion-label {
  display: block;
  font-size: 1.05rem;
  color: #374151;
  font-weight: 300;
  letter-spacing: 0.05em;
  margin-bottom: 0px !important;
  text-transform: uppercase;
  line-height: 1.2;
}

.ovl-accordion-label {
  margin-bottom: 0.2rem;
  /* Tighter for accordions */
}

/* Adjust summary padding if labels are added inside */
.page-investment .inv-accordion-list summary,
.page-investment details.ovl-accordion summary,
.page-investment details.ovl-accordion__item summary {
  padding-top: 1.5rem !important;
  padding-bottom: 1.2rem !important;
  align-items: flex-start !important;
  flex-direction: column !important;
  gap: 0 !important;
}

/* Allow manual labels in accordions */
.page-investment summary .ovl-accordion-label {
  display: block;
}

/* --------------------------------------------------------------
   Unified Container Width (Investment Pages)
   Adjusting max-width to 1100px for consistency
-------------------------------------------------------------- */
.page-investment .inv-container,
.page-investment .ovl-container,
.page-investment .container {
  max-width: 1100px !important;
  width: 95% !important;
  /* Allow some breathing room on edge */
  margin-inline: auto !important;
}

/* Ensure content within these pages also follows the 1100px limit */
.page-investment .wp-site-blocks>* {
  max-width: 1100px !important;
  width: 95% !important;
}

/* Specific overrides for sections to ensure background stays full width 
   but content is centered and limited */
body:not(.page-chunanbu-investment):not(.page-id-315) .page-investment .inv-section:not(.ovl-hero),
body:not(.page-chunanbu-investment):not(.page-id-315) .page-investment .ovl-section:not(.ovl-hero) {
  width: 100% !important;
  max-width: none !important;
}

/* Ensure ovl-hero can break out to full viewport width */
.page-investment .ovl-section.ovl-hero {
  width: 100vw !important;
  max-width: none !important;
}

/* --------------------------------------------------------------
   Unified Design: Anxiety Pre-emption (.ovl-anxieties)
   Redesign for calm sincerity and high readability
 -------------------------------------------------------------- */
.page-investment .ovl-anxieties,
.page-investment .ovl-anxietie,
.page-investment .ovl-section--tint:has(.ovl-reassure-grid),
.page-investment .ovl-section:has(.ovl-reassure-grid) {
  padding-block: 2rem !important;
  padding-inline: 4rem !important;
  /* Ensure gray background is wider than cards */
  background-color: #f8fafc !important;
  /* Subtle background to separate from other sections */
  margin-block: 1.5rem !important;
  border-radius: 40px !important;
}

.ovl-anxiety-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 4rem;
}

.ovl-anxiety-header h2 {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  margin-bottom: 1.5rem !important;
}

.ovl-anxiety-header p {
  font-size: 1.1rem !important;
  line-height: 1.8 !important;
  color: var(--inv-color-text-light) !important;
}

/* Overview Figure: Handling the 3-anxiety overview image */
.ovl-figure--assurance {
  max-width: 800px;
  margin: 0 auto 5rem;
  padding: 2rem;
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 20px 50px rgba(11, 75, 107, 0.05);
}

.ovl-figure--assurance img {
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* Okinawa investment: align the overview image with left-aligned sections. */
.page-okinawa-investment .ovl-figure--assurance {
  width: min(1100px, 95vw);
  max-width: 1100px;
  margin: 0 0 5rem;
}

.page-okinawa-investment.page-investment .ovl-section.ovl-anxieties {
  width: min(1100px, 95vw) !important;
  max-width: 1100px !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
}

.page-okinawa-investment.page-investment .ovl-section.ovl-anxieties > .ovl-container {
  padding-inline: clamp(1.5rem, 4vw, 3.5rem) !important;
  box-sizing: border-box;
}

.page-okinawa-investment.page-investment .ovl-section.ovl-anxieties:not(.ovl-hero) {
  width: min(1100px, 95vw) !important;
  max-width: 1100px !important;
  margin-inline: auto !important;
}

.page-id-321 .ovl-section.ovl-anxieties {
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: clamp(0.75rem, 3vw, 1.5rem) !important;
  box-sizing: border-box;
}

.page-chunanbu-investment .ovl-section.ovl-anxieties {
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: clamp(0.75rem, 3vw, 1.5rem) !important;
  box-sizing: border-box;
}

.page-chunanbu-investment .ovl-section.ovl-section--tint {
  width: min(946px, 92vw) !important;
  max-width: 946px !important;
  margin-inline: auto !important;
  padding-inline: clamp(0.75rem, 3vw, 1.5rem) !important;
  box-sizing: border-box;
}

.page-chunanbu-investment.page-investment .ovl-section.ovl-section--tint:not(.ovl-hero) {
  width: min(946px, 92vw) !important;
  max-width: 946px !important;
  margin-inline: auto !important;
}

.page-chunanbu-investment .ovl-section.ovl-section--tint > .ovl-container {
  width: min(946px, 95vw);
  max-width: 946px;
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 4vw, 3.5rem) !important;
  box-sizing: border-box;
}

/* Cards Layout: Changed to 1-column stack for better readability of long text */
.page-investment .ovl-anxiety-cards,
.page-investment .ovl-reassure-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 3rem !important;
  max-width: 920px !important;
  /* Expanded from 840px to balance with 1100px container */
  margin: 0 auto !important;
  counter-reset: anxiety-counter !important;
}

/* Individual Alert Card: Optimized for wide layout */
.page-investment .ovl-card--alert,
.page-investment .ovl-card--reassure {
  background: #ffffff !important;
  border: 1px solid rgba(11, 75, 107, 0.08) !important;
  border-radius: 32px !important;
  padding: 3.5rem 4rem !important;
  /* Slightly adjusted padding */
  box-shadow: 0 10px 40px rgba(11, 75, 107, 0.03) !important;
  display: block !important;
  position: relative !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  text-align: left !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.page-investment .ovl-card--alert:hover,
.page-investment .ovl-card--reassure:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 20px 60px rgba(11, 75, 107, 0.06) !important;
}

/* Number Indicator (Matching Merit Style) */
.page-investment .ovl-card--alert::before,
.page-investment .ovl-card--reassure::before {
  counter-increment: anxiety-counter !important;
  content: "0" counter(anxiety-counter) !important;
  position: absolute !important;
  top: 3.5rem !important;
  right: 4rem !important;
  font-family: 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 4rem !important;
  font-weight: 300 !important;
  color: var(--inv-color-primary) !important;
  opacity: 0.05 !important;
  line-height: 1 !important;
  pointer-events: none !important;
}

/* Icon Area Inside Alert Card */
.page-investment .ovl-card-icons,
.page-investment .ovl-card__icon {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin-bottom: 2rem !important;
}

.page-investment .ovl-card-icons svg,
.page-investment .ovl-card__icon svg {
  width: 24px !important;
  height: 24px !important;
  color: var(--inv-color-primary) !important;
  background: #f0f7fb !important;
  padding: 10px !important;
  border-radius: 12px !important;
  box-sizing: content-box !important;
}

.page-investment .ovl-card-icons span,
.page-investment .ovl-card__icon span,
.page-investment .ovl-card__icon figcaption {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: var(--inv-color-primary) !important;
  letter-spacing: 0.05em !important;
  background: #f0f7fb !important;
  padding: 0.3rem 1rem !important;
  border-radius: 99px !important;
  display: inline-block !important;
  margin: 0 !important;
}

/* Typography Inside Alert Card */
.page-investment .ovl-card--alert h3,
.page-investment .ovl-card--reassure h3 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--inv-color-primary) !important;
  margin-bottom: 2rem !important;
  line-height: 1.4 !important;
  padding-right: 5rem !important;
  /* Avoid overlapping with number */
}

.page-investment .ovl-card--alert p,
.page-investment .ovl-card--reassure p {
  font-size: 1.05rem !important;
  line-height: 1.9 !important;
  color: var(--inv-color-text) !important;
  margin-bottom: 1.5rem !important;
}

.page-investment .ovl-card--alert p:last-child,
.page-investment .ovl-card--reassure p:last-child {
  margin-bottom: 0 !important;
}

/* Mobile Adjustments */
@media (max-width: 768px) {

  .page-investment .ovl-anxieties,
  .page-investment .ovl-anxietie,
  .page-investment .ovl-section--tint:has(.ovl-reassure-grid),
  .page-investment .ovl-section:has(.ovl-reassure-grid) {
    padding-block: 2.5rem !important;
    padding-inline: 1.5rem !important;
    border-radius: 0 !important;
    margin-block: 1.5rem !important;
    background-color: #f8fafc !important;
  }

  .ovl-anxiety-header {
    margin-bottom: 3rem !important;
  }

  .ovl-anxiety-header h2 {
    font-size: 1.6rem !important;
  }

  .page-investment .ovl-anxiety-cards,
  .page-investment .ovl-reassure-grid {
    gap: 2rem !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .page-investment .ovl-card--alert,
  .page-investment .ovl-card--reassure {
    padding: 3rem 2rem !important;
    border-radius: 24px !important;
  }

  .page-investment .ovl-card--alert::before,
  .page-investment .ovl-card--reassure::before {
    top: 2rem !important;
    right: 2rem !important;
    font-size: 3rem !important;
  }

  .page-investment .ovl-card--alert h3,
  .page-investment .ovl-card--reassure h3 {
    font-size: 1.3rem !important;
    padding-right: 0 !important;
  }

  .ovl-figure--assurance {
    margin-bottom: 3rem !important;
    padding: 1rem !important;
    border-radius: 20px !important;
  }
}

/* Single property template styles (migrated from single-property.php) */
body.single-property main.property-single {
  margin-block: clamp(1rem, 2.5vw, 2rem);
  background: #f3f5f9;
  padding-block: clamp(0.6rem, 2vw, 1.2rem);
  padding-inline: clamp(0.6rem, 2vw, 1.2rem);
  overflow-x: hidden;
}

body.single-property main.property-single.alignwide {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
}

@media (max-width: 1024px) {
  body.single-property main.property-single.alignwide {
    margin-inline: 0;
    width: 100%;
    max-width: 100%;
  }
}

body.single-property {
  overflow-x: hidden;
}

body.single-property .wp-site-blocks {
  overflow-x: hidden;
}

body.single-property main.property-single .property-hero {
  background: #fff;
  border: 1px solid #d5dae5;
  border-radius: 10px;
  padding: clamp(1rem, 3vw, 1.8rem);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.04);
}

body.single-property main.property-single .property-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(220px, 2fr);
  gap: clamp(0.75rem, 3vw, 1.8rem);
  align-items: start;
  max-width: 100%;
}

body.single-property main.property-single .property-hero__badges {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

body.single-property main.property-single .property-hero__media,
body.single-property main.property-single .property-hero__info,
body.single-property main.property-single .property-entry,
body.single-property main.property-single .property-entry__main {
  min-width: 0;
  max-width: 100%;
}

body.single-property main.property-single .property-description :where(ul.has-list-bullet, ol.has-list-bullet),
body.single-property main.property-single .property-description :where(ul.has-list-bullet li, ol.has-list-bullet li) {
  font-size: 1rem;
  line-height: 1.6;
}

body.single-property main.property-single .property-description p {
  font-size: 1rem;
  line-height: 1.6;
}

body.single-property main.property-single .property-hero__badge {
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  color: #2c3a63;
  background: #eef1f7;
  padding: 0.15rem 0.65rem;
  border-radius: 999px;
}

body.single-property main.property-single .property-hero__badge.is-new {
  background: #fff4df;
  color: #c15600;
}

body.single-property main.property-single .property-hero__title {
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  margin: 0;
  color: #1a1f33;
}

body.single-property main.property-single .property-hero__location {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.3rem 0;
  color: #4d5775;
  font-size: 0.85rem;
}

body.single-property main.property-single .property-hero__structure {
  margin: 0 0 0.6rem;
  color: #6c738d;
  font-size: 0.85rem;
}

body.single-property main.property-single .property-detail__hero-media {
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

body.single-property main.property-single .property-detail__carousel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

body.single-property main.property-single .property-detail__carousel-main {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  aspect-ratio: 4 / 3;
}

body.single-property main.property-single .property-detail__carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: inherit;
  overflow: hidden;
}

body.single-property main.property-single .property-detail__carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

body.single-property main.property-single .property-detail__carousel-slide.is-active {
  opacity: 1;
}

body.single-property main.property-single .property-detail__carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(32, 41, 73, 0.8);
  border: none;
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
}

body.single-property main.property-single .property-detail__carousel-nav--prev {
  left: 10px;
}

body.single-property main.property-single .property-detail__carousel-nav--next {
  right: 10px;
}

body.single-property main.property-single .property-detail__carousel-counter {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  padding: 0.15rem 0.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
}

body.single-property main.property-single .property-detail__carousel-thumbs {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  padding-bottom: 0.2rem;
}

body.single-property main.property-single .property-detail__carousel-thumb {
  border: none;
  border-radius: 4px;
  padding: 2px;
  flex: 0 0 70px;
  height: 48px;
  background: #fff;
  cursor: pointer;
  position: relative;
  outline: none;
  box-shadow: none;
  transform: none;
}

body.single-property main.property-single .property-detail__carousel-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid transparent;
  box-sizing: border-box;
  pointer-events: none;
  transition: border-color 0.15s ease;
}

body.single-property main.property-single .property-detail__carousel-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}

body.single-property main.property-single .property-detail__carousel-thumb.is-active {
  transform: none;
  box-shadow: none;
}

body.single-property main.property-single .property-detail__carousel-thumb:focus,
body.single-property main.property-single .property-detail__carousel-thumb:focus-visible {
  outline: none;
  transform: none;
  box-shadow: none;
}

body.single-property main.property-single .property-detail__carousel-thumb.is-active::after,
body.single-property main.property-single .property-detail__carousel-thumb:focus::after,
body.single-property main.property-single .property-detail__carousel-thumb:focus-visible::after {
  border-color: #f58220;
}

body.single-property main.property-single .property-hero__summary-grid {
  border: 1px solid #d5dae5;
  border-radius: 6px;
  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body.single-property main.property-single .property-hero__summary-item {
  display: flex;
  align-items: center;
  padding: 0.45rem 0.7rem;
  border-bottom: 1px solid #e5e8f0;
  font-size: 0.85rem;
}

body.single-property main.property-single .property-hero__summary-item:last-child {
  border-bottom: none;
}

body.single-property main.property-single .property-hero__summary-item span {
  width: 38%;
  min-width: 140px;
  background: #f5f7fb;
  font-weight: 600;
  color: #202949;
  padding: 0.35rem 0.5rem;
  border-radius: 3px;
}

body.single-property main.property-single .property-hero__summary-item strong {
  flex: 1;
  margin-left: 0.6rem;
  color: #111a2c;
  font-size: 0.95rem;
  font-weight: 600;
}

body.single-property main.property-single .property-hero__summary-item--price strong {
  font-size: 1.2rem;
  color: #d04000;
  font-weight: 700;
}

body.single-property main.property-single .property-hero__catchcopy {
  border: 1px solid #d5dae5;
  border-radius: 6px;
  background: #fff;
  padding: 0.55rem 0.75rem;
  margin-top: 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

body.single-property main.property-single .property-hero__media .property-hero__catchcopy {
  margin: 0 0 0.6rem;
}

body.single-property main.property-single .property-hero__catchcopy span {
  font-size: 0.8rem;
  font-weight: 600;
  color: #1f2438;
  display: none;
}

body.single-property main.property-single .property-hero__catchcopy p {
  margin: 0;
  font-size: 0.95rem;
  color: #0f1539;
  line-height: 1.4;
}

body.single-property main.property-single .property-hero__notice {
  margin-top: 0.8rem;
  border: 1px solid #f5c27b;
  background: #fff6e7;
  border-radius: 6px;
  padding: 0.6rem;
  font-weight: 600;
  color: #7a4b00;
  font-size: 0.9rem;
}

body.single-property main.property-single .property-hero__stats {
  display: none;
}

body.single-property main.property-single .property-hero__media-placeholder {
  border: 1px dashed #c7cedf;
  border-radius: 6px;
  padding: 2rem;
  text-align: center;
  color: #6c738d;
}

body.single-property main.property-single .property-entry {
  margin-top: clamp(1rem, 3vw, 2rem);
  display: grid;
  gap: clamp(0.75rem, 3vw, 1.5rem);
  max-width: 100%;
}

body.single-property main.property-single .property-entry.has-sidebar {
  grid-template-columns: minmax(0, 3fr) minmax(200px, 250px);
  align-items: start;
}

body.single-property main.property-single .property-entry__side {
  position: sticky;
  top: 90px;
}

body.single-property main.property-single .property-card {
  background: #fff;
  border: 1px solid #d5dae5;
  border-radius: 8px;
  padding: clamp(0.85rem, 3vw, 1.4rem);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.035);
  max-width: 100%;
}

body.single-property main.property-single .property-entry__main>.property-card {
  margin-block-end: clamp(0.75rem, 2vw, 1.25rem);
}

body.single-property main.property-single .property-entry__main>.property-card:last-child {
  margin-block-end: 0;
}

body.single-property main.property-single .property-card--summary {
  background: #f0fafb;
  overflow: hidden;
}

body.single-property main.property-single .property-card--summary .property-summary {
  font-size: 0.95rem;
  line-height: 1.65;
  color: #1f2438;
}

body.single-property main.property-single .property-card--summary .property-summary pre {
  font-size: 1rem;
  line-height: 1.7;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: hidden;
}

body.single-property main.property-single .property-section-title {
  margin: 0 0 0.6rem;
  font-size: 1.05rem;
  color: #1f2438;
  border-bottom: 1px solid #e4e7ef;
  padding-bottom: 0.3rem;
}

body.single-property main.property-single .property-summary--inline {
  margin-bottom: 1rem;
}

body.single-property main.property-single .property-summary--inline .property-summary__body {
  font-size: 0.85rem;
  line-height: 1.6;
  color: #1f2438;
}

body.single-property main.property-single .property-summary--inline .property-summary__body pre,
body.single-property main.property-single .property-summary__body pre {
  font-size: 1rem;
  line-height: 1.7;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: hidden;
}

body.single-property main.property-single .property-table-wrapper {
  width: 100%;
  overflow-x: auto;
}

body.single-property main.property-single .property-table {
  width: 100%;
  display: table !important;
  border-collapse: collapse;
  table-layout: fixed;
  overflow-x: visible !important;
  border: 1px solid #e4e7ef;
}

body.single-property main.property-single .property-table__section th {
  background: #f0f2f7;
  font-size: 0.95rem;
  text-align: left;
  padding: 0.6rem 0.8rem;
  border: 1px solid #d9dfe9;
  color: #1f253a;
  width: auto;
}

body.single-property main.property-single .property-table tr {
  border-bottom: 1px solid #e4e7ef;
}

body.single-property main.property-single .property-table tr:last-child {
  border-bottom: none;
}

body.single-property main.property-single .property-table tr:not(.property-table__section) th {
  width: 18%;
  background: #f8f9fc;
  font-weight: 600;
  color: #2d3558;
  padding: 0.5rem 0.7rem;
  border-right: 1px solid #e0e4ed;
  font-size: 0.85rem;
}

body.single-property main.property-single .property-table tr:not(.property-table__section) td {
  width: 32%;
  padding: 0.5rem 0.75rem;
  color: #111a2c;
  font-size: 0.85rem;
  border-right: 1px solid #e0e4ed;
}

body.single-property main.property-single .property-table tr td:last-child {
  border-right: none;
}

body.single-property main.property-single .property-table__row--single td {
  width: auto;
  border-right: none;
}

body.single-property main.property-single .property-card--media .video-embed,
body.single-property main.property-single .property-card--media .map-embed {
  aspect-ratio: 16 / 9;
  background: #eef1f7;
  border-radius: 6px;
  overflow: hidden;
}

body.single-property main.property-single .property-card--media iframe,
body.single-property main.property-single .property-card--media iframe+div,
body.single-property main.property-single .property-card--media .video-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

body.single-property main.property-single .property-guest {
  background: #fff;
  border: 1px solid #d5dae5;
  border-radius: 10px;
  padding: clamp(1.2rem, 4vw, 2rem);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.04);
}

body.single-property main.property-single .property-guest__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
}

body.single-property main.property-single .property-footer {
  margin-top: clamp(2rem, 4vw, 3rem);
}

body.single-property main.property-single .property-footer .btn-link {
  color: #0b4fb3;
  font-weight: 600;
}

body.single-property main.property-single .property-footer .property-footer__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  font-size: 0.9rem;
  border-color: rgba(31, 36, 56, 0.25);
  color: #1f2438;
  background: #fff;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

body.single-property main.property-single .property-footer .property-footer__back:hover,
body.single-property main.property-single .property-footer .property-footer__back:focus-visible {
  background: rgba(11, 111, 156, 0.06);
  border-color: rgba(11, 111, 156, 0.35);
  color: #0b6f9c;
  transform: translateY(-1px);
}

body.single-property main.property-single .btn {
  display: inline-block;
  padding: 0.65rem 1.1rem;
  border-radius: 4px;
  border: 1px solid transparent;
  font-weight: 600;
  text-decoration: none;
}

body.single-property main.property-single .btn-primary {
  background: #f58220;
  color: #fff;
  border-color: #f58220;
}

body.single-property main.property-single .btn-outline {
  background: #fff;
  border-color: #cfd6e7;
  color: #1f2438;
}

body.single-property main.property-single .btn-link {
  text-decoration: none;
}

@media (max-width: 1024px) {
  body.single-property main.property-single .property-hero__layout {
    grid-template-columns: 1fr;
  }

  body.single-property main.property-single .property-entry.has-sidebar {
    grid-template-columns: 1fr;
  }

  body.single-property main.property-single .property-entry__side {
    position: static;
  }
}

@media (max-width: 782px) {
  body.single-property main.property-single .property-hero__summary-item {
    flex-direction: column;
    align-items: flex-start;
  }

  body.single-property main.property-single .property-hero__summary-item span {
    width: 100%;
    margin-bottom: 0.25rem;
  }

  body.single-property main.property-single .property-hero__summary-item strong {
    margin-left: 0;
  }
}

/* ==============================================================
   OVL Footer improvements (container + CTA + a11y)
   - Keep existing mood, refine spacing & alignment
   - Reuse .container + .header-cta button styling
================================================================ */

.site-footer {
  padding-inline: 0;
  /* use the same .container width as header/pages */
}

.site-footer .ovl-footer-container {
  display: grid;
  row-gap: clamp(1.25rem, 2vw, 1.75rem);
}

.site-footer .ovl-footer-top {
  align-items: center;
}

.site-footer .ovl-footer-brand {
  align-items: center;
}

.site-footer .ovl-footer-divider {
  margin: 0;
  border-color: rgba(7, 18, 30, 0.08);
}

/* CTA: reuse header button classes (header-cta + wp-block-button styles) */
.site-footer .ovl-footer-cta {
  gap: 0.75rem;
}

.site-footer .ovl-footer-cta .wp-block-button__link {
  min-height: 40px;
  box-shadow: none !important;
  text-decoration: none;
}

.site-footer .ovl-footer-cta .wp-block-button__link:hover,
.site-footer .ovl-footer-cta .wp-block-button__link:focus-visible {
  box-shadow: none !important;
}

/* Ensure footer CTA uses the same palette as global/header buttons */
.site-footer .ovl-footer-cta .wp-block-button__link {
  background: #0f6ba9;
  color: #fff;
}

.site-footer .ovl-footer-cta .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: #0f6ba9;
  border-color: rgba(15, 107, 169, 0.4);
}

.site-footer .ovl-footer-cta .wp-block-button.ovl-footer-cta--tertiary .wp-block-button__link {
  border-color: rgba(15, 107, 169, 0.28);
  opacity: 0.95;
}

/* Nav links: larger tap targets */
.site-footer .ovl-footer-links a,
.site-footer .ovl-footer-legal a,
.site-footer .ovl-footer-to-top {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-block: 0.25rem;
  text-decoration: none;
}

.site-footer .ovl-footer-links a:hover,
.site-footer .ovl-footer-links a:focus-visible,
.site-footer .ovl-footer-legal a:hover,
.site-footer .ovl-footer-legal a:focus-visible,
.site-footer .ovl-footer-to-top:hover,
.site-footer .ovl-footer-to-top:focus-visible {
  text-decoration: underline;
}

/* Focus ring: always visible */
.site-footer a:focus-visible,
.site-footer .wp-block-button__link:focus-visible {
  outline: 2px solid rgba(15, 107, 169, 0.55);
  outline-offset: 3px;
  border-radius: 12px;
}

/* Bottom row */
.site-footer .ovl-footer-bottom {
  align-items: baseline;
}

.site-footer .ovl-footer-copy {
  align-items: baseline;
}

.site-footer .ovl-footer-copy__year {
  font-size: 0.9rem;
  margin: 0;
  opacity: 0.8;
}

.site-footer .ovl-footer-copy p {
  font-size: 0.9rem;
  margin: 0;
}


.site-footer .ovl-footer-title {
  margin: 0;
  opacity: 0.8;
}

/* disable old pseudo © (we render year explicitly) */
.site-footer .ovl-footer-title::before {
  content: none;
}

.site-footer .ovl-footer-bottom__right {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
}

.site-footer .ovl-footer-legal {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

/* Responsive: stack nav + bottom nicely */
@media (max-width: 720px) {
  .site-footer .ovl-footer-top {
    align-items: flex-start;
  }

  .site-footer .ovl-footer-cta-nav {
    width: 100%;
  }

  .site-footer .ovl-footer-cta {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.5rem;
  }

  .site-footer .ovl-footer-cta .wp-block-button {
    flex: 1 1 0;
    min-width: 0;
  }

  .site-footer .ovl-footer-cta .wp-block-button__link {
    width: 100%;
    padding-inline: 0.6rem;
    font-size: clamp(0.75rem, 2.8vw, 0.9rem);
    white-space: nowrap;
  }

  .site-footer .ovl-footer-nav {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .site-footer .ovl-footer-bottom {
    align-items: flex-start;
  }

  .site-footer .ovl-footer-bottom__right {
    width: 100%;
    justify-content: space-between;
  }
}

/* ==============================================================
   Profile Page (/profile/) Improvements
   ============================================================== */
/* プロフィールページ全体のラッパー調整：
   ヘッダー・フッターのように全幅に広がるよう設定し、二重パディングを解消 */
.profile-page {
  width: 100% !important;
  max-width: none !important;
  padding-inline: 0 !important;
  margin-inline: 0 !important;
  margin-top: 0 !important;
  margin-block-start: 0 !important;
  /* ヘッダーとの隙間を解消 */
}

/* ヘッダーのパディングと一致させて水平位置を合わせる */
.profile-page .container {
  width: min(1100px, 95vw);
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2.5rem) !important;
}

.profile-page .ovl-hero {
  padding-block: 0 clamp(2rem, 4vw, 3rem);
  /* 上部余白を完全に解消 */
  text-align: left;
}

.profile-page .hero-grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.profile-page .hero-content {
  flex: 1;
}

.profile-page .eyebrow {
  margin-bottom: 0.5rem;
  /* 見出しとの隙間を短縮 */
}

.profile-page .ovl-hero h1 {
  margin-bottom: 1.5rem;
  font-size: clamp(1.55rem, 2vw, 2.25rem);
}

.profile-page .hero-lead {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  color: #1a3a5a;
  line-height: 1.4;
  margin-bottom: 2rem;
}

.profile-page .hero-subtext {
  font-size: 1.05rem;
  color: #5a6b7d;
  max-width: 100%;
  margin-inline: 0;
  line-height: 1.8;
}

.profile-page .hero-image {
  position: relative;
}

.profile-page .hero-image img {
  width: 100%;
  height: auto;
  border-radius: 32px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
  border: 4px solid #fff;
}

.profile-page .hero-image::after {
  content: "";
  position: absolute;
  top: 20px;
  right: -20px;
  width: 100%;
  height: 100%;
  background: #0bb7c01a;
  border-radius: 32px;
  z-index: -1;
}

/* 目次：ヒーローとセクションの繋ぎ目を調整 */
.profile-page .profile-toc {
  margin-top: -1.5rem;
  margin-bottom: clamp(1.5rem, 4vw, 2rem);
  z-index: 10;
  position: relative;
  text-align: center;
  width: min(1100px, 95vw);
  margin-inline: auto;
  padding-inline: 0;
  box-sizing: border-box;
}

.profile-page .profile-toc.container {
  padding-inline: 0 !important;
}

.profile-page .toc-nav {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  padding-block: 0.75rem;
  padding-inline: 0;
  border-radius: 24px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(15, 107, 169, 0.05);
  max-width: 100%;
  margin-inline: 0;
}

.profile-page .toc-nav ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(0.6rem, 2.5vw, 1.2rem);
  row-gap: clamp(0.6rem, 2.5vw, 1.2rem);
  list-style: none;
  margin: 0;
  padding: 0 clamp(1rem, 3vw, 2.5rem);
  grid-auto-flow: row;
}

.profile-page .toc-nav li {
  min-width: 0;
}

.profile-page .toc-nav a {
  font-size: 0.9rem;
  font-weight: 600;
  color: #0f6ba9;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  justify-content: center;
  width: 100%;
  white-space: nowrap;
  text-align: center;
  padding: 0.45rem 0.85rem;
  box-sizing: border-box;
  border-radius: 999px;
  background: #f8fbff;
  border: 1px solid rgba(15, 107, 169, 0.18);
  box-shadow: 0 6px 14px rgba(15, 107, 169, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.profile-page .toc-nav a:hover {
  color: #0f6ba9;
  background: #eef6ff;
  box-shadow: 0 10px 18px rgba(15, 107, 169, 0.16);
  transform: translateY(-1px);
}

/* セクションの基本余白を統一：極力コンパクトに */
.profile-page section {
  padding-block: clamp(1.5rem, 3.5vw, 2.75rem);
}

/* セクションタイトル：さらに距離を縮める */
.profile-page .section-title {
  text-align: center;
  margin-block: 0 clamp(1.25rem, 3vw, 1.75rem);
  font-size: clamp(1.2rem, 3vw, 2rem);
  position: relative;
  padding-bottom: 0.75rem;
}

.profile-page .section-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 3px;
  background: #0bb7c0;
  border-radius: 2px;
}

/* 基本方針セクション：コンテナ外側の余白はセクション共通に任せる */
.profile-page #policy {
  background: transparent;
}

/* 白背景のコンテナ（カード風背景） */
.profile-page #policy .container {
  background: #fff;
  padding-top: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: clamp(2.25rem, 4vw, 3.5rem);
  /* 下部の余白をさらに縮小 */
  border-radius: 32px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.02);
  overflow: hidden;
}

.profile-page .policy-grid {
  font-size: 1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 2rem);
  margin-bottom: 0 !important;
  padding: clamp(0.5rem, 1.5vw, 1rem);
  padding-bottom: clamp(1rem, 2vw, 1.5rem);
}

.profile-page .policy-item {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  padding-bottom: clamp(1rem, 2.5vw, 1.25rem);
  border-radius: 20px;
  background: #f8fafc;
  /* カード内は少し色を変える */
  border: 1px solid rgba(0, 0, 0, 0.04);
  height: 100%;
  min-width: 0;
}

.profile-page .policy-item--dont {
  border-left: 6px solid #e2e8f0;
}

.profile-page .policy-item--do {
  border-left: 6px solid #0bb7c0;
  box-shadow: 0 12px 28px rgba(11, 183, 192, 0.04);
}

.profile-page .policy-item h3 {
  margin-top: 0;
  font-size: 1.3rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.profile-page .policy-item--dont h3::before {
  content: "×";
  color: #94a3b8;
  font-size: 1.4em;
}

.profile-page .policy-item--do h3::before {
  content: "●";
  color: #0bb7c0;
  font-size: 0.9em;
}

.profile-page .policy-item ul {
  padding-left: 1.25rem;
  margin: 0;
}

.profile-page .policy-item li {
  margin-bottom: 0.25rem;
}

.profile-page .policy-item li:last-child {
  margin-bottom: 0;
}

/* その他のセクションは共通パディングを継承 */

/* 相談フロー */
.profile-page .flow-steps-v {
  max-width: 800px;
  margin: 0 auto;
  display: grid;
  gap: 1.25rem;
}

.profile-page .flow-step {
  display: flex;
  gap: clamp(1rem, 4vw, 2rem);
  align-items: flex-start;
  padding: clamp(1.25rem, 3.5vw, 2rem);
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: transform 0.2s ease;
}

.profile-page .flow-step:hover {
  transform: translateX(5px);
  border-color: rgba(11, 183, 192, 0.2);
}

.profile-page .step-num {
  font-size: 1.6rem;
  font-weight: 800;
  color: #edf2f7;
  line-height: 1;
  font-family: serif;
  /* 本文側の overflow-wrap:anywhere による「01」等の分割折返しを防ぐ */
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  flex-shrink: 0;
}

.profile-page .step-content h4 {
  margin: 0 0 0.6rem;
  font-size: 1.2rem;
  color: #1a3a5a;
}

.profile-page .step-content p {
  margin-bottom: 0;
  font-size: 1rem;
  color: #4a5568;
}

/* 内部リンク */
.profile-page .internal-link {
  text-align: center;
  margin-top: 3rem;
}

.profile-page .internal-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  transition: background 0.2s ease;
}

.profile-page .internal-link a:hover {
  background: rgba(11, 111, 156, 0.05);
}

/* 中間CTA：コンパクトな余白 */
.profile-page .section-cta {
  text-align: center;
  padding-block: clamp(1.5rem, 4vw, 2.5rem);
}

.profile-page .cta-inner {
  background: #f8fafc;
  padding: clamp(2rem, 6vw, 4rem);
  border-radius: 32px;
  border: 1px solid rgba(15, 107, 169, 0.08);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.04);
}

.profile-page .section-cta p {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 2rem;
  color: #2d3748;
}

.profile-page .section-cta-final {
  background: #031a1d;
  color: #fff;
  padding-block: clamp(3rem, 7vw, 4.5rem);
  /* パディングを大幅に削減 */
  text-align: center;
  margin-top: 2rem;
  /* セクション間のマージンを削減 */
}

.profile-page .section-cta-final h2 {
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  margin-bottom: 2rem;
}

.profile-page .section-cta-final p {
  color: #a0aec0;
  font-size: 1.2rem;
  margin-bottom: 3rem;
  max-width: 700px;
  margin-inline: auto;
}

.profile-page .section-cta-final .wp-block-buttons {
  justify-content: center;
  gap: 1.5rem;
}

/* モバイル調整 */
@media (max-width: 768px) {
  .profile-page .container {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: clamp(0.5rem, 2.5vw, 0.9rem);
    box-sizing: border-box;
  }

  .profile-page .hero-grid {
    width: 100%;
    margin-inline: 0;
  }

  .profile-page .ovl-hero {
    text-align: left;
  }

  .profile-page .hero-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .profile-page .hero-image {
    max-width: 320px;
    margin: 0 auto;
  }

  .profile-page .hero-image::after {
    right: -10px;
    top: 10px;
  }

  .profile-page .policy-grid {
    grid-template-columns: 1fr;
  }

  .profile-page .profile-toc {
    padding-inline: 0;
  }

  .profile-page .toc-nav {
    width: 100%;
    border-radius: 20px;
    padding: 1rem;
    box-sizing: border-box;
  }

  .profile-page .toc-nav ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: stretch;
    column-gap: 0.75rem;
    row-gap: 0.75rem;
  }

  .profile-page .flow-step {
    flex-direction: column;
    gap: 0.75rem;
  }

  .profile-page .section-cta-final .wp-block-buttons {
    flex-direction: column;
    padding-inline: 2rem;
  }

  .profile-page .section-cta-final .wp-block-button,
  .profile-page .section-cta-final .wp-block-button__link {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .profile-page .toc-nav ul {
    grid-template-columns: 1fr;
  }
}

/* ==============================================================
   Mobile overflow hardening (追加上書き)
   - 100vw / -50vw / 右はみ出し等の横スクロール抑止
   - 画像/iframe/表/pre/code のはみ出し抑止
   方針: body直の overflow-x は使わず、対象セクション単位で clip
   ============================================================== */

/* body/html への全体クリップは行わない（既存ルールの上書き） */
html,
body,
.wp-site-blocks {
  overflow-x: visible;
}

@supports not (overflow: clip) {

  html,
  body,
  .wp-site-blocks {
    overflow-x: visible;
  }
}

/* 投稿本文/固定ページ本文の “長いURL/コード” によるはみ出し対策（ヘッダー等は触らない） */
:where(.wp-site-blocks) :where(.wp-block-post-content, .entry-content, .wp-block-post-excerpt) {
  overflow-wrap: anywhere;
}

:where(.wp-site-blocks) :where(.wp-block-post-content a, .entry-content a, .wp-block-post-excerpt a) {
  word-break: break-word;
}

/* 画像/埋め込みの基本はみ出し対策（既存img max-width補強） */
:where(.wp-site-blocks) :where(img, svg, video, canvas) {
  max-width: 100%;
  height: auto;
}

:where(.wp-site-blocks) :where(iframe, embed, object) {
  max-width: 100%;
}

:where(.wp-site-blocks) :where(.wp-block-embed, .wp-block-embed__wrapper) {
  max-width: 100%;
}

:where(.wp-site-blocks) :where(.wp-block-embed iframe, .wp-block-embed__wrapper iframe) {
  max-width: 100%;
}

/* テーブルは本文内で横スクロール “内側” に閉じ込める */
:where(.wp-site-blocks) :where(.wp-block-table) {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:where(.wp-site-blocks) :where(.wp-block-table table) {
  width: max-content;
  min-width: 100%;
}

/* pre/code は横スクロールを内側に閉じ込める（ページ全体はスクロールさせない） */
:where(.wp-site-blocks) :where(pre) {
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

:where(.wp-site-blocks) :where(code) {
  overflow-wrap: anywhere;
}

/* 固定幅指定が混ざったケースも “要素内スクロール” に閉じ込める */
:where(.wp-site-blocks) :where(.wp-block-post-content, .entry-content) :where(table, iframe, pre) {
  max-width: 100%;
}

/* フロント（page-id-260）のカード枠：width+padding合算での溢れ防止 */
.page-id-260 .wp-block-post-content>* {
  box-sizing: border-box;
  max-width: 100%;
}

/* フロント（page-id-260）：見出しリンクの色は統一しつつ「リンクである」ことを示す */
.page-id-260 :where(.wp-block-heading) a {
  color: inherit;
  /* inline にして下線が途中で切れないようにする */
  display: inline;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 0.08em;
}

.page-id-260 :where(.wp-block-heading) a:hover,
.page-id-260 :where(.wp-block-heading) a:focus-visible {
  text-decoration-color: currentColor;
}

/* スマホではホバーが使えないので、リンクだけ常に“リンクらしさ”を出す */
@media (max-width: 782px) {

  .page-id-260 :where(.wp-block-heading) a {
    text-decoration-color: rgba(11, 183, 192, 0.65);
  }
}

/* ========= full-bleed（全幅）要素の横スクロール対策 =========
   可能な限り width:100vw → width:100% へ寄せ、必要分は margin で全幅化。
   どうしてもはみ出す分は「そのセクション」で overflow-x: clip する。
*/

/* ==========================================================================
   スマートフォン幅 (360px〜) 最適化（最終統合版）
   レイアウト崩れ・横スクロール・はみ出し・文字潰れを根本解消
   ========================================================================== */

/* 1) & 2) 全体のはみ出し・横スクロール防止の強化 */
html,
body {
  overflow-x: hidden;
  position: relative;
  width: 100%;
}

/* 長いテキスト・テーブル・ソースコードのはみ出し防止 */
table,
pre,
code {
  max-width: 100% !important;
  overflow-x: auto !important;
  display: block;
  -webkit-overflow-scrolling: touch;
}

/* 1) 5) コンテナ幅の計算ミス修正と全幅要素の安定化 */
.wp-site-blocks>* {
  width: 100% !important;
  max-width: 1100px !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

/* 全幅背景を必要とする要素の修正 (-50vwを直接使わず親のoverflowに任せる) */
.site-footer,
.page-id-260 .wp-block-columns.hero-with-bg,
.ovl-section.ovl-hero {
  left: 0 !important;
  transform: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  box-sizing: border-box !important;
}

/* Investment hero: keep full-bleed section centered in viewport */
.page-investment .ovl-section.ovl-hero {
  margin-inline: calc(50% - 50vw) !important;
}

/* 3) ヘッダーナビ：ロゴとメニューの重なり・突き抜け防止 */
@media (max-width: 1180px) {
  .site-header {
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    gap: 0.5rem !important;
    /* 隙間をさらに詰めて重なりを回避 */
    padding-inline: clamp(1rem, 2vw, 1.5rem) !important;
  }

  .site-logo.wp-block-site-logo {
    flex-shrink: 0 !important;
    /* ロゴが潰れないように固定 */
    max-width: 160px !important;
    /* 幅を少しセーブ */
  }

  .header-nav-auth {
    flex: 1;
    min-width: 0;
    /* flexアイテムが縮小できるように設定 */
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    scrollbar-width: none;
    display: flex !important;
    justify-content: flex-end !important;
    /* メニューを右寄せに */
  }

  .header-nav-auth::-webkit-scrollbar {
    display: none;
  }

  .site-header .wp-block-navigation__container {
    flex-wrap: nowrap !important;
    gap: clamp(0.5rem, 1.5vw, 1rem) !important;
    /* 間隔を動的に縮小 */
    justify-content: flex-end !important;
  }

  .site-header .wp-block-navigation-item__content {
    font-size: 0.825rem !important;
    /* 文字サイズをわずかに縮小 */
    white-space: nowrap !important;
    padding-inline: 0.25rem !important;
    /* 内側の余白を削って幅を稼ぐ */
  }
}

/* 4) 6) スマホ最適化（360px周辺）: 文字サイズ・行間・タップ領域 */
@media (max-width: 768px) {
  body {
    line-height: 1.75;
  }

  body.page-id-46 .wp-site-blocks>main,
  body.page-id-46 .entry-content.wp-block-post-content.has-global-padding {
    padding-inline: 0 !important;
  }

  body.page-id-46 main.wp-block-group.is-layout-constrained {
    margin-top: 0 !important;
  }

  body.page-id-46 main.wp-block-group.is-layout-constrained {
    padding-top: 0 !important;
  }

  /* 会員登録ページ：枠線＋影のボックスを全幅に */
  body.page-id-46 .wp-block-group.has-background.is-layout-constrained {
    width: calc(100% - 20.6px);
    max-width: none;
    margin-inline: 10.3px !important;
    box-sizing: border-box;
  }

  /* 会員登録ページ：緑背景（外側）の内側余白を縮小 */
  body.page-id-46 .wp-block-group.has-global-padding.is-layout-constrained:not(.has-background) {
    padding-inline: 0 !important;
    padding-block: 0.75rem !important;
  }

  /* 会員登録ページ：枠線＋影ボックス内の左右余白を確保 */
  body.page-id-46 .wp-block-group.has-background.is-layout-constrained {
    padding-inline: 0.9rem !important;
  }

  /* テキスト側の左右余白はボックス側に任せる */
  body.page-id-46 .wp-block-group.has-background.is-layout-constrained > :is(h1, p) {
    padding-inline: 0;
  }

  /* 会員登録ページ：スクショ部分（フォーム）の左右余白を均一化 */
  body.page-id-46 #wpmem_register_form {
    padding-inline: 0.9rem !important;
    margin-inline: 0 !important;
    width: 100%;
    box-sizing: border-box;
  }

  /* 謎余白（ネストされたグループの累積パディング）を解除 */
  .wp-block-group.has-global-padding,
  .wp-site-blocks>main {
    padding-inline: 1.25rem !important;
  }

  /* 物件一覧：カードの縦並び化 */
  .property-archive-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .property-card {
    display: flex;
    flex-direction: column !important;
    padding: 1rem !important;
  }

  .property-card--latest {
    padding-top: 0 !important;
  }

  /* 物件詳細：ヒーローとサイドバーの縦並び化 */
  body.single-property main.property-single .property-hero__layout,
  body.single-property main.property-single .property-entry.has-sidebar {
    display: flex;
    flex-direction: column !important;
    gap: 1.5rem;
  }

  body.single-property main.property-single .property-hero__media,
  body.single-property main.property-single .property-hero__info {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* タップ領域の確保 */
  .wp-block-button__link,
  .ovl-property-card__cta,
  .ovl-favorite-button {
    min-height: 44px;
    padding-block: 0.65rem !important;
  }
}

@media (max-width: 768px) {
  .page-id-260 .value-columns .wp-block-group.has-global-padding.is-layout-constrained {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 768px) {
  .page-id-260 .section--okinawa-merit .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .page-id-260 .section--okinawa-merit .wp-block-group.has-global-padding.is-layout-constrained {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 480px) {

  h1,
  .h1 {
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
  }

  h2,
  .h2 {
    font-size: 1.3rem !important;
    line-height: 1.4 !important;
  }

  body.single-property main.property-single .property-hero__summary-grid {
    grid-template-columns: 1fr !important;
  }

  .site-logo.wp-block-site-logo img {
    height: 32px !important;
  }
}
