@charset "UTF-8";
/* =========================
  Variables
========================= */
/* Colors */
/* Fonts */
/* Layout */
/* Breakpoints */
/* =========================
  Base
========================= */
html {
  font-size: 62.5%;
}

@media (max-width: 1023px) {
  html {
    font-size: 7.5px;
  }
}
@media (max-width: 743px) {
  html {
    font-size: 2.6666666667vw;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: #333333;
  font-family: dnp-shuei-mincho-pr6, "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  background: #ffffff;
  -webkit-text-size-adjust: 100%;
}

body.is-menu-open {
  overflow: hidden;
}

img,
svg,
video,
iframe {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  padding: 0;
  color: inherit;
  font: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
}

ul,
ol {
  margin: 0;
}

p {
  margin-top: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* =========================
  Layout
========================= */
.page-frame {
  width: min(100%, 136.6rem);
  margin-inline: auto;
}

.container {
  width: min(120rem, 100% - 8rem);
  margin-inline: auto;
}

@media (max-width: 743px) {
  .container {
    width: calc(100% - 4rem);
  }
}
/* =========================
  Responsive Display
========================= */
.pc {
  display: block;
}

.sp {
  display: none;
}

.pcbr {
  display: inline;
}

.spbr {
  display: none;
}

@media (max-width: 743px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .pcbr {
    display: none;
  }
  .spbr {
    display: inline;
  }
}
/* =========================
  Accessibility
========================= */
:focus-visible {
  outline: 2px solid #d4ba7f;
  outline-offset: 0.4rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001s !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001s !important;
  }
}
/* =========================
  Header
========================= */
.site-header {
  position: relative;
  z-index: 100;
  width: 100%;
  margin-inline: auto;
}

/* =========================
  Header Pattern
  テクスチャは固定せずスクロール
========================= */
.site-header__sticky {
  position: relative;
  z-index: 120;
  display: block;
  width: 100%;
  height: 8rem;
}

.site-header__pattern {
  width: 100%;
  height: 8rem;
  background: #d4ba7f url("../img/top_header_pattern.svg") left center/cover no-repeat;
}

/* ロゴ行は削除するので非表示保険 */
.site-header__logo-row,
.site-header__logo {
  display: none;
}

/* =========================
  Menu Button
  三本線だけ固定
========================= */
.menu-button {
  position: fixed;
  z-index: 130;
  top: 0;
  right: 0;
  width: 8rem;
  height: 8rem;
  background: #d4ba7f;
}

.menu-button span {
  position: absolute;
  left: 50%;
  width: 2.8rem;
  height: 0.2rem;
  background: #111c3b;
  transform: translateX(-50%);
  transition: top 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}

.menu-button span:nth-child(1) {
  top: 2.8rem;
}

.menu-button span:nth-child(2) {
  top: 3.9rem;
}

.menu-button span:nth-child(3) {
  top: 5rem;
}

.menu-button:hover {
  opacity: 0.86;
}

/* 開いた時：× */
body.is-menu-open .menu-button span:nth-child(1) {
  top: 3.9rem;
  transform: translateX(-50%) rotate(45deg);
}

body.is-menu-open .menu-button span:nth-child(2) {
  opacity: 0;
}

body.is-menu-open .menu-button span:nth-child(3) {
  top: 3.9rem;
  transform: translateX(-50%) rotate(-45deg);
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .site-header__sticky {
    height: 3.75rem;
  }
  .site-header__pattern {
    height: 3.75rem;
  }
  .menu-button {
    width: 3.75rem;
    height: 3.75rem;
  }
  .menu-button span {
    width: 1.5rem;
    height: 0.15rem;
  }
  .menu-button span:nth-child(1) {
    top: 1.3rem;
  }
  .menu-button span:nth-child(2) {
    top: 1.85rem;
  }
  .menu-button span:nth-child(3) {
    top: 2.4rem;
  }
  body.is-menu-open .menu-button span:nth-child(1) {
    top: 1.85rem;
    transform: translateX(-50%) rotate(45deg);
  }
  body.is-menu-open .menu-button span:nth-child(2) {
    opacity: 0;
  }
  body.is-menu-open .menu-button span:nth-child(3) {
    top: 1.85rem;
    transform: translateX(-50%) rotate(-45deg);
  }
}
/* =========================
  Global Menu
========================= */
.global-menu {
  position: fixed;
  z-index: 110;
  top: 0;
  left: 0;
  width: 100%;
  color: #ffffff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-1.2rem);
  transition: opacity 0.35s ease, visibility 0.35s ease, transform 0.35s ease;
}

.global-menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 70rem;
  background: #111c3b;
}

body.is-menu-open .global-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.global-menu__frame {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 34% 66%;
  align-items: center;
  width: min(100%, 136.6rem);
  min-height: 70rem;
  margin-inline: auto;
  padding: 14rem 0 14rem 10rem;
}

.global-menu__logo {
  width: 19rem;
}

.global-menu__logo a {
  display: block;
}

.global-menu__logo img {
  width: 100%;
  height: auto;
}

.global-menu__body {
  width: 100%;
}

.global-menu__list {
  display: grid;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}

.global-menu__list li {
  border-bottom: 0;
}

.global-menu__list a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 6rem;
  padding: 0 4rem 0 1rem;
  color: #ffffff;
  transition: opacity 0.3s ease, background 0.3s ease;
}

.global-menu__list a::after {
  content: "";
  position: absolute;
  left: 0;
  right: calc((min(100vw, 136.6rem) - 100vw) / 2);
  bottom: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.82);
}

.global-menu__text {
  display: flex;
  align-items: baseline;
  gap: 2.4rem;
  min-width: 0;
}

.global-menu__text > span {
  font-family: linotype-didot, serif;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.global-menu__text em {
  font-style: normal;
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.global-menu__external-icon {
  display: none;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .global-menu {
    top: 3.75rem;
    height: calc(100svh - 3.75rem);
    overflow-y: auto;
    background: #111c3b;
  }
  .global-menu::before {
    display: none;
  }
  .global-menu__frame {
    display: block;
    width: 100%;
    min-height: 100%;
    padding: 0.75rem 3rem 6rem;
  }
  .global-menu__logo {
    width: 18rem;
    margin: 0 auto 5rem;
  }
  .global-menu__logo a {
    display: block;
  }
  .global-menu__logo img {
    width: 100%;
    height: auto;
  }
  .global-menu__body {
    width: 100%;
  }
  .global-menu__list a {
    min-height: 5.8rem;
    padding: 1.5rem 0;
  }
  .global-menu__list a::after {
    right: 0;
  }
  .global-menu__text {
    display: block;
  }
  .global-menu__text > span {
    display: block;
    font-size: 1.6rem;
    line-height: 1.2;
  }
  .global-menu__text em {
    display: block;
    margin-top: 0.6rem;
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
/* =========================
  Top Page
========================= */
.page-top {
  width: 100%;
  margin-inline: auto;
  overflow-x: hidden;
  background: #ffffff;
}

/* =========================
  Scroll Fade
========================= */
.js-fade {
  opacity: 0;
  transform: translateY(4rem);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.js-fade.is-show {
  opacity: 1;
  transform: translateY(0);
}

.js-fade-delay-1 {
  transition-delay: 0.1s;
}

.js-fade-delay-2 {
  transition-delay: 0.2s;
}

.js-fade-delay-3 {
  transition-delay: 0.3s;
}

.js-fade-delay-4 {
  transition-delay: 0.4s;
}

@media (prefers-reduced-motion: reduce) {
  .js-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/* =========================
  Top Hero
========================= */
.top-hero {
  position: relative;
  width: 100%;
  background: #111c3b;
}

.top-hero__frame {
  position: relative;
  width: 100%;
  height: calc(100svh - 8rem);
  min-height: 50rem;
  overflow: hidden;
  background: #111c3b;
}

.top-hero__slide {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  transition: opacity 1.8s ease-in-out;
}

.top-hero__slide picture {
  display: block;
  width: 100%;
  height: 100%;
}

.top-hero__slide picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-hero__logo {
  position: absolute;
  z-index: 2;
  top: 7rem;
  left: 8rem;
  width: 24rem;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}

.top-hero__slide.is-active {
  z-index: 2;
  opacity: 1;
}

.top-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .top-hero__frame {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1/1;
    margin-top: 0;
  }
  .top-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .top-hero__logo {
    top: 2.5rem;
    left: 2rem;
    width: 20rem;
  }
}
/* =========================
  News Area
========================= */
.top-news-area {
  position: relative;
  overflow: hidden;
  background: #ffffff;
}

.top-news-area__ornament {
  position: relative;
  z-index: 1;
  pointer-events: none;
}

.top-news-area__ornament img {
  width: auto;
  max-width: none;
}

.top-news-area__ornament--up {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 15rem;
}

.top-news-area__ornament--up img {
  height: 16rem;
}

.top-news-area__ornament--dn {
  display: flex;
  justify-content: flex-start;
  margin-top: 4rem;
}

.top-news-area__ornament--dn img {
  height: 24rem;
}

/* YouTube */
.top-news-area__movie {
  position: relative;
  z-index: 2;
  width: min(120rem, 100% - 8rem);
  margin: 4rem auto 10rem;
  aspect-ratio: 16/9;
  background: #999;
}

.top-news-area__iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* News Box */
.top-news-area__inner {
  position: relative;
  z-index: 2;
  width: min(120rem, 100% - 8rem);
  margin-inline: auto;
  padding: 3rem 3rem;
  border: 0.4rem solid #d7bd7a;
  margin-bottom: 15rem;
}

.top-news .top-news__list {
  width: 100%;
}
.top-news .news_list {
  max-height: 31rem;
  margin: 0;
  padding: 0.5rem 0 0 0;
  overflow-y: auto;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: rgba(17, 28, 59, 0.35) transparent;
  margin-top: rem;
}
.top-news .news_list::-webkit-scrollbar {
  width: 0.6rem;
}
.top-news .news_list::-webkit-scrollbar-track {
  background: transparent;
}
.top-news .news_list::-webkit-scrollbar-thumb {
  background: rgba(17, 28, 59, 0.35);
  border-radius: 999px;
}
.top-news .news_list li {
  display: grid;
  grid-template-columns: 13rem 1fr;
  gap: 2.4rem;
  align-items: start;
  margin: 0;
  padding: 0 0 1.8rem;
}
.top-news .news_list li + li {
  padding-top: 1.8rem;
}
.top-news .news_list li:first-child {
  border-top: 1px solid rgba(51, 51, 51, 0.18);
  padding-top: 1.8rem;
}
.top-news .news_list b {
  display: block;
  color: #111c3b;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.top-news .news_list br {
  display: none;
}
.top-news .news_list a {
  color: #111c3b;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-decoration: none;
}
.top-news .news_list a:hover {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.top-news__listlink {
  width: 100%;
  text-align: right;
  padding-top: 1rem;
  padding-rigth: 1rem;
  font-size: 1.6rem;
}

.top-news__title {
  margin: 0 0 2rem;
  color: #555;
  font-family: linotype-didot, serif;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.04em;
}

.top-news__list {
  display: grid;
  gap: 1.2rem;
}

.top-news__item {
  display: grid;
  grid-template-columns: 13rem 1fr;
  gap: 2.4rem;
  align-items: start;
}

.top-news__date {
  color: #333333;
  font-size: 1.4rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.top-news__text {
  margin: 0;
  color: #333333;
  font-size: 1.4rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .top-news-area__ornament--up {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 5rem;
  }
  .top-news-area__ornament--up img {
    height: 8rem;
  }
  .top-news-area__ornament--dn {
    margin-top: 3rem;
  }
  .top-news-area__ornament--dn img {
    height: 12rem;
  }
  .top-news-area__movie {
    width: calc(100% - 4rem);
    margin: 3rem auto 2.8rem;
  }
  .top-news-area__inner {
    width: calc(100% - 4rem);
    margin-bottom: 5rem;
  }
  .top-news .news_list {
    max-height: 28rem;
    padding-right: 0.8rem;
  }
  .top-news .news_list li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding-bottom: 1.6rem;
  }
  .top-news .news_list li + li {
    padding-top: 1.6rem;
  }
  .top-news .news_list b {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .top-news .news_list a {
    font-size: 1.45rem;
    line-height: 1.8;
  }
  .top-news__title {
    margin-bottom: 2rem;
    font-size: 2.8rem;
  }
  .top-news__list {
    gap: 2rem;
  }
  .top-news__item {
    display: block;
  }
  .top-news__date {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 1.5rem;
  }
  .top-news__text {
    font-size: 1.4rem;
    line-height: 1.8;
  }
}
/* =========================
  Model Line Up
========================= */
.top-model {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background: #ffffff;
}

.top-model__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.top-model__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.12);
}

.top-model__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-model__inner {
  position: relative;
  z-index: 2;
  width: min(120rem, 100% - 8rem);
  margin: 4rem auto 4rem;
  margin-inline: auto;
  padding: 7rem 0 6rem;
}

.top-model__title {
  margin: 0 0 6rem;
  color: #444;
  font-family: linotype-didot, serif;
  font-size: 3rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.04em;
}

.top-model__sub {
  display: none;
}

.top-model__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.4rem 4rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.top-model__item {
  min-width: 0;
}

.top-model__link {
  position: relative;
  display: block;
  overflow: hidden;
  color: #ffffff;
  background: #000;
}

.top-model__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(17, 28, 59, 0);
  transition: background 0.35s ease;
}

.top-model__link:hover::after {
  background: rgba(255, 255, 255, 0.38);
}

.top-model__image {
  width: 100%;
  aspect-ratio: 580/260;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.top-model__link:hover .top-model__image {
  transform: scale(1.04);
}

.top-model__name {
  position: absolute;
  z-index: 3;
  right: 2.4rem;
  bottom: 2.2rem;
  left: auto;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 4.2rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  text-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.35);
}

.top-model__models {
  display: none;
}

@media (max-width: 743px) {
  .top-model__inner {
    width: calc(100% - 4rem);
    padding: 5rem 0 5rem;
  }
  .top-model__title {
    margin-bottom: 3.5rem;
    font-size: 3.2rem;
  }
  .top-model__list {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }
  .top-model__image {
    aspect-ratio: 335/180;
  }
  .top-model__name {
    right: 1.6rem;
    bottom: 1.4rem;
    font-size: 4.2rem;
  }
}
/* =========================
  Statement
========================= */
.top-statement {
  position: relative;
  overflow: hidden;
  color: #333333;
  background: #f4efe6;
}

.top-statement__pattern {
  width: 100%;
  height: 10rem;
  overflow: hidden;
  pointer-events: none;
}

.top-statement__pattern img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;
}

.top-statement__inner {
  width: min(120rem, 100% - 8rem);
  margin-inline: auto;
  padding: 14rem 0 13rem;
  text-align: center;
}

.top-statement__title {
  margin: 0 0 7rem;
  color: #333333;
  font-size: 2.8rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.32em;
}

.top-statement__text p {
  margin: 0;
  color: #333333;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 4rem;
  letter-spacing: 0.18em;
}

.top-statement__text p + p {
  margin-top: 0;
}

@media (max-width: 743px) {
  .top-statement__pattern {
    height: 6rem;
  }
  .top-statement__pattern img {
    width: auto;
    max-width: none;
    height: 100%;
  }
  .top-statement__inner {
    width: calc(100% - 4rem);
    padding: 8rem 0 7rem;
  }
  .top-statement__title {
    margin-bottom: 4rem;
    font-size: 2.6rem;
    line-height: 1.8;
    letter-spacing: 0.16em;
  }
  .top-statement__text p {
    font-size: 1.5rem;
    line-height: 3.2rem;
    letter-spacing: 0.08em;
    text-align: left;
  }
  .top-statement__text p br {
    display: none;
  }
  .top-statement__text p + p {
    margin-top: 1.6rem;
  }
}
/* =========================
  Movie
========================= */
.top-movie {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 60rem;
  overflow: hidden;
  background: #111c3b;
}

.top-movie__movie {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  background: #000;
}

/* YouTubeを全画面背景として使う */
.top-movie__iframe {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100vw;
  height: 56.25vw;
  min-width: 177.7778vh;
  min-height: 100vh;
  border: 0;
  transform: translate(-50%, -50%);
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .top-movie {
    height: auto;
    min-height: 0;
    background: #111c3b;
  }
  .top-movie__movie {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
  }
  .top-movie__iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    transform: none;
  }
}
/* =========================
  Business / Boat Yard
========================= */
.top-feature {
  background: #ffffff;
}

.top-feature__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5rem;
  width: min(120rem, 100% - 8rem);
  margin-inline: auto;
  padding: 12.5rem 0 19rem;
}

.top-feature__card {
  min-width: 0;
}

.top-feature__link {
  display: grid;
  grid-template-columns: 24.3rem minmax(0, 1fr);
  align-items: center;
  gap: 3rem;
  color: #333333;
}

.top-feature__image {
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: #000;
}

.top-feature__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(17, 28, 59, 0);
  transition: background 0.35s ease;
}

.top-feature__image img {
  display: block;
  width: 100%;
  aspect-ratio: 243/163;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.top-feature__link:hover .top-feature__image::after {
  background: rgba(255, 255, 255, 0.38);
}

.top-feature__link:hover .top-feature__image img {
  transform: scale(1.04);
}

.top-feature__body {
  min-width: 0;
  padding: 0;
  text-align: center;
}

.top-feature__title {
  margin: 0 0 1.8rem;
  color: #d4ba7f;
  font-family: linotype-didot, serif;
  font-size: 3.1rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.top-feature__text {
  margin: 0;
  color: #333333;
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .top-feature__inner {
    grid-template-columns: 1fr;
    gap: 6rem;
    width: calc(100% - 4rem);
    padding: 8rem 0 9rem;
  }
  .top-feature__link {
    display: block;
  }
  .top-feature__image {
    width: 100%;
  }
  .top-feature__image img {
    aspect-ratio: 335/213;
  }
  .top-feature__body {
    padding-top: 2.6rem;
  }
  .top-feature__title {
    font-size: 3.4rem;
    white-space: normal;
  }
  .top-feature__text {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.06em;
  }
  .top-feature__text br {
    display: none;
  }
}
/* =========================
  Channel
========================= */
.top-channel {
  color: #333333;
  background: #f4efe6;
}

.top-channel__inner {
  width: min(90rem, 100% - 8rem);
  margin-inline: auto;
  padding: 8rem 0 9rem;
}

/* =========================
  YouTube
========================= */
.top-channel__youtube {
  display: grid;
  grid-template-columns: 34rem 42.5rem;
  justify-content: space-between;
  align-items: start;
  gap: 6rem;
  margin-bottom: 6rem;
}

.top-channel__youtube-info {
  display: block;
  color: #333333;
  transition: opacity 0.3s ease;
}

.top-channel__youtube-info:hover {
  opacity: 0.7;
}

.top-channel__youtube-logo {
  width: 23rem;
  margin-bottom: 2.2rem;
}

.top-channel__youtube-logo img {
  width: 100%;
  height: auto;
}

.top-channel__youtube-text {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.7;
  letter-spacing: 0.08em;
}

/* YouTube thumb wrapper */
.top-channel__youtube-thumb {
  display: block;
  width: 42.5rem;
  aspect-ratio: 425/240;
  overflow: hidden;
  color: #ffffff;
  background: #999;
}

/* 仮テキスト表示用 */
.top-channel__youtube-thumb > p {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  letter-spacing: 0.06em;
}

/* PHPで最新サムネイルを出す場合 */
.youtube-latest {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: #ffffff;
  background: #000;
}

.youtube-latest img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease, transform 0.5s ease;
}

.youtube-latest:hover img {
  opacity: 0.65;
  transform: scale(1.04);
}

.youtube-latest__label {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  letter-spacing: 0.06em;
  white-space: nowrap;
  transform: translate(-50%, -50%);
  text-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.45);
}

.youtube-latest--empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
  font-size: 1.5rem;
  line-height: 1.6;
  text-align: center;
  letter-spacing: 0.06em;
}

/* =========================
  Instagram
========================= */
.top-channel__instagram {
  width: 100%;
}

.top-channel__instagram-head {
  margin-bottom: 1.8rem;
}

.top-channel__instagram-icon {
  width: 5.4rem;
  margin-bottom: 1.6rem;
}

.top-channel__instagram-icon img {
  width: 100%;
  height: auto;
}

.top-channel__instagram-text {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.top-channel__instagram-text span {
  font-family: linotype-didot, serif;
  letter-spacing: 0.06em;
}

.top-channel__instagram-widget {
  width: 100%;
  min-height: 42rem;
  overflow: hidden;
  background: #ddd;
}

.top-channel__instagram-widget iframe {
  display: block;
  width: 100%;
  min-height: 42rem;
  border: 0;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .top-channel__inner {
    width: calc(100% - 4rem);
    padding: 6rem 0 7rem;
  }
  .top-channel__youtube {
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-bottom: 5rem;
  }
  .top-channel__youtube-logo {
    width: 18rem;
    margin-bottom: 1.8rem;
  }
  .top-channel__youtube-text {
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .top-channel__youtube-thumb {
    width: 100%;
    aspect-ratio: 335/190;
  }
  .top-channel__youtube-thumb > p {
    font-size: 2.4rem;
  }
  .youtube-latest__label {
    font-size: 2.4rem;
  }
  .youtube-latest--empty {
    font-size: 1.5rem;
  }
  .top-channel__instagram-icon {
    width: 4.6rem;
    margin-bottom: 1.4rem;
  }
  .top-channel__instagram-text {
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .top-channel__instagram-widget {
    min-height: 34rem;
  }
  .top-channel__instagram-widget iframe {
    min-height: 34rem;
  }
}
/* =========================
  Page Common
========================= */
.page-yacht {
  width: 100%;
  margin-inline: auto;
  overflow-x: hidden;
  color: #333333;
  background: #ffffff;
}

.page-yacht img {
  display: block;
  max-width: 100%;
  height: auto;
}

.page-yacht section {
  scroll-margin-top: 14rem;
}

/* セクション共通 */
.model,
.sales,
.guide,
.tax,
.dealer,
.service,
.about,
.privacy,
.contact {
  background: #ffffff;
}

.model__inner,
.sales__inner,
.guide__inner,
.tax__inner,
.dealer__inner,
.service__inner,
.about__inner,
.privacy__inner,
.contact__inner {
  width: 100%;
  margin-inline: auto;
}

/* =========================
  Common Hero Header
========================= */
.model__header,
.sales__header,
.guide__header,
.tax__header,
.dealer__header,
.service__header,
.about__header,
.privacy__header,
.contact__header {
  position: relative;
  width: 100%;
  height: calc(100svh - 8rem);
  min-height: 50rem;
  overflow: hidden;
  background: #111c3b;
}
.model__header picture,
.sales__header picture,
.guide__header picture,
.tax__header picture,
.dealer__header picture,
.service__header picture,
.about__header picture,
.privacy__header picture,
.contact__header picture {
  display: block;
  width: 100%;
  height: 100%;
}
.model__header picture img,
.model__header > img,
.sales__header picture img,
.sales__header > img,
.guide__header picture img,
.guide__header > img,
.tax__header picture img,
.tax__header > img,
.dealer__header picture img,
.dealer__header > img,
.service__header picture img,
.service__header > img,
.about__header picture img,
.about__header > img,
.privacy__header picture img,
.privacy__header > img,
.contact__header picture img,
.contact__header > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.model__title,
.sales__title,
.guide__title,
.tax__title,
.dealer__title,
.service__title,
.about__title,
.privacy__title,
.contact__title {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  margin: 0;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 3rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.08em;
  transform: translate(-50%, -50%);
  text-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.35);
}

/* MODELだけ現在 header に画像がないので別処理 */
.model__header {
  display: grid;
  place-items: center;
  min-height: 0;
  background: transparent;
}

.model__header .model__title {
  position: static;
  color: #333333;
  transform: none;
  text-shadow: none;
}

/* =========================
  Common Body
========================= */
.sales__body,
.guide__body,
.tax__body,
.service__body,
.about__body,
.privacy__body,
.contact__body {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 8rem 0 10rem;
  text-align: left;
}

.sales__sub,
.guide__sub,
.tax__sub,
.dealer__sub,
.service__sub,
.about__sub,
.privacy__sub,
.contact__sub {
  margin: 0 0 5rem;
  color: #333333;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 4rem;
  text-align: center;
  letter-spacing: 0.08em;
}

.sales__body p,
.guide__body p,
.tax__body p,
.service__body p,
.about__body p,
.privacy__body p,
.contact__body p {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2.4rem;
  letter-spacing: -0.06em;
}

.sales__body p + p,
.guide__body p + p,
.tax__body p + p,
.service__body p + p,
.about__body p + p,
.privacy__body p + p,
.contact__body p + p {
  margin-top: 2.6rem;
}

/* =========================
  MODEL LINE UP
========================= */
.model {
  padding-bottom: 8rem;
  background: #ffffff;
}

.model__inner {
  width: 100%;
  margin-inline: auto;
}

.model__main-img {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #111c3b;
}

.model__main-img img {
  width: 100%;
  height: calc(100svh - 8rem);
  min-height: 50rem;
  object-fit: cover;
}

.model__header {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: calc(14rem + (100svh - 14rem) / 2);
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.model__title {
  margin: 0;
  color: #333333;
  font-family: linotype-didot, serif;
  font-size: 3rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
}

.model__range {
  width: min(120rem, 100% - 8rem);
  margin: 4rem auto 4rem;
  margin-inline: auto;
  padding: 6rem 0 0;
}

.model__sub {
  margin: 0 0 5rem;
  color: #333333;
  font-family: linotype-didot, serif;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.08em;
}

.model__class-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.4rem 4rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.model__class-item {
  position: relative;
  min-width: 0;
  overflow: hidden;
  color: #ffffff;
  background: #000;
}

.model__class-item img {
  width: 100%;
  aspect-ratio: 580/260;
  object-fit: cover;
  transition: opacity 0.35s ease, transform 0.5s ease;
}

.model__class-item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0);
  transition: background 0.35s ease;
}

.model__class-item:hover::after {
  background: rgba(255, 255, 255, 0.5);
}

.model__class-item:hover img {
  transform: scale(1.04);
}

/* class名 */
.model__class-name {
  position: absolute;
  z-index: 2;
  right: 2.4rem;
  bottom: 2.2rem;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 4.2rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  text-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.35);
  pointer-events: none;
}

/* V / F / X は左寄せ */
.model__class-item--v .model__class-name,
.model__class-item--f .model__class-name,
.model__class-item--x .model__class-name {
  left: 2.4rem;
  right: auto;
}

/* hover時のモデルリンク */
.model__model-links {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-content: start;
  gap: clamp(0.8rem, 1.1vw, 1.8rem);
  padding: clamp(1.2rem, 1.8vw, 3rem);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.model__class-item:hover .model__model-links {
  opacity: 1;
  visibility: visible;
}

.model__model-links a {
  display: grid;
  place-items: center;
  min-height: 6rem;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0.04em;
  background: rgba(17, 28, 59, 0.72);
  transition: background 0.3s ease, opacity 0.3s ease;
}

.model__model-links a:hover {
  background: rgba(17, 28, 59, 0.9);
  opacity: 0.82;
}

/* 1個や3個のときに変に伸びないように */
.model__class-item--s .model__model-links,
.model__class-item--x .model__model-links {
  grid-template-columns: repeat(2, 1fr);
}

/* X95 VISTA だけ少し小さめ */
.model__model-links a[href*=x95] {
  font-size: 2rem;
}

/* =========================
  SALES & CREDIT
========================= */
.sales__nav {
  display: grid;
  grid-template-columns: repeat(3, 24rem);
  justify-content: center;
  gap: 4rem;
  padding: 0 0 10rem;
}

.sales__nav-link {
  display: block;
  color: #333333;
  font-size: 2rem;
  line-height: 2.7rem;
  text-align: center;
  letter-spacing: -0.06em;
  transition: opacity 0.3s ease;
}

.sales__nav-link:hover {
  opacity: 0.65;
}

.sales__nav-link img {
  width: 24rem;
  height: 8rem;
  margin: 0 auto 1.8rem;
}

/* =========================
  GUIDE
========================= */
.guide__imgs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  width: 100%;
  width: min(90rem, 100%);
  margin: 0 auto 5rem;
}

.guide__img {
  margin: 0;
}

.guide__img img {
  width: 100%;
  aspect-ratio: 600/310;
  object-fit: cover;
}

.guide__points {
  width: min(92rem, 100%);
  margin-inline: auto;
  padding: 0 0 9rem;
}

.guide__point {
  margin: 0 0 3.2rem;
}

.guide__point-title {
  margin: 0 0 1.8rem;
  padding: 0.8rem 2rem;
  color: #333333;
  background: #d4ba7f;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2.6rem;
  text-align: center;
  letter-spacing: -0.06em;
}

.guide__point p {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2.7rem;
  letter-spacing: 0.05em;
}

/* =========================
  TAX BENEFIT
========================= */
.tax__example {
  margin: 0 0 7rem;
  padding: 6rem 4rem;
  background: #f4efe6;
}

.tax__small-title {
  margin: 0 0 3.5rem;
  color: #333333;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.08em;
}

.tax__example-body {
  width: min(90rem, 100%);
  margin-inline: auto;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
}

.tax__points {
  width: min(84rem, 100%);
  margin-inline: auto;
  padding: 0 0 9rem;
}

.tax__point {
  margin: 0 0 4rem;
}

.tax__point-title {
  margin: 0 0 2rem;
  padding: 0.8rem 1rem;
  color: #333333;
  background: #d4ba7f;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.7;
  text-align: center;
  letter-spacing: 0.06em;
}

.tax__point p,
.tax__num-list li {
  font-size: 1.6rem;
  line-height: 2.7rem;
  letter-spacing: 0.05em;
}

.tax__num-list {
  margin: 2rem 0 0;
  padding-left: 2em;
}

.tax__small-title {
  margin: 0 0 2rem;
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.tax__example-body {
  color: #333;
}

.tax__formula {
  width: min(60rem, 100%);
  margin: 0 auto 4rem;
  padding: 1.4rem 2rem;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  font-size: 1.6rem;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.tax__fraction {
  display: inline-grid;
  grid-template-rows: auto auto;
  min-width: 5rem;
  text-align: center;
  line-height: 1.1;
}
.tax__fraction span:first-child {
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.2rem;
}
.tax__fraction span:last-child {
  padding-top: 0.2rem;
}

.tax__case {
  position: relative;
  margin-top: 4.6rem;
  padding-left: 4rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.tax__case::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 2.2rem;
  height: calc(100% - 0.4rem);
  background: #d6bd7f;
}

.tax__case-title {
  margin: 0 0 0.8rem;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
}

.tax__case-note {
  margin: -0.4rem 0 1.2rem;
  font-size: 1.4rem;
  line-height: 1.6;
  text-align: left;
}

.tax__case-lead {
  margin: 0 0 1.8rem;
  font-size: 2rem;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-align: left;
}

.tax__table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.tax__table {
  width: 100%;
  min-width: 62rem;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 2rem;
  line-height: 1.3;
  background: #fff;
  margin-bottom: 1rem;
}
.tax__table th,
.tax__table td {
  border: 1px solid #555;
  padding: 0.8rem 1rem;
  text-align: center;
  white-space: nowrap;
  font-weight: 400;
  width: 16rem;
}
.tax__table thead th {
  border-top: none;
  border-left: none;
  border-right: none;
  font-size: 2rem;
  padding-top: 0;
  padding-bottom: 0.4rem;
  background-color: #f4efe6;
}
.tax__table tbody th {
  width: 8rem;
  background: #333;
  color: #fff;
}

.tax__notice {
  margin: 4rem 0 0;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  text-align: left;
}

@media (max-width: 743px) {
  .tax__example {
    max-width: none;
    padding-top: 3rem;
  }
  .tax__small-title {
    margin-bottom: 1.6rem;
    font-size: 2.2rem;
  }
  .tax__formula {
    width: 100%;
    margin-bottom: 3rem;
    padding: 1.2rem 1.4rem;
    font-size: 1.5rem;
  }
  .tax__case {
    margin-top: 3.4rem;
    padding-left: 2.4rem;
  }
  .tax__case::before {
    width: 1.4rem;
  }
  .tax__case-title {
    font-size: 1.7rem;
  }
  .tax__case-lead {
    font-size: 1.5rem;
  }
  .tax__case-note {
    font-size: 1.3rem;
  }
  .tax__table {
    min-width: 62rem;
    font-size: 1.4rem;
  }
  .tax__table thead th {
    font-size: 1.5rem;
  }
  .tax__table th,
  .tax__table td {
    padding: 0.7rem 0.8rem;
  }
  .tax__table--wide {
    min-width: 86rem;
    font-size: 1.3rem;
  }
  .tax__notice {
    font-size: 1.3rem;
  }
}
/* =========================
  DEALER
========================= */
.dealer {
  padding-bottom: 0;
}

.dealer__list {
  width: 100%;
  margin-inline: auto;
  padding: 7rem 0 0;
}

.dealer__sub {
  width: 90rem;
  margin: 0 auto 7rem;
  color: #111c3b;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: center;
}

.dealer__item {
  padding: 4rem 0 7rem;
  text-align: center;
}

/* 株式会社ポートサイド・株式会社ステーベル */
.dealer__item:nth-of-type(odd) {
  background: #f6f1ea;
}

/* 株式会社スターボード */
.dealer__item:nth-of-type(even) {
  background: #fff;
}

.dealer__name,
.dealer__address,
.dealer__link,
.dealer__staff {
  width: 90rem;
  margin-inline: auto;
}

.dealer__name {
  margin-bottom: 1rem;
  color: #111c3b;
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.06em;
}

.dealer__address {
  margin-bottom: 0.8rem;
  color: #111c3b;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.04em;
}

.dealer__link {
  margin-bottom: 3rem;
  text-align: center;
}

.dealer__link a {
  display: inline-block;
  padding: 0.1rem 1.2rem 0.2rem;
  color: #111c3b;
  background: #d3b873;
  font-family: linotype-didot, serif;
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.dealer__link a:hover {
  opacity: 0.65;
}

.dealer__staff-list {
  display: grid;
  grid-template-columns: repeat(5, 16.8rem);
  justify-content: center;
  gap: 1.6rem 1.5rem;
}

.dealer__staff-card {
  width: 16.8rem;
  min-height: 24.5rem;
  padding: 0.8rem 0.55rem;
  background: #d3b873;
  text-align: center;
  box-sizing: border-box;
}

.dealer__staff-img {
  width: 15rem;
  height: 17rem;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
}

.dealer__staff-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* 上を残して、下側が切れるようにトリミング */
  object-position: center top;
}

.dealer__staff-body {
  padding: 0.45rem 0 0;
}

.dealer__staff-position,
.dealer__staff-name,
.dealer__staff-role {
  margin: 0;
  color: #111c3b;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2rem;
  letter-spacing: 0.02em;
}

.dealer__staff-name {
  font-size: 1.5rem;
}

/* =========================
  SERVICE & MAINTENANCE
========================= */
.service__menu {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 0 0 5rem;
  text-align: center;
}

.service__small-title,
.service__yard-title {
  margin: 0 0 2rem;
  padding: 0.8rem 2rem;
  color: #333333;
  background: #d4ba7f;
  font-size: 1.6rem;
  line-height: 2.7rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
}

.service__menu p {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2.7rem;
  letter-spacing: 0.06em;
}

.service__imgs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  width: 100%;
  width: min(90rem, 100%);
  margin: 0 auto 5rem;
}

.service__img {
  margin: 0;
}

.service__img img {
  width: 100%;
  aspect-ratio: 600/310;
  object-fit: cover;
}

.service__yard {
  background: #f6f1ea;
  padding-top: 7rem;
}

.service__yard-inner {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 0 0 9rem;
}

.service__yard-lead {
  margin: 0rem 0 5rem;
  color: #111c3b;
  font-family: linotype-didot, serif;
  font-size: 2.1rem;
  line-height: 2.6rem;
  text-align: center;
  letter-spacing: 0.08em;
}

.service__yard-list {
  margin: 0;
}

.service__yard-item {
  display: grid;
  grid-template-columns: 16rem 1fr;
  gap: 2rem;
  padding: 1.6rem 0;
  border-top: 1px solid #e0c88c;
}

.service__yard-item dt,
.service__yard-item dd {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  padding: 0 1rem;
}

.service__yard-item dt {
  color: #111c3b;
}

.service__equipment {
  margin: 0;
  padding: 0;
  list-style: none;
}

.service__equipment li {
  position: relative;
  padding-left: 2.4rem;
  font-size: 1.5rem;
  line-height: 2.8rem;
  letter-spacing: 0.06em;
}

.service__equipment li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.48em;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: #dcc27b;
}

/* =========================
  ABOUT US
========================= */
.about {
  padding-bottom: 9rem;
}

.about__body {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 7rem 0 7rem;
  text-align: left;
}

.about__sub {
  margin: 0 0 5rem;
  color: #111c3b;
  font-size: 2.8rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}

.about__body p {
  margin: 0;
  color: #333333;
  font-size: 1.5rem;
  line-height: 2.1;
  letter-spacing: 0.06em;
}

.about__body p + p {
  margin-top: 3.5rem;
}

/* 会社情報エリア */
.about__company-list {
  padding: 7rem 0 0;
}

.about__company {
  padding: 0 0 8rem;
}

.about__company:first-child {
  background: #f6f1ea;
  padding-top: 7rem;
}

.about__company + .about__company {
  padding-top: 7rem;
  background: #fff;
}

.about__company-title {
  width: min(90rem, 100%);
  margin: 0 auto 2rem;
  padding: 0.8rem 2rem;
  color: #333333;
  background: #d4ba7f;
  font-family: linotype-didot, serif;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
}

.about__company-sub {
  margin: 0 0 2rem;
  color: #333333;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.06em;
  text-align: center;
}

.about__dl {
  width: min(64rem, 100%);
  margin: 0 auto;
  border-top: 1px solid #e0c88c;
}

.about__dl-item {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 2rem;
  padding: 1.8rem 0;
  border-bottom: 1px solid #e0c88c;
}

.about__dl-item dt,
.about__dl-item dd {
  margin: 0;
  color: #333333;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.08em;
}

.about__dl-item dt {
  padding-left: 1.2rem;
}

.about__dl-item dd {
  padding-right: 1.2rem;
}

.about__dl-item dd a {
  color: inherit;
  text-decoration: none;
}

.about__dl-item dd a:hover {
  opacity: 0.65;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .page-yacht {
    overflow-x: hidden;
  }
  .page-yacht section {
    scroll-margin-top: 9.75rem;
  }
  .model__inner,
  .sales__inner,
  .guide__inner,
  .tax__inner,
  .dealer__inner,
  .service__inner,
  .about__inner,
  .privacy__inner,
  .contact__inner {
    width: 100%;
  }
  /* =========================
    SP Common Hero
  ========================= */
  .model__header,
  .sales__header,
  .guide__header,
  .tax__header,
  .dealer__header,
  .service__header,
  .about__header,
  .privacy__header,
  .contact__header {
    height: calc(100svh - 9.75rem);
    min-height: 52rem;
  }
  .model__header picture,
  .sales__header picture,
  .guide__header picture,
  .tax__header picture,
  .dealer__header picture,
  .service__header picture,
  .about__header picture,
  .privacy__header picture,
  .contact__header picture {
    height: 100%;
  }
  .model__header picture img,
  .model__header > img,
  .sales__header picture img,
  .sales__header > img,
  .guide__header picture img,
  .guide__header > img,
  .tax__header picture img,
  .tax__header > img,
  .dealer__header picture img,
  .dealer__header > img,
  .service__header picture img,
  .service__header > img,
  .about__header picture img,
  .about__header > img,
  .privacy__header picture img,
  .privacy__header > img,
  .contact__header picture img,
  .contact__header > img {
    height: 100%;
  }
  .model__title,
  .sales__title,
  .guide__title,
  .tax__title,
  .dealer__title,
  .service__title,
  .about__title,
  .privacy__title,
  .contact__title {
    font-size: 3.2rem;
    line-height: 1.25;
  }
  .model__header {
    top: calc(9.75rem + (100svh - 9.75rem) / 2);
  }
  /* =========================
    SP Common Body
  ========================= */
  .sales__body,
  .guide__body,
  .tax__body,
  .service__body,
  .about__body,
  .privacy__body,
  .contact__body {
    width: calc(100% - 4rem);
    padding: 5rem 0;
  }
  .sales__sub,
  .guide__sub,
  .tax__sub,
  .dealer__sub,
  .service__sub,
  .about__sub,
  .privacy__sub,
  .contact__sub {
    margin-bottom: 3rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .sales__body p,
  .guide__body p,
  .tax__body p,
  .service__body p,
  .about__body p,
  .privacy__body p,
  .contact__body p {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.04em;
  }
  .sales__body br,
  .guide__body br,
  .tax__body br,
  .service__body br,
  .about__body br,
  .privacy__body br,
  .contact__body br {
    display: none;
  }
  /* =========================
    SP MODEL LINE UP
  ========================= */
  .model {
    padding-bottom: 6rem;
  }
  .model__range {
    width: calc(100% - 4rem);
    padding-top: 5rem;
  }
  .model__sub {
    margin-bottom: 3rem;
    font-size: 2rem;
  }
  .model__class-list {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }
  .model__class-item {
    cursor: pointer;
  }
  .model__class-item img {
    aspect-ratio: 335/180;
  }
  .model__class-name {
    right: 1.6rem;
    bottom: 1.4rem;
    font-size: 4.2rem;
  }
  .model__class-item--v .model__class-name,
  .model__class-item--f .model__class-name,
  .model__class-item--x .model__class-name {
    left: 1.6rem;
    right: auto;
  }
  .model__model-links {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-content: center;
    gap: 0.8rem;
    padding: 1.2rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background: rgba(255, 255, 255, 0.45);
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .model__class-item.is-open .model__model-links {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .model__class-item.is-open::after {
    background: rgba(255, 255, 255, 0.5);
  }
  .model__model-links a {
    min-height: 4.8rem;
    font-size: 2.4rem;
  }
  .model__model-links a[href*=x95] {
    font-size: 2.1rem;
  }
  /* F classだけ数が多いので少し詰める */
  .model__class-item--f .model__model-links {
    gap: 0.6rem;
    padding: 1rem;
  }
  .model__class-item--f .model__model-links a {
    min-height: 4.2rem;
    font-size: 2.2rem;
  }
  /* =========================
    SP SALES
  ========================= */
  .sales__nav {
    grid-template-columns: 1fr;
    gap: 3.2rem;
    width: calc(100% - 4rem);
    margin-inline: auto;
    padding: 0 0 6rem;
  }
  .sales__nav-link {
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .sales__nav-link img {
    width: 20rem;
    height: auto;
  }
  /* =========================
    SP GUIDE
  ========================= */
  .guide__imgs {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 4rem;
  }
  .guide__points {
    width: calc(100% - 4rem);
    padding-bottom: 6rem;
  }
  .guide__point {
    margin-bottom: 3rem;
  }
  .guide__point-title {
    padding: 0.8rem 1.2rem;
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .guide__point p {
    font-size: 1.5rem;
    line-height: 2;
  }
  /* =========================
    SP TAX
  ========================= */
  .tax__example {
    margin: 0 0 5rem;
    padding: 4.5rem 2rem;
  }
  .tax__small-title {
    margin-bottom: 2rem;
    font-size: 2.2rem;
  }
  .tax__example-body {
    width: 100%;
    text-align: left;
  }
  .tax__formula {
    width: 100%;
    margin-bottom: 3rem;
    padding: 1.2rem 1.4rem;
    font-size: 1.5rem;
  }
  .tax__case {
    margin-top: 3.4rem;
    padding: 1.2rem 0 1.2rem 2.4rem;
  }
  .tax__case::before {
    width: 1.4rem;
  }
  .tax__case-title {
    font-size: 1.8rem;
    line-height: 1.6;
  }
  .tax__case-lead {
    font-size: 1.5rem;
    line-height: 1.7;
  }
  .tax__case-note {
    font-size: 1.3rem;
  }
  .tax__table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .tax__table {
    min-width: 64rem;
    font-size: 1.4rem;
  }
  .tax__table th,
  .tax__table td {
    width: auto;
    padding: 0.7rem 0.8rem;
  }
  .tax__table thead th {
    font-size: 1.5rem;
  }
  .tax__table--wide {
    min-width: 86rem;
    font-size: 1.3rem;
  }
  .tax__points {
    width: calc(100% - 4rem);
    padding-bottom: 6rem;
  }
  .tax__point {
    margin-bottom: 3rem;
  }
  .tax__point-title {
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .tax__point p,
  .tax__num-list li {
    font-size: 1.5rem;
    line-height: 2;
  }
  .tax__notice {
    font-size: 1.3rem;
    line-height: 1.8;
  }
  /* =========================
    SP DEALER
  ========================= */
  .dealer {
    padding-bottom: 0;
  }
  .dealer__list {
    width: 100%;
    padding-top: 5rem;
  }
  .dealer__sub {
    width: calc(100% - 4rem);
    margin: 0 auto 4rem;
    font-size: 2rem;
    line-height: 1.7;
  }
  .dealer__item {
    padding: 4rem 0 5rem;
  }
  .dealer__name,
  .dealer__address,
  .dealer__link,
  .dealer__staff {
    width: calc(100% - 4rem);
  }
  .dealer__name {
    margin-bottom: 1rem;
    font-size: 2.4rem;
    line-height: 1.4;
  }
  .dealer__address {
    margin-bottom: 0.8rem;
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .dealer__link {
    margin-bottom: 3rem;
  }
  .dealer__link a {
    font-size: 1.4rem;
  }
  .dealer__staff-list {
    grid-template-columns: repeat(2, 16.8rem);
    justify-content: center;
    gap: 1.6rem 1.2rem;
  }
  .dealer__staff-card {
    width: 16.8rem;
    min-height: 24.5rem;
  }
  .dealer__staff-img {
    width: 15rem;
    height: 17rem;
  }
  .dealer__staff-position,
  .dealer__staff-name,
  .dealer__staff-role {
    font-size: 1.3rem;
    line-height: 1.7rem;
  }
  /* =========================
    SP SERVICE
  ========================= */
  .service__menu {
    width: calc(100% - 4rem);
    padding-bottom: 5rem;
  }
  .service__small-title,
  .service__yard-title {
    padding: 0.8rem 1.2rem;
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .service__menu p {
    font-size: 1.5rem;
    line-height: 2;
  }
  .service__imgs {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 4rem;
  }
  .service__yard {
    width: 100%;
    padding-top: 5rem;
  }
  .service__yard-inner {
    width: calc(100% - 4rem);
    padding-bottom: 6rem;
  }
  .service__yard-lead {
    margin-bottom: 3rem;
    font-size: 2rem;
    line-height: 1.5;
  }
  .service__yard-item {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    padding: 1.4rem 0;
  }
  .service__yard-item dt,
  .service__yard-item dd {
    padding: 0;
    font-size: 1.5rem;
    line-height: 2;
  }
  .service__equipment li {
    padding-left: 2.2rem;
    font-size: 1.5rem;
    line-height: 2;
  }
  .service__equipment li::before {
    top: 0.58em;
    width: 1.3rem;
    height: 1.3rem;
  }
  /* =========================
    SP ABOUT
  ========================= */
  .about {
    padding-bottom: 0;
  }
  .about__body {
    width: calc(100% - 4rem);
    padding: 5rem 0;
  }
  .about__sub {
    margin-bottom: 3rem;
    font-size: 2.2rem;
    line-height: 1.6;
  }
  .about__body p {
    font-size: 1.5rem;
    line-height: 2;
  }
  .about__body p + p {
    margin-top: 2.4rem;
  }
  .about__company-list {
    padding-top: 0;
  }
  .about__company {
    padding-bottom: 6rem;
  }
  .about__company:first-child {
    padding-top: 5rem;
  }
  .about__company + .about__company {
    padding-top: 5rem;
  }
  .about__company-title {
    width: calc(100% - 4rem);
    margin-bottom: 2rem;
    padding: 0.8rem 1.2rem;
    font-size: 2rem;
    line-height: 1.4;
  }
  .about__company-sub {
    margin-bottom: 2rem;
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .about__dl {
    width: calc(100% - 4rem);
  }
  .about__dl-item {
    grid-template-columns: 8rem 1fr;
    gap: 1.2rem;
    padding: 1.4rem 0;
  }
  .about__dl-item dt,
  .about__dl-item dd {
    font-size: 1.3rem;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }
  .about__dl-item dt {
    padding-left: 0.4rem;
  }
  .about__dl-item dd {
    padding-right: 0.4rem;
  }
}
/* =========================
  CONTACT
========================= */
.contact {
  padding-bottom: 9rem;
  background: #ffffff;
}

.contact__lead {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 7rem 0 6rem;
  text-align: left;
}

.contact__sub {
  margin: 0 0 5rem;
  color: #333333;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.08em;
}

.contact__lead p {
  margin: 0;
  color: #333333;
  font-size: 1.6rem;
  line-height: 2.7rem;
  letter-spacing: 0.05em;
}

/* form */
.contact__form {
  width: min(90rem, 100%);
  margin-inline: auto;
  padding: 0 0 9rem;
}

.contact__row,
.contact__fieldset {
  margin: 0;
  padding: 2.2rem 0;
  border: 0;
  border-top: 1px solid #e0c88c;
}

.contact__form > .contact__row:last-of-type,
.contact__form > .contact__fieldset:last-of-type {
  border-bottom: 1px solid #e0c88c;
}

.contact__row {
  display: grid;
  grid-template-columns: 22rem 1fr;
  gap: 2rem;
  align-items: center;
}

.contact__row--textarea {
  align-items: start;
}

.contact__label,
.contact__legend {
  margin: 0;
  color: #333333;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.contact__legend {
  width: 100%;
  margin-bottom: 1.6rem;
}

.contact__required {
  display: inline-block;
  margin-left: 0.8rem;
  padding: 0.15rem 0.8rem 0.2rem;
  color: #ffffff;
  background: #111c3b;
  font-size: 1.3rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  vertical-align: middle;
}

.contact__field {
  min-width: 0;
}

.contact__input,
.contact__textarea {
  width: 100%;
  min-height: 5rem;
  padding: 0.8rem 1.4rem;
  border: 1px solid #c8c0b3;
  border-radius: 0;
  color: #333333;
  background: #fff;
  font-family: inherit;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  box-sizing: border-box;
}

.contact__input::placeholder,
.contact__textarea::placeholder {
  color: rgba(51, 51, 51, 0.45);
}

.contact__textarea {
  min-height: 20rem;
  resize: vertical;
}

.contact__note {
  margin: 0.8rem 0 0;
  color: #333333;
  font-size: 1.5rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

/* ご住所 fieldset内 */
.contact__fieldset .contact__row {
  padding: 1.2rem 0;
  border-top: 0;
}

/* 電話番号 */
.contact__tel {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1.4rem;
}

.contact__tel-label {
  flex: 0 0 7rem;
  color: #333333;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.contact__input--tel {
  width: 12rem;
  text-align: center;
}

.contact__hyphen {
  color: #333333;
  font-size: 1.6rem;
}

/* radio */
.contact__radio {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-right: 3rem;
  color: #333333;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.contact__radio input {
  width: 1.8rem;
  height: 1.8rem;
  margin: 0;
  accent-color: #d4ba7f;
}

/* agreement */
.contact__agreement {
  margin: 4rem 0 0;
  padding: 3rem 0;
  text-align: left;
}

.contact__agreement p {
  margin: 0;
  color: #333333;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.05em;
}

.contact__agreement p + p {
  margin-top: 1.6rem;
}

/* submit */
.contact__submit-wrap {
  margin-top: 3rem;
  text-align: center;
}

.contact__submit {
  display: inline-grid;
  place-items: center;
  min-width: 28rem;
  min-height: 6.4rem;
  padding: 0.8rem 4rem;
  border: 1px solid #111c3b;
  color: #ffffff;
  background: #111c3b;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: color 0.3s ease, background 0.3s ease, opacity 0.3s ease;
}

.contact__submit:hover {
  color: #111c3b;
  background: #ffffff;
}

/* =========================
  SP CONTACT
========================= */
@media (max-width: 743px) {
  .contact {
    padding-bottom: 6rem;
  }
  .contact__lead {
    width: calc(100% - 4rem);
    padding: 5rem 0 4rem;
  }
  .contact__sub {
    margin-bottom: 3rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .contact__lead p {
    font-size: 1.5rem;
    line-height: 2;
    letter-spacing: 0.04em;
  }
  .contact__form {
    width: calc(100% - 4rem);
    padding-bottom: 6rem;
  }
  .contact__row {
    grid-template-columns: 1fr;
    gap: 0.8rem;
    padding: 1.8rem 0;
  }
  .contact__fieldset {
    padding: 1.8rem 0;
  }
  .contact__label,
  .contact__legend {
    font-size: 1.6rem;
    line-height: 1.7;
  }
  .contact__required {
    margin-left: 0.6rem;
    padding: 0.1rem 0.6rem 0.15rem;
    font-size: 1.1rem;
  }
  .contact__input,
  .contact__textarea {
    min-height: 4.6rem;
    padding: 0.8rem 1rem;
    font-size: 1.6rem;
  }
  .contact__textarea {
    min-height: 16rem;
  }
  .contact__note {
    font-size: 1.3rem;
    line-height: 1.7;
  }
  .contact__fieldset .contact__row {
    padding: 1rem 0;
  }
  .contact__tel {
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-bottom: 1.2rem;
  }
  .contact__tel-label {
    flex: 0 0 100%;
    font-size: 1.6rem;
  }
  .contact__input--tel {
    width: calc((100% - 4rem) / 3);
  }
  .contact__hyphen {
    width: 1.2rem;
    text-align: center;
    font-size: 1.6rem;
  }
  .contact__radio {
    margin-right: 2rem;
    font-size: 1.6rem;
  }
  .contact__radio input {
    width: 1.6rem;
    height: 1.6rem;
  }
  .contact__agreement {
    margin-top: 3rem;
    padding: 2rem 0;
  }
  .contact__agreement p {
    font-size: 1.3rem;
    line-height: 1.8;
  }
  .contact__agreement br {
    display: none;
  }
  .contact__submit {
    min-width: 22rem;
    min-height: 5.6rem;
    font-size: 1.7rem;
  }
}
/* =========================
  Company Outline
========================= */
.company-outline {
  background: #fff;
}

.company-outline__inner {
  width: min(84.2rem, 100% - 4rem);
}

.company-outline__heading {
  margin: 0;
}

.company-outline__list {
  margin: 5.4rem 0 0;
  padding: 0;
  font-size: 1.7rem;
  line-height: 2.6rem;
  letter-spacing: 0.015em;
}

.company-outline__item {
  display: grid;
  grid-template-columns: 15rem 1fr;
  column-gap: 3rem;
  padding: 2rem 0;
  border-bottom: 1px solid #e0c88c;
}

.company-outline__item:first-child {
  border-top: 1px solid #e0c88c;
}

.company-outline__item dt {
  margin: 0;
  font-weight: 400;
  letter-spacing: 0.24em;
  white-space: nowrap;
}

.company-outline__item dd {
  margin: 0;
}

.company-outline__item p {
  margin: 0;
}

.company-outline__block {
  margin-top: 1.6rem;
}

.company-outline__block:first-child {
  margin-top: 0;
}

.company-outline__label {
  margin: 0 0 0.2rem;
  letter-spacing: 0.08em;
}

.company-outline__text-list,
.company-outline__bank-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.company-outline__text-list li,
.company-outline__bank-list li {
  margin: 0;
}

.company-outline__link {
  margin-top: 1.4rem;
}

.company-outline__link a {
  color: #202536;
  font-family: linotype-didot, serif;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.company-outline__link a:hover {
  opacity: 0.6;
}

/* =========================
  Company Gallery
========================= */
.company-gallery {
  background: #fff;
}

.company-gallery__inner {
  width: min(120rem, 100% - 4rem);
  padding: 0 0 8rem;
}

.company-gallery__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

.company-gallery__item {
  margin: 0;
  overflow: hidden;
}

.company-gallery__item img {
  width: 100%;
  height: auto;
  display: block;
}

/* =========================
  Company Access
========================= */
.company-access {
  background: #fff;
}

.company-access__inner {
  width: min(84.2rem, 100% - 4rem);
  padding-top: 0;
}

.company-access__heading {
  margin: 0;
}

.company-access__address {
  margin: 5.4rem 0 0;
  font-size: 1.5rem;
  line-height: 2.6rem;
  letter-spacing: -0.02em;
  text-align: center;
}

.company-access__map {
  width: 100%;
  aspect-ratio: 842/420;
  margin-top: 3.2rem;
  background: #eee;
  overflow: hidden;
}

.company-access__map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.company-access__list {
  margin: 3.2rem 0 0;
  padding: 0;
  font-size: 1.5rem;
  line-height: 2.6rem;
  letter-spacing: -0.02em;
}

.company-access__item {
  display: grid;
  grid-template-columns: 12rem 1fr;
  column-gap: 3rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid #4d4a49;
}

.company-access__item:first-child {
  border-top: 1px solid #4d4a49;
}

.company-access__item dt {
  margin: 0;
  font-weight: 400;
  letter-spacing: 0.24em;
  white-space: nowrap;
}

.company-access__item dd {
  margin: 0;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .company-outline__inner {
    width: calc(100% - 5rem);
  }
  .company-outline__list {
    margin-top: 3.6rem;
    font-size: 1.4rem;
    line-height: 2;
    letter-spacing: 0;
  }
  .company-outline__item {
    display: block;
    padding: 1.6rem 0;
  }
  .company-outline__item dt {
    margin-bottom: 0.4rem;
    letter-spacing: 0.16em;
  }
  .company-outline__item dd {
    margin: 0;
  }
  .company-outline__block {
    margin-top: 1.4rem;
  }
  .company-outline__label {
    margin-bottom: 0.2rem;
  }
  .company-outline__link {
    margin-top: 1.2rem;
  }
  .company-outline__link a {
    font-size: 1.4rem;
  }
  .company-gallery__inner {
    width: calc(100% - 5rem);
    padding: 0 0 5.6rem;
  }
  .company-gallery__list {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .company-access__inner {
    width: calc(100% - 5rem);
    padding-top: 0;
  }
  .company-access__address {
    margin-top: 3.6rem;
    font-size: 1.4rem;
    line-height: 2;
    letter-spacing: 0;
    text-align: left;
  }
  .company-access__map {
    margin-top: 2.4rem;
    aspect-ratio: 325/260;
  }
  .company-access__list {
    margin-top: 2.4rem;
    font-size: 1.4rem;
    line-height: 2;
    letter-spacing: 0;
  }
  .company-access__item {
    display: block;
    padding: 1.4rem 0;
  }
  .company-access__item dt {
    margin-bottom: 0.2rem;
    letter-spacing: 0.16em;
  }
  .company-access__item dd {
    margin: 0;
  }
}
/* =========================
  Contact
========================= */
.contact {
  background: #fff;
}

.contact__inner {
  width: 100%;
}

.contact__header {
  margin: 0;
}

.contact {
  padding-bottom: 10rem;
  background: #fff;
}
.contact img {
  display: block;
  width: 100%;
  height: 100;
  object-fit: cover;
}

.contact__title {
  margin: 0;
  padding-top: 4rem;
  color: #fff;
  font-family: linotype-didot, serif;
  font-size: 3.4rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
  text-align: center;
}

.contact__lead {
  width: min(90rem, 100%);
  margin: 0 auto 6rem;
  color: #333;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
.contact__lead p {
  margin: 0;
}
.contact__lead p + p {
  margin-top: 1.6rem;
}
.contact__lead a {
  color: #1a2f6f;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.contact__sub {
  margin: 0 0 3rem;
  color: #333;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.08em;
}

.contact__form {
  width: min(90rem, 100%);
  margin: 0 auto;
}

/* =========================
  Form Layout
========================= */
.contact-form {
  display: grid;
  grid-template-columns: 30rem 1fr;
  background: #f1eadf;
}

.contact-form__row {
  display: contents;
}

.contact-form__label {
  min-height: 6.4rem;
  margin: 0;
  padding: 2rem 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #d7bd7a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  color: #333;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}

.contact-form__label.is-required::after {
  content: "必須";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.2rem;
  height: 2.2rem;
  margin-left: 1rem;
  padding: 0 0.7rem;
  background: #c9272d;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: 0.08em;
}

.contact-form__field {
  min-height: 6.4rem;
  padding: 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #f1eadf;
  border-bottom: 1px solid rgba(255, 255, 255, 0.6);
}

.contact-form__field input[type=text],
.contact-form__field input[type=email],
.contact-form__field input[type=tel],
.contact-form__field textarea {
  width: 100%;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
  outline: none;
}

.contact-form__field input[type=text],
.contact-form__field input[type=email],
.contact-form__field input[type=tel] {
  height: 3.2rem;
  padding: 0 1.8rem;
}

.contact-form__field textarea {
  min-height: 16rem;
  padding: 1.6rem 1.8rem;
  border-radius: 1.6rem;
  resize: vertical;
}

.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder {
  color: rgba(51, 51, 51, 0.35);
}

.contact-form__postal {
  max-width: 100%;
  margin-bottom: 1rem;
}

.contact-form__address {
  margin-top: 0;
}

.contact-form__radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 2.8rem;
  align-items: center;
}

.contact-form__radio-group label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  cursor: pointer;
}

.contact-form__radio-group input[type=radio] {
  appearance: none;
  width: 2.8rem;
  height: 2.8rem;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
}

.contact-form__radio-group input[type=radio]::after {
  content: "";
  position: absolute;
  inset: 0.7rem;
  border-radius: 50%;
  background: #111c3b;
  opacity: 0;
}

.contact-form__radio-group input[type=radio]:checked::after {
  opacity: 1;
}

/* =========================
  Submit
========================= */
.contact-form__submit {
  width: min(90rem, 100%);
  margin: 5rem auto 0;
  color: #333;
  font-size: 1.7rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
.contact-form__submit p {
  margin: 0 0 4rem;
}
.contact-form__submit button {
  width: min(48rem, 100%);
  min-height: 4.2rem;
  margin: 0 auto;
  padding: 0.8rem 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: #d9272e;
  color: #fff;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.16em;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.contact-form__submit button:hover {
  opacity: 0.75;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .contact {
    padding-bottom: 7rem;
  }
  .contact__inner {
    width: calc(100% - 3rem);
  }
  .contact__header {
    margin-bottom: 4rem;
  }
  .contact__header img {
    height: 22rem;
  }
  .contact__title {
    padding-top: 3rem;
    font-size: 3.8rem;
  }
  .contact__lead {
    margin-bottom: 4rem;
    font-size: 1.45rem;
    line-height: 2;
  }
  .contact__sub {
    margin-bottom: 2.4rem;
    font-size: 2.2rem;
  }
  .contact__form {
    width: 100%;
  }
  .contact-form {
    display: block;
    background: transparent;
  }
  .contact-form__row {
    display: block;
    margin-bottom: 1.6rem;
    background: #f1eadf;
  }
  .contact-form__label {
    min-height: auto;
    padding: 1.2rem 1.4rem;
    justify-content: flex-start;
    font-size: 1.5rem;
    text-align: left;
  }
  .contact-form__label.is-required::after {
    min-width: 3.8rem;
    height: 2rem;
    font-size: 1.1rem;
  }
  .contact-form__field {
    min-height: auto;
    padding: 1.4rem;
  }
  .contact-form__field input[type=text],
  .contact-form__field input[type=email],
  .contact-form__field input[type=tel] {
    height: 3.8rem;
    font-size: 1.45rem;
  }
  .contact-form__field textarea {
    min-height: 15rem;
    font-size: 1.45rem;
  }
  .contact-form__radio-group {
    gap: 2rem;
  }
  .contact-form__radio-group label {
    font-size: 1.45rem;
  }
  .contact-form__radio-group input[type=radio] {
    width: 2.4rem;
    height: 2.4rem;
  }
  .contact-form__submit {
    margin-top: 3.5rem;
    font-size: 1.35rem;
    line-height: 1.9;
  }
  .contact-form__submit p {
    margin-bottom: 3rem;
  }
  .contact-form__submit button {
    min-height: 4.4rem;
    font-size: 1.5rem;
    letter-spacing: 0.12em;
  }
}
.contact-thanks {
  width: min(90rem, 100%);
  margin: 5rem auto 0;
  padding: 5rem 6rem;
  background: #f1eadf;
  color: #333;
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: center;
}

.contact-thanks__company {
  margin: 0 0 1rem;
  font-size: 2.2rem;
  letter-spacing: 0.08em;
}

.contact-thanks p {
  margin: 0;
}

.contact-thanks__button-wrap {
  margin-top: 4rem;
}

.contact-thanks__button-wrap--sub {
  margin-top: 1.6rem;
}

.contact-thanks__button {
  width: min(34rem, 100%);
  min-height: 4.2rem;
  margin: 0 auto;
  padding: 0.8rem 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #d9272e;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.contact-thanks__button:hover {
  opacity: 0.75;
}

.contact-thanks__button--sub {
  background: #111c3b;
}

@media (max-width: 743px) {
  .contact-thanks {
    width: 100%;
    margin-top: 3.5rem;
    padding: 3rem 2rem;
    font-size: 1.45rem;
    line-height: 1.9;
  }
  .contact-thanks__company {
    font-size: 1.8rem;
  }
  .contact-thanks__button-wrap {
    margin-top: 3rem;
  }
  .contact-thanks__button {
    min-height: 4.4rem;
    font-size: 1.4rem;
  }
}
.contact-confirm {
  width: min(90rem, 100%);
  margin: 0 auto;
  padding: 5rem 6rem;
  background: #f1eadf;
  color: #333;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.contact-confirm__title {
  margin: 0 0 2rem;
  color: #111c3b;
  font-size: 2.4rem;
  font-weight: 400;
  text-align: center;
}

.contact-confirm__lead {
  margin: 0 0 3rem;
  text-align: center;
}

.contact-confirm__table-wrap {
  overflow-x: auto;
}

.contact-confirm__table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

.contact-confirm__table th,
.contact-confirm__table td {
  padding: 1.6rem 2rem;
  border-bottom: 1px solid rgba(17, 28, 59, 0.15);
  font-size: 1.5rem;
  line-height: 1.8;
  vertical-align: top;
}

.contact-confirm__table th {
  width: 24rem;
  background: #d7bd7a;
  color: #333;
  font-weight: 400;
  text-align: left;
}

.contact-confirm__buttons {
  margin-top: 4rem;
  display: grid;
  justify-content: center;
  gap: 1.6rem;
}

.contact-confirm__buttons button {
  width: min(38rem, 100%);
  min-height: 4.2rem;
  padding: 0.8rem 3rem;
  border: 0;
  border-radius: 999px;
  background: #d9272e;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
  cursor: pointer;
}

.contact-confirm__buttons .contact-confirm__back {
  background: #111c3b;
}

.contact-confirm__error {
  color: #c9272d;
  text-align: center;
}

@media (max-width: 743px) {
  .contact-confirm {
    width: 100%;
    padding: 3rem 2rem;
    font-size: 1.4rem;
  }
  .contact-confirm__title {
    font-size: 2rem;
  }
  .contact-confirm__table th,
  .contact-confirm__table td {
    display: block;
    width: 100%;
    padding: 1.2rem 1.4rem;
    font-size: 1.4rem;
  }
  .contact-confirm__table th {
    border-bottom: 0;
  }
  .contact-confirm__buttons button {
    min-height: 4.4rem;
    font-size: 1.4rem;
  }
}
/* =========================
  Model Detail
========================= */
.page-model-detail {
  width: 100%;
  overflow: hidden;
  color: #333333;
}

.model-detail {
  width: 100%;
}

/* hero
------------------------- */
.model-detail__hero {
  position: relative;
  width: 100%;
  height: 63rem;
  overflow: hidden;
  background: #eee;
}
.model-detail__hero img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.model-detail__model-name {
  position: absolute;
  z-index: 2;
  top: 5rem;
  left: 7rem;
  margin: 0;
  color: #111c3b;
  font-family: linotype-didot, serif;
  font-size: 5rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
}

/* inner
------------------------- */
.model-detail__inner {
  width: min(112rem, 100% - 8rem);
  margin: 0 auto;
  padding: 8rem 0 8rem;
}

.model-detail__title {
  margin: 0 0 6rem;
  color: #555;
  font-family: linotype-didot, serif;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 8rem;
  text-align: center;
  letter-spacing: 0.02em;
}

/* spec
------------------------- */
.model-detail__spec {
  margin: 0 0 5.5rem;
}

.model-detail__spec-title {
  margin: 0 0 3rem;
  color: #111c3b;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.18em;
}

.model-detail__spec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
}

.model-detail__spec-block {
  min-width: 0;
}

.model-detail__spec-side {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.8rem;
}

.model-detail__bar-title {
  margin: 0;
  padding: 0.2rem 0.8rem 0.15rem;
  background: #d3b873;
  color: #555;
  font-family: linotype-didot, serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.model-detail__spec-list {
  margin: 0;
}

.model-detail__spec-row {
  display: grid;
  grid-template-columns: 45% 55%;
  align-items: center;
  min-height: 4.8rem;
  border-bottom: 1px solid #e0c88c;
  font-size: 1.5rem;
  line-height: 1.5;
}
.model-detail__spec-row dt,
.model-detail__spec-row dd {
  margin: 0;
  padding: 1rem 0;
}
.model-detail__spec-row dt {
  padding-left: 2.5rem;
  font-weight: 400;
}
.model-detail__spec-row dd {
  padding-right: 2.5rem;
  text-align: right;
}

.model-detail__spec-block--engine p,
.model-detail__spec-block--notes p {
  margin: 0;
  padding: 1.5rem 2rem 1.8rem;
  border-bottom: 1px solid #e0c88c;
  font-size: 1.6rem;
  line-height: 2;
}

.model-detail__spec-block--notes p {
  font-size: 1.5rem;
  line-height: 2;
}

/* gallery
------------------------- */
.model-detail__gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.9rem 1rem;
  margin: 0 0 4.8rem;
}

.model-detail__gallery-item {
  margin: 0;
  aspect-ratio: 270/150;
  overflow: hidden;
  background: #eee;
}
.model-detail__gallery-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* plans
------------------------- */
.model-detail__plans {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem 4rem;
  align-items: center;
  margin: 0 0 8rem;
}

.model-detail__plan-item {
  margin: 0;
  min-height: 8rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.model-detail__plan-item img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* lineup
------------------------- */
.model-detail__lineup {
  margin: 0 0 6.2rem;
}

.model-detail__lineup-title {
  margin: 0 0 2.5rem;
  color: #555;
  font-family: linotype-didot, serif;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  letter-spacing: 0.03em;
}

.model-detail__same-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.8rem;
}

.model-detail__same-card {
  position: relative;
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  color: #ffffff;
  text-decoration: none;
  background: #eee;
}
.model-detail__same-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.model-detail__same-card span {
  position: absolute;
  left: 1.2rem;
  bottom: 0.5rem;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 4.2rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  text-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.25);
}
.model-detail__same-card span small {
  display: inline;
  margin-top: 0.2rem;
  font-size: 0.38em;
  line-height: 1;
  letter-spacing: 0.04em;
}
.model-detail__same-card:hover img {
  transform: scale(1.06);
}

/* other
------------------------- */
.model-detail__other {
  margin: 0;
}

.model-detail__other-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}

.model-detail__other-group {
  background: #fff;
}

.model-detail__other-class {
  margin: 0;
  padding: 2rem 1.6rem;
  background: #111c3b;
  color: #fff;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
  text-align: center;
}
.model-detail__other-class span {
  margin-left: 0.2em;
  font-size: 0.8em;
}

.model-detail__other-models {
  padding: 0.5rem 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
  align-items: start;
  gap: 0.6rem;
  background: #fff;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
}
.model-detail__other-models a {
  color: #111c3b;
  text-decoration: none;
}
.model-detail__other-models a:hover {
  text-decoration: underline;
}
.model-detail__other-models small {
  margin-left: 0.15em;
  font-size: 0.6em;
}

.model-detail__other-separator {
  color: #999;
}

@media (max-width: 1023px) {
  .model-detail__other-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 743px) {
  .model-detail__other-list {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  .model-detail__other-class {
    padding: 1.1rem 1.4rem;
    font-size: 1.4rem;
  }
  .model-detail__other-models {
    min-height: auto;
    padding: 1.6rem 1.2rem;
    font-size: 1.2rem;
  }
}
/* gallery button
------------------------- */
.model-detail__gallery-item {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  aspect-ratio: 270/150;
  overflow: hidden;
  background: #eee;
  cursor: pointer;
}
.model-detail__gallery-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.model-detail__gallery-item:hover img {
  transform: scale(1.05);
}

.model-detail__play-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5.8rem;
  height: 5.8rem;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  transform: translate(-50%, -50%);
}
.model-detail__play-icon::before {
  content: "";
  position: absolute;
  left: 2.3rem;
  top: 1.7rem;
  width: 0;
  height: 0;
  border-top: 1.2rem solid transparent;
  border-bottom: 1.2rem solid transparent;
  border-left: 1.8rem solid #fff;
}

.model-detail__video-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: #ffffff;
  background: #111c3b;
  font-family: linotype-didot, serif;
  font-size: 1.7rem;
  letter-spacing: 0.08em;
}

/* modal
------------------------- */
body.is-modal-open {
  overflow: hidden;
}

.model-modal {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: none;
}

.model-modal.is-open {
  display: block;
}

.model-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
}

.model-modal__content {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(120rem, 100% - 8rem);
  max-height: calc(100svh - 8rem);
  transform: translate(-50%, -50%);
}

.model-modal__close {
  position: absolute;
  z-index: 2;
  right: -1.2rem;
  top: -5rem;
  width: 4rem;
  height: 4rem;
  border: 0;
  border-radius: 50%;
  background: #ffffff;
  color: #111c3b;
  font-size: 2.1rem;
  line-height: 1;
  cursor: pointer;
}

.model-modal__body {
  width: 100%;
  max-height: calc(100svh - 8rem);
  display: flex;
  align-items: center;
  justify-content: center;
}

.model-modal__image,
.model-modal__video {
  max-width: 100%;
  max-height: calc(100svh - 8rem);
  display: block;
  object-fit: contain;
}

.model-modal__video {
  width: 100%;
  background: #000;
}

.model-modal__content {
  padding-bottom: 7rem;
}

.model-modal__nav {
  position: absolute;
  z-index: 2;
  bottom: 0;
  top: auto;
  width: 5.6rem;
  height: 5.6rem;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: #111c3b;
  font-family: serif;
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.3s ease;
  transform: none;
}
.model-modal__nav:hover {
  opacity: 0.75;
}

.model-modal__nav--prev {
  left: calc(50% - 6.5rem);
}

.model-modal__nav--next {
  right: calc(50% - 6.5rem);
}

@media (max-width: 743px) {
  .model-modal__content {
    padding-bottom: 6.2rem;
  }
  .model-modal__nav {
    width: 4.6rem;
    height: 4.6rem;
    font-size: 4.2rem;
    background: rgba(255, 255, 255, 0.85);
  }
  .model-modal__nav--prev {
    left: calc(50% - 5.4rem);
  }
  .model-modal__nav--next {
    right: calc(50% - 5.4rem);
  }
}
@media (max-width: 743px) {
  .model-detail__play-icon {
    width: 4.8rem;
    height: 4.8rem;
  }
  .model-detail__play-icon::before {
    left: 1.9rem;
    top: 1.4rem;
    border-top-width: 1rem;
    border-bottom-width: 1rem;
    border-left-width: 1.5rem;
  }
  .model-modal__content {
    width: calc(100% - 3rem);
    max-height: calc(100svh - 6rem);
  }
  .model-modal__close {
    right: 0;
    top: -4.8rem;
  }
  .model-modal__body,
  .model-modal__image,
  .model-modal__video {
    max-height: calc(100svh - 6rem);
  }
}
/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .model-detail__hero {
    height: calc(100svh - 9.75rem);
    min-height: 42rem;
  }
  .model-detail__hero img {
    object-position: center center;
  }
  .model-detail__model-name {
    top: 8rem;
    left: 2.4rem;
    font-size: 5.8rem;
  }
  .model-detail__inner {
    width: calc(100% - 4rem);
    padding: 5rem 0 6rem;
  }
  .model-detail__title {
    margin-bottom: 4rem;
    font-size: 2.8rem;
  }
  .model-detail__spec {
    margin-bottom: 4.5rem;
  }
  .model-detail__spec-title {
    margin-bottom: 2rem;
    font-size: 2.2rem;
  }
  .model-detail__spec-grid {
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }
  .model-detail__spec-side {
    gap: 3.5rem;
  }
  .model-detail__bar-title {
    font-size: 1.8rem;
  }
  .model-detail__spec-row {
    grid-template-columns: 43% 57%;
    min-height: 4.6rem;
    font-size: 1.5rem;
  }
  .model-detail__spec-row dt {
    padding-left: 1rem;
  }
  .model-detail__spec-row dd {
    padding-right: 1rem;
  }
  .model-detail__spec-block--engine p,
  .model-detail__spec-block--notes p {
    padding: 1.3rem 1rem 1.6rem;
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .model-detail__spec-block--notes p {
    font-size: 1.25rem;
  }
  .model-detail__gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8rem;
    margin-bottom: 4rem;
  }
  .model-detail__plans {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem 2rem;
    margin-bottom: 6rem;
  }
  .model-detail__lineup {
    margin-bottom: 5rem;
  }
  .model-detail__lineup-title {
    margin-bottom: 2rem;
    font-size: 2.8rem;
  }
  .model-detail__same-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .model-detail__same-card span {
    left: 1rem;
    bottom: 0.5rem;
    font-size: 5rem;
  }
  .model-detail__other-list {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .model-detail__other-list a {
    min-height: 5.2rem;
    font-size: 2.8rem;
  }
}
/* =========================
  Model Detail Movie
========================= */
.model-detail__movie {
  width: min(90rem, 100%);
  margin: 8rem auto 8rem;
}

.model-detail__movie-frame {
  width: 100%;
  background: #000;
}
.model-detail__movie-frame video {
  display: block;
  width: 100%;
  height: auto;
}

.model-detail__movie-frame + .model-detail__movie-frame {
  margin-top: 3rem;
}

@media (max-width: 743px) {
  .model-detail__movie {
    width: 100%;
    margin-top: 5rem;
  }
}
/* =========================
  Privacy Policy
========================= */
.privacy-policy {
  width: min(90rem, 100%);
  margin-inline: auto;
  color: #333333;
}

.privacy-policy__lead {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.privacy-policy__section {
  margin-top: 5.5rem;
}

.privacy-policy__heading {
  margin: 0 0 2rem;
  padding: 1.1rem 1.8rem;
  background: #111c3b;
  color: #ffffff;
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.privacy-policy__section p {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.privacy-policy__section p + p {
  margin-top: 1.6rem;
}

.privacy-policy a {
  color: #111c3b;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.privacy-policy a:hover {
  opacity: 0.65;
}

.privacy-policy__address {
  margin-top: 2.4rem;
  padding: 2.4rem 3rem;
  background: #f4efe6;
  color: #333333;
  font-style: normal;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.04em;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .privacy-policy {
    width: calc(100% - 5rem);
  }
  .privacy-policy__lead {
    font-size: 1.5rem;
    line-height: 2;
    letter-spacing: 0.02em;
  }
  .privacy-policy__section {
    margin-top: 3.8rem;
  }
  .privacy-policy__heading {
    margin-bottom: 1.6rem;
    padding: 1rem 1.3rem;
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  .privacy-policy__section p {
    font-size: 1.45rem;
    line-height: 2;
    letter-spacing: 0.02em;
  }
  .privacy-policy__address {
    margin-top: 2rem;
    padding: 1.8rem 1.6rem;
    font-size: 1.45rem;
    line-height: 1.9;
  }
}
/* =========================
  News Detail
========================= */
.newsdetail {
  padding-top: 0;
}

.newsdetail__inner {
  width: 100%;
}

.newsdetail__header {
  position: relative;
  width: 100%;
  height: 42rem;
  overflow: hidden;
}

.newsdetail__header img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.newsdetail__title {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  margin: 0;
  color: #fff;
  font-size: 4.5rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
}

.newsdetail__body {
  padding: 8rem 0 10rem;
}

@media (max-width: 743px) {
  .newsdetail__header {
    height: 30rem;
  }
  .newsdetail__title {
    font-size: 4.2rem;
  }
  .newsdetail__body {
    padding: 6rem 0 8rem;
  }
}
/* =========================
  News
========================= */
#news {
  width: min(90rem, 100% - 4rem);
  margin: 0 auto;
  color: #333333;
  font-size: 1.6rem;
  line-height: 2.7rem;
  letter-spacing: -0.04em;
}

#news .midashi2 {
  margin: 0 0 4.8rem;
  color: #333333;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.6;
  text-align: left;
  letter-spacing: 0.06em;
}

#news p {
  margin: 0;
}

#news p + p {
  margin-top: 2.6rem;
}

#news a {
  color: #111c3b;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

#news a:hover {
  opacity: 0.7;
}

/* 画像エリア */
#news .image {
  margin: 4rem auto;
  text-align: center;
}

#news .image img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

#news .image p {
  margin-top: 1.2rem;
  font-size: 1.5rem;
  line-height: 1.8;
  text-align: center;
}

/* バナー系 */
#news .banner {
  margin: 4rem auto;
  text-align: center;
}

#news .banner img,
#news .logo img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

/* 旧HTML内のtable画像対応 */
#news table {
  width: 100%;
  margin: 0 auto;
}

#news table td {
  padding: 0.5rem;
  text-align: center;
  vertical-align: top;
}

#news table img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

/* YouTube */
#news iframe {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  margin: 0 auto;
}

/* =========================
  News List
========================= */
.news-page {
  width: min(90rem, 100% - 4rem);
  margin: 8rem auto 10rem;
}

.news_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.news_list li {
  padding: 2.4rem 0;
  border-bottom: 1px solid rgba(51, 51, 51, 0.18);
  font-size: 1.6rem;
  line-height: 1.7;
  letter-spacing: -0.04em;
}

.news_list li:first-child {
  border-top: 1px solid rgba(51, 51, 51, 0.18);
}

.news_list b {
  display: inline-block;
  margin-bottom: 0.6rem;
  color: #d4ba7f;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}

.news_list a {
  color: #333333;
  text-decoration: none;
}

.news_list a:hover {
  color: #111c3b;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  #news {
    width: calc(100% - 4rem);
    padding: 6rem 0 8rem;
    font-size: 1.7rem;
    line-height: 3rem;
    letter-spacing: 0;
  }
  #news .midashi2 {
    margin-bottom: 3.6rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  #news p + p {
    margin-top: 2rem;
  }
  #news .image {
    margin: 3rem auto;
  }
  #news .image p {
    margin-top: 1rem;
    font-size: 1.5rem;
  }
  #news table,
  #news tbody,
  #news tr,
  #news td {
    display: block;
    width: 100% !important;
  }
  #news table td {
    padding: 0.5rem 0;
  }
  .news-page {
    width: calc(100% - 4rem);
    margin: 6rem auto 8rem;
  }
  .news_list li {
    padding: 2rem 0;
    font-size: 1.7rem;
    line-height: 1.8;
  }
  .news_list b {
    font-size: 1.5rem;
  }
}
.site-footer__news-list .news_list li {
  color: rgba(51, 51, 51, 0.85);
}

.site-footer__news-list .news_list b {
  color: #d4ba7f;
}

.site-footer__news-list .news_list a {
  color: inherit;
  text-decoration: none;
}

.site-footer__news-list .news_list a:hover {
  color: #111c3b;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

.error-page {
  display: flex;
  min-height: 72vh;
  padding: 18rem 2rem 12rem;
  align-items: center;
  justify-content: center;
}

.error-page__inner {
  width: 100%;
  max-width: 96rem;
  margin-inline: auto;
  text-align: center;
}

.error-page__number {
  margin: 0 0 2.5rem;
  color: #999;
  font-size: clamp(9rem, 14vw, 18rem);
  font-weight: 300;
  line-height: 0.85;
  letter-spacing: 0.05em;
}

.error-page__title {
  margin: 0 0 4rem;
  color: #172c42;
  font-size: clamp(2.4rem, 3vw, 4rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.error-page__body {
  color: #333;
  font-size: 1.6rem;
  line-height: 2;
}

.error-page__body p {
  margin: 0;
}

.error-page__body p + p {
  margin-top: 2rem;
}

.error-page__guide {
  max-width: 72rem;
  margin: 4rem auto 0;
  padding: 3rem 4rem;
  background: #f4f5f6;
  text-align: left;
}

.error-page__guide-list {
  margin: 0;
  padding-left: 1.5em;
}

.error-page__guide-list li + li {
  margin-top: 1rem;
}

.error-page__text-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

.error-page__button-wrap {
  margin-top: 5rem;
}

.error-page__button {
  display: inline-flex;
  width: 100%;
  max-width: 32rem;
  min-height: 6rem;
  padding: 1.5rem 3rem;
  border: 1px solid #172c42;
  align-items: center;
  justify-content: center;
  color: #172c42;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: color 0.3s ease, background-color 0.3s ease;
}

.error-page__button:hover {
  color: #fff;
  background-color: #172c42;
}

@media (max-width: 743px) {
  .error-page {
    min-height: 65vh;
    padding: 12rem 2rem 8rem;
  }
  .error-page__number {
    margin-bottom: 2.5rem;
    font-size: 9rem;
  }
  .error-page__title {
    margin-bottom: 3rem;
    font-size: 2.3rem;
  }
  .error-page__body {
    font-size: 1.5rem;
    line-height: 1.9;
    text-align: left;
  }
  .error-page__body br {
    display: none;
  }
  .error-page__guide {
    margin-top: 3rem;
    padding: 2.5rem 2rem;
  }
  .error-page__button-wrap {
    margin-top: 4rem;
    text-align: center;
  }
}
/* =========================
  Footer
========================= */
.site-footer {
  color: #ffffff;
  background: #111c3b;
}

.site-footer__frame {
  width: 100%;
  background: #111c3b;
}

.site-footer__inner {
  width: min(90rem, 100% - 8rem);
  margin-inline: auto;
  padding: 8rem 0 5rem;
}

/* =========================
  Footer Top
========================= */
.site-footer__top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 2rem;
  margin-bottom: 4rem;
}

.site-footer__logo {
  display: block;
}

.site-footer__logo img {
  display: block;
  width: 24rem;
  height: auto;
}

.site-footer__tel {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.4em;
  margin: 0;
  text-align: left;
  white-space: nowrap;
  font-family: linotype-didot, serif;
  line-height: 1;
  transform: translateY(0.8rem);
}

.site-footer__tel-label,
.site-footer__tel-number {
  display: inline-block;
}

.site-footer__tel-label {
  font-size: 2.8rem;
}

.site-footer__tel-number {
  font-size: 2.8rem;
  letter-spacing: 0.04em;
}

/* =========================
  Footer Nav
========================= */
.site-footer__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 4.2rem;
  align-items: start;
}

.site-footer__nav-list {
  display: grid;
  gap: 1.6rem;
  padding: 0;
  margin: 0;
  list-style: none;
  align-content: start;
}

.site-footer__nav-item a {
  display: flex;
  align-items: baseline;
  gap: 2rem;
  color: #ffffff;
  transition: opacity 0.3s ease;
}

.site-footer__nav-item a:hover {
  opacity: 0.65;
}

.site-footer__nav-item span {
  font-family: linotype-didot, serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0em;
  white-space: nowrap;
}

.site-footer__nav-item em {
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* =========================
  Company
========================= */
.site-footer__company {
  margin-top: 3rem;
  margin-bottom: 6rem;
}

.site-footer__company-label {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 1.2rem;
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.site-footer__company-label a {
  color: inherit;
  text-decoration: none;
  font-size: 2rem;
  letter-spacing: 0.12em;
}

.site-footer__company-label a:hover {
  opacity: 0.7;
}

/* =========================
  Copyright
========================= */
.site-footer__copy {
  margin: 0;
  color: #ffffff;
  font-family: linotype-didot, serif;
  font-size: 1.4rem;
  line-height: 1.6;
  text-align: right;
  letter-spacing: 0.08em;
}

/* =========================
  SP
========================= */
@media (max-width: 743px) {
  .site-footer__inner {
    width: calc(100% - 4rem);
    padding: 5.5rem 0 3.5rem;
  }
  .site-footer__top {
    display: block;
  }
  .site-footer__tel {
    margin-top: 2rem;
    text-align: left;
  }
  .site-footer__company-label {
    display: block;
    text-align: left;
    font-size: 1.2rem;
  }
  .site-footer__company-label a {
    display: block;
    margin-top: 0.4rem;
    font-size: 1.5rem;
  }
  .site-footer__nav {
    grid-template-columns: 1fr;
    gap: 1.8rem;
    margin-bottom: 4rem;
  }
  .site-footer__nav-list {
    gap: 1.8rem;
  }
  .site-footer__nav-item a {
    display: block;
    text-align: left;
  }
  .site-footer__nav-item span {
    display: block;
    font-size: 1.9rem;
  }
  .site-footer__nav-item em {
    display: block;
    margin-top: 0.4rem;
    font-size: 1.4rem;
  }
  .site-footer__company {
    margin-bottom: 3.5rem;
  }
  .site-footer__company-label {
    font-size: 1.4rem;
  }
  .site-footer__company-logo {
    height: 5.4rem;
  }
  .site-footer__company-logo img {
    width: 24rem;
  }
  .site-footer__news {
    width: calc(100% - 3rem);
    margin-top: 4rem;
    padding: 3rem 2rem;
    border-width: 0.5rem;
  }
  .site-footer__news-title {
    margin-bottom: 2.6rem;
    font-size: 3.4rem;
  }
  .site-footer__news .news_list {
    max-height: 28rem;
    padding-right: 0.8rem;
  }
  .site-footer__news .news_list li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding-bottom: 1.6rem;
  }
  .site-footer__news .news_list li + li {
    padding-top: 1.6rem;
  }
  .site-footer__news .news_list b,
  .site-footer__news .news_list a {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .site-footer__copy {
    font-size: 1.2rem;
    text-align: center;
  }
}

/*# sourceMappingURL=main.css.map */
