@charset "UTF-8";
/* ---------- 拡大率（1デザインpx あたりの実寸） ----------
   PC：デザイン幅1131pxを画面幅いっぱいに比例拡大（PDFを横幅に合わせて表示した見え方）
   1131px未満は等倍、1920px以上は拡大を止める
   SP：1px（本文・注釈のみ下部で個別に拡大） */
:root { --u: 1px; }
@media (min-width: 768px) {
  :root { --u: clamp(1px, 100vw / 1131, 1.6976px); }
}

/* =========================================================
   オーセントコート常盤 LP
   デザイン原寸：幅1131px / コンテンツ幅666px
   ========================================================= */

:root {
  --olive: #667c31;
  --olive-dark: #647b31;
  --olive-pale: #cad2b9;
  --purple: #772f6d;
  --text: #5f4b3e;
  --gray: #5a5a5a;
  --bg-pale: #f4f5f0;
  --line: #c9cfba;
  --footer: #677e31;

  --content: calc(666 * var(--u));
  --gutter: calc(16 * var(--u));
  --header-h: calc(68 * var(--u));

  --font-mincho: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --font-en: "Cormorant Garamond", "Shippori Mincho", serif;
  --en-nums: lining-nums proportional-nums;
  --font-gothic: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }

body {
  margin: 0;
  background: #fff;
  color: var(--text);
  font-family: var(--font-mincho);
  font-weight: 500;
  line-height: 1.8;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul { list-style: none; }

.inner {
  width: min(var(--content), 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.br-pc { display: inline; }
.br-sp { display: none; }
@media (max-width: 767px) {
  .br-pc { display: none; }
  .br-sp { display: inline; }
}
/* 文末が1〜2文字だけ次の行に落ちるのを防ぐ（対応ブラウザのみ） */
p, li, dd { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: balance; }

/* ---------- 共通見出し ---------- */
.sec-head { text-align: center; }
.sec-head__en {
  font-family: var(--font-en);
  font-size: calc(15 * var(--u));
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--olive);
  line-height: 1;
}
.sec-head__ja {
  margin-top: calc(14 * var(--u));
  font-size: clamp(calc(20 * var(--u)), 3.47vw, calc(26 * var(--u)));
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.6;
  color: var(--olive);
}
.sec-head__lead {
  margin-top: calc(22 * var(--u));
  font-size: clamp(calc(16 * var(--u)), 2.67vw, calc(20 * var(--u)));
  letter-spacing: .03em;
  line-height: 1.75;
  color: var(--text);
}
.note {
  font-size: calc(9 * var(--u));
  line-height: 1.6;
  color: var(--text);
}
.note--right { text-align: right; }

/* ---------- 水引装飾 ---------- */
.has-orn { position: relative; isolation: isolate; }
.orn {
  position: absolute;
  z-index: -1;
  width: calc(308 * var(--u));
  height: auto;
  pointer-events: none;
}
.orn--r { left: calc(50% + calc(328.6 * var(--u))); }
.orn--l { right: calc(50% + calc(328.8 * var(--u))); }
@media (max-width: 1000px) { .orn { display: none; } }

/* =========================================================
   Header
   ========================================================= */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-h);
  background: #fff;
}
.header__inner {
  height: 100%;
  width: min(calc(830 * var(--u)), 100% - var(--gutter) * 2);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(24 * var(--u));
}
.header__logo img { width: calc(354 * var(--u)); }
.gnav ul { display: flex; gap: calc(16 * var(--u)); }
.gnav a {
  font-family: var(--font-gothic);
  font-size: calc(11 * var(--u));
  font-weight: 400;
  letter-spacing: .05em;
  color: var(--gray);
  text-decoration: none;
  white-space: nowrap;
}
.gnav a:hover { color: var(--olive); }

.menu-btn { display: none; }

@media (max-width: 860px) {
  :root { --header-h: calc(56 * var(--u)); }
  .header__logo img { width: calc(230 * var(--u)); }
  .menu-btn {
    display: grid;
    place-content: center;
    gap: calc(6 * var(--u));
    width: calc(40 * var(--u));
    height: calc(40 * var(--u));
    border: 0;
    background: none;
    cursor: pointer;
  }
  .menu-btn span { display: block; width: calc(24 * var(--u)); height: 1px; background: var(--olive); transition: transform .3s, opacity .3s; }
  .is-menu-open .menu-btn span:nth-child(1) { transform: translateY(calc(7 * var(--u))) rotate(45deg); }
  .is-menu-open .menu-btn span:nth-child(2) { opacity: 0; }
  .is-menu-open .menu-btn span:nth-child(3) { transform: translateY(calc(-7 * var(--u))) rotate(-45deg); }
  .gnav {
    position: absolute;
    top: var(--header-h);
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, .97);
    border-top: 1px solid var(--line);
    visibility: hidden;
    opacity: 0;
    transition: opacity .3s, visibility .3s;
  }
  .is-menu-open .gnav { visibility: visible; opacity: 1; }
  .gnav ul { flex-direction: column; gap: 0; padding: calc(8 * var(--u)) 0 calc(16 * var(--u)); }
  .gnav a { display: block; padding: calc(12 * var(--u)) calc(24 * var(--u)); font-size: calc(14 * var(--u)); }
}

/* =========================================================
   Hero
   ========================================================= */
.hero {
  position: relative;
  container-type: inline-size;
  background: #cde9fd;
}
.hero__visual {
  position: relative;
  aspect-ratio: 1131 / 1539;
  background: url(../img/hero_bg.webp) center top / 100% auto no-repeat;
}
.hero__copy {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  padding-top: 3.27cqw;
  text-align: center;
}
.hero__knot { width: 45.3cqw; margin-inline: auto; }
.hero__en {
  margin-top: 1.4cqw;
  font-family: var(--font-en);
  font-size: 2.9cqw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .02em;
  color: var(--text);
}
.hero__title {
  margin-top: 2.2cqw;
  font-size: 3.6cqw;
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1.2;
  color: var(--text);
}
.hero__body {
  margin-top: 3.3cqw;
  font-size: max(calc(11 * var(--u)), 0.97cqw);
  line-height: 2.35;
  letter-spacing: .02em;
  color: var(--text);
}
.hero__note {
  position: absolute;
  right: 4.2cqw;
  bottom: .4cqw;
  font-size: max(calc(9 * var(--u)), .8cqw);
  color: #fff;
  text-shadow: 0 0 calc(2 * var(--u)) rgba(0, 0, 0, .9), 0 0 calc(1 * var(--u)) #000;
  line-height: 1.3;
}

/* 地名ラベル */
.spot {
  position: absolute;
  transform: translateX(-50%);
  padding: .1em .65em;
  font-size: max(calc(9 * var(--u)), 1.15cqw);
  line-height: 1.45;
  letter-spacing: .08em;
  white-space: nowrap;
  color: #fff;
  background: var(--purple);
}
.spot::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  translate: -50% 0;
  border: .32em solid transparent;
  border-top: .4em solid var(--purple);
  border-bottom: 0;
}
.spot--main {
  transform: none;
  padding: .3em 1.6em .3em .7em;
  font-size: max(calc(11 * var(--u)), 1.62cqw);
  letter-spacing: .06em;
  background: var(--olive-dark);
  clip-path: polygon(0 0, 85% 0, 100% 100%, 0 100%);
}
.spot--main::after { content: none; }

@media (max-width: 767px) {
  .hero__copy { position: static; padding: calc(28 * var(--u)) var(--gutter) calc(24 * var(--u)); background: linear-gradient(#cde9fd, #dff0fe); }
  .hero__knot { width: 62%; }
  .hero__en { margin-top: calc(8 * var(--u)); font-size: calc(20 * var(--u)); }
  .hero__title { margin-top: calc(10 * var(--u)); font-size: calc(22 * var(--u)); letter-spacing: .1em; }
  .hero__body { margin-top: calc(18 * var(--u)); font-size: calc(13 * var(--u)); line-height: 2; text-align: left; }
  .hero__visual { aspect-ratio: 1131 / 1100; background-position: center bottom; background-size: cover; }
  .spot { font-size: calc(8 * var(--u)); }
  .spot--main { font-size: calc(10 * var(--u)); }
  .hero__note { position: static; padding: calc(8 * var(--u)) var(--gutter); color: var(--text); text-shadow: none; background: #fff; }
}

/* =========================================================
   第1期宅地分譲 帯
   ========================================================= */
.sale {
  background: var(--purple);
  color: #fff;
  padding: calc(26 * var(--u)) 0 calc(32 * var(--u));
  text-align: center;
}
.sale__title {
  font-size: clamp(calc(26 * var(--u)), 4.81vw, calc(38 * var(--u)));
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.3;
}
.sale__spec {
  margin-top: calc(16 * var(--u));
  display: flex;
  justify-content: center;
  align-items: stretch;
  line-height: 1.3;
}
.sale__spec > div {
  display: flex;
  align-items: center;
  padding: calc(4 * var(--u)) calc(16 * var(--u));
  border-left: 1px solid rgba(255, 255, 255, .8);
}
.sale__spec > div:last-child { border-right: 0; padding-right: 0; }
.sale__label { font-size: calc(12 * var(--u)); }
.sale__area { gap: calc(8 * var(--u)); font-size: calc(11 * var(--u)); }
.sale__area b { font-size: calc(15 * var(--u)); font-weight: 500; }
.sale__area small,
.sale__price small { display: block; font-size: calc(9 * var(--u)); text-align: right; }
.sale__area .unit { font-size: calc(9 * var(--u)); vertical-align: top; }
.sale__price { flex-direction: column; align-items: flex-start !important; }
.sale__price p:first-child { font-size: calc(12 * var(--u)); }
.sale__price b { font-size: calc(34 * var(--u)); font-weight: 500; line-height: 1; letter-spacing: .02em; }
.sale__price .man { display: inline-flex; flex-direction: column; font-size: calc(18 * var(--u)); line-height: 1; vertical-align: bottom; }
.sale__price .man small { font-size: calc(9 * var(--u)); text-align: center; margin-bottom: calc(2 * var(--u)); }
.sale__price p:last-child { font-size: calc(12.5 * var(--u)); }

.after-note {
  padding: calc(8 * var(--u)) 0 0;
}

@media (max-width: 767px) {
  .sale__spec { flex-wrap: wrap; gap: calc(10 * var(--u)) 0; }
  .sale__spec > div { padding: calc(4 * var(--u)) calc(12 * var(--u)); }
  .sale__price { width: 100%; align-items: center !important; border-left: 0 !important; }
}

/* =========================================================
   LAND PLAN
   ========================================================= */
.landplan { padding: calc(80 * var(--u)) 0 calc(60 * var(--u)); }
.landplan__body {
  margin-top: calc(40 * var(--u));
  display: grid;
  grid-template-columns: calc(205 * var(--u)) 1fr;
  gap: 0 calc(4 * var(--u));
  align-items: center;
}
.landplan__points { display: grid; gap: calc(16 * var(--u)); }
.landplan__points li {
  display: grid;
  place-items: center;
  height: calc(87 * var(--u));
  border-radius: calc(6 * var(--u));
  background: var(--olive);
  color: #fff;
  font-size: calc(21 * var(--u));
  line-height: 1.45;
  letter-spacing: .02em;
  text-align: center;
}
.landplan__map { position: relative; }
.landplan__map .compass { position: absolute; left: calc(-50 * var(--u)); bottom: calc(10 * var(--u)); width: calc(54 * var(--u)); }
.landplan__map .siteplan { width: calc(395 * var(--u)); margin-left: auto; margin-right: calc(13 * var(--u)); }

@media (max-width: 767px) {
  .landplan { padding: calc(60 * var(--u)) 0 calc(48 * var(--u)); }
  .landplan__body { grid-template-columns: 1fr; gap: calc(24 * var(--u)); }
  .landplan__points { grid-template-columns: repeat(3, 1fr); gap: calc(8 * var(--u)); order: 2; }
  .landplan__points li { height: auto; padding: calc(10 * var(--u)) calc(4 * var(--u)); font-size: calc(13 * var(--u)); }
  .landplan__map .siteplan { margin-inline: auto; }
  .landplan__map .compass { left: 0; width: calc(40 * var(--u)); }
}

/* =========================================================
   PLAN（自由設計）
   ========================================================= */
.plan-intro { padding: calc(44 * var(--u)) 0 calc(30 * var(--u)); background: var(--bg-pale); }
.plan-intro .sec-head__ja {
  font-size: clamp(calc(28 * var(--u)), 5.35vw, calc(40 * var(--u)));
  letter-spacing: .1em;
}
.plan-intro .sec-head__lead {
  margin-top: calc(28 * var(--u));
  font-size: clamp(calc(18 * var(--u)), 3.20vw, calc(24 * var(--u)));
  letter-spacing: .08em;
  color: var(--olive);
}

.plan { padding: calc(60 * var(--u)) 0 calc(40 * var(--u)); }
.plan--pale { background: var(--bg-pale); }
.plan:first-of-type { padding-top: calc(20 * var(--u)); }
.plan__grid {
  display: grid;
  grid-template-columns: calc(356 * var(--u)) 1fr;
  gap: 0 calc(48 * var(--u));
}
.plan__no {
  display: flex;
  align-items: baseline;
  gap: calc(18 * var(--u));
  padding-bottom: calc(12 * var(--u));
  border-bottom: 1px solid #b1bc97;
  color: var(--olive);
}
.plan__no span:first-child { font-variant-numeric: var(--en-nums); font-family: var(--font-en); font-size: calc(50 * var(--u)); line-height: 1; }
.plan__no span:first-child small { font-size: calc(30 * var(--u)); }
.plan__no span:last-child { font-size: calc(8 * var(--u)); letter-spacing: .1em; }
.plan__title {
  padding: calc(18 * var(--u)) 0 calc(16 * var(--u));
  border-bottom: 1px solid #b1bc97;
  font-size: calc(21 * var(--u));
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--olive);
}
.plan__spec {
  margin-top: calc(20 * var(--u));
  font-family: var(--font-gothic);
  font-size: calc(12 * var(--u));
  font-weight: 400;
  color: var(--olive);
}
.plan__spec span + span { margin-left: .8em; }
.plan__price { margin-top: calc(10 * var(--u)); font-size: calc(8 * var(--u)); color: var(--olive); line-height: 1.2; }
.plan__price b { font-size: calc(26 * var(--u)); font-weight: 500; margin-left: .6em; letter-spacing: -.02em; }
.plan__price .yen { font-size: calc(13 * var(--u)); }
.plan__price .land { margin-left: 1em; }
.plan__photos { margin-top: calc(38 * var(--u)); display: grid; gap: calc(6 * var(--u)); }
.plan__floor { align-self: start; }
.plan__floor img { width: 100%; max-width: calc(260 * var(--u)); margin-left: auto; }
.plan__notes { margin-top: calc(40 * var(--u)); }

@media (max-width: 767px) {
  .plan__grid { grid-template-columns: 1fr; gap: calc(32 * var(--u)); }
  .plan__floor img { margin-inline: auto; }
}

/* =========================================================
   EQUIPMENT
   ========================================================= */
.equip { padding: calc(64 * var(--u)) 0 calc(50 * var(--u)); }
.equip .sec-head__ja { font-size: clamp(calc(22 * var(--u)), 3.74vw, calc(27 * var(--u))); }
.equip .sec-head__lead { font-size: clamp(calc(16 * var(--u)), 2.67vw, calc(20 * var(--u))); line-height: 1.8; }
.equip__list {
  margin-top: calc(36 * var(--u));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(50 * var(--u)) calc(42 * var(--u));
}
.equip__img { aspect-ratio: 191 / 170; display: grid; place-items: center; overflow: hidden; }
.equip__img img { width: 100%; height: 100%; object-fit: cover; }
.equip__img--contain img { object-fit: contain; }
.equip__list h3 {
  margin-top: calc(22 * var(--u));
  font-size: calc(21 * var(--u));
  font-weight: 500;
  letter-spacing: .06em;
  text-align: center;
}
.equip__list p { margin-top: calc(18 * var(--u)); font-size: calc(10 * var(--u)); line-height: 1.85; text-align: justify; }

.equip__feature {
  margin-top: calc(46 * var(--u));
  display: grid;
  grid-template-columns: 1fr calc(265 * var(--u));
  gap: calc(24 * var(--u));
  align-items: center;
  padding-left: calc(50 * var(--u));
}
.equip__feature h3 { font-size: calc(19 * var(--u)); font-weight: 500; letter-spacing: .04em; }
.equip__feature p { margin-top: calc(18 * var(--u)); font-size: calc(10 * var(--u)); line-height: 1.85; }

@media (max-width: 767px) {
  .equip__list { grid-template-columns: 1fr 1fr; gap: calc(32 * var(--u)) calc(16 * var(--u)); }
  .equip__list h3 { font-size: calc(17 * var(--u)); margin-top: calc(14 * var(--u)); }
  .equip__list p,
  .equip__feature p { font-size: calc(12 * var(--u)); }
  .equip__feature { grid-template-columns: 1fr; padding-left: 0; }
}

/* =========================================================
   QUALITY
   ========================================================= */
.quality { padding: calc(40 * var(--u)) 0 calc(40 * var(--u)); text-align: center; }
.quality .sec-head__ja { font-size: clamp(calc(22 * var(--u)), 3.88vw, calc(28 * var(--u))); line-height: 1.55; }
.quality__sub {
  margin-top: calc(26 * var(--u));
  font-size: clamp(calc(17 * var(--u)), 2.67vw, calc(20 * var(--u)));
  letter-spacing: .06em;
}
.quality__body { margin-top: calc(18 * var(--u)); font-size: calc(10 * var(--u)); line-height: 1.8; }
.quality__body sup { font-size: calc(7 * var(--u)); color: var(--olive); }
.quality__cond {
  margin-top: calc(26 * var(--u));
  display: flex;
  align-items: center;
  gap: calc(12 * var(--u));
  font-size: calc(13 * var(--u));
  letter-spacing: .1em;
}
.quality__cond::before,
.quality__cond::after { content: ""; flex: 1; height: 1px; background: #c8c2bc; }
.quality__badges {
  margin-top: calc(16 * var(--u));
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: calc(4 * var(--u));
}
.quality__link {
  margin-top: calc(16 * var(--u));
  display: inline-flex;
  align-items: center;
  gap: calc(6 * var(--u));
  font-size: calc(11 * var(--u));
  text-decoration: none;
}
.quality__link::after {
  content: "";
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  border-radius: 50%;
  background: var(--text) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M5.5 4l4 3-4 3z' fill='%23fff'/%3E%3C/svg%3E") center / 100% no-repeat;
}
.quality__link:hover { color: var(--olive); }
.quality .note { margin-top: calc(4 * var(--u)); }
.quality__banner { display: block; margin-top: calc(30 * var(--u)); transition: opacity .3s; }
.quality__banner:hover { opacity: .85; }
.quality__warranty { margin-top: calc(14 * var(--u)); }

@media (max-width: 767px) {
  .quality__body { font-size: calc(12 * var(--u)); text-align: left; }
  .quality__badges { grid-template-columns: repeat(3, 1fr); }
}

/* =========================================================
   PLAN CONCEPT
   ========================================================= */
.concept { padding: calc(36 * var(--u)) 0 0; text-align: center; }
.concept .sec-head__ja { font-size: clamp(calc(22 * var(--u)), 3.74vw, calc(27 * var(--u))); margin-top: calc(18 * var(--u)); }
.concept__body { margin: calc(34 * var(--u)) auto calc(24 * var(--u)); font-size: calc(10 * var(--u)); line-height: 1.8; }
.concept__photos { display: grid; grid-template-columns: 1fr 1fr; }
.concept__photos img { width: 100%; aspect-ratio: 565 / 273; object-fit: cover; }

@media (max-width: 767px) {
  .concept__body { font-size: calc(12 * var(--u)); text-align: left; width: min(var(--content), 100% - var(--gutter) * 2); }
}

/* =========================================================
   PERFORMANCE
   ========================================================= */
.perf { padding: calc(48 * var(--u)) 0 calc(56 * var(--u)); background: var(--bg-pale); }
.perf .sec-head__ja { font-size: clamp(calc(22 * var(--u)), 3.47vw, calc(25 * var(--u))); }
.perf__item { margin-top: calc(26 * var(--u)); }
.perf__item + .perf__item { margin-top: calc(30 * var(--u)); }
.perf__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: calc(20 * var(--u));
  align-items: start;
}
.perf__en {
  font-family: var(--font-en);
  font-size: calc(50 * var(--u));
  font-weight: 500;
  line-height: 1;
  color: var(--olive-pale);
  white-space: nowrap;
}
.perf__en small { margin-left: .3em; font-size: calc(26 * var(--u)); }
.perf__ttl { margin-top: calc(18 * var(--u)); font-size: calc(21 * var(--u)); font-weight: 500; letter-spacing: .04em; }
.perf__txt { margin-top: calc(18 * var(--u)); font-size: calc(10 * var(--u)); line-height: 1.85; }
.perf__fig--time { width: calc(302 * var(--u)); }
.perf__fig--space { width: calc(319 * var(--u)); margin-top: calc(4 * var(--u)); }
.perf__fig--cost { width: calc(285 * var(--u)); }
.perf__photos { margin-top: calc(10 * var(--u)); display: grid; gap: calc(10 * var(--u)); }
.perf__photos--4 { grid-template-columns: repeat(4, 1fr); }
.perf__photos--3 { grid-template-columns: repeat(3, 1fr); margin-top: calc(18 * var(--u)); }
.perf__photos img { width: 100%; object-fit: cover; }
.perf__item .note--right { margin-top: calc(4 * var(--u)); }

@media (max-width: 767px) {
  .perf__row { grid-template-columns: 1fr; }
  .perf__en { font-size: calc(40 * var(--u)); }
  .perf__txt { font-size: calc(12 * var(--u)); }
  .perf__fig--time,
  .perf__fig--space,
  .perf__fig--cost { width: 100%; max-width: calc(360 * var(--u)); }
  .perf__photos--4 { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   ACCESS
   ========================================================= */
.access { padding: calc(56 * var(--u)) 0 calc(40 * var(--u)); }
.access .sec-head__ja { font-size: clamp(calc(18 * var(--u)), 3.47vw, calc(25 * var(--u))); letter-spacing: .06em; }
.access__cities { margin-top: calc(30 * var(--u)); display: grid; grid-template-columns: repeat(3, 1fr); }
.access__cities img { width: 100%; aspect-ratio: 377 / 274; object-fit: cover; }
.access__route { margin-top: calc(26 * var(--u)); }
.station {
  margin-top: calc(26 * var(--u));
  display: grid;
  grid-template-columns: 1fr calc(280 * var(--u));
  gap: calc(20 * var(--u));
  align-items: center;
}
.station + .station { margin-top: calc(26 * var(--u)); }
.station__line { font-size: calc(13 * var(--u)); line-height: 1.3; }
.station__walk { font-size: calc(24 * var(--u)); line-height: 1.2; letter-spacing: .02em; }
.station__walk b { font-size: calc(48 * var(--u)); font-weight: 500; letter-spacing: -.04em; }
.station__walk .min { font-size: calc(20 * var(--u)); }
.station__from { margin-top: calc(10 * var(--u)); font-size: calc(13 * var(--u)); line-height: 1.4; }
.station__to { font-size: calc(22 * var(--u)); line-height: 1.4; letter-spacing: .02em; }
.station .note { font-size: calc(6 * var(--u)); }

@media (max-width: 767px) {
  .access__cities { grid-template-columns: 1fr 1fr 1fr; }
  .station { grid-template-columns: 1fr; }
  .station__walk b { font-size: calc(40 * var(--u)); }
  .station__to { font-size: calc(18 * var(--u)); }
  .station .note { font-size: calc(9 * var(--u)); }
}

/* =========================================================
   LOCATION
   ========================================================= */
.location { padding: calc(64 * var(--u)) 0 0; }
.location .sec-head__ja { font-size: clamp(calc(18 * var(--u)), 3.47vw, calc(25 * var(--u))); letter-spacing: .08em; line-height: 1.9; }
.location__map { margin-top: calc(18 * var(--u)); background: var(--bg-pale); }
.location__map img { width: min(calc(835 * var(--u)), 100%); margin-inline: auto; }

.facility { margin-top: calc(40 * var(--u)); }
.facility + .facility { margin-top: calc(26 * var(--u)); }
.facility h3 { text-align: center; font-weight: 500; }
.facility h3 span { display: block; font-size: calc(13 * var(--u)); letter-spacing: .3em; }
.facility h3 strong { display: block; margin-top: calc(4 * var(--u)); font-size: clamp(calc(16 * var(--u)), 2.67vw, calc(21 * var(--u))); font-weight: 500; letter-spacing: .02em; }
.facility ul { margin-top: calc(10 * var(--u)); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(6 * var(--u)); }
.facility li img { width: 100%; aspect-ratio: 159 / 102; object-fit: cover; }
.facility li p { margin-top: calc(6 * var(--u)); font-size: calc(8 * var(--u)); text-align: center; }
.facility-note { margin-top: calc(14 * var(--u)); padding-left: calc(40 * var(--u)); }

@media (max-width: 767px) {
  .facility ul { grid-template-columns: repeat(2, 1fr); gap: calc(12 * var(--u)) calc(8 * var(--u)); }
  .facility li p { font-size: calc(10 * var(--u)); white-space: normal; }
  .facility-note { padding-left: 0; }
}

/* =========================================================
   分譲概要
   ========================================================= */
.outline { padding: 0 0 calc(48 * var(--u)); }
.outline__inner { border-top: calc(1 * var(--u)) solid #b7b9bb; margin-top: calc(22 * var(--u)); padding-top: calc(30 * var(--u)); }
.outline h2 {
  text-align: center;
  font-size: calc(15 * var(--u));
  font-weight: 500;
  letter-spacing: .3em;
}
.outline__text { margin-top: calc(22 * var(--u)); font-size: calc(8.5 * var(--u)); line-height: 1.75; text-align: justify; }
.outline__text p + p { margin-top: 1.75em; }

@media (max-width: 767px) {
  .outline__text { font-size: calc(10 * var(--u)); }
}

/* =========================================================
   FORM
   ========================================================= */
.form-sec { padding: calc(40 * var(--u)) 0 calc(56 * var(--u)); }
.form-sec .sec-head__ja { font-size: clamp(calc(22 * var(--u)), 4.00vw, calc(30 * var(--u))); letter-spacing: .1em; }
.form-sec__lead { margin-top: calc(36 * var(--u)); text-align: center; font-size: clamp(calc(14 * var(--u)), 2.14vw, calc(16 * var(--u))); letter-spacing: .02em; }
.form-sec__caution { margin-top: calc(16 * var(--u)); text-align: center; font-size: calc(7 * var(--u)); line-height: 1.6; }
.form-sec__caution a { text-decoration: underline; }

.form {
  margin-top: calc(30 * var(--u));
  padding: calc(50 * var(--u)) calc(64 * var(--u)) calc(48 * var(--u));
  border: 1px solid #222;
  font-family: var(--font-gothic);
  font-weight: 400;
  font-size: calc(11 * var(--u));
  letter-spacing: .08em;
  color: #333;
}
.form__row {
  display: grid;
  grid-template-columns: calc(182 * var(--u)) 1fr;
  gap: 0 calc(12 * var(--u));
  padding: calc(22 * var(--u)) 0;
  border-bottom: 1px solid #eee;
}
.form__row:first-child { padding-top: 0; }
.form__label { line-height: 1.9; }
.form__label .req { color: #d0021b; margin-left: calc(2 * var(--u)); }
.form__field { line-height: 1.9; }
.form__field p { margin-top: calc(6 * var(--u)); }
.form__field .red { color: #d0021b; }
.form__choice { display: flex; flex-direction: column; gap: calc(10 * var(--u)); }
.form__choice--inline { flex-direction: row; flex-wrap: wrap; gap: calc(6 * var(--u)) calc(16 * var(--u)); }
.form__choice label { display: inline-flex; align-items: center; gap: calc(6 * var(--u)); cursor: pointer; }
.form input[type="radio"] { margin: 0; accent-color: #1a73e8; }
.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form input[type="number"],
.form input[type="date"],
.form select,
.form textarea {
  font: inherit;
  letter-spacing: .04em;
  color: #333;
  border: 1px solid #c8c8c8;
  border-radius: calc(3 * var(--u));
  background: #f6f7f8;
  padding: calc(6 * var(--u)) calc(12 * var(--u));
  height: calc(30 * var(--u));
}
.form input::placeholder,
.form textarea::placeholder { color: #9a9a9a; }
.form .w-full { width: 100%; }
.form .w-s { width: calc(68 * var(--u)); }
.form .w-m { width: calc(102 * var(--u)); }
.form .gap { margin-top: calc(10 * var(--u)); }
.form textarea { width: 100%; height: calc(102 * var(--u)); resize: vertical; }
.form select { background: #fff; border: calc(1.5 * var(--u)) solid #222; border-radius: calc(4 * var(--u)); height: calc(20 * var(--u)); padding: 0 calc(8 * var(--u)); font-size: calc(10 * var(--u)); font-weight: 600; }
.form select.w-l { width: calc(232 * var(--u)); }
.form select.w-ml { width: calc(189 * var(--u)); }
.form__dates { display: grid; gap: calc(13 * var(--u)); }
.form__dates div { display: flex; align-items: center; gap: calc(4 * var(--u)); flex-wrap: wrap; }
.form__dates input { width: calc(58 * var(--u)); }
.form__zip { display: flex; align-items: center; gap: calc(14 * var(--u)); }
.form__submit { padding: calc(18 * var(--u)) 0; border-bottom: calc(1 * var(--u)) solid #eee; text-align: center; }
.form__submit button {
  position: relative;
  width: calc(196 * var(--u));
  height: calc(42 * var(--u));
  border: 1px solid #222;
  background: #fff;
  font: inherit;
  font-weight: 600;
  font-size: calc(10 * var(--u));
  cursor: pointer;
  transition: background .3s, color .3s;
}
.form__submit button::after { content: "›"; position: absolute; right: calc(12 * var(--u)); top: 50%; translate: 0 -55%; font-size: calc(12 * var(--u)); }
.form__submit button:hover { background: #222; color: #fff; }
.form__qa { align-items: center; }

@media (max-width: 767px) {
  .form { padding: calc(28 * var(--u)) calc(16 * var(--u)); font-size: calc(13 * var(--u)); }
  .form__row { grid-template-columns: 1fr; gap: calc(8 * var(--u)); }
  .form select.w-l,
  .form select.w-ml { width: 100%; height: calc(34 * var(--u)); font-size: calc(13 * var(--u)); }
  .form input[type="text"],
  .form input[type="email"],
  .form input[type="tel"],
  .form input[type="number"] { height: calc(38 * var(--u)); font-size: calc(16 * var(--u)); }
  .form-sec__caution { font-size: calc(10 * var(--u)); text-align: left; }
  .form .w-s { width: calc(96 * var(--u)); }
}

/* =========================================================
   Footer
   ========================================================= */
.footer { background: var(--footer); color: #fff; padding: calc(40 * var(--u)) 0 calc(44 * var(--u)); }
.footer__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(10 * var(--u));
  width: min(calc(680 * var(--u)), 100% - var(--gutter) * 2);
  margin-inline: auto;
}
.footer__company { font-size: calc(7.5 * var(--u)); line-height: 1.45; white-space: nowrap; }
.footer__tel { display: flex; align-items: center; gap: calc(4 * var(--u)); color: #fff; text-decoration: none; }
.footer__tel img { width: calc(47 * var(--u)); }
.footer__tel span { font-variant-numeric: var(--en-nums); font-family: var(--font-en); font-size: calc(38 * var(--u)); font-weight: 500; line-height: 1; letter-spacing: -.01em; }
.footer__hours { font-size: calc(7 * var(--u)); line-height: 1.4; white-space: nowrap; }
.footer__logo { width: calc(145 * var(--u)); margin-left: calc(10 * var(--u)); }

@media (max-width: 767px) {
  .footer__inner { flex-wrap: wrap; gap: calc(12 * var(--u)) calc(10 * var(--u)); }
  .footer__company { width: 100%; text-align: center; font-size: calc(11 * var(--u)); }
  .footer__hours { font-size: calc(10 * var(--u)); }
  .footer__logo { margin: calc(8 * var(--u)) auto 0; }
}

/* ---------- スクロール表示 ---------- */
.js-fade { opacity: 0; translate: 0 calc(24 * var(--u)); transition: opacity 1s ease, translate 1s ease; }
.js-fade.is-in { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce) {
  .js-fade { opacity: 1; translate: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* =========================================================
   1016版 追加：内観2枚並び／image表記／都市名
   ========================================================= */
:root { --font-didot: "Didot", "Bodoni Moda", "Shippori Mincho", serif; }
.hero__en { font-family: var(--font-didot); font-weight: 400; }

.plan__interior { display: grid; grid-template-columns: 1fr 1fr; }
.plan__interior img { width: 100%; height: 100%; object-fit: cover; }

.imgnote { position: relative; display: block; }
.imgnote__txt {
  position: absolute;
  right: calc(6 * var(--u));
  bottom: calc(6 * var(--u));
  font-size: calc(9 * var(--u));
  line-height: 1;
  color: #fff;
  pointer-events: none;
}
.imgnote--dark .imgnote__txt { color: #3a3a3a; }
.equip__img .imgnote { width: 100%; height: 100%; }
.equip__feature .imgnote__txt { right: calc(-30 * var(--u)); bottom: calc(10 * var(--u)); }
.concept__photos .imgnote:first-child .imgnote__txt { right: calc(8 * var(--u)); bottom: calc(10 * var(--u)); }
.concept__photos .imgnote:last-child .imgnote__txt { right: auto; left: calc(11 * var(--u)); bottom: calc(10 * var(--u)); }

.city { position: relative; container-type: inline-size; overflow: hidden; }
.city img { width: 100%; aspect-ratio: 377 / 273; object-fit: cover; }
.city__name {
  position: absolute;
  top: 0;
  left: 14.6%;
  font-family: var(--font-didot);
  font-size: 11.1cqw;
  line-height: 1.2;
  color: #fff;
}
.city__name--olive { color: var(--olive); }
.city__name--right { left: auto; right: 7.4%; }
.city:last-child .city__name { left: 5%; }
.city__note {
  position: absolute;
  right: 2.4%;
  bottom: 4%;
  font-family: var(--font-gothic);
  font-size: max(calc(8 * var(--u)), 2.8cqw);
  line-height: 1;
  color: #fff;
}
.city__note--dark { color: #000; right: 5.5%; }

@media (max-width: 767px) {
  .equip__feature .imgnote__txt { right: calc(6 * var(--u)); }
}

/* ---------- SP：本文・注釈の文字を読みやすいサイズに ---------- */
@media (max-width: 767px) {
  .hero__body { font-size: 14px; }
  .equip__list p,
  .equip__feature p,
  .perf__txt,
  .quality__body,
  .concept__body { font-size: 14px; }
  .note,
  .facility-note,
  .plan__notes { font-size: 11px; }
  .facility li p { font-size: 11px; }
  .outline__text { font-size: 11.5px; }
  .plan__spec { font-size: 13px; }
  .plan__price { font-size: 10px; }
  .form-sec__caution { font-size: 11.5px; }
  .station .note { font-size: 10px; }
  .footer__company,
  .footer__hours { font-size: 11px; }
  .form { font-size: 14px; }
}

/* ---------- SP：改行位置の調整 ---------- */
@media (max-width: 767px) {
  .plan__price .land { display: block; margin: 6px 0 0; }
  .facility li p .fac-walk { display: block; }
  .facility li p { line-height: 1.5; }
}
@media (min-width: 768px) {
  .fac-walk { white-space: nowrap; }
}

.nw { white-space: nowrap; }

/* ---------- 小型スマホ（幅340px以下） ---------- */
@media (max-width: 340px) {
  .landplan__points li { font-size: 11.5px; }
  .sec-head__lead,
  .plan-intro .sec-head__lead { font-size: 14.5px; letter-spacing: 0; }
  .station__walk { font-size: 18px; }
  .station__walk b { font-size: 34px; }
}

/* ---------- SP：「建築条件付宅地」を面積の下に横書き1行で ---------- */
@media (max-width: 767px) {
  .sale__spec > .sale__cond {
    width: 100%;
    justify-content: center;
    padding: 0;
    border-left: 0;
  }
  .sale__cond .sale__label {
    padding: 3px 14px;
    border: 1px solid rgba(255, 255, 255, .8);
    font-size: 13px;
    letter-spacing: .1em;
  }
}
