@charset "UTF-8";

/*--------------------------------------------------
 Setting
--------------------------------------------------*/
:root {
  --color-base: #fff;
  --color-main: #00aeeb;
  --color-secondary: #ff8500;
  --color-accent: #56b544;
  --bg-white: #fff;
  --bg-gray: #f3f7f8;
  --bg-grayDark: #d6dee8;
  --bg-green: #00aeeb;
  --text-white: #fff;
  --text-black: #000;
  --text-orange: #ff5c00;
  --text-gray: #808080;
  --text-alert: #f00;
  --text-success: #008000;
  --text-link: #00f;
  --text-link-hover: #00008b;
  --text-green: #00aeeb;
  --text-hover: #02a5d8;
  --border-black: #000;
  --border-white: #fff;
  --border-gray: #dcdcdc;
  --border-grayDark: #a9a9a9;
  --border-red: #f00;
  --border-pink: #ffc0cb;
  --border-green: #00aeeb;
  --button-disabled: #d3d3d3;
  --button-error: #f00;
  --button-success: #008000;
  --button-warning: #fc0;
  --button-info: #1e90ff;
  --shadow: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.16));
  --header-height-pc: 82px;
  --header-height-sp: 66px;
}

/*
  ----------------
  ユーティリティー
  ----------------
*/
.u-container {
  position: relative;
  padding: 0 15px;
}

@media all and (min-width: 768px) {
  .u-container {
    max-width: 1060px;
    margin: 0 auto;
    padding: 0 40px;
  }
}

.u-visually-hidden {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  height: 1px;
  width: 1px;
}

/*
  ----------------
  レスポンシブ用のユティリティー
  ----------------
*/
@media all and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.sp-tab-only {
  display: none !important;
}

@media all and (max-width: 960px) {
  .sp-tab-only {
    display: block !important;
  }
}

.tab-pc-only {
  display: none !important;
}

@media all and (min-width: 961px) {
  .tab-pc-only {
    display: block !important;
  }
}

@media all and (max-width : 767px) {
  .pc-only {
    display: none !important;
  }
}

/*--------------------------------------------------
 Main
--------------------------------------------------*/
/*
  ----------------
  ユーティリティー
  ----------------
*/
.u-container {
  position: relative;
  padding: 0 15px;
}

@media all and (min-width: 768px) {
  .u-container {
    max-width: 1060px;
    margin: 0 auto;
    padding: 0 40px;
  }
}

.u-visually-hidden {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  height: 1px;
  width: 1px;
}

/*
  ----------------
  レスポンシブ用のユティリティー
  ----------------
*/
@media all and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.sp-tab-only {
  display: none !important;
}

@media all and (max-width: 960px) {
  .sp-tab-only {
    display: block !important;
  }
}

.tab-pc-only {
  display: none !important;
}

@media all and (min-width: 961px) {
  .tab-pc-only {
    display: block !important;
  }
}

@media all and (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
}

/*--------------------------------------------------
 Base
--------------------------------------------------*/
/*
  ----------------
  Base styles
  ----------------
  */
html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  background-color: #fff;
  overflow-x: hidden;
}

.site-wrapper {
  min-height: 100vh;
  position: relative;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
}

main {
  -webkit-box-flex: 1;
  flex: 1;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  vertical-align: bottom;
  width: 100%;
}

a {
  cursor: pointer;
}

@media (any-hover: hover) {
  a {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transition: opacity 0.2s ease-in-out;
    transition: opacity 0.2s ease-in-out;
    cursor: pointer;
  }

  a:hover {
    opacity: 0.7;
    -webkit-transition: opacity 0.2s ease-in-out;
    transition: opacity 0.2s ease-in-out;
  }
}

a::before,
a::after {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

@media (any-hover: hover) {
  a:hover {
    color: var(--text-hover);
  }
}

figure {
  margin: 0;
}

@media all and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

@media all and (max-width: 767px) {
  .container {
    padding-left: 5vmin;
    padding-right: 5vmin;
  }
}

/*
  ----------------
  Base font settings
  ----------------
*/
body {
  color: var(--text-black);
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

p,
a,
input {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
}

h1 {
  font-size: 36px;
}

h2 {
  font-size: 30px;
}

h3 {
  font-size: 20px;
}

@media all and (max-width: 767px) {
  h1 {
    font-size: 24px;
  }

  h2 {
    font-size: 20px;
  }

  h3 {
    font-size: 16px;
  }
}

* {
  box-sizing: border-box;
}

html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}

body {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: normal;
  font-size: inherit;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

ul,
ol,
dl,
dt,
dd {
  padding: 0;
  margin: 0;
}

li,
ol {
  list-style: none;
}

a {
  text-decoration: none;
  display: inline-block;
  color: inherit;
  cursor: pointer;
}

p {
  margin-top: 0;
  margin-bottom: 0;
}

input[type=submit],
input[type=reset],
input[type=button],
button {
  background: none;
  border: 0;
  color: inherit;
  /* cursor: default; */
  font: inherit;
  line-height: normal;
  overflow: visible;
  padding: 0;
  -webkit-appearance: button;
  /* for input */
  -webkit-user-select: none;
  /* for button */
  -moz-user-select: none;
  -ms-user-select: none;
  cursor: pointer;
}

button:focus {
  outline: 0;
}

input::-moz-focus-inner,
button::-moz-focus-inner {
  border: 0;
  padding: 0;
}

[role=button] {
  color: inherit;
  cursor: default;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  white-space: pre;
}

@media all and (min-width: 768px) {
  a[href^=tel] {
    pointer-events: none;
  }
}

/*----------------
  KV
----------------*/
.kv__bg {
  background: url(/wp-content/themes/implant-web/consultation-meeting202506/images/bg_kv.webp) 50%/cover no-repeat;
}

@media all and (min-width: 768px) {
  .kv__image {
    margin-inline: auto;
    padding-inline: 40px;
    max-width: 860px;
    width: 100%;
  }
}

.kv__info {
  padding: 15px 15px 24px;
}

@media all and (min-width: 768px) {
  .kv__info {
    display: none;
  }
}

.kv__button {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
}

.kv__button a {
  max-width: 280px;
}

@media all and (min-width: 768px) {
  .kv__button a {
    max-width: 450px;
    margin-top: -20px;
  }
}

/*----------------
  バナー
----------------*/
.present-banner__wrap {
  padding-top: 25px;
  padding-inline: 5px;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
}

@media all and (min-width: 768px) {
  .present-banner__wrap {
    padding-top: 45px;
  }
}

.present-banner img {
  max-width: 682px;
}

/* Header
-------------------------------------------------- */
.header {
  background-image: url(/wp-content/themes/implant-web/consultation-meeting202506/images/bg_header.webp);
  background-repeat: no-repeat;
}

.header__wrap {
  max-width: 900px;
  margin: 0 auto;
}

.header__inner {
  padding: 10px;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  -webkit-box-pack: justify;
  justify-content: space-between;
  gap: 0;
}

@media all and (min-width: 768px) {
  .header__inner {
    gap: 20px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    padding: 20px 40px 14px;
  }
}

.header__top {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
  justify-content: space-between;
  gap: 20px;
}

@media all and (min-width: 768px) {
  .header__top {
    display: contents;
  }
}

.header__logo {
  -webkit-box-ordinal-group: 2;
  order: 1;
}

.header__logo img {
  max-width: 100px;
}

@media all and (min-width: 768px) {
  .header__logo img {
    max-width: 185px;
  }
}

.header__text {
  -webkit-box-ordinal-group: 3;
  order: 2;
}

.header__text img {
  max-width: 395px;
}

@media all and (min-width: 768px) {
  .header__text img {
    max-width: 300px;
  }
}

.header__tel {
  -webkit-box-ordinal-group: 4;
  order: 3;
}

.header__tel img {
  max-width: 220px;
}

@media all and (min-width: 768px) {
  .header__tel img {
    max-width: 270px;
  }
}

/*----------------
  ごあいさつ
----------------*/
.lecturer {
  padding-bottom: 30px;
}

@media all and (min-width: 768px) {
  .lecturer {
    padding: 40px 20px 60px;
  }
}

.lecturer__wrap {
  max-width: 820px;
  margin-inline: auto;
}

.lecturer__header {
  background-color: #12298c;
  padding: 10px 20px;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
}

@media all and (max-width : 767px) {
  .lecturer__header {
    gap: 10px;
  }
}

.lecturer__title {
  color: #fff;
  font-size: 14px;
  font-weight: bold;
}

@media all and (min-width: 768px) {
  .lecturer__title {
    font-size: 20px;
  }
}

@media all and (min-width: 768px) {
  .lecturer__header-info {
    margin-top: 14px;
  }
}

.lecturer__header-info img {
  max-width: 500px;
}

@media all and (min-width: 768px) {
  .lecturer__header-info img {
    max-width: 400px;
    max-width: 600px;
  }
}

.lecturer__message {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}

@media all and (max-width : 767px) {
  .lecturer__message {
    padding-inline: 15px;
  }
}

.lecturer__message-catchphrase {
  max-width: 495px;
  margin-inline: auto;
  padding-top: 20px;
}

.lecturer__message-text {
  font-size: 16px;
  margin-top: 30px;
}

@media all and (min-width: 768px) {
  .lecturer__message-text {
    padding-inline: 22px;
  }
}

.lecturer__profile {
  max-width: 900px;
  margin: 0 auto;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
  align-items: flex-start;
  -webkit-box-pack: center;
  justify-content: center;
  gap: 20px;
}

@media all and (max-width : 767px) {
  .lecturer__profile {
    padding-top: 20px;
    padding-inline: 15px;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    flex-direction: column-reverse;
  }
}

@media all and (min-width: 768px) {
  .lecturer__profile {
    padding: 30px 60px;
    gap: 30px;
  }
}

.lecturer__profile-text-content {
  -webkit-box-flex: 1;
  flex: 1;
}

.lecturer__profile-title {
  font-size: 20px;
  font-weight: bold;
  text-align: center;
}

.lecturer__profile-description {
  font-size: 14px;
  margin-top: 20px;
}

.lecturer__profile-history {
  border-top: 1px solid #12298c;
  margin-top: 20px;
  padding-top: 20px;
}

.lecturer__profile-history-item {
  font-size: 15px;
  font-weight: bold;
}

.lecturer__profile-info {
  font-size: 15px;
  font-weight: bold;
  margin-top: 20px;
}

@media all and (min-width: 768px) {
  .lecturer__profile-info {
    margin-top: 8px;
  }
}

.lecturer__profile-image img {
  max-width: 223px;
  width: 100%;
}

/*----------------
  喜びの声
----------------*/
.voice__wrap {
  max-width: 820px;
  margin: 0 auto;
  padding-block: 40px;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
  flex-direction: column;
}

@media all and (min-width: 768px) {
  .voice__wrap {
    gap: 40px;
    padding-bottom: 0;
  }
}

.voice img {
  max-width: 822px;
}

.voice__button {
  width: 100%;
  display: -webkit-box;
  display: flex;
  align-items: center;
  -webkit-box-pack: center;
  justify-content: center;
  flex-direction: column;
  gap: 40px;
}

.voice__button a {
  max-width: 280px;
}

@media all and (min-width: 768px) {
  .voice__button a {
    max-width: 450px;
  }
}

/* Access Section
-------------------------------------------------- */
.access {
  padding: 40px 0;
}

.access__wrap {
  max-width: 820px;
  margin: 0 auto;
}

@media all and (min-width: 768px) {
  .access__wrap {
    padding: 0 20px;
  }
}

.access__header {
  background-color: #12298c;
  padding: 12px 20px;
}

.access__title {
  font-size: 20px;
  color: #fff;
  /* 文字色 白 */
  font-weight: bold;
  text-align: center;
}

.access__body {
  padding-top: 20px;
}

.access__text {
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}

@media all and (max-width : 767px) {
  .access__text {
    padding-inline: 15px;
  }
}

@media all and (min-width: 768px) {
  .access__text {
    font-size: 24px;
  }
}

.access__map {
  margin-top: 20px;
  padding-bottom: 56.25%;
  position: relative;
  width: 100%;
}

.access__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/*----------------
  お申し込み
----------------*/
.entry {
  padding: 40px 0;
}

.entry__wrap {
  max-width: 820px;
  margin: 0 auto;
}

@media all and (min-width: 768px) {
  .entry__wrap {
    padding: 0 20px;
  }
}

.entry__header {
  background-color: #12298c;
  padding: 12px 20px;
}

.entry__title {
  font-size: 20px;
  color: #fff;
  /* 文字色 白 */
  font-weight: bold;
  text-align: center;
}

@media all and (max-width : 767px) {
  .entry__body {
    padding-inline: 15px;
  }
}

/*
  ----------------
  フォーム
  ----------------
*/
.l-contact-form {
  margin-inline: auto;
  padding-block: 40px;
  max-width: 820px;
  width: 100%;
}

@media all and (min-width: 961px) {
  .l-contact-form {
    padding-block: 65px;
  }
}

.l-contact-form .l-contact-form__form {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 20px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__form {
    gap: 28px;
  }
}

.l-contact-form .l-contact-form__group {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 6px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__group {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    gap: 20px;
  }
}

.l-contact-form .l-contact-form__info {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
  align-items: flex-start;
  gap: 6px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__info {
    padding-top: 8px;
    min-width: 250px;
    width: 250px;
  }
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__info.--heading {
    max-width: 290px;
    width: 100%;
  }
}

.l-contact-form .l-contact-form__info:has(.l-contact-form__info-note) {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 4px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__group:has(.l-contact-form__link) .l-contact-form__info {
    -webkit-box-align: end;
    align-items: flex-end;
  }
}

.l-contact-form .l-contact-form__info-inner {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
  align-items: flex-start;
  gap: 6px;
}

.l-contact-form .l-contact-form__info-note {
  font-size: 14px;
}

.l-contact-form .l-contact-form__required {
  background-color: #ff8500;
  border-radius: 4px;
  color: var(--text-white);
  font-size: 14px;
  padding: 2px 9px;
}

.l-contact-form .l-contact-form__optional {
  background-color: #ebebeb;
  border-radius: 4px;
  font-size: 14px;
  padding: 2px 9px;
}

.l-contact-form .l-contact-form__label {
  font-size: 16px;
  font-weight: bold;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__label {
    font-size: 18px;
  }
}

.l-contact-form .l-contact-form__contents {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__contents {
    -webkit-box-pack: center;
    justify-content: center;
  }
}

.l-contact-form .l-contact-form__row {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__row {
    gap: 16px;
  }
}

.l-contact-form .l-contact-form__row-inner {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

.l-contact-form .l-contact-form__unit {
  font-size: 16px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__unit {
    font-size: 18px;
  }
}

.l-contact-form .l-contact-form__row-item {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
  align-items: flex-start;
  gap: 10px;
}

.l-contact-form .l-contact-form__row-item:has(.--phone-number) {
  -webkit-box-align: start;
  align-items: flex-start;
}

@media all and (min-width: 961px) {
  .l-contact-form .--select-date .l-contact-form__row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
  }
}

.l-contact-form .--select-date .l-contact-form__row-item:not(:first-child) {
  width: 100%;
}

@media all and (max-width: 960px) {
  .l-contact-form .l-contact-form__row-item:has(.l-contact-form__label-sub) {
    -webkit-box-align: start;
    align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
  }
}

.l-contact-form .l-contact-form__label-sub {
  font-weight: bold;
  min-width: 80px;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
}

.l-contact-form .--inplant-surgery .l-contact-form__label-sub {
  width: 225px;
}

.l-contact-form .--select-date .l-contact-form__label-sub {
  white-space: nowrap;
}

.l-contact-form .l-contact-form__input-wrap {
  width: 100%;
}

.l-contact-form .l-contact-form__input,
.l-contact-form .l-contact-form__select,
.l-contact-form .l-contact-form__date,
.l-contact-form .l-contact-form__textarea {
  font-size: 16px;
  border-radius: 10px;
  border: 1px solid #000;
  padding: 12px;
  width: calc(50% - 5px);
}

.l-contact-form .l-contact-form__input-wrap>.l-contact-form__input,
.l-contact-form .l-contact-form__input-wrap>.l-contact-form__select {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
}

.l-contact-form .l-contact-form__select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(../../assets/images/common/icon_select_arrow.svg) calc(100% - 20px) 50%/8px 10px no-repeat;
  cursor: pointer;
  padding-block: 14px;
}

@media all and (max-width: 960px) {
  .l-contact-form .l-contact-form__select {
    max-width: 240px;
    width: 100%;
  }
}

@media all and (max-width: 960px) {
  .l-contact-form .l-contact-form__input {
    width: 100%;
  }
}

.l-contact-form .l-contact-form__input.--full-width {
  width: 100%;
}

.l-contact-form .l-contact-form__input.--narrow-width {
  max-width: 200px;
  width: 100%;
}

.l-contact-form .l-contact-form__hyphen {
  -webkit-transform: translateY(10px);
  transform: translateY(10px);
}

.l-contact-form .l-contact-form__checkbox {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__checkbox {
    grid-template-columns: repeat(2, 240px);
  }
}

.l-contact-form .l-contact-form__checkbox-item {
  font-size: 16px;
  font-weight: bold;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__checkbox-item {
    font-size: 18px;
  }
}

.l-contact-form .l-contact-form__radio {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__radio {
    grid-template-columns: repeat(2, 200px);
  }
}

.l-contact-form .l-contact-form__radio.--3columns {
  grid-template-columns: repeat(2, 1fr);
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__radio.--3columns {
    grid-template-columns: repeat(3, 1fr);
  }
}

.l-contact-form .l-contact-form__radio-item {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

.l-contact-form .l-contact-form__radio-label {
  background-color: #ebebeb;
  border-radius: 10px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  padding: 10px;
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 4px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__radio-label {
    font-size: 17px;
    max-width: 200px;
  }
}

.l-contact-form .l-contact-form__radio-label:has(input:checked) {
  background-color: var(--bg-white);
  border: 1px solid var(--border-black);
  padding: 9px;
}

.l-contact-form .l-contact-form__radio-input {
  height: 20px;
  width: 20px;
}

.l-contact-form .l-contact-form__note {
  font-size: 12px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__note {
    font-size: 14px;
  }
}

.l-contact-form .l-contact-form__textarea {
  overflow: auto;
  padding-block: 12px;
  height: 150px;
  width: 100%;
}

.l-contact-form .l-contact-form__actions {
  padding-top: 46px;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
  gap: 10px;
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__actions {
    gap: 20px;
    padding-top: 60px;
  }
}

.l-contact-form .l-contact-form__link {
  color: #ff8500;
  font-size: 14px;
  text-decoration: underline;
}

@media all and (max-width: 960px) {
  .l-contact-form .l-contact-form__link {
    text-align: center;
    width: 100%;
  }
}

@media all and (min-width: 961px) {
  .l-contact-form .l-contact-form__link {
    font-size: 16px;
  }
}

.l-contact-form .l-contact-form__error-message {
  color: #f30;
  font-size: 14px;
  font-weight: bold;
}

@media all and (max-width: 960px) {
  .l-contact-form .l-contact-form__group:has(.l-contact-form__link) .l-contact-form__contents {
    display: contents;
  }

  .l-contact-form .l-contact-form__group:has(.l-contact-form__link) .l-contact-form__row {
    -webkit-box-ordinal-group: 2;
    order: 1;
  }

  .l-contact-form .l-contact-form__group:has(.l-contact-form__link) .l-contact-form__info {
    -webkit-box-ordinal-group: 3;
    order: 2;
  }

  .l-contact-form .l-contact-form__group:has(.l-contact-form__link) .l-contact-form__checkbox {
    -webkit-box-ordinal-group: 4;
    order: 3;
  }
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: textfield;
}

input[type=checkbox],
.c-checkbox {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #000;
  border-radius: 4px;
  margin: 0;
  position: relative;
  height: 20px;
  min-width: 20px;
  width: 20px;
}

input[type=checkbox]:checked,
input[type=checkbox].c-checkbox:checked {
  background-color: var(--bg-green);
  border: 1px solid var(--bg-green);
  color: var(--text-white);
}

input[type=checkbox]:checked::before,
input[type=checkbox].c-checkbox:checked::before {
  background: url(../../assets/images/common/icon_checkbox.svg) 50%/contain no-repeat;
  content: "";
  height: 10px;
  width: 14px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

input[type=date]::-webkit-calendar-picker-indicator {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
}

input[type=date]::-webkit-inner-spin-button {
  -webkit-appearance: none;
}

input[type=date]::-webkit-clear-button {
  -webkit-appearance: none;
}

input[type=date] {
  cursor: pointer;
  position: relative;
}

/*--------------------------------------------------
  CF7のスタイルリセット
--------------------------------------------------*/
.wpcf7-form .l-contact-form__required {
  white-space: nowrap;
}

.wpcf7-form .l-contact-form__info p {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
  align-items: flex-start;
  gap: 6px;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__info p {
    min-width: 250px;
    width: 250px;
  }
}

.wpcf7-form .l-contact-form__info p:has(.l-contact-form__info-note) {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 4px;
}

.wpcf7-form .wpcf7-form-control-wrap {
  width: 100%;
}

.wpcf7-form .--select-date .l-contact-form__row {
  -webkit-box-align: start;
  align-items: flex-start;
}

.wpcf7-form .--select-date .l-contact-form__row .l-contact-form__row-item:first-child {
  padding-top: 8px;
}

.wpcf7-form .l-contact-form__row-item>p {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

.wpcf7-form .l-contact-form__row-item p:has(.--phone-number) {
  -webkit-box-align: start;
  align-items: flex-start;
}

.wpcf7-form .l-contact-form__row-item p br {
  display: none;
}

.wpcf7-form .--display04 .l-contact-form .l-contact-form__row-item>p {
  width: auto;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__row-item .wpcf7-form-control-wrap:not(:has(textarea)):not(:has(.--full-width)) {
    width: calc(50% - 5px);
  }
}

.wpcf7-form .l-contact-form__row-item .wpcf7-form-control-wrap:has(.l-contact-form__date) {
  width: 140px;
}

.wpcf7-form .l-contact-form__input,
.wpcf7-form .l-contact-form__select,
.wpcf7-form .l-contact-form__date,
.wpcf7-form .l-contact-form__textarea {
  width: 100%;
}

.wpcf7-form .l-contact-form__date {
  height: 47px;
  padding-block: 10px 9px;
}

@media all and (max-width: 960px) {
  .wpcf7-form .l-contact-form__date {
    background-color: var(--bg-white);
    min-width: 100px;
  }
}

.wpcf7-form input[type=date]:not(.is-selected)::-webkit-datetime-edit-fields-wrapper {
  display: none;
}

.wpcf7-form input[type=date]:not(.is-selected)::before {
  content: attr(placeholder);
  height: 20px;
  width: 100%;
  position: absolute;
  top: 50%;
  left: 16px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.wpcf7-form .l-contact-form__label-sub {
  white-space: nowrap;
}

.wpcf7-form .l-contact-form__row-inner p br {
  display: none;
}

.wpcf7-form .l-contact-form__row-inner p {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

.wpcf7-form .--inplant-surgery p:has(.l-contact-form__label-sub) {
  width: 225px;
}

@media all and (max-width: 960px) {
  .wpcf7-form .l-contact-form__row-item>p:has(.l-contact-form__label-sub) {
    -webkit-box-align: start;
    align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
  }
}

.wpcf7-form .l-contact-form__input.--narrow-width {
  max-width: 100%;
}

.wpcf7-form .wpcf7-form-control-wrap:has(.--narrow-width) {
  max-width: 200px;
  width: 100%;
}

.wpcf7-form .l-contact-form__checkbox {
  display: block;
}

.wpcf7-form .l-contact-form__checkbox .wpcf7-checkbox {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__checkbox .wpcf7-checkbox {
    grid-template-columns: repeat(2, 240px);
  }
}

.wpcf7-form .l-contact-form__checkbox .wpcf7-list-item {
  font-size: 16px;
  font-weight: bold;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__checkbox .wpcf7-list-item {
    font-size: 18px;
  }
}

.wpcf7-form .l-contact-form__radio {
  display: block;
}

.wpcf7-form .l-contact-form__radio .wpcf7-radio {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__radio .wpcf7-radio {
    grid-template-columns: repeat(2, 200px);
  }
}

.wpcf7-form .l-contact-form__radio.--3columns .wpcf7-radio {
  grid-template-columns: repeat(2, 1fr);
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__radio.--3columns .wpcf7-radio {
    grid-template-columns: repeat(3, 1fr);
  }
}

.wpcf7-form .l-contact-form__radio .wpcf7-list-item {
  margin-left: 0;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 10px;
}

.wpcf7-form .l-contact-form__radio label {
  background-color: #ebebeb;
  border-radius: 10px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  padding: 10px;
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: 4px;
}

@media all and (min-width: 961px) {
  .wpcf7-form .l-contact-form__radio label {
    font-size: 17px;
    max-width: 200px;
  }
}

.wpcf7-form .l-contact-form__radio label:has(input:checked) {
  background-color: var(--bg-white);
  border: 1px solid var(--border-black);
  padding: 9px;
}

.wpcf7-form .l-contact-form__radio input {
  height: 20px;
  width: 20px;
}

.wpcf7-form .wpcf7-not-valid-tip {
  font-size: 16px;
  font-weight: bold;
}

.request-form .wpcf7-form .l-contact-form__radio {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

@media all and (min-width: 961px) {
  .request-form .wpcf7-form .l-contact-form__radio {
    grid-template-columns: repeat(2, 200px);
  }
}

.wpcf7-form .l-contact-form__actions p br,
.wpcf7-form .request-form__actions p br {
  display: none;
}

.wpcf7-form .l-contact-form__actions p,
.wpcf7-form .request-form__actions p {
  padding-top: 30px;
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
  gap: 9px;
}

@media all and (min-width: 961px) {

  .wpcf7-form .l-contact-form__actions p,
  .wpcf7-form .request-form__actions p {
    gap: 20px;
    padding-top: 40px;
  }
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output {
  border: none;
  color: #f30;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

.wpcf7 form .wpcf7-response-output {
  border: none;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

.wpcf7 .wpcf7-spinner {
  display: none;
}

.wpcf7-form-control-wrap:has(.hidden-input) {
  display: none;
}

/* 送信ボタンの連打防止 */
.wpcf7 .wpcf7-submit.js-prevent-click {
  pointer-events: none;
  opacity: 0.4;
}

.c-button {
  border-radius: 10px;
  font-size: 20px;
  font-weight: bold;
  -webkit-filter: var(--shadow);
  filter: var(--shadow);
  padding: 10px;
  height: 64px;
  width: 100%;
  display: grid;
  place-items: center;
}

.c-button:hover {
  color: inherit;
}

.c-button.--reset {
  background-color: #ebebeb;
  max-width: 240px;
}

.c-button.--submit {
  max-width: 240px;
  padding-inline: 35px;
  position: relative;
}

@media all and (max-width: 960px) {
  .c-button.--submit {
    font-size: 18px;
  }
}

@media all and (max-width: 400px) {
  .c-button.--submit {
    font-size: 16px;
  }
}

.c-button.--submit::before {
  content: "";
  height: 20px;
  width: 20px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.c-button.--submit {
  background-color: #0a3764;
  color: #fff;
}

.c-button.--submit::before {
  background: url(../../assets/images/common/icon_button_arrow.svg) 50%/contain no-repeat;
  right: 15px;
}

input[type=submit].c-button-submit {
  background-color: #0a3764;
  border-radius: 10px;
  color: #fff;
  font-weight: bold;
  font-size: 20px;
  -webkit-filter: var(--shadow);
  filter: var(--shadow);
  padding: 10px;
  height: 64px;
  width: 100%;
  display: grid;
  place-items: center;
  max-width: 240px;
  padding-inline: 35px;
  position: relative;
}

@media (any-hover: hover) {
  input[type=submit].c-button-submit {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transition: opacity 0.2s ease-in-out;
    transition: opacity 0.2s ease-in-out;
    cursor: pointer;
  }

  input[type=submit].c-button-submit:hover {
    opacity: 0.7;
    -webkit-transition: opacity 0.2s ease-in-out;
    transition: opacity 0.2s ease-in-out;
  }
}

input[type=submit].c-button-submit::before,
input[type=submit].c-button-submit::after {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

input[type=submit].c-button-submit:hover {
  color: inherit;
}

@media all and (max-width: 960px) {
  input[type=submit].c-button-submit {
    font-size: 18px;
  }
}

@media all and (max-width: 400px) {
  input[type=submit].c-button-submit {
    font-size: 16px;
  }
}

input[type=submit].c-button-submit::before {
  content: "";
  height: 20px;
  width: 20px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.wpcf7-form input[type=submit].c-button.--next,
.wpcf7-form input[type=submit].c-button.--submit {
  font-size: 20px;
  font-weight: bold;
  max-width: 240px;
  padding-inline: 35px;
  position: relative;
}

@media all and (max-width: 960px) {

  .wpcf7-form input[type=submit].c-button.--next,
  .wpcf7-form input[type=submit].c-button.--submit {
    font-size: 18px;
  }
}

@media all and (max-width: 400px) {

  .wpcf7-form input[type=submit].c-button.--next,
  .wpcf7-form input[type=submit].c-button.--submit {
    font-size: 16px;
  }
}

.wpcf7-form input[type=submit].c-button.--next,
.wpcf7-form input[type=submit].c-button.--submit {
  background-color: #0a3764;
  color: #fff;
}

.wpcf7-form input[type=submit].c-button.--next::before,
.wpcf7-form input[type=submit].c-button.--submit::before {
  background: url(../../assets/images/common/icon_button_arrow.svg) 50%/contain no-repeat;
  right: 15px;
}

/*----------------
  フッター
----------------*/
.footer {
  background-color: #00ada0;
}

.footer__wrap {
  padding: 20px 15px;
  display: grid;
  grid-template-columns: 1ft;
  gap: 30px;
}

@media all and (min-width: 768px) {
  .footer__wrap {
    max-width: 1000px;
    margin-inline: auto;
    padding: 20px 20px 40px;
    -webkit-box-align: center;
    align-items: center;
    grid-template-columns: 0.72fr 0.28fr;
  }
}

.footer__main {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  gap: 20px;
}

.footer__title {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
}

.footer__title img {
  max-width: 644px;
  margin-inline: auto;
}

.footer__info {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
}

.footer__info img {
  max-width: 440px;
  margin-inline: auto;
}

.footer__banner {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  -webkit-box-pack: center;
  justify-content: center;
  gap: 8px;
}

.footer__banner-link {
  color: #fff;
  font-size: 15px;
  text-decoration: underline;
  text-align: center;
}

.footer__banner-link:hover {
  color: #fff;
  opacity: 0.5;
}

.footer__banner-img {
  width: 100%;
}

@media all and (max-width : 767px) {
  .footer__banner-img {
    max-width: 200px;
    margin-inline: auto;
  }
}