* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  color: #263633;
  background: #ffffff;

  line-height: 1.8;
}


/* =====================
 HEADER
===================== */

.header {
  height: 90px;

  display: flex;
  align-items: center;

  gap: 40px;

  padding: 0 5%;

  background:
    rgba(255,255,255,0.96);

  position: relative;

  z-index: 100;
}

.logo-area {
  margin-right: auto;
}

.logo-main {
  font-size: 21px;

  font-weight: 600;

  letter-spacing:
    0.08em;
}

.logo-sub {
  margin-top: 2px;

  color: #779794;

  font-size: 9px;

  letter-spacing:
    0.18em;
}

.nav {
  display: flex;

  gap: 28px;
}

.nav a {
  color: #3b4b48;

  font-size: 13px;

  text-decoration: none;
}

.header-reserve {
  padding:
    11px 22px;

  color: white;

  background:
    #6b9994;

  border-radius:
    30px;

  font-size:
    13px;

  text-decoration:
    none;
}


/* =====================
 HERO
===================== */

.hero {
  height:
    calc(100vh - 90px);

  min-height:
    620px;

  position:
    relative;

  overflow:
    hidden;

  display:
    flex;

  align-items:
    center;
}


/* スライダー */

.hero-slider {
  position:
    absolute;

  inset: 0;

  z-index: 0;
}

.slide {
  position:
    absolute;

  inset: 0;

  width:
    100%;

  height:
    100%;

  object-fit:
    cover;

  object-position:
    center;

  opacity:
    0;

  animation:
    heroFade
    15s
    infinite;
}

.slide1 {
  animation-delay:
    0s;
}

.slide2 {
  animation-delay:
    5s;
}

.slide3 {
  animation-delay:
    10s;
}


@keyframes heroFade {

  0% {
    opacity: 0;
    transform:
      scale(1.03);
  }

  6% {
    opacity: 1;
  }

  28% {
    opacity: 1;
  }

  34% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform:
      scale(1.08);
  }

}


/* 写真の上 */

.hero-overlay {
  position:
    absolute;

  inset: 0;

  z-index: 1;

  background:
    linear-gradient(
      90deg,
      rgba(238,248,246,0.97)
      0%,

      rgba(238,248,246,0.90)
      32%,

      rgba(238,248,246,0.52)
      53%,

      rgba(255,255,255,0.02)
      78%
    );
}


/* メッセージ */

.hero-content {
  position:
    relative;

  z-index: 3;

  margin-left:
    8%;

  max-width:
    600px;
}

.hero-en {
  color:
    #648f8a;

  font-size:
    11px;

  letter-spacing:
    0.28em;

  margin-bottom:
    28px;
}

.hero h1 {
  margin-bottom:
    28px;

  color:
    #1f3430;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(
      60px,
      7vw,
      100px
    );

  font-weight:
    500;

  line-height:
    1.18;

  letter-spacing:
    0.04em;
}

.hero-message {
  margin-bottom:
    15px;

  color:
    #324541;

  font-size:
    19px;

  font-weight:
    500;

  line-height:
    1.9;
}

.hero-small {
  color:
    #58706c;

  font-size:
    13px;
}


/* =====================
 QUICK MENU
===================== */

.quick-menu {
  position:
    relative;

  z-index:
    20;

  width:
    min(
      1120px,
      92%
    );

  margin:
    -65px auto
    0;

  display:
    grid;

  grid-template-columns:
    repeat(
      4,
      1fr
    );

  background:
    white;

  box-shadow:
    0 12px 40px
    rgba(
      64,
      104,
      98,
      0.12
    );
}

.quick-item {
  min-height:
    125px;

  padding:
    20px 8px;

  display:
    flex;

  flex-direction:
    column;

  justify-content:
    center;

  align-items:
    center;

  color:
    #263633;

  text-align:
    center;

  text-decoration:
    none;

  border-right:
    1px solid
    #e0ebe9;

  border-bottom:
    1px solid
    #e0ebe9;

  background:
    white;

  transition:
    0.25s;
}

.quick-item:hover {
  background:
    #eef7f5;

  transform:
    translateY(-3px);
}

.quick-icon {
  margin-bottom:
    7px;

  color:
    #6b9994;

  font-size:
    25px;
}

.quick-title {
  font-size:
    14px;

  font-weight:
    600;
}

.quick-en {
  margin-top:
    3px;

  color:
    #8aa8a4;

  font-size:
    9px;

  letter-spacing:
    0.15em;
}

.reserve-item {
  background:
    #eef7f5;
}


/* =====================
 COMMON SECTION
===================== */

.section {
  padding:
    130px
    8%;
}

.section-label {
  margin-bottom:
    18px;

  color:
    #6b9994;

  font-size:
    11px;

  letter-spacing:
    0.28em;
}

.section h2 {
  margin-bottom:
    30px;

  color:
    #253936;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(
      38px,
      5vw,
      68px
    );

  font-weight:
    500;

  line-height:
    1.35;
}

.section-lead {
  margin-bottom:
    35px;

  color:
    #516965;

  font-size:
    18px;

  line-height:
    2;
}


/* =====================
 CONCEPT
===================== */

.concept {
  max-width:
    1000px;

  margin:
    0 auto;

  text-align:
    center;
}

.concept-text {
  max-width:
    700px;

  margin:
    0 auto;

  color:
    #526763;

  font-size:
    15px;

  line-height:
    2.3;
}


/* =====================
 FEATURES
===================== */

.features {
  max-width:
    1120px;

  margin:
    0 auto;

  padding:
    20px 5%
    130px;

  display:
    grid;

  grid-template-columns:
    repeat(
      3,
      1fr
    );

  gap:
    20px;
}

.feature-card {
  padding:
    42px 35px;

  background:
    #f2f8f7;
}

.feature-number {
  color:
    #7fa6a1;

  font-size:
    12px;

  letter-spacing:
    0.18em;
}

.feature-card h3 {
  margin:
    25px 0
    18px;

  font-family:
    "Yu Mincho",
    serif;

  font-size:
    23px;

  font-weight:
    500;
}

.feature-card p {
  color:
    #647773;

  font-size:
    14px;
}


/* =====================
 MAINTENANCE
===================== */

.maintenance {
  background:
    #eaf5f3;
}

.maintenance-box {
  max-width:
    1120px;

  margin:
    0 auto;

  display:
    grid;

  grid-template-columns:
    1fr 1fr;

  gap:
    90px;
}

.maintenance-big {
  margin-bottom:
    25px;

  color:
    #314b47;

  font-size:
    22px;

  font-weight:
    600;
}

.maintenance-right {
  color:
    #526965;

  font-size:
    15px;

  line-height:
    2.1;
}

.more-button {
  margin-top:
    35px;

  padding-bottom:
    7px;

  display:
    inline-block;

  color:
    #527f79;

  border-bottom:
    1px solid
    #719994;

  font-size:
    13px;

  text-decoration:
    none;
}


/* =====================
 MEDICAL
===================== */

.medical {
  max-width:
    1200px;

  margin:
    0 auto;
}

.medical-grid {
  margin-top:
    50px;

  display:
    grid;

  grid-template-columns:
    repeat(
      3,
      1fr
    );

  gap:
    1px;

  background:
    #d9e7e4;
}

.medical-card {
  min-height:
    180px;

  padding:
    35px;

  background:
    white;
}

.medical-card span {
  color:
    #8eaaa6;

  font-size:
    11px;
}

.medical-card h3 {
  margin:
    27px 0
    6px;

  color:
    #314743;

  font-size:
    18px;

  font-weight:
    500;
}

.medical-card p {
  color:
    #8aa19d;

  font-size:
    9px;

  letter-spacing:
    0.12em;
}


/* =====================
 ACCESS
===================== */

.access {
  display:
    grid;

  grid-template-columns:
    1fr 1fr;

  gap:
    70px;

  background:
    #f5f8f7;
}

.access-info {
  padding-top:
    60px;

  color:
    #526763;

  font-size:
    14px;

  line-height:
    2;
}

.access-info h3 {
  margin-bottom:
    20px;

  color:
    #2f4541;

  font-size:
    22px;
}

.access-info p {
  margin-bottom:
    22px;
}


/* =====================
 FOOTER
===================== */

footer {
  padding:
    80px 5%
    110px;

  color:
    white;

  background:
    #31514c;

  text-align:
    center;
}

.footer-logo {
  margin-bottom:
    5px;

  font-size:
    23px;

  letter-spacing:
    0.08em;
}

footer > p {
  color:
    #a9c4bf;

  font-size:
    9px;

  letter-spacing:
    0.15em;
}

.copyright {
  margin-top:
    40px;
}


/* =====================
 MOBILE FIXED
===================== */

.mobile-fixed {
  display:
    none;
}


/* =====================
 iPHONE
===================== */

@media
(max-width: 700px) {

  body {
    padding-bottom:
      60px;
  }

  .header {
    height:
      68px;

    padding:
      0 5%;
  }

  .logo-main {
    font-size:
      16px;
  }

  .logo-sub {
    font-size:
      7px;
  }

  .nav,
  .header-reserve {
    display:
      none;
  }


  /* HERO */

  .hero {
    height:
      620px;

    min-height:
      0;

    align-items:
      flex-start;
  }

  .slide {
    object-position:
      center;
  }

  .hero-overlay {
    background:
      linear-gradient(
        180deg,

        rgba(
          239,
          248,
          246,
          0.91
        )
        0%,

        rgba(
          239,
          248,
          246,
          0.75
        )
        42%,

        rgba(
          255,
          255,
          255,
          0.12
        )
        76%
      );
  }

.hero-content {
  margin:
    28px 7%
    0;

  max-width:
    88%;
}

  .hero-en {
    margin-bottom:
      18px;

    font-size:
      9px;
  }

  .hero h1 {
    margin-bottom:
      22px;

    font-size:
      52px;

    line-height:
      1.25;
  }

  .hero-message {
    font-size:
      15px;
  }

  .hero-small {
    max-width:
      300px;

    font-size:
      11px;
  }


  /* 4 × 2 */

  .quick-menu {
    width:
      94%;

    margin-top:
      -46px;

    grid-template-columns:
      repeat(
        4,
        1fr
      );
  }

  .quick-item {
    min-height:
      94px;

    padding:
      11px 3px;
  }

  .quick-icon {
    margin-bottom:
      3px;

    font-size:
      20px;
  }

  .quick-title {
    font-size:
      10px;

    line-height:
      1.3;
  }

  .quick-en {
    font-size:
      6px;
  }


  /* SECTION */

  .section {
    padding:
      90px 7%;
  }

  .section h2 {
    font-size:
      37px;
  }

  .section-lead {
    font-size:
      15px;
  }

  .concept-text {
    text-align:
      left;

    font-size:
      14px;
  }


  /* FEATURES */

  .features {
    padding:
      0 7%
      90px;

    grid-template-columns:
      1fr;
  }


  /* MAINTENANCE */

  .maintenance-box {
    grid-template-columns:
      1fr;

    gap:
      20px;
  }


  /* MEDICAL */

  .medical-grid {
    grid-template-columns:
      repeat(
        2,
        1fr
      );
  }

  .medical-card {
    min-height:
      145px;

    padding:
      22px 18px;
  }

  .medical-card h3 {
    font-size:
      14px;
  }


  /* ACCESS */

  .access {
    grid-template-columns:
      1fr;

    gap:
      10px;
  }

  .access-info {
    padding-top:
      0;
  }


  /* BOTTOM BUTTON */

  .mobile-fixed {
    position:
      fixed;

    left:
      0;

    right:
      0;

    bottom:
      0;

    z-index:
      999;

    height:
      60px;

    display:
      grid;

    grid-template-columns:
      1fr 1.5fr;
  }

  .mobile-fixed a {
    display:
      flex;

    align-items:
      center;

    justify-content:
      center;

    color:
      white;

    background:
      #466b66;

    font-size:
      13px;

    text-decoration:
      none;
  }

  .mobile-fixed
  .mobile-reserve {
    background:
      #70a19b;
  }

}
/* =====================
   HERO ACCESS
===================== */

.hero-access {
  width: fit-content;

  margin-bottom: 22px;

  padding: 9px 16px;

  display: flex;
  align-items: center;
  gap: 8px;

  color: #31514c;

  background: rgba(255, 255, 255, 0.82);

  border: 1px solid rgba(107, 153, 148, 0.35);
  border-radius: 30px;

  font-size: 13px;
  font-weight: 600;

  letter-spacing: 0.04em;

  backdrop-filter: blur(5px);
}

.access-pin {
  color: #6b9994;
  font-size: 16px;
}


/* スマホ */
@media (max-width: 700px) {

  .hero-access {
    margin-bottom: 16px;

    padding: 7px 12px;

    font-size: 11px;
  }

  .access-pin {
    font-size: 14px;
  }

}
/* ヘッダーのロゴ */

.logo-area {
  display: flex;
  align-items: center;
  gap: 10px;
}

.logo-mark {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex-shrink: 0;
}

.logo-text {
  display: flex;
  flex-direction: column;
}

/* スマホ */
@media (max-width: 700px) {

  .logo-area {
    gap: 7px;
  }

  .logo-mark {
    width: 40px;
    height: 40px;
  }

}
/* =====================
   QUICK MENU SVG ICON
===================== */

.quick-icon {
  width: 30px;
  height: 30px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-bottom: 8px;
}

.quick-icon svg {
  width: 100%;
  height: 100%;

  fill: none;
  stroke: #6b9994;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 予約だけ少し強調 */
.reserve-item .quick-icon svg {
  stroke: #527f79;
}

/* スマホ */
@media (max-width: 700px) {

  .quick-icon {
    width: 23px;
    height: 23px;
    margin-bottom: 5px;
  }

  .quick-icon svg {
    stroke-width: 1.7;
  }

}
.price-icon {
  color: #6b9994;
  font-size: 27px;
  font-weight: 400;
  line-height: 1;
}

@media (max-width: 700px) {
  .price-icon {
    font-size: 22px;
  }
}
