html { scroll-behavior: smooth; }

body { color: #40505a; }

header a:focus-visible,
#contents a:focus-visible,
footer a:focus-visible {
  outline: 3px solid #238fca;
  outline-offset: 3px;
}

.restored-access-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 260px;
  padding: 36px;
  color: #317fa9;
  background: linear-gradient(145deg, #eef8fd, #dbeef8);
  border: 1px solid #b9dcea;
  text-align: center;
}

.restored-access-card::before {
  content: "ACCESS";
  margin-bottom: 16px;
  color: #80bedc;
  font-size: 12px;
  letter-spacing: .18em;
}

.restored-access-card strong {
  margin-bottom: 12px;
  font-size: 23px;
  font-weight: normal;
}

.restored-access-card span { font-size: 15px; }

footer .info p:empty,
footer .info .l_box p:last-child:empty { display: none !important; }

#contents.greeting,
#contents.about,
#contents.information,
#contents.surgery { background: #fff; }

#contents.greeting .sec_top,
#contents.about .sec_top,
#contents.information .sec_top,
#contents.surgery .sec_top {
  padding: 34px 0;
  background: linear-gradient(115deg, #edf8fd, #fff 72%);
  border-bottom: 1px solid #c6e4f2;
}

#contents.greeting .sec_top .container,
#contents.about .sec_top .container,
#contents.information .sec_top .container,
#contents.surgery .sec_top .container {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(420px, 1.2fr);
  align-items: center;
  gap: 56px;
}

#contents .sec_top h1 {
  margin: 0;
  color: #3d93c1;
  font-size: 34px;
  font-weight: 300;
  line-height: 1.25;
}

#contents .sec_top h1 span {
  display: block;
  margin-top: 8px;
  color: #96a7b0;
  font-size: 12px;
  letter-spacing: .16em;
}

#contents .sec_top figure { margin: 0; }
#contents .sec_top img { display: block; width: 100%; height: 260px; object-fit: cover; }
#contents .sec_top .container:not(:has(figure)) { grid-template-columns: 1fr; }

#contents.greeting main.container,
#contents.about main.container,
#contents.information main.container,
#contents.surgery main.container { padding-top: 66px; padding-bottom: 80px; }

#contents.greeting main p,
#contents.about main p,
#contents.information main p,
#contents.surgery main p { font-size: 16px; line-height: 1.9; }

#contents.greeting main h1,
#contents.about main h1,
#contents.information main h1,
#contents.surgery main h1 {
  margin: 32px 0 18px;
  padding-left: 18px;
  color: #3d849e;
  border-left: 5px solid #9fd3e8;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.45;
}

#contents.greeting main > section:first-child,
#contents.information main > section:first-child,
#contents.surgery main > section:first-child {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
  gap: 52px;
  align-items: start;
  margin-bottom: 54px;
}

#contents.greeting main > section:first-child figure,
#contents.information main > section:first-child figure,
#contents.surgery main > section:first-child figure { margin: 0; }

#contents.greeting main > section:first-child:not(:has(figure)),
#contents.information main > section:first-child:not(:has(figure)),
#contents.surgery main > section:first-child:not(:has(figure)) { grid-template-columns: 1fr; }

#contents.greeting main > section:first-child img,
#contents.information main > section:first-child img,
#contents.surgery main > section:first-child img { display: block; width: 100%; height: auto; }

#contents.about .top section {
  display: flex;
  align-items: center;
  gap: 48px;
  margin: 0 0 58px;
  padding-bottom: 58px;
  border-bottom: 1px solid #dcecf3;
}

#contents.about .top section > figure,
#contents.about .top section > div { width: calc(50% - 24px); margin: 0; }
#contents.about .top section > figure { flex: 0 0 calc(43% - 24px); }
#contents.about .top section > div { flex: 1 1 auto; }
#contents.about .top section:not(:has(figure)) > div { width: 100%; }
#contents.about .top section img { display: block; width: 100%; height: 290px; object-fit: cover; }
#contents.about .top section:nth-child(even) { flex-direction: row-reverse; }

#contents.about .bottom { padding-top: 12px; }
#contents.about .bottom .clearfix {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

#contents.about .bottom figure {
  float: none;
  width: auto;
  margin: 0;
  background: #eef8fc;
}

#contents.about .bottom figure img { display: block; width: 100%; height: 210px; object-fit: cover; }
#contents.about .bottom figcaption { padding: 14px 16px; color: #3c7188; }

#contents.information main > .info,
#contents.surgery #flow {
  margin: 42px 0 0;
  padding: 34px 38px;
  background: #f2f9fc;
  border-top: 4px solid #89c7e2;
}

#contents.information main ul,
#contents.surgery main ul { margin: 20px 0; padding-left: 22px; }

#contents.information main li,
#contents.surgery main li { margin-bottom: 8px; font-size: 15px; line-height: 1.6; }

#contents.surgery #flow > section {
  margin: 0;
  padding: 22px 0 22px 72px;
  border-bottom: 1px solid #cce4ee;
}

#contents.surgery #flow > section:last-child { border-bottom: 0; }
#contents.surgery #flow h1 { margin-top: 0; }

@media (max-width: 900px) {
  #contents.greeting .sec_top .container,
  #contents.about .sec_top .container,
  #contents.information .sec_top .container,
  #contents.surgery .sec_top .container,
  #contents.greeting main > section:first-child,
  #contents.information main > section:first-child,
  #contents.surgery main > section:first-child { grid-template-columns: 1fr; }

  #contents.about .top section,
  #contents.about .top section:nth-child(even) { flex-direction: column; align-items: stretch; }
  #contents.about .top section > figure,
  #contents.about .top section > div { width: 100%; }
  #contents.about .bottom .clearfix { grid-template-columns: 1fr 1fr; }
}
