@charset "UTF-8";

:root {
  --font-en: "Cinzel", serif;
  --font-caption: "游明朝", "Yu Mincho", YuMincho, "游明朝体", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  --color-wh: #fff;
  --color-gold: #978268;
  --color-beige: #c4c1ac;
}

/*--------------------------------
mv
--------------------------------*/
.mv {
  position: relative;
  aspect-ratio: 1680 / 770;
}
.mv::before {
  content: "";
  width: 100%;
  background: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(255, 255, 255, 0) 50%);
  position: absolute;
  inset: 0;
  opacity: .4;
  z-index: 1;
}
.mv-txt-wrap {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  z-index: 2;
}
.mv-heading {
  margin-bottom: clamp(8px, 1.2vw, 12px);
  padding-bottom: clamp(6px, 1vw, 10px);
  width: fit-content;
  position: relative;
  font-family: var(--font-en);
  font-size: clamp(3.2rem, 8vw, 8.8rem);
  font-weight: 400;
  letter-spacing: clamp(.3rem, .6vw, .6rem);
  color: var(--color-wh);
}
.mv-heading::after {
  content: "";
  width: calc(100% + calc(160 / 1680 * 100vw));
  height: 1px;
  background: var(--color-wh);
  position: absolute;
  bottom: 0;
  left: 0;
}
.mv-txt {
  font-size: clamp(1.3rem, 3.25vw, 2.2rem);
  color: var(--color-wh);
}
@media screen and (max-width: 767px) {
  .mv {
    aspect-ratio: 750 / 650;
  }
  .mv::before {
    background: rgba(0, 0, 0, 1);
    opacity: .2;
  }
  .mv-txt-wrap{
    filter: drop-shadow(0em 0em 0.5em rgba(0,0,0,0.4));
  }
  .mv figure {
    height: 100%;
  }
  .mv figure img {
    height: inherit;
    object-fit: cover;
  }
}

/*--------------------------------
body
コンテンツ幅1000px。
--cw：コンテンツ幅 / --side：コンテンツ外側の余白
--------------------------------*/
.mr-body {
  container-type: inline-size;
  background: url(../images/modelroom/bg01.webp) center top / 100% auto repeat-y;
  overflow: hidden;
}
.mr-section {
  --cw: min(1000px, 100cqw - 48px);
  --side: max(24px, (100cqw - 1000px) / 2);
  --gap: calc(var(--cw) * .06);
}

/* テキスト */
.mr-head {
  margin: 0 auto 50px;
  width: var(--cw);
}
.mr-heading {
  font-family: var(--font-en);
  font-size: clamp(2.4rem, 2.15vw, 3.6rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-gold);
}
.mr-heading.is-small {
  font-size: clamp(2rem, 1.67vw, 2.8rem);
  line-height: 1.75;
}
.mr-catch {
  margin-top: 40px;
  font-size: clamp(1.8rem, 1.31vw, 2.2rem);
  line-height: 1.64;
}
.mr-heading.is-small + .mr-catch {
  margin-top: 24px;
}
.mr-lead {
  margin-top: 24px;
  font-size: clamp(1.4rem, .96vw, 1.6rem);
  line-height: 2;
}

/* 画像 */
.mr-img .caption {
  font-family: var(--font-caption);
  font-weight: 500;
}
.mr-row-fluid img,
.mr-grid-main img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 横並び：片側が画面端まで */
.mr-row {
  display: flex;
  column-gap: var(--gap);
}
.mr-row-fluid {
  flex: 1;
}
.mr-row-fixed {
  flex-shrink: 0;
}
.mr-row--bleed-left {
  padding-right: var(--side);
}
.mr-row--bleed-left .mr-row-fixed {
  width: calc(var(--cw) * .5);
}
.mr-row--bleed-right {
  padding-left: max(0px, var(--side) - var(--cw) * .22);
}
.mr-row--bleed-right .mr-row-fixed {
  width: calc(var(--side) + var(--cw) * .66);
}
.mr-row--bath {
  margin-top: 60px;
  padding-left: var(--side);
}
.mr-row--bath .mr-row-fixed {
  width: min(var(--cw) * .826, 100cqw - var(--side) - var(--gap) - 100cqw * 454 / 1680);
}

/* テキスト＋画像2枚：大きい画像が画面端まで */
.mr-grid {
  display: grid;
  grid-template-rows: auto auto;
  column-gap: var(--gap);
}
.mr-grid-text {
  grid-area: text;
  padding-bottom: 50px;
}
.mr-grid-main {
  grid-area: main;
}
.mr-grid-sub {
  grid-area: sub;
}
.mr-grid--img-left {
  grid-template-columns: 1fr calc(var(--cw) * .54);
  grid-template-areas:
    "main text"
    "main sub";
  padding-right: var(--side);
}
.mr-grid--img-right {
  grid-template-columns: calc(var(--cw) * .54) 1fr;
  grid-template-areas:
    "text main"
    "sub main";
  padding-left: var(--side);
}

/*--------------------------------
section
--------------------------------*/
.mr-living {
  padding: 88px 0 80px;
}
.mr-living-main {
  margin: 0 auto 60px;
  width: var(--cw);
}

.mr-private {
  background: url(../images/modelroom/bg02.webp) center top / 100% auto repeat-y;
  padding-top: 88px;
}
.mr-private .mr-heading {
  color: var(--color-beige);
}
.mr-private .mr-catch,
.mr-private .mr-lead {
  color: var(--color-wh);
}
.mr-private-bed {
  margin-top: 60px;
  aspect-ratio: 1680 / 680;
}
.mr-private-bed img {
  height: 100%;
  object-fit: cover;
}

.mr-kitchen {
  margin-top: 150px;
}
.mr-powder {
  margin-top: 80px;
  margin-bottom: 80px;
}


/*--------------------------------
sp
--------------------------------*/
@media screen and (max-width: 767px) {
  .mr-body,
  .mr-private {
    background-size: 1260px auto;
  }
  .mr-section {
    --gap: 16px;
  }
  .mr-head {
    margin-bottom: 32px;
  }
  .mr-heading {
    font-size: 2.4rem;
  }
  .mr-heading.is-small {
    font-size: 2rem;
    line-height: 1.5;
  }
  .mr-catch {
    margin-top: 20px;
    font-size: 1.7rem;
  }
  .mr-heading.is-small + .mr-catch {
    margin-top: 16px;
  }
  .mr-lead {
    margin-top: 16px;
    font-size: 1.4rem;
    line-height: 1.9;
  }

  /* 横並びは縦積み、互い違いに配置 */
  .mr-row {
    display: block;
    padding: 0;
  }
  .mr-row > * + * {
    margin-top: var(--gap);
  }
  .mr-row--bleed-left .mr-row-fluid {
    width: calc(100% - 24px);
    aspect-ratio: 780 / 604;
  }
  .mr-row--bleed-left .mr-row-fixed {
    margin-left: auto;
    margin-right: 24px;
    width: 62%;
  }
  .mr-row--bleed-right .mr-row-fluid {
    margin-left: 24px;
    width: 62%;
    aspect-ratio: 500 / 604;
  }
  .mr-row--bleed-right .mr-row-fixed {
    margin-left: auto;
    width: calc(100% - 24px);
  }
  .mr-row--bath {
    margin-top: var(--gap);
  }
  .mr-row--bath .mr-row-fixed {
    margin-left: 24px;
    width: calc(100% - 24px);
  }
  .mr-row--bath .mr-row-fluid {
    margin-left: auto;
    margin-right: 24px;
    width: 62%;
    aspect-ratio: 454 / 604;
  }

  .mr-grid {
    display: flex;
    flex-direction: column;
    padding: 0;
  }
  .mr-grid-text {
    order: 1;
    padding: 0 24px 32px;
  }
  .mr-grid-main {
    order: 2;
    width: calc(100% - 24px);
    aspect-ratio: 740 / 699;
  }
  .mr-grid-sub {
    order: 3;
    margin-top: var(--gap);
    width: 62%;
  }
  .mr-grid--img-left .mr-grid-sub {
    margin-left: auto;
    margin-right: 24px;
  }
  .mr-grid--img-right .mr-grid-main {
    margin-left: auto;
  }
  .mr-grid--img-right .mr-grid-sub {
    margin-left: 24px;
  }

  .mr-living {
    padding: 56px 0;
  }
  .mr-living-main {
    margin-bottom: var(--gap);
  }
  .mr-private {
    padding-top: 56px;
  }
  .mr-private-bed {
    margin-top: var(--gap);
    aspect-ratio: 750 / 500;
  }
  .mr-kitchen,
  .mr-powder {
    margin-top: 64px;
  }
  .mr-powder {
    margin-bottom: 64px;
  }
}
