@charset "UTF-8";
/* =====================================================================
  センデン（able-nagano.com）TOP上部 新デザイン — new-top.css
  範囲: ヘッダー（全ページ共通）／FV＋入口カード5／サービスカード3／軽井沢バナー
  ・既存CSS（app.css / common.css / index.css …）と共存させるため、全クラスに接頭辞 nt- を付ける
  ・既存の html { font-size: 62.5% } を変えられないため、リキッドは「ルートremスケーリング」と同じ帯構造を
    カスタムプロパティ --nt-u（=カンプ1px）で再現する。値は calc(カンプpx * var(--nt-u)) で書く
      帯① 1920px以上 … 固定（--nt-u: 1px・中央寄せ）
      帯② 992〜1919px … 比例縮小（--nt-u: 100vw / 1920）。うち 992〜1199px（帯②b）は
           ヘッダーだけSP型（ハンバーガー＋ドロワー。ヘッダー内は --nt-u: 1px 固定）・入口カードは3＋2列（文字下限12px）
           FV・サービスカード・軽井沢はPCレイアウトのまま比例縮小（10/29 社長GO）
      帯③ 376〜991px … SPレイアウト固定（--nt-u: 1px・SP値は375px基準・コンテナ上限640px）
      帯④ 375px以下 … 比例縮小（--nt-u: 100vw / 375）
  ・PCの数値はカンプ（センデン様TOPビュー改訂2.ai アートボード1・幅1920）から取得。出典は 実装メモ.md
===================================================================== */

:root {
  --nt-u: 1px;
  --nt-green: #006837;
  --nt-ease: cubic-bezier(0.33, 1, 0.68, 1);
  --nt-dur: 0.3s;
  --nt-font-jp: "Noto Sans JP", sans-serif;
  --nt-font-zen: "Zen Kaku Gothic Antique", "Noto Sans JP", sans-serif;
  --nt-font-en: "Outfit", sans-serif;
}
@media (max-width: 1919px) { :root { --nt-u: calc(100vw / 1920); } }
@media (max-width: 991px)  { :root { --nt-u: 1px; } }
@media (max-width: 375px)  { :root { --nt-u: calc(100vw / 375); } }

/* ---------- 共通リセット（既存 body の letter-spacing:.1em / line-height:2 / palt を新セクション内で打ち消す） ---------- */
.nt-header,
.nt-fv,
.nt-service,
.nt-karuizawa {
  font-family: var(--nt-font-jp);
  letter-spacing: 0;
  line-height: 1.5;
  color: #000;
  font-feature-settings: normal; /* 既存 html の palt を打ち消す（カンプは和文ベタ組み。約物の詰まりは Illustrator の文字組みによるもので再現しない＝力技禁止ルール） */
  -webkit-font-smoothing: antialiased;
}
/* リセットは :where() で詳細度0にし、下の各クラス指定が必ず勝つようにする */
:where(.nt-header, .nt-fv, .nt-service, .nt-karuizawa) * { box-sizing: border-box; }
:where(.nt-header, .nt-fv, .nt-service, .nt-karuizawa) :where(img) { display: block; max-width: none; }
:where(.nt-header, .nt-fv, .nt-service) :where(ul) { margin: 0; padding: 0; list-style: none; }
.nt-header a:focus-visible,
.nt-header button:focus-visible,
.nt-fv a:focus-visible,
.nt-service a:focus-visible,
.nt-karuizawa a:focus-visible { outline: 2px solid var(--nt-green); outline-offset: 2px; }
/* 既存 common.css の a { transition: .3s }（全プロパティ）と a:hover { color: #4ab074 } を打ち消す（10/29 MT.netテストで判明）
   transition は :where() で詳細度を a と同じにし、各クラスの transition 指定が勝つようにする */
:where(.nt-header, .nt-fv, .nt-service, .nt-karuizawa) a { transition: none; }
.nt-gnav__link:hover,
.nt-entry__card:hover,
.nt-scard:hover,
.nt-kbanner:hover { color: #000; }
.nt-drawer__link:hover { color: #fff; }

/* =====================================================================
  ヘッダー
===================================================================== */
/* 追従ヘッダー: 既存の html body に overflow-x:hidden があり sticky が効かないため fixed＋body の上余白で実装
   （既存ヘッダーも fixed＋JSで body に padding-top を付ける方式。同じ考え方をCSSだけで行う） */
:root { --nt-header-h: calc(80 * var(--nt-u)); }
html { scroll-padding-top: var(--nt-header-h); }
body { padding-top: var(--nt-header-h); }
.nt-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  background: #fff;
}
.nt-header__inner {
  display: flex;
  align-items: center;
  max-width: 1920px;
  height: calc(80 * var(--nt-u));
  margin-inline: auto;
  padding-left: calc(36.5 * var(--nt-u));
  padding-right: calc(12.2 * var(--nt-u));
}
.nt-header__logo {
  flex-shrink: 0;
  display: block;
  width: calc(216 * var(--nt-u));
  margin-top: calc(3.6 * var(--nt-u));
  transition: opacity var(--nt-dur) var(--nt-ease);
}
.nt-header__logo img { width: 100%; height: auto; }

/* ナビ: 当たり判定＝左右は隣との間隔の半分・上下はヘッダー高さいっぱい */
/* ロゴとナビの間を可変（auto）にして、スクロールバー幅（100vw との差）をここで吸収する */
.nt-gnav { margin-left: auto; align-self: stretch; }
.nt-gnav__list { display: flex; height: 100%; }
.nt-gnav__link {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: calc(6 * var(--nt-u)) calc(10.25 * var(--nt-u)) 0;
  font-size: calc(16.5 * var(--nt-u));
  font-weight: 500;
  line-height: 1;
  color: #000;
  white-space: nowrap;
  text-decoration: none;
}
.nt-gnav__link::after {
  content: "";
  position: absolute;
  left: calc(10.25 * var(--nt-u));
  right: calc(10.25 * var(--nt-u));
  bottom: calc(18 * var(--nt-u));
  height: 2px;
  background: var(--nt-green);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--nt-dur) var(--nt-ease);
}
.nt-gnav__link:hover::after,
.nt-gnav__link:focus-visible::after { transform: scaleX(1); }

.nt-header__actions { display: flex; align-items: center; gap: calc(4.9 * var(--nt-u)); margin-left: calc(21.6 * var(--nt-u)); }
.nt-hbtn {
  display: flex;
  align-items: center;
  height: calc(59.8 * var(--nt-u));
  text-decoration: none;
  white-space: nowrap;
  transition: opacity var(--nt-dur) var(--nt-ease), background-color var(--nt-dur) var(--nt-ease);
}
.nt-hbtn:hover { opacity: 0.7; }
.nt-hbtn--search {
  width: calc(139.7 * var(--nt-u));
  padding-left: calc(17.8 * var(--nt-u));
  background: #fff;
  border: 1px solid #ccc;
  border-radius: calc(9.86 * var(--nt-u));
}
.nt-hbtn--search .nt-hbtn__icon { width: calc(25 * var(--nt-u)); height: auto; margin-top: calc(5 * var(--nt-u)); }
.nt-hbtn--search .nt-hbtn__label {
  margin-left: calc(10.3 * var(--nt-u));
  font-size: calc(16 * var(--nt-u));
  font-weight: 700;
  line-height: 1;
  color: #000;
}
.nt-hbtn--contact {
  width: calc(177.1 * var(--nt-u));
  padding-left: calc(21.5 * var(--nt-u));
  background: var(--nt-green);
  border-radius: calc(11.1 * var(--nt-u));
}
.nt-hbtn--contact .nt-hbtn__icon { width: calc(31.6 * var(--nt-u)); height: auto; }
.nt-hbtn--contact .nt-hbtn__label {
  margin-left: calc(7.4 * var(--nt-u));
  margin-top: calc(-5 * var(--nt-u));
  font-size: calc(16 * var(--nt-u));
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  color: #fff;
}
.nt-menu-btn { display: none; }
.nt-drawer { display: none; }

/* =====================================================================
  S1 FV
===================================================================== */
.nt-fv { position: relative; overflow: hidden; }
.nt-fv__visual { position: absolute; inset: 0; z-index: 0; }
/* PC: .ai の配置どおり（画像枠 x:-15.19 / y:-78.96 / w:1934.76、FV上端 y:80.21）を比率で再現。高さはFVと常に比例するので%で書ける */
.nt-fv__img {
  position: absolute;
  left: -0.791%;
  top: -34.134%;
  width: 100.769%;
  height: auto;
}
.nt-fv__glow {
  position: absolute;
  left: calc(50% - (924.7 * var(--nt-u)));
  top: calc(32.3 * var(--nt-u));
  width: calc(705 * var(--nt-u));
  height: auto;
  pointer-events: none;
}
.nt-fv__inner {
  position: relative;
  z-index: 1;
  width: min(100%, calc(1804 * var(--nt-u)));
  /* 1920px以上は写真の切り取り範囲を保つため高さだけ画面幅に比例させる（文字・カードは固定） */
  height: max(calc(466.3 * var(--nt-u)), calc(100vw * 466.3 / 1920));
  margin-inline: auto;
}
.nt-fv__body { position: absolute; left: calc(100.8 * var(--nt-u)); top: calc(79.8 * var(--nt-u)); }
.nt-fv__catch {
  margin: 0;
  font-size: calc(54 * var(--nt-u));
  font-weight: 350;
  line-height: calc(61 / 54);
  color: #000;
}
.nt-fv__catch-accent { color: var(--nt-green); }
.nt-fv__lead {
  margin: calc(17.5 * var(--nt-u)) 0 0 calc(8.7 * var(--nt-u));
  font-size: calc(24 * var(--nt-u));
  font-weight: 350;
  line-height: calc(39.54 / 24);
  color: #000;
}

/* 入口カード5 */
.nt-entry { position: absolute; left: 0; right: 0; bottom: calc(13.3 * var(--nt-u)); }
.nt-entry__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(22.8 * var(--nt-u)); }
.nt-entry__card {
  position: relative;
  display: flex;
  align-items: flex-start;
  height: calc(122.8 * var(--nt-u));
  padding-left: calc(21 * var(--nt-u));
  background: #fff;
  border-radius: calc(11.57 * var(--nt-u));
  color: #000;
  text-decoration: none;
  transition: opacity var(--nt-dur) var(--nt-ease);
}
.nt-entry__card:hover { opacity: 0.9; }
.nt-entry__card::after {
  content: "";
  position: absolute;
  left: calc(310.7 * var(--nt-u));
  top: calc(51.7 * var(--nt-u));
  width: calc(11.67 * var(--nt-u));
  height: calc(20.35 * var(--nt-u));
  background: url(icon_chevron.svg) no-repeat center / contain;
}
/* アイコンはカードごとに位置・サイズが違う（.ai の配置値をそのまま採用） */
.nt-entry__icon {
  position: absolute;
  left: var(--nt-icon-x);
  top: var(--nt-icon-y);
  width: var(--nt-icon-w);
}
.nt-entry__icon img { width: 100%; height: auto; }
.nt-entry__item--rent   { --nt-icon-x: calc(19.1 * var(--nt-u));  --nt-icon-y: calc(25.7 * var(--nt-u)); --nt-icon-w: calc(65.1 * var(--nt-u)); }
.nt-entry__item--tenant { --nt-icon-x: calc(24.7 * var(--nt-u));  --nt-icon-y: calc(25.7 * var(--nt-u)); --nt-icon-w: calc(57.7 * var(--nt-u)); }
.nt-entry__item--sale   { --nt-icon-x: calc(27.25 * var(--nt-u)); --nt-icon-y: calc(24.9 * var(--nt-u)); --nt-icon-w: calc(57.7 * var(--nt-u)); }
.nt-entry__item--asset  { --nt-icon-x: calc(25.4 * var(--nt-u));  --nt-icon-y: calc(25.7 * var(--nt-u)); --nt-icon-w: calc(57.7 * var(--nt-u)); }
.nt-entry__item--owner  { --nt-icon-x: calc(32.8 * var(--nt-u));  --nt-icon-y: calc(24.9 * var(--nt-u)); --nt-icon-w: calc(52.52 * var(--nt-u)); }
.nt-entry__text { display: flex; flex-direction: column; margin-left: calc(83.6 * var(--nt-u)); padding-top: calc(34 * var(--nt-u)); }
.nt-entry__title { font-size: calc(23 * var(--nt-u)); font-weight: 700; line-height: 1.3; white-space: nowrap; }
.nt-entry__sub {
  margin-top: calc(9.2 * var(--nt-u));
  font-size: calc(15 * var(--nt-u));
  font-weight: 350;
  line-height: 1.3;
  color: #4d4d4d;
  white-space: nowrap;
}

/* =====================================================================
  S3 サービスカード3
===================================================================== */
.nt-service { padding-top: calc(18.6 * var(--nt-u)); }
.nt-service__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(21.4 * var(--nt-u));
  width: min(100%, calc(1804 * var(--nt-u)));
  margin-inline: auto;
}
.nt-scard {
  --nt-card-color: #00a99d;
  --nt-card-bg: #f0f6f7;
  position: relative;
  display: block;
  height: calc(265.4 * var(--nt-u));
  overflow: hidden;
  background: var(--nt-card-bg);
  color: #000;
  text-decoration: none;
}
.nt-scard--reform { --nt-card-color: #a67c52; --nt-card-bg: #f8f5e4; }
.nt-scard--recruit { --nt-card-color: #39b54a; --nt-card-bg: #f1f5e9; }
.nt-scard__img {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
}
.nt-scard__body { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; padding: calc(21.9 * var(--nt-u)) 0 0 calc(38.4 * var(--nt-u)); }
.nt-scard__body::before {
  content: "";
  width: calc(48.3 * var(--nt-u));
  height: calc(6 * var(--nt-u));
  margin-left: calc(-3 * var(--nt-u));
  border-radius: calc(3 * var(--nt-u));
  background: var(--nt-card-color);
}
.nt-scard--recruit .nt-scard__body::before { background: #8cc63f; }
.nt-scard__title {
  margin: calc(16.4 * var(--nt-u)) 0 0;
  font-size: calc(38 * var(--nt-u));
  font-weight: 700;
  line-height: 1.2;
  color: #000;
  white-space: nowrap;
}
.nt-scard__text {
  margin-top: calc(17 * var(--nt-u));
  font-size: calc(23 * var(--nt-u));
  font-weight: 500;
  line-height: calc(34 / 23);
  color: var(--nt-card-color);
  white-space: nowrap;
}
.nt-scard__btn {
  display: flex;
  align-items: center;
  width: calc(233.6 * var(--nt-u));
  height: calc(56.4 * var(--nt-u));
  margin-top: calc(13 * var(--nt-u));
  padding-left: calc(38.5 * var(--nt-u));
  background: #fff;
  border: 1px solid var(--nt-card-color);
  border-radius: calc(28.2 * var(--nt-u));
  font-size: calc(21 * var(--nt-u));
  font-weight: 700;
  line-height: 1;
  color: #4d4d4d;
  white-space: pre;
  transition: background-color var(--nt-dur) var(--nt-ease), color var(--nt-dur) var(--nt-ease);
}
.nt-scard--recruit .nt-scard__btn { border-color: #8cc63f; }
.nt-scard:hover .nt-scard__btn { background: var(--nt-card-color); color: #fff; }
.nt-scard--recruit:hover .nt-scard__btn { background: #8cc63f; }
/* 拡大の基準点は通常時にも置く（:hover だけに置くと、マウスを外した瞬間に基準点が中央へ飛んでガタつく）。
   will-change／backface-visibility でGPU合成にして、拡大中の小数px描画のチラつきを抑える */
.nt-scard__img {
  transform-origin: right center;
  transition: transform 0.6s var(--nt-ease);
  will-change: transform;
  backface-visibility: hidden;
}
.nt-scard:hover .nt-scard__img { transform: scale(1.03); }

/* =====================================================================
  S4 軽井沢バナー
===================================================================== */
.nt-karuizawa { padding-top: calc(12 * var(--nt-u)); padding-bottom: calc(6 * var(--nt-u)); }
.nt-kbanner {
  position: relative;
  display: block;
  width: min(100%, calc(1804 * var(--nt-u)));
  height: calc(217.8 * var(--nt-u));
  margin-inline: auto;
  color: #000;
  text-decoration: none;
  transition: opacity var(--nt-dur) var(--nt-ease);
}
.nt-kbanner:hover { opacity: 0.9; }
.nt-kbanner__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nt-kbanner__photo-sp,
.nt-kbanner__fade-sp,
.nt-kbanner__br-sp { display: none; }
.nt-kbanner__body { position: absolute; left: calc(48.6 * var(--nt-u)); top: calc(21 * var(--nt-u)); display: flex; flex-direction: column; align-items: flex-start; }
.nt-kbanner__en {
  font-family: var(--nt-font-en);
  font-size: calc(71.34 * var(--nt-u));
  font-weight: 900;
  line-height: calc(62.82 / 71.34);
  letter-spacing: 0;
  color: #000;
  white-space: nowrap;
}
.nt-kbanner__catch {
  margin: calc(-2 * var(--nt-u)) 0 0 calc(4.9 * var(--nt-u));
  font-family: var(--nt-font-zen);
  font-size: calc(27 * var(--nt-u));
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: calc(32 / 27);
  white-space: nowrap;
}
.nt-kbanner__lead {
  position: absolute;
  left: calc(247.2 * var(--nt-u));
  top: calc(170 * var(--nt-u));
  font-family: var(--nt-font-zen);
  font-size: calc(18 * var(--nt-u));
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.2;
  white-space: nowrap;
}
.nt-kbanner__badge {
  position: absolute;
  left: calc(1598 * var(--nt-u));
  top: calc(11.5 * var(--nt-u));
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(194.4 * var(--nt-u));
  height: calc(194.4 * var(--nt-u));
  padding-top: calc(49.5 * var(--nt-u));
  background: url(badge_ring.png) no-repeat center / contain;
  font-family: var(--nt-font-zen);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: nowrap;
}
.nt-kbanner__badge-t1 { font-size: calc(15.58 * var(--nt-u)); line-height: 1.2; }
.nt-kbanner__badge-t2 { margin-top: calc(3 * var(--nt-u)); font-size: calc(31.16 * var(--nt-u)); line-height: 1.2; color: #395762; }
.nt-kbanner__badge-t3 { margin-top: calc(8 * var(--nt-u)); font-size: calc(14.8 * var(--nt-u)); line-height: calc(20.25 / 14.8); }
.nt-karuizawa__note {
  width: min(100%, calc(1804 * var(--nt-u)));
  margin: calc(2 * var(--nt-u)) auto 0;
  font-family: var(--nt-font-zen);
  font-size: max(9px, calc(9 * var(--nt-u)));
  line-height: 1.4;
  color: #7f7f7f;
  text-align: right;
}

/* =====================================================================
  SP（991px以下）— 数値は375px基準。SPカンプは端末モックのため、並び・比率はモック、文字サイズは可読性を優先して設計（実装メモ参照）
  ※ヘッダーだけは 1199px 以下でSP型（992〜1199 はヘッダー内の --nt-u を 1px に固定して同じ値を使う）
===================================================================== */
@media (max-width: 1199px) {
  /* ヘッダー（1199px以下＝SP型） */
  :root { --nt-header-h: calc(60 * var(--nt-u)); }
  .nt-header__inner { height: calc(60 * var(--nt-u)); padding-left: calc(12 * var(--nt-u)); padding-right: calc(6 * var(--nt-u)); }
  .nt-header__logo { width: calc(132 * var(--nt-u)); margin-top: 0; }
  .nt-gnav { display: none; }
  .nt-header__actions { margin-left: auto; }
  .nt-header__actions { gap: calc(4 * var(--nt-u)); }
  .nt-hbtn {
    flex-direction: column;
    justify-content: center;
    height: calc(46 * var(--nt-u));
    padding-left: 0;
  }
  .nt-hbtn--search { width: calc(54 * var(--nt-u)); border-radius: calc(6 * var(--nt-u)); }
  .nt-hbtn--search .nt-hbtn__icon { width: calc(19 * var(--nt-u)); margin-top: 0; }
  .nt-hbtn--search .nt-hbtn__label { margin: calc(3 * var(--nt-u)) 0 0; font-size: calc(9.5 * var(--nt-u)); }
  .nt-hbtn--contact { width: calc(90 * var(--nt-u)); border-radius: 0; background: #73ae77; }
  .nt-hbtn--contact .nt-hbtn__icon { width: calc(19.5 * var(--nt-u)); }
  .nt-hbtn--contact .nt-hbtn__label { margin: calc(4 * var(--nt-u)) 0 0; font-family: var(--nt-font-zen); font-size: calc(10.3 * var(--nt-u)); }
  .nt-menu-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: calc(44 * var(--nt-u));
    height: calc(46 * var(--nt-u));
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
  }
  .nt-menu-btn__bars { position: relative; display: block; width: calc(34 * var(--nt-u)); height: calc(23.4 * var(--nt-u)); }
  .nt-menu-btn__bars span {
    position: absolute;
    left: 0;
    width: 100%;
    height: calc(3.8 * var(--nt-u));
    background: #666;
    transition: transform var(--nt-dur) var(--nt-ease), opacity var(--nt-dur) var(--nt-ease);
  }
  .nt-menu-btn__bars span:nth-child(1) { top: 0; }
  .nt-menu-btn__bars span:nth-child(2) { top: calc(9.8 * var(--nt-u)); }
  .nt-menu-btn__bars span:nth-child(3) { top: calc(19.6 * var(--nt-u)); }
  .nt-menu-btn[aria-expanded="true"] .nt-menu-btn__bars span:nth-child(1) { transform: translateY(calc(9.8 * var(--nt-u))) rotate(45deg); }
  .nt-menu-btn[aria-expanded="true"] .nt-menu-btn__bars span:nth-child(2) { opacity: 0; }
  .nt-menu-btn[aria-expanded="true"] .nt-menu-btn__bars span:nth-child(3) { transform: translateY(calc(-9.8 * var(--nt-u))) rotate(-45deg); }
  .nt-menu-btn__label { margin-top: calc(3 * var(--nt-u)); font-size: calc(10.8 * var(--nt-u)); font-weight: 700; line-height: 1; color: #000; }

  .nt-drawer {
    display: block;
    position: fixed;
    top: calc(60 * var(--nt-u));
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: calc(20 * var(--nt-u)) calc(24 * var(--nt-u)) calc(40 * var(--nt-u));
    background: #4ab074;
  }
  .nt-drawer[hidden] { display: none; }
  .nt-drawer__list { max-width: 640px; margin-inline: auto; }
  .nt-drawer__link {
    position: relative;
    display: block;
    padding: calc(14 * var(--nt-u)) 0 calc(14 * var(--nt-u)) calc(22 * var(--nt-u));
    border-bottom: 1px solid rgba(255, 255, 255, 0.8);
    font-size: calc(16 * var(--nt-u));
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
    text-decoration: none;
  }
  .nt-drawer__link::before {
    content: "";
    position: absolute;
    left: calc(2 * var(--nt-u));
    top: 50%;
    width: calc(7 * var(--nt-u));
    height: calc(7 * var(--nt-u));
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
  }
  body.nt-is-menu-open { overflow: hidden; }
}

/* =====================================================================
  帯②b 992〜1199px — ヘッダーだけSP型／入口カード3＋2列／本文はPCのまま比例縮小（10/29 社長GO）
===================================================================== */
@media (min-width: 992px) and (max-width: 1199px) {
  /* ヘッダー: 中は375基準のSP値をそのまま使う（--nt-u を 1px に固定）。:root の calc は :root の --nt-u で解決されるため高さは直書き */
  :root { --nt-header-h: 60px; }
  .nt-header { --nt-u: 1px; }
  .nt-header__inner { padding-left: 24px; padding-right: 12px; }
  .nt-header__logo { width: 168px; }
  .nt-header__actions { gap: 8px; }
  /* 物件検索・お問い合わせはPC型（横並び・白枠／緑の角丸）のまま、ヘッダー高60に合わせて縮小 */
  .nt-hbtn { flex-direction: row; justify-content: flex-start; height: 46px; }
  .nt-hbtn--search { width: 112px; padding-left: 14px; border-radius: 8px; }
  .nt-hbtn--search .nt-hbtn__icon { width: 20px; margin-top: 4px; }
  .nt-hbtn--search .nt-hbtn__label { margin: 0 0 0 8px; font-size: 13px; }
  .nt-hbtn--contact { width: 142px; padding-left: 16px; border-radius: 9px; background: var(--nt-green); }
  .nt-hbtn--contact .nt-hbtn__icon { width: 25px; }
  .nt-hbtn--contact .nt-hbtn__label { margin: -4px 0 0 7px; font-family: var(--nt-font-jp); font-size: 13px; }
  .nt-menu-btn { margin-left: 4px; }
  .nt-menu-btn__label { font-size: 12px; }
  .nt-drawer__link { font-size: 16px; }

  /* FV: 入口カードが2段になるので高さは中身なり（写真は cover で .ai の見え方の中心 ≒ 縦61% に合わせる） */
  .nt-fv__img { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 61%; }
  .nt-fv__inner { height: auto; padding: calc(79.8 * var(--nt-u)) 0 calc(13.3 * var(--nt-u)); }
  .nt-fv__body { position: static; margin-left: calc(100.8 * var(--nt-u)); }

  /* 入口カード: 上段3・下段2（中央寄せ）。タイトル・サブは下限12px */
  .nt-entry { position: static; margin-top: calc(52 * var(--nt-u)); }
  .nt-entry__list { display: flex; flex-wrap: wrap; justify-content: center; }
  .nt-entry__item { flex: 0 0 calc((100% - 2 * 22.8 * var(--nt-u)) / 3); }
  .nt-entry__card { height: auto; min-height: calc(122.8 * var(--nt-u)); padding-bottom: calc(20 * var(--nt-u)); }
  .nt-entry__card::after { left: auto; right: calc(20.2 * var(--nt-u)); top: 50%; transform: translateY(-50%); }
  .nt-entry__title { font-size: max(12px, calc(23 * var(--nt-u))); }
  .nt-entry__sub { font-size: max(12px, calc(15 * var(--nt-u))); }
}

@media (max-width: 991px) {
  /* FV（SPは画面比が違うため cover で中央下寄せ） */
  .nt-fv__img { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 80%; }
  .nt-fv__glow { left: max(calc(-22 * var(--nt-u)), calc(50% - 342px)); top: calc(4 * var(--nt-u)); width: calc(330 * var(--nt-u)); }
  .nt-fv__inner {
    width: min(100% - (28 * var(--nt-u)), 640px);
    height: auto;
    padding: calc(38 * var(--nt-u)) 0 calc(12 * var(--nt-u));
  }
  .nt-fv__body { position: static; }
  .nt-fv__catch { font-size: calc(22 * var(--nt-u)); line-height: 1.18; }
  .nt-fv__lead { margin: calc(10 * var(--nt-u)) 0 0; font-size: calc(12 * var(--nt-u)); line-height: 1.65; }

  .nt-entry { position: static; margin-top: calc(36 * var(--nt-u)); }
  .nt-entry__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(8 * var(--nt-u)) calc(11 * var(--nt-u)); }
  .nt-entry__item--owner { grid-column: 1 / -1; }
  .nt-entry__card {
    align-items: center;
    height: auto;
    min-height: calc(58 * var(--nt-u));
    padding: calc(8 * var(--nt-u)) calc(16 * var(--nt-u)) calc(8 * var(--nt-u)) calc(9 * var(--nt-u));
    border-radius: calc(5 * var(--nt-u));
    box-shadow: calc(2 * var(--nt-u)) calc(1.5 * var(--nt-u)) calc(3 * var(--nt-u)) rgba(0, 0, 0, 0.22);
  }
  .nt-entry__card::after { left: auto; right: calc(8 * var(--nt-u)); top: 50%; width: calc(6.5 * var(--nt-u)); height: calc(11.5 * var(--nt-u)); transform: translateY(-50%); }
  .nt-entry__icon { position: static; flex-shrink: 0; display: flex; justify-content: center; width: calc(28 * var(--nt-u)); }
  .nt-entry__icon img { width: auto; height: calc(30 * var(--nt-u)); }
  .nt-entry__text { margin-left: calc(7 * var(--nt-u)); padding-top: 0; min-width: 0; }
  .nt-entry__title { font-size: calc(14 * var(--nt-u)); line-height: 1.35; }
  .nt-entry__sub { margin-top: calc(2 * var(--nt-u)); font-size: calc(10 * var(--nt-u)); line-height: 1.4; white-space: normal; word-break: auto-phrase; }

  /* サービスカード */
  .nt-service { padding-top: calc(14 * var(--nt-u)); }
  .nt-service__list { grid-template-columns: minmax(0, 1fr); gap: calc(8 * var(--nt-u)); width: min(100% - (28 * var(--nt-u)), 640px); }
  .nt-scard { height: calc(124 * var(--nt-u)); }
  .nt-scard__img { width: auto; max-width: none; }
  .nt-scard__body { padding: calc(11 * var(--nt-u)) 0 0 calc(14.5 * var(--nt-u)); }
  .nt-scard__body::before { width: calc(17.6 * var(--nt-u)); height: calc(2.4 * var(--nt-u)); margin-left: 0; border-radius: calc(1.2 * var(--nt-u)); }
  .nt-scard__title { margin-top: calc(8 * var(--nt-u)); font-size: calc(17 * var(--nt-u)); }
  .nt-scard__text { margin-top: calc(5 * var(--nt-u)); font-size: calc(11 * var(--nt-u)); line-height: 1.48; }
  .nt-scard__btn {
    width: calc(98 * var(--nt-u));
    height: calc(26 * var(--nt-u));
    margin-top: calc(8 * var(--nt-u));
    padding-left: calc(15 * var(--nt-u));
    border-radius: calc(13 * var(--nt-u));
    font-size: calc(10.5 * var(--nt-u));
  }

  /* 軽井沢バナー（SPのデザインはカンプに無い→ 10/28 社長決定でSPも表示。10/29 社長指示で「縦積み」→「写真全幅＋文字重ね」に変更）
     PCと同じ組み: 左＝TOP左.png（白いフェード部）＋写真の左端を mask でフェード／右＝写真＋丸バッジ。高さは幅に対する比率 */
  .nt-karuizawa { padding-top: calc(14 * var(--nt-u)); padding-bottom: calc(4 * var(--nt-u)); }
  .nt-kbanner {
    width: min(100% - (28 * var(--nt-u)), 640px);
    height: auto;
    aspect-ratio: 347 / 196;
    overflow: hidden;
    background: #fff;
  }
  .nt-kbanner__bg { display: none; }
  /* 写真: 高さいっぱい・右寄せ（左はみ出しは切る）。左端は .ai の不透明度マスクと同じく白へフェード */
  .nt-kbanner__photo-sp {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: auto;
    height: 100%;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%);
    mask-image: linear-gradient(to right, transparent 0%, #000 42%);
  }
  /* TOP左.png: 左端の白いフェード部（木の透け）。写真の下に敷く */
  .nt-kbanner__fade-sp { display: block; position: absolute; top: 0; left: 0; z-index: -1; width: auto; height: 100%; }
  .nt-kbanner { isolation: isolate; }
  /* 可読性: 文字の背面だけ白の半透明グラデを1枚（画像素材は作らない） */
  .nt-kbanner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.72) 42%, rgba(255, 255, 255, 0) 66%);
    pointer-events: none;
  }
  .nt-kbanner__body { z-index: 1; left: calc(13 * var(--nt-u)); top: 50%; transform: translateY(-50%); }
  .nt-kbanner__en { font-size: calc(31 * var(--nt-u)); }
  .nt-kbanner__catch { margin: calc(6 * var(--nt-u)) 0 0 calc(1.5 * var(--nt-u)); font-size: calc(14 * var(--nt-u)); }
  .nt-kbanner__lead { position: static; margin: calc(6 * var(--nt-u)) 0 0 calc(1.5 * var(--nt-u)); font-size: calc(10.5 * var(--nt-u)); line-height: 1.5; }
  .nt-kbanner__br-sp { display: inline; } /* SPだけ「学び。」の後で改行（PCは1行） */
  .nt-kbanner__badge {
    z-index: 1;
    left: auto;
    right: calc(8 * var(--nt-u));
    top: auto;
    bottom: calc(8 * var(--nt-u));
    width: calc(96 * var(--nt-u));
    height: calc(96 * var(--nt-u));
    padding-top: calc(22.5 * var(--nt-u));
  }
  .nt-kbanner__badge-t1 { font-size: calc(8 * var(--nt-u)); }
  .nt-kbanner__badge-t2 { margin-top: calc(1.5 * var(--nt-u)); font-size: calc(15.6 * var(--nt-u)); }
  .nt-kbanner__badge-t3 { margin-top: calc(2 * var(--nt-u)); font-size: calc(7.5 * var(--nt-u)); }
  .nt-karuizawa__note { width: min(100% - (28 * var(--nt-u)), 640px); margin-top: calc(4 * var(--nt-u)); font-size: 9px; }
}

/* 先方確認後に消す場合の切替（SPヘッダーの「物件検索」・SPの軽井沢バナー）
   不要になったら下のコメントを外すだけで非表示になる
@media (max-width: 991px) {
  .nt-hbtn--search { display: none; }
  .nt-karuizawa { display: none; }
}
*/

@media (prefers-reduced-motion: reduce) {
  .nt-header *,
  .nt-fv *,
  .nt-service *,
  .nt-karuizawa * { transition: none !important; }
}
