/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .kanesei-icon            - Material Symbols Rounded のアイコン表示
 * .kanesei-icon-yellow     - アイコン丸背景（サブカラー）
 * .kanesei-header / -tel / -sp-tel - スティッキーヘッダー、電話ピル
 * .kanesei-fixed-bar       - SP・タブレット画面下固定のTEL / MAILボタン（1100px以下）
 * .kanesei-btn / __arrow   - ピル型ボタン＋丸矢印（ホバーで矢印が右へ抜けて左から戻る）
 * .kanesei-anchor-btn      - 枠線ピル型のページ内リンクボタン（下矢印）
 * .kanesei-text / -lead    - 本文（lh2.2）／リード文
 * .kanesei-heading-*       - 見出しの色・サイズ差分（濃色英字／大見出し／CTA用）
 * .kanesei-dots            - 四角ドット柄のあしらい
 * .kanesei-mv              - TOPメインビュー（左角丸写真＋白帯キャッチ）
 * .kanesei-news            - お知らせ（白ピル行・2件表示スクロール）
 * .kanesei-photo-frame     - 白フチ＋影の写真
 * .kanesei-about-photo     - TOP About写真のあしらい（淡黄の面・ドット柄・L字線）
 * .kanesei-service / -tile - 上下楕円カーブ帯＋写真タイル（白パネル／白ピル）
 * .kanesei-cta             - お問い合わせCTA（濃色パネル＋白パネル2行リスト）
 * .kanesei-footer          - フッター（ロゴ＋社名中央揃え・電話・ボタン・地図／上下中央揃え）
 * .kanesei-hero            - 下層ページヒーロー（白文字見出し・下端波線）
 * .kanesei-greeting-photo  - 斜めストライプ面＋L字線あしらいの写真
 * .kanesei-sign            - 署名（右寄せ・点線区切り）
 * .kanesei-overview        - 会社概要（白カード内の点線区切り dl・業務内容の箇条書き）
 * .kanesei-parking         - 駐車場有（Pアイコン付き強調）
 * .kanesei-access-*        - アクセス情報・地図
 * .kanesei-band            - 濃色の帯見出し
 * .kanesei-property / -spec - 物件1件のレイアウト（メイン写真＋サムネイル3枚、4枚以上はスライダー）・情報表
 * .kanesei-deco-photo      - 淡黄の面＋ドット柄あしらいの写真
 * .kanesei-worries / -balloon / -solve / -marker - お悩み吹き出し・まとめ（蛍光ペン風マーカー・アニメーション）
 * .kanesei-flow-section / -blob / -timeline - 縦タイムライン（売却・リフォームの流れ共通）＋不定形あしらい
 * .kanesei-card-icon       - 対応できることカード（上部に写真）
 * .kanesei-contact-panel   - お問い合わせ導入（イラスト＋白い吹き出し＋電話・フォームボタン）
 * .kanesei-cms-form        - CMSお問い合わせフォームの見た目上書き（ピル型ラジオ・入力欄・送信ボタン）
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - clamp() による流動的な余白・文字サイズ（セクション余白・見出し・MV）
 *  - 角丸 17/20/22/25/28px、影 rgba(base系) の細かい値
 *  - max-width 780/880px（max-w-800/900 で代用）
 * 【指定方向不足】
 *  - MV写真の「左上・左下だけ大きく丸める」非対称角丸
 * 【状態不足】
 *  - ホバーで矢印アイコンが右へ抜けて左から戻るアニメーション
 *  - :has(input:checked) によるチェックボックスラベルの選択状態
 *  - スクロールでヘッダー背景を生成り→白＋影に切替（header-sticky は absolute→fixed 前提のため sticky 版がない）
 * 【構造不足】
 *  - 和文のみ・背景なしのヘッダーナビ（header__nav-ja 単体の見た目）、ヘッダー内の電話ピル
 *  - 白パネル／白ピルを写真に重ねるサービスタイル（card-bnr は暗幕＋白文字前提）
 *  - 左に濃色パネル・右に白パネル2行リストのCTAカード
 *  - 縦タイムライン（番号丸＋縦線＋本文）、横並びフローカード＋矢印（card-flow の値と大きく異なる）
 *  - イラスト左右に吹き出しを並べるお悩みレイアウト
 *  - 写真＋サムネイル3枚＋情報表の物件レイアウト
 * 【装飾パターン不足】
 *  - 四角ドット柄、斜めストライプ面、L字ライン、淡色面のずらし
 *  - 上下が楕円カーブの帯（border-radius: 50% / n px）＋細い縦ストライプ
 *  - SVG波線のページヒーロー下端、蛍光ペン風マーカー（スクロールで引かれるアニメーション）
 *  - 不定形（blob）写真あしらい
 *
 */

/* ==========================================================================
   Base
   ========================================================================== */
body {
  font-weight: 500;
}
@media (max-width: 896px) {
  body { font-size: 1.6rem; }
}
html {
  scroll-padding-top: 90px;
}

.kanesei-icon {
  font-family: "Material Symbols Rounded";
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}
.kanesei-icon-yellow {
  background: #EEC22D;
  color: #3A2C1C;
}

/* 見出し（英字小・黄土色＋和文） */
:where(.heading) .heading__en {
  letter-spacing: 0.24em;
}
:where(.heading) .heading__ja {
  margin-top: 6px;
  font-size: clamp(2.4rem, 2.6vw, 3.8rem);
  letter-spacing: 0.06em;
}
.kanesei-heading-dark .heading__en {
  color: #8A6122;
}
.heading .kanesei-heading-lg {
  margin-top: 20px;
  font-size: clamp(2.6rem, 3vw, 3.6rem);
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.kanesei-heading-cta .heading__en {
  color: #F8E3A0;
}
.kanesei-heading-cta .heading__ja {
  margin-top: 8px;
  font-size: clamp(2.6rem, 3vw, 3.6rem);
}

/* 本文 */
.kanesei-text {
  font-size: inherit;
  line-height: 2.2;
  color: #4A3A28;
}
.kanesei-lead {
  font-size: clamp(1.5rem, 1.5vw, 1.7rem);
  line-height: 2.1;
  color: #4A3A28;
}

/* ドット柄あしらい */
.kanesei-dots {
  position: absolute;
  pointer-events: none;
  background-image: radial-gradient(#E3CB9C 2px, transparent 2.5px);
  background-size: 14px 14px;
}

/* ==========================================================================
   Buttons（ピル型＋丸矢印）
   ========================================================================== */
.kanesei-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px 16px 32px;
  border: 0;
  border-radius: 999px;
  background: #8A6122;
  color: #fff;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.4;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
}
.kanesei-btn:hover {
  background: #6F4D18;
  color: #fff;
  opacity: 1;
}
.kanesei-btn--yellow {
  gap: 10px;
  padding: 14px 28px;
  background: #EEC22D;
  color: #3A2C1C;
  font-size: 1.5rem;
  letter-spacing: 0;
}
.kanesei-btn--yellow .kanesei-icon {
  font-size: 2rem;
}
.kanesei-btn--yellow:hover {
  background: #F4D35E;
  color: #3A2C1C;
}
.kanesei-btn--submit {
  padding: 18px 22px 18px 44px;
  font-size: 1.7rem;
  letter-spacing: 0.08em;
}
.kanesei-btn--submit .kanesei-btn__arrow {
  width: 30px;
  height: 30px;
}

.kanesei-btn__arrow {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #EEC22D;
  color: #3A2C1C;
  overflow: hidden;
}
.kanesei-btn__arrow .kanesei-icon {
  display: block;
  font-size: 1.8rem;
}
.kanesei-btn__arrow--md {
  width: 40px;
  height: 40px;
}
.kanesei-btn__arrow--md .kanesei-icon { font-size: 2rem; }
.kanesei-btn__arrow--lg {
  width: 44px;
  height: 44px;
}
.kanesei-btn__arrow--lg .kanesei-icon { font-size: 2.2rem; }
.kanesei-btn__arrow--down {
  width: 30px;
  height: 30px;
}
.kanesei-btn__arrow--down .kanesei-icon { font-size: 2rem; }

a:hover .kanesei-btn__arrow .kanesei-icon,
button:hover .kanesei-btn__arrow .kanesei-icon {
  animation: kanesei-arrow-x 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}
a:hover .kanesei-btn__arrow--down .kanesei-icon {
  animation-name: kanesei-arrow-y;
}
@keyframes kanesei-arrow-x {
  0%   { transform: translateX(0); opacity: 1; }
  45%  { transform: translateX(140%); opacity: 0; }
  46%  { transform: translateX(-140%); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes kanesei-arrow-y {
  0%   { transform: translateY(0); opacity: 1; }
  45%  { transform: translateY(140%); opacity: 0; }
  46%  { transform: translateY(-140%); opacity: 0; }
  100% { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  a:hover .kanesei-btn__arrow .kanesei-icon,
  button:hover .kanesei-btn__arrow .kanesei-icon { animation: none; }
}

.kanesei-anchor-btn {
  flex: 0 1 240px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 14px 28px;
  border: 2px solid #8A6122;
  border-radius: 999px;
  background: #fff;
  color: #8A6122;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.kanesei-anchor-btn:hover {
  background: #8A6122;
  color: #fff;
  opacity: 1;
}

/* ==========================================================================
   Header
   ========================================================================== */
.kanesei-header {
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, 0.96);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: none;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.kanesei-header--top {
  background: #FBF6EC;
}
.kanesei-header.is-scrolled,
.kanesei-header.is-menu-open {
  background: rgba(255, 255, 255, 0.96);
}
.kanesei-header.is-scrolled {
  box-shadow: 0 4px 16px rgba(58, 44, 28, 0.06);
}
.kanesei-header .header__inner {
  max-width: 1680px;
  height: auto;
  padding: 12px clamp(16px, 3.5vw, 64px);
  gap: clamp(16px, 2vw, 40px);
}
.kanesei-header .header__logo img {
  display: block;
  height: clamp(48px, 5.4vw, 78px);
}
.kanesei-header .header__nav {
  margin-left: auto;
  margin-right: auto;
  gap: 4px;
}
.kanesei-header .header__nav-item a {
  padding: 10px clamp(6px, 0.9vw, 16px);
  border-radius: 999px;
}
.kanesei-header .header__nav-item a::after {
  display: none;
}
.kanesei-header .header__nav-item a:hover {
  opacity: 1;
}
.kanesei-header .header__nav-ja {
  margin-top: 0;
  font-size: clamp(1.45rem, 1.2vw, 1.7rem);
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  transition: color 0.3s ease;
}
.kanesei-header .header__nav-item a:hover .header__nav-ja,
.kanesei-header .header__nav-item--current .header__nav-ja {
  color: #8A6122;
}

.kanesei-header-tel {
  flex: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px 8px 8px;
  border-radius: 999px;
  background: #F6EBD6;
  color: #3A2C1C;
  transition: background 0.3s ease;
}
/* TOPのみ追従前（スクロール前）は白。下層ページは追従前後とも同色 */
.kanesei-header--top:not(.is-scrolled) .kanesei-header-tel {
  background: #fff;
}
.kanesei-header .kanesei-header-tel:hover,
.kanesei-header--top:not(.is-scrolled) .kanesei-header-tel:hover {
  background: #EFDDBA;
  color: #3A2C1C;
  opacity: 1;
}
.kanesei-header-tel__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #EEC22D;
  font-size: 2rem;
}
.kanesei-header-tel__body {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.kanesei-header-tel__num {
  font-family: "Quicksand", sans-serif;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.kanesei-header-tel__time {
  font-size: 1.1rem;
  color: #6B5640;
}

/* SP：メニューボタン */
.nav-toggle {
  top: 14px;
  right: clamp(16px, 3vw, 32px);
  border-radius: 50%;
  background: #8A6122;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.nav-toggle__line {
  width: 20px;
  background: #fff;
}

/* SPメニュー（ヘッダー下に開く白パネル） */
.sp-nav {
  top: 72px;
  bottom: auto;
  display: block;
  max-height: calc(100vh - 72px);
  padding: 12px 20px 24px;
  background: #fff;
  border-bottom: 1px solid #F0E4CC;
  box-shadow: 0 20px 40px rgba(58, 44, 28, 0.12);
}
.sp-nav__list {
  max-width: none;
  text-align: left;
}
.sp-nav__item,
.sp-nav__item:first-child {
  border-top: 0;
  border-bottom: 1px dashed #E6D3AE;
}
.sp-nav__link {
  padding: 16px 4px;
  color: #3A2C1C;
  font-size: 1.6rem;
  font-weight: 700;
}
.sp-nav__link::after {
  content: "chevron_right";
  font-family: "Material Symbols Rounded";
  font-weight: normal;
  font-size: 2.4rem;
  line-height: 1;
  opacity: 1;
  color: #BD8B41;
  font-feature-settings: "liga";
}
.sp-nav__link:hover {
  background: transparent;
  color: #8A6122;
}
.sp-nav__bottom {
  max-width: none;
  margin-top: 20px;
}
.kanesei-sp-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  border-radius: 999px;
  background: #EEC22D;
  color: #3A2C1C;
  font-family: "Quicksand", sans-serif;
  font-size: 2rem;
  font-weight: 700;
}
.kanesei-sp-tel .kanesei-icon { font-size: 2.2rem; }
.kanesei-sp-tel:hover { color: #3A2C1C; }
.kanesei-sp-tel-time {
  margin-top: 10px;
  text-align: center;
  font-size: 1.3rem;
  color: #6B5640;
}

/* ==========================================================================
   TOP：メインビュー
   ========================================================================== */
.kanesei-mv {
  position: relative;
  overflow: hidden;
  padding-bottom: clamp(48px, 7vw, 96px);
  background: #FBF6EC;
}
.kanesei-mv__dots {
  left: clamp(16px, 3vw, 48px);
  bottom: clamp(40px, 7vw, 110px);
  width: clamp(120px, 16vw, 220px);
  height: clamp(80px, 10vw, 140px);
}
#slideshow {
  position: relative;
  margin-left: clamp(36px, 12vw, 200px);
  height: calc(100vh - 102px);
  height: calc(100svh - 102px);
  min-height: 560px;
  max-height: 860px;
  border-radius: clamp(40px, 7vw, 110px) 0 0 clamp(60px, 10vw, 160px);
  overflow: hidden;
  background: #F3E6CC;
}
#slideshow .swiper-slide,
#slideshow .main_slider__inner {
  width: 100%;
  height: 100%;
}
#slideshow .main_slider__inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kanesei-mv__catch {
  position: absolute;
  left: clamp(24px, 10vw, 170px);
  bottom: clamp(80px, 14vw, 220px);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(6px, 0.9vw, 12px);
  color: #3A2C1C;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.3;
  white-space: nowrap;
}
.kanesei-mv__line {
  padding: clamp(6px, 0.9vw, 12px) clamp(16px, 2vw, 28px);
  border-radius: 5px;
  background: #fff;
  font-size: clamp(18px, 2.4vw, 32px);
  box-shadow: 0 8px 20px rgba(58, 44, 28, 0.08);
}
.kanesei-mv__line:nth-child(2) {
  padding: clamp(4px, 0.6vw, 8px) clamp(16px, 2vw, 28px) clamp(5px, 0.7vw, 10px);
}
.kanesei-mv__em {
  font-size: 1.75em;
  letter-spacing: 0.06em;
  color: #E07A1F;
}

/* ==========================================================================
   TOP：お知らせ
   ========================================================================== */
.kanesei-news-section {
  padding-bottom: clamp(56px, 7vw, 96px);
}
.kanesei-news {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 154px;
  overflow-y: auto;
  padding-right: 12px;
  border-top: 0;
  scrollbar-width: thin;
  scrollbar-color: #BD8B41 #F0E4CC;
  overscroll-behavior: contain;
}
@media (max-width: 639px) {
  .kanesei-news { max-height: 200px; }
}
/* CMS出力（span#cms-news-1-area 内の li）を行間12pxのリストとして並べる */
.kanesei-news > span {
  display: contents;
}
.kanesei-news .blog-list__item {
  list-style: none;
  border-bottom: 0;
  border-radius: 999px;
  background: #fff;
}
.kanesei-news .blog-list__link,
.kanesei-news .blog-list__link:hover {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  padding: 16px 28px;
  background: transparent;
}
.kanesei-news .blog-list__date {
  flex: none;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #8A6122;
}
.kanesei-news .blog-list__title,
.kanesei-news .blog-list__link:hover .blog-list__title {
  flex: 1 1 240px;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.7;
  color: #3A2C1C;
}

/* ==========================================================================
   写真（白フチ＋影）
   ========================================================================== */
.kanesei-photo-frame {
  display: block;
  border: 10px solid #fff;
  border-radius: 22px;
  background: #F3E6CC;
  box-shadow: 0 20px 40px rgba(138, 97, 34, 0.14);
}

/* ==========================================================================
   TOP：サービス案内
   ========================================================================== */
.kanesei-service-wrap {
  overflow: hidden;
  background: #fff;
}
.kanesei-service {
  margin: 0 calc(-1 * clamp(40px, 8vw, 120px));
  padding: clamp(24px, 4vw, 56px) clamp(40px, 8vw, 120px);
  border-radius: 50% / clamp(48px, 7vw, 110px);
  background: repeating-linear-gradient(90deg, #FFFFFF 0 12px, #FCF7EE 12px 24px);
}
.kanesei-service__grid {
  gap: clamp(16px, 2vw, 24px);
}
@media (max-width: 639px) {
  .kanesei-service__grid { grid-template-columns: 1fr; }
}
.kanesei-service__stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: clamp(16px, 2vw, 24px);
}
.kanesei-service-tile {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 220px;
  padding: clamp(14px, 1.8vw, 20px);
  border-radius: 25px;
  overflow: hidden;
  background-color: #F3E6CC;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #3A2C1C;
}
.kanesei-service-tile:hover {
  color: #3A2C1C;
  opacity: 1;
}
.kanesei-service-tile--lg {
  min-height: clamp(360px, 44vw, 560px);
  padding: clamp(16px, 2vw, 24px);
}
.kanesei-service-tile__panel {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: clamp(14px, 1.6vw, 18px) 14px clamp(14px, 1.6vw, 18px) clamp(24px, 2.6vw, 34px);
  border-radius: 999px;
  background: #fff;
}
.kanesei-service-tile__body {
  flex: 1;
  min-width: 0;
}
.kanesei-service-tile__title {
  font-size: clamp(2rem, 2.2vw, 2.6rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.kanesei-service-tile__text {
  margin-top: 6px;
  font-size: 1.45rem;
  line-height: 1.8;
  color: #4A3A28;
}
.kanesei-service-tile__pill {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 10px 10px 24px;
  border-radius: 999px;
  background: #fff;
  font-size: 1.8rem;
  font-weight: 700;
}

/* ==========================================================================
   お問い合わせCTA（TOP）
   ========================================================================== */
.kanesei-cta {
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(138, 97, 34, 0.1);
}
.kanesei-cta__left {
  flex: 1 1 400px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  padding: clamp(36px, 5vw, 64px);
  background: #8A6122;
}
.kanesei-cta__lead {
  font-size: clamp(1.5rem, 1.5vw, 1.7rem);
  line-height: 2.1;
  color: #fff;
}
.kanesei-cta__right {
  flex: 1.2 1 420px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(32px, 5vw, 64px);
}
@media (max-width: 639px) {
  .kanesei-cta__left,
  .kanesei-cta__right { flex-basis: 100%; }
}
.kanesei-cta__row {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 4px;
  color: #3A2C1C;
}
.kanesei-cta__row + .kanesei-cta__row {
  border-top: 1px solid #EADBBE;
}
.kanesei-cta__row:hover {
  color: #8A6122;
  opacity: 1;
}
.kanesei-cta__icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 11px;
  background: #FBF0D0;
  color: #8A6122;
  font-size: 2.6rem;
}
.kanesei-cta__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.kanesei-cta__label {
  font-size: 1.3rem;
  font-weight: 700;
  color: #8A6122;
}
.kanesei-cta__tel {
  font-family: "Quicksand", sans-serif;
  font-size: clamp(2.6rem, 3vw, 3.4rem);
  font-weight: 700;
}
.kanesei-cta__note {
  font-size: 1.2rem;
  color: #6B5640;
}
.kanesei-cta__form {
  font-size: 2rem;
  font-weight: 700;
}
.kanesei-cta__arrow {
  flex: none;
  font-size: 2.6rem;
  color: #BD8B41;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.kanesei-footer {
  padding: clamp(56px, 6vw, 72px) 0 28px;
  background: #3A2C1C;
  color: #F3E9D6;
}
.kanesei-footer .footer-body__inner {
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(32px, 5vw, 64px);
  max-width: 1280px;
  padding: 0 clamp(20px, 4vw, 40px);
}
/* フッター：左＝ロゴ・住所／連絡先・ナビ（内容幅）、右＝地図（残り幅・最大520px） */
.kanesei-footer .footer-body__inner {
  flex-wrap: nowrap;
  justify-content: space-between;
}
.kanesei-footer .footer-body__left {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 32px clamp(32px, 4vw, 64px);
}
.kanesei-footer .footer-body__right {
  flex: 1 1 360px;
  width: auto;
  min-width: 0;
  max-width: 520px;
}
.kanesei-footer .footer-body__info {
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .kanesei-footer .footer-body__right { flex-basis: 300px; }
}
@media (max-width: 896px) {
  .kanesei-footer .footer-body__inner { flex-wrap: wrap; }
  .kanesei-footer .footer-body__left { flex-basis: 100%; width: 100%; }
  .kanesei-footer .footer-body__right { flex-basis: 100%; width: 100%; max-width: none; }
  .kanesei-footer .kanesei-footer__map { height: 260px; }
}
@media (max-width: 639px) {
  .kanesei-footer .footer-body__left { flex-wrap: wrap; }
  .kanesei-footer .kanesei-footer__map { height: 220px; }
}
.kanesei-footer__info {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.kanesei-footer__logo {
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 0;
}
.kanesei-footer .kanesei-footer__logo img {
  display: block;
  height: 64px;
}
.kanesei-footer__name {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #fff;
}
.kanesei-footer .footer-body__info {
  margin-bottom: 0;
  font-size: 1.4rem;
  line-height: 1.9;
  color: #F3E9D6;
}
.kanesei-footer__contact {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 6px;
}
.kanesei-footer__tel {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
}
.kanesei-footer__tel:hover {
  color: #EEC22D;
  opacity: 1;
}
.kanesei-footer__tel .icon-circle {
  width: 44px;
  height: 44px;
  font-size: 2.2rem;
}
.kanesei-footer__tel-body {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.kanesei-footer__tel-num {
  font-family: "Quicksand", sans-serif;
  font-size: 2.6rem;
  font-weight: 700;
  white-space: nowrap;
}
.kanesei-footer__tel-time {
  font-size: 1.2rem;
  color: #E2D3B8;
}
.kanesei-footer__map {
  height: 220px;
  border-radius: 0;
  background: #4A3A28;
}
.kanesei-footer__bottom {
  max-width: 1200px;
  width: calc(100% - 2 * clamp(20px, 4vw, 40px));
  margin: clamp(40px, 5vw, 56px) auto 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(243, 233, 214, 0.18);
}
@media (max-width: 639px) {
  .kanesei-footer__bottom { padding-bottom: 0; }
}
.kanesei-footer__bottom .footer-bottom__copyright {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #CDBB9C;
}

/* ==========================================================================
   下層ページヒーロー
   ========================================================================== */
.kanesei-hero {
  background: #F3E6CC;
}
.kanesei-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 3;
  height: clamp(24px, 3vw, 40px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 20 C120 0 240 0 360 20 S600 40 720 20 S960 0 1080 20 S1320 40 1440 20 V40 H0Z' fill='%23FFFFFF'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  pointer-events: none;
}
.kanesei-hero__overlay {
  background: rgba(189, 139, 65, 0.45);
}
.kanesei-hero__content {
  align-items: center;
  justify-content: center;
  max-width: 1160px;
  min-height: clamp(260px, 32vw, 380px);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 40px) clamp(64px, 8vw, 96px);
}
.kanesei-hero__title {
  color: #fff;
  text-shadow: 0 2px 16px rgba(58, 44, 28, 0.35);
  font-size: clamp(3rem, 3.4vw, 8rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
}

/* ==========================================================================
   会社情報
   ========================================================================== */
.kanesei-greeting-photo {
  position: relative;
  max-width: 470px;
  margin: clamp(20px, 3vw, 36px) clamp(20px, 3vw, 36px) 0 0;
}
.kanesei-greeting-photo::before {
  content: "";
  position: absolute;
  top: calc(-1 * clamp(20px, 3vw, 36px));
  right: calc(-1 * clamp(20px, 3vw, 36px));
  width: 72%;
  height: 72%;
  border-radius: 22px;
  background: repeating-linear-gradient(135deg, #F6EBD6 0 2px, transparent 2px 12px);
}
.kanesei-greeting-photo::after {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(10px, 1.6vw, 18px));
  bottom: calc(-1 * clamp(10px, 1.6vw, 18px));
  width: clamp(64px, 8vw, 96px);
  aspect-ratio: 1 / 1;
  border-left: 6px solid #EEC22D;
  border-bottom: 6px solid #EEC22D;
  border-bottom-left-radius: 28px;
}
.kanesei-greeting-photo img {
  position: relative;
  z-index: 1;
  display: block;
  border-radius: 22px;
  background: #F3E6CC;
  object-position: 40% center;
  box-shadow: 0 20px 40px rgba(138, 97, 34, 0.14);
}

.kanesei-sign {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  width: min(100%, 320px);
  margin-left: auto;
  padding-top: 12px;
  border-top: 2px dotted #E6D3AE;
}
.kanesei-sign__role {
  font-size: 1.3rem;
  color: #6B5640;
}
.kanesei-sign__name {
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.kanesei-overview {
  padding: clamp(12px, 3vw, 32px) clamp(20px, 4vw, 48px);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(138, 97, 34, 0.08);
}
.kanesei-overview__row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  padding: 20px 0;
  border-bottom: 2px dotted #E6D3AE;
}
.kanesei-overview__row:last-child {
  border-bottom: 0;
}
.kanesei-overview dt {
  flex: 0 0 180px;
  font-size: 1.7rem;
  font-weight: 700;
  color: #8A6122;
}
.kanesei-overview dd {
  flex: 1 1 300px;
  font-size: 1.7rem;
  line-height: 1.9;
}
@media (max-width: 896px) {
  .kanesei-overview dt { flex-basis: 160px; font-size: 1.5rem; }
  .kanesei-overview dd { font-size: 1.5rem; }
}

.kanesei-access-info {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 40px;
  font-size: 1.6rem;
}
.kanesei-access-info li {
  display: flex;
  align-items: center;
  gap: 8px;
}
.kanesei-access-info .kanesei-icon {
  font-size: 2.2rem;
  color: #BD8B41;
}
.kanesei-access-map {
  aspect-ratio: 16 / 8;
  min-height: 280px;
  border-radius: 22px;
  background: #EFE6D4;
}

/* ==========================================================================
   物件情報
   ========================================================================== */
.kanesei-intro {
  padding-top: clamp(56px, 7vw, 88px);
}
.kanesei-property-section {
  padding: clamp(56px, 7vw, 88px) 0 clamp(40px, 5vw, 64px);
}
.kanesei-property-section--last {
  padding: clamp(40px, 5vw, 64px) 0 clamp(72px, 9vw, 120px);
}
.kanesei-band {
  padding: 18px clamp(20px, 3vw, 32px);
  border-radius: 7px;
  background: #8A6122;
  color: #fff;
  font-size: clamp(2.2rem, 2.4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.kanesei-property__title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: clamp(20px, 3vw, 32px);
  padding-bottom: 16px;
  border-bottom: 2px dotted #E6D3AE;
  font-size: clamp(1.9rem, 2vw, 2.3rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.kanesei-property__title::before {
  content: "";
  flex: none;
  width: 6px;
  height: 1.3em;
  border-radius: 3px;
  background: #BD8B41;
}
.kanesei-property__body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(24px, 4vw, 56px);
}
.kanesei-property__photos {
  flex: 1 1 340px;
  min-width: 0;
  max-width: 540px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.kanesei-property__thumbs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
/* サムネイルが4枚以上のときはスライダー（横にスワイプ） */
.kanesei-property__thumbs--slider {
  display: block;
  width: 100%;
  touch-action: pan-y; /* 横スワイプはJSで1枚ずつ送る */
}
/* スライダーの丸矢印ページャ（サムネイル列の左右端に重ねる） */
.kanesei-property__thumbs-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #EEC22D;
  color: #3A2C1C;
  box-shadow: 0 2px 6px rgba(58, 44, 28, 0.25);
  cursor: pointer;
  transform: translateY(-50%);
  transition: opacity 0.3s ease, background 0.3s ease;
}
.kanesei-property__thumbs-nav .kanesei-icon {
  font-size: 1.8rem;
}
.kanesei-property__thumbs-nav:hover {
  background: #F4D35E;
}
.kanesei-property__thumbs-nav:focus-visible {
  outline: 3px solid #BD8B41;
  outline-offset: 2px;
}
.kanesei-property__thumbs-nav--prev {
  left: 6px;
}
.kanesei-property__thumbs-nav--next {
  right: 6px;
}
.kanesei-property__main {
  display: block;
  border-radius: 17px;
  background: #F3E6CC;
}
.kanesei-property__thumb {
  display: block;
  border-radius: 10px;
  background: #F3E6CC;
}
.kanesei-property__main {
  transition: opacity 0.25s ease;
}
.kanesei-property__main.is-changing {
  opacity: 0;
}
.kanesei-property__main.js-gallery-main {
  cursor: zoom-in;
}
.kanesei-property__main:focus-visible {
  outline: 3px solid #BD8B41;
  outline-offset: 3px;
}
/* 物件写真のライトボックス（大窓クリックで拡大） */
.kanesei-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  background: rgba(30, 22, 12, 0.85);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  cursor: zoom-out;
}
.kanesei-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.kanesei-lightbox__img {
  display: block;
  max-width: min(1000px, 100%);
  max-height: 100%;
  border-radius: 10px;
  background: #fff;
  object-fit: contain;
  cursor: default;
}
.kanesei-lightbox__close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #EEC22D;
  color: #3A2C1C;
  cursor: pointer;
}
.kanesei-lightbox__close .kanesei-icon {
  font-size: 2.4rem;
}
.kanesei-lightbox__close:hover {
  background: #F4D35E;
}
.kanesei-property__thumb-btn {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: none;
  cursor: pointer;
  overflow: hidden;
}
.kanesei-property__thumb-btn img {
  transition: opacity 0.3s ease, transform 0.4s ease;
}
.kanesei-property__thumb-btn:hover img {
  opacity: 0.8;
  transform: scale(1.05);
}
.kanesei-property__thumb-btn:focus-visible {
  outline: 3px solid #BD8B41;
  outline-offset: 2px;
}
.kanesei-spec {
  flex: 1.2 1 360px;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #EADBBE;
  border-radius: 14px;
}
.kanesei-spec .table-basic th,
.kanesei-spec .table-basic td {
  padding: 18px 20px;
  border: 0;
  border-bottom: 1px solid #EADBBE;
  font-size: 1.5rem;
  line-height: 1.7;
  vertical-align: middle;
}
.kanesei-spec .table-basic th {
  width: 26%;
  min-width: 96px;
  padding: 18px 16px;
  border-right: 1px solid #EADBBE;
  background: #FBF6EC;
  color: #8A6122;
  font-weight: 700;
  text-align: center;
}
.kanesei-spec .table-basic tr:last-child th,
.kanesei-spec .table-basic tr:last-child td {
  border-bottom: 0;
}

/* ==========================================================================
   写真あしらい（淡黄の面＋ドット柄）
   ========================================================================== */
.kanesei-deco-photo {
  position: relative;
  max-width: 492px;
  margin: clamp(16px, 2.5vw, 28px) clamp(16px, 2.5vw, 28px) clamp(16px, 2.5vw, 28px) 0;
}
.kanesei-deco-photo::before {
  content: "";
  position: absolute;
  top: clamp(16px, 2.5vw, 28px);
  left: clamp(16px, 2.5vw, 28px);
  right: calc(-1 * clamp(16px, 2.5vw, 28px));
  bottom: calc(-1 * clamp(16px, 2.5vw, 28px));
  border-radius: 22px;
  background: #FBF0D0;
}
.kanesei-deco-photo__dots {
  top: calc(-1 * clamp(12px, 2vw, 24px));
  left: calc(-1 * clamp(12px, 2vw, 24px));
  width: clamp(80px, 10vw, 120px);
  aspect-ratio: 1 / 1;
  background-image: radial-gradient(#D9BE8C 2px, transparent 2.5px);
}
.kanesei-deco-photo img {
  position: relative;
  display: block;
  border-radius: 22px;
  background: #F3E6CC;
  box-shadow: 0 20px 40px rgba(138, 97, 34, 0.14);
}
.kanesei-deco-photo--left {
  margin: clamp(16px, 2.5vw, 28px) 0 clamp(16px, 2.5vw, 28px) clamp(16px, 2.5vw, 28px);
}
.kanesei-deco-photo--left::before {
  left: calc(-1 * clamp(16px, 2.5vw, 28px));
  right: clamp(16px, 2.5vw, 28px);
}
.kanesei-deco-photo--left .kanesei-deco-photo__dots {
  left: auto;
  right: calc(-1 * clamp(12px, 2vw, 24px));
}
.kanesei-obj-60 {
  object-position: 60% center;
}
@media (max-width: 896px) {
  .kanesei-column-reverse-sp { flex-direction: column-reverse; }
  .kanesei-column-reverse-sp > .column2__child:not(:last-child) { margin-bottom: 0; }
  .kanesei-column-reverse-sp > .column2__child:last-child { margin-bottom: 30px; }
}

/* ==========================================================================
   売却：こんなお悩みありませんか？
   ========================================================================== */
.kanesei-worries {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 3vw, 40px);
}
.kanesei-worries__list {
  flex: 1 1 230px;
  min-width: 0;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.kanesei-worries__illust {
  flex: 0 0 auto;
  display: block;
  width: clamp(180px, 22vw, 300px);
  max-width: 100%;
  height: auto;
}
.kanesei-balloon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 88px;
  padding: 16px 22px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(138, 97, 34, 0.08);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}
.kanesei-balloon::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 14px;
  height: 24px;
  transform: translateY(-50%);
  background: #fff;
}
.kanesei-balloon--right::after {
  right: -12px;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.kanesei-balloon--left::after {
  left: -12px;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
.kanesei-solve {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2vw, 24px);
  margin-top: clamp(32px, 4vw, 48px);
  text-align: center;
}
.kanesei-solve__triangle {
  width: 56px;
  height: 28px;
  background: #BD8B41;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.kanesei-solve__copy {
  font-size: clamp(2.2rem, 3vw, 3.4rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
.kanesei-solve__name {
  color: #8A6122;
}
/* 蛍光ペン風マーカー（まっすぐ・左から引くアニメーション） */
.kanesei-marker {
  padding: 0 0.1em;
  background-image: linear-gradient(transparent 58%, rgba(238, 194, 45, 0.55) 58%, rgba(238, 194, 45, 0.55) 92%, transparent 92%);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 100%;
  transition: background-size 0.9s cubic-bezier(0.65, 0, 0.35, 1);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.kanesei-marker.is-active {
  background-size: 100% 100%;
}
.kanesei-marker--delay {
  transition-delay: 0.7s;
}
@media (prefers-reduced-motion: reduce) {
  .kanesei-marker { transition: none; }
}

/* ==========================================================================
   売却：流れ（縦タイムライン）
   ========================================================================== */
.kanesei-flow-section {
  position: relative;
  overflow: hidden;
}
.kanesei-flow-section__deco {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.kanesei-blob {
  position: absolute;
  aspect-ratio: 1 / 1;
}
.kanesei-blob--photo {
  top: 10%;
  right: -3%;
  width: 26%;
  border-radius: 48% 52% 44% 56% / 52% 46% 54% 48%;
  background-color: #F3E6CC;
  background-position: center;
  background-size: cover;
}
.kanesei-blob--yellow {
  left: -8%;
  bottom: 6%;
  width: 30%;
  border-radius: 56% 44% 52% 48% / 46% 54% 46% 54%;
  background: #F6E7B8;
  opacity: 0.5;
}
.kanesei-timeline {
  max-width: 820px;
  margin: 0 auto;
}
.kanesei-timeline__item {
  position: relative;
  display: flex;
  gap: clamp(18px, 3vw, 32px);
  min-height: 100px;
}
.kanesei-timeline__item:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 70px;
  bottom: 6px;
  left: 30.5px;
  width: 3px;
  border-radius: 3px;
  background: #F0E4CC;
}
.kanesei-timeline__num {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #EEC22D;
  color: #3A2C1C;
  font-family: "Quicksand", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
}
.kanesei-timeline__body {
  flex: 1;
  min-width: 0;
  padding: 14px 0 clamp(28px, 4vw, 40px);
}
.kanesei-timeline__title {
  margin-bottom: 8px;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.kanesei-timeline__text {
  font-size: 1.6rem;
  line-height: 1.9;
  color: #4A3A28;
}

/* ==========================================================================
   リフォーム：対応できること
   ========================================================================== */
.kanesei-service-cards {
  gap: 20px;
}
.kanesei-card-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  overflow: hidden;
  padding: 0 24px 30px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(138, 97, 34, 0.08);
}
.kanesei-card-icon .kanesei-card-icon__img {
  display: block;
  margin-bottom: 6px;
  background: #F3E6CC;
}
.kanesei-card-icon .card-icon__title {
  margin-bottom: 0;
  font-size: 1.9rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.kanesei-card-icon .card-icon__text {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #4A3A28;
}

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.kanesei-contact-section {
  padding-bottom: clamp(48px, 6vw, 72px);
}
.kanesei-heading-brown .heading__ja {
  color: #653608;
}
.kanesei-contact-panel {
  display: flex;
  align-items: center;
  gap: clamp(32px, 5vw, 64px);
  padding: clamp(40px, 5vw, 64px) clamp(24px, 5vw, 72px);
  border-radius: 28px;
  background: #FBF6EC;
}
.kanesei-contact-panel__illust {
  flex: 0 0 30%;
  max-width: 300px;
  height: auto;
}
.kanesei-contact-panel__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.kanesei-contact-panel__lead {
  padding: 28px 36px;
  border-radius: 22px;
  background: #fff;
  font-size: clamp(1.6rem, 1.5vw, 1.8rem);
  font-weight: 700;
  line-height: 2;
}
.kanesei-contact-panel__btns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.kanesei-contact-panel__tel,
.kanesei-contact-panel__form {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 96px;
  padding: 16px 24px;
  border: 2px solid #8A6122;
  border-radius: 16px;
  transition: background 0.3s ease, color 0.3s ease;
}
.kanesei-contact-panel__tel {
  background: #8A6122;
  color: #fff;
}
.kanesei-contact-panel__tel:hover {
  border-color: #6F4D18;
  background: #6F4D18;
  color: #fff;
  opacity: 1;
}
.kanesei-contact-panel__tel-icon {
  flex: none;
  color: #F8E3A0;
  font-size: 3.2rem;
}
.kanesei-contact-panel__tel-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.3;
}
.kanesei-contact-panel__tel-num {
  font-family: "Quicksand", sans-serif;
  font-size: clamp(2.4rem, 2.4vw, 3.2rem);
  font-weight: 700;
  white-space: nowrap;
}
.kanesei-contact-panel__tel-note {
  margin-top: 2px;
  font-size: 1.3rem;
}
.kanesei-contact-panel__fax {
  white-space: nowrap;
}
.kanesei-contact-panel__fax::before {
  content: " ／ ";
}
@media (max-width: 896px) {
  .kanesei-contact-panel__fax { display: block; }
  .kanesei-contact-panel__fax::before { content: none; }
}
.kanesei-contact-panel__form {
  justify-content: center;
  background: #fff;
  color: #8A6122;
  font-size: clamp(1.6rem, 1.5vw, 1.9rem);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.kanesei-contact-panel__form .kanesei-icon {
  font-size: 3rem;
}
.kanesei-contact-panel__form:hover {
  background: #8A6122;
  color: #fff;
  opacity: 1;
}
@media (max-width: 1100px) {
  .kanesei-contact-panel__btns { grid-template-columns: 1fr; }
  .kanesei-contact-panel__tel,
  .kanesei-contact-panel__form { min-height: 84px; }
}
@media (max-width: 896px) {
  .kanesei-contact-panel { flex-direction: column; }
  .kanesei-contact-panel__illust { flex-basis: auto; width: 220px; }
  .kanesei-contact-panel__body { width: 100%; }
  .kanesei-contact-panel__btns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  .kanesei-contact-panel__illust { width: 180px; }
  .kanesei-contact-panel__lead { padding: 20px 22px; }
  .kanesei-contact-panel__btns { grid-template-columns: 1fr; gap: 14px; }
  .kanesei-contact-panel__tel,
  .kanesei-contact-panel__form { min-height: 76px; padding: 14px 20px; }
}

.kanesei-form-section {
  padding: 0 0 clamp(64px, 8vw, 104px);
}
.kanesei-form-heading {
  gap: clamp(14px, 2vw, 24px);
  color: #653608;
  font-size: clamp(2.2rem, 2.4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  white-space: nowrap;
}
.kanesei-form-heading::before,
.kanesei-form-heading::after {
  height: 2px;
  border-radius: 2px;
  background: #E6D3AE;
}
/* お問い合わせフォーム（CMS出力 .form-contents.form-pattern-1 をサイトデザインに合わせて上書き） */
.kanesei-cms-form .form-contents {
  padding: clamp(24px, 5vw, 56px);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(138, 97, 34, 0.08);
}
.kanesei-cms-form .form-contents form dl {
  margin-bottom: 36px;
}
.kanesei-cms-form .form-contents form dl dt:not(.pattern-exclusion) {
  float: none;
  width: 100%;
  margin: 0 0 10px;
  padding-top: 0;
}
.kanesei-cms-form .form-contents form dl dt:not(.pattern-exclusion) span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 1.6rem;
  font-weight: 700;
}
.kanesei-cms-form .form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span::before {
  top: 0;
  order: 2;
  margin: 0;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 1.1rem;
  line-height: 1.5;
}
.kanesei-cms-form .form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  background: #8A6122;
}
.kanesei-cms-form .form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  content: "任意";
  background: #F3E6CC;
  color: #6B5640;
}
.kanesei-cms-form .form-contents form dl dd:not(.pattern-exclusion) {
  margin-bottom: 28px;
  padding: 0;
  border-bottom: 0;
}
.kanesei-cms-form .form-contents form dl dd:not(.pattern-exclusion):last-child {
  margin-bottom: 0;
}
.kanesei-cms-form .form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea {
  height: auto;
  padding: 16px 20px;
  border: 2px solid #EADBBE;
  border-radius: 11px;
  background: #FFFDF8;
  color: #3A2C1C;
  font-family: inherit;
  font-size: 1.6rem;
  line-height: 1.8;
}
.kanesei-cms-form .form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus {
  border-color: #BD8B41;
  outline: none;
}
.kanesei-cms-form .form-contents dd:not(.pattern-exclusion) textarea.textarea {
  resize: vertical;
}
/* お問い合わせ種別（ラジオ）をピル型に */
.kanesei-cms-form .form-contents dd:not(.pattern-exclusion) label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 10px 10px 0;
  padding: 12px 20px;
  border: 2px solid #EADBBE;
  border-radius: 999px;
  background: #FFFDF8;
  font-size: 1.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.3s ease, background 0.3s ease;
}
.kanesei-cms-form .form-contents dd:not(.pattern-exclusion) label:has(input:checked) {
  border-color: #8A6122;
  background: #FBF0D0;
}
.kanesei-cms-form .form-contents dd:not(.pattern-exclusion) label input.radio {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #8A6122;
}
/* 送信ボタン */
.kanesei-cms-form .form-contents.form-pattern-1 .submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 260px;
  margin: 0 auto;
  padding: 18px 44px;
  border: 0;
  border-radius: 999px;
  background: #8A6122;
  color: #fff;
  font-family: inherit;
  font-size: 1.7rem;
  letter-spacing: 0.08em;
  transition: background 0.3s ease;
}
.kanesei-cms-form .form-contents.form-pattern-1 .submit-btn:hover {
  background: #6F4D18;
}
.kanesei-cms-form .form-contents.form-pattern-1 .submit-btn::before {
  background-color: #EEC22D;
}
/* エラー・送信完了 */
.kanesei-cms-form .form-contents .form-err-msg {
  border-radius: 11px;
}
.kanesei-cms-form .form-contents.form-pattern-1 .form-thanks-msg {
  border: 0;
  line-height: 2;
}
.kanesei-cms-form .form-contents.form-pattern-1 .form-thanks-msg .back-home-btn a {
  border: 0;
  border-radius: 999px;
  background: #8A6122;
}
.kanesei-cms-form .form-contents.form-pattern-1 .form-thanks-msg .back-home-btn a:hover {
  background: #6F4D18;
}

/* TOP：かねせい不動産について（写真と本文の間隔をデザインに合わせる） */
@media (min-width: 897px) {
  .kanesei-about > .column2__child:last-child { width: 52%; }
}

/* 売却・リフォーム：ご相談（本文49%／写真43.5%） */
@media (min-width: 897px) {
  .kanesei-col-consult > .column2__child:first-child { width: 49%; }
  .kanesei-col-consult > .column2__child:last-child { width: 43.5%; }
  .kanesei-col-consult--reverse > .column2__child:first-child { width: 43.5%; }
  .kanesei-col-consult--reverse > .column2__child:last-child { width: 49%; }
}

/* TOP：かねせい不動産について（写真を大きく：写真52%／本文43%） */
@media (min-width: 897px) {
  .kanesei-about-top > .column2__child:first-child { width: 52%; }
  .kanesei-about-top > .column2__child:last-child { width: 43%; }
}

/* 会社情報：代表あいさつ（写真44%／本文50%） */
@media (min-width: 897px) {
  .kanesei-greeting-cols > .column2__child:first-child { width: 44%; }
  .kanesei-greeting-cols > .column2__child:last-child { width: 50%; }
}

/* TOP：かねせい不動産について 写真あしらい（淡黄の面を左下にずらす＋右上にドット柄＋左上にL字線） */
.kanesei-about-photo {
  position: relative;
  margin: clamp(16px, 2.5vw, 32px) clamp(16px, 2.5vw, 32px) clamp(16px, 2.5vw, 32px) clamp(16px, 2.5vw, 32px);
}
.kanesei-about-photo::before {
  content: "";
  position: absolute;
  top: clamp(24px, 4vw, 56px);
  right: clamp(24px, 4vw, 56px);
  bottom: calc(-1 * clamp(16px, 2.5vw, 32px));
  left: calc(-1 * clamp(16px, 2.5vw, 32px));
  border-radius: 22px;
  background: #FBF0D0;
}
.kanesei-about-photo::after {
  content: "";
  position: absolute;
  top: calc(-1 * clamp(10px, 1.6vw, 18px));
  left: calc(-1 * clamp(10px, 1.6vw, 18px));
  z-index: 2;
  width: clamp(56px, 7vw, 88px);
  aspect-ratio: 1 / 1;
  border-top: 6px solid #EEC22D;
  border-left: 6px solid #EEC22D;
  border-top-left-radius: 28px;
  pointer-events: none;
}
.kanesei-about-photo__dots {
  top: calc(-1 * clamp(14px, 2.2vw, 28px));
  right: calc(-1 * clamp(14px, 2.2vw, 28px));
  width: clamp(90px, 11vw, 140px);
  height: clamp(70px, 8vw, 100px);
}
.kanesei-about-photo img {
  position: relative;
  z-index: 1;
}
@media (max-width: 896px) {
  .kanesei-about-top > .column2__child { width: 100%; }
}

/* TOP：サービス案内 ホバーで写真を少し拡大 */
.kanesei-service-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  transition: transform 0.6s ease;
}
.kanesei-service-tile:hover::before {
  transform: scale(1.06);
}
.kanesei-service-tile__panel,
.kanesei-service-tile__pill {
  position: relative;
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .kanesei-service-tile::before { transition: none; }
}
.kanesei-card-icon .kanesei-card-icon__img {
  width: calc(100% + 48px);
  max-width: none;
  margin-left: -24px;
  margin-right: -24px;
}

/* 会社概要：駐車場有（Pアイコン＋色変更） */
.kanesei-parking {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #8A6122;
  font-weight: 700;
}
.kanesei-parking .kanesei-icon {
  font-size: 1.25em;
  color: #BD8B41;
}

/* TOP：CMSスライダーを角丸枠の高さに合わせる（CMS側の高さ変数 auto を上書き） */
#slideshow #cms-slider-1-1-area {
  height: 100%;
}
#slideshow #main_slider.slider_wrapper {
  --swiper-wrapper-height: 100%;
}


/* 会社概要：業務内容の箇条書き */
.kanesei-overview .kanesei-overview__list li {
  position: relative;
  padding-left: 1.1em;
}
.kanesei-overview .kanesei-overview__list li::before {
  content: "";
  position: absolute;
  top: 0.8em;
  left: 0.15em;
  width: 0.45em;
  height: 0.45em;
  border-radius: 50%;
  background: #EEC22D;
}

/* ==========================================================================
   タブレット（896px以下）調整
   ========================================================================== */
@media (max-width: 896px) {

  /* 縦積み時の写真：中央寄せ＋幅を抑える */
  .kanesei-about-photo { max-width: 560px; margin-left: auto; margin-right: auto; }
  .kanesei-greeting-photo { max-width: 480px; margin-left: auto; margin-right: auto; }
  .kanesei-deco-photo,
  .kanesei-deco-photo--left { max-width: 520px; margin-left: auto; margin-right: auto; }

  /* 物件写真：中央寄せ */
  .kanesei-property__photos { flex-basis: 100%; margin: 0 auto; }

  /* 売却フロー：写真のあしらいを小さく右上へ */
  .kanesei-blob--photo { top: 2%; right: -8%; width: 24%; }
}

/* ==========================================================================
   スマホ（639px以下）調整
   ========================================================================== */
@media (max-width: 639px) {

  /* お知らせ：2行になるため角丸を控えめに */
  .kanesei-news .blog-list__item { border-radius: 20px; }
  .kanesei-news .blog-list__link,
  .kanesei-news .blog-list__link:hover { padding: 14px 22px; gap: 4px 16px; }

  /* お問い合わせCTA：電話番号が折り返さないよう詰める */
  .kanesei-cta__right { padding: 16px 20px; }
  .kanesei-cta__row { gap: 12px; padding: 20px 0; }
  .kanesei-cta__icon { width: 44px; height: 44px; font-size: 2.2rem; }
  .kanesei-cta__tel { font-size: 2.4rem; white-space: nowrap; }
  .kanesei-cta__form { font-size: 1.8rem; }
  .kanesei-cta__arrow { font-size: 2.2rem; }

  /* 売却フロー：写真あしらいは本文に重なるため非表示、番号丸を小さく */
  .kanesei-blob--photo { display: none; }
  .kanesei-timeline__item { gap: 16px; }
  .kanesei-timeline__num { width: 48px; height: 48px; font-size: 1.9rem; }
  .kanesei-timeline__item:not(:last-child)::before { top: 54px; left: 22.5px; }
  .kanesei-timeline__body { padding-top: 8px; }
  .kanesei-timeline__title { font-size: 1.8rem; }
}

/* ==========================================================================
   SP・タブレット固定ボタン（TEL / MAIL）：ハンバーガーメニュー表示幅（1100px以下）
   ========================================================================== */
.kanesei-fixed-bar {
  gap: 8px;
  padding: 8px 10px;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  border-top: 0;
  box-shadow: 0 -4px 16px rgba(58, 44, 28, 0.1);
}
@media (min-width: 897px) and (max-width: 1100px) {
  .kanesei-fixed-bar { display: flex; }
}
@media (max-width: 1100px) {
  body { padding-bottom: 68px; }
}
.kanesei-fixed-bar .sp-fixed-bar__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px;
  padding: 0;
  border-radius: 999px;
  font-family: "Quicksand", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  transition: background 0.3s ease;
}
.kanesei-fixed-bar .sp-fixed-bar__link .kanesei-icon {
  font-size: 2.2rem;
}
.kanesei-fixed-bar .kanesei-fixed-bar__tel {
  background: #8A6122;
  color: #fff;
}
.kanesei-fixed-bar .kanesei-fixed-bar__tel:hover {
  background: #6F4D18;
  color: #fff;
  opacity: 1;
}
.kanesei-fixed-bar .kanesei-fixed-bar__mail {
  background: #EEC22D;
  color: #3A2C1C;
}
.kanesei-fixed-bar .kanesei-fixed-bar__mail:hover {
  background: #F4D35E;
  color: #3A2C1C;
  opacity: 1;
}

/* スマホ：フッターを中央揃え */
@media (max-width: 639px) {
  .kanesei-footer .footer-body__left {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .kanesei-footer__info,
  .kanesei-footer__contact {
    align-items: center;
  }
  .kanesei-footer__logo {
    align-self: center;
  }
}

/* タブレット・スマホ（ハンバーガーメニュー表示幅）：メインビュー高さ 60vh */
@media (max-width: 1100px) {
  #slideshow { height: 60vh; height: 60svh; min-height: 0; }
}

/* アクセス：住所（アイコン 〒 住所 を1行で表示。狭い画面では住所のかたまりごと次の行へ） */
.kanesei-access-address .kanesei-icon { order: -1; }
.kanesei-access-address .kanesei-access-zip,
.kanesei-access-address .kanesei-access-street { white-space: nowrap; }
@media (max-width: 639px) {
  .kanesei-access-info { font-size: 1.5rem; }
  .kanesei-access-info .kanesei-access-address {
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px 6px;
  }
}

/* スマホ：ページヒーローの高さを縮小 */
@media (max-width: 639px) {
  .kanesei-hero__content {
    min-height: 180px;
    padding: 32px 20px 48px;
  }
}

/* 物件情報：アンカーボタン（スマホも横並び） */
@media (max-width: 639px) {
  .kanesei-anchor-btn {
    flex: 1 1 0;
    min-width: 0;
    padding: 10px 10px 10px 20px;
    font-size: 1.5rem;
  }
  .kanesei-anchor-btn .kanesei-btn__arrow--down {
    width: 26px;
    height: 26px;
  }
  .kanesei-anchor-btn .kanesei-btn__arrow--down .kanesei-icon {
    font-size: 1.8rem;
  }
}

/* 物件情報：情報表（スマホは文字を小さく） */
@media (max-width: 639px) {
  .kanesei-spec .table-basic th,
  .kanesei-spec .table-basic td {
    font-size: 1.4rem;
  }
}

/* お問い合わせフォーム：上の導入パネル（1200px）とのバランスで幅を960pxに */
.kanesei-form-wrap {
  max-width: 960px;
  margin: 0 auto;
}

/* リフォーム：ご依頼の流れ（番号の背景をメインカラーに） */
.kanesei-timeline--base .kanesei-timeline__num {
  background: #BD8B41;
  color: #fff;
}

/* TOP：お知らせ（見出しをリストの横に配置） */
.kanesei-news-row {
  max-width: 1000px;
  margin: 0 auto;
}
@media (max-width: 896px) {
  .kanesei-news-row .heading { text-align: center; }
  .kanesei-news-row > .column2__child:not(:last-child) { margin-bottom: 24px; }
}

/* TOP：キャッチを1行ずつ左から流れるように表示 */
.kanesei-mv__line {
  animation: kanesei-catch-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.kanesei-mv__line:nth-child(1) { animation-delay: 0.3s; }
.kanesei-mv__line:nth-child(2) { animation-delay: 0.55s; }
.kanesei-mv__line:nth-child(3) { animation-delay: 0.8s; }
@keyframes kanesei-catch-in {
  from {
    opacity: 0;
    transform: translateX(-24px);
    clip-path: inset(-30px 100% -30px -30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
    clip-path: inset(-30px -30px -30px -30px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .kanesei-mv__line { animation: none; }
}
