@charset "UTF-8";
/* =========================================================
   プロパ・エステート｜カラーパレット（テンプレⒶから差し替え）
   桜 × 空の淡い青 × 菜の花黄 × 若葉グリーンの中間色
   ロゴ朱赤はワンポイントのみ
   --sakura #f2c4ce / --sakura-pale #fbe9ee / --sakura-deep #e79bad
   --sky #a9d3e8 / --sky-pale #e3f1f8 / --sky-deep #6fb0cf
   --nanohana #f2d45c / --nanohana-deep #e6b800
   --wakaba #8db97a / --midori #4f7a4a
   --tsuchi #6b5d4f / --tsuchi-pale #f6f3ee
   --ink #4a4039 / --logo-red #d6402a
   ========================================================= */
* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  font-size: 100%;
}

body {
  color: #4a4039;
  background-color: #ffffff;
  font-family: "Zen Maru Gothic", "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Roboto, MotoyaLCedar, sans-serif;
  line-height: 1.9;
  letter-spacing: 0.02em;
  overflow-x: hidden;
}
@media screen and (max-width: 900px) {
  body {
    padding-bottom: 60px;
  }
}

h1, h2, h3, h4, h5 {
  font-family: "Noto Serif JP", "Zen Maru Gothic", serif;
  font-weight: 500;
}

@supports (word-break: auto-phrase) {
  .jp-wrap {
    word-break: auto-phrase;
  }
}
@media screen and (max-width: 768px) {
  .br_pc {
    display: none;
  }
}

@media screen and (min-width: 1441px) {
  .br_sp {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  .br_sp {
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .br_sp {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
}

@media screen and (min-width: 1441px) {
  .sp {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  .sp {
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .sp {
    display: none;
  }
}

.wide {
  width: 1200px;
  margin: auto;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .wide {
    width: 800px;
  }
}
@media screen and (max-width: 768px) {
  .wide {
    width: 350px;
  }
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

:root {
  --sakura:#f2c4ce;
  --sakura-pale:#fbe9ee;
  --sakura-deep:#e79bad;
  --sky:#a9d3e8;
  --sky-pale:#e3f1f8;
  --sky-deep:#6fb0cf;
  --nanohana:#f2d45c;
  --nanohana-deep:#e6b800;
  --wakaba:#8db97a;
  --midori:#4f7a4a;
  --tsuchi:#6b5d4f;
  --tsuchi-pale:#f6f3ee;
  --ink:#4a4039;
  --logo-red:#d6402a;
  --white:#ffffff;
  --serif:"Noto Serif JP",serif;
  --round:"Zen Maru Gothic",sans-serif;
  --en:"Cinzel",serif;
  --logo-font:"Comfortaa",cursive;
}

.nb {
  white-space: nowrap;
}

.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: 0.9s ease;
  transition-property: opacity, transform;
}

.fade-in-up {
  transform: translateY(40px);
}

.fade-in.from-left {
  transform: translateX(-40px);
}

.scroll-in {
  opacity: 1 !important;
  transform: translate(0, 0) !important;
}

.sec {
  padding: 6rem 2rem;
}
@media screen and (max-width: 768px) {
  .sec {
    padding: 4rem 1.3rem;
  }
}

.lower-wrap {
  max-width: 1080px;
  margin: 0 auto;
}

.headline {
  text-align: center;
  margin-bottom: 3rem;
}
.headline h2 {
  font-family: var(--en);
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  color: var(--sky-deep);
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .headline h2 {
    font-size: 1.8rem;
  }
}
.headline p {
  color: var(--sakura-deep);
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  margin-top: 0.3rem;
  font-weight: 500;
}

.lead {
  text-align: center;
  margin: 0 auto 3.5rem;
  color: var(--tsuchi);
  font-size: 1rem;
  text-wrap: balance;
}
@media screen and (max-width: 768px) {
  .lead {
    text-align: left;
  }
}

@supports (word-break: auto-phrase) {
  .lead, .jp-wrap {
    word-break: auto-phrase;
  }
}
#lower {
  position: relative;
  height: 340px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  #lower {
    height: 240px;
  }
}
#lower .lower {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  transform: scale(1.05);
}
#lower .lower_bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(169, 211, 232, 0.45), rgba(242, 196, 206, 0.4));
  z-index: 1;
}
#lower .lower_contents {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.5);
}
#lower .lower_contents h1.headline {
  font-family: var(--serif);
  font-size: 2.4rem;
  color: #fff;
  letter-spacing: 0.1em;
  margin: 0;
  font-weight: 600;
  text-shadow: 0 3px 16px rgba(74, 64, 57, 0.45);
}
@media screen and (max-width: 768px) {
  #lower .lower_contents h1.headline {
    font-size: 1.6rem;
  }
}
#lower .lower_contents p {
  font-family: var(--en);
  color: #fff;
  letter-spacing: 0.18em;
  margin-top: 0.4rem;
  text-shadow: 0 2px 12px rgba(74, 64, 57, 0.5);
}

.lower_headline {
  font-size: 1.4rem;
  color: var(--sky-deep);
  text-align: center;
  margin-bottom: 2.4rem;
  position: relative;
  padding-bottom: 1rem;
  font-family: var(--serif);
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .lower_headline {
    font-size: 1.15rem;
  }
}
.lower_headline::after {
  position: absolute;
  content: "";
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 54px;
  height: 2px;
  background: var(--nanohana);
}

.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 900;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--sakura-deep);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(231, 155, 173, 0.4);
  transition: 0.3s;
}
.back-to-top i {
  font-size: 1.1rem;
}
@media screen and (max-width: 768px) {
  .back-to-top {
    bottom: 74px;
  }
}

.topBtnSp {
  display: none !important;
}

.grecaptcha-badge {
  z-index: 99999 !important;
}

/* ====== ローディング ====== */
.loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background: linear-gradient(160deg, #e3f1f8, #fbe9ee);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}
.loading .loading_text {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: column;
}
.loading .loadinglogo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--logo-font);
  font-weight: 700;
  font-size: 2.4rem;
  color: var(--logo-red);
  letter-spacing: 0.04em;
}
.loading .loadinglogo img {
  width: auto;
  height: 120px;
}
.loading .loadinglogo .p-mark {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ff6347, var(--logo-red));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  font-style: italic;
  box-shadow: 0 4px 14px rgba(214, 64, 42, 0.35);
}

.loading.active {
  opacity: 1;
  visibility: visible;
}

.spinner-box {
  margin-top: 1.6rem;
}
.spinner-box .pulse-container {
  display: flex;
  gap: 0.7rem;
}
.spinner-box .pulse-container .pulse-bubble {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #e79bad;
}
.spinner-box .pulse-container .pulse-bubble-1 {
  animation: pulse 0.6s ease 0s infinite alternate;
  background-color: #e79bad;
}
.spinner-box .pulse-container .pulse-bubble-2 {
  animation: pulse 0.6s ease 0.2s infinite alternate;
  background-color: #6fb0cf;
}
.spinner-box .pulse-container .pulse-bubble-3 {
  animation: pulse 0.6s ease 0.4s infinite alternate;
  background-color: #8db97a;
}

@keyframes pulse {
  from {
    transform: translateY(0);
    opacity: 0.5;
  }
  to {
    transform: translateY(-10px);
    opacity: 1;
  }
}
/* ====== ヘッダー（モック移植：固定・白・ブラー）====== */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

#header_pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 2.2rem;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(8px);
  box-shadow: 0 2px 18px rgba(111, 176, 207, 0.15);
  transition: 0.3s;
}
@media screen and (max-width: 900px) {
  #header_pc {
    display: none;
  }
}

.header_logo {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--logo-font);
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--logo-red);
}
.header_logo img {
  height: 46px;
  width: auto;
}
.header_logo .p-mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ff6347, var(--logo-red));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-style: italic;
}
.header_logo .logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.header_logo .logo-text small {
  display: block;
  font-size: 0.62rem;
  color: var(--tsuchi);
  font-family: var(--round);
  letter-spacing: 0.12em;
  font-weight: 500;
}

.header_menu ul {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  list-style: none;
}
.header_menu a {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ink);
  position: relative;
  padding-bottom: 4px;
  transition: 0.25s;
}
.header_menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: var(--sakura-deep);
  transition: 0.3s;
}
.header_menu a:hover, .header_menu a.current {
  color: var(--sakura-deep);
}
.header_menu a:hover::after, .header_menu a.current::after {
  width: 100%;
}
.header_menu .new_twitter:before {
  content: "𝕏" !important;
  font-family: sans-serif !important;
  font-weight: bold;
}
.header_menu .header_cta {
  background: linear-gradient(135deg, var(--wakaba), var(--midori));
  color: #fff !important;
  padding: 0.55rem 1.2rem;
  border-radius: 40px;
  font-size: 0.85rem;
  box-shadow: 0 4px 12px rgba(79, 122, 74, 0.3);
}
.header_menu .header_cta::after {
  display: none;
}
.header_menu .header_cta:hover {
  transform: translateY(-2px);
}

/* ====== ヘッダー（SP固定上下バー）====== */
#header_sp {
  display: none;
}

@media screen and (max-width: 900px) {
  #header_sp {
    display: block;
  }
  .header_sp_top {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    padding: 0.5rem 1rem;
    box-shadow: 0 2px 12px rgba(111, 176, 207, 0.18);
  }
  .header_sp_top .header_logo {
    font-size: 1.1rem;
  }
  .header_sp_top .header_logo img {
    height: 38px;
  }
  .header_sp_bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    box-shadow: 0 -2px 14px rgba(111, 176, 207, 0.2);
  }
  .header_sp_bottom > ul {
    display: flex;
    list-style: none;
  }
  .header_sp_bottom > ul > li {
    flex: 1;
    text-align: center;
    border-right: 1px solid #eee;
  }
  .header_sp_bottom > ul > li:last-child {
    border-right: none;
  }
  .header_sp_bottom a, .header_sp_bottom .hamburger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0;
    cursor: pointer;
  }
  .header_sp_bottom .header_icon,
  .header_sp_bottom .hamburger .bars {
    height: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .header_sp_bottom .header_icon i {
    font-size: 1.1rem;
    color: var(--sakura-deep);
  }
  .header_sp_bottom p {
    font-size: 0.55rem;
    letter-spacing: 0.05em;
    color: var(--tsuchi);
    margin-top: 2px;
  }
  .hamburger {
    position: relative;
  }
  .hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--midori);
    margin: 2px auto;
    transition: 0.3s;
  }
  .hamburger.active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
  .globalMenuSp {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: linear-gradient(160deg, rgba(251, 233, 238, 0.97), rgba(227, 241, 248, 0.97));
    backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    opacity: 0;
    visibility: hidden;
    transition: 0.4s;
  }
  .globalMenuSp.active {
    opacity: 1;
    visibility: visible;
  }
  .globalMenuSp .ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    list-style: none;
  }
  .globalMenuSp .ul li a {
    display: block;
    font-size: 1.15rem;
    font-family: var(--serif);
    color: var(--ink);
    padding: 0.6rem 0;
  }
  .globalMenuSp .ul li a i {
    margin-right: 0.6rem;
  }
  .globalMenuSp .sns {
    flex-direction: row !important;
    gap: 1.5rem;
    margin-top: 1.2rem;
  }
  .globalMenuSp .sns li a {
    font-size: 1.3rem;
    color: var(--sakura-deep);
  }
  .globalMenuSp .new_twitter:before {
    content: "𝕏" !important;
    font-family: sans-serif !important;
    font-weight: bold;
  }
}
/* ====== TOP メインビジュアル（モック移植）====== */
#top_main {
  position: relative;
  height: 100vh;
  min-height: 560px;
  overflow: hidden;
}
#top_main .hero-slider {
  position: absolute;
  inset: 0;
}
#top_main .hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 3.6s ease;
  will-change: opacity;
  backface-visibility: hidden;
}
#top_main .hero-slide.show {
  opacity: 1;
}
#top_main::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(169, 211, 232, 0.28), rgba(242, 196, 206, 0.32));
  z-index: 1;
}
#top_main .hero-petals {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
#top_main .hero-petals .petal {
  position: absolute;
  top: -8%;
  font-size: 1.2rem;
  color: #fff;
  opacity: 0.85;
  animation: petalFall linear infinite;
}
#top_main .top_main_title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  text-align: center;
  width: 90%;
  text-shadow: 0 2px 14px rgba(255, 255, 255, 0.6);
}
#top_main .top_main_title h2 {
  font-family: var(--serif);
  font-weight: 600;
  color: #fff;
  font-size: clamp(2rem, 5vw, 4rem);
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-shadow: 0 3px 18px rgba(74, 64, 57, 0.5);
  opacity: 0;
  animation: fadeUp 1.6s ease 1.2s forwards;
}
@media screen and (max-width: 900px) {
  #top_main .top_main_title h2 {
    font-size: 1.85rem;
    letter-spacing: 0.04em;
  }
}
#top_main .top_main_title p {
  margin-top: 1rem;
  font-size: clamp(0.9rem, 1.6vw, 1.25rem);
  color: #fff;
  font-weight: 500;
  line-height: 1.7;
  text-shadow: 0 2px 12px rgba(74, 64, 57, 0.55);
  opacity: 0;
  animation: fadeUp 1.6s ease 2s forwards;
}
@media screen and (max-width: 900px) {
  #top_main .top_main_title p {
    font-size: 0.82rem;
    margin-top: 1.2rem;
  }
}
#top_main .scroll-hint {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  color: #fff;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  writing-mode: vertical-rl;
}
#top_main .scroll-hint::after {
  content: "";
  display: block;
  width: 1px;
  height: 46px;
  background: #fff;
  margin: 0.6rem auto 0;
  animation: scrollLine 1.8s ease infinite;
  transform-origin: top;
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes scrollLine {
  0% {
    transform: scaleY(0);
  }
  50% {
    transform: scaleY(1);
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}
@keyframes petalFall {
  0% {
    transform: translateY(-10vh) rotate(0deg);
    opacity: 0;
  }
  10% {
    opacity: 0.9;
  }
  100% {
    transform: translateY(110vh) translateX(40px) rotate(360deg);
    opacity: 0.2;
  }
}
/* ====== TOP コンテンツ（交互レイアウト）====== */
.top_block {
  display: flex;
  align-items: center;
  gap: 0;
}
.top_block.rev {
  flex-direction: row-reverse;
}
.top_block .ph {
  flex: 1;
  min-height: 440px;
  background-size: cover;
  background-position: center;
}
.top_block .tx {
  flex: 1;
  padding: 4rem 4.5rem;
  background: #fff;
}
.top_block .tx h2 {
  font-family: var(--en);
  font-size: 1.9rem;
  color: var(--sky-deep);
  letter-spacing: 0.06em;
}
.top_block .tx h3 {
  font-size: 1.05rem;
  color: var(--sakura-deep);
  margin: 0.4rem 0 1.6rem;
  position: relative;
  padding-bottom: 0.9rem;
  font-weight: 500;
}
.top_block .tx h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 2px;
  background: var(--nanohana);
}
.top_block .tx p {
  font-size: 0.95rem;
  color: var(--tsuchi);
}
.top_block.tinted .tx {
  background: linear-gradient(160deg, var(--sky-pale), #fff);
}
@media screen and (max-width: 900px) {
  .top_block {
    flex-direction: column !important;
  }
  .top_block .ph {
    width: 100%;
    min-height: 260px;
  }
  .top_block .tx {
    padding: 2.6rem 1.6rem;
  }
}

.btn-soft {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.8rem;
  background: linear-gradient(135deg, var(--sakura-deep), var(--sakura));
  color: #fff;
  padding: 0.7rem 1.8rem;
  border-radius: 40px;
  font-size: 0.9rem;
  box-shadow: 0 5px 16px rgba(231, 155, 173, 0.4);
  transition: 0.3s;
}
.btn-soft:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(231, 155, 173, 0.5);
}

#contents_divide {
  height: 340px;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  position: relative;
}
#contents_divide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(111, 176, 207, 0.18);
}
@media screen and (max-width: 900px) {
  #contents_divide {
    background-attachment: scroll;
    height: 220px;
  }
}

/* ====== TOP バナー3連 ====== */
#flex_contents {
  padding: 5rem 2rem;
  background: linear-gradient(180deg, #fff, var(--sakura-pale));
}
#flex_contents .flex_inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
@media screen and (max-width: 900px) {
  #flex_contents .flex_inner {
    grid-template-columns: 1fr;
  }
}
#flex_contents .flex_card {
  position: relative;
  height: 300px;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(111, 176, 207, 0.18);
}
#flex_contents .flex_card .bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: 0.7s;
}
#flex_contents .flex_card:hover .bg {
  transform: scale(1.1);
}
#flex_contents .flex_card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(79, 122, 74, 0.55), rgba(111, 176, 207, 0.15));
}
#flex_contents .flex_card .label {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
}
#flex_contents .flex_card .label h2 {
  font-family: var(--en);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
}
#flex_contents .flex_card .label p {
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  margin-top: 0.3rem;
  background: rgba(255, 255, 255, 0.22);
  padding: 0.2rem 1rem;
  border-radius: 20px;
}

/* =========================================================
   物件情報（PROPERTY）モック移植
   TOP #top_property / 物件一覧 .property_page / 物件詳細
   ========================================================= */
/* 画像なしプレースホルダ（カード・詳細共通） */
.ph-noimg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--sky-pale), var(--sakura-pale));
  color: var(--sky-deep);
}
.ph-noimg i {
  font-size: 2.4rem;
  opacity: 0.55;
}

/* ====== 物件カード（共通） ====== */
.property_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
}
@media screen and (max-width: 768px) {
  .property_grid {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
}

.property_card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  transition: transform 0.35s, box-shadow 0.35s;
  display: block;
  text-decoration: none;
}
.property_card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.28);
}
.property_card:hover .pc-thumb .ph {
  transform: scale(1.08);
}
.property_card .pc-thumb {
  position: relative;
  height: 200px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .property_card .pc-thumb {
    height: 56vw;
  }
}
.property_card .pc-thumb .ph {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: var(--sky-pale);
  transition: 0.6s;
}
.property_card .pc-status {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
  background: rgba(214, 64, 42, 0.78);
  padding: 0.4rem 1.6rem;
  border-radius: 4px;
  white-space: nowrap;
}
.property_card .pc-status.soudan {
  background: rgba(141, 185, 122, 0.85);
}
.property_card .pc-body {
  padding: 1.1rem 1.2rem 1.4rem;
}
.property_card .pc-cat {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.7rem;
  flex-wrap: wrap;
}
.property_card .pc-cat span {
  font-size: 0.68rem;
  color: #fff;
  padding: 0.2rem 0.7rem;
  border-radius: 3px;
  letter-spacing: 0.04em;
}
.property_card .pc-cat .c1 {
  background: var(--sky-deep);
}
.property_card .pc-cat .c2 {
  background: var(--wakaba);
}
.property_card .pc-cat .c3 {
  background: var(--nanohana-deep);
}
.property_card .pc-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  border-bottom: 1px solid #e5ddd2;
  padding-bottom: 0.5rem;
  margin-bottom: 0.6rem;
}
.property_card .pc-addr,
.property_card .pc-plan {
  font-size: 0.85rem;
  color: var(--tsuchi);
  line-height: 1.6;
}

/* ====== TOP：PROPERTY セクション ====== */
#top_property {
  background: linear-gradient(160deg, var(--sky-deep), var(--midori));
  padding: 6rem 2rem;
}
@media screen and (max-width: 768px) {
  #top_property {
    padding: 4rem 1.3rem;
  }
}
#top_property .property_inner {
  max-width: 1180px;
  margin: 0 auto;
}
#top_property .property_head {
  position: relative;
  margin-bottom: 3rem;
}
#top_property .property_head h2 {
  font-family: var(--en);
  font-size: clamp(3rem, 9vw, 7rem);
  color: #fff;
  opacity: 0.14;
  letter-spacing: 0.05em;
  line-height: 1;
}
#top_property .property_head h4 {
  position: absolute;
  left: 1.5rem;
  bottom: 0.4rem;
  color: #fff;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  #top_property .property_head h4 {
    left: 0.5rem;
  }
}
#top_property .property_cat {
  margin-bottom: 3.5rem;
}
#top_property .property_empty_txt {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.95rem;
  padding: 1rem 0 1.5rem;
}
#top_property .property_btn {
  text-align: center;
  margin-top: 2rem;
}
#top_property .property_btn a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #fff;
  color: var(--ink);
  padding: 0.8rem 2.4rem;
  border-radius: 40px;
  font-size: 0.9rem;
  transition: 0.3s;
}
#top_property .property_btn a:hover {
  background: var(--nanohana);
  transform: translateY(-2px);
}

/* 物件カテゴリ見出し（TOP・一覧共通） */
.property_cat_ttl {
  position: relative;
  padding-left: 1.2rem;
  margin-bottom: 1.6rem;
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
}
.property_cat_ttl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 65%;
  background: var(--nanohana);
  border-radius: 2px;
}

/* ====== 物件一覧ページ（明背景） ====== */
.property_page {
  background: var(--tsuchi-pale);
}
.property_page .property_cat_ttl {
  color: var(--ink);
}
.property_page .property_empty_txt {
  color: var(--tsuchi);
  font-size: 0.95rem;
  padding: 1rem 0 0.5rem;
  text-align: center;
}
@media screen and (max-width: 900px) {
  .property_page .property_empty_txt {
    text-align: left;
  }
}
.property_page .property_cat {
  margin-bottom: 3.5rem;
}
.property_page .property_cat.is-hidden {
  display: none;
}

.property_filter {
  display: flex;
  gap: 0.7rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
.property_filter .pf-btn {
  background: #fff;
  border: 1px solid var(--sky);
  color: var(--tsuchi);
  padding: 0.55rem 1.6rem;
  border-radius: 40px;
  font-size: 0.88rem;
  cursor: pointer;
  font-family: inherit;
  transition: 0.25s;
}
.property_filter .pf-btn:hover {
  background: var(--sky-pale);
}
.property_filter .pf-btn.active {
  background: linear-gradient(135deg, var(--sky-deep), var(--midori));
  color: #fff;
  border-color: transparent;
}

/* ====== 物件詳細 ====== */
#property_single .ps-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2.5rem;
  align-items: center;
  margin-bottom: 3rem;
}
@media screen and (max-width: 768px) {
  #property_single .ps-head {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
}
#property_single .ps-head .ps-thumb {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(111, 176, 207, 0.2);
  background: var(--sky-pale);
  aspect-ratio: 4/3;
}
#property_single .ps-head .ps-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#property_single .ps-head .ps-thumb .ph-noimg {
  aspect-ratio: 4/3;
}
#property_single .ps-head .ps-summary .ps-type {
  display: inline-block;
  background: var(--sakura-pale);
  color: var(--sakura-deep);
  font-size: 0.72rem;
  padding: 0.2rem 0.9rem;
  border-radius: 20px;
  letter-spacing: 0.1em;
  margin-bottom: 0.8rem;
}
#property_single .ps-head .ps-summary .ps-title {
  font-family: var(--serif);
  font-size: 1.6rem;
  color: var(--ink);
  line-height: 1.5;
  margin: 0.4rem 0 0.8rem;
}
#property_single .ps-head .ps-summary .ps-badge {
  display: inline-block;
  background: var(--logo-red);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.25rem 1rem;
  border-radius: 4px;
  letter-spacing: 0.06em;
}
#property_single .ps-head .ps-summary .ps-badge.soudan {
  background: var(--wakaba);
}
#property_single .ps-head .ps-summary .ps-price {
  margin-top: 1rem;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--midori);
  font-family: var(--serif);
}
#property_single .ps-head .ps-summary .ps-price small {
  font-size: 0.9rem;
  color: var(--tsuchi);
  margin-left: 0.2rem;
}
#property_single .property_table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(111, 176, 207, 0.12);
}
#property_single .property_table th, #property_single .property_table td {
  padding: 1.1rem 1.6rem;
  text-align: left;
  font-size: 0.93rem;
  border-bottom: 1px solid #efeae2;
}
@media screen and (max-width: 768px) {
  #property_single .property_table th, #property_single .property_table td {
    padding: 0.85rem 0.9rem;
    font-size: 0.85rem;
    line-height: 1.7;
  }
}
#property_single .property_table th {
  background: var(--sky-pale);
  color: var(--ink);
  width: 30%;
  font-weight: 500;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  #property_single .property_table th {
    width: 32%;
  }
}
#property_single .property_table td {
  color: var(--tsuchi);
  overflow-wrap: anywhere;
}
#property_single .ps-comment {
  margin-top: 3rem;
}
#property_single .ps-comment p {
  color: var(--tsuchi);
  font-size: 0.97rem;
}
#property_single .ps-content {
  margin-top: 2rem;
  color: var(--tsuchi);
  line-height: 1.9;
}
#property_single .ps-back {
  text-align: center;
  margin-top: 3.5rem;
}

/* ====== 事業内容（モック .service_item 移植）====== */
#service .service_list {
  display: grid;
  gap: 2.4rem;
}
#service .service_item {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 2.4rem;
  align-items: center;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(111, 176, 207, 0.14);
}
#service .service_item:nth-child(even) {
  grid-template-columns: 1fr 300px;
}
#service .service_item:nth-child(even) .si-ph {
  order: 2;
}
@media screen and (max-width: 900px) {
  #service .service_item {
    grid-template-columns: 1fr;
  }
  #service .service_item:nth-child(even) {
    grid-template-columns: 1fr;
  }
  #service .service_item:nth-child(even) .si-ph {
    order: 0;
  }
}
#service .si-ph {
  height: 240px;
  background-size: cover;
  background-position: center;
}
@media screen and (max-width: 900px) {
  #service .si-ph {
    height: 200px;
  }
}
#service .si-tx {
  padding: 1rem 2.4rem;
}
@media screen and (max-width: 900px) {
  #service .si-tx {
    padding: 1.5rem;
  }
}
#service .si-tx .tag {
  display: inline-block;
  background: var(--sakura-pale);
  color: var(--sakura-deep);
  font-size: 0.72rem;
  padding: 0.2rem 0.9rem;
  border-radius: 20px;
  letter-spacing: 0.1em;
  margin-bottom: 0.8rem;
}
#service .si-tx h3 {
  font-size: 1.35rem;
  color: var(--ink);
  margin-bottom: 0.8rem;
  font-family: var(--serif);
}
#service .si-tx p {
  font-size: 0.93rem;
  color: var(--tsuchi);
}
#service .si-tx .pt {
  color: var(--midori);
  font-weight: 700;
}
#service .seminar-note {
  margin-top: 3.5rem;
  background: linear-gradient(135deg, var(--sky-pale), var(--sakura-pale));
  border-radius: 16px;
  padding: 2.6rem;
  text-align: center;
}
@media screen and (max-width: 900px) {
  #service .seminar-note {
    padding: 2rem 1.3rem;
  }
}
#service .seminar-note h3 {
  color: var(--midori);
  font-size: 1.2rem;
  margin-bottom: 1rem;
  font-family: var(--serif);
  text-wrap: balance;
}
#service .seminar-note p {
  color: var(--tsuchi);
  font-size: 0.95rem;
  max-width: 680px;
  margin: 0 auto;
  text-wrap: balance;
}
@media screen and (max-width: 900px) {
  #service .seminar-note p {
    text-align: left;
  }
}

/* ====== 代表挨拶（モック .greeting 移植）====== */
#greeting .greeting {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 3.5rem;
  align-items: start;
}
@media screen and (max-width: 900px) {
  #greeting .greeting {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}
#greeting .greeting .g-photo {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(111, 176, 207, 0.2);
  background: linear-gradient(160deg, var(--sky-pale), var(--sakura-pale));
  aspect-ratio: 3/4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: var(--sky-deep);
}
@media screen and (max-width: 900px) {
  #greeting .greeting .g-photo {
    max-width: 280px;
    margin: 0 auto;
  }
}
#greeting .greeting .g-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#greeting .greeting .g-photo i {
  font-size: 3rem;
  margin-bottom: 0.6rem;
}
#greeting .greeting .g-photo small {
  font-size: 0.78rem;
  color: var(--tsuchi);
  text-align: center;
  line-height: 1.7;
}
#greeting .greeting .g-tx .ttl {
  font-family: var(--serif);
  font-size: 1.7rem;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 0.6rem;
}
#greeting .greeting .g-tx .ttl span {
  color: var(--sakura-deep);
}
@media screen and (max-width: 900px) {
  #greeting .greeting .g-tx .ttl {
    font-size: 1.4rem;
  }
}
#greeting .greeting .g-tx .g-message p {
  color: var(--tsuchi);
  font-size: 0.97rem;
  margin-bottom: 1.2rem;
}
#greeting .greeting .g-tx .name {
  text-align: right;
  margin: 2rem 0 0;
  color: var(--tsuchi);
}
@media screen and (max-width: 900px) {
  #greeting .greeting .g-tx .name {
    font-size: 0.88rem;
    line-height: 1.8;
  }
}
#greeting .greeting .g-tx .name b {
  font-size: 1.3rem;
  color: var(--ink);
  margin-left: 0.5rem;
  font-family: var(--serif);
}
@media screen and (max-width: 900px) {
  #greeting .greeting .g-tx .name b {
    font-size: 1.15rem;
  }
}
#greeting .career {
  margin-top: 3.5rem;
}
#greeting .career h3 {
  font-size: 1.2rem;
  color: var(--sky-deep);
  margin-bottom: 1.6rem;
  text-align: center;
  font-family: var(--serif);
}
#greeting .career .career-line {
  max-width: 760px;
  margin: 0 auto;
}
#greeting .career .career-line .career-item {
  display: flex;
  gap: 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px dashed #d8cfc2;
}
@media screen and (max-width: 900px) {
  #greeting .career .career-line .career-item {
    flex-direction: column;
    gap: 0.3rem;
  }
}
#greeting .career .career-line .career-item .yr {
  flex: 0 0 130px;
  color: var(--sakura-deep);
  font-weight: 700;
  font-size: 0.92rem;
}
@media screen and (max-width: 900px) {
  #greeting .career .career-line .career-item .yr {
    flex: none;
  }
}
#greeting .career .career-line .career-item .ev {
  color: var(--tsuchi);
  font-size: 0.93rem;
}

/* ====== 会社概要（モック company_table 移植）====== */
#company .company_contents {
  margin-bottom: 3rem;
}
#company .company_table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(111, 176, 207, 0.12);
}
#company .company_table th, #company .company_table td {
  padding: 1.1rem 1.6rem;
  text-align: left;
  font-size: 0.93rem;
  border-bottom: 1px solid #efeae2;
}
#company .company_table th {
  background: var(--sky-pale);
  color: var(--ink);
  width: 30%;
  font-weight: 500;
  white-space: nowrap;
}
@media screen and (max-width: 900px) {
  #company .company_table th {
    font-size: 0.8rem;
    padding: 0.85rem 0.7rem;
  }
}
#company .company_table td {
  color: var(--tsuchi);
}
@media screen and (max-width: 900px) {
  #company .company_table td {
    padding: 0.85rem 0.8rem;
    font-size: 0.85rem;
    line-height: 1.7;
    word-break: normal;
    overflow-wrap: anywhere;
  }
}
#company .map {
  margin-top: 2.5rem;
  border-radius: 14px;
  overflow: hidden;
  min-height: 360px;
  background: var(--tsuchi-pale);
}
#company .map iframe {
  width: 100%;
  min-height: 360px;
  border: 0;
  display: block;
}

/* ====== 支店・営業所 / 沿革（本案件は非表示。表示時の体裁）====== */
#sales .sales, #sales .philosophy, #philosophy .sales, #philosophy .philosophy {
  max-width: 1080px;
  margin: 0 auto 3rem;
  padding: 0 2rem;
}

#sales ul {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
@media screen and (max-width: 900px) {
  #sales ul {
    grid-template-columns: 1fr;
  }
}
#sales ul li {
  background: #fff;
  border-radius: 12px;
  padding: 1.4rem;
  box-shadow: 0 4px 16px rgba(111, 176, 207, 0.12);
}
#sales ul li .sales_name h4 {
  color: var(--ink);
  margin-bottom: 0.6rem;
  font-family: var(--serif);
}
#sales ul li .sales_contents p {
  color: var(--tsuchi);
  font-size: 0.9rem;
}
#sales ul li .sales_contents .tel {
  color: var(--sky-deep);
}
#sales ul li .sales_contents .tel i {
  margin-right: 0.5rem;
}

#philosophy table {
  width: 100%;
  border-collapse: collapse;
}
#philosophy table tr {
  border-bottom: 1px dashed #d8cfc2;
}
#philosophy table th, #philosophy table td {
  padding: 1rem 0.6rem;
  text-align: left;
  color: var(--tsuchi);
}
#philosophy table th {
  width: 30%;
  color: var(--sakura-deep);
  font-weight: 700;
  white-space: nowrap;
}

/* ====== お問い合わせ（モック移植 / CF7体裁）====== */
#contact .contact_lead {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 3rem;
  color: var(--tsuchi);
}
@media screen and (max-width: 900px) {
  #contact .contact_lead {
    text-align: left;
  }
}
#contact .contact_form {
  max-width: 720px;
  margin: 0 auto;
  background: var(--tsuchi-pale);
  padding: 3rem;
  border-radius: 16px;
}
@media screen and (max-width: 900px) {
  #contact .contact_form {
    padding: 2rem 1.2rem;
  }
}
#contact .contact_form label {
  display: block;
  font-size: 0.9rem;
  color: var(--ink);
  margin-bottom: 1.4rem;
  font-weight: 500;
}
#contact .contact_form .wpcf7-form-control-wrap {
  display: block;
}
#contact .contact_form input[type=text],
#contact .contact_form input[type=email],
#contact .contact_form input[type=tel],
#contact .contact_form input[type=url],
#contact .contact_form textarea {
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.85rem 1rem;
  border: 1px solid #ddd5c8;
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.95rem;
  background: #fff;
}
#contact .contact_form input[type=text]:focus,
#contact .contact_form input[type=email]:focus,
#contact .contact_form input[type=tel]:focus,
#contact .contact_form input[type=url]:focus,
#contact .contact_form textarea:focus {
  outline: none;
  border-color: var(--sky-deep);
  box-shadow: 0 0 0 3px rgba(111, 176, 207, 0.15);
}
#contact .contact_form textarea {
  height: 200px;
  resize: vertical;
}
#contact .contact_form .red {
  background: var(--logo-red);
  color: #fff;
  padding: 2px 7px;
  border-radius: 4px;
  margin-left: 8px;
  font-size: 75%;
}
#contact .contact_form .blue {
  background: var(--sky-deep);
  color: #fff;
  padding: 2px 7px;
  border-radius: 4px;
  margin-left: 8px;
  font-size: 75%;
}
#contact .contact_form input[type=submit],
#contact .contact_form button[type=submit] {
  display: block;
  margin: 1.8rem auto 0;
  background: linear-gradient(135deg, var(--wakaba), var(--midori));
  color: #fff;
  border: none;
  padding: 0.95rem 3.5rem;
  border-radius: 40px;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(79, 122, 74, 0.3);
  transition: 0.3s;
  white-space: nowrap;
}
#contact .contact_form input[type=submit]:hover,
#contact .contact_form button[type=submit]:hover {
  transform: translateY(-3px);
}
#contact .contact_form .wpcf7-response-output {
  text-align: center;
  border-radius: 8px;
  margin: 1.5rem 0 0;
  color: var(--ink);
}
#contact .contact_form .thanks {
  text-align: center;
}
#contact .contact_info {
  max-width: 720px;
  margin: 2.5rem auto 0;
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 900px) {
  #contact .contact_info {
    flex-flow: column;
  }
}
#contact .contact_info .ci-card {
  flex: 1;
  min-width: 200px;
  background: #fff;
  border-radius: 12px;
  padding: 1.5rem;
  text-align: center;
  box-shadow: 0 4px 16px rgba(111, 176, 207, 0.12);
}
#contact .contact_info .ci-card i {
  font-size: 1.5rem;
  color: var(--sakura-deep);
  margin-bottom: 0.6rem;
}
#contact .contact_info .ci-card p {
  font-size: 1.05rem;
  color: var(--ink);
}
#contact .contact_info .ci-card small {
  font-size: 0.78rem;
  color: var(--tsuchi);
}

.policy_contents {
  width: 80%;
  margin: auto;
  padding: 3rem 0;
}
@media screen and (max-width: 768px) {
  .policy_contents {
    width: 90%;
  }
}
.policy_contents h2 {
  font-size: 1.4vw;
  margin-bottom: 1rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .policy_contents h2 {
    font-size: 1.8vw;
  }
}
@media screen and (max-width: 768px) {
  .policy_contents h2 {
    font-size: 4vw;
  }
}
.policy_contents p {
  margin-bottom: 3rem;
}

/* ====== フッターCTA（モック #footer_contact 移植）====== */
#footer_contact {
  position: relative;
  padding: 5rem 2rem;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}
#footer_contact:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(79, 122, 74, 0.78), rgba(111, 176, 207, 0.7));
  z-index: 1;
}
#footer_contact .footer_contact_contents {
  position: relative;
  z-index: 2;
}
#footer_contact .footer_contact_contents .headline {
  margin-bottom: 0;
}
#footer_contact .footer_contact_contents .headline h2 {
  font-family: var(--en);
  color: #fff;
}
#footer_contact .footer_contact_contents .headline p {
  color: var(--sakura-pale);
}
#footer_contact .footer_contact_contents .footer_contact_content {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: 2rem 0;
}
@media screen and (max-width: 900px) {
  #footer_contact .footer_contact_contents .footer_contact_content {
    flex-flow: column;
    align-items: center;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a {
  text-decoration: none;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1rem 2.4rem;
  border-radius: 40px;
  font-size: 1rem;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: 0.3s;
  white-space: nowrap;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button:hover, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button {
  background: rgba(255, 255, 255, 0.95);
  color: var(--midori);
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
  background: var(--nanohana);
  color: var(--ink);
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel .pc {
  display: inline-flex;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel .sp {
  display: none;
}
@media screen and (max-width: 900px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel .pc {
    display: none;
  }
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel .sp {
    display: inline-block;
  }
}
#footer_contact .footer_contact_contents .text {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: 0.88rem;
  margin-top: 0.6rem;
}

/* ====== フッター本体 ====== */
footer {
  background: var(--ink);
  color: #fff;
  padding: 3rem 2rem 1.5rem;
}
@media screen and (max-width: 900px) {
  footer {
    padding-bottom: 5rem;
  }
}
footer .footer_menu {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.6rem;
}
footer .footer_menu ul {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  justify-content: center;
  list-style: none;
}
footer .footer_menu ul li a {
  font-size: 0.88rem;
  color: #e8e0d6;
  text-decoration: none;
  transition: 0.25s;
}
footer .footer_menu ul li a:hover {
  color: var(--sakura);
}
footer .footer_menu ul .new_twitter:before {
  content: "𝕏" !important;
  font-family: sans-serif !important;
  font-weight: bold;
}
footer .copyright {
  text-align: center;
  font-size: 0.78rem;
  color: #b5a89a;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.4rem;
}
footer .copyright .logo-mini {
  font-family: var(--logo-font);
  color: var(--sakura);
}

/*# sourceMappingURL=style.css.map */
