@charset "UTF-8";
/* ==========================================================================
   URBAN RESORT HOUSE 木更津金田3期 LP
   デザインカンプ幅 192rem。1rem = 1rem @192rem（ビューポート幅に比例して拡縮）
   ========================================================================== */

/* ---------- tokens ---------- */
:root {
  --navy: #1c293a;
  --navy-bg: #1b283a;
  --green: #2c574d;
  --green-dark: #1f4038;
  --brown: #746457;
  --gray-panel: #c9cbc6;
  --gold: #c1996b;
  --gold-req: #d1bc78;
  --footer-nav: #c9a77c;
  --red: #c0272d;
  --gray-map: #989898;
  --input-bg: #e6e5e5;
  --input-line: #b3b2b3;
  --placeholder: #999899;

  --ff-min: "Ryumin Pr6N", "A-OTF Ryumin Pr6N", "Shippori Mincho B1", "Noto Serif JP", "Yu Mincho", serif;
  --ff-go: "UD Shin Go NT Pr6N", "A-OTF UD Shin Go NT Pr6N", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --ff-mb: "Gothic MB101 Pr6N", "A-OTF Gothic MB101 Pr6N", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --ff-en: "Cochin", "Cormorant Garamond", serif;
  --ff-futura: "Futura PT", "Jost", "Futura", sans-serif;
  --ff-script: "Allura", cursive;
  --ff-din: "DIN 2014 Narrow", "Barlow Condensed", sans-serif;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; scrollbar-gutter: stable; font-size: calc(100vw / 192); /* JS未実行時のフォールバック。通常は index.html 内のスクリプトでスクロールバーを除いた幅から算出 */ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; min-width: 0; overflow-x: clip; /* html 側で横はみ出しを防ぐため、body はスクロールコンテナにしない */
  background: #fff; color: var(--navy);
  font-family: var(--ff-go); font-weight: 400; font-size: 1.6rem; line-height: 1.75;
  -webkit-font-smoothing: antialiased; font-variant-numeric: lining-nums;
}
h1, h2, h3, h4, p, ul, dl, dd, figure, address { margin: 0; padding: 0; }
ul { list-style: none; }
img { display: block; max-width: none; height: auto; }
a { color: inherit; text-decoration: none; }
address { font-style: normal; }
button, input, select, textarea { font: inherit; color: inherit; }
em { font-style: normal; }
body.is-menu-open { overflow: hidden; }
html:has(> body.is-menu-open) { overflow: hidden; } /* html に overflow-x を指定しているため、スクロール固定は html 側で行う */

section, .mv, .gnav, .footer { position: relative; }
.sec-ttl, .lead, section > .txt { z-index: 3; }
.mv img, section img { position: absolute; }

/* ---------- common typography ---------- */
.sec-ttl {                       /* Futura PT Light 110（中央揃え） */
  position: absolute; left: 0; right: 0; margin: 0; padding-left: .1em; text-align: center;
  font-family: var(--ff-futura); font-weight: 400; font-size: 11rem; line-height: 11rem;
  letter-spacing: .1em; white-space: nowrap; color: var(--green);
}
.lead {                          /* リュウミン 30 */
  position: absolute; font-family: var(--ff-min); font-weight: 400;
  font-size: 3.2rem; line-height: 5.4rem; letter-spacing: .03em; white-space: nowrap; color: var(--green);
}
.txt { font-size: 1.7rem; line-height: 3.25rem; letter-spacing: .04em; white-space: nowrap; }
section > .txt { position: absolute; }
.concept__lead, .concept__txt, .landplan__lead, .landplan__txt, .plan__lead,
.access__lead, .access__txt, .access__time, .location__lead, .location__txt { left: 0; right: 0; text-align: center; }

/* ==========================================================================
   MV
   ========================================================================== */
.mv { height: 93rem; }
.mv__bg { position: absolute; left: 2.4rem; top: 2.4rem; width: 187.2rem; height: 90rem; overflow: hidden; }
.mv__bg img { left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }

/* スクロール表示アニメーション（js/main.js 4-3）：右からスッと表示 */
.is-reveal .reveal { opacity: 0; translate: 8rem 0; }
.is-reveal .reveal.is-shown {
  opacity: 1; translate: 0 0;
  transition: opacity 1s ease, translate 1s cubic-bezier(.22, .61, .36, 1);
}

.mv__logo {
  position: absolute; left: 86.8rem; top: 2.4rem; width: 18.4rem; height: 21.5rem;
  background: var(--green); font-weight: 400;
}
.mv__logo img { left: 3.35rem; top: 2.3rem; width: 11.7rem; height: 14.6rem; }
.mv__logo-sub {
  position: absolute; left: 0; right: 0; top: 18.1rem;
  font-family: var(--ff-din); font-weight: 600; font-size: 1.43rem; line-height: 1.43rem;
  letter-spacing: -.01em; text-align: center; color: #fff;
}

.mv__menu {
  position: fixed; z-index: 2001; left: 176.1rem; top: 7rem; width: 10rem; height: 3.1rem; /* スクロールに追随 */
  padding: 0; border: 0; background: none; cursor: pointer;
}
.mv__menu span {
  position: absolute; left: 50%; height: 0.6rem; background: var(--navy); transform: translateX(-50%);
  box-shadow: 0 0 0.6rem rgba(255, 255, 255, .7); /* 暗い背景の上でも見えるように */
  transition: top .3s ease, width .3s ease, transform .3s ease, opacity .2s ease, box-shadow .3s ease;
}
.mv__menu span:nth-child(1) { top: 0;    width: 10rem; }
.mv__menu span:nth-child(2) { top: 1.2rem; width: 6.6rem; height: 0.7rem; }
.mv__menu span:nth-child(3) { top: 2.5rem; width: 4.2rem; }
.mv__menu.is-active span { top: 1.25rem; width: 5.6rem; height: 0.5rem; box-shadow: none; }
.mv__menu.is-active span:nth-child(1) { transform: translateX(-50%) rotate(45deg); }
.mv__menu.is-active span:nth-child(2) { opacity: 0; }
.mv__menu.is-active span:nth-child(3) { transform: translateX(-50%) rotate(-45deg); }

/* ---- メニュー（全画面） ---- */
.gmenu {
  position: fixed; inset: 0; z-index: 1999; display: flex; align-items: center; justify-content: center;
  overflow-y: auto; background: #fff; opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
.gmenu.is-open { opacity: 1; visibility: visible; }
.gmenu__inner { display: flex; flex-direction: column; align-items: center; margin: auto; padding: 9rem 0; }
.gmenu__list { display: flex; flex-direction: column; gap: 3rem; width: 30rem; }
.gmenu__list li { opacity: 0; transform: translateY(1.2rem); transition: opacity .4s ease, transform .4s ease; }
.gmenu.is-open .gmenu__list li { opacity: 1; transform: none; }
.gmenu.is-open .gmenu__list li:nth-child(2) { transition-delay: .04s; }
.gmenu.is-open .gmenu__list li:nth-child(3) { transition-delay: .08s; }
.gmenu.is-open .gmenu__list li:nth-child(4) { transition-delay: .12s; }
.gmenu.is-open .gmenu__list li:nth-child(5) { transition-delay: .16s; }
.gmenu.is-open .gmenu__list li:nth-child(6) { transition-delay: .2s; }
.gmenu.is-open .gmenu__list li:nth-child(7) { transition-delay: .24s; }
.gmenu.is-open .gmenu__list li:nth-child(8) { transition-delay: .28s; }
.gmenu__list a {
  display: flex; align-items: center; gap: 2.2rem; white-space: nowrap;
  font-family: var(--ff-en); font-weight: 500; font-size: 4rem; line-height: 4.4rem; letter-spacing: .05em; color: var(--navy);
  transition: color .2s ease;
}
.gmenu__list a:hover, .gmenu__list a:focus-visible, .gmenu__list a.is-current { color: var(--green); outline: none; }
.gmenu__check { position: relative; flex: none; width: 2.4rem; height: 2.4rem; border: 0.15rem solid var(--navy); }
.gmenu__check::after {
  content: ""; position: absolute; left: 0.65rem; top: -0.3rem; width: 0.9rem; height: 1.7rem;
  border-right: 0.3rem solid var(--green); border-bottom: 0.3rem solid var(--green); transform: rotate(45deg);
  opacity: 0; transition: opacity .2s ease;
}
.gmenu__list a:hover .gmenu__check::after, .gmenu__list a:focus-visible .gmenu__check::after, .gmenu__list a.is-current .gmenu__check::after { opacity: 1; }
.gmenu__info { display: flex; flex-direction: column; align-items: center; gap: 3.6rem; margin-top: 6.4rem; }
.gmenu__tel { display: flex; align-items: center; gap: 2rem; }
.gmenu__tel-icon {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 7rem; height: 7rem; border: 0.15rem solid var(--navy); border-radius: 50%; color: var(--navy);
}
.gmenu__tel-icon svg { width: 3.4rem; height: 3.4rem; }
.gmenu__tel-name { font-size: 1.8rem; line-height: 1.8rem; letter-spacing: .05em; }
.gmenu__tel-num {
  display: block; margin-top: 1rem; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 500; font-size: 4rem; line-height: 4rem; color: var(--navy);
}
.gmenu__sns {
  display: flex; align-items: center; justify-content: center;
  width: 7.2rem; height: 7.2rem; border-radius: 50%; background: var(--green); color: #fff; transition: background-color .2s ease;
}
.gmenu__sns:hover { background: var(--green); }
.gmenu__sns svg { width: 3.6rem; height: 3.6rem; }

.mv__ttl {
  position: absolute; left: 9.2rem; top: 7.6rem; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 500; font-size: 6.4rem; line-height: 10.8rem; letter-spacing: 0;
  color: var(--green);
  text-shadow: 0 0 0.3rem #fff, 0 0 0.8rem #fff, 0 0 1.8rem rgba(255, 255, 255, .95), 0 0 3.2rem rgba(255, 255, 255, .8);
}
.mv__ttl > span { display: block; }
.mv__ttl em { color: var(--red); }
.mv__ttl-num { margin: 0 2.6rem 0 2.4rem; font-size: 12.4rem; line-height: 0; }
.mv__name {
  position: absolute; left: 9.2rem; top: 32.6rem; width: 26.8rem; height: 7.4rem;
  background: rgba(181, 133, 92, .88); color: #fff; text-align: center; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 400; font-size: 1.9rem; line-height: 3.7rem; letter-spacing: .15em;
}
.mv__name span { display: block; padding-left: .15em; }
.mv__name span + span { margin: 0 1.6rem; border-top: 0.1rem solid rgba(255, 255, 255, .7); line-height: 3.6rem; }
.mv__catch {
  position: absolute; left: 156.7rem; top: 9.3rem; display: flex; flex-direction: row-reverse; gap: 2rem;
  font-family: var(--ff-min); font-weight: 400; font-size: 4.6rem; line-height: 6.4rem; letter-spacing: .06em; color: #fff;
}
.mv__catch span {
  display: block; width: 6.4rem; padding: 2.4rem 0 2.6rem; background: var(--green);
  writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; white-space: nowrap;
}
.mv__en {
  position: absolute; left: 173.2rem; top: 9.6rem; white-space: nowrap;
  writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl;
  font-family: var(--ff-futura); font-weight: 400; font-size: 1.8rem; line-height: 2rem; letter-spacing: .14em; color: var(--green);
  text-shadow: 0 0 0.6rem rgba(255, 255, 255, .8);
}

/* side contact (fixed)：タブをクリックで左へスライドしてバナー表示 */
.side-contact {
  position: fixed; z-index: 100; right: 0; top: 38.9rem; display: flex; width: 60rem; height: 18rem;
  transform: translateX(54.7rem); transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}
.side-contact.is-open { transform: translateX(0); }
.side-contact__tab {
  position: relative; flex: none; width: 5.3rem; height: 18rem; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: #000; cursor: pointer;
}
.side-contact__tab img { position: absolute; left: 0.8rem; top: 1.3rem; width: 3.7rem; height: 2.9rem; }
.side-contact__tab span {
  position: absolute; left: 0; right: 0; top: 4.8rem;
  writing-mode: vertical-rl; margin: 0 auto;
  font-family: var(--ff-futura); font-weight: 400; font-size: 3.2rem; line-height: 5.3rem; color: #fff;
}
.side-contact__panel {
  position: relative; display: block; flex: none; width: 54.7rem; height: 18rem; background: var(--green);
  visibility: hidden; transition: visibility 0s linear .6s;
}
.side-contact.is-open .side-contact__panel { visibility: visible; transition-delay: 0s; }
.side-contact__photo { position: absolute; left: 0; top: 0; width: 22.6rem; height: 18.1rem; }
.side-contact__txt {
  position: absolute; left: 23.3rem; top: 1.9rem; white-space: nowrap;
  font-family: var(--ff-min); font-size: 2.2rem; line-height: 4rem; letter-spacing: .05em; color: #fff;
}
.side-contact__btn {
  position: absolute; left: 23.3rem; top: 11.4rem; width: 26.8rem; height: 3.8rem; border: 0.15rem solid #fff;
  font-family: var(--ff-futura); font-weight: 400; font-size: 2.8rem; line-height: 3.5rem; text-align: center; color: #fff;
  transition: background-color .2s ease, color .2s ease;
}
.side-contact__panel:hover .side-contact__btn { background: #fff; color: var(--green); }

/* ==========================================================================
   GLOBAL NAV
   ========================================================================== */
.gnav { height: 10rem; background: #fff; }
.gnav > * { position: absolute; }
.gnav__logo { left: 16.3rem; top: 1.7rem; }
.gnav__logo img { width: 64.8rem; height: 6.4rem; }
.gnav__name { left: 84.1rem; top: 3.06rem; font-family: var(--ff-min); font-size: 1.2rem; line-height: 1.2rem; letter-spacing: .065em; white-space: nowrap; }
.gnav__phase {
  left: 84.2rem; top: 5rem; width: 13.9rem; height: 1.7rem; padding-left: .2em;
  background: var(--navy-bg); color: #fff; text-align: center; white-space: nowrap;
  font-family: var(--ff-min); font-size: 1.2rem; line-height: 1.7rem; letter-spacing: .2em;
}
.gnav__tel {
  left: 103.6rem; top: 3.3rem; white-space: nowrap;
  font-family: var(--ff-futura); font-weight: 300; font-size: 3.6rem; line-height: 3.6rem; letter-spacing: 0;
}
.gnav__tel span { font-size: 2rem; }
.gnav__btn {
  top: 3.3rem; width: 18rem; height: 3.5rem; background: var(--green); color: #fff;
  font-family: var(--ff-min); font-size: 1.7rem; line-height: 3.5rem; letter-spacing: .1em; text-align: center; padding-left: .1em;
  transition: opacity .2s ease;
}
.gnav__btn:hover { opacity: .8; }
.gnav__btn--contact { left: 131.6rem; }
.gnav__btn--request { left: 151.1rem; }
.gnav__sns { left: 172.5rem; top: 3.2rem; }
.gnav__sns img { position: static; width: 3.7rem; height: 3.7rem; }

/* ==========================================================================
   FEATURE / CONCEPT  (y:1030-3530)
   ========================================================================== */
.concept { height: 250rem; }
.feature-label {
  position: absolute; left: 0; right: 0; top: 2.6rem; text-align: center; padding-left: 0.1rem;
  font-family: var(--ff-futura); font-weight: 400; font-size: 2.3rem; line-height: 2.4rem;
}
.feature-bar { position: absolute; left: 95.925rem; top: 6.3rem; width: 0.35rem; height: 5rem; background: var(--navy-bg); }
.feature-bar::after { content: ""; position: absolute; left: 0.125rem; top: 5rem; width: 0.1rem; height: 5rem; background: var(--navy-bg); }

.concept__aqua { left: 2.4rem; top: 21.6rem; width: 187.2rem; height: 70rem; }
.concept__catch {
  position: absolute; z-index: 3; left: 0; right: 0; top: 32rem; text-align: center; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 500; font-size: 3.7rem; line-height: 9.2rem; letter-spacing: .12em; color: #fff;
  text-shadow: 0 0 0.4rem rgba(0, 35, 70, .8), 0 0 1.2rem rgba(0, 35, 70, .65), 0 0 2.4rem rgba(0, 35, 70, .5);
}
.concept__catch span { display: block; }
.concept__catch b { font-weight: 500; font-size: 6rem; letter-spacing: .1em; }

.concept__ttl { top: 100.6rem; }
.concept__lead { top: 118.5rem; }
.concept__txt { top: 126.7rem; }

.cblock { position: absolute; left: 2.4rem; width: 187.2rem; height: 48rem; background: var(--gray-panel); }
.cblock--01 { top: 148.9rem; }
.cblock--02 { top: 199.9rem; }
.cblock__img { top: 0; width: 100.1rem; height: 48rem; }
.cblock--01 .cblock__img { left: 0; }
.cblock--02 .cblock__img { left: 87.1rem; }
.cblock__body { position: absolute; top: 0; width: 80rem; height: 48rem; }
.cblock--01 .cblock__body { left: 108.6rem; }
.cblock--02 .cblock__body { left: 13.8rem; }
.cblock__ttl {
  position: absolute; left: 0; top: 9.6rem; white-space: nowrap;
  font-family: "Ryumin Pr6N", "A-OTF Ryumin Pr6N", "Noto Serif JP", "Yu Mincho", serif; font-weight: 300; font-size: 3.1rem; line-height: 4rem; letter-spacing: .2em;
}
.cblock--01 .cblock__ttl { letter-spacing: .38em; }
.cblock--02 .cblock__ttl { top: 10.9rem; letter-spacing: .1em; }
.cblock__num {
  position: relative; display: inline-block; margin-right: 1.4rem;
  font-family: var(--ff-futura); font-weight: 400; letter-spacing: .02em;
}
.cblock__num::after { content: ""; position: absolute; left: 0; right: 0.1rem; bottom: 0.2rem; height: 0.15rem; background: currentColor; }
.cblock__en { position: absolute; left: 22.51rem; top: 9.18rem; width: 21.85rem; height: auto; }
.cblock--02 .cblock__en { left: 31.92rem; top: 9.71rem; width: 26.03rem; }
.cblock__body .txt { position: absolute; left: 0; top: 18.4rem; }
.cblock--02 .cblock__body .txt { top: 18.4rem; }

/* ==========================================================================
   LAND PLAN  (y:3530-4740)
   ========================================================================== */
.landplan { height: 121rem; }
.landplan__ttl { top: 7.2rem; }
.landplan__lead { top: 25.7rem; }
.landplan__txt { top: 32.8rem; }
.landplan__img01 { left: 2.4rem; top: 51.9rem; width: 98.2rem; height: 58.9rem; }
.landplan__img02 { left: 104.8rem; top: 62.5rem; width: 84.8rem; height: 56.5rem; }

/* ==========================================================================
   PLAN  (y:4740-6208)
   ========================================================================== */
.plan { height: 146.8rem; }
.plan__site { left: 45rem; top: 7.5rem; width: 113rem; height: 88rem; }
.plan__photo01 { left: 0; top: 102.5rem; width: 62rem; height: 37.9rem; }
.plan__photo02 { left: 130rem; top: 102.5rem; width: 62rem; height: 37.9rem; }
.plan__ttl { top: 107.8rem; }
.plan__lead { left: 0; right: 0; top: 125.6rem; text-align: center; line-height: 6.3rem; }

/* ==========================================================================
   PLAN DETAIL  (green / y:6208-10848)
   ========================================================================== */
.detail {
  width: 187.2rem; margin: 0 0 0 2.4rem; overflow: hidden; color: #fff;
  background: url(../img/texture-green.jpg) left top / 160rem auto repeat, var(--green);
}
.detail img, .detail .point { position: absolute; }
.detail__panel { position: relative; height: 464rem; }
.detail__panel[hidden] { display: none; }
.detail__panel:not([hidden]) { animation: detail-fade .45s ease both; }
@keyframes detail-fade { from { opacity: 0; } to { opacity: 1; } }
.detail__panel > .txt, .detail__panel > .lead { position: absolute; }

/* ---- tabs（PLAN.1 / PLAN.2）: 座標は .detail__tabs 基準。各タブは平行四辺形（上辺が 9.4rem 右へずれる） ---- */
.detail__tabs { position: absolute; z-index: 5; left: 0; top: 0; width: 74.2rem; height: 15.7rem; }
.detail__tab {
  position: absolute; left: 0; top: 0; width: 74.2rem; height: 15.7rem; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: var(--brown); color: #ddd6d0; cursor: pointer; -webkit-appearance: none; appearance: none;
  font-family: var(--ff-en); font-weight: 500; letter-spacing: .1em; white-space: nowrap; text-align: left;
  transition: clip-path .4s ease, background-color .4s ease, color .4s ease;
}
.detail__tab[aria-selected="true"] { background: #fff; color: var(--green); cursor: default; }
.detail__tab[aria-selected="false"]:hover { background-color: #85776b; }
.detail__tab:focus { outline: none; }
.detail__tab:focus-visible .detail__tab-label { text-decoration: underline; text-decoration-thickness: 0.1rem; text-underline-offset: 0.6rem; }
.detail__tab-label { position: absolute; font-size: 3.81rem; line-height: 3.81rem; }
.detail__tab-label .num { font-size: 8.46rem; line-height: 0; letter-spacing: 0; }
.detail__tab[aria-selected="true"] .detail__tab-label { font-size: 4.95rem; line-height: 4.95rem; }
.detail__tab[aria-selected="true"] .detail__tab-label .num { font-size: 11rem; }

/* PLAN.1 表示中 */
.detail[data-active="plan1"] .detail__tab--1 { clip-path: polygon(0 0, 48.1rem 0, 38.7rem 15.7rem, 0 15.7rem); }
.detail[data-active="plan1"] .detail__tab--1 .detail__tab-label { left: 13.9rem; top: 6.3rem; }
.detail[data-active="plan1"] .detail__tab--2 { clip-path: polygon(48.1rem 0, 73.8rem 0, 64.4rem 15.7rem, 38.7rem 15.7rem); }
.detail[data-active="plan1"] .detail__tab--2 .detail__tab-label { left: 47.4rem; top: 6.5rem; }
/* PLAN.2 表示中 */
.detail[data-active="plan2"] .detail__tab--1 { clip-path: polygon(9.4rem 0, 35.2rem 0, 25.8rem 15.7rem, 0 15.7rem); }
.detail[data-active="plan2"] .detail__tab--1 .detail__tab-label { left: 8.6rem; top: 6.5rem; }
.detail[data-active="plan2"] .detail__tab--2 { clip-path: polygon(35.2rem 0, 74.2rem 0, 64.8rem 15.7rem, 25.8rem 15.7rem); }
.detail[data-active="plan2"] .detail__tab--2 .detail__tab-label { left: 38.4rem; top: 6.3rem; }

.detail__head { position: absolute; right: 13.9rem; top: 5rem; text-align: right; white-space: nowrap; }
.detail__type { font-family: var(--ff-go); font-weight: 400; font-size: 4rem; line-height: 4rem; letter-spacing: .05em; margin-right: -.05em; }
.detail__type-sub { margin-top: 0.8rem; font-size: 1.5rem; line-height: 1.4rem; letter-spacing: .04em; }

.detail__lead { left: 13.9rem; top: 24.1rem; font-size: 3rem; line-height: 5.9rem; letter-spacing: .03em; color: #fff; }
.detail__txt { left: 13.8rem; top: 39.2rem; line-height: 3.05rem; letter-spacing: .04em; }

.detail__price { position: absolute; left: 13.7rem; top: 60.1rem; width: 56rem; height: 8.4rem; }
.detail__price-label {
  position: absolute; left: 0; top: 0; width: 16.6rem; height: 2.8rem; border: 0.1rem solid #fff;
  font-size: 1.6rem; line-height: 2.6rem; letter-spacing: .1em; text-align: center; padding-left: .1em;
}
.detail__price-num {
  position: absolute; left: -0.1rem; top: 3.4rem; white-space: nowrap;
  font-family: var(--ff-futura); font-weight: 300; font-size: 4.6rem; line-height: 4.8rem;
}
.detail__price-num span { margin-left: 0.2rem; font-family: var(--ff-go); font-size: 2.4rem; }
.detail__price::after { content: ""; position: absolute; left: 20.3rem; top: 0; width: 0.1rem; height: 8.4rem; background: rgba(255, 255, 255, .7); }
.detail__spec { position: absolute; left: 24.4rem; top: -0.5rem; font-size: 1.6rem; line-height: 2.85rem; white-space: nowrap; }

.detail__exterior { left: 87.2rem; top: 22.6rem; width: 100rem; height: 71rem; }
.detail__north { width: 5.8rem; height: 6.4rem; }
.detail__panel--1 .detail__floor--1f { left: 9.2rem; top: 79.9rem; width: 72.8rem; height: 98.6rem; }
.detail__panel--1 .detail__floor--2f { left: 76.6rem; top: 112.2rem; width: 46rem; height: 57.5rem; }
.detail__panel--1 .detail__floor--rf { left: 129.2rem; top: 112.2rem; width: 46.3rem; height: 57.5rem; }
.detail__panel--1 .detail__north { left: 81.3rem; top: 100.6rem; }
.detail__panel--2 .detail__floor--1f { left: 8.3rem; top: 81.8rem; width: 70.8rem; height: 95.4rem; }
.detail__panel--2 .detail__floor--2f { left: 76.1rem; top: 110.3rem; width: 46.4rem; height: 46.5rem; }
.detail__panel--2 .detail__floor--rf { left: 128.5rem; top: 110.7rem; width: 47.3rem; height: 46.1rem; }
.detail__panel--2 .detail__north { left: 78.3rem; top: 100.2rem; }

.detail__movie { position: absolute; left: 43.7rem; top: 187.2rem; width: 100rem; height: 64rem; overflow: hidden; background: #000; }
.detail__movie video { display: block; width: 100%; height: 100%; object-fit: cover; }
.detail__play {
  position: absolute; left: 46.5rem; top: 28.5rem; width: 7rem; height: 7rem; margin: 0; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .92); cursor: pointer; transition: opacity .3s ease, visibility .3s ease, transform .2s ease, background-color .2s ease;
}
.detail__play:hover, .detail__play:focus-visible { background: #fff; transform: scale(1.08); outline: none; }
.detail__movie.is-playing .detail__play { opacity: 0; visibility: hidden; }
.detail__play::after {
  content: ""; position: absolute; left: 2.9rem; top: 2rem;
  border-style: solid; border-width: 1.5rem 0 1.5rem 1.8rem; border-color: transparent transparent transparent var(--navy-bg);
}

.point { left: 0; width: 187.2rem; height: 60rem; }
.point--01 { top: 264.1rem; }
.point--02 { top: 329.2rem; }
.point--03 { top: 394rem; }
.point__img { top: 0; height: 60rem; }
.point--01 .point__img, .point--03 .point__img { left: 0; width: 100.2rem; }
.point--02 .point__img { left: 87.2rem; width: 100rem; }
.point__body {
  position: absolute; top: 0; display: flex; flex-direction: column; justify-content: center;
  width: 67rem; height: 60rem; text-align: center;
}
.point--01 .point__body, .point--03 .point__body { left: 109.2rem; }
.point--02 .point__body { left: 10.2rem; }
.point__num {
  padding-bottom: 1.4rem; border-bottom: 0.1rem solid rgba(255, 255, 255, .8);
  font-family: var(--ff-futura); font-weight: 400; font-size: 3.2rem; line-height: 3.2rem; letter-spacing: .02em;
}
.point__ttl {
  margin-top: 2.3rem; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 400; font-size: 3.3rem; line-height: 4rem; letter-spacing: .03em;
}
.point__body .txt { margin-top: 1rem; font-size: 1.8rem; line-height: 4rem; letter-spacing: .04em; }

/* ---- Point：PC は縦に並べて表示（ラッパーは配置に影響させない）。SP のみスライダー ---- */
.points, .points__track { display: contents; }
.points .points__prev, .points .points__next { display: none; }

/* ==========================================================================
   スライダーの 前へ／次へ ボタン
   ========================================================================== */
.slider-btn {
  position: absolute; z-index: 4; display: block; width: 4.4rem; height: 4.4rem; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: none; cursor: pointer; -webkit-appearance: none; appearance: none; transition: opacity .2s ease, transform .2s ease;
}
.slider-btn::after {                      /* ▶ / ◀（CSS の三角形） */
  content: ""; position: absolute; left: 50%; top: 50%; width: 0; height: 0; border-style: solid;
  border-width: 1.75rem 0 1.75rem 1.6rem; border-color: transparent transparent transparent var(--green);
  transform: translate(-40%, -50%);
}
.slider-btn--prev::after { border-width: 1.75rem 1.6rem 1.75rem 0; border-color: transparent var(--green) transparent transparent; transform: translate(-60%, -50%); }
.slider-btn:hover { opacity: .7; }
.slider-btn:focus { outline: none; }
.slider-btn:focus-visible { outline: 0.2rem solid var(--green); outline-offset: 0.2rem; }
/* 白い丸ボタン（写真の上に重ねるタイプ） */
.slider-btn--circle { width: 6.8rem; height: 6.8rem; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, .12); }
.slider-btn--circle:hover { opacity: 1; background: #fff; transform: scale(1.06); }
.slider-btn--circle::after { border-width: 1.6rem 0 1.6rem 1.5rem; }
.slider-btn--circle.slider-btn--prev::after { border-width: 1.6rem 1.5rem 1.6rem 0; }
.slider-nav { position: absolute; z-index: 4; display: flex; gap: 2rem; }
.slider-nav .slider-btn { position: relative; }
.bus__nav { left: 166.3rem; top: 90.2rem; }
.location__nav { left: 166.3rem; top: 98.4rem; }

/* 改行の出し分け（SP のみ／PC のみ） */
.u-sp { display: none; }

/* ==========================================================================
   ACCESS  (y:10848-12232)
   ========================================================================== */
.access { height: 138.4rem; }
.access__ttl { top: 8.4rem; }
.access__lead { top: 26.9rem; }
.access__txt { top: 34.1rem; }
.access__time {
  position: absolute; z-index: 3; top: 45.3rem; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 400; font-size: 3.3rem; line-height: 7.2rem; letter-spacing: .02em; color: var(--navy);
}
.access__time small { font-size: 1.6rem; letter-spacing: .04em; }
.access__time b { margin-left: 0.8rem; font-family: var(--ff-en); font-weight: 500; font-size: 6.4rem; line-height: 0; color: var(--green); letter-spacing: 0; }
.access__time .u { margin-left: 0.4rem; color: var(--green); }
.access__img01 { left: 2.4rem; top: 74.9rem; width: 59rem; height: 37rem; }
.access__img02 { left: 64.4rem; top: 92.6rem; width: 39.9rem; height: 37rem; }
.access__img03 { left: 107.2rem; top: 67.2rem; width: 82.4rem; height: 57.5rem; }

/* ==========================================================================
   BUS ACCESS  (y:12232-13244)
   ========================================================================== */
.bus { height: 101.2rem; overflow: hidden; background: url(../img/bus-bg.jpg) left top / 192rem 101.2rem no-repeat #bfcdcd; }
.bus__ttl {
  position: absolute; left: 16rem; top: 18.6rem;
  font-family: var(--ff-en); font-weight: 500; font-size: 8rem; line-height: 8rem; white-space: nowrap; color: var(--navy);
}
.bus__viewport { position: absolute; left: 16.1rem; right: 0; top: 46.1rem; height: 40rem; overflow: hidden; }
.bus__list, .location__list { display: flex; gap: 4.5rem; will-change: transform; }
.bus-card, .loc-card { position: relative; flex: none; width: 42.3rem; height: 40rem; background: var(--green); }
.bus-card img { left: 1rem; top: 1rem; width: 40.4rem; height: 30.4rem; object-fit: cover; object-position: left center; }
.bus-card__time {
  position: absolute; left: 0.97rem; top: 22.68rem; white-space: nowrap;
  font-family: var(--ff-en); font-weight: 500; font-size: 12.4rem; line-height: 11rem; letter-spacing: -.03em;
  color: var(--green-dark);
  text-shadow: 0 0 0.6rem #fff, 0 0 1.4rem #fff, 0 0 2.4rem rgba(255, 255, 255, .9);
}
.bus-card__time small { font-size: 4.4rem; }
.bus-card__en {
  position: absolute; left: 0; right: 0; top: 32.82rem; padding-left: .2em; text-align: center; white-space: nowrap;
  font-family: var(--ff-en); font-weight: 500; font-size: 2.4rem; line-height: 2.4rem; letter-spacing: .2em; color: #fff;
}
.bus-card__jp {
  position: absolute; left: 0; right: 0; top: 36.08rem; padding-left: .1em; text-align: center; white-space: nowrap;
  font-size: 1.6rem; line-height: 1.8rem; letter-spacing: .1em; color: #fff;
}

/* ==========================================================================
   MAP  (y:13244-13844)
   ========================================================================== */
.map { height: 60rem; background: var(--gray-map); }
.map__iframe { display: block; width: 100%; height: 60rem; border: 0; }

/* ==========================================================================
   LOCATION  (y:13844-14919)
   ========================================================================== */
.location { height: 107.5rem; overflow: hidden; }
.location__head01 { left: 0; top: 0; width: 65rem; height: 49.6rem; }
.location__head02 { left: 127rem; top: 0; width: 65rem; height: 49.6rem; }
.location__ttl { top: 8.4rem; }
.location__lead { top: 25.9rem; }
.location__txt { top: 33.6rem; line-height: 3rem; }
.location__viewport { position: absolute; left: 16.1rem; right: 0; top: 53.9rem; height: 40rem; overflow: hidden; }
.loc-card__img {
  left: 1rem; top: 1rem; width: 40.4rem; height: 30.4rem; object-fit: cover;
  clip-path: polygon(0 0, 100% 0, 100% 74%, 84% 74%, 77.5% 100%, 0 100%);
}
.loc-card__icon--walk { left: 35.4rem; top: 24.5rem; width: 3.2rem; height: 4.5rem; }
.loc-card__icon--car { left: 33.6rem; top: 25.6rem; width: 6.6rem; height: 3.3rem; }
.loc-card__name {
  position: absolute; left: 1rem; top: 32rem; white-space: nowrap;
  font-size: 1.7rem; line-height: 2.9rem; letter-spacing: 0; color: #fff;
}
.loc-card__name--long { font-size: 1.4rem; letter-spacing: -.02em; font-feature-settings: "palt"; }
.loc-card__name span { display: inline-block; margin-left: -.5em; letter-spacing: .04em; }
.loc-card__time {
  position: absolute; right: 1rem; top: 31.6rem; white-space: nowrap;
  font-family: var(--ff-en); font-weight: 500; font-size: 7.4rem; line-height: 6.6rem; letter-spacing: -.02em; color: #fff;
}
.loc-card__time small { font-size: 4rem; }

/* ==========================================================================
   QUALITY  (page2 y:0-1100)
   ========================================================================== */
.quality { height: 110rem; }
.quality__img { left: 0; top: 10rem; width: 106.6rem; height: 57.8rem; }
.quality__ttl { left: 118.5rem; right: auto; top: 19.2rem; padding-left: 0; text-align: left; }
.quality__lead { left: 118rem; top: 38.3rem; margin: 0; }
.quality__txt { left: 118rem; top: 45.8rem; }
.quality__list { position: absolute; left: 16.1rem; top: 77.9rem; display: flex; gap: 3.75rem; }
.q-badge {
  position: relative; display: flex; justify-content: center; align-items: flex-start; gap: 1.2rem;
  width: 29rem; height: 13.6rem; background: var(--green); color: #fff;
}
.q-badge__txt { text-align: center; white-space: nowrap; }
.q-badge__label { margin-top: 1.3rem; font-family: var(--ff-min); font-weight: 400; font-size: 2.1rem; line-height: 2.3rem; letter-spacing: .05em; }
.q-badge__main { margin-top: 1.5rem; font-family: var(--ff-min); font-weight: 500; font-size: 3.07rem; line-height: 3.07rem; letter-spacing: .02em; }
.q-badge__star { margin-top: 1.5rem; font-size: 1.6rem; line-height: 1.79rem; color: var(--gold); letter-spacing: 0; }
.q-badge__num { margin-top: 2.7rem; font-family: var(--ff-en); font-weight: 500; font-size: 8.56rem; line-height: 8.56rem; }
.q-badge--1 .q-badge__main { font-size: 2.91rem; line-height: 2.91rem; margin-top: 1.63rem; }
.q-badge--3 { gap: 0.2rem; padding-left: 0.4rem; }
.q-badge--3 .q-badge__main { font-size: 2.3rem; line-height: 2.47rem; margin-top: 2.05rem; letter-spacing: -.16em; }

/* ==========================================================================
   OVERVIEW  (page2 y:1100-2471)
   ========================================================================== */
.overview { height: 137.1rem; background: url(../img/overview-bg.jpg) left top / 192rem 137.1rem no-repeat #9aafae; color: #fff; }
.overview__ttl { left: 16rem; right: auto; top: 8.6rem; padding-left: 0; text-align: left; font-family: var(--ff-en); font-weight: 500; letter-spacing: .1em; color: #fff; }
.ov-list { position: absolute; top: 23.4rem; font-family: var(--ff-go); font-weight: 400; font-size: 1.6rem; line-height: 3.17rem; }
.ov-list--l { left: 16.6rem; }
.ov-list--r { left: 90.5rem; }
.ov-list div { display: flex; }
.ov-list dt { position: relative; flex: none; width: 11.4rem; height: 3.17rem; text-align: justify; text-align-last: justify; }
.ov-list dt::after { content: ""; position: absolute; left: 0; right: 0; top: 2.6rem; height: 0.09rem; background: #fff; }
.ov-list dd { margin-left: 3.5rem; white-space: nowrap; }
.ov-list--r dd { margin-left: 5.1rem; }
.ov-list dd { font-feature-settings: "palt"; }

/* ==========================================================================
   CONTACT  (page2 y:2629-5740)
   ========================================================================== */
.contact {
  padding: 36.6rem 0 13.5rem;
  background: url(../img/contact-bg.jpg) left top / 192rem 51.1rem no-repeat, url(../img/paper-bg.jpg) left 51.1rem / 192rem 260rem repeat-y, #ede5d7;
}
.contact__ttl { left: 16rem; top: 18.68rem; color: var(--gold); }
.contact__box { position: relative; width: 160rem; margin-left: 16rem; padding: 48.6rem 0 4.5rem; background: #fff; text-align: center; }
.contact__intro { position: absolute; left: 0; right: 0; top: 5.3rem; }
.contact__tel-note { position: absolute; left: 0; right: 0; top: 30.85rem; }
.contact__tel {
  position: absolute; left: 0; right: 0; top: 34.13rem; white-space: nowrap;
  font-family: var(--ff-min); font-weight: 500; font-size: 5.2rem; line-height: 5.2rem;
}
.contact__tel span { font-size: 3.12rem; }
.contact__hours { position: absolute; left: 0; right: 0; top: 39.53rem; }

.form { position: relative; width: 122.7rem; margin-left: 18.6rem; text-align: left; font-family: var(--ff-mb); font-weight: 500; }
.form__row {
  position: relative; display: flex; align-items: center; height: 10.05rem;
  border-bottom: 0.1rem solid var(--navy-bg);
}
.form__row:first-child { border-top: 0.1rem solid var(--navy-bg); }
.form__label {
  position: absolute; left: 7.37rem; top: 50%; width: 15.4rem; transform: translateY(-50%);
  font-size: 1.8rem; line-height: 1.8rem; text-align: justify; text-align-last: justify; white-space: nowrap;
}
.form__label--free { width: auto; text-align-last: auto; left: 7.38rem; }
.form__req {
  position: absolute; left: 34.9rem; top: 50%; width: 9.1rem; height: 3.2rem; margin-top: -1.6rem;
  background: var(--gold-req); color: #fff; text-align: center; font-size: 1.8rem; line-height: 3.2rem;
}
.form__field { position: absolute; left: 50.3rem; top: 50%; width: 65.1rem; height: 5.2rem; margin-top: -2.6rem; }
.form__field input[type="text"], .form__field input[type="tel"], .form__field input[type="email"], .form__field select, .form__field textarea {
  display: block; width: 100%; height: 100%; margin: 0; padding: 0 1.09rem; border: 0.1rem solid var(--input-line); border-radius: 0;
  background: var(--input-bg); font-size: 1.8rem; color: var(--navy); -webkit-appearance: none; appearance: none; outline-offset: 0;
}
.form__field textarea {
  width: 100% !important;
  height: 100% !important;
}
.form__field select { cursor: pointer; }
.form__field #datepicker {
  cursor: pointer; padding-right: 5rem;
  background: var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b283a' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='16'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") right 1.4rem center / 2.4rem no-repeat;
}
.form__field #datepicker::placeholder { color: var(--placeholder); opacity: 1; }
.form__field select:has(option[value=""]:checked) { color: var(--placeholder); }
.form__field option { color: var(--navy); }
.form__field--check { display: flex; align-items: center; height: 2.85rem; margin-top: -1.425rem; }
.form__field--check label { margin-left: 1.6rem; font-size: 1.8rem; line-height: 1.8rem; cursor: pointer; margin-right: 1.6rem; }
.form__field--check input + label + input { margin-left: 22.2rem; }
.form__field--check input { flex: none; width: 2.85rem; height: 2.85rem; margin: 0; border: 0.1rem solid var(--input-line); border-radius: 0; background: var(--input-bg); -webkit-appearance: none; appearance: none; cursor: pointer; }
.form__field--check input:checked { background: var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%231b283a' stroke-width='2.4'/%3E%3C/svg%3E") center / 70% no-repeat; }
.form__row--textarea { height: 20.1rem; }
.form__row--textarea .form__label { top: 5.025rem; }
.form__row--textarea .form__field { top: 2.4rem; height: 15.3rem; margin-top: 0; }
.form__row--textarea textarea { padding: 1rem 1.09rem; resize: vertical; }

.form__privacy {
  display: block; width: 100%; height: 30rem; margin-top: 4.65rem; padding: 2.2rem 2.6rem 2.8rem; overflow-y: auto;
  border: 0.1rem solid var(--input-line); background: #fff; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  font-family: var(--ff-go); font-weight: 300; font-size: 1.4rem; line-height: 1.85; letter-spacing: .03em; color: var(--navy); text-align: left;
}
.form__privacy:focus-visible { outline: 0.2rem solid var(--gold); outline-offset: 0.2rem; }
.form__privacy-ttl { margin: 0 0 1.2rem; font-size: 1.6rem; font-weight: 500; line-height: 1.6; }
.form__privacy h4 { margin: 2rem 0 0.4rem; font-size: 1.4rem; font-weight: 500; line-height: 1.6; }
.form__privacy p { margin: 0 0 0.8rem; }
.form__agree {
  position: relative; display: flex; justify-content: center; align-items: center; margin-top: 5.2rem; padding-right: 0.2rem;
  font-size: 1.8rem; line-height: 1.8rem;
}
.form__agree label { cursor: pointer; }
.form__agree input {
  flex: none; width: 1.5rem; height: 1.5rem; margin: 0 2.95rem 0 0; border: 0.16rem solid var(--navy); border-radius: 0; background: #fff;
  -webkit-appearance: none; appearance: none; cursor: pointer;
}
.form__agree input:checked { background: var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E") center / 90% no-repeat; }
.form__submit {
  position: relative; display: block; width: 36rem; height: 7rem; margin: 8.5rem auto 0; padding: 0; border: 0; border-radius: 0;
  background: var(--navy-bg); color: var(--gold); font-family: var(--ff-go); font-weight: 300;
  font-size: 1.8rem; line-height: 7rem; letter-spacing: 0; cursor: pointer;
  text-shadow: 0px 0px 0px #FFF !important;
}
.form__submit::after { content: "▶"; position: absolute; right: 0.84rem; top: 0; font-size: 1.8rem; }
.form__submit:hover { background: #2a3a52; }

/* Mailform Pro 標準CSS（mfp.statics/mailformpro.css）の打ち消し */
form#mailformpro.form { padding: 0; }
form#mailformpro.form label { display: inline; margin: 0; border-radius: 0; white-space: nowrap; }
form#mailformpro.form .form__label { display: block; }
form#mailformpro.form .form__field--check label { margin-left: 1.6rem; margin-right: 2rem; cursor: pointer; }
form#mailformpro.form label.mfp_checked, form#mailformpro.form label.mfp_not_checked { padding: 0; border: 0; background: none; box-shadow: none; }

/* Mailform Pro：エラーメッセージを入力欄の直下に表示 */
.form .mfp_err {
  position: absolute; left: 0; top: 100%; margin: 0.3rem 0 0; padding: 0 0 0 1.7rem; white-space: nowrap;
  font-family: var(--ff-go); font-size: 1.4rem; line-height: 1.8rem; background-position: 0 0.2rem;
}
.form__agree .mfp_err { left: 50%; transform: translateX(-50%); margin-top: 0.8rem; }
.form .mfp_parent_error { border: 0; }
.form .mfp_parent_error input, .form .mfp_parent_error select, .form .mfp_parent_error textarea { border-color: #e03131; }

/* jQuery UI Datepicker */
.ui-datepicker.ui-widget {
  z-index: 50 !important; width: 34rem; padding: 0.8rem; border: 0.1rem solid var(--input-line); border-radius: 0;
  font-family: var(--ff-go); font-size: 1.6rem; box-shadow: 0 0.8rem 2.4rem rgba(0, 0, 0, .15);
}
.ui-datepicker .ui-datepicker-header { padding: 0.8rem 0; border: 0; border-radius: 0; background: var(--navy-bg); color: #fff; }
.ui-datepicker .ui-datepicker-title { font-family: var(--ff-min); font-weight: 500; font-size: 1.8rem; line-height: 2.8rem; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { top: 0.8rem; width: 2.8rem; height: 2.8rem; border: 0; cursor: pointer; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 0.8rem; border: 0; background: rgba(255, 255, 255, .15); }
.ui-datepicker .ui-datepicker-prev-hover { left: 0.2rem; }
.ui-datepicker .ui-datepicker-next-hover { right: 0.2rem; }
.ui-datepicker .ui-icon { filter: invert(1); }
.ui-datepicker th { padding: 0.8rem 0 0.4rem; font-weight: 500; font-size: 1.4rem; }
.ui-datepicker th:first-child, .ui-datepicker td:first-child a { color: #c0392b; }
.ui-datepicker th:last-child, .ui-datepicker td:last-child a { color: #2c5aa0; }
.ui-datepicker td { padding: 0.2rem; }
.ui-datepicker td .ui-state-default { padding: 0.6rem 0; border: 0.1rem solid #e3ded4; background: #f7f5f1; color: var(--navy); text-align: center; }
.ui-datepicker td .ui-state-hover { background: #efe5d6; }
.ui-datepicker td .ui-state-highlight { border-color: var(--gold); }
.ui-datepicker td .ui-state-active { border-color: var(--gold); background: var(--gold); color: #fff !important; }
.ui-datepicker .ui-state-disabled { opacity: .3; }

/* 新デザインでの差分（CONTACT） */
.contact {
  background: url(../img/contact-bg.jpg) left top / 192rem 50.9rem no-repeat, url(../img/paper-bg.jpg) left 50.9rem / 192rem auto repeat-y, #aabfbe;
}
.contact__ttl { left: 0; right: 0; top: 18.6rem; padding-left: .1em; text-align: center; font-family: var(--ff-en); font-weight: 500; color: #fff; }
.contact__tel { font-family: var(--ff-futura); font-weight: 300; }
.contact__tel span { font-size: 2.6rem; }
.form__submit { background: var(--navy-bg); color: #fff; font-size: 1.4rem; }

/* ==========================================================================
   FOOTER  (page2 y:5585-6145)
   ========================================================================== */
.footer { color: #fff; }
.footer__inner { position: relative; height: 50rem; background: var(--green); }
.footer__inner > * { position: absolute; }
.footer__logo { left: 15.9rem; top: 6.8rem; }
.footer__logo img { width: 72.9rem; height: 7.2rem; }
.footer__name { left: 15.98rem; top: 16.15rem; font-family: var(--ff-min); font-size: 2.1rem; line-height: 2.1rem; letter-spacing: .065em; white-space: nowrap; }
.footer__name span {
  position: absolute; left: 26.02rem; top: -0.35rem; width: 23rem; height: 2.9rem; border: 0.1rem solid #fff; padding-left: .2em;
  font-size: 2.1rem; line-height: 2.7rem; letter-spacing: .2em; text-align: center;
}
.footer__tel { left: 16rem; top: 20.2rem; white-space: nowrap; font-family: var(--ff-futura); font-weight: 300; font-size: 4.8rem; line-height: 5.4rem; }
.footer__tel .tel-label { font-size: 2.8rem; }
.footer__tel .hours { margin-left: 2.4rem; font-family: var(--ff-go); font-weight: 300; font-size: 1.6rem; letter-spacing: .02em; }
.footer__company { left: 15.9rem; top: 28.2rem; width: 32.2rem; height: 6.2rem; }
.footer__address { left: 15.9rem; top: 36.11rem; font-size: 1.3rem; line-height: 2.45rem; white-space: nowrap; }
.footer__btn {
  top: 10.8rem; width: 18.8rem; height: 3.2rem; background: #fff; color: var(--navy);
  font-family: var(--ff-min); font-size: 1.8rem; line-height: 3.2rem; letter-spacing: .1em; text-align: center; padding-left: .1em;
}
.footer__btn--contact { left: 98.8rem; }
.footer__btn--request { left: 118.4rem; }
.footer__banner { left: 77rem; top: 28.8rem; }
.footer__banner img { position: static; width: 59.4rem; height: 14.5rem; transition: opacity .2s ease; }
.footer__banner:hover img { opacity: .85; }
.footer__sns { left: 172.3rem; top: 9.6rem; }
.footer__sns img { position: static; width: 3.7rem; height: 3.7rem; filter: invert(62%) sepia(33%) saturate(468%) hue-rotate(351deg) brightness(92%) contrast(88%); }
.footer__nav { right: 16rem; top: 11.6rem; text-align: right; }
.footer__nav li { font-family: var(--ff-en); font-weight: 500; font-size: 2.8rem; line-height: 4.9rem; color: var(--footer-nav); white-space: nowrap; }

.footer__bar { position: relative; height: 6rem; background: var(--gray-panel); color: var(--navy); }
.footer__links { position: absolute; left: 16rem; top: 0; display: flex; }
.footer__links li { font-size: 1.8rem; line-height: 6rem; }
.footer__links li + li { margin-left: 5.2rem; }
.footer__links a { position: relative; display: inline-block; padding-right: 3.3rem; }
.footer__links a::before, .footer__links a::after {
  content: ""; position: absolute; width: 1.7rem; height: 1.7rem; border: 0.15rem solid var(--navy);
}
.footer__links a::before { right: 0.3rem; top: 2.3rem; }
.footer__links a::after { right: 0; top: 1.9rem; border-left: 0; border-bottom: 0; }
.footer__copy { position: absolute; right: 16rem; top: 0; font-family: var(--ff-futura); font-weight: 300; font-size: 1.8rem; line-height: 6rem; white-space: nowrap; }
.pagetop { position: absolute; left: 179.5rem; top: 1rem; width: 4rem; height: 4rem; border: 0.2rem solid var(--navy); }
.pagetop::after {
  content: ""; position: absolute; left: 50%; top: 1.3rem; width: 2rem; height: 2rem; margin-left: -1rem;
  border-top: 0.2rem solid var(--navy); border-left: 0.2rem solid var(--navy); transform: rotate(45deg);
}

/* ==========================================================================
   SP（767px 以下）
   基準幅 37.5rem（375px）。index.html 内のスクリプトで 1rem = 表示幅 / 37.5
   新デザインは PC カンプのみのため、PC の構成を縦積みにしたレイアウト
   ========================================================================== */
@media (max-width: 767px) {
  html { font-size: calc(100vw / 37.5); /* JS未実行時のフォールバック */ }
  body { font-size: 1.4rem; }

  .u-sp { display: inline; }
  .u-pc { display: none; }
  .is-reveal .reveal { translate: 4rem 0; }

  /* ---------- common ---------- */
  .sec-ttl { position: relative; font-size: 4.6rem; line-height: 5.6rem; }
  .lead { position: relative; font-size: 1.8rem; line-height: 3rem; letter-spacing: .04em; white-space: normal; }
  .txt { font-size: 1.2rem; line-height: 2.2rem; letter-spacing: .02em; white-space: normal; }
  section > .txt { position: relative; }
  .txt, .lead, .access__time, .ov-list, .footer__address { font-feature-settings: "palt"; }
  .concept__txt br, .landplan__txt br, .access__txt br, .location__txt br, .quality__txt br, .detail__txt br, .point__body .txt br, .cblock__body .txt br { display: none; }
  .concept, .landplan, .plan, .access, .location, .quality { height: auto; }
  .concept__ttl, .landplan__ttl, .plan__ttl, .access__ttl, .location__ttl, .quality__ttl,
  .concept__lead, .concept__txt, .landplan__lead, .landplan__txt, .plan__lead, .access__lead, .access__txt,
  .location__lead, .location__txt, .quality__lead, .quality__txt { left: auto; right: auto; top: auto; }
  .concept__lead, .concept__txt, .landplan__lead, .landplan__txt, .plan__lead, .access__lead, .access__txt,
  .location__lead, .location__txt, .quality__lead, .quality__txt { margin: 0 2rem; }
  .concept__txt, .landplan__txt, .access__txt, .location__txt, .quality__txt { margin-top: 1.4rem; text-align: left; }

  /* ---------- MV ---------- */
  .mv { height: 66.7rem; }
  .mv__bg { left: 0; top: 0; width: 37.5rem; height: 66.7rem; }
  .mv__logo { left: 0; top: 0; width: 10rem; height: 11.7rem; }
  .mv__logo img { left: 1.9rem; top: 1.25rem; width: 6.25rem; height: 7.8rem; }
  .mv__logo-sub { top: 9.85rem; font-size: 0.78rem; line-height: 0.78rem; }

  .mv__menu { left: 30.5rem; top: 2.5rem; width: 5rem; height: 2.5rem; }
  .mv__menu span { left: auto; right: 0; height: 0.5rem; transform: none; }
  .mv__menu span:nth-child(1) { top: 0; width: 5rem; }
  .mv__menu span:nth-child(2) { top: 1rem; width: 3.3rem; height: 0.5rem; }
  .mv__menu span:nth-child(3) { top: 2rem; width: 2.05rem; }
  .mv__menu.is-active span { left: 50%; right: auto; top: 1rem; width: 3.2rem; height: 0.4rem; }
  .mv__menu.is-active span:nth-child(1) { transform: translateX(-50%) rotate(45deg); }
  .mv__menu.is-active span:nth-child(3) { transform: translateX(-50%) rotate(-45deg); }

  .mv__ttl { left: 1.6rem; top: 13.4rem; font-size: 2.3rem; line-height: 4.4rem; }
  .mv__ttl-num { margin: 0 0.5rem; font-size: 4.6rem; }
  .mv__name { left: 1.6rem; top: 23.6rem; width: 16.4rem; height: 4.8rem; font-size: 1.2rem; line-height: 2.4rem; }
  .mv__name span + span { margin: 0 1rem; line-height: 2.3rem; }
  .mv__catch { left: auto; right: 1.4rem; top: 13.4rem; gap: 0.6rem; font-size: 1.8rem; line-height: 2.8rem; }
  .mv__catch span { width: 2.8rem; padding: 1rem 0 1.1rem; }
  .mv__en { display: none; }

  .gnav { display: none; }

  /* ---- 右端の Contact タブ（PC を約 0.55 倍に縮小） ---- */
  .side-contact { top: calc(50% - 4.95rem); width: 33rem; height: 9.9rem; transform: translateX(30.1rem); }
  .side-contact.is-open { transform: translateX(0); }
  .side-contact__tab { width: 2.9rem; height: 9.9rem; }
  .side-contact__tab img { left: 0.45rem; top: 0.7rem; width: 2rem; height: 1.6rem; }
  .side-contact__tab span { top: 2.7rem; font-size: 1.75rem; line-height: 2.9rem; }
  .side-contact__panel { width: 30.1rem; height: 9.9rem; }
  .side-contact__photo { width: 12.4rem; height: 9.9rem; }
  .side-contact__txt { left: 12.8rem; top: 1rem; font-size: 1.2rem; line-height: 2.2rem; }
  .side-contact__btn { left: 12.8rem; top: 6.3rem; width: 14.8rem; height: 2.1rem; border-width: 0.1rem; font-size: 1.55rem; line-height: 1.9rem; }

  /* ---- メニュー（全画面） ---- */
  .gmenu__inner { padding: 8rem 0 6rem; }
  .gmenu__list { gap: 2.2rem; width: 22rem; }
  .gmenu__list a { gap: 1.6rem; font-size: 2.8rem; line-height: 3.2rem; }
  .gmenu__check { width: 1.8rem; height: 1.8rem; }
  .gmenu__check::after { left: 0.45rem; top: -0.3rem; width: 0.7rem; height: 1.3rem; border-width: 0 0.25rem 0.25rem 0; }
  .gmenu__info { gap: 2.4rem; margin-top: 4.8rem; }
  .gmenu__tel { gap: 1.2rem; }
  .gmenu__tel-icon { width: 4.6rem; height: 4.6rem; }
  .gmenu__tel-icon svg { width: 2.2rem; height: 2.2rem; }
  .gmenu__tel-name { font-size: 1.2rem; line-height: 1.2rem; }
  .gmenu__tel-num { margin-top: 0.8rem; font-size: 2.6rem; line-height: 2.6rem; }

  /* ---------- FEATURE / CONCEPT ---------- */
  .concept { padding: 30.4rem 0 4rem; }
  .feature-label { top: 2rem; font-size: 1.3rem; line-height: 1.3rem; }
  .feature-bar { left: 18.6rem; top: 4.25rem; width: 0.3rem; height: 3.5rem; }
  .feature-bar::after { left: 0.1rem; top: 3.5rem; height: 3.5rem; }
  .concept__aqua { left: 0; top: 13rem; width: 37.5rem; height: 15.4rem; object-fit: cover; }
  .concept__catch { top: 16.4rem; font-size: 1.45rem; line-height: 3.4rem; letter-spacing: .06em; white-space: normal; }
  .concept__catch span:last-child { padding: 0 2rem; line-height: 2.4rem; }
  .concept__catch b { font-size: 2.6rem; }
  .concept__lead { margin-top: 1.8rem; font-size: 1.7rem; }

  .cblock { position: relative; left: 0; top: auto; width: 37.5rem; height: auto; margin-top: 3rem; }
  .cblock--02 { margin-top: 1.6rem; }
  .cblock .cblock__img { position: static; width: 37.5rem; height: 18rem; object-fit: cover; }
  .cblock .cblock__body { position: relative; left: 0; top: 0; width: auto; height: auto; padding: 2.6rem 2rem 2.8rem; }
  .cblock__ttl, .cblock--02 .cblock__ttl { position: static; font-size: 1.9rem; line-height: 2.8rem; letter-spacing: .12em; }
  .cblock__num { margin-right: 0.8rem; }
  .cblock__en, .cblock--02 .cblock__en { left: auto; right: 2rem; top: 1.2rem; width: 13rem; }
  .cblock__body .txt, .cblock--02 .cblock__body .txt { position: static; margin-top: 1.4rem; }

  /* ---------- LAND PLAN ---------- */
  .landplan { padding: 2rem 0 4rem; }
  .landplan__lead { margin-top: 1.4rem; }
  .landplan img { position: relative; left: auto; top: auto; height: auto; }
  .landplan .landplan__img01 { width: 31rem; margin-top: 3rem; }
  .landplan .landplan__img02 { width: 27rem; margin: -3rem 0 0 auto; }

  /* ---------- PLAN ---------- */
  .plan { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 1rem 0 4rem; }
  .plan img { position: relative; left: auto; top: auto; height: auto; }
  .plan .plan__site { order: 1; width: 37.5rem; }
  .plan .plan__photo01, .plan .plan__photo02 { order: 2; width: 18.6rem; margin-top: 2rem; }
  .plan__ttl { order: 3; width: 100%; margin-top: 2.4rem; }
  .plan__lead { order: 4; width: 100%; margin-top: 1rem; font-size: 1.6rem; line-height: 3rem; }

  /* ---------- PLAN DETAIL ---------- */
  .detail { width: 37.5rem; margin: 0; }
  .detail__tabs { position: relative; width: 35.4rem; height: 5.8rem; }
  .detail__tab { width: 35.4rem; height: 5.8rem; }
  .detail__tab-label { font-size: 1.35rem; line-height: 1.35rem; }
  .detail__tab-label .num { font-size: 3rem; }
  .detail__tab[aria-selected="true"] .detail__tab-label { font-size: 1.8rem; line-height: 1.8rem; }
  .detail__tab[aria-selected="true"] .detail__tab-label .num { font-size: 4rem; }
  .detail[data-active] .detail__tab .detail__tab-label { top: 2.5rem; }
  .detail[data-active] .detail__tab[aria-selected="true"] .detail__tab-label { top: 2.3rem; }
  .detail[data-active="plan1"] .detail__tab--1 { clip-path: polygon(0 0, 21rem 0, 17.5rem 5.8rem, 0 5.8rem); }
  .detail[data-active="plan1"] .detail__tab--1 .detail__tab-label { left: 4.6rem; }
  .detail[data-active="plan1"] .detail__tab--2 { clip-path: polygon(21rem 0, 32.4rem 0, 28.9rem 5.8rem, 17.5rem 5.8rem); }
  .detail[data-active="plan1"] .detail__tab--2 .detail__tab-label { left: 20.4rem; }
  .detail[data-active="plan2"] .detail__tab--1 { clip-path: polygon(3.5rem 0, 14.9rem 0, 11.4rem 5.8rem, 0 5.8rem); }
  .detail[data-active="plan2"] .detail__tab--1 .detail__tab-label { left: 3.2rem; }
  .detail[data-active="plan2"] .detail__tab--2 { clip-path: polygon(14.9rem 0, 35.4rem 0, 31.9rem 5.8rem, 11.4rem 5.8rem); }
  .detail[data-active="plan2"] .detail__tab--2 .detail__tab-label { left: 16.4rem; }

  .detail__panel { display: flex; flex-direction: column; height: auto; padding: 2.4rem 0 3rem; }
  .detail__panel > *, .detail .detail__panel > .lead, .detail .detail__panel > .txt { position: relative; left: auto; right: auto; top: auto; }
  .detail .detail__panel > img { position: relative; left: auto; top: auto; height: auto; }
  .detail__head { order: 1; margin: 0 2rem; text-align: left; white-space: normal; }
  .detail__type { font-size: 1.9rem; line-height: 2.6rem; margin-right: 0; }
  .detail__type-sub { margin-top: 0.6rem; font-size: 1.1rem; line-height: 1.7rem; }
  .detail .detail__exterior { order: 2; width: 37.5rem; margin-top: 1.8rem; }
  .detail__lead { order: 3; margin: 2.2rem 2rem 0; font-size: 1.8rem; line-height: 3rem; }
  .detail__txt { order: 4; margin: 1.2rem 2rem 0; }
  .detail__price { order: 5; width: auto; height: 10.4rem; margin: 2.4rem 2rem 0; }
  .detail__price::after { left: 15rem; height: 8.4rem; }
  .detail__price-label { width: 12.6rem; font-size: 1.3rem; }
  .detail__price-num { font-size: 3.6rem; }
  .detail__price-num span { font-size: 1.8rem; }
  .detail__spec { left: 16.2rem; font-size: 1.1rem; line-height: 2.85rem; letter-spacing: 0; }
  .detail .detail__panel > .detail__floor { order: 6; left: auto; top: auto; width: 33.5rem; margin: 2.4rem auto 0; }
  .detail .detail__panel > .detail__floor--2f, .detail .detail__panel > .detail__floor--rf { width: 24rem; }
  .detail .detail__panel > .detail__north { display: none; }
  .detail__movie { order: 7; width: 33.5rem; height: 21.4rem; margin: 3rem auto 0; }
  .detail__play { left: calc(50% - 2rem); top: calc(50% - 2rem); width: 4rem; height: 4rem; }
  .detail__play::after { left: 1.65rem; top: 1.15rem; border-width: 0.85rem 0 0.85rem 1rem; }

  /* Point：1枚ずつのスライダー（画像の上に 前へ／次へ） */
  .detail .points { order: 8; display: block; position: relative; width: 37.5rem; margin-top: 3rem; overflow: hidden; }
  .points__track { display: flex; transition: transform .5s cubic-bezier(.45,.05,.25,1); will-change: transform; }
  .detail .points .point { position: relative; left: auto; top: auto; flex: none; width: 37.5rem; height: auto; }
  .detail .points .point__img { position: static; width: 37.5rem; height: 22.5rem; object-fit: cover; }
  .detail .points .point__body { position: static; width: auto; height: auto; padding: 2rem 2rem 0; }
  .point__num { padding-bottom: 1rem; font-size: 2.2rem; line-height: 2.2rem; }
  .point__ttl { margin-top: 1.4rem; font-size: 1.8rem; line-height: 2.6rem; white-space: normal; }
  .point__body .txt { margin-top: 1rem; font-size: 1.2rem; line-height: 2.2rem; text-align: left; }
  .points .points__prev, .points .points__next { display: block; top: 9.45rem; }
  .points__prev { left: 1.2rem; }
  .points__next { left: 32.8rem; }
  .slider-btn--circle { width: 3.5rem; height: 3.5rem; box-shadow: 0 0.1rem 0.4rem rgba(0, 0, 0, .12); }
  .slider-btn--circle::after { border-width: 0.85rem 0 0.85rem 0.8rem; }
  .slider-btn--circle.slider-btn--prev::after { border-width: 0.85rem 0.8rem 0.85rem 0; }

  /* ---------- ACCESS ---------- */
  .access { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 4rem 0 4rem; }
  .access > * { width: 100%; }
  .access__ttl { order: 1; }
  .access__lead { order: 2; margin-top: 1.4rem; font-size: 1.6rem; }
  .access__txt { order: 3; }
  .access__time { order: 4; position: relative; top: auto; margin-top: 1.6rem; font-size: 1.7rem; line-height: 4.2rem; }
  .access__time small { font-size: 1.1rem; }
  .access__time b { font-size: 3.8rem; }
  .access img { position: relative; left: auto; top: auto; height: auto; }
  .access .access__img03 { order: 5; width: 37.5rem; margin-top: 2.4rem; }
  .access .access__img01, .access .access__img02 { order: 6; width: 18.6rem; height: 12.4rem; margin-top: 0.3rem; object-fit: cover; }

  /* ---------- BUS ACCESS ---------- */
  .bus { height: 52.2rem; background-size: auto 100%; background-position: 70% top; }
  .bus__ttl { left: 1.9rem; top: 4.5rem; font-size: 4.6rem; line-height: 5.4rem; }
  .bus__viewport, .location__viewport { left: 2rem; right: auto; width: 33.5rem; height: 31.7rem; }
  .bus__viewport { top: 13.1rem; }
  .bus__list, .location__list { gap: 2rem; }
  .bus-card, .loc-card { width: 33.5rem; height: 31.7rem; }
  .bus-card img { left: 0.8rem; top: 0.8rem; width: 32rem; height: 24.1rem; }
  .bus-card__time { left: 0.77rem; top: 17.96rem; font-size: 9.6rem; line-height: 8.7rem; }
  .bus-card__time small { font-size: 3.6rem; }
  .bus-card__en { top: 26rem; font-size: 1.9rem; line-height: 1.9rem; }
  .bus-card__jp { top: 28.6rem; font-size: 1.3rem; line-height: 1.43rem; }

  /* 前へ／次へ：中央に丸ボタン（Bus＝白地に緑、Location＝緑地に白） */
  .slider-nav { left: 50%; gap: 1.35rem; transform: translateX(-50%); }
  .slider-nav .slider-btn { width: 3.4rem; height: 3.4rem; border-radius: 50%; background: #fff; }
  .slider-nav .slider-btn::after { border-width: 0.8rem 0 0.8rem 0.8rem; transform: translate(-35%, -50%); }
  .slider-nav .slider-btn--prev::after { border-width: 0.8rem 0.8rem 0.8rem 0; transform: translate(-65%, -50%); }
  .bus__nav { top: 46.85rem; }
  .location__nav { position: relative; left: 50%; top: auto; width: max-content; margin-top: 2rem; }
  .location__nav .slider-btn { background: var(--green); }
  .location__nav .slider-btn::after { border-left-color: #fff; }
  .location__nav .slider-btn--prev::after { border-left-color: transparent; border-right-color: #fff; }

  /* ---------- MAP ---------- */
  .map { height: 40rem; }
  .map__iframe { height: 40rem; }

  /* ---------- LOCATION ---------- */
  .location { padding: 15rem 0 3rem; }
  .location .location__head01, .location .location__head02 { top: 0; width: 18.75rem; height: 14rem; object-fit: cover; }
  .location .location__head01 { left: 0; }
  .location .location__head02 { left: 18.75rem; }
  .location__ttl { margin-top: 2rem; }
  .location__lead { margin-top: 1rem; font-size: 1.7rem; }
  .location .location__viewport { position: relative; top: auto; left: 2rem; margin-top: 2.4rem; }
  .loc-card__img { left: 0.8rem; top: 0.8rem; width: 32rem; height: 24.1rem; }
  .loc-card__icon--walk { left: 28.1rem; top: 19.4rem; width: 2.6rem; height: 3.6rem; }
  .loc-card__icon--car { left: 26.7rem; top: 20.3rem; width: 5.2rem; height: 2.6rem; }
  .loc-card__name { left: 0.8rem; top: 25.4rem; font-size: 1.3rem; line-height: 2.3rem; }
  .loc-card__time { right: 0.8rem; top: 25.2rem; font-size: 5.8rem; line-height: 5.2rem; }
  .loc-card__time small { font-size: 3.2rem; }

  /* ---------- QUALITY ---------- */
  .quality { padding: 0 0 4rem; }
  .quality .quality__img { position: relative; left: 0; top: 0; width: 37.5rem; height: 20.3rem; }
  .quality__ttl { margin-top: 2.4rem; padding-left: .1em; text-align: center; }
  .quality__lead { margin-top: 1.2rem; text-align: center; font-size: 1.7rem; }
  .quality .quality__list { position: relative; left: 2rem; top: auto; width: 33.5rem; margin-top: 2.4rem; flex-wrap: wrap; gap: 2rem 2rem; }
  .q-badge { gap: 0.65rem; width: 15.75rem; height: 7.4rem; }
  .q-badge__label { margin-top: 0.7rem; font-size: 1.15rem; line-height: 1.25rem; }
  .q-badge__main { margin-top: 0.8rem; font-size: 1.67rem; line-height: 1.67rem; }
  .q-badge__star { margin-top: 0.8rem; font-size: 0.9rem; line-height: 0.97rem; }
  .q-badge__num { margin-top: 1.5rem; font-size: 4.65rem; line-height: 4.65rem; }
  .q-badge--1 .q-badge__main { font-size: 1.58rem; line-height: 1.58rem; margin-top: 0.88rem; }
  .q-badge--3 { gap: 0.11rem; padding-left: 0.2rem; }
  .q-badge--3 .q-badge__main { font-size: 1.25rem; line-height: 1.34rem; margin-top: 1.1rem; }

  /* ---------- OVERVIEW ---------- */
  .overview { height: auto; padding: 10.5rem 2rem 30rem; background-size: auto 64rem; background-position: 40% bottom; }
  .overview__ttl { position: absolute; left: 1.9rem; top: 2.6rem; font-size: 4.6rem; line-height: 5.6rem; }
  .ov-list { position: static; font-size: 1.1rem; line-height: 2.5rem; }
  .ov-list dt { width: 6rem; height: 2.5rem; }
  .ov-list dt::after { top: 2rem; height: 0.08rem; }
  .ov-list dd, .ov-list--r dd { margin-left: 1.8rem; white-space: normal; letter-spacing: -.01em; }

  /* ---------- CONTACT ---------- */
  .contact {
    padding: 15rem 0 3rem;
    background: url(../img/contact-bg.jpg) center top / auto 12rem no-repeat, url(../img/paper-bg.jpg) left 12rem / 100% auto repeat-y, #aabfbe;
  }
  .contact__ttl { position: absolute; left: 0; right: 0; top: 2.6rem; font-size: 4.6rem; line-height: 5.6rem; }
  .contact__box { width: 33.5rem; margin-left: 2rem; padding: 0.9rem 0 2rem; }
  .contact__box > .txt, .contact__tel { position: static; }
  .contact__intro { font-size: 0.85rem; line-height: 1.66rem; letter-spacing: 0; }
  .contact__tel-note { margin-top: 0.85rem; font-size: 1.25rem; line-height: 1.5rem; letter-spacing: 0; }
  .contact__tel { margin-top: 0.75rem; font-size: 3.4rem; line-height: 3.7rem; }
  .contact__tel span { font-size: 2rem; }
  .contact__hours { margin-top: 0.3rem; font-size: 1.28rem; line-height: 1.5rem; letter-spacing: 0; }

  .form { width: 29.55rem; margin: 1.5rem 0 0 2rem; }
  .form__row { height: 4.6rem; }
  .form__label { left: 0; width: 7.4rem; font-size: 1.05rem; line-height: 1.3rem; }
  form#mailformpro.form .form__label--free { white-space: normal; }
  .form__label--free { width: 11.2rem; white-space: normal; text-align: left; text-align-last: auto; font-size: 0.78rem; line-height: 1.2rem; letter-spacing: -.02em; }
  .form__req { left: 8.1rem; width: 2.8rem; height: 1.6rem; margin-top: -0.8rem; font-size: 0.9rem; line-height: 1.6rem; }
  .form__field { left: 11.6rem; width: 17.95rem; height: 3rem; margin-top: -1.5rem; }
  .form__field input[type="text"], .form__field input[type="tel"], .form__field input[type="email"], .form__field select, .form__field textarea {
    padding: 0 0.8rem; font-size: 16px; /* iOS の入力時ズームを防ぐため 16px 以上 */
  }
  .form__field #datepicker { padding-right: 3.2rem; background-position: right 0.8rem center; background-size: 1.8rem; }
  .form__field--check { height: 1.8rem; margin-top: -0.9rem; }
  .form__field--check input { width: 1.8rem; height: 1.8rem; }
  form#mailformpro.form .form__field--check label { margin-left: 0.6rem; margin-right: 1.2rem; font-size: 1.2rem; line-height: 1.8rem; }
  .form__field--check input + label + input { margin-left: 0; }
  .form__row--textarea { height: 11rem; }
  .form__row--textarea .form__label { top: 2.3rem; }
  .form__row--textarea .form__field { top: 1.2rem; height: 8.6rem; }
  .form__row--textarea textarea { padding: 0.6rem 0.8rem; }
  .form__privacy { height: 14rem; margin-top: 2rem; padding: 1.2rem 1.4rem; font-size: 1.05rem; }
  .form__privacy-ttl { font-size: 1.2rem; }
  .form__privacy h4 { margin-top: 1.4rem; font-size: 1.05rem; }
  .form__agree { margin-top: 2.2rem; font-size: 1.2rem; line-height: 1.6rem; }
  .form__agree input { width: 1.4rem; height: 1.4rem; margin-right: 1.2rem; }
  .form__submit { width: 27.5rem; height: 5.25rem; margin-top: 2.2rem; margin-left: 1rem; font-size: 1.4rem; line-height: 5.25rem; }
  .form__submit::after { right: 1.5rem; font-size: 1.4rem; }
  .form .mfp_err { font-size: 1rem; line-height: 1.3rem; padding-left: 1.4rem; }
  .ui-datepicker.ui-widget { width: 30rem; font-size: 1.4rem; }

  /* ---------- FOOTER ---------- */
  .footer__inner { height: 53.4rem; }
  .footer__logo { left: 2rem; top: 3.15rem; }
  .footer__logo img { width: 33.5rem; height: 3.31rem; }
  .footer__name { left: 2rem; top: 7.8rem; font-size: 1.4rem; line-height: 1.6rem; }
  .footer__name span { left: 17.75rem; top: -0.2rem; width: 15.75rem; height: 1.95rem; font-size: 1.2rem; line-height: 1.75rem; }
  .footer__tel { left: 0; right: 0; top: 14.3rem; text-align: center; font-size: 3.4rem; line-height: 3.6rem; }
  .footer__tel .tel-label { font-size: 2rem; }
  .footer__tel .hours { display: block; margin: 0.8rem 0 0; font-size: 1.15rem; line-height: 1.4rem; }
  .footer__company { left: 2rem; top: 24.8rem; width: 21.8rem; height: 4.2rem; }
  .footer__address { left: 2rem; top: 30.05rem; font-size: 1.15rem; line-height: 1.84rem; }
  .footer__banner { left: 2rem; top: 42.6rem; }
  .footer__banner img { width: 33.5rem; height: 8.18rem; }
  .footer__btn, .footer__sns, .footer__nav { display: none; }
  .footer__bar { height: 7.5rem; }
  .footer__links { left: 2rem; top: 2.3rem; }
  .footer__links li { font-size: 1.15rem; line-height: 1.8rem; }
  .footer__links li + li { margin-left: 2.4rem; }
  .footer__links a { padding-right: 2.6rem; }
  .footer__links a::before, .footer__links a::after { width: 1.5rem; height: 1.5rem; }
  .footer__links a::before { top: 0.4rem; }
  .footer__links a::after { top: 0; }
  .footer__copy { left: 0; right: 0; top: 5.5rem; text-align: center; font-size: 0.85rem; line-height: 1.2rem; }
  .pagetop { left: 31.4rem; top: 0.9rem; width: 4.2rem; height: 4.2rem; }
  .pagetop::after { top: 1.5rem; width: 1.8rem; height: 1.8rem; margin-left: -0.9rem; }
}
