@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Elms+Sans:wght@100..900&display=swap");
/* ---------- reset ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  font-size: 100%;
  font-style: normal;
  margin: 0;
  padding: 0;
  vertical-align: baseline; }

/* ---------- body ---------- */
body {
  background-color: #E5F3F9;
  color: #3B3938;
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1;
  text-size-adjust: 100%;
  transition: background-color .3s; }

p, dl, ul, ol {
  font-size: 0.9375rem;
  line-height: 1.8;
  padding: 0 0 20px; }
  @media only screen and (max-width: 520px) {
    p, dl, ul, ol {
      font-size: 0.875rem;
      line-height: 1.7; } }

ul, ol {
  list-style: none; }

a {
  color: #3B3938; }

img {
  height: auto;
  vertical-align: top;
  width: 100%; }

/* ---------- header ---------- */
.header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  height: 140px;
  padding: 0 5vw;
  position: fixed;
  transition: background-color .2s, height .2s;
  width: 100%;
  z-index: 9999; }
  .scroll .header {
    background-color: rgba(229, 243, 249, 0.8);
    height: 90px; }
  @media only screen and (max-width: 1024px) {
    .header {
      height: 140px !important;
      position: static; } }
  @media only screen and (max-width: 520px) {
    .header {
      height: 100px !important; } }
  .header > .logo {
    padding: 0;
    transition: opacity 0.2s; }
    body.open .header > .logo {
      opacity: 0; }
    .header > .logo a {
      align-items: center;
      background-image: url("../img/base/daizu.svg");
      background-position: 0 center;
      background-repeat: no-repeat;
      background-size: auto 100%;
      display: flex;
      height: 50px;
      padding: 0 0 0 80px; }
      @media only screen and (max-width: 520px) {
        .header > .logo a {
          height: 45px;
          padding: 0 0 0 72px; } }
      .header > .logo a img {
        height: 70%;
        width: auto; }
  .header .menu {
    display: none; }
    @media only screen and (max-width: 1024px) {
      .header .menu {
        align-items: center;
        background-color: #0088C9;
        border-radius: 99px;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        gap: 5px 0;
        height: 40px;
        justify-content: center;
        padding: 0;
        position: fixed;
        right: 5vw;
        top: 50px;
        width: 40px;
        z-index: 10000; }
        .header .menu span {
          background-color: #fff;
          border-radius: 99px;
          height: 2px;
          transition: all .3s;
          width: 22px; }
          .header .menu span:nth-of-type(1) {
            top: 0; }
            .open .header .menu span:nth-of-type(1) {
              background-color: #fff;
              transform: translateY(3.5px) rotate(-30deg); }
          .header .menu span:nth-of-type(2) {
            top: calc(50% - 1px); }
            .open .header .menu span:nth-of-type(2) {
              display: none; }
          .header .menu span:nth-of-type(3) {
            bottom: 0; }
            .open .header .menu span:nth-of-type(3) {
              background-color: #fff;
              transform: translateY(-3.5px) rotate(30deg); } }
    @media only screen and (max-width: 520px) {
      .header .menu {
        top: 30px; } }
  .header nav {
    align-items: center;
    display: flex;
    white-space: nowrap; }
    @media only screen and (max-width: 1024px) {
      .header nav {
        background-color: #E5F3F9;
        display: none;
        height: 100vh;
        left: 0;
        padding: 0 5vw;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 9999; } }
    .header nav .logo {
      display: none; }
      @media only screen and (max-width: 1024px) {
        .header nav .logo {
          display: block;
          margin: 0 auto;
          padding: 50px 0 30px;
          width: 180px; }
          .header nav .logo a {
            background-image: url("../img/base/daizu.svg");
            background-position: center 0;
            background-repeat: no-repeat;
            background-size: 42% auto;
            display: block;
            padding: 40% 0 0; } }
    .header nav > ul {
      align-items: center;
      display: flex;
      gap: 0 25px;
      padding: 5px 10px 0 0; }
      @media only screen and (max-width: 1024px) {
        .header nav > ul {
          border-top: rgba(59, 57, 56, 0.2) 1px solid;
          display: block;
          margin: 0 auto;
          max-width: 480px;
          padding: 0; } }
      .header nav > ul > li:nth-child(n+5) {
        display: none; }
        @media only screen and (max-width: 1024px) {
          .header nav > ul > li:nth-child(n+5) {
            display: block; } }
      .header nav > ul > li a {
        display: block;
        font-weight: 500;
        letter-spacing: 0.05rem;
        text-decoration: none; }
        @media only screen and (max-width: 1024px) {
          .header nav > ul > li a {
            background-image: url("../img/base/arrow_bl.svg");
            background-position: 5px 13px;
            background-repeat: no-repeat;
            background-size: 13px auto;
            border-bottom: rgba(59, 57, 56, 0.2) 1px solid;
            font-size: 0.9375rem;
            padding: 8px 5px 5px 25px; } }
      @media only screen and (max-width: 1024px) {
        .header nav > ul > li:nth-child(2) > a {
          display: none; } }
      .header nav > ul > li ul {
        display: none; }
        @media only screen and (max-width: 1024px) {
          .header nav > ul > li ul {
            display: block;
            padding: 0; } }
    .header nav .instagram {
      order: 99;
      padding: 0 0 0 20px; }
      @media only screen and (max-width: 1024px) {
        .header nav .instagram {
          padding: 20px 0 0;
          text-align: center; } }
      .header nav .instagram a img {
        height: 35px;
        width: auto; }
    .header nav div {
      padding: 0 0 0 25px; }
      @media only screen and (max-width: 1024px) {
        .header nav div {
          display: flex;
          gap: 0 10px;
          margin: 0 auto;
          max-width: 480px;
          padding: 20px 0; } }
      .header nav div p {
        padding: 0; }
        @media only screen and (max-width: 1024px) {
          .header nav div p {
            width: 100%; } }
        .header nav div p.reserve a, .header nav div p.phone a {
          background-position: 10px center;
          background-repeat: no-repeat;
          background-size: auto 14px;
          border-radius: 99px;
          color: #fff;
          display: block;
          font-weight: 700;
          letter-spacing: 0.05rem;
          padding: 5px 15px 3px 35px;
          text-decoration: none; }
          @media only screen and (max-width: 1024px) {
            .header nav div p.reserve a, .header nav div p.phone a {
              font-size: 1rem;
              padding: 6px 15px 3px 35px;
              text-align: center;
              white-space: nowrap; } }
        .header nav div p.reserve a {
          background-color: #1EA1A1;
          background-image: url("../img/base/daizu_wh.svg"); }
          @media only screen and (max-width: 1024px) {
            .header nav div p.reserve a {
              background-size: auto 16px; } }
        .header nav div p.phone {
          display: none; }
          @media only screen and (max-width: 1024px) {
            .header nav div p.phone {
              display: block; }
              .header nav div p.phone a {
                background-color: #0088C9;
                background-image: url("../img/base/phone_wh.svg");
                background-size: auto 18px; } }

/* ---------- footer ---------- */
.footer {
  background-color: rgba(0, 136, 201, 0.1);
  border-radius: 4vw 4vw 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5vw 3vw;
  padding: 5vw;
  transition: opacity 0.2s; }
  @media only screen and (max-width: 1024px) {
    .footer {
      gap: 50px 3vw;
      padding: 50px 5vw; }
      body.open .footer {
        opacity: 0; } }
  .footer .timetable {
    width: 440px; }
    @media only screen and (max-width: 834px) {
      .footer .timetable {
        width: 100%; } }
    .footer .timetable p {
      margin: 0 auto 30px;
      padding: 0;
      text-align: center;
      width: 200px; }
      @media only screen and (max-width: 834px) {
        .footer .timetable p {
          margin: 0 auto 35px;
          width: 180px; } }
      .footer .timetable p a {
        background-image: url("../img/base/daizu.svg");
        background-position: center 0;
        background-repeat: no-repeat;
        background-size: 42% auto;
        display: block;
        margin: 0 0 20px;
        padding: 40% 0 0;
        width: 100%; }
      .footer .timetable p em {
        border: #3B3938 1px solid;
        border-radius: 99px;
        display: inline-block;
        font-size: 0.875rem;
        font-weight: 500;
        padding: 0 15px; }
    .footer .timetable ul {
      display: flex;
      gap: 0 10px;
      padding: 0; }
      .footer .timetable ul li {
        width: 100%; }
        .footer .timetable ul li a {
          background-position: 10px center;
          background-repeat: no-repeat;
          border-radius: 99px;
          color: #fff;
          display: block;
          font-size: 1.125rem;
          font-weight: 700;
          letter-spacing: 0.05rem;
          padding: 9px 15px 5px 35px;
          text-align: center;
          text-decoration: none;
          white-space: nowrap; }
          @media only screen and (max-width: 834px) {
            .footer .timetable ul li a {
              font-size: 1rem;
              padding: 6px 15px 3px 35px; } }
        .footer .timetable ul li.phone a {
          background-color: #0088C9;
          background-image: url("../img/base/phone_wh.svg");
          background-size: auto 20px; }
          @media only screen and (max-width: 834px) {
            .footer .timetable ul li.phone a {
              background-size: auto 18px; } }
        .footer .timetable ul li.reserve a {
          background-color: #1EA1A1;
          background-image: url("../img/base/daizu_wh.svg");
          background-size: auto 18px; }
          @media only screen and (max-width: 834px) {
            .footer .timetable ul li.reserve a {
              background-size: auto 16px; } }
  .footer .googlemap {
    width: calc(100% - 440px - 3vw); }
    @media only screen and (max-width: 834px) {
      .footer .googlemap {
        height: 400px;
        width: 100%; } }
    .footer .googlemap iframe {
      border: 0;
      border-radius: 20px;
      height: 100%;
      width: 100%; }
  .footer > ul {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 20px 25px;
    padding: 5px 0 0; }
    @media only screen and (max-width: 834px) {
      .footer > ul {
        display: none; } }
    .footer > ul li {
      line-height: 1; }
      .footer > ul li:last-child {
        padding: 0; }
      .footer > ul li a {
        text-decoration: none; }
  .footer > p {
    font-family: "Elms Sans";
    font-size: 0.75rem;
    letter-spacing: 0.1rem;
    margin: 0 0 0 auto;
    padding: 0;
    white-space: nowrap; }
    @media only screen and (max-width: 834px) {
      .footer > p {
        margin: 0;
        text-align: center;
        width: 100%; } }

.timetable table {
  border-collapse: collapse;
  width: 100%; }
  .timetable table tr {
    border-bottom: rgba(59, 57, 56, 0.15) 1px solid; }
    .timetable table tr th,
    .timetable table tr td {
      font-weight: 500;
      letter-spacing: 0.05rem;
      padding: 15px 5px; }
      @media only screen and (max-width: 834px) {
        .timetable table tr th,
        .timetable table tr td {
          font-size: 0.9375rem; } }
    .timetable table tr th {
      text-align: left; }
  .timetable table tbody tr:nth-child(1) {
    color: #0088C9; }
  .timetable table tbody tr:nth-child(2) {
    color: #1EA1A1; }
  .timetable table tbody tr th {
    font-family: "Elms Sans";
    font-size: 1.125rem; }
    @media only screen and (max-width: 834px) {
      .timetable table tbody tr th {
        font-size: 1rem; } }
.timetable dl {
  padding: 20px 0 15px; }
  .timetable dl div {
    display: flex;
    gap: 0 20px;
    padding: 0 0 5px 5px; }
    .timetable dl div dt {
      color: #0088C9;
      font-weight: 500;
      white-space: nowrap; }

/* ---------- main ---------- */
.main {
  padding: 140px 0 0; }
  @media only screen and (max-width: 1024px) {
    .main {
      padding: 0;
      transition: opacity 0.2s; }
      body.open .main {
        opacity: 0; } }

.main-header,
.main-footer {
  padding: 0 3vw 100px; }
  @media only screen and (max-width: 834px) {
    .main-header,
    .main-footer {
      display: flex;
      flex-direction: column;
      padding: 0 3vw 60px; } }
  .main-header h1,
  .main-footer h1 {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 3vw;
    font-size: 1.75rem;
    font-weight: 500;
    letter-spacing: 0.1rem;
    padding: 60px 0;
    text-align: center; }
    @media only screen and (max-width: 834px) {
      .main-header h1,
      .main-footer h1 {
        font-size: 1.375rem;
        order: 1;
        padding: 50px 0; } }
    .main-header h1::before,
    .main-footer h1::before {
      color: #0088C9;
      content: attr(data-en);
      display: block;
      font-family: "Elms Sans";
      font-size: 0.9375rem;
      font-weight: 700;
      letter-spacing: 0.05rem;
      padding: 0 0 15px;
      text-transform: uppercase; }
      @media only screen and (max-width: 834px) {
        .main-header h1::before,
        .main-footer h1::before {
          font-size: 0.875rem; } }
  .main-header div,
  .main-footer div {
    display: flex;
    gap: 0 30px;
    padding: 0 3vw; }
    @media only screen and (max-width: 834px) {
      .main-header div,
      .main-footer div {
        padding: 0 2vw; } }
    .main-header div ul,
    .main-footer div ul {
      display: flex;
      flex-wrap: wrap;
      gap: 5px 25px;
      padding: 25px 0 0; }
      @media only screen and (max-width: 834px) {
        .main-header div ul,
        .main-footer div ul {
          display: none; } }
      .main-header div ul li a,
      .main-footer div ul li a {
        background-image: url("../img/base/arrow_bl.svg");
        background-position: 0 4px;
        background-repeat: no-repeat;
        background-size: 13px auto;
        color: #0088C9;
        font-weight: 500;
        padding: 0 0 0 18px;
        text-decoration: none; }
    .main-header div ol,
    .main-footer div ol {
      display: flex;
      margin: 0 0 0 auto;
      padding: 25px 0 0;
      white-space: nowrap; }
      @media only screen and (max-width: 834px) {
        .main-header div ol,
        .main-footer div ol {
          font-size: 0.75rem;
          margin: 0;
          padding: 5px 0 20px; } }
      .main-header div ol li::after,
      .main-footer div ol li::after {
        content: "｜";
        padding: 0 5px; }
        @media only screen and (max-width: 520px) {
          .main-header div ol li::after,
          .main-footer div ol li::after {
            padding: 0 3px; } }
      .main-header div ol li:last-child::after,
      .main-footer div ol li:last-child::after {
        display: none; }

.main-footer {
  display: none;
  padding: 0 3vw 60px; }
  @media only screen and (max-width: 834px) {
    .main-footer {
      display: block;
      padding: 0 3vw 20px; }
      .main-footer div ul {
        display: flex;
        font-size: 0.8125rem;
        gap: 10px 20px;
        padding: 20px 0 0; }
        .main-footer div ul li a {
          background-position: 0 3px;
          background-size: 12px auto;
          padding: 0 0 0 16px; } }

.section {
  margin: 0 auto;
  max-width: 1260px;
  padding: 0 5vw 80px; }
  @media only screen and (max-width: 834px) {
    .section {
      padding: 0 5vw 40px; } }

.section-inner {
  padding: 50px 0 0; }
  @media only screen and (max-width: 834px) {
    .section-inner {
      padding: 30px 0 0; } }

/* ---------- title ---------- */
.title-l {
  background-image: url("../img/base/daizu.svg");
  background-position: center 0;
  background-repeat: no-repeat;
  color: #0088C9;
  font-size: 1.75rem;
  font-weight: 500;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  padding: 40px 0 50px;
  text-align: center; }
  @media only screen and (max-width: 834px) {
    .title-l {
      font-size: 1.5rem;
      padding: 40px 0 30px; } }

.title-m {
  border-top: #0088C9 1px solid;
  color: #0088C9;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.1rem;
  line-height: 1.5;
  padding: 25px 0 20px; }
  @media only screen and (max-width: 834px) {
    .title-m {
      font-size: 1rem; } }
  .title-m span {
    display: block;
    font-size: 1.25rem;
    margin: 10px 0;
    padding: 0 0 0 15px;
    position: relative; }
    .title-m span::before {
      background-color: #0088C9;
      border-radius: 9px;
      content: "";
      display: block;
      height: calc(100% - 9px);
      left: 0;
      position: absolute;
      top: 3px;
      width: 5px; }

.title-s {
  color: #0088C9;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.1rem;
  line-height: 1.4;
  margin: 0 0 30px;
  padding: 0 0 0 15px;
  position: relative; }
  @media only screen and (max-width: 834px) {
    .title-s {
      font-size: 1.125rem;
      margin: 0 0 25px; } }
  .title-s::before {
    background-color: #0088C9;
    border-radius: 9px;
    content: "";
    display: block;
    height: calc(100% - 3px);
    left: 0;
    position: absolute;
    top: 0;
    width: 5px; }

/* ---------- catch ---------- */
.catch-l {
  color: #0088C9;
  font-size: 1.125rem;
  font-weight: 500;
  letter-spacing: 0.1rem;
  line-height: 1.5;
  padding: 0 0 20px; }

.catch-s {
  color: #0088C9;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.1rem;
  padding: 10px 0; }

/* ---------- list ---------- */
.disc {
  display: flex;
  flex-direction: column;
  gap: 7px 0;
  list-style: disc;
  margin: 0 0 0 20px; }

.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
  list-style: disc;
  margin: 0 0 0 20px; }

.check {
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(3, 1fr);
  padding: 15px 0 20px; }
  @media only screen and (max-width: 834px) {
    .check {
      grid-template-columns: repeat(2, 1fr); } }
  @media only screen and (max-width: 520px) {
    .check {
      grid-template-columns: repeat(1, 1fr); } }
  .check li {
    background-color: #fff;
    background-image: url("../img/base/check.svg");
    background-position: 15px 16px;
    background-repeat: no-repeat;
    background-size: 18px auto;
    border-radius: 10px;
    color: #0088C9;
    font-weight: 600;
    padding: 12px 10px 10px 40px; }

.notice {
  display: flex;
  flex-direction: column;
  gap: 7px 0; }
  .notice li {
    padding: 0 0 0 1.25rem;
    position: relative; }
    .notice li::before {
      content: "※ ";
      left: 0;
      position: absolute;
      top: 0; }

/* ---------- keyvisual ---------- */
#keyvisual {
  margin: 0 3vw 100px;
  position: relative; }
  @media only screen and (max-width: 834px) {
    #keyvisual {
      margin: 0 3vw 60px; } }
  #keyvisual .slider p {
    border-radius: 2vw;
    height: calc(100vh - 140px - 3vw);
    overflow: hidden;
    padding: 0; }
    @media only screen and (max-width: 834px) {
      #keyvisual .slider p {
        height: 45vh;
        margin: 0 0 3vw; } }
    #keyvisual .slider p img {
      height: 100%;
      object-fit: cover;
      width: 100%; }
  #keyvisual > p {
    align-items: flex-start;
    display: flex;
    flex-direction: row-reverse;
    font-size: 2rem;
    left: 3vw;
    position: absolute;
    top: 4vw; }
    @media only screen and (max-width: 1366px) {
      #keyvisual > p {
        top: 5vw; } }
    @media only screen and (max-width: 834px) {
      #keyvisual > p {
        font-size: 1.5rem; } }
    @media only screen and (max-width: 520px) {
      #keyvisual > p {
        top: 6vw; } }
    #keyvisual > p span {
      color: #fff;
      letter-spacing: 0.2rem;
      white-space: nowrap;
      writing-mode: vertical-lr; }
      #keyvisual > p span:nth-child(3) {
        margin: auto 0 0; }
      #keyvisual > p span em {
        font-weight: 700; }
  #keyvisual .timetable {
    background-color: #E5F3F9;
    border-radius: 2vw 0 0 0;
    bottom: 0;
    padding: 25px 15px 0 35px;
    position: absolute;
    right: 0; }
    @media only screen and (max-width: 834px) {
      #keyvisual .timetable {
        background-color: rgba(255, 255, 255, 0.6);
        border-radius: 2vw;
        position: static;
        padding: 4vw 3vw 3vw; } }
    #keyvisual .timetable::before, #keyvisual .timetable::after {
      aspect-ratio: 1 / 1;
      background-image: url("../img/base/round.svg");
      background-position: 0 0;
      background-repeat: no-repeat;
      background-size: cover;
      content: "";
      position: absolute;
      right: 0;
      top: -2vw;
      width: 2vw; }
      @media only screen and (max-width: 834px) {
        #keyvisual .timetable::before, #keyvisual .timetable::after {
          display: none; } }
    #keyvisual .timetable::after {
      bottom: 0;
      left: -2vw;
      right: auto;
      top: auto; }
    #keyvisual .timetable dl {
      padding: 15px 0 10px; }
    #keyvisual .timetable ul {
      display: flex;
      gap: 0 10px;
      padding: 0 0 10px; }
      @media only screen and (max-width: 834px) {
        #keyvisual .timetable ul {
          gap: 0 5px;
          padding: 0; } }
      #keyvisual .timetable ul li {
        width: 100%; }
        #keyvisual .timetable ul li a {
          background-color: rgba(0, 136, 201, 0.1);
          border-radius: 5px;
          color: #0088C9;
          display: block;
          font-size: 1rem;
          font-weight: 500;
          text-decoration: none;
          white-space: nowrap;
          padding: 6px 15px 5px;
          text-align: center; }
          @media only screen and (max-width: 834px) {
            #keyvisual .timetable ul li a {
              font-size: 0.875rem;
              padding: 6px 10px 5px; } }

/* ---------- home-news ---------- */
#home-news {
  max-width: none;
  position: relative;
  z-index: 0; }
  #home-news::before, #home-news::after {
    background-color: #0088C9;
    bottom: 0;
    content: "";
    left: 0;
    height: 5vw;
    position: absolute;
    width: 100%;
    z-index: -10; }
  #home-news::after {
    background-color: #E5F3F9;
    border-radius: 0 0 5vw;
    z-index: -1; }
  #home-news #news-list {
    display: flex;
    gap: 0 50px; }
    @media only screen and (max-width: 520px) {
      #home-news #news-list {
        display: block; } }
    #home-news #news-list div {
      align-items: flex-start;
      display: flex;
      flex-direction: column;
      white-space: nowrap; }
      @media only screen and (max-width: 520px) {
        #home-news #news-list div {
          align-items: flex-end;
          flex-direction: row;
          justify-content: space-between; } }
      @media only screen and (max-width: 520px) {
        #home-news #news-list div h2 {
          font-size: 0.875rem;
          font-weight: 500;
          padding: 0 0 20px; } }
      #home-news #news-list div h2::before {
        color: #0088C9;
        content: attr(data-en);
        display: block;
        font-family: "Elms Sans";
        font-size: 2.25rem;
        font-weight: 500;
        letter-spacing: 0.2rem;
        margin: 0 0 10px -1px; }
        @media only screen and (max-width: 520px) {
          #home-news #news-list div h2::before {
            font-size: 1.5rem;
            font-weight: 700;
            margin: 0 0 5px -1px; } }
      #home-news #news-list div p {
        margin: auto 0 0 0; }
        @media only screen and (max-width: 520px) {
          #home-news #news-list div p {
            margin: 0 0 2px; } }
        #home-news #news-list div p a {
          background-color: #0088C9;
          border-radius: 5px;
          color: #fff;
          display: inline-block;
          padding: 5px 10px 3px;
          text-decoration: none; }

#news-list ul {
  border-top: rgba(59, 57, 56, 0.15) solid 1px;
  flex: 1; }
  @media only screen and (max-width: 520px) {
    #news-list ul {
      margin: 0 -5vw; } }
  #news-list ul li {
    border-bottom: rgba(59, 57, 56, 0.15) solid 1px; }
    #news-list ul li a {
      background-image: url("../img/base/arrow_bl.svg");
      background-position: right 10px center;
      background-repeat: no-repeat;
      display: flex;
      gap: 0 20px;
      padding: 30px 50px 10px 10px;
      text-decoration: none; }
      @media only screen and (max-width: 834px) {
        #news-list ul li a {
          padding: 20px 50px 0 10px;
          display: block; } }
      @media only screen and (max-width: 520px) {
        #news-list ul li a {
          background-position: right 5vw center;
          padding: 20px 60px 0 5vw; } }
      #news-list ul li a .date {
        color: #0088C9;
        font-family: "Elms Sans";
        font-size: 1rem;
        font-weight: 700;
        white-space: nowrap; }
        @media only screen and (max-width: 834px) {
          #news-list ul li a .date {
            padding: 0; } }
      #news-list ul li a .title {
        flex: 1;
        font-size: 1rem; }
        @media only screen and (max-width: 834px) {
          #news-list ul li a .title {
            font-size: 0.9375rem; } }

/* ---------- home-feature ---------- */
#home-feature {
  background-color: #0088C9;
  border-radius: 5vw 0;
  color: #fff;
  padding: 85px 0 0; }
  @media only screen and (max-width: 834px) {
    #home-feature {
      padding: 40px 0 0; } }
  #home-feature #feature > div h2 {
    color: #fff; }
    #home-feature #feature > div h2 span {
      background-image: url("../img/base/daizu_wh.svg"); }
  #home-feature #feature > div p.catch {
    color: #fff; }
  #home-feature #feature section div h3 {
    background-image: url("../img/base/daizu_wh.svg");
    color: #fff; }

#feature {
  max-width: 1600px; }
  #feature > div {
    padding: 0 0 20px;
    text-align: center; }
    #feature > div h2 {
      color: #0088C9;
      margin: 0 -5vw;
      overflow: hidden;
      position: relative;
      z-index: 0; }
      #feature > div h2 span {
        background-image: url("../img/base/daizu.svg");
        background-position: center 25px;
        background-repeat: no-repeat;
        background-size: 40px auto;
        display: block;
        font-size: 1.375rem;
        letter-spacing: 0.1rem;
        padding: 65px 0;
        text-align: center;
        width: 100%; }
        @media only screen and (max-width: 834px) {
          #feature > div h2 span {
            background-position: center 33px;
            background-size: 30px auto;
            font-size: 1.125rem;
            padding: 62px 0 40px; } }
      #feature > div h2::before {
        content: attr(data-en);
        font-family: "Elms Sans";
        font-size: 7rem;
        left: -100%;
        opacity: 0.1;
        position: absolute;
        right: -100%;
        text-align: center;
        top: 0; }
        @media only screen and (max-width: 834px) {
          #feature > div h2::before {
            font-size: 4rem;
            line-height: 7rem; } }
    #feature > div p {
      padding: 0; }
      @media only screen and (max-width: 834px) {
        #feature > div p {
          text-align: left; } }
      #feature > div p br {
        display: none; }
        @media only screen and (max-width: 1024px) {
          #feature > div p br {
            display: block; } }
        @media only screen and (max-width: 834px) {
          #feature > div p br {
            display: none; } }
      #feature > div p.catch {
        color: #0088C9;
        font-size: 1.75rem;
        letter-spacing: 0.1rem;
        line-height: 1.5;
        padding: 0 0 15px; }
        @media only screen and (max-width: 834px) {
          #feature > div p.catch {
            font-size: 1.125rem;
            padding: 0 0 25px;
            text-align: center; } }
        #feature > div p.catch br {
          display: none; }
          @media only screen and (max-width: 1024px) {
            #feature > div p.catch br {
              display: block; } }
  #feature section {
    align-items: center;
    display: flex;
    gap: 0 50px;
    padding: 50px 0 0; }
    @media only screen and (max-width: 834px) {
      #feature section {
        flex-direction: column; } }
    #feature section img {
      aspect-ratio: 16 / 9;
      border-radius: 20px;
      margin: 0 0 20px;
      object-fit: cover;
      width: 55%; }
      @media only screen and (max-width: 1366px) {
        #feature section img {
          aspect-ratio: 4 / 3;
          width: 50%; } }
      @media only screen and (max-width: 1024px) {
        #feature section img {
          aspect-ratio: 1 / 1; } }
      @media only screen and (max-width: 834px) {
        #feature section img {
          aspect-ratio: 16 / 9;
          width: 100%; } }
    #feature section div {
      padding: 20px 50px 20px 0; }
      @media only screen and (max-width: 1024px) {
        #feature section div {
          padding: 20px 0 0 !important; } }
      #feature section div h3 {
        background-image: url("../img/base/daizu.svg");
        background-position: 0 0;
        background-repeat: no-repeat;
        background-size: 26px auto;
        color: #0088C9;
        font-size: 1.5rem;
        font-weight: 400;
        letter-spacing: 0.1rem;
        line-height: 1.5;
        padding: 0 0 20px; }
        @media only screen and (max-width: 520px) {
          #feature section div h3 {
            font-size: 1.125rem;
            padding: 0 0 15px; } }
        #feature section div h3::before {
          content: attr(data-en);
          display: block;
          font-family: "Elms Sans";
          font-size: 0.9375rem;
          font-weight: 400;
          padding: 0 0 15px 35px; }
          @media only screen and (max-width: 834px) {
            #feature section div h3::before {
              padding: 0 0 10px 35px; } }
    #feature section:nth-of-type(2n) img {
      order: 1; }
      @media only screen and (max-width: 834px) {
        #feature section:nth-of-type(2n) img {
          order: 0; } }
    #feature section:nth-of-type(2n) div {
      padding: 20px 0 20px 50px; }

/* ---------- medical ---------- */
#home-medical {
  max-width: none;
  padding: 100px 0 50px;
  position: relative;
  z-index: 0; }
  @media only screen and (max-width: 834px) {
    #home-medical {
      padding: 60px 0 50px; } }
  #home-medical::before, #home-medical::after {
    background-color: #0088C9;
    content: "";
    left: 0;
    height: 5vw;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -10; }
  #home-medical::after {
    background-color: #E5F3F9;
    border-radius: 5vw 0 0;
    z-index: -1; }
  #home-medical #medical-menu {
    align-items: flex-start;
    display: flex;
    gap: 0 5vw;
    max-width: 1260px; }
    #home-medical #medical-menu h2 {
      color: #0088C9;
      left: 0;
      letter-spacing: 0.1rem;
      margin: 0 0 20px;
      order: 1;
      position: sticky;
      top: 100px;
      writing-mode: vertical-lr; }
      #home-medical #medical-menu h2 span {
        align-items: center;
        background-image: url("../img/base/daizu.svg");
        background-position: center 40px;
        background-repeat: no-repeat;
        background-size: 40px auto;
        font-size: 1.375rem;
        display: flex;
        height: 100%;
        left: 0;
        padding: 80px 0 0;
        position: absolute;
        top: 0;
        width: 100%; }
        @media only screen and (max-width: 834px) {
          #home-medical #medical-menu h2 span {
            background-size: 30px auto;
            background-position: center 20px;
            font-size: 1.125rem;
            padding: 50px 0 0; } }
      #home-medical #medical-menu h2::before {
        content: attr(data-en);
        font-family: "Elms Sans";
        font-size: 7rem;
        opacity: 0.1; }
        @media only screen and (max-width: 834px) {
          #home-medical #medical-menu h2::before {
            font-size: 4rem; } }
    #home-medical #medical-menu ul {
      grid-template-columns: repeat(2, 1fr); }
      @media only screen and (max-width: 520px) {
        #home-medical #medical-menu ul {
          grid-template-columns: repeat(1, 1fr); } }

#medical-menu {
  max-width: none; }
  #medical-menu ul {
    display: grid;
    flex: 1;
    gap: 30px;
    grid-template-columns: repeat(4, 1fr); }
    @media only screen and (max-width: 1024px) {
      #medical-menu ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px; } }
    @media only screen and (max-width: 520px) {
      #medical-menu ul {
        grid-template-columns: repeat(1, 1fr); } }
    #medical-menu ul li a {
      background-color: rgba(255, 255, 255, 0.5);
      border: rgba(0, 136, 201, 0.05) solid 1px;
      border-radius: 15px;
      display: block;
      height: 100%;
      padding: 15px 15px 10px;
      text-decoration: none; }
      @media only screen and (max-width: 834px) {
        #medical-menu ul li a {
          padding: 10px 10px 5px; } }
      #medical-menu ul li a img {
        aspect-ratio: 4 / 2.5;
        border-radius: 10px;
        margin: 0 0 30px;
        object-fit: cover; }
        @media only screen and (max-width: 834px) {
          #medical-menu ul li a img {
            margin: 0 0 20px; } }
      #medical-menu ul li a h3 {
        color: #0088C9;
        font-size: 1.375rem;
        font-weight: 500;
        letter-spacing: 0.1rem;
        line-height: 1.5;
        padding: 0 15px; }
        @media only screen and (max-width: 834px) {
          #medical-menu ul li a h3 {
            font-size: 1.25rem;
            padding: 0 5px; } }
        #medical-menu ul li a h3::after {
          color: #3B3938;
          content: attr(data-en);
          display: block;
          font-family: "Elms Sans";
          font-size: 0.875rem;
          letter-spacing: 0.05rem; }
          @media only screen and (max-width: 834px) {
            #medical-menu ul li a h3::after {
              font-size: 0.8125rem; } }
      #medical-menu ul li a p {
        background-image: url("../img/base/arrow_bl.svg");
        background-position: right 10px bottom 20px;
        background-repeat: no-repeat;
        background-size: 20px auto;
        padding: 15px 80px 15px 15px; }
        @media only screen and (max-width: 834px) {
          #medical-menu ul li a p {
            padding: 15px 50px 15px 5px; } }

/* ---------- greeting ---------- */
#greeting {
  display: flex;
  gap: 0 5vw;
  max-width: none; }
  #greeting div {
    flex: 1;
    padding: 40px 0 20px 5vw; }
    @media only screen and (max-width: 1366px) {
      #greeting div {
        padding: 40px 0; } }
    @media only screen and (max-width: 1024px) {
      #greeting div {
        padding: 0; } }
    #greeting div h2 {
      color: #0088C9;
      letter-spacing: 0.1rem;
      margin: 0 -5vw 0 0;
      overflow: hidden;
      position: relative; }
      #greeting div h2::before {
        content: attr(data-en);
        font-family: "Elms Sans";
        font-size: 7rem;
        left: 0;
        opacity: 0.1;
        position: absolute;
        top: 0;
        white-space: nowrap; }
        @media only screen and (max-width: 834px) {
          #greeting div h2::before {
            font-size: 4rem; } }
      #greeting div h2 span {
        align-items: center;
        background-image: url("../img/base/daizu.svg");
        background-position: 40px 42px;
        background-repeat: no-repeat;
        background-size: 40px auto;
        display: block;
        font-size: 1.375rem;
        padding: 47px 0 70px 90px; }
        @media only screen and (max-width: 834px) {
          #greeting div h2 span {
            background-position: 20px 22px;
            background-size: 30px auto;
            font-size: 1.125rem;
            padding: 25px 0 40px 55px; } }
    #greeting div img {
      display: none; }
      @media only screen and (max-width: 834px) {
        #greeting div img {
          aspect-ratio: 3 / 4;
          border-radius: 3vw;
          display: block;
          float: right;
          object-fit: cover;
          margin: 3px 0 20px 20px;
          width: 50%; } }
    #greeting div .catch {
      color: #1EA1A1;
      font-size: 1.125rem;
      font-weight: 500; }
      #doctor #greeting div .catch {
        padding: 10px 0 5px; }
      @media only screen and (max-width: 834px) {
        #greeting div .catch {
          font-size: 1rem; } }
    #greeting div .name {
      color: #0088C9;
      padding: 10px 0 20px; }
      @media only screen and (max-width: 834px) {
        #greeting div .name {
          padding: 0 0 20px; } }
      #greeting div .name span {
        font-size: 1.25rem;
        font-weight: 500;
        padding: 0 0 0 10px; }
        @media only screen and (max-width: 834px) {
          #greeting div .name span {
            font-size: 1.125rem; } }
  #greeting > img {
    border-radius: 3vw 0 0 3vw;
    margin: 0 -5vw 20px 0;
    object-fit: cover;
    width: 40%; }
    @media only screen and (max-width: 834px) {
      #greeting > img {
        display: none; } }

/* ---------- profile ---------- */
#medical-index ul li {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 2vw;
  display: flex;
  gap: 0 2vw;
  margin: 0 0 60px;
  padding: 2vw; }
  @media only screen and (max-width: 1024px) {
    #medical-index ul li {
      padding: 3vw; } }
  @media only screen and (max-width: 834px) {
    #medical-index ul li {
      margin: 0 0 5vw; } }
  @media only screen and (max-width: 520px) {
    #medical-index ul li {
      flex-direction: column; } }
  #medical-index ul li:last-child {
    margin: 0; }
  #medical-index ul li div {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1vw 0 0; }
    @media only screen and (max-width: 520px) {
      #medical-index ul li div .title-s {
        margin: 20px 0 15px; } }
    #medical-index ul li div .link {
      margin: auto 0 0; }
      @media only screen and (max-width: 520px) {
        #medical-index ul li div .link {
          margin: -5px 0 5px;
          padding: 0;
          text-align: right; } }
      #medical-index ul li div .link a {
        background-image: url("../img/base/arrow_bl.svg");
        background-position: 0 6px;
        background-repeat: no-repeat;
        background-size: 13px auto;
        color: #0088C9;
        display: inline-block;
        font-weight: 600;
        padding: 0 0 0 20px;
        text-decoration: none; }
        @media only screen and (max-width: 520px) {
          #medical-index ul li div .link a {
            background-position: 0 4px;
            padding: 0 0 0 18px; } }
  #medical-index ul li > p {
    padding: 0;
    width: 45%; }
    @media only screen and (max-width: 520px) {
      #medical-index ul li > p {
        order: -1;
        width: 100%; } }
    #medical-index ul li > p img {
      aspect-ratio: 16 / 9;
      border-radius: 1vw;
      object-fit: cover; }
      @media only screen and (max-width: 1024px) {
        #medical-index ul li > p img {
          aspect-ratio: 4 / 3; } }
      @media only screen and (max-width: 834px) {
        #medical-index ul li > p img {
          aspect-ratio: 3 / 4; } }
      @media only screen and (max-width: 520px) {
        #medical-index ul li > p img {
          aspect-ratio: 16 / 9; } }

.medical-notice {
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 2vw;
  margin: 20px 0; }
  .medical-notice dl {
    display: flex;
    padding: 2vw 0; }
    @media only screen and (max-width: 1024px) {
      .medical-notice dl {
        padding: 5vw 0; } }
    @media only screen and (max-width: 834px) {
      .medical-notice dl {
        flex-direction: column;
        padding: 0 5vw; } }
    .medical-notice dl div {
      border-right: rgba(59, 57, 56, 0.2) 1px solid;
      padding: 0 2vw;
      width: 100%; }
      @media only screen and (max-width: 1024px) {
        .medical-notice dl div {
          padding: 0 5vw; } }
      @media only screen and (max-width: 834px) {
        .medical-notice dl div {
          border-bottom: rgba(59, 57, 56, 0.2) 1px solid;
          border-right: none;
          padding: 5vw 0; } }
      .medical-notice dl div:last-child {
        border-bottom: none;
        border-right: none; }
      .medical-notice dl div dt {
        background-image: url("../img/base/exclamation.svg");
        background-position: 0 4px;
        background-repeat: no-repeat;
        background-size: 18px auto;
        color: #0088C9;
        display: inline-block;
        font-size: 1rem;
        font-weight: 600;
        padding: 0 0 10px 25px;
        text-decoration: none; }
        @media only screen and (max-width: 520px) {
          .medical-notice dl div dt {
            background-size: 16px auto;
            padding: 0 0 10px 20px; } }
      .medical-notice dl div dd p,
      .medical-notice dl div dd ul {
        padding: 0; }

.medical-point {
  align-items: center;
  display: flex;
  gap: 0 30px;
  padding: 20px 0 5px; }
  @media only screen and (max-width: 834px) {
    .medical-point {
      align-items: stretch;
      gap: 0 20px; } }
  .medical-point h3,
  .medical-point h4 {
    align-items: center;
    aspect-ratio: 1 / 1;
    background-color: rgba(0, 136, 201, 0.1);
    border-radius: 99px;
    color: #0088C9;
    display: flex;
    letter-spacing: 0.1rem;
    line-height: 1.5;
    margin: 0 0 20px;
    padding: 0 20px;
    white-space: nowrap; }
    @media only screen and (max-width: 834px) {
      .medical-point h3,
      .medical-point h4 {
        aspect-ratio: auto;
        justify-content: center;
        padding: 20px;
        writing-mode: vertical-lr; }
        .medical-point h3 br,
        .medical-point h4 br {
          display: none; } }
  .medical-point div {
    align-items: center;
    display: flex;
    flex: 1; }

.medical-list {
  display: grid;
  gap: 2vw;
  grid-template-columns: repeat(2, 1fr); }
  @media only screen and (max-width: 834px) {
    .medical-list {
      gap: 4vw;
      grid-template-columns: repeat(1, 1fr); } }
  .medical-list div {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 2vw;
    padding: 2vw; }
    @media only screen and (max-width: 1024px) {
      .medical-list div {
        padding: 5vw; } }
    .medical-list div dt {
      background-image: url("../img/base/daizu.svg");
      background-position: 0 5px;
      background-repeat: no-repeat;
      background-size: 22px auto;
      color: #0088C9;
      display: inline-block;
      font-size: 1.125rem;
      font-weight: 600;
      padding: 0 0 10px 30px;
      text-decoration: none; }
      @media only screen and (max-width: 834px) {
        .medical-list div dt {
          background-size: 20px auto;
          font-size: 1.0625rem;
          padding: 0 0 5px 25px; } }

/* ---------- profile ---------- */
#profile {
  display: grid;
  gap: 40px 5vw;
  grid-template-columns: repeat(2, 1fr); }
  #profile section:last-child {
    grid-column: 1 / 3; }
  @media only screen and (max-width: 834px) {
    #profile section:nth-child(1), #profile section:nth-child(2) {
      grid-column: 1 / 3; } }
  #profile section dl {
    padding: 0; }
    #profile section dl div {
      display: flex;
      gap: 5px 20px;
      padding: 0 0 20px; }
      @media only screen and (max-width: 834px) {
        #profile section dl div {
          flex-direction: column; } }
      #profile section dl div dt {
        font-weight: 500;
        white-space: nowrap; }
      #profile section dl div dd {
        flex: 1; }

/* ---------- news ---------- */
#news {
  display: flex;
  gap: 40px 5vw;
  max-width: 1600px; }
  @media only screen and (max-width: 834px) {
    #news {
      flex-direction: column; } }
  #news #news-main {
    flex: 1; }
  #news #news-side dl {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 2vw;
    margin: 0 0 20px;
    padding: 30px 30px 10px;
    white-space: nowrap; }
    @media only screen and (max-width: 834px) {
      #news #news-side dl {
        display: flex;
        gap: 0 20px;
        padding: 20px 20px 0;
        white-space: normal; } }
    @media only screen and (max-width: 834px) {
      #news #news-side dl div {
        width: 100%; } }
    #news #news-side dl div dt {
      color: #0088C9;
      font-family: "Elms Sans";
      font-weight: 700; }
    #news #news-side dl div dd ul li {
      padding: 2px 0 0; }
      #news #news-side dl div dd ul li a {
        align-items: flex-start;
        color: #3B3938;
        display: flex;
        font-weight: 500;
        gap: 0 5px;
        text-decoration: none; }
        #news #news-side dl div dd ul li a::before {
          background-color: #3B3938;
          clip-path: polygon(0 0, 0 100%, 100% 50%);
          content: "";
          display: block;
          height: 6px;
          margin: 9px 0 0;
          width: 6px; }

#news-post header p {
  color: #0088C9;
  font-family: "Elms Sans";
  font-size: 1.125rem;
  font-weight: 700;
  padding: 0; }
#news-post header h2 {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 0 0 20px; }
  @media only screen and (max-width: 834px) {
    #news-post header h2 {
      font-size: 1.25rem; } }
#news-post > div {
  border-bottom: rgba(59, 57, 56, 0.15) solid 1px;
  border-top: rgba(59, 57, 56, 0.15) solid 1px;
  margin: 0 0 20px;
  padding: 40px 0 20px; }

/* ---------- faq ---------- */
#faq {
  align-items: flex-start;
  display: flex;
  gap: 0 5vw;
  max-width: 1600px; }
  #faq > ul {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 2vw;
    display: flex;
    flex-direction: column;
    gap: 7px 0;
    left: 0;
    margin: 0 0 20px;
    padding: 30px;
    position: sticky;
    top: 100px; }
    @media only screen and (max-width: 834px) {
      #faq > ul {
        display: none; } }
    #faq > ul li a {
      align-items: flex-start;
      color: #0088C9;
      display: flex;
      font-weight: 500;
      gap: 0 5px;
      letter-spacing: 0.1rem;
      text-decoration: none;
      white-space: nowrap; }
      #faq > ul li a::before {
        background-color: #0088C9;
        clip-path: polygon(0 0, 0 100%, 100% 50%);
        content: "";
        display: block;
        height: 8px;
        margin: 8px 0 0;
        width: 8px; }
  #faq > div {
    flex: 1; }
    @media only screen and (max-width: 834px) {
      #faq > div {
        border-bottom: rgba(0, 136, 201, 0.2) 1px solid;
        margin: 0 -5vw 20px; } }
    #faq > div section {
      padding: 30px 0 0; }
      @media only screen and (max-width: 834px) {
        #faq > div section {
          padding: 0; }
          #faq > div section h3 {
            align-items: flex-start;
            border-top: rgba(0, 136, 201, 0.2) 1px solid;
            margin: 0;
            padding: 30px 5vw 27px calc(5vw + 28px);
            position: relative; }
            #faq > div section h3::before {
              background-color: #0088C9;
              clip-path: polygon(0 0, 0 100%, 100% 50%);
              height: 12px;
              left: 5vw;
              position: absolute;
              top: 34px;
              transition: transform .2s;
              width: 12px; }
          #faq > div section.open h3::before {
            transform: rotate(90deg); } }
      #faq > div section dl {
        border-top: rgba(0, 136, 201, 0.2) 1px solid; }
        @media only screen and (max-width: 834px) {
          #faq > div section dl {
            border-top: rgba(0, 136, 201, 0.2) 1px dotted;
            display: none;
            padding: 0; } }
        #faq > div section dl div {
          border-bottom: rgba(0, 136, 201, 0.2) 1px solid; }
          @media only screen and (max-width: 834px) {
            #faq > div section dl div {
              border-bottom: rgba(0, 136, 201, 0.2) 1px dotted; }
              #faq > div section dl div:last-child {
                border-bottom: none; } }
          @media (hover) {
            #faq > div section dl div:hover {
              background-color: rgba(0, 136, 201, 0.05); } }
          #faq > div section dl div.open {
            background-color: rgba(0, 136, 201, 0.05); }
          #faq > div section dl div dt {
            background-image: url("../img/base/daizu.svg");
            background-position: 20px 35px;
            background-repeat: no-repeat;
            background-size: 24px auto;
            color: #0088C9;
            cursor: pointer;
            font-size: 1.125rem;
            font-weight: 500;
            letter-spacing: 0.1rem;
            padding: 30px 40px 27px 55px; }
            @media only screen and (max-width: 834px) {
              #faq > div section dl div dt {
                background-position: 4vw 25px;
                background-size: 20px auto;
                font-size: 1rem;
                letter-spacing: 0.05rem;
                padding: 20px 5vw 17px calc(5vw + 28px); } }
          #faq > div section dl div dd {
            display: none;
            padding: 0 20px 15px 55px; }
            @media only screen and (max-width: 834px) {
              #faq > div section dl div dd {
                padding: 0 5vw; } }

/* ---------- notice ---------- */
#notice dl div {
  padding: 40px 0 0; }
